Repository: dgretton/pyhamilton Branch: master Commit: 65938d05cc8f Files: 387 Total size: 15.2 MB Directory structure: gitextract_3_91ea39/ ├── .gitattributes ├── .gitignore ├── .pylintrc ├── .vscode/ │ └── settings.json ├── LICENSE ├── PKG-INFO ├── README.md ├── imgs/ │ ├── README.md │ └── text ├── pandoc_pdf.sh ├── pyhamilton/ │ ├── __init__.py │ ├── bin/ │ │ └── Hamilton MPE HSL Driver.msi │ ├── consumables/ │ │ ├── __init__.py │ │ └── consumables.py │ ├── defaultcmds.py │ ├── defaults/ │ │ └── defaults.json │ ├── defaults.py │ ├── devices/ │ │ ├── __init__.py │ │ ├── centrifuge_wrappers.py │ │ ├── hhs_wrappers.py │ │ ├── hig_wrappers.py │ │ ├── mpe_wrappers.py │ │ ├── odtc_wrappers.py │ │ ├── pH_wrappers.py │ │ └── tec_wrappers.py │ ├── error_code_descriptions.txt │ ├── interface.py │ ├── library/ │ │ ├── ASWStandard/ │ │ │ ├── ASWGlobal/ │ │ │ │ ├── ASWGlobal.hsl │ │ │ │ └── ASWGlobal.stp │ │ │ └── TraceLevel/ │ │ │ ├── TraceLevel.chm │ │ │ ├── TraceLevel.chw │ │ │ ├── TraceLevel.hsl │ │ │ └── TraceLevel.stp │ │ ├── Alpha Numeric Conversion/ │ │ │ ├── Alpha Numeric Conversion.hs_ │ │ │ ├── Alpha Numeric Conversion.hsi │ │ │ ├── Alpha Numeric Conversion.smt │ │ │ └── Alpha Numeric Conversion.stp │ │ ├── DaisyChainedTiltModule/ │ │ │ ├── HSLDaisyChainCommunication.chm │ │ │ └── HSLDaisyChainedTiltModule.chm │ │ ├── ErrorSimulator/ │ │ │ ├── ErrorSimulator.hs_ │ │ │ ├── ErrorSimulator.hsi │ │ │ ├── ErrorSimulator.smt │ │ │ ├── ErrorSimulator.stp │ │ │ ├── HSLFilLibEx.chm │ │ │ ├── HSLFilLibEx.hsl │ │ │ ├── HSLFilLibEx.stp │ │ │ ├── MlStarSimCfg.hsl │ │ │ ├── MlStarSimCfg.stp │ │ │ ├── PhoenixChecksum_0.reg │ │ │ ├── StrTokenize.hs_ │ │ │ ├── StrTokenize.hsi │ │ │ ├── StrTokenize.smt │ │ │ └── StrTokenize.stp │ │ ├── HSLAppsLib/ │ │ │ ├── HSLAppsLib.chm │ │ │ ├── HSLAppsLib.hsl │ │ │ └── HSLAppsLib.stp │ │ ├── HSLAppsLib.chm │ │ ├── HSLAppsLib.chw │ │ ├── HSLAppsLib.hsl │ │ ├── HSLAppsLib.stp │ │ ├── HSLBarcodeReader.hs_ │ │ ├── HSLBarcodeReader.hsl │ │ ├── HSLBarcodeReader.stp │ │ ├── HSLBarcodeReaderEnu.chm │ │ ├── HSLBarcodeReaderStringTableEnu.hs_ │ │ ├── HSLBarcodeReaderStringTableEnu.stp │ │ ├── HSLDaisyChainCommunication.chm │ │ ├── HSLDaisyChainCommunication.hsl │ │ ├── HSLDaisyChainCommunication.stp │ │ ├── HSLDaisyChainedMediaLine.chm │ │ ├── HSLDaisyChainedMediaLine.chw │ │ ├── HSLDaisyChainedMediaLine.hsl │ │ ├── HSLDaisyChainedMediaLine.stp │ │ ├── HSLDaisyChainedTiltModule.chm │ │ ├── HSLDaisyChainedTiltModule.chw │ │ ├── HSLDaisyChainedTiltModule.hsl │ │ ├── HSLDaisyChainedTiltModule.stp │ │ ├── HSLInhecoTEC/ │ │ │ ├── HSLInhecoTECLib.hsl │ │ │ ├── HSLInhecoTECLib.stp │ │ │ └── HSLInhecoTECLibEnu.chm │ │ ├── HSLLabwareStateLib.hsl │ │ ├── HSLLabwareStateLib.stp │ │ ├── HSLLabwareStateLibEnu.chm │ │ ├── HSLLabwareStateLibImpl.hs_ │ │ ├── HSLLabwareStateLibImpl.stp │ │ ├── HSLLabwareStateLibImplEnu.hs_ │ │ ├── HSLLabwareStateLibImplEnu.stp │ │ ├── HSLLabwrAccess/ │ │ │ ├── HSLLabwrAccess.chm │ │ │ ├── HSLLabwrAccess.hsl │ │ │ └── HSLLabwrAccess.stp │ │ ├── HSLTrcLib.hsl │ │ ├── HSLTrcLib.stp │ │ ├── HSL_LiquidClassLib.hsl │ │ ├── HSL_LiquidClassLib.stp │ │ ├── HslHamHeaterShakerLib.Instrument.stp │ │ ├── HslHamHeaterShakerLib.stp │ │ ├── HslHamHeaterShakerLibEnu.chw │ │ ├── HslHamHeaterShakerStringTableEnu.hs_ │ │ ├── HslHamHeaterShakerStringTableEnu.stp │ │ ├── Labware Properties/ │ │ │ ├── Labware Definition Keys.xlsx │ │ │ ├── Labware_Property_Query.hs_ │ │ │ ├── Labware_Property_Query.hsi │ │ │ ├── Labware_Property_Query.smt │ │ │ ├── Labware_Property_Query.stp │ │ │ └── Resources/ │ │ │ ├── LPQ_GLOBAL.hsl │ │ │ └── LPQ_GLOBAL.stp │ │ ├── SMT/ │ │ │ ├── MLSTARLiquidClassLib.chm │ │ │ ├── MLSTARLiquidClassLib.hsl │ │ │ └── MLSTARLiquidClassLib.stp │ │ ├── SMTs/ │ │ │ ├── lookup.hs_ │ │ │ ├── lookup.hsi │ │ │ ├── lookup.smt │ │ │ └── lookup.stp │ │ ├── STAR Tools/ │ │ │ ├── Channel Tools Test.lay │ │ │ ├── Channel Tools Test.res │ │ │ ├── Resources/ │ │ │ │ └── SubMethods/ │ │ │ │ ├── CHANNEL_TOOLS_GLOBAL.hsl │ │ │ │ ├── CHANNEL_TOOLS_GLOBAL.stp │ │ │ │ ├── CenterSpot.rck │ │ │ │ ├── FW_HelperLibrary.hs_ │ │ │ │ ├── FW_HelperLibrary.hsi │ │ │ │ ├── FW_HelperLibrary.smt │ │ │ │ ├── FW_HelperLibrary.stp │ │ │ │ ├── Firmware Pipetting Commands.hs_ │ │ │ │ ├── Firmware Pipetting Commands.hsi │ │ │ │ ├── Firmware Pipetting Commands.smt │ │ │ │ ├── Firmware Pipetting Commands.stp │ │ │ │ ├── HelperLibrary.hs_ │ │ │ │ ├── HelperLibrary.hsi │ │ │ │ ├── HelperLibrary.smt │ │ │ │ ├── HelperLibrary.stp │ │ │ │ ├── Liquid Level Check.hs_ │ │ │ │ ├── Liquid Level Check.hsi │ │ │ │ ├── Liquid Level Check.smt │ │ │ │ ├── Liquid Level Check.stp │ │ │ │ ├── Plate Stack Verify.hs_ │ │ │ │ ├── Plate Stack Verify.hsi │ │ │ │ ├── Plate Stack Verify.smt │ │ │ │ ├── Plate Stack Verify.stp │ │ │ │ ├── STAR Channel Movement Tools.hs_ │ │ │ │ ├── STAR Channel Movement Tools.hsi │ │ │ │ ├── STAR Channel Movement Tools.smt │ │ │ │ ├── STAR Channel Movement Tools.stp │ │ │ │ ├── Split_Wells.hs_ │ │ │ │ ├── Split_Wells.hsi │ │ │ │ ├── Split_Wells.smt │ │ │ │ ├── Split_Wells.stp │ │ │ │ ├── TIP_OFFSET_GLOBAL.hsl │ │ │ │ ├── TIP_OFFSET_GLOBAL.stp │ │ │ │ ├── Tip Tool Global Variables.hsl │ │ │ │ ├── Tip Tool Global Variables.stp │ │ │ │ ├── TipCounterGlobal.hsl │ │ │ │ ├── TipCounterGlobal.stp │ │ │ │ ├── Travel Lanes.hs_ │ │ │ │ ├── Travel Lanes.hsi │ │ │ │ ├── Travel Lanes.smt │ │ │ │ ├── Travel Lanes.stp │ │ │ │ ├── VANTAGE Channel Movement Tools.hs_ │ │ │ │ ├── VANTAGE Channel Movement Tools.hsi │ │ │ │ ├── VANTAGE Channel Movement Tools.smt │ │ │ │ ├── VANTAGE Channel Movement Tools.stp │ │ │ │ └── centerspot.ctr │ │ │ ├── STAR Channel Tools.hs_ │ │ │ ├── STAR Channel Tools.hsi │ │ │ ├── STAR Channel Tools.smt │ │ │ ├── STAR Channel Tools.stp │ │ │ ├── STAR MPH96 Tools.hs_ │ │ │ ├── STAR MPH96 Tools.hsi │ │ │ ├── STAR MPH96 Tools.smt │ │ │ ├── STAR MPH96 Tools.stp │ │ │ ├── STAR Pipetting Tools.hs_ │ │ │ ├── STAR Pipetting Tools.hsi │ │ │ ├── STAR Pipetting Tools.smt │ │ │ ├── STAR Pipetting Tools.stp │ │ │ ├── STAR Tip Tools.hs_ │ │ │ ├── STAR Tip Tools.hsi │ │ │ ├── STAR Tip Tools.smt │ │ │ ├── STAR Tip Tools.stp │ │ │ ├── STAR Tools Demo.hsl │ │ │ ├── STAR Tools Demo.med │ │ │ ├── STAR Tools Demo.stp │ │ │ ├── STAR Tools Demo.sub │ │ │ ├── TipSupport.rck │ │ │ ├── TipSupport.x │ │ │ └── tipsupport.ctr │ │ └── SchedulingDev/ │ │ ├── HSLAppsLib.chm │ │ ├── HSLAppsLib.chw │ │ ├── HSLAppsLib.hsl │ │ └── HSLAppsLib.stp │ ├── liquid_class_db.py │ ├── liquid_classes.py │ ├── liquid_handling_wrappers.py │ ├── ngs/ │ │ ├── __init__.py │ │ ├── loading/ │ │ │ ├── __init__.py │ │ │ ├── deck_annotation.py │ │ │ ├── deck_regions.json │ │ │ ├── deck_regions_old.json │ │ │ ├── loading_vis.py │ │ │ ├── plate_96_render.py │ │ │ ├── rendering_helpers.py │ │ │ └── tube_rack_render.py │ │ ├── protocol.py │ │ ├── tadm.py │ │ └── tests/ │ │ ├── PacBio_MultiPlexLibraryPrepDeck_v1.2.lay │ │ ├── PacBio_MultiPlexLibraryPrepDeck_v1.2.res │ │ ├── bead_cleanup.py │ │ ├── cLLD.py │ │ ├── consumables_tracking.py │ │ ├── cpac.py │ │ ├── double_aspirate.py │ │ ├── get_liquid_class_volume.py │ │ ├── gripper_move.py │ │ ├── hhs.py │ │ ├── loading/ │ │ │ ├── deck_regions.json │ │ │ └── loading_vis.py │ │ ├── log/ │ │ │ ├── hamilton.log │ │ │ ├── main.log │ │ │ └── robot_json.log │ │ ├── magnetic_bead_cleanup.py │ │ ├── mix_plate.py │ │ ├── multi_dispense.py │ │ ├── ngs_demo.py │ │ ├── pip_transfer.py │ │ ├── set_labware_property.py │ │ ├── stacking.py │ │ ├── thermal_cycler/ │ │ │ └── thermal_cycler_with_transport.py │ │ ├── tip_support.py │ │ ├── tip_tracker.py │ │ ├── transfer_96.py │ │ └── transport.py │ ├── odtc/ │ │ ├── __init__.py │ │ └── odtc_protocol.py │ ├── oemerr.py │ ├── paths.py │ ├── pipetting/ │ │ ├── __init__.py │ │ ├── pipetting.py │ │ └── trough_manager.py │ ├── resources/ │ │ ├── __init__.py │ │ ├── deckresource.py │ │ ├── enums.py │ │ └── managed_resources.py │ ├── run_venus_client.py │ ├── star-oem/ │ │ ├── HslHamHeaterShakerLib.hs_ │ │ ├── HslHamHeaterShakerLib.hsl │ │ ├── RunHSLExecutor.dll.config │ │ ├── RunHSLExecutor.pdb │ │ ├── STAR_OEM.hsl │ │ ├── STAR_OEM.lay │ │ ├── STAR_OEM.res │ │ ├── STAR_OEM.stp │ │ ├── STAR_OEM.sub │ │ ├── STAR_OEM_toolkit.hs_ │ │ ├── STAR_OEM_toolkit.hsi │ │ ├── STAR_OEM_toolkit.smt │ │ ├── STAR_OEM_toolkit.stp │ │ └── VENUS_Method/ │ │ ├── Hamilton pH Module Controller.chw │ │ ├── Hamilton pH Module Controller.hs_ │ │ ├── Hamilton pH Module Controller.hsi │ │ ├── Hamilton pH Module Controller.smt │ │ ├── Hamilton pH Module Controller.stp │ │ ├── HslHamHeaterShakerLib.chm │ │ ├── HslHamHeaterShakerLib.chw │ │ ├── HslHamHeaterShakerLib.hs_ │ │ ├── HslHamHeaterShakerLib.hsl │ │ ├── STAR_OEM.hsl │ │ ├── STAR_OEM_HiG.hs_ │ │ ├── STAR_OEM_HiG.hsi │ │ ├── STAR_OEM_HiG.stp │ │ ├── STAR_OEM_ODTC.hs_ │ │ ├── STAR_OEM_ODTC.hsi │ │ ├── STAR_OEM_ODTC.stp │ │ ├── STAR_OEM_Test.hsl │ │ ├── STAR_OEM_Test.lay │ │ ├── STAR_OEM_Test.med │ │ ├── STAR_OEM_Test.res │ │ ├── STAR_OEM_Test.stp │ │ ├── STAR_OEM_Test.sub │ │ ├── STAR_OEM_noFan.hsl │ │ ├── STAR_OEM_noFan.med │ │ ├── STAR_OEM_noFan.stp │ │ ├── STAR_OEM_noFan.sub │ │ ├── STAR_OEM_toolkit.hs_ │ │ ├── STAR_OEM_toolkit.hsi │ │ ├── STAR_OEM_toolkit.smt │ │ ├── STAR_OEM_toolkit.stp │ │ ├── STAR_OEM_toolkit_MPE.hs_ │ │ ├── STAR_OEM_toolkit_MPE.hsi │ │ ├── STAR_OEM_toolkit_MPE.smt │ │ ├── STAR_OEM_toolkit_MPE.stp │ │ ├── STAR_OEM_toolkit_centrifuge.hs_ │ │ ├── STAR_OEM_toolkit_centrifuge.hsi │ │ ├── STAR_OEM_toolkit_centrifuge.smt │ │ ├── STAR_OEM_toolkit_centrifuge.stp │ │ ├── STAR_OEM_toolkit_pH.hs_ │ │ ├── STAR_OEM_toolkit_pH.hsi │ │ ├── STAR_OEM_toolkit_pH.smt │ │ ├── STAR_OEM_toolkit_pH.stp │ │ ├── STAR_OEM_wFan.hsl │ │ ├── STAR_OEM_wFan.med │ │ ├── STAR_OEM_wFan.stp │ │ ├── STAR_OEM_wFan.sub │ │ ├── testWasher.hsl │ │ ├── testWasher.med │ │ ├── testWasher.stp │ │ ├── testWasher.sub │ │ ├── ~Hx1C7B.hsl │ │ ├── ~Hx1C7B.sub │ │ ├── ~Hx1C7B.tmp │ │ ├── ~Hx1DE8.hsl │ │ ├── ~Hx1DE8.sub │ │ ├── ~Hx1DE8.tmp │ │ ├── ~Hx2A1D.hsl │ │ ├── ~Hx2A1D.sub │ │ ├── ~Hx2A1D.tmp │ │ ├── ~Hx2D5B.hsl │ │ ├── ~Hx2D5B.sub │ │ ├── ~Hx2D5B.tmp │ │ ├── ~Hx305.hsl │ │ ├── ~Hx305.sub │ │ ├── ~Hx305.tmp │ │ ├── ~Hx393D.hsi │ │ ├── ~Hx393D.tmp │ │ ├── ~Hx3D8A.hsl │ │ ├── ~Hx3D8A.sub │ │ ├── ~Hx3D8A.tmp │ │ ├── ~Hx4005.hsl │ │ ├── ~Hx4005.sub │ │ ├── ~Hx4005.tmp │ │ ├── ~Hx48F0.hsi │ │ ├── ~Hx48F0.tmp │ │ ├── ~Hx5A3E.hsl │ │ ├── ~Hx5A3E.sub │ │ ├── ~Hx5FF.hsl │ │ ├── ~Hx5FF.sub │ │ ├── ~Hx5FF.tmp │ │ ├── ~Hx68E5.hsl │ │ ├── ~Hx68E5.sub │ │ ├── ~Hx68E5.tmp │ │ ├── ~Hx7218.hsl │ │ ├── ~Hx7218.tmp │ │ ├── ~Hx7406.hsl │ │ ├── ~Hx7406.sub │ │ ├── ~Hx7A41.hsi │ │ ├── ~Hx8511.hsl │ │ ├── ~Hx8511.sub │ │ ├── ~Hx8511.tmp │ │ ├── ~Hx8AF.hsl │ │ ├── ~Hx8AF.sub │ │ ├── ~Hx8AF.tmp │ │ ├── ~HxAB5D.hsl │ │ ├── ~HxAB5D.stp │ │ ├── ~HxAB5D.sub │ │ ├── ~HxB3C9.hsl │ │ ├── ~HxB3C9.sub │ │ ├── ~HxB54F.hsi │ │ ├── ~HxB54F.tmp │ │ ├── ~HxC302.hsl │ │ ├── ~HxC302.sub │ │ ├── ~HxC302.tmp │ │ ├── ~HxCAAD.hsl │ │ ├── ~HxCAAD.tmp │ │ ├── ~HxE052.hsi │ │ ├── ~HxE052.tmp │ │ ├── ~HxE82B.hsl │ │ ├── ~HxE82B.sub │ │ ├── ~HxE82B.tmp │ │ ├── ~HxEF83.hsl │ │ ├── ~HxEF83.sub │ │ ├── ~HxEF83.tmp │ │ ├── ~HxFA7A.hsi │ │ ├── ~HxFA7A.tmp │ │ └── ~ReAB0E.res │ ├── templates/ │ │ ├── ai_template/ │ │ │ ├── deck.lay │ │ │ ├── deck.res │ │ │ ├── preprompt.py │ │ │ ├── robot_method.py │ │ │ └── voice.py │ │ └── basic_template/ │ │ ├── deck.lay │ │ ├── deck.res │ │ └── robot_method.py │ └── transport/ │ ├── __init__.py │ └── transport.py ├── pytest.ini ├── requirements.txt ├── setup.cfg ├── setup.py └── tests/ ├── __init__.py └── interface_tests.py ================================================ FILE CONTENTS ================================================ ================================================ FILE: .gitattributes ================================================ * text eol=lf *.lay binary *.dll* binary *.pdb binary *.hsl binary *.hsi binary *.hs_ binary *.sub binary *.smt binary *.stp binary *.chm binary *.chw binary *.ico binary *.med binary *.res binary *.png binary *.bmp binary *.exe filter=lfs diff=lfs merge=lfs -text *.zip filter=lfs diff=lfs merge=lfs -text ================================================ FILE: .gitignore ================================================ *.pyc *__pycache__ *.DS_store *.swp pyhamilton/LAY-BACKUP dist *.egg-info .ipynb_checkpoints build/ dist/ *.egg-info/ **/tadm_report_*.html ================================================ FILE: .pylintrc ================================================ # This Pylint rcfile contains a best-effort configuration to uphold the # best-practices and style described in the Google Python style guide: # https://google.github.io/styleguide/pyguide.html # # Its canonical open-source location is: # https://google.github.io/styleguide/pylintrc [MASTER] # Files or directories to be skipped. They should be base names, not paths. ignore=third_party # Files or directories matching the regex patterns are skipped. The regex # matches against base names, not paths. ignore-patterns= # Pickle collected data for later comparisons. persistent=no # List of plugins (as comma separated values of python modules names) to load, # usually to register additional checkers. load-plugins= # Use multiple processes to speed up Pylint. jobs=4 # Allow loading of arbitrary C extensions. Extensions are imported into the # active Python interpreter and may run arbitrary code. unsafe-load-any-extension=no [MESSAGES CONTROL] # Only show warnings with the listed confidence levels. Leave empty to show # all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED confidence= # Enable the message, report, category or checker with the given id(s). You can # either give multiple identifier separated by comma (,) or put this option # multiple time (only on the command line, not in the configuration file where # it should appear only once). See also the "--disable" option for examples. #enable= # Disable the message, report, category or checker with the given id(s). You # can either give multiple identifiers separated by comma (,) or put this # option multiple times (only on the command line, not in the configuration # file where it should appear only once).You can also use "--disable=all" to # disable everything first and then reenable specific checks. For example, if # you want to run only the similarities checker, you can use "--disable=all # --enable=similarities". If you want to run only the classes checker, but have # no Warning level messages displayed, use"--disable=all --enable=classes # --disable=W" disable=abstract-method, apply-builtin, arguments-differ, attribute-defined-outside-init, backtick, bad-option-value, basestring-builtin, buffer-builtin, c-extension-no-member, consider-using-enumerate, cmp-builtin, cmp-method, coerce-builtin, coerce-method, delslice-method, div-method, duplicate-code, eq-without-hash, execfile-builtin, file-builtin, filter-builtin-not-iterating, fixme, getslice-method, global-statement, hex-method, idiv-method, implicit-str-concat-in-sequence, import-error, import-self, import-star-module-level, inconsistent-return-statements, input-builtin, intern-builtin, invalid-str-codec, locally-disabled, long-builtin, long-suffix, map-builtin-not-iterating, misplaced-comparison-constant, missing-function-docstring, metaclass-assignment, next-method-called, next-method-defined, no-absolute-import, no-else-break, no-else-continue, no-else-raise, no-else-return, no-init, # added no-member, no-name-in-module, no-self-use, nonzero-method, oct-method, old-division, old-ne-operator, old-octal-literal, old-raise-syntax, parameter-unpacking, print-statement, raising-string, range-builtin-not-iterating, raw_input-builtin, rdiv-method, reduce-builtin, relative-import, reload-builtin, round-builtin, setslice-method, signature-differs, standarderror-builtin, suppressed-message, sys-max-int, too-few-public-methods, too-many-ancestors, too-many-arguments, too-many-boolean-expressions, too-many-branches, too-many-instance-attributes, too-many-locals, too-many-nested-blocks, too-many-public-methods, too-many-return-statements, too-many-statements, trailing-newlines, unichr-builtin, unicode-builtin, unidiomatic-typecheck, unnecessary-pass, unpacking-in-except, useless-else-on-loop, useless-object-inheritance, useless-suppression, using-cmp-argument, wrong-import-order, xrange-builtin, zip-builtin-not-iterating, [REPORTS] # Set the output format. Available formats are text, parseable, colorized, msvs # (visual studio) and html. You can also give a reporter class, eg # mypackage.mymodule.MyReporterClass. output-format=text # Put messages in a separate file for each module / package specified on the # command line instead of printing them on stdout. Reports (if any) will be # written in a file name "pylint_global.[txt|html]". This option is deprecated # and it will be removed in Pylint 2.0. #files-output=no # Tells whether to display a full report or only the messages reports=no # Python expression which should return a note less than 10 (10 is the highest # note). You have access to the variables errors warning, statement which # respectively contain the number of errors / warnings messages and the total # number of statements analyzed. This is used by the global evaluation report # (RP0004). evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) # Template used to display messages. This is a python new-style format string # used to format the message information. See doc for all details #msg-template= [BASIC] # Good variable names which should always be accepted, separated by a comma good-names=main,_ # Bad variable names which should always be refused, separated by a comma bad-names= # Colon-delimited sets of names that determine each other's naming style when # the name regexes allow several styles. name-group= # Include a hint for the correct naming format with invalid-name include-naming-hint=no # List of decorators that produce properties, such as abc.abstractproperty. Add # to this list to register other decorators that produce valid properties. property-classes=abc.abstractproperty,cached_property.cached_property,cached_property.threaded_cached_property,cached_property.cached_property_with_ttl,cached_property.threaded_cached_property_with_ttl # Regular expression matching correct function names function-rgx=^(?:(?PsetUp|tearDown|setUpModule|tearDownModule)|(?P_?[A-Z][a-zA-Z0-9]*)|(?P_?[a-z][a-z0-9_]*))$ # Regular expression matching correct variable names variable-rgx=^[a-z][a-z0-9_]*$ # Regular expression matching correct constant names const-rgx=^(_?[A-Z][A-Z0-9_]*|__[a-z0-9_]+__|_?[a-z][a-z0-9_]*)$ # Regular expression matching correct attribute names attr-rgx=^_{0,2}[a-z][a-z0-9_]*$ # Regular expression matching correct argument names argument-rgx=^[a-z][a-z0-9_]*$ # Regular expression matching correct class attribute names class-attribute-rgx=^(_?[A-Z][A-Z0-9_]*|__[a-z0-9_]+__|_?[a-z][a-z0-9_]*)$ # Regular expression matching correct inline iteration names inlinevar-rgx=^[a-z][a-z0-9_]*$ # Regular expression matching correct class names class-rgx=^_?[A-Z][a-zA-Z0-9]*$ # Regular expression matching correct module names module-rgx=^(_?[a-z][a-z0-9_]*|__init__)$ # Regular expression matching correct method names method-rgx=(?x)^(?:(?P_[a-z0-9_]+__|runTest|setUp|tearDown|setUpTestCase|tearDownTestCase|setupSelf|tearDownClass|setUpClass|(test|assert)_*[A-Z0-9][a-zA-Z0-9_]*|next)|(?P_{0,2}[A-Z][a-zA-Z0-9_]*)|(?P_{0,2}[a-z][a-z0-9_]*))$ # Regular expression which should only match function or class names that do # not require a docstring. no-docstring-rgx=(__.*__|main|test.*|.*test|.*Test)$ # Minimum line length for functions/classes that require docstrings, shorter # ones are exempt. docstring-min-length=10 [TYPECHECK] # List of decorators that produce context managers, such as # contextlib.contextmanager. Add to this list to register other decorators that # produce valid context managers. contextmanager-decorators=contextlib.contextmanager,contextlib2.contextmanager # Tells whether missing members accessed in mixin class should be ignored. A # mixin class is detected if its name ends with "mixin" (case insensitive). ignore-mixin-members=yes # List of module names for which member attributes should not be checked # (useful for modules/projects where namespaces are manipulated during runtime # and thus existing member attributes cannot be deduced by static analysis. It # supports qualified module names, as well as Unix pattern matching. ignored-modules= # List of class names for which member attributes should not be checked (useful # for classes with dynamically set attributes). This supports the use of # qualified names. ignored-classes=optparse.Values,thread._local,_thread._local # List of members which are set dynamically and missed by pylint inference # system, and so shouldn't trigger E1101 when accessed. Python regular # expressions are accepted. generated-members= [FORMAT] # Maximum number of characters on a single line. #max-line-length=80 # TODO(https://github.com/PyCQA/pylint/issues/3352): Direct pylint to exempt # lines made too long by directives to pytype. # Regexp for a line that is allowed to be longer than the limit. ignore-long-lines=(?x)( ^\s*(\#\ )??$| ^\s*(from\s+\S+\s+)?import\s+.+$) # Allow the body of an if to be on the same line as the test if there is no # else. single-line-if-stmt=yes # List of optional constructs for which whitespace checking is disabled. `dict- # separator` is used to allow tabulation in dicts, etc.: {1 : 1,\n222: 2}. # `trailing-comma` allows a space between comma and closing bracket: (a, ). # `empty-line` allows space-only lines. #no-space-check= # Maximum number of lines in a module max-module-lines=99999 # String used as indentation unit. The internal Google style guide mandates 2 # spaces. Google's externaly-published style guide says 4, consistent with # PEP 8. Here, we use 2 spaces, for conformity with many open-sourced Google # projects (like TensorFlow). indent-string=' ' # Number of spaces of indent required inside a hanging or continued line. indent-after-paren=4 # Expected format of line ending, e.g. empty (any line ending), LF or CRLF. expected-line-ending-format= [MISCELLANEOUS] # List of note tags to take in consideration, separated by a comma. notes=TODO [STRING] # This flag controls whether inconsistent-quotes generates a warning when the # character used as a quote delimiter is used inconsistently within a module. check-quote-consistency=yes [VARIABLES] # Tells whether we should check for unused import in __init__ files. init-import=no # A regular expression matching the name of dummy variables (i.e. expectedly # not used). dummy-variables-rgx=^\*{0,2}(_$|unused_|dummy_) # List of additional names supposed to be defined in builtins. Remember that # you should avoid to define new builtins when possible. additional-builtins= # List of strings which can identify a callback function by name. A callback # name must start or end with one of those strings. callbacks=cb_,_cb # List of qualified module names which can have objects that can redefine # builtins. redefining-builtins-modules=six,six.moves,past.builtins,future.builtins,functools [LOGGING] # Logging modules to check that the string format arguments are in logging # function parameter format logging-modules=logging,absl.logging,tensorflow.io.logging [SIMILARITIES] # Minimum lines number of a similarity. min-similarity-lines=4 # Ignore comments when computing similarities. ignore-comments=yes # Ignore docstrings when computing similarities. ignore-docstrings=yes # Ignore imports when computing similarities. ignore-imports=no [SPELLING] # Spelling dictionary name. Available dictionaries: none. To make it working # install python-enchant package. spelling-dict= # List of comma separated words that should not be checked. spelling-ignore-words= # A path to a file that contains private dictionary; one word per line. spelling-private-dict-file= # Tells whether to store unknown words to indicated private dictionary in # --spelling-private-dict-file option instead of raising a message. spelling-store-unknown-words=no [IMPORTS] # Deprecated modules which should not be used, separated by a comma deprecated-modules=regsub, TERMIOS, Bastion, rexec, sets # Create a graph of every (i.e. internal and external) dependencies in the # given file (report RP0402 must not be disabled) import-graph= # Create a graph of external dependencies in the given file (report RP0402 must # not be disabled) ext-import-graph= # Create a graph of internal dependencies in the given file (report RP0402 must # not be disabled) int-import-graph= # Force import order to recognize a module as part of the standard # compatibility libraries. known-standard-library= # Force import order to recognize a module as part of a third party library. known-third-party=enchant, absl # Analyse import fallback blocks. This can be used to support both Python 2 and # 3 compatible code, which means that the block might have code that exists # only in one or another interpreter, leading to false positives when analysed. analyse-fallback-blocks=no [CLASSES] # List of method names used to declare (i.e. assign) instance attributes. defining-attr-methods=__init__, __new__, setUp # List of member names, which should be excluded from the protected access # warning. exclude-protected=_asdict, _fields, _replace, _source, _make # List of valid names for the first argument in a class method. valid-classmethod-first-arg=cls, class_ # List of valid names for the first argument in a metaclass class method. valid-metaclass-classmethod-first-arg=mcs [EXCEPTIONS] # Exceptions that will emit a warning when being caught. Defaults to # "Exception" overgeneral-exceptions=StandardError, Exception, BaseException ================================================ FILE: .vscode/settings.json ================================================ { "editor.tabSize": 2, "files.trimTrailingWhitespace": true, "cSpell.words": ["iswap", "pyhamilton", "subresource"], "python.linting.pylintEnabled": true, "python.testing.pytestArgs": ["pyhamilton"], "python.testing.unittestEnabled": false, "python.testing.pytestEnabled": true, "python.testing.autoTestDiscoverOnSaveEnabled": true, "editor.rulers": [100], "editor.formatOnSave": true, "files.exclude": { "**/__pycache__": true } } ================================================ FILE: LICENSE ================================================ MIT License Copyright (c) 2018 dgretton Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ================================================ FILE: PKG-INFO ================================================ Metadata-Version: 2.1 Name: pyhamilton Version: 1.48 Summary: Python for Hamilton liquid handling robots Home-page: https://github.com/dgretton/pyhamilton.git Author: Dana Gretton Author-email: dgretton@mit.edu License: MIT License-File: LICENSE Forthcoming due to markdown incompatibility ================================================ FILE: README.md ================================================ # PyHamilton **Python for Hamilton liquid handling robots** Hamilton software only works on Windows, so the same goes for PyHamilton. Developed for Hamilton STAR and STARlet on Windows XP, Windows 7, and Windows 10. VANTAGE series supported with plugin. Other robot models and operating systems not supported yet. Please post on [labautomation.io](https://labautomation.io/) if you have any questions, comments, issues, or feedback! You can also email stefanmgolas@gmail.com for troubleshooting help. **Disclaimer:** PyHamilton is not officially endorsed or supported by the Hamilton Company. Please direct any questions to the above email address, and not to Hamilton Company. ## Example usage ```python if __name__ == "__main__": from pyhamilton import HamiltonInterface, INITIALIZE with HamiltonInterface() as ham_int: ham_int.wait_on_response(ham_int.send_command(INITIALIZE)) ``` ## Guides Here is a protocol repository with guides about how to do things like magnetic bead washes and thermal cycling. These are all NGS protocols, but you can use the same steps in many other experiments. [NGS Protocol Library](https://github.com/stefangolas/ngs-protocols) ## Documentation [Available online](https://dgretton.github.io/pyhamilton-docs/). ## Tutorial Video https://www.youtube.com/watch?v=G92neaVfvyw ## Installation 1. **Install and test the standard Hamilton software suite for your system.** We no longer host the link here, please contact Hamilton for a copy of the Venus software if you don't have one already 2. **Install [Python <=3.13.](https://www.python.org/downloads/windows/)** Make sure to check the box that asks if you want to add Python to your path variable. 3. **Make sure git is installed.** https://git-scm.com/download/win 4. **Make sure you have .NET framework 4.0 or higher installed.** https://www.microsoft.com/en-us/download/details.aspx?id=17851 5. [**Install Microsoft Access database engine**](https://www.microsoft.com/en-us/download/details.aspx?id=54920). This must have the same bit number (32-bit or 64-bit) as your Python version, and the rest of your Microsoft Office applications. 6. **Update your pip and setuptools.** ``` > python -m pip install --upgrade pip > pip install --upgrade setuptools ``` 7. **Install pyhamilton.** ``` git clone https://github.com/dgretton/pyhamilton cd pyhamilton pip install -e . ``` Now changes you make to the cloned repo will be reflected in your package install. You can test new code this way and then push it to a fork. 8. **Run the pyhamilton autoconfig tool from the command line.** This will automatically execute all the installers in `pyhamilton/bin` and will copy all the files in `pyhamilton\library` to `C:/Program Files (x86)/HAMILTON/Library`. You are welcome to forgo this command and perform the steps manually if you are concerned about file overwriting. ``` pyhamilton-configure ``` Press accept to proceed with the bundled installers. 9. **Test your PyHamilton installation**
The easiest way to test your PyHamilton installation is by running the following in your terminal ``` mkdir new-project cd new-project pyhamilton-new-project py robot_method.py ``` 10. **Run.** If you have other Python versions installed, always run pyhamilton with `py yourmethod.py` (the bundled Python launcher, which interprets shebangs) or `python3 yourmethod.py` ## Installation Troubleshooting 1. If you encounter an error relating to HxFan (i.e., your robot does not have a fan), open pyhamilton/star-oem/VENUS_Method/STAR_OEM_Test.med, navigate to the "HxFan" grouping, and delete all commands under this grouping. 2. If you would like to test your PyHamilton installation on a computer not connected to a Hamilton robot, use `HamiltonInterface(simulate=True)` to open your interface inside your robot script. 3. If your initialization hangs (such as on initial_error_example.py), try these steps:
a. Make sure you don't have any other program running which is communicating with the robot e.g. Venus run control
b. Make sure the .dlls referenced in ```__init__.py``` are unblocked. See [this StackOverflow thread](https://stackoverflow.com/questions/28840880/pythonnet-filenotfoundexception-unable-to-find-assembly) for more details. 4. If you get an error like `pyhamilton-configure is not recognized as an internal or external command, operable program or batch file,` make sure the directory containing your Python interpreter is in your `path` environment variable. ## Applications - [A high-throughput platform for feedback-controlled directed evolution](https://www.biorxiv.org/content/10.1101/2020.04.01.021022v1), _preprint_ - [Flexible open-source automation for robotic bioengineering](https://www.biorxiv.org/content/10.1101/2020.04.14.041368v1), _preprint_ _Developed for the Sculpting Evolution Group at the MIT Media Lab_ ================================================ FILE: imgs/README.md ================================================ # PyHamilton Reference Guide Author: Stefan Golas _(Contact stefanmgolas@gmail.com)_ ## Contents - Intro - Installation - Your First PyHamilton Method - Breaking it Down - How PyHamilton Works - Expanding The API ## Intro PyHamilton is an open-source Python interface for programming Hamilton liquid-handling robots. PyHamilton is designed to be accessible while affording unlimited flexibility to the developer. We believe that an open-source community driven framework will accelerate discovery and enable a new generation of biological workflows. ## Installation 1. **Install and test the standard Hamilton software suite for your system.** 2. **Install 32-bit python <=3.9**, preferably using the executable installer at https://www.python.org/downloads/release/python-390/. Python 3.10+ is known to cause an installation issue with some required pythonnet modules. 3. **Make sure git is installed.** https://git-scm.com/download/win 4. **Make sure you have .NET framework 4.0 or higher installed.** https://www.microsoft.com/en-us/download/details.aspx?id=17851 5. **Update your pip and setuptools.** ``` > python -m pip install --upgrade pip > pip install --upgrade setuptools ``` 6. **Install pyhamilton.** ``` pip install pyhamilton ``` 7. **Run the pyhamilton autoconfig tool from the command line.** ``` pyhamilton-config ``` Press accept to proceed with the bundled installers. ## Your First PyHamilton Method Here is how to write your first PyHamilton method. First, create a new directory called `my-project`. Then, open the Hamilton Method Editor and create a new Layout file. Add 5 96-tip tip carriers named "tips_1", "tips_2", etc. Then add 5 96-well plates named "plate_1", "plate_2", etc.
![Deck layout](https://raw.githubusercontent.com/dgretton/pyhamilton/master/imgs/decklay.png) _deck.lay_ Next, create a file named `robot_method.py` in your preferred text editor. Inside this file, type ``` from pyhamilton import (HamiltonInterface, LayoutManager, ResourceType, Plate96, Tip96, initialize, tip_pick_up, tip_eject, aspirate, dispense, tip_pick_up_96, tip_eject_96, aspirate_96, dispense_96, oemerr, , move_plate) ``` ``` my-project │ deck.lay │ robot_method.py ``` _Project directory structure_ In `robot_method.py`,


``` my-project │ README.md │ file001.txt │ └───folder1 │ │ file011.txt ``` ================================================ FILE: imgs/text ================================================ ================================================ FILE: pandoc_pdf.sh ================================================ pandoc --from=markdown+abbreviations+tex_math_single_backslash \ --pdf-engine=xelatex --variable=mainfont:"DejaVu Sans" \ --toc --toc-depth=4 --output=../pyhamilton-docs/pyhamilton-doc.pdf \ build/pdf-intermediate.md ================================================ FILE: pyhamilton/__init__.py ================================================ """ Pyhamilton """ import os import shutil from os.path import dirname, join, abspath PACKAGE_PATH = abspath(dirname(__file__)) LAY_BACKUP_DIR = join(PACKAGE_PATH, 'LAY-BACKUP') if not os.path.exists(LAY_BACKUP_DIR): os.mkdir(LAY_BACKUP_DIR) OEM_STAR_PATH = join(PACKAGE_PATH, 'star-oem') if not (os.path.exists(OEM_STAR_PATH) and os.path.exists(os.path.join(OEM_STAR_PATH, 'RunHSLExecutor.dll')) and os.path.exists(os.path.join(OEM_STAR_PATH, 'HSLHttp.dll'))): raise FileNotFoundError('pyhamilton requires .../site-packages/pyhamilton/STAR-OEM, distributed separately.') OEM_LAY_PATH = join(OEM_STAR_PATH, 'VENUS_Method', 'STAR_OEM_Test.lay') OEM_HSL_PATH = join(OEM_STAR_PATH, 'VENUS_Method', 'STAR_OEM_noFan.hsl') OEM_RUN_EXE_PATH = 'C:\\Program Files (x86)\\HAMILTON\\Bin\\HxRun.exe' from .interface import * from .oemerr import * from .liquid_handling_wrappers import * from .devices import * from .resources import * from .liquid_class_db import * from .consumables import * from .ngs import * from .liquid_classes import * this_file_dir = os.path.dirname(os.path.abspath(__file__)) PACKAGE_DIR = os.path.abspath(os.path.join(this_file_dir)) LIBRARY_DIR = os.path.join(PACKAGE_DIR, 'library') TEMPLATE_DIR = os.path.join(PACKAGE_DIR, 'templates/basic_template') AI_TEMPLATE_DIR = os.path.join(PACKAGE_DIR, 'templates/ai_template') EXE_DIR = os.path.join(PACKAGE_DIR, 'bin') exe_http = os.path.join(PACKAGE_DIR, 'bin', 'Hamilton HSLHttp Library Installer Version 2.7.exe') exe_json = os.path.join(PACKAGE_DIR, 'bin', 'HSLJson Library v2.0.1 Installer.exe') exe_pH = os.path.join(PACKAGE_DIR, 'bin', 'Hamilton pH Module v2.2.exe') exe_mpe = os.path.join(PACKAGE_DIR, 'bin', 'Hamilton MPE HSL Driver.msi') def full_paths_list(directory_abs_path): list_files = os.listdir(directory_abs_path) list_file_paths = [directory_abs_path + '\\' + file for file in list_files] return list_file_paths def recursive_copy(source_dir, target_dir): source_list = full_paths_list(source_dir) for file in source_list: if os.path.isfile(file): target_file = os.path.join(target_dir, os.path.basename(file)) if not os.path.exists(target_file): shutil.copy(file, target_file) if os.path.isdir(file): target_subdir = os.path.join(target_dir, os.path.basename(file)) if not os.path.exists(target_subdir): os.mkdir(target_subdir) recursive_copy(file, target_subdir) def autoconfig(): input("""\n This tool automatically configures your PyHamilton installation by copying library files from pyhamilton/library into C:/Program Files (x86)/HAMILTON/Library. It is recommended you back up your Hamilton installation folder in the rare event of a file overwrite. Press enter to continue, or press ctrl+c to cancel the installation process.""") for filename in os.listdir(EXE_DIR): file_path = os.path.join(EXE_DIR, filename) os.startfile(file_path) hamilton_lib_dir = os.path.abspath('C:/Program Files (x86)/HAMILTON/Library') print("Copying files to Hamilton library") print(LIBRARY_DIR) recursive_copy(LIBRARY_DIR, hamilton_lib_dir) print("Configuration completed") user_home = os.path.expanduser("~") config_dir = os.path.join(user_home, ".pyhamilton") os.makedirs(config_dir, exist_ok=True) source_defaults_path = os.path.join(PACKAGE_DIR, "defaults", "defaults.json") target_defaults_path = os.path.join(config_dir, "defaults.json") if not os.path.exists(source_defaults_path): print(f"ERROR: Could not find source defaults file at: {source_defaults_path}") else: shutil.copyfile(source_defaults_path, target_defaults_path) print(f"Copied default config to: {target_defaults_path}") print("Configuration completed") def create_project(): current_dir = os.path.abspath(os.getcwd()) print("Creating project template") recursive_copy(TEMPLATE_DIR, current_dir) def create_ai_project(): current_dir = os.path.abspath(os.getcwd()) print("Creating AI assistant project template") recursive_copy(AI_TEMPLATE_DIR, current_dir) ================================================ FILE: pyhamilton/consumables/__init__.py ================================================ from .consumables import (ReagentTrackedFalconCarrier24, ReagentTrackedPlate96, ReagentTrackedReservoir60mL, ReagentTrackedEppiCarrier32, ReagentTrackedBulkPlate, ReagentTrackedPlate24, tracked_volume_aspirate_96, tracked_volume_aspirate, generate_reagent_summary, generate_tip_use_summary) ================================================ FILE: pyhamilton/consumables/consumables.py ================================================ from ..interface import HamiltonInterface from ..resources import DeckResource, ResourceType,layout_item, LayoutManager from ..resources import BulkReagentPlate, FalconCarrier24, EppiCarrier32, Reservoir60mL, Plate24, Plate96 from pathlib import Path import json class VolumeConsumptionTracker: def __init__(self, num_positions): self.initial_volumes = {k:v for k,v in [(idx, 0) for idx in range(num_positions)]} self.volumes = self.initial_volumes.copy() def aspirate_volume(self, well_index, volume): self.volumes[well_index] += volume class TrackedContainer: """Base class for any tracked container type with volume bookkeeping.""" def __init__(self): pass def aspirate_volume(self, well_index, volume): """Subtract volume from one or more wells. Must be overridden in subclasses.""" raise NotImplementedError( f"{self.__class__.__name__} must implement aspirate_volume()" ) class TrackedReagentVessel(TrackedContainer): def __init__(self, *args, **kwargs): self.reagent_map = {} def assign_reagent_map(self, reagent_name: str, positions: list[int]) -> list[tuple[TrackedContainer, int]]: ''' Assigns reagent positions for a specific reagent and returns the tuple of (container, position) for each position so we can pass the output to aspirate functions. ''' self.reagent_map[reagent_name] = positions return self.reagent_positions(reagent_name) def reset_volumes(self): """ Resets all volume trackers in the container to 0. """ self.volumes = {pos: 0 for pos in self.volumes} def calculate_required_reagent_volume(self, reagent_name: str): # Use the negative volume from the tracker to determine reagent consumption for this tracked resource # return -self.volumes[self.reagent_map[reagent_name]] # Above won't work because self.reagent_map[reagent_name] is a list of positions, we want to do a list comprehension # Right now this only handles single-well reagents but should be extended to handle reagents distributed across # Multiple wells return -sum(self.volumes[pos] for pos in self.reagent_map[reagent_name]) + self.dead_volume def all_required_reagent_volumes(self): return {self.layout_name(): {reagent: self.calculate_required_reagent_volume(reagent) for reagent in self.reagent_map}} def reagent_positions(self, reagent_name): # List comprehension of form [(self, pos) for pos in self.reagent_map[reagent_name]] return [(self, pos) for pos in self.reagent_map[reagent_name]] class ReagentTrackedPlate96(Plate96, TrackedReagentVessel): def __init__(self, *args, **kwargs): Plate96.__init__(self, *args, **kwargs) TrackedReagentVessel.__init__(self) self.volumes = {k:v for k,v in [(idx, 0) for idx in range(96)]} self.dead_volume = kwargs.get('dead_volume', 10) # uL def aspirate_volume(self, well_index, volume): self.volumes[well_index] -= volume class ReagentTrackedBulkPlate(BulkReagentPlate, TrackedReagentVessel): def __init__(self, *args, **kwargs): Plate96.__init__(self, *args, **kwargs) TrackedReagentVessel.__init__(self) self.volumes = {0: 0} self.dead_volume = 100 # The plate is a single container, so we subtract all volumes from one element in the tracker. This overrides the base method. def aspirate_volume(self, well_index, volume): self.volumes[0] -= volume # We return the plate object itself so we can pass it to 96 channel commands. This overrides the base method def assign_reagent_map(self, reagent_name, positions): self.reagent_map[reagent_name] = positions return self def calculate_required_reagent_volume(self, reagent_name): # Use the negative volume from the tracker to determine reagent consumption for this tracked resource return -self.volumes[0] + self.dead_volume class ReagentTrackedPlate24(Plate24, TrackedReagentVessel): def __init__(self, *args, **kwargs): Plate24.__init__(self, *args, **kwargs) TrackedReagentVessel.__init__(self) self.volumes = {k:v for k,v in [(idx, 0) for idx in range(24)]} self.dead_volume = kwargs.get('dead_volume', 20) # uL def aspirate_volume(self, well_index, volume): self.volumes[well_index] -= volume class ReagentTrackedReservoir60mL(Reservoir60mL, TrackedReagentVessel): def __init__(self, *args, **kwargs): Reservoir60mL.__init__(self, *args, **kwargs) TrackedReagentVessel.__init__(self) self.volumes = {0: 0} self.dead_volume = kwargs.get('dead_volume', 200) # uL # The 60mL trough is a single well, so we subtract all volumes from one element in the tracker. This overrides the base method. def aspirate_volume(self, well_index, volume): self.volumes[0] -= volume def calculate_required_reagent_volume(self, reagent_name): # Use the negative volume from the tracker to determine reagent consumption for this tracked resource return -self.volumes[0] + self.dead_volume def height_to_volume(self, height): pass class ReagentTrackedFalconCarrier24(FalconCarrier24, TrackedReagentVessel): def __init__(self, *args, **kwargs): FalconCarrier24.__init__(self, *args, **kwargs) TrackedReagentVessel.__init__(self) self.volumes = {k:v for k,v in [(idx, 0) for idx in range(24)]} self.dead_volume = kwargs.get('dead_volume', 10) # uL def aspirate_volume(self, well_index, volume): self.volumes[well_index] -= volume class ReagentTrackedEppiCarrier32(EppiCarrier32, TrackedReagentVessel): def __init__(self, *args, **kwargs): EppiCarrier32.__init__(self, *args, **kwargs) TrackedReagentVessel.__init__(self) self.volumes = {k:v for k,v in [(idx, 0) for idx in range(32)]} self.dead_volume = kwargs.get('dead_volume', 10) # uL def aspirate_volume(self, well_index, volume): self.volumes[well_index] -= volume # Helper function to get the class name of an object def get_class_name(obj): """Returns the name of the object's class as a string.""" return type(obj).__name__ def generate_reagent_summary(tracked_vessels: list, units_default: str = "uL", output_file: str = None): """ Generates a summary of reagent consumption from a list of tracked vessels. Now also includes vessels with custom labels even if they have no reagent consumption. """ summary = {"units_default": units_default} for vessel in tracked_vessels: vessel_name = vessel.layout_name() if isinstance(vessel, TrackedReagentVessel): vessel_data = vessel.all_required_reagent_volumes()[vessel_name] else: vessel_data = {} # Check if vessel has a custom label has_custom_label = hasattr(vessel, 'custom_label') and vessel.custom_label is not None # Skip vessels with no reagents AND no custom label if not has_custom_label and (not vessel_data or all(vol <= 0 for vol in vessel_data.values())): continue summary[vessel_name] = { "class_name": get_class_name(vessel), "positions": {} } # Add custom label if present if has_custom_label: summary[vessel_name]["custom_label"] = vessel.custom_label # For each reagent in this vessel, find which positions it occupies for reagent_name, total_volume in vessel_data.items(): if total_volume <= 0: continue # Get the positions where this reagent is located reagent_positions = vessel.reagent_map.get(reagent_name, []) for pos in reagent_positions: # Get the volume consumed from this specific position pos_volume = -vessel.volumes.get(pos, 0) if vessel.volumes.get(pos, 0) < 0 else 0 if pos_volume > 0: summary[vessel_name]["positions"][pos] = { "reagent": reagent_name, "volume": pos_volume, "unit": "uL" } # Write to JSON file if output_file is specified if output_file: Path(output_file).parent.mkdir(parents=True, exist_ok=True) with open(output_file, 'w', encoding='utf-8') as f: json.dump(summary, f, indent=2, ensure_ascii=False) print(f"Reagent summary written to {output_file}") return summary def generate_tip_use_summary(tracked_tips_list, output_file=None): """ Generate tip consumption summary data from TrackedTips objects. Parameters ---------- tracked_tips_list : list[TrackedTips] List of TrackedTips objects to analyze Returns ------- dict Summary data structure with consumption details for LoadingVis """ from datetime import datetime report_data = { "report_generated": datetime.now().isoformat(), "tip_trackers": {}, "summary": { "total_trackers": len(tracked_tips_list), "total_tips_available": 0, "total_tips_consumed": 0, "total_tips_capacity": 0, "overall_consumption_rate": 0.0 } } for i, tracker in enumerate(tracked_tips_list, 1): # Calculate consumption metrics for this tracker total_tips = tracker.total_tips() remaining_tips = tracker.count_remaining() consumed_tips = total_tips - remaining_tips consumption_rate = (consumed_tips / total_tips * 100) if total_tips > 0 else 0 # Update summary totals report_data["summary"]["total_tips_capacity"] += total_tips report_data["summary"]["total_tips_available"] += remaining_tips report_data["summary"]["total_tips_consumed"] += consumed_tips # Analyze by rack rack_details = [] rack_start_idx = 0 for rack in tracker.tip_racks: rack_total = rack._num_items rack_occupied = sum(1 for j in range(rack_total) if tracker.is_occupied(rack_start_idx + j)) rack_consumed = rack_total - rack_occupied rack_consumption_rate = (rack_consumed / rack_total * 100) if rack_total > 0 else 0 rack_info = { "name": rack.layout_name(), "total_tips": rack_total, "tips_consumed": rack_consumed, "tips_remaining": rack_occupied, "consumption_rate": round(rack_consumption_rate, 1) } rack_details.append(rack_info) rack_start_idx += rack_total # Store tracker data tracker_data = { "tracker_id": tracker.tracker_id, "volume_capacity": tracker.volume_capacity, "total_tips": total_tips, "tips_consumed": consumed_tips, "tips_remaining": remaining_tips, "consumption_rate": round(consumption_rate, 1), "num_racks": len(tracker.tip_racks), "racks": rack_details } report_data["tip_trackers"][f"tracker_{i}"] = tracker_data # Calculate overall summary total_capacity = report_data["summary"]["total_tips_capacity"] total_consumed = report_data["summary"]["total_tips_consumed"] if total_capacity > 0: overall_rate = (total_consumed / total_capacity * 100) report_data["summary"]["overall_consumption_rate"] = round(overall_rate, 1) if output_file: with open(output_file, "w") as f: json.dump(report_data, f) return report_data def tracked_volume_aspirate(ham_int: HamiltonInterface, plate_poss: list[tuple[TrackedContainer, int]], vols: list, **kwargs): response = ham_int.aspirate(plate_poss, vols, **kwargs) filtered_pairs = [(pos, vol) for pos, vol in zip(plate_poss, vols) if pos is not None] plate_poss, vols = zip(*filtered_pairs) if filtered_pairs else ([], []) try: for (plate, well_index), vol in zip(plate_poss, vols): plate.aspirate_volume(well_index, vol) except AttributeError: return response return response def tracked_volume_aspirate_96(ham_int: HamiltonInterface, plate: TrackedContainer, vol: int, **kwargs): ham_int.aspirate_96(plate, vol, **kwargs) try: # In case the plate doesn't implement aspirate_volume, we just skip it for well_idx in range(96): plate.aspirate_volume(well_idx, vol) except AttributeError: return ================================================ FILE: pyhamilton/defaultcmds.py ================================================ """ Built-in commands, definitions of their parameters, and defaults. """ _channel_patt_16 = '1'*8 + '0'*8 _channel_patt_96 = '1'*96 _fan_port = 6 # on module load, scan COM ports to see if the usual fan COM number (6) has been reassigned by the OS try: import serial.tools.list_ports for port in serial.tools.list_ports.comports(): port_parse = str(port).split(' ') if 'Isolated' in port_parse and 'RS-485' in port_parse: _fan_port = int(port_parse[0][-1]) except Exception: pass from .defaults import defaults cfg = defaults() defaults_by_cmd = { # 'field':None indicates field is required when assembling command 'initialize':('INITIALIZE', { 'initializeAlways':0 }), 'channelTipPickUp':('PICKUP', { 'tipSequence':'', # (string) leave empty if you are going to provide specific labwarePositions below 'labwarePositions':'', # (string) leave empty if you are going to provide a sequence name above.'LabwareId1, positionId1; LabwareId2,positionId2; ....' 'channelVariable':_channel_patt_16, # (string) channel pattern e.g. '11110000' 'sequenceCounting':0, # (integer) 0=don´t autoincrement, 1=Autoincrement 'channelUse':1 # (integer) 1=use all sequence positions (no empty wells), 2=keep channel pattern }), 'channelTipEject':('EJECT', { 'wasteSequence':'', # (string) leave empty if you are going to provide specific labware-positions below or ejecting to default waste 'labwarePositions':'', # (string) leave empty if you are going to provide a sequence name above.'LabwareId1, positionId1; LabwareId2,positionId2; ....' 'channelVariable':_channel_patt_16, # (string) channel pattern e.g. "11110000" 'sequenceCounting':0, # (integer) 0=don´t autoincrement, 1=Autoincrement. Value omitted if ejecting to default waste 'channelUse':1, # (integer) 1=use all sequence positions (no empty wells), 2=keep channel pattern 'useDefaultWaste':0, # (integer) 0=eject to custom waste sequence, 1=Use default waste 'xDisplacement':0.0, 'yDisplacement':0.0, 'zDisplacement':0.0 }), 'channelAspirate':('ASPIRATE', { 'aspirateSequence':'', # (string) leave empty if you are going to provide specific labware-positions below 'labwarePositions':'', # (string) leave empty if you are going to provide a sequence name above. 'LabwareId1, positionId1; LabwareId2,positionId2; ....' 'volumes':None, # (float or string) enter a single value used for all channels or enter an array of values for each channel like [10.0,15.5,11.2] 'channelVariable':_channel_patt_16, # (string) channel pattern e.g. "11110000" 'liquidClass':None, # (string) 'sequenceCounting':0, # (integer) 0=don´t autoincrement, 1=Autoincrement 'channelUse':1, # (integer) 1=use all sequence positions (no empty wells), 2=keep channel pattern 'aspirateMode':0, # (integer) 0=Normal Aspiration, 1=Consecutive (don´t aspirate blowout), 2=Aspirate all 'capacitiveLLD':0, # (integer) 0=Off, 1=Max, 2=High, 3=Mid, 4=Low, 5=From labware definition 'pressureLLD':0, # (integer) 0=Off, 1=Max, 2=High, 3=Mid, 4=Low, 5=From liquid class definition 'liquidFollowing':0, # (integer) 0=Off , 1=On 'submergeDepth':2.0, # (float) mm of immersion below liquid´s surface to start aspiration when using LLD 'liquidHeight':1.0, # (float) mm above container´s bottom to start aspiration when not using LLD 'maxLLdDifference':0.0, # (float) max mm height different between cLLD and pLLD detected liquid levels 'mixCycles':0, # (integer) number of mixing cycles (1 cycle = 1 asp + 1 disp) 'mixPosition':0.0, # (float) additional immersion mm below aspiration position to start mixing 'mixVolume':0.0, # (float) mix volume 'xDisplacement':0.0, 'yDisplacement':0.0, 'zDisplacement':0.0, 'airTransportRetractDist':10.0, # (float) mm to move up in Z after finishing the aspiration at a fixed height before aspirating 'transport air' 'touchOff':0, # (integer) 0=Off , 1=On 'aspPosAboveTouch':0.0 # (float) mm to move up in Z after touch off detects the bottom before aspirating liquid }), 'channelDispense':('DISPENSE', { 'dispenseSequence':'', # (string) leave empty if you are going to provide specific labware-positions below 'labwarePositions':'', # (string) leave empty if you are going to provide a sequence name above. 'LabwareId1, positionId1; LabwareId2,positionId2; ....' 'volumes':None, # (float or string) enter a single value used for all channels or enter an array of values for each channel like [10.0,15.5,11.2] 'channelVariable':_channel_patt_16, # (string) channel pattern e.g. "11110000" 'liquidClass':None, # (string) 'sequenceCounting':0, # (integer) 0=don´t autoincrement, 1=Autoincrement 'channelUse':1, # (integer) 1=use all sequence positions (no empty wells), 2=keep channel pattern 'dispenseMode':8, # (integer) 0=Jet Part, 1=Jet Empty, 2=Surface Part, 3=Surface Empty, 4=Jet Drain tip, 8=From liquid class, 9=Blowout tip 'capacitiveLLD':0, # (integer) 0=Off, 1=Max, 2=High, 3=Mid, 4=Low, 5=From labware definition 'liquidFollowing':0, # (integer) 0=Off , 1=On 'submergeDepth':2.0, # (float) mm of immersion below liquid´s surface to start dispense when using LLD 'liquidHeight':1.0, # (float) mm above container´s bottom to start dispense when not using LLD 'mixCycles':0, # (integer) number of mixing cycles (1 cycle = 1 asp + 1 disp) 'mixPosition':0.0, # (float) additional immersion mm below dispense position to start mixing 'mixVolume':0.0, # (float) mix volume 'xDisplacement':0.0, 'yDisplacement':0.0, 'zDisplacement':0.0, 'airTransportRetractDist':10.0, # (float) mm to move up in Z after finishing the dispense at a fixed height before aspirating 'transport air' 'touchOff':0, # (integer) 0=Off , 1=On 'dispPositionAboveTouch':0.0, # (float) mm to move up in Z after touch off detects the bottom, before dispense 'zMoveAfterStep':0, # (integer) 0=normal, 1=Minimized (Attention!!! this depends on labware clearance height, can crash). 'sideTouch':0 # (integer) 0=Off , 1=On }), 'mph96TipPickUp':('PICKUP96', { 'tipSequence':'', # (string) leave empty if you are going to provide specific labware-positions below 'labwarePositions':'', # (string) leave empty if you are going to provide a sequence name above. 'LabwareId1, positionId1; LabwareId2,positionId2; ....' Must contain 96 values 'channelVariable':_channel_patt_96, # (string) channel Variable e.g. "11110000...." . Must contain 96 values 'sequenceCounting':0, # (integer) 0=don´t autoincrement, 1=Autoincrement 'reducedPatternMode':0 # (integer) 0=All (not reduced), 1=One channel, 2=One row 3=One column }), 'mph96TipEject':('EJECT96', { 'wasteSequence':'', # (string) leave empty if you are going to provide specific labware-positions below or ejecting to default waste 'labwarePositions':'', # (string) leave empty if you are going to provide a sequence name above. 'LabwareId1, positionId1; LabwareId2,positionId2; ....' 'channelVariable':_channel_patt_96, # (string) channel Variable e.g. "11110000...." . Must contain 96 values 'sequenceCounting':0, # (integer) 0=don´t autoincrement, 1=Autoincrement. Value omitted if ejecting to default waste 'tipEjectToKnownPosition':0 # (integer) 0=Eject to specified sequence position, 1=Eject on tip pick up position, 2=Eject on default waste }), 'mph96Aspirate':('ASPIRATE96', { 'aspirateSequence':'', # (string) leave empty if you are going to provide specific labware-positions below 'labwarePositions':'', # (string) leave empty if you are going to provide a sequence name above. LabwareId1, positionId1; LabwareId2,positionId2; .... 'aspirateVolume':None, # (float) single volume used for all channels in the head. There´s no individual control of each channel volume in multi-probe heads. 'channelVariable':_channel_patt_96, # (string) channel Variable e.g. "11110000...." . Must contain 96 values 'liquidClass':None, # (string) 'sequenceCounting':0, # (integer) 0=don´t autoincrement, 1=Autoincrement 'aspirateMode':0, # (integer) 0=Normal Aspiration, 1=Consecutive (don´t aspirate blowout), 2=Aspirate all 'capacitiveLLD':0, # (integer) 0=Off, 1=Max, 2=High, 3=Mid, 4=Low, 5=From labware definition 'liquidFollowing':0, # (integer) 0=Off , 1=On 'submergeDepth':2.0, # (float) mm of immersion below liquid´s surface to start aspiration when using LLD 'liquidHeight':1.0, # (float) mm above container´s bottom to start aspiration when not using LLD 'mixCycles':0, # (integer) number of mixing cycles (1 cycle = 1 asp + 1 disp) 'mixPosition':0.0, # (float) additional immersion mm below aspiration position to start mixing 'mixVolume':0.0, # (float) mix volume 'airTransportRetractDist':10.0 # (float) mm to move up in Z after finishing the aspiration at a fixed height before aspirating 'transport air' }), 'mph96Dispense':('DISPENSE96', { 'dispenseSequence':'', # (string) leave empty if you are going to provide specific labware-positions below 'labwarePositions':'', # (string) leave empty if you are going to provide a sequence name above. LabwareId1, positionId1; LabwareId2,positionId2; .... 'dispenseVolume':None, # (float) single volume used for all channels in the head. There´s no individual control of each channel volume in multi-probe heads. 'channelVariable':_channel_patt_96, # (string) channel Variable e.g. "11110000...." . Must contain 96 values 'liquidClass':None, # (string) 'sequenceCounting':0, # (integer) 0=don´t autoincrement, 1=Autoincrement 'dispenseMode':8, # (integer) 0=Jet Part, 1=Jet Empty, 2=Surface Part, 3=Surface Empty,4=Jet Drain tip, 8=From liquid class, 9=Blowout tip 'capacitiveLLD':0, # (integer) 0=Off, 1=Max, 2=High, 3=Mid, 4=Low, 5=From labware definition 'liquidFollowing':0, # (integer) 0=Off , 1=On 'submergeDepth':2.0, # (float) mm of immersion below liquid´s surface to start dispense when using LLD 'liquidHeight':1.0, # (float) mm above container´s bottom to start dispense when not using LLD 'mixCycles':0, # (integer) number of mixing cycles (1 cycle = 1 asp + 1 disp) 'mixPosition':0.0, # (float) additional immersion mm below dispense position to start mixing 'mixVolume':0.0, # (float) mix volume 'airTransportRetractDist':10.0, # (float) mm to move up in Z after finishing the dispense at a fixed height before aspirating 'transport air' 'zMoveAfterStep':0, # (integer) 0=normal, 1=Minimized (Attention!!! this depends on labware clearance height, can crash). 'sideTouch':0 # (integer) 0=Off , 1=On }), 'iSwapGet':('ISWAP_GET', { 'plateSequence':'', # leave empty if you are going to provide specific plate labware-position below 'plateLabwarePositions':'', # leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; 'lidSequence':'', # leave empty if you don´t use lid or if you are going to provide specific plate labware-positions below or ejecting to default waste 'lidLabwarePositions':'', # leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; 'toolSequence':'', # sequence name of the iSWAP. leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; 'sequenceCounting':0, # (integer) 0=don´t autoincrement plate sequence, 1=Autoincrement 'movementType':0, # (integer) 0=To carrier, 1=Complex movement 'transportMode':0, # (integer) 0=Plate only, 1=Lid only ,2=Plate with lid 'gripForce':4, # (integer) 2 (minimum) ... 9 (maximum) 'inverseGrip':0, # (integer) 0=Off, 1=On 'collisionControl':0, # (integer) 0=Off, 1=On 'gripMode':1, # (integer) 0=Small side, 1=Large side 'retractDistance':0.0, # (float) retract distance [mm] (only used if 'movement type' is set to 'complex movement') 'liftUpHeight':20.0, # (float) lift-up distance [mm] (only used if 'movement type' is set to 'complex movement') 'gripWidth':123.7, # (float) grip width when closed [mm] 'tolerance':2.0, # (float) tolerance [mm] 'gripHeight':3.0, # (float) height to grip above bottom of labware [mm] 'widthBefore':130.0, # (float) grip width when opened before grip [mm] 'labwareOrientation':1 }), 'iSwapPlace':('ISWAP_PLACE', { 'plateSequence':'', # leave empty if you are going to provide specific plate labware-position below 'plateLabwarePositions':'', # leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; 'lidSequence':'', # leave empty if you don´t use lid or if you are going to provide specific plate labware-positions below or ejecting to default waste 'lidLabwarePositions':'', # leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; 'toolSequence':'', # sequence name of the iSWAP. leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; 'sequenceCounting':0, # (integer) 0=don´t autoincrement plate sequence, 1=Autoincrement 'movementType':0, # (integer) 0=To carrier, 1=Complex movement 'transportMode':0, # (integer) 0=Plate only, 1=Lid only ,2=Plate with lid 'collisionControl':0, # (integer) 0=Off, 1=On 'retractDistance':0.0, # (float) retract distance [mm] (only used if 'movement type' is set to 'complex movement') 'liftUpHeight':20.0, # (float) lift-up distance [mm] (only used if 'movement type' is set to 'complex movement') 'labwareOrientation':1 }), 'iSwapMove':('ISWAP_MOVE',{ 'plateSequence':'', 'plateLabwarePositions':'', 'collisionControl':0, 'gripMode':1 }), 'HxFanSet':('HEPA', { 'deviceNumber':_fan_port, # (integer) COM port number of fan 'persistant':1, # (integer) 0=don´t keep fan running after method exits, 1=keep settings after method exits 'fanSpeed':None, # (float) set percent of maximum fan speed 'simulate':0 #(integer) 0=normal mode, 1=use HxFan simulation mode }), 'CORE96WashEmpty':('WASH96_EMPTY', { 'refillAfterEmpty':0, # (integer) 0=Don't refill, 1=Refill both chambers, 2=Refill chamber 1 only, 3=Refill chamber 2 only 'chamber1WashLiquid':0, # (integer) 0=Liquid 1 (red container), 1=liquid 2 (blue container) 'chamber1LiquidChange':0, # (integer) 0=No, 1=Yes TODO: What does this mean? 'chamber2WashLiquid':0, # (integer) 0=Liquid 1 (red container), 1=liquid 2 (blue container) 'chamber2LiquidChange':0, # (integer) 0=No, 1=Yes TODO: What does this mean? }), 'gripGet':('GRIP_GET', { 'plateSequence':'', # leave empty if you are going to provide specific plate labware-position below 'plateLabwarePositions':'', # leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; 'lidSequence':'', # leave empty if you don´t use lid or if you are going to provide specific plate labware-positions below or ejecting to default waste 'lidLabwarePositions':'', # leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; 'toolSequence': cfg.core_gripper_sequence, # sequence name of the CO-RE Gripper 'gripForce':3, # (integer) 0-9, from lowest to highest 'gripperToolChannel':8, # specifies the higher of two consecutive integers representing the CO-RE gripper channels. 'sequenceCounting':0, # (integer) 0=don´t autoincrement plate sequence, 1=Autoincrement 'gripWidth':75, # (float) mm 'gripHeight':3.0, # (float) mm 'widthBefore':90, # (float) mm width before gripping 'gripSpeed':5.0, # (float) mm/s. Must be supplied 'zSpeed':50.0, # (float) mm/s. Must be supplied 'transportMode':0, # (integer) 0=Plate only, 1=Lid only ,2=Plate with lid 'checkPlate':0 # (integer) }), 'gripMove':('GRIP_MOVE', { 'plateSequence':'', # leave empty if you are going to provide specific plate labware-position below 'xAcceleration':4, # (integer) 1-5 from slowest to fastest, where 4 is default 'plateLabwarePositions':'', # leave empty if you don´t use lid or if you are going to provide specific plate labware-positions below or ejecting to default waste 'xDisplacement':0.0, 'yDisplacement':0.0, 'zDisplacement':0.0, }), 'gripPlace':('GRIP_PLACE', { 'plateSequence':'', # leave empty if you are going to provide specific plate labware-position below 'plateLabwarePositions':'', # leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; 'lidSequence':'', # leave empty if you don´t use lid or if you are going to provide specific plate labware-positions below or ejecting to default waste 'lidLabwarePositions':'', # leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; 'toolSequence':cfg.core_gripper_sequence, # sequence name of the iSWAP. leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; 'sequenceCounting':0, # (integer) 0=don´t autoincrement plate sequence, 1=Autoincrement 'movementType':0, # (integer) 0=To carrier, 1=Complex movement 'transportMode':0, # (integer) 0=Plate only, 1=Lid only ,2=Plate with lid 'ejectToolWhenFinish':1, # (integer) 0=Off, 1=On 'zSpeed':100.0, # (float) mm/s 'platePressOnDistance':0.0, # (float) lift-up distance [mm] (only used if 'movement type' is set to 'complex movement'), 'xAcceleration':4 # (integer) 1-5 from slowest to fastest, where 4 is default }), 'moveSequence':('MOVE_SEQ',{ 'inputSequence':'', 'xDisplacement':'', 'yDisplacement':'', 'zDisplacement':'', }), 'copyLiquidClass':('COPY_LIQ_CLASS',{ 'TemplateLiquidClass':'', 'NewLiquidClass':'', }), 'setAspirateParam':('SET_ASP_PARAM',{ 'LiquidClass':'', 'Parameter':'', 'Value':'', }), 'setDispenseParam':('SET_DISP_PARAM',{ 'LiquidClass':'', 'Parameter':'', 'Value':'', }), 'setTipType':('SET_TIP_TYPE',{ 'LiquidClass':'', 'TipType':'', # int from the TipType enum }), 'setCorrectionCurve':('SET_CORR_CURVE',{ 'LiquidClass':'', 'NominalArray':'', 'CorrectedArray':'', }), 'setDispenseMode':('SET_DISP_MODE',{ 'LiquidClass':'', 'DispenseMode':'', # int from the DispenseMode enum }), 'setLabwareProperty':('SET_LABWARE_PROPERTY',{ 'LabwareID':'', 'PropertyName':'', 'PropertyValue':'', }), 'TEC_Initialize':('TEC_INIT', { 'ControllerID':'', # (integer) 'SimulationMode':'', # 0=False, 1=True; }), 'TEC_StartTempControl':('TEC_START', { 'ControllerID':'', # (integer) 'DeviceID':'', # (integer); }), 'TEC_SetTarget':('TEC_SET_TARGET', { 'ControllerID':'', # (integer) 'DeviceID':'', # (integer); 'TargetTemperature':'', # (float); }), 'TEC_GetTemperature':('TEC_GET_TEMPERATURE', { 'ControllerID':'', # (integer) 'DeviceID':'', # (integer); 'Selector':'', # (integer); }), 'TEC_StopTemperatureControl':('TEC_STOP', { 'ControllerID':'', # (integer) 'DeviceID':'', # (integer); }), 'TEC_Terminate':('TEC_TERMINATE', { 'StopAllDevices':'', # 0=False, 1=True }), 'TiltModule_Initialize':('TILT_INIT', { 'ModuleName':'', # (string) 'Comport':'', # (integer) 'TraceLevel':'', # (integer) 'Simulate': '' # 0=False, 1=True }), 'TiltModule_MoveToPosition':('TILT_MOVE', { 'ModuleName':'', # (string) 'Angle':'' # (integer) }), 'FirmwareCommand':('FIRMWARECOMMAND', { 'FirmwareCommandList':[], # list elements as {FirmwareCommand:'', FirmwareParameter:''} }), 'BarcodeReader_Initialize':('BC_INITIALIZE',{ 'ComPort':'' # (string) }), 'BarcodeReader_Read':('BC_READ',{ }), 'loadCarrier':('LOAD_CARRIER', { 'carrierName': '', # (string) name of the carrier to load 'barcodeFileName': '', # (string) name of the barcode file to load 'barcodeReadPositions': '', # (string) path to the barcode file }), 'unloadCarrier':('UNLOAD_CARRIER', { 'carrierName': '', # (string) name of the carrier to unload }), 'pH_Initialize':('PH_INIT',{ 'Comport' : '' , # (int) 'SimulationMode' : '' # (boolean) }), 'pH_Request_Battery':('PH_REQ_BTRY',{ 'ModuleID' : '' , # (int) }), 'pH_measure':('PH_MEASURE',{ 'ModuleID' : '' , # (int) 'Temperature' : '' , # (float) 'probePattern' : '' , # (string) }), 'pH_Measure_Dynamically':('PH_MEASURE_DYN',{ 'ModuleID' : '' , # (int) 'Temperature' : '' , # (float) 'Precision' : '' , # (float) 'Timeout' : '' , # (int) 'probePattern' : '' , # (string) }), 'pH_Request_Calibration':('PH_REQ_CALIBRATION',{ 'ModuleID' : '' , # (int) 'ProbeNumber' : '' , # (int) }), 'pH_Request_Probe_Data':('PH_REQ_PROBE_DATA',{ 'ModuleID' : '' , # (int) }), 'pH_Request_Technical_Data':('PH_REQ_TECH_DATA',{ 'ModuleID' : '' , # (int) 'HardwareNumber' : '' , # (int) }), 'pH_Calibrate':('PH_CALIBRATE',{ 'ModuleID' : '' , # (int) 'CalibrationLevel' : '' , # (int) 'CalibrationValue' : '' , # (flt) 'CalibrationTemperature' : '' , # (flt) 'probePattern' : '' , # (str) }), 'pH_Calibrate_Dynamically':('PH_CALIBRATE_DYN',{ 'ModuleID' : '' , # (int) 'Variance' : '' , # (int) 'Timeout' : '' , # (int) 'CalibrationLevel' : '' , # (int) 'CalibrationValue' : '' , # (flt) 'CalibrationTemperature' : '' , # (flt) 'probePattern' : '' , # (str) }), 'pH_Sleep':('PH_SLEEP',{ 'ModuleID' : '' , # (int) }), 'pH_Terminate':('PH_TERM',{ 'ModuleID' : '' , # (int) }), 'pH_Wakeup':('PH_WAKEUP',{ 'ModuleID' : '' , # (int) }), 'pH_Washer_Initialize':('PH_WASHER_INIT',{ 'Comport' : '' , # (int) 'SimulationMode' : '' , # (bln) }), 'pH_Washer_Set_Trace':('PH_WASHER_SET_TRC',{ 'ModuleID' : '' , # (int) 'TraceLevel' : '' , # (int) }), 'pH_Washer_Wash':('PH_WASHER_WASH',{ 'ModuleID' : '' , # (int) 'CycleNumber' : '' , # (int) }), 'pH_Washer_Terminate':('PH_WASHER_TERM',{ 'ModuleID' : '' , # (int) }), 'pH_Dryer_Initialize':('PH_DRYER_INIT',{ 'Comport' : '' , # (int) 'SimulationMode' : '' , # (bln) }), 'pH_Dryer_Set_Trace':('PH_DRYER_SET_TRC',{ 'ModuleID' : '' , # (int) 'TraceLevel' : '' , # (int) }), 'pH_Start_Drying':('PH_DRYER_START',{ 'ModuleID' : '' , # (int) }), 'pH_Stop_Drying':('PH_DRYER_STOP',{ 'ModuleID' : '' , # (int) }), 'pH_Dryer_Terminate':('PH_DRYER_TERM',{ 'ModuleID' : '' , # (int) }), 'HHS_BeginMonitoring':('HHS_BEGIN_MONITORING',{ 'deviceNumber' : '' , # (int) 'shakingToleranceRange' : '' , # (int) 'sampleInterval' : '' , # (int) 'action' : '' , # (int) }), 'HHS_CreateStarDevice':('HHS_CREATE_STAR_DEVICE',{ 'starDevice': '', # (str) 'usedNode': '' # (int [1,2]) }), 'HHS_CreateUSBDevice':('HHS_CREATE_USB_DEVICE',{ 'usedNode': '' # (int [1,8]) }), 'HHS_EndMonitoring':('HHS_END_MONITORING', { 'deviceNumber': '' # (int) }), 'HHS_GetFirmwareVersion':('HHS_GET_FIRMWARE_VERSION', { 'deviceNumber': '' # (int) }), 'HHS_GetSerialNumber':('HHS_GET_SERIAL_NUM', { 'deviceNumber': '' # (int) }), 'HHS_GetShakerParameter':('HHS_GET_SHAKER_PARAM',{ 'deviceNumber': '' # (int) }), 'HHS_GetShakerSpeed':('HHS_GET_SHAKER_SPEED',{ 'deviceNumber': '' # (int) }), 'HHS_GetTempParameter':('HHS_GET_TEMP_PARAM', { 'deviceNumber': '' # (int) }), 'HHS_GetTemperature':('HHS_GET_TEMP', { 'deviceNumber': '' # (int) }), 'HHS_GetTemperatureState':('HHS_GET_TEMP_STATE', { 'deviceNumber': '' # (int) }), 'HHS_SendFirmwareCommand':('HHS_SEND_FIRMWARE_CMD', { 'deviceNumber': '', # (int) 'command': '', # (str) 'parameter': '' # (str) }), 'HHS_SetPlateLock':('HHS_SET_PLATE_LOCK', { 'deviceNumber': '', #(int) 'plateLock': '' #(int_bool) }), 'HHS_SetShakerParameter':('HHS_SET_SHAKER_PARAM', { 'deviceNumber': '', # (int) 'shakingDirection': '', # (int_bool) 'shakingAccRamp': '' # (int [630, 12500]) }), 'HHS_SetSimulation':('HHS_SET_SIMULATION', { 'simulate': '' # (int_bool) }), 'HHS_SetTempParameter':('HHS_SET_TEMP_PARAM', { 'deviceNumber': '', #(int) 'startTimeout': '', # (int [1, 2500]) 'toleranceRange': '', # (float [0.0, 105.0]) 'securityRange': '' #(float [0.0, 100.0]) }), 'HHS_SetUSBTrace':('HHS_SET_USB_TRC', { 'trace': '' # (int_bool) }), 'HHS_StartAllShaker':('HHS_START_ALL_SHAKER', { 'shakingSpeed': '', #(int [30, 2500]) }), 'HHS_StartAllShakerTimed':('HHS_START_ALL_SHAKER_TIMED', { 'shakingSpeed': '', # (int [30, 2500]) 'shakingTime': '' # (int [1, 30000]) }), 'HHS_StartShaker':('HHS_START_SHAKER', { 'deviceNumber': '', #(int) 'shakingSpeed': '' # (int [30, 2500]) }), 'HHS_StartShakerTimed':('HHS_START_SHAKER_TIMED', { 'deviceNumber': '', # (int) 'shakingSpeed': '', # (int [30, 2500]) 'shakingTime': '' #(int [1, 30000]) }), 'HHS_StartTempCtrl':('HHS_START_TEMP_CTRL', { 'deviceNumber': '', # (int) 'temperature': '', # (float [0.0, 105.0]) 'waitForTempReached': '' #(int_bool) }), 'HHS_StopAllShaker':('HHS_STOP_ALL_SHAKER', { }), 'HHS_StopShaker':('HHS_STOP_SHAKER', { 'deviceNumber': '' # (int) }), 'HHS_StopTempCtrl':('HHS_STOP_TEMP_CTRL', { 'deviceNumber': '', #(int) }), 'HHS_Terminate':('HHS_TERMINATE', { }), 'HHS_WaitForShaker':('HHS_WAIT_FOR_SHAKER', { 'deviceNumber': '' # (int) }), 'HHS_WaitForTempCtrl':('HHS_WAIT_FOR_TEMP_CTRL', { 'deviceNumber': '' #(int) }), 'ODTC_Abort':('ODTC_ABORT', { 'DeviceID':'', # (integer) 'LockID':'', # (integer); }), 'ODTC_Connect':('ODTC_CONNECT', { 'LocalIP':'', # (string) 'DeviceIP':'', # (string) 'DevicePort':'', # (string) 'SimulationMode':'', # (boolean) }), 'ODTC_Initialize':('ODTC_INIT', { 'DeviceID':'', # (integer) 'LockID':'', # (string); }), 'ODTC_CloseDoor':('ODTC_CLOSE', { 'DeviceID':'', # (integer) 'LockID':'', # (string); }), 'ODTC_DownloadProtocol':('ODTC_PRTCL', { 'DeviceID':'', # (integer) 'LockID':'', # (string); 'ProtocolFile':'', }), 'ODTC_EvaluateError':('ODTC_EVAL', { 'DeviceID':'', # (integer) 'LockID':0, # (string); }), 'ODTC_ExecuteMethod':('ODTC_EXCT', { 'DeviceID':'', # (integer) 'LockID':0, # (integer); 'MethodName':'', # (string) 'Priority':'', # (integer); }), 'ODTC_GetStatus':('ODTC_STATUS', { 'DeviceID':'', # (integer) }), 'ODTC_OpenDoor':('ODTC_OPEN', { 'DeviceID':'', # (integer) 'LockID':0, # (integer); }), 'ODTC_ReadActualTemperature':('ODTC_READ', { 'DeviceID':'', # (integer) 'LockID':0, # (integer); }), 'ODTC_Reset':('ODTC_RESET', { 'DeviceID':'', # (integer) 'LockID':0, # (integer); 'SimulationMode': '', # (boolean) 'TimeToWait': '', # 0=False, 1=True 'strDeviceID': '', # (string) 'PMSID': '', # (string) }), 'ODTC_StopMethod':('ODTC_STOP', { 'DeviceID':'', # (integer) 'LockID':0, # (integer); }), 'ODTC_Terminate':('ODTC_TERM', { 'DeviceID':'', # (integer) }), 'Centrifuge_Initialize':('CENT_INIT', { 'Label':'', # (str) 'NodeName':'', # (str) 'SimulationMode':'', # (bln) 'AlwaysInitialize':'', # (bln) }), 'Centrifuge_Centrifuge':('CENT_CENT', { 'Label':'', # (str) 'CloseCoverAtEnd':'', # (bln) 'PresentPosition':'', # (int) 'Direction':'', # (int) 'ArraySpeed':'', # (str) 'ArrayDuration':'', # (str) 'ArrayAcceleration':'', # (str) 'Deceleration':'', # (int) }), 'Centrifuge_Open':('CENT_OPEN', { 'Label':'', # (str) }), 'Centrifuge_Close':('CENT_CLOSE', { 'Label':'', # (str) }), 'Centrifuge_Stop':('CENT_STOP', { 'Label':'', # (str) 'Deceleration':'', # (int) }), 'Centrifuge_Terminate':('CENT_TERM', { 'Label':'', # (str) }), 'Centrifuge_Start':('CENT_START', { 'Label':'', # (str) 'Direction':'', # (int) 'Speed':'', # (int) 'Deceleration':'', # (int) 'MaxRunTime':'', # (int) }), 'Centrifuge_GetStatus':('CENT_STATUS', { 'Label':'', # (str) }), 'HiG_Connect':('HIG_CONNECT', { 'DeviceID':'', # (str) 'AdapterDeviceID':'', # (str) 'SimulationMode':'', # (bln) }), 'HiG_Disconnect':('HIG_DISCONNECT', { }), 'HiG_Home':('HIG_HOME', { }), 'HiG_Spin':('HIG_SPIN', { 'RotationalGs':'', # (flt) 'AccelPercent':'', # (flt) 'DecelPercent':'', # (flt) 'TimeSeconds':'', # (flt) }), 'HiG_SpinAndWait':('HIG_SPINWAIT', { 'RotationalGs':'', # (flt) 'AccelPercent':'', # (flt) 'DecelPercent':'', # (flt) 'TimeSeconds':'', # (flt) }), 'HiG_OpenShield':('HIG_OPEN', { 'BucketIndex':'', # (int) }), 'HiG_CloseShield':('HIG_CLOSE', { }), 'HiG_IsSpinning':('HIG_SPINNING', { }), 'HiG_AbortSpin':('HIG_ABORT', { }), 'MPE2_ConnectIP':('MPE2_IP', { 'InstrumentName':'', # (str) 'PortNumber':'', # (str) 'SimulationMode':'', # (bln) 'Options':'', # (int) }), 'MPE2_ConnectCOM':('MPE2_COM', { 'ComPort':'', # (str) 'BaudRate':'', # (str) 'SimulationMode':'', # (bln) 'Options':'', # (int) }), 'MPE2_ClampFilterPlate':('MPE2_CLAMP', { 'DeviceID':'', # (int) }), 'MPE2_CollectionPlatePlaced':('MPE2_COL_PLACED', { 'DeviceID':'', # (int) 'CollectionPlateHeight':'', # (flt) 'OffsetFromNozzles':'', # (flt) }), 'MPE2_CollectionPlateRemoved':('MPE2_COL_REMOVED', { 'DeviceID':'', # (int) }), 'MPE2_Disconnect':('MPE2_DISCONNECT', { 'DeviceID':'', # (int) }), 'MPE2_Initialize':('MPE2_INIT', { 'DeviceID':'', # (int) }), 'MPE2_InitializeWithParams':('MPE2_INIT_PARAMS', { 'DeviceID':'', # (int) 'Smart':'', # (bln) 'WasteContainerID':'', # (int) 'VacuumRunTime':'', # (int) 'DisableVacuumCheck':'', # (bln) }), 'MPE2_FilterPlatePlaced':('MPE2_FIL_PLACED', { 'DeviceID':'', # (int) 'FilterHeight':'', # (flt) 'NozzleHeight':'', # (flt) }), 'MPE2_FilterPlateRemoved':('MPE2_FIL_REMOVED', { 'DeviceID':'', # (int) }), 'MPE2_ProcessFilterToCollectionPlate':('MPE2_FIL_TO_COL', { 'DeviceID':'', # (int) 'ControlPoints':'', # (str) 'ReturnPlateToIntegrationArea':'', # (bln) }), 'MPE2_ProcessFilterToWasteContainer':('MPE2_FIL_TO_WASTE', { 'DeviceID':'', # (int) 'ControlPoints':'', # (str) 'ReturnPlateToIntegrationArea':'', # (bln) 'WasteContainerID':'', # (int) 'DisableVacuumCheck':'', # (bln) }), 'MPE2_RetrieveFilterPlate':('MPE2_RETRIEVE_FIL', { 'DeviceID':'', # (int) }), 'MPE2_StartMPEVacuum':('MPE2_START_VAC', { 'DeviceID':'', # (int) 'WasteContainerID':'', # (int) 'DisableVacuumCheck':'', # (bln) }), 'MPE2_StopVacuum':('MPE2_STOP_VAC', { 'DeviceID':'', # (int) }), 'MPE2_GetVacuumStatus':('MPE2_GET_VAC', { 'DeviceID':'', # (int) }), 'MPE2_GetPressureReadings':('MPE2_GET_PRESS', { 'DeviceID':'', # (int) }), 'MPE2_Dispense':('MPE2_DISPENSE', { 'DeviceID':'', # (int) 'SourceID':'', # (int) 'WellVolume':'', # (int) 'FlowRateAspirate':'', # (int) 'FlowRateDispense':'', # (int) 'NeedleOffset':'', # (int) }), 'MPE2_Prime':('MPE2_PRIME', { 'DeviceID':'', # (int) 'SourceID':'', # (int) 'WellVolume':'', # (flt) 'FlowRate':'', # (flt) 'WasteContainerID':'', # (int) }), 'MPE2_Flush':('MPE2_FLUSH', { 'DeviceID':'', # (int) 'WellVolume':'', # (flt) 'FlowRate':'', # (flt) 'WasteContainerID':'', # (int) }), 'MPE2_Evaporate':('MPE2_EVAP', { 'DeviceID':'', # (int) 'PlateHeight':'', # (flt) 'NeedleOffset':'', # (flt) 'WellDepth':'', # (flt) 'EvaporatorTravelDistance':'', # (flt) 'EvaporateTime':'', # (flt) }), 'MPE2_EvaporateWithRate':('MPE2_EVAP_RATE', { 'DeviceID':'', # (int) 'PlateHeight':'', # (flt) 'NeedleOffset':'', # (flt) 'WellDepth':'', # (flt) 'EvaporatorTravelDistance':'', # (flt) 'EvaporateTime':'', # (flt) 'FollowRate':'', # (flt) }), 'MPE2_EvaporateEnd':('MPE2_EVAP_END', { 'DeviceID':'', # (int) 'Timeout':'', # (int) }), 'MPE2_GetTemperatureRange':('MPE2_TEMP_RANGE', { 'DeviceID':'', # (int) }), 'MPE2_GetHeaterStatus':('MPE2_HEATER_STATUS', { 'DeviceID':'', # (int) 'Reset':'', # (bln) }), 'MPE2_GetHeaterRange':('MPE2_TEMP_RANGE', { 'DeviceID':'', # (int) 'Reset':'', # (bln) }), 'MPE2_GetSourceConfiguration':('MPE2_GET_SOURCE_CONFIG', { 'DeviceID':'', # (int) }), 'MPE2_SetSourceConfiguration':('MPE2_SET_SOURCE_CONFIG', { 'DeviceID':'', # (int) }), 'MPE2_StartContainerCalibration':('MPE2_START_CAL', { 'DeviceID':'', # (int) 'SourceID':'', # (int) 'Volume':'', # (flt) }), 'MPE2_GetContainerCalibration':('MPE2_GET_CAL', { 'DeviceID':'', # (int) 'SourceID':'', # (int) 'Volume':'', # (flt) }), 'MPE2_MeasureEmptyContainer':('MPE2_MEAS_EMPTY', { 'DeviceID':'', # (int) 'SourceID':'', # (int) }), 'MPE2_MeasureFullContainer':('MPE2_MEAS_FULL', { 'DeviceID':'', # (int) 'SourceID':'', # (int) }), 'MPE2_SaveContainerCalibration':('MPE2_SAVE_CAL', { 'DeviceID':'', # (int) 'SourceID':'', # (int) }), 'pH_Controller_Initialize':('PHC_INIT', { 'PortNumber':'', # (int) }), 'pH_Controller_Terminate':('PHC_TERM', { 'ModuleID':'', # (int) }), 'pH_Controller_Calibrate':('PHC_CAL', { 'ModuleID':'', # (int) 'seqModule':'', # (str) 'seqCalibration1':'', # (str) 'seqCalibration2':'', # (str) 'seqReference':'', # (str) 'MeasureTime':'', # (int) 'CalibrationTime':'', # (int) 'MeasureHeight':'', # (flt) 'CalibrationValue1':'', # (flt) 'CalibrationValue2':'', # (flt) 'CalibrationValueRef':'', # (flt) 'TempSoln1':'', # (flt) 'TempSoln2':'', # (flt) 'TempSolnRef':'', # (flt) 'CalibrateDynamically':'', # (bln) }), 'pH_Controller_MeasureCycle':('PHC_MEASURE_CYCLE', { 'ModuleID':'', # (int) 'seqMeasurement':'', # (str) 'MeasurePositions':'', # (str) 'MeasureHeight':'', # (flt) 'ProbePattern':'', # (str) 'MeasureTime':'', # (int) 'Temperature':'', # (flt) }), 'pH_Controller_SetParameters':('PHC_SET_PARAMS', { 'ModuleID':'', # (int) 'seqGripper':'', # (str) 'seqWashPosition':'', # (flt) 'seqDryPosition':'', # (str) 'TransportChannel':'', # (int) 'WashCycles':'', # (int) 'DryCycles':'', # (int) 'DryTime':'', # (int) }), 'pH_Controller_Dry':('PHC_DRY', { 'ModuleID':'', # (int) }), 'pH_Controller_Wash':('PHC_WASH', { 'ModuleID':'', # (int) }), 'pH_Controller_Pickup':('PHC_PICKUP', { 'ModuleID':'', # (int) 'seqModule':'', # (str) }), 'pH_Controller_Park':('PHC_PARK', { 'ModuleID':'', # (int) 'seqModule':'', # (str) }), 'pH_Controller_LoadLastConfig':('PHC_LOAD', { }), 'pH_Controller_SaveLastConfig':('PHC_SAVE', { 'BluetoothPort':'', # (int) 'NumWashCycles':'', # (int) 'NumDryCycles':'', # (int) 'DryTime':'', # (int) }), } """All of the command names supported out of the box, mapped to their default params. On module load, defaults_by_cmd is parsed into `HamiltonCmdTemplate`s, which are injected into the global package namespace under the first element of the values of this dict (strings in all caps). This is so that they can be imported directly from `pyhamilton` as module-level variables, while avoiding circular imports. Example: ``` from pyhamilton import INITIALIZE ``` INITIALIZE - initializeAlways (int) 0=only initialize components not already initialized, 1=always reinitialize all robot components Default: 0 PICKUP - tipSequence (string) leave empty if you are going to provide specific labwarePositions below Default: '' - labwarePositions (string) leave empty if you are going to provide a sequence name above.'LabwareId1, positionId1; LabwareId2,positionId2; ....' Default: '' - channelVariable (string) channel pattern e.g. '11110000' Default: _channel_patt_16 - sequenceCounting (integer) 0=don´t autoincrement, 1=Autoincrement Default: 0 - channelUse (integer) 1=use all sequence positions (no empty wells), 2=keep channel pattern Default: 1 EJECT - wasteSequence (string) leave empty if you are going to provide specific labware-positions below or ejecting to default waste Default: '' - labwarePositions (string) leave empty if you are going to provide a sequence name above.'LabwareId1, positionId1; LabwareId2,positionId2; ....' Default: '' - channelVariable (string) channel pattern e.g. "11110000" Default: _channel_patt_16 - sequenceCounting (integer) 0=don´t autoincrement, 1=Autoincrement. Value omitted if ejecting to default waste Default: 0 - channelUse (integer) 1=use all sequence positions (no empty wells), 2=keep channel pattern Default: 1 - useDefaultWaste (integer) 0=eject to custom waste sequence, 1=Use default waste Default: 0 ASPIRATE - aspirateSequence (string) leave empty if you are going to provide specific labware-positions below Default: '' - labwarePositions (string) leave empty if you are going to provide a sequence name above. 'LabwareId1, positionId1; LabwareId2,positionId2; ....' Default: '' - volumes (float or string) enter a single value used for all channels or enter an array of values for each channel like [10.0,15.5,11.2] Default: None - channelVariable (string) channel pattern e.g. "11110000" Default: _channel_patt_16 - liquidClass (string) Default: None - sequenceCounting (integer) 0=don´t autoincrement, 1=Autoincrement Default: 0 - channelUse (integer) 1=use all sequence positions (no empty wells), 2=keep channel pattern Default: 1 - aspirateMode (integer) 0=Normal Aspiration, 1=Consecutive (don´t aspirate blowout), 2=Aspirate all Default: 0 - capacitiveLLD (integer) 0=Off, 1=Max, 2=High, 3=Mid, 4=Low, 5=From labware definition Default: 0 - pressureLLD (integer) 0=Off, 1=Max, 2=High, 3=Mid, 4=Low, 5=From liquid class definition Default: 0 - liquidFollowing (integer) 0=Off , 1=On Default: 0 - submergeDepth (float) mm of immersion below liquid´s surface to start aspiration when using LLD Default: 2.0 - liquidHeight (float) mm above container´s bottom to start aspiration when not using LLD Default: 1.0 - maxLLdDifference (float) max mm height different between cLLD and pLLD detected liquid levels Default: 0.0 - mixCycles (integer) number of mixing cycles (1 cycle = 1 asp + 1 disp) Default: 0 - mixPosition (float) additional immersion mm below aspiration position to start mixing Default: 0.0 - mixVolume (float) mix volume Default: 0.0 - airTransportRetractDist (float) mm to move up in Z after finishing the aspiration at a fixed height before aspirating 'transport air' Default: 10.0 - touchOff (integer) 0=Off , 1=On Default: 0 - aspPosAboveTouch (float) mm to move up in Z after touch off detects the bottom before aspirating liquid Default: 0.0 DISPENSE - dispenseSequence (string) leave empty if you are going to provide specific labware-positions below Default: '' - labwarePositions (string) leave empty if you are going to provide a sequence name above. 'LabwareId1, positionId1; LabwareId2,positionId2; ....' Default: '' - volumes (float or string) enter a single value used for all channels or enter an array of values for each channel like [10.0,15.5,11.2] Default: None - channelVariable (string) channel pattern e.g. "11110000" Default: _channel_patt_16 - liquidClass (string) Default: None - sequenceCounting (integer) 0=don´t autoincrement, 1=Autoincrement Default: 0 - channelUse (integer) 1=use all sequence positions (no empty wells), 2=keep channel pattern Default: 1 - dispenseMode (integer) 0=Jet Part, 1=Jet Empty, 2=Surface Part, 3=Surface Empty, 4=Jet Drain tip, 8=From liquid class, 9=Blowout tip Default: 8 - capacitiveLLD (integer) 0=Off, 1=Max, 2=High, 3=Mid, 4=Low, 5=From labware definition Default: 0 - liquidFollowing (integer) 0=Off , 1=On Default: 0 - submergeDepth (float) mm of immersion below liquid´s surface to start dispense when using LLD Default: 2.0 - liquidHeight (float) mm above container´s bottom to start dispense when not using LLD Default: 1.0 - mixCycles (integer) number of mixing cycles (1 cycle = 1 asp + 1 disp) Default: 0 - mixPosition (float) additional immersion mm below dispense position to start mixing Default: 0.0 - mixVolume (float) mix volume Default: 0.0 - airTransportRetractDist (float) mm to move up in Z after finishing the dispense at a fixed height before aspirating 'transport air' Default: 10.0 - touchOff (integer) 0=Off , 1=On Default: 0 - dispPositionAboveTouch (float) mm to move up in Z after touch off detects the bottom, before dispense Default: 0.0 - zMoveAfterStep (integer) 0=normal, 1=Minimized (Attention!!! this depends on labware clearance height, can crash). Default: 0 - sideTouch (integer) 0=Off , 1=On Default: 0 PICKUP96 - tipSequence (string) leave empty if you are going to provide specific labware-positions below Default: '' - labwarePositions (string) leave empty if you are going to provide a sequence name above. 'LabwareId1, positionId1; LabwareId2,positionId2; ....' Must contain 96 values Default: '' - channelVariable (string) channel Variable e.g. "11110000...." . Must contain 96 values Default: _channel_patt_96 - sequenceCounting (integer) 0=don´t autoincrement, 1=Autoincrement Default: 0 - reducedPatternMode (integer) 0=All (not reduced), 1=One channel, 2=One row 3=One column Default: 0 EJECT96 - wasteSequence (string) leave empty if you are going to provide specific labware-positions below or ejecting to default waste Default: '' - labwarePositions (string) leave empty if you are going to provide a sequence name above. 'LabwareId1, positionId1; LabwareId2,positionId2; ....' Default: '' - channelVariable (string) channel Variable e.g. "11110000...." . Must contain 96 values Default: _channel_patt_96 - sequenceCounting (integer) 0=don´t autoincrement, 1=Autoincrement. Value omitted if ejecting to default waste Default: 0 - tipEjectToKnownPosition (integer) 0=Eject to specified sequence position, 1=Eject on tip pick up position, 2=Eject on default waste Default: 0 ASPIRATE96 - aspirateSequence (string) leave empty if you are going to provide specific labware-positions below Default: '' - labwarePositions (string) leave empty if you are going to provide a sequence name above. LabwareId1, positionId1; LabwareId2,positionId2; .... Default: '' - aspirateVolume (float) single volume used for all channels in the head. There´s no individual control of each channel volume in multi-probe heads. Default: None - channelVariable (string) channel Variable e.g. "11110000...." . Must contain 96 values Default: _channel_patt_96 - liquidClass (string) Default: None - sequenceCounting (integer) 0=don´t autoincrement, 1=Autoincrement Default: 0 - aspirateMode (integer) 0=Normal Aspiration, 1=Consecutive (don´t aspirate blowout), 2=Aspirate all Default: 0 - capacitiveLLD (integer) 0=Off, 1=Max, 2=High, 3=Mid, 4=Low, 5=From labware definition Default: 0 - liquidFollowing (integer) 0=Off , 1=On Default: 0 - submergeDepth (float) mm of immersion below liquid´s surface to start aspiration when using LLD Default: 2.0 - liquidHeight (float) mm above container´s bottom to start aspiration when not using LLD Default: 1.0 - mixCycles (integer) number of mixing cycles (1 cycle = 1 asp + 1 disp) Default: 0 - mixPosition (float) additional immersion mm below aspiration position to start mixing Default: 0.0 - mixVolume (float) mix volume Default: 0.0 - airTransportRetractDist (float) mm to move up in Z after finishing the aspiration at a fixed height before aspirating 'transport air' Default: 10.0 DISPENSE96 - dispenseSequence (string) leave empty if you are going to provide specific labware-positions below Default: '' - labwarePositions (string) leave empty if you are going to provide a sequence name above. LabwareId1, positionId1; LabwareId2,positionId2; .... Default: '' - dispenseVolume (float) single volume used for all channels in the head. There´s no individual control of each channel volume in multi-probe heads. Default: None - channelVariable (string) channel Variable e.g. "11110000...." . Must contain 96 values Default: _channel_patt_96 - liquidClass (string) Default: None - sequenceCounting (integer) 0=don´t autoincrement, 1=Autoincrement Default: 0 - dispenseMode (integer) 0=Jet Part, 1=Jet Empty, 2=Surface Part, 3=Surface Empty,4=Jet Drain tip, 8=From liquid class, 9=Blowout tip Default: 8 - capacitiveLLD (integer) 0=Off, 1=Max, 2=High, 3=Mid, 4=Low, 5=From labware definition Default: 0 - liquidFollowing (integer) 0=Off , 1=On Default: 0 - submergeDepth (float) mm of immersion below liquid´s surface to start dispense when using LLD Default: 2.0 - liquidHeight (float) mm above container´s bottom to start dispense when not using LLD Default: 1.0 - mixCycles (integer) number of mixing cycles (1 cycle = 1 asp + 1 disp) Default: 0 - mixPosition (float) additional immersion mm below dispense position to start mixing Default: 0.0 - mixVolume (float) mix volume Default: 0.0 - airTransportRetractDist (float) mm to move up in Z after finishing the dispense at a fixed height before aspirating 'transport air' Default: 10.0 - zMoveAfterStep (integer) 0=normal, 1=Minimized (Attention!!! this depends on labware clearance height, can crash). Default: 0 - sideTouch (integer) 0=Off , 1=On Default: 0 ISWAP_GET plateSequence leave empty if you are going to provide specific plate labware-position below Default:'' - plateLabwarePositions (string) leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; Default: '' - lidSequence (string) leave empty if you don´t use lid or if you are going to provide specific plate labware-positions below or ejecting to default waste Default: '' - lidLabwarePositions (string) leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; Default: '' - toolSequence (string) sequence name of the iSWAP. leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; Default: '' - sequenceCounting (integer) 0=don´t autoincrement plate sequence, 1=Autoincrement Default: 0 - movementType (integer) 0=To carrier, 1=Complex movement Default: 0 - transportMode (integer) 0=Plate only, 1=Lid only ,2=Plate with lid Default: 0 - gripForce (integer) 2 (minimum) ... 9 (maximum) Default: 4 - inverseGrip (integer) 0=Off, 1=On Default: 0 - collisionControl (integer) 0=Off, 1=On Default: 0 - gripMode (integer) 0=Small side, 1=Large side Default: 1 - retractDistance (float) retract distance [mm] (only used if 'movement type' is set to 'complex movement') Default: 0.0 - liftUpHeight (float) lift-up distance [mm] (only used if 'movement type' is set to 'complex movement') Default: 20.0 - gripWidth (float) grip width when closed [mm] Default: 123.7 - tolerance (float) tolerance [mm] Default: 2.0 - gripHeight (float) height to grip above bottom of labware [mm] Default: 3.0 - widthBefore (float) grip width when opened before grip [mm] Default: 130.0 ISWAP_PLACE - plateSequence (string) leave empty if you are going to provide specific plate labware-position below Default: '' - plateLabwarePositions (string) leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; Default: '' - lidSequence (string) leave empty if you don´t use lid or if you are going to provide specific plate labware-positions below or ejecting to default waste Default: '' - lidLabwarePositions (string) leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; Default: '' - toolSequence (string) sequence name of the iSWAP. leave empty if you are going to provide a plate sequence name above. LabwareId1, positionId1; Default: '' - sequenceCounting (integer) 0=don´t autoincrement plate sequence, 1=Autoincrement Default: 0 - movementType (integer) 0=To carrier, 1=Complex movement Default: 0 - transportMode (integer) 0=Plate only, 1=Lid only ,2=Plate with lid Default: 0 - collisionControl (integer) 0=Off, 1=On Default: 0 - retractDistance (float) retract distance [mm] (only used if 'movement type' is set to 'complex movement') Default: 0.0 - liftUpHeight (float) lift-up distance [mm] (only used if 'movement type' is set to 'complex movement') Default: 20.0 HEPA - deviceNumber (integer) COM port number of fan Default: _fan_port - persistant (integer) 0=don´t keep fan running after method exits, 1=keep settings after method exits Default: 1 - fanSpeed (float) set percent of maximum fan speed Default: None - simulate (integer) 0=normal mode, 1=use HxFan simulation mode Default: 0 WASH96_EMPTY - refillAfterEmpty (integer) 0=Don't refill, 1=Refill both chambers, 2=Refill chamber 1 only, 3=Refill chamber 2 only Default: 0 - chamber1WashLiquid (integer) 0=Liquid 1 (red container), 1=liquid 2 (blue container) Default: 0 - chamber1LiquidChange (integer) 0=No, 1=Yes TODO: What does this mean? Default: 0 - chamber2WashLiquid (integer) 0=Liquid 1 (red container), 1=liquid 2 (blue container) Default: 0 - chamber2LiquidChange (integer) 0=No, 1=Yes TODO: What does this mean? Default: 0 """ ================================================ FILE: pyhamilton/defaults/defaults.json ================================================ { "robot_type": "STAR", "core_gripper_sequence": "COREGripTool_OnWaste_1000ul_0001", "liquids_database": "C:\\Program Files (x86)\\Hamilton\\Config\\ML_STARLiquids.mdb" } ================================================ FILE: pyhamilton/defaults.py ================================================ from __future__ import annotations import json from dataclasses import dataclass, asdict, replace from pathlib import Path from typing import Any, Final # ───────────────────────────── File location ───────────────────────────── _DOTDIR: Final[Path] = Path.home() / ".pyhamilton" _DOTDIR.mkdir(exist_ok=True) _DEFAULTS_PATH: Final[Path] = _DOTDIR / "defaults.json" # ───────────────────────────── Settings dataclass ───────────────────────── @dataclass(slots=True, frozen=True) class Defaults: """ Persistent user-wide defaults for PyHamilton configuration. Automatically loaded from ~/.pyhamilton/defaults.json if available. """ robot_type: str = "STAR" core_gripper_sequence: list[str] = () liquids_database: str = "C:\\Program Files (x86)\\Hamilton\\Config\\ML_STARLiquids.mdb" # (internal) pointer to source file for debugging _source_file: Path | None = None # ───────────────────────────── Internal load logic ──────────────────────── def _read_file() -> dict[str, Any]: if not _DEFAULTS_PATH.exists(): return {} try: with _DEFAULTS_PATH.open("r", encoding="utf-8") as f: return json.load(f) or {} except (json.JSONDecodeError, OSError): return {} # cache the singleton _defaults_singleton: Defaults | None = None def defaults(**overrides) -> Defaults: """ Get the current default settings. You can optionally pass overrides to get a copy with modified fields. """ global _defaults_singleton if _defaults_singleton is None: raw = _read_file() _defaults_singleton = Defaults(**raw, _source_file=_DEFAULTS_PATH) if overrides: return replace(_defaults_singleton, **overrides) return _defaults_singleton # ───────────────────────────── Save and reload utilities ────────────────── def save(new_defaults: Defaults | None = None) -> None: """ Save the provided Defaults object (or current one) to disk. """ obj = new_defaults or defaults() data = asdict(obj) data.pop("_source_file", None) with _DEFAULTS_PATH.open("w", encoding="utf-8") as f: json.dump(data, f, indent=2) def reload() -> Defaults: """ Force a reload of the defaults from disk, replacing the cached singleton. """ global _defaults_singleton _defaults_singleton = None return defaults() ================================================ FILE: pyhamilton/devices/__init__.py ================================================ from .centrifuge_wrappers import * from .hhs_wrappers import * from .hig_wrappers import * from .mpe_wrappers import * from .odtc_wrappers import * from .tec_wrappers import * from .pH_wrappers import * ================================================ FILE: pyhamilton/devices/centrifuge_wrappers.py ================================================ # -*- coding: utf-8 -*- """ Created on Wed Oct 5 07:52:56 2022 @author: stefa """ import sys, os, time, logging, importlib from threading import Thread from ..interface import HamiltonInterface from ..interface import (CENT_INIT, CENT_STATUS, CENT_CENT) def centrifuge_initialize(ham, label, node_name, simulate, always_init): cmd = ham.send_command(CENT_INIT, Label = label, NodeName = node_name, SimulationMode = simulate, AlwaysInitialize = always_init) ham.wait_on_response(cmd, raise_first_exception=True, timeout=300) def centrifuge_get_drive_status(ham, label): return_fields = ['step-return2', 'step-return3', 'step-return4'] cmd = ham.send_command(CENT_STATUS, Label = label) outputs = ham.wait_on_response(cmd, raise_first_exception=True, timeout=300, return_data = return_fields) return outputs def centrifuge_set_run(ham, label, array_speed, array_acceleration, array_duration, deceleration, close_cover, direction, present_position): if not all([201 < speed < 4200 for speed in array_speed]): raise ValueError('Speed must be between 201 and 4200 rpm') if not all([1000 < acc < 6500 for acc in array_acceleration]): raise ValueError('Acceleration must be between 1000 and 6500 rpm^2') if not all([0 < dur < 2700 for dur in array_duration]): raise ValueError('Duration must be greater than 2700 seconds') if not 1000 < deceleration < 6500: raise ValueError('Deceleration must be between 1000 and 6500') array_acceleration = ','.join(map(str, array_acceleration)) array_duration = ','.join(map(str, array_duration)) array_speed = ','.join(map(str, array_speed)) cmd = ham.send_command(CENT_CENT, Label = label, ArraySpeed = array_speed, ArrayAcceleration = array_acceleration, ArrayDuration = array_duration, Deceleration = deceleration, CloseCoverAtEnd = close_cover, Direction = direction, PresentPosition = present_position) ham.wait_on_response(cmd, raise_first_exception=True, timeout=300) ================================================ FILE: pyhamilton/devices/hhs_wrappers.py ================================================ import sys, os, time, logging, importlib from threading import Thread from ..interface import HamiltonInterface from ..interface import (HHS_BEGIN_MONITORING, HHS_CREATE_STAR_DEVICE, HHS_CREATE_USB_DEVICE, HHS_END_MONITORING, HHS_GET_FIRMWARE_VERSION, HHS_GET_SERIAL_NUM, HHS_GET_SHAKER_PARAM, HHS_GET_SHAKER_SPEED, HHS_GET_TEMP_PARAM, HHS_GET_TEMP, HHS_GET_TEMP_STATE, HHS_SEND_FIRMWARE_CMD, HHS_SET_PLATE_LOCK, HHS_SET_SHAKER_PARAM, HHS_SET_SIMULATION, HHS_SET_TEMP_PARAM, HHS_SET_USB_TRC, HHS_START_ALL_SHAKER, HHS_START_ALL_SHAKER_TIMED, HHS_START_SHAKER, HHS_START_SHAKER_TIMED, HHS_START_TEMP_CTRL, HHS_STOP_ALL_SHAKER, HHS_STOP_SHAKER, HHS_STOP_TEMP_CTRL, HHS_TERMINATE, HHS_WAIT_FOR_SHAKER, HHS_WAIT_FOR_TEMP_CTRL) from ..resources import layout_item, Plate96, LayoutManager std_timeout = 30 def hhs_begin_monitoring(ham, device_number, tolerance_range, interval, action): cmd = ham.send_command(HHS_BEGIN_MONITORING, deviceNumber = device_number, \ shakingToleranceRange = tolerance_range, sampleInterval = interval, action = action) ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) def hhs_create_star_device(ham, star_device='ML_STAR', used_node=1): return_field = ['step-return2'] cmd = ham.send_command(HHS_CREATE_STAR_DEVICE, starDevice=star_device, usedNode=used_node) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field) device_number = response.return_data[0] return device_number def hhs_create_usb_device(ham, used_node): cmd = ham.send_command(HHS_CREATE_USB_DEVICE, usedNode = used_node) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2']) device_number = response.return_data[0] return device_number def hhs_end_monitoring(ham, device_number): cmd = ham.send_command(HHS_END_MONITORING, deviceNumber = device_number) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2']) monitor_result = response.return_data[0] return monitor_result def hhs_get_firmware_version(ham, device_number): cmd = ham.send_command(HHS_GET_FIRMWARE_VERSION, deviceNumber = device_number) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2']) monitor_result = response.return_data[0] return monitor_result def hhs_get_serial_num(ham, device_number): cmd = ham.send_command(HHS_GET_SERIAL_NUM, deviceNumber = device_number) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2']) serial_number = response.return_data[0] return serial_number def hhs_get_shaker_param(ham, device_number): return_fields = ['step-return2', 'step-return3'] cmd = ham.send_command(HHS_GET_SHAKER_PARAM, deviceNumber = device_number) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_fields) params = response.return_data[0:1] return params def hhs_get_shaker_speed(ham, device_number): cmd = ham.send_command(HHS_GET_SHAKER_SPEED, deviceNumber = device_number) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2']) shaker_speed = response.return_data[0] return shaker_speed def hhs_get_temp_param(ham, device_number): return_fields = ['step-return2', 'step-return3', 'step-return4'] cmd = ham.send_command(HHS_GET_TEMP_PARAM, deviceNumber = device_number) data = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_fields) '''***Check STAR_OEM_noFan to verify step return 4''' return data def hhs_get_temp(ham, device_number): cmd = ham.send_command(HHS_GET_TEMP, deviceNumber = device_number) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2']) temp = response.return_data[0] return temp def hhs_get_temp_state(ham, device_number): cmd = ham.send_command(HHS_GET_TEMP_STATE, deviceNumber = device_number) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2']) temp_state = response return temp_state def hhs_set_simulation(ham, simulate): cmd = ham.send_command(HHS_SET_SIMULATION, simulate=simulate) ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) def hhs_send_firmware_cmd(ham, device_number, command, parameter): '''*** ValueError: Assert valid command "HHS_SendFirmwareCommand" failed: command name "TA" does not match Probably need to get example commands from Hamilton''' cmd = ham.send_command(HHS_SEND_FIRMWARE_CMD, deviceNumber=device_number, command=command, parameter=parameter) ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) def hhs_set_plate_lock(ham, device_number, plate_lock): cmd = ham.send_command(HHS_SET_PLATE_LOCK, deviceNumber=device_number, plateLock=plate_lock) ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) def hhs_set_shaker_param(ham, device_number, shaking_direction, shaking_acc_ramp): cmd = ham.send_command(HHS_SET_SHAKER_PARAM, deviceNumber=device_number, shakingDirection=shaking_direction, \ shakingAccRamp=shaking_acc_ramp) ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) def hhs_set_temp_param(ham, device_number, start_timeout, tolerance_range, security_range): cmd = ham.send_command(HHS_SET_TEMP_PARAM, deviceNumber=device_number, startTimeout=start_timeout, \ toleranceRange=tolerance_range, securityRange=security_range) ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) def hhs_set_usb_trace(ham, trace): cmd = ham.send_command(HHS_SET_USB_TRC, trace=trace) ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) def hhs_start_all_shaker(ham, shaking_speed): '''*** trace: complete with error: node not initialized''' cmd = ham.send_command(HHS_START_ALL_SHAKER, shakingSpeed=shaking_speed) ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) def hhs_start_all_shaker_timed(ham, shaking_speed, shaking_time): '''*** trace: complete with error: node not initialized''' cmd = ham.send_command(HHS_START_ALL_SHAKER_TIMED, shakingSpeed=shaking_speed, shakingTime=shaking_time) ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) def hhs_start_shaker(ham, device_number, shaking_speed): cmd = ham.send_command(HHS_START_SHAKER, deviceNumber=device_number, shakingSpeed=shaking_speed) ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) def hhs_start_shaker_timed(ham, device_number, shaking_speed, shaking_time): cmd = ham.send_command(HHS_START_SHAKER_TIMED, deviceNumber=device_number, shakingSpeed=shaking_speed, \ shakingTime=shaking_time) ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) def hhs_start_temp_ctrl(ham, device_number, temperature, wait_for_temp_reached): cmd = ham.send_command(HHS_START_TEMP_CTRL, deviceNumber=device_number, temperature=temperature, \ waitForTempReached=wait_for_temp_reached) ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) def hhs_stop_all_shakers(ham): '''*** trace: complete with error: node not initialized''' cmd = ham.send_command(HHS_STOP_ALL_SHAKER) ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) def hhs_stop_shaker(ham, device_number): cmd = ham.send_command(HHS_STOP_SHAKER, deviceNumber=device_number) ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) def hhs_stop_temp_ctrl(ham, device_number): cmd = ham.send_command(HHS_STOP_TEMP_CTRL, deviceNumber=device_number) ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) def hhs_terminate(ham): cmd = ham.send_command(HHS_TERMINATE) ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) def hhs_wait_for_shaker(ham, device_number): cmd = ham.send_command(HHS_WAIT_FOR_SHAKER, deviceNumber=device_number) ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) def hhs_wait_for_temp_ctrl(ham, device_number): cmd = ham.send_command(HHS_WAIT_FOR_TEMP_CTRL, deviceNumber=device_number) ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) class HHS: """Helper class for Hamilton Heater Shaker devices.""" def __init__(self, node, sequence, lmgr: LayoutManager): self.node = node self._sequence = sequence self.lmgr = lmgr self.resource = layout_item(lmgr, Plate96, sequence) def layout_name(self): return self._sequence ================================================ FILE: pyhamilton/devices/hig_wrappers.py ================================================ # -*- coding: utf-8 -*- """ Created on Fri Feb 10 00:01:53 2023 @author: stefa """ import sys, os, time, logging, importlib from threading import Thread from ..interface import HamiltonInterface from ..interface import (HIG_CONNECT, HIG_DISCONNECT, HIG_HOME, HIG_SPIN, HIG_SPINWAIT, HIG_OPEN, HIG_CLOSE, HIG_SPINNING, HIG_ABORT) std_timeout = 5 def hig_connect(ham, device_id, adapter_device_id, simulation_mode): return_field = ['step-return2'] cmd = ham.send_command(HIG_CONNECT, DeviceID=device_id, AdapterDeviceID = adapter_device_id, SimulationMode = simulation_mode) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field) result = response.return_data[0] return result def hig_disconnect(ham): cmd = ham.send_command(HIG_DISCONNECT) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) return response def hig_home(ham): cmd = ham.send_command(HIG_HOME) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) result = response.return_data[0] return result def hig_spin(ham, Gs, acceleration_pct, deceleration_pct, time): cmd = ham.send_command(HIG_SPIN, RotationalGs = Gs, AccelPercent = acceleration_pct, DecelPercent = deceleration_pct) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout = time + std_timeout) return response def hig_spin_and_wait(ham, Gs, acceleration, deceleration, time): cmd = ham.send_command(HIG_SPINWAIT) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) return response def hig_open_shield(ham, bucket_index): cmd = ham.send_command(HIG_OPEN, BucketIndex = bucket_index) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) return response def hig_close_shield(ham): cmd = ham.send_command(HIG_CLOSE) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) return response def hig_is_spinning(ham): return_field = ['step-return2'] cmd = ham.send_command(HIG_SPINNING) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field) result = response.return_data[0] return result def hig_home(ham): cmd = ham.send_command(HIG_ABORT) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) return response ================================================ FILE: pyhamilton/devices/mpe_wrappers.py ================================================ # -*- coding: utf-8 -*- """ Created on Sun Feb 12 18:56:58 2023 @author: stefa """ import sys, os, time, logging, importlib from threading import Thread from functools import partial from ..interface import HamiltonInterface from ..interface import (MPE2_IP, MPE2_COM, MPE2_CLAMP, MPE2_COL_PLACED, MPE2_COL_REMOVED, MPE2_DISCONNECT, MPE2_INIT, MPE2_INIT_PARAMS, MPE2_DISCONNECT, MPE2_FIL_PLACED, MPE2_FIL_REMOVED, MPE2_FIL_TO_COL, MPE2_FIL_TO_WASTE, MPE2_FLUSH,MPE2_EVAP, MPE2_EVAP_END, MPE2_EVAP_RATE, MPE2_PRIME, MPE2_HEATER_STATUS, MPE2_TEMP_RANGE, MPE2_GET_VAC, MPE2_MEAS_EMPTY, MPE2_MEAS_FULL, MPE2_DISPENSE, MPE2_GET_PRESS, MPE2_RETRIEVE_FIL, MPE2_START_VAC, MPE2_STOP_VAC) def mpe2_connect_ip(ham, instrument_name, port_number, simulation_mode, options = ''): return_field = ['step-return2'] cmd = ham.send_command(MPE2_IP, InstrumentName=instrument_name, PortNumber=port_number, SimulationMode=simulation_mode, Options=options) response = ham.wait_on_response(cmd, raise_first_exception=True, return_data=return_field) result = response.return_data[0] return result def mpe2_connect_com(ham, com_port, baud_rate, simulation_mode, options = ''): return_field = ['step-return2'] cmd = ham.send_command(MPE2_COM, ComPort=com_port, BaudRate=baud_rate, SimulationMode=simulation_mode, Options=options) response = ham.wait_on_response(cmd, raise_first_exception=True, return_data=return_field) return response def mpe2_clamp_filter_plate(ham, device_id): return_field = ['step-return2'] cmd = ham.send_command(MPE2_CLAMP, DeviceID=device_id) response = ham.wait_on_response(cmd, raise_first_exception=True, return_data=return_field) return response def mpe2_collection_plate_placed(ham, device_id, collection_plate_height, offset_from_nozzles): return_field = ['step-return2'] cmd = ham.send_command(MPE2_COL_PLACED, DeviceID=device_id, CollectionPlateHeight=collection_plate_height, OffsetFromNozzles=offset_from_nozzles) response = ham.wait_on_response(cmd, raise_first_exception=True, return_data=return_field) return response def mpe2_collection_plate_removed(ham, device_id): return_field = ['step-return2'] cmd = ham.send_command(MPE2_COL_REMOVED, DeviceID=device_id) response = ham.wait_on_response(cmd, raise_first_exception=True, return_data=return_field) return response def mpe2_disconnect(ham, device_id): return_field = ['step-return2'] cmd = ham.send_command(MPE2_DISCONNECT, DeviceID=device_id) response = ham.wait_on_response(cmd, raise_first_exception=True, return_data=return_field) return response def mpe2_initialize(ham, device_id): cmd = ham.send_command(MPE2_INIT, DeviceID=device_id) response = ham.wait_on_response(cmd, raise_first_exception=True) return response def mpe2_initialize_with_params(ham, device_id, smart, waste_container_id, vacuum_run_time, disable_vacuum_check): cmd = ham.send_command(MPE2_INIT_PARAMS, DeviceID=device_id, Smart=smart, WasteContainerID=waste_container_id, VacuumRunTime=vacuum_run_time, DisableVacuumCheck=disable_vacuum_check) response = ham.wait_on_response(cmd, raise_first_exception=True) return response def mpe2_filter_plate_placed(ham, device_id, filter_height, nozzle_height): cmd = ham.send_command(MPE2_FIL_PLACED, DeviceID=device_id, FilterHeight=filter_height, NozzleHeight=nozzle_height) response = ham.wait_on_response(cmd, raise_first_exception=True) return response def mpe2_filter_plate_removed(ham, device_id): cmd = ham.send_command(MPE2_FIL_REMOVED, DeviceID=device_id) response = ham.wait_on_response(cmd, raise_first_exception=True) return response def mpe2_process_filter_to_collection_plate(ham, device_id, control_points, return_plate_to_integration_area=''): cmd = ham.send_command(MPE2_FIL_TO_COL, DeviceID=device_id, ControlPoints=control_points, ReturnPlateToIntegrationArea=return_plate_to_integration_area) response = ham.wait_on_response(cmd, raise_first_exception=True) return response def mpe2_process_filter_to_waste_container(ham, device_id, control_points, return_plate_to_integration_area='', waste_container_id='', disable_vacuum_check=''): cmd = ham.send_command(MPE2_FIL_TO_WASTE, DeviceID=device_id, ControlPoints=control_points, ReturnPlateToIntegrationArea=return_plate_to_integration_area, WasteContainerID=waste_container_id, DisableVacuumCheck=disable_vacuum_check) response = ham.wait_on_response(cmd, raise_first_exception=True) return response def mpe2_retrieve_filter_plate(ham, device_id): cmd = ham.send_command(MPE2_RETRIEVE_FIL, DeviceID=device_id) response = ham.wait_on_response(cmd, raise_first_exception=True) return response def mpe2_start_mpe_vacuum(ham, device_id, waste_container_id='', disable_vacuum_check=''): cmd = ham.send_command(MPE2_START_VAC, DeviceID=device_id, WasteContainerID=waste_container_id, DisableVacuumCheck=disable_vacuum_check) response = ham.wait_on_response(cmd, raise_first_exception=True) return response def mpe2_stop_vacuum(ham, device_id): cmd = ham.send_command(MPE2_STOP_VAC, DeviceID=device_id) response = ham.wait_on_response(cmd, raise_first_exception=True) return response def mpe2_get_vacuum_status(ham, device_id): cmd = ham.send_command(MPE2_GET_VAC, DeviceID=device_id) response = ham.wait_on_response(cmd, raise_first_exception=True) return response def mpe2_get_pressure_readings(ham, device_id): return_field = ['step-return2'] cmd = ham.send_command(MPE2_GET_PRESS, DeviceID=device_id) response = ham.wait_on_response(cmd, raise_first_exception=True, return_data=return_field) return response def mpe2_dispense(ham, device_id, source_id, well_volume, flow_rate_aspirate, flow_rate_dispense, needle_offset): return_field = ['step-return2'] cmd = ham.send_command(MPE2_DISPENSE, DeviceID=device_id, SourceID=source_id, WellVolume=well_volume, FlowRateAspirate=flow_rate_aspirate, FlowRateDispense=flow_rate_dispense, NeedleOffset=needle_offset) response = ham.wait_on_response(cmd, raise_first_exception=True, return_data=return_field) return response def mpe2_prime(ham, device_id, source_id, well_volume, flow_rate, waste_container_id): return_field = ['step-return2'] cmd = ham.send_command(MPE2_PRIME, DeviceID=device_id, SourceID=source_id, WellVolume=well_volume, FlowRate=flow_rate, WasteContainerID=waste_container_id) response = ham.wait_on_response(cmd, raise_first_exception=True, return_data=return_field) return response def mpe2_flush(ham, device_id, well_volume, flow_rate, waste_container_id): return_field = ['step-return2'] cmd = ham.send_command(MPE2_FLUSH, DeviceID=device_id, WellVolume=well_volume, FlowRate=flow_rate, WasteContainerID=waste_container_id) response = ham.wait_on_response(cmd, raise_first_exception=True, return_data=return_field) return response def mpe2_evaporate(ham, device_id, plate_height, needle_offset, well_depth, evaporator_travel_distance, evaporate_time): return_field = ['step-return2'] cmd = ham.send_command(MPE2_EVAP, DeviceID=device_id, PlateHeight=plate_height, NeedleOffset=needle_offset, WellDepth=well_depth, EvaporatorTravelDistance=evaporator_travel_distance, EvaporateTime=evaporate_time) response = ham.wait_on_response(cmd, raise_first_exception=True, return_data=return_field) return response def mpe2_evaporate_with_rate(ham, device_id, plate_height, needle_offset, well_depth, evaporator_travel_distance, evaporate_time, follow_rate): cmd = ham.send_command(MPE2_EVAP_RATE, DeviceID=device_id, PlateHeight=plate_height, NeedleOffset=needle_offset, WellDepth=well_depth, EvaporatorTravelDistance=evaporator_travel_distance, EvaporateTime=evaporate_time, FollowRate=follow_rate) response = ham.wait_on_response(cmd, raise_first_exception=True) return response def mpe2_evaporate_end(ham, device_id, timeout): cmd = ham.send_command(MPE2_EVAP_END, DeviceID=device_id, Timeout=timeout) response = ham.wait_on_response(cmd, raise_first_exception=True) return response def mpe2_get_temperature_range(ham, device_id): cmd = ham.send_command(MPE2_TEMP_RANGE, DeviceID=device_id) response = ham.wait_on_response(cmd, raise_first_exception=True) return response def mpe2_get_heater_status(ham, device_id, reset): cmd = ham.send_command(MPE2_HEATER_STATUS, DeviceID=device_id, Reset=reset) response = ham.wait_on_response(cmd, raise_first_exception=True) return response def mpe2_get_heater_range(ham, device_id, reset): cmd = ham.send_command(MPE2_TEMP_RANGE, DeviceID=device_id, Reset=reset) response = ham.wait_on_response(cmd, raise_first_exception=True) return response ================================================ FILE: pyhamilton/devices/odtc_wrappers.py ================================================ # -*- coding: utf-8 -*- """ Created on Mon Jan 23 23:25:49 2023 @author: stefa """ import sys, os, time, logging, importlib from threading import Thread from dataclasses import dataclass from ..interface import HamiltonInterface, HamiltonResponse from ..interface import (ODTC_ABORT, ODTC_CONNECT, ODTC_INIT, ODTC_CLOSE, ODTC_PRTCL, ODTC_EVAL, ODTC_EXCT, ODTC_STATUS, ODTC_OPEN, ODTC_READ, ODTC_RESET, ODTC_STOP, ODTC_TERM) std_timeout = 60 def odtc_abort(ham, device_id, lock_id): return_field = ['step-return2'] cmd = ham.send_command(ODTC_ABORT, DeviceID=device_id, LockID=lock_id) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field) return response def odtc_connect(ham, simulation_mode, local_ip, device_ip, device_port = ''): return_field = ['step-return2'] cmd = ham.send_command(ODTC_CONNECT, LocalIP=local_ip, DeviceIP=device_ip, DevicePort=device_port, SimulationMode=simulation_mode) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field) if response == 0 and not ham.simulating: raise RuntimeError("Failed to connect to ODTC device") if ham.simulating: return 1 # Simulated device ID else: device_id = int(response.return_data[0]) return device_id def odtc_initialize(ham, device_id, lock_id = ''): return_field = ['step-return2'] cmd = ham.send_command(ODTC_INIT, DeviceID=device_id, LockID=lock_id) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field) return response def odtc_close_door(ham, device_id, lock_id = ''): return_field = ['step-return2'] cmd = ham.send_command(ODTC_CLOSE, DeviceID=device_id, LockID=lock_id) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field) return response def odtc_download_protocol(ham, device_id, protocol_file, lock_id = ''): return_field = ['step-return2'] cmd = ham.send_command(ODTC_PRTCL, DeviceID=device_id, LockID=lock_id) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field) return response def odtc_evaluate_error(ham, device_id, lock_id = ''): return_field = ['step-return2'] cmd = ham.send_command(ODTC_EVAL, DeviceID=device_id, LockID=lock_id) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field) return response def odtc_execute_protocol(ham, device_id, method_name, simulating, priority=1, lock_id = ''): if not 0 < priority < 10001: raise ValueError("Date provided can't be in the past") return_field = ['step-return2'] cmd = ham.send_command(ODTC_EXCT, DeviceID=device_id, LockID=lock_id, MethodName=method_name, Priority=priority) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field) @dataclass class ODTCExecuteResponse: duration: float resultID: int raw: HamiltonResponse # keep the raw object if callers need extras if simulating: return ODTCExecuteResponse(duration=0.0, resultID=0, raw=response) else: return ODTCExecuteResponse(duration=response.return_data[0], resultID=response.return_data[1], raw=response) def odtc_get_status(ham, device_id, simulating): print("Checking ODTC status...") print(simulating) return_fields = ['step-return2', 'step-return3', 'step-return4', 'step-return5', 'step-return6', 'step-return7', 'step-return8'] cmd = ham.send_command(ODTC_STATUS, DeviceID=device_id) @dataclass class ODTCStatusResponse: ''' 'startup', 'resetting', 'standby', 'idle', 'busy', 'paused', 'errorhandling', 'inerror', 'asynchpaused', 'pauserequested', 'processing', 'responsewaiting' ''' state: str raw: HamiltonResponse # keep the raw object if callers need extras if ham.simulating or simulating: print("Simulating ODTC status as 'idle'") return ODTCStatusResponse(state='idle', raw=None) else: response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_fields) result = ODTCStatusResponse( state=response.return_data[0], raw=response ) return result def odtc_open_door(ham, device_id, lock_id = ''): return_field = ['step-return2'] cmd = ham.send_command(ODTC_OPEN, DeviceID=device_id, LockID=lock_id) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field) return response def odtc_read_actual_temperature(ham, device_id, lock_id = ''): return_fields = ['step-return2', 'step-return3'] cmd = ham.send_command(ODTC_READ, DeviceID=device_id, LockID=lock_id) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_fields) if ham.simulate: return ['Simulation_mode_placeholder']*len(return_fields) else: result = response.return_data return result def odtc_reset(ham, device_id, simulation_mode, timeout, str_device_id = '', pms_id = '', lock_id = ''): return_field = ['step-return2'] cmd = ham.send_command(ODTC_RESET, DeviceID=device_id, LockID=lock_id, SimulationMode=simulation_mode, TimeToWait=timeout, strDeviceID=str_device_id, PMSID=pms_id) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field) return response def odtc_stop_method(ham, device_id, lock_id): return_field = ['step-return2'] cmd = ham.send_command(ODTC_STOP, DeviceID=device_id, LockID=lock_id) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field) return response def odtc_terminate(ham, device_id): return_field = ['step-return2'] cmd = ham.send_command(ODTC_TERM, DeviceID=device_id) response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field) return response def odtc_wait_for_idle(ham, device_id, simulating, check_interval=5, max_wait=3000): ''' Waits until the ODTC device is in 'idle' state. Parameters: ham (HamiltonInterface): The Hamilton interface instance. device_id (int): The ID of the ODTC device. check_interval (int): Time in seconds between status checks. max_wait (int): Maximum time in seconds to wait before raising a TimeoutError. Raises: TimeoutError: If the device does not reach 'idle' state within max_wait time. ''' if simulating: return start_time = time.time() while True: status = odtc_get_status(ham, device_id, simulating) if status.state == 'idle': return elif time.time() - start_time > max_wait: raise TimeoutError(f"ODTC device {device_id} did not reach 'idle' state within {max_wait} seconds.") time.sleep(check_interval) ================================================ FILE: pyhamilton/devices/pH_wrappers.py ================================================ # -*- coding: utf-8 -*- """ Created on Sun Oct 2 15:40:58 2022 @author: stefa """ import sys, os, time, logging, importlib from threading import Thread from ..interface import HamiltonInterface from ..interface import (PH_INIT, PH_REQ_BTRY, PH_MEASURE, PH_MEASURE_DYN, PH_REQ_CALIBRATION, PH_REQ_PROBE_DATA, PH_REQ_TECH_DATA, PH_CALIBRATE, PH_CALIBRATE_DYN, PH_TERM, PH_SLEEP, PH_WAKEUP, PH_WASHER_INIT, PH_WASHER_WASH, PH_WASHER_TERM, PH_DRYER_INIT, PH_DRYER_START, PH_DRYER_STOP, PH_DRYER_TERM, PHC_WASH, PHC_DRY, PHC_LOAD, PHC_SAVE) from ..interface import (PHC_INIT, PHC_SET_PARAMS, PHC_PICKUP, PHC_PARK, PHC_CAL, PHC_MEASURE_CYCLE) from ..liquid_handling_wrappers import compound_pos_str DEFAULT_WAIT_ON_RESPONSE_TIMEOUT = 300 # seconds ### Controller functions ### def ph_controller_initialize(ham, port_number, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): cmd = ham.send_command(PHC_INIT, PortNumber = port_number) response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data=['step-return2']) return int(response.moduleID) def ph_controller_parameters(ham, module_id, seq_gripper, seq_wash, seq_dry, transport_channels,wash_cycles,dry_cycles,dry_time, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): cmd = ham.send_command(PHC_SET_PARAMS, ModuleID = module_id, seqGripper = seq_gripper, seqWashPosition = seq_wash, seqDryPosition = seq_dry, TransportChannel = transport_channels, WashCycles = wash_cycles, DryCycles = dry_cycles, DryTime = dry_time) response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout) def ph_controller_pickup(ham, module_id, seq_module, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): cmd = ham.send_command(PHC_PICKUP, ModuleID = module_id, seqModule = seq_module) response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout) def ph_controller_park(ham, module_id, seq_module, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): cmd = ham.send_command(PHC_PARK, ModuleID = module_id, seqModule = seq_module) response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout) def ph_controller_calibrate(ham, module_id, seq_module, seq_solution_1,seq_solution_2,seq_reference, measure_time,calibration_time,measure_height, pH_solution_1, pH_solution_2, pH_reference,temp_solution_1, temp_solution_2, temp_solution_ref, calibrate_dynamically, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): cmd = ham.send_command(PHC_CAL, ModuleID = module_id, seqModule = seq_module, seqCalibration1 = seq_solution_1, seqCalibration2 = seq_solution_2, seqReference = seq_reference, MeasureTime = measure_time, CalibrationTime = calibration_time, MeasureHeight = measure_height, CalibrationValue1 = pH_solution_1, CalibrationValue2 = pH_solution_2, CalibrationValueRef = pH_reference, TempSoln1 = temp_solution_1, TempSoln2 = temp_solution_2, TempSolnRef = temp_solution_ref, CalibrateDynamically = calibrate_dynamically) response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout) def ph_controller_measure_cycle(ham, module_id, pos, measure_height, probe_pattern, measure_time,temperature, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): return_fields = ['step-return2'] labware_pos = compound_pos_str(pos) cmd = ham.send_command(PHC_MEASURE_CYCLE, ModuleID = module_id, MeasurePositions = labware_pos, MeasureHeight = measure_height, ProbePattern = probe_pattern, MeasureTime = measure_time, Temperature = temperature) response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data = return_fields) pH_values = response.return_data[0].split(';') pH_values = [float(pH) for pH in pH_values] return pH_values def ph_controller_wash(ham, module_id, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): cmd = ham.send_command(PHC_WASH, ModuleID = module_id) response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout) def ph_controller_dry(ham, module_id, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): cmd = ham.send_command(PHC_DRY, ModuleID = module_id) response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout) def ph_controller_loadconfig(ham, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): return_fields = ['step-return2', 'step-return3', 'step-return4', 'step-return5'] cmd = ham.send_command(PHC_LOAD) response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data = return_fields) return response def ph_controller_saveconfig(ham, bluetooth_port, num_wash_cycles, num_dry_cycles, dry_time, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): cmd = ham.send_command(PHC_SAVE, BluetoothPort = bluetooth_port, NumWashCycles = num_wash_cycles, NumDryCycles = num_dry_cycles, DryTime = dry_time) response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout) return response ### Low-level functions ### def ph_initialize(ham, comport, simulate, asynch=False, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): cmd = ham.send_command(PH_INIT, Comport = comport, SimulationMode = simulate) response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data=['step-return2']) return int(response.moduleID) def ph_req_battery_data(ham, module_id, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): return_fields = ['step-return2', 'step-return3', 'step-return4', 'step-return5'] cmd = ham.send_command(PH_REQ_BTRY, ModuleID = module_id) response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data = return_fields) return response.return_data def ph_measure(ham, module_id, temperature, probePattern, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): return_fields = ['step-return2', 'step-return3', 'step-return4', 'step-return5'] cmd = ham.send_command(PH_MEASURE, ModuleID = module_id, Temperature = temperature, probePattern = probePattern) response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data = return_fields) return response.return_data def ph_measure_dynamic(ham, module_id, temperature, precision, timeout, probePattern, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): return_fields = ['step-return2', 'step-return3', 'step-return4', 'step-return5'] cmd = ham.send_command(PH_MEASURE_DYN, ModuleID = module_id, Temperature = temperature, Precision = precision, Timeout = timeout, probePattern = probePattern) response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data = return_fields) return response.return_data def ph_request_calibration(ham, module_id, probe_number, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): return_fields = ['step-return2', 'step-return3', 'step-return4', 'step-return5', 'step-return6', 'step-return7', 'step-return8', 'step-return9' ] cmd = ham.send_command(PH_REQ_CALIBRATION, ModuleID = module_id, ProbeNumber = probe_number) response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data = return_fields) return response.return_data def ph_request_probe_data(ham, module_id, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): return_fields = ['step-return2', 'step-return3', 'step-return4', 'step-return5', 'step-return6' ] cmd = ham.send_command(PH_REQ_PROBE_DATA, ModuleID = module_id) response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data = return_fields) return response.return_data def ph_request_technical_data(ham, module_id, hardware_number, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): return_fields = ['step-return2', 'step-return3', 'step-return4', 'step-return5'] cmd = ham.send_command(PH_REQ_TECH_DATA, ModuleID = module_id, HardwareNumber = hardware_number) response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data = return_fields) return response.return_data def ph_calibrate(ham, module_id, cal_level, cal_value, cal_temperature, probe_pattern, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): cmd = ham.send_command(PH_CALIBRATE, ModuleID = module_id, CalibrationLevel = cal_level, CalibrationValue = cal_value, CalibrationTemperature=cal_temperature, probePattern = probe_pattern) response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout) return response def ph_calibrate_dynamically(ham, module_id, variance, timeout, cal_level, cal_value, cal_temperature, probe_pattern, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): cmd = ham.send_command(PH_CALIBRATE_DYN, ModuleID = module_id, Variance = variance, Timeout = timeout, CalibrationLevel = cal_level, CalibrationValue = cal_value, CalibrationTemperature=cal_temperature, probePattern = probe_pattern) response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout) return response def ph_wakeup(ham, module_id, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): cmd = ham.send_command(PH_WAKEUP, ModuleID = module_id) return ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout) def ph_sleep(ham, module_id, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): cmd = ham.send_command(PH_SLEEP, ModuleID = module_id) return ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout) def ph_washer_initialize(ham, comport, simulate, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): cmd = ham.send_command(PH_WASHER_INIT, Comport = comport, SimulationMode = simulate) response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data=['step-return2']) return int(response.moduleID) def ph_washer_wash(ham, module_id, cycle_num, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): cmd = ham.send_command(PH_WASHER_WASH, ModuleID = module_id, CycleNumber = cycle_num) return ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout) def ph_washer_terminate(ham, module_id, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): cmd = ham.send_command(PH_WASHER_TERM, ModuleID = module_id) return ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout) def ph_dryer_initialize(ham, comport, simulate, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): cmd = ham.send_command(PH_DRYER_INIT, Comport = comport, SimulationMode = simulate) response = ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout, return_data=['step-return2']) return int(response.moduleID) def ph_dryer_start(ham, module_id, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): cmd = ham.send_command(PH_DRYER_START, ModuleID = module_id) return ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout) def ph_dryer_stop(ham, module_id, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): cmd = ham.send_command(PH_DRYER_STOP, ModuleID = module_id) return ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout) def ph_dryer_terminate(ham, module_id, raise_first_exception=True, wait_on_response_timeout=DEFAULT_WAIT_ON_RESPONSE_TIMEOUT): cmd = ham.send_command(PH_DRYER_TERM, ModuleID = module_id) return ham.wait_on_response(cmd, raise_first_exception=raise_first_exception, timeout=wait_on_response_timeout) ================================================ FILE: pyhamilton/devices/tec_wrappers.py ================================================ # -*- coding: utf-8 -*- """ Created on Tue May 30 21:44:03 2023 @author: stefa """ from ..interface import TEC_INIT, TEC_START, TEC_SET_TARGET, TEC_STOP, TEC_TERMINATE, TEC_GET_TEMPERATURE, HamiltonInterface import logging def initialize_tec(ham, controller_id, simulating): logging.info('Initializing TEC/CPAC ' + str(controller_id) ) cid = ham.send_command(TEC_INIT, ControllerID=controller_id, SimulationMode=simulating) ham.wait_on_response(cid, raise_first_exception=True, timeout=120) def set_temperature_target_tec(ham, target_temp, controller_id, device_id): logging.info('Set target temperature ' + str(controller_id) +' '+ str(device_id)+' to '+str(target_temp)+' degrees C') cid = ham.send_command(TEC_SET_TARGET, TargetTemperature=target_temp, ControllerID=controller_id, DeviceID=device_id) ham.wait_on_response(cid, raise_first_exception=True, timeout=120) def get_temperature_tec(ham:HamiltonInterface, controller_id, device_id, selector = 1): logging.info('Getting temperature ' + str(controller_id) +' '+ str(device_id)) cid = ham.send_command(TEC_GET_TEMPERATURE, ControllerID=controller_id, DeviceID=device_id, Selector=selector) response = ham.wait_on_response(cid, raise_first_exception=True, timeout=120, return_data=['step-return2']) return response def start_temperature_control_tec(ham, controller_id, device_id): logging.info('Starting temperature control '+str(controller_id)+' '+str(device_id)) cid=ham.send_command(TEC_START, ControllerID=controller_id, DeviceID=device_id) ham.wait_on_response(cid, raise_first_exception=True, timeout=120) def stop_temperature_control_tec(ham, controller_id, device_id): logging.info('Ending temperature control '+str(controller_id)+' '+str(device_id)) cid=ham.send_command(TEC_STOP, ControllerID=controller_id, DeviceID=device_id) ham.wait_on_response(cid, raise_first_exception=True, timeout=120) def terminate_tec(ham, stop_all_devices): logging.info('Terminating TEC/ CPAC') cid=ham.send_command(TEC_TERMINATE, StopAllDevices=stop_all_devices) ham.wait_on_response(cid, raise_first_exception=True, timeout=120) # CPAC has the exact same API as TEC initialize_cpac = initialize_tec set_temperature_target_cpac = set_temperature_target_tec get_temperature_cpac = get_temperature_tec start_temperature_control_cpac = start_temperature_control_tec stop_temperature_control_cpac = stop_temperature_control_tec terminate_cpac = terminate_tec ================================================ FILE: pyhamilton/error_code_descriptions.txt ================================================ Main Error Enumeration ID Error Description 0 No error - 1 Syntax Error There is a wrong set of parameters or parameter ranges. 2 Hardware Error Steps lost on one or more hardware components, or component not initialized or not functioning. 3 Not Executed Error There was an error in previous part command. 4 Clot Error Blood clot detected. 5 Barcode Error Barcode could not be read or is missing. 6 Insufficient Liquid Error Not enough liquid available. 7 Tip Present Error A tip has already been picked up. 8 No Tip Error Tip is missing or not picked up. 9 No Carrier Error No carrier present for loading. 10 Execution Error A step or a part of a step could not be processed. 11 Pressure LLD Error A dispense with pressure liquid level detection is not allowed. 12 Calibrate Error No capacitive signal detected during carrier calibration procedure. 13 Unload Error Not possible to unload the carrier due to occupied loading tray position. 14 Pressure LLD Error Pressure liquid level detection in a consecutive aspiration is not allowed. 15 Parameter Error Dispense in jet mode with pressure liquid level detection is not allowed. 16 Cover Open Error Cover not closed or can not be locked. 17 Improper Aspiration Error Improper Dispense Error The pressure-based aspiration / dispensation control reported an error ( not enough liquid ). 18 Wash Liquid Error Waste full or no more wash liquid available. 19 Temperature Error Incubator temperature out of range. 20 TADM overshot Overshot of limits during aspirate or dispense. Note: On aspirate this error is returned as main error 17. On dispense this error is returned as main error 4. 21 Labware Error Labware not available. 22 Labware Gripped Error Labware already gripped. 23 Labware Lost Error Labware lost during transport. 24 Illegal target plate position Cannot place plate, plate was gripped in a wrong direction. 25 Illegal Intervention Error Cover was opened or a carrier was removed manually. 26 TADM undershot Undershot of limits during aspirate or dispense. Note: On aspirate this error is returned as main error 4. On dispense this error is returned as main error 17. 27 Position Error The position is out of range. 28 Unexpected cLLD Error The cLLD detected a liquid level above start height of liquid level search. 29 Area already occupied Instrument region already reserved. 30 Impossible to occupy area A region on the instrument cannot be reserved. 31 Anti drop control error Anti drop controlling out of tolerance. 32 Decapper error Decapper lock error while screw / unscrew a cap by twister channels. 33 Decapper handling error Decapper station error while lock / unlock a cap. 99 Slave Error Slave error. 100 Wrong Carrier Error Wrong carrier barcode detected. 101 No Carrier Barcode Error Carrier barcode could not be read or is missing. 102 Liquid Level Error Liquid surface not detected. This error is created from main / slave error 06/70, 06/73 and 06/87. 103 Not Detected Error Carrier not detected at deck end position. 104 Not Aspirated Error Dispense volume exceeds the aspirated volume. This error is created from main / slave error 02/54. 105 Improper Dispensation Error The dispensed volume is out of tolerance (may only occur for Nano Pipettor Dispense steps). This error is created from main / slave error 02/52 and 02/54. 106 No Labware Error The labware to be loaded was not detected by autoload module. Note: May only occur on a Reload Carrier step if the labware property 'MlStarCarPosAreRecognizable' is set to 1. 107 Unexpected Labware Error The labware contains unexpected barcode ( may only occur on a Reload Carrier step ). 108 Wrong Labware Error The labware to be reloaded contains wrong barcode ( may only occur on a Reload Carrier step ). 109 Barcode Mask Error The barcode read doesn't match the barcode mask defined. 110 Barcode Not Unique Error The barcode read is not unique. Previously loaded labware with same barcode was loaded without unique barcode check. 111 Barcode Already Used Error The barcode read is already loaded as unique barcode ( it's not possible to load the same barcode twice ). 112 Kit Lot Expired Error Kit Lot expired. 113 Delimiter Error Barcode contains character which is used as delimiter in result string. ================================================ FILE: pyhamilton/interface.py ================================================ import sys import time, json, signal, os, requests, string, logging, subprocess from dataclasses import dataclass, field from enum import auto, Enum, unique from parse import parse from waiter import wait, suppress from http import server from threading import Thread from multiprocessing import Process from pyhamilton import OEM_RUN_EXE_PATH, OEM_HSL_PATH from .oemerr import * #TODO: specify from .defaultcmds import defaults_by_cmd from .liquid_class_db import get_liquid_class_volume, get_liquid_class_dispense_mode def invert_columns(pos_str: str, sep: str = ';') -> str: parts = pos_str.split(sep) wells_per_col = 8 num_cols = 12 if len(parts) != wells_per_col * num_cols: raise ValueError(f"Expected {wells_per_col * num_cols} entries, got {len(parts)}") cols = [parts[i*wells_per_col:(i+1)*wells_per_col] for i in range(num_cols)] inverted = cols[::-1] return sep.join(item for col in inverted for item in col) class HamiltonCmdTemplate: """ Formatter object to create valid `pyhamilton` command dicts. Use of this class to assemble JSON pyhamilton commands enables keyword access to command attributes, which cuts down on string literals. It also helps to fail malformed commands early, before they are sent. Several default `HamiltonCmdTemplate`s are defined in `pyhamilton.defaultcmds`, such as `INITIALIZE`, `ASPIRATE`, and `DISPENSE`. Casual users will most likely never need to manually instantiate a HamiltonCmdTemplate. """ @staticmethod def unique_id(): """Return a "uniqe" hexadecimal string (`'0x...'`) based on time of call.""" return hex(int((time.time()%3600e4)*1e6)) def __init__(self, cmd_name, params_list): """ Creates a `HamiltonCmdTemplate` with a command name and required parameters. The command name must be one of the command names accepted by the `pyhamilton` interpreter and a list of expected parameters for this command. Args: cmd_name (str): One of the set of string literals recognized as command names by the `pyhamilton` interpreter, e.g. `'mph96Dispense'`. See `pyhamilton.defaultcmds` for examples. params_list (list): exact list of string parameters that must have associated values for the command to be valid, other than those that are always present (`'command'` and `'id'`) """ self.cmd_name = cmd_name self.params_list = params_list if cmd_name in defaults_by_cmd: const_name, default_dict = defaults_by_cmd[cmd_name] self.defaults = {k:v for k, v in default_dict.items() if v is not None} else: self.defaults = {} def assemble_cmd(self, *args, **kwargs): """ Use keyword args to assemble this command. Default values auto-filled. Args: kwargs (dict): map of any parameters (str) to values that should be different from the defaults supplied for this command in `pyhamilton.defaultcmds` """ if args: raise ValueError('assemble_cmd can only take keyword arguments.') assembled_cmd = {'command':self.cmd_name, 'id':HamiltonCmdTemplate.unique_id()} assembled_cmd.update(self.defaults) assembled_cmd.update(kwargs) self.assert_valid_cmd(assembled_cmd) return assembled_cmd def assert_valid_cmd(self, cmd_dict): """Validate a finished command. Do nothing if it is valid. `ValueError` will be raised if the supplied command did not have all required parameters for this command, as well as values for keys `'id'` and `'command'`, which are always required. Args: cmd_dict (dict): A fully assembled `pyhamilton` command Raises: ValueError: The command dict is not ready to send. Specifics of mismatch summarized in exception description. """ prefix = 'Assert valid command "' + self.cmd_name + '" failed: ' if 'id' not in cmd_dict: raise ValueError(prefix + 'no key "id"') if 'command' not in cmd_dict: raise ValueError(prefix + 'no key "command"') if cmd_dict['command'] != self.cmd_name: raise ValueError(prefix + 'command name "' + cmd_dict['command'] + '" does not match') needs = set(['command', 'id']) needs.update(self.params_list) givens = set(cmd_dict.keys()) if givens != needs: prints = [prefix + 'template parameter keys (left) do not match given keys (right)\n'] q_mark = ' (?) ' l_col_space = 4 r_col_space = max((len(key) for key in needs)) + len(q_mark) + 1 needs_l = sorted(list(needs)) givens_l = sorted(list(givens)) while needs_l or givens_l: if needs_l: lval = needs_l.pop(0) if lval not in givens: lval = q_mark + lval else: lval = '' if givens_l: rval = givens_l.pop(0) if rval not in needs: rval = q_mark + rval else: rval = '' prints.append(' '*l_col_space + lval + ' '*(r_col_space - len(lval)) + rval) raise ValueError('\n'.join(prints)) _builtin_templates_by_cmd = {} for cmd in defaults_by_cmd: const_name, default_dict = defaults_by_cmd[cmd] const_template = HamiltonCmdTemplate(cmd, list(default_dict.keys())) globals()[const_name] = const_template _builtin_templates_by_cmd[cmd] = const_template def labware_pos_str(labware, idx): return labware.layout_name() + ', ' + labware.position_id(idx) def _make_new_hamilton_serv_handler(resp_indexing_fn): """Make HTTP request handler to aggregate responses according to an index function.""" class HamiltonServerHandler(server.BaseHTTPRequestHandler): _send_queue = [] indexed_responses = {} MAX_QUEUED_RESPONSES = 1000 @classmethod def set_indexing_fn(cls, fn): cls.indexing_fn = fn @staticmethod def send_str(cmd_str): if not isinstance(cmd_str, b''.__class__): if isinstance(cmd_str, ''.__class__): cmd_str = cmd_str.encode() else: raise ValueError('send_command can only send strings, not ' + str(cmd_str)) HamiltonServerHandler._send_queue.append(cmd_str) @staticmethod def has_queued_cmds(): return bool(HamiltonServerHandler._send_queue) @staticmethod def pop_response(idx): ir = HamiltonServerHandler.indexed_responses return None if idx not in ir else ir.pop(idx).decode() def _set_headers(self): self.send_response(200) self.send_header('Content-type', 'text/HTML') self.end_headers() def do_GET(self): sq = HamiltonServerHandler._send_queue response_to_send = sq.pop(0) if sq else b'' self._set_headers() self.wfile.write(response_to_send) def do_HEAD(self): self._set_headers() def do_POST(self): content_len = int(self.headers.get('content-length', 0)) post_body = self.rfile.read(content_len) self._set_headers() self.wfile.write(b'

POST!

') ir = HamiltonServerHandler.indexed_responses index = HamiltonServerHandler.indexing_fn(post_body) if index is None: return ir[index] = post_body def log_message(self, *args, **kwargs): pass def run_hamilton_process(): print("RUNNING HAMILTON PROCESS") """Start the interpreter in a separate python process. Starts the pyhamilton interpreter, which is an HSL file to be passed to the RunHSLExecutor.exe executable from Hamilton. This should always be done in a separate python process using the subprocess module, not a Thread. """ import clr from pyhamilton import OEM_STAR_PATH, OEM_HSL_PATH clr.AddReference(os.path.join(OEM_STAR_PATH, 'RunHSLExecutor')) clr.AddReference(os.path.join(OEM_STAR_PATH, 'HSLHttp')) try: from RunHSLExecutor import Class1 except ModuleNotFoundError: raise RuntimeError('RunHSLExecutor DLLs successfully located, but an internal ' 'error prevented import as a CLR module. You might be ' 'missing the standard Hamilton software suite HSL ' 'executables, their DLLs may not be registered with Windows, ' 'or they may not be located in the expected system ' 'directory.') C = Class1() C.StartMethod(OEM_HSL_PATH) try: while True: pass # Send external signal to end process except: pass @unique class HamiltonResponseStatus(Enum): """ List of global Hamilton response status Inheritance ----------- Enum Attributes ---------- FAILED : enum.auto command failure is reported or parsing error has been detected SUCCESS : enum.auto command and parsing successful UNKNOWN : enum.auto indecisive state """ FAILED = auto() SUCCESS = auto() UNKNOWN = auto() @dataclass class HamiltonResponse: """ A class to represent the Venus server response Attributes ---------- status: HamiltonResponseStatus Response status (failed, success or unknown) return_data: list | str Extracted values from specific field response moduleID: str ID of module from "step-return2" field parsed_return: any Represent "step-return1" field value raw: any Original server response Methods ------- _compute_status() Compute the status based on step-return1 field from raw response _return_data() Contain values of requested fields _moduleID() Return Module ID (step-return2) _parse_return(): Parse values from "step-return1" field digest(fields) Populate this object's attributes raise_first_exception() Evaluate which exception to raise Raises ------ HamiltonStepError: Errors in steps executed by VENUS software HamiltonReturnParseError: Server response parsing failed InvalidErrCodeError: Unknown server response error code """ status: HamiltonResponseStatus = HamiltonResponseStatus.UNKNOWN return_data: list = field(default_factory=list) moduleID: str = "" parsed_return: any = None raw: any = None def _compute_status(self): is_unknown = 'step-return1' not in self.raw if is_unknown: return HamiltonResponseStatus.UNKNOWN response = json.loads(self.raw)['step-return1'] is_success = response == 1 or \ ( isinstance(response, str) and \ len(response) == 1 and \ response[0] == '1' ) or \ ( isinstance(response, str) and \ len(response) > 1 and \ response[0] == '0' ) is_failed = response == 0 or \ ( isinstance(response, str) and \ len(response) == 1 and \ response[0] != '1' ) or \ ( isinstance(response, str) and \ len(response.strip()) > 1 and \ response.strip()[0] != '0' ) if is_failed: return HamiltonResponseStatus.FAILED if is_success: return HamiltonResponseStatus.SUCCESS return HamiltonResponseStatus.UNKNOWN def _return_data(self, fields): response = json.loads(self.raw) if not fields or (isinstance(fields, str) and fields not in response): return [] if isinstance(fields, str) and fields in response: return [response[fields]] return [response[field] for field in fields if field in response] def _moduleID(self): moduleID_field_name = "step-return2" if moduleID_field_name not in self.raw: return "" response = json.loads(self.raw) return str(response[moduleID_field_name]) def _parse_return(self): return_field = "step-return1" field_names = [ "{numField:d}", "{mainErrField:d}", "{slaveErr:d}", "{recoveryBtnId:d}", "{stepData}", "{labwareName:w}", "{labwarePos}" ] if return_field not in self.raw: return None response = json.loads(self.raw)[return_field] block_available = isinstance(response, str) and '[' in response and ',' in response if not block_available: return None blocks = [r for r in response.split('[')[1:]] if not blocks: return None parsed = [ parse( ",".join(field_names[:block.count(',') + 1]), ",".join([' ' if item == '' else item for item in block.split(',') ])) for block in blocks ] if not parsed: return None if all([p is None for p in parsed]): return None return [p.named for p in parsed if p] def digest(self, fields=None): self.status = self._compute_status() self.return_data = self._return_data(fields=fields) self.moduleID = self._moduleID() self.parsed_return = self._parse_return() def raise_first_exception(self): isSuccessStatus = self.status == HamiltonResponseStatus.SUCCESS and '[' not in self.raw if isSuccessStatus: return isHamiltonStepError = self.status == HamiltonResponseStatus.FAILED and '[' not in self.raw if isHamiltonStepError: raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') isHamiltonReturnParseError = '[' in self.raw and (self.parsed_return is None or self.parsed_return == []) if isHamiltonReturnParseError: raise HamiltonReturnParseError(self.raw) reportedErrorCodes = [p['mainErrField'] for p in self.parsed_return if p['mainErrField'] != 0] isSuccessStatus = self.status == HamiltonResponseStatus.SUCCESS and len(reportedErrorCodes) == 0 if isSuccessStatus: return isFailedStatusNoReportedErrorCode = self.status == HamiltonResponseStatus.FAILED and len(reportedErrorCodes) == 0 if isFailedStatusNoReportedErrorCode: raise HamiltonReturnParseError('Hamilton step did not execute correctly; no error code found. ( response: ' + self.raw + ' )') firstErrorCode = reportedErrorCodes[0] isFirstExceptionKnown = firstErrorCode in HAMILTON_ERROR_MAP if isFirstExceptionKnown: raise HAMILTON_ERROR_MAP[firstErrorCode]() if self.status == HamiltonResponseStatus.FAILED: raise InvalidErrCodeError(f'Unknown error code: {firstErrorCode}') if self.status == HamiltonResponseStatus.SUCCESS: raise HamiltonReturnParseError('Inconsistency: Venus returns SUCCESS while error code {firstErrorCode} found! ( response: ' + self.raw + ' )') @dataclass class DispenseResult: liquidHeights: float liquidVolumes: float raw: HamiltonResponse # keep the raw object if callers need extras @dataclass class AspirateResult: liquidHeights: float liquidVolumes: float raw: HamiltonResponse # keep the raw object if callers need extras class HamiltonServerThread(Thread): """Private threaded local HTTP server with graceful shutdown flag.""" def __init__(self, address, port): super().__init__() self.daemon = True # CRITICAL: Make this a daemon thread self.server_address = (address, port) self.should_continue = True self.exited = False def index_on_resp_id(response_str): try: response = json.loads(response_str) if 'id' in response: return response['id'] except json.decoder.JSONDecodeError: pass return None HamiltonServerHandler.indexing_fn = index_on_resp_id self.httpd = None def run(self): self.exited = False try: self.httpd = server.HTTPServer(self.server_address, HamiltonServerHandler) # Set a short timeout so we don't block forever self.httpd.timeout = 0.5 while self.should_continue: try: self.httpd.handle_request() except OSError: # Socket was closed, exit gracefully break except Exception as e: print(f"Server thread exception: {e}") finally: if self.httpd: try: self.httpd.server_close() except: pass self.exited = True print("Server thread run() method completed") def disconnect(self): """Simple disconnect without calling shutdown() to avoid deadlocks""" self.should_continue = False # Don't call httpd.shutdown() here - it can cause deadlocks def has_exited(self): return self.exited class HamiltonInterface: """Main class to automatically set up and tear down an interface to a Hamilton robot. HamiltonInterface is the primary class offered by this module. It creates a Hamilton HSL background process running the `pyhamilton` interpreter, along with a `localhost` connection to act as a bridge. It is recommended to create a `HamiltonInterface` using a `with:` block to ensure proper startup and shutdown of its async components, even if exceptions are raised. It may be used with explicit `start()` and `stop()` calls. Typical usage: ``` with HamiltonInterface() as ham_int: cmd_id = ham_int.send_command(INITIALIZE) ... response = ham_int.wait_on_response(cmd_id) ... ``` """ known_templates = _builtin_templates_by_cmd default_port = 3221 default_address = '127.0.0.1' # localhost _global_server_thread = None def __init__(self, address=None, port=None, simulating = False, debug=False, windowed = False, server_mode = False, persistent = False, **kwargs): if 'simulate' in kwargs: raise Exception("The simulate keyword argument is deprecated in favor of windowed. Please use windowed = True") self.address = HamiltonInterface.default_address if address is None else address self.port = HamiltonInterface.default_port if port is None else port self.windowed = windowed self.simulating = simulating self.server_mode = server_mode self.persistent = persistent self.debug = debug self.server_thread = None self.oem_process = None self.active = False self.logger = None self.log_queue = [] self.json_logger = JSONLogger() if self.__class__._global_server_thread is not None and \ self.__class__._global_server_thread.is_alive(): print("Reusing existing server thread") self.server_thread = self.__class__._global_server_thread else: print("Starting a new server thread") self.server_thread = HamiltonServerThread(self.address, self.port) self.server_thread.start() # Store this new thread as the global server thread self.__class__._global_server_thread = self.server_thread def _open(self): # This is your logic to check if the HSL application is up or needs to be started if self.windowed: # Only start HSL if it's not responding try: # Attempt the ping self.active = True print("Sending ping to check if interface is open") response_id = self.send_command(command='ping', id=HamiltonCmdTemplate.unique_id()) self.wait_on_response(response_id, timeout=5) print("Interface already open") return except HamiltonTimeoutError: print("Opening HSL application") subprocess.Popen([OEM_RUN_EXE_PATH, OEM_HSL_PATH]) self.active = True return def start(self): """Starts the extra processes, threads, and servers for the Hamilton connection. Launches: 1) the pyhamilton interpreter using the Hamilton Run Control executable, either in the background for normal use, or in the foreground with a GUI for simulation; 2) a local HTTP server to ferry messages between the python module and the interpreter. When used with a `with:` block, called automatically upon entering the block. """ if self.active: return self.log('starting a Hamilton interface') if self.windowed: self._open() #subprocess.Popen([OEM_RUN_EXE_PATH, OEM_HSL_PATH]) self.log('started the oem application for simulation') elif self.simulating: self.active=True self.log('running in simulation mode') elif self.server_mode: current_directory = os.path.dirname(os.path.abspath(__file__)) server_script_path = os.path.join(current_directory, 'run_venus_client.py') python_32bit_path = os.getenv('PYTHON_32BIT_PATH') print("SERVER PATHS") print(python_32bit_path) if not python_32bit_path: raise Exception("Please set your PYTHON_32BIT_PATH variable in order to use server mode.") print(server_script_path) self.server_process = subprocess.Popen([python_32bit_path, server_script_path], stdout=subprocess.PIPE, stderr=subprocess.PIPE) else: self.oem_process = Process(target=run_hamilton_process, args=()) self.oem_process.start() self.log('started the oem process') #self.server_thread = HamiltonInterface.HamiltonServerThread(self.address, self.port) #self.server_thread.start() print("started the server thread") self.log('started the server thread') #self.active = True def stop(self): """Stop this HamiltonInterface and clean up associated async processes.""" if not self.active: return try: if self.windowed or self.simulating or self.server_mode: self.log('sending end run command to simulator') try: print("Sending end command") self.wait_on_response(self.send_command(command='end', id=hex(0)), timeout=1.5) print("End command sent") except HamiltonTimeoutError: pass else: for i in range(2): try: os.kill(self.oem_process.pid, signal.SIGTERM) self.log('sent sigterm to oem process') self.oem_process.join() self.log('oem process exited') break except PermissionError: self.log('permission denied, trying again...', 'warn') time.sleep(2) else: self.log('Could not kill oem process, moving on with shutdown', 'warn') finally: print("Stopping server thread") self.active = False # Don't call disconnect() - it can cause deadlocks # Instead, just signal the thread to stop and force close the server self.server_thread.should_continue = False if hasattr(self.server_thread, 'httpd') and self.server_thread.httpd: print("Force closing HTTP server") try: # Close the server socket immediately without waiting self.server_thread.httpd.server_close() self.log('HTTP server socket closed') except Exception as e: print(f"Error closing server: {e}") print("Joining server thread with timeout") # Give the thread a very short time to exit gracefully self.server_thread.join(timeout=1.0) if self.server_thread.is_alive(): print("Server thread still alive, this is expected in some cases") self.log('server thread did not exit within timeout (this may be normal)', 'info') # Don't try to force kill - just let it be a daemon thread else: print("Server thread exited successfully") self.log('server thread exited successfully') def __enter__(self): self.start() return self def __exit__(self, exc_type, exc_value, tb): if exc_type is not None: # There was an error, always stop self.stop() elif not self.persistent: # Normal exit, but not persistent → stop self.stop() # else: persistent and normal exit → keep running # Returning False means exceptions propagate normally return False def is_open(self): """Return `True` if the HamiltonInterface has been started and not stopped.""" return self.active def send_command(self, template=None, block_until_sent=False, *args, **cmd_dict): # returns unique id of command """Add a command templated after HamiltonCmdTemplate to the server send queue. Args: template (HamiltonCmdTemplate): Optional; a template to provide default arguments not specified in `cmd_dict`. block_until_sent (bool): Optional; if `True`, wait for all queued messages, including this one, to get picked up by the local server and sent across the HTTP connection, before returning. Default is False. cmd_dict (dict): keyword arguments to be forwarded to `template` when building the command, overriding its defaults. If `template` not given, cmd_dict must either have a 'command' key with value matching one of the command names in `defaultcmds` and might be missing an 'id' key, or itself be a fully formed and correct pyhamilton command with its own 'id' key. Returns: unique id (str) of the command that can be used to index it later, either newly generated or same as originally present in cmd_dict. """ if not self.is_open(): self.log_and_raise(RuntimeError('Cannot send a command from a closed HamiltonInterface')) if template is None: if 'command' not in cmd_dict: self.log_and_raise(ValueError('Command dicts from HamiltonInterface must have a \'command\' key')) cmd_name = cmd_dict['command'] if cmd_name in HamiltonInterface.known_templates: # raises if this is a known command but some fields in cmd_dict are invalid send_cmd_dict = HamiltonInterface.known_templates[cmd_name].assemble_cmd(**cmd_dict) else: send_cmd_dict = cmd_dict else: send_cmd_dict = template.assemble_cmd(**cmd_dict) if 'id' not in send_cmd_dict: self.log_and_raise(ValueError("Command dicts sent from HamiltonInterface must have a unique id with key 'id'")) if not self.simulating: HamiltonServerHandler.send_str(json.dumps(send_cmd_dict)) else: self.json_logger.log(str(send_cmd_dict)) if block_until_sent: self._block_until_sq_clear() return send_cmd_dict['id'] def wait_on_response(self, id, timeout=60, raise_first_exception=False, return_data=None): """Wait and do not return until the response for the specified id comes back. When the command corresponding to `id` regards multiple distinct pipette channels or devices, responses may contain encoded errors that might be different for different channels or devices. For this reason, the default behavior of `wait_on_response` is to not raise exceptions, but to delegate handling exceptions to the caller. For convenience, this method can optionally raise the first exception it encounters, often a useful behavior for succinct scripted commands that regard only one device, when raise_first_exception is `True`. Args: id (str): The unique id of a previously sent command timeout (float): Optional; maximum time in seconds to wait before raising `HamiltonTimeoutError`. Default is 60 seconds. raise_first_exception: Optional; if True, may raise if there is an error encoded in the response. Default is False. return_data(list | str): Optional field(s) value to extract (e.g: "step-result1") Returns: HamiltonResponse Raises: `HamiltonTimeoutError`: after `timeout` seconds elapse with no response, if `timeout` was specified. """ if self.simulating: return delays = 1 # sec server_response = None for _ in wait(delays=delays, timeout=timeout): server_response = HamiltonServerHandler.pop_response(id) if server_response is not None: break if server_response is None: self.log_and_raise(HamiltonTimeoutError('Timed out after ' + str(timeout) + ' sec while waiting for response id ' + str(id))) if self.debug: print(server_response) return self.parse_response(server_response, raise_first_exception, return_data) def parse_response(self, server_response:str, raise_first_exception:bool=False, return_data:"list|str"=None): """Parse the server response and return parsed response of type HamiltonResponse. Args: server_response (str): Venus server response raise_first_exception (bool): Optional; forwarded to `wait_on_response`. Default is `False`. return_data: field(s) value to extract (e.g: "step-result1") Returns: HamiltonResponse """ hamiltonResponse = HamiltonResponse(raw=server_response) hamiltonResponse.digest(fields=return_data) if raise_first_exception: hamiltonResponse.raise_first_exception() return hamiltonResponse def _block_until_sq_clear(self): while HamiltonServerHandler.has_queued_cmds(): print(HamiltonServerHandler._send_queue) pass def set_log_dir(self, log_dir): self.logger = logging.getLogger(__name__) self.logger.setLevel(logging.INFO) hdlr = logging.FileHandler(log_dir) formatter = logging.Formatter('[%(asctime)s] %(name)s %(levelname)s %(message)s') hdlr.setFormatter(formatter) self.logger.addHandler(hdlr) self._dump_log_queue() def log(self, msg, msg_type='info'): self.log_queue.append((msg, msg_type)) self._dump_log_queue() def _dump_log_queue(self): if self.logger is None: return log_actions = {'error':self.logger.error, 'warn':self.logger.warn, 'debug':self.logger.debug, 'info':self.logger.info, 'critical':self.logger.critical} while self.log_queue: msg, msg_type = self.log_queue.pop(0) log_actions.get(msg_type.lower(), self.logger.info)(msg) # prints if no log path set def log_and_raise(self, err): self.log(repr(err), 'error') raise err @staticmethod def _channel_var(pos_tuples): """Create channel pattern string for commands""" ch_var = ['0']*16 for i, pos_tup in enumerate(pos_tuples): if pos_tup is not None: ch_var[i] = '1' return ''.join(ch_var) @staticmethod def _compound_pos_str(pos_tuples): """Create position string for commands""" present_pos_tups = [pt for pt in pos_tuples if pt is not None] return ';'.join((pt[0].layout_name() + ', ' + pt[0].position_id(pt[1]) for pt in present_pos_tups)) @staticmethod def _compound_pos_str_96(labware96): """Create position string for 96-well commands""" return ';'.join((labware96.layout_name() + ', ' + labware96.position_id(idx) for idx in range(96))) @staticmethod def _assert_parallel_nones(list1, list2): """Verify two lists have None values in the same positions""" if not (len(list1) == len(list2) and all([(i1 is None) == (i2 is None) for i1, i2 in zip(list1, list2)])): raise ValueError('Lists must have parallel None entries') def initialize(self, **more_options): """Initialize the Hamilton robot with optional parameters. Args: **more_options: Additional command options to pass to the initialize command. """ self.log('initialize: Initializing Hamilton robot with options ' + str(more_options)) response = self.wait_on_response( self.send_command( INITIALIZE, **more_options ), timeout=300, raise_first_exception=True, return_data=['step-return2', 'step-return3'] ) return response def aspirate(self, pos_tuples, vols, **more_options) -> AspirateResult: """Aspirate liquid from specified positions. Args: pos_tuples: List of (labware, idx) tuples specifying positions vols: List of volumes to aspirate **more_options: Additional command options Returns ------- AspirateResult: .liquidHeights liquid heights after aspirate .liquidVolumes liquid volumes after aspirate .raw raw HamiltonResponse object """ self.log('aspirate: Aspirate volumes ' + str(vols) + ' from positions [' + '; '.join((labware_pos_str(*pt) if pt else '(skip)' for pt in pos_tuples)) + (']' if not more_options else '] with extra options ' + str(more_options))) if len(pos_tuples) > 8: raise ValueError('Can only aspirate with 8 channels at a time') self._assert_parallel_nones(pos_tuples, vols) if 'liquidClass' not in more_options: raise ValueError('Must specify a liquidClass for aspirate commands') if more_options.get('capacitiveLLD', 0) not in (0, 5): dispense_mode = get_liquid_class_dispense_mode(more_options['liquidClass']) if 'Surface' not in dispense_mode: raise ValueError('cLLD can only be used with Surface dispense modes') response = self.wait_on_response( self.send_command( ASPIRATE, channelVariable=self._channel_var(pos_tuples), labwarePositions=self._compound_pos_str(pos_tuples), volumes=[v for v in vols if v is not None], **more_options ), raise_first_exception=True, return_data=['step-return2', 'step-return3'] ) if self.simulating: # In simulation mode, we don't get liquid heights and volumes res = AspirateResult( liquidHeights=[2.0] * len(pos_tuples), liquidVolumes=[10.0] * len(pos_tuples), raw=response ) return res else: res = AspirateResult( liquidHeights=[float(x) for x in response.return_data[0].split(';')], liquidVolumes=[float(x) for x in response.return_data[1].split(';')], raw=response ) return res def dispense(self, pos_tuples, vols, **more_options) -> DispenseResult: """Dispense liquid into specified positions. Args: pos_tuples: List of (labware, idx) tuples specifying positions vols: List of volumes to dispense **more_options: Additional command options """ self.log('dispense: Dispense volumes ' + str(vols) + ' into positions [' + '; '.join((labware_pos_str(*pt) if pt else '(skip)' for pt in pos_tuples)) + (']' if not more_options else '] with extra options ' + str(more_options))) if len(pos_tuples) > 8: raise ValueError('Can only dispense with 8 channels at a time') self._assert_parallel_nones(pos_tuples, vols) if 'liquidClass' not in more_options: more_options['liquidClass'] = 'HighVolumeFilter_Water_DispenseJet_Empty_with_transport_vol' if more_options.get('capacitiveLLD', 0) not in (0, 5): dispense_mode = get_liquid_class_dispense_mode(more_options['liquidClass']) if 'Surface' not in dispense_mode: raise ValueError('cLLD can only be used with Surface dispense modes') response = self.wait_on_response( self.send_command( DISPENSE, channelVariable=self._channel_var(pos_tuples), labwarePositions=self._compound_pos_str(pos_tuples), volumes=[v for v in vols if v is not None], **more_options ), raise_first_exception=True, return_data=['step-return2', 'step-return3'] ) if self.simulating: # In simulation mode, we don't get liquid heights and volumes res = DispenseResult( liquidHeights=[2.0] * len(pos_tuples), liquidVolumes=[10.0] * len(pos_tuples), raw=response ) return res else: res = DispenseResult( liquidHeights=[float(x) for x in response.return_data[0].split(';')], liquidVolumes=[float(x) for x in response.return_data[1].split(';')], raw=response ) return res def tip_pick_up(self, pos_tuples, **more_options): """Pick up tips from specified positions. Args: pos_tuples: List of (labware, idx) tuples specifying tip positions **more_options: Additional command options """ self.log('tip_pick_up: Pick up tips at ' + '; '.join((labware_pos_str(*pt) if pt else '(skip)' for pt in pos_tuples)) + ('' if not more_options else ' with extra options ' + str(more_options))) if len(pos_tuples) > 8: raise ValueError('Can only pick up 8 tips at a time') self.wait_on_response( self.send_command( PICKUP, labwarePositions=self._compound_pos_str(pos_tuples), channelVariable=self._channel_var(pos_tuples), **more_options ), raise_first_exception=True ) def tip_eject(self, pos_tuples=None, **more_options): """Eject tips to specified positions or default waste. Args: pos_tuples: Optional list of (labware, idx) tuples specifying tip positions. If None, eject to default waste. **more_options: Additional command options """ if pos_tuples is None: self.log('tip_eject: Eject tips to default waste' + ('' if not more_options else ' with extra options ' + str(more_options))) more_options['useDefaultWaste'] = 1 from .resources.deckresource import Tip96 dummy = Tip96('') pos_tuples = [(dummy, 0)] * 8 else: self.log('tip_eject: Eject tips to ' + '; '.join((labware_pos_str(*pt) if pt else '(skip)' for pt in pos_tuples)) + ('' if not more_options else ' with extra options ' + str(more_options))) if len(pos_tuples) > 8: raise ValueError('Can only eject up to 8 tips') self.wait_on_response( self.send_command( EJECT, labwarePositions=self._compound_pos_str(pos_tuples), channelVariable=self._channel_var(pos_tuples), **more_options ), raise_first_exception=True ) def tip_pick_up_96(self, tip96, **more_options): """Pick up tips from a 96-well tip rack. Args: tip96: 96-well tip rack labware **more_options: Additional command options """ self.log('tip_pick_up_96: Pick up tips at ' + tip96.layout_name() + ('' if not more_options else ' with extra options ' + str(more_options))) self.wait_on_response( self.send_command( PICKUP96, labwarePositions=self._compound_pos_str_96(tip96), **more_options ), raise_first_exception=True ) def tip_eject_96(self, tip96=None, **more_options): """Eject tips to a 96-well tip rack or default waste. Args: tip96: Optional 96-well tip rack labware. If None, eject to default waste. **more_options: Additional command options """ self.log('tip_eject_96: Eject tips to ' + (tip96.layout_name() if tip96 else 'default waste') + ('' if not more_options else ' with extra options ' + str(more_options))) if tip96 is None: labware_poss = '' more_options.update({'tipEjectToKnownPosition': 2}) # 2 is default waste else: labware_poss = self._compound_pos_str_96(tip96) self.wait_on_response( self.send_command( EJECT96, labwarePositions=labware_poss, **more_options ), raise_first_exception=True ) def aspirate_96(self, plate96, vol, **more_options): """Aspirate liquid from a 96-well plate. Args: plate96: 96-well plate labware vol: Volume to aspirate **more_options: Additional command options """ self.log('aspirate_96: Aspirate volume ' + str(vol) + ' from ' + plate96.layout_name() + ('' if not more_options else ' with extra options ' + str(more_options))) if 'liquidClass' not in more_options: raise ValueError('Must specify a liquidClass for aspirate commands') if more_options.get('capacitiveLLD', 0) not in (0, 5): dispense_mode = get_liquid_class_dispense_mode(more_options['liquidClass']) if 'Surface' not in dispense_mode: raise ValueError('cLLD can only be used with Surface dispense modes') self.wait_on_response( self.send_command( ASPIRATE96, labwarePositions=self._compound_pos_str_96(plate96), aspirateVolume=vol, **more_options ), raise_first_exception=True ) def tip_pick_up_mph_columns(self, tip_96, num_columns_from_left, **more_options): """Pick up tips from a 96-well tip rack in a multi-channel fashion. Args: tip_96: 96-well tip rack labware num_columns: Number of columns to pick up **more_options: Additional command options """ self.log('tip_pick_up_mph_columns: Pick up tips at ' + tip_96.layout_name() + ('' if not more_options else ' with extra options ' + str(more_options))) num_columns_from_right = 12 - num_columns_from_left + 1 # Convert to right-side pickup channelVariable = '1'*num_columns_from_right*8 + '0'*(12-num_columns_from_right)*8 positions = self._compound_pos_str_96(tip_96) flipped_positions = invert_columns(positions) # Sequences have to be inverted for right-side pickup self.wait_on_response( self.send_command( PICKUP96, labwarePositions=flipped_positions, channelVariable=channelVariable, reducedPatternMode=3, # (integer) 0=All (not reduced), 1=One channel, 2=One row 3=One column **more_options ), raise_first_exception=True ) def dispense_96(self, plate96, vol, **more_options): """Dispense liquid into a 96-well plate. Args: plate96: 96-well plate labware vol: Volume to dispense **more_options: Additional command options """ self.log('dispense_96: Dispense volume ' + str(vol) + ' into ' + plate96.layout_name() + ('' if not more_options else ' with extra options ' + str(more_options))) if 'liquidClass' not in more_options: more_options['liquidClass'] = 'HighVolumeFilter_Water_DispenseJet_Empty_with_transport_vol' if more_options.get('capacitiveLLD', 0) not in (0, 5): dispense_mode = get_liquid_class_dispense_mode(more_options['liquidClass']) if 'Surface' not in dispense_mode: raise ValueError('cLLD can only be used with Surface dispense modes') self.wait_on_response( self.send_command( DISPENSE96, labwarePositions=self._compound_pos_str_96(plate96), dispenseVolume=vol, **more_options ), raise_first_exception=True ) def aspirate_384_quadrant(self, plate384, quadrant, vol, **more_options): """Aspirate liquid from a 384-well plate quadrant. Args: plate384: 384-well plate labware quadrant: Quadrant number (0-3) vol: Volume to aspirate **more_options: Additional command options """ self.log('aspirate_384_quadrant: Aspirate volume ' + str(vol) + ' from ' + plate384.layout_name() + ' quadrant ' + str(quadrant) + ('' if not more_options else ' with extra options ' + str(more_options))) if 'liquidClass' not in more_options: more_options['liquidClass'] = 'HighVolumeFilter_Water_DispenseJet_Empty_with_transport_vol' self.wait_on_response( self.send_command( ASPIRATE96, labwarePositions=self._compound_pos_str_384_quad(plate384, quadrant), aspirateVolume=vol, **more_options ), raise_first_exception=True ) def dispense_384_quadrant(self, plate384, quadrant, vol, **more_options): """Dispense liquid into a 384-well plate quadrant. Args: plate384: 384-well plate labware quadrant: Quadrant number (0-3) vol: Volume to dispense **more_options: Additional command options """ self.log('dispense_384_quadrant: Dispense volume ' + str(vol) + ' into ' + plate384.layout_name() + ' quadrant ' + str(quadrant) + ('' if not more_options else ' with extra options ' + str(more_options))) if 'liquidClass' not in more_options: more_options['liquidClass'] = 'HighVolumeFilter_Water_DispenseJet_Empty_with_transport_vol' self.wait_on_response( self.send_command( DISPENSE96, labwarePositions=self._compound_pos_str_384_quad(plate384, quadrant), dispenseVolume=vol, **more_options ), raise_first_exception=True ) def set_labware_property(self, labware_id, property_name, property_value): """Set a property for a specific labware item. Args: labware_id: The ID of the labware item property_name: The name of the property to set property_value: The value to set the property to """ self.log(f'set_labware_property: Setting {property_name} of {labware_id} to {property_value}') self.wait_on_response( self.send_command( SET_LABWARE_PROPERTY, LabwareID=labware_id, PropertyName=property_name, PropertyValue=property_value ), raise_first_exception=True ) @staticmethod def _compound_pos_str_384_quad(plate384, quadrant): """Create position string for 384-well quadrant commands""" def get_384w_quadrant(quadrant): def cells_96_to_384(well, idx): return well*2+idx%2+(idx//2)*16+16*(well//8) return [cells_96_to_384(idx, quadrant) for idx in range(96)] return ';'.join((plate384.layout_name() + ', ' + plate384.position_id(idx) for idx in get_384w_quadrant(quadrant))) def move_plate(self, source_plate, target_plate, CmplxGetDict=None, CmplxPlaceDict=None, inversion=None, **more_options): """Move a plate from source to target position using iSWAP. Args: source_plate: Source plate labware target_plate: Target plate labware CmplxGetDict: Optional complex movement parameters for get operation CmplxPlaceDict: Optional complex movement parameters for place operation inversion: Optional inversion setting (0 or 1) **more_options: Additional command options """ self.log('move_plate: Moving plate ' + source_plate.layout_name() + ' to ' + target_plate.layout_name()) src_pos = source_plate.layout_name() + ', ' + source_plate.position_id(0) trgt_pos = target_plate.layout_name() + ', ' + target_plate.position_id(0) if not inversion: try_inversions = (0, 1) else: try_inversions = (inversion,) getCmplxMvmnt, getRetractDist, getLiftUpHeight, getOrientation = (0, 0.0, 20.0, 1) placeCmplxMvmnt, placeRetractDist, placeLiftUpHeight, placeOrientation = (0, 0.0, 20.0, 1) if CmplxGetDict: getCmplxMvmnt = 1 getRetractDist = CmplxGetDict['retractDist'] getLiftUpHeight = CmplxGetDict['liftUpHeight'] getOrientation = CmplxGetDict['labwareOrientation'] if CmplxPlaceDict: placeCmplxMvmnt = 1 placeRetractDist = CmplxPlaceDict['retractDist'] placeLiftUpHeight = CmplxPlaceDict['liftUpHeight'] placeOrientation = CmplxPlaceDict['labwareOrientation'] for inv in try_inversions: cid = self.send_command(ISWAP_GET, plateLabwarePositions=src_pos, inverseGrip=inv, movementType=getCmplxMvmnt, retractDistance=getRetractDist, liftUpHeight=getLiftUpHeight, labwareOrientation=getOrientation, **more_options) try: self.wait_on_response(cid, raise_first_exception=True, timeout=120) break except PositionError: self.log("trying inverse", 'info') pass cid = self.send_command(ISWAP_PLACE, plateLabwarePositions=trgt_pos, movementType=placeCmplxMvmnt, retractDistance=placeRetractDist, liftUpHeight=placeLiftUpHeight, labwareOrientation=placeOrientation) try: self.wait_on_response(cid, raise_first_exception=True, timeout=120) except PositionError: raise IOError def move_by_seq(self, source_plate_seq, target_plate_seq, CmplxGetDict=None, CmplxPlaceDict=None, inversion=None, **more_options): """Move a plate by sequence using iSWAP. Used to have defaults: grip_height=0, inversion=None, gripForce=2, width_before=132, Args: source_plate_seq: Source plate sequence target_plate_seq: Target plate sequence CmplxGetDict: Optional complex movement parameters for get operation CmplxPlaceDict: Optional complex movement parameters for place operation grip_height: Grip height parameter inversion: Optional inversion setting (0 or 1) gripForce: Grip force parameter width_before: Width before parameter **more_options: Additional command options """ self.log('move_by_seq: Moving plate ' + source_plate_seq + ' to ' + target_plate_seq) if not inversion: try_inversions = (0, 1) else: try_inversions = (inversion,) getCmplxMvmnt, getRetractDist, getLiftUpHeight, getOrientation = (0, 0.0, 20.0, 1) placeCmplxMvmnt, placeRetractDist, placeLiftUpHeight, placeOrientation = (0, 0.0, 20.0, 1) if CmplxGetDict: getCmplxMvmnt = 1 getRetractDist = CmplxGetDict['retractDist'] getLiftUpHeight = CmplxGetDict['liftUpHeight'] getOrientation = CmplxGetDict['labwareOrientation'] if CmplxPlaceDict: placeCmplxMvmnt = 1 placeRetractDist = CmplxPlaceDict['retractDist'] placeLiftUpHeight = CmplxPlaceDict['liftUpHeight'] placeOrientation = CmplxPlaceDict['labwareOrientation'] for inv in try_inversions: cid = self.send_command(ISWAP_GET, plateSequence=source_plate_seq, inverseGrip=inv, movementType=placeCmplxMvmnt, retractDistance=placeRetractDist, liftUpHeight=placeLiftUpHeight, labwareOrientation=placeOrientation, **more_options) try: self.wait_on_response(cid, raise_first_exception=True, timeout=120) break except PositionError: pass else: raise IOError cid = self.send_command(ISWAP_PLACE, plateSequence=target_plate_seq, movementType=placeCmplxMvmnt, retractDistance=placeRetractDist, liftUpHeight=placeLiftUpHeight, labwareOrientation=placeOrientation) try: self.wait_on_response(cid, raise_first_exception=True, timeout=120) except PositionError: raise IOError def get_plate_gripper_seq(self, source_plate_seq, gripHeight, gripWidth, openWidth, lid, tool_sequence, gripForce, **more_options): """Get a plate using the gripper by sequence. Args: source_plate_seq: Source plate sequence gripHeight: Grip height parameter gripWidth: Grip width parameter openWidth: Open width parameter lid: Whether this is a lid operation tool_sequence: Tool sequence parameter **more_options: Additional command options """ self.log('get_plate_gripper_seq: Getting plate ' + source_plate_seq) if lid: cid = self.send_command(GRIP_GET, plateSequence=source_plate_seq, transportMode=1, gripHeight=gripHeight, gripWidth=gripWidth, widthBefore=openWidth, toolSequence=tool_sequence) else: cid = self.send_command(GRIP_GET, plateSequence=source_plate_seq, transportMode=0, gripHeight=gripHeight, gripWidth=gripWidth, widthBefore=openWidth, toolSequence=tool_sequence, **more_options) self.wait_on_response(cid, raise_first_exception=True, timeout=120) def move_plate_gripper_seq(self, dest_plate_seq, **more_options): """Move a plate using the gripper by sequence. Args: dest_plate_seq: Destination plate sequence **more_options: Additional command options """ self.log('move_plate_gripper_seq: Moving plate ' + dest_plate_seq) cid = self.send_command(GRIP_MOVE, plateSequence=dest_plate_seq) self.wait_on_response(cid, raise_first_exception=True, timeout=120) def place_plate_gripper_seq(self, dest_plate_seq, tool_sequence, **more_options): """Place a plate using the gripper by sequence. Args: dest_plate_seq: Destination plate sequence tool_sequence: Tool sequence parameter **more_options: Additional command options """ self.log('place_plate_gripper_seq: Placing plate ' + dest_plate_seq) cid = self.send_command(GRIP_PLACE, plateSequence=dest_plate_seq, toolSequence=tool_sequence, **more_options) self.wait_on_response(cid, raise_first_exception=True, timeout=120) def move_plate_gripper(self, source_poss, dest_poss, **more_options): """Move a plate using the gripper by positions. Args: source_poss: Source positions dest_poss: Destination positions **more_options: Additional command options """ labware_poss = self._compound_pos_str(dest_poss) cid = self.send_command(GRIP_MOVE, plateLabwarePositions=labware_poss, **more_options) self.wait_on_response(cid, raise_first_exception=True, timeout=120) def move_sequence(self, sequence, xDisplacement=0, yDisplacement=0, zDisplacement=0): """Move a sequence with optional displacement parameters. Args: sequence: Input sequence to move xDisplacement: X displacement (default 0) yDisplacement: Y displacement (default 0) zDisplacement: Z displacement (default 0) """ self.log('move_sequence: Moving sequence with displacements x=' + str(xDisplacement) + ', y=' + str(yDisplacement) + ', z=' + str(zDisplacement)) cid = self.send_command(MOVE_SEQ, inputSequence=sequence, xDisplacement=xDisplacement, yDisplacement=yDisplacement, zDisplacement=zDisplacement) self.wait_on_response(cid, raise_first_exception=True, timeout=120) def load_carrier(self, carrier_name, **more_options): """Load a carrier with the specified name. Args: carrier_name: Name of the carrier to load **more_options: Additional command options Returns ------- LoadCarrierResult .carrierName name you passed in .barcodeReads value of 'step-return2' .barcodeMasks value of 'step-return3' .positionIds value of 'step-return4' .raw underlying HamiltonResponse (for diagnostics) """ self.log('load_carrier: Loading carrier ' + carrier_name) cid = self.send_command(LOAD_CARRIER, carrierName=carrier_name, **more_options) response = self.wait_on_response(cid, raise_first_exception=True, timeout=120) @dataclass class LoadCarrierResult: carrierName: str barcodeReads: Any barcodeMasks: Any positionIds: Any raw: "HamiltonResponse" # 3. Wrap the raw list in the dataclass and return it return LoadCarrierResult( carrierName=carrier_name, barcodeReads=response.return_data[0], barcodeMasks=response.return_data[1], positionIds=response.return_data[2], raw=response ) def unload_carrier(self, carrier_name, **more_options): """Unload a carrier with the specified name. Args: carrier_name: Name of the carrier to unload **more_options: Additional command options """ self.log('unload_carrier: Unloading carrier ' + carrier_name) cid = self.send_command(UNLOAD_CARRIER, carrierName=carrier_name, **more_options) self.wait_on_response(cid, raise_first_exception=True, timeout=120) class JSONLogger: def __init__(self): self.logger = logging.getLogger(self.__class__.__name__) self.logger.setLevel(logging.DEBUG) # Set the default logging level def log(self, message): self.logger.info(message) def set_log_dir(self, log_dir): hdlr = logging.FileHandler(log_dir) hdlr.setLevel(logging.DEBUG) formatter = logging.Formatter('%(message)s') hdlr.setFormatter(formatter) self.logger.addHandler(hdlr) ================================================ FILE: pyhamilton/library/ASWStandard/ASWGlobal/ASWGlobal.hsl ================================================ // This library contains the most needed constants of HSL used in SMT and MED. // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // All rights reserved. // // Modification History // 2009-04-02 stephan gieriet: Creation of this lib. #ifndef __ASWGLOBAL_hsl__ #define __ASWGLOBAL_hsl__ 1 namespace ASWGLOBAL { namespace BOOL { const variable FALSE(hslFalse); const variable TRUE(hslTrue); const variable NO(hslFalse); const variable YES(hslTrue); const variable OFF(hslFalse); const variable ON(hslTrue); } namespace DIALOG { const variable OK(1); const variable CANCEL(2); const variable ABORT(3); const variable RETRY(4); const variable IGNORE(5); const variable YES(6); const variable NO(7); } namespace TIMER { const variable STOP(3); } } #endif // $$author=vmware$$valid=0$$time=2009-04-23 15:42$$checksum=a6fedaf4$$length=083$$ ================================================ FILE: pyhamilton/library/ASWStandard/TraceLevel/TraceLevel.hsl ================================================ /////////////////////////////////////////////////////////////////////////////////////////////////////// // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // All rights reserved. // ---------------------------------------------------------------------------------------------------- // TraceLevel.hsl - library for dependent traces // ---------------------------------------------------------------------------------------------------- // Modification History // 2009-03-02 v1.0 Corsin Alig // - created // 2009-03-12 v1.1 Corsin Alig // - functions Debug_Trace6, Release_Trace6 deleted // - functions GetTraceLevel, Debug_Trace8, Release_Trace8 added // 2010-02-01 v1.2 Corsin Alig // - Default TraceLevel value is NONE // 2013-05-03 v2.0 Bernd Huf // - total rework to comply AAW650410 // - removed unneccessary includes // - added some private helper functions (mostly string-related) // - global TraceLevel variable now static // - all "old" functions remain as static thus "old" methods don't have to be upgraded // - new functions (all functions include the desired tracelevel as parameter): // Trace02, Trace04, Trace06, Trace08, Trace10: trace variables // TraceArray: trace array formatted // TraceArrayHorizontally: trace array formatted in one line // TraceArraysFaceToFace: trace two arrays next to each other // TraceSequence trace sequence // TraceSequenceParameter trace all sequence parameter in one line // SetStringIndicator set a character to easily identify all strings (i.e. ') // 2013-06-12 v2.1 Bernd Huf // - new function TraceAction to trace action of functions like HSL function FormatTrace // - bugfix in functions Release_Trace2 and Debug_Trace2: tracing of both parameters instead of two times parameter 1 // - bugfix in private function _ToString: changed string handling for float values // 2013-07-31 v2.2 Bernd Huf // - bugfix in function TraceAction: check limits // 2013-09-17 v2.3 Bernd Huf // - new function SetActionIndicator // - new function TraceSequencePositions // 2013-11-14 v2.4 Bernd Huf // - bugfix in function _TraceSequence // 2014-03-14 v2.5 Bernd Huf // - changed function TraceSequencePositions to trace either only current position or all positions // 2014-06-24 v2.6 Bernd Huf // - new internal function _GetComma to retrieve the comma sign based on the actual country settings // - function _ToString: use function _GetComma for float conversions // 2014-07-14 v2.7 Bernd Huf // - removed all "direct" initializations of variables (i.e. variable intLength(i_strInput.GetLength()) due to possible problems with scheduler // - initialize all variables with default values // /////////////////////////////////////////////////////////////////////////////////////////////////////// #ifndef __TraceLevel_hsl__ #define __TraceLevel_hsl__ 1 namespace TRACELEVEL { // -------------------------------------------------------------------------------------- // public constant declarations // -------------------------------------------------------------------------------------- const global variable TRACE_LEVEL_NONE (0); const global variable TRACE_LEVEL_RELEASE (1); const global variable TRACE_LEVEL_DEBUG (2); namespace ACTION { const variable START (1); const variable COMPLETE (2); const variable ERROR (3); const variable PROGRESS (4); const variable COMPLETE_WITH_ERROR (5); } // -------------------------------------------------------------------------------------- // task-local variable declarations // -------------------------------------------------------------------------------------- static variable _strStringIdentifier (""); static variable _strActionStartIdentifier (""); static variable _strActionCompleteIdentifier (""); static variable _strActionErrorIdentifier (""); static variable _strActionProgressIdentifier (""); static variable _strActionCompleteWithErrorIdentifier (""); static string _strComma (""); // -------------------------------------------------------------------------------------- // global constant/variable declarations // -------------------------------------------------------------------------------------- static global variable gTRACELEVEL_intTraceLevel (TRACE_LEVEL_DEBUG); // -------------------------------------------------------------------------------------- // function declarations // -------------------------------------------------------------------------------------- function GetTraceLevel() variable; function SetTraceLevel(variable i_intTraceLevel) void; function SetStringIndicator(variable i_strStringIndicator) void; function Trace_02(variable i_intTraceLevel, variable i_varToTrace_01, variable i_varToTrace_02) void; function Trace_04(variable i_intTraceLevel, variable i_varToTrace_01, variable i_varToTrace_02, variable i_varToTrace_03, variable i_varToTrace_04) void; function Trace_06(variable i_intTraceLevel, variable i_varToTrace_01, variable i_varToTrace_02, variable i_varToTrace_03, variable i_varToTrace_04, variable i_varToTrace_05, variable i_varToTrace_06) void; function Trace_08(variable i_intTraceLevel, variable i_varToTrace_01, variable i_varToTrace_02, variable i_varToTrace_03, variable i_varToTrace_04, variable i_varToTrace_05, variable i_varToTrace_06, variable i_varToTrace_07, variable i_varToTrace_08) void; function Trace_10(variable i_intTraceLevel, variable i_varToTrace_01, variable i_varToTrace_02, variable i_varToTrace_00, variable i_varToTrace_04, variable i_varToTrace_05, variable i_varToTrace_06, variable i_varToTrace_07, variable i_varToTrace_08, variable i_varToTrace_09, variable i_varToTrace_10) void; function TraceArray(variable i_intTraceLevel, variable i_strDescription, variable i_arrvarToTrace[]) void; function TraceArrayHorizontally(variable i_intTraceLevel, variable i_strDescription, variable i_arrvarToTrace[]) void; function TraceArraysFaceToFace(variable i_intTraceLevel, variable i_strDescription_1, variable i_strDescription_2, variable i_arrvarToTrace_1[], variable i_arrvarToTrace_2[]) void; function TraceSequence(variable i_intTraceLevel, sequence i_seqToTrace) void; function TraceSequenceParameter(variable i_intTraceLevel, sequence i_seqToTrace) void; function TraceSequencePositions(device ML_STAR, variable i_intTraceLevel, sequence i_seqToTrace, variable i_blnCurrentPositionOnly) void; function TraceAction(variable i_intTraceLevel, variable i_intAction, variable i_strFunctionName, variable i_strMethodName, variable i_strComment) void; function SetActionIndicator(variable i_intAction, variable i_strIndicator) void; // -------------------------------------------------------------------------------------- // helper function declarations // -------------------------------------------------------------------------------------- private function _TraceArray(variable i_strFunctionName, variable i_strDescription, variable i_arrvarToTrace[]) void; private function _TraceSequence(variable i_strFunctionName, sequence i_seqToTrace) void; private function _Trace(variable i_strFunctionName, variable i_strToTrace) void; private function _LongestElementSize(variable i_arrvarToCheck[]) variable; private function _TrimRight(string i_strToTrim, string i_strToRemove) variable; private function _FillLeft(string i_strStringToFill, variable i_strFillCharacter, variable i_intLength) variable; private function _FillRight(string i_strStringToFill, variable i_strFillCharacter, variable i_intLength) variable; private function _StringLength(string i_strStringToCheck) variable; private function _ToString(variable i_varValue, variable i_blnUseStringIndicator) variable; private function _ToInteger(variable i_varValue) variable; private function _ExtractFunctionName(variable i_strFunctionName) variable; private function _ExtractMethodName(variable i_strMethodName) variable; private function _ReverseFind(string i_strStringToParse, string i_strSubstringToFind) variable; private function _GetComma() string; // -------------------------------------------------------------------------------------- // function GetTraceLevel // -------------------------------------------------------------------------------------- function GetTraceLevel() variable { return(gTRACELEVEL_intTraceLevel); } // GetTraceLevel // -------------------------------------------------------------------------------------- // function SetTraceLevel // -------------------------------------------------------------------------------------- function SetTraceLevel(variable i_intTraceLevel) void { variable strDescription(""); gTRACELEVEL_intTraceLevel = _ToInteger(i_intTraceLevel); if(gTRACELEVEL_intTraceLevel > TRACE_LEVEL_DEBUG) gTRACELEVEL_intTraceLevel = TRACE_LEVEL_DEBUG; if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_NONE) gTRACELEVEL_intTraceLevel = TRACE_LEVEL_NONE; if(gTRACELEVEL_intTraceLevel == TRACE_LEVEL_DEBUG) strDescription = "TRACE_LEVEL_DEBUG"; if(gTRACELEVEL_intTraceLevel == TRACE_LEVEL_RELEASE) strDescription = "TRACE_LEVEL_RELEASE"; if(gTRACELEVEL_intTraceLevel == TRACE_LEVEL_NONE) strDescription = "TRACE_LEVEL_NONE"; _Trace("SetTraceLevel", "Trace level set to " + strDescription); } // SetTraceLevel // -------------------------------------------------------------------------------------- // function SetStringIndicator // -------------------------------------------------------------------------------------- function SetStringIndicator(variable i_strStringIndicator) void { if(GetType(i_strStringIndicator) == "s") _strStringIdentifier = i_strStringIndicator; } // SetStringIndicator // -------------------------------------------------------------------------------------- // function Trace_02 // -------------------------------------------------------------------------------------- function Trace_02(variable i_intTraceLevel, variable i_varToTrace_01, variable i_varToTrace_02) void { if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return; _Trace("Trace_02", _ToString(i_varToTrace_01, hslTrue) + _ToString(i_varToTrace_02, hslTrue)); } // Trace_02 // -------------------------------------------------------------------------------------- // function Trace_04 // -------------------------------------------------------------------------------------- function Trace_04(variable i_intTraceLevel, variable i_varToTrace_01, variable i_varToTrace_02, variable i_varToTrace_03, variable i_varToTrace_04) void { if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return; _Trace("Trace_04", _ToString(i_varToTrace_01, hslTrue) + _ToString(i_varToTrace_02, hslTrue) + _ToString(i_varToTrace_03, hslTrue) + _ToString(i_varToTrace_04, hslTrue)); } // Trace_04 // -------------------------------------------------------------------------------------- // function Trace_06 // -------------------------------------------------------------------------------------- function Trace_06(variable i_intTraceLevel, variable i_varToTrace_01, variable i_varToTrace_02, variable i_varToTrace_03, variable i_varToTrace_04, variable i_varToTrace_05, variable i_varToTrace_06) void { if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return; _Trace("Trace_06", _ToString(i_varToTrace_01, hslTrue) + _ToString(i_varToTrace_02, hslTrue) + _ToString(i_varToTrace_03, hslTrue) + _ToString(i_varToTrace_04, hslTrue) + _ToString(i_varToTrace_05, hslTrue) + _ToString(i_varToTrace_06, hslTrue)); } // Trace_06 // -------------------------------------------------------------------------------------- // function Trace_08 // -------------------------------------------------------------------------------------- function Trace_08(variable i_intTraceLevel, variable i_varToTrace_01, variable i_varToTrace_02, variable i_varToTrace_03, variable i_varToTrace_04, variable i_varToTrace_05, variable i_varToTrace_06, variable i_varToTrace_07, variable i_varToTrace_08) void { if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return; _Trace("Trace_08", _ToString(i_varToTrace_01, hslTrue) + _ToString(i_varToTrace_02, hslTrue) + _ToString(i_varToTrace_03, hslTrue) + _ToString(i_varToTrace_04, hslTrue) + _ToString(i_varToTrace_05, hslTrue) + _ToString(i_varToTrace_06, hslTrue) + _ToString(i_varToTrace_07, hslTrue) + _ToString(i_varToTrace_08, hslTrue)); } // Trace_08 // -------------------------------------------------------------------------------------- // function Trace_10 // -------------------------------------------------------------------------------------- function Trace_10(variable i_intTraceLevel, variable i_varToTrace_01, variable i_varToTrace_02, variable i_varToTrace_03, variable i_varToTrace_04, variable i_varToTrace_05, variable i_varToTrace_06, variable i_varToTrace_07, variable i_varToTrace_08, variable i_varToTrace_09, variable i_varToTrace_10) void { if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return; _Trace("Trace_10", _ToString(i_varToTrace_01, hslTrue) + _ToString(i_varToTrace_02, hslTrue) + _ToString(i_varToTrace_03, hslTrue) + _ToString(i_varToTrace_04, hslTrue) + _ToString(i_varToTrace_05, hslTrue) + _ToString(i_varToTrace_06, hslTrue) + _ToString(i_varToTrace_07, hslTrue) + _ToString(i_varToTrace_08, hslTrue) + _ToString(i_varToTrace_09, hslTrue) + _ToString(i_varToTrace_10, hslTrue)); } // Trace_10 // -------------------------------------------------------------------------------------- // function TraceArray // -------------------------------------------------------------------------------------- function TraceArray(variable i_intTraceLevel, variable i_strDescription, variable i_arrvarToTrace[]) void { if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return; _TraceArray("TraceArray", i_strDescription, i_arrvarToTrace); } // TraceArray // -------------------------------------------------------------------------------------- // function TraceArrayHorizontally // -------------------------------------------------------------------------------------- function TraceArrayHorizontally(variable i_intTraceLevel, variable i_strDescription, variable i_arrvarToTrace[]) void { variable intActualPosition(0), intArraySize(0), intFillupSize(0); variable strToTrace(""); if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return; intArraySize = i_arrvarToTrace.GetSize(); i_strDescription = _ToString(i_strDescription, hslFalse); if(intArraySize == 0) { _Trace("TraceArrayHorizontally", i_strDescription + ": empty array"); return; } intFillupSize = _StringLength(IStr(intArraySize)); strToTrace = i_strDescription + " "; for(intActualPosition = 0; intActualPosition < intArraySize; intActualPosition++) strToTrace = strToTrace + "[" + _FillLeft(IStr(intActualPosition + 1), "0", intFillupSize) + "]: " + _ToString(i_arrvarToTrace.GetAt(intActualPosition), hslTrue) + ", "; _Trace("TraceArrayHorizontally", _TrimRight(strToTrace, ", ")); } // TraceArrayHorizontally // -------------------------------------------------------------------------------------- // function TraceArraysFaceToFace // -------------------------------------------------------------------------------------- function TraceArraysFaceToFace(variable i_intTraceLevel, variable i_strDescription_1, variable i_strDescription_2, variable i_arrvarToTrace_1[], variable i_arrvarToTrace_2[]) void { variable intActualPosition(0), intArraySize_1(0), intArraySize_2(0), intArraySizeMax(0), intFillupSize_1(0), intFillupSize_2(0), intMaxLength(0), intGapLength(0); variable strToTrace(""); if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return; // convert i_strDescription to a string i_strDescription_1 = _ToString(i_strDescription_1, hslFalse); i_strDescription_2 = _ToString(i_strDescription_2, hslFalse); intArraySize_1 = i_arrvarToTrace_1.GetSize(); intArraySize_2 = i_arrvarToTrace_2.GetSize(); intFillupSize_1 = _StringLength(IStr(intArraySize_1)); intFillupSize_2 = _StringLength(IStr(intArraySize_2)); if(intArraySize_1 == 0) i_arrvarToTrace_1.AddAsLast("empty"); if(intArraySize_2 == 0) i_arrvarToTrace_2.AddAsLast("empty"); intGapLength = _LongestElementSize(i_arrvarToTrace_1); intMaxLength = _LongestElementSize(i_arrvarToTrace_2); if(intArraySize_1 == 0) i_arrvarToTrace_1.SetSize(0); if(intArraySize_2 == 0) i_arrvarToTrace_2.SetSize(0); if(intGapLength > 0) intGapLength = intGapLength + _StringLength(i_strDescription_1) + intFillupSize_1 + 8; intMaxLength = intMaxLength + intGapLength + _StringLength(i_strDescription_2) + intFillupSize_2; if(intArraySize_1 > intArraySize_2) intArraySizeMax = intArraySize_1; else intArraySizeMax = intArraySize_2; FormatTrace("TRACELEVEL", "TraceArraysFaceToFace", ACTION::START, _FillRight(" ", "-", intMaxLength + 8)); for(intActualPosition = 0; intActualPosition < intArraySizeMax; intActualPosition++) { strToTrace = ""; if(intActualPosition < intArraySize_1) { strToTrace = i_strDescription_1 + " [" + _FillLeft(IStr(intActualPosition + 1), "0", intFillupSize_1) + "]: " + _ToString(i_arrvarToTrace_1.GetAt(intActualPosition), hslTrue); } if(intActualPosition == 0 && intArraySize_1 == 0) strToTrace = i_strDescription_1 + ": empty array"; strToTrace = _FillRight(strToTrace, " ", intGapLength); if(intActualPosition < intArraySize_2) { strToTrace = strToTrace + i_strDescription_2 + " [" + _FillLeft(IStr(intActualPosition + 1), "0", intFillupSize_2) + "]: " + _ToString(i_arrvarToTrace_2.GetAt(intActualPosition), hslTrue); } if(intActualPosition == 0 && intArraySize_2 == 0) strToTrace = strToTrace + i_strDescription_2 + ": empty array"; FormatTrace("TRACELEVEL", "TraceArraysFaceToFace", ACTION::PROGRESS, strToTrace); } FormatTrace("TRACELEVEL", "TraceArraysFaceToFace", ACTION::COMPLETE, _FillRight("", "-", intMaxLength + 5)); } // TraceArraysFaceToFace // -------------------------------------------------------------------------------------- // function TraceSequence // -------------------------------------------------------------------------------------- function TraceSequence(variable i_intTraceLevel, sequence i_seqToTrace) void { if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return; _TraceSequence("TraceSequence", i_seqToTrace); } // TraceSequence // -------------------------------------------------------------------------------------- // function TraceSequenceParameter // -------------------------------------------------------------------------------------- function TraceSequenceParameter(variable i_intTraceLevel, sequence i_seqToTrace) void { if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return; _Trace("TraceSequenceParameter", "Name: '" + i_seqToTrace.GetName() + "'" + ", Current: " + IStr(i_seqToTrace.GetCurrentPosition()) + ", Count: " + IStr(i_seqToTrace.GetCount()) + ", Total: " + IStr(i_seqToTrace.GetTotal()) + ", Max: " + IStr(i_seqToTrace.GetMax()) + ", Used: " + IStr(i_seqToTrace.GetUsedPositions())); } // TraceSequenceParameter // -------------------------------------------------------------------------------------- // function TraceSequencePositions // -------------------------------------------------------------------------------------- function TraceSequencePositions(device ML_STAR, variable i_intTraceLevel, sequence i_seqToTrace, variable i_blnCurrentPositionOnly) void { variable strLabwareID(""), strPositionID(""), strTrace(""); variable intSequenceSize(0), intLoopCounterTraceSequence(0); variable arrfltPositions[]; if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return; if(i_blnCurrentPositionOnly) intSequenceSize = 1; else { i_seqToTrace.SetCurrentPosition(1); intSequenceSize = i_seqToTrace.GetCount(); } FormatTrace("TRACELEVEL", "TraceSequencePositions", ACTION::START, _FillRight(" ", "-", 100)); for(intLoopCounterTraceSequence = 1; intLoopCounterTraceSequence <= intSequenceSize; intLoopCounterTraceSequence++) { strLabwareID = i_seqToTrace.GetLabwareId(); strPositionID = i_seqToTrace.GetPositionId(); ML_STAR.GetLabwarePosition(strLabwareID, arrfltPositions, strPositionID); strTrace = strLabwareID + "_" + strPositionID + ": "; strTrace = strTrace + "x = " + FStr(arrfltPositions.GetAt(0)); strTrace = strTrace + ", y = " + FStr(arrfltPositions.GetAt(1)); strTrace = strTrace + ", z = " + FStr(arrfltPositions.GetAt(2)); strTrace = strTrace + ", r = " + FStr(arrfltPositions.GetAt(3)); i_seqToTrace.GetNext(); FormatTrace("TRACELEVEL", "TraceSequencePositions", ACTION::PROGRESS, strTrace); } FormatTrace("TRACELEVEL", "TraceSequencePositions", ACTION::COMPLETE, _FillRight("", "-", 97)); } // TraceSequencePositions // -------------------------------------------------------------------------------------- // function TraceAction // -------------------------------------------------------------------------------------- function TraceAction(variable i_intTraceLevel, variable i_intAction, variable i_strFunctionName, variable i_strMethodName, variable i_strComment) void { string strMethodName(""); variable strIndicator(""); if(gTRACELEVEL_intTraceLevel < _ToInteger(i_intTraceLevel)) return; i_intAction = _ToInteger(i_intAction); if(i_intAction > ACTION::COMPLETE_WITH_ERROR) i_intAction = ACTION::COMPLETE_WITH_ERROR; if(i_intAction < ACTION::START) i_intAction = ACTION::START; strMethodName = _ToString(i_strMethodName, hslFalse); strMethodName = _ExtractMethodName(strMethodName); strMethodName.MakeUpper(); if(i_intAction == ACTION::START) strIndicator = _strActionStartIdentifier; if(i_intAction == ACTION::COMPLETE) strIndicator = _strActionCompleteIdentifier; if(i_intAction == ACTION::ERROR) strIndicator = _strActionErrorIdentifier; if(i_intAction == ACTION::PROGRESS) strIndicator = _strActionProgressIdentifier; if(i_intAction == ACTION::COMPLETE_WITH_ERROR) strIndicator = _strActionCompleteWithErrorIdentifier; if(strIndicator != "") { strIndicator = _FillRight(strIndicator, strIndicator, 100); FormatTrace(strMethodName, _ExtractFunctionName(_ToString(i_strFunctionName, hslFalse)), i_intAction, strIndicator); } FormatTrace(strMethodName, _ExtractFunctionName(_ToString(i_strFunctionName, hslFalse)), i_intAction, i_strComment); if(strIndicator != "") FormatTrace(strMethodName, _ExtractFunctionName(_ToString(i_strFunctionName, hslFalse)), i_intAction, strIndicator); } // TraceAction // -------------------------------------------------------------------------------------- // function SetActionIndicator // -------------------------------------------------------------------------------------- function SetActionIndicator(variable i_intAction, variable i_strIndicator) void { if(GetType(i_strIndicator) == "s") { if(i_intAction == ACTION::START) _strActionStartIdentifier = i_strIndicator; if(i_intAction == ACTION::COMPLETE) _strActionCompleteIdentifier = i_strIndicator; if(i_intAction == ACTION::ERROR) _strActionErrorIdentifier = i_strIndicator; if(i_intAction == ACTION::PROGRESS) _strActionProgressIdentifier = i_strIndicator; if(i_intAction == ACTION::COMPLETE_WITH_ERROR) _strActionCompleteWithErrorIdentifier = i_strIndicator; } } // SetActionIndicator // -------------------------------------------------------------------------------------- // private function _TraceArray // -------------------------------------------------------------------------------------- private function _TraceArray(variable i_strFunctionName, variable i_strDescription, variable i_arrvarToTrace[]) void { variable intActualPosition(0), intArraySize(0), intFillupSize(0), intMaxLength(0); i_strDescription = _ToString(i_strDescription, hslFalse); intArraySize = i_arrvarToTrace.GetSize(); intFillupSize = _StringLength(IStr(intArraySize)); if(intArraySize == 0) { _Trace(i_strFunctionName, _ToString(i_strDescription, hslFalse) + ": empty array"); return; } intMaxLength = _LongestElementSize(i_arrvarToTrace); intMaxLength = intMaxLength + _StringLength(i_strDescription) + intFillupSize; FormatTrace("TRACELEVEL", i_strFunctionName, ACTION::START, _FillRight(" ", "-", intMaxLength + 8)); for(intActualPosition = 0; intActualPosition < intArraySize; intActualPosition++) FormatTrace("TRACELEVEL", i_strFunctionName, ACTION::PROGRESS, i_strDescription, " [", _FillLeft(IStr(intActualPosition + 1), "0", intFillupSize), "]: ", _ToString(i_arrvarToTrace.GetAt(intActualPosition), hslTrue)); FormatTrace("TRACELEVEL", i_strFunctionName, ACTION::COMPLETE, _FillRight("", "-", intMaxLength + 5)); }// _TraceArray // -------------------------------------------------------------------------------------- // private function _TraceSequence // -------------------------------------------------------------------------------------- private function _TraceSequence(variable i_strFunctionName, sequence i_seqToTrace) void { variable intCurrentPosition(0); sequence seqTemp; variable arrTemp[]; seqTemp = i_seqToTrace; seqTemp.SetCurrentPosition(1); seqTemp.SetCount(i_seqToTrace.GetTotal()); for(intCurrentPosition = 0;intCurrentPosition < seqTemp.GetTotal(); intCurrentPosition++) { arrTemp.AddAsLast("LabwareID: " + seqTemp.GetLabwareId() + ", PositionID : " + seqTemp.GetPositionId()); seqTemp.Increment(1); } FormatTrace("TRACELEVEL", i_strFunctionName, ACTION::START, _FillRight(" ", "-", _LongestElementSize(arrTemp) + 3)); FormatTrace("TRACELEVEL", i_strFunctionName, ACTION::PROGRESS, "Name: " + i_seqToTrace.GetName()); FormatTrace("TRACELEVEL", i_strFunctionName, ACTION::PROGRESS, "Current: " + IStr(i_seqToTrace.GetCurrentPosition())); FormatTrace("TRACELEVEL", i_strFunctionName, ACTION::PROGRESS, "Count: " + IStr(i_seqToTrace.GetCount())); FormatTrace("TRACELEVEL", i_strFunctionName, ACTION::PROGRESS, "Total: " + IStr(i_seqToTrace.GetTotal())); FormatTrace("TRACELEVEL", i_strFunctionName, ACTION::PROGRESS, "Max: " + IStr(i_seqToTrace.GetMax())); FormatTrace("TRACELEVEL", i_strFunctionName, ACTION::PROGRESS, "Used: " + IStr(i_seqToTrace.GetUsedPositions())); for(intCurrentPosition = 0;intCurrentPosition < arrTemp.GetSize(); intCurrentPosition++) FormatTrace("TRACELEVEL", i_strFunctionName, ACTION::PROGRESS, arrTemp.GetAt(intCurrentPosition)); FormatTrace("TRACELEVEL", i_strFunctionName, ACTION::COMPLETE, _FillRight("", "-", _LongestElementSize(arrTemp))); } // _TraceSequence // -------------------------------------------------------------------------------------- // private function _Trace // -------------------------------------------------------------------------------------- private function _Trace(variable i_strFunctionName, variable i_strToTrace) void { FormatTrace("TRACELEVEL", i_strFunctionName, ACTION::COMPLETE, i_strToTrace); } // _Trace // -------------------------------------------------------------------------------------- // private function _LongestElementSize // -------------------------------------------------------------------------------------- private function _LongestElementSize(variable i_arrvarToCheck[]) variable { variable intActualPosition(0), intArraySize(0), intMaxLength(0); string strTemp; intArraySize = i_arrvarToCheck.GetSize(); for(intActualPosition = 0; intActualPosition < intArraySize; intActualPosition++) { strTemp = _ToString(i_arrvarToCheck.GetAt(intActualPosition), hslTrue); if(strTemp.GetLength() > intMaxLength) intMaxLength = strTemp.GetLength(); } return(intMaxLength); } // _LongestElementSize // -------------------------------------------------------------------------------------- // private function _TrimRight // -------------------------------------------------------------------------------------- private function _TrimRight(string i_strToTrim, string i_strToRemove) variable { variable strReturn(""); variable intLength(0), intRemoveLength(0), intCount(0); string strTemp(""); strReturn = i_strToTrim; intLength = i_strToTrim.GetLength(); intRemoveLength = i_strToRemove.GetLength(); for(intCount = intLength - intRemoveLength; intCount > 0; intCount = intCount - intRemoveLength) { strTemp = i_strToTrim.Mid(intCount, intRemoveLength); if(strTemp.Compare(i_strToRemove) != 0) break; strReturn = i_strToTrim.Mid(0, intCount); } return(strReturn); } // _TrimRight //---------------------------------------------------------------------------------------------- // private function _FillLeft //---------------------------------------------------------------------------------------------- private function _FillLeft(string i_strStringToFill, variable i_strFillCharacter, variable i_intLength) variable { variable strReturn(""); variable intCount(0); strReturn = i_strStringToFill; for(intCount = i_strStringToFill.GetLength(); intCount < i_intLength; intCount++) strReturn = i_strFillCharacter + strReturn; return(strReturn); } // _FillLeft //---------------------------------------------------------------------------------------------- // private function _FillRight //---------------------------------------------------------------------------------------------- private function _FillRight(string i_strStringToFill, variable i_strFillCharacter, variable i_intLength) variable { variable strReturn(""); variable intLength(0), intCount(0); strReturn = i_strStringToFill; intLength = i_strStringToFill.GetLength(); for(intCount = intLength; intCount < i_intLength; intCount++) strReturn = strReturn + i_strFillCharacter; return(strReturn); } // _FillRight //---------------------------------------------------------------------------------------------- // private function _StringLength //---------------------------------------------------------------------------------------------- private function _StringLength(string i_strStringToCheck) variable { return(i_strStringToCheck.GetLength()); } // _StringLength //---------------------------------------------------------------------------------------------- // private function _ToString //---------------------------------------------------------------------------------------------- private function _ToString(variable i_varValue, variable i_blnUseStringIndicator) variable { string strVariableType(""), strTempFloat(""), strComma(""); strVariableType = GetType(i_varValue); if(strVariableType.Compare(hslString) == 0) if(i_blnUseStringIndicator) return(_strStringIdentifier + i_varValue + _strStringIdentifier); else return(i_varValue); if(strVariableType.Compare(hslInteger) == 0) return(IStr(i_varValue)); if(strVariableType.Compare(hslFloat) == 0) { strComma = _GetComma(); strTempFloat = FStr(i_varValue, hslTrue, 1000); if(strTempFloat.Find(strComma) == -1) { strTempFloat = strTempFloat + strComma; strTempFloat = strTempFloat + "0"; } return(strTempFloat); } return(""); } // _ToString //---------------------------------------------------------------------------------------------- // private function _ToInteger //---------------------------------------------------------------------------------------------- private function _ToInteger(variable i_varValue) variable { string strVariableType(""); strVariableType = GetType(i_varValue); if(strVariableType.Compare(hslInteger) == 0) return(i_varValue); if(strVariableType.Compare(hslString) == 0) return(IVal(i_varValue)); if(strVariableType.Compare(hslFloat) == 0) return(Floor(i_varValue)); return(0); } // _ToInteger //---------------------------------------------------------------------------------------------- // private function _ExtractFunctionName //---------------------------------------------------------------------------------------------- private function _ExtractFunctionName(variable i_strFunctionName) variable { string strFunctionName(""); strFunctionName = i_strFunctionName; return(strFunctionName.Mid(_ReverseFind(i_strFunctionName, ":") + 1, strFunctionName.GetLength())); } // _ExtractFunctionName //---------------------------------------------------------------------------------------------- // private function _ExtractMethodName //---------------------------------------------------------------------------------------------- private function _ExtractMethodName(variable i_strMethodName) variable { string strMethodName(""); variable intCutPosition(0); strMethodName = i_strMethodName; intCutPosition = _ReverseFind(i_strMethodName, "\\") + 1; return(strMethodName.Mid(intCutPosition, _ReverseFind(i_strMethodName, ".") - intCutPosition)); } // _ExtractMethodName //---------------------------------------------------------------------------------------------- // private function _ReverseFind //---------------------------------------------------------------------------------------------- private function _ReverseFind(string i_strStringToParse, string i_strSubstringToFind) variable { variable intIndex(0), intResult(-1), intStringLength(0); string strTempString(""); strTempString = i_strStringToParse; intStringLength = strTempString.GetLength(); for (intIndex = strTempString.Find(i_strSubstringToFind); intIndex != -1; intIndex = strTempString.Find(i_strSubstringToFind)) { intResult = intResult + intIndex + 1; strTempString = strTempString.Mid(intIndex + 1, intStringLength); } return(intResult); } // _ReverseFind //---------------------------------------------------------------------------------------------- // private function _GetComma //---------------------------------------------------------------------------------------------- private function _GetComma() string { if(_strComma.Compare("") == 0) { _strComma = FStr(1.2, hslTrue); _strComma = _strComma.Mid(1,1); } return(_strComma); } // _GetComma // -------------------------------------------------------------------------------------- // static function Debug_Trace2 // -------------------------------------------------------------------------------------- static function Debug_Trace2(variable i_varToTrace_1, variable i_varToTrace_2) void { if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_DEBUG) return; _Trace("Debug_Trace2", _ToString(i_varToTrace_1, hslTrue) + _ToString(i_varToTrace_2, hslTrue)); } // Debug_Trace2 // -------------------------------------------------------------------------------------- // static function Debug_Trace4 // -------------------------------------------------------------------------------------- static function Debug_Trace4(variable i_varToTrace_1, variable i_varToTrace_2, variable i_varToTrace_3, variable i_varToTrace_4) void { if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_DEBUG) return; _Trace("Debug_Trace4", _ToString(i_varToTrace_1, hslTrue) + _ToString(i_varToTrace_2, hslTrue) + _ToString(i_varToTrace_3, hslTrue) + _ToString(i_varToTrace_4, hslTrue)); } // Debug_Trace4 // -------------------------------------------------------------------------------------- // static function Debug_Trace8 // -------------------------------------------------------------------------------------- static function Debug_Trace8(variable i_varToTrace_1, variable i_varToTrace_2, variable i_varToTrace_3, variable i_varToTrace_4, variable i_varToTrace_5, variable i_varToTrace_6, variable i_varToTrace_7, variable i_varToTrace_8) void { if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_DEBUG) return; _Trace("Debug_Trace8", _ToString(i_varToTrace_1, hslTrue) + _ToString(i_varToTrace_2, hslTrue) + _ToString(i_varToTrace_3, hslTrue) + _ToString(i_varToTrace_4, hslTrue) + _ToString(i_varToTrace_5, hslTrue) + _ToString(i_varToTrace_6, hslTrue) + _ToString(i_varToTrace_7, hslTrue) + _ToString(i_varToTrace_8, hslTrue)); } // Debug_Trace8 // -------------------------------------------------------------------------------------- // static function Debug_Trace12 // -------------------------------------------------------------------------------------- static function Debug_Trace12(variable i_varToTrace_1, variable i_varToTrace_2, variable i_varToTrace_3, variable i_varToTrace_4, variable i_varToTrace_5, variable i_varToTrace_6, variable i_varToTrace_7, variable i_varToTrace_8, variable i_varToTrace_9, variable i_varToTrace_10, variable i_varToTrace_11, variable i_varToTrace_12) void { if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_DEBUG) return; _Trace("Debug_Trace12", _ToString(i_varToTrace_1, hslTrue) + _ToString(i_varToTrace_2, hslTrue) + _ToString(i_varToTrace_3, hslTrue) + _ToString(i_varToTrace_4, hslTrue) + _ToString(i_varToTrace_5, hslTrue) + _ToString(i_varToTrace_6, hslTrue) + _ToString(i_varToTrace_7, hslTrue) + _ToString(i_varToTrace_8, hslTrue) + _ToString(i_varToTrace_9, hslTrue) + _ToString(i_varToTrace_10, hslTrue) + _ToString(i_varToTrace_11, hslTrue) + _ToString(i_varToTrace_12, hslTrue)); } // Debug_Trace12 // -------------------------------------------------------------------------------------- // static function Debug_TraceArray // -------------------------------------------------------------------------------------- static function Debug_TraceArray(variable i_arrvarToTrace[], variable i_strDescription) void { if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_DEBUG) return; _TraceArray("Debug_TraceArray", i_strDescription, i_arrvarToTrace); } // Debug_TraceArray // -------------------------------------------------------------------------------------- // static function Debug_TraceSequence // -------------------------------------------------------------------------------------- static function Debug_TraceSequence(sequence i_seqToTrace) void { if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_DEBUG) return; _TraceSequence("Debug_TraceSequence", i_seqToTrace); } // Debug_TraceSequence // -------------------------------------------------------------------------------------- // static function Release_Trace2 // -------------------------------------------------------------------------------------- static function Release_Trace2(variable i_varToTrace_1, variable i_varToTrace_2) void { if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_RELEASE) return; _Trace("Release_Trace2", _ToString(i_varToTrace_1, hslTrue) + _ToString(i_varToTrace_2, hslTrue)); } // Release_Trace2 // -------------------------------------------------------------------------------------- // static function Release_Trace4 // -------------------------------------------------------------------------------------- static function Release_Trace4(variable i_varToTrace_1, variable i_varToTrace_2, variable i_varToTrace_3, variable i_varToTrace_4) void { if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_RELEASE) return; _Trace("Release_Trace4", _ToString(i_varToTrace_1, hslTrue) + _ToString(i_varToTrace_2, hslTrue) + _ToString(i_varToTrace_3, hslTrue) + _ToString(i_varToTrace_4, hslTrue)); } // Release_Trace4 // -------------------------------------------------------------------------------------- // static function Release_Trace8 // -------------------------------------------------------------------------------------- static function Release_Trace8(variable i_varToTrace_1, variable i_varToTrace_2, variable i_varToTrace_3, variable i_varToTrace_4, variable i_varToTrace_5, variable i_varToTrace_6, variable i_varToTrace_7, variable i_varToTrace_8) void { if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_RELEASE) return; _Trace("Release_Trace8", _ToString(i_varToTrace_1, hslTrue) + _ToString(i_varToTrace_2, hslTrue) + _ToString(i_varToTrace_3, hslTrue) + _ToString(i_varToTrace_4, hslTrue) + _ToString(i_varToTrace_5, hslTrue) + _ToString(i_varToTrace_6, hslTrue) + _ToString(i_varToTrace_7, hslTrue) + _ToString(i_varToTrace_8, hslTrue)); } // Release_Trace8 // -------------------------------------------------------------------------------------- // static function Release_Trace12 // -------------------------------------------------------------------------------------- static function Release_Trace12(variable i_varToTrace_1, variable i_varToTrace_2, variable i_varToTrace_3, variable i_varToTrace_4, variable i_varToTrace_5, variable i_varToTrace_6, variable i_varToTrace_7, variable i_varToTrace_8, variable i_varToTrace_9, variable i_varToTrace_10, variable i_varToTrace_11, variable i_varToTrace_12) void { if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_RELEASE) return; _Trace("Release_Trace12", _ToString(i_varToTrace_1, hslTrue) + _ToString(i_varToTrace_2, hslTrue) + _ToString(i_varToTrace_3, hslTrue) + _ToString(i_varToTrace_4, hslTrue) + _ToString(i_varToTrace_5, hslTrue) + _ToString(i_varToTrace_6, hslTrue) + _ToString(i_varToTrace_7, hslTrue) + _ToString(i_varToTrace_8, hslTrue) + _ToString(i_varToTrace_9, hslTrue) + _ToString(i_varToTrace_10, hslTrue) + _ToString(i_varToTrace_11, hslTrue) + _ToString(i_varToTrace_12, hslTrue)); } // Release_Trace12 // -------------------------------------------------------------------------------------- // static function Release_TraceArray // -------------------------------------------------------------------------------------- static function Release_TraceArray(variable i_arrvarToTrace[], variable i_strDescription) void { if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_RELEASE) return; _TraceArray("Release_TraceArray", i_strDescription, i_arrvarToTrace); } // Release_TraceArray // -------------------------------------------------------------------------------------- // static function Release_TraceSequence // -------------------------------------------------------------------------------------- static function Release_TraceSequence(sequence i_seqToTrace) void { if(gTRACELEVEL_intTraceLevel < TRACE_LEVEL_RELEASE) return; _TraceSequence("Release_TraceSequence", i_seqToTrace); } // Release_TraceSequence } // namespace #endif // $$author=bhuf$$valid=1$$time=2014-07-14 11:38$$checksum=b497a74c$$length=081$$ ================================================ FILE: pyhamilton/library/Alpha Numeric Conversion/Alpha Numeric Conversion.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 8/15/2017 8:46:29 PM #pragma once #ifndef HSL_RUNTIME namespace ANC { function _InitLibrary() { } function _ExitLibrary() { } function Alpha_Num_Add_0_to_Position( variable & io_Str_Position_ID ) void { } function Alpha_Num_Remove_0_from_Position( variable & io_Str_Position_ID ) void { } function Convert_Alpha_Numeric_to_Numbers( variable i_Sort_by_Column, variable i_Alpha_Numeric_Value, variable i_Total_Rows, variable i_Total_Columns, variable & o_Numeric_Value ) void { } function Convert_Numbers_to_Alpha_Numeric( variable i_Sort_by_Column, variable i_Numeric_Value, variable i_Total_Rows, variable i_Total_Columns, variable & o_Alpha_Numeric_Value ) void { } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=Bare_B$$valid=0$$time=2017-08-15 20:46$$checksum=5f5785bd$$length=083$$ ================================================ FILE: pyhamilton/library/Alpha Numeric Conversion/Alpha Numeric Conversion.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "HSLStrLib.hsl" #include "HSLUtilLib.hsl" #include "HSLErrLib.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace ANC { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function Alpha_Num_Add_0_to_Position( variable & io_Str_Position_ID ) void ; function Alpha_Num_Remove_0_from_Position( variable & io_Str_Position_ID ) void ; function Convert_Alpha_Numeric_to_Numbers( variable i_Sort_by_Column, variable i_Alpha_Numeric_Value, variable i_Total_Rows, variable i_Total_Columns, variable & o_Numeric_Value ) void ; function Convert_Numbers_to_Alpha_Numeric( variable i_Sort_by_Column, variable i_Numeric_Value, variable i_Total_Rows, variable i_Total_Columns, variable & o_Alpha_Numeric_Value ) void ; private function Lookup( variable & array[], variable item ) variable ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" // }} "" } // {{{ 5 "Alpha_Num_Remove_0_from_Position" "Begin" function Alpha_Num_Remove_0_from_Position( variable & io_Str_Position_ID ) void { // }} "" private variable str_left; private variable str_right; // {{ 5 "Alpha_Num_Remove_0_from_Position" "InitLocals" // }} "" // {{{ 8 1 0 "6b178e95_0584_4a75_aa6efedb62ddc42a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_left = StrLeft(io_Str_Position_ID, 2); // }} "" // {{{ 9 1 0 "d0e3435d_c9e9_46c3_a82d3fa9ad319c24" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_right = StrRight(str_left, 1); // }} "" // {{ 10 1 0 "caa1f517_257e_43a0_b75e75bb6510cdc0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_right == "0") { // }} "" // {{{ 11 1 0 "6b80571a_7c70_4609_88954d7aa9cfcabf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_left = StrLeft(io_Str_Position_ID, 1); // }} "" // {{{ 12 1 0 "232377c2_8687_4dfc_9381829d646485b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_right = StrRight(io_Str_Position_ID, 1); // }} "" // {{{ 13 1 0 "f78310f3_231a_413f_bda042fcb400e065" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_Str_Position_ID = StrConcat2(str_left, str_right); // }} "" // {{ 14 1 0 "caa1f517_257e_43a0_b75e75bb6510cdc0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "Alpha_Num_Remove_0_from_Position" "End" } // }} "" // {{{ 5 "Alpha_Num_Add_0_to_Position" "Begin" function Alpha_Num_Add_0_to_Position( variable & io_Str_Position_ID ) void { // }} "" private variable right; private variable left; private variable length; // {{ 5 "Alpha_Num_Add_0_to_Position" "InitLocals" // }} "" // {{{ 1 1 0 "3a838138_7a48_4fe8_ab760b5396db7900" "{C1F3C015-47B3-4514-9407-AC2E65043419}" length = StrGetLength(io_Str_Position_ID); // }} "" // {{ 2 1 0 "32c6fba6_7290_4363_8e42ac49f3031df1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (length == 2) { // }} "" // {{{ 3 1 0 "143af9c0_e59f_4a56_978c3335d02ba191" "{C1F3C015-47B3-4514-9407-AC2E65043419}" left = StrLeft(io_Str_Position_ID, 1); // }} "" // {{{ 4 1 0 "f00681ff_a734_4d0c_b23e3bd0685a6d7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" right = StrRight(io_Str_Position_ID, 1); // }} "" // {{{ 5 1 0 "6bc28d7d_43fe_46a4_b6ed86ef360943c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_Str_Position_ID = StrConcat4(left, Translate("0"), right, Translate("")); // }} "" // {{ 6 1 0 "32c6fba6_7290_4363_8e42ac49f3031df1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "Alpha_Num_Add_0_to_Position" "End" } // }} "" // {{{ 5 "Convert_Alpha_Numeric_to_Numbers" "Begin" function Convert_Alpha_Numeric_to_Numbers( variable i_Sort_by_Column, variable i_Alpha_Numeric_Value, variable i_Total_Rows, variable i_Total_Columns, variable & o_Numeric_Value ) void { // }} "" private variable arr_letters[]; private variable letter; private variable column_number; private variable number; private variable row_number; private variable input_type; // {{ 5 "Convert_Alpha_Numeric_to_Numbers" "InitLocals" o_Numeric_Value = 0; // }} "" // {{{ 16 1 0 "6136314c_d06e_4fd6_a28154312772e2ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" input_type = StrGetType(i_Alpha_Numeric_Value); // }} "" // {{ 17 1 0 "283c3158_ea2c_444c_b4e0c264f5fbe527" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (input_type != "s") { // }} "" // {{{ 18 1 0 "7c86593c_7545_4367_ac6eaee2ab6bf7ba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Input value must be a string!")); // }} "" // {{ 19 1 0 "283c3158_ea2c_444c_b4e0c264f5fbe527" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 20 1 0 "1330a9b8_bc4a_41d2_8721205bb3316f79" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" Alpha_Num_Add_0_to_Position(i_Alpha_Numeric_Value); // }} "" // {{ 21 1 0 "53311afd_da19_40f9_9069ae252ccc7fa7" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_letters.SetSize(0); // }} "" // {{ 22 1 0 "6607f6b5_6056_49be_9431e0b35cda95f3" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("A")); // }} "" // {{ 23 1 0 "1be9656e_e58b_427d_9ff2faf4bbb9b3da" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("B")); // }} "" // {{ 24 1 0 "0ed5614a_cd1b_48f3_82778388df2b80f3" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("C")); // }} "" // {{ 25 1 0 "43a7fcd9_3162_4655_935ca0ea41673b51" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("D")); // }} "" // {{ 26 1 0 "3852fb52_8c56_40e6_817cc1bcaf126d21" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("E")); // }} "" // {{ 27 1 0 "259e17ee_3744_4811_a4ea74285cd0dbf3" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("F")); // }} "" // {{ 28 1 0 "bf7c4e93_bd3b_41f3_a101017fecfba633" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("G")); // }} "" // {{ 29 1 0 "642a01bc_a4f3_40ee_a4ab4355f683a242" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("H")); // }} "" // {{ 30 1 0 "ebe2b1ff_1838_4a5e_b65431bf8bc2f805" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("I")); // }} "" // {{ 31 1 0 "6b36475d_ed70_4d55_bafd60a5a27b5da5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("J")); // }} "" // {{ 32 1 0 "2666cee2_2180_4e56_b527b782a9691af8" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("K")); // }} "" // {{ 33 1 0 "ea863560_9e60_495c_95a073d8ef5df143" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("L")); // }} "" // {{ 34 1 0 "af0f4f49_cee9_4b6c_94cb482c29eeedd1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("M")); // }} "" // {{ 35 1 0 "2ca39090_7bff_4e5d_87c8f514fd743892" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("N")); // }} "" // {{ 36 1 0 "c8977efe_d33d_4bef_b999a4769d996742" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("O")); // }} "" // {{ 37 1 0 "3d16a1af_e057_4991_a582aa77a543d444" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("P")); // }} "" // {{ 38 1 0 "1407ebbc_f20e_4362_97bb774b9fa82f3b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("Q")); // }} "" // {{ 39 1 0 "d5bc29bf_ecca_44b6_a951fd1fc927bbf2" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("R")); // }} "" // {{ 40 1 0 "53d821aa_aac6_49a7_85fe856ef62e8f9e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("S")); // }} "" // {{ 41 1 0 "d67d5258_9fb5_4dcf_8cc673798eed7f53" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("T")); // }} "" // {{ 42 1 0 "899d7118_2273_4284_b272bad94904fa62" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("U")); // }} "" // {{ 43 1 0 "615b94fe_563c_4772_a2b1c6b57955387a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("V")); // }} "" // {{ 44 1 0 "2fc4d1cd_7472_4ad3_aa7d2a7826c06fcb" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("W")); // }} "" // {{ 45 1 0 "1d157008_d163_49c3_8e5849a66022a198" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("X")); // }} "" // {{ 46 1 0 "f3ff2b48_f9fb_4bfa_a1f30a7743f41937" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("Y")); // }} "" // {{ 47 1 0 "b31de323_da5c_4ae0_bd9b350d493b82d2" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("Z")); // }} "" // {{{ 48 1 0 "4ea9c3d4_44e7_470c_b12782d0c6a70c37" "{C1F3C015-47B3-4514-9407-AC2E65043419}" letter = StrLeft(i_Alpha_Numeric_Value, 1); // }} "" // {{{ 49 1 0 "fee99ea7_8b69_4946_aba92d389bb3164a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" number = StrRight(i_Alpha_Numeric_Value, 2); // }} "" // {{{ 50 1 0 "bf0e5e47_c4d5_41b3_a35dab8432e5970f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" column_number = StrIVal(number); // }} "" // {{{ 51 1 0 "3c780649_b8b1_4059_852ee87794670c23" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" row_number = Lookup(arr_letters, letter); // }} "" // {{ 52 1 0 "b4ea06c5_4157_4509_8673eb9dbe67a728" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Sort_by_Column == 1) { // }} "" o_Numeric_Value = i_Total_Rows * (column_number - 1) + row_number; // {{ 54 1 0 "b4ea06c5_4157_4509_8673eb9dbe67a728" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" o_Numeric_Value = i_Total_Columns * (row_number - 1) + column_number; // {{ 56 1 0 "b4ea06c5_4157_4509_8673eb9dbe67a728" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "Convert_Alpha_Numeric_to_Numbers" "End" } // }} "" // {{{ 5 "Convert_Numbers_to_Alpha_Numeric" "Begin" function Convert_Numbers_to_Alpha_Numeric( variable i_Sort_by_Column, variable i_Numeric_Value, variable i_Total_Rows, variable i_Total_Columns, variable & o_Alpha_Numeric_Value ) void { // }} "" private variable letter_index; private variable letter; private variable column_number; private variable input_type; private variable arr_letters[]; // {{ 5 "Convert_Numbers_to_Alpha_Numeric" "InitLocals" o_Alpha_Numeric_Value = 0; // }} "" // {{{ 58 1 0 "6acaaa34_4f95_48c3_b37e57ee1feba1e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" input_type = StrGetType(i_Numeric_Value); // }} "" // {{ 59 1 0 "41bc47de_bfac_439f_aedd0e1f70cd6362" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (input_type != "i") { // }} "" // {{{ 60 1 0 "3cd004e4_1c00_459d_9e7461f3d5b8e22c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Input value must be an integer!")); // }} "" // {{ 61 1 0 "41bc47de_bfac_439f_aedd0e1f70cd6362" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 62 1 0 "62eb5f72_6843_4c2a_942c7e05a54ff38b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Numeric_Value < 1) { // }} "" // {{{ 63 1 0 "bb36e0e2_cad4_4b0d_9192577b3ba0ff51" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Input value cannot be lower than 1!")); // }} "" // {{ 64 1 0 "62eb5f72_6843_4c2a_942c7e05a54ff38b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 65 1 0 "bfbe40e7_94a0_4a46_96cb03544c0d18af" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Total_Rows > 26) { // }} "" // {{{ 66 1 0 "a80b06ec_de86_4b1e_a42b3d8b81b2127f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("The total rows must be lower than 26!")); // }} "" // {{ 67 1 0 "bfbe40e7_94a0_4a46_96cb03544c0d18af" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 68 1 0 "11ec1a52_43c1_4bfa_a26abda273e4c404" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Total_Columns > 99) { // }} "" // {{{ 69 1 0 "283253d1_b520_405b_b06c9b4c22324bbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("The total columns must be lower than 99!")); // }} "" // {{ 70 1 0 "11ec1a52_43c1_4bfa_a26abda273e4c404" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 71 1 0 "7ff57783_b5de_46b9_af856830d703fed2" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_letters.SetSize(0); // }} "" // {{ 72 1 0 "479f8c0f_6bdf_4ed6_8616b0502f8a8bd4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("A")); // }} "" // {{ 73 1 0 "e644494d_dd51_47ff_88c3c9e38d544aa3" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("B")); // }} "" // {{ 74 1 0 "32372efa_fafa_44d8_b395edc738e9ca2b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("C")); // }} "" // {{ 75 1 0 "95abaa48_1a6d_42b9_9e14260a37a473f5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("D")); // }} "" // {{ 76 1 0 "963d177e_b257_45c5_ac6b0b2960998ce5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("E")); // }} "" // {{ 77 1 0 "b789b773_0a27_440b_8c984eb2c1ed70ca" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("F")); // }} "" // {{ 78 1 0 "eec4bfcd_1e32_4c7b_91437a7b7f96c1d4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("G")); // }} "" // {{ 79 1 0 "8ede60c1_5d85_42f4_b144e9ddf769e6fa" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("H")); // }} "" // {{ 80 1 0 "a187a7de_acb7_4862_90a3cd195eaad0c5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("I")); // }} "" // {{ 81 1 0 "775c5f38_bfc7_4c7f_be9190ac8ed640b3" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("J")); // }} "" // {{ 82 1 0 "5011de34_b295_4ed4_9fd57ae2385b8033" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("K")); // }} "" // {{ 83 1 0 "5e321c14_a5ba_4416_815cfa154d2d1b12" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("L")); // }} "" // {{ 84 1 0 "5623eda7_eb12_44e7_929e2c858b0b298b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("M")); // }} "" // {{ 85 1 0 "725a09a0_66ae_46fd_886b6da25b6edbad" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("N")); // }} "" // {{ 86 1 0 "87402508_df13_4b18_b2aee442921dca85" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("O")); // }} "" // {{ 87 1 0 "5bb1affc_09db_40b3_a42d36dfd524272e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("P")); // }} "" // {{ 88 1 0 "46856e7e_3b8a_4c4e_9f98107737649416" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("Q")); // }} "" // {{ 89 1 0 "9409097f_5897_4ad8_9241b0aaf173dfa9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("R")); // }} "" // {{ 90 1 0 "1dd40b64_79ea_4783_8a48577f7e7e76bf" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("S")); // }} "" // {{ 91 1 0 "77e5b3c0_7bf0_4603_b28a3d743aee96a9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("T")); // }} "" // {{ 92 1 0 "67141e0c_f7d2_4421_b5fec8dc764cbae1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("U")); // }} "" // {{ 93 1 0 "c964819a_5353_48bc_b5dc344309487347" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("V")); // }} "" // {{ 94 1 0 "f9177f8c_3e24_442f_a7e3f0223acc5205" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("W")); // }} "" // {{ 95 1 0 "37510d49_0830_45a8_915dde6c43abf1f5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("X")); // }} "" // {{ 96 1 0 "85964ad8_afdc_4cd5_a4d65b2de00467a1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("Y")); // }} "" // {{ 97 1 0 "e9f3684f_fbca_46eb_8152bc5a452e54ee" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_letters.AddAsLast(Translate("Z")); // }} "" // {{ 98 1 0 "6fe3bcce_44d2_4ee0_8d059baa0b8679b4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Sort_by_Column == 1) { // }} "" // {{ 99 1 0 "f3af858b_0b3a_4055_b3e93a51630d4ffe" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" column_number = i_Numeric_Value / i_Total_Rows; // }} "" // {{ 100 1 0 "16d3917c_1593_49a5_a00f97350b13b2e6" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" letter_index = i_Numeric_Value % i_Total_Rows; // }} "" // {{ 101 1 0 "1904aca3_eda9_4d35_9e1193b5b4a825c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (letter_index > 0) { // }} "" // {{ 102 1 0 "c085c22c_d354_407a_8487a4fe15ffa9f1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" column_number = column_number + 1; // }} "" // {{ 103 1 0 "1904aca3_eda9_4d35_9e1193b5b4a825c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 104 1 0 "4cc2f49e_55b3_4803_848f72f11812cc9c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" letter_index = i_Total_Rows; // }} "" // {{ 105 1 0 "1904aca3_eda9_4d35_9e1193b5b4a825c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 106 1 0 "736c924e_3d7e_42d1_807a2ffebe04fdfe" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" letter=arr_letters.GetAt(letter_index-1); // }} "" // {{{ 107 1 0 "898c1275_1a14_42bb_83da833f35f4ea8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_Alpha_Numeric_Value = StrConcat2(letter, column_number); // }} "" // {{ 108 1 0 "6fe3bcce_44d2_4ee0_8d059baa0b8679b4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 109 1 0 "92d706db_698c_4462_87643b4c15d78351" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" letter_index = i_Numeric_Value / i_Total_Columns; // }} "" // {{ 110 1 0 "122e3eec_7320_470c_823965ca35a94d45" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" column_number = i_Numeric_Value % i_Total_Columns; // }} "" // {{ 111 1 0 "be2eddc2_ab86_4f7e_a2b6d04670045943" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (column_number > 0) { // }} "" // {{ 112 1 0 "af7713c9_a003_4af6_ad8993c94fe48ec1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" letter_index = letter_index + 1; // }} "" // {{ 113 1 0 "be2eddc2_ab86_4f7e_a2b6d04670045943" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 114 1 0 "a0a6f86f_2d3d_41f5_9a8958210222c287" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" column_number = i_Total_Columns; // }} "" // {{ 115 1 0 "be2eddc2_ab86_4f7e_a2b6d04670045943" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 116 1 0 "7791932f_d60c_4c54_9bbb7c7a5b697b80" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" letter=arr_letters.GetAt(letter_index-1); // }} "" // {{{ 117 1 0 "6e7abffb_45fb_4f59_b61095bb7684b3a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_Alpha_Numeric_Value = StrConcat2(letter, column_number); // }} "" // {{ 118 1 0 "6fe3bcce_44d2_4ee0_8d059baa0b8679b4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "Convert_Numbers_to_Alpha_Numeric" "End" } // }} "" // {{{ 5 "Lookup" "Begin" private function Lookup( variable & array[], variable item ) variable { // }} "" private variable index; private variable lookupreturn; // {{ 5 "Lookup" "InitLocals" // }} "" // {{{ 120 1 0 "2e0e2fb0_f5aa_4a54_bc3b295e98e024d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" lookupreturn = Util::Lookup(array, item, index); // }} "" // {{ 121 1 0 "37771551_bf9e_4c50_9d3f28616b6e6394" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lookupreturn > 0) { // }} "" // {{ 122 1 0 "d3989e85_a484_4c3a_bd841eecfd262af9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" index = index + 1; // }} "" // {{{ 123 1 0 "11cacaf7_509e_494d_8004a62633485f1f" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (index); // }} "" // {{ 124 1 0 "37771551_bf9e_4c50_9d3f28616b6e6394" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 125 1 0 "66dfa150_2cb2_44b0_9d6be9c3943b787a" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (0); // }} "" // {{ 126 1 0 "37771551_bf9e_4c50_9d3f28616b6e6394" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "Lookup" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=Bare_B$$valid=0$$time=2017-08-15 20:46$$checksum=2c3bc320$$length=085$$ ================================================ FILE: pyhamilton/library/ErrorSimulator/ErrorSimulator.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 7/16/2012 3:01:49 PM #pragma once #ifndef HSL_RUNTIME namespace ERRORSIMULATOR { function _InitLibrary() { } function _ExitLibrary() { } function AA_Abstract( ) void { } function STEP1_PrepareRegistryAndCfgFile( device & ML_STAR ) void { } function STEP2a_SimulateError_Channels( variable ChannelNumber, variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void { } function STEP2b_SimulateError_COREGripper( variable ChannelNumber, variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void { } function STEP2c_SimulateError_iSWAP( variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void { } function STEP2d_SimulateError_96Head( variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void { } function STEP2e_SimulateError_384head( variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void { } function STEP2f_SimulateError_BarcodeReading( variable WhenSimulateError, device & ML_STAR ) void { } function STEP2g_SimulateError_Autoload( variable notReadPositions_Str, variable notPresentPositions_Str, device & ML_STAR ) void { } function STEP2h_SimulateError_CRWashstation( variable errorToSimulate, device & ML_STAR ) void { } function STEP3_Restore_BackupCfgFile( device & ML_STAR ) void { } function STEP4_Optional_SwitchChecksum_ON( ) void { } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=Cuevas_A$$valid=0$$time=2012-07-16 15:01$$checksum=0cf6bb89$$length=085$$ ================================================ FILE: pyhamilton/library/ErrorSimulator/ErrorSimulator.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "ErrorSimulator\\MlStarSimCfg.hsl" #include "HSLFilLib.hsl" #include "HSLStrLib.hsl" #include "HSLTrcLib.hsl" #include "ErrorSimulator\\HSLFilLibEx.hsl" #include "HSLML_STARLib.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" #include "HSLPTLLib.hsl" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace ERRORSIMULATOR { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function AA_Abstract( ) void ; function STEP1_PrepareRegistryAndCfgFile( device & ML_STAR ) void ; function STEP2a_SimulateError_Channels( variable ChannelNumber, variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void ; function STEP2b_SimulateError_COREGripper( variable ChannelNumber, variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void ; function STEP2c_SimulateError_iSWAP( variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void ; function STEP2d_SimulateError_96Head( variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void ; function STEP2e_SimulateError_384head( variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void ; function STEP2f_SimulateError_BarcodeReading( variable WhenSimulateError, device & ML_STAR ) void ; function STEP2g_SimulateError_Autoload( variable notReadPositions_Str, variable notPresentPositions_Str, device & ML_STAR ) void ; function STEP2h_SimulateError_CRWashstation( variable errorToSimulate, device & ML_STAR ) void ; function STEP3_Restore_BackupCfgFile( device & ML_STAR ) void ; function STEP4_Optional_SwitchChecksum_ON( ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" PTL::SetWashingStateDefault("RinseTime1", 5); PTL::SetWashingStateDefault("SoakTime1", 5); PTL::SetWashingStateDefault("FlowRate1", 11); PTL::SetWashingStateDefault("RinseTime2", 0); PTL::SetWashingStateDefault("SoakTime2", 0); PTL::SetWashingStateDefault("FlowRate2", 11); PTL::SetWashingStateDefault("DrainingTime", 10); PTL::SetWashingStateDefault("StartWashLiquid", 0); PTL::SetLoadingStateDefault("RecoveryOptionContinue", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionExclude", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionDefault", 0); PTL::SetLoadingStateDefault("KitLotCheckEnabled", hslFalse); // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" // }} "" } // {{{ 5 "STEP1_PrepareRegistryAndCfgFile" "Begin" function STEP1_PrepareRegistryAndCfgFile( device & ML_STAR ) void { // }} "" private variable strCommand; private variable libPath; private variable str; private file file1; private variable strFound; private variable logPath; private variable cfgPath; private variable binPath; private variable loopCounter1; private variable cfgFileBak; private variable cfgFile; private variable strNew; private variable backupExists; private variable strFile; private variable mlStarCfg; private variable STAR_type; private variable mlStarCfgBak; // {{ 5 "STEP1_PrepareRegistryAndCfgFile" "InitLocals" // }} "" // {{ 3 1 0 "5bd539fe_fc1c_4cd7_b7278303ae739678" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 4 1 0 "71eda1d9_8f90_4cb1_8edc16ff60799eb4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" binPath = FilGetBinPath(); // }} "" // {{{ 5 1 0 "2bf4fdc8_2dd6_4863_b2b3d74029c35839" "{C1F3C015-47B3-4514-9407-AC2E65043419}" cfgPath = FilGetConfigPath(); // }} "" // {{{ 6 1 0 "3ae1d58c_cd6e_40a0_b8354732906b885d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" logPath = FilGetLogFilesPath(); // }} "" // {{{ 7 1 0 "ad02d0ed_9bc3_4c5e_b35ff69503de7c13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" libPath = FilGetLibraryPath(); // }} "" // {{ 8 1 0 "5bd539fe_fc1c_4cd7_b7278303ae739678" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "0b5222d4_6e51_4228_a9eececd51d7b21b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 10 1 0 "49a12910_177d_42ab_b4b37317e712546b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFile = StrConcat2(libPath, Translate("\ErrorSimulator\SwitchChecksum_OFF.bat")); // }} "" // {{{ 11 1 0 "ad1ffb46_d00a_42a6_8d0254d5c309e810" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strCommand = StrConcat4(Translate("\""), libPath, Translate("\ErrorSimulator\PhoenixChecksum_0.reg\""), Translate("")); // }} "" // {{ 12 1 0 "2517f40b_fe78_4300_a475b50363009b6a" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" file1.AddField(1, strCommand, hslString); file1.SetDelimiter(hslAsciiText); if( 0 == file1.Open(strFile, hslWrite) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, strFile, "HxMetEdCompCmd"); } // }} "" // {{ 13 1 0 "d2871217_e30a_43ce_a388597472e5ffff" "{B31F3537-5D80-11d4-A5EB-0050DA737D89}" if( 0 == file1.WriteRecord() ) { MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 14 1 0 "e5862bcc_741d_4e75_8f5b581139610b13" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != file1.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } file1.RemoveFields(); // }} "" // {{ 15 1 0 "886b63de_26b2_448a_9698e4c4e94fb253" "{B31F3545-5D80-11d4-A5EB-0050DA737D89}" { if( 0 == Shell(strFile, hslShow, hslSynchronous) ) { MECC::RaiseRuntimeErrorEx(-1238499072, MECC::IDS::stepNameShell, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } } // }} "" // {{ 16 1 0 "0b5222d4_6e51_4228_a9eececd51d7b21b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 17 1 0 "f11e8bd1_ba63_4932_80d7f856c94ccaae" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 18 1 0 "60d95a9a_10ac_41d0_a610e849d0d0a356" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 19 1 0 "c794ba05_9a8a_49df_80709a0eff58ce50" "{C1F3C015-47B3-4514-9407-AC2E65043419}" STAR_type = HSLML_STAR::GetInstrumentType_GlobalDevice(ML_STAR); // }} "" // {{ 20 1 0 "c18d1795_bf86_495f_9e17dc17a97cc383" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (STAR_type == 0) { // }} "" // {{ 21 1 0 "5aa22dc6_bafe_40d5_af7276249873eccb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" mlStarCfg = Translate("\ML_STAR_Simulator.cfg"); // }} "" // {{ 22 1 0 "0c723690_2424_4a8a_b35169cf1b27fea2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" mlStarCfgBak = Translate("\ML_STAR_Simulator.cfg.bak"); // }} "" // {{ 23 1 0 "c18d1795_bf86_495f_9e17dc17a97cc383" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 24 1 0 "8bf63af2_da33_4dda_98bfb520019652f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (STAR_type == 1) { // }} "" // {{ 25 1 0 "e2d2867f_bb13_47c0_904060d9e427ee93" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" mlStarCfg = Translate("\ML_Starlet_Simulator.cfg"); // }} "" // {{ 26 1 0 "69325772_c142_40b4_a3da66d589edf241" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" mlStarCfgBak = Translate("\ML_Starlet_Simulator.cfg.bak"); // }} "" // {{ 27 1 0 "8bf63af2_da33_4dda_98bfb520019652f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 28 1 0 "7caf499f_870f_434a_b799b651abbb2f44" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (STAR_type == 2) { // }} "" // {{ 29 1 0 "8503b486_cb1b_4aca_8814790503c03570" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" mlStarCfg = Translate("\ML_FlexStar_Simulator.cfg"); // }} "" // {{ 30 1 0 "bfc409ae_8814_483d_b4337dbb7faeac46" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" mlStarCfgBak = Translate("\ML_FlexStar_Simulator.cfg.bak"); // }} "" // {{ 31 1 0 "7caf499f_870f_434a_b799b651abbb2f44" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 32 1 0 "67a3fd8a_06ad_4c06_a42f65010c538a32" "{C1F3C015-47B3-4514-9407-AC2E65043419}" cfgFile = StrConcat2(cfgPath, mlStarCfg); // }} "" // {{{ 33 1 0 "81d8ab0c_d8ba_4bde_96df906c28b986fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" cfgFileBak = StrConcat2(cfgPath, mlStarCfgBak); // }} "" // {{{ 34 1 0 "7421465a_b883_4718_a12f96655ebbc58c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" backupExists = FilSearchPath(cfgFileBak); // }} "" // {{ 35 1 0 "b8f0b55b_ba12_4134_97347f0f68a75d4c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (backupExists == "") { // }} "" // {{ 36 1 0 "78b27ef2_8a87_4d0f_8a64ea25197d156a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 37 1 0 "ab72e150_d57f_4345_9c090716bdbb7f1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" FilCopyFileEx(cfgFile, cfgFileBak); // }} "" // {{ 38 1 0 "b8f0b55b_ba12_4134_97347f0f68a75d4c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 39 1 0 "f11e8bd1_ba63_4932_80d7f856c94ccaae" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 40 1 0 "ae19ef5d_4b15_4fec_81d2d0643f7d8d3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 41 1 0 "5106408e_9d01_49b4_af15c55fc7353855" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strCommand = StrConcat8(binPath, Translate("\HxCfgFilConverter.exe /t \""), cfgPath, mlStarCfg, Translate("\""), Translate(""), Translate(""), Translate("")); // }} "" // {{ 42 1 0 "710a13d5_53ff_4f49_b3e2b0dc2e519799" "{B31F3545-5D80-11d4-A5EB-0050DA737D89}" { if( 0 == Shell(strCommand, hslShow, hslSynchronous) ) { MECC::RaiseRuntimeErrorEx(-1238499072, MECC::IDS::stepNameShell, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } } // }} "" // {{ 43 1 0 "ae19ef5d_4b15_4fec_81d2d0643f7d8d3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 44 1 0 "4457cc8b_3ba4_4a70_a7397e6a18d4f25f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 45 1 0 "dac14d1c_ee34_4aaa_b79faac33613fd7d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strNew = Translate(""); // }} "" // {{ 46 1 0 "33b6afca_9641_4691_99a8f1e4274a80f2" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" file1.AddField(1, str, hslString); file1.SetDelimiter(hslAsciiText); if( 0 == file1.Open(cfgFile, hslRead) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, cfgFile, "HxMetEdCompCmd"); } // }} "" // {{ 47 1 0 "7bd75906_dd88_4e21_95b4191761ce1b54" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounter1 = 0; while ( (file1.Eof() == 0) ) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 48 1 0 "6a497735_0a14_487f_b33b60b0c88c6c92" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == file1.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 49 1 0 "18caf040_4216_46e4_80eb43b26a65105c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFound = StrFind(str, Translate("reload")); // }} "" // {{ 50 1 0 "800c4e6d_2788_45fc_b6f4dd9f72f0f89e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (strFound >= 0) { // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 51 1 0 "d931ff6d_2953_46e5_8a3b5621483d45f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(""), str); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 52 1 0 "8b6ee905_42b3_4807_ae9ce68873284848" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(str, Translate("0"), Translate("1")); // }} "" // {{ 53 1 0 "800c4e6d_2788_45fc_b6f4dd9f72f0f89e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 54 1 0 "47d5312c_1dde_4bb7_802c8006f4fdf010" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strNew = StrConcat2(strNew, str); // }} "" // {{ 55 1 0 "7bd75906_dd88_4e21_95b4191761ce1b54" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 56 1 0 "bf4013bc_5ee3_42fc_b5acd8dea64ec744" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != file1.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } file1.RemoveFields(); // }} "" // {{ 57 1 0 "e06f23f0_b9e3_483c_8d44858f9fdf3638" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" file1.AddField(1, strNew, hslString); file1.SetDelimiter(hslAsciiText); if( 0 == file1.Open(cfgFile, hslWrite) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, cfgFile, "HxMetEdCompCmd"); } // }} "" // {{ 58 1 0 "55efb1b7_4f2d_446c_9660192d3301bc77" "{B31F3537-5D80-11d4-A5EB-0050DA737D89}" if( 0 == file1.WriteRecord() ) { MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 59 1 0 "19867ab6_5196_4a35_8104e8164aae6ebf" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != file1.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } file1.RemoveFields(); // }} "" // {{ 60 1 0 "4457cc8b_3ba4_4a70_a7397e6a18d4f25f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "STEP1_PrepareRegistryAndCfgFile" "End" } // }} "" // {{{ 5 "STEP4_Optional_SwitchChecksum_ON" "Begin" function STEP4_Optional_SwitchChecksum_ON( ) void { // }} "" private variable strCommand; private variable libPath; private file file1; private variable strFile; // {{ 5 "STEP4_Optional_SwitchChecksum_ON" "InitLocals" // }} "" // {{ 530 1 0 "042ead97_58de_4476_8889d389c706e1bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 531 1 0 "8ac1aeb8_7458_4829_8b1b4407a2b7a7c4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" libPath = FilGetLibraryPath(); // }} "" // {{ 532 1 0 "042ead97_58de_4476_8889d389c706e1bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 533 1 0 "f683c7dd_59a0_4219_b5267d00a7300835" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 534 1 0 "3c07b10e_dda6_45dc_99a13d30ad63b700" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFile = StrConcat2(libPath, Translate("\ErrorSimulator\SwitchChecksum_ON.bat")); // }} "" // {{{ 535 1 0 "91e48d90_119f_4d73_88564fa54b27e227" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strCommand = StrConcat4(Translate("\""), libPath, Translate("\ErrorSimulator\PhoenixChecksum_1.reg\""), Translate("")); // }} "" // {{ 536 1 0 "b6a77aa1_a95d_422c_a716c023402b4361" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" file1.AddField(1, strCommand, hslString); file1.SetDelimiter(hslAsciiText); if( 0 == file1.Open(strFile, hslWrite) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, strFile, "HxMetEdCompCmd"); } // }} "" // {{ 537 1 0 "cd80ae8c_8608_468e_be4fd87c19271e2e" "{B31F3537-5D80-11d4-A5EB-0050DA737D89}" if( 0 == file1.WriteRecord() ) { MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 538 1 0 "31815309_5dc9_4cb5_8e49d4241270c0bf" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != file1.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } file1.RemoveFields(); // }} "" // {{ 539 1 0 "add22bc3_2d69_49da_8f962321a0b1bd9d" "{B31F3545-5D80-11d4-A5EB-0050DA737D89}" { if( 0 == Shell(strFile, hslShow, hslSynchronous) ) { MECC::RaiseRuntimeErrorEx(-1238499072, MECC::IDS::stepNameShell, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } } // }} "" // {{ 540 1 0 "f683c7dd_59a0_4219_b5267d00a7300835" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "STEP4_Optional_SwitchChecksum_ON" "End" } // }} "" // {{{ 5 "STEP2a_SimulateError_Channels" "Begin" function STEP2a_SimulateError_Channels( variable ChannelNumber, variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void { // }} "" private variable ErrStr_KeyName; private variable ErrStr_NewValue; private variable STAR_type; private variable array_channels[]; private variable NumOfChnWithError; private variable loopCounter1; private variable chn_index; // {{ 5 "STEP2a_SimulateError_Channels" "InitLocals" // }} "" // {{ 62 1 0 "ed165ca4_2672_412d_b8114f04680755d6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate(""); // }} "" // {{ 63 1 0 "338ede05_c6e1_4ef1_9ddbf5c211b49593" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_NewValue = Translate("er99/00 "); // }} "" // {{{ 64 1 0 "9669b5b9_3a8d_4efe_b6c93c1b1d8ca0e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ChannelNumber, Translate(","), array_channels, 0); // }} "" // {{ 65 1 0 "7b479989_ccc8_4ec0_af83180e57bec1ac" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 66 1 0 "fcc8b369_fc53_402d_a0fa1378ed01b609" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 1) { // }} "" // {{ 67 1 0 "5637a6af_1c11_4961_a4a081c10a6ebb05" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 68 1 0 "4b01788d_b6dc_449a_be1ce8d7dae5f676" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate("C0AS"); // }} "" // {{ 69 1 0 "fcc8b369_fc53_402d_a0fa1378ed01b609" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 70 1 0 "fa2ee0c0_5981_4dc5_9875b6b3599a4212" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 2) { // }} "" // {{ 71 1 0 "e4316954_b19f_4b1f_a9bc38e505226ced" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 72 1 0 "790b3078_68eb_469e_b744f0e4bd38d8b2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate("C0DS"); // }} "" // {{ 73 1 0 "fa2ee0c0_5981_4dc5_9875b6b3599a4212" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 74 1 0 "822da6c1_3335_4856_904aabe562296dd7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 3) { // }} "" // {{ 75 1 0 "6c75c515_2194_4d59_bdbc8686f4cc3373" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 76 1 0 "12e867e4_3af1_4008_830ff18a7322d11d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate("C0TP"); // }} "" // {{ 77 1 0 "822da6c1_3335_4856_904aabe562296dd7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 78 1 0 "8d076a01_cb6a_4784_a2e451c806e5c301" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 4) { // }} "" // {{ 79 1 0 "296ac91f_8866_492b_89831cafc6d53ce5" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 80 1 0 "047dc326_16b4_443d_a575b710312190ab" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate("C0TR"); // }} "" // {{ 81 1 0 "8d076a01_cb6a_4784_a2e451c806e5c301" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 82 1 0 "7b479989_ccc8_4ec0_af83180e57bec1ac" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 83 1 0 "54f84df7_7a9b_4e13_a978f60e16f77433" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 84 1 0 "11890cda_b994_4a62_93b88299bb0ac15c" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" NumOfChnWithError=array_channels.GetSize(); // }} "" // {{ 85 1 0 "a6558573_3cac_4850_968074473799a884" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < NumOfChnWithError;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 86 1 0 "3297de1c_3515_424a_8faae8c326d18526" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" chn_index=array_channels.GetAt(loopCounter1-1); // }} "" // {{ 87 1 0 "866a95d5_5649_4baf_bf4d54bbdaa44a03" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 1) { // }} "" // {{ 88 1 0 "9e3dc33e_8427_48ea_9f800590a91e00da" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 89 1 0 "2d43d9bd_48eb_4258_bad7b4f00737e8f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate("P"), chn_index, Translate("06/70")); // }} "" // {{ 90 1 0 "866a95d5_5649_4baf_bf4d54bbdaa44a03" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 91 1 0 "2301ff80_0baa_4f82_b468d84f8d80e12c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 2) { // }} "" // {{ 92 1 0 "e2615878_330b_4226_ba5ae595605858d3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 93 1 0 "6f2df4ba_6931_4a59_95b763c4ca610d69" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate("P"), chn_index, Translate("06/71")); // }} "" // {{ 94 1 0 "2301ff80_0baa_4f82_b468d84f8d80e12c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 95 1 0 "9a7ddf62_f5a4_4e57_b9fb8b6f165ef0a9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 3) { // }} "" // {{ 96 1 0 "40f84565_e516_4077_aa9c1ac81ee26be5" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 97 1 0 "9b5ca2e3_e3b1_492b_a878aad3e451b682" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate("P"), chn_index, Translate("06/73")); // }} "" // {{ 98 1 0 "9a7ddf62_f5a4_4e57_b9fb8b6f165ef0a9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 99 1 0 "a8849d68_1be3_449d_baeea2648d4e4e90" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 4) { // }} "" // {{ 100 1 0 "04dfe745_8c2d_4445_86aecf061fa6a170" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 101 1 0 "16010ba1_f155_4d62_a704790799e01ddb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate("P"), chn_index, Translate("04/81")); // }} "" // {{ 102 1 0 "a8849d68_1be3_449d_baeea2648d4e4e90" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 103 1 0 "7a2e4555_ddf2_4c19_be976ddba7cddacd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 5) { // }} "" // {{ 104 1 0 "b42a28f3_d6e3_4271_8231768fe73fdcde" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 105 1 0 "42733e93_8ca6_45ad_99b170470f9bb89a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate("P"), chn_index, Translate("06/80")); // }} "" // {{ 106 1 0 "7a2e4555_ddf2_4c19_be976ddba7cddacd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 107 1 0 "c5e8e0b8_20be_4243_bc9ac9ac9ae110a6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 6) { // }} "" // {{ 108 1 0 "7c0e655c_b886_46bf_b44d9934fffd65fe" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 109 1 0 "286db30e_d313_461b_b3f1115474bdb587" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate("P"), chn_index, Translate("07/00")); // }} "" // {{ 110 1 0 "c5e8e0b8_20be_4243_bc9ac9ac9ae110a6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 111 1 0 "483ea706_7651_4bbf_85ce6c0c73f22a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 7) { // }} "" // {{ 112 1 0 "71de95fb_f43b_4d18_942ae56ad0009187" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 113 1 0 "bf5f6025_1c29_4776_bebd12f59876a7c7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate("P"), chn_index, Translate("08/00")); // }} "" // {{ 114 1 0 "483ea706_7651_4bbf_85ce6c0c73f22a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 115 1 0 "43eb81af_7b07_4d38_ad7b4b0f3f98fa5a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 8) { // }} "" // {{ 116 1 0 "4808cbf1_2700_4848_8915be75c62a9c37" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 117 1 0 "dcbb670e_fefa_47c9_96ffc18b635663a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate("P"), chn_index, Translate("08/78")); // }} "" // {{ 118 1 0 "43eb81af_7b07_4d38_ad7b4b0f3f98fa5a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 119 1 0 "1b2230c9_db96_46a1_8afef6c8f1856b89" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 9) { // }} "" // {{ 120 1 0 "b4d676ba_8a97_4aeb_af74858a4e3bfa47" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 121 1 0 "d044aaca_0883_442e_808e26a120f36209" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate("P"), chn_index, Translate("01/00")); // }} "" // {{ 122 1 0 "1b2230c9_db96_46a1_8afef6c8f1856b89" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 123 1 0 "4a13748c_3387_4470_9d154df0e85314ef" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 10) { // }} "" // {{ 124 1 0 "52cd3e84_dd8a_4e42_81bb665f0c7bdfe1" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 125 1 0 "0a43d8c9_4c63_4c87_b2470949cd242ec0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate("P"), chn_index, Translate("02/00")); // }} "" // {{ 126 1 0 "4a13748c_3387_4470_9d154df0e85314ef" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 127 1 0 "258858ec_f34a_4101_a21176b8895afe64" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 11) { // }} "" // {{ 128 1 0 "7fdd0dd3_dc1d_4b60_8bdeb00255814f71" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 129 1 0 "6e1a86fc_1288_4ff5_b988ed4c8071f6a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate("P"), chn_index, Translate("03/00")); // }} "" // {{ 130 1 0 "258858ec_f34a_4101_a21176b8895afe64" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 131 1 0 "07aaaa47_9437_4c3d_8025ce2058666497" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 12) { // }} "" // {{ 132 1 0 "d69dd481_8c6c_4dc4_b369d9cc044c36a1" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 133 1 0 "3939340a_03bd_43fe_ab837c1d773e821b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate("P"), chn_index, Translate("10/00")); // }} "" // {{ 134 1 0 "07aaaa47_9437_4c3d_8025ce2058666497" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 135 1 0 "a6558573_3cac_4850_968074473799a884" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 136 1 0 "54f84df7_7a9b_4e13_a978f60e16f77433" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 137 1 0 "119cdbfd_31df_4f42_80aa16bf8cf7b83d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" STAR_type = HSLML_STAR::GetInstrumentType_GlobalDevice(ML_STAR); // }} "" // {{{ 138 1 0 "03fb6afc_a5f4_4f85_99ec2157b00bbb5d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MlStarSimCfg::updateKeyValueForOneUse(ErrStr_KeyName, ErrStr_NewValue, STAR_type); // }} "" // {{{ 5 "STEP2a_SimulateError_Channels" "End" } // }} "" // {{{ 5 "STEP2b_SimulateError_COREGripper" "Begin" function STEP2b_SimulateError_COREGripper( variable ChannelNumber, variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void { // }} "" private variable ErrStr_KeyName; private variable ErrStr_NewValue; private variable STAR_type; // {{ 5 "STEP2b_SimulateError_COREGripper" "InitLocals" // }} "" // {{ 140 1 0 "0519e2af_40e0_4d11_9bf6b0fb7d1a1488" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate(""); // }} "" // {{ 141 1 0 "f8159c2c_fc98_4614_8421d5378619b1da" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_NewValue = Translate("er99/00 P"); // }} "" // {{ 142 1 0 "4db0b82d_6fe0_4d53_8312d3bee0689303" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 143 1 0 "3f374ce3_84c0_42c4_971d154bdc553643" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 1) { // }} "" // {{ 144 1 0 "c057e16d_8e91_47e7_8cf23c0ddf753ae7" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 145 1 0 "aeb667c0_9306_49c1_b53dc4538b6d48ec" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate("C0ZT"); // }} "" // {{ 146 1 0 "3f374ce3_84c0_42c4_971d154bdc553643" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 147 1 0 "4b1787e2_59fd_4b47_ba5d7ba51909e5cf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 2) { // }} "" // {{ 148 1 0 "09d92aae_cf4f_434c_96a14767213cc118" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 149 1 0 "d5339ee1_95d7_4a78_9c3e65826deed583" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate("C0ZP"); // }} "" // {{ 150 1 0 "4b1787e2_59fd_4b47_ba5d7ba51909e5cf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 151 1 0 "a9e6b197_51eb_43d9_b7fb3f4a4073f15a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 3) { // }} "" // {{ 152 1 0 "1ae7b441_4aec_41a2_98dd30e7c9c6c47a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 153 1 0 "28d4e2ed_b307_42a0_8eadf5920dd03d29" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate("C0ZR"); // }} "" // {{ 154 1 0 "a9e6b197_51eb_43d9_b7fb3f4a4073f15a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 155 1 0 "9a567569_f10e_421a_9d4a15b82f5464a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 4) { // }} "" // {{ 156 1 0 "c24a7e82_6d52_4977_a30eaee93119c7a4" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 157 1 0 "7bb6714a_8494_42e1_9f3602f00c33cdb3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate("C0ZS"); // }} "" // {{ 158 1 0 "9a567569_f10e_421a_9d4a15b82f5464a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 159 1 0 "4db0b82d_6fe0_4d53_8312d3bee0689303" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 160 1 0 "8f37d288_48b0_4d4c_ae712b49ff5447ec" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 161 1 0 "3524df88_c3a9_4703_913d4f2cb3e1186e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 1) { // }} "" // {{ 162 1 0 "fd1151aa_7382_4092_b85b0f796a8c345f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 163 1 0 "c4c13347_d110_4e4e_a8273a09e1262b24" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("08/75"), Translate("")); // }} "" // {{ 164 1 0 "3524df88_c3a9_4703_913d4f2cb3e1186e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 165 1 0 "7f0fd5c5_7bd6_4dd3_9a32c470d5d8aa74" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 2) { // }} "" // {{ 166 1 0 "0660ae9a_f88f_416c_af5315931e58ed4f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 167 1 0 "aac35c60_eece_420d_af33e4c2e9a0d58d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("02/62"), Translate("")); // }} "" // {{ 168 1 0 "7f0fd5c5_7bd6_4dd3_9a32c470d5d8aa74" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 169 1 0 "db7659eb_09aa_47b9_b507fd54af99639f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 3) { // }} "" // {{ 170 1 0 "1c83d871_308c_46a0_b4a4b0c96643212f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 171 1 0 "f4dccd6c_6e1c_4f9c_b2915e93021baca8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("02/00"), Translate("")); // }} "" // {{ 172 1 0 "db7659eb_09aa_47b9_b507fd54af99639f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 173 1 0 "8f37d288_48b0_4d4c_ae712b49ff5447ec" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 174 1 0 "321fb1d8_098b_47b7_bd4b756a8f8ed7d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" STAR_type = HSLML_STAR::GetInstrumentType_GlobalDevice(ML_STAR); // }} "" // {{{ 175 1 0 "0338e78e_ec63_4d9d_86db70ca675b83d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MlStarSimCfg::updateKeyValueForOneUse(ErrStr_KeyName, ErrStr_NewValue, STAR_type); // }} "" // {{{ 5 "STEP2b_SimulateError_COREGripper" "End" } // }} "" // {{{ 5 "STEP2c_SimulateError_iSWAP" "Begin" function STEP2c_SimulateError_iSWAP( variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void { // }} "" private variable ErrStr_KeyName; private variable ErrStr_NewValue; private variable STAR_type; // {{ 5 "STEP2c_SimulateError_iSWAP" "InitLocals" // }} "" // {{ 177 1 0 "d1de1411_1477_4cc2_83bfb426c16a405b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate(""); // }} "" // {{ 178 1 0 "f95a74d1_6f0b_4a04_accb85ce805a3acd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_NewValue = Translate("er99/00 R0"); // }} "" // {{ 179 1 0 "d71f2a20_5dfe_4d36_8bb1db5def384997" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 180 1 0 "f6d9aaec_2fbc_469f_964945d5f3f124cb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 1) { // }} "" // {{ 181 1 0 "3433bc51_8fe3_4ed1_a424b4b7f84b60ca" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 182 1 0 "a496a253_9f79_4b03_a7b6f196de019557" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate("C0PP"); // }} "" // {{ 183 1 0 "f6d9aaec_2fbc_469f_964945d5f3f124cb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 184 1 0 "fc177357_dc11_4cf2_bda4a70026779226" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 2) { // }} "" // {{ 185 1 0 "d7ce088b_db00_4b4c_9126aeb0159c0e2f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 186 1 0 "235619ea_98cf_4ae2_96138399c3b459a7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate("C0PR"); // }} "" // {{ 187 1 0 "fc177357_dc11_4cf2_bda4a70026779226" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 188 1 0 "d71f2a20_5dfe_4d36_8bb1db5def384997" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 189 1 0 "0b5a7590_aeb4_466e_9caf6bf6acac12eb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 190 1 0 "b9cf42a0_e7ec_43f9_baac4180bb8eb3ac" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 1) { // }} "" // {{ 191 1 0 "9b4e3252_8ac6_44c8_ab9414cb31076d3f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 192 1 0 "f9300437_1a52_413a_91e7f1e84e2832ba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate(""), Translate("21/94"), Translate("")); // }} "" // {{ 193 1 0 "b9cf42a0_e7ec_43f9_baac4180bb8eb3ac" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 194 1 0 "2bbe7c82_3c3f_4e12_99afe6a9df115090" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 2) { // }} "" // {{ 195 1 0 "1cec7b9e_0484_4404_b05fe103a9ceff5f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 196 1 0 "59b56898_9faf_4de9_8c30e7fe1bc6fb4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate(""), Translate("02/62"), Translate("")); // }} "" // {{ 197 1 0 "2bbe7c82_3c3f_4e12_99afe6a9df115090" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 198 1 0 "6f8951c1_ab9c_4d71_9e6fb768d553fdb9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 3) { // }} "" // {{ 199 1 0 "0ae280c1_8950_40de_af3636fffbbb1a54" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 200 1 0 "bf349d2e_e1a2_4bb8_a05a82cd43eeeec9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate(""), Translate("02/00"), Translate("")); // }} "" // {{ 201 1 0 "6f8951c1_ab9c_4d71_9e6fb768d553fdb9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 202 1 0 "0f54ef9d_9486_4156_877a1cf37b6a02ec" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 4) { // }} "" // {{ 203 1 0 "5a8c137c_4375_404d_81b305cc59ffb976" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 204 1 0 "c5da8b3e_5029_4d65_abb91579b894665e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, Translate(""), Translate("23/96"), Translate("")); // }} "" // {{ 205 1 0 "0f54ef9d_9486_4156_877a1cf37b6a02ec" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 206 1 0 "0b5a7590_aeb4_466e_9caf6bf6acac12eb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 207 1 0 "1faec585_a4d8_425c_925ec8ba7beab8f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" STAR_type = HSLML_STAR::GetInstrumentType_GlobalDevice(ML_STAR); // }} "" // {{{ 208 1 0 "2dd477d5_ff94_4d54_9ddce5e88eaa4cdc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MlStarSimCfg::updateKeyValueForOneUse(ErrStr_KeyName, ErrStr_NewValue, STAR_type); // }} "" // {{{ 5 "STEP2c_SimulateError_iSWAP" "End" } // }} "" // {{{ 5 "STEP2d_SimulateError_96Head" "Begin" function STEP2d_SimulateError_96Head( variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void { // }} "" private variable ErrStr_KeyName; private variable ErrStr_NewValue; private variable ChannelNumber; private variable STAR_type; // {{ 5 "STEP2d_SimulateError_96Head" "InitLocals" // }} "" // {{ 210 1 0 "9b0af16f_edaa_4b1e_ad36090b615eb4a3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate(""); // }} "" // {{ 211 1 0 "4ad5084c_9336_4543_92623cf16bef115f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate(""); // }} "" // {{ 212 1 0 "9fa88820_77e7_417e_89f2d592307038c8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_NewValue = Translate("er99/00 "); // }} "" // {{ 213 1 0 "ced8eb60_8e5f_4800_82a87fdc3adaa7a1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ChannelNumber = Translate("H0"); // }} "" // {{ 214 1 0 "3e3fdd92_15f8_46c0_80b52708979c39b6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 215 1 0 "1cda0e82_e747_4aa3_9e8a51c0079e6d39" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 1) { // }} "" // {{ 216 1 0 "106d7b56_5558_4f48_97a27c410cb13c79" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 217 1 0 "b540e46e_5e81_46d6_bd810616024ad8f0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate("C0EA"); // }} "" // {{ 218 1 0 "1cda0e82_e747_4aa3_9e8a51c0079e6d39" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 219 1 0 "c967c224_47db_4837_a68ab938f6b74a41" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 2) { // }} "" // {{ 220 1 0 "5481b069_cf6b_46d1_a17dfbfce6d09d9f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 221 1 0 "44cb3a26_405f_45e0_a815e0c0ce770943" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate("C0ED"); // }} "" // {{ 222 1 0 "c967c224_47db_4837_a68ab938f6b74a41" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 223 1 0 "a1d53f7e_47d3_4139_b36b3e31e36a45c0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 3) { // }} "" // {{ 224 1 0 "ce38fb45_9c30_4901_aec57f6b1b98cc94" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 225 1 0 "2e4efc85_bd37_4308_9555d611320b76d7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate("C0EP"); // }} "" // {{ 226 1 0 "a1d53f7e_47d3_4139_b36b3e31e36a45c0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 227 1 0 "03e43542_6d8f_4a42_84699d3fa8d12714" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 4) { // }} "" // {{ 228 1 0 "a4e7806c_a991_4911_a29650ca1acde72b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 229 1 0 "6bea1668_afd0_42f0_a2a4373e86974f48" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate("C0ER"); // }} "" // {{ 230 1 0 "03e43542_6d8f_4a42_84699d3fa8d12714" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 231 1 0 "cd033a75_ca51_4d9d_a571c4a11e4fff38" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 5) { // }} "" // {{ 232 1 0 "54dd9be1_3010_4d4c_891ad99814f521f2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 233 1 0 "e9615c57_dcaa_4fd4_b75e6d25e435ab04" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate("C0EG"); // }} "" // {{ 234 1 0 "cd033a75_ca51_4d9d_a571c4a11e4fff38" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 235 1 0 "3e3fdd92_15f8_46c0_80b52708979c39b6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 236 1 0 "0bbe8abc_87b9_4826_b7a1ae070956f9da" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 237 1 0 "01225656_54ca_463c_8f846cb0837c1143" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 5) { // }} "" // {{ 238 1 0 "fae84601_1787_45cd_a93a8fa27ac81ec7" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 239 1 0 "42ca8bca_6b07_4247_8480fc95d2a24279" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("18/00"), Translate("")); // }} "" // {{ 240 1 0 "01225656_54ca_463c_8f846cb0837c1143" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 241 1 0 "f5c381da_c6b8_4672_984b88755f65b747" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 1) { // }} "" // {{ 242 1 0 "2fc6ef1d_acf2_4b94_9d5fc3f06f5da7e4" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 243 1 0 "e3cd1823_e6e5_43af_97472bb6154eb8b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("06/70"), Translate("")); // }} "" // {{ 244 1 0 "f5c381da_c6b8_4672_984b88755f65b747" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 245 1 0 "38c8c0c1_a64e_416c_b3b84aa364df9d4f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 2) { // }} "" // {{ 246 1 0 "ed55518b_cfe5_45dd_8f91a12bdbf896a4" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 247 1 0 "0b255114_2443_4a2f_a2635ae781affa58" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("06/71"), Translate("")); // }} "" // {{ 248 1 0 "38c8c0c1_a64e_416c_b3b84aa364df9d4f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 249 1 0 "52e39ccf_5522_4441_afa2dc0d4cdfb1b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 6) { // }} "" // {{ 250 1 0 "25c4a154_2b5a_4cdb_9a2e2a34384d84de" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 251 1 0 "b4c29c8f_537d_46f0_8a4e47476f33f709" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("07/00"), Translate("")); // }} "" // {{ 252 1 0 "52e39ccf_5522_4441_afa2dc0d4cdfb1b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 253 1 0 "50ee51b0_e30c_4211_9a59dfbc59d5937e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 7) { // }} "" // {{ 254 1 0 "5fe7d8df_264f_4370_88be65d835bd89f3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 255 1 0 "f9b866ab_e624_4297_a0db6fbaf43269c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("08/00"), Translate("")); // }} "" // {{ 256 1 0 "50ee51b0_e30c_4211_9a59dfbc59d5937e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 257 1 0 "b2233652_7ece_44a0_8284de8314a66312" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 8) { // }} "" // {{ 258 1 0 "79b42a93_a52f_4bde_82c4ae5005160bb0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 259 1 0 "56b5617c_838b_4fb1_b803c2a4e5b7cbb4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("08/78"), Translate("")); // }} "" // {{ 260 1 0 "b2233652_7ece_44a0_8284de8314a66312" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 261 1 0 "984549f6_2b56_4ff7_9e39038ba2b4a16c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 9) { // }} "" // {{ 262 1 0 "091e7517_0466_442f_83e006f041b23ce7" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 263 1 0 "aabb26b5_aaea_4c32_bb568ded5079cdaf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("01/00"), Translate("")); // }} "" // {{ 264 1 0 "984549f6_2b56_4ff7_9e39038ba2b4a16c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 265 1 0 "f11da1cf_4c34_4ef0_92aad9f81e2f7cdd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 10) { // }} "" // {{ 266 1 0 "397b78a3_282d_48b7_88a140b62eed0ab0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 267 1 0 "f351cd0d_f4bf_4e9a_81d04addd0490dac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("02/00"), Translate("")); // }} "" // {{ 268 1 0 "f11da1cf_4c34_4ef0_92aad9f81e2f7cdd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 269 1 0 "07932bbb_3ede_4ce2_9f5f951777c57f8e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 11) { // }} "" // {{ 270 1 0 "3c0030bd_9ec9_4319_a4909f6fe0b0d5ca" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 271 1 0 "455b4f98_d3b5_433d_a732eaa005ea9c7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("03/00"), Translate("")); // }} "" // {{ 272 1 0 "07932bbb_3ede_4ce2_9f5f951777c57f8e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 273 1 0 "aa078de1_4809_4884_8f16cc356ee790b7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 12) { // }} "" // {{ 274 1 0 "bf6d373f_70d2_4992_afaf32e4a692bb97" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 275 1 0 "e6dda7da_8e09_412d_b27123432c46c35c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("10/00"), Translate("")); // }} "" // {{ 276 1 0 "aa078de1_4809_4884_8f16cc356ee790b7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 277 1 0 "0bbe8abc_87b9_4826_b7a1ae070956f9da" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 278 1 0 "74bc9bed_a7a2_4c99_afb6cc83bc3fa36b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" STAR_type = HSLML_STAR::GetInstrumentType_GlobalDevice(ML_STAR); // }} "" // {{{ 279 1 0 "4a84073b_d1ac_4daa_853c88c4afe4041b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MlStarSimCfg::updateKeyValueForOneUse(ErrStr_KeyName, ErrStr_NewValue, STAR_type); // }} "" // {{{ 5 "STEP2d_SimulateError_96Head" "End" } // }} "" // {{{ 5 "STEP2e_SimulateError_384head" "Begin" function STEP2e_SimulateError_384head( variable WhenSimulateError, variable ErrorToSimulate, device & ML_STAR ) void { // }} "" private variable ChannelNumber; private variable ErrStr_KeyName; private variable ErrStr_NewValue; private variable STAR_type; // {{ 5 "STEP2e_SimulateError_384head" "InitLocals" // }} "" // {{ 281 1 0 "b649ba17_f472_4f24_868ba474f019f5a4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate(""); // }} "" // {{ 282 1 0 "725f324f_22ef_4aa0_a72b4662a209704b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate(""); // }} "" // {{ 283 1 0 "605e7b22_3257_4df2_a08a14007142fed8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_NewValue = Translate("er99/00 "); // }} "" // {{ 284 1 0 "419eadf0_cfa7_4331_990f08dea711560b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ChannelNumber = Translate("D0"); // }} "" // {{ 285 1 0 "dce5e9d6_aade_4728_b4686bb6579a0e81" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 286 1 0 "cb1f3530_02e7_44d6_8c7d3b636fe21cb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 1) { // }} "" // {{ 287 1 0 "a410f4ff_7e3f_4eb0_8c59296cf097aca7" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 288 1 0 "03713df9_71af_4266_ab98cc79de66074b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate("C0JA"); // }} "" // {{ 289 1 0 "cb1f3530_02e7_44d6_8c7d3b636fe21cb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 290 1 0 "fc1ba402_94ae_4458_9501d201e224427f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 2) { // }} "" // {{ 291 1 0 "970babea_89f0_4894_ac3069329726f320" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 292 1 0 "7f8cf4f7_07a6_42fe_90019c934211a6c6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate("C0JD"); // }} "" // {{ 293 1 0 "fc1ba402_94ae_4458_9501d201e224427f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 294 1 0 "7797e6c5_738b_4eaa_9815556da7934343" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 3) { // }} "" // {{ 295 1 0 "d0492fa2_ecae_449d_bd32b37fdf84e2f3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 296 1 0 "f0e3c632_34ce_42af_acb0993ff2e7ade6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate("C0JC"); // }} "" // {{ 297 1 0 "7797e6c5_738b_4eaa_9815556da7934343" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 298 1 0 "03ef15c5_dc83_449b_97a228253e8a00e3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 4) { // }} "" // {{ 299 1 0 "c39ddfbf_0251_4c7c_893fb5fa05be1eda" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 300 1 0 "6b0c86aa_f082_4b0e_93d7706bb96f5685" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate("C0JB"); // }} "" // {{ 301 1 0 "03ef15c5_dc83_449b_97a228253e8a00e3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 302 1 0 "f1fea7a7_2f19_42e9_b852a2da944cbfe3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 5) { // }} "" // {{ 303 1 0 "9687a967_737f_4e7d_809b2285d508a1ca" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 304 1 0 "1fea4bdb_dccd_4899_872f6a8282ffd273" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ErrStr_KeyName = Translate("C0JG"); // }} "" // {{ 305 1 0 "f1fea7a7_2f19_42e9_b852a2da944cbfe3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 306 1 0 "dce5e9d6_aade_4728_b4686bb6579a0e81" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 307 1 0 "fea10ee9_c32e_4a03_99eedfaf6046322a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 308 1 0 "c73af3e9_e82c_413c_922a4ab332b4c57c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 5) { // }} "" // {{ 309 1 0 "10c5585a_0654_40a3_9699923918f36da2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 310 1 0 "ddd9f7fd_30af_488a_afe37a0ca5485df2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("18/00"), Translate("")); // }} "" // {{ 311 1 0 "c73af3e9_e82c_413c_922a4ab332b4c57c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 312 1 0 "130e03ba_4b87_418a_b3915567e52a1ce0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 1) { // }} "" // {{ 313 1 0 "876c978a_9e78_462f_9f91e25201f8fedd" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 314 1 0 "3277f127_1720_46c9_88685fd5378f7528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("06/70"), Translate("")); // }} "" // {{ 315 1 0 "130e03ba_4b87_418a_b3915567e52a1ce0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 316 1 0 "b3e3ba3c_5621_4584_a5ec3e8965b07d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 2) { // }} "" // {{ 317 1 0 "5b9f12d9_a32f_4604_bfca0fcaf57385ed" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 318 1 0 "4b6d462b_ad85_428c_a0021fe186864a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("06/71"), Translate("")); // }} "" // {{ 319 1 0 "b3e3ba3c_5621_4584_a5ec3e8965b07d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 320 1 0 "a19fac4b_c5a0_4623_998c08073f36373f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 6) { // }} "" // {{ 321 1 0 "6feb3967_cba6_4ef3_b9d476ab7be13264" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 322 1 0 "0ab7c0d3_95c7_46b0_858d52a4df322fa8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("07/00"), Translate("")); // }} "" // {{ 323 1 0 "a19fac4b_c5a0_4623_998c08073f36373f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 324 1 0 "10a1158c_c035_492f_bd08ee24cc3cc3b8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 7) { // }} "" // {{ 325 1 0 "b8a9e537_551f_429d_a237ea27b4a337db" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 326 1 0 "a74a1076_5143_45d3_a2db04088a6bdd24" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("08/00"), Translate("")); // }} "" // {{ 327 1 0 "10a1158c_c035_492f_bd08ee24cc3cc3b8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 328 1 0 "d8fec33d_0bf8_4536_92e07208b6ea0008" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 8) { // }} "" // {{ 329 1 0 "a48db2b5_e057_4517_965d503b10967f0c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 330 1 0 "dc1b8447_f770_4a4d_8611f259d40e6ba0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("08/78"), Translate("")); // }} "" // {{ 331 1 0 "d8fec33d_0bf8_4536_92e07208b6ea0008" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 332 1 0 "c49dbe3a_6747_40c7_8489a6732f3f5674" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 9) { // }} "" // {{ 333 1 0 "68170e0f_ce05_47e0_ad6b5e8c657c88e7" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 334 1 0 "017078c4_8d06_4cdb_b38441d1f3f1c52f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("01/00"), Translate("")); // }} "" // {{ 335 1 0 "c49dbe3a_6747_40c7_8489a6732f3f5674" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 336 1 0 "1f09f8f2_41a2_4ba7_aefc70ad8379ed4a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 10) { // }} "" // {{ 337 1 0 "9f85e8e8_5b44_4758_b9ab31b193c3e87a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 338 1 0 "a5c7ba99_3673_45f8_97d327118fd01320" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("02/00"), Translate("")); // }} "" // {{ 339 1 0 "1f09f8f2_41a2_4ba7_aefc70ad8379ed4a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 340 1 0 "440f3520_688a_4c6f_995539432035382e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 11) { // }} "" // {{ 341 1 0 "6f744c52_b4f4_4028_83923d9157889a33" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 342 1 0 "17800683_71ab_46cc_b73e459d34a97fea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("03/00"), Translate("")); // }} "" // {{ 343 1 0 "440f3520_688a_4c6f_995539432035382e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 344 1 0 "96fab4eb_bb8d_40d3_b709f872d49e38fa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ErrorToSimulate == 12) { // }} "" // {{ 345 1 0 "15466503_d204_4822_a828a24ffc3ec2e0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 346 1 0 "8f0fd55e_fed2_4265_af46a323fb296a43" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat4(ErrStr_NewValue, ChannelNumber, Translate("10/00"), Translate("")); // }} "" // {{ 347 1 0 "96fab4eb_bb8d_40d3_b709f872d49e38fa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 348 1 0 "fea10ee9_c32e_4a03_99eedfaf6046322a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 349 1 0 "44326fcc_9bdc_4cbb_a6da6e3fd0d3a1c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" STAR_type = HSLML_STAR::GetInstrumentType_GlobalDevice(ML_STAR); // }} "" // {{{ 350 1 0 "ab789708_bac7_4b44_956c92eb6797a342" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MlStarSimCfg::updateKeyValueForOneUse(ErrStr_KeyName, ErrStr_NewValue, STAR_type); // }} "" // {{{ 5 "STEP2e_SimulateError_384head" "End" } // }} "" // {{{ 5 "STEP2f_SimulateError_BarcodeReading" "Begin" function STEP2f_SimulateError_BarcodeReading( variable WhenSimulateError, device & ML_STAR ) void { // }} "" private variable STAR_type; // {{ 5 "STEP2f_SimulateError_BarcodeReading" "InitLocals" // }} "" // {{{ 352 1 0 "7c3eef82_9706_4952_aeb02595f33f2886" "{C1F3C015-47B3-4514-9407-AC2E65043419}" STAR_type = HSLML_STAR::GetInstrumentType_GlobalDevice(ML_STAR); // }} "" // {{ 353 1 0 "bbc6eb49_3625_4937_8f9de436e2497107" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 1) { // }} "" // {{{ 354 1 0 "261974c0_29fa_4a89_8e8138fc7dc99bbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MlStarSimCfg::updateKeyValueForOneUse(Translate("C0ZB"), Translate("er99/00 I005/80"), STAR_type); // }} "" // {{ 355 1 0 "bbc6eb49_3625_4937_8f9de436e2497107" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 356 1 0 "4c717309_5985_435c_b4a101c2c84b6f84" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (WhenSimulateError == 1) { // }} "" // {{{ 357 1 0 "5b029b65_b82d_4b1f_84c349d008c0fc0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MlStarSimCfg::updateKeyValueForOneUse(Translate("C0PB"), Translate("er99/00 I005/80"), STAR_type); // }} "" // {{ 358 1 0 "4c717309_5985_435c_b4a101c2c84b6f84" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "STEP2f_SimulateError_BarcodeReading" "End" } // }} "" // {{{ 5 "STEP2g_SimulateError_Autoload" "Begin" function STEP2g_SimulateError_Autoload( variable notReadPositions_Str, variable notPresentPositions_Str, device & ML_STAR ) void { // }} "" private variable currentBitValue; private variable tmpCounter; private variable strBitsChain; private variable tmpVal; private variable num_errorSamples; private variable STR; private variable loopCounter3; private variable tmpBinChain; private variable loopCounter4; private variable loopCounter5; private variable array_BitValue[]; private variable arr_SmpPos[]; private variable array_Binaries[]; private variable notPresentError_FW; private variable notReadBarcodeError_FW; private variable ErrStr_NewValue; private variable arr_SmpPos2[]; private variable noBC; private variable num_errorSamples2; private variable STAR_type; // {{ 5 "STEP2g_SimulateError_Autoload" "InitLocals" // }} "" // {{ 360 1 0 "82aec9cc_b22c_4d2f_b614e247494bf78b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 361 1 0 "b6fc5e10_9dd7_495a_99976a7def255612" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" STR = notPresentPositions_Str; // }} "" // {{ 362 1 0 "f7f0015e_646c_4f76_b006c030cbfefe0e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 363 1 0 "f8f6aade_51b3_4abd_84e22ecc9d1fa66b" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_SmpPos.SetSize(0); // }} "" // {{ 364 1 0 "d7b1af61_b82a_427e_834169276955f538" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" array_Binaries.SetSize(0); // }} "" // {{ 365 1 0 "ecd422e5_6b7e_460e_bc257024ed0c48e2" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" array_BitValue.SetSize(0); // }} "" // {{ 366 1 0 "580b0b2d_20b9_45ab_ba2ddef53370b0cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 367 1 0 "e955b80a_88bc_43c3_837c6d694752bbfe" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_Binaries.AddAsLast(Translate("0000")); // }} "" // {{ 368 1 0 "0951f6cd_c0f4_48a2_a1bbcd2b28a3f391" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_Binaries.AddAsLast(Translate("0001")); // }} "" // {{ 369 1 0 "d469e4d8_d375_4c57_8ab3f02e49fe26ca" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_Binaries.AddAsLast(Translate("0010")); // }} "" // {{ 370 1 0 "0915f006_3726_405e_8bb85abfa7b033a5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_Binaries.AddAsLast(Translate("0011")); // }} "" // {{ 371 1 0 "5c7deb33_a8e7_45ad_990a7a783eabf859" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_Binaries.AddAsLast(Translate("0100")); // }} "" // {{ 372 1 0 "7669cf6f_f9ad_48bb_ba50bb2256b4c2f6" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_Binaries.AddAsLast(Translate("0101")); // }} "" // {{ 373 1 0 "4c217647_887c_43f8_a400139daeff2d50" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_Binaries.AddAsLast(Translate("0110")); // }} "" // {{ 374 1 0 "22d6ef05_0f01_479d_865cd1bae0ae3b5e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_Binaries.AddAsLast(Translate("0111")); // }} "" // {{ 375 1 0 "369f4e75_ac26_4b9b_868b60e04752101a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_Binaries.AddAsLast(Translate("1000")); // }} "" // {{ 376 1 0 "bddeb271_7aae_49f6_8fe41ff8cde83181" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_Binaries.AddAsLast(Translate("1001")); // }} "" // {{ 377 1 0 "23b9da2b_94aa_442d_9551f136ae39913c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_Binaries.AddAsLast(Translate("1010")); // }} "" // {{ 378 1 0 "b8d0c6c9_c132_4a61_a319938585ed16c8" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_Binaries.AddAsLast(Translate("1011")); // }} "" // {{ 379 1 0 "87be86bf_453c_4a87_ba9c196ad5ea9adf" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_Binaries.AddAsLast(Translate("1100")); // }} "" // {{ 380 1 0 "230fd314_00cb_4cff_8a03c086966a85af" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_Binaries.AddAsLast(Translate("1101")); // }} "" // {{ 381 1 0 "3c5d5631_b6ff_4a27_af7df49984a3a779" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_Binaries.AddAsLast(Translate("1110")); // }} "" // {{ 382 1 0 "0fdaf7ae_3d31_434f_b5873ebec14bd872" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_Binaries.AddAsLast(Translate("1111")); // }} "" // {{ 383 1 0 "580b0b2d_20b9_45ab_ba2ddef53370b0cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 384 1 0 "8d41c261_b028_4976_b9f96344b16310a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 385 1 0 "74884a02_fcf4_48c3_ad9d46d9ac663286" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_BitValue.AddAsLast(Translate("0")); // }} "" // {{ 386 1 0 "bf02a7fd_c7d8_403e_9698de3883841e80" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_BitValue.AddAsLast(Translate("1")); // }} "" // {{ 387 1 0 "dd9f2371_b48d_4940_a1ce6677c1499e6b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_BitValue.AddAsLast(Translate("2")); // }} "" // {{ 388 1 0 "2f60f6d7_9ec1_413f_904ec56b5363ba4d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_BitValue.AddAsLast(Translate("3")); // }} "" // {{ 389 1 0 "000f10fc_bb98_4a87_b17176c354e61a49" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_BitValue.AddAsLast(Translate("4")); // }} "" // {{ 390 1 0 "212ad452_3365_4bec_905f3726bc7cb53f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_BitValue.AddAsLast(Translate("5")); // }} "" // {{ 391 1 0 "55d2f70b_56d8_4c36_a84eddb623be0153" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_BitValue.AddAsLast(Translate("6")); // }} "" // {{ 392 1 0 "238cdcd6_deb6_45dc_a28c116ef423adf5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_BitValue.AddAsLast(Translate("7")); // }} "" // {{ 393 1 0 "7a4bbdb9_7567_4683_b871c1d24762f514" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_BitValue.AddAsLast(Translate("8")); // }} "" // {{ 394 1 0 "9c1a1406_3dfe_4d7d_ad43d8f7e863290c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_BitValue.AddAsLast(Translate("9")); // }} "" // {{ 395 1 0 "7208c04a_0648_4ec2_8f6206579fdef2af" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_BitValue.AddAsLast(Translate("A")); // }} "" // {{ 396 1 0 "6badda7f_0da2_4def_9bc6807d66bda1c3" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_BitValue.AddAsLast(Translate("B")); // }} "" // {{ 397 1 0 "75ad772a_2011_45f2_93725f4e0fe2776f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_BitValue.AddAsLast(Translate("C")); // }} "" // {{ 398 1 0 "96d01fe8_0454_40f6_8d8adfc2dde2cdd8" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_BitValue.AddAsLast(Translate("D")); // }} "" // {{ 399 1 0 "5a83e9c1_3765_47f0_a77e6b40cbe95483" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_BitValue.AddAsLast(Translate("E")); // }} "" // {{ 400 1 0 "014d60d5_e7eb_43a9_a8be0019263ac787" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" array_BitValue.AddAsLast(Translate("F")); // }} "" // {{ 401 1 0 "8d41c261_b028_4976_b9f96344b16310a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 402 1 0 "f7f0015e_646c_4f76_b006c030cbfefe0e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 403 1 0 "6bae3d00_c082_40b1_bac08d43d043fa79" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(STR, Translate(","), arr_SmpPos, 0); // }} "" // {{ 404 1 0 "1108941a_be79_424b_b8fe0e37f8c7eb44" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" num_errorSamples=arr_SmpPos.GetSize(); // }} "" // {{ 405 1 0 "072bee7b_8ad1_42b4_953194dbc42abb68" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" currentBitValue = 32; // }} "" // {{ 406 1 0 "108d3e21_daa8_49ed_83ea624cacbd8591" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" tmpBinChain = Translate(""); // }} "" // {{ 407 1 0 "4f9fb600_f9e0_48e3_ba5855fa3ff67b19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strBitsChain = Translate(""); // }} "" // {{ 408 1 0 "62024241_64d0_426e_b3306066d193c48b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" tmpCounter = 1; // }} "" // {{ 409 1 0 "ca018662_62a8_4ae3_b42029d91712e00a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < 32;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{ 410 1 0 "80900c35_dd1b_4b84_9e1c06aa95d9d5be" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" tmpVal = Translate("1"); // }} "" // {{ 411 1 0 "74939718_884a_46a8_982d62e975117b58" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter4 = 0; loopCounter4 < num_errorSamples;) { loopCounter4 = loopCounter4 + 1; // }} "" // {{ 412 1 0 "16ddd55d_aa99_4fcb_92bb5e468fe1fd33" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" tmpVal=arr_SmpPos.GetAt(loopCounter4-1); // }} "" // {{{ 413 1 0 "a48774f7_0e2b_4de6_abbbef3abee4370b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" tmpVal = StrIVal(tmpVal); // }} "" // {{ 414 1 0 "e24e0370_f0c3_4cc9_aca31ad0a5c777b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (currentBitValue == tmpVal) { // }} "" // {{ 415 1 0 "874d3490_2876_4301_9ce6789b0fda314b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" tmpVal = Translate("0"); // }} "" // {{ 416 1 0 "15681144_ec0e_400c_b51b7d45a3e616b5" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 417 1 0 "e24e0370_f0c3_4cc9_aca31ad0a5c777b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 418 1 0 "131a3c4b_e83f_4a26_8b02c21cb8b534bf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" tmpVal = Translate("1"); // }} "" // {{ 419 1 0 "e24e0370_f0c3_4cc9_aca31ad0a5c777b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 420 1 0 "74939718_884a_46a8_982d62e975117b58" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 421 1 0 "884202e5_d1eb_4a17_a086009ce145fece" "{C1F3C015-47B3-4514-9407-AC2E65043419}" tmpBinChain = StrConcat2(tmpBinChain, tmpVal); // }} "" // {{ 422 1 0 "a650202a_4fd0_4341_8da6edbed3c7384d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" currentBitValue = currentBitValue - 1; // }} "" // {{ 423 1 0 "734f6040_f625_49d4_af06d549e4e2a144" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" tmpCounter = tmpCounter + 1; // }} "" // {{ 424 1 0 "e602fb2e_844d_4f39_9a3885e6c0e09619" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tmpCounter > 4) { // }} "" // {{ 425 1 0 "19fd2961_8e11_4dfe_8f7ea98cf6a431dd" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 426 1 0 "02bea6d2_e1ae_4af7_bacec8368ac527d1" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter5 = 0; loopCounter5 < 16;) { loopCounter5 = loopCounter5 + 1; // }} "" // {{ 427 1 0 "7afec8ca_5b1a_47cf_ba69c22bebef2e48" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" tmpVal=array_Binaries.GetAt(loopCounter5-1); // }} "" // {{ 428 1 0 "7be203e9_f24f_4180_883879f39a85f919" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tmpBinChain == tmpVal) { // }} "" // {{ 429 1 0 "03d29074_457d_4f7a_b01b1fede017683c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 430 1 0 "2cece292_72cc_4e7e_8a75a043808392f0" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" tmpVal=array_BitValue.GetAt(loopCounter5-1); // }} "" // {{{ 431 1 0 "a0fe523d_050c_49f5_ac208fb84f4766da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strBitsChain = StrConcat2(strBitsChain, tmpVal); // }} "" // {{ 432 1 0 "d81c41f6_c379_4179_838d7d872f9c3dea" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 433 1 0 "7be203e9_f24f_4180_883879f39a85f919" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 434 1 0 "02bea6d2_e1ae_4af7_bacec8368ac527d1" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 435 1 0 "585fff70_2f9e_411b_9c6e182829edda15" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 436 1 0 "04db34c8_2e88_40c2_b6ae573d3377edfe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" tmpCounter = 1; // }} "" // {{ 437 1 0 "1486f3e5_6e9c_4ab2_9ab6844627c3eac5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" tmpBinChain = Translate(""); // }} "" // {{ 438 1 0 "e602fb2e_844d_4f39_9a3885e6c0e09619" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 439 1 0 "ca018662_62a8_4ae3_b42029d91712e00a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 440 1 0 "b026e5a8_55b7_4558_acfbee949aa7afa9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" notPresentError_FW = StrConcat2(Translate("ci"), strBitsChain); // }} "" // {{{ 441 1 0 "3193087f_dfbe_4eae_99ea1c5a2992b4e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Generated Bit Error String "), notPresentError_FW); // }} "" // {{ 442 1 0 "82aec9cc_b22c_4d2f_b614e247494bf78b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 443 1 0 "cddc9ed9_11d2_4156_b3087f154ed6c722" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 444 1 0 "fb4b9780_fd88_4502_94b59455fbfc0b43" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" STR = notReadPositions_Str; // }} "" // {{{ 445 1 0 "cdd53e75_13f6_4592_818d7c79a0e96723" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(STR, Translate(","), arr_SmpPos2, 0); // }} "" // {{ 446 1 0 "f7c20ccd_21ea_4e0f_8253a771de36e1b1" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" num_errorSamples2=arr_SmpPos2.GetSize(); // }} "" // {{ 447 1 0 "0e2cbe1e_d2e6_4eaf_9a2ec4d62629e63e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strBitsChain = Translate(""); // }} "" // {{ 448 1 0 "61578dee_4a9a_4862_9a22483f55060dfd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" tmpBinChain = Translate(""); // }} "" // {{ 449 1 0 "8e6f1e16_e340_44ed_b57626e23fe43879" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < 32;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{ 450 1 0 "1b807a14_f2ea_4b33_a4010391c0a0f70d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" noBC = 0; // }} "" // {{ 451 1 0 "498d8abe_98de_41e5_bfc3f158ad8c7aa9" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 452 1 0 "ff6e652e_ceaa_4050_96cc3c1d87099ff8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter4 = 0; loopCounter4 < num_errorSamples;) { loopCounter4 = loopCounter4 + 1; // }} "" // {{ 453 1 0 "93e88927_05bc_4285_a366348bfd56ca77" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" tmpVal=arr_SmpPos.GetAt(loopCounter4-1); // }} "" // {{{ 454 1 0 "6ae58d37_c618_4ec1_a2b1eeeceab20f89" "{C1F3C015-47B3-4514-9407-AC2E65043419}" tmpVal = StrIVal(tmpVal); // }} "" // {{ 455 1 0 "4486987b_4d40_4019_af33bc60c16958c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter3 == tmpVal) { // }} "" // {{ 456 1 0 "1dfc6951_310b_433a_84e069d8aee771ca" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" noBC = 1; // }} "" // {{ 457 1 0 "998fd2e8_97d7_483d_bff5bd89211ef16a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" tmpVal = Translate("/00"); // }} "" // {{ 458 1 0 "3bdeca88_db9c_4c7b_b4dd8f87bb2c1d8c" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 459 1 0 "4486987b_4d40_4019_af33bc60c16958c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 460 1 0 "ff6e652e_ceaa_4050_96cc3c1d87099ff8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 461 1 0 "3bc47d4e_19ef_46ec_b89f484538fcd6eb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (noBC == 0) { // }} "" // {{ 462 1 0 "ae9b3147_082f_4c7c_b5303d3d3bc0eccb" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter4 = 0; loopCounter4 < num_errorSamples2;) { loopCounter4 = loopCounter4 + 1; // }} "" // {{ 463 1 0 "bda8cba4_2ae3_4b2e_b94fe48f1d923df6" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" tmpVal=arr_SmpPos2.GetAt(loopCounter4-1); // }} "" // {{{ 464 1 0 "e6c65645_6445_43fe_9f0c3113ee1711b2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" tmpVal = StrIVal(tmpVal); // }} "" // {{ 465 1 0 "0560db43_c75f_4293_9413e6fd90a00e78" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter3 == tmpVal) { // }} "" // {{ 466 1 0 "1f11e203_d6f8_4305_973aaa839a3fdff0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" noBC = 1; // }} "" // {{ 467 1 0 "f106e46b_9d78_460d_9937b2f6366710db" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" tmpVal = Translate("/00"); // }} "" // {{ 468 1 0 "3c01380a_d83e_43c2_9fd0aa8de11b78d1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 469 1 0 "0560db43_c75f_4293_9413e6fd90a00e78" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 470 1 0 "ae9b3147_082f_4c7c_b5303d3d3bc0eccb" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 471 1 0 "3bc47d4e_19ef_46ec_b89f484538fcd6eb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 472 1 0 "d3965e5c_456b_4433_8cb14c9fbf454914" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (noBC == 0) { // }} "" // {{ 473 1 0 "e60beb65_2b1c_48ce_9d857c285fb97580" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 474 1 0 "225a8f77_f090_45bc_8d9b65ee23b0b1c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter3 < 10) { // }} "" // {{{ 475 1 0 "6b44c91e_064c_402d_b9bb3b9faf1d0ed8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" tmpVal = StrConcat2(Translate("0"), loopCounter3); // }} "" // {{ 476 1 0 "225a8f77_f090_45bc_8d9b65ee23b0b1c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 477 1 0 "8ea8991f_4989_4685_bc77136b4f929f1d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" tmpVal = loopCounter3; // }} "" // {{ 478 1 0 "225a8f77_f090_45bc_8d9b65ee23b0b1c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 479 1 0 "eb843c66_41d7_4072_ad1cca19916c1634" "{C1F3C015-47B3-4514-9407-AC2E65043419}" tmpVal = StrConcat2(Translate("/09Barcode"), tmpVal); // }} "" // {{ 480 1 0 "e60beb65_2b1c_48ce_9d857c285fb97580" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 481 1 0 "d3965e5c_456b_4433_8cb14c9fbf454914" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 482 1 0 "0194bd60_a15c_4fe3_859cd01c87a6fa31" "{C1F3C015-47B3-4514-9407-AC2E65043419}" tmpBinChain = StrConcat2(tmpBinChain, tmpVal); // }} "" // {{ 483 1 0 "8e6f1e16_e340_44ed_b57626e23fe43879" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 484 1 0 "deb196f9_e4e1_442c_af438d58ffcbf57d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" notReadBarcodeError_FW = StrConcat2(Translate("bb"), tmpBinChain); // }} "" // {{{ 485 1 0 "a6889cf1_5d80_4991_90e2ff3a0baa08ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Generated BC Error String "), notReadBarcodeError_FW); // }} "" // {{ 486 1 0 "cddc9ed9_11d2_4156_b3087f154ed6c722" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 487 1 0 "41693611_8972_48c0_99f8c320c65e5901" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrStr_NewValue = StrConcat8(Translate("er00/00 "), notPresentError_FW, Translate(" "), notReadBarcodeError_FW, Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{{ 488 1 0 "e617037c_7830_402d_ac0968e81fa014cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" STAR_type = HSLML_STAR::GetInstrumentType_GlobalDevice(ML_STAR); // }} "" // {{{ 489 1 0 "d3f5a986_9511_4860_bdcb2e723d3d873a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MlStarSimCfg::updateKeyValueForOneUse(Translate("C0CL"), ErrStr_NewValue, STAR_type); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 490 1 0 "3016108a_b27a_45e8_846fd44cd2c3c9ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("C0CL "), ErrStr_NewValue); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 5 "STEP2g_SimulateError_Autoload" "End" } // }} "" // {{{ 5 "STEP2h_SimulateError_CRWashstation" "Begin" function STEP2h_SimulateError_CRWashstation( variable errorToSimulate, device & ML_STAR ) void { // }} "" private variable STAR_type; // {{ 5 "STEP2h_SimulateError_CRWashstation" "InitLocals" // }} "" // {{{ 492 1 0 "0f692bd7_307f_4c85_958eadb53e14ef75" "{C1F3C015-47B3-4514-9407-AC2E65043419}" STAR_type = HSLML_STAR::GetInstrumentType_GlobalDevice(ML_STAR); // }} "" // {{ 493 1 0 "f3f54b3f_f6f2_448f_aba4367a16803910" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (errorToSimulate == 1) { // }} "" // {{{ 494 1 0 "6c1f3dac_32a0_4498_ab24bfaf2905be50" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MlStarSimCfg::updateKeyValueForOneUse(Translate("C0WS"), Translate("er99/00 W118/00"), STAR_type); // }} "" // {{ 495 1 0 "f3f54b3f_f6f2_448f_aba4367a16803910" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 496 1 0 "2f1602b5_6f0a_410f_8c3ea8452d37818a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (errorToSimulate == 1) { // }} "" // {{{ 497 1 0 "7f377a16_f6ca_4794_be8a0971f6d6381d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MlStarSimCfg::updateKeyValueForOneUse(Translate("C0WS"), Translate("er99/00 W102/00"), STAR_type); // }} "" // {{ 498 1 0 "2f1602b5_6f0a_410f_8c3ea8452d37818a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "STEP2h_SimulateError_CRWashstation" "End" } // }} "" // {{{ 5 "STEP3_Restore_BackupCfgFile" "Begin" function STEP3_Restore_BackupCfgFile( device & ML_STAR ) void { // }} "" private variable logPath; private variable libPath; private variable cfgPath; private variable backupExists; private variable binPath; private variable cfgFileBak; private variable cfgFile; private variable mlStarCfg; private variable STAR_type; private variable mlStarCfgBak; // {{ 5 "STEP3_Restore_BackupCfgFile" "InitLocals" // }} "" // {{ 500 1 0 "c0948c4f_8ecc_4efc_b7b2e4b0618bb0e6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 501 1 0 "76140cba_0772_4461_9d3e2653efbeec85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" binPath = FilGetBinPath(); // }} "" // {{{ 502 1 0 "33d5046c_1ed9_45ef_9c439b2839c7e33d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" cfgPath = FilGetConfigPath(); // }} "" // {{{ 503 1 0 "eb568466_bb2b_4c01_9b848a3ddb90d10a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" logPath = FilGetLogFilesPath(); // }} "" // {{{ 504 1 0 "7aae5932_54e4_4b32_b79a5ffd6f49f600" "{C1F3C015-47B3-4514-9407-AC2E65043419}" libPath = FilGetLibraryPath(); // }} "" // {{ 505 1 0 "c0948c4f_8ecc_4efc_b7b2e4b0618bb0e6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 506 1 0 "2150e872_cd28_47a9_af62abda01b403db" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 507 1 0 "7e76c44c_a4e0_43ff_b11b5af597d963cc" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 508 1 0 "77e19401_6c64_4a1c_8b55f86e0f03075f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" STAR_type = HSLML_STAR::GetInstrumentType_GlobalDevice(ML_STAR); // }} "" // {{ 509 1 0 "3d1f5985_e2ba_4fb2_ad87655a05c334bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (STAR_type == 0) { // }} "" // {{ 510 1 0 "68815b06_e61a_4b7f_9809d544a9fa6886" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" mlStarCfg = Translate("\ML_STAR_Simulator.cfg"); // }} "" // {{ 511 1 0 "34055e96_06a3_486c_a50ca84efb00fe3d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" mlStarCfgBak = Translate("\ML_STAR_Simulator.cfg.bak"); // }} "" // {{ 512 1 0 "3d1f5985_e2ba_4fb2_ad87655a05c334bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 513 1 0 "929aa074_bced_48bd_8419c48da8ef79d0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (STAR_type == 1) { // }} "" // {{ 514 1 0 "c32211b3_4e4b_4952_bc79ace2cfe9645b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" mlStarCfg = Translate("\ML_Starlet_Simulator.cfg"); // }} "" // {{ 515 1 0 "e8386217_0998_4436_9ea3d53c72a0e954" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" mlStarCfgBak = Translate("\ML_Starlet_Simulator.cfg.bak"); // }} "" // {{ 516 1 0 "929aa074_bced_48bd_8419c48da8ef79d0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 517 1 0 "e772981f_c811_4ad2_88a69c6f576d9b35" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (STAR_type == 2) { // }} "" // {{ 518 1 0 "aaa6ac5f_bacd_4776_a4b2092c3f36626d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" mlStarCfg = Translate("\ML_FlexStar_Simulator.cfg"); // }} "" // {{ 519 1 0 "9e888e01_382d_4da1_ac1768527b68b046" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" mlStarCfgBak = Translate("\ML_FlexStar_Simulator.cfg.bak"); // }} "" // {{ 520 1 0 "e772981f_c811_4ad2_88a69c6f576d9b35" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 521 1 0 "06f2413e_fb9f_4b70_a3e91fc985873148" "{C1F3C015-47B3-4514-9407-AC2E65043419}" cfgFile = StrConcat2(cfgPath, mlStarCfg); // }} "" // {{{ 522 1 0 "523b040e_ea9c_46c7_b2661d9d6612fee7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" cfgFileBak = StrConcat2(cfgPath, mlStarCfgBak); // }} "" // {{{ 523 1 0 "711ed928_0dd8_4fde_bd90a58e4a4ecef1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" backupExists = FilSearchPath(cfgFileBak); // }} "" // {{ 524 1 0 "e203c585_716d_41f6_85148345acc4ced1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (backupExists != "") { // }} "" // {{ 525 1 0 "1e61f34a_2881_4065_abb256dbc8c20b3f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 526 1 0 "8acbeb6b_b653_41e5_880cef5809b00d98" "{C1F3C015-47B3-4514-9407-AC2E65043419}" FilCopyFileEx(cfgFileBak, cfgFile); // }} "" // {{ 527 1 0 "e203c585_716d_41f6_85148345acc4ced1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 528 1 0 "2150e872_cd28_47a9_af62abda01b403db" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "STEP3_Restore_BackupCfgFile" "End" } // }} "" // {{{ 5 "AA_Abstract" "Begin" function AA_Abstract( ) void { // }} "" // {{ 5 "AA_Abstract" "InitLocals" // }} "" // {{ 1 1 0 "6b0c8e80_6050_44d3_a56d7390cedecf65" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 5 "AA_Abstract" "End" } // }} "" // {{{ 5 "StrTokenize" "Begin" private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 542 1 0 "a9b4e529_fa40_45c4_b9bff3ed696f40d0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 543 1 0 "dc1453e6_f480_4eda_925c71db9d6640c6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 544 1 0 "96f340a1_356f_4689_b4f71ce07aafd716" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 545 1 0 "dcd9c3c5_8f11_4f6f_9d2d89a1e757d8bc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); // Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); // Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); // Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=Cuevas_A$$valid=0$$time=2012-07-16 15:01$$checksum=897229d5$$length=087$$ ================================================ FILE: pyhamilton/library/ErrorSimulator/HSLFilLibEx.hsl ================================================ // This is an extension of the HSL File Library Extension. // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // All rights reserved. // // Modification History // 2002-11-27 bandenmatten : Initial file creation. // 2003-05-06 bandenmatten : Added function FilFormatReportFile(). #ifndef __HSLFilLibEx_hsl__ #define __HSLFilLibEx_hsl__ 1 // Interface to the File Library Extension #ifndef HSL_RUNTIME // Deletes a specified file. function FilDeleteFileEx( variable& filePathName) void // i: The name of the file to delete. The filespec can contain wildcard characters in the last path component. {} // Copies one or more files from one location to another. function FilCopyFileEx( variable& sourceFilePathName, // i: Character string file specification, which can include wildcard characters, for one or more files to be copied. variable& destinationFilePathName) void // i: Character string destination where the file or files from source are to be copied. Wildcard characters are not allowed. {} // Formats a specified report file. function FilFormatReportFileEx( variable& sourceFilePathName, // i: Character string file specification. Wildcard characters are not allowed. variable& destinationFilePathName) variable // i: Character string destination where the file from source is to be formated. Wildcard characters are not allowed. {return(0);} #endif // Implementation of the File Library Extension #ifdef HSL_RUNTIME function FilDeleteFileEx(variable& filePathName) void { object fso; fso.CreateObject("Scripting.FileSystemObject"); fso.DeleteFile(filePathName); fso.ReleaseObject(); } function FilCopyFileEx( variable& sourceFilePathName, variable& destinationFilePathName) void { object fso; fso.CreateObject("Scripting.FileSystemObject"); fso.CopyFile(sourceFilePathName, destinationFilePathName); fso.ReleaseObject(); } namespace IOMode { const variable forReading(1); const variable forWriting(2); const variable forAppending(8); } function FilFormatReportFileEx( variable& sourceFilePathName, variable& destinationFilePathName) variable { variable write(hslFalse); string line; object fso; object src; object dst; onerror goto Unexpected; fso.CreateObject("Scripting.FileSystemObject"); src = fso.OpenTextFile(sourceFilePathName, IOMode::forReading); dst = fso.OpenTextFile(destinationFilePathName, IOMode::forWriting, hslTrue); for (line = src.ReadLine(); !src.AtEndOfStream; line = src.ReadLine()) { if (!write) if (line.Find("Element Name;") == 0) write = hslTrue; if (write) dst.WriteLine(line); } src.Close(); dst.Close(); return(hslTrue); Unexpected: { if (!src.IsNull()) src.Close(); if (!dst.IsNull()) dst.Close(); return(hslFalse); } } #endif #endif // $$author=bandenmatten$$valid=0$$time=2003-05-06 11:21$$checksum=2131b3b2$$length=089$$ ================================================ FILE: pyhamilton/library/ErrorSimulator/MlStarSimCfg.hsl ================================================ #pragma once namespace MlStarSimCfg { static const variable dataDefName ("Simulator"); static const variable instanceName ("default"); static const variable keyNameUpdateKey ("updateKeyValue"); static const variable keyNameUpdateValue("updateParamValue"); // Update one key value pair in the simulator config file // The previous value for the keyName is readed out and stored // under the keys in the config file which are updated for the second use. // variable instrumentType: // 0= ML STAR // 1= ML STARlet // 2= ML STARplus function updateKeyValueForOneUse( variable keyName, variable newValue, variable instrumentType) variable { variable oldValue(""); variable simulatorConfigFile(""); variable cfgStatus(-1); variable dateDefVerNum(-1); variable mlStarCfg; object simCfg; if(instrumentType==0){mlStarCfg="\\ML_STAR_Simulator.cfg";} if(instrumentType==1){mlStarCfg="\\ML_Starlet_Simulator.cfg";} if(instrumentType==2){mlStarCfg="\\ML_FlexStar_Simulator.cfg";} simulatorConfigFile = GetConfigPath() + mlStarCfg; simCfg.CreateObject("HXCFGFILLib.HxCfgFile"); // Load the simulator config cfgStatus = simCfg.LoadFile(simulatorConfigFile); // Get the data def version number dateDefVerNum = simCfg.GetDataDefVerNum(dataDefName, instanceName); // Read the previous stored value under the keyName oldValue = simCfg.GetDataDefValueAsString(dataDefName, instanceName, keyName); // Set the new value for the keyName simCfg.PutStringValueInDataDef(dataDefName, dateDefVerNum, instanceName, keyName, newValue); // Set the keyValue and ParamValue which shall be used for the second use simCfg.PutStringValueInDataDef(dataDefName, dateDefVerNum, instanceName, keyNameUpdateKey, keyName); simCfg.PutStringValueInDataDef(dataDefName, dateDefVerNum, instanceName, keyNameUpdateValue, oldValue); // Store the file simCfg.StoreFile(simulatorConfigFile, cfgStatus); return( oldValue ); } } // $$author=Cuevas_A$$valid=0$$time=2012-07-10 18:09$$checksum=7a8c5e22$$length=085$$ ================================================ FILE: pyhamilton/library/ErrorSimulator/StrTokenize.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 03.10.2008 08:27:45 #pragma once #ifndef HSL_RUNTIME namespace STRTOKENIZE { function _InitLibrary() { } function _ExitLibrary() { } function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=marsll_hamilton$$valid=0$$time=2008-10-03 08:27$$checksum=c3c24163$$length=092$$ ================================================ FILE: pyhamilton/library/ErrorSimulator/StrTokenize.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "HSLStrLib.hsl" #include "HSLTrcLib.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace STRTOKENIZE { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" // }} "" } // {{{ 5 "StrTokenize" "Begin" function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable posCurrent; private variable posLast; private variable strToAdd; private variable strEdit; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 1 1 0 "40f83796_e0a6_45fb_bdfac23e9e04e799" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 2 1 0 "cb9a86a9_eff5_461d_b6d8c3a95ff3bde6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 3 1 0 "42d6b1c8_9878_46e2_bdf0b5cb0397c20b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 4 1 0 "34ebdf61_3010_4c32_8dd0622ea91b0234" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=marsll_hamilton$$valid=0$$time=2008-10-03 08:27$$checksum=5a6eb8d1$$length=094$$ ================================================ FILE: pyhamilton/library/HSLAppsLib/HSLAppsLib.hsl ================================================ //*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\ //*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\ //*\\ This library is a summary of the popular steps in many of the common libraries //*\\ Compiled by Scott Walton & Josh Brewer, Hamilton Company //*\\ Version 1.1 , Jan 2013 //*\\ //*\\ Version1.1 - Jan 29th, 2013, - 1. enabled use of integers for site IDs, //*\\ 2. moved the strConvertToString and strConvertToString //*\\ to beginning of list to use these functions in other //*\\ functions //*\\ 3. Added the CopySeq function //*\\ 4. Added the AlphaNumConversion function //*\\ //*\\ //*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\ //*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\ #ifndef __HSLAppsLib_hsl__ #define __HSLAppsLib_hsl__ 1 //For the DeckVisualize step include: #ifndef __HSLDeckVisualize_hsl__ #include "HSLDeckVisualize.hsl" #endif namespace APPSLIB { //For the GetLabwareBarcode step include: #ifndef __HSLLabwareStateLib_hsl__ #include "HSLLabwareStateLibImpl.hs_" #endif ////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////// //LIBRARY FUNCTIONS // Function converts an integer or a float to to the corresponding string function StrConvertToString(variable& floatOrInteger) string {private variable varType; private string returnValue; varType = GetType(floatOrInteger); if (varType == "f") returnValue = FStr(floatOrInteger); else if (varType == "i") returnValue = IStr(floatOrInteger); else Trace("The variable ", floatOrInteger, " was not converted. It is not a float or integer."); return(returnValue); } // Function converts a string into the float or integer value, depending on whether a "." is found function StrConvertToNumber(string& stringVariable) variable {private variable returnValue, varType, isFound; varType = GetType(stringVariable); if (varType == "s") {isFound = stringVariable.Find("."); if (isFound == -1) // stringVariable should be an integer returnValue = IVal(stringVariable); else // stringVariable should be a float returnValue = FVal(stringVariable); } else {Trace("The variable ", stringVariable, " cannot be converted. It is not a string."); returnValue = stringVariable; } return(returnValue); } // Function returns a string channel pattern - e.g. if tipUsed is 3, return "00100000", number of channels returned from dev library function ChannelPatternSingleTip(device& deviceObj, variable& tipUsed) variable {private string str_channelPattern; private variable loopNumber(1), numberOfChannels; numberOfChannels = deviceObj.GetCfgValueWithKey(1); if (GetType(tipUsed) == "s") tipUsed = IVal(tipUsed); loop (numberOfChannels) {if (tipUsed == loopNumber) str_channelPattern = str_channelPattern + "1"; else str_channelPattern = str_channelPattern + "0"; loopNumber++; } Trace("Channel Pattern - Tip Used: ", tipUsed, ", number of channels: ", numberOfChannels, ", pattern returned: ", str_channelPattern); return(str_channelPattern); } // Function returns a string channel pattern - e.g. if tipsUsed is 3, return "11100000", number of channels reuturned from dev library function ChannelPatternMultipleTip(device& deviceObj, variable& tipsUsed) variable {private string str_channelPattern; private variable loopNumber(1), numberOfChannels; numberOfChannels = deviceObj.GetCfgValueWithKey(1); if (GetType(tipsUsed) == "s") tipsUsed = IVal(tipsUsed); loop (numberOfChannels) {if (loopNumber <= tipsUsed) str_channelPattern = str_channelPattern + "1"; else str_channelPattern = str_channelPattern + "0"; loopNumber++; } Trace("Channel Pattern - Tips Used: ", tipsUsed, ", number of channels: ", numberOfChannels, ", pattern returned: ", str_channelPattern); return(str_channelPattern); } // Function updates the loaded labware on the deck function UpdateLoadedLabware(device& deviceObj, variable labwareIDs[], variable labwareStates[]) void {private variable description(""); DeckVisualize::UpdateLoadedLabware(deviceObj, labwareIDs, labwareStates, description); } // Function Adds Labware to the deck based upon defined coordinates function DevAddLabware(device& deviceObj, variable& labwareId, variable& configFile, variable xCoord, variable yCoord, variable zCoord, variable angle) variable {private variable returnValue(0); private variable position[](4); position[0] = xCoord; position[1] = yCoord; position[2] = zCoord; position[3] = angle; returnValue = deviceObj.AddLabware(labwareId, configFile, position); return(returnValue); } // Function adds labware to a specific site on a template function DevAddLabwareToTemplate(device& deviceObj, variable& labwareId, variable& configFile, variable& templateId, variable& siteId) variable {private variable returnValue(0); private string str_siteId; if (GetType(siteId) != "s") str_siteId = APPSLIB::StrConvertToString(siteId); else str_siteId = siteId; returnValue = deviceObj.AddLabwareToTemplate(labwareId, configFile, templateId, str_siteId); return(returnValue); } // Function removes labware from the deck function DevRemoveLabware(device& deviceObj, variable& labwareId) variable {private variable returnValue(0); returnValue = deviceObj.RemoveLabware(labwareId); return(returnValue); } // Function Gets the position of labware, position defined by the deck coordinates function DevGetLabwarePosition(device& deviceObj, variable& labwareId, variable& xCoord, variable& yCoord, variable& zCoord, variable& angle) variable {private variable returnValue(0); private variable position[]; returnValue = deviceObj.GetLabwarePosition(labwareId, position); xCoord = position[0]; yCoord = position[1]; zCoord = position[2]; angle = position[3]; return(returnValue); } // Function Gets the position of labware's position ID, position defined by the deck coordinates function DevGetLabwarePositionEx(device& deviceObj, variable& labwareId, variable& positionId, variable& xCoord, variable& yCoord, variable& zCoord, variable& angle)variable {private variable returnValue(0), str_pos; private variable position[]; if (GetType(positionId) != "s") {if (GetType(positionId) == "f") str_pos = FStr(positionId); else str_pos = IStr(positionId); } else str_pos = positionId; returnValue = deviceObj.GetLabwarePosition(labwareId, position, str_pos); xCoord = position[0]; yCoord = position[1]; zCoord = position[2]; angle = position[3]; return(returnValue); } // Function gets a barcode that has been set by a scanner or SetLabwareBarcode smart step (data handling step) // Returns the labware barcode at the current position of a sequence, uses HSLLabwareStateLibImpl.hs_ included function GetLabwareBarcode(device& deviceObj, sequence& Sequence, variable& labwareLevel) variable {private variable barcode; barcode = HSLLabwState::GetLabwareBarcode(deviceObj, Sequence, labwareLevel); return (barcode); } // Function rounds the float to the specified number of of digits passed the decimal place. Zero returns integers function MathRound(variable& number, variable& numberOfDecimalPlaces) variable {private variable integerPortion(0.0); private variable fractionalPortion(0.0); private variable returnValue(0.0); integerPortion = Floor(number, hslTrue); fractionalPortion = number - integerPortion; returnValue = integerPortion + Floor((10.0^numberOfDecimalPlaces) * fractionalPortion + 0.5) / (10.0^numberOfDecimalPlaces); if (0 == numberOfDecimalPlaces) return(Floor(returnValue)); else return(returnValue); } // Function adds a new position to the end of the given sequence function SequenceAdd(sequence& sequenceObj, variable& labwareId, variable& positionId) void {sequenceObj.Add(labwareId, positionId); } // Function brings a visual dialogs to graphically edit a sequence function SequenceEdit(sequence& seqObject,device deviceObj,variable title,variable prompt,variable timeout,variable initFromConfig, variable first, variable last, variable editable, variable cfgFile) void {seqObject.Edit(deviceObj, title, prompt, timeout, initFromConfig, first, last, editable, cfgFile); } // Function gets the labware ID of the current position of the sequence function SequenceGetLabwareId(sequence& seqObject) variable {private variable returnValue; returnValue = seqObject.GetLabwareId(); return(returnValue); } // Function gets the position ID of the current position of the sequence function SequenceGetPositionId(sequence& seqObject) variable {private variable returnValue; returnValue = seqObject.GetPositionId(); return(returnValue); } // Function copies a plate pattern function CopyPlatePatternToPlate (sequence sourcePlate, sequence& targetPlate) void {private variable labwareId, position, total, loopNum; sourcePlate.SetCurrentPosition(1); targetPlate.SetCurrentPosition(1); labwareId = targetPlate.GetLabwareId(); //Remove All positions from the targetPlate sequence total = targetPlate.GetTotal(); targetPlate.SetCount(total); targetPlate.SetCurrentPosition(1); for (position = total; 0 < position; position--) targetPlate.RemoveAt(position); targetPlate.SetCount(0); targetPlate.SetCurrentPosition(0); targetPlate.SetMax(0); // loop over the source sequence and copy the positions to the target plate sequence for (loopNum=1 ; loopNum <= sourcePlate.GetTotal() ; loopNum++) {targetPlate.Add(labwareId, targetPlate.GetPositionId()); sourcePlate.Increment(1); } targetPlate.SetCurrentPosition(1); } // Function gets the total positions in the sequence function SequenceGetTotal(sequence& seqObject) variable {private variable returnValue; returnValue = seqObject.GetTotal(); return(returnValue); } // Function gets the number of positions in the sequence, if an end position is set // that is before the last position, then this number will be less the the GetTotal number of positions function SequenceGetCount(sequence& seqObject) variable {private variable returnValue; returnValue = seqObject.GetCount(); return(returnValue); } // Function gets the remaining positions left in the sequence function SequenceTotalPosRemaining(sequence& seqObject) variable {private variable returnValue; if ((seqObject.GetCount() == 0) && (seqObject.GetCurrentPosition() == 0)) // no positions in the sequence returnValue = 0; else returnValue = (seqObject.GetCount() - seqObject.GetCurrentPosition()) + 1; return(returnValue); } // Function increments a sequence by the amount requested function SequenceIncrement(sequence& seqObject, variable increment) void {seqObject.Increment(increment); } // Function removes all positions from a sequence, after re-adding positions to the sequence sequence must be set to 1 again or error occrus function SequenceRemoveAll(sequence& seqObject) void {private variable position, total; total = seqObject.GetTotal(); seqObject.SetCount(total); seqObject.SetCurrentPosition(1); for (position = total; 0 < position; position--) seqObject.RemoveAt(position); seqObject.SetCount(0); seqObject.SetCurrentPosition(0); seqObject.SetMax(0); } // Function removes a sequence position at the requested position function SequenceRemoveAt(sequence& seqObject, position) void {variable int; if (GetType(position) == "f") {int = APPSLIB::MathRound(position, 0); seqObject.RemoveAt(int); } else if (GetType(position) == "s") seqObject.RemoveAt(IVal(position)); else seqObject.RemoveAt(position); } // Function overwrites a target sequence with the contents of the source sequence function SequenceCopySeq(sequence& targetSequence, sequence& sourceSequence) void { targetSequence.CopySequence(sourceSequence); } // Function concatenates the strings and returns the caoncatenated string, if non-string values are given, then convert them into strings function StrConcatenate(variable var1, variable var2, variable var3, variable var4, variable var5, variable var6, variable var7, variable var8) variable {private variable loopNum, varType, varPos; private string returnValue, str_var; private variable varArray[](8); varArray[0] = var1; varArray[1] = var2; varArray[2] = var3; varArray[3] = var4; varArray[4] = var5; varArray[5] = var6; varArray[6] = var7; varArray[7] = var8; for (loopNum=0; loopNum < varArray.GetSize(); loopNum++) {varType = GetType(varArray[loopNum]); varPos = varArray[loopNum]; if (varType == "f") {str_var = FStr(varPos); returnValue = returnValue + str_var; } else if (varType == "i") {str_var = IStr(varPos); returnValue = returnValue + str_var; } else if (varType == "s") returnValue = returnValue + varPos; } return(returnValue); } // Function Finds a substring within a string, returnValue is 1 based function StringFind(variable& strObject, variable& subStrToFind) variable {private variable returnValue; private string str_strObject, str_subStrToFind; if (GetType(strObject) !="s") str_strObject = APPSLIB::StrConvertToString(strObject); else str_strObject = strObject; if (GetType(subStrToFind) !="s") str_subStrToFind = APPSLIB::StrConvertToString(subStrToFind); else str_subStrToFind = subStrToFind; returnValue = str_strObject.Find(str_subStrToFind); returnValue++; return(returnValue); } // Function returns a number leftmost characters of a string function StringLeft(variable& strObject, variable& numberOfChar) variable {private variable returnValue; private string str_strObject; if (GetType(strObject) != "s") str_strObject = APPSLIB::StrConvertToString(strObject); else str_strObject = strObject; if (GetType(numberOfChar) == "s") {numberOfChar = APPSLIB::StrConvertToNumber(numberOfChar); if (GetType(numberOfChar) == "f") numberOfChar = APPSLIB::MathRound(numberOfChar, 0); } returnValue = str_strObject.Left(numberOfChar); return(returnValue); } // Function returns a number of rightmost characters of a string function StringRight(variable& strObject, variable& numberOfChar) variable {private variable returnValue; private string str_strObject; if (GetType(strObject) != "s") str_strObject = APPSLIB::StrConvertToString(strObject); else str_strObject = strObject; if (GetType(numberOfChar) == "s") {numberOfChar = APPSLIB::StrConvertToNumber(numberOfChar); if (GetType(numberOfChar) == "f") numberOfChar = APPSLIB::MathRound(numberOfChar, 0); } returnValue = str_strObject.Right(numberOfChar); return(returnValue); } // Function returns the length of a string function StringGetLength(variable& strObject) variable {private variable returnValue; private string str_strObject; if (GetType(strObject) != "s") str_strObject = APPSLIB::StrConvertToString(strObject); else str_strObject = strObject; returnValue = str_strObject.GetLength(); return(returnValue); } // Function returns a string within a given string, position should be 1 based function StringMid(variable& strObject,variable& startPosition, variable& numberOfChar) variable {private variable returnValue; private string str_strObject; if (GetType(strObject) != "s") str_strObject = APPSLIB::StrConvertToString(strObject); else str_strObject = strObject; if (GetType(startPosition) == "s") {startPosition = APPSLIB::StrConvertToNumber(startPosition); if (GetType(startPosition) == "f") startPosition = APPSLIB::MathRound(startPosition, 0); } if (GetType(numberOfChar) == "s") {numberOfChar = APPSLIB::StrConvertToNumber(numberOfChar); if (GetType(numberOfChar) == "f") numberOfChar = APPSLIB::MathRound(numberOfChar, 0); } startPosition--; returnValue = str_strObject.Mid(startPosition, numberOfChar); return(returnValue); } // Function Looks up a value within an array (position is 1 based), returns hslTrue if found - else hslFalse function ArrayLookup(variable& arrayToSearch[], variable& valueSearchedFor, variable& positionInArray) variable {private variable returnValue(hslFalse), loopNum, value; for(loopNum=0 ; loopNum < arrayToSearch.GetSize() ; loopNum++) {value = arrayToSearch[loopNum]; if (value == valueSearchedFor) //Value was found {positionInArray = loopNum + 1; // value returned is 1 based returnValue = hslTrue; break; } } return(returnValue); } // Function will shift the labware of the current position in the sequence function MoveSequence(device& deviceObj, sequence& Sequence, variable& xDelta, variable yDelta, variable zDelta) void {private variable labID; object editLabware; object deckLayout; object labware; labID = Sequence.GetLabwareId(); deckLayout = deviceObj.GetDeckLayoutObject(); // Get a HxLabwr3 object type decklayout if(!deckLayout.IsNull()) {labware = deckLayout.Labware(labID); if(!labware.IsNull()) {labware.GetObject2("{39A3639F-97AB-444D-86D3-253122BD2202}", editLabware); // get IEditLabware5 editLabware.MoveDelta(xDelta, yDelta, zDelta); } else Trace("Warning, labware is null"); } else Trace("Warning Deck Layout is null"); } // Function will shift the labware based upon the LabwareID function MoveLabware(device& deviceObj, variable& labwareId, variable& xDelta, variable yDelta, variable zDelta) void {private variable labID; object editLabware; object deckLayout; object labware; deckLayout = deviceObj.GetDeckLayoutObject(); // Get a HxLabwr3 object type decklayout if(!deckLayout.IsNull()) {labware = deckLayout.Labware(labwareId); if(!labware.IsNull()) {labware.GetObject2("{39A3639F-97AB-444D-86D3-253122BD2202}", editLabware); // get IEditLabware5 editLabware.MoveDelta(xDelta, yDelta, zDelta); } else Trace("Warning, labware is null"); } else Trace("Warning Deck Layout is null"); } // Function will send values to the trace file function TraceValues(variable value1, variable value2, variable value3, variable value4, variable value5, variable value6, variable value7, variable value8) void {Trace(value1, value2, value3, value4, value5, value6, value7, value8); } // Function will send a sequence to the trace file function TraceSequence(sequence& seqObject) void {private variable loopNum, currentPosition; currentPosition = seqObject.GetCurrentPosition(); Trace("Trace sequence ", seqObject.GetName(), " - total positions: ", seqObject.GetTotal(), ", current position: ", currentPosition, ", end position: ", seqObject.GetCount()); for (loopNum=1 ; loopNum <= seqObject.GetTotal() ; loopNum++) {Trace("Position ", loopNum, " labwareId: ", seqObject.GetLabwareId(), " positionId: ", seqObject.GetPositionId()); seqObject.Increment(1); } seqObject.SetCurrentPosition(currentPosition); } // Function will trace out 1 array function TraceArray(variable& description, variable& array1[]) void {private variable loopNum, position; Trace("Trace array. ", description); for (loopNum=0 ; loopNum 16 || i_numberOfChannels < 1) {Trace("APPSLIB Error MultiDispSetup: The number of channels is invalid for the MultiDisp setup. Channel number entered: ", i_numberOfChannels);} else if (i_dispVolume < 0 || i_dispVolume > 5000 || i_maxAspVolume < 0 || i_maxAspVolume > 5000) {Trace("APPSLIB Error MultiDispSetup: The asp and disp volumes entered are invalid. Dispense volume entered: ", i_dispVolume, ", Max Aspirate volume entered: ", i_maxAspVolume);} else if (i_maxAspVolume < i_dispVolume) {Trace("APPSLIB Error MultiDispSetup: The i_maxAspVolume input variable must be greater than or equal to the i_dispVolume input variable."); Trace("APPSLIB Error MultiDispSetup: i_maxAspVolume: ", i_maxAspVolume, ", i_dispVolume: ", i_dispVolume); } // All input variables checked for the correct variable type and range else { o_numberOfDispenses = APPSLIB::MathRound((i_maxAspVolume / i_dispVolume), 0); fullColumns = APPSLIB::SequenceTotalPosRemaining(i_targetSeq) / i_numberOfChannels; partialColumn = APPSLIB::SequenceTotalPosRemaining(i_targetSeq) % i_numberOfChannels; if (partialColumn > 0) {columns = fullColumns + 1; } /* If the number of columns remaining in the sequence left to pipet is less than or equal to the max possible number of dispenses allowed then return the number of columns remaining as the number of dispenses. - Else leave it as the maximum */ if (columns <= o_numberOfDispenses) {o_numberOfDispenses = columns; } else {partialColumn = 0; } // subract an amount from the asp amount so that some tips don't end up with residual amounts of reagent // on the last partial column dispense o_volumeArray.SetSize(i_numberOfChannels); for (i=0 ; i < i_numberOfChannels; i++) {if ((partialColumn > 0) && (partialColumn < (8-i))) {subtractDisp = i_dispVolume; } else {subtractDisp = 0; } o_volumeArray.SetAt((i_numberOfChannels - i) - 1, (i_dispVolume * o_numberOfDispenses) - subtractDisp); } APPSLIB::TraceArray("Volume Array for multiDispense: ", o_volumeArray); } } //End the namespace } // Gets the serial number from the instrument (instrument must be initialized) function GetSerialNumber(device& ML_STAR) variable { variable command(""); // Command string variable parameter(""); // Parameter string variable serialNumber(""); // Serial number string str_serialNumber(""); variable first_char; variable rc[]; // Low level step return values // Get serial number command = "C0RI"; // Request Installation data parameter = ""; rc = ML_STAR.FirmwareCommand( "1e78330b_4cb4_456b_84d80d3b33e97e73" ); if (4 == rc.GetSize()) { str_serialNumber = rc.ElementAt(3); first_char = str_serialNumber.Find("sn"); str_serialNumber = str_serialNumber.Mid(first_char, 6); //serialNumber = StrMid(rc.ElementAt(3), StrFind(rc.ElementAt(3), "sn"), 6); } serialNumber = str_serialNumber.MakeUpper(); return(serialNumber); } #endif // $$author=walton_s$$valid=0$$time=2014-09-08 09:22$$checksum=2a469957$$length=085$$ ================================================ FILE: pyhamilton/library/HSLBarcodeReader.hs_ ================================================ // ====================================================================== // This is a part of the HSL BarcodeReader Library. // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // All rights reserved. // ====================================================================== // // Modification History // 2002-05-24 fbrehm : Remove PVCS header // 2002-06-25 ubernhard : SCR#155: corrected bug in function Read() // (Case: manuall input of Barcode; // leaving the dialog with Cancel returns // now an empty String) // 2005-11-30 ubernhard : SCR#1118: make library schedulable // 2007-09-17 ubernhard : Support of simulation flag // Add new interface function SetSimulation() // // ====================================================================== #ifndef __HSLBarcodeReaderImpl_hsl__ #define __HSLBarcodeReaderImpl_hsl__ 1 // includes #ifndef __HSLStrLib_hsl__ #include "HSLStrLib.hsl" #endif // debug switch //#define _DEBUG 1 // ====================================================================== // Implementation of HSLBarcodeReader library // ====================================================================== namespace HSLBarcodeReader { #ifndef __HSLStringTableLib_hsl__ #include "HSLStringTableLib.hs_" #endif namespace errorID { static const variable first(0); // guard static const variable noError(first); // No error static const variable fatalError(first + 1); // General unspecific error static const variable readError(first + 2); // Read error static const variable last(first + 2); // guard } namespace stringID { static const variable first(errorID::last + 1); // guard static const variable userPrompt(first); // User prompt for input barcode static const variable helpFileName(first + 1); // Name of helpfile static const variable inputBoxTitel(first + 2); // Titel of barode input-box static const variable messageBoxTitel(first + 3); // Titel of read error message-box static const variable traceSource(first + 4); // source for formated trace static const variable traceActionSetComPort(first + 5); // action for formated trace static const variable traceActionSetTimeout(first + 6); // action for formated trace static const variable traceActionSetErrorRecovery(first + 7); // action for formated trace static const variable traceActionRead(first + 8); // action for formated trace static const variable traceActionDeleteComBuffer(first + 9); // action for formated trace static const variable traceActionSetSimulation(first + 10); // action for formated trace static const variable traceAdditionalSetComPort(first + 11); // com port used static const variable traceAdditionalSetTimeout(first + 12); // timeout set static const variable traceAdditionalSetTimeoutInfinite(first + 13); // timeout set static const variable traceAdditionalSetErrorRecovery_0(first + 14); static const variable traceAdditionalSetErrorRecovery_1(first + 15); static const variable traceAdditionalSetErrorRecovery_2(first + 16); static const variable traceAdditionalRead(first + 17); static const variable traceAdditionalSetSimulation(first + 18); static const variable traceTextOn(first + 19); static const variable traceTextOff(first + 20); static const variable traceErrorInvalidDatatype(first + 21); // error for formated trace static const variable traceErrorInvalidComPort(first + 22); // error for formated trace static const variable traceErrorInvalidArgument(first + 23); // error for formated trace static const variable traceErrorReadError(first + 24); // error for formated trace static const variable traceRecManEnteredBC(first + 25); // description of error recovery done static const variable traceRecCancelPressed(first + 26); // description of error recovery done static const variable last(first + 26); // guard } // -------------------------------------------------------------------------------------- // Global data // -------------------------------------------------------------------------------------- global variable mg_barcode(""); global variable mg_baudRate(0); global variable mg_comPort(""); global variable mg_comSetting; global variable mg_errRecovery(1); global file mg_port; global variable mg_isSimulation(hslFalse); global variable mg_readTimeout(10); // default 10 seconds // -------------------------------------------------------------------------------------- // Exception Handling // -------------------------------------------------------------------------------------- namespace Error { static function Raise( // raises a runtime error variable errorId, // [in] error id, one of IDE variable& fileName, // [in] file name variable& funcName, // [in] function name variable& lineNumber) // [in] line number { variable description(""); // set error description description = fileName + "(" + lineNumber + ") : " + funcName + "()\n" + StringTable::Load(errorId); err.SetDescription(description); // raise error err.Raise(errorId, err.GetDescription(), StringTable::Load(stringID::helpFileName)); } function RaiseEx( // raises a runtime error variable errorId, // [in] error id, one of IDE variable errorDesc, // [in] error description variable& fileName, // [in] file name variable& funcName, // [in] function name variable& lineNumber) // [in] line number { variable description(""); // set error description if ("" == funcName) description = fileName + "(" + lineNumber + ") : " + errorDesc; else description = fileName + "(" + lineNumber + ") : " + funcName + "()\n" + errorDesc; err.SetDescription(description); // raise error err.Raise(errorId, err.GetDescription(), StringTable::Load(stringID::helpFileName)); } function RaiseLast() // re-throws the last runtime error { // re-raise error err.Raise(); } } // -------------------------------------------------------------------------------------- // Library Initialization // -------------------------------------------------------------------------------------- static variable initializedLib(hslFalse); // initialization state of the HxBarcodeReader library static function InitBarcodeReaderLibrary(); // initializes the HxBarcodeReader library (only once) static function InitBarcodeReaderLibrary() { // initialize the HxBarcodeReaderlibrary once only if(!initializedLib) { StringTable::Init("HSLBarcodeReaderStringTable"); #ifdef _DEBUG StringTable::Dump(); #endif initializedLib = hslTrue; } return(initializedLib); } // -------------------------------------------------------------------------------------- // Prototypes of internal functions // -------------------------------------------------------------------------------------- static function checkConsistency(); // check, if settings have been initialized static function setDefaultValues(); // Set com settings to default values static function openPort(); // open port with given settings static function isString( // returns true if the variable value is a string variable var); // i: variable static function isNumber( // returns true if the variable value is a number variable var); // i: variable // -------------------------------------------------------------------------------------- // Set Simulation // -------------------------------------------------------------------------------------- function SetSimulation(variable simulate) variable { variable traceSource; // source for formated trace variable traceAction; // action for formated trace variable traceError; // error for formated trace variable traceEx; // additional info for formated trace // initialize barcode reader library InitBarcodeReaderLibrary(); traceSource = StringTable::Load(stringID::traceSource); traceAction = StringTable::Load(stringID::traceActionSetSimulation); // Trace start of SetSimulation FormatTrace(traceSource, traceAction, 1); // Check variable comPort if(!isNumber(simulate)) { traceError = StringTable::Load(stringID::traceErrorInvalidDatatype); FormatTrace(traceSource, traceAction, 5, traceError); return(1); //invalid datatype } mg_isSimulation = hslFalse; if(simulate != 0) mg_isSimulation = hslTrue; // Trace completion of SetSimulation traceEx = StringTable::Load(stringID::traceAdditionalSetSimulation); if(mg_isSimulation) StrReplace(traceEx, "%s", StringTable::Load(stringID::traceTextOn)); else StrReplace(traceEx, "%s", StringTable::Load(stringID::traceTextOff)); FormatTrace(traceSource, traceAction, 2, traceEx); return(0); } // end of SetSimulation() // -------------------------------------------------------------------------------------- // Set COM port // -------------------------------------------------------------------------------------- function SetComPort(variable& comPort) { variable traceSource; // source for formated trace variable traceAction; // action for formated trace variable traceError; // error for formated trace variable traceEx; // additional info for formated trace // initialize barcode reader library InitBarcodeReaderLibrary(); traceSource = StringTable::Load(stringID::traceSource); traceAction = StringTable::Load(stringID::traceActionSetComPort); // Trace start of SetComPort FormatTrace(traceSource, traceAction, 1); // Check variable comPort if (isNumber(comPort)) { traceError = StringTable::Load(stringID::traceErrorInvalidDatatype); FormatTrace(traceSource, traceAction, 5, traceError); return(2); //invalid datatype } if ((comPort != "COM1") && (comPort != "COM2") && (comPort != "COM3") && (comPort != "COM4") && (comPort == "LPT1") || (comPort == "LPT2")) { traceError = StringTable::Load(stringID::traceErrorInvalidComPort); FormatTrace(traceSource, traceAction, 5, traceError); return(1); //invalid comPort } mg_comPort = comPort; // Trace completion of SetComPort traceEx = StringTable::Load(stringID::traceAdditionalSetComPort); StrReplace(traceEx, "%s", mg_comPort); FormatTrace(traceSource, traceAction, 2, traceEx); return(0); } // end of SetComPort() // -------------------------------------------------------------------------------------- // Set Timeout // -------------------------------------------------------------------------------------- function SetTimeout(variable timeout) { variable traceSource; // source for formated trace variable traceAction; // action for formated trace variable traceError; // error for formated trace variable traceEx; // additional info for formated trace variable ReadTotalTimeoutConstant; // initialize barcode reader library InitBarcodeReaderLibrary(); traceSource = StringTable::Load(stringID::traceSource); traceAction = StringTable::Load(stringID::traceActionSetTimeout); // Trace start of SetTimeout FormatTrace(traceSource, traceAction, 1); // check variable timeout if (!isNumber(timeout)) { traceError = StringTable::Load(stringID::traceErrorInvalidDatatype); FormatTrace(traceSource, traceAction, 5, traceError); return(1); //invalid datatype } if (timeout < 1 && timeout != -1) { traceError = StringTable::Load(stringID::traceErrorInvalidArgument); FormatTrace(traceSource, traceAction, 5, traceError); return(2); //invalid argument } if (timeout == -1) { timeout = hslInfinite; traceEx = StringTable::Load(stringID::traceAdditionalSetTimeoutInfinite); } else { traceEx = StringTable::Load(stringID::traceAdditionalSetTimeout); StrReplace(traceEx, "%s", IStr(timeout)); } mg_readTimeout = timeout; if(( GetSimulationMode() == 1 ) || mg_isSimulation) { // Trace completion of SetTimeout FormatTrace(traceSource, traceAction, 2, traceEx); return(0); } checkConsistency(); ReadTotalTimeoutConstant = mg_readTimeout; SetCommTimeouts(mg_port); // Trace completion of SetTimeout FormatTrace(traceSource, traceAction, 2, traceEx); return(0); } // end of SetTimeout() // -------------------------------------------------------------------------------------- // Delete communication input buffer // -------------------------------------------------------------------------------------- function DelComBuffer() { variable ReadTotalTimeoutConstant; variable rr(1); variable traceSource; // source for formated trace variable traceAction; // action for formated trace variable traceError; // error for formated trace // initialize barcode reader library InitBarcodeReaderLibrary(); traceSource = StringTable::Load(stringID::traceSource); traceAction = StringTable::Load(stringID::traceActionDeleteComBuffer); // Trace start of DelComBuffer FormatTrace(traceSource, traceAction, 1); if(( GetSimulationMode() == 1 ) || mg_isSimulation) { // Trace completion of DelComBuffer FormatTrace(traceSource, traceAction, 2); return(0); } checkConsistency(); // Read Record until input buffer is empty ReadTotalTimeoutConstant = 0.1; SetCommTimeouts(mg_port); onerror goto Unexpected; while(rr != 0 || mg_port.Eof()) { rr = mg_port.ReadRecord(); } onerror goto 0; ReadTotalTimeoutConstant = mg_readTimeout; SetCommTimeouts(mg_port); // Trace completion of DelComBuffer FormatTrace(traceSource, traceAction, 2); return(0); Unexpected: { // do nothing --> assume the Com Port is not open err.Clear(); resume next; } } // end of DelComBuffer() // -------------------------------------------------------------------------------------- // Read barcode from scanner // -------------------------------------------------------------------------------------- function Read() { variable rr; // returnvalue of ReadRecord variable traceSource; // source for formated trace variable traceAction; // action for formated trace variable traceError; // error for formated trace variable traceEx; // additional info for formated trace // initialize barcode reader library InitBarcodeReaderLibrary(); traceSource = StringTable::Load(stringID::traceSource); traceAction = StringTable::Load(stringID::traceActionRead); // Trace start of Read FormatTrace(traceSource, traceAction, 1); mg_barcode = ""; if(( GetSimulationMode() == 1 ) || mg_isSimulation) { mg_barcode = "BC123456"; // Trace completion of Read traceEx = StringTable::Load(stringID::traceAdditionalRead); StrReplace(traceEx, "%s", mg_barcode); FormatTrace(traceSource, traceAction, 2, traceEx); return(mg_barcode); } checkConsistency(); onerror goto Unexpected; rr = mg_port.ReadRecord(); onerror goto 0; // show Error message if(0 == rr && 0 == mg_errRecovery) { traceError = StringTable::Load(stringID::traceErrorReadError); FormatTrace(traceSource, traceAction, 3, traceError); MessageBox(StringTable::Load(errorID::readError), StringTable::Load(stringID::messageBoxTitel), hslError); FormatTrace(traceSource, traceAction, 5); return(mg_barcode); } // show Input box for manual input of barcode if(0 == rr && 1 == mg_errRecovery) { variable inputBarcode; string traceRecovery; string userName; // get name of current logged in user userName = GetUserName(); traceError = StringTable::Load(stringID::traceErrorReadError); FormatTrace(traceSource, traceAction, 3, traceError); inputBarcode = InputBox(StringTable::Load(stringID::userPrompt), StringTable::Load(stringID::inputBoxTitel), hslString); if(isString(inputBarcode)) { mg_barcode = inputBarcode; traceRecovery = StringTable::Load(stringID::traceRecManEnteredBC); StrReplace(traceRecovery, "%s1", mg_barcode); StrReplace(traceRecovery, "%s2", userName); FormatTrace(traceSource, traceAction, 2, traceRecovery); } else // Input Dialog leaved with Cancel { mg_barcode = ""; traceRecovery = StringTable::Load(stringID::traceRecCancelPressed); StrReplace(traceRecovery, "%s", userName); FormatTrace(traceSource, traceAction, 2, traceRecovery); } return(mg_barcode); } // return empty String if(0 == rr && 2 == mg_errRecovery) { traceError = StringTable::Load(stringID::traceErrorReadError); FormatTrace(traceSource, traceAction, 3, traceError); FormatTrace(traceSource, traceAction, 5); return(mg_barcode); } // Trace completion of Read traceEx = StringTable::Load(stringID::traceAdditionalRead); StrReplace(traceEx, "%s", mg_barcode); FormatTrace(traceSource, traceAction, 2, traceEx); return(mg_barcode); Unexpected: { variable errorDesc(""); errorDesc = StringTable::Load(errorID::readError); Error::RaiseEx(errorID::readError, errorDesc, GetFileName(), GetFunctionName(), GetLineNumber()); } } // end of Read() // -------------------------------------------------------------------------------------- // Set Error recovery // -------------------------------------------------------------------------------------- function SetErrorRecovery(variable errRecovery) { variable traceSource; // source for formated trace variable traceAction; // action for formated trace variable traceError; // error for formated trace variable traceEx; // additional info for formated trace // initialize barcode reader library InitBarcodeReaderLibrary(); traceSource = StringTable::Load(stringID::traceSource); traceAction = StringTable::Load(stringID::traceActionSetErrorRecovery); // Trace start of SetErrorRecovery FormatTrace(traceSource, traceAction, 1); // check datatype if (!isNumber(errRecovery)) { traceError = StringTable::Load(stringID::traceErrorInvalidDatatype); FormatTrace(traceSource, traceAction, 5, traceError); return(1); // invalid datatype } // check if is valid value (0, 1 or 2 are valid values) if (0 > errRecovery || 2 < errRecovery) { traceError = StringTable::Load(stringID::traceErrorInvalidArgument); FormatTrace(traceSource, traceAction, 5, traceError); return(2); // invalid argument } mg_errRecovery = errRecovery; // Trace completion of Read if(mg_errRecovery == 0) traceEx = StringTable::Load(stringID::traceAdditionalSetErrorRecovery_0); else if(mg_errRecovery == 1) traceEx = StringTable::Load(stringID::traceAdditionalSetErrorRecovery_1); else if(mg_errRecovery == 2) traceEx = StringTable::Load(stringID::traceAdditionalSetErrorRecovery_2); FormatTrace(traceSource, traceAction, 2, traceEx); return(0); } // -------------------------------------------------------------------------------------- // Internal functions // -------------------------------------------------------------------------------------- // check, if all variables have a value static function checkConsistency() { if (mg_baudRate == 0 ) setDefaultValues(); return(0); } // set variable default values static function setDefaultValues() { mg_baudRate = 9600; if(( GetSimulationMode() == 1 ) || mg_isSimulation) mg_baudRate = 0; if (mg_comPort == "") mg_comPort = "COM2"; mg_comSetting = "S,7,1,RTS/CTS,CR/LF"; // Set delimiters and record fields mg_port.SetDelimiter(hslAsciiText); if (0 == mg_port.AddField(1, mg_barcode, hslString)) Error::Raise(errorID::fatalError, GetFileName(), GetFunctionName(), GetLineNumber()); openPort(); return(0); } // Open com port static function openPort() { variable errCode; variable argument; variable ReadTotalTimeoutConstant(mg_readTimeout); if(( GetSimulationMode() == 1 ) || mg_isSimulation) return(0); mg_port.Close(); argument = mg_comPort + " " + IStr(mg_baudRate) + "," + mg_comSetting; #ifdef _DEBUG Trace("OpenPort: ", argument); Trace("ReadTotalTimeoutConstant: ", ReadTotalTimeoutConstant); #endif onerror goto Unexpected; mg_port.Open(argument, hslWrite); SetCommTimeouts(mg_port); onerror goto 0; return(0); Unexpected: { Error::Raise(errorID::fatalError, GetFileName(), GetFunctionName(), GetLineNumber()); } } // Check, if variable is string static function isString(variable var) { return(hslString.Compare(GetType(var)) == 0); } // Check if variable is a number static function isNumber(variable var) { return(hslString.Compare(GetType(var)) != 0); } } // end of name space HSLBarcodeReader #endif // end of '#ifndef __HSLBarcodeReaderImpl_hsl__' // $$author=wbarmettler$$valid=1$$time=2013-06-24 11:47$$checksum=093404a7$$length=090$$ ================================================ FILE: pyhamilton/library/HSLBarcodeReader.hsl ================================================ // ====================================================================== // This is a part of the HSL File Library. // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // All rights reserved. // ====================================================================== // // Modification History // 2002-05-24: Remove PVCS header // 2007-09-17 ubernhard : Declared new function SetSimulation // // ====================================================================== #ifndef __HSLBarcodeReaderLib_hsl__ #define __HSLBarcodeReaderLib_hsl__ 1 // Comment out following line, when HSL library is ok (to speed up method editor) //#define FIL_DEVELOP 1 #ifdef FIL_DEVELOP #ifndef HSL_RUNTIME #define HSL_RUNTIME 1 #endif #endif // Interface to File library #ifndef HSL_RUNTIME namespace HSLBarcodeReader { function SetSimulation(variable simulate) variable { return (0); } function SetTimeout(variable timeout) variable { return (0); } function DelComBuffer() void {} function Read() variable { return (""); } function SetComPort(variable& comPort) variable { return (0); } function SetErrorRecovery(variable errRecovery) variable { return (0); } } // end of namespace HSLBarcodeReader #endif // ========================================================================== // Implementation of File library // ========================================================================== #ifdef HSL_RUNTIME #include "HSLBarcodeReader.hs_" #endif #endif /* end of #ifndef __HSLBarcodeReaderLib_hsl__ */ // $$author=wbarmettler$$valid=1$$time=2013-06-24 11:47$$checksum=6c366e67$$length=090$$ ================================================ FILE: pyhamilton/library/HSLBarcodeReaderStringTableEnu.hs_ ================================================ // ====================================================================== // This is the language dependant part of the BarcodeReader Library. // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // ====================================================================== // // Modification History // 2002-05-24: Remove PVCS header // 2005-11-30: Add new IDs'Enhanced // 2007-09-17 ubernhard: Add several new ID's // // ====================================================================== function StringTable() { Insert(errorID::noError, "No error." ); Insert(errorID::fatalError, "Fatal error." ); Insert(errorID::readError, "Cannot read barcode." ); Insert(stringID::userPrompt, "Cannot read barcode.\n\nPlease enter barcode information:\ne.g. 76281070"); Insert(stringID::helpFileName, "HSLBarcodeReaderEnu.chm" ); Insert(stringID::inputBoxTitel, "Read error" ); Insert(stringID::messageBoxTitel, "Read error" ); Insert(stringID::traceSource, "SYSTEM" ); //traceAction Insert(stringID::traceActionSetComPort, "HSLBarcodeReader::SetComPort" ); Insert(stringID::traceActionSetTimeout, "HSLBarcodeReader::SetTimeout" ); Insert(stringID::traceActionSetErrorRecovery,"HSLBarcodeReader::SetErrorRecovery" ); Insert(stringID::traceActionRead, "HSLBarcodeReader::Read" ); Insert(stringID::traceActionDeleteComBuffer, "HSLBarcodeReader::DelComBuffer" ); Insert(stringID::traceActionSetSimulation, "HSLBarcodeReader::SetSimulation" ); // trace Additional Information Insert(stringID::traceAdditionalSetComPort, " Com port: %s" ); Insert(stringID::traceAdditionalSetTimeout, " Timeout: %s [s]" ); Insert(stringID::traceAdditionalSetTimeoutInfinite," Timeout: infinite" ); Insert(stringID::traceAdditionalSetErrorRecovery_0," Error recovery: (0) Show error message" ); Insert(stringID::traceAdditionalSetErrorRecovery_1," Error recovery: (1) Enter barcode manually"); Insert(stringID::traceAdditionalSetErrorRecovery_2," Error recovery: (2) Return empty string" ); Insert(stringID::traceAdditionalRead, " Barcode read: %s" ); Insert(stringID::traceAdditionalSetSimulation, " Simulation: %s" ); Insert(stringID::traceTextOn, "On" ); Insert(stringID::traceTextOff, "Off" ); //traceError Insert(stringID::traceErrorInvalidDatatype, "Invalid datatype" ); Insert(stringID::traceErrorInvalidComPort, "Invalid Com port" ); Insert(stringID::traceErrorInvalidArgument, "Invalid argument" ); Insert(stringID::traceErrorReadError, "Barcode could not be read" ); Insert(stringID::traceRecManEnteredBC, "Barcode '%s1' was manually entered by '%s2'."); Insert(stringID::traceRecCancelPressed, "Manual input of barcode cancelled by '%s'." ); } // $$author=wbarmettler$$valid=1$$time=2013-06-24 11:47$$checksum=a7039df7$$length=090$$ ================================================ FILE: pyhamilton/library/HSLDaisyChainCommunication.hsl ================================================ // ====================================================================== // Interface of the Daisy Chained communication library. // This library is used for all daisy chained modules. // // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // All rights reserved. // ====================================================================== // // Modification History // V1.0, 2007-11-05, Ruedi Vogel, created // V2.0, 2008-06-09, Ruedi Vogel, // - new function TxRxReset() implemented, which has to be called // as first function ("command") in initialisation of a module // V2.1, 2008-10-01, Ruuedi Vogel: // - in function DaisyChainedTxRxReset() ReadTimeout increased up // to 5.0sec because some modules transmit their first message // "" after a software reset more then 2 seconds // later (actual values were 2.7 sec). // ====================================================================== #ifndef __HSL_DaisyChainCommunication_hsl__ #define __HSL_DaisyChainCommunication_hsl__ 1 namespace HSLDaisyChainCommunication { /********************************************************************* * * Exported return constants * *********************************************************************/ const static variable CMD_START ( 1 ); const static variable CMD_COMPLET ( 2 ); const static variable CMD_ERROR ( 5 ); // to prevent suspicious Phoenix error messages const static variable CMD_PROGRESS ( 4 ); const static variable CMD_ERRCOMPL ( 5 ); const variable TRACE_LEVEL_NONE ( 0 ); const variable TRACE_LEVEL_NORMAL ( 1 ); const variable TRACE_LEVEL_FULL ( 2 ); const variable HSL_FALSE ( hslFalse ); const variable HSL_TRUE ( hslTrue ); const static variable ERROR_NONE ( 0 ); const static variable ERROR_ALREADY_INITIALIZED ( 1 ); const static variable ERROR_PARAMETER_OUT_OF_RANGE ( 2 ); const static variable ERROR_FALSE_COMM_PORT ( 3 ); const static variable ERROR_HSL_FUNCTION_FAILED ( 4 ); const static variable ERROR_WRITE_RECORD_FAILED ( 5 ); const static variable ERROR_READ_RECORD_FAILED ( 6 ); const static variable ERROR_UNEXPECTED_TXRX_COMMAND ( 7 ); const static variable ERROR_UNEXPECTED_TXRX_RESET ( 8 ); const static string ERROR_MSG_NONE ( "No error." ); const static string ERROR_MSG_ALREADY_INITIALIZED ( "Assigned module already initialized!" ); const static string ERROR_MSG_PARAMETER_OUT_OF_RANGE ( "Parameter out of range!" ); const static string ERROR_MSG_FALSE_COMM_PORT ( "Assigned COM port false (must be the same as before assigned)!" ); const static string ERROR_MSG_HSL_FUNCTION_FAILED ( "Any HSL function failed!" ); const static string ERROR_MSG_WRITE_RECORD_FAILED ( "Writing to COM port failed!" ); const static string ERROR_MSG_READ_RECORD_FAILED ( "Reading from COM port failed (e.g. timeout)!" ); const static string ERROR_MSG_UNEXPECTED_TXRX_COMMAND ( "Unexpected error in transmitting command/receiving response occurred!" ); const static string ERROR_MSG_UNEXPECTED_TXRX_RESET ( "Unexpected error in transmitting software reset/receiving response occurred!" ); const static string ERROR_MSG_UNKNOWN_ERROR_CODE ( "Unknown error code!" ); /********************************************************************* * * Module globale constants/variables * *********************************************************************/ static global variable DaisyChainCommunication_trcLvl( TRACE_LEVEL_NORMAL ); static global event DaisyChainCommunication_criticalSection; static global variable DaisyChainCommunication_firstInitialize( 0 ); static global file DaisyChainCommunication_comPort; static global variable DaisyChainCommunication_comNumber; static global variable DaisyChainCommunication_comBuffer; static const variable DaisyChainCommunication_comSettings( "1200,E,8,1,N,CR/LF" ); static global variable DaisyChainCommunication_moduleNames[]; /********************************************************************* * * Declarations * *********************************************************************/ function InitializeDaisyChainCommunication( variable iModuleName, variable iPort, variable iTraceLevel ) variable; function TerminateDaisyChainCommunication( variable iModuleName ) variable; function DaisyChainedTxRxCommand( variable iModuleName, variable iCommand, variable iParameter, variable & oResponse ) variable; function EvaluateCommErrorMessage( variable iErrorCode ) string; /********************************************************************* * * Implementations * *********************************************************************/ function InitializeDaisyChainCommunication( variable iModuleName, variable iPort, variable iTraceLevel ) variable { variable ii; DaisyChainCommunication_trcLvl = iTraceLevel; if( TRACE_LEVEL_NONE < DaisyChainCommunication_trcLvl ) FormatTrace(GetFunctionName(), "()", CMD_START, " Initialize Daisy Chain on COM", iPort, " for module ", iModuleName); DaisyChainCommunication_firstInitialize++; for ( ii = 0; ii < DaisyChainCommunication_moduleNames.GetSize(); ii++ ) { if( DaisyChainCommunication_moduleNames.GetAt( ii ) == iModuleName ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter iModuleName #", iModuleName, " already initialized!" ); return( ERROR_ALREADY_INITIALIZED ); } } DaisyChainCommunication_moduleNames.AddAsLast( iModuleName ); // ------------------------------------------------------------------------- // check parameters // ------------------------------------------------------------------------- if(( 1 > iPort ) || ( 255 < iPort )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter comPort #", iPort, " out of range [1..255]!" ); return( ERROR_PARAMETER_OUT_OF_RANGE ); } if( 1 < DaisyChainCommunication_firstInitialize ) { if( DaisyChainCommunication_comNumber != iPort ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter comPort #", iPort, " is not equal to already initialized port COM", DaisyChainCommunication_comNumber, "!" ); return( ERROR_FALSE_COMM_PORT ); } if( TRACE_LEVEL_NONE < DaisyChainCommunication_trcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET ); return( ERROR_NONE ); } DaisyChainCommunication_criticalSection.SetEvent(); DaisyChainCommunication_comBuffer = ""; DaisyChainCommunication_comNumber = iPort; DaisyChainCommunication_criticalSection.WaitEvent( hslInfinite ); // ------------------------------------------------------------------------- // initialize communication port // ------------------------------------------------------------------------- DaisyChainCommunication_comPort.SetDelimiter( hslAsciiText ); if( 0 == DaisyChainCommunication_comPort.AddField( 1, DaisyChainCommunication_comBuffer, hslString )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " failed!" ); DaisyChainCommunication_criticalSection.SetEvent(); return( ERROR_HSL_FUNCTION_FAILED ); } // ------------------------------------------------------------------------- // Open port // ------------------------------------------------------------------------- { variable openString( "COM" + IStr(iPort) + " " + DaisyChainCommunication_comSettings ); if( 0 == DaisyChainCommunication_comPort.Open( openString, hslWrite )) { DaisyChainCommunication_comPort.RemoveFields(); // is evident for redundant inits!! FormatTrace( GetFunctionName(), "()", CMD_ERROR, " with [" + openString + "] failed!" ); DaisyChainCommunication_criticalSection.SetEvent(); return( ERROR_HSL_FUNCTION_FAILED ); } if( TRACE_LEVEL_NONE < DaisyChainCommunication_trcLvl ) FormatTrace(GetFunctionName(), "()", CMD_PROGRESS, " port opened with [" + openString + "]" ); } // ------------------------------------------------------------------------- // first configure short timeouts and transmit/receive an empty string to // initiialize some Dell docking stations in a proper way!!! // ------------------------------------------------------------------------- // Configure Timeouts // Timeout settings for timeout within HSL-functions and // // These settings are used by the function . // For more information see HSL Reference (document e253518b) // ------------------------------------------------------------------------- { variable ReadIntervalTimeout( hslInfinite ); // maximum time between read chars variable ReadTotalTimeoutMultiplier( hslInfinite ); // mutiplier of characters variable ReadTotalTimeoutConstant( 2.000 ); // constant in seconds variable WriteTotalTimeoutMultiplier( 0.000 ); // mutiplier of characters variable WriteTotalTimeoutConstant( 1.000 ); // constant in seconds if( 0 == SetCommTimeouts( DaisyChainCommunication_comPort )) { DaisyChainCommunication_criticalSection.SetEvent(); TerminateDaisyChainCommunication( iModuleName ); FormatTrace( GetFunctionName(), "()", CMD_ERROR, " failed!" ); return( ERROR_HSL_FUNCTION_FAILED ); } } DaisyChainCommunication_comBuffer = ""; DaisyChainCommunication_comPort.WriteRecord(); DaisyChainCommunication_comPort.ReadRecord(); // ------------------------------------------------------------------------- // Configure Timeouts // Timeout settings for timeout within HSL-functions and // // These settings are used by the function . // For more information see HSL Reference (document e253518b) // ------------------------------------------------------------------------- { variable ReadIntervalTimeout( hslInfinite ); // maximum time between read chars variable ReadTotalTimeoutMultiplier( hslInfinite ); // mutiplier of characters variable ReadTotalTimeoutConstant( 120.000 ); // constant in seconds variable WriteTotalTimeoutMultiplier( 0.000 ); // mutiplier of characters variable WriteTotalTimeoutConstant( 1.000 ); // constant in seconds if( 0 == SetCommTimeouts( DaisyChainCommunication_comPort )) { DaisyChainCommunication_criticalSection.SetEvent(); TerminateDaisyChainCommunication( iModuleName ); FormatTrace( GetFunctionName(), "()", CMD_ERROR, " failed!" ); return( ERROR_HSL_FUNCTION_FAILED ); } } DaisyChainCommunication_criticalSection.SetEvent(); if( TRACE_LEVEL_NONE < DaisyChainCommunication_trcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET ); return( ERROR_NONE ); } function TerminateDaisyChainCommunication( variable iModuleName ) variable { variable ii; variable response; if( TRACE_LEVEL_NONE < DaisyChainCommunication_trcLvl ) FormatTrace(GetFunctionName(), "()", CMD_START, " Module ", iModuleName ); // ------------------------------------------------------------------------- // remove iModuleName from names list // ------------------------------------------------------------------------- for( ii = 0; ii < DaisyChainCommunication_moduleNames.GetSize(); ii++ ) { if( DaisyChainCommunication_moduleNames.GetAt( ii ) == iModuleName ) { DaisyChainCommunication_moduleNames.RemoveElementAt( ii ); break; } } // ------------------------------------------------------------------------- // close comm. port // ------------------------------------------------------------------------- DaisyChainCommunication_firstInitialize--; if( 0 < DaisyChainCommunication_firstInitialize ) { if( TRACE_LEVEL_NONE < DaisyChainCommunication_trcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET ); return( ERROR_NONE ); } DaisyChainCommunication_criticalSection.WaitEvent( hslInfinite ); DaisyChainCommunication_comPort.RemoveFields(); if( 0 != DaisyChainCommunication_comPort.Close()) { DaisyChainCommunication_criticalSection.SetEvent(); FormatTrace( GetFunctionName(), "()", CMD_ERROR, " failed!" ); return( ERROR_HSL_FUNCTION_FAILED ); } DaisyChainCommunication_criticalSection.SetEvent(); if( TRACE_LEVEL_NONE < DaisyChainCommunication_trcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET ); return( ERROR_NONE ); } function DaisyChainedTxRxCommand( variable iModuleName, variable iCommand, variable iParameter, variable & oResponse ) variable { string cmd; if( TRACE_LEVEL_NORMAL < DaisyChainCommunication_trcLvl ) FormatTrace( GetFunctionName(), "()", CMD_START, "Command to send: ", iModuleName, iCommand, iParameter ); // Activate error handler onerror goto Unexpected; oResponse = ""; cmd = iModuleName; cmd = cmd + iCommand; cmd = cmd + iParameter; DaisyChainCommunication_criticalSection.WaitEvent( hslInfinite ); DaisyChainCommunication_comBuffer = cmd; if( 0 == DaisyChainCommunication_comPort.WriteRecord()) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " failed!" ); DaisyChainCommunication_criticalSection.SetEvent(); return( ERROR_WRITE_RECORD_FAILED ); } if( 0 == DaisyChainCommunication_comPort.ReadRecord()) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " failed!" ); DaisyChainCommunication_criticalSection.SetEvent(); return( ERROR_READ_RECORD_FAILED ); } oResponse = DaisyChainCommunication_comBuffer; DaisyChainCommunication_criticalSection.SetEvent(); if( TRACE_LEVEL_NORMAL < DaisyChainCommunication_trcLvl ) FormatTrace(GetFunctionName(), "()", CMD_COMPLET, "Response: ", oResponse ); return( ERROR_NONE ); Unexpected: { DaisyChainCommunication_criticalSection.SetEvent(); FormatTrace( GetFunctionName(), "()", CMD_PROGRESS, "Unexpected: Command <", iModuleName, iCommand, iParameter, "> responsed with <", oResponse, ">" ); return( ERROR_UNEXPECTED_TXRX_COMMAND ); } } function DaisyChainedTxRxReset( variable iModuleName, variable & oResponse ) variable { variable response; if( TRACE_LEVEL_NORMAL < DaisyChainCommunication_trcLvl ) FormatTrace(GetFunctionName(), "()", CMD_START, " on system #", iModuleName ); // Activate error handler onerror goto Unexpected; response = ""; DaisyChainCommunication_criticalSection.WaitEvent( hslInfinite ); // ------------------------------------------------------------------------- // Configure Timeouts // Timeout settings for timeout within HSL-functions and // // These settings are used by the function . // For more information see HSL Reference (document e253518b) // ------------------------------------------------------------------------- { variable ReadIntervalTimeout( hslInfinite ); // maximum time between read chars variable ReadTotalTimeoutMultiplier( hslInfinite ); // mutiplier of characters variable ReadTotalTimeoutConstant( 5.000 ); // constant in seconds variable WriteTotalTimeoutMultiplier( 0.000 ); // mutiplier of characters variable WriteTotalTimeoutConstant( 1.000 ); // constant in seconds if( 0 == SetCommTimeouts( DaisyChainCommunication_comPort )) { DaisyChainCommunication_criticalSection.SetEvent(); FormatTrace( GetFunctionName(), "()", CMD_ERROR, " failed!" ); return( ERROR_HSL_FUNCTION_FAILED ); } } // ------------------------------------------------------------------------- // send reset command // ------------------------------------------------------------------------- DaisyChainCommunication_comBuffer = iModuleName + "AI"; if( 0 == DaisyChainCommunication_comPort.WriteRecord()) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " failed!" ); DaisyChainCommunication_criticalSection.SetEvent(); return( ERROR_WRITE_RECORD_FAILED ); } // ------------------------------------------------------------------------- // wait for command's response // ------------------------------------------------------------------------- if( 0 == DaisyChainCommunication_comPort.ReadRecord()) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " on <", iModuleName, "AI> failed!" ); DaisyChainCommunication_criticalSection.SetEvent(); return( ERROR_READ_RECORD_FAILED ); } response = DaisyChainCommunication_comBuffer; // ------------------------------------------------------------------------- // wait for empty message transmitted by software reset // ------------------------------------------------------------------------- DaisyChainCommunication_comPort.ReadRecord(); // ------------------------------------------------------------------------- // Reconfigure Timeouts to normal settings // Timeout settings for timeout within HSL-functions and // // These settings are used by the function . // For more information see HSL Reference (document e253518b) // ------------------------------------------------------------------------- { variable ReadIntervalTimeout( hslInfinite ); // maximum time between read chars variable ReadTotalTimeoutMultiplier( hslInfinite ); // mutiplier of characters variable ReadTotalTimeoutConstant( 120.000 ); // constant in seconds variable WriteTotalTimeoutMultiplier( 0.000 ); // mutiplier of characters variable WriteTotalTimeoutConstant( 1.000 ); // constant in seconds if( 0 == SetCommTimeouts( DaisyChainCommunication_comPort )) { DaisyChainCommunication_criticalSection.SetEvent(); FormatTrace( GetFunctionName(), "()", CMD_ERROR, " failed!" ); return( ERROR_HSL_FUNCTION_FAILED ); } } DaisyChainCommunication_criticalSection.SetEvent(); oResponse = response; if( TRACE_LEVEL_NORMAL < DaisyChainCommunication_trcLvl ) FormatTrace(GetFunctionName(), "()", CMD_COMPLET, "Response: ", oResponse ); return( ERROR_NONE ); Unexpected: { DaisyChainCommunication_criticalSection.SetEvent(); FormatTrace( GetFunctionName(), "()", CMD_PROGRESS, "Unexpected: Command <", iModuleName, "AI> to system #", iModuleName, " responded with <", oResponse, ">" ); return( ERROR_UNEXPECTED_TXRX_RESET ); } } function EvaluateCommErrorMessage( variable iErrorCode ) string { if( iErrorCode == ERROR_NONE ) return( ERROR_MSG_NONE ); else if( iErrorCode == ERROR_ALREADY_INITIALIZED ) return( ERROR_MSG_ALREADY_INITIALIZED ); else if( iErrorCode == ERROR_PARAMETER_OUT_OF_RANGE ) return( ERROR_MSG_PARAMETER_OUT_OF_RANGE ); else if( iErrorCode == ERROR_FALSE_COMM_PORT ) return( ERROR_MSG_FALSE_COMM_PORT ); else if( iErrorCode == ERROR_HSL_FUNCTION_FAILED ) return( ERROR_MSG_HSL_FUNCTION_FAILED ); else if( iErrorCode == ERROR_WRITE_RECORD_FAILED ) return( ERROR_MSG_WRITE_RECORD_FAILED ); else if( iErrorCode == ERROR_READ_RECORD_FAILED ) return( ERROR_MSG_READ_RECORD_FAILED ); else if( iErrorCode == ERROR_UNEXPECTED_TXRX_COMMAND ) return( ERROR_MSG_UNEXPECTED_TXRX_COMMAND ); else if( iErrorCode == ERROR_UNEXPECTED_TXRX_RESET ) return( ERROR_MSG_UNEXPECTED_TXRX_RESET ); else return( ERROR_MSG_UNKNOWN_ERROR_CODE ); } } //end namespace /* variable myModID(1); variable myComPort(3); variable myCellImagerX("XD"); variable myCellImagerY("YD"); variable myTraceLevel(HSLDaisyChainCommunication::TRACE_LEVEL_FULL); method main() void { variable response; if( HSLDaisyChainCommunication::CMD_COMPLET != HSLDaisyChainCommunication::InitializeDaisyChainCommunication( myCellImagerX, myComPort, myTraceLevel )) { FormatTrace( GetFunctionName(),"()",HSLDaisyChainCommunication::CMD_ERROR, " for module ",myCellImagerX," failed!" ); } if( HSLDaisyChainCommunication::CMD_COMPLET != HSLDaisyChainCommunication::InitializeDaisyChainCommunication( myCellImagerY, myComPort, myTraceLevel )) { FormatTrace( GetFunctionName(),"()",HSLDaisyChainCommunication::CMD_ERROR, " for module ",myCellImagerY," failed!" ); } // transmit "EI", clear error, and ignore response HSLDaisyChainCommunication::DaisyChainedTxRxCommand(myCellImagerX,"EI","",response); HSLDaisyChainCommunication::DaisyChainedTxRxCommand(myCellImagerY,"EI","",response); // transmit "RF", request firmware version, command and ignore response HSLDaisyChainCommunication::DaisyChainedTxRxCommand(myCellImagerX,"RF","",response); HSLDaisyChainCommunication::DaisyChainedTxRxCommand(myCellImagerY,"RF","",response); // XDSI if( HSLDaisyChainCommunication::CMD_COMPLET != HSLDaisyChainCommunication::DaisyChainedTxRxCommand(myCellImagerX,"SI","",response)) { FormatTrace( GetFunctionName(),"()",HSLDaisyChainCommunication::CMD_ERROR, " failed!" ); } if( myCellImagerX+"SIer00" != response ) { FormatTrace( GetFunctionName(),"()",HSLDaisyChainCommunication::CMD_ERROR, "Initializing CellImager Module ",myCellImagerX," failed!" ); } // XDSA65 move to absolute position if( HSLDaisyChainCommunication::CMD_COMPLET != HSLDaisyChainCommunication::DaisyChainedTxRxCommand(myCellImagerX,"SA","65",response)) { FormatTrace( GetFunctionName(),"()",HSLDaisyChainCommunication::CMD_ERROR, " failed!" ); } if( myCellImagerX+"SAer00" != response ) { FormatTrace( GetFunctionName(),"()",HSLDaisyChainCommunication::CMD_ERROR, "Initializing CellImager Module ",myCellImagerX," failed!" ); } // YDSI if( HSLDaisyChainCommunication::CMD_COMPLET != HSLDaisyChainCommunication::DaisyChainedTxRxCommand(myCellImagerY,"SI","",response)) { FormatTrace( GetFunctionName(),"()",HSLDaisyChainCommunication::CMD_ERROR, " failed!" ); } if( myCellImagerY+"SIer00" != response ) { FormatTrace( GetFunctionName(),"()",HSLDaisyChainCommunication::CMD_ERROR, "Initializing CellImager Module ",myCellImagerY," failed!" ); } // XDPO if( HSLDaisyChainCommunication::CMD_COMPLET != HSLDaisyChainCommunication::DaisyChainedTxRxCommand(myCellImagerX,"PO","",response)) { FormatTrace( GetFunctionName(),"()",HSLDaisyChainCommunication::CMD_ERROR, " failed!" ); } // YDPO if( HSLDaisyChainCommunication::CMD_COMPLET != HSLDaisyChainCommunication::DaisyChainedTxRxCommand(myCellImagerY,"PO","",response)) { FormatTrace( GetFunctionName(),"()",HSLDaisyChainCommunication::CMD_ERROR, " failed!" ); } // close comm. port HSLDaisyChainCommunication::TerminateDaisyChainCommunication(myCellImagerX); HSLDaisyChainCommunication::TerminateDaisyChainCommunication(myCellImagerY); } */ /* method main() void { variable myComPort(3); variable myPlatePresenter("00"); variable myTraceLevel(HSLDaisyChainCommunication::TRACE_LEVEL_FULL); variable errCode; variable errMsg; errCode = HSLDaisyChainCommunication::InitializeDaisyChainCommunication( myPlatePresenter, myComPort, myTraceLevel ); if( HSLDaisyChainCommunication::ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(),"()",HSLDaisyChainCommunication::CMD_ERROR, " for module ",myPlatePresenter," failed! (Error code = ", errCode, ", error message = ", HSLDaisyChainCommunication::EvaluateCommErrorMessage( errCode ), ")" ); HSLDaisyChainCommunication::TerminateDaisyChainCommunication( myPlatePresenter ); } HSLDaisyChainCommunication::TerminateDaisyChainCommunication( myPlatePresenter ); } */ #endif // $$author=rvogel$$valid=0$$time=2008-10-01 12:20$$checksum=68fc3401$$length=085$$ ================================================ FILE: pyhamilton/library/HSLDaisyChainedMediaLine.hsl ================================================ // ====================================================================== // Interface of the Daisy Chained Media Line library // // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // All rights reserved. // ====================================================================== // // Modification History // 2008-08-06, V1.0: Ruedi Vogel, created // 2009-02-05, V1.2: Ruedi Vogel // - defines to control valves for water and ethanol exchanged // 2009-11-16, V1.3: Alex Redei // - added commands to handle if the user does not want to init // - the waste pump // ====================================================================== #ifndef __HSL_DaisyChainedMediaLine_hsl__ #define __HSL_DaisyChainedMediaLine_hsl__ 1 #ifndef __HSLStrLib_hsl__ #include "HSLStrLib.hsl" #endif #ifndef __HSL_DaisyChainCommunication_hsl__ #include "HSLDaisyChainCommunication.hsl" #endif namespace HSLDaisyChainedMediaLineNEW { /********************************************************************* * * Exported return constants * *********************************************************************/ const static variable CMD_START ( 1 ); const static variable CMD_COMPLET ( 2 ); const static variable CMD_ERROR ( 5 ); // to prevent suspicious Phoenix error messages const static variable CMD_PROGRESS( 4 ); const static variable CMD_ERRCOMPL( 5 ); const variable TRACE_LEVEL_NONE ( 0 ); const variable TRACE_LEVEL_NORMAL ( 1 ); const variable TRACE_LEVEL_FULL ( 2 ); const variable HSL_FALSE ( hslFalse ); const variable HSL_TRUE ( hslTrue ); const variable ERROR_NONE ( 0 ); const variable ERROR_COMM_ALREADY_INIT ( 1 ); const variable ERROR_PRM_OUT_OF_RANGE ( 2 ); const variable ERROR_FALSE_COMM_PORT ( 3 ); const variable ERROR_HSL_FUNCTION_FAILED ( 4 ); const variable ERROR_WRITE_RECORD_FAILED ( 5 ); const variable ERROR_READ_RECORD_FAILED ( 6 ); const variable ERROR_UNEXPECTED_TXRX_COMMAND ( 7 ); const variable ERROR_UNEXPECTED_TXRX_RESET ( 8 ); const variable ERROR_INIT_NOT_FOUND ( 9 ); const variable ERROR_STEP_LOST ( 10 ); const variable ERROR_NOT_INITIALIZED ( 11 ); const variable ERROR_PARALLEL_ERROR ( 12 ); const variable ERROR_STEPPER_MOTOR_HW_DEFECTIVE ( 13 ); const variable ERROR_CMD_UNKNOWN ( 14 ); const variable ERROR_UNKNOWN_DEVICE_NAME ( 15 ); const variable ERROR_PERISTALTIC_PUMP_OVERLOAD ( 16 ); const variable ERROR_PERISTALTIC_PUMP_TIMEOUT ( 17 ); const variable ERROR_UNKNOWN_ERROR_CODE ( 18 ); const static string ERROR_MSG_NONE ( "No error." ); const static string ERROR_MSG_COMM_ALREADY_INIT ( HSLDaisyChainCommunication::ERROR_MSG_ALREADY_INITIALIZED ); const static string ERROR_MSG_PRM_OUT_OF_RANGE ( HSLDaisyChainCommunication::ERROR_MSG_PARAMETER_OUT_OF_RANGE ); const static string ERROR_MSG_FALSE_COMM_PORT ( HSLDaisyChainCommunication::ERROR_MSG_FALSE_COMM_PORT ); const static string ERROR_MSG_HSL_FUNCTION_FAILED ( HSLDaisyChainCommunication::ERROR_MSG_HSL_FUNCTION_FAILED ); const static string ERROR_MSG_WRITE_RECORD_FAILED ( HSLDaisyChainCommunication::ERROR_MSG_WRITE_RECORD_FAILED ); const static string ERROR_MSG_READ_RECORD_FAILED ( HSLDaisyChainCommunication::ERROR_MSG_READ_RECORD_FAILED ); const static string ERROR_MSG_UNEXPECTED_TXRX_COMMAND ( HSLDaisyChainCommunication::ERROR_MSG_UNEXPECTED_TXRX_COMMAND ); const static string ERROR_MSG_UNEXPECTED_TXRX_RESET ( HSLDaisyChainCommunication::ERROR_MSG_UNEXPECTED_TXRX_RESET ); const static string ERROR_MSG_INIT_NOT_FOUND ( "Init position not found!" ); const static string ERROR_MSG_STEP_LOST ( "Steps lost (overload)!" ); const static string ERROR_MSG_NOT_INITIALIZED ( "Drive not initialized!" ); const static string ERROR_MSG_PARALLEL_ERROR ( "Parallel functions not allowed!" ); const static string ERROR_MSG_STEPPER_MOTOR_HW_DEFECTIVE ( "Stepper motor power amp defective!" ); const static string ERROR_MSG_CMD_UNKNOWN ( "Unknown command!" ); const static string ERROR_MSG_UNKNOWN_DEVICE_NAME ( "Unknown device name (module identifier)!" ); const static string ERROR_MSG_PERISTALTIC_PUMP_OVERLOAD ( "Peristaltic pump overload!" ); const static string ERROR_MSG_PERISTALTIC_PUMP_TIMEOUT ( "Peristaltic pump timeout (Level sensor came not active)!" ); const static string ERROR_MSG_UNKNOWN_ERROR_CODE ( "Unknown error code!" ); const static variable VALVE_MEDIUM ( "5" ); const static variable VALVE_WATER ( "6" ); const static variable VALVE_ETHANOL( "7" ); /********************************************************************* * * Module globale constants/variables * *********************************************************************/ static global variable HSLdaisyChainedMediaLine_SimulationFlag( HSL_FALSE ); static global variable HSLdaisyChainedMediaLine_TrcLvl( TRACE_LEVEL_NORMAL ); static global variable bIsTheTroughFull (HSL_FALSE); /********************************************************************* * * Overflow prevention arrays * *********************************************************************/ static global variable MediaLine_ComPorts[]; static global variable MediaLine_Modules[]; /********************************************************************* * * Declarations * *********************************************************************/ function Initialize( variable iModuleIndex, variable iComPort, variable iTraceLevel, variable iSimulate ) variable; function Terminate( variable iModuleIndex ) void; function Prime( variable iModuleIndex, variable iMediumType, variable iMediumPumpTime, variable iMediumPumpPower ) variable; function ReversePrime( variable iModuleIndex, variable iMediumType, variable iMediumPumpTime, variable iMediumPumpPower ) variable; function Fill( variable iModuleIndex, variable iMediumType, variable iMediumPumpTimeout, variable iMediumPumpPower ) variable; function FillWithTimeOut( variable iModuleIndex, variable iMediumPumpTimeout, variable iMediumPumpPower ) variable; function RequestLevelSensor( variable iModuleIndex, variable & oLevelState ) variable; function OpenValvesForMaintenance( variable iModuleIndex ); function EvaluateErrorMessage( variable iErrorCode ) string; function OnAbortMediaLine(); static function DecodeMediaLineModuleErrorCode( variable iErrCode ) variable; static function DecodeCommunicationErrorCode( variable iErrCode ) variable; static function TxRxCommand( variable iModuleIndex, variable iCommand, variable iParameter, variable & oResponse ) variable; static function TxRxReset( variable iModuleIndex ) variable; static function Delay( variable iTime ) void; static function TerminateDueToAnError( variable iModuleIndex ) void; static function AddToArray(variable iModuleString, variable iComPort) variable; /********************************************************************* * * Implementations * *********************************************************************/ function OnAbortMediaLine() { variable command; variable parameter; variable response; variable errCode; variable iModuleIndex(1); variable iComPort; variable iModuleString; onerror goto errorhandler; if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_START, "Abort method called! ***Forced shutdown *** of all media line stations!" ); // ------------------------------------------------------------------------- // check simulation mode // ------------------------------------------------------------------------- if(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedMediaLine_SimulationFlag )) { if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_PROGRESS, " Media line module runs in simulation mode!" ); return; } //while(0 < MediaLine_ComPorts.GetSize()); //oInstrumentName.RemoveElementAt( 0 ); //oInstrumentName.AddAsLast( "Simulation" ); //oInstrumentName.GetAt(0); while(0 < MediaLine_ComPorts.GetSize() && 0 < MediaLine_Modules.GetSize()) { iComPort = StrIVal(MediaLine_ComPorts.GetAt(0)); iModuleString = MediaLine_Modules.GetAt(0); Trace("Terminating any old connections on COM", iComPort, " for ", iModuleString); errCode = DecodeCommunicationErrorCode(HSLDaisyChainCommunication::TerminateDaisyChainCommunication(iModuleString)); Trace("Terminated daisy chain with error code [", errCode, "]"); Trace("Initializing a new connection on COM", iComPort, " for ", iModuleString); errCode = DecodeCommunicationErrorCode( HSLDaisyChainCommunication::InitializeDaisyChainCommunication( iModuleString, iComPort, HSLdaisyChainedMediaLine_TrcLvl )); Trace("Done initializing (code: ", errCode, ")"); if( HSLDaisyChainCommunication::ERROR_NONE == errCode ) { //Trace("Reset pump [", iModuleIndex, "]"); //TxRxReset( "M" + IStr( iModuleIndex )); //Trace("Finish rest pump"); // ------------------------------------------------------------------------- // Stop medium pump // ------------------------------------------------------------------------- command = "PA"; parameter = ""; response = ""; errCode = TxRxCommand( iModuleString, command, parameter, response ); if( TRACE_LEVEL_NORMAL < HSLdaisyChainedMediaLine_TrcLvl && errCode != HSLDaisyChainCommunication::ERROR_NONE) FormatTrace( GetFunctionName(), "()", CMD_PROGRESS, " Stopping medium pump for media line module failed! It is possible that there is no media pump on this line. (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); // ------------------------------------------------------------------------- // close all valves // ------------------------------------------------------------------------- command = "PR"; parameter = ""; response = ""; errCode = TxRxCommand( iModuleString, command, parameter, response ); if( TRACE_LEVEL_NORMAL < HSLdaisyChainedMediaLine_TrcLvl && errCode != HSLDaisyChainCommunication::ERROR_NONE) FormatTrace( GetFunctionName(), "()", CMD_PROGRESS, " Closing all valves for media line module failed! It is possible that there is no media pump on this line. (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); // ------------------------------------------------------------------------- // close comm. port // ------------------------------------------------------------------------- errCode = HSLDaisyChainCommunication::TerminateDaisyChainCommunication( iModuleString); if( HSLDaisyChainCommunication::ERROR_NONE != errCode && TRACE_LEVEL_NORMAL < HSLdaisyChainedMediaLine_TrcLvl ) { FormatTrace( GetFunctionName(), "()", CMD_PROGRESS, " to media line module failed! It is possible that there is no media pump on this line. (Communication error code = ", errCode, ", error message = ", HSLDaisyChainCommunication::EvaluateCommErrorMessage( errCode ), ")" ); } } MediaLine_ComPorts.RemoveElementAt(0); MediaLine_Modules.RemoveElementAt(0); //iModuleIndex++; } if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, "***END Forced Shutdown***" ); return; errorhandler: { MessageBox("A critical error has occurred when trying to power off the reagent pumps (failed to communicate with pump), please power them off manually!", "Critical Error!"); if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, "***END Forced Shutdown***" ); return; } } function Initialize( variable iModuleIndex, variable iComPort, variable iTraceLevel, variable iSimulate ) variable { variable command; variable parameter; variable response; variable errCode; HSLdaisyChainedMediaLine_SimulationFlag = iSimulate; HSLdaisyChainedMediaLine_TrcLvl = iTraceLevel; if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace(GetFunctionName(), "()", CMD_START, " Initialize media line system #", iModuleIndex, " on COM", iComPort ); // ------------------------------------------------------------------------- // check parameters // ------------------------------------------------------------------------- if(( 1 > iModuleIndex ) || ( 9 < iModuleIndex )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter module index #", iModuleIndex, " out of range [1..9]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } if(( 1 > iComPort) || ( 255 < iComPort )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter comPort #", iComPort, " out of range [1..255]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } // ------------------------------------------------------------------------- // check simulation mode // ------------------------------------------------------------------------- if(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedMediaLine_SimulationFlag )) { if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, " Media line module runs in simulation mode!" ); return( ERROR_NONE ); } // ------------------------------------------------------------------------- // initialize communication port // ------------------------------------------------------------------------- errCode = DecodeCommunicationErrorCode( HSLDaisyChainCommunication::InitializeDaisyChainCommunication( "M" + IStr( iModuleIndex ), iComPort, iTraceLevel )); if( HSLDaisyChainCommunication::ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", HSLDaisyChainCommunication::CMD_ERROR, " for media line module M",iModuleIndex," failed! (Error code = ", errCode, ", error message = ", HSLDaisyChainCommunication::EvaluateCommErrorMessage( errCode ), ")" ); HSLDaisyChainCommunication::TerminateDaisyChainCommunication( "M" + IStr( iModuleIndex )); return( errCode ); } //***************************************** // REFACTOR ME AddToArray("M" + IStr(iModuleIndex), IStr(iComPort)); //MediaLine_Modules.AddAsLast("M" + IStr(iModuleIndex)); //MediaLine_ComPorts.AddAsLast(IStr(iComPort)); //------------------------------------------------------------------------- //reset firmware (with configuring timeouts) //------------------------------------------------------------------------- errCode = TxRxReset( "M" + IStr( iModuleIndex )); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Resetting firmware system of media line module failed! (System M", iModuleIndex, ")" ); return( errCode ); } // ------------------------------------------------------------------------- // transmit clear error command // ------------------------------------------------------------------------- command = "EI"; parameter = ""; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Resetting errors on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); return( errCode ); } // ------------------------------------------------------------------------- // transmit "RF", request firmware version // ------------------------------------------------------------------------- command = "RF"; parameter = ""; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Requesting firmware version of media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); return( errCode ); } if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_PROGRESS, "Firmware version of media line module is ", response ); // ------------------------------------------------------------------------- // transmit "SI", initialize, command // ------------------------------------------------------------------------- //command = "SI"; //parameter = ""; //response = ""; //errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); //if( ERROR_NONE != errCode ) //{ // FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Initializing of media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); // return( errCode ); //} //register the OnAbort error handler to prevent overflows. if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) { FormatTrace(GetFunctionName(), "()", CMD_PROGRESS, "Registering the OnAbort error handler..." ); } RegisterAbortHandler("HSLDaisyChainedMediaLine::OnAbortMediaLine"); if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_PROGRESS, "Completed registering the OnAbort handler..." ); if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET ); return( ERROR_NONE ); } function Terminate(variable iModuleIndex) void { variable command; variable parameter; variable response; variable errCode; if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace(GetFunctionName(), "()", CMD_START, " Module #", iModuleIndex ); // ------------------------------------------------------------------------- // check parameters // ------------------------------------------------------------------------- if(( 1 > iModuleIndex ) || ( 9 < iModuleIndex )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter module index #", iModuleIndex, " out of range [1..9]!" ); return; } // ------------------------------------------------------------------------- // check simulation mode // ------------------------------------------------------------------------- if(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedMediaLine_SimulationFlag )) { if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, " Media line module runs in simulation mode!" ); return; } // ------------------------------------------------------------------------- // stop pumps, close valves // ------------------------------------------------------------------------- TerminateDueToAnError( iModuleIndex ); // ------------------------------------------------------------------------- // close comm. port // ------------------------------------------------------------------------- errCode = HSLDaisyChainCommunication::TerminateDaisyChainCommunication( "M" + IStr( iModuleIndex )); if( HSLDaisyChainCommunication::ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " to media line module failed! (Communication error code = ", errCode, ", error message = ", HSLDaisyChainCommunication::EvaluateCommErrorMessage( errCode ), ")" ); } if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET ); return; } function Prime( variable iModuleIndex, variable iMediumType, variable iMediumPumpTime, variable iMediumPumpPower ) variable { variable command; variable parameter; variable response; variable errCode; if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace(GetFunctionName(), "()", CMD_START, " Media line module #", iModuleIndex, " Prm's: medium type = ", iMediumType, ", medium pump time = ", iMediumPumpTime, ", medium pump power = ", iMediumPumpPower ); // ------------------------------------------------------------------------- // check parameters // ------------------------------------------------------------------------- if(( 1 > iModuleIndex ) || ( 9 < iModuleIndex )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter module index #", iModuleIndex, " out of range [1..9]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } if(( "M" != iMediumType ) && ( "W" != iMediumType ) && ( "E" != iMediumType )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter medium type \"", iMediumType, "\" out of range [\"M\",\"W\",\"E\"]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } if(( 0 > iMediumPumpTime ) || ( 240 < iMediumPumpTime )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter medium pump time = ", iMediumPumpTime, " out of range [0..240]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } if(( 50 > iMediumPumpPower ) || ( 80 < iMediumPumpPower )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter medium power = ", iMediumPumpPower, " out of range [50%..80%]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } // ------------------------------------------------------------------------- // check simulation mode // ------------------------------------------------------------------------- if(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedMediaLine_SimulationFlag )) { if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, " Media line module runs in simulation mode!" ); return( ERROR_NONE ); } // ------------------------------------------------------------------------- // Open desired valve // ------------------------------------------------------------------------- // close all valves command = "PR"; parameter = ""; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " First closing all valves on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // open desired valve command = "PS"; if( "M" == iMediumType ) parameter = VALVE_MEDIUM; else if( "W" == iMediumType ) parameter = VALVE_WATER; else parameter = VALVE_ETHANOL; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Switching valve \"on\" on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // ------------------------------------------------------------------------- // Switching medium pump on // ------------------------------------------------------------------------- // set pumping power command = "PP"; parameter = IStr( Floor( iMediumPumpPower + 0.5 )); response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Setting pumping power on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // set pumping direction command = "PD"; parameter = "0"; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Setting pumping direction on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // start pump command = "PE"; parameter = ""; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Starting pump on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // ------------------------------------------------------------------------- // Wait desired time // ------------------------------------------------------------------------- Delay( iMediumPumpTime ); // ------------------------------------------------------------------------- // Turn medium pump in reversed direction for short time // ------------------------------------------------------------------------- // stop pump command = "PA"; parameter = ""; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Stopping pump on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // set reversed pump direction command = "PD"; parameter = "1"; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Setting reversed pump direction on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // start pump command = "PE"; parameter = ""; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Starting pump on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // wait short time Delay( 1.0 ); // switch pump off command = "PA"; parameter = ""; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Stopping reversed pumping on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // ------------------------------------------------------------------------- // Switch valve off (don't care which was on) // ------------------------------------------------------------------------- // switch all valves off command = "PR"; parameter = ""; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Switching valve(s) \"off\" on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // wait a while Delay( 5.0 ); if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET ); return( ERROR_NONE ); } function ReversePrime( variable iModuleIndex, variable iMediumType, variable iMediumPumpTime, variable iMediumPumpPower ) variable { variable command; variable parameter; variable response; variable errCode; if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace(GetFunctionName(), "()", CMD_START, " Media line module #", iModuleIndex, " Prm's: medium type = ", iMediumType, ", medium pump time = ", iMediumPumpTime, ", medium pump power = ", iMediumPumpPower ); // ------------------------------------------------------------------------- // check parameters // ------------------------------------------------------------------------- if(( 1 > iModuleIndex ) || ( 9 < iModuleIndex )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter module index #", iModuleIndex, " out of range [1..9]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } if(( "M" != iMediumType ) && ( "W" != iMediumType ) && ( "E" != iMediumType )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter medium type \"", iMediumType, "\" out of range [\"M\",\"W\",\"E\"]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } if(( 0 > iMediumPumpTime ) || ( 240 < iMediumPumpTime )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter medium pump time = ", iMediumPumpTime, " out of range [0..240]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } if(( 50 > iMediumPumpPower ) || ( 80 < iMediumPumpPower )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter medium power = ", iMediumPumpPower, " out of range [50%..80%]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } // ------------------------------------------------------------------------- // check simulation mode // ------------------------------------------------------------------------- if(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedMediaLine_SimulationFlag )) { if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, " Media line module runs in simulation mode!" ); return( ERROR_NONE ); } // ------------------------------------------------------------------------- // Open desired valve // ------------------------------------------------------------------------- // close all valves command = "PR"; parameter = ""; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " First closing all valves on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // open desired valve command = "PS"; if( "M" == iMediumType ) parameter = VALVE_MEDIUM; else if( "W" == iMediumType ) parameter = VALVE_WATER; else parameter = VALVE_ETHANOL; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Switching valve \"on\" on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // ------------------------------------------------------------------------- // Switching medium pump on // ------------------------------------------------------------------------- // set pumping power command = "PP"; parameter = IStr( Floor( iMediumPumpPower + 0.5 )); response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Setting pumping power on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // set pumping direction command = "PD"; parameter = "1"; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Setting pumping direction on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // start pump command = "PE"; parameter = ""; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Starting pump on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // ------------------------------------------------------------------------- // Wait desired time // ------------------------------------------------------------------------- Delay( iMediumPumpTime ); // ------------------------------------------------------------------------- // Turn medium pump in reversed direction for short time // ------------------------------------------------------------------------- // stop pump command = "PA"; parameter = ""; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Stopping pump on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // set reversed pump direction command = "PD"; parameter = "0"; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Setting reversed pump direction on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // start pump command = "PE"; parameter = ""; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Starting pump on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // wait short time Delay( 1.0 ); // switch pump off command = "PA"; parameter = ""; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Stopping reversed pumping on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // ------------------------------------------------------------------------- // Switch valve off (don't care which was on) // ------------------------------------------------------------------------- // switch all valves off command = "PR"; parameter = ""; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Switching valve(s) \"off\" on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // wait a while Delay( 5.0 ); if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET ); return( ERROR_NONE ); } function FillWithTimeOut( variable iModuleIndex, variable iMediumPumpTimeout, variable iMediumPumpPower ) variable { variable command; variable parameter; variable response; variable errCode; timer _hamiltonTimerToHandlePumpingLiquid; if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace(GetFunctionName(), "()", CMD_START, " Media line module #", iModuleIndex, ", medium pump timeout = ", iMediumPumpTimeout, ", medium pump power = ", iMediumPumpPower ); // ------------------------------------------------------------------------- // check parameters // ------------------------------------------------------------------------- if(( 1 > iModuleIndex ) || ( 9 < iModuleIndex )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter module index #", iModuleIndex, " out of range [1..9]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } if(( 0 > iMediumPumpTimeout ) || ( 240 < iMediumPumpTimeout )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter medium pump timeout = ", iMediumPumpTimeout, " out of range [0..240]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } if(( 50 > iMediumPumpPower ) || ( 80 < iMediumPumpPower )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter medium power = ", iMediumPumpPower, " out of range [50%..80%]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } // ------------------------------------------------------------------------- // check simulation mode // ------------------------------------------------------------------------- if(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedMediaLine_SimulationFlag )) { if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, " Media line module runs in simulation mode!" ); return( ERROR_NONE ); } // ------------------------------------------------------------------------- // Start medium pump // ------------------------------------------------------------------------- // set pumping power command = "PP"; parameter = IStr( Floor( iMediumPumpPower + 0.5 )); response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Setting pumping power on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } //we have come to the spot where we would normally fill the trough, //start a timer to measure how long the trough has been filling _hamiltonTimerToHandlePumpingLiquid.SetTimer(iMediumPumpTimeout); //start filling the trough command = "PE"; parameter = ""; response = ""; errCode = TxRxCommand("M" + IStr(iModuleIndex), command, parameter, response); if(ERROR_NONE != errCode) { FormatTrace(GetFunctionName(), "()", CMD_ERROR, " Failed to start the pump to fill the trough. (System M", iModuleIndex, ". TxRxCommand(", command, parameter, "), reponse = <", response, ">"); TerminateDueToAnError(iModuleIndex); return (errCode); } if( 0 == _hamiltonTimerToHandlePumpingLiquid.WaitTimer(hslFalse, hslFalse) ) { break; //immediate shut-off } //finally, let's shut off the motor: command = "PA"; parameter = ""; response = ""; errCode = TxRxCommand("M" + IStr(iModuleIndex), command, parameter, response); if(ERROR_NONE != errCode) { FormatTrace(GetFunctionName(), "()", CMD_ERROR, " Failed to shut off the motor. (System M", iModuleIndex, ". TxRxCommand(", command, parameter, ") response = <", response, ">"); TerminateDueToAnError(iModuleIndex); return (errCode); } if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET ); return( ERROR_NONE ); } function Fill( variable iModuleIndex, variable iMediumType, variable iMediumPumpTimeout, variable iMediumPumpPower ) variable { variable command; variable parameter; variable response; variable errCode; variable liquidLevel; if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace(GetFunctionName(), "()", CMD_START, " Media line module #", iModuleIndex, " Prm's: medium type = ", iMediumType, ", medium pump timeout = ", iMediumPumpTimeout, ", medium pump power = ", iMediumPumpPower ); // ------------------------------------------------------------------------- // check parameters // ------------------------------------------------------------------------- if(( 1 > iModuleIndex ) || ( 9 < iModuleIndex )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter module index #", iModuleIndex, " out of range [1..9]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } if(( "M" != iMediumType ) && ( "W" != iMediumType ) && ( "E" != iMediumType )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter medium type \"", iMediumType, "\" out of range [\"M\",\"W\",\"E\"]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } if(( 0 > iMediumPumpTimeout ) || ( 240 < iMediumPumpTimeout )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter medium pump timeout = ", iMediumPumpTimeout, " out of range [0..240]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } if(( 50 > iMediumPumpPower ) || ( 80 < iMediumPumpPower )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter medium power = ", iMediumPumpPower, " out of range [50%..80%]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } // ------------------------------------------------------------------------- // check simulation mode // ------------------------------------------------------------------------- if(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedMediaLine_SimulationFlag )) { if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, " Media line module runs in simulation mode!" ); return( ERROR_NONE ); } // ------------------------------------------------------------------------- // Open desired valve // ------------------------------------------------------------------------- // close all valves command = "PR"; parameter = ""; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " First closing all valves on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // open desired valve command = "PS"; if( "M" == iMediumType ) parameter = VALVE_MEDIUM; else if( "W" == iMediumType ) parameter = VALVE_WATER; else parameter = VALVE_ETHANOL; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Switching valve \"on\" on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // ------------------------------------------------------------------------- // Start medium pump // ------------------------------------------------------------------------- // set pumping power command = "PP"; parameter = IStr( Floor( iMediumPumpPower + 0.5 )); response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Setting pumping power on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } //we have come to the spot where we would normally fill the trough, //first, let's check that the trough is not already full //or use the request level sensor method RequestLevelSensor(iModuleIndex, liquidLevel); if(liquidLevel != "full") { //start a timer to measure how long the trough has been filling timer _hamiltonTimerToHandlePumpingLiquid; _hamiltonTimerToHandlePumpingLiquid.SetTimer(iMediumPumpTimeout); //start filling the trough command = "PE"; parameter = ""; response = ""; errCode = TxRxCommand("M" + IStr(iModuleIndex), command, parameter, response); if(ERROR_NONE != errCode) { FormatTrace(GetFunctionName(), "()", CMD_ERROR, " Failed to start the pump to fill the trough. (System M", iModuleIndex, ". TxRxCommand(", command, parameter, "), reponse = <", response, ">"); TerminateDueToAnError(iModuleIndex); return (errCode); } while(liquidLevel != "full") { if(_hamiltonTimerToHandlePumpingLiquid.GetElapsedTime() > iMediumPumpTimeout) break; //check that the trough is not full RequestLevelSensor(iModuleIndex, liquidLevel); } //finally, let's shut off the motor: command = "PA"; parameter = ""; response = ""; errCode = TxRxCommand("M" + IStr(iModuleIndex), command, parameter, response); if(ERROR_NONE != errCode) { FormatTrace(GetFunctionName(), "()", CMD_ERROR, " Failed to shut off the motor. (System M", iModuleIndex, ". TxRxCommand(", command, parameter, ") response = <", response, ">"); TerminateDueToAnError(iModuleIndex); return (errCode); } } // fill with movement and time out supervision command = "FM"; parameter = ""; response = ""; //errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Pumping on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } // ------------------------------------------------------------------------- // Close any valve // ------------------------------------------------------------------------- command = "PR"; parameter = ""; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Closing any valve on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); TerminateDueToAnError( iModuleIndex ); return( errCode ); } if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET ); return( ERROR_NONE ); } function RequestLevelSensor( variable iModuleIndex, variable & oLevelState ) variable { variable command; variable parameter; variable response; variable errCode; if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace(GetFunctionName(), "()", CMD_START, " Media line module #", iModuleIndex ); // ------------------------------------------------------------------------- // initialize output parameters // ------------------------------------------------------------------------- oLevelState = ""; // ------------------------------------------------------------------------- // check parameters // ------------------------------------------------------------------------- if(( 1 > iModuleIndex ) || ( 9 < iModuleIndex )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter module index #", iModuleIndex, " out of range [1..9]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } // ------------------------------------------------------------------------- // check simulation mode // ------------------------------------------------------------------------- if(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedMediaLine_SimulationFlag )) { if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, " Media line module runs in simulation mode!" ); return( ERROR_NONE ); } // ------------------------------------------------------------------------- // request level sensor state // ------------------------------------------------------------------------- command = "RC"; parameter = ""; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Requesting capacitive level sensor on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); return( errCode ); } // ------------------------------------------------------------------------- // decode level sensor state // ------------------------------------------------------------------------- if( "E" == StrMid( response, 11, 1 )) oLevelState = "empty"; else oLevelState = "full"; if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, " Capacitive level sensor's state is \"", oLevelState, "\"" ); return( ERROR_NONE ); } function OpenValvesForMaintenance( variable iModuleIndex ) { variable command; variable parameter; variable response; variable errCode; if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace(GetFunctionName(), "()", CMD_START, " Media line module #", iModuleIndex ); // ------------------------------------------------------------------------- // check parameters // ------------------------------------------------------------------------- if(( 1 > iModuleIndex ) || ( 9 < iModuleIndex )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter module index #", iModuleIndex, " out of range [1..9]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } // ------------------------------------------------------------------------- // check simulation mode // ------------------------------------------------------------------------- if(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedMediaLine_SimulationFlag )) { if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, " Media line module runs in simulation mode!" ); return( ERROR_NONE ); } // ------------------------------------------------------------------------- // open all valves (for medium, water, and ethanol) // ------------------------------------------------------------------------- command = "PS"; parameter = VALVE_MEDIUM; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Opening valve for medium on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); return( errCode ); } command = "PS"; parameter = VALVE_ETHANOL; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Opening valve for ethanol on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); return( errCode ); } command = "PS"; parameter = VALVE_WATER; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Opening valve for water on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); return( errCode ); } // ------------------------------------------------------------------------- // hold valves open for 2 minutes // ------------------------------------------------------------------------- Delay( 120 ); // ------------------------------------------------------------------------- // close all valves // ------------------------------------------------------------------------- command = "PR"; parameter = ""; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Closing all valves on media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); return( errCode ); } if( TRACE_LEVEL_NONE < HSLdaisyChainedMediaLine_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET ); return( ERROR_NONE ); } function EvaluateErrorMessage( variable iErrorCode ) string { if( iErrorCode == ERROR_NONE ) return( ERROR_MSG_NONE ); else if( iErrorCode == ERROR_COMM_ALREADY_INIT ) return( ERROR_MSG_COMM_ALREADY_INIT ); else if( iErrorCode == ERROR_PRM_OUT_OF_RANGE ) return( ERROR_MSG_PRM_OUT_OF_RANGE ); else if( iErrorCode == ERROR_FALSE_COMM_PORT ) return( ERROR_MSG_FALSE_COMM_PORT ); else if( iErrorCode == ERROR_HSL_FUNCTION_FAILED ) return( ERROR_MSG_HSL_FUNCTION_FAILED ); else if( iErrorCode == ERROR_WRITE_RECORD_FAILED ) return( ERROR_MSG_WRITE_RECORD_FAILED ); else if( iErrorCode == ERROR_READ_RECORD_FAILED ) return( ERROR_MSG_READ_RECORD_FAILED ); else if( iErrorCode == ERROR_UNEXPECTED_TXRX_COMMAND ) return( ERROR_MSG_UNEXPECTED_TXRX_COMMAND ); else if( iErrorCode == ERROR_UNEXPECTED_TXRX_RESET ) return( ERROR_MSG_UNEXPECTED_TXRX_RESET ); else if( iErrorCode == ERROR_INIT_NOT_FOUND ) return( ERROR_MSG_INIT_NOT_FOUND ); else if( iErrorCode == ERROR_STEP_LOST ) return( ERROR_MSG_STEP_LOST ); else if( iErrorCode == ERROR_NOT_INITIALIZED ) return( ERROR_MSG_NOT_INITIALIZED ); else if( iErrorCode == ERROR_PARALLEL_ERROR ) return( ERROR_MSG_PARALLEL_ERROR ); else if( iErrorCode == ERROR_STEPPER_MOTOR_HW_DEFECTIVE ) return( ERROR_MSG_STEPPER_MOTOR_HW_DEFECTIVE ); else if( iErrorCode == ERROR_CMD_UNKNOWN ) return( ERROR_MSG_CMD_UNKNOWN ); else if( iErrorCode == ERROR_UNKNOWN_DEVICE_NAME ) return( ERROR_MSG_UNKNOWN_DEVICE_NAME ); else if( iErrorCode == ERROR_PERISTALTIC_PUMP_OVERLOAD ) return( ERROR_MSG_PERISTALTIC_PUMP_OVERLOAD ); else if( iErrorCode == ERROR_PERISTALTIC_PUMP_TIMEOUT ) return( ERROR_MSG_PERISTALTIC_PUMP_TIMEOUT ); else if( iErrorCode == ERROR_UNKNOWN_ERROR_CODE ) return( ERROR_MSG_UNKNOWN_ERROR_CODE ); else return( ERROR_MSG_UNKNOWN_ERROR_CODE ); } static function DecodeMediaLineModuleErrorCode( variable iErrCode ) variable { if( 0 == iErrCode ) return( ERROR_NONE ); else if( 1 == iErrCode ) return( ERROR_INIT_NOT_FOUND ); else if( 2 == iErrCode ) return( ERROR_STEP_LOST ); else if( 3 == iErrCode ) return( ERROR_NOT_INITIALIZED ); else if( 4 == iErrCode ) return( ERROR_PARALLEL_ERROR ); else if( 5 == iErrCode ) return( ERROR_STEPPER_MOTOR_HW_DEFECTIVE ); else if( 6 == iErrCode ) return( ERROR_PRM_OUT_OF_RANGE ); else if( 7 == iErrCode ) return( ERROR_CMD_UNKNOWN ); else if( 8 == iErrCode ) return( ERROR_PERISTALTIC_PUMP_OVERLOAD ); else if( 9 == iErrCode ) return( ERROR_PERISTALTIC_PUMP_TIMEOUT ); else return( ERROR_UNKNOWN_ERROR_CODE ); } static function DecodeCommunicationErrorCode( variable iErrCode ) variable { if( HSLDaisyChainCommunication::ERROR_NONE == iErrCode ) return( ERROR_NONE ); else if( HSLDaisyChainCommunication::ERROR_ALREADY_INITIALIZED == iErrCode ) return( ERROR_COMM_ALREADY_INIT ); else if( HSLDaisyChainCommunication::ERROR_PARAMETER_OUT_OF_RANGE == iErrCode ) return( ERROR_PRM_OUT_OF_RANGE ); else if( HSLDaisyChainCommunication::ERROR_FALSE_COMM_PORT == iErrCode ) return( ERROR_FALSE_COMM_PORT ); else if( HSLDaisyChainCommunication::ERROR_HSL_FUNCTION_FAILED == iErrCode ) return( ERROR_HSL_FUNCTION_FAILED ); else if( HSLDaisyChainCommunication::ERROR_WRITE_RECORD_FAILED == iErrCode ) return( ERROR_WRITE_RECORD_FAILED ); else if( HSLDaisyChainCommunication::ERROR_READ_RECORD_FAILED == iErrCode ) return( ERROR_READ_RECORD_FAILED ); else if( HSLDaisyChainCommunication::ERROR_UNEXPECTED_TXRX_COMMAND == iErrCode ) return( ERROR_UNEXPECTED_TXRX_COMMAND ); else if( HSLDaisyChainCommunication::ERROR_UNEXPECTED_TXRX_RESET == iErrCode ) return( ERROR_UNEXPECTED_TXRX_RESET ); else return( ERROR_UNKNOWN_ERROR_CODE ); } static function TxRxCommand( variable iModuleIndex, variable iCommand, variable iParameter, variable & oResponse ) variable { variable errCode; errCode = HSLDaisyChainCommunication::DaisyChainedTxRxCommand( iModuleIndex, iCommand, iParameter, oResponse ); if( HSLDaisyChainCommunication::ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Communication error occurred! (System #", iModuleIndex, ", Error Text: ", HSLDaisyChainCommunication::EvaluateCommErrorMessage( errCode ), ")" ); return( DecodeCommunicationErrorCode( errCode )); } if( StrGetLength( oResponse ) < 8 ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Length of response too short! (System #", iModuleIndex, ", Error Text: ", EvaluateErrorMessage( ERROR_UNKNOWN_DEVICE_NAME ), ")" ); return( ERROR_UNKNOWN_DEVICE_NAME ); } errCode = DecodeMediaLineModuleErrorCode( IVal( StrMid( oResponse, 6, 2 ))); if( errCode != ERROR_NONE ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Media line module error occurred! (System #", iModuleIndex, ", Error Text: ", EvaluateErrorMessage( errCode ), ")" ); } return( errCode ); } static function TxRxReset( variable iModuleIndex ) variable { variable errCode; variable response; errCode = HSLDaisyChainCommunication::DaisyChainedTxRxReset( iModuleIndex, response ); if( HSLDaisyChainCommunication::ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Communication error occurred! (System #", iModuleIndex, ", Error Text: ", HSLDaisyChainCommunication::EvaluateCommErrorMessage( errCode ), ")" ); return( DecodeCommunicationErrorCode( errCode )); } if( StrGetLength( response ) < 8 ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Length of response too short! (System #", iModuleIndex, ", Error Text: ", EvaluateErrorMessage( ERROR_UNKNOWN_DEVICE_NAME ), ")" ); return( ERROR_UNKNOWN_DEVICE_NAME ); } errCode = DecodeMediaLineModuleErrorCode( IVal( StrMid( response, 6, 2 ))); if( errCode != ERROR_NONE ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Media line module error occurred! (System #", iModuleIndex, ", Error Text: ", EvaluateErrorMessage( errCode ), ")" ); } return( errCode ); } static function Delay( variable iTime ) void { timer t1; t1.SetTimer( iTime ); t1.WaitTimer( hslFalse, hslFalse ); } static function TerminateDueToAnError( variable iModuleIndex ) void { variable command; variable parameter; variable response; variable errCode; // ------------------------------------------------------------------------- // Stop medium pump // ------------------------------------------------------------------------- command = "PA"; parameter = ""; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Stopping medium pump for media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); // ------------------------------------------------------------------------- // close all valves // ------------------------------------------------------------------------- command = "PR"; parameter = ""; response = ""; errCode = TxRxCommand( "M" + IStr( iModuleIndex ), command, parameter, response ); if( ERROR_NONE != errCode ) FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Closing all valves for media line module failed! (System M", iModuleIndex, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); } static function AddToArray(variable iModuleString, variable iComPort) variable { variable index(0); variable compareString(""); while(index < MediaLine_Modules.GetSize()) { compareString = MediaLine_Modules.GetAt(index); if(compareString == iModuleString) { return (hslFalse); } index++; } MediaLine_Modules.AddAsLast(iModuleString); MediaLine_ComPorts.AddAsLast(iComPort); return (hslTrue); } } //end namespace /* private function DisplayErrorAndTerminate( variable iSystemId, variable iErrorCode ) void { dialog d1; variable errMsg; errMsg = HSLDaisyChainedMediaLine::EvaluateErrorMessage( iErrorCode ); d1.SetOutput( "Module #", iSystemId, " failed!\nError code = ", iErrorCode, ": ", errMsg ); d1.ShowOutput( "Error raised!", hslOKOnly | hslInformation | hslDefButton1, hslInfinite ); HSLDaisyChainedMediaLine::Terminate( 1 ); HSLDaisyChainedMediaLine::Terminate( 2 ); HSLDaisyChainedMediaLine::Terminate( 3 ); abort; } method main( ) void { variable errCode; variable myModule; variable myComPort( 3 ); variable myWater ( "W" ); variable myEthanol( "E" ); variable myMedium ( "M" ); variable myPrimeTime( 5 ); variable myFillTimeout( 10 ); variable myPowerW( 66 ); variable myPowerE( 72 ); variable myPowerM( 52 ); variable mySelection; variable myLevelStatus; dialog d1; // initialize all modules for( myModule = 1; myModule <= 3; myModule++ ) { errCode = HSLDaisyChainedMediaLine::Initialize( myModule, myComPort, HSLDaisyChainedMediaLine::TRACE_LEVEL_FULL, HSLDaisyChainedMediaLine::HSL_FALSE); if( errCode != HSLDaisyChainedMediaLine::ERROR_NONE ) DisplayErrorAndTerminate( myModule, errCode ); } // request level sensors for( myModule = 1; myModule <= 3; myModule++ ) { mySelection = 6; while( mySelection == 6 ) { errCode = HSLDaisyChainedMediaLine::RequestLevelSensor( myModule, myLevelStatus ); if( errCode != HSLDaisyChainedMediaLine::ERROR_NONE ) DisplayErrorAndTerminate( myModule, errCode ); if( myLevelStatus == "empty" ) { d1.SetOutput( "The level sensor #", myModule, " did NOT detect a fluid.\nDo you want to request level sensor of module #", myModule, " once again?" ); mySelection = d1.ShowOutput( "Level sensor", hslYesNo | hslInformation | hslDefButton1, hslInfinite ); } else { d1.SetOutput( "The level sensor #", myModule, " detected a fluid.\nDo you want to request level sensor of module #", myModule, " once again?" ); mySelection = d1.ShowOutput( "Level sensor", hslYesNo | hslInformation | hslDefButton1, hslInfinite ); } } } // prime all modules for( myModule = 1; myModule <= 3; myModule++ ) { if( myModule == 1 ) errCode = HSLDaisyChainedMediaLine::Prime( myModule, myWater, myPrimeTime, myPowerW ); else if( myModule == 2 ) errCode = HSLDaisyChainedMediaLine::Prime( myModule, myEthanol, myPrimeTime, myPowerE ); else errCode = HSLDaisyChainedMediaLine::Prime( myModule, myMedium, myPrimeTime, myPowerM ); if( errCode != HSLDaisyChainedMediaLine::ERROR_NONE ) DisplayErrorAndTerminate( myModule, errCode ); } // fill all modules for( myModule = 1; myModule <= 3; myModule++ ) { if( myModule == 1 ) errCode = HSLDaisyChainedMediaLine::Fill( myModule, myWater, myFillTimeout, myPowerW ); else if( myModule == 2 ) errCode = HSLDaisyChainedMediaLine::Fill( myModule, myEthanol, myFillTimeout, myPowerE ); else errCode = HSLDaisyChainedMediaLine::Fill( myModule, myMedium, myFillTimeout, myPowerM ); if( errCode != HSLDaisyChainedMediaLine::ERROR_NONE ) DisplayErrorAndTerminate( myModule, errCode ); } // do maintenance for( myModule = 1; myModule <= 3; myModule++ ) { errCode = HSLDaisyChainedMediaLine::OpenValvesForMaintenance( myModule ); if( errCode != HSLDaisyChainedMediaLine::ERROR_NONE ) DisplayErrorAndTerminate( myModule, errCode ); } // terminate all modules for( myModule = 1; myModule <= 3; myModule++ ) { HSLDaisyChainedMediaLine::Terminate( myModule ); } } */ #endif // $$author=Kubala_S$$valid=0$$time=2017-02-14 13:05$$checksum=91ae1722$$length=087$$ ================================================ FILE: pyhamilton/library/HSLDaisyChainedTiltModule.hsl ================================================ // =========================================================================== // Interface of the daisy chained Tilt-Module library // // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // All rights reserved. // =========================================================================== // // Modification History // 2008-07-08, V1.0: Ruedi Vogel, created, based on V1.4 Tilt-Module // // =========================================================================== #ifndef __HSLDaisyChainedTiltModule_hsl__ #define __HSLDaisyChainedTiltModule_hsl__ 1 #ifndef __HSLStrLib_hsl__ #include "HSLStrLib.hsl" #endif #ifndef __HSLMthLib_hsl__ #include "HSLMthLib.hsl" #endif #ifndef __HSL_DaisyChainCommunication_hsl__ #include "HSLDaisyChainCommunication.hsl" #endif namespace HSLDaisyChainedTiltModule { /********************************************************************* * * Exported return constants * *********************************************************************/ const static variable CMD_START ( 1 ); const static variable CMD_COMPLET ( 2 ); const static variable CMD_ERROR ( 5 ); // to prevent suspicious Phoenix error messages const static variable CMD_PROGRESS( 4 ); const static variable CMD_ERRCOMPL( 5 ); const variable TRACE_LEVEL_NONE ( 0 ); const variable TRACE_LEVEL_NORMAL ( 1 ); const variable TRACE_LEVEL_FULL ( 2 ); const variable HSL_FALSE ( hslFalse ); const variable HSL_TRUE ( hslTrue ); const variable ERROR_NONE ( 0 ); const variable ERROR_COMM_ALREADY_INIT ( 1 ); const variable ERROR_PRM_OUT_OF_RANGE ( 2 ); const variable ERROR_FALSE_COMM_PORT ( 3 ); const variable ERROR_HSL_FUNCTION_FAILED ( 4 ); const variable ERROR_WRITE_RECORD_FAILED ( 5 ); const variable ERROR_READ_RECORD_FAILED ( 6 ); const variable ERROR_UNEXPECTED_TXRX_COMMAND ( 7 ); const variable ERROR_UNEXPECTED_TXRX_RESET ( 8 ); const variable ERROR_INIT_NOT_FOUND ( 9 ); const variable ERROR_STEP_LOST ( 10 ); const variable ERROR_NOT_INITIALIZED ( 11 ); const variable ERROR_PARALLEL_ERROR ( 12 ); const variable ERROR_STEPPER_MOTOR_HW_DEFECTIVE ( 13 ); const variable ERROR_CMD_UNKNOWN ( 14 ); const variable ERROR_TEMP_SENSOR_DEFECTIVE ( 15 ); const variable ERROR_TEMP_CONTROLLER_DEFECTIVE ( 16 ); const variable ERROR_UNKNOWN_DEVICE_NAME ( 17 ); const variable ERROR_UNKNOWN_ERROR_CODE ( 18 ); const static string ERROR_MSG_NONE ( "No error." ); const static string ERROR_MSG_COMM_ALREADY_INIT ( HSLDaisyChainCommunication::ERROR_MSG_ALREADY_INITIALIZED ); const static string ERROR_MSG_PRM_OUT_OF_RANGE ( HSLDaisyChainCommunication::ERROR_MSG_PARAMETER_OUT_OF_RANGE ); const static string ERROR_MSG_FALSE_COMM_PORT ( HSLDaisyChainCommunication::ERROR_MSG_FALSE_COMM_PORT ); const static string ERROR_MSG_HSL_FUNCTION_FAILED ( HSLDaisyChainCommunication::ERROR_MSG_HSL_FUNCTION_FAILED ); const static string ERROR_MSG_WRITE_RECORD_FAILED ( HSLDaisyChainCommunication::ERROR_MSG_WRITE_RECORD_FAILED ); const static string ERROR_MSG_READ_RECORD_FAILED ( HSLDaisyChainCommunication::ERROR_MSG_READ_RECORD_FAILED ); const static string ERROR_MSG_UNEXPECTED_TXRX_COMMAND ( HSLDaisyChainCommunication::ERROR_MSG_UNEXPECTED_TXRX_COMMAND ); const static string ERROR_MSG_UNEXPECTED_TXRX_RESET ( HSLDaisyChainCommunication::ERROR_MSG_UNEXPECTED_TXRX_RESET ); const static string ERROR_MSG_INIT_NOT_FOUND ( "Init position not found!" ); const static string ERROR_MSG_STEP_LOST ( "Steps lost (overload)!" ); const static string ERROR_MSG_NOT_INITIALIZED ( "Drive not initialized!" ); const static string ERROR_MSG_PARALLEL_ERROR ( "Parallel functions not allowed!" ); const static string ERROR_MSG_STEPPER_MOTOR_HW_DEFECTIVE ( "Stepper motor power amp defective!" ); const static string ERROR_MSG_CMD_UNKNOWN ( "Unknown command!" ); const static string ERROR_MSG_TEMP_SENSOR_DEFECTIVE ( "Temperature sensor defective!" ); const static string ERROR_MSG_TEMP_CONTROLLER_DEFECTIVE ( "Temperature controoller defective!" ); const static string ERROR_MSG_UNKNOWN_DEVICE_NAME ( "Unknown device name (module identifier)!" ); const static string ERROR_MSG_UNKNOWN_ERROR_CODE ( "Unknown error code!" ); /********************************************************************* * * Module globale constants/variables * *********************************************************************/ static global variable HSLdaisyChainedTiltModule_SimulationFlag( HSL_FALSE ); static global variable HSLdaisyChainedTiltModule_TrcLvl( TRACE_LEVEL_NORMAL ); /********************************************************************* * * Declarations * *********************************************************************/ function Initialize( variable iModuleName, variable iComPort, variable iTraceLevel, variable iSimulate ) variable; function Terminate( variable iModuleName ) variable; function MoveToPosition( variable iModuleName, variable iAngle ) variable; function StartTempCntr( variable iModuleName, variable iTemperature ) variable; function StopTempCntr( variable iModuleName ) variable; function RequestTemp( variable iModuleName, variable & oTemperature1, variable & oTemperature2 ) variable; function EvaluateErrorMessage( variable iErrorCode ) string; private function ValveOn( variable iModuleName, variable iValve ) variable; private function ValveOff( variable iModuleName, variable iValve ) variable; private function SetPort( variable iModuleName, variable iPort ) variable; private function ClearPort( variable iModuleName, variable iPort ) variable; static function DecodeTiltModuleErrorCode( variable iErrCode ) variable; static function DecodeCommunicationErrorCode( variable iErrCode ) variable; static function TxRxCommand( variable iModuleName, variable iCommand, variable iParameter, variable & oResponse ) variable; static function TxRxReset( variable iModuleName ) variable; /********************************************************************* * * Implementations * *********************************************************************/ function Initialize( variable iModuleName, variable iComPort, variable iTraceLevel, variable iSimulate ) variable { variable command; variable parameter; variable response; variable errCode; HSLdaisyChainedTiltModule_SimulationFlag = iSimulate; HSLdaisyChainedTiltModule_TrcLvl = iTraceLevel; if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace(GetFunctionName(), "()", CMD_START, " Initialize system #", iModuleName, " on COM", iComPort ); // ------------------------------------------------------------------------- // check parameters // ------------------------------------------------------------------------- if(( 1 > iComPort) || ( 255 < iComPort )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter comPort #", iComPort, " out of range [1..255]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } // ------------------------------------------------------------------------- // check simulation mode // ------------------------------------------------------------------------- if(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedTiltModule_SimulationFlag )) { if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, " Tilt module runs in simulation mode!" ); return( ERROR_NONE ); } // ------------------------------------------------------------------------- // initialize communication port // ------------------------------------------------------------------------- errCode = DecodeCommunicationErrorCode( HSLDaisyChainCommunication::InitializeDaisyChainCommunication( iModuleName, iComPort, iTraceLevel )); if( HSLDaisyChainCommunication::ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", HSLDaisyChainCommunication::CMD_ERROR, " for module ",iModuleName," failed! (Error code = ", errCode, ", error message = ", HSLDaisyChainCommunication::EvaluateCommErrorMessage( errCode ), ")" ); HSLDaisyChainCommunication::TerminateDaisyChainCommunication( iModuleName ); return( errCode ); } // ------------------------------------------------------------------------- // reset firmware (with configuring timeouts) // ------------------------------------------------------------------------- errCode = TxRxReset( iModuleName ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Resetting firmware system of tilt module failed! (System #", iModuleName, ")" ); return( errCode ); } // ------------------------------------------------------------------------- // transmit clear error command // ------------------------------------------------------------------------- command = "EI"; parameter = ""; response = ""; errCode = TxRxCommand( iModuleName, command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Resetting errors on tilt module failed! (System #", iModuleName, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); return( errCode ); } // ------------------------------------------------------------------------- // transmit "RF", request firmware version, command and ignore response // ------------------------------------------------------------------------- command = "RF"; parameter = ""; response = ""; errCode = TxRxCommand( iModuleName, command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Requesting firmware version of tilt module failed! (System #", iModuleName, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); return( errCode ); } if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_PROGRESS, "Firmware version of tilt module <", iModuleName, "> is ", response ); // ------------------------------------------------------------------------- // transmit "SI", initialize, command // ------------------------------------------------------------------------- command = "SI"; parameter = ""; response = ""; errCode = TxRxCommand( iModuleName, command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Initializing of tilt module failed! (System #", iModuleName, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); return( errCode ); } if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET ); return( ERROR_NONE ); } function Terminate( variable iModuleName ) variable { variable ret( 0 ); variable command; variable parameter; variable response; variable errCode; if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace(GetFunctionName(), "()", CMD_START, " Module #", iModuleName ); // ------------------------------------------------------------------------- // check simulation mode // ------------------------------------------------------------------------- if(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedTiltModule_SimulationFlag )) { if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, " Tilt module runs in simulation mode!" ); return( ERROR_NONE ); } // ------------------------------------------------------------------------- // transmit "GP0", Go to horizontal position, command // ------------------------------------------------------------------------- command = "GP"; parameter = "0"; response = ""; errCode = TxRxCommand( iModuleName, command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Moving to zero position on tilt module failed! (System #", iModuleName, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); ret++; } // ------------------------------------------------------------------------- // transmit "PO", Power off, command // ------------------------------------------------------------------------- command = "PO"; parameter = ""; response = ""; errCode = TxRxCommand( iModuleName, command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Powering off of tilt module failed! (System #", iModuleName, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); ret++; } // ------------------------------------------------------------------------- // transmit "TO", Temperature controller off, command // ------------------------------------------------------------------------- command = "TO"; parameter = ""; response = ""; errCode = TxRxCommand( iModuleName, command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Switching temperature controller off of tilt module failed! (System #", iModuleName, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); ret++; } // ------------------------------------------------------------------------- // close comm. port // ------------------------------------------------------------------------- errCode = HSLDaisyChainCommunication::TerminateDaisyChainCommunication( iModuleName ); if( HSLDaisyChainCommunication::ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " to tilt module <", iModuleName, "> failed! (Communication error code = ", errCode, ", error message = ", HSLDaisyChainCommunication::EvaluateCommErrorMessage( errCode ), ")" ); ret++; } if( 0 < ret ) return( ERROR_UNKNOWN_ERROR_CODE ); if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET ); return( ERROR_NONE ); } function MoveToPosition( variable iModuleName, variable iAngle ) variable { variable command; variable parameter; variable response; variable errCode; if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace(GetFunctionName(), "()", CMD_START, " Module #", iModuleName, "to position: angle = ", iAngle ); // ------------------------------------------------------------------------- // check parameters // ------------------------------------------------------------------------- if(( 0 > iAngle) || ( 10 < iAngle )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter angle = ", iAngle, " out of range [0..10]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } // ------------------------------------------------------------------------- // check simulation mode // ------------------------------------------------------------------------- if(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedTiltModule_SimulationFlag )) { if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, " Tilt module runs in simulation mode!" ); return( ERROR_NONE ); } // ------------------------------------------------------------------------- // transmit "GP", go to position, command // ------------------------------------------------------------------------- command = "GP"; parameter = IStr( iAngle ); response = ""; errCode = TxRxCommand( iModuleName, command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Moving tilt module failed! (System #", iModuleName, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); return( errCode ); } if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET ); return( ERROR_NONE ); } function StartTempCntr( variable iModuleName, variable iTemperature ) variable { variable command; variable parameter; variable response; variable errCode; if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace(GetFunctionName(), "()", CMD_START, " Module #", iModuleName, "to temperature = ", iTemperature ); // ------------------------------------------------------------------------- // check parameters // ------------------------------------------------------------------------- if(( 10.0 > iTemperature) || ( 50.0 < iTemperature )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter temperature = ", iTemperature, " out of range [10.0..50.0]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } // ------------------------------------------------------------------------- // check simulation mode // ------------------------------------------------------------------------- if(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedTiltModule_SimulationFlag )) { if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, " Tilt module runs in simulation mode!" ); return( ERROR_NONE ); } // ------------------------------------------------------------------------- // transmit "ST", set temperature, command // ------------------------------------------------------------------------- command = "ST"; parameter = IStr( MthFloor( iTemperature * 10 )); response = ""; errCode = TxRxCommand( iModuleName, command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Starting temperature controller on tilt module failed! (System #", iModuleName, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); return( errCode ); } if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET ); return( ERROR_NONE ); } function StopTempCntr( variable iModuleName ) variable { variable command; variable parameter; variable response; variable errCode; if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace(GetFunctionName(), "()", CMD_START, " Module #", iModuleName ); // ------------------------------------------------------------------------- // check simulation mode // ------------------------------------------------------------------------- if(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedTiltModule_SimulationFlag )) { if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, " Tilt module runs in simulation mode!" ); return( ERROR_NONE ); } // ------------------------------------------------------------------------- // transmit "TO", temperature controller off, command // ------------------------------------------------------------------------- command = "TO"; parameter = ""; response = ""; errCode = TxRxCommand( iModuleName, command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Stopping temperature controller on tilt module failed! (System #", iModuleName, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); return( errCode ); } if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET ); return( ERROR_NONE ); } function RequestTemp( variable iModuleName, variable & oTemperature1, variable & oTemperature2 ) variable { variable command; variable parameter; variable response; variable errCode; if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace(GetFunctionName(), "()", CMD_START, " Module #", iModuleName ); oTemperature1 = 0.0; oTemperature2 = 0.0; // ------------------------------------------------------------------------- // check simulation mode // ------------------------------------------------------------------------- if(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedTiltModule_SimulationFlag )) { if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, " Tilt module runs in simulation mode!" ); return( ERROR_NONE ); } // ------------------------------------------------------------------------- // transmit "RT", request temperature, command // ------------------------------------------------------------------------- command = "RT"; parameter = ""; response = ""; errCode = TxRxCommand( iModuleName, command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Requesting temperature sensors on tilt module failed! (System #", iModuleName, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); return( errCode ); } // ------------------------------------------------------------------------- // evaluate both temperature sensors values // ------------------------------------------------------------------------- response = StrMid( response, 8, StrGetLength( response )); oTemperature1 = StrFVal( StrLeft( response, StrFind( response, " " ))) / 10; oTemperature2 = StrFVal( StrRight( response, StrGetLength( response ) - StrFind( response, " " ) - 1 )) / 10; if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, " Values of temperature sensors: T1 = ", oTemperature1, "C, T2 = ", oTemperature2, "C" ); return( ERROR_NONE ); } function EvaluateErrorMessage( variable iErrorCode ) string { if( iErrorCode == ERROR_NONE ) return( ERROR_MSG_NONE ); else if( iErrorCode == ERROR_COMM_ALREADY_INIT ) return( ERROR_MSG_COMM_ALREADY_INIT ); else if( iErrorCode == ERROR_PRM_OUT_OF_RANGE ) return( ERROR_MSG_PRM_OUT_OF_RANGE ); else if( iErrorCode == ERROR_FALSE_COMM_PORT ) return( ERROR_MSG_FALSE_COMM_PORT ); else if( iErrorCode == ERROR_HSL_FUNCTION_FAILED ) return( ERROR_MSG_HSL_FUNCTION_FAILED ); else if( iErrorCode == ERROR_WRITE_RECORD_FAILED ) return( ERROR_MSG_WRITE_RECORD_FAILED ); else if( iErrorCode == ERROR_READ_RECORD_FAILED ) return( ERROR_MSG_READ_RECORD_FAILED ); else if( iErrorCode == ERROR_UNEXPECTED_TXRX_COMMAND ) return( ERROR_MSG_UNEXPECTED_TXRX_COMMAND ); else if( iErrorCode == ERROR_UNEXPECTED_TXRX_RESET ) return( ERROR_MSG_UNEXPECTED_TXRX_RESET ); else if( iErrorCode == ERROR_INIT_NOT_FOUND ) return( ERROR_MSG_INIT_NOT_FOUND ); else if( iErrorCode == ERROR_STEP_LOST ) return( ERROR_MSG_STEP_LOST ); else if( iErrorCode == ERROR_NOT_INITIALIZED ) return( ERROR_MSG_NOT_INITIALIZED ); else if( iErrorCode == ERROR_PARALLEL_ERROR ) return( ERROR_MSG_PARALLEL_ERROR ); else if( iErrorCode == ERROR_STEPPER_MOTOR_HW_DEFECTIVE ) return( ERROR_MSG_STEPPER_MOTOR_HW_DEFECTIVE ); else if( iErrorCode == ERROR_CMD_UNKNOWN ) return( ERROR_MSG_CMD_UNKNOWN ); else if( iErrorCode == ERROR_TEMP_SENSOR_DEFECTIVE ) return( ERROR_MSG_TEMP_SENSOR_DEFECTIVE ); else if( iErrorCode == ERROR_TEMP_CONTROLLER_DEFECTIVE ) return( ERROR_MSG_TEMP_CONTROLLER_DEFECTIVE ); else if( iErrorCode == ERROR_UNKNOWN_DEVICE_NAME ) return( ERROR_MSG_UNKNOWN_DEVICE_NAME ); else if( iErrorCode == ERROR_UNKNOWN_ERROR_CODE ) return( ERROR_MSG_UNKNOWN_ERROR_CODE ); else return( ERROR_MSG_UNKNOWN_ERROR_CODE ); } private function ValveOn( variable iModuleName, variable iValve ) variable { variable command; variable parameter; variable response; variable errCode; if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace(GetFunctionName(), "()", CMD_START, " Module #", iModuleName, " valve #", iValve ); // ------------------------------------------------------------------------- // check parameters // ------------------------------------------------------------------------- if(( 1 > iValve) || ( 6 < iValve )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter valve = ", iValve, " out of range [1..6]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } iValve = iValve + 2; // ------------------------------------------------------------------------- // check simulation mode // ------------------------------------------------------------------------- if(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedTiltModule_SimulationFlag )) { if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, " Tilt module runs in simulation mode!" ); return( ERROR_NONE ); } // ------------------------------------------------------------------------- // transmit "PS", port set, command // ------------------------------------------------------------------------- command = "PS"; parameter = IStr( iValve ); response = ""; errCode = TxRxCommand( iModuleName, command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Switching valve \"on\" on tilt module failed! (System #", iModuleName, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); return( errCode ); } if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET ); return( ERROR_NONE ); } private function ValveOff( variable iModuleName, variable iValve ) variable { variable command; variable parameter; variable response; variable errCode; if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace(GetFunctionName(), "()", CMD_START, " Module #", iModuleName, " valve #", iValve ); // ------------------------------------------------------------------------- // check parameters // ------------------------------------------------------------------------- if(( 1 > iValve) || ( 6 < iValve )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter valve = ", iValve, " out of range [1..6]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } iValve = iValve + 2; // ------------------------------------------------------------------------- // check simulation mode // ------------------------------------------------------------------------- if(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedTiltModule_SimulationFlag )) { if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, " Tilt module runs in simulation mode!" ); return( ERROR_NONE ); } // ------------------------------------------------------------------------- // transmit "PC", port clear, command // ------------------------------------------------------------------------- command = "PC"; parameter = IStr( iValve ); response = ""; errCode = TxRxCommand( iModuleName, command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Switching valve \"off\" on tilt module failed! (System #", iModuleName, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); return( errCode ); } if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET ); return( ERROR_NONE ); } private function SetPort( variable iModuleName, variable iPort ) variable { variable command; variable parameter; variable response; variable errCode; if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace(GetFunctionName(), "()", CMD_START, " Module #", iModuleName, " port #", iPort ); // ------------------------------------------------------------------------- // check parameters // ------------------------------------------------------------------------- if(( 1 > iPort) || ( 8 < iPort )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter port #", iPort, " out of range [1.8]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } // ------------------------------------------------------------------------- // check simulation mode // ------------------------------------------------------------------------- if(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedTiltModule_SimulationFlag )) { if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, " Tilt module runs in simulation mode!" ); return( ERROR_NONE ); } // ------------------------------------------------------------------------- // transmit "PS", port set, command // ------------------------------------------------------------------------- command = "PS"; parameter = IStr( iPort ); response = ""; errCode = TxRxCommand( iModuleName, command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Setting port on tilt module failed! (System #", iModuleName, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); return( errCode ); } if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET ); return( ERROR_NONE ); } private function ClearPort( variable iModuleName, variable iPort ) variable { variable command; variable parameter; variable response; variable errCode; if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace(GetFunctionName(), "()", CMD_START, " Module #", iModuleName, " port #", iPort ); // ------------------------------------------------------------------------- // check parameters // ------------------------------------------------------------------------- if(( 1 > iPort) || ( 8 < iPort )) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Parameter port #", iPort, " out of range [1.8]!" ); return( ERROR_PRM_OUT_OF_RANGE ); } // ------------------------------------------------------------------------- // check simulation mode // ------------------------------------------------------------------------- if(( GetSimulationMode() == 1 ) || ( hslTrue == HSLdaisyChainedTiltModule_SimulationFlag )) { if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET, " Tilt module runs in simulation mode!" ); return( ERROR_NONE ); } // ------------------------------------------------------------------------- // transmit "PC", port clear, command // ------------------------------------------------------------------------- command = "PC"; parameter = IStr( iPort ); response = ""; errCode = TxRxCommand( iModuleName, command, parameter, response ); if( ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Clearing port on tilt module failed! (System #", iModuleName, ", TxRxCommand(", command, parameter, "), response = <", response, ">)" ); return( errCode ); } if( TRACE_LEVEL_NONE < HSLdaisyChainedTiltModule_TrcLvl ) FormatTrace( GetFunctionName(), "()", CMD_COMPLET ); return( ERROR_NONE ); } static function DecodeTiltModuleErrorCode( variable iErrCode ) variable { if( 0 == iErrCode ) return( ERROR_NONE ); else if( 1 == iErrCode ) return( ERROR_INIT_NOT_FOUND ); else if( 2 == iErrCode ) return( ERROR_STEP_LOST ); else if( 3 == iErrCode ) return( ERROR_NOT_INITIALIZED ); else if( 4 == iErrCode ) return( ERROR_PARALLEL_ERROR ); else if( 5 == iErrCode ) return( ERROR_STEPPER_MOTOR_HW_DEFECTIVE ); else if( 6 == iErrCode ) return( ERROR_PRM_OUT_OF_RANGE ); else if( 7 == iErrCode ) return( ERROR_CMD_UNKNOWN ); else if( 8 == iErrCode ) return( ERROR_TEMP_SENSOR_DEFECTIVE ); else if( 9 == iErrCode ) return( ERROR_TEMP_CONTROLLER_DEFECTIVE ); else return( ERROR_UNKNOWN_ERROR_CODE ); } static function DecodeCommunicationErrorCode( variable iErrCode ) variable { if( HSLDaisyChainCommunication::ERROR_NONE == iErrCode ) return( ERROR_NONE ); else if( HSLDaisyChainCommunication::ERROR_ALREADY_INITIALIZED == iErrCode ) return( ERROR_COMM_ALREADY_INIT ); else if( HSLDaisyChainCommunication::ERROR_PARAMETER_OUT_OF_RANGE == iErrCode ) return( ERROR_PRM_OUT_OF_RANGE ); else if( HSLDaisyChainCommunication::ERROR_FALSE_COMM_PORT == iErrCode ) return( ERROR_FALSE_COMM_PORT ); else if( HSLDaisyChainCommunication::ERROR_HSL_FUNCTION_FAILED == iErrCode ) return( ERROR_HSL_FUNCTION_FAILED ); else if( HSLDaisyChainCommunication::ERROR_WRITE_RECORD_FAILED == iErrCode ) return( ERROR_WRITE_RECORD_FAILED ); else if( HSLDaisyChainCommunication::ERROR_READ_RECORD_FAILED == iErrCode ) return( ERROR_READ_RECORD_FAILED ); else if( HSLDaisyChainCommunication::ERROR_UNEXPECTED_TXRX_COMMAND == iErrCode ) return( ERROR_UNEXPECTED_TXRX_COMMAND ); else if( HSLDaisyChainCommunication::ERROR_UNEXPECTED_TXRX_RESET == iErrCode ) return( ERROR_UNEXPECTED_TXRX_RESET ); else return( ERROR_UNKNOWN_ERROR_CODE ); } static function TxRxCommand( variable iModuleName, variable iCommand, variable iParameter, variable & oResponse ) variable { variable errCode; errCode = HSLDaisyChainCommunication::DaisyChainedTxRxCommand( iModuleName, iCommand, iParameter, oResponse ); if( HSLDaisyChainCommunication::ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Communication error occurred! (System #", iModuleName, ", Error Text: ", HSLDaisyChainCommunication::EvaluateCommErrorMessage( errCode ), ")" ); return( DecodeCommunicationErrorCode( errCode )); } if( StrGetLength( oResponse ) < 8 ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Length of response too short! (System #", iModuleName, ", Error Text: ", EvaluateErrorMessage( ERROR_UNKNOWN_DEVICE_NAME ), ")" ); return( ERROR_UNKNOWN_DEVICE_NAME ); } errCode = DecodeTiltModuleErrorCode( IVal( StrMid( oResponse, 6, 2 ))); if( errCode != ERROR_NONE ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Tilt module error occurred! (System #", iModuleName, ", Error Text: ", EvaluateErrorMessage( errCode ), ")" ); } return( errCode ); } static function TxRxReset( variable iModuleName ) variable { variable errCode; variable response; errCode = HSLDaisyChainCommunication::DaisyChainedTxRxReset( iModuleName, response ); if( HSLDaisyChainCommunication::ERROR_NONE != errCode ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Communication error occurred! (System #", iModuleName, ", Error Text: ", HSLDaisyChainCommunication::EvaluateCommErrorMessage( errCode ), ")" ); return( DecodeCommunicationErrorCode( errCode )); } if( StrGetLength( response ) < 8 ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Length of response too short! (System #", iModuleName, ", Error Text: ", EvaluateErrorMessage( ERROR_UNKNOWN_DEVICE_NAME ), ")" ); return( ERROR_UNKNOWN_DEVICE_NAME ); } errCode = DecodeTiltModuleErrorCode( IVal( StrMid( response, 6, 2 ))); if( errCode != ERROR_NONE ) { FormatTrace( GetFunctionName(), "()", CMD_ERROR, " Tilt module error occurred! (System #", iModuleName, ", Error Text: ", EvaluateErrorMessage( errCode ), ")" ); } return( errCode ); } } //end namespace #endif // $$author=rvogel$$valid=0$$time=2008-07-08 10:01$$checksum=e793eb0b$$length=085$$ ================================================ FILE: pyhamilton/library/HSLInhecoTEC/HSLInhecoTECLib.hsl ================================================ // =========================================================================== // Library for use with Inheco Single and Multi TEC Controllers // // Copyright (C) 2010 by HAMILTON Bonaduz, CH // All rights reserved. // =========================================================================== // // Inspired by the code from Inheco MTECController by Steve Griffin // // 2010-06-25 v1.0 Dirk Hollstein // 2012-10-22 v1.1 Bernd Huf reworked for better readability // 2013-01-25 v1.2 Bernd Huf extended function _SendCommandToController to resend a command // MAXNUMBEROFRETRIES times in case of error (solved problem setting // temperature in seldom cases) // 2013-03-13 v1.3 Bernd Huf set function SendCommand from private to public (implementation part) // new function SetTouchscreen // changed output value in functions GetActualDeviceTemperature and GetTargetTemperature to integer // changed output value in functions GetHeaterEnableStatus and GetReservoirStatus to integer // changed output value in functions GetShakerRevolutions and GetShakerShape to integer // changed output value in functions GetShakerStatus and GetDeviceType to integer // check if integer for parameter iFlag in function GetActualDeviceTemperature // removed unneccessary input checks (_CheckInteger is included in _CheckIntegerRange) // fixed error in function GetSensorValues (allowed values set to 0..9 instead of 0..4) // 2013-04-11 v1.4 DKa corrected counter (line 1786) 1-6 // 2013-08-27 v1.5 Bernd Huf clear last error after call to function 'GetLastError' // 2013-09-03 v1.6 Bernd Huf combined hsl_ and hsl in one file // fixed error in function 'GetDeviceType' // fixed error in function 'Terminate' // function 'Terminate' with parameter to enable/disable stopping of slots // changed values for temperature get and set functions to float values (no longer 1/10 degree integer) // reworked whole library to comply with AAW 650410 // new private function _CheckFloatRange // 2013-12-17 v1.7 Bernd Huf fixed bug in function SetTargetTemperature (float/int conversion) // 2015-06-02 v1.8 Bernd Huf fixed bug in function SetTouchscreen (send command to controller instead of device) // --> removed unneeded parameter i_intDeviceID // // =========================================================================== #ifndef __HSLMTec_Impl__ #define __HSLMTec_Impl__ 1 #ifndef __ASWGLOBAL_hsl__ #include "ASWStandard/ASWGlobal/ASWGlobal.hsl" #endif #ifndef __TraceLevel_hsl__ #include "ASWStandard/TraceLevel/TraceLevel.hsl" #endif namespace HSLInhecoTECLib { // Exported return constants const static variable CMD_FAIL (0); const static variable CMD_START (1); const static variable CMD_COMPLETE (2); const static variable CMD_ERROR (3); const static variable CMD_PROGRESS (4); const static variable CMD_ERRCOMPLETE (5); // Adaptable settings const variable LOWERDEVICEBOUND (1); const variable UPPERDEVICEBOUND (6); const variable LOWERCONTROLLERBOUND (0); const variable UPPERCONTROLLERBOUND (7); const variable MAXNUMBEROFRETRIES (1); // exported constants namespace DEVICE_TYPE { const variable Thermoshake (0); const variable CPAC (1); const variable Teleshake (2); const variable CPAC_Ultraflat (4); } namespace CONTROLLER_TYPE { const variable STC (0); const variable MTC (1); } // constants const static variable _strCMD_SET_SHAKER ("ASE"); const static variable _strCMD_GET_CALIBRATION_DATE ("RCM"); const static variable _strCMD_GET_FIRMWARE_VERSION ("RFV"); const static variable _strCMD_GET_SENSOR_VALUES ("RHV"); const static variable _strCMD_GET_SERIAL_NUMBER ("RSN"); const static variable _strCMD_GET_DEVICE_TYPE ("RTD"); const static variable _strCMD_GET_RESERVOIR_STATUS ("RRS"); const static variable _strCMD_GET_ACTUAL_TEMPERATURE ("RAT"); const static variable _strCMD_GET_TARGET_TEMPERATURE ("RTT"); const static variable _strCMD_GET_HEATER_ENABLED_STATUS ("RHE"); const static variable _strCMD_GET_SHAKER_REVOLUTIONS ("RSR"); const static variable _strCMD_GET_SHAKER_SHAPE ("RSS"); const static variable _strCMD_GET_SHAKER_STATUS ("RSE"); const static variable _strCMD_SET_TARGET_TEMPERATURE ("STT"); const static variable _strCMD_SET_TEMPERATURE_CONTROL ("ATE"); const static variable _strCMD_SET_SHAKER_REVOLUTIONS ("SSR"); const static variable _strCMD_SET_SHAKER_SHAPE ("SSS"); const static variable _strCMD_SET_TOUCHSCREEN ("ADD"); // Static variables global static variable gHSLInhecoTECLib_strErrorCode ("000"); global static variable gHSLInhecoTECLib_strLibraryLastError (""); global static variable gHSLInhecoTECLib_intLibraryTraceLevel (TRACE_LEVEL_DEBUG); global static variable gHSLInhecoTECLib_strLibraryModuleName ("HSLInhecoTECLib"); global static variable gHSLInhecoTECLib_blnLibrarySimulationMode (hslFalse); global static object gHSLInhecoTECLib_objTECController; global static variable gHSLInhecoTECLib_blnTECControllerConnected[] (8); static global event gHSLInhecoTECLib_hdlSemaphore; static global variable gHSLInhecoTECLib_blnLibraryInitialized (hslFalse); // exported functions function Initialize(variable i_intControllerID, variable i_blnSimulationMode, variable& o_strErrorCode) variable; function SetTraceLevel(variable i_intTraceLevel) variable; function GetTraceLevel(variable& o_intTraceLevel) void; function Terminate(variable i_blnStopAllDevices) variable; function GetCalibrationDate(variable i_intControllerID, variable i_intDeviceID, variable& o_strCalibrationDate, variable& o_strErrorCode) variable; function GetFirmwareVersion(variable i_intControllerID, variable i_intSelector, variable& o_strFirmwareInformation, variable& o_strErrorCode) variable; function GetSensorValues(variable i_intControllerID, variable i_intSelector, variable& o_strSensorValues, variable& o_strErrorCode) variable; function GetDeviceSerialNumber(variable i_intControllerID, variable i_intDeviceID, variable& o_strDeviceSerialNumber, variable& o_strErrorCode) variable; function GetDeviceType(variable i_intControllerID, variable i_intDeviceID, variable& o_intDeviceType, variable& o_strErrorCode) variable; function GetReservoirStatus(variable i_intControllerID, variable i_intDeviceID, variable& o_intReservoirStatus, variable& o_strErrorCode) variable; function GetActualDeviceTemperature(variable i_intControllerID, variable i_intDeviceID, variable i_intFlag, variable& o_fltActualTemperature, variable& o_strErrorCode) variable; function GetTargetTemperature(variable i_intControllerID, variable i_intDeviceID, variable& o_fltTargetTemperature, variable& o_strErrorCode) variable; function SetTargetTemperature(variable i_intControllerID, variable i_intDeviceID, variable i_fltTargetTemperature, variable& o_strErrorCode) variable; function GetHeaterEnableStatus(variable i_intControllerID, variable i_intDeviceID, variable& i_intFlag, variable& o_intHeatingStatus, variable& o_strErrorCode) variable; function StartTemperatureControl(variable i_intControllerID, variable i_intDeviceID, variable& o_strErrorCode) variable; function StopTemperatureControl(variable i_intControllerID, variable i_intDeviceID, variable& o_strErrorCode) variable; function SetShakerRevolutions(variable i_intControllerID, variable i_intDeviceID, variable i_intShakerRevolutions, variable& o_strErrorCode) variable; function GetShakerRevolutions(variable i_intControllerID, variable i_intDeviceID, variable& o_intShakerRevolutions, variable& o_strErrorCode) variable; function SetShakerShape(variable i_intControllerID, variable i_intDeviceID, variable i_intShakerShape, variable& o_strErrorCode) variable; function GetShakerShape(variable i_intControllerID, variable i_intDeviceID, variable& o_intShakerShape, variable& o_strErrorCode) variable; function GetShakerStatus(variable i_intControllerID, variable i_intDeviceID, variable& o_intStatus, variable& o_strErrorCode) variable; function StartShaker(variable i_intControllerID, variable i_intDeviceID, variable& o_strErrorCode) variable; function StopShaker(variable i_intControllerID, variable i_intDeviceID, variable& o_strErrorCode) variable; function GetLastError(variable& o_strLastError) void; function GetDescriptionForErrorCode(variable& i_strErrorCode, variable& o_strDescription) variable; function SendCommandString(variable i_intControllerID, variable i_strCommand, variable& o_strResponse) variable; function SetTouchscreen(variable i_intControllerID, variable i_blnEnabled, variable& o_strErrorCode) variable; // Helper functions private function _HandleError(variable i_intDeviceID, variable i_intControllerID, variable i_strCommand, variable i_strDescription, variable i_strFunctionName, variable& o_strErrorCode) void; private function _ExtractAnswer(string i_strControllerResponse) variable; private function _CheckForInitialization(variable i_intControllerID, variable i_strFunctionName) variable; private function _CheckBool(variable i_varVariable, variable i_strTraceEntry, variable i_strFunctionName) variable; private function _CheckInteger(variable i_varVariable, variable i_strTraceEntry, variable i_strFunctionName) variable; private function _CheckIntegerRange(variable i_varVariable, variable i_strTraceEntry, variable i_intMin, variable i_intMax, variable i_strFunctionName) variable; private function _CheckFloatRange(variable i_varVariable, variable i_strTraceEntry, variable i_fltMin, variable i_fltMax, variable i_strFunctionName) variable; private function _SendCommandToController(variable i_strCommand, variable i_intControllerID, variable i_strFunctionName, variable& o_strControllerResponse, variable& o_strErrorCode) variable; private function _StatusTrace(variable i_intState, variable i_intTraceLevel, variable i_strTraceEntry, variable i_strFunctionName) void; private function _CheckString(variable i_varVariable, variable i_strTraceEntry, variable i_strFunctionName) variable; private function _CheckSimulationMode(variable i_strFunctionName) variable; private function _ReverseFind(string i_strStringToParse, string i_strSubstringToFind) variable; private function _ExtractFunctionName(variable i_strFunctionName) variable; //---------------------------------------------------------------------------------------------- // function Initialize //---------------------------------------------------------------------------------------------- function Initialize(variable i_intControllerID, variable i_blnSimulationMode, variable& o_strErrorCode) variable { variable intLoopCounterControllers(0), intResult(0); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); gHSLInhecoTECLib_intLibraryTraceLevel = TRACELEVEL::GetTraceLevel(); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckBool(i_blnSimulationMode, "i_blnSimulationMode", strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } gHSLInhecoTECLib_blnLibrarySimulationMode = i_blnSimulationMode; if(gHSLInhecoTECLib_blnLibrarySimulationMode == ASWGLOBAL::BOOL::TRUE) { _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_RELEASE, "HSLTECLib running in simulation mode.", strFunctionName); gHSLInhecoTECLib_blnLibraryInitialized = hslTrue; gHSLInhecoTECLib_blnTECControllerConnected.SetAt(i_intControllerID, hslTrue); return(ASWGLOBAL::BOOL::TRUE); } if(!gHSLInhecoTECLib_blnLibraryInitialized) { for (intLoopCounterControllers = LOWERCONTROLLERBOUND; intLoopCounterControllers < UPPERCONTROLLERBOUND + 1; intLoopCounterControllers++) gHSLInhecoTECLib_blnTECControllerConnected.SetAt(intLoopCounterControllers, hslFalse); gHSLInhecoTECLib_blnLibraryInitialized = hslTrue; } if(gHSLInhecoTECLib_blnTECControllerConnected.ElementAt(i_intControllerID)) { // Controller is already connected _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_NONE, "ControllerID " + IStr(i_intControllerID) + " is already connected.", strFunctionName); gHSLInhecoTECLib_strErrorCode = "004"; o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return (ASWGLOBAL::BOOL::TRUE); } else { // Connect to Controller if(gHSLInhecoTECLib_objTECController.IsNull()) { gHSLInhecoTECLib_objTECController.CreateObject("InhecoMTCdll.GlobCom"); if(gHSLInhecoTECLib_objTECController.IsNull()) { gHSLInhecoTECLib_blnTECControllerConnected.SetAt(i_intControllerID, hslFalse); gHSLInhecoTECLib_strErrorCode = "002"; o_strErrorCode = gHSLInhecoTECLib_strErrorCode; gHSLInhecoTECLib_strLibraryLastError = "Failed to create communication object from InhecoMTCdll.dll!"; _StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_NONE, gHSLInhecoTECLib_strLibraryLastError, strFunctionName); return(ASWGLOBAL::BOOL::FALSE); } gHSLInhecoTECLib_objTECController.InitDll(); gHSLInhecoTECLib_hdlSemaphore.SetEvent(); } intResult = gHSLInhecoTECLib_objTECController.FindTheUniversalControl(i_intControllerID); if(intResult == 0) { // Failed to connect to controller gHSLInhecoTECLib_blnTECControllerConnected.SetAt(i_intControllerID, hslFalse); gHSLInhecoTECLib_strErrorCode = "003"; o_strErrorCode = gHSLInhecoTECLib_strErrorCode; gHSLInhecoTECLib_strLibraryLastError = "Failed to find the controller for ControllerID " + IStr(i_intControllerID) + "!"; _StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_NONE, gHSLInhecoTECLib_strLibraryLastError, strFunctionName); return(ASWGLOBAL::BOOL::FALSE); } else if(intResult == 1) { // Succeeded to connect to controller gHSLInhecoTECLib_blnTECControllerConnected.SetAt(i_intControllerID, hslTrue); gHSLInhecoTECLib_strErrorCode = "000"; o_strErrorCode = gHSLInhecoTECLib_strErrorCode; _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "Controller ID " + IStr(i_intControllerID) + " is successfully connected.", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } } return(ASWGLOBAL::BOOL::FALSE); } // Initialize //---------------------------------------------------------------------------------------------- // function SetTraceLevel //---------------------------------------------------------------------------------------------- function SetTraceLevel(variable i_intTraceLevel) variable { variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intTraceLevel, "i_intTraceLevel", TRACE_LEVEL_NONE, TRACE_LEVEL_DEBUG, strFunctionName)) return(ASWGLOBAL::BOOL::FALSE); _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intTraceLevel = " + IStr(i_intTraceLevel), strFunctionName); gHSLInhecoTECLib_intLibraryTraceLevel = i_intTraceLevel; _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // SetTraceLevel //---------------------------------------------------------------------------------------------- // function GetTraceLevel //---------------------------------------------------------------------------------------------- function GetTraceLevel(variable& o_intTraceLevel) void { o_intTraceLevel = gHSLInhecoTECLib_intLibraryTraceLevel; }// GetTraceLevel //---------------------------------------------------------------------------------------------- // function Terminate //---------------------------------------------------------------------------------------------- function Terminate(variable i_blnStopAllDevices) variable { variable intLoopCounterActualDevice(0), intLoopCounterActualController(0); variable strCommand(""), strResponse(""), strErrorCode(""); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!gHSLInhecoTECLib_blnLibraryInitialized) { _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_RELEASE, "Library not initialized!", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } if(gHSLInhecoTECLib_blnLibrarySimulationMode) { _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_RELEASE, "Running in simulation mode", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_blnStopAllDevices = " + IStr(i_blnStopAllDevices), strFunctionName); if(i_blnStopAllDevices == ASWGLOBAL::BOOL::TRUE) { _StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Stopping all Inheco TEC device activities!", strFunctionName); for (intLoopCounterActualController = LOWERCONTROLLERBOUND; intLoopCounterActualController < UPPERCONTROLLERBOUND; intLoopCounterActualController++) { // Access all controllers if(gHSLInhecoTECLib_blnTECControllerConnected.ElementAt(intLoopCounterActualController)) { // Reset all attached devices gHSLInhecoTECLib_objTECController.FindTheUniversalControl(intLoopCounterActualController); for (intLoopCounterActualDevice = 1; intLoopCounterActualDevice <= 6; intLoopCounterActualDevice++) { //stop shaking strCommand = IStr(intLoopCounterActualDevice) + _strCMD_SET_SHAKER + "0"; if(_SendCommandToController(strCommand, intLoopCounterActualController, strFunctionName, strResponse, strErrorCode)) _StatusTrace(CMD_PROGRESS, TRACE_LEVEL_NONE, "Device " + IStr(intLoopCounterActualDevice) + " @controller " + IStr(intLoopCounterActualController) + ": Shaker stopped.", strFunctionName); //stop heating strCommand = IStr(intLoopCounterActualDevice) + _strCMD_SET_TEMPERATURE_CONTROL + "0"; if(_SendCommandToController(strCommand, intLoopCounterActualController, strFunctionName, strResponse, strErrorCode)) _StatusTrace(CMD_PROGRESS, TRACE_LEVEL_NONE, "Device " + IStr(intLoopCounterActualDevice) + " @controller " + IStr(intLoopCounterActualController) + ": Heater stopped.", strFunctionName); } _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_NONE, "Devices stopped!", strFunctionName); } } } gHSLInhecoTECLib_hdlSemaphore.WaitEvent(hslInfinite); gHSLInhecoTECLib_objTECController.ReleaseObject(); gHSLInhecoTECLib_blnLibrarySimulationMode = ASWGLOBAL::BOOL::FALSE; gHSLInhecoTECLib_blnLibraryInitialized = hslFalse; return(ASWGLOBAL::BOOL::TRUE); } // Terminate //---------------------------------------------------------------------------------------------- // function GetCalibrationDate //---------------------------------------------------------------------------------------------- function GetCalibrationDate(variable i_intControllerID, variable i_intDeviceID, variable& o_strCalibrationDate, variable& o_strErrorCode) variable { variable strCommand(""), strDescription(""); string strTemp(""); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckIntegerRange(i_intDeviceID, "DeviceID", 0, UPPERDEVICEBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intControllerID = " + IStr(i_intControllerID) + ", i_intDeviceID = " + IStr(i_intDeviceID), strFunctionName); if(!_CheckForInitialization(i_intControllerID, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(_CheckSimulationMode(strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::TRUE); } strCommand = IStr(i_intControllerID) + _strCMD_GET_CALIBRATION_DATE + IStr(i_intDeviceID); if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode)) { _HandleError(i_intDeviceID, i_intControllerID, strCommand, "get calibration date", strFunctionName, o_strErrorCode); return(ASWGLOBAL::BOOL::FALSE); } o_strCalibrationDate = _ExtractAnswer(strTemp); _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_strCalibrationDate = '" + o_strCalibrationDate + "', o_strErrorCode = '" + o_strErrorCode + "'", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // GetCalibrationDate //---------------------------------------------------------------------------------------------- // function GetFirmwareVersion //---------------------------------------------------------------------------------------------- function GetFirmwareVersion(variable i_intControllerID, variable i_intSelector, variable& o_strFirmwareInformation, variable& o_strErrorCode) variable { variable strCommand(""), strDescription(""), strSelector(""); string strTemp(""); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckIntegerRange(i_intSelector, "i_intSelector", 0, 4, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intControllerID = " + IStr(i_intControllerID) + ", i_intSelector = " + IStr(i_intSelector), strFunctionName); if(!_CheckForInitialization(i_intControllerID, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(_CheckSimulationMode(strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::TRUE); } if(i_intSelector == 0) strSelector = "bootstrap version"; if(i_intSelector == 1) strSelector = "application version"; if(i_intSelector == 2) strSelector = "serial number"; if(i_intSelector == 3) strSelector = "actual hardware version"; if(i_intSelector == 4) strSelector = "Inheco copyright"; strCommand = IStr(i_intControllerID) + _strCMD_GET_FIRMWARE_VERSION + IStr(i_intSelector); if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode)) { _HandleError(-1, i_intControllerID, strCommand, "get " + strSelector, strFunctionName, o_strErrorCode); return(ASWGLOBAL::BOOL::FALSE); } o_strFirmwareInformation = _ExtractAnswer(strTemp); _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_strFirmwareInformation = '" + o_strFirmwareInformation + "', o_strErrorCode = '" + o_strErrorCode + "'", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // GetFirmwareVersion //---------------------------------------------------------------------------------------------- // function GetSensorValues //---------------------------------------------------------------------------------------------- function GetSensorValues(variable i_intControllerID, variable i_intSelector, variable& o_strSensorValues, variable& o_strErrorCode) variable { variable strCommand(""), strDescription(""), strSelector(""); string strTemp(""); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } // Checking DeviceID on valid range for value if(!_CheckIntegerRange(i_intSelector, "i_intSelector", 0, 9, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intControllerID = " + IStr(i_intControllerID) + ", i_intSelector = " + IStr(i_intSelector), strFunctionName); if(!_CheckForInitialization(i_intControllerID, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(_CheckSimulationMode(strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::TRUE); } if(i_intSelector == 0) strSelector = "Value Power Supply [1/10 V]"; if(i_intSelector == 1) strSelector = "Housing Fan [on / off]"; if(i_intSelector == 2) strSelector = "Temperature Sensor 1 (Housing) [1/10 C]"; if(i_intSelector == 3) strSelector = "relative Humidity Sensor 1 (Housing) [1/10 %]"; if(i_intSelector == 4) strSelector = "Temperature Sensor 2 (Housing) [1/10 C]"; if(i_intSelector == 5) strSelector = "Temperature Sensor 1 (External) [1/10 C]"; if(i_intSelector == 6) strSelector = "relative Humidity Sensor (External) [1/10 %]"; if(i_intSelector == 7) strSelector = "Analogue Sensor 1 (External) [1/10 %]"; if(i_intSelector == 8) strSelector = "Analogue Sensor 2 (External) [1/10 %]"; if(i_intSelector == 9) strSelector = "Maximum measured temperature [1/10 %]"; strCommand = IStr(i_intControllerID) + _strCMD_GET_FIRMWARE_VERSION + IStr(i_intSelector); if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode)) { _HandleError(-1, i_intControllerID, strCommand, "get " + strSelector, strFunctionName, o_strErrorCode); return(ASWGLOBAL::BOOL::FALSE); } o_strSensorValues = _ExtractAnswer(strTemp); _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_strSensorValues = '" + o_strSensorValues + "', o_strErrorCode = '" + o_strErrorCode + "'", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // GetSensorValues //---------------------------------------------------------------------------------------------- // function GetDeviceSerialNumber //---------------------------------------------------------------------------------------------- function GetDeviceSerialNumber(variable i_intControllerID, variable i_intDeviceID, variable& o_strDeviceSerialNumber, variable& o_strErrorCode) variable { variable strCommand(""), strDescription(""); string strTemp(""); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckIntegerRange(i_intDeviceID, "DeviceID", 0, UPPERDEVICEBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intControllerID = " + IStr(i_intControllerID) + ", i_intDeviceID = " + IStr(i_intDeviceID), strFunctionName); if(!_CheckForInitialization(i_intControllerID, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(_CheckSimulationMode(strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::TRUE); } strCommand = IStr(i_intControllerID) + _strCMD_GET_SERIAL_NUMBER + IStr(i_intDeviceID); if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode)) { _HandleError(i_intDeviceID, i_intControllerID, strCommand, "get serial number", strFunctionName, o_strErrorCode); return(ASWGLOBAL::BOOL::FALSE); } o_strDeviceSerialNumber = _ExtractAnswer(strTemp); _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_strDeviceSerialNumber = '" + o_strDeviceSerialNumber + "', o_strErrorCode = '" + o_strErrorCode + "'", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // GetDeviceSerialNumber //---------------------------------------------------------------------------------------------- // function GetDeviceType //---------------------------------------------------------------------------------------------- function GetDeviceType(variable i_intControllerID, variable i_intDeviceID, variable& o_intDeviceType, variable& o_strErrorCode) variable { variable strCommand(""), strDescription(""); string strTemp(""); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckIntegerRange(i_intDeviceID, "DeviceID", 0, UPPERDEVICEBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intControllerID = " + IStr(i_intControllerID) + ", i_intDeviceID = " + IStr(i_intDeviceID), strFunctionName); if(!_CheckForInitialization(i_intControllerID, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(_CheckSimulationMode(strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::TRUE); } strCommand = IStr(i_intControllerID) + _strCMD_GET_DEVICE_TYPE + IStr(i_intDeviceID); if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode)) { _HandleError(i_intDeviceID, i_intControllerID, strCommand, "get device type", strFunctionName, o_strErrorCode); return(ASWGLOBAL::BOOL::FALSE); } o_intDeviceType = IVal(_ExtractAnswer(strTemp)); if(i_intDeviceID == 0) { // asking for controller device if(o_intDeviceType == 0) strDescription = "Controller " + IStr(i_intControllerID) + " is of SingleTEC kind"; if(o_intDeviceType == 1) strDescription = "Controller " + IStr(i_intControllerID) + " is of MultiTEC kind"; } else { // asking for external devices connected to the slot strDescription = " unknown."; if(o_intDeviceType == 0) strDescription = "Thermoshake."; if(o_intDeviceType == 1) strDescription = "CPAC."; if(o_intDeviceType == 2) strDescription = "Teleshake."; if(o_intDeviceType == 4) strDescription = "CPAC Ultraflat 2TEC."; strDescription = "Device " + IStr(i_intDeviceID) + " on controller " + IStr(i_intControllerID) + " is of type " + strDescription; } _StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, strDescription, strFunctionName); _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_intDeviceType = " + IStr(o_intDeviceType) + ", o_strErrorCode = '" + o_strErrorCode + "'", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // GetDeviceType //---------------------------------------------------------------------------------------------- // function GetReservoirStatus //---------------------------------------------------------------------------------------------- function GetReservoirStatus(variable i_intControllerID, variable i_intDeviceID, variable& o_intReservoirStatus, variable& o_strErrorCode) variable { variable strCommand(""), strDescription(""); string strTemp(""); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckIntegerRange(i_intDeviceID, "DeviceID", 0, UPPERDEVICEBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intControllerID = " + IStr(i_intControllerID) + ", i_intDeviceID = " + IStr(i_intDeviceID), strFunctionName); if(!_CheckForInitialization(i_intControllerID, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(_CheckSimulationMode(strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::TRUE); } strCommand = IStr(i_intDeviceID) + _strCMD_GET_RESERVOIR_STATUS; if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode)) { _HandleError(i_intDeviceID, i_intControllerID, strCommand, "get reservoir status", strFunctionName, o_strErrorCode); return(ASWGLOBAL::BOOL::FALSE); } o_intReservoirStatus = IVal(_ExtractAnswer(strTemp)); _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_intReservoirStatus = " + IStr(o_intReservoirStatus) + ", o_strErrorCode = '" + o_strErrorCode + "'", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // GetReservoirStatus //---------------------------------------------------------------------------------------------- // function GetActualDeviceTemperature //---------------------------------------------------------------------------------------------- function GetActualDeviceTemperature(variable i_intControllerID, variable i_intDeviceID, variable i_intFlag, variable& o_fltActualTemperature, variable& o_strErrorCode) variable { variable strCommand(""), strDescription(""); string strTemp(""); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckIntegerRange(i_intDeviceID, "DeviceID", 0, UPPERDEVICEBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckInteger(i_intFlag, "i_intFlag", strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intControllerID = " + IStr(i_intControllerID) + ", i_intDeviceID = " + IStr(i_intDeviceID) + ", i_intFlag = " + IStr(i_intFlag), strFunctionName); if(!_CheckForInitialization(i_intControllerID, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(_CheckSimulationMode(strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::TRUE); } strCommand = IStr(i_intDeviceID) + _strCMD_GET_ACTUAL_TEMPERATURE + IStr(i_intFlag); if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode)) { _HandleError(i_intDeviceID, i_intControllerID, strCommand, "get actual temperature", strFunctionName, o_strErrorCode); return(ASWGLOBAL::BOOL::FALSE); } o_fltActualTemperature = IVal(_ExtractAnswer(strTemp)); o_fltActualTemperature = o_fltActualTemperature * 0.1; _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_fltActualTemperature = " + FStr(o_fltActualTemperature) + ", o_strErrorCode = '" + o_strErrorCode + "'", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // GetActualDeviceTemperature //---------------------------------------------------------------------------------------------- // function GetTargetTemperature //---------------------------------------------------------------------------------------------- function GetTargetTemperature(variable i_intControllerID, variable i_intDeviceID, variable& o_fltTargetTemperature, variable& o_strErrorCode) variable { variable strCommand(""), strDescription(""); string strTemp(""); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckIntegerRange(i_intDeviceID, "DeviceID", 0, UPPERDEVICEBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intControllerID = " + IStr(i_intControllerID) + ", i_intDeviceID = " + IStr(i_intDeviceID), strFunctionName); if(!_CheckForInitialization(i_intControllerID, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(_CheckSimulationMode(strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::TRUE); } strCommand = IStr(i_intDeviceID) + _strCMD_GET_TARGET_TEMPERATURE; if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode)) { _HandleError(i_intDeviceID, i_intControllerID, strCommand, "get target temperature", strFunctionName, o_strErrorCode); return(ASWGLOBAL::BOOL::FALSE); } o_fltTargetTemperature = IVal(_ExtractAnswer(strTemp)); o_fltTargetTemperature = o_fltTargetTemperature * 0.1; _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_fltTargetTemperature = " + FStr(o_fltTargetTemperature) + ", o_strErrorCode = '" + o_strErrorCode + "'", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // GetTargetTemperature //---------------------------------------------------------------------------------------------- // function SetTargetTemperature //---------------------------------------------------------------------------------------------- function SetTargetTemperature(variable i_intControllerID, variable i_intDeviceID, variable i_fltTargetTemperature, variable& o_strErrorCode) variable { variable strCommand(""), strDescription(""); variable intTemperature(0); string strTemp(""); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckIntegerRange(i_intDeviceID, "DeviceID", 0, UPPERDEVICEBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckFloatRange(i_fltTargetTemperature, "i_fltTargetTemperature", 0.0, 199.9, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intControllerID = " + IStr(i_intControllerID) + ", i_intDeviceID = " + IStr(i_intDeviceID) + ", i_fltTargetTemperature = " + FStr(i_fltTargetTemperature), strFunctionName); if(!_CheckForInitialization(i_intControllerID, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(_CheckSimulationMode(strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::TRUE); } intTemperature = Floor(i_fltTargetTemperature * 10); strCommand = IStr(i_intDeviceID) + _strCMD_SET_TARGET_TEMPERATURE + IStr(intTemperature); if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode)) { _HandleError(i_intDeviceID, i_intControllerID, strCommand, "set target temperature", strFunctionName, o_strErrorCode); return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_strErrorCode = '" + o_strErrorCode + "'", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // SetTargetTemperature //---------------------------------------------------------------------------------------------- // function SetTouchscreen //---------------------------------------------------------------------------------------------- function SetTouchscreen(variable i_intControllerID, variable i_blnEnabled, variable& o_strErrorCode) variable { variable strCommand(""), strDescription(""); string strTemp(""); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckBool(i_blnEnabled, "i_blnEnabled", strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intControllerID = " + IStr(i_intControllerID) + ", i_blnEnabled = " + IStr(i_blnEnabled), strFunctionName); if(!_CheckForInitialization(i_intControllerID, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(_CheckSimulationMode(strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::TRUE); } if(i_blnEnabled == ASWGLOBAL::BOOL::TRUE) strCommand = IStr(i_intControllerID) + _strCMD_SET_TOUCHSCREEN + "1"; else strCommand = IStr(i_intControllerID) + _strCMD_SET_TOUCHSCREEN + "0"; if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode)) { _HandleError(-1, i_intControllerID, strCommand, "set touchscreen", strFunctionName, o_strErrorCode); return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_strErrorCode = '" + o_strErrorCode + "'", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // SetTouchscreen //---------------------------------------------------------------------------------------------- // function GetHeaterEnableStatus //---------------------------------------------------------------------------------------------- function GetHeaterEnableStatus(variable i_intControllerID, variable i_intDeviceID, variable& i_intFlag, variable& o_intHeatingStatus, variable& o_strErrorCode) variable { variable strCommand(""), strDescription(""); string strTemp(""); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckIntegerRange(i_intDeviceID, "DeviceID", 0, UPPERDEVICEBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckInteger(i_intFlag, "i_intFlag", strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intControllerID = " + IStr(i_intControllerID) + ", i_intDeviceID = " + IStr(i_intDeviceID) + ", i_intFlag = " + IStr(i_intFlag), strFunctionName); if(!_CheckForInitialization(i_intControllerID, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(_CheckSimulationMode(strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::TRUE); } strCommand = IStr(i_intDeviceID) + _strCMD_GET_HEATER_ENABLED_STATUS; if(i_intFlag == 1) strCommand = strCommand + IStr(i_intFlag); if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode)) { _HandleError(i_intDeviceID, i_intControllerID, strCommand, "get heating status", strFunctionName, o_strErrorCode); return(ASWGLOBAL::BOOL::FALSE); } o_intHeatingStatus = IVal(_ExtractAnswer(strTemp)); _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_intHeatingStatus = " + IStr(o_intHeatingStatus) + ", o_strErrorCode = '" + o_strErrorCode + "'", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // GetHeaterEnableStatus //---------------------------------------------------------------------------------------------- // function StartTemperatureControl //---------------------------------------------------------------------------------------------- function StartTemperatureControl(variable i_intControllerID, variable i_intDeviceID, variable& o_strErrorCode) variable { variable strCommand(""), strDescription(""); string strTemp(""); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckIntegerRange(i_intDeviceID, "DeviceID", 0, UPPERDEVICEBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intControllerID = " + IStr(i_intControllerID) + ", i_intDeviceID = " + IStr(i_intDeviceID), strFunctionName); if(!_CheckForInitialization(i_intControllerID, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(_CheckSimulationMode(strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::TRUE); } strCommand = IStr(i_intDeviceID) + _strCMD_SET_TEMPERATURE_CONTROL + "1"; if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode)) { _HandleError(i_intDeviceID, i_intControllerID, strCommand, "start temperature control", strFunctionName, o_strErrorCode); return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_strErrorCode = '" + o_strErrorCode + "'", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // StartTemperatureControl //---------------------------------------------------------------------------------------------- // function StopTemperatureControl //---------------------------------------------------------------------------------------------- function StopTemperatureControl(variable i_intControllerID, variable i_intDeviceID, variable& o_strErrorCode) variable { variable strCommand(""), strDescription(""); string strTemp(""); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckIntegerRange(i_intDeviceID, "DeviceID", 0, UPPERDEVICEBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intControllerID = " + IStr(i_intControllerID) + ", i_intDeviceID = " + IStr(i_intDeviceID), strFunctionName); if(!_CheckForInitialization(i_intControllerID, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(_CheckSimulationMode(strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::TRUE); } strCommand = IStr(i_intDeviceID) + _strCMD_SET_TEMPERATURE_CONTROL + "0"; if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode)) { _HandleError(i_intDeviceID, i_intControllerID, strCommand, "stop temperature control", strFunctionName, o_strErrorCode); return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_strErrorCode = '" + o_strErrorCode + "'", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // StopTemperatureControl //---------------------------------------------------------------------------------------------- // function SetShakerRevolutions //---------------------------------------------------------------------------------------------- function SetShakerRevolutions(variable i_intControllerID, variable i_intDeviceID, variable i_intShakerRevolutions, variable& o_strErrorCode) variable { variable strCommand(""), strDescription(""); string strTemp(""); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckIntegerRange(i_intDeviceID, "DeviceID", 0, UPPERDEVICEBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckIntegerRange(i_intShakerRevolutions, "i_intShakerRevolutions", 60, 2000, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intControllerID = " + IStr(i_intControllerID) + ", i_intDeviceID = " + IStr(i_intDeviceID) + ", i_intShakerRevolutions = " + IStr(i_intShakerRevolutions), strFunctionName); if(!_CheckForInitialization(i_intControllerID,strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(_CheckSimulationMode(strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::TRUE); } strCommand = IStr(i_intDeviceID) + _strCMD_SET_SHAKER_REVOLUTIONS + IStr(i_intShakerRevolutions); if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode)) { _HandleError(i_intDeviceID, i_intControllerID, strCommand, "set shaker revolutions", strFunctionName, o_strErrorCode); return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_strErrorCode = '" + o_strErrorCode + "'", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // SetShakerRevolutions //---------------------------------------------------------------------------------------------- // function GetShakerRevolutions //---------------------------------------------------------------------------------------------- function GetShakerRevolutions(variable i_intControllerID, variable i_intDeviceID, variable& o_intShakerRevolutions, variable& o_strErrorCode) variable { variable strCommand(""), strDescription(""); string strTemp(""); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckIntegerRange(i_intDeviceID, "DeviceID", 0, UPPERDEVICEBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intControllerID = " + IStr(i_intControllerID) + ", i_intDeviceID = " + IStr(i_intDeviceID), strFunctionName); if(!_CheckForInitialization(i_intControllerID, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(_CheckSimulationMode(strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::TRUE); } strCommand = IStr(i_intDeviceID) + _strCMD_GET_SHAKER_REVOLUTIONS; if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode)) { _HandleError(i_intDeviceID, i_intControllerID, strCommand, "get shaker revolutions", strFunctionName, o_strErrorCode); return(ASWGLOBAL::BOOL::FALSE); } o_intShakerRevolutions = IVal(_ExtractAnswer(strTemp)); _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_intShakerRevolutions = " + IStr(o_intShakerRevolutions) + ", o_strErrorCode = '" + o_strErrorCode + "'", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // GetShakerRevolutions //---------------------------------------------------------------------------------------------- // function SetShakerShape //---------------------------------------------------------------------------------------------- function SetShakerShape(variable i_intControllerID, variable i_intDeviceID, variable i_intShakerShape, variable& o_strErrorCode) variable { variable strCommand(""), strDescription(""); string strTemp(""); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckIntegerRange(i_intDeviceID, "DeviceID", 0, UPPERDEVICEBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckIntegerRange(i_intShakerShape, "i_intShakerShape", 0, 5, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intControllerID = " + IStr(i_intControllerID) + ", i_intDeviceID = " + IStr(i_intDeviceID) + ", i_intShakerShape = " + IStr(i_intShakerShape), strFunctionName); if(!_CheckForInitialization(i_intControllerID, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(_CheckSimulationMode(strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::TRUE); } strCommand = IStr(i_intDeviceID) + _strCMD_SET_SHAKER_SHAPE + IStr(i_intShakerShape); if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode)) { _HandleError(i_intDeviceID, i_intControllerID, strCommand, "set shaker shape", strFunctionName, o_strErrorCode); return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_strErrorCode = '" + o_strErrorCode + "'", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // SetShakerShape //---------------------------------------------------------------------------------------------- // function GetShakerShape //---------------------------------------------------------------------------------------------- function GetShakerShape(variable i_intControllerID, variable i_intDeviceID, variable& o_intShakerShape, variable& o_strErrorCode) variable { variable strCommand(""), strDescription(""); string strTemp(""); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckIntegerRange(i_intDeviceID, "DeviceID", 0, UPPERDEVICEBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intControllerID = " + IStr(i_intControllerID) + ", i_intDeviceID = " + IStr(i_intDeviceID), strFunctionName); if(!_CheckForInitialization(i_intControllerID, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(_CheckSimulationMode(strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::TRUE); } strCommand = IStr(i_intDeviceID) + _strCMD_GET_SHAKER_SHAPE; if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode)) { _HandleError(i_intDeviceID, i_intControllerID, strCommand, "get shaker shape", strFunctionName, o_strErrorCode); return(ASWGLOBAL::BOOL::FALSE); } o_intShakerShape = IVal(_ExtractAnswer(strTemp)); _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_intShakerShape = " + IStr(o_intShakerShape) + ", o_strErrorCode = '" + o_strErrorCode + "'", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // GetShakerShape //---------------------------------------------------------------------------------------------- // function GetShakerStatus //---------------------------------------------------------------------------------------------- function GetShakerStatus(variable i_intControllerID, variable i_intDeviceID, variable& o_intStatus, variable& o_strErrorCode) variable { variable strCommand(""), strDescription(""); string strTemp(""); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckIntegerRange(i_intDeviceID, "DeviceID", 0, UPPERDEVICEBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intControllerID = " + IStr(i_intControllerID) + ", i_intDeviceID = " + IStr(i_intDeviceID), strFunctionName); if(!_CheckForInitialization(i_intControllerID, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(_CheckSimulationMode(strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::TRUE); } strCommand = IStr(i_intDeviceID) + _strCMD_GET_SHAKER_STATUS; if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode)) { _HandleError(i_intDeviceID, i_intControllerID, strCommand, "get shaker status", strFunctionName, o_strErrorCode); return(ASWGLOBAL::BOOL::FALSE); } o_intStatus = IVal(_ExtractAnswer(strTemp)); _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_intStatus = " + IStr(o_intStatus) + ", o_strErrorCode = '" + o_strErrorCode + "'", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // GetShakerStatus //---------------------------------------------------------------------------------------------- // function StartShaker //---------------------------------------------------------------------------------------------- function StartShaker(variable i_intControllerID, variable i_intDeviceID, variable& o_strErrorCode) variable { variable strCommand(""), strDescription(""); string strTemp(""); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckIntegerRange(i_intDeviceID, "DeviceID", 0, UPPERDEVICEBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intControllerID = " + IStr(i_intControllerID) + ", i_intDeviceID = " + IStr(i_intDeviceID), strFunctionName); if(!_CheckForInitialization(i_intControllerID, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(_CheckSimulationMode(strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::TRUE); } strCommand = IStr(i_intDeviceID) + _strCMD_SET_SHAKER + "1"; if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode)) { _HandleError(i_intDeviceID, i_intControllerID, strCommand, "start shaker", strFunctionName, o_strErrorCode); return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_strErrorCode = '" + o_strErrorCode + "'", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // StartShaker //---------------------------------------------------------------------------------------------- // function StopShaker //---------------------------------------------------------------------------------------------- function StopShaker(variable i_intControllerID, variable i_intDeviceID, variable& o_strErrorCode) variable { variable strCommand(""), strDescription(""); string strTemp(""); variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(!_CheckIntegerRange(i_intDeviceID, "DeviceID", 0, UPPERDEVICEBOUND, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intControllerID = " + IStr(i_intControllerID) + ", i_intDeviceID = " + IStr(i_intDeviceID), strFunctionName); if(!_CheckForInitialization(i_intControllerID, strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::FALSE); } if(_CheckSimulationMode(strFunctionName)) { o_strErrorCode = gHSLInhecoTECLib_strErrorCode; return(ASWGLOBAL::BOOL::TRUE); } strCommand = IStr(i_intDeviceID) + _strCMD_SET_SHAKER + "0"; if(!_SendCommandToController(strCommand, i_intControllerID, strFunctionName, strTemp, o_strErrorCode)) { _HandleError(i_intDeviceID, i_intControllerID, strCommand, "stop shaker", strFunctionName, o_strErrorCode); return(ASWGLOBAL::BOOL::FALSE); } _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_strErrorCode = '" + o_strErrorCode + "'", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // StopShaker //---------------------------------------------------------------------------------------------- // function GetLastError //---------------------------------------------------------------------------------------------- function GetLastError(variable& o_strLastError) void { o_strLastError = gHSLInhecoTECLib_strLibraryLastError; gHSLInhecoTECLib_strLibraryLastError = ""; } // GetLastError //---------------------------------------------------------------------------------------------- // function GetDescriptionForErrorCode //---------------------------------------------------------------------------------------------- function GetDescriptionForErrorCode(variable& i_strErrorCode, variable& o_strDescription) variable { variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckString(i_strErrorCode, "i_strErrorCode", strFunctionName)) return(ASWGLOBAL::BOOL::FALSE); o_strDescription = ""; if(i_strErrorCode == "000") o_strDescription = "No error"; if(i_strErrorCode == "001") o_strDescription = "Library in simulation mode"; if(i_strErrorCode == "002") o_strDescription = "Failed to create communication object from InhecoMTCdll.dll"; if(i_strErrorCode == "003") o_strDescription = "Failed to find the controller for the specified ControllerID"; if(i_strErrorCode == "004") o_strDescription = "Trying to initialize a controller that is already initialized"; if(i_strErrorCode == "005") o_strDescription = "Trying to send a command to a controller that is not initialized"; if(i_strErrorCode == "006") o_strDescription = "Shaker did not answer"; if(i_strErrorCode == "007") o_strDescription = "Controller did not answer"; if(i_strErrorCode == "201") o_strDescription = "Value is not a bool"; if(i_strErrorCode == "202") o_strDescription = "Value is not an integer"; if(i_strErrorCode == "203") o_strDescription = "Value is not an integer or outside the range bounds"; if(i_strErrorCode == "204") o_strDescription = "Value is not a string"; if(i_strErrorCode == "205") o_strDescription = "Value is not a float or outside the range bounds"; if(i_strErrorCode == "TEC_0") o_strDescription = "inheco TEC: Normal return message. Command successfull"; if(i_strErrorCode == "TEC_1") o_strDescription = "inheco TEC: External message protocol violation."; if(i_strErrorCode == "TEC_2") o_strDescription = "inheco TEC: Internal message protocol violation."; if(i_strErrorCode == "TEC_3") o_strDescription = "inheco TEC: Command not executable."; if(i_strErrorCode == "TEC_4") o_strDescription = "inheco TEC: Command unknown."; if(i_strErrorCode == "TEC_5") o_strDescription = "inheco TEC: Wrong parameter."; if(i_strErrorCode == "TEC_6") o_strDescription = "inheco TEC: Reset detected."; if(i_strErrorCode == "TEC_7") o_strDescription = "inheco TEC: Slot Id unknown."; if(i_strErrorCode == "TEC_8") o_strDescription = "inheco TEC: Wrong keyword."; if(i_strErrorCode == "TEC_9") o_strDescription = "inheco TEC: Timeout from slot-module."; if(i_strErrorCode == "TEC_A") o_strDescription = "inheco TEC: Busy with an action command or startup."; if(i_strErrorCode == "TEC_B") o_strDescription = "inheco TEC: Reserved."; if(i_strErrorCode == "TEC_C") o_strDescription = "inheco TEC: Housing temperature not OK."; if(i_strErrorCode == "TEC_D") o_strDescription = "inheco TEC: Response time too long."; if(i_strErrorCode == "TEC_E") o_strDescription = "inheco TEC: Voltage power supply not OK."; if(i_strErrorCode == "TEC_F") o_strDescription = "inheco TEC: Housing fan not OK."; if(i_strErrorCode == "TEC_G") o_strDescription = "inheco TEC: Device temp not OK."; if(i_strErrorCode == "TEC_H") o_strDescription = "inheco TEC: RPM too high."; if(i_strErrorCode == "TEC_I") o_strDescription = "inheco TEC: CPAC voltage not OK."; if(i_strErrorCode == "TEC_K") o_strDescription = "inheco TEC: TEC current too low."; if(i_strErrorCode == "TEC_R") o_strDescription = "inheco TEC: Cable Break or Shortcut PT100."; if(i_strErrorCode == "TEC_T") o_strDescription = "inheco TEC: Delta T too high."; if(i_strErrorCode == "TEC_W") o_strDescription = "inheco TEC: Wrong device connected."; if(o_strDescription != "") return(ASWGLOBAL::BOOL::TRUE); return(ASWGLOBAL::BOOL::FALSE); } // GetDescriptionForErrorCode //---------------------------------------------------------------------------------------------- // function SendCommandString //---------------------------------------------------------------------------------------------- function SendCommandString(variable i_intControllerID, variable i_strCommand, variable& o_strResponse) variable { variable strDescription(""); timer hdlDelay; variable strFunctionName(""); strFunctionName = _ExtractFunctionName(GetFunctionName()); if(!_CheckIntegerRange(i_intControllerID, "i_intControllerID", LOWERCONTROLLERBOUND, UPPERCONTROLLERBOUND, strFunctionName)) return(ASWGLOBAL::BOOL::FALSE); if(!_CheckString(i_strCommand, "i_strCommand", strFunctionName)) return(ASWGLOBAL::BOOL::FALSE); _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_intControllerID = " + IStr(i_intControllerID) + ", i_strCommand = '" + i_strCommand + "'", strFunctionName); if(!_CheckForInitialization(i_intControllerID, strFunctionName)) return(ASWGLOBAL::BOOL::FALSE); if(_CheckSimulationMode(strFunctionName)) return(ASWGLOBAL::BOOL::TRUE); // Checks end gHSLInhecoTECLib_hdlSemaphore.WaitEvent(hslInfinite); hdlDelay.SetTimer(0.1, 0); hdlDelay.WaitTimer(hslFalse, hslFalse); gHSLInhecoTECLib_objTECController.FindTheUniversalControl(i_intControllerID); gHSLInhecoTECLib_objTECController.WriteOnly(i_strCommand); strDescription = "Sent command '" + i_strCommand + "' to Controller " + IStr(i_intControllerID); _StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, strDescription, strFunctionName); hdlDelay.SetTimer(0.1, 0); hdlDelay.WaitTimer(hslFalse, hslFalse); o_strResponse = gHSLInhecoTECLib_objTECController.ReadSync(); strDescription = "Received '" + o_strResponse + "' from Controller " + IStr(i_intControllerID); _StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, strDescription, strFunctionName); gHSLInhecoTECLib_hdlSemaphore.SetEvent(); _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_strResponse = '" + o_strResponse + "'", strFunctionName); return(ASWGLOBAL::BOOL::TRUE); } // SendCommandString //---------------------------------------------------------------------------------------------- // private function _CheckForInitialization //---------------------------------------------------------------------------------------------- private function _CheckForInitialization(variable i_intControllerID, variable i_strFunctionName) variable { if(gHSLInhecoTECLib_blnTECControllerConnected.ElementAt(i_intControllerID)) return (hslTrue); i_strFunctionName = i_strFunctionName + " - " + _ExtractFunctionName(GetFunctionName()); _StatusTrace(CMD_FAIL, TRACE_LEVEL_RELEASE, "ControllerID" + IStr(i_intControllerID) + " is not initialized!", i_strFunctionName); gHSLInhecoTECLib_strLibraryLastError = "ControllerID" + IStr(i_intControllerID) + " is not initialized!"; gHSLInhecoTECLib_strErrorCode = "005"; return(hslFalse); } // _CheckForInitialization //---------------------------------------------------------------------------------------------- // private function _CheckBool //---------------------------------------------------------------------------------------------- private function _CheckBool(variable i_varVariable, variable i_strTraceEntry, variable i_strFunctionName) variable { if(GetType(i_varVariable) == "i") if(i_varVariable == ASWGLOBAL::BOOL::TRUE || i_varVariable == ASWGLOBAL::BOOL::FALSE) return(ASWGLOBAL::BOOL::TRUE); gHSLInhecoTECLib_strLibraryLastError = "Input parameter " + i_strTraceEntry + " is not of type bool"; gHSLInhecoTECLib_strErrorCode = "201"; _StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_NONE, gHSLInhecoTECLib_strLibraryLastError, i_strFunctionName); return(ASWGLOBAL::BOOL::FALSE); } // _CheckBool //---------------------------------------------------------------------------------------------- // private function _CheckInteger //---------------------------------------------------------------------------------------------- private function _CheckInteger(variable i_varVariable, variable i_strTraceEntry, variable i_strFunctionName) variable { if(GetType(i_varVariable) == "i") return(ASWGLOBAL::BOOL::TRUE); gHSLInhecoTECLib_strLibraryLastError = "Input parameter " + i_strTraceEntry + " is not of type integer"; gHSLInhecoTECLib_strErrorCode = "202"; _StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_NONE, gHSLInhecoTECLib_strLibraryLastError, i_strFunctionName); return(ASWGLOBAL::BOOL::FALSE); } // _CheckInteger //---------------------------------------------------------------------------------------------- // private function _CheckInteger //---------------------------------------------------------------------------------------------- private function _CheckIntegerRange(variable i_varVariable, variable i_strTraceEntry, variable i_intMin, variable i_intMax, variable i_strFunctionName) variable { if(GetType(i_varVariable) == "i") if(i_varVariable >= i_intMin && i_varVariable <= i_intMax) return(ASWGLOBAL::BOOL::TRUE); else gHSLInhecoTECLib_strLibraryLastError = "Parameter " + i_strTraceEntry + " is out of range("+ IStr(i_intMin) + ".." + IStr(i_intMax) + ")!"; else gHSLInhecoTECLib_strLibraryLastError = "Input parameter " + i_strTraceEntry + " is not of type integer"; gHSLInhecoTECLib_strErrorCode = "203"; _StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_NONE, gHSLInhecoTECLib_strLibraryLastError, i_strFunctionName); return(ASWGLOBAL::BOOL::FALSE); } // _CheckIntegerRange //---------------------------------------------------------------------------------------------- // private function _CheckInteger //---------------------------------------------------------------------------------------------- private function _CheckFloatRange(variable i_varVariable, variable i_strTraceEntry, variable i_fltMin, variable i_fltMax, variable i_strFunctionName) variable { if(GetType(i_varVariable) == "f") if(i_varVariable >= i_fltMin && i_varVariable <= i_fltMax) return(ASWGLOBAL::BOOL::TRUE); else gHSLInhecoTECLib_strLibraryLastError = "Parameter " + i_strTraceEntry + " is out of range("+ FStr(i_fltMin) + ".." + FStr(i_fltMax) + ")!"; else gHSLInhecoTECLib_strLibraryLastError = "Input parameter " + i_strTraceEntry + " is not of type float"; gHSLInhecoTECLib_strErrorCode = "205"; _StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_NONE, gHSLInhecoTECLib_strLibraryLastError, i_strFunctionName); return(ASWGLOBAL::BOOL::FALSE); } // _CheckFloatRange //---------------------------------------------------------------------------------------------- // private function _HandleError //---------------------------------------------------------------------------------------------- private function _HandleError(variable i_intDeviceID, variable i_intControllerID, variable i_strCommand, variable i_strDescription, variable i_strFunctionName, variable& o_strErrorCode) void { variable strDescription(""); strDescription = "Cannot " + i_strDescription; if(i_intDeviceID > 0) strDescription = strDescription + " of device " + IStr(i_intDeviceID); strDescription = strDescription + " on controller " + IStr(i_intControllerID) + " with command '" + i_strCommand + "'"; _StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, strDescription, i_strFunctionName); gHSLInhecoTECLib_strLibraryLastError = strDescription; o_strErrorCode = gHSLInhecoTECLib_strErrorCode; } // _HandleError //---------------------------------------------------------------------------------------------- // private function _ExtractAnswer //---------------------------------------------------------------------------------------------- private function _ExtractAnswer(string i_strControllerResponse) variable { return(i_strControllerResponse.Mid(5, i_strControllerResponse.GetLength())); } // _ExtractAnswer //---------------------------------------------------------------------------------------------- // private function _SendCommandToController //---------------------------------------------------------------------------------------------- private function _SendCommandToController(variable i_strCommand, variable i_intControllerID, variable i_strFunctionName, variable& o_strResponse, variable& o_strErrorCode) variable { variable strDescription(""); string strResponse(""), strError(""); variable intLoopCounterRetry(0); timer hdlDelay; i_strFunctionName = i_strFunctionName + " - " + _ExtractFunctionName(GetFunctionName()); // retry loop - in case of wrong return value from controller try again (MAXNUMBEROFRETRIES) before returnng unsuccessful while(hslTrue) { intLoopCounterRetry++; gHSLInhecoTECLib_hdlSemaphore.WaitEvent(hslInfinite); gHSLInhecoTECLib_objTECController.FindTheUniversalControl(i_intControllerID); gHSLInhecoTECLib_objTECController.WriteOnly(i_strCommand); strDescription = "Sent command '" + i_strCommand + "' to Controller " + IStr(i_intControllerID); _StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, strDescription, i_strFunctionName); hdlDelay.SetTimer(0.1, 0); hdlDelay.WaitTimer(hslFalse, hslFalse); strResponse = gHSLInhecoTECLib_objTECController.ReadSync(); o_strResponse = strResponse; strDescription = "Received '" + o_strResponse + "' from Controller " + IStr(i_intControllerID); _StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, strDescription, i_strFunctionName); gHSLInhecoTECLib_hdlSemaphore.SetEvent(); // check whether controller sent status reply if(strResponse.GetLength() > 0) { // controller gave answer if(strResponse.GetLength() >= 5) { strError = strResponse.Mid(4,1); } } else { // no answer from controller gHSLInhecoTECLib_strErrorCode = "007"; o_strErrorCode = gHSLInhecoTECLib_strErrorCode; strDescription = "Controller " + IStr(i_intControllerID) + " did not answer !"; gHSLInhecoTECLib_strLibraryLastError = strDescription; _StatusTrace(CMD_FAIL, TRACE_LEVEL_NONE, strDescription, i_strFunctionName); return(hslFalse); } if(0 == strError.Compare("0")) { gHSLInhecoTECLib_strErrorCode = "TEC_0"; o_strErrorCode = gHSLInhecoTECLib_strErrorCode; strDescription = "Command '" + i_strCommand + "' for Controller " + IStr(i_intControllerID) + " succeeded with response '" + o_strResponse + "'"; _StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, strDescription, i_strFunctionName); return(hslTrue); } else if(0 == strError.Compare("6")) { gHSLInhecoTECLib_strErrorCode = "TEC_0"; o_strErrorCode = gHSLInhecoTECLib_strErrorCode; strDescription = "Reset detected."; _StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, strDescription, i_strFunctionName); return(hslTrue); } else { if(intLoopCounterRetry > MAXNUMBEROFRETRIES) { o_strErrorCode = strError; gHSLInhecoTECLib_strErrorCode = "TEC_" + o_strErrorCode; o_strErrorCode = gHSLInhecoTECLib_strErrorCode; strDescription = "Command '" + i_strCommand + "' for Controller " + IStr(i_intControllerID) + " failed with response '" + o_strResponse + "'"; gHSLInhecoTECLib_strLibraryLastError = strDescription; _StatusTrace(CMD_FAIL, TRACE_LEVEL_NONE, strDescription, i_strFunctionName); return(hslFalse); } } hdlDelay.SetTimer(2.0, 0); hdlDelay.WaitTimer(hslFalse, hslFalse); } } // _SendCommandToController //---------------------------------------------------------------------------------------------- // private function _CheckString //---------------------------------------------------------------------------------------------- private function _CheckString(variable i_varVariable, variable i_strTraceEntry, variable i_strFunctionName) variable { if(GetType(i_varVariable) == "s") return(hslTrue); gHSLInhecoTECLib_strErrorCode = "204"; gHSLInhecoTECLib_strLibraryLastError = "Parameter " + i_strTraceEntry + " is not of type string!"; _StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_NONE, gHSLInhecoTECLib_strLibraryLastError, i_strFunctionName); return(hslFalse); } // _CheckString //---------------------------------------------------------------------------------------------- // private function _CheckSimulationMode //---------------------------------------------------------------------------------------------- private function _CheckSimulationMode(variable i_strFunctionName) variable { if(gHSLInhecoTECLib_blnLibrarySimulationMode) { i_strFunctionName = i_strFunctionName + " - " + _ExtractFunctionName(GetFunctionName()); gHSLInhecoTECLib_strErrorCode = "001"; gHSLInhecoTECLib_strLibraryLastError = "Inheco TEC-Library in simulation mode."; _StatusTrace(CMD_START, TRACE_LEVEL_NONE, "Inheco TEC-Library in simulation mode.", i_strFunctionName); return(hslTrue); } else return (hslFalse); } //---------------------------------------------------------------------------------------------- // private function _StatusTrace //---------------------------------------------------------------------------------------------- private function _StatusTrace(variable i_intState, variable i_intTraceLevel, variable i_strTraceEntry, variable i_strFunctionName) void { if(i_intTraceLevel <= gHSLInhecoTECLib_intLibraryTraceLevel) { i_strFunctionName = _ExtractFunctionName(i_strFunctionName); FormatTrace("LIBRARY: " + gHSLInhecoTECLib_strLibraryModuleName, i_strFunctionName, i_intState, " ", i_strTraceEntry); } }// _StatusTrace //---------------------------------------------------------------------------------------------- // private function _ReverseFind //---------------------------------------------------------------------------------------------- private function _ReverseFind(string i_strStringToParse, string i_strSubstringToFind) variable { variable intIndex; variable intResult(-1); variable intStringLength; string strTempString; strTempString = i_strStringToParse; intStringLength = strTempString.GetLength(); for (intIndex = strTempString.Find(i_strSubstringToFind); intIndex != -1; intIndex = strTempString.Find(i_strSubstringToFind)) { intResult = intResult + intIndex + 1; strTempString = strTempString.Mid(intIndex + 1, intStringLength); } return(intResult); } // _ReverseFind //---------------------------------------------------------------------------------------------- // private function _ExtractFunctionName //---------------------------------------------------------------------------------------------- private function _ExtractFunctionName(variable i_strFunctionName) variable { string strFunctionName(i_strFunctionName); return(strFunctionName.Mid(_ReverseFind(i_strFunctionName, ":") + 1, strFunctionName.GetLength())); } // _ExtractFunctionName } // namespace HSLInhecoTECLib #endif // $$author=bhuf$$valid=1$$time=2015-06-03 09:23$$checksum=91c6826e$$length=083$$ ================================================ FILE: pyhamilton/library/HSLLabwareStateLib.hsl ================================================ // ====================================================================== // This is a part of the HSL Labware State Library. // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // All rights reserved. // ====================================================================== // // Modification History // 2005-05-03 mhosang : Initial file creation // // ====================================================================== #ifndef __HSLLabwareStateLib_hsl__ #define __HSLLabwareStateLib_hsl__ 1 // --------------------------------------------------------------------------------------- // Interface to the HSL Labware State Library // --------------------------------------------------------------------------------------- #ifndef HSL_RUNTIME namespace HSLLabwState { //**************************************************************************************** // Library function GetLabwareID //**************************************************************************************** // // Description: // Returns the labware ID of the labware at the current position of the given sequence // // Parameter: // Device [in] the device to be used // Sequence [in] the sequence where the current position specifies a labware // // Return value: // The labware id of the labware (string) //**************************************************************************************** function GetLabwareID( device& Device, sequence& Sequence) variable { return (""); } //**************************************************************************************** // Library function GetLabwareBarcode //**************************************************************************************** // // Description: // Returns the barcode of the labware at the current position of the given sequence // // Parameter: // Device [in] the device to be used // Sequence [in] the sequence where the current position specifies a labware // LabwareLevel [in] the labware level to be used // must be a value out of the namespace LabwareLevels // // Return value: // The barcode of the labware (string) //**************************************************************************************** function GetLabwareBarcode( device& Device, sequence& Sequence, variable& LabwareLevel) variable { return (""); } //**************************************************************************************** // Library function SetLabwareBarcode //**************************************************************************************** // // Description: // Overwrites the barcode of the labware at the current position of the given sequence // // Parameter: // Device [in] the device to be used // Sequence [in] the sequence where the current position specifies a labware // LabwareLevel [in] the labware level to be used // must be a value out of the namespace LabwareLevels // Barcode [in] the barcode to be set (string) // // Return value: // None. The function throws an error if it fails. //**************************************************************************************** function SetLabwareBarcode( device& Device, sequence& Sequence, variable& LabwareLevel, variable& Barcode) void {} //**************************************************************************************** // Library function GetLabwareBarcodeMask //**************************************************************************************** // // Description: // Returns the barcode mask of the labware at the current position of the given // sequence // // Parameter: // Device [in] the device to be used // Sequence [in] the sequence where the current position specifies a labware // LabwareLevel [in] the labware level to be used // must be a value out of the namespace LabwareLevels // // Return value: // The barcode mask of the labware (string) //**************************************************************************************** function GetLabwareBarcodeMask( device& Device, sequence& Sequence, variable& LabwareLevel) variable { return (""); } //**************************************************************************************** // Library function SetLabwareBarcodeMask //**************************************************************************************** // // Description: // Overwrites the barcode mask of the labware at the current position of the given // sequence // // Parameter: // Device [in] the device to be used // Sequence [in] the sequence where the current position specifies a labware // LabwareLevel [in] the labware level to be used // must be a value out of the namespace LabwareLevels // BarcodeMask [in] the barcode mask to be set (string) // // Return value: // None. The function throws an error if it fails. //**************************************************************************************** function SetLabwareBarcodeMask( device& Device, sequence& Sequence, variable& LabwareLevel, variable& BarcodeMask) void {} //**************************************************************************************** // Library function GetLabwareSourceBarcodes //**************************************************************************************** // // Description: // Returns an array filled with all source barcodes of the labware at the current // position of the given sequence // // Parameter: // Device [in] the device to be used // Sequence [in] the sequence where the current position specifies a labware // ListType [in] the type of the source barcode list // must be a valid barcode list type out of the namespace // STrackerConst // // Return value: // An array filled with historical ordered source barcodes //**************************************************************************************** function GetLabwareSourceBarcodes( device& Device, sequence& Sequence, variable& ListType) variable[] { variable retVal[]; return (retVal); } //**************************************************************************************** // Library function GetLabwareLastSourceBarcode //**************************************************************************************** // // Description: // Returns the last known source barcode of the labware at the current position of the // given sequence // // Parameter: // Device [in] the device to be used // Sequence [in] the sequence where the current position specifies a labware // // Return value: // The last known source barcode as a string //**************************************************************************************** function GetLabwareLastSourceBarcode( device& Device, sequence& Sequence) variable { return (""); } //**************************************************************************************** // Library function AddLabwareSourceBarcode //**************************************************************************************** // // Description: // Adds a specific barcode to the source barcodes of the labware at the current // position of the given sequence. // // Parameter: // Device [in] the device to be used // Sequence [in] the sequence where the current position specifies a labware // Barcode [in] the barcode to be added // // Return value: // The last known source barcode as a string //**************************************************************************************** function AddLabwareSourceBarcode( device& Device, sequence& Sequence, variable& Barcode) void {} //**************************************************************************************** // Library function SetLabwareSummaryState //**************************************************************************************** // // Description: // Overwrites the summary state of the labware at the current position of the given // sequence // // Parameter: // Device [in] the device to be used // Sequence [in] the sequence where the current position specifies a labware // SummaryState [in] the summary state to be set // // Return value: // None. The function throws an error if it fails. //**************************************************************************************** function SetLabwareSummaryState( device& Device, sequence& Sequence, variable& SummaryState) void {} //**************************************************************************************** // Library function GetLabwareSummaryState //**************************************************************************************** // // Description: // Returns the summary state of the labware at the current position of the given // sequence // // Parameter: // Device [in] the device to be used // Sequence [in] the sequence where the current position specifies a labware // // Return value: // The summary state of the labware as an integer //**************************************************************************************** function GetLabwareSummaryState( device& Device, sequence& Sequence) variable { return (0); } //**************************************************************************************** // Library function GetLabwareLastActionState //**************************************************************************************** // // Description: // Returns the action state of the last action for the labware at the current position // of the given sequence // // Parameter: // Device [in] the device to be used // Sequence [in] the sequence where the current position specifies a labware // // Return value: // The last action state of the labware as an integer //**************************************************************************************** function GetLabwareLastActionState( device& Device, sequence& Sequence) variable { return (0); } //**************************************************************************************** // Library function SetLabwareExpNumOfProcSteps //**************************************************************************************** // // Description: // Sets the expected number of processed steps for the labware at the current position // of the given sequence // // Parameter: // Device [in] the device to be used // Sequence [in] the sequence where the current position specifies a labware // NumOfProcSteps [in] the number of processed steps // // Return value: // The last known source barcode as a string //**************************************************************************************** function SetLabwareExpNumOfProcSteps( device& Device, sequence& Sequence, variable& NumOfProcSteps) void {} //**************************************************************************************** // Library function GetLabwareExpNumOfProcSteps //**************************************************************************************** // // Description: // Returns the expected number of processed steps for the labware at the current // position of the given sequence // // Parameter: // Device [in] the device to be used // Sequence [in] the sequence where the current position specifies a labware // // Return value: // The last known source barcode as a string //**************************************************************************************** function GetLabwareExpNumOfProcSteps( device& Device, sequence& Sequence) variable { return (0); } //**************************************************************************************** // Library function GetLabwareNumOfProcSteps //**************************************************************************************** // // Description: // Returns the number of processed steps for the labware at the current position // of the given sequence // // Parameter: // Device [in] the device to be used // Sequence [in] the sequence where the current position specifies a labware // // Return value: // The last known source barcode as a string //**************************************************************************************** function GetLabwareNumOfProcSteps( device& Device, sequence& Sequence) variable { return (0); } //**************************************************************************************** // Library function SetLabwareVolume //**************************************************************************************** // // Description: // Sets the volume of the labware at the current position of the given sequence // // Parameter: // Device [in] the device to be used // Sequence [in] the sequence where the current position specifies a labware // Volume [in] the volume to be set // // Return value: // None. The function throws an error if it fails. //**************************************************************************************** function SetLabwareVolume( device& Device, sequence& Sequence, variable& Volume) void {} //**************************************************************************************** // Library function GetLabwareVolume //**************************************************************************************** // // Description: // Returns the volume of the labware at the current position of the given sequence // // Parameter: // Device [in] the device to be used // Sequence [in] the sequence where the current position specifies a labware // // Return value: // The volume of the labware as an integer //**************************************************************************************** function GetLabwareVolume( device& Device, sequence& Sequence) variable { return (0); } //**************************************************************************************** // Library function GetLabwareRelation //**************************************************************************************** // // Description: // Returns the labware id of the choosen labware level at the current position of the // given sequence // // Parameter: // Device [in] the device to be used // Sequence [in] the sequence where the current position specifies a labware // LabwareLevel [in] the labware level to be used // must be a value out of the namespace LabwareLevels // // Return value: // The last known source barcode as a string //**************************************************************************************** function GetLabwareRelation( device& Device, sequence& Sequence, variable& LabwareLevel) variable { return (""); } //**************************************************************************************** // Library function SetLabwareVisibility //**************************************************************************************** // // Description: // Sets the visibility of the choosen labware level at the current position of the // given sequence // // Parameter: // Device [in] the device to be used // Sequence [in] the sequence where the current position specifies a labware // LabwareLevel [in] the labware level to be used // must be a value out of the namespace LabwareLevels // Visibility [in] the visibility to be set [hslTrue|hslFalse] // // Return value: // None. The function throws an error if it fails. //**************************************************************************************** function SetLabwareVisibility( device& Device, sequence& Sequence, variable& LabwareLevel, variable& Visibility) void {} //**************************************************************************************** // Library function GetLabwareVisibility //**************************************************************************************** // // Description: // Returns the visibility of the choosen labware level at the current position of the // given sequence // // Parameter: // Device [in] the device to be used // Sequence [in] the sequence where the current position specifies a labware // LabwareLevel [in] the labware level to be used // must be a value out of the namespace LabwareLevels // // Return value: // The visibility of the labware. (integer) //**************************************************************************************** function GetLabwareVisibility( device& Device, sequence& Sequence, variable& LabwareLevel) variable { return (0); } //**************************************************************************************** // Library function IsLabwareConnected //**************************************************************************************** // // Description: // Returns hslTrue, if the labware at the current position of the given sequence is // part of a connected container, else hslFalse // // Parameter: // Device [in] the device to be used // Sequence [in] the sequence where the current position specifies a labware // // Return value: // Returns hslTrue, if part of a connected container, else hslFalse //**************************************************************************************** function IsLabwareConnected( device& Device, sequence& Sequence) variable { return (hslFalse); } } // end of namespace HSLLabwState #endif // -------------------------------------------------------------------------------------- // Implementation of the HSL Labware State Library // -------------------------------------------------------------------------------------- #ifdef HSL_RUNTIME #include "HSLLabwareStateLibImpl.hs_" #endif #endif // $$author=wbarmettler$$valid=1$$time=2017-03-09 07:27$$checksum=00b519d6$$length=090$$ ================================================ FILE: pyhamilton/library/HSLLabwareStateLibImpl.hs_ ================================================ // ====================================================================== // This is a part of the HSL Labware State Library. // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // All rights reserved. // ====================================================================== // // Modification History // 2005-05-04 mhosang : Initial file creation // 2006-09-04 ljegher : Adapt implementation for VectorDb // 2009-12-10 mhosang : Updated SetLabwareVisibility() to match HxLabwr3 // implementation // // ====================================================================== // include guard #pragma once // necessary includes #ifndef __HSLStrLib_hsl__ #include "HSLStrLib.hsl" #endif #ifndef __HSLSynLib_hsl__ #include "HSLSynLib.hsl" #endif #ifndef __HSLUtilLib_hsl__ #include "HSLUtilLib.hsl" #endif #ifndef __HSLSeqLib_hsl__ #include "HSLSeqLib.hsl" #endif #ifndef __HSLMthLib_hsl__ #include "HSLMthLib.hsl" #endif // -------------------------------------------------------------------------------------- // Implementation of the HSL Labware State Library // -------------------------------------------------------------------------------------- namespace HSLLabwState { #ifndef __HSLStringTableLib_hsl__ #include "HSLStringTableLib.hs_" #endif // -------------------------------------------------------------------------------------- // Library Data // -------------------------------------------------------------------------------------- //declaration of global member data global variable mg_HSLLabwState_IsSampleTrackingEnabled(hslFalse); // false, if sample tracking is OFF global object mg_HSLLabwState_trackerObject; // the one and only sample tracker object, instantiated from executor global variable mg_HSLLabwState_cs(0); // critical section //declaration of member data valid within namespace of process variable m_initializedLib(hslFalse); // initialization state of the HSL Mapping Report library // -------------------------------------------------------------------------------------- // Debugging // -------------------------------------------------------------------------------------- //#define _DEBUG 1 // specifies the debug version of the library // -------------------------------------------------------------------------------------- // Labware Levels // -------------------------------------------------------------------------------------- namespace LabwareLevels { // the labware levels must be in the following order: // min <----------------------> max // deck <----------------------> container const variable deck(100); const variable template(200); const variable rack(300); const variable container(400); } // -------------------------------------------------------------------------------------- // Interfaces // -------------------------------------------------------------------------------------- namespace Interfaces { // these are the used interfaces const variable IEditLabware ("IEditLabware6"); const variable IRectRack ("IRectRack2"); } // -------------------------------------------------------------------------------------- // Tracing // -------------------------------------------------------------------------------------- namespace TraceStatus { const variable start (1); // action status for formatted trace const variable complete (2); // action status for formatted trace const variable error_ (3); // action status for formatted trace const variable progress (4); // action status for formatted trace const variable completeWithError (5); // action status for formatted trace } // -------------------------------------------------------------------------------------- // Error Ids // -------------------------------------------------------------------------------------- namespace IDE { const variable first (0); // guard const variable noError (first); // No error. const variable fatalError (first + 1); // General unspecific error const variable invalidParameter (first + 2); // Invalid parameter const variable sampleTrackingDisabled (first + 3); // Sample tracking is disabled. const variable invalidLabwareLevel (first + 4); // Invalid labware level. const variable invalidBarcodeListType (first + 5); // Invalid barcode list type. const variable invalidBarcode (first + 6); // Invalid barcode. const variable invalidBarcodeMask (first + 7); // Invalid barcode mask. const variable invalidSummaryState (first + 8); // Invalid summary state. const variable invalidNumberOfProcessedSteps (first + 9); // Invalid number of processed steps. const variable invalidVolume (first + 10); // Invalid volume. const variable invalidVisibility (first + 11); // Invalid visibility. const variable invalidSequencePosition (first + 12); // Invalid sequence position. const variable noCarrierFound (first + 13); // No carrier found for the given sequence. const variable last (first + 13); // guard } // -------------------------------------------------------------------------------------- // String Ids // -------------------------------------------------------------------------------------- namespace IDS { //private const variable first (IDE::last + 1); // guard const variable helpFileName (first); // help file name const variable traceSource (first + 1); // trace source const variable traceActionGetLabwareID (first + 2); // GetLabwareID const variable traceActionGetLabwareBarcode (first + 3); // GetLabwareBarcode const variable traceActionSetLabwareBarcode (first + 4); // SetLabwareBarcode const variable traceActionGetLabwareBarcodeMask (first + 5); // GetLabwareBarcodeMask const variable traceActionSetLabwareBarcodeMask (first + 6); // SetLabwareBarcodeMask const variable traceActionGetLabwareSourceBarcodes (first + 7); // GetLabwareSourceBarcodes const variable traceActionGetLabwareLastSourceBarcode (first + 8); // GetLabwareLastSourceBarcode const variable traceActionAddLabwareSourceBarcode (first + 9); // AddLabwareSourceBarcode const variable traceActionSetLabwareSummaryState (first + 10); // SetLabwareSummaryState const variable traceActionGetLabwareSummaryState (first + 11); // GetLabwareSummaryState const variable traceActionGetLabwareLastActionState (first + 12); // GetLabwareLastActionState const variable traceActionSetLabwareExpNumOfProcSteps (first + 13); // SetLabwareExpNumOfProcSteps const variable traceActionGetLabwareExpNumOfProcSteps (first + 14); // GetLabwareExpNumOfProcSteps const variable traceActionGetLabwareNumOfProcSteps (first + 15); // GetLabwareNumOfProcSteps const variable traceActionSetLabwareVolume (first + 16); // SetLabwareVolume const variable traceActionGetLabwareVolume (first + 17); // GetLabwareVolume const variable traceActionGetLabwareRelation (first + 18); // GetLabwareRelation const variable traceActionSetLabwareVisibility (first + 19); // SetLabwareVisibility const variable traceActionGetLabwareVisibility (first + 20); // GetLabwareVisibility const variable traceActionIsLabwareConnected (first + 21); // IsLabwareConnected const variable enableSampleTracking (first + 22); // Sample tracking must be enabled const variable functionGetLabwareIDFailed (first + 24); // Could not determine labware id const variable functionGetLabwareBarcodeFailed (first + 25); // Could not determine labware barcode const variable functionSetLabwareBarcodeFailed (first + 26); // Could not set labware barcode const variable functionGetLabwareBarcodeMaskFailed (first + 27); // Could not determine labware barcode mask const variable functionSetLabwareBarcodeMaskFailed (first + 28); // Could not set labware barcode mask const variable functionGetLabwareSourceBarcodesFailed (first + 29); // Could not determine labware source barcodes const variable functionGetLabwareLastSourceBarcodeFailed (first + 30); // Could not determine labware's last source barcode const variable functionAddLabwareSourceBarcodeFailed (first + 31); // Could not add source barcode to labware const variable functionSetLabwareSummaryStateFailed (first + 32); // Could not set labware's summary state const variable functionGetLabwareSummaryStateFailed (first + 33); // Could not determine labware's summary state const variable functionGetLabwareLastActionStateFailed (first + 34); // Could not determine labware's last action state const variable functionSetLabwareExpNumOfProcStepsFailed (first + 35); // Could not set labware's expected number of processed steps const variable functionGetLabwareExpNumOfProcStepsFailed (first + 36); // Could not determine the expected number of processed steps const variable functionGetLabwareNumOfProcStepsFailed (first + 37); // Could not determine the number of procecssed steps const variable functionSetLabwareVolumeFailed (first + 38); // Could not set labware's volume const variable functionGetLabwareVolumeFailed (first + 39); // Could not determine labware's volume const variable functionGetLabwareRelationFailed (first + 40); // Could not determine labware relation const variable functionSetLabwareVisibilityFailed (first + 41); // Could not set the visibility of the labware const variable functionGetLabwareVisibilityFailed (first + 42); // Could not determine the visibility of the labware const variable functionIsLabwareConnectedFailed (first + 43); // Could not determine if labware is connected const variable last (first + 43); // guard } // -------------------------------------------------------------------------------------- // String constants // -------------------------------------------------------------------------------------- namespace StrConst { const variable libraryImplFileName ("HSLLabwareStateLibImpl"); // Library implementation file name const variable libraryImplFullFileName ("HSLLabwareStateLibImp.hs_"); const variable templateDefaultName ("default"); // template default name const variable elementNameDivider ("\\"); const variable emptyString (""); const variable blank (" "); const variable underscore ("_"); const variable semicolon (";"); } // -------------------------------------------------------------------------------------- // Number constants // -------------------------------------------------------------------------------------- namespace STrackerConst { // action states const variable actionState_NoError (0); const variable actionState_Fatal (1); const variable actionState_Error (2); const variable actionState_Warning (3); // element actions const variable elementAction_Load (100); const variable elementAction_Remove (101); const variable elementAction_Move (102); const variable elementAction_Import (103); const variable elementAction_Overlap (104); const variable elementAction_VolumeMove (105); const variable elementAction_VolumeSet (106); const variable elementAction_BarcodeSet (107); const variable elementAction_NameSet (108); const variable elementAction_Wash (109); const variable elementAction_SummaryStateSet (110); const variable elementAction_ExpectedNumberOfProcessedStepsSet (111); const variable elementAction_AddElementVariables (112); const variable elementAction_AddElementTrackerVariables (113); // shape of racktype const variable shape_Rectangular (0); const variable shape_Circular (1); const variable shape_Irregular (2); // directions const variable direction_ByRows (0); const variable direction_ByColumns (1); const variable direction_Irregular (2); // first position const variable firstPosition_InBack (0); const variable firstPosition_InFront (1); // parameters const variable parameter_SampleTrackerInternal (0); const variable parameter_ActionState (1); const variable parameter_SourceAccessName (2); const variable parameter_TargetAccessName (3); const variable parameter_ActionVolume (4); const variable parameter_UseMixing (5); const variable parameter_MixVolume (6); const variable parameter_SourceVolume (7); const variable parameter_TargetVolume (8); const variable parameter_BaseName (9); const variable parameter_ElementNames (10); const variable parameter_Rows (11); const variable parameter_Columns (12); const variable parameter_FirstPosition (13); const variable parameter_Direction (14); const variable parameter_Shape (15); const variable parameter_ElementType (16); const variable parameter_Barcode (17); const variable parameter_AltAccessName (18); const variable parameter_DisplayName (19); const variable parameter_SummaryState (20); const variable parameter_ExpectedNumberOfProcessedSteps (21); const variable parameter_ActionID (22); const variable parameter_ActionSubID (23); const variable parameter_ElementAction (24); const variable parameter_AdditionalVariables (25); // summary states const variable summaryState_NoError (0); const variable summaryState_Error (3); const variable summaryState_Warning (4); const variable summaryState_NotUsed (5); // barcode list types const variable barcodeListType_Full (0); const variable barcodeListType_Simplified (1); // element type2 const variable elementType2_Undefined (0); const variable elementType2_Rack (1); const variable elementType2_TipRack (2); const variable elementType2_ConnectedContainerRack (3); const variable elementType2_ConnectedContainer (4); } namespace LabwareConst { const variable barcodeValue ("Labwr_Barcode"); const variable positionID ("Labwr_PosId"); } // -------------------------------------------------------------------------------------- // Exception Handling // -------------------------------------------------------------------------------------- namespace Error { static function Raise( // raises a runtime error variable errorId, // [in] error id, one of IDE variable& fileName, // [in] file name variable& funcName, // [in] function name variable& lineNumber) // [in] line number { variable description(""); // set error description description = fileName + " (" + lineNumber + ") : " + funcName + "()\n" + StringTable::Load(errorId); err.SetDescription(description); // raise error err.Raise(errorId, err.GetDescription(), StringTable::Load(IDS::helpFileName)); } function RaiseEx( // raises a runtime error variable errorId, // [in] error id, one of IDE variable errorDesc, // [in] error description variable& fileName, // [in] file name variable& funcName, // [in] function name variable& lineNumber) // [in] line number { variable description(""); // set error description if ("" == funcName) description = fileName + " (" + lineNumber + ") : " + errorDesc; else description = fileName + " (" + lineNumber + ") : " + funcName + "()\n" + errorDesc; err.SetDescription(description); // raise error err.Raise(errorId, err.GetDescription(), StringTable::Load(IDS::helpFileName)); } function RaiseLast() // re-throws the last runtime error { // re-raise error err.Raise(); } } // -------------------------------------------------------------------------------------- // Declaration of static functions // -------------------------------------------------------------------------------------- static function InitLabwareStateLibrary(); static function IsSampleTrackerOn(); // returns hslTrue, if sample tracker is switched ON static function IsValidLabwareLevel( // returns hslTrue, if labware level is valid, else hslFalse variable& LabwareLevel, variable& minLabwareLevel); static function IsValidBarcodeListType( // returns hslTrue, if list type is valid, else hslFalse variable& ListType); static function IsValidBarcode( // returns hslTrue, if barcode is valid, else hslFalse variable& Barcode); static function IsValidBarcodeMask( // returns hslTrue, if barcode mask is valid, else hslFalse variable& BarcodeMask); static function IsValidSummaryState( // returns hslTrue, if summary state is valid, else hslFalse variable& SummaryState); static function IsValidNumOfProcSteps( // returns hslTrue, if number of processed steps is valid, else hslFalse variable& NumOfProcSteps); static function IsValidVolume( // returns hslTrue, if volume is valid, else hslFalse variable& Volume); static function IsValidVisibility( // returns hslTrue, if visibility is valid, else hslFalse variable& Visibility); static function IsValidSequencePosition( // returns hslTrue, if the current position of the sequence is valid, else hslFalse sequence& Sequence); static function NormalizeVolume( // normalizes the given volume from 1 ul to 0.1 ul variable& Volume); static function DeNormalizeVolume( // de-normalizes the given volume from 0.1 ul to 1 ul variable& Volume); static function GetLabwareHierarchy( device& device_, sequence& sequence_, variable& labwareLevel_); // -------------------------------------------------------------------------------------- // Implementation of static functions // -------------------------------------------------------------------------------------- static function InitLabwareStateLibrary() { // initialize the HSL Labware State library once only if (!m_initializedLib) { // load string table StringTable::Init(StrConst::libraryImplFileName); #ifdef _DEBUG StringTable::Dump(); #endif if(0 == mg_HSLLabwState_cs) mg_HSLLabwState_cs = SynInitializeCriticalSection(); if(mg_HSLLabwState_trackerObject.IsNull()) mg_HSLLabwState_trackerObject = GetVectorDbTrackerObject(); mg_HSLLabwState_IsSampleTrackingEnabled = IsSampleTrackerOn(); m_initializedLib = hslTrue; } return(m_initializedLib); } static function IsSampleTrackerOn() { variable retVal (hslFalse); variable sampleTrackerOn (0); // test, if already initialized if (m_initializedLib == hslTrue) { // return cached setting retVal = mg_HSLLabwState_IsSampleTrackingEnabled; } else { // get the setting from the sample tracker object sampleTrackerOn = mg_HSLLabwState_trackerObject.Enabled(); if (sampleTrackerOn == 1) retVal = hslTrue; else retVal = hslFalse; } return (retVal); } static function IsValidLabwareLevel( variable& LabwareLevel, variable& minLabwareLevel) { variable isValid (hslFalse); // test, if labware level is an integer if (Util::IsInteger(LabwareLevel) == hslTrue) { // test, if labware level is in specified range if (minLabwareLevel <= LabwareLevel) { // test, if labware level is valid if ( (LabwareLevel == LabwareLevels::deck) || (LabwareLevel == LabwareLevels::template) || (LabwareLevel == LabwareLevels::rack) || (LabwareLevel == LabwareLevels::container) ) { // labware level is valid isValid = hslTrue; } } } return (isValid); } static function IsValidBarcodeListType( variable& ListType) { variable isValid (hslFalse); // test, if barcode list type is an integer if (Util::IsInteger(ListType) == hslTrue) { // test, if barcode list type is valid if ( (ListType == STrackerConst::barcodeListType_Full) || (ListType == STrackerConst::barcodeListType_Simplified) ) { // barcode list type is valid isValid = hslTrue; } } return (isValid); } static function IsValidBarcode( variable& Barcode) { variable isValid (hslFalse); // test, if barcode is a string if (Util::IsString(Barcode) == hslTrue) { // barcode is valid isValid = hslTrue; } return (isValid); } static function IsValidBarcodeMask( variable& BarcodeMask) { variable isValid (hslFalse); // test, if barcode mask is a string if (Util::IsString(BarcodeMask) == hslTrue) { // barcode mask is valid isValid = hslTrue; } return (isValid); } static function IsValidSummaryState( variable& SummaryState) { variable isValid (hslFalse); // test, if summary state is an integer if (Util::IsInteger(SummaryState) == hslTrue) { // test, if summary state is valid if ( (SummaryState == STrackerConst::summaryState_NoError) || (SummaryState == STrackerConst::summaryState_Error) || (SummaryState == STrackerConst::summaryState_Warning) || (SummaryState == STrackerConst::summaryState_NotUsed) ) { // summary state is valid isValid = hslTrue; } } return (isValid); } static function IsValidNumOfProcSteps( variable& NumOfProcSteps) { variable isValid (hslFalse); // test, if number of processed steps is an integer if (Util::IsInteger(NumOfProcSteps) == hslTrue) { // test, if number of processed steps is positive if (Util::IsNegative(NumOfProcSteps) == hslFalse) { // number of processed steps is valid isValid = hslTrue; } } return (isValid); } static function IsValidVolume( variable& Volume) { variable isValid (hslFalse); // test, if volume is a number if (Util::IsNumber(Volume) == hslTrue) { // test, if volume is positive if (Util::IsNegative(Volume) == hslFalse) { // volume is valid isValid = hslTrue; } } return (isValid); } static function IsValidVisibility( variable& Visibility) { variable isValid (hslFalse); // test, if visibility is an integer if (Util::IsInteger(Visibility) == hslTrue) { // test, if visibility is a valid boolean if ( (Visibility == hslFalse) || (Visibility == hslTrue) ) { // value is a valid boolean isValid = hslTrue; } } return (isValid); } static function IsValidSequencePosition( sequence& Sequence) { variable isValid (hslFalse); // test, if current position is valid if (Sequence.GetCurrentPosition() > 0) { // current position is valid isValid = hslTrue; } return (isValid); } static function NormalizeVolume( variable& Volume) { // implementation taken from HxGruCommand variable retVolume (0); variable tmpVolume (0.0); if (Volume > 0) tmpVolume = Volume + 0.005; else tmpVolume = Volume - 0.005; retVolume = MthFloor(((tmpVolume * 100) / 10)); return (retVolume); } static function DeNormalizeVolume( variable& Volume) { // implementation taken from HxGruCommand variable retVolume (0.0); // round to one decimal place to prevent errors retVolume = MthRound((Volume / 10.0), 1); return (retVolume); } static function GetLabwareHierarchy( device& device_, sequence& sequence_, variable& labwareLevel_) { variable templateNames[]; variable labwareNames[]; variable instrumentName (""); variable labware_id_Carrier (""); variable labware_id_Plate (""); variable labware_id_Well (""); variable size (0); variable index (0); variable labwareHierarchie (""); if (IsValidLabwareLevel(labwareLevel_, LabwareLevels::deck) == hslFalse) Error::RaiseEx(IDE::invalidLabwareLevel, StringTable::Load(IDE::invalidLabwareLevel), StrConst::libraryImplFullFileName, "", GetLineNumber()); labware_id_Well = SeqGetPositionId(sequence_); labware_id_Plate = SeqGetLabwareId(sequence_); // Search Template name depending on the labware_id_Plate device_.GetTemplateLabwareNames(templateNames, labwareNames); size = labwareNames.GetSize(); for (index = 0; index < size; index ++) if (labwareNames.GetAt(index) == labware_id_Plate) break; // if labware name exist if (index < size) { labware_id_Carrier = templateNames[index]; // Assign template name instrumentName = device_.GetInstrumentName(); // Get instrument name if (labwareLevel_ == LabwareLevels::deck) { labwareHierarchie = instrumentName; } else if (labwareLevel_ == LabwareLevels::template) { if (labware_id_Carrier == StrConst::templateDefaultName) { Error::RaiseEx(IDE::noCarrierFound, StringTable::Load(IDE::noCarrierFound), StrConst::libraryImplFullFileName, "", GetLineNumber()); } else { labwareHierarchie = instrumentName + StrConst::elementNameDivider + labware_id_Carrier; } } else if (labwareLevel_ == LabwareLevels::rack) { if (labware_id_Carrier == StrConst::templateDefaultName) { labwareHierarchie = instrumentName + StrConst::elementNameDivider + labware_id_Plate; } else { labwareHierarchie = instrumentName + StrConst::elementNameDivider + labware_id_Carrier + StrConst::elementNameDivider + labware_id_Plate; } } else if (labwareLevel_ == LabwareLevels::container) { if (labware_id_Carrier == StrConst::templateDefaultName) { labwareHierarchie = instrumentName + StrConst::elementNameDivider + labware_id_Plate + StrConst::elementNameDivider + labware_id_Well; } else { labwareHierarchie = instrumentName + StrConst::elementNameDivider + labware_id_Carrier + StrConst::elementNameDivider + labware_id_Plate + StrConst::elementNameDivider + labware_id_Well; } } } else { // the labware could not be found on the deck, maybe it's an alias labwareHierarchie = labware_id_Plate; } return (labwareHierarchie); } static function GetDummyCharacters( // function returns a string of given characters and length variable nbrOfCharcters, // [in] the length of the string as integer string character) // [in] the wished character { variable i; string s; for (i = 0; i < nbrOfCharcters; i++) { s = s + character; } return (s); } // -------------------------------------------------------------------------------------- // Interface functions // -------------------------------------------------------------------------------------- function GetLabwareID( device& Device, sequence& Sequence) { variable traceSource(""); // source for formatted trace variable traceAction(""); // action for formatted trace variable traceInfo(""); // additional trace information InitLabwareStateLibrary(); // get access to global data SynEnterCriticalSection(mg_HSLLabwState_cs); // error handler onerror goto Unexpected; traceSource = StringTable::Load(IDS::traceSource); traceAction = StringTable::Load(IDS::traceActionGetLabwareID); if (IsValidSequencePosition(Sequence) == hslFalse) Error::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); return (SeqGetLabwareId(Sequence)); Unexpected: { traceInfo = StringTable::Load(IDS::functionGetLabwareIDFailed); // trace progress FormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); // re-throw last error Error::RaiseLast(); } } function GetLabwareBarcode( device& Device, sequence& Sequence, variable& LabwareLevel) { variable accessName (""); variable labwBarcode (""); variable traceSource(""); // source for formatted trace variable traceAction(""); // action for formatted trace variable traceInfo(""); // additional trace information InitLabwareStateLibrary(); // get access to global data SynEnterCriticalSection(mg_HSLLabwState_cs); // error handler onerror goto Unexpected; traceSource = StringTable::Load(IDS::traceSource); traceAction = StringTable::Load(IDS::traceActionGetLabwareBarcode); if (IsSampleTrackerOn() == hslFalse) Error::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidSequencePosition(Sequence) == hslFalse) Error::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidLabwareLevel(LabwareLevel, LabwareLevels::template) == hslFalse) Error::RaiseEx(IDE::invalidLabwareLevel, StringTable::Load(IDE::invalidLabwareLevel), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); accessName = GetLabwareHierarchy(Device, Sequence, LabwareLevel); labwBarcode = mg_HSLLabwState_trackerObject.GetLabwareBarcode(accessName); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); return (labwBarcode); Unexpected: { traceInfo = StringTable::Load(IDS::functionGetLabwareBarcodeFailed); // trace progress FormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); // re-throw last error Error::RaiseLast(); } } function SetLabwareBarcode( device& Device, sequence& Sequence, variable& LabwareLevel, variable& Barcode) { variable accessName (""); object pars; variable traceSource(""); // source for formatted trace variable traceAction(""); // action for formatted trace variable traceInfo(""); // additional trace information InitLabwareStateLibrary(); // get access to global data SynEnterCriticalSection(mg_HSLLabwState_cs); // error handler onerror goto Unexpected; traceSource = StringTable::Load(IDS::traceSource); traceAction = StringTable::Load(IDS::traceActionSetLabwareBarcode); if (IsSampleTrackerOn() == hslFalse) Error::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidSequencePosition(Sequence) == hslFalse) Error::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidLabwareLevel(LabwareLevel, LabwareLevels::template) == hslFalse) Error::RaiseEx(IDE::invalidLabwareLevel, StringTable::Load(IDE::invalidLabwareLevel), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidBarcode(Barcode) == hslFalse) Error::RaiseEx(IDE::invalidBarcode, StringTable::Load(IDE::invalidBarcode), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); accessName = GetLabwareHierarchy(Device, Sequence, LabwareLevel); pars.CreateObject("HXPARAMSLib.HxPars"); pars.Add( 1, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_ActionCount); pars.Add( accessName, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions, 1, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Target); pars.Add( mg_HSLLabwState_trackerObject.HxVectorDbLabwareHandling_IfNotExists_Error, // handling as in old library mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions, 1, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_TargetLabwareHandling); pars.Add( Barcode, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions, 1, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Barcode); pars.Add( STrackerConst::actionState_NoError, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions, 1, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_ActionState); pars.Add( hslFalse, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions, 1, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_ErrorAvailable); mg_HSLLabwState_trackerObject.TrackAction_SetBarcode( pars); pars.ReleaseObject(); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); return; Unexpected: { traceInfo = StringTable::Load(IDS::functionGetLabwareBarcodeFailed); // trace progress FormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); // re-throw last error Error::RaiseLast(); } } function GetLabwareBarcodeMask( device& Device, sequence& Sequence, variable& LabwareLevel) { object decklayout; object labware; object editLabware; object pars; variable barcodeMask (""); variable traceSource(""); // source for formatted trace variable traceAction(""); // action for formatted trace variable traceInfo(""); // additional trace information InitLabwareStateLibrary(); // get access to global data SynEnterCriticalSection(mg_HSLLabwState_cs); // error handler onerror goto Unexpected; traceSource = StringTable::Load(IDS::traceSource); traceAction = StringTable::Load(IDS::traceActionGetLabwareBarcodeMask); if (IsValidSequencePosition(Sequence) == hslFalse) Error::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidLabwareLevel(LabwareLevel, LabwareLevels::rack) == hslFalse) Error::RaiseEx(IDE::invalidLabwareLevel, StringTable::Load(IDE::invalidLabwareLevel), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); decklayout = Device.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(SeqGetLabwareId(Sequence)); if ( !labware.IsNull() ) { labware.GetObject(Interfaces::IEditLabware, editLabware); if ( !editLabware.IsNull() ) { pars.CreateObject("HXPARAMSLib.HxPars"); if ( !pars.IsNull() ) { pars.Add("", LabwareConst::barcodeValue); if (LabwareLevel == LabwareLevels::container) pars.Add(SeqGetPositionId(Sequence), LabwareConst::positionID); editLabware.GetBarcodeProperties(pars); barcodeMask = pars.Item1(LabwareConst::barcodeValue); pars.ReleaseObject(); } else { Error::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); } editLabware.ReleaseObject(); } else { Error::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); } labware.ReleaseObject(); } else { Error::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); } decklayout.ReleaseObject(); } else { Error::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); } // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); return (barcodeMask); Unexpected: { traceInfo = StringTable::Load(IDS::functionGetLabwareBarcodeMaskFailed); // trace progress FormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); // re-throw last error Error::RaiseLast(); } } function SetLabwareBarcodeMask( device& Device, sequence& Sequence, variable& LabwareLevel, variable& BarcodeMask) { object decklayout; object labware; object editLabware; object pars; variable traceSource(""); // source for formatted trace variable traceAction(""); // action for formatted trace variable traceInfo(""); // additional trace information InitLabwareStateLibrary(); // get access to global data SynEnterCriticalSection(mg_HSLLabwState_cs); // error handler onerror goto Unexpected; traceSource = StringTable::Load(IDS::traceSource); traceAction = StringTable::Load(IDS::traceActionSetLabwareBarcodeMask); if (IsValidSequencePosition(Sequence) == hslFalse) Error::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidLabwareLevel(LabwareLevel, LabwareLevels::rack) == hslFalse) Error::RaiseEx(IDE::invalidLabwareLevel, StringTable::Load(IDE::invalidLabwareLevel), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidBarcodeMask(BarcodeMask) == hslFalse) Error::RaiseEx(IDE::invalidBarcodeMask, StringTable::Load(IDE::invalidBarcodeMask), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); decklayout = Device.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(SeqGetLabwareId(Sequence)); if ( !labware.IsNull() ) { labware.GetObject(Interfaces::IEditLabware, editLabware); if ( !editLabware.IsNull() ) { pars.CreateObject("HXPARAMSLib.HxPars"); if ( !pars.IsNull() ) { pars.Add(BarcodeMask, LabwareConst::barcodeValue); if (LabwareLevel == LabwareLevels::container) pars.Add(SeqGetPositionId(Sequence), LabwareConst::positionID); editLabware.SetBarcodeProperties(pars); pars.ReleaseObject(); } else { Error::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); } editLabware.ReleaseObject(); } else { Error::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); } labware.ReleaseObject(); } else { Error::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); } decklayout.ReleaseObject(); } else { Error::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); } // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); return; Unexpected: { traceInfo = StringTable::Load(IDS::functionSetLabwareBarcodeMaskFailed); // trace progress FormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); // re-throw last error Error::RaiseLast(); } } function GetLabwareSourceBarcodes( device& Device, sequence& Sequence, variable& ListType) { variable accessName (""); variable size; variable index; variable barcode; variable sourceBarcodes[]; variable vectorDbListType; // mapping the enum value to HxVectorDbSourceBarcodeListType variable traceSource(""); // source for formatted trace variable traceAction(""); // action for formatted trace variable traceInfo(""); // additional trace information InitLabwareStateLibrary(); // get access to global data SynEnterCriticalSection(mg_HSLLabwState_cs); // error handler onerror goto Unexpected; traceSource = StringTable::Load(IDS::traceSource); traceAction = StringTable::Load(IDS::traceActionGetLabwareSourceBarcodes); if (IsSampleTrackerOn() == hslFalse) Error::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidSequencePosition(Sequence) == hslFalse) Error::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidBarcodeListType(ListType) == hslFalse) Error::RaiseEx(IDE::invalidBarcodeListType, StringTable::Load(IDE::invalidBarcodeListType), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); // map the Barcode List Type to HxVectorDbSourceBarcodeListType if (ListType == STrackerConst::barcodeListType_Full) { vectorDbListType = mg_HSLLabwState_trackerObject.HxVectorDbSourceBarcodeListType_Full; } else if (ListType == STrackerConst::barcodeListType_Simplified) { vectorDbListType = mg_HSLLabwState_trackerObject.HxVectorDbSourceBarcodeListType_Simplified; } accessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container); sourceBarcodes = mg_HSLLabwState_trackerObject.GetLabwareSourceBarcodeList(accessName, vectorDbListType); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); return (sourceBarcodes); Unexpected: { traceInfo = StringTable::Load(IDS::functionGetLabwareSourceBarcodesFailed); // trace progress FormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); // re-throw last error Error::RaiseLast(); } } function GetLabwareLastSourceBarcode( device& Device, sequence& Sequence) { variable accessName (""); variable lastSourceBarcode (""); variable traceSource(""); // source for formatted trace variable traceAction(""); // action for formatted trace variable traceInfo(""); // additional trace information InitLabwareStateLibrary(); // get access to global data SynEnterCriticalSection(mg_HSLLabwState_cs); // error handler onerror goto Unexpected; traceSource = StringTable::Load(IDS::traceSource); traceAction = StringTable::Load(IDS::traceActionGetLabwareLastSourceBarcode); if (IsSampleTrackerOn() == hslFalse) Error::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidSequencePosition(Sequence) == hslFalse) Error::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); accessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container); lastSourceBarcode = mg_HSLLabwState_trackerObject.GetLabwareLastSourceBarcode(accessName); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); return (lastSourceBarcode); Unexpected: { traceInfo = StringTable::Load(IDS::functionGetLabwareLastSourceBarcodeFailed); // trace progress FormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); // re-throw last error Error::RaiseLast(); } } function AddLabwareSourceBarcode( device& Device, sequence& Sequence, variable& Barcode) { variable accessName (""); variable traceSource(""); // source for formatted trace variable traceAction(""); // action for formatted trace variable traceInfo(""); // additional trace information object pars; InitLabwareStateLibrary(); // get access to global data SynEnterCriticalSection(mg_HSLLabwState_cs); // error handler onerror goto Unexpected; traceSource = StringTable::Load(IDS::traceSource); traceAction = StringTable::Load(IDS::traceActionAddLabwareSourceBarcode); if (IsSampleTrackerOn() == hslFalse) Error::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidSequencePosition(Sequence) == hslFalse) Error::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidBarcode(Barcode) == hslFalse) Error::RaiseEx(IDE::invalidBarcode, StringTable::Load(IDE::invalidBarcode), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); accessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container); pars.CreateObject("HXPARAMSLib.HxPars"); pars.Add( 1, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_ActionCount); pars.Add( accessName, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions, 1, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Target); pars.Add( mg_HSLLabwState_trackerObject.HxVectorDbLabwareHandling_IfNotExists_Error, // handling as in old library mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions, 1, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_TargetLabwareHandling); pars.Add( Barcode, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions, 1, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Barcode); pars.Add( hslFalse, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions, 1, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_ErrorAvailable); mg_HSLLabwState_trackerObject.TrackAction_AddSourceBarcode( pars); pars.ReleaseObject(); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); return; Unexpected: { traceInfo = StringTable::Load(IDS::functionAddLabwareSourceBarcodeFailed); // trace progress FormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); // re-throw last error Error::RaiseLast(); } } function SetLabwareSummaryState( device& Device, sequence& Sequence, variable& SummaryState) { variable accessName (""); object pars; variable traceSource(""); // source for formatted trace variable traceAction(""); // action for formatted trace variable traceInfo(""); // additional trace information InitLabwareStateLibrary(); // get access to global data SynEnterCriticalSection(mg_HSLLabwState_cs); // error handler onerror goto Unexpected; traceSource = StringTable::Load(IDS::traceSource); traceAction = StringTable::Load(IDS::traceActionSetLabwareSummaryState); if (IsSampleTrackerOn() == hslFalse) Error::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidSequencePosition(Sequence) == hslFalse) Error::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidSummaryState(SummaryState) == hslFalse) Error::RaiseEx(IDE::invalidSummaryState, StringTable::Load(IDE::invalidSummaryState), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); accessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container); pars.CreateObject("HXPARAMSLib.HxPars"); pars.Add( 1, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_ActionCount); pars.Add( accessName, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions, 1, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Target); pars.Add( mg_HSLLabwState_trackerObject.HxVectorDbLabwareHandling_IfNotExists_Error, // handling as in old library mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions, 1, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_TargetLabwareHandling); pars.Add( SummaryState, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions, 1, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_LabwareState); pars.Add( hslFalse, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions, 1, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_ErrorAvailable); mg_HSLLabwState_trackerObject.TrackAction_SetLabwareState( pars); pars.ReleaseObject(); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); return; Unexpected: { traceInfo = StringTable::Load(IDS::functionSetLabwareSummaryStateFailed); // trace progress FormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); // re-throw last error Error::RaiseLast(); } } function GetLabwareSummaryState( device& Device, sequence& Sequence) { variable accessName (""); variable summaryState (STrackerConst::summaryState_Error); variable traceSource(""); // source for formatted trace variable traceAction(""); // action for formatted trace variable traceInfo(""); // additional trace information InitLabwareStateLibrary(); // get access to global data SynEnterCriticalSection(mg_HSLLabwState_cs); // error handler onerror goto Unexpected; traceSource = StringTable::Load(IDS::traceSource); traceAction = StringTable::Load(IDS::traceActionGetLabwareSummaryState); if (IsSampleTrackerOn() == hslFalse) Error::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidSequencePosition(Sequence) == hslFalse) Error::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); accessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container); summaryState = mg_HSLLabwState_trackerObject.GetLabwareState(accessName); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); return (summaryState); Unexpected: { traceInfo = StringTable::Load(IDS::functionGetLabwareSummaryStateFailed); // trace progress FormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); // re-throw last error Error::RaiseLast(); } } function GetLabwareLastActionState( device& Device, sequence& Sequence) { variable accessName (""); variable lastActionState (STrackerConst::actionState_Fatal); variable traceSource(""); // source for formatted trace variable traceAction(""); // action for formatted trace variable traceInfo(""); // additional trace information InitLabwareStateLibrary(); // get access to global data SynEnterCriticalSection(mg_HSLLabwState_cs); // error handler onerror goto Unexpected; traceSource = StringTable::Load(IDS::traceSource); traceAction = StringTable::Load(IDS::traceActionGetLabwareLastActionState); if (IsSampleTrackerOn() == hslFalse) Error::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidSequencePosition(Sequence) == hslFalse) Error::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); accessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container); lastActionState = mg_HSLLabwState_trackerObject.GetLabwareLastActionState(accessName); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); return (lastActionState); Unexpected: { traceInfo = StringTable::Load(IDS::functionGetLabwareLastActionStateFailed); // trace progress FormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); // re-throw last error Error::RaiseLast(); } } function SetLabwareExpNumOfProcSteps( device& Device, sequence& Sequence, variable& NumOfProcSteps) { variable accessName (""); variable traceSource(""); // source for formatted trace variable traceAction(""); // action for formatted trace variable traceInfo(""); // additional trace information InitLabwareStateLibrary(); // get access to global data SynEnterCriticalSection(mg_HSLLabwState_cs); // error handler onerror goto Unexpected; traceSource = StringTable::Load(IDS::traceSource); traceAction = StringTable::Load(IDS::traceActionSetLabwareExpNumOfProcSteps); if (IsSampleTrackerOn() == hslFalse) Error::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidSequencePosition(Sequence) == hslFalse) Error::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidNumOfProcSteps(NumOfProcSteps) == hslFalse) Error::RaiseEx(IDE::invalidNumberOfProcessedSteps, StringTable::Load(IDE::invalidNumberOfProcessedSteps), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); accessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container); mg_HSLLabwState_trackerObject.SetLabwareExpectedNumberOfProcessedSteps(accessName, NumOfProcSteps); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); return; Unexpected: { traceInfo = StringTable::Load(IDS::functionSetLabwareExpNumOfProcStepsFailed); // trace progress FormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); // re-throw last error Error::RaiseLast(); } } function GetLabwareExpNumOfProcSteps( device& Device, sequence& Sequence) { variable accessName (""); variable expNumOfProcSteps (0); variable traceSource(""); // source for formatted trace variable traceAction(""); // action for formatted trace variable traceInfo(""); // additional trace information InitLabwareStateLibrary(); // get access to global data SynEnterCriticalSection(mg_HSLLabwState_cs); // error handler onerror goto Unexpected; traceSource = StringTable::Load(IDS::traceSource); traceAction = StringTable::Load(IDS::traceActionGetLabwareExpNumOfProcSteps); if (IsSampleTrackerOn() == hslFalse) Error::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidSequencePosition(Sequence) == hslFalse) Error::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); accessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container); expNumOfProcSteps = mg_HSLLabwState_trackerObject.GetLabwareExpectedNumberOfProcessedSteps(accessName); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); return (expNumOfProcSteps); Unexpected: { traceInfo = StringTable::Load(IDS::functionGetLabwareExpNumOfProcStepsFailed); // trace progress FormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); // re-throw last error Error::RaiseLast(); } } function GetLabwareNumOfProcSteps( device& Device, sequence& Sequence) { variable accessName (""); variable numOfProcSteps (0); variable traceSource(""); // source for formatted trace variable traceAction(""); // action for formatted trace variable traceInfo(""); // additional trace information InitLabwareStateLibrary(); // get access to global data SynEnterCriticalSection(mg_HSLLabwState_cs); // error handler onerror goto Unexpected; traceSource = StringTable::Load(IDS::traceSource); traceAction = StringTable::Load(IDS::traceActionGetLabwareNumOfProcSteps); if (IsSampleTrackerOn() == hslFalse) Error::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidSequencePosition(Sequence) == hslFalse) Error::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); accessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container); numOfProcSteps = mg_HSLLabwState_trackerObject.GetLabwareNumberOfProcessedSteps(accessName); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); return (numOfProcSteps); Unexpected: { traceInfo = StringTable::Load(IDS::functionGetLabwareNumOfProcStepsFailed); // trace progress FormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); // re-throw last error Error::RaiseLast(); } } function SetLabwareVolume( device& Device, sequence& Sequence, variable& Volume) { variable accessName (""); object pars; variable traceSource(""); // source for formatted trace variable traceAction(""); // action for formatted trace variable traceInfo(""); // additional trace information InitLabwareStateLibrary(); // get access to global data SynEnterCriticalSection(mg_HSLLabwState_cs); // error handler onerror goto Unexpected; traceSource = StringTable::Load(IDS::traceSource); traceAction = StringTable::Load(IDS::traceActionSetLabwareVolume); if (IsSampleTrackerOn() == hslFalse) Error::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidSequencePosition(Sequence) == hslFalse) Error::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidVolume(Volume) == hslFalse) Error::RaiseEx(IDE::invalidVolume, StringTable::Load(IDE::invalidVolume), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); accessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container); pars.CreateObject("HXPARAMSLib.HxPars"); pars.Add( 1, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_ActionCount); pars.Add( accessName, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions, 1, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Target); pars.Add( mg_HSLLabwState_trackerObject.HxVectorDbLabwareHandling_IfNotExists_Error, // handling as in old library mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions, 1, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_TargetLabwareHandling); pars.Add( Volume, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions, 1, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_LabwareVolume); pars.Add( hslFalse, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_Actions, 1, mg_HSLLabwState_trackerObject.HxVectorDbParsKey_ActionPars_ErrorAvailable); mg_HSLLabwState_trackerObject.TrackAction_SetVolume( pars); pars.ReleaseObject(); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); return; Unexpected: { traceInfo = StringTable::Load(IDS::functionSetLabwareVolumeFailed); // trace progress FormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); // re-throw last error Error::RaiseLast(); } } function GetLabwareVolume( device& Device, sequence& Sequence) { variable accessName (""); variable volume (0.0); variable traceSource(""); // source for formatted trace variable traceAction(""); // action for formatted trace variable traceInfo(""); // additional trace information InitLabwareStateLibrary(); // get access to global data SynEnterCriticalSection(mg_HSLLabwState_cs); // error handler onerror goto Unexpected; traceSource = StringTable::Load(IDS::traceSource); traceAction = StringTable::Load(IDS::traceActionGetLabwareVolume); if (IsSampleTrackerOn() == hslFalse) Error::RaiseEx(IDE::sampleTrackingDisabled, StringTable::Load(IDE::sampleTrackingDisabled), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidSequencePosition(Sequence) == hslFalse) Error::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); accessName = GetLabwareHierarchy(Device, Sequence, LabwareLevels::container); volume = mg_HSLLabwState_trackerObject.GetLabwareVolume(accessName); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); return (volume); Unexpected: { traceInfo = StringTable::Load(IDS::functionGetLabwareVolumeFailed); // trace progress FormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); // re-throw last error Error::RaiseLast(); } } function GetLabwareRelation( device& Device, sequence& Sequence, variable& LabwareLevel) { variable labware (""); variable instrumentName; variable templateNames[]; variable labwareNames[]; variable labware_id_Carrier; variable labware_id_Plate; variable labware_id_Well; variable size; variable index; variable traceSource(""); // source for formatted trace variable traceAction(""); // action for formatted trace variable traceInfo(""); // additional trace information InitLabwareStateLibrary(); // get access to global data SynEnterCriticalSection(mg_HSLLabwState_cs); // error handler onerror goto Unexpected; traceSource = StringTable::Load(IDS::traceSource); traceAction = StringTable::Load(IDS::traceActionGetLabwareRelation); if (IsValidSequencePosition(Sequence) == hslFalse) Error::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidLabwareLevel(LabwareLevel, LabwareLevels::deck) == hslFalse) Error::RaiseEx(IDE::invalidLabwareLevel, StringTable::Load(IDE::invalidLabwareLevel), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); instrumentName = Device.GetInstrumentName(); labware_id_Plate = SeqGetLabwareId(Sequence); labware_id_Well = SeqGetPositionId(Sequence); Device.GetTemplateLabwareNames(templateNames, labwareNames); size = labwareNames.GetSize(); for (index = 0; index < size; index ++) if (labwareNames.GetAt(index) == labware_id_Plate) break; // if Labware exist if (index < size) { labware_id_Carrier = templateNames[index]; // Assign Template Name } if (LabwareLevel == LabwareLevels::deck) labware = instrumentName; else if (LabwareLevel == LabwareLevels::template) labware = labware_id_Carrier; else if (LabwareLevel == LabwareLevels::rack) labware = labware_id_Plate; else if (LabwareLevel == LabwareLevels::container) labware = labware_id_Well; // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); return (labware); Unexpected: { traceInfo = StringTable::Load(IDS::functionGetLabwareRelationFailed); // trace progress FormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); // re-throw last error Error::RaiseLast(); } } function SetLabwareVisibility( device& Device, sequence& Sequence, variable& LabwareLevel, variable& Visibility) { object decklayout; //object labware; //object editLabware; object parsPackage; variable templateNames[]; variable labwareNames[]; variable labware_id_Carrier; variable labware_id_Plate; variable labware_id_Well; variable size; variable index; variable traceSource(""); // source for formatted trace variable traceAction(""); // action for formatted trace variable traceInfo(""); // additional trace information InitLabwareStateLibrary(); // get access to global data SynEnterCriticalSection(mg_HSLLabwState_cs); // error handler onerror goto Unexpected; traceSource = StringTable::Load(IDS::traceSource); traceAction = StringTable::Load(IDS::traceActionSetLabwareVisibility); if (IsValidSequencePosition(Sequence) == hslFalse) Error::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidLabwareLevel(LabwareLevel, LabwareLevels::template) == hslFalse) Error::RaiseEx(IDE::invalidLabwareLevel, StringTable::Load(IDE::invalidLabwareLevel), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); // not possible to make a well invisible - only full plates are possible if (LabwareLevel == LabwareLevels::container) Error::RaiseEx(IDE::invalidLabwareLevel, StringTable::Load(IDE::invalidLabwareLevel), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidVisibility(Visibility) == hslFalse) Error::RaiseEx(IDE::invalidVisibility, StringTable::Load(IDE::invalidVisibility), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); decklayout = Device.GetDeckLayoutObject(); labware_id_Plate = SeqGetLabwareId(Sequence); labware_id_Well = SeqGetPositionId(Sequence); Device.GetTemplateLabwareNames(templateNames, labwareNames); size = labwareNames.GetSize(); for (index = 0; index < size; index ++) if (labwareNames.GetAt(index) == labware_id_Plate) break; // if Labware exist if (index < size) { labware_id_Carrier = templateNames[index]; // Assign Template Name } if ( !decklayout.IsNull() ) { if (LabwareLevel == LabwareLevels::template) { parsPackage.CreateObject("HXPARAMSLib.HxPars"); if (Visibility == hslTrue) parsPackage.Add(/*decklayout.CommonLoadState_lwclsLoaded*/ 1, labware_id_Carrier); else { parsPackage.Add(/*decklayout.CommonLoadState_lwclsUnloaded*/ 0, labware_id_Carrier); for (index = 0; index < size; index ++) { if (templateNames.GetAt(index) == labware_id_Carrier) parsPackage.Add(/*decklayout.CommonLoadState_lwclsUnloaded*/ 0, labwareNames.GetAt(index)); } } decklayout.LoadedLabware = parsPackage; parsPackage.ReleaseObject(); } else if (LabwareLevel == LabwareLevels::rack) { parsPackage.CreateObject("HXPARAMSLib.HxPars"); if (Visibility == hslTrue) parsPackage.Add(/*decklayout.CommonLoadState_lwclsLoaded*/ 1, labware_id_Plate); else parsPackage.Add(/*decklayout.CommonLoadState_lwclsUnloaded*/ 0, labware_id_Plate); decklayout.LoadedLabware = parsPackage; parsPackage.ReleaseObject(); } decklayout.RequestRefresh(); decklayout.ReleaseObject(); } else { Error::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); } // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); return; Unexpected: { traceInfo = StringTable::Load(IDS::functionSetLabwareVisibilityFailed); // trace progress FormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); // re-throw last error Error::RaiseLast(); } } function GetLabwareVisibility( device& Device, sequence& Sequence, variable& LabwareLevel) { object decklayout; object labware; object editLabware; variable tempVisibility (hslFalse); variable visibility (hslFalse); variable templateNames[]; variable labwareNames[]; variable labware_id_Carrier; variable labware_id_Plate; variable labware_id_Well; variable size; variable index; variable traceSource(""); // source for formatted trace variable traceAction(""); // action for formatted trace variable traceInfo(""); // additional trace information InitLabwareStateLibrary(); // get access to global data SynEnterCriticalSection(mg_HSLLabwState_cs); // error handler onerror goto Unexpected; traceSource = StringTable::Load(IDS::traceSource); traceAction = StringTable::Load(IDS::traceActionGetLabwareVisibility); if (IsValidSequencePosition(Sequence) == hslFalse) Error::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); if (IsValidLabwareLevel(LabwareLevel, LabwareLevels::template) == hslFalse) Error::RaiseEx(IDE::invalidLabwareLevel, StringTable::Load(IDE::invalidLabwareLevel), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); // not possible to get the visibility of a well - only full plates are possible if (LabwareLevel == LabwareLevels::container) Error::RaiseEx(IDE::invalidLabwareLevel, StringTable::Load(IDE::invalidLabwareLevel), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); decklayout = Device.GetDeckLayoutObject(); labware_id_Plate = SeqGetLabwareId(Sequence); labware_id_Well = SeqGetPositionId(Sequence); Device.GetTemplateLabwareNames(templateNames, labwareNames); size = labwareNames.GetSize(); for (index = 0; index < size; index ++) if (labwareNames.GetAt(index) == labware_id_Plate) break; // if Labware exist if (index < size) { labware_id_Carrier = templateNames[index]; // Assign Template Name } if ( !decklayout.IsNull() ) { if (LabwareLevel == LabwareLevels::template) { // we are interested in the visibility of the carrier labware = decklayout.Labware(labware_id_Carrier); } else if (LabwareLevel == LabwareLevels::rack) { // we are interested in the visibility of the plate labware = decklayout.Labware(labware_id_Plate); } if ( !labware.IsNull() ) { labware.GetObject(Interfaces::IEditLabware, editLabware); if ( !editLabware.IsNull() ) { tempVisibility = editLabware.Visible; if (tempVisibility == 1) visibility = hslTrue; else visibility = hslFalse; editLabware.ReleaseObject(); } else { Error::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); } labware.ReleaseObject(); } else { Error::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); } decklayout.ReleaseObject(); } else { Error::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); } // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); return (visibility); Unexpected: { traceInfo = StringTable::Load(IDS::functionGetLabwareVisibilityFailed); // trace progress FormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); // re-throw error Error::RaiseLast(); } } function IsLabwareConnected( device& Device, sequence& Sequence) { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); variable isConnected (hslFalse); variable traceSource(""); // source for formatted trace variable traceAction(""); // action for formatted trace variable traceInfo(""); // additional trace information InitLabwareStateLibrary(); // get access to global data SynEnterCriticalSection(mg_HSLLabwState_cs); // error handler onerror goto Unexpected; traceSource = StringTable::Load(IDS::traceSource); traceAction = StringTable::Load(IDS::traceActionIsLabwareConnected); if (IsValidSequencePosition(Sequence) == hslFalse) Error::RaiseEx(IDE::invalidSequencePosition, StringTable::Load(IDE::invalidSequencePosition), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); // get the deck layout decklayout = Device.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(SeqGetLabwareId(Sequence)); if ( !labware.IsNull() ) { labware.GetObject(Interfaces::IRectRack, rectRack); if ( !rectRack.IsNull() ) { tmpIsConnected = rectRack.ConnectedCtr; if (tmpIsConnected == 1) isConnected = hslTrue; else isConnected = hslFalse; rectRack.ReleaseObject(); } else { Error::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); } labware.ReleaseObject(); } else { Error::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); } decklayout.ReleaseObject(); } else { Error::RaiseEx(IDE::fatalError, StringTable::Load(IDE::fatalError), StrConst::libraryImplFullFileName, traceAction, GetLineNumber()); } // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); return (isConnected); Unexpected: { traceInfo = StringTable::Load(IDS::functionIsLabwareConnectedFailed); // trace progress FormatTrace(traceSource, traceAction, TraceStatus::completeWithError, traceInfo); // release access to global data SynLeaveCriticalSection(mg_HSLLabwState_cs); // re-throw error Error::RaiseLast(); } } } // end of namespace HSLLabwState // $$author=wbarmettler$$valid=1$$time=2017-03-09 07:27$$checksum=20a2b621$$length=088$$ ================================================ FILE: pyhamilton/library/HSLLabwareStateLibImplEnu.hs_ ================================================ // ====================================================================== // This is a part of the HSL Labware State Library. // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // All rights reserved. // ====================================================================== // // Modification History // 2005-05-03 mhosang : Initial file creation // // Remarks: Don't translate placeholders like '%s', '%s1', '%s2', '%d' etc; // // ====================================================================== function StringTable() { // IDE Insert(IDE::noError, "No error." ); Insert(IDE::fatalError, "Fatal error." ); Insert(IDE::invalidParameter, "Invalid parameter." ); Insert(IDE::sampleTrackingDisabled, "Sample tracking is disabled." ); Insert(IDE::invalidLabwareLevel, "Invalid labware level." ); Insert(IDE::invalidBarcodeListType, "Invalid barcode list type." ); Insert(IDE::invalidBarcode, "Invalid barcode. The barcode must be a string." ); Insert(IDE::invalidBarcodeMask, "Invalid barcode mask. The barcode mask must be a string." ); Insert(IDE::invalidSummaryState, "Invalid summary state." ); Insert(IDE::invalidNumberOfProcessedSteps, "Invalid number of processed steps. It must be a positive integer." ); Insert(IDE::invalidVolume, "Invalid volume. It must be a positive number." ); Insert(IDE::invalidVisibility, "Invalid visibility. It must be a boolean." ); Insert(IDE::invalidSequencePosition, "Invalid current position in given sequence." ); Insert(IDE::noCarrierFound, "There is now carrier available for the given sequence." ); // IDS Insert(IDS::helpFileName, "HSLLabwareStateLibEnu.chm" ); Insert(IDS::traceSource, "SYSTEM" ); Insert(IDS::traceActionGetLabwareID, "HSLLabwState::GetLabwareID" ); Insert(IDS::traceActionGetLabwareBarcode, "HSLLabwState::GetLabwareBarcode" ); Insert(IDS::traceActionSetLabwareBarcode, "HSLLabwState::SetLabwareBarcode" ); Insert(IDS::traceActionGetLabwareBarcodeMask, "HSLLabwState::GetLabwareBarcodeMask" ); Insert(IDS::traceActionSetLabwareBarcodeMask, "HSLLabwState::SetLabwareBarcodeMask" ); Insert(IDS::traceActionGetLabwareSourceBarcodes, "HSLLabwState::GetLabwareSourceBarcodes" ); Insert(IDS::traceActionGetLabwareLastSourceBarcode, "HSLLabwState::GetLabwareLastSourceBarcode" ); Insert(IDS::traceActionAddLabwareSourceBarcode, "HSLLabwState::AddLabwareSourceBarcode" ); Insert(IDS::traceActionSetLabwareSummaryState, "HSLLabwState::SetLabwareSummaryState" ); Insert(IDS::traceActionGetLabwareSummaryState, "HSLLabwState::GetLabwareSummaryState" ); Insert(IDS::traceActionGetLabwareLastActionState, "HSLLabwState::GetLabwareLastActionState" ); Insert(IDS::traceActionSetLabwareExpNumOfProcSteps, "HSLLabwState::SetLabwareExpNumOfProcSteps" ); Insert(IDS::traceActionGetLabwareExpNumOfProcSteps, "HSLLabwState::GetLabwareExpNumOfProcSteps" ); Insert(IDS::traceActionGetLabwareNumOfProcSteps, "HSLLabwState::GetLabwareNumOfProcSteps" ); Insert(IDS::traceActionSetLabwareVolume, "HSLLabwState::SetLabwareVolume" ); Insert(IDS::traceActionGetLabwareVolume, "HSLLabwState::GetLabwareVolume" ); Insert(IDS::traceActionGetLabwareRelation, "HSLLabwState::GetLabwareRelation" ); Insert(IDS::traceActionSetLabwareVisibility, "HSLLabwState::SetLabwareVisibility" ); Insert(IDS::traceActionGetLabwareVisibility, "HSLLabwState::GetLabwareVisibility" ); Insert(IDS::traceActionIsLabwareConnected, "HSLLabwState::IsLabwareConnected" ); Insert(IDS::enableSampleTracking, "To use this function, sample tracking must be enabled." ); Insert(IDS::functionGetLabwareIDFailed, " > Could not determine labware id" ); Insert(IDS::functionGetLabwareBarcodeFailed, " > Could not determine labware barcode" ); Insert(IDS::functionSetLabwareBarcodeFailed, " > Could not set labware barcode" ); Insert(IDS::functionGetLabwareBarcodeMaskFailed, " > Could not determine labware barcode mask" ); Insert(IDS::functionSetLabwareBarcodeMaskFailed, " > Could not set labware barcode mask" ); Insert(IDS::functionGetLabwareSourceBarcodesFailed, " > Could not determine labware source barcodes" ); Insert(IDS::functionGetLabwareLastSourceBarcodeFailed, " > Could not determine labware's last source barcode" ); Insert(IDS::functionAddLabwareSourceBarcodeFailed, " > Could not add source barcode to labware" ); Insert(IDS::functionSetLabwareSummaryStateFailed, " > Could not set labware's summary state" ); Insert(IDS::functionGetLabwareSummaryStateFailed, " > Could not determine labware's summary state" ); Insert(IDS::functionGetLabwareLastActionStateFailed, " > Could not determine labware's last action state" ); Insert(IDS::functionSetLabwareExpNumOfProcStepsFailed, " > Could not set labware's expected number of processed steps" ); Insert(IDS::functionGetLabwareExpNumOfProcStepsFailed, " > Could not determine the expected number of processed steps" ); Insert(IDS::functionGetLabwareNumOfProcStepsFailed, " > Could not determine the number of procecssed steps" ); Insert(IDS::functionSetLabwareVolumeFailed, " > Could not set labware's volume" ); Insert(IDS::functionGetLabwareVolumeFailed, " > Could not determine labware's volume" ); Insert(IDS::functionGetLabwareRelationFailed, " > Could not determine labware relation" ); Insert(IDS::functionSetLabwareVisibilityFailed, " > Could not set the visibility of the labware" ); Insert(IDS::functionGetLabwareVisibilityFailed, " > Could not determine the visibility of the labware" ); Insert(IDS::functionIsLabwareConnectedFailed, " > Could not determine if labware is connected" ); } // $$author=wbarmettler$$valid=1$$time=2017-03-09 07:27$$checksum=beba9f55$$length=090$$ ================================================ FILE: pyhamilton/library/HSLLabwrAccess/HSLLabwrAccess.hsl ================================================ //-------------------------------------------------------------------------------------------------------- // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // All rights reserved. // // Project // Description : Accessing, setting and saving labware properties and labware positions on deck // // Software Version : 4.2.1.6547 // // Revision history : V1.0 2011.04.04 D. Hollstein library released // V1.01 2011.05.25 D. Hollstein changed includes, // made SaveChangesToDecklayout private (currently deletes additional resources in the decklayout) // V1.02 2011.07.12 D. Hollstein SaveChangesToDecklayout works now properly and preserves additional resources // V1.03 2012.02.24 B. Huf new function GetConfigurationFilename // reworked function SaveChangesToDecklayout to handle more devices that just ML_STAR // removed some unused variables (objects) // reworked whole library to meet AAW 650410 // V1.04 2012.03.14 B.Huf new function SetTraceLevel // new function SaveChangesToSpecificDecklayout // changed tracing to meet standard library behavior // V1.05 2012.03.22 D.Hollstein new function GetDefaultSequenceForLabwareID - shameless plug from B. Andenmatten in the // Microlab Star Deck Definition Library. However, it was not a public function - and I needed it. // V1.06 2012.08.13 D.Hollstein new function GetRowAndColumnCountForLabwareID - returns the default number of columns and rows of a rect labware. // V1.1 2012.09.11 D.Hollstein new functions: // CreateStack creates a stack at the specified position from a rectrack, // GetTemplateIDAndTemplateSiteID returns carrier ID and position on carrier for a given labware ID (shares the functionality with the VirtualLabwareV2 lib, however the function is implemented differently) // GetTransportSequenceForLabwareID returns a sequence with just one position on the plate for transports // V1.2 2012.10.25 D.Hollstein new function GetLabwareIDsAndTemplateSiteIDsForTemplateID returns the labwareID of racks and their position on a carrier. // V1.3 2012.10.31 D.Hollstein new functions StackIncrease, StackDecrease. Renamed stack create function. // V1.4 2012.11.06 D.Hollstein new function TiltLabware to create a labware with containers that are shifted in z-direction. // V1.5 2012.11.29 D.Hollstein added function for sorting with a probe head. // V2.0.0 2012.11.30 D.Hollstein added sorting function with probe head and variable sequence. Renamed version according to AAW 650427. // V2.0.1 2012.12.11 K.Stadtmller fixed bug in function "AbsolutePositionValuesSetForLabwareID" // V2.0.4 2013.08.19 D.Kaufmann validated //-------------------------------------------------------------------------------------------------------- #ifndef __HSLLABWRACCESS__ #define __HSLLABWRACCESS__ 1 //============================== includes ============================== #ifndef __HSLSynLib_hsl__ #include "HSLSynLib.hsl" #endif //============================== HSLLabwareAccess ============================== namespace HSLLabwrAccess { // Declaration //////////////////////////////////////////////////// function ValueForKeyGetForPropertiesOfLabwareID(device& io_devDevice, variable& o_strPropertyValue, variable i_strPropertyKey, variable i_strLabwareID) variable; function ValueForKeySetForPropertiesOfLabwareID(device& io_devDevice, variable i_strPropertyValue, variable i_strPropertyKey, variable i_strLabwareID) variable; function AbsolutePositionValuesSetForLabwareID(device& io_devDevice, variable i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR) variable; function AbsolutePositionValuesGetForLabwareID(device& io_devDevice, variable i_strLabwareID, variable& o_fltPositionX, variable& o_fltPositionY, variable& o_fltPositionZ, variable& o_fltPositionR) variable; function RelativePositionValuesSetForLabwareID(device& io_devDevice, variable i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR) variable; function SaveChangesToDecklayout(device& io_devDevice) variable; function SaveChangesToSpecificDecklayout(device& io_devDevice, variable i_strDecklayoutName) variable; function GetConfigurationFilename(device& io_devDevice, variable i_strLabwareID, variable& o_strConfigurationFilename) variable; function GetDefaultSequenceForLabwareID(device& io_devDevice, variable& i_strLabwareID, variable i_intEnumSorting, sequence& o_seqDefaultSequence) variable; function GetRowAndColumnCountForLabwareID(device& io_devDevice, variable i_strLabwareID, variable& o_intNumberOfRows, variable& o_intNumberOfColumns) variable; function SetTraceLevel(variable i_intTraceLevel) variable; // Helper functions private function ConvertToFloat(variable iVariable, variable& oVariable) variable; private function CheckBool(variable iVariable, variable iTraceEntry, variable iFunctionName) variable; private function CheckInteger(variable iVariable, variable iTraceEntry, variable iFunctionName) variable; private function CheckIntegerRange(variable iVariable, variable iTraceEntry, variable iMin, variable iMax, variable iFunctionName) variable; private function CheckString(variable iVariable, variable iTraceEntry, variable iFunctionName) variable; private function CheckFloat(variable iVariable, variable iTraceEntry, variable iFunctionName) variable; private function StatusTrace(variable i_intState, variable i_intTraceLevel, variable i_strTraceString, variable i_strFunctionName) void; private function EnterSemaphore(); private function LeaveSemaphore(); private function ExtractFunctionName(variable i_strFunctionName) variable; private function ReverseFind(string i_strString, string i_strSubString) variable; // Variable definition///////////////////////////////////////////////////// namespace Enum { namespace Rack { const variable Circular("HxLabwr2.CircRack.1"); const variable Rect("HxLabwr2.RectRack.1"); } namespace Orientation { const variable Degree0("0"); const variable Degree90("90"); const variable Degree180("180"); const variable Degree270("270"); } namespace Sorting { const variable ByXAscending(0); const variable ByXDescending(1); const variable ByYAscending(2); const variable ByYDescending(3); const variable ByZAscending(4); const variable ByZDescending(5); const variable ByLabwareIDAscending(6); const variable ByLabwareIDDescending(7); const variable ByPositionIDAscending(8); const variable ByPositionIDDescending(9); } } // Tracing constants static variable CMD_FAIL (0); static variable CMD_START (1); static variable CMD_COMPLETE (2); static variable CMD_ERROR (3); static variable CMD_PROGRESS (4); static variable CMD_ERRCOMPLETE (5); static variable TRACE_LEVEL_DEBUG(2); static variable TRACE_LEVEL_RELEASE(1); static variable TRACE_LEVEL_NONE(0); static variable HSLLabwareAccess_LLE(""); // LLE: last library error private global static variable HSLLabwareAccess_IO(hslFalse); // IO: library init once private global static variable HSLLabwareAccess_SH(0); // SH: Semaphore handle private global static variable HSLLabwareAccess_TraceLevel(TRACE_LEVEL_DEBUG); // HxPars keys static string P_XCOORD("Labwr_XCoord"); static string P_YCOORD("Labwr_YCoord"); static string P_ZCOORD("Labwr_ZCoord"); static string P_RZCOORD("Labwr_Rotation"); static string P_LABWARE_ID("Labwr_Id"); // additions static string P_FILE("Labwr_File"); static string P_COUNT("Labwr_count"); static string P_DKSITEID("Labwr_DkSiteId"); static string P_TEMPLATEID("Labwr_TemplateId"); static string P_XDIM("Labwr_XDim"); static string P_YDIM("Labwr_YDim"); static string P_ISCOVERED("Labwr_IsCovered"); static string P_CLSID("Labwr_CLSID"); static string P_DKSITEDX("Labwr_DkSiteDimX"); static string P_DKSITEDY("Labwr_DkSiteDimY"); static string P_DECKSITES("Labwr_SiteData"); static string P_STACKID("Labwr_stackID"); // P stands for HXP_LABWR // Implementation ////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// // ValueForKeyGetForPropertiesOfLabwareID //////////////////////////////////////////////////////////////////////////// function ValueForKeyGetForPropertiesOfLabwareID(device& io_devDevice, variable& o_strPropertyValue, variable i_strPropertyKey, variable i_strLabwareID) variable { object objDecklayout; variable strFunctionName(""); strFunctionName = ExtractFunctionName(GetFunctionName()); // check input variables if (!CheckString(i_strPropertyKey, "i_strPropertyKey", strFunctionName)) return(hslFalse); if (!CheckString(i_strLabwareID, "i_strLabwareID", strFunctionName)) return(hslFalse); StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_strLabwareID = " + i_strLabwareID + ", i_strPropertyKey = " + i_strPropertyKey, strFunctionName); EnterSemaphore(); objDecklayout = io_devDevice.GetDeckLayoutObject(); LeaveSemaphore(); if (!objDecklayout.IsNull()) { object objLabware; onerror goto HandleLabwareError; objLabware = objDecklayout.Labware(i_strLabwareID); onerror goto 0; err.Clear(); if (!objLabware.IsNull()) { object objEditLabware5; object objPropertyParameters; objLabware.GetObject("IEditLabware5", objEditLabware5); objPropertyParameters.CreateObject("HXPARAMSLib.HxPars"); objPropertyParameters.Add("", i_strPropertyKey); objEditLabware5.GetLabwrProperties(objPropertyParameters); o_strPropertyValue = objPropertyParameters.Item1(i_strPropertyKey); StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Property [" + i_strPropertyKey + "] = " + o_strPropertyValue, strFunctionName); objPropertyParameters.ReleaseObject(); objEditLabware5.ReleaseObject(); objLabware.ReleaseObject(); objDecklayout.ReleaseObject(); StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName); return(hslTrue); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find labware.", strFunctionName); objDecklayout.ReleaseObject(); return(hslFalse); } } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find decklayout.", strFunctionName); return(hslFalse); } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if (errorID==-1574764487) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "LabwareID is unknown.", strFunctionName); return(hslFalse); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Unknown error occured.", strFunctionName); return(hslFalse); } } } //////////////////////////////////////////////////////////////////////////// // ValueForKeySetForPropertiesOfLabwareID //////////////////////////////////////////////////////////////////////////// function ValueForKeySetForPropertiesOfLabwareID(device& io_devDevice, variable i_strPropertyValue, variable i_strPropertyKey, variable i_strLabwareID) variable { object objDecklayout; variable strFunctionName(""); strFunctionName = ExtractFunctionName(GetFunctionName()); // check input variables if (!CheckString(i_strPropertyValue, "i_strPropertyValue", strFunctionName)) return(hslFalse); if (!CheckString(i_strPropertyKey, "i_strPropertyKey", strFunctionName)) return(hslFalse); if (!CheckString(i_strLabwareID, "i_strLabwareID", strFunctionName)) return(hslFalse); StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_strLabwareID = " + i_strLabwareID + ", i_strPropertyKey = " + i_strPropertyKey + ", i_strPropertyValue = " + i_strPropertyValue, strFunctionName); EnterSemaphore(); objDecklayout = io_devDevice.GetDeckLayoutObject(); LeaveSemaphore(); if (!objDecklayout.IsNull()) { object objLabware; onerror goto HandleLabwareError; objLabware = objDecklayout.Labware(i_strLabwareID); onerror goto 0; err.Clear(); if (!objLabware.IsNull()) { object objEditLabware5; object objPropertyParameters; objLabware.GetObject("IEditLabware5", objEditLabware5); // prepare a new Pars object for the labware properties objPropertyParameters.CreateObject("HXPARAMSLib.HxPars"); objPropertyParameters.Add(i_strPropertyValue, i_strPropertyKey); // check data from the decklayout objEditLabware5.SetLabwrProperties(objPropertyParameters); i_strPropertyValue = objPropertyParameters.Item1(i_strPropertyKey); objPropertyParameters.ReleaseObject(); objEditLabware5.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName); return(hslTrue); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find labware.", strFunctionName); objDecklayout.ReleaseObject(); return(hslFalse); } } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find decklayout.", strFunctionName); return(hslFalse); } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if (errorID==-1574764487) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "LabwareID is unknown.", strFunctionName); return(hslFalse); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Unknown error occured.", strFunctionName); return(hslFalse); } } } //////////////////////////////////////////////////////////////////////////// // AbsolutePositionValuesSetForLabwareID //////////////////////////////////////////////////////////////////////////// function AbsolutePositionValuesSetForLabwareID(device& io_devDevice, variable i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR) variable { variable PosVals[]; object objDecklayout; variable strFunctionName(""); strFunctionName = ExtractFunctionName(GetFunctionName()); // check input variables if (!CheckString(i_strLabwareID, "i_strLabwareID", strFunctionName)) return(hslFalse); StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_strLabwareID = " + i_strLabwareID + ", i_fltPositionX = " + FStr(i_fltPositionX) + ", i_fltPositionY = " + FStr(i_fltPositionY) + ", i_fltPositionZ = " + FStr(i_fltPositionZ) + ", i_fltPositionR = " + FStr(i_fltPositionR), strFunctionName); EnterSemaphore(); objDecklayout = io_devDevice.GetDeckLayoutObject(); LeaveSemaphore(); if (!objDecklayout.IsNull()) { object objLabware; onerror goto HandleLabwareError; objLabware = objDecklayout.Labware(i_strLabwareID); onerror goto 0; err.Clear(); if (!objLabware.IsNull()) { object Decklayout5; object MoveParameters; objDecklayout.GetObject("IDeckLayout5", Decklayout5); EnterSemaphore(); io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals); LeaveSemaphore(); StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Current position: (" + FStr(PosVals[0]) + "/" + FStr(PosVals[1]) + "/" + FStr(PosVals[2]) + "/" + FStr(PosVals[3]) + ")", strFunctionName); MoveParameters.CreateObject("HXPARAMSLib.HxPars"); MoveParameters.Add(i_strLabwareID, P_LABWARE_ID); MoveParameters.Add(i_fltPositionX, P_XCOORD); MoveParameters.Add(i_fltPositionY, P_YCOORD); MoveParameters.Add(i_fltPositionZ, P_ZCOORD); MoveParameters.Add(i_fltPositionR, P_RZCOORD); Decklayout5.MoveLabware(objLabware, MoveParameters); // Trace new position EnterSemaphore(); io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals); LeaveSemaphore(); objLabware.ReleaseObject(); objDecklayout.ReleaseObject(); Decklayout5.ReleaseObject(); MoveParameters.ReleaseObject(); StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "New position: (" + FStr(PosVals[0]) + "/" + FStr(PosVals[1]) + "/" + FStr(PosVals[2]) + "/" + FStr(PosVals[3]) + ")", strFunctionName); return(hslTrue); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find labware.", strFunctionName); objDecklayout.ReleaseObject(); return(hslFalse); } } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find decklayout.", strFunctionName); return(hslFalse); } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if (errorID==-1574764487) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "LabwareID is unknown.", strFunctionName); return(hslFalse); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Unknown error occured.", strFunctionName); return(hslFalse); } } } //////////////////////////////////////////////////////////////////////////// // AbsolutePositionValuesGetForLabwareID //////////////////////////////////////////////////////////////////////////// function AbsolutePositionValuesGetForLabwareID(device& io_devDevice, variable i_strLabwareID, variable& o_fltPositionX, variable& o_fltPositionY, variable& o_fltPositionZ, variable& o_fltPositionR) variable { variable PosVals[]; variable strFunctionName(""); strFunctionName = ExtractFunctionName(GetFunctionName()); // check input variables if (!CheckString(i_strLabwareID, "i_strLabwareID", strFunctionName)) return(hslFalse); StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_strLabwareID = " + i_strLabwareID, strFunctionName); EnterSemaphore(); io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals); LeaveSemaphore(); o_fltPositionX = PosVals[0]; o_fltPositionY = PosVals[1]; o_fltPositionZ = PosVals[2]; o_fltPositionR = PosVals[3]; StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_fltPositionX = " + FStr(o_fltPositionX) + ", o_fltPositionY = " + FStr(o_fltPositionY) + ", o_fltPositionZ = " + FStr(o_fltPositionZ) + ", o_fltPositionR = " + FStr(o_fltPositionR), strFunctionName); return(hslTrue); } //////////////////////////////////////////////////////////////////////////// // RelativePositionValuesSetForLabwareID //////////////////////////////////////////////////////////////////////////// function RelativePositionValuesSetForLabwareID(device& io_devDevice, variable i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR) variable { variable PosVals[]; variable myValue; object objDecklayout; variable strFunctionName(""); strFunctionName = ExtractFunctionName(GetFunctionName()); // check input variables if(!CheckString(i_strLabwareID, "i_strLabwareID", strFunctionName)) return(hslFalse); StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_strLabwareID = " + i_strLabwareID, strFunctionName); EnterSemaphore(); objDecklayout = io_devDevice.GetDeckLayoutObject(); LeaveSemaphore(); if(!objDecklayout.IsNull()) { object objLabware; variable strPos(""); onerror goto HandleLabwareError; objLabware = objDecklayout.Labware(i_strLabwareID); onerror goto 0; err.Clear(); if(!objLabware.IsNull()) { object Decklayout5; object MoveParameters; variable fltPos, fltPosShift; objDecklayout.GetObject("IDeckLayout5", Decklayout5); MoveParameters.CreateObject("HXPARAMSLib.HxPars"); MoveParameters.Add(i_strLabwareID, P_LABWARE_ID); EnterSemaphore(); io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals); LeaveSemaphore(); StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Current position: (" + FStr(PosVals[0]) + "/" + FStr(PosVals[1]) + "/" + FStr(PosVals[2]) + "/" + FStr(PosVals[3]) + ")", strFunctionName); ConvertToFloat(PosVals[0],fltPos); ConvertToFloat(i_fltPositionX,fltPosShift); MoveParameters.Add(fltPos+fltPosShift, P_XCOORD); ConvertToFloat(PosVals[1],fltPos); ConvertToFloat(i_fltPositionY,fltPosShift); MoveParameters.Add(fltPos+fltPosShift, P_YCOORD); ConvertToFloat(PosVals[2],fltPos); ConvertToFloat(i_fltPositionZ,fltPosShift); MoveParameters.Add(fltPos+fltPosShift, P_ZCOORD); ConvertToFloat(PosVals[3],fltPos); ConvertToFloat(i_fltPositionR,fltPosShift); MoveParameters.Add(fltPos+fltPosShift, P_RZCOORD); Decklayout5.MoveLabware(objLabware, MoveParameters); EnterSemaphore(); io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals); LeaveSemaphore(); objLabware.ReleaseObject(); objDecklayout.ReleaseObject(); Decklayout5.ReleaseObject(); MoveParameters.ReleaseObject(); StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "New position: (" + FStr(PosVals[0]) + "/" + FStr(PosVals[1]) + "/" + FStr(PosVals[2]) + "/" + FStr(PosVals[3]) + ")", strFunctionName); return(hslTrue); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find labware.", strFunctionName); objDecklayout.ReleaseObject(); return(hslFalse); } } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find decklayout.", strFunctionName); return(hslFalse); } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if (errorID==-1574764487) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "LabwareID is unknown.", strFunctionName); return(hslFalse); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Unknown error occured.", strFunctionName); return(hslFalse); } } } //////////////////////////////////////////////////////////////////////////// // SaveChangesToDecklayout //////////////////////////////////////////////////////////////////////////// function SaveChangesToDecklayout(device& io_devDevice) variable { object objDeck; object objDecklayout; string strLabwareID; string strLabwarePropertyKey; string strConfigFilename; object objDecklayoutFile; variable strFunctionName(""); strFunctionName = ExtractFunctionName(GetFunctionName()); StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "", strFunctionName); EnterSemaphore(); objDeck = io_devDevice.GetDeckLayoutObject(); LeaveSemaphore(); objDeck.GetObject("IEditDeckLayout6", objDecklayout); if (!objDecklayout.IsNull()) { strConfigFilename = objDecklayout.FileName(); objDecklayoutFile.CreateObject("HXCFGFILLib.HxCfgFile"); objDecklayoutFile.LoadFile(strConfigFilename); objDecklayout.WriteToDataDef(objDecklayoutFile, objDecklayout.Instrument); objDecklayoutFile.SerializeFile(strConfigFilename, 1); objDeck.ReleaseObject(); objDecklayout.ReleaseObject(); StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName); return(hslTrue); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find decklayout.", strFunctionName); return(hslFalse); } } //////////////////////////////////////////////////////////////////////////// // SaveChangesToSpecificDecklayout //////////////////////////////////////////////////////////////////////////// function SaveChangesToSpecificDecklayout(device& io_devDevice, variable i_strDecklayoutName) variable { object objDeck; object objDecklayout; string strLabwareID; string strLabwarePropertyKey; object objDecklayoutFile; variable strFunctionName(""); strFunctionName = ExtractFunctionName(GetFunctionName()); StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "", strFunctionName); EnterSemaphore(); objDeck = io_devDevice.GetDeckLayoutObject(); LeaveSemaphore(); objDeck.GetObject("IEditDeckLayout6", objDecklayout); if (!objDecklayout.IsNull()) { objDecklayoutFile.CreateObject("HXCFGFILLib.HxCfgFile"); objDecklayoutFile.LoadFile(i_strDecklayoutName); objDecklayout.WriteToDataDef(objDecklayoutFile, objDecklayout.Instrument); objDecklayoutFile.SerializeFile(i_strDecklayoutName, 1); objDeck.ReleaseObject(); objDecklayout.ReleaseObject(); StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName); return(hslTrue); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find decklayout.", strFunctionName); return(hslFalse); } } //////////////////////////////////////////////////////////////////////////// // GetConfigurationFilename //////////////////////////////////////////////////////////////////////////// function GetConfigurationFilename(device& io_devDevice, variable i_strLabwareID, variable& o_strConfigurationFilename) variable { object objDecklayout; variable strFunctionName(""); strFunctionName = ExtractFunctionName(GetFunctionName()); if (!CheckString(i_strLabwareID, "i_strLabwareID", strFunctionName)) return(hslFalse); StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_strLabwareID = " + i_strLabwareID, strFunctionName); EnterSemaphore(); objDecklayout = io_devDevice.GetDeckLayoutObject(); LeaveSemaphore(); if (!objDecklayout.IsNull()) { object objLabware; onerror goto HandleLabwareError; objLabware = objDecklayout.Labware(i_strLabwareID); onerror goto 0; err.Clear(); if (!objLabware.IsNull()) { object objEditLabware5; objLabware.GetObject("IEditLabware5", objEditLabware5); o_strConfigurationFilename = objEditLabware5.Filename; objEditLabware5.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "o_strConfigurationFilename = " + o_strConfigurationFilename, strFunctionName); return(hslTrue); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find labware.", strFunctionName); objDecklayout.ReleaseObject(); return(hslFalse); } } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find decklayout.", strFunctionName); return(hslFalse); } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if (errorID==-1574764487) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "LabwareID is unknown.", strFunctionName); return(hslFalse); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Unknown error occured.", strFunctionName); return(hslFalse); } } } //////////////////////////////////////////////////////////////////////////// // GetDefaultSequenceForLabwareID //////////////////////////////////////////////////////////////////////////// function GetDefaultSequenceForLabwareID(device& io_devDevice, variable& i_strLabwareID, variable i_intEnumSorting, sequence& o_seqDefaultSequence) variable { object objDecklayout; object comObject; variable strFunctionName(""); sequence seqLocalSequence; variable blnReturnValue(hslTrue); strFunctionName = ExtractFunctionName(GetFunctionName()); if (!CheckString(i_strLabwareID, "i_strLabwareID", strFunctionName)) return(hslFalse); if (!CheckIntegerRange(i_intEnumSorting, "i_intEnumSorting", 0, 9, strFunctionName)) return(hslFalse); StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_strLabwareID = " + i_strLabwareID + ", i_intEnumSorting = " + IStr(i_intEnumSorting), strFunctionName); EnterSemaphore(); objDecklayout = io_devDevice.GetDeckLayoutObject(); LeaveSemaphore(); if (!objDecklayout.IsNull()) { object objLabware; onerror goto HandleLabwareError; objLabware = objDecklayout.Labware(i_strLabwareID); onerror goto 0; err.Clear(); if (!objLabware.IsNull()) { object objEditLabware5; object objDeckLayout6; object objSequence; object objTemplate; object objRack; object objProbeInLabware; object objParameter; variable intNumberOfElements; variable intNumberOfRows; variable i; variable strPositionIDs[]; variable strLabwareIDs[]; objLabware.GetObject("IEditLabware5", objEditLabware5); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack", objRack); objDecklayout.GetObject("IDeckLayout6", objDeckLayout6); if (objTemplate.IsNull()) { // it's not a template while(o_seqDefaultSequence.GetTotal()>0) o_seqDefaultSequence.RemoveAt(1); objEditLabware5.DefaultSequence(objSequence); onerror goto HandleComError; comObject.CreateObject("Hamilton.ASW.SequenceSorting.Controller"); blnReturnValue=comObject.SortSequenceByOne(objDeckLayout6, i_intEnumSorting, objSequence, strLabwareIDs, strPositionIDs); onerror goto HandleLabwareError; if(!blnReturnValue) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "COM object returned 'false'. Something went wrong.", strFunctionName); return(hslFalse); } intNumberOfElements = strLabwareIDs.GetSize(); intNumberOfRows = objRack.Rows; Trace("Number of rows: ", intNumberOfRows); for (i = 0; i < intNumberOfElements; i++) { o_seqDefaultSequence.Add(strLabwareIDs.GetAt(i), strPositionIDs.GetAt(i)); } o_seqDefaultSequence.SetCount(o_seqDefaultSequence.GetTotal()); o_seqDefaultSequence.SetMax(o_seqDefaultSequence.GetTotal()); o_seqDefaultSequence.SetCurrentPosition(1); StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Default sequence found for labwareID " + i_strLabwareID, strFunctionName); } else { blnReturnValue=hslFalse; StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Default sequence not found. Labware ID " + i_strLabwareID + " is a template.", strFunctionName); } objEditLabware5.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objSequence.ReleaseObject(); objTemplate.ReleaseObject(); StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName); return(blnReturnValue); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find labware.", strFunctionName); objDecklayout.ReleaseObject(); return(hslFalse); } } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find decklayout.", strFunctionName); return(hslFalse); } // runtime error handling HandleComError : { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Error while creating or using the COM object Hamilton.ASW.SequenceSorting. Is this component installed and registered?", strFunctionName); return(hslFalse); } HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if (errorID==-1574764487) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "LabwareID is unknown.", strFunctionName); return(hslFalse); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Unknown error occured.", strFunctionName); return(hslFalse); } } } //////////////////////////////////////////////////////////////////////////// // SortSequenceByProbeHead //////////////////////////////////////////////////////////////////////////// function SortSequenceByProbeHead(device& io_devDevice, variable i_intProbeHeadConfiguration, sequence& i_seqToBeSorted, sequence& o_seqSortedSequence) variable { object objDecklayout; object objDecklayout6; object objEditSequence2; object objSequence; object comObject; variable blnReturnValue(hslTrue); variable strSortingAlgorithmDescription; variable strLabwareIDs[]; variable strPositionIDs[]; variable strFunctionName; variable strMessage; variable i; strFunctionName=GetFunctionName(); if (!CheckInteger(i_intProbeHeadConfiguration, "i_intProbeHeadConfiguration", strFunctionName)) return(hslFalse); strMessage = "i_intProbeHeadConfiguration = " + IStr(i_intProbeHeadConfiguration); StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, strMessage, strFunctionName); objDecklayout = io_devDevice.GetDeckLayoutObject(); if (objDecklayout.IsNull()) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not get decklayout.", strFunctionName); return(hslFalse); } onerror goto HandleComCreationError; comObject.CreateObject("Hamilton.ASW.SequenceSorting.Controller"); if (comObject.IsNull()) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not create the COM object Hamilton.ASW.SequenceSorting. Is this component installed and registered?.", strFunctionName); return(hslFalse); } onerror goto HandleComError; blnReturnValue=comObject.SortSequenceByProbeHead(objDecklayout, i_seqToBeSorted.GetSequenceObject(), i_intProbeHeadConfiguration, strLabwareIDs, strPositionIDs, strSortingAlgorithmDescription); if(!blnReturnValue) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "COM object returned 'false'. Something went wrong.", strFunctionName); return(hslFalse); } onerror goto 0; while(o_seqSortedSequence.GetTotal()>0) o_seqSortedSequence.RemoveAt(1); for (i = 0; i < strLabwareIDs.GetSize(); i++) { o_seqSortedSequence.Add(strLabwareIDs.GetAt(i), strPositionIDs.GetAt(i)); } o_seqSortedSequence.SetCount(o_seqSortedSequence.GetTotal()); o_seqSortedSequence.SetMax(o_seqSortedSequence.GetTotal()); o_seqSortedSequence.SetCurrentPosition(1); StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Sorted sequence with algorithm '" + strSortingAlgorithmDescription + "'.", strFunctionName); objDecklayout.ReleaseObject(); StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName); return(blnReturnValue); // runtime error handling HandleComCreationError : { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Error while creating the COM object Hamilton.ASW.SequenceSorting. Is this component installed and registered?", strFunctionName); return(hslFalse); } // runtime error handling HandleComError : { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Error while calling a function of the COM object Hamilton.ASW.SequenceSorting.", strFunctionName); return(hslFalse); } } //////////////////////////////////////////////////////////////////////////// // SortSequenceByProbeHeadWithPresort //////////////////////////////////////////////////////////////////////////// function SortSequenceByProbeHeadWithPresort(device& io_devDevice, variable i_intProbeHeadConfiguration, variable i_intEnumSorting, sequence& i_seqToBeSorted, sequence& o_seqSortedSequence) variable { object objDecklayout; object objDecklayout6; object objEditSequence2; object objSequence; object comObject; variable blnReturnValue(hslTrue); variable strSortingAlgorithmDescription; variable strLabwareIDs[]; variable strPositionIDs[]; variable strFunctionName; variable strMessage; variable i; strFunctionName=GetFunctionName(); if (!CheckInteger(i_intProbeHeadConfiguration, "i_intProbeHeadConfiguration", strFunctionName)) return(hslFalse); if (!CheckInteger(i_intEnumSorting, "i_intEnumSorting", strFunctionName)) return(hslFalse); strMessage = "i_intProbeHeadConfiguration = " + IStr(i_intProbeHeadConfiguration); StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, strMessage, strFunctionName); objDecklayout = io_devDevice.GetDeckLayoutObject(); if (objDecklayout.IsNull()) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not get decklayout.", strFunctionName); return(hslFalse); } onerror goto HandleComCreationError; comObject.CreateObject("Hamilton.ASW.SequenceSorting.Controller"); if (comObject.IsNull()) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not create the COM object Hamilton.ASW.SequenceSorting. Is this component installed and registered?.", strFunctionName); return(hslFalse); } onerror goto HandleComError; blnReturnValue=comObject.SortSequenceByProbeHeadWithPresort(objDecklayout, i_seqToBeSorted.GetSequenceObject(), i_intEnumSorting, i_intProbeHeadConfiguration, strLabwareIDs, strPositionIDs, strSortingAlgorithmDescription); if(!blnReturnValue) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "COM object returned 'false'. Something went wrong.", strFunctionName); return(hslFalse); } onerror goto 0; while(o_seqSortedSequence.GetTotal()>0) o_seqSortedSequence.RemoveAt(1); for (i = 0; i < strLabwareIDs.GetSize(); i++) { o_seqSortedSequence.Add(strLabwareIDs.GetAt(i), strPositionIDs.GetAt(i)); } o_seqSortedSequence.SetCount(o_seqSortedSequence.GetTotal()); o_seqSortedSequence.SetMax(o_seqSortedSequence.GetTotal()); o_seqSortedSequence.SetCurrentPosition(1); StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Sorted sequence with algorithm '" + strSortingAlgorithmDescription + "'.", strFunctionName); objDecklayout.ReleaseObject(); StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName); return(blnReturnValue); // runtime error handling HandleComCreationError : { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Error while creating the COM object Hamilton.ASW.SequenceSorting. Is this component installed and registered?", strFunctionName); return(hslFalse); } // runtime error handling HandleComError : { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Error while calling a function of the COM object Hamilton.ASW.SequenceSorting.", strFunctionName); return(hslFalse); } } //////////////////////////////////////////////////////////////////////////// // SortSequenceByColumn //////////////////////////////////////////////////////////////////////////// private function SortSequenceByColumn(device& io_devDevice, variable strFunctionName, variable i_intNumberOfSorts, variable i_intEnumSorting1, variable i_intEnumSorting2, variable i_intEnumSorting3, sequence& i_seqToBeSorted, sequence& o_seqSortedSequence) variable { object objDecklayout; object objDecklayout6; object objEditSequence2; object objSequence; object comObject; variable blnReturnValue(hslTrue); variable strLabwareIDs[]; variable strPositionIDs[]; variable strMessage; variable i; if (!CheckIntegerRange(i_intEnumSorting1, "i_intEnumSorting1", 0, 9, strFunctionName)) return(hslFalse); if (i_intNumberOfSorts>1) if (!CheckIntegerRange(i_intEnumSorting2, "i_intEnumSorting2", 0, 9, strFunctionName)) return(hslFalse); if (i_intNumberOfSorts>2) if (!CheckIntegerRange(i_intEnumSorting3, "i_intEnumSorting3", 0, 9, strFunctionName)) return(hslFalse); strMessage = "i_intEnumSorting1 = " + IStr(i_intEnumSorting1); if (i_intNumberOfSorts>1) strMessage = strMessage + ", i_intEnumSorting2 = " + IStr(i_intEnumSorting2); if (i_intNumberOfSorts>2) strMessage = strMessage + ", i_intEnumSorting3 = " + IStr(i_intEnumSorting3); StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, strMessage, strFunctionName); objDecklayout = io_devDevice.GetDeckLayoutObject(); if (objDecklayout.IsNull()) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not get decklayout.", strFunctionName); return(hslFalse); } onerror goto HandleComCreationError; comObject.CreateObject("Hamilton.ASW.SequenceSorting.Controller"); if (comObject.IsNull()) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not create the COM object Hamilton.ASW.SequenceSorting. Is this component installed and registered?.", strFunctionName); return(hslFalse); } onerror goto HandleComError; if (i_intNumberOfSorts==1) { blnReturnValue=comObject.SortSequenceByOne(objDecklayout, i_intEnumSorting1, i_seqToBeSorted.GetSequenceObject(), strLabwareIDs, strPositionIDs); } if (i_intNumberOfSorts==2) { blnReturnValue=comObject.SortSequenceByTwo(objDecklayout, i_intEnumSorting1, i_intEnumSorting2, i_seqToBeSorted.GetSequenceObject(), strLabwareIDs, strPositionIDs); } if (i_intNumberOfSorts==3) { blnReturnValue=comObject.SortSequenceByThree(objDecklayout, i_intEnumSorting1, i_intEnumSorting2,i_intEnumSorting3, i_seqToBeSorted.GetSequenceObject(), strLabwareIDs, strPositionIDs); } onerror goto HandleLabwareError; if(!blnReturnValue) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "COM object returned 'false'. Something went wrong.", strFunctionName); return(hslFalse); } while(o_seqSortedSequence.GetTotal()>0) o_seqSortedSequence.RemoveAt(1); for (i = 0; i < strLabwareIDs.GetSize(); i++) { o_seqSortedSequence.Add(strLabwareIDs.GetAt(i), strPositionIDs.GetAt(i)); } o_seqSortedSequence.SetCount(o_seqSortedSequence.GetTotal()); o_seqSortedSequence.SetMax(o_seqSortedSequence.GetTotal()); o_seqSortedSequence.SetCurrentPosition(1); StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Sorted sequence.", strFunctionName); objDecklayout.ReleaseObject(); StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName); return(blnReturnValue); // runtime error handling HandleComError : { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Error while using the COM object Hamilton.ASW.SequenceSorting. Maybe the object version does not match the library or venus version?", strFunctionName); return(hslFalse); } HandleComCreationError : { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Error while creating the COM object Hamilton.ASW.SequenceSorting. Is this component installed and registered?", strFunctionName); return(hslFalse); } HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if (errorID==-1574764487) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "LabwareID is unknown.", strFunctionName); return(hslFalse); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Unknown error occured.", strFunctionName); return(hslFalse); } } } //////////////////////////////////////////////////////////////////////////// // SortSequenceByColumn1 //////////////////////////////////////////////////////////////////////////// function SortSequenceByColumn1(device& io_devDevice, variable i_intEnumSorting1, sequence& i_seqToBeSorted, sequence& o_seqSortedSequence) variable { variable strFunctionName; strFunctionName=ExtractFunctionName(GetFunctionName()); return(SortSequenceByColumn(io_devDevice, strFunctionName, 1, i_intEnumSorting1, 0, 0, i_seqToBeSorted, o_seqSortedSequence)); } //////////////////////////////////////////////////////////////////////////// // SortSequenceByColumn2 //////////////////////////////////////////////////////////////////////////// function SortSequenceByColumn2(device& io_devDevice, variable i_intEnumSorting1, variable i_intEnumSorting2, sequence& i_seqToBeSorted, sequence& o_seqSortedSequence) variable { variable strFunctionName; strFunctionName=ExtractFunctionName(GetFunctionName()); return(SortSequenceByColumn(io_devDevice, strFunctionName, 2, i_intEnumSorting1, i_intEnumSorting2, 0, i_seqToBeSorted, o_seqSortedSequence)); } //////////////////////////////////////////////////////////////////////////// // SortSequenceByColumn3 //////////////////////////////////////////////////////////////////////////// function SortSequenceByColumn3(device& io_devDevice, variable i_intEnumSorting1, variable i_intEnumSorting2, variable i_intEnumSorting3, sequence& i_seqToBeSorted, sequence& o_seqSortedSequence) variable { variable strFunctionName; strFunctionName=ExtractFunctionName(GetFunctionName()); return(SortSequenceByColumn(io_devDevice, strFunctionName, 3, i_intEnumSorting1, i_intEnumSorting2, i_intEnumSorting3, i_seqToBeSorted, o_seqSortedSequence)); } //////////////////////////////////////////////////////////////////////////// // GetTransportSequenceForLabwareID //////////////////////////////////////////////////////////////////////////// function GetTransportSequenceForLabwareID(device& io_devDevice, variable i_strLabwareID, sequence& o_seqTransportSequence) variable { object objDecklayout; variable strFunctionName(""); sequence seqLocalSequence; variable blnReturnValue(hslTrue); strFunctionName = ExtractFunctionName(GetFunctionName()); if (!CheckString(i_strLabwareID, "i_strLabwareID", strFunctionName)) return(hslFalse); StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_strLabwareID = " + i_strLabwareID, strFunctionName); EnterSemaphore(); objDecklayout = io_devDevice.GetDeckLayoutObject(); LeaveSemaphore(); if (!objDecklayout.IsNull()) { object objLabware; onerror goto HandleLabwareError; objLabware = objDecklayout.Labware(i_strLabwareID); onerror goto 0; err.Clear(); if (!objLabware.IsNull()) { object objEditLabware5; object objSequence; object objTemplate; object objRack; variable intNumberOfElements; variable i; variable intNumberOfRows; objLabware.GetObject("IEditLabware5", objEditLabware5); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack", objRack); if (objTemplate.IsNull()) { // it's not a template objEditLabware5.DefaultSequence(objSequence); intNumberOfElements = objSequence.Count; if(intNumberOfElements>0) { object seqItem; while(o_seqTransportSequence.GetTotal()>0) o_seqTransportSequence.RemoveAt(1); seqItem = objSequence.Item(1); o_seqTransportSequence.Add(seqItem.ObjectId, seqItem.PositionId); o_seqTransportSequence.SetCount(o_seqTransportSequence.GetTotal()); o_seqTransportSequence.SetMax(o_seqTransportSequence.GetTotal()); o_seqTransportSequence.SetCurrentPosition(1); StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Transport sequence created for labwareID " + i_strLabwareID, strFunctionName); } else { blnReturnValue=hslFalse; StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Default sequence does not contain labware positions. Does Labware ID " + i_strLabwareID + " has containers/wells defined?", strFunctionName); } } else { blnReturnValue=hslFalse; StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Default sequence not found. Labware ID " + i_strLabwareID + " is a template.", strFunctionName); } objEditLabware5.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objSequence.ReleaseObject(); objTemplate.ReleaseObject(); StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName); return(blnReturnValue); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find labware.", strFunctionName); objDecklayout.ReleaseObject(); return(hslFalse); } } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find decklayout.", strFunctionName); return(hslFalse); } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if (errorID==-1574764487) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "LabwareID is unknown.", strFunctionName); return(hslFalse); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Unknown error occured.", strFunctionName); return(hslFalse); } } } //////////////////////////////////////////////////////////////////////////// // TiltLabware //////////////////////////////////////////////////////////////////////////// function TiltLabware(device& io_devDevice, variable i_fltTiltAngleInDegree, variable i_fltTiltXOriginOffsetInMillimeter, variable i_fltTiltZOriginOffsetInMillimeter, variable i_blnShiftToDeepestPoint, variable i_strLabwareID) variable { object objDecklayout; variable strFunctionName(""); variable blnReturnValue(hslTrue); strFunctionName = ExtractFunctionName(GetFunctionName()); if (!CheckString(i_strLabwareID, "i_strLabwareID", strFunctionName)) return(hslFalse); if (!CheckFloat(i_fltTiltAngleInDegree, "i_fltTiltAngleInDegree", strFunctionName)) return(hslFalse); if (!CheckFloat(i_fltTiltXOriginOffsetInMillimeter, "i_fltTiltXOriginOffsetInMillimeter", strFunctionName)) return(hslFalse); if (!CheckFloat(i_fltTiltZOriginOffsetInMillimeter, "i_fltTiltZOriginOffsetInMillimeter", strFunctionName)) return(hslFalse); if (!CheckBool(i_blnShiftToDeepestPoint, "i_blnShiftToDeepestPoint", strFunctionName)) return(hslFalse); StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_strLabwareID = " + i_strLabwareID + ", i_fltTiltAngleInDegree: " + FStr(i_fltTiltAngleInDegree) + ", i_fltTiltXOriginOffsetInMillimeter: " + FStr(i_fltTiltXOriginOffsetInMillimeter) + ", i_fltTiltZOriginOffsetInMillimeter: " + FStr(i_fltTiltZOriginOffsetInMillimeter) + ", i_blnShiftToDeepestPoint: " + IStr(i_blnShiftToDeepestPoint), strFunctionName); EnterSemaphore(); objDecklayout = io_devDevice.GetDeckLayoutObject(); LeaveSemaphore(); if (!objDecklayout.IsNull()) { object objLabware; object objParams; object objPositionDatas; object objPositionData; object objRackDataParams; variable strFileName; variable strPosition; variable intNumberOfRows; variable intNumberOfColumns; variable fltOffset; variable fltTiltAngleInRadian; const variable ConversionFactor(0.01745329251994329576923690768489); fltTiltAngleInRadian=i_fltTiltAngleInDegree*ConversionFactor; objParams.CreateObject("HXPARAMSLib.HxPars"); objPositionData.CreateObject("HXPARAMSLib.HxPars"); objPositionDatas.CreateObject("HXPARAMSLib.HxPars"); objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); onerror goto HandleLabwareError; objLabware = objDecklayout.Labware(i_strLabwareID); onerror goto 0; err.Clear(); if (!objLabware.IsNull()) { object objTemplate; object objRack; object objRack4; object objEditLabware5; object objDefaultSequence; objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); if (objTemplate.IsNull()) { // it's not a template object objSequenceItem; variable intSequenceIndex; variable arrFltPosition[]; variable arrFltOffset[](3); variable fltPlateXOrigin; variable fltNewXOffset; variable fltNewZOffset; variable fltCurrentXOffset; variable fltCurrentZOffset; variable fltPipettingXShift; variable fltPipettingZShift; variable fltCos; variable fltSin; fltCos=Cos(fltTiltAngleInRadian); fltSin=Sin(fltTiltAngleInRadian); onerror goto HandleRackError; intNumberOfRows = objRack.Rows; intNumberOfColumns = objRack.Columns; objEditLabware5.DefaultSequence(objDefaultSequence); objRack4.GetRackPositionData(objParams); objPositionDatas=objParams.Item1("Labwr_PosData"); objRack4.GetRackData(objRackDataParams); fltPlateXOrigin=objRackDataParams.Item1("Labwr_Bndry1X"); Trace("fltPlateXOrigin: ", fltPlateXOrigin); for (intSequenceIndex=1; intSequenceIndex<=objDefaultSequence.Count(); intSequenceIndex++) { objSequenceItem=objDefaultSequence.Item(intSequenceIndex); strPosition=objSequenceItem.PositionId; Trace("Current Position: ", strPosition); io_devDevice.GetLabwarePosition(i_strLabwareID, arrFltPosition, strPosition); objPositionData=objPositionDatas.Item1(strPosition); if (i_blnShiftToDeepestPoint) { variable fltRadius; fltRadius=(objPositionData.Item1("Labwr_XDim")/2); fltRadius=fltRadius * 0.85; // removing tolerance value to avoid hitting the border with the tip fltPipettingXShift=fltRadius*fltCos; fltPipettingZShift=fltRadius*fltSin; } else { fltPipettingXShift=0.0; fltPipettingZShift=0.0; } // get current container position in x and z fltCurrentXOffset=objPositionData.Item1("Labwr_XCoord") - fltPlateXOrigin + i_fltTiltXOriginOffsetInMillimeter; fltCurrentZOffset=objRack4.ContainerBaseOffset(strPosition) + i_fltTiltZOriginOffsetInMillimeter; fltNewXOffset=(fltCurrentXOffset * fltCos - fltCurrentZOffset * fltSin) - fltCurrentXOffset - fltPipettingXShift; fltNewZOffset=((fltCurrentXOffset * fltSin + fltCurrentZOffset * fltCos) - fltCurrentZOffset - fltPipettingZShift)+objRack4.ContainerBaseOffset(strPosition); // this strange correction exists because the container is not placed at (0,0,0), but instead at (0,0,BaseOffset). StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "New offsets [x, z] : " + FStr(fltNewXOffset) + ", " + FStr(fltNewZOffset) + ".", strFunctionName); arrFltOffset[0]=fltNewXOffset; arrFltOffset[1]=0.0; arrFltOffset[2]=fltNewZOffset; // shift container, replacing it in the action. strFileName=objPositionData.Item1("Labwr_File"); io_devDevice.AddContainerToRack(i_strLabwareID, strPosition, strFileName, arrFltOffset); } onerror goto 0; err.Clear(); StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Labware containers were successfully shifted.", strFunctionName); } else { blnReturnValue=hslFalse; StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Labware ID " + i_strLabwareID + " is a template. Could not get position data for containers.", strFunctionName); } objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName); return(blnReturnValue); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find labware.", strFunctionName); objDecklayout.ReleaseObject(); return(hslFalse); } } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find decklayout.", strFunctionName); return(hslFalse); } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if (errorID==-1574764487) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "LabwareID is unknown.", strFunctionName); return(hslFalse); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Unknown error occured.", strFunctionName); return(hslFalse); } } // runtime error handling HandleRackError : { variable errorID; errorID=err.GetId(); err.Clear(); StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Error occured. Maybe rack is not a rect?", strFunctionName); return(hslFalse); } } //////////////////////////////////////////////////////////////////////////// // TiltLabwareWithPipettingOffset //////////////////////////////////////////////////////////////////////////// function TiltLabwareWithPipettingOffset(device& io_devDevice, variable i_fltTiltAngleInDegree, variable i_fltTiltXOriginOffsetInMillimeter, variable i_fltTiltZOriginOffsetInMillimeter, variable i_fltXAxisShiftInWellInMillimeter, variable i_fltYAxisShiftInWellInMillimeter, variable i_blnAdjustXAxisShiftInWellByAngle, variable i_strLabwareID) variable { object objDecklayout; variable strFunctionName(""); variable blnReturnValue(hslTrue); strFunctionName = ExtractFunctionName(GetFunctionName()); if (!CheckString(i_strLabwareID, "i_strLabwareID", strFunctionName)) return(hslFalse); if (!CheckFloat(i_fltTiltAngleInDegree, "i_fltTiltAngleInDegree", strFunctionName)) return(hslFalse); if (!CheckFloat(i_fltTiltXOriginOffsetInMillimeter, "i_fltTiltXOriginOffsetInMillimeter", strFunctionName)) return(hslFalse); if (!CheckFloat(i_fltTiltZOriginOffsetInMillimeter, "i_fltTiltZOriginOffsetInMillimeter", strFunctionName)) return(hslFalse); if (!CheckFloat(i_fltXAxisShiftInWellInMillimeter, "i_fltXAxisShiftInWellInMillimeter", strFunctionName)) return(hslFalse); if (!CheckFloat(i_fltYAxisShiftInWellInMillimeter, "i_fltYAxisShiftInWellInMillimeter", strFunctionName)) return(hslFalse); if (!CheckBool(i_blnAdjustXAxisShiftInWellByAngle, "i_blnAdjustXAxisShiftInWellByAngle", strFunctionName)) return(hslFalse); StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_strLabwareID = " + i_strLabwareID + ", i_fltTiltAngleInDegree: " + FStr(i_fltTiltAngleInDegree) + ", i_fltTiltXOriginOffsetInMillimeter: " + FStr(i_fltTiltXOriginOffsetInMillimeter) + ", i_fltTiltZOriginOffsetInMillimeter: " + FStr(i_fltTiltZOriginOffsetInMillimeter) + ", i_fltXAxisShiftInWellInMillimeter: " + FStr(i_fltXAxisShiftInWellInMillimeter) + ", i_fltYAxisShiftInWellInMillimeter: " + FStr(i_fltYAxisShiftInWellInMillimeter) + ", i_blnAdjustXAxisShiftInWellByAngle: " + IStr(i_blnAdjustXAxisShiftInWellByAngle), strFunctionName); EnterSemaphore(); objDecklayout = io_devDevice.GetDeckLayoutObject(); LeaveSemaphore(); if (!objDecklayout.IsNull()) { object objLabware; object objParams; object objPositionDatas; object objPositionData; object objRackDataParams; variable strFileName; variable strPosition; variable intNumberOfRows; variable intNumberOfColumns; variable fltOffset; variable fltTiltAngleInRadian; const variable ConversionFactor(0.01745329251994329576923690768489); fltTiltAngleInRadian=i_fltTiltAngleInDegree*ConversionFactor; objParams.CreateObject("HXPARAMSLib.HxPars"); objPositionData.CreateObject("HXPARAMSLib.HxPars"); objPositionDatas.CreateObject("HXPARAMSLib.HxPars"); objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); onerror goto HandleLabwareError; objLabware = objDecklayout.Labware(i_strLabwareID); onerror goto 0; err.Clear(); if (!objLabware.IsNull()) { object objTemplate; object objRack; object objRack4; object objEditLabware5; object objDefaultSequence; objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); if (objTemplate.IsNull()) { // it's not a template object objSequenceItem; variable intSequenceIndex; variable arrFltPosition[]; variable arrFltOffset[](3); variable fltPlateXOrigin; variable fltNewXOffset; variable fltNewZOffset; variable fltCurrentXOffset; variable fltCurrentZOffset; variable fltPipettingXShift; variable fltPipettingZShift; variable fltCos; variable fltSin; fltCos=Cos(fltTiltAngleInRadian); fltSin=Sin(fltTiltAngleInRadian); onerror goto HandleRackError; intNumberOfRows = objRack.Rows; intNumberOfColumns = objRack.Columns; objEditLabware5.DefaultSequence(objDefaultSequence); objRack4.GetRackPositionData(objParams); objPositionDatas=objParams.Item1("Labwr_PosData"); objRack4.GetRackData(objRackDataParams); fltPlateXOrigin=objRackDataParams.Item1("Labwr_Bndry1X"); for (intSequenceIndex=1; intSequenceIndex<=objDefaultSequence.Count(); intSequenceIndex++) { objSequenceItem=objDefaultSequence.Item(intSequenceIndex); strPosition=objSequenceItem.PositionId; Trace("Current Position: ", strPosition); io_devDevice.GetLabwarePosition(i_strLabwareID, arrFltPosition, strPosition); objPositionData=objPositionDatas.Item1(strPosition); if (i_blnAdjustXAxisShiftInWellByAngle) { fltPipettingXShift=(-1)*i_fltXAxisShiftInWellInMillimeter*fltCos; Trace("Shifted!"); } else { fltPipettingXShift=(-1)*i_fltXAxisShiftInWellInMillimeter; } fltPipettingZShift=fltPipettingXShift*fltSin; // get current container position in x and z fltCurrentXOffset=objPositionData.Item1("Labwr_XCoord") - fltPlateXOrigin + i_fltTiltXOriginOffsetInMillimeter; fltCurrentZOffset=objRack4.ContainerBaseOffset(strPosition) + i_fltTiltZOriginOffsetInMillimeter; fltNewXOffset=(fltCurrentXOffset * fltCos - fltCurrentZOffset * fltSin) - fltCurrentXOffset - fltPipettingXShift; fltNewZOffset=((fltCurrentXOffset * fltSin + fltCurrentZOffset * fltCos) - fltCurrentZOffset - fltPipettingZShift)+objRack4.ContainerBaseOffset(strPosition); // this strange correction exists because the container is not placed at (0,0,0), but instead at (0,0,BaseOffset). StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "New offsets [x, y, z] : " + FStr(fltNewXOffset) + ", " + FStr(i_fltYAxisShiftInWellInMillimeter) + ", " + FStr(fltNewZOffset) + ".", strFunctionName); arrFltOffset[0]=fltNewXOffset; arrFltOffset[1]=i_fltYAxisShiftInWellInMillimeter; arrFltOffset[2]=fltNewZOffset; // shift container, replacing it in the action. strFileName=objPositionData.Item1("Labwr_File"); io_devDevice.AddContainerToRack(i_strLabwareID, strPosition, strFileName, arrFltOffset); } onerror goto 0; err.Clear(); StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Labware containers were successfully shifted.", strFunctionName); } else { blnReturnValue=hslFalse; StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Labware ID " + i_strLabwareID + " is a template. Could not get position data for containers.", strFunctionName); } objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName); return(blnReturnValue); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find labware.", strFunctionName); objDecklayout.ReleaseObject(); return(hslFalse); } } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find decklayout.", strFunctionName); return(hslFalse); } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if (errorID==-1574764487) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "LabwareID is unknown.", strFunctionName); return(hslFalse); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Unknown error occured.", strFunctionName); return(hslFalse); } } // runtime error handling HandleRackError : { variable errorID; errorID=err.GetId(); err.Clear(); StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Error occured. Maybe rack is not a rect?", strFunctionName); return(hslFalse); } } //////////////////////////////////////////////////////////////////////////// // GetRowAndColumnCountForLabwareID //////////////////////////////////////////////////////////////////////////// function GetRowAndColumnCountForLabwareID(device& io_devDevice, variable i_strLabwareID, variable& o_intNumberOfRows, variable& o_intNumberOfColumns) variable { object objDecklayout; variable strFunctionName(""); variable blnReturnValue(hslTrue); o_intNumberOfRows=0; o_intNumberOfColumns=0; strFunctionName = ExtractFunctionName(GetFunctionName()); if (!CheckString(i_strLabwareID, "i_strLabwareID", strFunctionName)) return(hslFalse); StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_strLabwareID = " + i_strLabwareID, strFunctionName); EnterSemaphore(); objDecklayout = io_devDevice.GetDeckLayoutObject(); LeaveSemaphore(); if (!objDecklayout.IsNull()) { object objLabware; onerror goto HandleLabwareError; objLabware = objDecklayout.Labware(i_strLabwareID); onerror goto 0; err.Clear(); if (!objLabware.IsNull()) { object objTemplate; object objRack; variable i; objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack", objRack); if (objTemplate.IsNull()) { // it's not a template onerror goto HandleRackError; o_intNumberOfRows = objRack.Rows; o_intNumberOfColumns = objRack.Columns; onerror goto 0; err.Clear(); StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Number of rows: " + IStr(o_intNumberOfRows) + ", number of columns: " + IStr(o_intNumberOfColumns) + " for labwareID " + i_strLabwareID, strFunctionName); } else { blnReturnValue=hslFalse; StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Labware ID " + i_strLabwareID + " is a template. Could not find number of rows and columns.", strFunctionName); } objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName); return(blnReturnValue); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find labware.", strFunctionName); objDecklayout.ReleaseObject(); return(hslFalse); } } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find decklayout.", strFunctionName); return(hslFalse); } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if (errorID==-1574764487) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "LabwareID is unknown.", strFunctionName); return(hslFalse); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Unknown error occured.", strFunctionName); return(hslFalse); } } // runtime error handling HandleRackError : { variable errorID; errorID=err.GetId(); err.Clear(); StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Error occured. Maybe rack is not a rect?", strFunctionName); return(hslFalse); } } //////////////////////////////////////////////////////////////////////////// // StackCreate //////////////////////////////////////////////////////////////////////////// function StackCreate(device& io_devDevice, variable i_strLabwareIDForStack, variable i_strLabwareFileName, variable i_intNumberOfPlatesInStack, variable i_strTemplateSiteID, variable i_strTemplateID, variable i_blnLabwareIsCovered, variable i_strRackType, variable o_arrStrLabwareIDs[], variable o_arrStrLabwareLidIDs[]) variable { object objDecklayout; variable strFunctionName(""); strFunctionName = ExtractFunctionName(GetFunctionName()); // check input variables if (!CheckString(i_strLabwareIDForStack, "i_strLabwareIDForStack", strFunctionName)) return(hslFalse); if (!CheckString(i_strLabwareFileName, "i_strLabwareFileName", strFunctionName)) return(hslFalse); if (!CheckInteger(i_intNumberOfPlatesInStack, "i_intNumberOfPlatesInStack", strFunctionName)) return(hslFalse); if (!CheckString(i_strTemplateSiteID, "i_strTemplateSiteID", strFunctionName)) return(hslFalse); if (!CheckString(i_strTemplateID, "i_strTemplateID", strFunctionName)) return(hslFalse); if (!CheckBool(i_blnLabwareIsCovered, "i_blnLabwareIsCovered", strFunctionName)) return(hslFalse); StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_strLabwareIDForStack = " + i_strLabwareIDForStack + ", i_strLabwareFileName = " + i_strLabwareFileName + ", i_intNumberOfPlatesInStack = " + IStr(i_intNumberOfPlatesInStack) + ", i_strTemplateSiteID = " + i_strTemplateSiteID + ", i_strTemplateID = " + i_strTemplateID + ", i_blnLabwareIsCovered = " + IStr(i_blnLabwareIsCovered) + ", i_strRackType = " + i_strRackType, strFunctionName); onerror goto HandleLabwareError; objDecklayout = io_devDevice.GetDeckLayoutObject(); if (!objDecklayout.IsNull()) { object EditDecklayout5; object Parameter; object LabwareObjects; object LabwareNames; variable myKeys[]; variable intCounter; variable blnPlate(hslTrue); objDecklayout.GetObject("IEditDeckLayout5", EditDecklayout5); Parameter.CreateObject("HXPARAMSLib.HxPars"); Parameter.Add(i_strLabwareFileName, P_FILE); Parameter.Add(i_strLabwareIDForStack, P_LABWARE_ID); Parameter.Add(i_intNumberOfPlatesInStack, P_COUNT); Parameter.Add(i_strTemplateSiteID, P_DKSITEID); Parameter.Add(i_strTemplateID, P_TEMPLATEID); Parameter.Add(0, P_XDIM); Parameter.Add(0, P_YDIM); Parameter.Add(i_blnLabwareIsCovered, P_ISCOVERED); Parameter.Add(i_strRackType, P_CLSID); objDecklayout.AddStackToDecksite(Parameter); LabwareObjects.CreateObject("HXPARAMSLib.HxPars"); LabwareNames.CreateObject("HXPARAMSLib.HxPars"); objDecklayout.TemplateLabwareNames(LabwareObjects); myKeys = LabwareObjects.GetKeys(); for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++) { LabwareNames = LabwareObjects.Item1(intCounter); if(LabwareNames.Item1("Labwr_TemplateId") == i_strTemplateID && LabwareNames.Item1("Labwr_DkSiteId") == i_strTemplateSiteID) { if (!blnPlate && i_blnLabwareIsCovered) { o_arrStrLabwareLidIDs.AddAsLast(LabwareNames.Item1("Labwr_Id")); blnPlate=hslTrue; } else { if(i_blnLabwareIsCovered) blnPlate=hslFalse; o_arrStrLabwareIDs.AddAsLast(LabwareNames.Item1("Labwr_Id")); } } } objDecklayout.ReleaseObject(); EditDecklayout5.ReleaseObject(); Parameter.ReleaseObject(); onerror goto 0; err.Clear(); StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName); return(hslTrue); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find decklayout.", strFunctionName); return(hslFalse); } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if (errorID==-1574764487) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "LabwareID is unknown.", strFunctionName); return(hslFalse); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Unknown error occured.", strFunctionName); return(hslFalse); } } } //////////////////////////////////////////////////////////////////////////// // StackIncrease //////////////////////////////////////////////////////////////////////////// function StackIncrease(device& io_devDevice, variable i_strLabwareIDForStack, variable& o_strLabwareID, variable& o_strLabwareLidID) variable { object objDecklayout; variable strFunctionName(""); variable strTemplateID; variable strTemplateSiteID; string strLabwareID; o_strLabwareLidID=""; o_strLabwareID=""; strFunctionName = ExtractFunctionName(GetFunctionName()); // check input variables if (!CheckString(i_strLabwareIDForStack, "i_strLabwareIDForStack", strFunctionName)) return(hslFalse); StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_strLabwareIDForStack = " + i_strLabwareIDForStack, strFunctionName); onerror goto HandleLabwareError; objDecklayout = io_devDevice.GetDeckLayoutObject(); if (!objDecklayout.IsNull()) { object EditDecklayout5; object EditDecklayout7; object Parameter; object LabwareObjects; object LabwareNames; variable myKeys[]; variable intCounter; variable intInverseCounter; variable blnPlate(hslTrue); objDecklayout.GetObject("IEditDeckLayout5", EditDecklayout5); objDecklayout.GetObject("IEditDeckLayout7", EditDecklayout7); Parameter.CreateObject("HXPARAMSLib.HxPars"); Parameter.Add(i_strLabwareIDForStack, P_STACKID); objDecklayout.IncreaseStack(Parameter); LabwareObjects.CreateObject("HXPARAMSLib.HxPars"); LabwareNames.CreateObject("HXPARAMSLib.HxPars"); EditDecklayout7.GetLabwareData(LabwareObjects); myKeys = LabwareObjects.GetKeys(); // Get the template site ID and template ID of the stack for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++) { LabwareNames = LabwareObjects.Item1(intCounter); if(LabwareNames.Item1("Labwr_Id") == i_strLabwareIDForStack) { strTemplateID=LabwareNames.Item1("Labwr_TemplateId"); strTemplateSiteID=LabwareNames.Item1("Labwr_DkSiteId"); } } // Get all the labware on this site objDecklayout.TemplateLabwareNames(LabwareObjects); myKeys = LabwareObjects.GetKeys(); intInverseCounter=myKeys.GetSize(); for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++) { LabwareNames = LabwareObjects.Item1(intInverseCounter); intInverseCounter=intInverseCounter-1; if(LabwareNames.Item1("Labwr_TemplateId") == strTemplateID && LabwareNames.Item1("Labwr_DkSiteId") == strTemplateSiteID && LabwareNames.Item1("Labwr_Id")!=i_strLabwareIDForStack) { strLabwareID=LabwareNames.Item1("Labwr_Id"); if(strLabwareID.Find("_lid")==-1) o_strLabwareID=strLabwareID; else o_strLabwareLidID=strLabwareID; } } objDecklayout.ReleaseObject(); EditDecklayout5.ReleaseObject(); EditDecklayout7.ReleaseObject(); Parameter.ReleaseObject(); onerror goto 0; err.Clear(); StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "Successfully added a plate to stack. Plate LabwareID: '" + o_strLabwareID + "', Lid LabwareID: '" + o_strLabwareLidID + "'.", strFunctionName); return(hslTrue); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find decklayout.", strFunctionName); return(hslFalse); } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if (errorID==-1574764487) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "LabwareID is unknown.", strFunctionName); return(hslFalse); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Unknown error occured.", strFunctionName); return(hslFalse); } } } //////////////////////////////////////////////////////////////////////////// // StackDecrease //////////////////////////////////////////////////////////////////////////// function StackDecrease(device& io_devDevice, variable i_strLabwareIDForStack) variable { object objDecklayout; variable strFunctionName(""); strFunctionName = ExtractFunctionName(GetFunctionName()); // check input variables if (!CheckString(i_strLabwareIDForStack, "i_strLabwareIDForStack", strFunctionName)) return(hslFalse); StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_strLabwareIDForStack = " + i_strLabwareIDForStack, strFunctionName); onerror goto HandleLabwareError; objDecklayout = io_devDevice.GetDeckLayoutObject(); if (!objDecklayout.IsNull()) { object EditDecklayout5; object EditDecklayout7; object Parameter; object LabwareObjects; object LabwareNames; variable myKeys[]; variable intCounter; variable intInverseCounter; variable blnPlate(hslTrue); objDecklayout.GetObject("IEditDeckLayout5", EditDecklayout5); objDecklayout.GetObject("IEditDeckLayout7", EditDecklayout7); Parameter.CreateObject("HXPARAMSLib.HxPars"); Parameter.Add(i_strLabwareIDForStack, P_STACKID); objDecklayout.DecreaseStack(Parameter); objDecklayout.ReleaseObject(); EditDecklayout5.ReleaseObject(); EditDecklayout7.ReleaseObject(); Parameter.ReleaseObject(); onerror goto 0; err.Clear(); StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "Successfully removed a plate from stack.", strFunctionName); return(hslTrue); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find decklayout.", strFunctionName); return(hslFalse); } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if (errorID==-1574764487) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "LabwareID is unknown.", strFunctionName); return(hslFalse); } else { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Unknown error occured.", strFunctionName); return(hslFalse); } } } //////////////////////////////////////////////////////////////////////////// // AddLabwareToTemplateSite //////////////////////////////////////////////////////////////////////////// function AddLabwareToTemplateSite(device& io_devDevice, variable i_strLabwareFileName, variable i_strTemplateID, variable i_strTemplateSiteID, variable i_strEnumOrientation, variable i_blnCoverRack, variable& io_strLabwareID, variable& o_strLabwareIDCover) variable { object objDecklayout; variable strFunctionName(""); variable strLabwareIDTemp; variable strLabwareIDMarker; strFunctionName = ExtractFunctionName(GetFunctionName()); // check input variables if (!CheckString(i_strLabwareFileName, "i_strLabwareFileName", strFunctionName)) return(hslFalse); if (!CheckString(i_strTemplateID, "i_strTemplateID", strFunctionName)) return(hslFalse); if (!CheckString(i_strTemplateSiteID, "i_strTemplateSiteID", strFunctionName)) return(hslFalse); if (!CheckString(io_strLabwareID, "io_strLabwareID", strFunctionName)) return(hslFalse); if (!CheckString(i_strEnumOrientation, "i_strEnumOrientation", strFunctionName)) return(hslFalse); StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_strLabwareFileName = " + i_strLabwareFileName + ", i_strTemplateID = " + i_strTemplateID + ", i_strTemplateSiteID = " + i_strTemplateSiteID + ", i_strEnumOrientation = " + i_strEnumOrientation + ", io_strLabwareID = " + io_strLabwareID, strFunctionName); onerror goto HandleLabwareError; objDecklayout = io_devDevice.GetDeckLayoutObject(); if (!objDecklayout.IsNull()) { object EditDecklayout6; object EditDecklayout7; object objParameter; object objSitesParameter; object objSiteParameter; object objLabware; object objTemplate; object objDeckData; object objEditLabware6; object objRectRack2; variable arrTemplateSitesKeys[]; variable intCounter; variable fltLabwareMeasureX; variable fltLabwareMeasureY; variable fltSiteMeasureX; variable fltSiteMeasureY; variable position[](4); objDecklayout.GetObject("IEditDeckLayout6", EditDecklayout6); objDecklayout.GetObject("IEditDeckLayout7", EditDecklayout7); objDecklayout.GetObject("IEditLabware6", objEditLabware6); objParameter.CreateObject("HXPARAMSLib.HxPars"); objSitesParameter.CreateObject("HXPARAMSLib.HxPars"); objSiteParameter.CreateObject("HXPARAMSLib.HxPars"); objDecklayout.GetObject("IDeckData", objDeckData); objLabware=objDecklayout.Labware(i_strTemplateID); objLabware.GetObject("ITemplateDeckData", objTemplate); if (objTemplate.IsNull()) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Cannot get template data.", strFunctionName); return(hslFalse); } objDeckData.GetTemplateData(i_strTemplateID, objParameter); if (objDeckData.IsNull()) { StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Cannot get deck data.", strFunctionName); return(hslFalse); } objSitesParameter=objParameter.Item1(P_DECKSITES); arrTemplateSitesKeys=objSitesParameter.GetKeys(); // we have parameters of all sites. Find the one with the name given. for(intCounter=0; intCounter= iMin && iVariable <= iMax) { return(hslTrue); } else { HSLLabwareAccess_LLE = "Parameter " + iTraceEntry + " is out of range("+ IStr(iMin) + ".." + IStr(iMax) + ")!"; } } else { HSLLabwareAccess_LLE = "Input parameter " + iTraceEntry + " is not of type integer"; } StatusTrace(CMD_ERROR, TRACE_LEVEL_RELEASE, HSLLabwareAccess_LLE, iFunctionName); return(hslFalse); } // CheckIntegerRange //////////////////////////////////////////////////////////////////////////// // private function CheckString //////////////////////////////////////////////////////////////////////////// private function CheckString(variable iVariable, variable iTraceEntry, variable iFunctionName) variable { if(GetType(iVariable) == "s") return(hslTrue); HSLLabwareAccess_LLE = "Parameter " + iTraceEntry + " is not of type string!"; StatusTrace(CMD_ERROR, TRACE_LEVEL_RELEASE, HSLLabwareAccess_LLE, iFunctionName); return(hslFalse); } // CheckString //////////////////////////////////////////////////////////////////////////// // private function CheckFloat //////////////////////////////////////////////////////////////////////////// private function CheckFloat(variable iVariable, variable iTraceEntry, variable iFunctionName) variable { if(GetType(iVariable) == "f") return(hslTrue); HSLLabwareAccess_LLE = "Parameter " + iTraceEntry + " is not of type float!"; StatusTrace(CMD_ERROR, TRACE_LEVEL_RELEASE, HSLLabwareAccess_LLE, iFunctionName); return(hslFalse); } // CheckString //////////////////////////////////////////////////////////////////////////// // private function StatusTrace //////////////////////////////////////////////////////////////////////////// private function StatusTrace(variable iState, variable iTraceLevel, variable iTraceString, variable iFunctionName) void { if(iTraceLevel <= HSLLabwareAccess_TraceLevel) { FormatTrace("HSLLabwrAccess", iFunctionName, iState, " ", iTraceString); } } // StatusTrace //////////////////////////////////////////////////////////////////////////// // private function ExtractFunctionName //////////////////////////////////////////////////////////////////////////// private function ExtractFunctionName(variable iFunctionName) variable { string FunctionName(iFunctionName); return(FunctionName.Mid(ReverseFind(iFunctionName, ":") + 1, FunctionName.GetLength())); } // ExtractFunctionName //////////////////////////////////////////////////////////////////////////// // private function InitSemaphore //////////////////////////////////////////////////////////////////////////// private function InitSemaphore() { // Pls. don't call this function directly. Use EnterSemaphore() instead. if(HSLLabwareAccess_SH==0) { variable strFunctionName(""); strFunctionName = ExtractFunctionName(GetFunctionName()); HSLLabwareAccess_SH=SynInitializeCriticalSection(); //StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "Semaphore handle = " + IStr(HSLLabwareAccess_SH), strFunctionName); SynEnterCriticalSection(HSLLabwareAccess_SH); if(!HSLLabwareAccess_IO) { HSLLabwareAccess_IO=hslTrue; // do something, that has to be done only once //StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "Library semaphore initialised.", strFunctionName); } SynLeaveCriticalSection(HSLLabwareAccess_SH); } } //////////////////////////////////////////////////////////////////////////// // private function ReverseFind //////////////////////////////////////////////////////////////////////////// private function ReverseFind(string String, string SubString) variable { variable index; variable result(-1); variable strLength; variable subLength; string strStr; strStr = String; strLength = strStr.GetLength(); for (index = strStr.Find(SubString); index != -1; index = strStr.Find(SubString)) { result = result + index + 1; strStr = strStr.Mid(index + 1, strLength); } return(result); } // ReverseFind //////////////////////////////////////////////////////////////////////////// // private function EnterSemaphore //////////////////////////////////////////////////////////////////////////// private function EnterSemaphore() { InitSemaphore(); SynEnterCriticalSection(HSLLabwareAccess_SH); } //////////////////////////////////////////////////////////////////////////// // private function LeaveSemaphore //////////////////////////////////////////////////////////////////////////// private function LeaveSemaphore() { InitSemaphore(); SynLeaveCriticalSection(HSLLabwareAccess_SH); } } //end HSLLabwareAccess #endif //end __HSLLABWAREACCESS__ // $$author=dkaufmann$$valid=1$$time=2013-08-19 14:39$$checksum=0ac5703d$$length=086$$ ================================================ FILE: pyhamilton/library/HSLTrcLib.hsl ================================================ // This is a part of the HSL Trace Library. // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // All rights reserved. // // Modification History // 2001-06-26 bandenmatten : Removed onerror goto statements from library functions. // 2001-07-17 bandenmatten : Divided library into interface and implemenation. // 2002-03-21 bandenmatten : Declared functions TrcGetFileName, TrcGetFunctionName, // TrcGetLineNumber static (are useless in a library). // 2002-08-23 bandenmatten : Renamed parameter of functions TrcFormatTraceX(): state -> status. // 2002-12-05 bandenmatten : Specified return values for exported library functions. // 2006-02-20 bandenmatten : Function TrcTraceSequence: Enclosed strings in Translate function. #ifndef __HSLTrcLib_hsl__ #define __HSLTrcLib_hsl__ 1 // Interface to Trace library #ifndef HSL_RUNTIME function TrcInputBox(variable& prompt, variable& title, variable type) variable {return(0);} function TrcMessageBox(variable& message, variable& title, variable type) variable {return(0);} function TrcTrace(variable variable1, variable variable2) void {return;} function TrcTrace4(variable variable1, variable variable2, variable variable3, variable variable4) void {return;} function TrcTrace8(variable variable1, variable variable2, variable variable3, variable variable4, variable variable5, variable variable6, variable variable7, variable variable8) void {return;} function TrcTrace12(variable variable1, variable variable2, variable variable3, variable variable4, variable variable5, variable variable6, variable variable7, variable variable8, variable variable9, variable variable10, variable variable11, variable variable12) void {return;} function TrcFormatTrace(variable& source, variable& action, variable status, variable variable1, variable variable2) void {return;} function TrcFormatTrace4(variable& source, variable& action, variable status, variable variable1, variable variable2, variable variable3, variable variable4) void {return;} function TrcFormatTrace8(variable& source, variable& action, variable status, variable variable1, variable variable2, variable variable3, variable variable4, variable variable5, variable variable6, variable variable7, variable variable8) void {return;} function TrcFormatTrace12(variable& source, variable& action, variable status, variable variable1, variable variable2, variable variable3, variable variable4, variable variable5, variable variable6, variable variable7, variable variable8, variable variable9, variable variable10, variable variable11, variable variable12) void {return;} function TrcTraceSequence(sequence& sequenceObj) void {return;} function TrcGetMethodFileName() variable {return(0);} static function TrcGetFileName() variable {return(0);} static function TrcGetFunctionName() variable {return(0);} static function TrcGetLineNumber() variable {return(0);} #endif // Implementation of Trace library #ifdef HSL_RUNTIME // Wrapper function function TrcInputBox(variable& prompt, variable& title, variable type) variable { return(InputBox(prompt, title, type)); } // Wrapper function function TrcMessageBox(variable& message, variable& title, variable type) variable { return(MessageBox(message, title, type)); } // Wrapper function function TrcTrace(variable variable1, variable variable2) void { Trace(variable1, variable2); } // Wrapper function function TrcTrace4(variable variable1, variable variable2, variable variable3, variable variable4) void { Trace(variable1, variable2, variable3, variable4); } // Wrapper function function TrcTrace8(variable variable1, variable variable2, variable variable3, variable variable4, variable variable5, variable variable6, variable variable7, variable variable8) void { Trace(variable1, variable2, variable3, variable4, variable5, variable6, variable7, variable8); } // Wrapper function function TrcTrace12(variable variable1, variable variable2, variable variable3, variable variable4, variable variable5, variable variable6, variable variable7, variable variable8, variable variable9, variable variable10, variable variable11, variable variable12) void { Trace(variable1, variable2, variable3, variable4, variable5, variable6, variable7, variable8, variable9, variable10, variable11, variable12); } // Wrapper function function TrcFormatTrace(variable& source, variable& action, variable status, variable variable1, variable variable2) void { FormatTrace(source, action, status, variable1, variable2); } // Wrapper function function TrcFormatTrace4(variable& source, variable& action, variable status, variable variable1, variable variable2, variable variable3, variable variable4) void { FormatTrace(source, action, status, variable1, variable2, variable3, variable4); } // Wrapper function function TrcFormatTrace8(variable& source, variable& action, variable status, variable variable1, variable variable2, variable variable3, variable variable4, variable variable5, variable variable6, variable variable7, variable variable8) void { FormatTrace(source, action, status, variable1, variable2, variable3, variable4, variable5, variable6, variable7, variable8); } // Wrapper function function TrcFormatTrace12(variable& source, variable& action, variable status, variable variable1, variable variable2, variable variable3, variable variable4, variable variable5, variable variable6, variable variable7, variable variable8, variable variable9, variable variable10, variable variable11, variable variable12) void { FormatTrace(source, action, status, variable1, variable2, variable3, variable4, variable5, variable6, variable7, variable8, variable9, variable10, variable11, variable12); } // Traces the attributes of the supplied sequence function TrcTraceSequence(sequence& sequenceObj) void { variable currentPosBak; // backup of current position variable countPosBak; // backup of count position variable index; // loop index variable labwareId(Translate("labwareId")); variable positionId(Translate("positionId")); // backup original current position currentPosBak = sequenceObj.GetCurrentPosition(); // backup original count position countPosBak = sequenceObj.GetCount(); // set count to total sequenceObj.SetCount(sequenceObj.GetTotal()); // trace attributes Trace(Translate("name = "), sequenceObj.GetName()); Trace(Translate("current = "), currentPosBak); Trace(Translate("count = "), countPosBak); Trace(Translate("total = "), sequenceObj.GetTotal()); Trace(Translate("max = "), sequenceObj.GetMax()); Trace(Translate("used = "), sequenceObj.GetUsedPositions()); for (index = sequenceObj.SetCurrentPosition(1); index != 0; index = sequenceObj.Increment(1)) Trace(labwareId, " = ", sequenceObj.GetLabwareId(), ", ", positionId, " = ", sequenceObj.GetPositionId()); // restore original count position sequenceObj.SetCount(countPosBak); // restore original current position sequenceObj.SetCurrentPosition(currentPosBak); } // Wrapper function function TrcGetMethodFileName() variable { return(GetMethodFileName()); } // Wrapper function static function TrcGetFileName() variable { return(GetFileName()); } // Wrapper function static function TrcGetFunctionName() variable { return(GetFunctionName()); } // Wrapper function static function TrcGetLineNumber() variable { return(GetLineNumber()); } #endif #endif // $$author=wbarmettler$$valid=1$$time=2013-06-24 11:47$$checksum=d9bba443$$length=090$$ ================================================ FILE: pyhamilton/library/HSL_LiquidClassLib.hsl ================================================ // ====================================================================. // Copyright (C) by HAMILTON Reno, USA. // All rights reserved. // ---------------------------------------------------------------------- // Library: HSL_LiquidClassLib.hsl // ====================================================================== // // // // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // Modification History of MLSTAR_LiquidClassLib.hsl // 2009-04-02: Linus Jegher: Creation // 2009-04-03: mdarin: added function "GetLiquidDbName()" // 2009-04-06: Linus Jegher: added function "GetLiquidDevices" // 2009-04-07: Linus Jegher: added function "GetLiquidClassDescription" // 2009-04-07: mdarin: added function "getTipTypesNames" // 2010-01-20: mdarin: added function "SetStateOriginalLiquid" // Set state of the liquid-class (TRUE: Predefined / FALSE: user-defined) // 2016-Jun-13 acuevas: added function "SetLiquidClassAspirateParameter", "SetLiquidClassDispenseParameter" // 2016-Dec-14: acuevas: Creation. Adapt MLSTAR_LiquidClassLib library to work on NIMBUS and ML_STAR // 2020-May-13 acuevas: added function "GetTADMToleranceBand" , "GetLiquidClassDesignHistory", and private "FormatDesignHistoryTime" // 2020-May-20 acuevas: added function "GetTADMVolumes", fix function "GetLiquidDevices" // 2020-June-11 acuevas: added function "GetLiquidNames" , "GetLiquidDevicesFromCfgFile", "GetLiquidDevicesFromLiquidClass" // 2021-October-21 acuevas: added function "GetLiquidChecksum" //// ====================================================================== #pragma once #include "HslUtilLib.hsl" #include "HSLUtilLib2.hsl" #include "HSLStrLib.hsl" #include "HSLArrLib.hsl" #include "HSLMthLib.hsl" namespace LiquidClassLib { namespace LIQUIDCLASSNAMES_FILTER { const variable NoLiquidDeviceFilter (-1); const variable NoLiquidNameFilter( ""); const variable NoTipTypeFilter( -1); const variable NoDispenseModeFilter( -1); } namespace LIQUIDCLASS_DISPENSEMODE { const variable Undefined (-1); const variable DispenseJet (0); const variable DispenseSurface (1); const variable DispenseJetPartVolume (2); const variable DispenseJetEmptyTip (3); const variable DispenseSurfacePartVolume (4); const variable DispenseSurfaceEmptyTip (5); } const variable HSL_TRUE ( hslTrue ); // constant hslTrue const variable HSL_FALSE ( hslFalse); // constant hslFalse namespace LIQUIDCLASS_PARAMS_ASP { const variable FlowRate (-533331950); const variable MixFlowRate (-533331949); const variable AirTransportVolume (-533331948); const variable BlowOutVolume (-533331947); const variable SwapSpeed (-533331946); const variable SettlingTime (-533331945); const variable OverAspirateVolume (-533331936); const variable ClotRetractHeight (-533331935); } namespace LIQUIDCLASS_PARAMS_DISP { const variable FlowRate (-533331950); const variable MixFlowRate (-533331949); const variable AirTransportVolume (-533331948); const variable BlowOutVolume (-533331947); const variable SwapSpeed (-533331946); const variable SettlingTime (-533331945); const variable StopFlowRate (-533331920); const variable StopBackVolume (-533331919); } namespace LIQUIDCLASS_PARAMS { // const variable DataDefVersion (-533331968); ?? const variable LiquidVersion (-533331967); const variable LiquidName (-533331966); const variable TipType (-533331965); const variable DispenseMode (-533331964); const variable OriginalLiquid (-533331963); const variable Notes (-533331962); const variable LiquidDevice (-533331961); // object const variable AspirateParameter (-533331952); // object const variable DispenseParameter (-533331951); // object const variable CorrectionCurve (-533331904); // object const variable PressureLLDSensitivity(-533331899); const variable LLDMaxHeightDifference(-533331898); const variable ValidationState (-533331897); const variable DesignHistory (-533331896); // object const variable MaxAspirateVolume (-533331895); const variable Tadm_Enabled (-533331887); const variable TadmUpperToleranceBand(-533331872); //array of x,y values of the TADM guard band. Array even indexes (0,2,4...) are the X values, odd indexes (1,3,5...) are the Y values const variable TadmLowerToleranceBand(-533331871); //array of x,y values of the TADM guard band. Array even indexes (0,2,4...) are the X values, odd indexes (1,3,5...) are the Y values const variable TadmAspirateStep (-533331728); const variable TadmDispenseStep (-533331727); } static global object LIQUIDCLASSLib_LiquidClass; static variable Selected_LiquidClassName(""); static object Selected_LiquidClassObject; variable instClass; static global function LIQUIDCLASSLib_Initialize(device instrument, variable iReadOnly) void { if (LIQUIDCLASSLib_LiquidClass.IsNull( ) == hslFalse) { return; } { object HxRegistry; HxRegistry.CreateObject("HXREGLib.HxRegistry"); instClass = HxRegistry.InstClass(instrument.GetInstrumentName()); LIQUIDCLASSLib_LiquidClass.CreateObject("Hamilton.HxCoreLiquidClass"); LIQUIDCLASSLib_LiquidClass.InitCoreLiquidClass(instClass, iReadOnly); } } static function Check_IsInitialized() void { if (LIQUIDCLASSLib_LiquidClass.IsNull()) err.Raise( -1, "HAMILTON LiquidClassLib: Library is not initialized!\n\n> Use function LIQUIDCLASSLib::Initialize().\n"); } // Diese funktion wirft eine Exception, wenn keine Liquidklasse selektiert ist. // Das ist besser als die Fehlermeldung von HSL, die einfach nur 'Bad Argument' ist. static function Check_IsSelected() void { if (Selected_LiquidClassObject.IsNull()) err.Raise( -1, "MLSTARLiquidClassLib: No Liquidclass is selected!\n\n> Use function MLSTAR_LIQUIDCLASSLib::SelectLiquidClass().\n"); } function Initialize(device instrument, variable iReadOnly) void { LIQUIDCLASSLib_Initialize(instrument, iReadOnly); } function GetLiquidClassNames( variable& outLiquidClassNames[]) variable { object parsLiquidClassNames; parsLiquidClassNames.CreateObject("HXPARAMSLib.HxPars"); Check_IsInitialized(); LIQUIDCLASSLib_LiquidClass.GetLiquidClassNames( parsLiquidClassNames); outLiquidClassNames = parsLiquidClassNames.GetKeys(); { // sortiere das array. Dazu muss ein zweites array erstellt werden, // das aber in diesem Zusammenhang nicht benutzt wird. variable dummyArray[]( outLiquidClassNames.GetSize()); Util::Sort( dummyArray, outLiquidClassNames); } return (outLiquidClassNames.GetSize()); } // Returns an array of liquid class names filtered for the specified values for // liquid device id, liquid name, tip type id and dipsense mode. The array of liquid class names is sorted. function GetLiquidClassNamesFiltered( variable liquidDeviceFilter, variable liquidNameFilter, variable tipTypeFilter, variable dispenseModeFilter, variable& outLiquidClassNames[]) variable { object parsNames; parsNames.CreateObject("HXPARAMSLib.HxPars"); Check_IsInitialized(); LIQUIDCLASSLib_LiquidClass.GetFilteredLiquidClassNames( liquidDeviceFilter, liquidNameFilter, dispenseModeFilter, tipTypeFilter, parsNames); outLiquidClassNames = parsNames.GetKeys(); // Schlssel sind Liquidklassennamen { // sortiere das array. Dazu muss ein zweites array erstellt werden, // das aber in diesem Zusammenhang nicht benutzt wird. variable dummyArray[]( outLiquidClassNames.GetSize()); Util::Sort( dummyArray, outLiquidClassNames); } return (outLiquidClassNames.GetSize()); // size of array } // // Diese Funktion ladet die Daten einer Liquidklasse // function SelectLiquidClass( variable inLiquidClassName) void { object objectTemp; variable i; object s; variable Array_Keys[]; Check_IsInitialized(); Selected_LiquidClassObject.ReleaseObject(); Selected_LiquidClassName = ""; objectTemp.CreateObject("HXPARAMSLib.HxPars"); LIQUIDCLASSLib_LiquidClass.GetLiquidClass(inLiquidClassName, objectTemp, hslFalse); Selected_LiquidClassName = inLiquidClassName; Selected_LiquidClassObject = objectTemp; } // Gibt die Korrekturpunkte der Kurve zurck. Die X-Werte werden im outXWerte-Array zurckgegeben. // Im outYWerte-Array werden die Y-Werte zurckgegeben. Die Korrekturpunkte sind in den // Arrays nach X-Wert aufsteigend sortiert. function GetCorrectionCurve( variable& outXWerte[], variable& outYWerte[]) variable { object parsCorrectionCurves; Check_IsSelected(); parsCorrectionCurves = Selected_LiquidClassObject.Item1( LIQUIDCLASS_PARAMS::CorrectionCurve); parsCorrectionCurves.GetItems( outXWerte, outYWerte); // wandle Zeichenkette in flieskomma Zahl { variable cItems; variable iItem; cItems = outXWerte.GetSize(); for (iItem = 0; iItem < cItems; ++iItem) { outXWerte[ iItem] = FVal( outXWerte.GetAt( iItem)); } } Util::Sort( outYWerte, outXWerte); return (outXWerte.GetSize()); } function UpdateCorrectionCurve( variable inXWerte[], variable inYWerte[]) void { // TODO: berprfen ob beide arrays gleich viel werte enthalten. object parsCorrectionCurves; Check_IsSelected(); if (inXWerte.GetSize() != inYWerte.GetSize()) { variable formatArgs; formatArgs = " inXWerte.Size: " + IStr( inXWerte.GetSize()) + "\n inYWerte.Size: " + IStr( inYWerte.GetSize()); err.Raise( -1, "MLSTARLiquidClassLib::UpdateCorrectionCurve(): The arrays inXWerte and inYWerte have different size!\n" + formatArgs + "\n"); } parsCorrectionCurves = Selected_LiquidClassObject.Item1( LIQUIDCLASS_PARAMS::CorrectionCurve); parsCorrectionCurves.RemoveAll(); // die Korrekturkurven-Punkte werden neu erstellt. { variable cItems; variable iItem; cItems = inXWerte.GetSize(); for (iItem = 0; iItem < cItems; ++iItem) { parsCorrectionCurves.Add( inYWerte.GetAt( iItem), inXWerte.GetAt( iItem)); } } LIQUIDCLASSLib_LiquidClass.SetLiquidClass( Selected_LiquidClassName, Selected_LiquidClassObject); } function SetLiquidClassAspirateParameter (variable aspirateParameter, variable paramValue) void { object tempParam; tempParam = Selected_LiquidClassObject.Item1(LIQUIDCLASS_PARAMS::AspirateParameter); tempParam.Remove(aspirateParameter); tempParam.Add(paramValue,aspirateParameter); LIQUIDCLASSLib_LiquidClass.SetLiquidClass( Selected_LiquidClassName, Selected_LiquidClassObject); } function SetLiquidClassDispenseParameter (variable dispenseParameter, variable paramValue) void { object tempParam; tempParam = Selected_LiquidClassObject.Item1(LIQUIDCLASS_PARAMS::DispenseParameter); tempParam.Remove(dispenseParameter); tempParam.Add(paramValue,dispenseParameter); LIQUIDCLASSLib_LiquidClass.SetLiquidClass( Selected_LiquidClassName, Selected_LiquidClassObject); } // Die funtion gibt den Wert des angegebenen Parameters aus dem Namensraum LIQUIDCLASS_PARAMS function GetLiquidClassParameter( variable param) variable { Check_IsSelected(); return (Selected_LiquidClassObject.Item1( param)); } // Die funtion gibt den Wert des angegebenen Parameters aus dem Namensraum LIQUIDCLASS_PARAMS function GetLiquidClassParameter_Object( variable param, object& outObject) void { Check_IsSelected(); outObject = Selected_LiquidClassObject.Item1( param); } // Die funktion gibt den Wert des angegebenen Aspirations-Parameters aus dem Namensraum LIQUIDCLASS_PARAMS function GetLiquidClassAspirateParameter( variable aspirateParameter) variable { Check_IsSelected(); return (Selected_LiquidClassObject.Item2( LIQUIDCLASS_PARAMS::AspirateParameter, aspirateParameter)); } // Die funktion gibt den Wert des angegebenen Dispensations-Parameters aus dem Namensraum LIQUIDCLASS_PARAMS function GetLiquidClassDispenseParameter( variable dispenseParameter) variable { Check_IsSelected(); return (Selected_LiquidClassObject.Item2( LIQUIDCLASS_PARAMS::DispenseParameter, dispenseParameter)); } // Schaltet TADM fr selektierte Liquidklasse ein, wenn es noch nocht ist. function EnableTadm() void { variable tadmEnabled; Check_IsSelected(); tadmEnabled = Selected_LiquidClassObject.Item1( LIQUIDCLASS_PARAMS::Tadm_Enabled); if (tadmEnabled != hslTrue) { Selected_LiquidClassObject.Add( hslTrue, LIQUIDCLASS_PARAMS::Tadm_Enabled); LIQUIDCLASSLib_LiquidClass.SetLiquidClass( Selected_LiquidClassName, Selected_LiquidClassObject); } } // Gibt das aktuelle Datum formatiert als Zeitstempel. Es kann als Teil eines Dateinamen // benutzt werden. Beispiel: 2009-03-17_14-56-35 - function GetTimeStamp() variable { variable date; variable time; time = GetTime( "%H-%M-%S"); date = GetDate( "%Y-%m-%d"); return (date + "_" + time); } // exportiert die selektierte Liquidklasse in die angegebene Datenbankdatei. // Diese Datenbankdatei wird neu erstellt, falls sie schon existiert. function ExportLiquidClass( variable liquidDbFile) void { object hxStarLiquid; Check_IsSelected(); { object hxRegistry; variable instClassCfgFil; hxRegistry.CreateObject("HXREGLib.HxRegistry"); hxStarLiquid.CreateObject("Hamilton.HxStarLiquidClass"); instClassCfgFil = hxRegistry.InstClassCfgFile(instClass); hxStarLiquid.InitStarLiquidClass( instClassCfgFil, hslFalse, liquidDbFile, hslTrue); } hxStarLiquid.SetLiquidclass( Selected_LiquidClassName, Selected_LiquidClassObject); hxStarLiquid.CloseDatabase(); } //mdarin: 03.04.2009: function added // get the name (file) of the Access-DB function GetLiquidDbName() variable { return(LIQUIDCLASSLib_LiquidClass.GetLiquidDbName()); } //mdarin: 06.04.2009: function added (with help from L. Jegher) // alvaro cuevas: 2020-5-20 Modified. Original returned "Invalid Class" for HxStarLiquidDevices , added liquid class name as input , sort returned arrays. function GetLiquidDevicesFromLiqClass( variable i_liquidClassName, // [In] string liquid class name variable& o_arrayDeviceIDs[], //[Out] array of int values of device IDs variable& o_arrayDeviceNames[] //[Out] array of strings with device view names. ) void { object parsLiquidClassDevices; object hxCoreDevices; variable name; variable deviceId; variable deviceCount; variable iItem; variable cItems; SelectLiquidClass(i_liquidClassName); o_arrayDeviceIDs.SetSize(0); o_arrayDeviceNames.SetSize(0); GetLiquidClassParameter_Object( LIQUIDCLASS_PARAMS::LiquidDevice, parsLiquidClassDevices); hxCoreDevices.CreateObject("Hamilton.HxCoreLiquidDevices"); hxCoreDevices.SetInstrumentClass(instClass); o_arrayDeviceIDs = parsLiquidClassDevices.GetValues(); // values in array cItems = o_arrayDeviceIDs.GetSize(); for (iItem = 0; iItem < cItems; ++iItem) { //Trace(o_arrayDeviceIDs.GetAt(iItem)); deviceId = o_arrayDeviceIDs[iItem]; o_arrayDeviceNames.AddAsLast(hxCoreDevices.GetViewName(deviceId)); } // sort arrays Util::Sort( o_arrayDeviceIDs, o_arrayDeviceNames); } function GetLiquidDevicesFromCfgFile( variable& o_arrayDeviceIDs[], //[Out] array of int values of device IDs variable& o_arrayDeviceNames[] //[Out] array of strings with device view names. ) void { object parsLiquidClassDevices; object hxCoreDevices; object parsObj; object hxPar; object enumerator; object liqDevice; variable name; variable deviceId; variable deviceCount; variable iItem; variable cItems; //SelectLiquidClass(i_liquidClassName); o_arrayDeviceIDs.SetSize(0); o_arrayDeviceNames.SetSize(0); //GetLiquidClassParameter_Object( LIQUIDCLASS_PARAMS::LiquidDevice, parsLiquidClassDevices); parsObj.CreateObject("HXPARAMSLib.HxPars"); hxCoreDevices.CreateObject("Hamilton.HxCoreLiquidDevices"); hxCoreDevices.SetInstrumentClass(instClass); //hxCoreDevices.GetObject("IHxCoreLiquidDevices", parsObj); hxCoreDevices.GetDevices(parsObj); enumerator = parsObj._NewEnum; while (enumerator.EnumNext(hxPar)) { liqDevice = hxPar.Value; //Trace("TipType=", hxPar.Key, " value=", hxPar.Value , " name=", liqDevice.Item1(1)); o_arrayDeviceNames.AddAsLast (liqDevice.Item1(1)); o_arrayDeviceIDs.AddAsLast (hxPar.Key); hxPar.ReleaseObject(); } // sort arrays Util::Sort( o_arrayDeviceIDs, o_arrayDeviceNames); } //----------------------------------------------------------------------------------------- namespace DESCRIPTION_SECTIONS { static const variable None ( 0); static const variable CommonParameters ( 1); static const variable LiquidParameters ( 2); static const variable CorrectionCurve ( 4); static const variable Notes ( 8); static const variable TadmState ( 16); static const variable ToleranceBandVolumes ( 32); static const variable ToleranceBandDetails ( 64); static const variable All (CommonParameters+LiquidParameters+CorrectionCurve+Notes+TadmState+ToleranceBandVolumes+ToleranceBandDetails); } function GetLiquidClassDescription() variable { variable description; Check_IsSelected(); description = LIQUIDCLASSLib_LiquidClass.GetLiquidClassDescription( Selected_LiquidClassName, DESCRIPTION_SECTIONS::All); return (description); } // 07.04.2009: mdarin: created with claudio jrg // get tiptypes in array. (parallel-array) // get tip-name in array. (parallel-array) // tip-types depending on config-file! function getTipTypesNames(variable& oArrTipID[], variable& oArrTipNames[]) variable { object objTmp; object starTipTypes; object parsPtr; object enumerator; object hxPar; object parsOneTipType; oArrTipID.SetSize(0); oArrTipNames.SetSize(0); if ( 0 == objTmp.CreateObject("Hamilton.HxCoreTipTypes") ) // create temp object { Trace("ERROR: CreateObject(\"Hamilton.HxCoreTipTypes\")"); // error create object return(hslFalse); } if ( 0 == objTmp.GetObject("IHxCoreTipTypes2", starTipTypes) ) // create temp object { Trace("ERROR: Query Interface to IHxCoreTipTypes2"); // error create object return(hslFalse); } // Trace(starTipTypes); if ( 0 == parsPtr.CreateObject("HXPARAMSLib.HxPars") ) { Trace("ERROR: parsPtr.CreateObject(\"HXPARAMSLib.HxPars\")"); return(hslFalse); } //Trace("Count = ", parsPtr.Count); //Trace(starTipTypes); starTipTypes.SetInstrumentClass(instClass); starTipTypes.GetTipTypes(parsPtr); // Trace("Count = ", parsPtr.Count); enumerator = parsPtr._NewEnum; while (enumerator.EnumNext(hxPar)) { //Trace("TipType=", hxPar.Key, " value=", hxPar.Value); parsOneTipType = hxPar.Value; //Trace("ViewName=", parsOneTipType.Item1(1)); oArrTipID.AddAsLast(hxPar.Key); oArrTipNames.AddAsLast(parsOneTipType.Item1(1)); //oArrTipNames.AddAsLast(parsOneTipType.Item1(starTipTypes.HxStarTipTypeKeys_ttViewName)); hxPar.ReleaseObject(); } // sort arrays Util::Sort( oArrTipID, oArrTipNames); return(hslTrue); } // function "SetStateOriginalLiquid", 2010-01-20, mdarin // Set state of the liquid-class (TRUE: Predefined / FALSE: user-defined) function SetStateOriginalLiquid( variable iState // hslTrue: set to "predefined", hslFalse: set to "user-defined" ) void { variable actualState; if (iState != HSL_TRUE && iState != HSL_FALSE) { Trace("ERROR: Wrong input-parameter. Only hslTrue or hslFalse allowed!"); err.Raise( -1, "ERROR: Wrong input-parameter. Only hslTrue or hslFalse allowed!"); } Check_IsSelected(); // raise error if no LC is selected in previous actualState = Selected_LiquidClassObject.Item1( LIQUIDCLASS_PARAMS::OriginalLiquid); // get actual state of LC // Trace("actualState before update: ", actualState, " / iState: ", iState); if (actualState != iState) // set only if "new state" is not equal to "existing state" { Selected_LiquidClassObject.Add( iState, LIQUIDCLASS_PARAMS::OriginalLiquid); LIQUIDCLASSLib_LiquidClass.SetLiquidClass( Selected_LiquidClassName, Selected_LiquidClassObject); } // actualState = Selected_LiquidClassObject.Item1( LIQUIDCLASS_PARAMS::OriginalLiquid); // Trace("actualState AFTER update: ", actualState); } // ------------------------------------------------------------ //Get the TADM Tolerance band x-axis(time in ms) and y-axis (pressure in Pa) data function GetTADMToleranceBand( variable i_strLiquidClassName,//[In] string liquidClassName variable i_fltVolume, //[In] float volume variable i_paramTadmAspOrDispStep , //[In] stepType --> TadmAspirating (-533331728) , TadmDispensing (-533331727) variable i_paramTadmUpperOrLowerBand , //[In] TadmLowerToleranceBand(-533331871) , TadmupperToleranceBand(-533331872) variable& o_x_TADMBand_time_ms[], //output array of x-axis values, time in ms variable& o_y_TADMBand_pressure_Pa[] //output array of y-axis values, pressure in Pa )void { object parsObj; variable _arr_tmp[]; variable cItems; variable iItem; variable isEven; variable tmpVal; parsObj.CreateObject("HXPARAMSLib.HxPars"); o_x_TADMBand_time_ms.SetSize(0); o_y_TADMBand_pressure_Pa.SetSize(0); _arr_tmp.SetSize(0); LIQUIDCLASSLib_LiquidClass.GetToleranceBand( i_strLiquidClassName, //[In] string liquidClassName i_fltVolume,//[In] double volume i_paramTadmAspOrDispStep,//[In] HxCoreTadmStep stepType --> tadmAspirating = -533331728 , tadmDispensing = -533331727 parsObj, //[In] object resultPars 0 //[In] bool checkValidationState - if this boolean value is true, an error occures if the liquid class is not validated and the user has to work with validated liquid classes ); _arr_tmp = parsObj.Item1(i_paramTadmUpperOrLowerBand); cItems = _arr_tmp.GetSize(); isEven = 1; for (iItem = 0; iItem < cItems; ++iItem){ tmpVal = _arr_tmp.GetAt(iItem); if(isEven==1){ //time value , multiply by 10 to convert to ms tmpVal = tmpVal * 10; o_x_TADMBand_time_ms.AddAsLast(tmpVal); isEven = 0; } else { //pressure value o_y_TADMBand_pressure_Pa.AddAsLast(tmpVal); isEven = 1; } } } //----------------------------------------------------------- //FormatDesignHistoryTime Converts a given time in s in Unix/UTC format from the liquid design history and returns a human readable date. //the given number is in microsoft format cdbl , where tcdbl return datetime in microsoft format. before comma date - number of days since 1 January 1900. After comma/dot the time is --- 24 hours = 1. Multiply by 86400 to convert to seconds private function FormatDesignHistoryTime(variable i_flt_time //cdbl time in days (Time since Jan 1, 1900 , 00:00:00) ) variable { variable strScriptResult; variable _strCmd; variable _int_days; variable _ftl_seconds; variable _int_seconds; object objScriptControl; object objFileSystemObject; strScriptResult = ""; _int_days = MthFloor(i_flt_time); _ftl_seconds = i_flt_time - _int_days; _int_seconds = _ftl_seconds * 86400; _int_seconds = MthRound(_int_seconds, 9); _strCmd = StrConcat8(Translate("GetTimeReadable("), _int_days, ",", _int_seconds, ")", "", "", ""); //get directories objFileSystemObject.CreateObject("Scripting.FileSystemObject"); objScriptControl.CreateObject("MSScriptControl.ScriptControl"); // - create script objScriptControl.Language = "VBScript"; objScriptControl.AddObject("fso", objFileSystemObject); objScriptControl.AddCode (" \n\ Option Explicit \n\ \n\ Function GetTimeReadable(days, seconds) \n\ Dim epochDays, epochSeconds \n\ Dim tDays, t \n\ Dim strDate \n\ epochDays = DateDiff(\"d\", \"01/01/1900 00:00:00\", days) \n\ tDays = DateAdd(\"d\", epochDays ,\"01/01/1900 00:00:00\") \n\ t = DateAdd(\"s\", seconds ,tDays & \" 00:00:00\") \n\ strDate = Year(t) & \"-\" & _ \n\ Right(\"0\" & Month(t),2) & \"-\" & _ \n\ Right(\"0\" & Day(t),2) & \"_\" & _ \n\ Right(\"0\" & Hour(t),2) & \":\" & _ \n\ Right(\"0\" & Minute(t),2) & \":\" & _ \n\ Right(\"0\" & Second(t),2) \n\ GetTimeReadable = CStr(strDate) \n\ End Function \n\ "); // - execute script strScriptResult = objScriptControl.Eval(_strCmd); //Trace(strScriptResult) ; // - clean up objScriptControl.ReleaseObject(); objFileSystemObject.ReleaseObject(); return (strScriptResult); } //----------------------------------------------------------- //Get Liquid Class Design History. //Returns arrays with info of the changes: //- o_arr_designHistory_user : User that made the change //- o_arr_designHistory_description : Change description //- o_arr_designHistory_formattedTime: Change time in YYYY-MM-DD HH:MM:SS //- o_arr_designHistory_unixTime : Change time in unix format (days since Jan 1, 1900 00:00:00 GMT) function GetLiquidClassDesignHistory (variable i_liquidClassName , //[in] string, liquid class name variable& o_arr_designHistory_user[], //[out] User that made the change variable& o_arr_designHistory_description[], // Change description variable& o_arr_designHistory_formattedTime[], // Change time in YYYY-MM-DD HH:MM:SS variable& o_arr_designHistory_unixTime[]) // Change time in unix format (days since Jan 1, 1900 00:00:00 GMT) { object objDH; variable arrVals[]; variable arrKeys[]; variable arr_tmp_timestamps[]; variable cItems; variable iItem; object obj2; variable cItems2; variable iItem2; variable arrKeys2[]; variable arrVals2[]; SelectLiquidClass (i_liquidClassName); GetLiquidClassParameter_Object(LIQUIDCLASS_PARAMS::DesignHistory, objDH); arrKeys.SetSize(0); arrVals.SetSize(0); o_arr_designHistory_user.SetSize(0); o_arr_designHistory_description.SetSize(0); o_arr_designHistory_unixTime.SetSize(0); o_arr_designHistory_formattedTime.SetSize(0); objDH.GetItems( arrKeys, arrVals); cItems = arrKeys.GetSize(); for (iItem = 0; iItem < cItems; ++iItem) { obj2 = objDH.Item1(arrKeys.GetAt(iItem)); obj2.GetItems(arrKeys2, arrVals2); cItems2 = arrKeys2.GetSize(); for (iItem2 = 0; iItem2 < cItems2; ++iItem2) { // Trace( iItem2 , ">> Key: " , arrKeys2.GetAt(iItem2) , " Value:", arrVals2.GetAt(iItem2)); if(iItem2==1) o_arr_designHistory_description.AddAsLast(arrVals2.GetAt(iItem2)); if(iItem2==2) o_arr_designHistory_user.AddAsLast(arrVals2.GetAt(iItem2)); if(iItem2==3) { o_arr_designHistory_unixTime.AddAsLast(arrVals2.GetAt(iItem2)); o_arr_designHistory_formattedTime.AddAsLast(FormatDesignHistoryTime(arrVals2.GetAt(iItem2))); } } } arr_tmp_timestamps=o_arr_designHistory_unixTime; Util::Sort(o_arr_designHistory_formattedTime, arr_tmp_timestamps); arr_tmp_timestamps=o_arr_designHistory_unixTime; //Util::Sort( values[], keys[]) .. It sorts by keys. Util::Sort(o_arr_designHistory_user, arr_tmp_timestamps); Util::Sort(o_arr_designHistory_description, o_arr_designHistory_unixTime); //Util2::Debug::TraceArray_4(Translate("Arrays"), o_arr_designHistory_unixTime, o_arr_designHistory_user, o_arr_designHistory_description, o_arr_designHistory_formattedTime); } function GetTADMVolumes( variable i_liquidClassName , //[in] string, liquid class name variable& o_arrayTADM_Asp_Volumes[] , //[In] stepType --> TadmAspirating (-533331728) , TadmDispensing (-533331727) variable& o_arrayTADM_Disp_Volumes[] ){ //[Out] array of TADM volumes object parsObj; variable arrVals[]; variable arrKeys[]; variable cItems; variable iItem; object obj2; variable cItems2; variable iItem2; variable arrKeys2[]; variable arrVals2[]; variable volume; variable aspOrDisp; parsObj.CreateObject("HXPARAMSLib.HxPars"); o_arrayTADM_Asp_Volumes.SetSize(0); o_arrayTADM_Disp_Volumes.SetSize(0); LIQUIDCLASSLib_LiquidClass.GetVolumes(i_liquidClassName, parsObj); arrKeys.SetSize(0); arrVals.SetSize(0); parsObj.GetItems(arrKeys, arrVals); cItems = arrKeys.GetSize(); for (iItem = 0; iItem < cItems; ++iItem) { aspOrDisp = IVal(arrKeys.GetAt(iItem)); //Trace("//// aspOrDisp=", aspOrDisp); obj2 = parsObj.Item1(arrKeys.GetAt(iItem)); obj2.GetItems(arrKeys2, arrVals2); cItems2 = arrKeys2.GetSize(); for (iItem2 = 0; iItem2 < cItems2; ++iItem2) { volume = arrVals2.GetAt(iItem2); if (aspOrDisp == LIQUIDCLASS_PARAMS::TadmAspirateStep){o_arrayTADM_Asp_Volumes.AddAsLast(volume);} if (aspOrDisp == LIQUIDCLASS_PARAMS::TadmDispenseStep){o_arrayTADM_Disp_Volumes.AddAsLast(volume);} //Trace( "item=",iItem , " iItem2=", iItem2 , ">> Key: " , arrKeys2.GetAt(iItem2) , " Value:", arrVals2.GetAt(iItem2)); } } } function GetLiquidNames(variable o_liquidNames[]) { object parsObj; object hxPar; object enumerator; object obj; variable dummyArray[]; parsObj.CreateObject("HXPARAMSLib.HxPars"); LIQUIDCLASSLib_LiquidClass.GetLiquidNames(parsObj); o_liquidNames.SetSize(0); enumerator = parsObj._NewEnum; while (enumerator.EnumNext(hxPar)) { //Trace("TipType=", hxPar.Key, " value=", hxPar.Value); o_liquidNames.AddAsLast(hxPar.Value); hxPar.ReleaseObject(); } //Sort( values[], keys[]) .. It sorts by keys. dummyArray.SetSize(o_liquidNames.GetSize()); Util::Sort(dummyArray, o_liquidNames); } function GetLiqClassChecksum(variable i_liquidClassName, variable o_int_checksum , variable i_bln_trace ){ Check_IsInitialized(); LIQUIDCLASSLib_LiquidClass.GetLiquidClassCheckSum (i_liquidClassName, o_int_checksum); if(i_bln_trace==1){ Trace("Liquid Class = ", i_liquidClassName, " , Checksum=", o_int_checksum); } } } // $$author=Cuevas_A$$valid=0$$time=2021-10-21 14:43$$checksum=9bcb11a0$$length=085$$ ================================================ FILE: pyhamilton/library/HslHamHeaterShakerStringTableEnu.hs_ ================================================ // ====================================================================== // This is the language dependant part of the HSLHamHeaterShaker Library. // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // All rights reserved. // ====================================================================== // // do not translate IDS::helpFileName, "HSLHAMHEATERSHAKERLIB%s.CHM" // // ====================================================================== function StringTable() { // Function names Insert(IDF::CreateStarDevice, "HSLHamHeaterShakerLib - CreateStarDevice"); Insert(IDF::CreateUsbDevice, "HSLHamHeaterShakerLib - CreateUsbDevice"); Insert(IDF::Terminate, "HSLHamHeaterShakerLib - Terminate"); Insert(IDF::StartShaker, "HSLHamHeaterShakerLib - StartShaker"); Insert(IDF::StopShaker, "HSLHamHeaterShakerLib - StopShaker"); Insert(IDF::StartShakerTimed, "HSLHamHeaterShakerLib - StartShakerTimed"); Insert(IDF::WaitForShaker, "HSLHamHeaterShakerLib - WaitForShaker"); Insert(IDF::StartAllShaker, "HSLHamHeaterShakerLib - StartAllShaker"); Insert(IDF::StartAllShakerTimed, "HSLHamHeaterShakerLib - StartAllShakerTimed"); Insert(IDF::StopAllShaker, "HSLHamHeaterShakerLib - StopAllShaker"); Insert(IDF::SetShakerParameter, "HSLHamHeaterShakerLib - SetShakerParameter"); Insert(IDF::GetShakerParameter, "HSLHamHeaterShakerLib - GetShakerParameter"); Insert(IDF::GetShakerSpeed, "HSLHamHeaterShakerLib - GetShakerSpeed"); Insert(IDF::StartTempCtrl, "HSLHamHeaterShakerLib - StartTempCtrl"); Insert(IDF::StopTempCtrl, "HSLHamHeaterShakerLib - StopTempCtrl"); Insert(IDF::WaitForTempCtrl,"HSLHamHeaterShakerLib - WaitForTempCtrl"); Insert(IDF::GetTemperature, "HSLHamHeaterShakerLib - GetTemperature"); Insert(IDF::GetTemperatureState, "HSLHamHeaterShakerLib - GetTemperatureState"); Insert(IDF::SetTempParameter, "HSLHamHeaterShakerLib - SetTempParameter"); Insert(IDF::GetTempParameter, "HSLHamHeaterShakerLib - GetTempParameter"); Insert(IDF::SetPlateLock, "HSLHamHeaterShakerLib - SetPlateLock"); Insert(IDF::GetFirmwareVersion, "HSLHamHeaterShakerLib - GetFirmwareVersion"); Insert(IDF::GetSerialNumber, "HSLHamHeaterShakerLib - GetSerialNumber"); Insert(IDF::BeginMonitoring, "HSLHamHeaterShakerLib - BeginMonitoring"); Insert(IDF::EndMonitoring, "HSLHamHeaterShakerLib - EndMonitoring"); Insert(IDF::SendFirmwareCommand, "HSLHamHeaterShakerLib - SendFirmwareCommand"); Insert(IDF::SetSimulation, "HSLHamHeaterShakerLib - SetSimulation"); Insert(IDF::SetUSBTrace, "HSLHamHeaterShakerLib - SetUSBTrace"); Insert(IDF::Monitoring, "HSLHamHeaterShakerLib - Monitoring"); // Error Insert(IDE::noError, "No error."); Insert(IDE::retErr, "Fatal error"); Insert(IDE::retNotInitErr, "Node not initialized"); Insert(IDE::retNotConnectErr, "Device not connected"); Insert(IDE::canError, "No communication to CAN node."); Insert(IDE::eepromError, "No communication to EEPROM."); Insert(IDE::syntaxCmdError, "Unknown command."); Insert(IDE::syntaxParUnkError, "Unknown parameter."); Insert(IDE::syntaxParRangeError, "Parameter out of range."); Insert(IDE::generalVoltError, "Voltage outside permitted range."); Insert(IDE::generalStopError, "Stop received."); Insert(IDE::generalAddrError, "Wrong system address."); Insert(IDE::parallelError, "Parallel commands are not allowed."); Insert(IDE::shakerInitError, "Shaker initialization failt."); Insert(IDE::shakerNotInitError, "Shaker not initialized."); Insert(IDE::shakerStepLossError, "Shaker step loss."); Insert(IDE::shakerStartModeError, "Shaker is not started with timeout."); Insert(IDE::plateLockInitError, "Plate lock initialization failt."); Insert(IDE::plateLockNotInitError, "Plate lock not initialized."); Insert(IDE::plateLockStepLossError, "Plate lock step loss."); Insert(IDE::tempNotStartError, "Temperature controlling not started."); Insert(IDE::tempTimeoutError, "Timeout of temperature supervision"); Insert(IDE::tempSuperRangeError, "Temperature out of supervision range."); Insert(IDE::tempSecurRangeError, "Temperature out of security range."); Insert(IDE::tempSensorError, "Temperature sensor error"); Insert(IDE::commandSendTimeout, "Time out occured on command ='%s'"); Insert(IDE::unknowFwError, "Unknow firmware error = '%s'"); // no firmware errors Insert(IDE::noStringValue, "Wrong type of parameter; '%s1 ( %s2 )' must be a sting."); Insert(IDE::noIntegerValue, "Wrong type of parameter; '%s1 ( %s2 )' must be a whole number."); Insert(IDE::noDoubleValue, "Wrong type of parameter; '%s1 ( %s2 )' must be a whole or decimal number."); Insert(IDE::neededNodeNotAvailable, "%s1 '%s2' not available."); Insert(IDE::unknownResultFormat, "Unknown format of firmware result string.\r\nExpected: '%s1'.\r\nReceived: '%s2'."); Insert(IDE::wrongParameterLength, "Wrong length of input parameter.\r\nParameter = '%s1' length ( %s2 ).\r\nExpected lenght ( %s3 )."); Insert(IDE::functionNotImplemented, "The called function is not supported."); Insert(IDE::unexpectedFirmwareResponseFormat, "Failed to parse firmware response ('%s1')."); // Message Insert(IDS::traceSource, "SYSTEM"); Insert(IDS::helpFileName, "HslHamHeaterShakerLib%s.chm"); Insert(IDS::sendMessageTitle, "Send message = "); Insert(IDS::receiveMessageTitle, "Received answer = "); Insert(IDS::setSimulate, "Set simulate mode = "); Insert(IDS::starNode, "ML_Star node"); Insert(IDS::usbNode, "USB node"); Insert(IDS::noUsbConnection, "No connection to USB device."); Insert(IDS::parameterOutOfRange, "Parameter out of range; '%s1 ( %s2 )' must be between [%s3..%s4]."); Insert(IDS::neededNodeNotInitialized, "%s1 '%s2' not initialized'."); Insert(IDS::setTrace, "Set USB trace mode = "); Insert(IDS::firmwareVersion, "%s1 '%s2' firmware version = "); Insert(IDS::cannotCreateUsbPort, "USB communication cannot be created."); Insert(IDS::timeoutDuringWaitShaker, "Time out during wait for end shaking. Shaking will be stop."); Insert(IDS::progressSendTo, "Send command to %s1 ( %s2 )."); Insert(IDS::startTimeout, "Start time out = "); Insert(IDS::toleranceRange, "Temperature range = "); Insert(IDS::securityRange, "Security range = "); Insert(IDS::shakingDirection, "Shaking direction = "); Insert(IDS::shakingSpeed, "Shaking speed = "); Insert(IDS::shakingAccRamp, "Shaking acceleration ramp = "); Insert(IDS::sendToStar, "HSLHamHeaterShakerLib::SendToStar"); Insert(IDS::sendToUsb, "HSLHamHeaterShakerLib::SendToUsb"); Insert(IDS::invalidStarDevice, "Parameter 'starDevice' contains an invalid object."); Insert(IDS::invalidDeviceNumber, "Parameter 'deviceNumber' contains an invalid value! \r\nMust be created with function CreateStarDevice() or CreateUsbDevice()"); Insert(IDS::maxHHSReached, "Cannot create the deviceNumber; Maximal count of usable HHS is reached."); Insert(IDS::shakingNotActivated, "Current HHS module on %s1 '%s2' cannot used as shaker."); Insert(IDS::heatingNotActivated, "Current HHS module on %s1 '%s2' cannot used as heater."); Insert(IDS::monitoringShakingTitle, "Current speed (RPM) = "); Insert(IDS::monitoringTempTitle, "Current temperature = "); Insert(IDS::monitoringTempHeatUpTitle, "Current temperature (heating up mode) = "); Insert(IDS::monitoringStateTitle, "Current monitored state = "); Insert(IDS::monitoringWarning, "Warning: "); Insert(IDS::monitoringShNotStart, "Shaking on %s1 ( %s2 ) not started, check of speed limit will be disabled!"); Insert(IDS::monitoringHeNotStart, "Heating up on %s1 ( %s2 ) not started, check of temperature limit will be disabled!"); Insert(IDS::monitoringAbort, "Heating or shaking is out of range; Method will be abort!"); } // $$author=ContainerAdministrator$$valid=1$$time=2025-06-16 22:55$$checksum=7980e45d$$length=099$$ ================================================ FILE: pyhamilton/library/Labware Properties/Labware_Property_Query.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 7/23/2021 11:08:24 PM #pragma global #ifndef HSL_RUNTIME namespace LPQ { function _InitLibrary() { } function _ExitLibrary() { } function ADJUST_AddCarrierToDeckSite( device & Instrument, variable i_str_ConfigFile, variable i_str_NewLabwareID, variable i_int_DeckPosition ) void { } function ADJUST_AddContainerToPosition( device & Instrument, sequence i_seq_LabwareToChange, variable i_str_NewContainerFile, variable i_flt_OffsetX, variable i_flt_OffsetY, variable i_flt_OffsetZ ) void { } function ADJUST_AddContainerToPositions( device & Instrument, sequence i_seq_LabwareToChange, variable i_str_NewContainerFile, variable i_flt_OffsetX, variable i_flt_OffsetY, variable i_flt_OffsetZ ) void { } function ADJUST_ChangeLabwareID( device & Instrument, variable i_str_LabwareID, variable i_str_NewLabID ) void { } function ADJUST_GetCurrentStack( device & Instrument, variable i_str_LabwareNameForStack, variable & o_arr_StackedLabware[] ) void { } function ADJUST_MoveLabwareSite( device & Instrument, sequence i_seq_LabwareToAdjust, variable i_str_NewSiteID ) void { } function ADJUST_MoveLabwareToDeckSite( device & Instrument, variable i_str_Labware, variable i_str_Template, variable i_str_Site ) void { } function ADJUST_OffsetWells( device & Instrument, sequence i_seq_LabwarePositionsToOffset, variable i_flt_X_Offset, variable i_flt_Y_Offset ) void { } function ADJUST_OffsetWells2( device & Instrument, sequence i_seq_LabwarePositionsToOffset, variable i_flt_X_Offset, variable i_flt_Y_Offset, variable i_flt_Z_Offset ) void { } function ADJUST_RotateLabware( device & Instrument, sequence i_seq_LabwarePositionsToOffset, variable i_flt_TargetRotation ) void { } function ADJUST_SetAbsolutePosition( device & Instrument, sequence i_seq_LabwarePositionsToAdjust, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void { } function ADJUST_SetAbsolutePositionForLabwareID( device & Instrument, variable i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void { } function ADJUST_SetProperties( device & Instrument, sequence i_seq_LabwarePositionsToAdjust, variable i_strPropertyKey, variable i_strProperyValue ) void { } function ADJUST_SetPropertiesForLabwareID( device & Instrument, variable i_strLabwareID, variable i_strPropertyKey, variable i_strProperyValue ) void { } function ADJUST_SetRelativePosition( device & Instrument, sequence i_seq_LabwarePositionsToAdjust, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void { } function ADJUST_SetRelativePositionForLabwareID( device & Instrument, variable & i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void { } function ADJUST_StackCreateAtTemplateSite( device & Instrument, variable i_str_ConfigFile, variable i_str_LabwareNameForStack, variable i_str_TemplateID, variable i_str_TemplateSiteID, variable i_int_TotalStack, variable i_int_LabwareType, variable i_bln_LiddedLabware, variable & o_arr_StackedLabware[] ) void { } function ADJUST_StackDecrease( device & Instrument, variable i_str_LabwareNameForStack, variable & o_arr_StackedLabware[] ) void { } function ADJUST_StackIncrease( device & Instrument, variable i_str_LabwareNameForStack, variable & o_str_LabwareID ) void { } function ADJUST_TiltLabware( device & Instrument, sequence i_seq_LabwarePositionsToOffset, variable i_bool_ShiftToDeepestPoint, variable i_flt_TiltAngle, variable i_flt_XOffset, variable i_flt_ZOffset ) void { } function CONT_GetBaseMeasurement( device & Instrument, sequence & i_seq_Labware, variable & o_flt_ContainerBaseThickness, variable & o_flt_ContainerBaseOffset ) void { } function CONT_GetConfigFile( device & Instrument, sequence i_seq_Labware, variable & o_str_ContainerFileName ) void { } function CONT_GetContainerBaseThickness( device & Instrument, sequence i_seq_Labware, variable & o_containerBaseThickness ) void { } function CONT_GetContainerDepth( device & Instrument, sequence i_seq_Labware, variable i_bool_UseDeckCoordinates, variable & o_ContainerDepth, variable & o_ContainerClearanceHeight ) void { } function CONT_GetContainerWidth( device & Instrument, sequence i_seq_Labware, variable & o_flt_ContainerWidth ) void { } function FILE_GetDefinitionFileValue( variable & i_str_ConfigFilePath, variable i_str_ValueToSearch, variable & o_str_Value ) variable { return (0); } function LABWARE_GetCarrierAndSiteID( device & Instrument, sequence i_seq_Labware, variable & o_str_TemplateID, variable & o_str_TemplateSiteID ) void { } function LABWARE_GetCarrierTracks( device & Instrument, sequence i_seq_Labware, variable & o_int_TotalTracks, variable & o_int_LeftMostTrack, variable & o_int_RightMostTrack ) void { } function LABWARE_GetConfigFile( device & Instrument, sequence i_seq_Labware, variable & o_str_ConfigFilePath ) void { } function LABWARE_GetContainerBaseOffset( device & Instrument, sequence i_seq_Labware, variable & o_flt_ContainerBaseOffset ) void { } function LABWARE_GetCurrentPosition( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void { } function LABWARE_GetDescription( device & Instrument, sequence i_seq_Labware, variable & o_str_LabwareDescription ) void { } function LABWARE_GetFirstPosition( device & Instrument, variable i_str_LabID, variable & o_str_PosID ) void { } function LABWARE_GetLabwareCenter( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Center, variable & o_flt_Y_Center ) void { } function LABWARE_GetLabwareLW( device & Instrument, sequence i_seq_Labware, variable & o_flt_Labware_L, variable & o_flt_Labware_W ) void { } function LABWARE_GetLabwareOrigin( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void { } function LABWARE_GetLabwareStackHeight( device & Instrument, sequence i_seq_Labware, variable & o_flt_LabwareStackHeight ) void { } function LABWARE_GetLabwareViewName( device & Instrument, sequence i_seq_Labware, variable & o_str_LabwareViewName ) void { } function LABWARE_GetRackHeight( device & Instrument, sequence i_seq_Labware, variable i_bool_UseDeckCoordinates, variable & o_flt_RackHeight, variable & o_flt_RackClearanceHeight ) void { } function LABWARE_GetRowColumnNumber( device & Instrument, sequence i_seq_Labware, variable & o_int_RowCount, variable & o_int_ColumnCount, variable & o_bool_AlphaNumeric, variable & o_bool_IncrementContainer ) void { } function LABWARE_GetVisibility( device & Instrument, sequence i_seq_Labware, variable & o_bool_LabwareVisibility ) void { } function LABWARE_IsContainersConnected( device & Instrument, sequence i_seq_Labware, variable & o_bool_ConnectedContainer ) void { } function SEQ_GetDefaultSequence( device & Instrument, variable i_str_LabID, variable i_bool_SortByColumn, sequence & o_seq_DefaultSequence ) void { } function SEQ_ReloadSequence( device & Instrument, sequence & io_seq_SequenceToReload ) void { } function TEMPLATE_GetConfigFile( device & Instrument, sequence i_seq_Labware, variable & o_str_ConfigFilePath ) void { } function TEMPLATE_GetConfigFile2( device & Instrument, variable i_str_Labware, variable & o_str_ConfigFilePath ) void { } function TEMPLATE_GetTemplateOrigin( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void { } function TEMPLATE_GetTemplateOrigin2( device & Instrument, variable i_str_TemplateLabID, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void { } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=Bare_B$$valid=0$$time=2021-07-23 23:08$$checksum=48be9e9d$$length=083$$ ================================================ FILE: pyhamilton/library/Labware Properties/Labware_Property_Query.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma global // }} "" #include "HSLStrLib.hsl" #include "HSLMthLib.hsl" #include "HSLSeqLib.hsl" #include "Labware Properties\\Resources\\LPQ_GLOBAL.hsl" #include "HSLDevLib.hsl" #include "HSLExtensions\\File.hsl" #include "Alpha Numeric Conversion\\Alpha Numeric Conversion.hs_" #include "HSLErrLib.hsl" #include "HSLUtilLib.hsl" #include "HSLDeckVisualize.hsl" #include "HSLUtilLib2.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace LPQ { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function ADJUST_AddCarrierToDeckSite( device & Instrument, variable i_str_ConfigFile, variable i_str_NewLabwareID, variable i_int_DeckPosition ) void ; function ADJUST_AddContainerToPosition( device & Instrument, sequence i_seq_LabwareToChange, variable i_str_NewContainerFile, variable i_flt_OffsetX, variable i_flt_OffsetY, variable i_flt_OffsetZ ) void ; function ADJUST_AddContainerToPositions( device & Instrument, sequence i_seq_LabwareToChange, variable i_str_NewContainerFile, variable i_flt_OffsetX, variable i_flt_OffsetY, variable i_flt_OffsetZ ) void ; function ADJUST_ChangeLabwareID( device & Instrument, variable i_str_LabwareID, variable i_str_NewLabID ) void ; function ADJUST_GetCurrentStack( device & Instrument, variable i_str_LabwareNameForStack, variable & o_arr_StackedLabware[] ) void ; function ADJUST_MoveLabwareSite( device & Instrument, sequence i_seq_LabwareToAdjust, variable i_str_NewSiteID ) void ; function ADJUST_MoveLabwareToDeckSite( device & Instrument, variable i_str_Labware, variable i_str_Template, variable i_str_Site ) void ; private function ADJUST_MoveSitesDelta( device & Instrument, variable i_str_Template, variable i_flt_DeltaX, variable i_flt_DeltaY, variable i_flt_DeltaZ ) void ; function ADJUST_OffsetWells( device & Instrument, sequence i_seq_LabwarePositionsToOffset, variable i_flt_X_Offset, variable i_flt_Y_Offset ) void ; function ADJUST_OffsetWells2( device & Instrument, sequence i_seq_LabwarePositionsToOffset, variable i_flt_X_Offset, variable i_flt_Y_Offset, variable i_flt_Z_Offset ) void ; function ADJUST_RotateLabware( device & Instrument, sequence i_seq_LabwarePositionsToOffset, variable i_flt_TargetRotation ) void ; function ADJUST_SetAbsolutePosition( device & Instrument, sequence i_seq_LabwarePositionsToAdjust, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void ; function ADJUST_SetAbsolutePositionForLabwareID( device & Instrument, variable i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void ; function ADJUST_SetProperties( device & Instrument, sequence i_seq_LabwarePositionsToAdjust, variable i_strPropertyKey, variable i_strProperyValue ) void ; function ADJUST_SetPropertiesForLabwareID( device & Instrument, variable i_strLabwareID, variable i_strPropertyKey, variable i_strProperyValue ) void ; function ADJUST_SetRelativePosition( device & Instrument, sequence i_seq_LabwarePositionsToAdjust, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void ; function ADJUST_SetRelativePositionForLabwareID( device & Instrument, variable & i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void ; function ADJUST_StackCreateAtTemplateSite( device & Instrument, variable i_str_ConfigFile, variable i_str_LabwareNameForStack, variable i_str_TemplateID, variable i_str_TemplateSiteID, variable i_int_TotalStack, variable i_int_LabwareType, variable i_bln_LiddedLabware, variable & o_arr_StackedLabware[] ) void ; function ADJUST_StackDecrease( device & Instrument, variable i_str_LabwareNameForStack, variable & o_arr_StackedLabware[] ) void ; function ADJUST_StackIncrease( device & Instrument, variable i_str_LabwareNameForStack, variable & o_str_LabwareID ) void ; function ADJUST_TiltLabware( device & Instrument, sequence i_seq_LabwarePositionsToOffset, variable i_bool_ShiftToDeepestPoint, variable i_flt_TiltAngle, variable i_flt_XOffset, variable i_flt_ZOffset ) void ; function CONT_GetBaseMeasurement( device & Instrument, sequence & i_seq_Labware, variable & o_flt_ContainerBaseThickness, variable & o_flt_ContainerBaseOffset ) void ; function CONT_GetConfigFile( device & Instrument, sequence i_seq_Labware, variable & o_str_ContainerFileName ) void ; function CONT_GetContainerBaseThickness( device & Instrument, sequence i_seq_Labware, variable & o_containerBaseThickness ) void ; function CONT_GetContainerDepth( device & Instrument, sequence i_seq_Labware, variable i_bool_UseDeckCoordinates, variable & o_ContainerDepth, variable & o_ContainerClearanceHeight ) void ; function CONT_GetContainerWidth( device & Instrument, sequence i_seq_Labware, variable & o_flt_ContainerWidth ) void ; function FILE_GetDefinitionFileValue( variable & i_str_ConfigFilePath, variable i_str_ValueToSearch, variable & o_str_Value ) variable ; function LABWARE_GetCarrierAndSiteID( device & Instrument, sequence i_seq_Labware, variable & o_str_TemplateID, variable & o_str_TemplateSiteID ) void ; function LABWARE_GetCarrierTracks( device & Instrument, sequence i_seq_Labware, variable & o_int_TotalTracks, variable & o_int_LeftMostTrack, variable & o_int_RightMostTrack ) void ; function LABWARE_GetConfigFile( device & Instrument, sequence i_seq_Labware, variable & o_str_ConfigFilePath ) void ; function LABWARE_GetContainerBaseOffset( device & Instrument, sequence i_seq_Labware, variable & o_flt_ContainerBaseOffset ) void ; function LABWARE_GetCurrentPosition( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void ; function LABWARE_GetDescription( device & Instrument, sequence i_seq_Labware, variable & o_str_LabwareDescription ) void ; function LABWARE_GetFirstPosition( device & Instrument, variable i_str_LabID, variable & o_str_PosID ) void ; function LABWARE_GetLabwareCenter( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Center, variable & o_flt_Y_Center ) void ; function LABWARE_GetLabwareLW( device & Instrument, sequence i_seq_Labware, variable & o_flt_Labware_L, variable & o_flt_Labware_W ) void ; function LABWARE_GetLabwareOrigin( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void ; function LABWARE_GetLabwareStackHeight( device & Instrument, sequence i_seq_Labware, variable & o_flt_LabwareStackHeight ) void ; function LABWARE_GetLabwareViewName( device & Instrument, sequence i_seq_Labware, variable & o_str_LabwareViewName ) void ; function LABWARE_GetRackHeight( device & Instrument, sequence i_seq_Labware, variable i_bool_UseDeckCoordinates, variable & o_flt_RackHeight, variable & o_flt_RackClearanceHeight ) void ; function LABWARE_GetRowColumnNumber( device & Instrument, sequence i_seq_Labware, variable & o_int_RowCount, variable & o_int_ColumnCount, variable & o_bool_AlphaNumeric, variable & o_bool_IncrementContainer ) void ; function LABWARE_GetVisibility( device & Instrument, sequence i_seq_Labware, variable & o_bool_LabwareVisibility ) void ; function LABWARE_IsContainersConnected( device & Instrument, sequence i_seq_Labware, variable & o_bool_ConnectedContainer ) void ; function SEQ_GetDefaultSequence( device & Instrument, variable i_str_LabID, variable i_bool_SortByColumn, sequence & o_seq_DefaultSequence ) void ; private function SEQ_GetDefaultSequenceForLabware( device & Instrument, variable i_str_LabwareID, sequence & o_seq_DefaultSequence ) void ; function SEQ_ReloadSequence( device & Instrument, sequence & io_seq_SequenceToReload ) void ; function TEMPLATE_GetConfigFile( device & Instrument, sequence i_seq_Labware, variable & o_str_ConfigFilePath ) void ; function TEMPLATE_GetConfigFile2( device & Instrument, variable i_str_Labware, variable & o_str_ConfigFilePath ) void ; function TEMPLATE_GetTemplateOrigin( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void ; function TEMPLATE_GetTemplateOrigin2( device & Instrument, variable i_str_TemplateLabID, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void ; private function _CalcualteOffsetHeight( variable i_flt_WellAngle, variable i_flt_YOffset, variable & o_flt_ZOffset ) void ; private function _CalculateWellAngle( variable i_flt_BottomWellSegment_Height, variable i_flt_BottomWellSegment_TopWidth, variable i_flt_BottomWellSegment_BottomWidth, variable & o_flt_BottomWellSegment_Angle ) void ; private function _ConvertToFloat( variable iVariable, variable & oVariable ) void ; private function _ConvertToInteger( variable iVariable, variable & oVariable ) void ; private function _FunctionError( variable i_str_FunctionName, variable i_str_ErrorDescription ) void ; private function _GetLabwareOrigin( device & Instrument, variable i_str_LabID, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void ; private function _GetLabwareWL( device & Instrument, variable i_str_LabID, variable & o_flt_LabwareWidth, variable & o_flt_LabwareLength ) void ; private function _GetSequencePosition( device & Instrument, sequence i_seq_LabwareSequence, variable & o_str_LabID, variable & o_str_PosID ) variable ; private function _Lookup( variable & array[], variable item ) variable ; private function _RemoveTruncatedSequencePositions( device & Instrument, sequence & io_Sequence ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" ANC::_InitLibrary(); // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" ANC::_ExitLibrary(); // }} "" } // {{{ 5 "_Lookup" "Begin" private function _Lookup( variable & array[], variable item ) variable { // }} "" private variable index; private variable lookupreturn; // {{ 5 "_Lookup" "InitLocals" // }} "" // {{{ 1475 1 0 "bb21371b_12f5_4675_a40eca6fa05d908c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" lookupreturn = Util::Lookup(array, item, index); // }} "" // {{ 1476 1 0 "116d2bcd_7c6a_4bb1_801246bbff09b5fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lookupreturn > 0) { // }} "" // {{ 1477 1 0 "ef916050_81c9_431b_98d54feeedead5f4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" index = index + 1; // }} "" // {{{ 1478 1 0 "9035fe7f_af4f_4f11_b8c424b01ed5b4a2" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (index); // }} "" // {{ 1479 1 0 "116d2bcd_7c6a_4bb1_801246bbff09b5fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1480 1 0 "2d5cdb77_ae42_4a31_b00deefabcda0e60" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (0); // }} "" // {{ 1481 1 0 "116d2bcd_7c6a_4bb1_801246bbff09b5fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "_Lookup" "End" } // }} "" // {{{ 5 "ADJUST_ChangeLabwareID" "Begin" function ADJUST_ChangeLabwareID( device & Instrument, variable i_str_LabwareID, variable i_str_NewLabID ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; // {{ 5 "ADJUST_ChangeLabwareID" "InitLocals" // }} "" // {{ 192 1 0 "2cee2429_3103_4b1b_a016bf500e458cf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 193 1 0 "196594b2_bcde_4322_8df441c075c87f30" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 195 1 0 "71f20b53_66ef_436a_a9ebf71039c7cde6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 196 1 0 "8642197c_fd03_44df_a3ed42dbb392e25a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 197 1 0 "5c906070_eb7e_4ad5_be8b6fd5dbbd1333" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 198 1 0 "7157ca89_882f_4dd9_bd6c9b8fc2f1345c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 199 1 0 "f5b6338a_9ecf_4d26_ac6ec3e2e9b7bd06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 201 1 0 "2cee2429_3103_4b1b_a016bf500e458cf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace("Labware ID: ",i_str_LabwareID," - ","New ID: ",i_str_NewLabID); // {{ 203 1 0 "7cd5868d_3c3c_436a_a75bb6bd99ea34c8" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" { object objDeckLayout; //object objLabware; object objEditDeckLayout8; objDeckLayout = Instrument.GetDeckLayoutObject(); if(!objDeckLayout.IsNull()) { objDeckLayout.GetObject("IEditDeckLayout8", objEditDeckLayout8); objEditDeckLayout8.RenameLabware(i_str_NewLabID,i_str_LabwareID); } objDeckLayout.ReleaseObject(); objEditDeckLayout8.ReleaseObject(); } // {{ 205 1 0 "bc302fce_0178_4994_9cfb2a8f4f7c204b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 207 1 0 "bc302fce_0178_4994_9cfb2a8f4f7c204b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "ADJUST_ChangeLabwareID" "End" } // }} "" // {{{ 5 "ADJUST_MoveLabwareSite" "Begin" function ADJUST_MoveLabwareSite( device & Instrument, sequence i_seq_LabwareToAdjust, variable i_str_NewSiteID ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable str_CurrentTemplate; private variable str_LabID; private variable strFunctionName_Cut; private variable int_Count; private variable str_PosID; private variable bool_SequenceValid; private variable str_CurrentSite; // {{ 5 "ADJUST_MoveLabwareSite" "InitLocals" // }} "" // {{ 218 1 0 "5c1b8fb2_9366_4958_871e0f24853cc09d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 219 1 0 "2f4f6025_483d_4c10_98020df1d6e16c0e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 221 1 0 "ab4db9c7_e622_4dc8_ac1c4bb7f53665e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 222 1 0 "244494ad_df8b_40e4_889a89fc77fe2f53" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 223 1 0 "cb159cbf_dade_46eb_8e1e364140446948" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 224 1 0 "c03ba6c4_b5d7_4c5e_9b837f252a4093b2" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 225 1 0 "df6a27b2_d4cb_46ca_ba078eea3034c463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 227 1 0 "5c1b8fb2_9366_4958_871e0f24853cc09d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 228 1 0 "5a408507_7fdc_4ae0_b980b1a61cc2e6e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 229 1 0 "1a32db8a_e01f_46f7_adec4bede4624ba5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 231 1 0 "4f132fab_a4bb_4b8d_a2a4bc349766325e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_LabwareToAdjust, str_LabID, str_PosID); // }} "" // {{ 232 1 0 "ab34ec23_f650_4a75_860e3cab81895f2c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 233 1 0 "86dd20c3_f433_4af4_bffdda0eda18da3f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 234 1 0 "ab34ec23_f650_4a75_860e3cab81895f2c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 235 1 0 "5a408507_7fdc_4ae0_b980b1a61cc2e6e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 236 1 0 "0864c0c6_de11_4fd2_aff14fe4f918f903" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetCarrierAndSiteID(Instrument, i_seq_LabwareToAdjust, str_CurrentTemplate, str_CurrentSite); // }} "" Trace("Move ",str_LabID," on ",str_CurrentTemplate," from ",str_CurrentSite," to ",i_str_NewSiteID); // {{ 238 1 0 "41b0ecc2_fabc_4e47_bd2c37e9da2d7a7c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" { object objDeckLayout; object objLabware; object objEditDeckLayout8; objDeckLayout = Instrument.GetDeckLayoutObject(); if(!objDeckLayout.IsNull()) { objLabware = objDeckLayout.Labware(str_CurrentTemplate); objLabware.GetObject("ITemplate", objEditDeckLayout8); objEditDeckLayout8.MoveLabware(str_LabID,i_str_NewSiteID); } objDeckLayout.ReleaseObject(); objEditDeckLayout8.ReleaseObject(); objLabware.ReleaseObject(); } // {{ 240 1 0 "7a7a104b_a9d6_42d7_9791294aa1ebdcf7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 242 1 0 "7a7a104b_a9d6_42d7_9791294aa1ebdcf7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "ADJUST_MoveLabwareSite" "End" } // }} "" // {{{ 5 "ADJUST_MoveLabwareToDeckSite" "Begin" function ADJUST_MoveLabwareToDeckSite( device & Instrument, variable i_str_Labware, variable i_str_Template, variable i_str_Site ) void { // }} "" // {{ 5 "ADJUST_MoveLabwareToDeckSite" "InitLocals" // }} "" { object objDeckLayout; object objLabware; object objEditDeckLayout8; object objTemplate; object objEditTemplate; objDeckLayout = Instrument.GetDeckLayoutObject(); if(!objDeckLayout.IsNull()) { objLabware = objDeckLayout.Labware(i_str_Labware); objDeckLayout.GetObject("IEditDeckLayout6", objEditDeckLayout8); objTemplate = objDeckLayout.Labware(i_str_Template); //objTemplate.GetObject("ITemplate",objEditTemplate); objEditDeckLayout8.MoveLabwareToDeckSite(objLabware,i_str_Template,i_str_Site); //objEditDeckLayout8.AddLabwareToDeckSite(objLabware,i_str_Site,i_str_Labware+"1",i_str_Template); //objEditDeckLayout8.BringToFront(i_str_Labware,i_str_Template); } objDeckLayout.ReleaseObject(); objEditDeckLayout8.ReleaseObject(); objLabware.ReleaseObject(); } // {{{ 5 "ADJUST_MoveLabwareToDeckSite" "End" } // }} "" // {{{ 5 "ADJUST_MoveSitesDelta" "Begin" private function ADJUST_MoveSitesDelta( device & Instrument, variable i_str_Template, variable i_flt_DeltaX, variable i_flt_DeltaY, variable i_flt_DeltaZ ) void { // }} "" // {{ 5 "ADJUST_MoveSitesDelta" "InitLocals" // }} "" { object objDeckLayout; object objLabware; object objEditDeckLayout8; objDeckLayout = Instrument.GetDeckLayoutObject(); if(!objDeckLayout.IsNull()) { objLabware = objDeckLayout.Labware(i_str_Template); objLabware.GetObject("ITemplate", objEditDeckLayout8); objEditDeckLayout8.MoveSitesDelta(i_flt_DeltaX,i_flt_DeltaY,i_flt_DeltaZ); } objDeckLayout.ReleaseObject(); objEditDeckLayout8.ReleaseObject(); objLabware.ReleaseObject(); } // {{{ 5 "ADJUST_MoveSitesDelta" "End" } // }} "" // {{{ 5 "ADJUST_OffsetWells" "Begin" function ADJUST_OffsetWells( device & Instrument, sequence i_seq_LabwarePositionsToOffset, variable i_flt_X_Offset, variable i_flt_Y_Offset ) void { // }} "" private variable flt_ContainerXOffset; private variable int_CutNum; private variable flt_ContainerYOffset; private variable str_ContainerFilePath; private variable int_Length; private variable flt_ContainerBottomWidth; private variable int_LabwareCount; private variable flt_Y_Offset; private variable flt_MaximumRadius; private variable strFunctionName; private variable str_SearchValue; private variable flt_WellOffset2; private variable int_LabwareIndex; private variable flt_WellAngle; private variable strFunctionName_Cut; private variable flt_ContainerBaseOffset; private variable str_LabID; private variable flt_ContainerBottomHeight; private variable int_ContainerExists; private variable flt_Z_Offset; private variable flt_WellOffsetSum; private variable str_ShapeValue; private variable int_SegmentCount; private variable str_Return; private variable flt_BottomSegmentRadius; private variable flt_WellOffset; private variable int_Count; private variable bool_SequenceValid; private variable str_PosID; private variable flt_X_Offset; private variable str_LabwareConfigFilePath; private variable flt_ContainerTopWidth; private variable int_ContainerShape; private variable int_Index; private variable int_TotalPositions; private sequence seq_Temp; private variable arr_LabwareIDs[]; // {{ 5 "ADJUST_OffsetWells" "InitLocals" // }} "" // {{ 248 1 0 "fbfae96f_c066_4a9b_93f278c9e7abfb3d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 249 1 0 "49934fdb_81b6_432d_b3221c267bb99a5c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 251 1 0 "04d775cd_ca24_4c0d_8843c46c37f5b944" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 252 1 0 "d80cb9be_1502_4e1c_86411bca708cc0b7" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 253 1 0 "78518aa7_7718_49d0_b1f5616d4b4a6edb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 254 1 0 "b3abac88_f464_4111_9804e9c8ec50e8e8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 255 1 0 "ad3ea817_3b30_4dfa_a2482c7ce7aba9d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 257 1 0 "fbfae96f_c066_4a9b_93f278c9e7abfb3d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 258 1 0 "65c2d403_e923_4865_9491bdcf46739731" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 259 1 0 "3131f664_ef92_4ece_8b1698816417b615" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 261 1 0 "c8d7b9b7_2d47_4e76_aa53384d6283bdec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_LabwarePositionsToOffset, str_LabID, str_PosID); // }} "" // {{ 262 1 0 "1cc425a6_1068_44c9_ab391c4d8e072d6d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 263 1 0 "387f07a3_bea7_4369_9d4f8ebee42f88c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 264 1 0 "1cc425a6_1068_44c9_ab391c4d8e072d6d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 265 1 0 "65c2d403_e923_4865_9491bdcf46739731" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 266 1 0 "71ab9d60_8c47_4b84_860dd229192e5dc6" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 267 1 0 "f63dc81c_c946_4271_a71aa0c961bb7a9e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (LPQ::LABWARE_OFFSET_GLOBAL::BOOL_LIBRARY_INITIALIZED == 0) { // }} "" // {{{ 268 1 0 "8da27293_5d80_4258_8b6c55e1f7c8ed34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LPQ::InitializeVariables(); // }} "" // {{ 269 1 0 "8fbb9c83_4819_4682_b3b9c97988d2f210" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_HEIGHT.SetSize(0); // }} "" // {{ 270 1 0 "70517458_803d_4131_914211ca9a06f6c8" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_WIDTH.SetSize(0); // }} "" // {{ 271 1 0 "2009a3bb_dc69_4d6d_bd08983db8963b44" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_CONFIG_FILE.SetSize(0); // }} "" // {{ 272 1 0 "0c2ee69b_cb9f_466c_aa5e8741e8e5bf88" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_SHAPE.SetSize(0); // }} "" // {{ 273 1 0 "b71ea40c_f3e4_41df_91c1070eb6e02529" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_TOP_WIDTH.SetSize(0); // }} "" // {{ 274 1 0 "1ed85fee_d5c6_45ed_82eb8865122769fc" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_BASE_OFFSET.SetSize(0); // }} "" // {{ 275 1 0 "2ca1ed57_0ddf_4f8e_95dded06099d52fe" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_X_OFFSET.SetSize(0); // }} "" // {{ 276 1 0 "02fbd606_6d54_47c2_8ff6a7cdb16fae66" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_Y_OFFSET.SetSize(0); // }} "" // {{ 277 1 0 "c6179e98_f60d_4ae6_aab202b9132ae431" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" LPQ::LABWARE_OFFSET_GLOBAL::BOOL_LIBRARY_INITIALIZED = 1; // }} "" // {{ 278 1 0 "f63dc81c_c946_4271_a71aa0c961bb7a9e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 279 1 0 "889c671a_5f04_4b18_a3085253cfc8ac1d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(Instrument, i_seq_LabwarePositionsToOffset); // }} "" // {{{ 280 1 0 "dec35e49_6dc4_49c3_baa0ea38514a40a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqGetLabwareIds(i_seq_LabwarePositionsToOffset, arr_LabwareIDs); // }} "" // {{ 281 1 0 "122e2ea7_0bf8_4a13_b7f7348ae95b1ef4" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_LabwareCount=arr_LabwareIDs.GetSize(); // }} "" // {{ 282 1 0 "6e759a3f_967c_489e_b37108f9c9b89331" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_LabwareIndex = 0; int_LabwareIndex < int_LabwareCount;) { int_LabwareIndex = int_LabwareIndex + 1; // }} "" // {{ 283 1 0 "681dba95_7d88_453d_b1cda2ce6f6ceda0" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_LabID=arr_LabwareIDs.GetAt(int_LabwareIndex-1); // }} "" // {{{ 284 1 0 "4694e3e2_0e24_42de_b556fbc4e8a68c33" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SEQ_GetDefaultSequence(Instrument, str_LabID, 1, seq_Temp); // }} "" // {{{ 285 1 0 "bf63b1eb_518d_427b_86d1cd5207fac1aa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetPositionCountForCurrLabware(i_seq_LabwarePositionsToOffset); // }} "" Trace("Total Positions: ",int_TotalPositions); // {{{ 287 1 0 "4f0b083a_aa8e_4001_8857a839f7d3be66" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetConfigFile(Instrument, seq_Temp, str_LabwareConfigFilePath); // }} "" // {{{ 288 1 0 "b9799f64_50a4_41ce_ab8604716f0bb6d6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" CONT_GetConfigFile(Instrument, seq_Temp, str_ContainerFilePath); // }} "" // {{ 289 1 0 "d9f72a91_c460_4e1c_b3127681e0f0996d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_Index = 0; int_Index < int_TotalPositions;) { int_Index = int_Index + 1; // }} "" // {{ 290 1 0 "26acc018_d843_4e31_8d377709358c06af" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 291 1 0 "c3d9c036_caae_4a92_a4b26ae0afe01414" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 292 1 0 "3ca53111_5eee_4cd3_9f758b29e31e3c81" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Offset = 0.0; // }} "" // {{ 293 1 0 "e6fde6ed_cf8a_4e35_8edde67f88b9bc65" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_WellOffset = 0.0; // }} "" // {{ 294 1 0 "044077c3_e413_4d22_b5c56d00ab7dc2a0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_WellOffsetSum = 0.0; // }} "" // {{ 295 1 0 "c23e4716_f266_44b5_815e33f6e328a8b5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_X_Offset = i_flt_X_Offset; // }} "" // {{ 296 1 0 "f1514edc_4aff_403f_96f18b3dcac41280" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Offset = i_flt_Y_Offset; // }} "" // {{ 297 1 0 "3dffa116_f0ec_4808_94720cb3d90417fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_X_Offset < 0) { // }} "" // {{ 298 1 0 "10675977_297a_4831_97a40e47603095a4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_X_Offset = flt_X_Offset * -1; // }} "" // {{ 299 1 0 "3dffa116_f0ec_4808_94720cb3d90417fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 300 1 0 "85e43a24_369a_49d3_bdb2b1f8fc382862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Y_Offset < 0) { // }} "" // {{ 301 1 0 "a666efaf_de3d_4fe2_ae67730376e8f286" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Offset = flt_Y_Offset * -1; // }} "" // {{ 302 1 0 "85e43a24_369a_49d3_bdb2b1f8fc382862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" flt_X_Offset = flt_X_Offset^2; flt_Y_Offset = flt_Y_Offset^2; flt_WellOffsetSum = flt_X_Offset + flt_Y_Offset; // {{{ 304 1 0 "b1bb7e2a_2dec_455e_ad2bf33c4977f489" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_WellOffset = MthPow(flt_WellOffsetSum, 0.5); // }} "" // {{{ 305 1 0 "17c8a6f4_3898_42c9_bf42bdb75b79af44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_WellOffset2 = MthRound(flt_WellOffset, 1); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Well Offset 2: ",flt_WellOffset2); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 307 1 0 "26acc018_d843_4e31_8d377709358c06af" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 308 1 0 "7ab65959_d602_4126_ab5ea6344678d5f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_LabwarePositionsToOffset); // }} "" // {{{ 309 1 0 "de95df99_a1de_47a3_8fcf201367a3d133" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_LabwarePositionsToOffset); // }} "" // {{{ 310 1 0 "ff404ea8_835a_4852_8577b4f35905e270" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" int_ContainerExists = _Lookup(LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_CONFIG_FILE, str_ContainerFilePath); // }} "" // {{ 311 1 0 "476aa229_ff70_413e_b53203361f342a56" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerExists == 0) { // }} "" // {{ 312 1 0 "70b71bfd_5685_42b3_82b5236120685752" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 313 1 0 "f962b7d0_4020_4393_84521a669583e7f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_LabwareConfigFilePath, Translate("Cntr.1.offsetx"), str_Return); // }} "" // {{{ 314 1 0 "ff67bc38_051a_4af9_847c314f8432eac9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerXOffset); // }} "" // {{ 315 1 0 "6789ac15_4fb6_49dc_bdcfb081ba2dc3ee" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 316 1 0 "a0795556_eb94_498c_b0c0681707f1ad59" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_LabwareConfigFilePath, Translate("Cntr.1.offsety"), str_Return); // }} "" // {{{ 317 1 0 "db7a74ef_645f_481c_abd11bd45ce82825" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerYOffset); // }} "" // {{ 318 1 0 "a3af9bfd_0251_43cd_8ee7bf6f7761d88e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 319 1 0 "5c7ccdde_0b81_49cf_aea3b9f7ba22309a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_LabwareConfigFilePath, Translate("Cntr.1.base"), str_Return); // }} "" // {{{ 320 1 0 "7a5a5326_a8dd_40b1_a874e32594f62ce3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBaseOffset); // }} "" // {{ 321 1 0 "dc283901_5bbd_411e_b5d733412af4943d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 322 1 0 "a0182bfe_8af0_4a8b_8f016d7fe569205c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, Translate("Segments"), str_Return); // }} "" // {{{ 323 1 0 "05b82791_881a_4a9b_a3243522f207069d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(str_Return, int_SegmentCount); // }} "" // {{ 324 1 0 "35512f8c_16b9_4d3b_a0440c043eb00241" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 325 1 0 "ed140507_5593_4cfe_a21dedc0fda4728e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ShapeValue = StrConcat2(int_SegmentCount, Translate(".Shape")); // }} "" // {{{ 326 1 0 "5ff40fb7_6ca9_4145_8ec703e5ddd74ff6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_ShapeValue, str_Return); // }} "" // {{{ 327 1 0 "c697fb15_4774_44a3_a5723b41a66e3933" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(str_Return, int_ContainerShape); // }} "" // {{ 328 1 0 "9bd56445_ca3b_49e8_aadc7a18b73780ed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 329 1 0 "beefe11a_70ec_4555_96e5e0ff3bd649a9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 0) { // }} "" // {{ 330 1 0 "6c3ac7f8_eb54_455c_baa5191f5cf64a23" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 331 1 0 "f3dd1a2f_394a_422f_aea3acf8f3b89125" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".DY")); // }} "" // {{{ 332 1 0 "9148f1ea_d407_430e_80cf30198daf6f9e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 333 1 0 "be8e84ad_4ff2_4a27_826928068e7b4302" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerTopWidth); // }} "" // {{{ 334 1 0 "8aed86ed_ca1b_4e02_9850f554fd3dcfc5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".DY")); // }} "" // {{{ 335 1 0 "89c51f82_1a22_4542_9dab53c61b6bee03" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 336 1 0 "c5d6f6f4_859f_494c_9dfeba14aa0b3daa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBottomWidth); // }} "" // {{{ 337 1 0 "c802d61e_949a_4a3e_a3176904c4785257" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".Max")); // }} "" // {{{ 338 1 0 "407068bc_1ae9_4348_b5d8b4ff8f0f82a9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 339 1 0 "878afeab_b048_4cb3_a86c3defae33a74a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBottomHeight); // }} "" // {{ 340 1 0 "beefe11a_70ec_4555_96e5e0ff3bd649a9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 341 1 0 "8b127817_6b69_4197_ab2d787432de4162" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 1) { // }} "" // {{ 342 1 0 "895975c7_c04a_4140_9651885b0af6fb2c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 343 1 0 "1feb99db_4f66_42e4_acc6bb26eef13d9a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".DX")); // }} "" // {{{ 344 1 0 "39ff8ba4_dd38_4b53_9d01f0483b3dad86" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 345 1 0 "bdda5af5_0157_491f_b7240e8d11b34359" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerTopWidth); // }} "" // {{{ 346 1 0 "5bb1be3e_f619_4465_9ef9d2e1568ec2c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".DY")); // }} "" // {{{ 347 1 0 "0ccafae6_e1c2_4650_a911fc24ca700f80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 348 1 0 "abc743fb_7759_4c6e_b30e52be0d612999" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBottomWidth); // }} "" // {{{ 349 1 0 "c5c13c1e_3fe2_41e1_95bcb017fd436e36" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".Max")); // }} "" // {{{ 350 1 0 "54119794_270c_4c3c_b1a808b698042e0b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 351 1 0 "c1cc5973_e7b7_43dd_87867cd58b8fefa8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBottomHeight); // }} "" // {{ 352 1 0 "8b127817_6b69_4197_ab2d787432de4162" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 353 1 0 "4e249b1d_7d64_4017_bd7cf38929556d22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 2) { // }} "" // {{ 354 1 0 "cfb52732_51f0_4021_828501c4ff6f2d40" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 355 1 0 "befc4e15_b3d3_435a_b839daad189684bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".DX")); // }} "" // {{{ 356 1 0 "3275448f_4e85_44bd_a8f226f11e6ae8ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 357 1 0 "01d1edba_2efa_4fff_8ff86790c0028b8d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerTopWidth); // }} "" // {{{ 358 1 0 "3d1ed2f7_7240_4476_b1f8a6783b2ffca1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".DY")); // }} "" // {{{ 359 1 0 "7ece013c_3722_4628_ba612dbfadeeba12" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 360 1 0 "9dcc6826_debf_42d5_98ca064f2ef640ac" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBottomWidth); // }} "" // {{{ 361 1 0 "8b07efab_2f4d_4545_8ebb38d901109aec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".Max")); // }} "" // {{{ 362 1 0 "d3120271_452e_4fd2_9bac94ad7fafbcff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 363 1 0 "6aebb40f_500e_4072_a2d75929d87cd344" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBottomHeight); // }} "" // {{ 364 1 0 "4e249b1d_7d64_4017_bd7cf38929556d22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 365 1 0 "9e4403d8_3090_438a_b98bda59dd75885e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 3) { // }} "" // {{ 366 1 0 "d0f1de1d_e742_4d09_b1b9d5aed2814a58" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 367 1 0 "575bfcb1_95f6_466e_97ffaba7921e1b78" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".DX")); // }} "" // {{{ 368 1 0 "4d99fce1_ac17_44be_b78690365bc70ecc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 369 1 0 "9f4e07ce_1ce3_4b80_be30ec105c657c90" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerTopWidth); // }} "" // {{{ 370 1 0 "84806990_7bda_48a9_a03506fa2b97f1af" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".DY")); // }} "" // {{{ 371 1 0 "0a4a566d_b1cd_4a1f_9034f401c3178973" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 372 1 0 "c282e462_4e06_413d_aabf09566f0bd609" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBottomWidth); // }} "" // {{{ 373 1 0 "a532d8b1_2f9c_45c3_affa9b9ee78a41d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".Max")); // }} "" // {{{ 374 1 0 "11d3f07f_a682_4491_a8c7a70ef4c73dad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 375 1 0 "78ee2ab9_d77a_44e1_8d5f068d881b2fce" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBottomHeight); // }} "" // {{ 376 1 0 "9e4403d8_3090_438a_b98bda59dd75885e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 377 1 0 "9177526b_9e5e_4e9b_816911075adfa409" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 4) { // }} "" // {{ 378 1 0 "9fd606c5_1669_493a_bb25e96aef443514" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 379 1 0 "e7b27095_7f88_44de_888fda4b81c6966a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".DX")); // }} "" // {{{ 380 1 0 "6f376f5d_1a83_40d0_84fa9e2c19fdb809" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 381 1 0 "e3fb116f_1dcb_4e01_a51b5c63963f5360" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerTopWidth); // }} "" // {{ 382 1 0 "9449bf42_b6d2_4171_8c6c72d208cb5b83" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_ContainerBottomWidth = 0.0; // }} "" // {{{ 383 1 0 "5002e177_8c75_4ec5_aa7b3b213c97fe4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".Max")); // }} "" // {{{ 384 1 0 "66cc1ac8_c30b_490a_b587ff10b9754e93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 385 1 0 "2209bf91_a6b6_4e11_a25a12cf1d31d0a7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBottomHeight); // }} "" // {{ 386 1 0 "9177526b_9e5e_4e9b_816911075adfa409" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 387 1 0 "486a6ed5_3e45_484c_ab0243448c195891" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 5) { // }} "" // {{ 388 1 0 "2c3fce65_f8ee_4c16_a32a8609e8b5059a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 389 1 0 "cff3a409_4f95_493e_80079b6b054c2ebe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".DX")); // }} "" // {{{ 390 1 0 "098b644b_474a_47fb_b5ac921adf9e99d4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 391 1 0 "3fac5e6b_6b79_4968_9b91f08e6c1753ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerTopWidth); // }} "" // {{ 392 1 0 "154524f4_2432_44fe_a77217a0c1cb8639" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_ContainerBottomWidth = 0.0; // }} "" // {{{ 393 1 0 "314cbaca_24a7_43e6_b59cdba010e43a39" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".Max")); // }} "" // {{{ 394 1 0 "3ef92cc8_9092_4e94_a03ac1b3968daae7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 395 1 0 "2200e1b7_a52c_43ce_b22a2105bc46c51d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBottomHeight); // }} "" // {{ 396 1 0 "486a6ed5_3e45_484c_ab0243448c195891" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 397 1 0 "9bd56445_ca3b_49e8_aadc7a18b73780ed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 398 1 0 "53e58ef1_7386_4d27_8317578d81f77c5e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_SHAPE.AddAsLast(int_ContainerShape); // }} "" // {{ 399 1 0 "31b6f7d3_3e76_47c4_bd5ff40498515a85" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_CONFIG_FILE.AddAsLast(str_ContainerFilePath); // }} "" // {{ 400 1 0 "9f813675_eb56_4aed_a85a828519a40368" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_TOP_WIDTH.AddAsLast(flt_ContainerTopWidth); // }} "" // {{ 401 1 0 "ef2ca633_0c7e_424d_bed823b0c90047b6" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_WIDTH.AddAsLast(flt_ContainerBottomWidth); // }} "" // {{ 402 1 0 "82ad2ff4_3734_40f1_a1a85aa3edf04025" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_HEIGHT.AddAsLast(flt_ContainerBottomHeight); // }} "" // {{ 403 1 0 "00111d6e_5c45_4585_b61e456a799cab06" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_BASE_OFFSET.AddAsLast(flt_ContainerBaseOffset); // }} "" // {{ 404 1 0 "93fabb8f_02cf_418e_88050ed3e5eb5e7e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_X_OFFSET.AddAsLast(flt_ContainerXOffset); // }} "" // {{ 405 1 0 "3c7b6ab0_28b4_426a_bc32e16ae75a3e5f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_Y_OFFSET.AddAsLast(flt_ContainerYOffset); // }} "" // {{ 406 1 0 "476aa229_ff70_413e_b53203361f342a56" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 407 1 0 "695b91d7_aa45_4d9a_a9c0b9011ee83f91" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" int_ContainerShape=LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_SHAPE.GetAt(int_ContainerExists-1); // }} "" // {{ 408 1 0 "677a1514_bcda_4a84_bb5d7fb5f6412bd9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_ContainerFilePath=LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_CONFIG_FILE.GetAt(int_ContainerExists-1); // }} "" // {{ 409 1 0 "9d4ae617_e241_4d10_98b46c498d042af9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ContainerTopWidth=LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_TOP_WIDTH.GetAt(int_ContainerExists-1); // }} "" // {{ 410 1 0 "21dcc4ba_427f_4f37_9e5d6657efe48f03" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ContainerBottomWidth=LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_WIDTH.GetAt(int_ContainerExists-1); // }} "" // {{ 411 1 0 "688782d7_7837_49ed_b76aff88b8df92ac" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ContainerBottomHeight=LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_HEIGHT.GetAt(int_ContainerExists-1); // }} "" // {{ 412 1 0 "ac5ad8ff_f196_4310_b36cfc267e16cf76" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ContainerBaseOffset=LPQ::LABWARE_OFFSET_GLOBAL::ARR_BASE_OFFSET.GetAt(int_ContainerExists-1); // }} "" // {{ 413 1 0 "9179a8e7_7da6_44d2_a11d5f01566cd0d0" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ContainerXOffset=LPQ::LABWARE_OFFSET_GLOBAL::ARR_X_OFFSET.GetAt(int_ContainerExists-1); // }} "" // {{ 414 1 0 "7c8ab5e5_6ad1_41e6_9a279cb80ca766dd" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ContainerYOffset=LPQ::LABWARE_OFFSET_GLOBAL::ARR_Y_OFFSET.GetAt(int_ContainerExists-1); // }} "" // {{ 415 1 0 "476aa229_ff70_413e_b53203361f342a56" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 416 1 0 "98d36492_1c8f_44c8_96a335b601b0fcd3" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_MaximumRadius = flt_ContainerTopWidth / (2 * 1.0); // }} "" // {{ 417 1 0 "5d4dbb02_7ebf_4ce0_91faa762e68be7e5" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 418 1 0 "91b73aff_5a61_4628_883a017946ae40ec" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_WellOffset2 > flt_MaximumRadius) { // }} "" // {{ 419 1 0 "00bd5229_e329_4ba4_bcd0cdda523b6748" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_WellOffset2 = flt_MaximumRadius; // }} "" // {{ 420 1 0 "91b73aff_5a61_4628_883a017946ae40ec" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 421 1 0 "26e63cae_7332_4653_a583b3a9022abd38" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_BottomSegmentRadius = flt_ContainerBottomWidth / (2 * 1.0); // }} "" // {{ 422 1 0 "9f5b7565_4e92_4d72_b42de948b805ecec" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_WellOffset = flt_WellOffset2 - flt_BottomSegmentRadius; // }} "" // {{ 423 1 0 "2695ed8e_6b92_424c_a769090611903f1a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_WellOffset < 0) { // }} "" // {{ 424 1 0 "601272b0_8b93_44c6_ac37a31d23ec983f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_WellOffset = 0.0; // }} "" // {{ 425 1 0 "2695ed8e_6b92_424c_a769090611903f1a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 426 1 0 "a02365a8_2dc4_4ba2_bc5f7427eeb34bd6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 427 1 0 "74bba43a_0d4e_4b58_ad3eee7313d77638" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 3) { // }} "" // {{{ 428 1 0 "93ee2f5b_f2b2_4ee8_8e5ca984fd4ae2c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _CalculateWellAngle(flt_ContainerBottomHeight, flt_ContainerTopWidth, flt_ContainerBottomWidth, flt_WellAngle); // }} "" // {{{ 429 1 0 "90e59882_165e_4d69_80abbdfa31314326" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _CalcualteOffsetHeight(flt_WellAngle, flt_WellOffset, flt_Z_Offset); // }} "" // {{ 430 1 0 "74bba43a_0d4e_4b58_ad3eee7313d77638" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 431 1 0 "c373a39b_220c_4ca4_8243540320e221b8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 4) { // }} "" // {{{ 432 1 0 "8bf6d18f_7e8f_4aac_87aaf4c0106fa6a2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _CalculateWellAngle(flt_ContainerBottomHeight, flt_ContainerTopWidth, flt_ContainerBottomWidth, flt_WellAngle); // }} "" // {{{ 433 1 0 "71ecebe8_816e_46c9_95477a07cf86dbfe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _CalcualteOffsetHeight(flt_WellAngle, flt_WellOffset, flt_Z_Offset); // }} "" // {{ 434 1 0 "c373a39b_220c_4ca4_8243540320e221b8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 435 1 0 "60668be0_ca95_4aea_893915f3ae2e1af3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 5) { // }} "" // {{{ 436 1 0 "57c1604c_b340_4e30_ab80cdcfcf74406e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _CalculateWellAngle(flt_ContainerBottomHeight, flt_ContainerTopWidth, flt_ContainerBottomWidth, flt_WellAngle); // }} "" // {{{ 437 1 0 "326d315d_0862_4f17_a973884ae59c4391" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _CalcualteOffsetHeight(flt_WellAngle, flt_WellOffset, flt_Z_Offset); // }} "" // {{ 438 1 0 "60668be0_ca95_4aea_893915f3ae2e1af3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 439 1 0 "a02365a8_2dc4_4ba2_bc5f7427eeb34bd6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace("Lab ID: ",str_LabID," Pos ID: ",str_PosID," X Offset: ",i_flt_X_Offset," Y Offset: ",i_flt_Y_Offset," Z Offset: ",flt_Z_Offset); // {{ 441 1 0 "4f9c4dad_442a_4aca_a65a8344f8cb2b15" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_X_Offset = i_flt_X_Offset + flt_ContainerXOffset; // }} "" // {{ 442 1 0 "80038118_23d2_4bc1_94f5fb6a59934860" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Offset = i_flt_Y_Offset + flt_ContainerYOffset; // }} "" // {{ 443 1 0 "25469874_b2b8_4f4d_932f550e395cd7d9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Offset = flt_Z_Offset + flt_ContainerBaseOffset; // }} "" // {{{ 444 1 0 "afbc963e_331b_4dd4_a2e24236d757642b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevAddContainerToRack(Instrument, str_LabID, str_PosID, str_ContainerFilePath, flt_X_Offset, flt_Y_Offset, flt_Z_Offset); // }} "" // {{{ 445 1 0 "e9085318_f954_43b7_96c2f2155d0d4cf1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(i_seq_LabwarePositionsToOffset, 1); // }} "" // {{ 446 1 0 "d9f72a91_c460_4e1c_b3127681e0f0996d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 447 1 0 "6e759a3f_967c_489e_b37108f9c9b89331" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 448 1 0 "5c3625c1_b2f2_4a69_ae2122e1d87d520a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 450 1 0 "5c3625c1_b2f2_4a69_ae2122e1d87d520a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "ADJUST_OffsetWells" "End" } // }} "" // {{{ 5 "ADJUST_OffsetWells2" "Begin" function ADJUST_OffsetWells2( device & Instrument, sequence i_seq_LabwarePositionsToOffset, variable i_flt_X_Offset, variable i_flt_Y_Offset, variable i_flt_Z_Offset ) void { // }} "" private variable flt_ContainerXOffset; private variable int_CutNum; private variable flt_ContainerYOffset; private variable str_ContainerFilePath; private variable int_Length; private variable i; private variable flt_Y_Offset; private variable int_LabwareCount; private variable flt_ContainerBottomWidth; private variable strFunctionName; private variable str_SearchValue; private variable int_LabwareIndex; private variable strFunctionName_Cut; private variable flt_ContainerBaseOffset; private variable flt_ContainerBottomHeight; private variable str_LabID; private variable int_ContainerExists; private variable flt_Z_Offset; private variable str_ShapeValue; private variable int_SegmentCount; private variable str_Return; private variable int_Count; private variable bool_SequenceValid; private variable str_PosID; private variable flt_X_Offset; private variable flt_ContainerTopWidth; private variable int_ContainerShape; private variable str_LabwareConfigFilePath; private variable int_TotalPositions; private sequence seq_Temp; private variable arr_LabwareIDs[]; // {{ 5 "ADJUST_OffsetWells2" "InitLocals" // }} "" // {{ 452 1 0 "6fa09d08_4e2b_4904_bded0020ee43ff69" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 453 1 0 "c896cfeb_ed36_450b_be91f48460c0e276" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 455 1 0 "5788eb8e_1b40_452a_a0286170ce880bce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 456 1 0 "ecd06868_4c81_4b27_86246e73a2dde830" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 457 1 0 "994366c5_6a60_4e20_a99ecdd60494e547" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 458 1 0 "67797f96_e89d_403d_a558708b79284282" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 459 1 0 "1ff06218_7143_493a_821a728b18aa4261" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 461 1 0 "6fa09d08_4e2b_4904_bded0020ee43ff69" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 462 1 0 "aecf7d64_96f1_4bc3_a5de0aa797f2ada0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 463 1 0 "088aedf4_3bf4_4814_b04567ed81746b7d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 465 1 0 "83de41c5_877e_4107_9058b65c44c9354f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_LabwarePositionsToOffset, str_LabID, str_PosID); // }} "" // {{ 466 1 0 "eccc8dea_8cdf_4c8b_bc6ee5e6bc8eca9f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 467 1 0 "a78e2137_5c84_47f6_b0e75e00d60b6431" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 468 1 0 "eccc8dea_8cdf_4c8b_bc6ee5e6bc8eca9f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 469 1 0 "aecf7d64_96f1_4bc3_a5de0aa797f2ada0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 470 1 0 "38ecec3d_4076_4aa1_be4c547cc4ce3b71" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(Instrument, i_seq_LabwarePositionsToOffset); // }} "" // {{ 471 1 0 "c5640046_d854_449e_ae1f52556f4d1b37" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 472 1 0 "c1f477eb_0327_4715_818cb7c33c24b7c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (LPQ::LABWARE_OFFSET_GLOBAL::BOOL_LIBRARY_INITIALIZED == 0) { // }} "" // {{{ 473 1 0 "042602fd_2dc6_4f3d_931a510cbc7655f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LPQ::InitializeVariables(); // }} "" // {{ 474 1 0 "898a62d8_1b17_435a_839fa26f3befefac" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_HEIGHT.SetSize(0); // }} "" // {{ 475 1 0 "18ac20ea_fde1_44cb_81c22dbced46b27a" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_WIDTH.SetSize(0); // }} "" // {{ 476 1 0 "2bd91015_4b3e_4c54_bf422fe17d5971c2" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_CONFIG_FILE.SetSize(0); // }} "" // {{ 477 1 0 "c3653fc8_450c_443c_a6f9f49a2f34d334" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_SHAPE.SetSize(0); // }} "" // {{ 478 1 0 "3baa1a5a_1171_460d_95a7ff533b1ee094" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_TOP_WIDTH.SetSize(0); // }} "" // {{ 479 1 0 "5d4915f5_c2ba_4583_852f14715ee13737" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_BASE_OFFSET.SetSize(0); // }} "" // {{ 480 1 0 "1dc03e99_d4cc_4ed1_824214a248ad32ae" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_X_OFFSET.SetSize(0); // }} "" // {{ 481 1 0 "ebae8f64_2c2e_46cb_94f3028a523a5904" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_Y_OFFSET.SetSize(0); // }} "" // {{ 482 1 0 "b31636a4_91bd_477e_993db97eab0924c1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" LPQ::LABWARE_OFFSET_GLOBAL::BOOL_LIBRARY_INITIALIZED = 1; // }} "" // {{ 483 1 0 "c1f477eb_0327_4715_818cb7c33c24b7c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 484 1 0 "0959a9ad_55cc_4d62_91b19defbc59c767" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(i_seq_LabwarePositionsToOffset); // }} "" // {{{ 485 1 0 "0bb1cdc9_0499_4f3c_a2cd40169b755a73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqGetLabwareIds(i_seq_LabwarePositionsToOffset, arr_LabwareIDs); // }} "" // {{ 486 1 0 "b84c9a93_4c0f_49b7_84aab30514f6e6a4" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_LabwareCount=arr_LabwareIDs.GetSize(); // }} "" // {{ 487 1 0 "36c5d0e4_f540_4874_8a258a4f0068c9c4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_LabwareIndex = 0; int_LabwareIndex < int_LabwareCount;) { int_LabwareIndex = int_LabwareIndex + 1; // }} "" // {{ 488 1 0 "603d401a_b38f_4bf9_ac2fd32b150e18fe" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_LabID=arr_LabwareIDs.GetAt(int_LabwareIndex-1); // }} "" // {{{ 489 1 0 "acae7d5b_5512_4185_850abdbe6429f9a9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SEQ_GetDefaultSequence(Instrument, str_LabID, 1, seq_Temp); // }} "" // {{{ 490 1 0 "b22f1c72_a680_468b_88150d218c4ecf13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetPositionCountForCurrLabware(i_seq_LabwarePositionsToOffset); // }} "" // {{{ 491 1 0 "4dc1cb00_42a2_467b_bc329bd6bce07beb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetConfigFile(Instrument, seq_Temp, str_LabwareConfigFilePath); // }} "" // {{{ 492 1 0 "458b7d42_8102_48f1_b3295f5375236ca9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" CONT_GetConfigFile(Instrument, seq_Temp, str_ContainerFilePath); // }} "" Trace("Total Positions: ",int_TotalPositions); // {{ 494 1 0 "06dde8b4_c2ff_445b_9b05f957fb7899d1" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalPositions;) { i = i + 1; // }} "" // {{ 495 1 0 "ad2d2188_d9f0_4a57_92e65975c723bdae" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Offset = 0.0; // }} "" // {{{ 496 1 0 "8ee6d559_7cfa_486b_a9e6a159cfcd8900" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_LabwarePositionsToOffset); // }} "" // {{{ 497 1 0 "f09d01e8_dc71_48fc_aef7197eda648c1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_LabwarePositionsToOffset); // }} "" // {{{ 498 1 0 "a35d0586_3566_414e_983d19b4c51b3481" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" int_ContainerExists = _Lookup(LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_CONFIG_FILE, str_ContainerFilePath); // }} "" // {{ 499 1 0 "2a112a2a_db3a_4db8_8593a84953c9d08f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerExists == 0) { // }} "" // {{ 500 1 0 "3762d1a6_f079_4b64_add29bed0b06c5b0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 501 1 0 "164cc805_2194_4a22_868e3a93e051b3e8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ShapeValue = StrConcat2(int_SegmentCount, Translate(".Shape")); // }} "" // {{{ 502 1 0 "0bace9f3_a3e7_4634_909ebaa826d09529" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_ShapeValue, str_Return); // }} "" // {{{ 503 1 0 "d6fc946f_cb46_4794_b3a3d3a76db6df89" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(str_Return, int_ContainerShape); // }} "" // {{ 504 1 0 "d983efdb_2beb_41a7_949ac1479ef21beb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 505 1 0 "70d403e5_96f0_4bbd_9f63cf66d68ec737" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 0) { // }} "" // {{ 506 1 0 "86a7f8fd_60e6_4af0_ad8e5b9140507ae5" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 507 1 0 "77007da6_23ba_4685_b7ee032d51399697" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".DY")); // }} "" // {{{ 508 1 0 "462dac62_41af_464b_a9961a4d27be375a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 509 1 0 "550b8751_46f8_4dcf_a73d4c8b0e41eddc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerTopWidth); // }} "" // {{{ 510 1 0 "63fb3625_a9fd_44d1_97d25fd87f2c6c48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".DY")); // }} "" // {{{ 511 1 0 "5d40da45_883e_4d70_b82bec72d61e58f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 512 1 0 "04a143dd_a3a9_4563_ba04c74d37353e0a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBottomWidth); // }} "" // {{{ 513 1 0 "7537fb40_7ade_4ecf_a40a214aeabfcfcc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".Max")); // }} "" // {{{ 514 1 0 "f5410733_58df_4033_a82ca662d55f652e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 515 1 0 "04f3a87f_ffbd_4c94_a8537d9761b443bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBottomHeight); // }} "" // {{ 516 1 0 "70d403e5_96f0_4bbd_9f63cf66d68ec737" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 517 1 0 "9a069836_3e1f_418c_8b6fd570761edc1c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 1) { // }} "" // {{ 518 1 0 "3eeff826_539a_46b7_8f4abb9e9be1c807" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 519 1 0 "3de58403_a8e9_4971_93b0cf615835cc0f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".DX")); // }} "" // {{{ 520 1 0 "8fd2ccbd_7f09_4832_9e7296b0d61dc86c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 521 1 0 "baab88da_61d5_4331_baed9df1b53df854" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerTopWidth); // }} "" // {{{ 522 1 0 "acbe5721_b255_458d_831763840e1d8926" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".DY")); // }} "" // {{{ 523 1 0 "af43eb3f_a181_4caa_b6a3193863857246" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 524 1 0 "3209e940_5156_4c36_ab7d300740c010bf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBottomWidth); // }} "" // {{{ 525 1 0 "04371bfe_6f62_402f_8b3ee67e905bb48f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".Max")); // }} "" // {{{ 526 1 0 "41d56366_fd78_4f44_a0c79be288121760" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 527 1 0 "cf9fab65_216a_4fec_9ad1348a44ad018e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBottomHeight); // }} "" // {{ 528 1 0 "9a069836_3e1f_418c_8b6fd570761edc1c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 529 1 0 "476aeebd_5f40_4928_8958525e68f634ad" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 2) { // }} "" // {{ 530 1 0 "f547b9ce_ea95_408d_95b85f0ece099c9b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 531 1 0 "f040e0fa_f09f_43f3_9046b64b209675c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".DX")); // }} "" // {{{ 532 1 0 "89efd6c5_c56d_4f24_bbd43fd68e820dde" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 533 1 0 "d6385399_c644_45b6_9cd9d8c687280159" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerTopWidth); // }} "" // {{{ 534 1 0 "dbd04ad9_e08f_4fac_93bb5a26d9e3eee9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".DY")); // }} "" // {{{ 535 1 0 "db3692a3_caa5_440f_b35a5390e4498bf6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 536 1 0 "adb5e611_6b46_41a4_be28310a41b7ac75" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBottomWidth); // }} "" // {{{ 537 1 0 "c679ce25_f7cf_4c79_846f7a840c099681" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".Max")); // }} "" // {{{ 538 1 0 "ac82ff9b_62ce_48d5_95e7b5e409643352" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 539 1 0 "d6865e96_1daa_4add_991a828ba3715a26" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBottomHeight); // }} "" // {{ 540 1 0 "476aeebd_5f40_4928_8958525e68f634ad" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 541 1 0 "1189abbe_2155_4dfb_9fc8041a783a166c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 3) { // }} "" // {{ 542 1 0 "e37d9370_7c4e_4e0d_a4a851202d7d9969" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 543 1 0 "ac57ad97_c05c_4471_bae59fc4864eb622" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".DX")); // }} "" // {{{ 544 1 0 "b097d201_33ba_480e_817bb9e841525236" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 545 1 0 "1f107a0b_a45b_480f_ba2511d1f9d24eb8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerTopWidth); // }} "" // {{{ 546 1 0 "395c11f1_cef5_442e_9d90e2f56f73eea9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".DY")); // }} "" // {{{ 547 1 0 "c19bfb3b_d6f5_474f_afc83bd6b276f9ea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 548 1 0 "522abdf9_0297_436e_8beb2aaf78e03a9c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBottomWidth); // }} "" // {{{ 549 1 0 "5386d09f_0626_4cec_961a0c5daa738888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".Max")); // }} "" // {{{ 550 1 0 "d3b0544c_eca7_4b6f_940a9f9f60fd187c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 551 1 0 "fff5fcbc_3b79_4190_94747c5d0a01c8c5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBottomHeight); // }} "" // {{ 552 1 0 "1189abbe_2155_4dfb_9fc8041a783a166c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 553 1 0 "44f6a9bc_2c34_4506_904729b33d6dd46b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 4) { // }} "" // {{ 554 1 0 "96e69e68_554c_47a2_81e68cedf2620a02" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 555 1 0 "1112f860_4d50_4e8f_a3473a5969b6801b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".DX")); // }} "" // {{{ 556 1 0 "7e99d8b4_aa06_4cfc_aad215c394269293" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 557 1 0 "ec1de675_7d29_43ee_8f54e88dc8dff774" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerTopWidth); // }} "" // {{ 558 1 0 "02e93178_dc39_45bb_bb44c01eaf4a2c19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_ContainerBottomWidth = 0.0; // }} "" // {{{ 559 1 0 "161ffdd4_47fa_46a4_aa8c14eb12664d89" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".Max")); // }} "" // {{{ 560 1 0 "fed8b709_0c43_48a5_81903535c29ccbaa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 561 1 0 "6e4fd674_f2d0_471d_9f71ba280de35d45" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBottomHeight); // }} "" // {{ 562 1 0 "44f6a9bc_2c34_4506_904729b33d6dd46b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 563 1 0 "e4eaa235_f955_4606_a1e9dec79a1d5b0e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 5) { // }} "" // {{ 564 1 0 "400bcf2e_de93_451d_a8b38aae239571cc" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 565 1 0 "dc192de9_4a1a_4160_a734fa4cbae8557f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".DX")); // }} "" // {{{ 566 1 0 "15f23158_a14c_4151_8791bf93bc17c67e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 567 1 0 "e71455bc_dadf_496b_8c39659af413e5bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerTopWidth); // }} "" // {{ 568 1 0 "47923586_2936_474e_937e984cde50ead6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_ContainerBottomWidth = 0.0; // }} "" // {{{ 569 1 0 "a24eda20_bb64_4e6f_a08138b81339d4ba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue = StrConcat2(int_SegmentCount, Translate(".Max")); // }} "" // {{{ 570 1 0 "fa5f19db_6ef8_4441_ab9f3750b2651617" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ContainerFilePath, str_SearchValue, str_Return); // }} "" // {{{ 571 1 0 "3b37a23f_e08b_41f4_baf3eee87edadee5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBottomHeight); // }} "" // {{ 572 1 0 "e4eaa235_f955_4606_a1e9dec79a1d5b0e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 573 1 0 "d983efdb_2beb_41a7_949ac1479ef21beb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 574 1 0 "c67152de_f2a6_43a8_a286dbc604b830e9" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 575 1 0 "a565a0b7_8729_45f9_ba1070c38b435fce" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_LabwareConfigFilePath, Translate("Cntr.1.offsetx"), str_Return); // }} "" // {{{ 576 1 0 "3b459565_759b_4ed0_843bfad89947cb6a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerXOffset); // }} "" // {{ 577 1 0 "6c8756f9_2962_4041_a26db02e681d324d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 578 1 0 "d6a68bcc_8a8b_49a6_8b0fc677b7f2fff7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_LabwareConfigFilePath, Translate("Cntr.1.offsety"), str_Return); // }} "" // {{{ 579 1 0 "8847e21a_82d1_4d6f_9732df2b9e535de7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerYOffset); // }} "" // {{ 580 1 0 "b670d3cb_ca96_4119_954dd4603f1c0612" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 581 1 0 "dcd7ce9b_1a33_4700_8ac2d4bb2a7564a2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_LabwareConfigFilePath, Translate("Cntr.1.base"), str_Return); // }} "" // {{{ 582 1 0 "a24f3f0f_57e7_4758_b0c4f9d021285076" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBaseOffset); // }} "" // {{ 583 1 0 "d569178b_3c87_4a0e_94720c70803e492c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_SHAPE.AddAsLast(int_ContainerShape); // }} "" // {{ 584 1 0 "da2e1034_a786_49cc_ac16bb51a37b6ad6" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_CONFIG_FILE.AddAsLast(str_ContainerFilePath); // }} "" // {{ 585 1 0 "160af8cc_8ffa_48f8_87ecc5639f980033" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_TOP_WIDTH.AddAsLast(flt_ContainerTopWidth); // }} "" // {{ 586 1 0 "97e13d0f_af46_4280_afe696266facf87c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_WIDTH.AddAsLast(flt_ContainerBottomWidth); // }} "" // {{ 587 1 0 "6490e321_ab74_498e_a315f6b36df21dd8" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_HEIGHT.AddAsLast(flt_ContainerBottomHeight); // }} "" // {{ 588 1 0 "0766abf8_8cee_40d9_b6fe7327bc520a77" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_BASE_OFFSET.AddAsLast(flt_ContainerBaseOffset); // }} "" // {{ 589 1 0 "e3150f56_45d9_487d_b0c4e9d85b181a95" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_X_OFFSET.AddAsLast(flt_ContainerXOffset); // }} "" // {{ 590 1 0 "123bbd60_14af_4e8e_bc1dc4f34a98eac6" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" LPQ::LABWARE_OFFSET_GLOBAL::ARR_Y_OFFSET.AddAsLast(flt_ContainerYOffset); // }} "" // {{ 591 1 0 "2a112a2a_db3a_4db8_8593a84953c9d08f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 592 1 0 "96f25417_cd9b_4a8e_821c27861afd2258" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" int_ContainerShape=LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_SHAPE.GetAt(int_ContainerExists-1); // }} "" // {{ 593 1 0 "5127a1c0_1ad3_4913_bee6dfc6d86b8185" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_ContainerFilePath=LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_CONFIG_FILE.GetAt(int_ContainerExists-1); // }} "" // {{ 594 1 0 "f8621ecb_0ff5_4e02_9e637b3b4476fee3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ContainerTopWidth=LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_TOP_WIDTH.GetAt(int_ContainerExists-1); // }} "" // {{ 595 1 0 "f8092eda_a3f5_4fe1_8a299d4813afe1ac" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ContainerBottomWidth=LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_WIDTH.GetAt(int_ContainerExists-1); // }} "" // {{ 596 1 0 "f23b858a_9e93_4e56_802c26473a4b28f0" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ContainerBottomHeight=LPQ::LABWARE_OFFSET_GLOBAL::ARR_CONTAINER_BOTTOM_HEIGHT.GetAt(int_ContainerExists-1); // }} "" // {{ 597 1 0 "73c1596a_d926_4bdd_a3c354e30e8ff175" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ContainerBaseOffset=LPQ::LABWARE_OFFSET_GLOBAL::ARR_BASE_OFFSET.GetAt(int_ContainerExists-1); // }} "" // {{ 598 1 0 "31eaed7c_7e43_4de9_b4943ad6a7f68b77" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ContainerXOffset=LPQ::LABWARE_OFFSET_GLOBAL::ARR_X_OFFSET.GetAt(int_ContainerExists-1); // }} "" // {{ 599 1 0 "d1a8c415_bdd1_4d98_ac3568006223172b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ContainerYOffset=LPQ::LABWARE_OFFSET_GLOBAL::ARR_Y_OFFSET.GetAt(int_ContainerExists-1); // }} "" // {{ 600 1 0 "2a112a2a_db3a_4db8_8593a84953c9d08f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace("Lab ID: ",str_LabID," Pos ID: ",str_PosID," X Offset: ",i_flt_X_Offset," Y Offset: ",i_flt_Y_Offset," Z Offset: ",i_flt_Z_Offset); // {{ 602 1 0 "16be14c8_b88e_4d58_bd7df8cb02d50e02" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_X_Offset = i_flt_X_Offset + flt_ContainerXOffset; // }} "" // {{ 603 1 0 "c8f22335_661e_4049_84f4ddf95bc061a4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Offset = i_flt_Y_Offset + flt_ContainerYOffset; // }} "" // {{ 604 1 0 "6e353268_046f_4354_8304e64c72304e11" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Offset = i_flt_Z_Offset + flt_ContainerBaseOffset; // }} "" // {{{ 605 1 0 "7e698b8e_b81c_4c9c_9912628816dc5161" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevAddContainerToRack(Instrument, str_LabID, str_PosID, str_ContainerFilePath, flt_X_Offset, flt_Y_Offset, flt_Z_Offset); // }} "" // {{{ 606 1 0 "91470237_3d69_4976_a9f0462de14df43c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(i_seq_LabwarePositionsToOffset, 1); // }} "" // {{ 607 1 0 "06dde8b4_c2ff_445b_9b05f957fb7899d1" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 608 1 0 "36c5d0e4_f540_4874_8a258a4f0068c9c4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 609 1 0 "080544fc_48a3_445f_bcf24a354db7bed4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 611 1 0 "080544fc_48a3_445f_bcf24a354db7bed4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "ADJUST_OffsetWells2" "End" } // }} "" // {{{ 5 "ADJUST_RotateLabware" "Begin" function ADJUST_RotateLabware( device & Instrument, sequence i_seq_LabwarePositionsToOffset, variable i_flt_TargetRotation ) void { // }} "" private variable int_CutNum; private variable flt_A_Difference; private variable flt_CurrentX; private variable int_Length; private variable flt_CurrentY; private variable flt_DeltaX; private variable flt_CurrentZ; private variable strFunctionName; private variable flt_DeltaY; private variable flt_CenterY2; private variable strFunctionName_Cut; private variable flt_CenterX2; private variable str_LabID; private variable flt_CurrentA; private variable int_Count; private variable flt_CenterX; private variable str_PosID; private variable bool_SequenceValid; private variable flt_CenterY; // {{ 5 "ADJUST_RotateLabware" "InitLocals" // }} "" // {{ 613 1 0 "3322f576_0eeb_40f0_9ae253aa8ec6c194" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 614 1 0 "a5fca648_3434_4756_b5042ac85f621262" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 616 1 0 "68908be1_78af_4d05_a7a849a9630bcb97" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 617 1 0 "aceaacf6_4e60_4194_bfca2662cc5bc4e6" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 618 1 0 "3b9f2f0f_fe4b_4caf_b8c2de5633353247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 619 1 0 "aee7c623_9278_45c1_a5604f0905b8f850" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 620 1 0 "0509d289_a174_40d7_b09e21ae1064c150" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 622 1 0 "3322f576_0eeb_40f0_9ae253aa8ec6c194" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 623 1 0 "62b04b93_ef2e_4a2c_a7d6f44fe0dcc14a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 624 1 0 "788aea9f_4724_4a3b_8c642e4d67861e1c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 626 1 0 "777934a2_fcdf_40cc_a66d8aec6bd57fab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_LabwarePositionsToOffset, str_LabID, str_PosID); // }} "" // {{ 627 1 0 "5eec4b9b_c61d_49a5_a2b83a99a457f0be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 628 1 0 "39f4c20e_ebc5_4fe6_af17cbf52f31bd34" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 629 1 0 "5eec4b9b_c61d_49a5_a2b83a99a457f0be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 630 1 0 "62b04b93_ef2e_4a2c_a7d6f44fe0dcc14a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 631 1 0 "03aad7ba_85e6_4953_a538ba3adac49d7e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(Instrument, i_seq_LabwarePositionsToOffset); // }} "" // {{{ 632 1 0 "b39fa980_63e4_4da1_9ba9f0cda908dc0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePosition(Instrument, str_LabID, flt_CurrentX, flt_CurrentY, flt_CurrentZ, flt_CurrentA); // }} "" // {{ 633 1 0 "f675d333_9897_4867_9d3aa132c568fadc" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_A_Difference = i_flt_TargetRotation - flt_CurrentA; // }} "" // {{{ 634 1 0 "c2cb9661_4624_4a70_8224c3f5506dc103" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetLabwareCenter(Instrument, i_seq_LabwarePositionsToOffset, flt_CenterX, flt_CenterY); // }} "" Trace("Current X: ",flt_CurrentX," Current Y: ",flt_CurrentY); Trace("Rotation Difference: ",flt_A_Difference); Trace("Center X: ",flt_CenterX," Center Y: ",flt_CenterY); // {{ 636 1 0 "283ce635_9994_4dc4_92fc996bc7c55bc3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_DeltaX = 0.0; // }} "" // {{ 637 1 0 "4c280571_f91a_4a5f_bb26a91c8065b8eb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_DeltaY = 0.0; // }} "" // {{ 638 1 0 "6d49183f_3b9b_4521_b656992404f93396" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 639 1 0 "f21531af_756f_4f2a_a99902a28dad60ca" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ADJUST_SetRelativePositionForLabwareID(Instrument, str_LabID, 0.0, 0.0, 0.0, flt_A_Difference); // }} "" // {{ 640 1 0 "a8291268_a976_420d_a51ccf7fc51f3948" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 641 1 0 "90d0391d_9b78_4bd0_8b92fffbdf4fb802" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetLabwareCenter(Instrument, i_seq_LabwarePositionsToOffset, flt_CenterX2, flt_CenterY2); // }} "" // {{ 642 1 0 "f50f4692_e5ff_42f4_b817e5a53dc0172e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_DeltaX = flt_CenterX - flt_CenterX2; // }} "" // {{ 643 1 0 "a021c0d1_0420_4250_9c0ce560e37ff6ff" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_DeltaY = flt_CenterY - flt_CenterY2; // }} "" // {{ 644 1 0 "d86e3bdd_c625_4cec_942635514b500c16" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 645 1 0 "ad0389c5_d958_4c4e_9a5b0a4b2fafeafe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ADJUST_SetRelativePositionForLabwareID(Instrument, str_LabID, flt_DeltaX, flt_DeltaY, 0.0, 0.0); // }} "" // {{ 646 1 0 "94d71c93_b7bb_4225_af2e97ca00f45225" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 648 1 0 "94d71c93_b7bb_4225_af2e97ca00f45225" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "ADJUST_RotateLabware" "End" } // }} "" // {{{ 5 "ADJUST_SetAbsolutePosition" "Begin" function ADJUST_SetAbsolutePosition( device & Instrument, sequence i_seq_LabwarePositionsToAdjust, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void { // }} "" private variable strFunctionName; private variable str_LabID; private variable str_PosID; private variable bool_SequenceValid; // {{ 5 "ADJUST_SetAbsolutePosition" "InitLocals" // }} "" // {{ 650 1 0 "3cae0917_f954_41fc_b5d56c4c51afbda5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 651 1 0 "84c60f13_26d4_4130_88cdcd019914bddb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 653 1 0 "88df4dc8_ae87_439d_bc250ceaee4a1a43" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_LabwarePositionsToAdjust, str_LabID, str_PosID); // }} "" // {{ 654 1 0 "4514b44b_10d9_4b26_94e90c58b5cfcae9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 655 1 0 "2169da70_8ec1_4335_86edd48d7ee24de2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 656 1 0 "4514b44b_10d9_4b26_94e90c58b5cfcae9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 657 1 0 "3cae0917_f954_41fc_b5d56c4c51afbda5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 658 1 0 "f59b678e_4c08_48f9_979071d508145648" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ADJUST_SetAbsolutePositionForLabwareID(Instrument, str_LabID, i_fltPositionX, i_fltPositionY, i_fltPositionZ, i_fltPositionR); // }} "" // {{{ 5 "ADJUST_SetAbsolutePosition" "End" } // }} "" // {{{ 5 "ADJUST_SetAbsolutePositionForLabwareID" "Begin" function ADJUST_SetAbsolutePositionForLabwareID( device & Instrument, variable i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void { // }} "" // {{ 5 "ADJUST_SetAbsolutePositionForLabwareID" "InitLocals" // }} "" // Set Absolute Position { static string P_XCOORD("Labwr_XCoord"); static string P_YCOORD("Labwr_YCoord"); static string P_ZCOORD("Labwr_ZCoord"); static string P_RZCOORD("Labwr_Rotation"); static string P_LABWARE_ID("Labwr_Id"); variable PosVals[]; object objDecklayout; variable strFunctionName(""); //strFunctionName = ExtractFunctionName(GetFunctionName()); // check input variables //if (!CheckString(i_strLabwareID, "i_strLabwareID", strFunctionName)) return(hslFalse); //StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_strLabwareID = " + i_strLabwareID + ", i_fltPositionX = " + FStr(i_fltPositionX) + ", i_fltPositionY = " + FStr(i_fltPositionY) + ", i_fltPositionZ = " + FStr(i_fltPositionZ) + ", i_fltPositionR = " + FStr(i_fltPositionR), strFunctionName); //EnterSemaphore(); objDecklayout = Instrument.GetDeckLayoutObject(); //LeaveSemaphore(); if (!objDecklayout.IsNull()) { object objLabware; onerror goto HandleLabwareError; objLabware = objDecklayout.Labware(i_strLabwareID); onerror goto 0; err.Clear(); if (!objLabware.IsNull()) { object Decklayout5; object MoveParameters; objDecklayout.GetObject("IDeckLayout5", Decklayout5); //EnterSemaphore(); //io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals); //LeaveSemaphore(); //StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Current position: (" + FStr(PosVals[0]) + "/" + FStr(PosVals[1]) + "/" + FStr(PosVals[2]) + "/" + FStr(PosVals[3]) + ")", strFunctionName); MoveParameters.CreateObject("HXPARAMSLib.HxPars"); MoveParameters.Add(i_strLabwareID, P_LABWARE_ID); MoveParameters.Add(i_fltPositionX, P_XCOORD); MoveParameters.Add(i_fltPositionY, P_YCOORD); MoveParameters.Add(i_fltPositionZ, P_ZCOORD); MoveParameters.Add(i_fltPositionR, P_RZCOORD); Decklayout5.MoveLabware(objLabware, MoveParameters); // Trace new position //EnterSemaphore(); //io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals); //LeaveSemaphore(); objLabware.ReleaseObject(); objDecklayout.ReleaseObject(); Decklayout5.ReleaseObject(); MoveParameters.ReleaseObject(); //StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "New position: (" + FStr(PosVals[0]) + "/" + FStr(PosVals[1]) + "/" + FStr(PosVals[2]) + "/" + FStr(PosVals[3]) + ")", strFunctionName); //return(hslTrue); } //else //{ //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find labware.", strFunctionName); //objDecklayout.ReleaseObject(); //return(hslFalse); //} // } //else //{ //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find decklayout.", strFunctionName); //return(hslFalse); } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); //Trace(errorID); if (errorID==-1574764487) { Trace("LabwareID is unknown."); //return(hslFalse); } else { //Trace("Unknown error occured."); //return(hslFalse); } } } // {{{ 5 "ADJUST_SetAbsolutePositionForLabwareID" "End" } // }} "" // {{{ 5 "ADJUST_SetProperties" "Begin" function ADJUST_SetProperties( device & Instrument, sequence i_seq_LabwarePositionsToAdjust, variable i_strPropertyKey, variable i_strProperyValue ) void { // }} "" private variable strFunctionName; private variable str_LabID; private variable str_PosID; private variable bool_SequenceValid; // {{ 5 "ADJUST_SetProperties" "InitLocals" // }} "" // {{ 662 1 0 "b5d1796e_1d51_4956_986647e77b656088" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 663 1 0 "bd434c8d_726b_49c7_8a15f395072e3972" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 665 1 0 "091b1fcf_f84f_4629_a1285e3f175dc63f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_LabwarePositionsToAdjust, str_LabID, str_PosID); // }} "" // {{ 666 1 0 "ad2e5dc9_5d99_4504_9c109daae0533ff9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 667 1 0 "afa3da4a_306f_445e_8f4c7961b4780ccf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 668 1 0 "ad2e5dc9_5d99_4504_9c109daae0533ff9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 669 1 0 "b5d1796e_1d51_4956_986647e77b656088" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 670 1 0 "44df2e12_8806_4497_940cbb2622bd1dd6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ADJUST_SetPropertiesForLabwareID(Instrument, str_LabID, i_strPropertyKey, i_strProperyValue); // }} "" // {{{ 5 "ADJUST_SetProperties" "End" } // }} "" // {{{ 5 "ADJUST_SetPropertiesForLabwareID" "Begin" function ADJUST_SetPropertiesForLabwareID( device & Instrument, variable i_strLabwareID, variable i_strPropertyKey, variable i_strProperyValue ) void { // }} "" private variable strLabwareID; private variable strProperyValue; private variable strPropertyKey; // {{ 5 "ADJUST_SetPropertiesForLabwareID" "InitLocals" // }} "" // {{{ 672 1 0 "8460f919_dd60_43a9_a5d7f3576546ecc5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strPropertyKey = StrConcat2(i_strPropertyKey, Translate("")); // }} "" // {{{ 673 1 0 "01cf411f_649a_4b41_8c35b49127a451b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strProperyValue = StrConcat2(i_strProperyValue, Translate("")); // }} "" // {{{ 674 1 0 "cf2a01de_c66a_48c3_931d1836b0a35491" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strLabwareID = StrConcat2(i_strLabwareID, Translate("")); // }} "" Trace("Lab ID: ",i_strLabwareID," Property Key: ",strPropertyKey," Property Value: ",strProperyValue); // {{ 676 1 0 "4298d6fb_bf75_4a8e_88e6e63b6782acd3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" { object objDecklayout; variable str_PropertyValue; str_PropertyValue = strProperyValue; //variable strFunctionName(""); //strFunctionName = ExtractFunctionName(GetFunctionName()); // check input variables //if (!CheckString(i_strPropertyValue, "i_strPropertyValue", strFunctionName)) return(hslFalse); //if (!CheckString(i_strPropertyKey, "i_strPropertyKey", strFunctionName)) return(hslFalse); //if (!CheckString(i_strLabwareID, "i_strLabwareID", strFunctionName)) return(hslFalse); //StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_strLabwareID = " + i_strLabwareID + ", i_strPropertyKey = " + i_strPropertyKey + ", i_strPropertyValue = " + i_strPropertyValue, strFunctionName); //EnterSemaphore(); objDecklayout = Instrument.GetDeckLayoutObject(); //LeaveSemaphore(); if (!objDecklayout.IsNull()) { object objLabware; onerror goto HandleLabwareError; objLabware = objDecklayout.Labware(i_strLabwareID); onerror goto 0; err.Clear(); if (!objLabware.IsNull()) { object objEditLabware5; object objPropertyParameters; objLabware.GetObject("IEditLabware5", objEditLabware5); // prepare a new Pars object for the labware properties objPropertyParameters.CreateObject("HXPARAMSLib.HxPars"); objPropertyParameters.Add(str_PropertyValue, strPropertyKey); // check data from the decklayout objEditLabware5.SetLabwrProperties(objPropertyParameters); str_PropertyValue = objPropertyParameters.Item1(strPropertyKey); objPropertyParameters.ReleaseObject(); objEditLabware5.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); //StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName); //return(hslTrue); } else { //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find labware.", strFunctionName); objDecklayout.ReleaseObject(); //return(hslFalse); } } else { //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find decklayout.", strFunctionName); //return(hslFalse); } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if (errorID==-1574764487) { //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "LabwareID is unknown.", strFunctionName); //return(hslFalse); } else { //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Unknown error occured.", strFunctionName); //return(hslFalse); } } } // {{{ 5 "ADJUST_SetPropertiesForLabwareID" "End" } // }} "" // {{{ 5 "ADJUST_SetRelativePosition" "Begin" function ADJUST_SetRelativePosition( device & Instrument, sequence i_seq_LabwarePositionsToAdjust, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void { // }} "" private variable strFunctionName; private variable str_LabID; private variable str_PosID; private variable bool_SequenceValid; // {{ 5 "ADJUST_SetRelativePosition" "InitLocals" // }} "" // {{ 679 1 0 "8e117e2c_46a7_4fc7_a8fa861e877c29b7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 680 1 0 "037129c2_62db_45b4_b01d6bca055842df" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 682 1 0 "59135090_7df4_4eb0_b792a75263b61663" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_LabwarePositionsToAdjust, str_LabID, str_PosID); // }} "" // {{ 683 1 0 "133fe4a9_367b_41b6_aeb5cc8285cbb444" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 684 1 0 "ce502b72_38a9_430c_ad97516be3963bb8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 685 1 0 "133fe4a9_367b_41b6_aeb5cc8285cbb444" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 686 1 0 "8e117e2c_46a7_4fc7_a8fa861e877c29b7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 687 1 0 "0f6323af_7803_42e7_a92efc300dcb1a98" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ADJUST_SetRelativePositionForLabwareID(Instrument, str_LabID, i_fltPositionX, i_fltPositionY, i_fltPositionZ, i_fltPositionR); // }} "" // {{{ 5 "ADJUST_SetRelativePosition" "End" } // }} "" // {{{ 5 "ADJUST_SetRelativePositionForLabwareID" "Begin" function ADJUST_SetRelativePositionForLabwareID( device & Instrument, variable & i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void { // }} "" // {{ 5 "ADJUST_SetRelativePositionForLabwareID" "InitLocals" // }} "" { // HxPars keys static string P_XCOORD("Labwr_XCoord"); static string P_YCOORD("Labwr_YCoord"); static string P_ZCOORD("Labwr_ZCoord"); static string P_RZCOORD("Labwr_Rotation"); static string P_LABWARE_ID("Labwr_Id"); // Helper functions //private function ConvertToFloat(variable iVariable, variable& oVariable) variable; //private function CheckBool(variable iVariable, variable iTraceEntry, variable iFunctionName) variable; //private function CheckInteger(variable iVariable, variable iTraceEntry, variable iFunctionName) variable; //private function CheckIntegerRange(variable iVariable, variable iTraceEntry, variable iMin, variable iMax, variable iFunctionName) variable; //private function CheckString(variable iVariable, variable iTraceEntry, variable iFunctionName) variable; //private function CheckFloat(variable iVariable, variable iTraceEntry, variable iFunctionName) variable; //private function StatusTrace(variable i_intState, variable i_intTraceLevel, variable i_strTraceString, variable i_strFunctionName) void; //private function EnterSemaphore(); //private function LeaveSemaphore(); //private function ExtractFunctionName(variable i_strFunctionName) variable; //private function ReverseFind(string i_strString, string i_strSubString) variable; //////////////////////////////////////////////////////////////////////////// // RelativePositionValuesSetForLabwareID //////////////////////////////////////////////////////////////////////////// //function RelativePositionValuesSetForLabwareID(device& io_devDevice, // variable i_strLabwareID, // variable i_fltPositionX, // variable i_fltPositionY, // variable i_fltPositionZ, // variable i_fltPositionR) variable { variable PosVals[]; variable myValue; object objDecklayout; variable strFunctionName(""); // strFunctionName = ExtractFunctionName(GetFunctionName()); // check input variables // if(!CheckString(i_strLabwareID, "i_strLabwareID", strFunctionName)) return(hslFalse); //StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_strLabwareID = " + i_strLabwareID, strFunctionName); //EnterSemaphore(); objDecklayout = Instrument.GetDeckLayoutObject(); //LeaveSemaphore(); if(!objDecklayout.IsNull()) { object objLabware; variable strPos(""); onerror goto HandleLabwareError; objLabware = objDecklayout.Labware(i_strLabwareID); onerror goto 0; err.Clear(); if(!objLabware.IsNull()) { object Decklayout5; object MoveParameters; variable fltPos, fltPosShift; objDecklayout.GetObject("IDeckLayout5", Decklayout5); MoveParameters.CreateObject("HXPARAMSLib.HxPars"); MoveParameters.Add(i_strLabwareID, P_LABWARE_ID); //EnterSemaphore(); Instrument.GetLabwarePosition(i_strLabwareID, PosVals); //LeaveSemaphore(); //StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Current position: (" + FStr(PosVals[0]) + "/" + FStr(PosVals[1]) + "/" + FStr(PosVals[2]) + "/" + FStr(PosVals[3]) + ")", strFunctionName); _ConvertToFloat(PosVals[0],fltPos); _ConvertToFloat(i_fltPositionX,fltPosShift); MoveParameters.Add(fltPos+fltPosShift, P_XCOORD); _ConvertToFloat(PosVals[1],fltPos); _ConvertToFloat(i_fltPositionY,fltPosShift); MoveParameters.Add(fltPos+fltPosShift, P_YCOORD); _ConvertToFloat(PosVals[2],fltPos); _ConvertToFloat(i_fltPositionZ,fltPosShift); MoveParameters.Add(fltPos+fltPosShift, P_ZCOORD); _ConvertToFloat(PosVals[3],fltPos); _ConvertToFloat(i_fltPositionR,fltPosShift); MoveParameters.Add(fltPos+fltPosShift, P_RZCOORD); Decklayout5.MoveLabware(objLabware, MoveParameters); //EnterSemaphore(); Instrument.GetLabwarePosition(i_strLabwareID, PosVals); //LeaveSemaphore(); objLabware.ReleaseObject(); objDecklayout.ReleaseObject(); Decklayout5.ReleaseObject(); MoveParameters.ReleaseObject(); //StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "New position: (" + FStr(PosVals[0]) + "/" + FStr(PosVals[1]) + "/" + FStr(PosVals[2]) + "/" + FStr(PosVals[3]) + ")", strFunctionName); //return(hslTrue); } else { //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find labware.", strFunctionName); objDecklayout.ReleaseObject(); //return(hslFalse); } } else { //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find decklayout.", strFunctionName); //return(hslFalse); } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if (errorID==-1574764487) { Trace("LabwareID is unknown."); //return(hslFalse); } else { //Trace("Unknown error occured."); //return(hslFalse); } } } ////////////////////////////////////////////////////////////////////////// // private function ConvertToFloat ////////////////////////////////////////////////////////////////////////// } // {{{ 5 "ADJUST_SetRelativePositionForLabwareID" "End" } // }} "" // {{{ 5 "ADJUST_TiltLabware" "Begin" function ADJUST_TiltLabware( device & Instrument, sequence i_seq_LabwarePositionsToOffset, variable i_bool_ShiftToDeepestPoint, variable i_flt_TiltAngle, variable i_flt_XOffset, variable i_flt_ZOffset ) void { // }} "" private variable flt_TiltAngleInRadian; private variable flt_X_Coord; private variable int_CutNum; private variable flt_X_Origin; private variable str_ContainerFilePath; private variable flt_NotUsed; private variable flt_Z_Coord; private variable flt_Y_Coord; private variable int_Length; private variable int_RowCount; private variable flt_ConversionFactor; private variable str_ConfigFilePath; private variable i; private variable flt_Sin; private variable flt_Cos; private variable flt_NewXOffset; private variable strFunctionName; private variable flt_ContainerWidth; private variable flt_NewZOffset; private variable bool_IncrementContainerDirection; private variable strFunctionName_Cut; private variable flt_ContainerBaseOffset; private variable str_LabID; private variable flt_Y_Origin; private variable flt_LabwareLength; private variable flt_CurrentXOffset; private variable flt_CurrentZOffset; private variable flt_Z_Radius; private variable int_ColumnCount; private variable flt_X_Shift; private variable bool_AlphaNumeric; private variable int_Count; private variable flt_Z_Origin; private variable bool_SequenceValid; private variable flt_NewZCoord; private variable str_PosID; private variable flt_X_Radius; private variable flt_NewXCoord; private variable flt_LabwareWidth; private variable int_TotalPositions; private variable int_Index; private sequence seq_Temp; private variable arr_UsedPosition[]; private variable arr_XOffsetUsed[]; private variable arr_ZOffsetUsed[]; private variable int_UsedIndex; // {{ 5 "ADJUST_TiltLabware" "InitLocals" // }} "" // {{ 759 1 0 "a8579087_5321_474c_bbbff10b3daceaca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 760 1 0 "8c646812_f791_4252_ab5404b4aec2719a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 762 1 0 "89dc920e_5b33_459a_a16a8e4d8ae7f674" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 763 1 0 "1b464460_31d5_4fbe_aacd345a9bb6d9e8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 764 1 0 "44c7a993_7075_404a_98b7339d99f2dda5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 765 1 0 "faa6dcd3_639e_46e0_bd44347d6a6bba06" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 766 1 0 "84634f92_3662_41a6_83760f547fe74fef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 768 1 0 "a8579087_5321_474c_bbbff10b3daceaca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 769 1 0 "3d930f15_e692_4f31_a9506e3e18618b6b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 770 1 0 "bb13932f_6e22_48b7_98f9621d60b933e8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 772 1 0 "a4740c0b_7050_4719_b51f204807a4c80e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_LabwarePositionsToOffset, str_LabID, str_PosID); // }} "" // {{ 773 1 0 "8ec7866a_c616_46f9_a591c3e136a8228e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 774 1 0 "db24974d_3a63_468a_a4ef32b52ba29ac2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 775 1 0 "8ec7866a_c616_46f9_a591c3e136a8228e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 776 1 0 "3d930f15_e692_4f31_a9506e3e18618b6b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 777 1 0 "6b8051c8_d723_4a7d_9dc40b62ff6715b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(Instrument, i_seq_LabwarePositionsToOffset); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 778 1 0 "a28e94c0_7597_4095_a9e85bf888ed56a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(i_seq_LabwarePositionsToOffset); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 779 1 0 "1e89a34e_4d7a_4098_b8409eff58140e88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetPositionCountForCurrLabware(i_seq_LabwarePositionsToOffset); // }} "" // {{ 780 1 0 "bda376ad_9fba_40fc_9bed93f1b5f889bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (LPQ::LABWARE_TILT::BOOL_LIBRARY_INITIALIZED == 0) { // }} "" // {{{ 781 1 0 "3471b3c8_8874_44fa_a1a3d21ec13eba90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LPQ::InitializeVariables(); // }} "" // {{ 782 1 0 "ec9ccf5d_4e81_4d3d_b800e46241cd42a4" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" LPQ::LABWARE_TILT::ARR_BASE_OFFSET.SetSize(0); // }} "" // {{ 783 1 0 "48fb3eda_5320_4675_940f2054a85afee0" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" LPQ::LABWARE_TILT::ARR_LABWARE_CONFIG_FILE.SetSize(0); // }} "" // {{ 784 1 0 "c9ca3e2b_44b6_48cd_aa8e0d35b28f9873" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" LPQ::LABWARE_TILT::BOOL_LIBRARY_INITIALIZED = 1; // }} "" // {{ 785 1 0 "bda376ad_9fba_40fc_9bed93f1b5f889bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 786 1 0 "a58e3659_616e_4916_8ce243e3f1801ec9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 787 1 0 "e60769e3_f747_4d3e_9aa6ce73330ad6db" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_ConversionFactor = 1.74532925199433E-02; // }} "" // {{ 788 1 0 "109badcc_e7e6_447a_a030724cdce8af88" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_TiltAngleInRadian = i_flt_TiltAngle * flt_ConversionFactor; // }} "" // {{{ 789 1 0 "852f1493_62e0_436d_ae68447e568a50b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Cos = MthCos(flt_TiltAngleInRadian); // }} "" // {{{ 790 1 0 "d5fa64b4_502c_48b9_8c0ce62b42a07b91" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Sin = MthSin(flt_TiltAngleInRadian); // }} "" // {{{ 791 1 0 "9f5832dd_daaa_45cb_8434b049b87a4fc4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetRowColumnNumber(Instrument, i_seq_LabwarePositionsToOffset, int_RowCount, int_ColumnCount, bool_AlphaNumeric, bool_IncrementContainerDirection); // }} "" // {{{ 792 1 0 "d8ba3ef4_a39b_4609_be861ad1b3c925de" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetLabwareOrigin(Instrument, i_seq_LabwarePositionsToOffset, flt_X_Origin, flt_Y_Origin, flt_Z_Origin); // }} "" // {{{ 793 1 0 "ef365259_16ac_4eb2_9a60868a361472ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetLabwareLW(Instrument, i_seq_LabwarePositionsToOffset, flt_LabwareLength, flt_LabwareWidth); // }} "" // {{ 794 1 0 "395120d9_c739_4992_b68e905bdf426114" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bool_ShiftToDeepestPoint == 1) { // }} "" // {{{ 795 1 0 "cb4a59c7_d234_4154_8fc1a7f81fff344a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" CONT_GetContainerWidth(Instrument, i_seq_LabwarePositionsToOffset, flt_ContainerWidth); // }} "" // {{ 796 1 0 "4aad83d4_a0b2_4dea_864b68940f96a41c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_X_Shift = flt_ContainerWidth / (2 * 1.0); // }} "" Trace("X Shift: ",flt_X_Shift," Container Width: ",flt_ContainerWidth); // {{ 798 1 0 "395120d9_c739_4992_b68e905bdf426114" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 799 1 0 "0fae86ed_f8d3_411b_a2a77abfd005abd1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_X_Shift = 0.0; // }} "" // {{ 800 1 0 "395120d9_c739_4992_b68e905bdf426114" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 801 1 0 "a58e3659_616e_4916_8ce243e3f1801ec9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 802 1 0 "aee93798_d587_4796_a4eb300c27b6ea17" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 803 1 0 "2e5f46ea_58e1_4e27_b5b460a9152ec250" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_LabwarePositionsToOffset.SetCurrentPosition(1); // }} "" // {{{ 804 1 0 "af38e33c_c055_4de7_b9045a0990e341a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_LabwarePositionsToOffset); // }} "" // {{{ 805 1 0 "61184e22_73b6_4bc6_8826720e3b370d7b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_LabwarePositionsToOffset); // }} "" // {{{ 806 1 0 "6ddf4634_15bc_4380_b8a52fbb462596bf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SEQ_GetDefaultSequence(Instrument, str_LabID, 1, seq_Temp); // }} "" // {{{ 807 1 0 "566950c6_b2ad_4309_b96df4bc1de2c0b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetContainerBaseOffset(Instrument, seq_Temp, flt_ContainerBaseOffset); // }} "" // {{{ 808 1 0 "5ccc2c97_cb88_41d5_a129b8bbe2a3b4ec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetConfigFile(Instrument, seq_Temp, str_ConfigFilePath); // }} "" // {{{ 809 1 0 "d573fa0f_5c20_4023_ac6bda1ceadbe6e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" int_Index = _Lookup(LPQ::LABWARE_TILT::ARR_LABWARE_CONFIG_FILE, str_ConfigFilePath); // }} "" // {{ 810 1 0 "74597dbd_3655_489c_a20cc9febc3f6d48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index == 0) { // }} "" // {{ 811 1 0 "fb7cc41d_36a9_4282_b1468188691c3a45" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 812 1 0 "014a9c62_8271_4652_bfdc30cbb32af730" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" LPQ::LABWARE_TILT::ARR_BASE_OFFSET.AddAsLast(flt_ContainerBaseOffset); // }} "" // {{ 813 1 0 "c3903280_395e_4a13_963e4bf41dfb46ad" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" LPQ::LABWARE_TILT::ARR_LABWARE_CONFIG_FILE.AddAsLast(str_ConfigFilePath); // }} "" // {{ 814 1 0 "74597dbd_3655_489c_a20cc9febc3f6d48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 815 1 0 "ed79589a_a97a_4858_b99431baf2dc3fa2" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ContainerBaseOffset=LPQ::LABWARE_TILT::ARR_BASE_OFFSET.GetAt(int_Index-1); // }} "" // {{ 816 1 0 "74597dbd_3655_489c_a20cc9febc3f6d48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 817 1 0 "64e4088d_0f89_4dc1_8583d25ea11123ab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" CONT_GetConfigFile(Instrument, i_seq_LabwarePositionsToOffset, str_ContainerFilePath); // }} "" // {{ 818 1 0 "bc9e4d8c_bfc9_40f4_bc1e8e74fd1c21cd" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalPositions;) { i = i + 1; // }} "" // {{ 819 1 0 "a59bc78e_d148_4d63_82fcfb286b7a1d09" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_LabwarePositionsToOffset.SetCurrentPosition(i); // }} "" // {{{ 820 1 0 "8224cc4f_394e_4aed_99896878953e7164" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_LabwarePositionsToOffset); // }} "" // {{{ 821 1 0 "037a0829_676e_4262_a45d9cf755ff015b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_LabwarePositionsToOffset); // }} "" // {{{ 822 1 0 "bdd258a3_5bcd_4aa6_95f4c301a9594a95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevAddContainerToRack(Instrument, str_LabID, str_PosID, str_ContainerFilePath, 0.0, 0.0, flt_ContainerBaseOffset); // }} "" // {{ 823 1 0 "bc9e4d8c_bfc9_40f4_bc1e8e74fd1c21cd" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 824 1 0 "697796b3_d26c_4cd0_957b536a73e83a17" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_UsedPosition.SetSize(0); // }} "" // {{ 825 1 0 "062c362c_3f7d_4e0c_98907faecfd3880c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_XOffsetUsed.SetSize(0); // }} "" // {{ 826 1 0 "89753418_8ed6_4f29_bd49c8ca21bb07f2" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ZOffsetUsed.SetSize(0); // }} "" // {{ 827 1 0 "4e9a99e4_ec30_4433_a02180a0778ebcf8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalPositions;) { i = i + 1; // }} "" // {{ 828 1 0 "d81e9250_a777_4796_848c239208c117d9" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_LabwarePositionsToOffset.SetCurrentPosition(i); // }} "" // {{{ 829 1 0 "cec5581f_957e_42fe_9dcccf5bfe42c2cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_LabwarePositionsToOffset); // }} "" // {{{ 830 1 0 "a36ccb82_c68e_4030_9875b3e4c5c2b988" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_LabwarePositionsToOffset); // }} "" // {{{ 831 1 0 "1f2cc4b0_74ad_45c8_9120860c095d0a16" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(Instrument, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_NotUsed); // }} "" // {{ 832 1 0 "059424e9_66f3_4c6c_a3cf1141a8de0f70" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentXOffset = 0.0; // }} "" // {{ 833 1 0 "ac56e199_dc8c_4e1a_ab1b19d35f0a84c4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentZOffset = 0.0; // }} "" // {{ 834 1 0 "e4025160_4a3a_46ef_96969d30b1a4146e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_NewXOffset = 0.0; // }} "" // {{ 835 1 0 "aafe769e_b6af_4f16_8ce67bff61370912" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_NewZOffset = 0.0; // }} "" // {{ 836 1 0 "17d09a35_f409_4fe6_86001694a1bf58ad" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_NewXCoord = 0.0; // }} "" // {{ 837 1 0 "136532e9_a2dc_4e89_bd2e14a729f5d51d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_NewZCoord = 0.0; // }} "" // {{ 838 1 0 "c8653b31_8728_40e2_862b882c981fcc69" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_X_Radius = 0.0; // }} "" // {{ 839 1 0 "a63d1123_23fd_450a_8ecdd525e2110844" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Radius = 0.0; // }} "" // {{ 840 1 0 "f7e150a9_83a9_45c0_9ec73643ad30e45b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 841 1 0 "2e4c967c_fdf0_491c_aaf60942febe1a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_flt_TiltAngle > 0) { // }} "" flt_X_Radius = flt_X_Coord - flt_X_Origin + i_flt_XOffset - flt_X_Shift; flt_Z_Radius = flt_ContainerBaseOffset + i_flt_ZOffset; //Trace("X Radius: ",flt_X_Radius); //Trace("X Shift: ",flt_X_Shift); flt_NewXCoord = flt_X_Origin + (flt_X_Radius) * flt_Cos; flt_NewZCoord = flt_Z_Origin + flt_X_Radius * flt_Sin; //Trace("X Coord: ",flt_X_Coord," New X: ",flt_NewXCoord); //Trace("Z Coord: ",flt_Z_Coord," New Z: ",flt_NewZCoord); flt_NewXOffset = flt_NewXCoord - flt_X_Coord + i_flt_XOffset; flt_NewZOffset = flt_NewZCoord - flt_Z_Coord + flt_ContainerBaseOffset + i_flt_ZOffset + (flt_Z_Coord - flt_Z_Origin); // {{ 843 1 0 "2e4c967c_fdf0_491c_aaf60942febe1a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 844 1 0 "a87da929_33e7_4e1f_b1bf2134b6c2fcaf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_NewXOffset = 0.0; // }} "" // {{ 845 1 0 "e49ef6da_d90e_494a_963fe157bc134b3d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_NewZOffset = flt_ContainerBaseOffset + i_flt_ZOffset; // }} "" // {{ 846 1 0 "2e4c967c_fdf0_491c_aaf60942febe1a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 847 1 0 "8b4f44ff_8520_47d3_8138e6471a24609a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" CONT_GetConfigFile(Instrument, i_seq_LabwarePositionsToOffset, str_ContainerFilePath); // }} "" // {{{ 848 1 0 "f8ff7885_4c19_40fb_94b31aed9127dc98" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" int_UsedIndex = _Lookup(arr_UsedPosition, str_PosID); // }} "" // {{{ 849 1 0 "a159c173_2b25_489c_add436dccc9bdc4f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_NewXOffset = MthRound(flt_NewXOffset, 1); // }} "" // {{{ 850 1 0 "8c66caad_fa39_44b7_a1899df53afb8191" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_NewZOffset = MthRound(flt_NewZOffset, 1); // }} "" // {{ 851 1 0 "1c87d93a_69f9_410c_9a4959882ad312d9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_UsedIndex == 0) { // }} "" // {{ 852 1 0 "c07a6343_b745_4bf0_84957d85edb5a668" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_UsedPosition.AddAsLast(str_PosID); // }} "" // {{ 853 1 0 "54304699_db1e_498d_b919c9b2a2f88ff9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_XOffsetUsed.AddAsLast(flt_NewXOffset); // }} "" // {{ 854 1 0 "84985d6f_8861_487b_ad986b6ec92d12ea" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ZOffsetUsed.AddAsLast(flt_NewZOffset); // }} "" // {{ 855 1 0 "1c87d93a_69f9_410c_9a4959882ad312d9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 856 1 0 "9297c8c3_cc14_40ad_8dac7fc17a0256e8" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_NewXOffset=arr_XOffsetUsed.GetAt(int_UsedIndex-1); // }} "" // {{ 857 1 0 "b09797cc_d5bf_404c_b4c8a67c3b901353" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_NewZOffset=arr_ZOffsetUsed.GetAt(int_UsedIndex-1); // }} "" // {{ 858 1 0 "1c87d93a_69f9_410c_9a4959882ad312d9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace("Lab ID: ",str_LabID," Pos ID: ",str_PosID," X Offset: ",flt_NewXOffset," Z Offset: ",flt_NewZOffset); // {{{ 860 1 0 "452f65ef_edd7_4207_b9ca3fbab71e9ba0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevAddContainerToRack(Instrument, str_LabID, str_PosID, str_ContainerFilePath, flt_NewXOffset, 0.0, flt_NewZOffset); // }} "" // {{ 861 1 0 "4e9a99e4_ec30_4433_a02180a0778ebcf8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 862 1 0 "cf50a12c_e23b_466a_8d1145a75a371d5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 864 1 0 "cf50a12c_e23b_466a_8d1145a75a371d5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "ADJUST_TiltLabware" "End" } // }} "" // {{{ 5 "CONT_GetBaseMeasurement" "Begin" function CONT_GetBaseMeasurement( device & Instrument, sequence & i_seq_Labware, variable & o_flt_ContainerBaseThickness, variable & o_flt_ContainerBaseOffset ) void { // }} "" private variable strFunctionName; private variable str_LabID; private variable bool_SequenceValid; private variable str_PosID; // {{ 5 "CONT_GetBaseMeasurement" "InitLocals" o_flt_ContainerBaseThickness = 0; o_flt_ContainerBaseOffset = 0; // }} "" // {{ 866 1 0 "c0bef732_e3c3_48d9_a2a94bcfafa7c2e1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 867 1 0 "c6089ed8_31d2_47cc_8111e00eda129c95" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 869 1 0 "8e457ffc_1d3d_4ab4_862f289555e4bff8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 870 1 0 "005051c7_e231_41be_bf46f23ca15660f6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 871 1 0 "b3d7ffd9_b243_4b92_8af4490229dcc169" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 872 1 0 "005051c7_e231_41be_bf46f23ca15660f6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 873 1 0 "c0bef732_e3c3_48d9_a2a94bcfafa7c2e1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 874 1 0 "04f0ff9f_ac86_4a58_b2a8e48dbfded441" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_ContainerBaseThickness = 0.0; // }} "" // {{ 875 1 0 "16629d18_3c3b_43df_88368cb154cd0eff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_ContainerBaseOffset = 0.0; // }} "" { object rack; object rack2; object ctr; object labware; object m_decklayout; variable labwareId; m_decklayout = Instrument.GetDeckLayoutObject(); //labwareId = SeqGetLabwareId(i_sequenceLabware); labware = m_decklayout.Labware(str_LabID); labware.GetObject2("{3E5213CF-57C9-4911-B33E-05E77130E4DB}", rack); // IEditLabware6 labware.GetObject("IRectRack2", rack2); // IEditLabware6 rack.CntrAtPosition(ctr,str_PosID); o_flt_ContainerBaseThickness = ctr.ContainerBaseDepth; o_flt_ContainerBaseOffset = rack2.ContainerBaseOffset(str_PosID); rack.ReleaseObject(); rack2.ReleaseObject(); ctr.ReleaseObject(); labware.ReleaseObject(); m_decklayout.ReleaseObject(); } // {{{ 877 1 0 "3ccc8dfd_a072_4204_9048ce218777ee51" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_ContainerBaseThickness = MthRound(o_flt_ContainerBaseThickness, 1); // }} "" // {{{ 878 1 0 "1daae3a7_0790_4f0f_898209c74c66e652" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_ContainerBaseOffset = MthRound(o_flt_ContainerBaseOffset, 1); // }} "" // {{{ 5 "CONT_GetBaseMeasurement" "End" } // }} "" // {{{ 5 "CONT_GetConfigFile" "Begin" function CONT_GetConfigFile( device & Instrument, sequence i_seq_Labware, variable & o_str_ContainerFileName ) void { // }} "" private variable strFunctionName; private variable str_LabID; private variable str_PosID; private variable bool_SequenceValid; // {{ 5 "CONT_GetConfigFile" "InitLocals" o_str_ContainerFileName = 0; // }} "" // {{ 880 1 0 "4d5b84d8_1009_4ee7_96c4799b230d85ff" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 881 1 0 "b640a6f4_bf2d_42fd_8985ee6d09cdd8bf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 883 1 0 "99c693f1_f2d1_4162_b57391c7c5039968" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 884 1 0 "e0353b6d_d887_404b_90ee0fb1b6afcb4d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 885 1 0 "6a1638c3_1c0f_43b8_af97da04684478ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 886 1 0 "e0353b6d_d887_404b_90ee0fb1b6afcb4d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 887 1 0 "4d5b84d8_1009_4ee7_96c4799b230d85ff" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 888 1 0 "30c5d5f1_8be8_4442_a811322d240e1494" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ContainerFileName = Translate(""); // }} "" { object rack; object ctr; object labware; object m_decklayout; variable labwareId; m_decklayout = Instrument.GetDeckLayoutObject(); labware = m_decklayout.Labware(str_LabID); labware.GetObject2("{3E5213CF-57C9-4911-B33E-05E77130E4DB}", rack); // IEditLabware6 rack.CntrAtPosition(ctr,str_PosID); o_str_ContainerFileName = ctr.FileName; rack.ReleaseObject(); ctr.ReleaseObject(); labware.ReleaseObject(); m_decklayout.ReleaseObject(); } // {{{ 5 "CONT_GetConfigFile" "End" } // }} "" // {{{ 5 "CONT_GetContainerBaseThickness" "Begin" function CONT_GetContainerBaseThickness( device & Instrument, sequence i_seq_Labware, variable & o_containerBaseThickness ) void { // }} "" private variable strFunctionName; private variable str_LabID; private variable bool_SequenceValid; private variable str_PosID; // {{ 5 "CONT_GetContainerBaseThickness" "InitLocals" o_containerBaseThickness = 0; // }} "" // {{ 891 1 0 "a0994aea_4d57_4177_851b7e330ed56b1c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 892 1 0 "0491c203_25d6_4061_bf4df5bb509184d5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 894 1 0 "1174a49e_af6e_4aab_ba9f0496c2a20684" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 895 1 0 "c6c6644e_8b83_4b5e_b6a26b71714782d7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 896 1 0 "feac1bae_1273_469b_a7279a3ba11b9213" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 897 1 0 "c6c6644e_8b83_4b5e_b6a26b71714782d7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 898 1 0 "a0994aea_4d57_4177_851b7e330ed56b1c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 899 1 0 "504acde1_392e_4b4f_97509fae461f78f5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_containerBaseThickness = 0; // }} "" { object rack; object ctr; object labware; object m_decklayout; variable labwareId; m_decklayout = Instrument.GetDeckLayoutObject(); //labwareId = SeqGetLabwareId(i_sequenceLabware); labware = m_decklayout.Labware(str_LabID); labware.GetObject2("{3E5213CF-57C9-4911-B33E-05E77130E4DB}", rack); // IEditLabware6 rack.CntrAtPosition(ctr,str_PosID); o_containerBaseThickness = ctr.ContainerBaseDepth; rack.ReleaseObject(); ctr.ReleaseObject(); labware.ReleaseObject(); m_decklayout.ReleaseObject(); } // {{{ 901 1 0 "a4be7d8b_2a73_4f35_84e17bc4fb14c563" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_containerBaseThickness = MthRound(o_containerBaseThickness, 1); // }} "" // {{{ 5 "CONT_GetContainerBaseThickness" "End" } // }} "" // {{{ 5 "CONT_GetContainerDepth" "Begin" function CONT_GetContainerDepth( device & Instrument, sequence i_seq_Labware, variable i_bool_UseDeckCoordinates, variable & o_ContainerDepth, variable & o_ContainerClearanceHeight ) void { // }} "" private variable flt_Z_Bottom; private variable flt_NotUsed; private variable strFunctionName; private variable str_LabID; private variable bool_SequenceValid; private variable str_PosID; // {{ 5 "CONT_GetContainerDepth" "InitLocals" o_ContainerDepth = 0; o_ContainerClearanceHeight = 0; // }} "" // {{ 903 1 0 "aab6cb73_3629_4cd3_8728d8fd02cd25bf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 904 1 0 "fdc55e27_35a7_4630_b89c3dd0c627151f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 906 1 0 "5ddd606c_307b_431d_82e8a8e21664123f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 907 1 0 "326a9909_595f_4e6f_9e58919ab6a79de5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 908 1 0 "3b5618c9_bc6f_4afc_b96137d95e241eeb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 909 1 0 "326a9909_595f_4e6f_9e58919ab6a79de5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 910 1 0 "aab6cb73_3629_4cd3_8728d8fd02cd25bf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 911 1 0 "d2407df2_a26b_47d7_97f01e76dc13260d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_ContainerDepth = 0; // }} "" // {{ 912 1 0 "5e9b3a86_4725_4172_a4f295d86a87db4d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_ContainerClearanceHeight = 0.0; // }} "" // {{{ 913 1 0 "dcf2c19a_457a_41fc_90caf863c1855d5a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(Instrument, str_LabID, str_PosID, flt_NotUsed, flt_NotUsed, flt_Z_Bottom, flt_NotUsed); // }} "" { object rack; object ctr; object labware; object m_decklayout; variable labwareId; m_decklayout = Instrument.GetDeckLayoutObject(); //labwareId = SeqGetLabwareId(i_sequenceLabware); labware = m_decklayout.Labware(str_LabID); labware.GetObject2("{3E5213CF-57C9-4911-B33E-05E77130E4DB}", rack); // IEditLabware6 rack.CntrAtPosition(ctr,str_PosID); o_ContainerDepth = ctr.Depth; o_ContainerClearanceHeight = ctr.Clearance; rack.ReleaseObject(); ctr.ReleaseObject(); labware.ReleaseObject(); m_decklayout.ReleaseObject(); } // {{{ 915 1 0 "aae73eae_d33c_42c8_a99ed56430e23562" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_ContainerClearanceHeight = MthRound(o_ContainerClearanceHeight, 1); // }} "" // {{{ 916 1 0 "198fa18c_a592_427a_a1654ef56e08348b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_ContainerDepth = MthRound(o_ContainerDepth, 1); // }} "" // {{ 917 1 0 "e3fc0a2f_83dd_4c8f_bee2891d11ed7162" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bool_UseDeckCoordinates == 1) { // }} "" // {{ 918 1 0 "0d0fc613_92b3_4280_b7b53df8176d00e9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_ContainerClearanceHeight = o_ContainerClearanceHeight + flt_Z_Bottom; // }} "" // {{ 919 1 0 "11ac18dd_a61f_4af0_9d46ade97177b01b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_ContainerDepth = o_ContainerDepth + flt_Z_Bottom; // }} "" // {{ 920 1 0 "e3fc0a2f_83dd_4c8f_bee2891d11ed7162" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "CONT_GetContainerDepth" "End" } // }} "" // {{{ 5 "CONT_GetContainerWidth" "Begin" function CONT_GetContainerWidth( device & Instrument, sequence i_seq_Labware, variable & o_flt_ContainerWidth ) void { // }} "" private variable strFunctionName; private variable str_LabID; private variable flt_ContainerDiameter; private variable str_PosID; private variable bool_SequenceValid; // {{ 5 "CONT_GetContainerWidth" "InitLocals" o_flt_ContainerWidth = 0; // }} "" // {{ 922 1 0 "5dfee177_d5d0_4fd2_960ade0093fa165f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 923 1 0 "1ba8d44f_3113_4cc0_bb69c8d63cb6eade" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 925 1 0 "9e286b05_2671_4a70_b39a694c69fd204f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 926 1 0 "9ab2e23b_58d2_438a_bb4aa8cef316fac8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 927 1 0 "c22b3970_3452_4e3b_ba502625ac4840f4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 928 1 0 "9ab2e23b_58d2_438a_bb4aa8cef316fac8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 929 1 0 "5dfee177_d5d0_4fd2_960ade0093fa165f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 930 1 0 "b79d82a1_d7d6_40d0_b9240194cc6efc87" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_ContainerDiameter = 0.0; // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = Instrument.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); objRack4.GetRackData(objRackDataParams); flt_ContainerDiameter = objEditLabware5.CntrDiameter(str_PosID); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{ 932 1 0 "94095135_3a8f_42b4_be89897ce814b77b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_ContainerWidth = flt_ContainerDiameter; // }} "" // {{{ 5 "CONT_GetContainerWidth" "End" } // }} "" // {{{ 5 "FILE_GetDefinitionFileValue" "Begin" function FILE_GetDefinitionFileValue( variable & i_str_ConfigFilePath, variable i_str_ValueToSearch, variable & o_str_Value ) variable { // }} "" private variable str_DataDefinition; private variable strFunctionName; private variable bool_FileExists; private variable str_Instance; private variable bool_ReturnValue; private variable str_Extension; // {{ 5 "FILE_GetDefinitionFileValue" "InitLocals" o_str_Value = 0; // }} "" // {{ 934 1 0 "9e82e857_1690_439f_b573875ddb7df4d4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_Value = Translate(""); // }} "" // {{ 935 1 0 "fb78f7b6_bd6e_4761_b197bfa8d896a985" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_ReturnValue = 0; // }} "" // {{ 936 1 0 "b4447c56_f0d8_4b4b_97b49e64c4e698a8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 937 1 0 "8c157dc3_226f_4200_a2f206d34d821d01" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 939 1 0 "99f15f86_c9cb_4765_a207921bc882a97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(i_str_ConfigFilePath); // }} "" // {{ 940 1 0 "465021b0_7e93_4e6f_8a7bedbfe13d0dff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 0) { // }} "" Trace(i_str_ConfigFilePath," - File doesn't exist!"); // {{{ 942 1 0 "8e6a8f05_84f3_4070_963216805657b2a3" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (bool_ReturnValue); // }} "" // {{ 943 1 0 "465021b0_7e93_4e6f_8a7bedbfe13d0dff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 944 1 0 "a7140242_7836_4080_9702f3de258e2c4f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ValueToSearch = StrConcat2(i_str_ValueToSearch, Translate("")); // }} "" // {{ 945 1 0 "b4447c56_f0d8_4b4b_97b49e64c4e698a8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 946 1 0 "d390ca00_e445_4204_92566ba9aa4c761e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Extension = HSLExtensions::File::GetFileExtension(i_str_ConfigFilePath); // }} "" // {{ 947 1 0 "3fabca3b_d108_4b05_87fcb4a6b90c8324" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_DataDefinition = Translate(""); // }} "" // {{ 948 1 0 "8fadc8e7_822f_4d71_9184bd3af7314ce1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Instance = Translate(""); // }} "" // {{ 949 1 0 "9baaac3d_bcb8_4704_af2f6768ceee1e2e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Extension == "rck") { // }} "" // {{ 950 1 0 "fd0de778_19a4_40ff_b36c1e0180c2895d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_DataDefinition = Translate("RECTRACK"); // }} "" // {{ 951 1 0 "7a2b0430_0aca_4e66_9b337afec93d104a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Instance = Translate("default"); // }} "" // {{ 952 1 0 "9baaac3d_bcb8_4704_af2f6768ceee1e2e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 953 1 0 "62c6e661_18cf_43ff_9cbac019ebf7499e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Extension == "ctr") { // }} "" // {{ 954 1 0 "4584cab7_8015_4458_9875a6605620a8f8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_DataDefinition = Translate("CONTAINER"); // }} "" // {{ 955 1 0 "1955a138_f2fa_4e54_93a8a89d025d6c1b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Instance = Translate("default"); // }} "" // {{ 956 1 0 "62c6e661_18cf_43ff_9cbac019ebf7499e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 957 1 0 "ea8466fe_d742_49b5_a2e01533fde32084" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Extension == "tml") { // }} "" // {{ 958 1 0 "7c3e1bdd_4e42_4e71_a89395dba63bb77d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_DataDefinition = Translate("TEMPLATE"); // }} "" // {{ 959 1 0 "3e1065b7_9c53_459e_bfc7da2c0edd3012" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Instance = Translate("default"); // }} "" // {{ 960 1 0 "ea8466fe_d742_49b5_a2e01533fde32084" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 961 1 0 "8cdf045a_db8f_4562_95627742c8f65b1f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Extension == "lid") { // }} "" // {{ 962 1 0 "e59eaec4_c72f_4410_9a5ca88f6261ff4f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_DataDefinition = Translate("COVER"); // }} "" // {{ 963 1 0 "6f81ecef_5766_4446_af96268babf1283f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Instance = Translate("default"); // }} "" // {{ 964 1 0 "8cdf045a_db8f_4562_95627742c8f65b1f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 965 1 0 "6821905a_dec6_4165_9bc0725aca69f149" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Extension == "lay") { // }} "" // {{ 966 1 0 "91a8725b_00e1_4528_b6240c323794a220" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_DataDefinition = Translate("DECKLAY"); // }} "" // {{ 967 1 0 "6d2b89bd_a4b2_4da5_800f38e4ea88ff94" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Instance = Translate("ML_STAR"); // }} "" // {{ 968 1 0 "6821905a_dec6_4165_9bc0725aca69f149" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 969 1 0 "641ca262_e38f_439a_aa1d9a7624219e9d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Extension == "dck") { // }} "" // {{ 970 1 0 "3b742828_84dc_4717_a55774ac12fd071b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_DataDefinition = Translate("DECK"); // }} "" // {{ 971 1 0 "fb93b1ac_b8cd_4deb_b40440196223a109" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Instance = Translate("0"); // }} "" // {{ 972 1 0 "641ca262_e38f_439a_aa1d9a7624219e9d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 973 1 0 "a6e6c29b_faf5_435e_aa59a872a0de3f43" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Extension == "tpl") { // }} "" // {{ 974 1 0 "faa29b91_6250_492a_bbbbfb8e372b86e9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_DataDefinition = Translate("DECKLAY"); // }} "" // {{ 975 1 0 "c788be7a_481f_4545_8025c31500d1ee79" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Instance = Translate("default"); // }} "" // {{ 976 1 0 "a6e6c29b_faf5_435e_aa59a872a0de3f43" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Data definition: ",str_DataDefinition); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 978 1 0 "872f5940_5471_4ab7_9f7fb6579ff60710" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 979 1 0 "a5cb5265_2e1d_4ad2_9fc51d21ce73ed81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_DataDefinition != "") { // }} "" { object objCfgFile; objCfgFile.CreateObject("HXCFGFILLIB.HxCfgFile"); objCfgFile.LoadFile(i_str_ConfigFilePath); onerror goto HandleError; if(objCfgFile.ExistDataDef(str_DataDefinition,str_Instance) == 1) { //o_str_Value = objCfgFile.GetDataDefValueAsString(str_DataDefinition,"default",i_str_ValueToSearch); objCfgFile.LookupDataDefValueAsString(str_DataDefinition,str_Instance,i_str_ValueToSearch,o_str_Value); } onerror goto 0; err.Clear(); objCfgFile.ReleaseObject(); HandleError: { objCfgFile.ReleaseObject(); } } // {{ 981 1 0 "497cb8d4_39f1_4abf_af145e11edfc7d0a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (o_str_Value != "") { // }} "" // {{ 982 1 0 "7990e648_3b02_44aa_99ab1c3840b1492e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_ReturnValue = 1; // }} "" // {{ 983 1 0 "497cb8d4_39f1_4abf_af145e11edfc7d0a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 984 1 0 "55a04581_3863_481c_a9f73120b498fc83" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_ReturnValue = 0; // }} "" // {{ 985 1 0 "497cb8d4_39f1_4abf_af145e11edfc7d0a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 986 1 0 "a5cb5265_2e1d_4ad2_9fc51d21ce73ed81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" Trace("File type: ",str_Extension," unknown!"); // {{ 988 1 0 "1a511feb_5209_45dc_ac4483985905aea4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_ReturnValue = 0; // }} "" // {{ 989 1 0 "a5cb5265_2e1d_4ad2_9fc51d21ce73ed81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 990 1 0 "9ec6ed28_8d6d_445a_b4438a7181abfacc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_ReturnValue == 0) { // }} "" // {{ 991 1 0 "edcf2ff7_5c54_427a_bf6161cb63b4e0f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Extension == "lay") { // }} "" // {{ 992 1 0 "7bf0d6fe_aeb2_4562_8cd7fe6853d961fd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Instance = Translate("default"); // }} "" { object objCfgFile; objCfgFile.CreateObject("HXCFGFILLIB.HxCfgFile"); objCfgFile.LoadFile(i_str_ConfigFilePath); onerror goto HandleError2; if(objCfgFile.ExistDataDef(str_DataDefinition,str_Instance) == 1) { //o_str_Value = objCfgFile.GetDataDefValueAsString(str_DataDefinition,"default",i_str_ValueToSearch); objCfgFile.LookupDataDefValueAsString(str_DataDefinition,str_Instance,i_str_ValueToSearch,o_str_Value); } onerror goto 0; err.Clear(); objCfgFile.ReleaseObject(); HandleError2: { objCfgFile.ReleaseObject(); } } // {{ 994 1 0 "6ae094f1_a7e6_4cf0_bc249caa5cb70d81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (o_str_Value != "") { // }} "" // {{ 995 1 0 "c8a23ed5_c604_4ae0_8f99938881e4ed19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_ReturnValue = 1; // }} "" // {{ 996 1 0 "6ae094f1_a7e6_4cf0_bc249caa5cb70d81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 997 1 0 "7a089ecc_3a5c_4ce2_9df0d7c4eecc517a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_ReturnValue = 0; // }} "" // {{ 998 1 0 "6ae094f1_a7e6_4cf0_bc249caa5cb70d81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 999 1 0 "edcf2ff7_5c54_427a_bf6161cb63b4e0f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1000 1 0 "9ec6ed28_8d6d_445a_b4438a7181abfacc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 1001 1 0 "01992fcc_7b30_4591_a2c85b2e2bfdd5b8" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (bool_ReturnValue); // }} "" // {{{ 5 "FILE_GetDefinitionFileValue" "End" } // }} "" // {{{ 5 "LABWARE_GetCarrierAndSiteID" "Begin" function LABWARE_GetCarrierAndSiteID( device & Instrument, sequence i_seq_Labware, variable & o_str_TemplateID, variable & o_str_TemplateSiteID ) void { // }} "" private variable strFunctionName; private variable str_LabID; private variable str_PosID; private variable bool_SequenceValid; // {{ 5 "LABWARE_GetCarrierAndSiteID" "InitLocals" o_str_TemplateID = 0; o_str_TemplateSiteID = 0; // }} "" // {{ 1003 1 0 "d10f9b96_23d4_493b_bee1096f5adad7c1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1004 1 0 "9a29a614_946a_4eb7_92229c3508dc477c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1006 1 0 "6de18761_0890_466a_8d5adf43e0718fd2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 1007 1 0 "2d11f75d_c675_425b_a922599137fa8a71" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 1008 1 0 "43e11d0f_eae3_4bbf_933b729ba4cfa3e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 1009 1 0 "2d11f75d_c675_425b_a922599137fa8a71" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1010 1 0 "d10f9b96_23d4_493b_bee1096f5adad7c1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1011 1 0 "00e57ceb_daaf_4333_8ad6c3d6c041ce2b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_TemplateID = Translate(""); // }} "" // {{ 1012 1 0 "c1ae71fc_649c_46b9_a360f49f5ee09000" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_TemplateSiteID = Translate(""); // }} "" { object obj_Decklayout; obj_Decklayout = Instrument.GetDeckLayoutObject(); if (!obj_Decklayout.IsNull()) { object EditDecklayout5; object Parameter; object LabwareObjects; object LabwareNames; variable Array_Keys[]; variable intCounter; obj_Decklayout.GetObject("IEditDeckLayout5", EditDecklayout5); LabwareObjects.CreateObject("HXPARAMSLib.HxPars"); LabwareNames.CreateObject("HXPARAMSLib.HxPars"); obj_Decklayout.TemplateLabwareNames(LabwareObjects); Array_Keys = LabwareObjects.GetKeys(); for(intCounter=1; intCounter<=Array_Keys.GetSize(); intCounter++) { LabwareNames = LabwareObjects.Item1(intCounter); if(LabwareNames.Item1("Labwr_Id") == str_LabID) { o_str_TemplateSiteID = LabwareNames.Item1("Labwr_DkSiteId"); o_str_TemplateID = LabwareNames.Item1("Labwr_TemplateId"); } } obj_Decklayout.ReleaseObject(); EditDecklayout5.ReleaseObject(); Parameter.ReleaseObject(); LabwareObjects.ReleaseObject(); LabwareNames.ReleaseObject(); } } // {{{ 5 "LABWARE_GetCarrierAndSiteID" "End" } // }} "" // {{{ 5 "LABWARE_GetCarrierTracks" "Begin" function LABWARE_GetCarrierTracks( device & Instrument, sequence i_seq_Labware, variable & o_int_TotalTracks, variable & o_int_LeftMostTrack, variable & o_int_RightMostTrack ) void { // }} "" private variable flt_X_Coord; private variable flt_Z_Coord; private variable flt_Y_Coord; private variable strFunctionName; private variable str_TemplateID; private variable str_LabID; private variable flt_LabwareLength; private variable str_ConfigFile; private variable int_NumberOfTracks; private variable str_Extension; private variable str_TemplateSiteID; private variable str_PosID; private variable bool_SequenceValid; private variable flt_LabwareWidth; // {{ 5 "LABWARE_GetCarrierTracks" "InitLocals" o_int_TotalTracks = 0; o_int_LeftMostTrack = 0; o_int_RightMostTrack = 0; // }} "" // {{ 1015 1 0 "715376ce_9788_42bc_aab2ee0086ac8173" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1016 1 0 "e2eef577_d80f_4489_a1a90d0606696cef" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1018 1 0 "c66d67ef_8adb_42e7_b5183a878062948c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 1019 1 0 "95b6d945_4485_4fb2_b2e891b06c19a6a4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 1020 1 0 "bf179bb8_4dfd_4185_b0dc21a449c40de4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 1021 1 0 "95b6d945_4485_4fb2_b2e891b06c19a6a4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1022 1 0 "715376ce_9788_42bc_aab2ee0086ac8173" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1023 1 0 "8a4a2fb6_3692_493d_8908ee21a06aaab0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_LeftMostTrack = 0; // }} "" // {{ 1024 1 0 "d1c781f1_5f9c_4f81_82f8b0ca0c4b7fb3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_RightMostTrack = 0; // }} "" // {{ 1025 1 0 "c4a3c25d_3878_4751_b52efff8449b8706" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_TotalTracks = 0; // }} "" // {{{ 1026 1 0 "ee46c2ab_4784_404b_8361e51c5d852317" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetCarrierAndSiteID(Instrument, i_seq_Labware, str_TemplateID, str_TemplateSiteID); // }} "" // {{{ 1027 1 0 "6d948843_a0ce_4727_ace1b898f1684bfa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetConfigFile(Instrument, i_seq_Labware, str_ConfigFile); // }} "" // {{{ 1028 1 0 "7a5f7bc8_8724_42c5_bcb37405df947653" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Extension = HSLExtensions::File::GetFileExtension(str_ConfigFile); // }} "" // {{ 1029 1 0 "e92d8d5e_c710_4996_905ff28f6d279678" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Extension == "rck") { // }} "" // {{ 1030 1 0 "521e28fa_492f_43a5_8e2b5d744382cde4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_TemplateID == "default") { // }} "" // {{{ 1031 1 0 "1a798f1e_6b19_450a_9c612eb55779740a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetLabwareLW(Instrument, i_seq_Labware, flt_LabwareLength, flt_LabwareWidth); // }} "" // {{ 1032 1 0 "b71dd6f9_4ad1_4295_a15481ccf308d266" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_int_TotalTracks = flt_LabwareWidth / 22.5; // }} "" // {{{ 1033 1 0 "c2c55795_7345_4ed1_97d7c4e6c86e322b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(o_int_TotalTracks, o_int_TotalTracks); // }} "" // {{{ 1034 1 0 "babae479_dac4_4064_949049c3b7c44f48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetLabwareOrigin(Instrument, i_seq_Labware, flt_X_Coord, flt_Y_Coord, flt_Z_Coord); // }} "" // {{ 1035 1 0 "4b2a6915_d9b9_49d5_88b682c749393f94" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_X_Coord = flt_X_Coord - 77.5; // }} "" // {{ 1036 1 0 "874b065b_ce5d_42f7_be9161fa923c66a5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_int_LeftMostTrack = flt_X_Coord / (22.5 * 1.0); // }} "" // {{{ 1037 1 0 "2cf01e1b_735f_4bf1_be21f4297b3828f1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(o_int_LeftMostTrack, o_int_LeftMostTrack); // }} "" // {{ 1038 1 0 "6930914e_feae_412d_ad5626bea6e806cb" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_int_RightMostTrack = o_int_LeftMostTrack + o_int_TotalTracks; // }} "" // {{{ 1039 1 0 "a91cb971_fbc4_40d3_be0c41c742043a46" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(o_int_RightMostTrack, o_int_RightMostTrack); // }} "" // {{ 1040 1 0 "f85a3c48_9b83_40b3_af0d5dcc137f4596" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_int_RightMostTrack = o_int_RightMostTrack - 1; // }} "" // {{ 1041 1 0 "521e28fa_492f_43a5_8e2b5d744382cde4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1042 1 0 "cfd4a406_0234_40ee_a6c03ccf68b80451" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_NumberOfTracks = DevGetLabwareData(Instrument, str_TemplateID, Translate("MlStarCarWidthAsT")); // }} "" // {{ 1043 1 0 "6f68d166_c84b_4c51_8fc93bf4559501e8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_NumberOfTracks != "") { // }} "" // {{{ 1044 1 0 "5c0eb263_9cc6_451f_954e80611292a6f5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(int_NumberOfTracks, o_int_TotalTracks); // }} "" // {{{ 1045 1 0 "7f50c5c1_9562_4e44_a1ebbdf198ac2db2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TEMPLATE_GetTemplateOrigin(Instrument, i_seq_Labware, flt_X_Coord, flt_Y_Coord, flt_Z_Coord); // }} "" // {{ 1046 1 0 "5afb39e4_35eb_4fdc_8e8e224947d0db96" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_X_Coord = flt_X_Coord - 77.5; // }} "" // {{ 1047 1 0 "424bfde4_b27f_4810_8ff221ca1d84ff58" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_int_LeftMostTrack = flt_X_Coord / (22.5 * 1.0); // }} "" // {{{ 1048 1 0 "e8d8c670_9372_472e_b48d10ff905d1ca4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(o_int_LeftMostTrack, o_int_LeftMostTrack); // }} "" // {{ 1049 1 0 "6d765a67_a05c_4ba0_a268ab30eeaf6e8c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_int_RightMostTrack = o_int_LeftMostTrack + o_int_TotalTracks; // }} "" // {{{ 1050 1 0 "6edbac25_efb8_4b87_9bdad3a481e80197" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(o_int_RightMostTrack, o_int_RightMostTrack); // }} "" // {{ 1051 1 0 "11b163ac_210f_4e19_b37aeab767d4164f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_int_RightMostTrack = o_int_RightMostTrack - 1; // }} "" // {{ 1052 1 0 "6f68d166_c84b_4c51_8fc93bf4559501e8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1053 1 0 "521e28fa_492f_43a5_8e2b5d744382cde4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1054 1 0 "e92d8d5e_c710_4996_905ff28f6d279678" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1055 1 0 "534eef62_f3d8_443f_9bb12f36de1efb7b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_NumberOfTracks = DevGetLabwareData(Instrument, str_TemplateID, Translate("MlStarCarWidthAsT")); // }} "" // {{ 1056 1 0 "235cd30f_ee53_43a5_b370e496883d3879" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_NumberOfTracks != "") { // }} "" // {{{ 1057 1 0 "e8de95d1_1d75_40e1_a83264a17180f4c0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(int_NumberOfTracks, o_int_TotalTracks); // }} "" // {{{ 1058 1 0 "7f0a29dc_c50a_41e8_b8c5b3340ecf4db0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TEMPLATE_GetTemplateOrigin(Instrument, i_seq_Labware, flt_X_Coord, flt_Y_Coord, flt_Z_Coord); // }} "" // {{ 1059 1 0 "16dce282_2471_4516_95d63d33f6c179de" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_X_Coord = flt_X_Coord - 77.5; // }} "" // {{ 1060 1 0 "04474d00_17d7_43d3_89e24edad45430e9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_int_LeftMostTrack = flt_X_Coord / (22.5 * 1.0); // }} "" // {{{ 1061 1 0 "05702d03_a691_4c02_be1d8a4a2b08ea46" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(o_int_LeftMostTrack, o_int_LeftMostTrack); // }} "" // {{ 1062 1 0 "ca8335f6_5d67_482e_9b0674df3e9f2818" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_int_RightMostTrack = o_int_LeftMostTrack + o_int_TotalTracks; // }} "" // {{{ 1063 1 0 "d32dbdc0_ab03_4614_a81308de3cf8e8a5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(o_int_RightMostTrack, o_int_RightMostTrack); // }} "" // {{ 1064 1 0 "9b2b4e6b_4ad6_41b5_a7428c63fb16cdaf" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_int_RightMostTrack = o_int_RightMostTrack - 1; // }} "" // {{ 1065 1 0 "235cd30f_ee53_43a5_b370e496883d3879" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1066 1 0 "e92d8d5e_c710_4996_905ff28f6d279678" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "LABWARE_GetCarrierTracks" "End" } // }} "" // {{{ 5 "LABWARE_GetConfigFile" "Begin" function LABWARE_GetConfigFile( device & Instrument, sequence i_seq_Labware, variable & o_str_ConfigFilePath ) void { // }} "" private variable strFunctionName; private variable str_LabID; private variable bool_SequenceValid; private variable str_PosID; // {{ 5 "LABWARE_GetConfigFile" "InitLocals" o_str_ConfigFilePath = 0; // }} "" // {{ 1068 1 0 "f05e2eee_e817_4786_a09de4c59104dfd5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1069 1 0 "cb488c61_7fee_4533_918d2e87fe665a5b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1071 1 0 "bbefc889_a576_4126_8083c32b8f062d16" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 1072 1 0 "63febfe7_4e1d_4124_9f04405c43e0a517" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 1073 1 0 "43d4b84a_d566_4f07_b8b4f38050ac5aed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 1074 1 0 "63febfe7_4e1d_4124_9f04405c43e0a517" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1075 1 0 "f05e2eee_e817_4786_a09de4c59104dfd5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1076 1 0 "3a953b09_2256_4e75_bea954951808ead5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ConfigFilePath = Translate(""); // }} "" //Get Config File { object objDeckLayout; objDeckLayout = Instrument.GetDeckLayoutObject(); if(!objDeckLayout.IsNull()) { object objLabware; onerror goto HandleLabwareError; objLabware = objDeckLayout.Labware(str_LabID); onerror goto 0; err.Clear(); if(!objLabware.IsNull()) { object objEditLabware5; objLabware.GetObject("IEditLabware5", objEditLabware5); o_str_ConfigFilePath = objEditLabware5.Filename; objEditLabware5.ReleaseObject(); objDeckLayout.ReleaseObject(); objLabware.ReleaseObject(); } } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if(errorID != 0) { if (errorID==-1574764487) { Trace("LabwareID is unknown."); } else { Trace("Unknown error occured."); } } } } // {{{ 5 "LABWARE_GetConfigFile" "End" } // }} "" // {{{ 5 "LABWARE_GetContainerBaseOffset" "Begin" function LABWARE_GetContainerBaseOffset( device & Instrument, sequence i_seq_Labware, variable & o_flt_ContainerBaseOffset ) void { // }} "" private variable strFunctionName; private variable str_LabID; private variable str_PosID; private variable bool_SequenceValid; private variable str_ConfigFilePath; private variable str_Return; // {{ 5 "LABWARE_GetContainerBaseOffset" "InitLocals" o_flt_ContainerBaseOffset = 0; // }} "" // {{ 1079 1 0 "db7be763_ed55_4723_a7789c6d10c5e2b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1080 1 0 "ffa6965e_799f_430e_a91a20d0c17b31d6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1082 1 0 "1134655d_5117_4466_98b163ff2c783506" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 1083 1 0 "a1b3a29d_b9c4_43b1_ae45d6aa8825d37f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 1084 1 0 "10219a67_b082_411b_a77544ae25cfa804" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 1085 1 0 "a1b3a29d_b9c4_43b1_ae45d6aa8825d37f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1086 1 0 "db7be763_ed55_4723_a7789c6d10c5e2b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1087 1 0 "432f8f0e_246b_4971_b41262270ca8e36b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_ContainerBaseOffset = 0; // }} "" // {{{ 1088 1 0 "adf77e13_c511_475c_99eb7818b4a6b8a5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetConfigFile(Instrument, i_seq_Labware, str_ConfigFilePath); // }} "" // {{{ 1089 1 0 "bd890004_dc5a_4b94_bcbce1e672c6f739" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ConfigFilePath, Translate("Cntr.1.base"), str_Return); // }} "" // {{{ 1090 1 0 "6e44f0d9_590a_4d06_b9f78aada9058fcb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, o_flt_ContainerBaseOffset); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ { object rack; object labware; object m_decklayout; variable labwareId; m_decklayout = Instrument.GetDeckLayoutObject(); //labwareId = SeqGetLabwareId(i_sequenceLabware); labware = m_decklayout.Labware(str_LabID); labware.GetObject("IRectRack2", rack); // IEditLabware6 o_flt_ContainerBaseOffset = rack.ContainerBaseOffset(str_PosID); rack.ReleaseObject(); labware.ReleaseObject(); m_decklayout.ReleaseObject(); } /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 1092 1 0 "e55579cc_f6d5_409d_aa0d045cb40dfae2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_ContainerBaseOffset = MthRound(o_flt_ContainerBaseOffset, 1); // }} "" // {{{ 5 "LABWARE_GetContainerBaseOffset" "End" } // }} "" // {{{ 5 "LABWARE_GetCurrentPosition" "Begin" function LABWARE_GetCurrentPosition( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void { // }} "" private variable flt_NotUsed; private variable strFunctionName; private variable str_LabID; private variable bool_SequenceValid; private variable str_PosID; // {{ 5 "LABWARE_GetCurrentPosition" "InitLocals" o_flt_X_Coord = 0; o_flt_Y_Coord = 0; o_flt_Z_Coord = 0; // }} "" // {{ 1094 1 0 "00b39eea_b24a_44c9_92e8787549b53862" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1095 1 0 "3a2c3bd3_f571_421b_a6969fa7bb0bbff9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1097 1 0 "7e739f4a_776c_46c3_a78f666084d206ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 1098 1 0 "ba1ea033_0c48_42da_9d5a253232c1177b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 1099 1 0 "2f1f0d2a_b62c_4db1_bde655aecf5b3efc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 1100 1 0 "ba1ea033_0c48_42da_9d5a253232c1177b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1101 1 0 "00b39eea_b24a_44c9_92e8787549b53862" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1102 1 0 "c2453cbf_1a61_4ac7_b345ac39ae73098f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_X_Coord = 0.0; // }} "" // {{ 1103 1 0 "0ee08731_b774_4d79_b7b03b0f5b41fa9d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Y_Coord = 0.0; // }} "" // {{ 1104 1 0 "4c429fa2_fea1_4727_bfab4ad4c39e43a9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Z_Coord = 0.0; // }} "" // {{{ 1105 1 0 "fff6233f_4c41_4786_8d3b620720fd8f53" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(Instrument, str_LabID, str_PosID, o_flt_X_Coord, o_flt_Y_Coord, o_flt_Z_Coord, flt_NotUsed); // }} "" // {{{ 5 "LABWARE_GetCurrentPosition" "End" } // }} "" // {{{ 5 "LABWARE_GetDescription" "Begin" function LABWARE_GetDescription( device & Instrument, sequence i_seq_Labware, variable & o_str_LabwareDescription ) void { // }} "" private variable str_ReturnValue; private variable strFunctionName; private variable str_LabID; private variable str_ConfigFile; private variable bool_SequenceValid; private variable str_PosID; // {{ 5 "LABWARE_GetDescription" "InitLocals" o_str_LabwareDescription = 0; // }} "" // {{ 1107 1 0 "df76fa03_0e8b_4d49_bba42218c50d3d17" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1108 1 0 "268ef770_782c_4a5a_95900fe6eb9fe9ef" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1110 1 0 "80b056ad_748b_40da_917859aaff400276" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 1111 1 0 "e974e721_07fd_4209_9322a91500e7472b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 1112 1 0 "a1c1716a_4c81_438f_a092ce517566e560" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 1113 1 0 "e974e721_07fd_4209_9322a91500e7472b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1114 1 0 "df76fa03_0e8b_4d49_bba42218c50d3d17" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1115 1 0 "a30d6cb9_69aa_41a9_bd93f15667f71e15" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetConfigFile(Instrument, i_seq_Labware, str_ConfigFile); // }} "" // {{ 1116 1 0 "9390d6b9_951e_4a22_9fa3aed97f059b9a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LabwareDescription = Translate(""); // }} "" // {{{ 1117 1 0 "3e0d1415_221e_470d_83754a178f92a66f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ConfigFile, Translate("Description"), str_ReturnValue); // }} "" // {{{ 1118 1 0 "d0240c6a_08ed_4286_a82d62cb346572db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_LabwareDescription = StrConcat2(str_ReturnValue, Translate("")); // }} "" // {{{ 5 "LABWARE_GetDescription" "End" } // }} "" // {{{ 5 "LABWARE_GetFirstPosition" "Begin" function LABWARE_GetFirstPosition( device & Instrument, variable i_str_LabID, variable & o_str_PosID ) void { // }} "" private variable int_Increment; private variable str_ErrorDescription; private variable strFunctionName; private variable bool_LabwareNotValid; private variable int_TotalColumns; private variable int_Index; private variable int_TotalRows; // {{ 5 "LABWARE_GetFirstPosition" "InitLocals" o_str_PosID = 0; // }} "" // {{ 1120 1 0 "6a9d1840_3325_4c1a_8f92adc4d3732c41" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{ 1122 1 0 "96102bbd_4387_49e9_a27ae791c5f87618" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TotalRows = 0; // }} "" // {{ 1123 1 0 "fd3a733b_aaac_4d91_ad1f84573592f91d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TotalColumns = 0; // }} "" // {{ 1124 1 0 "aca22a44_34c9_4b58_80b195d65f0b34a4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Index = 0; // }} "" // {{ 1125 1 0 "50931d40_e68a_4380_8e72ebb731858302" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Increment = 0; // }} "" // {{{ 1126 1 0 "02361439_ccd6_4d77_9c7e498e9d723c2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_LabwareNotValid = DevIsValidLabwareForCurrentDeckLayout(Instrument, i_str_LabID); // }} "" // {{ 1127 1 0 "c25f7096_ed04_470a_90613dce2217667e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_LabwareNotValid == 0) { // }} "" // {{{ 1128 1 0 "2cadd740_77c4_4074_ada05080d6f4076c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorDescription = StrConcat8(Translate(""), Translate(""), Translate("Labware ID: '"), i_str_LabID, Translate("' is not known on the deck layout"), Translate(""), Translate(""), Translate("")); // }} "" // {{{ 1129 1 0 "6c2c9e1d_f694_440a_b57225bea9f7839f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, str_ErrorDescription); // }} "" // {{ 1130 1 0 "c25f7096_ed04_470a_90613dce2217667e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = Instrument.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(i_str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); objRack4.GetRackData(objRackDataParams); int_TotalRows = objRack4.Rows(); int_TotalColumns = objRack4.Columns(); int_Index = objRack4.Index(); int_Increment = objRack4.Increment(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{ 1132 1 0 "513e9581_e89a_42e3_86974747ea3098ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index == 1) { // }} "" // {{{ 1133 1 0 "a62bd2d5_b099_4e2b_bfa3a429c858dc36" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ANC::Convert_Numbers_to_Alpha_Numeric(int_Increment, 1, int_TotalRows, int_TotalColumns, o_str_PosID); // }} "" // {{ 1134 1 0 "513e9581_e89a_42e3_86974747ea3098ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1135 1 0 "db5e9292_bdc5_4901_a720d200db9e9718" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_PosID = StrConcat2(1, Translate("")); // }} "" // {{ 1136 1 0 "513e9581_e89a_42e3_86974747ea3098ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "LABWARE_GetFirstPosition" "End" } // }} "" // {{{ 5 "LABWARE_GetLabwareLW" "Begin" function LABWARE_GetLabwareLW( device & Instrument, sequence i_seq_Labware, variable & o_flt_Labware_L, variable & o_flt_Labware_W ) void { // }} "" private variable strFunctionName; private variable str_LabID; private variable bool_SequenceValid; private variable str_PosID; // {{ 5 "LABWARE_GetLabwareLW" "InitLocals" o_flt_Labware_L = 0; o_flt_Labware_W = 0; // }} "" // {{ 1187 1 0 "d9eb59c6_7612_4c5e_ba785001f5d79a9a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1188 1 0 "6faa4e98_07ee_4991_ae70eee4aa76834b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1190 1 0 "04aa8516_d700_4f7e_930be28cd2b5d6d7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 1191 1 0 "aa46bc7d_0797_43d7_b53efd1f89c8d6e5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 1192 1 0 "90c8093f_d40e_490d_9f505c983158876f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 1193 1 0 "aa46bc7d_0797_43d7_b53efd1f89c8d6e5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1194 1 0 "d9eb59c6_7612_4c5e_ba785001f5d79a9a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1195 1 0 "c08c84bf_0922_46f1_8b9c518de9c3c65e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Labware_W = 0.0; // }} "" // {{ 1196 1 0 "53c47686_e27c_454b_a41e82f5bee24d6a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Labware_L = 0.0; // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = Instrument.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); objRack4.GetRackData(objRackDataParams); o_flt_Labware_W = objRackDataParams.Item1("Labwr_XDim"); o_flt_Labware_L = objRackDataParams.Item1("Labwr_YDim"); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{{ 5 "LABWARE_GetLabwareLW" "End" } // }} "" // {{{ 5 "LABWARE_GetLabwareOrigin" "Begin" function LABWARE_GetLabwareOrigin( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void { // }} "" private variable strFunctionName; private variable flt_RackBase; private variable str_LabID; private variable flt_BoundaryX; private variable flt_BoundaryY; private variable bool_SequenceValid; private variable str_PosID; private variable flt_RackWidthX; private variable flt_RackWidthY; // {{ 5 "LABWARE_GetLabwareOrigin" "InitLocals" o_flt_X_Coord = 0; o_flt_Y_Coord = 0; o_flt_Z_Coord = 0; // }} "" // {{ 1199 1 0 "e3f64ff1_9cb8_4c4b_b5d91998380179f4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1200 1 0 "5f313af5_15d4_46fc_865919b515846e43" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1202 1 0 "30defa28_8566_4613_98953084ee1767a4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 1203 1 0 "8004f92c_d2cd_440e_9458ec6a85082686" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 1204 1 0 "712c7d19_eb72_4b60_b6976924540b2b0f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 1205 1 0 "8004f92c_d2cd_440e_9458ec6a85082686" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1206 1 0 "e3f64ff1_9cb8_4c4b_b5d91998380179f4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1207 1 0 "896b1f8f_b558_4802_9d59dfdb44898376" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_X_Coord = 0.0; // }} "" // {{ 1208 1 0 "ddf005df_2d07_48d6_af68b0a48730ea23" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Y_Coord = 0.0; // }} "" // {{ 1209 1 0 "ee109760_53a4_4680_adcbb9919a09c878" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Z_Coord = 0.0; // }} "" // {{ 1210 1 0 "8f67085d_139e_4d97_a1ae05f61baafa99" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BoundaryX = 0.0; // }} "" // {{ 1211 1 0 "241dfd33_0172_4447_a09fc53ead23d33d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BoundaryY = 0.0; // }} "" // {{ 1212 1 0 "07a08a1e_2b3a_486f_80dcdcaf974f0104" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_RackWidthX = 0.0; // }} "" // {{ 1213 1 0 "9e314d73_f3e2_4345_89f5b19e5e7a0c7f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_RackWidthY = 0.0; // }} "" // {{ 1214 1 0 "9d93fca7_7b32_43c5_97034b9e0db171e0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_RackBase = 0.0; // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = Instrument.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); objRack4.GetRackData(objRackDataParams); flt_BoundaryX = objRackDataParams.Item1("Labwr_Bndry1X"); flt_BoundaryY = objRackDataParams.Item1("Labwr_Bndry1Y"); flt_RackWidthX = objRackDataParams.Item1("Labwr_XDim"); flt_RackWidthY = objRackDataParams.Item1("Labwr_YDim"); flt_RackBase = objRack4.RackBase(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{ 1216 1 0 "19be50a9_df27_49fe_918d1122a7f33c4c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_X_Coord = flt_BoundaryX; // }} "" // {{ 1217 1 0 "530f5e9c_4b10_45b9_8730ab8c5a3236bb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Y_Coord = flt_BoundaryY; // }} "" // {{ 1218 1 0 "4b3fb755_2f93_4354_b9ca42bc62568573" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Z_Coord = flt_RackBase; // }} "" // {{{ 1219 1 0 "c561f3c6_2917_4450_9bd72bc31043d1fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_Z_Coord = MthRound(o_flt_Z_Coord, 1); // }} "" // {{{ 5 "LABWARE_GetLabwareOrigin" "End" } // }} "" // {{{ 5 "LABWARE_GetLabwareStackHeight" "Begin" function LABWARE_GetLabwareStackHeight( device & Instrument, sequence i_seq_Labware, variable & o_flt_LabwareStackHeight ) void { // }} "" private variable str_ReturnValue; private variable strFunctionName; private variable str_LabID; private variable str_ConfigFile; private variable bool_SequenceValid; private variable str_PosID; // {{ 5 "LABWARE_GetLabwareStackHeight" "InitLocals" o_flt_LabwareStackHeight = 0; // }} "" // {{ 1221 1 0 "9cfbe748_5dcb_4dd5_b96182902b909bf9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1222 1 0 "0ef78d8b_aeb4_4816_901025f5fd7d4871" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1224 1 0 "7628bcf8_1d87_4149_b1afac7008a79234" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 1225 1 0 "b64ed138_a1f8_4cd2_ad8dac5d4902daa4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 1226 1 0 "f0d608aa_8a5c_44df_82641d2d88a3f7ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 1227 1 0 "b64ed138_a1f8_4cd2_ad8dac5d4902daa4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1228 1 0 "9cfbe748_5dcb_4dd5_b96182902b909bf9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1229 1 0 "b20f8fbe_47d0_426e_8d11d3db92b07969" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_LabwareStackHeight = 0.0; // }} "" // {{{ 1230 1 0 "e1e4b038_20af_4fd1_89dad151c83c3d1e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetConfigFile(Instrument, i_seq_Labware, str_ConfigFile); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Config File: ",str_ConfigFile); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1232 1 0 "4a2e189c_ae80_4251_8edc392c5840e75b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ { object objCfgFile; objCfgFile.CreateObject("HXCFGFILLIB.HxCfgFile"); objCfgFile.LoadFile(str_ConfigFile); onerror goto HandleError; o_flt_LabwareStackHeight = objCfgFile.GetDataDefValueAsString("RECTRACK","default","StackHt"); onerror goto 0; err.Clear(); objCfgFile.ReleaseObject(); HandleError: { objCfgFile.ReleaseObject(); } } /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 1234 1 0 "ed55ecbe_1e34_4f62_9b6844d92487932a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ConfigFile, Translate("StackHt"), str_ReturnValue); // }} "" // {{{ 1235 1 0 "a93d238a_98d1_46de_8e2a1053742b9415" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_ReturnValue, o_flt_LabwareStackHeight); // }} "" // {{{ 5 "LABWARE_GetLabwareStackHeight" "End" } // }} "" // {{{ 5 "LABWARE_GetLabwareViewName" "Begin" function LABWARE_GetLabwareViewName( device & Instrument, sequence i_seq_Labware, variable & o_str_LabwareViewName ) void { // }} "" private variable str_ReturnValue; private variable strFunctionName; private variable str_LabID; private variable str_ConfigFile; private variable str_PosID; private variable bool_SequenceValid; // {{ 5 "LABWARE_GetLabwareViewName" "InitLocals" o_str_LabwareViewName = 0; // }} "" // {{ 1237 1 0 "1672d7ce_c926_4387_9d5b85b93bb40e47" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1238 1 0 "14de1014_b37b_4897_8b52b1329dd794de" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1240 1 0 "d32cd643_2cb7_4189_a8bb86e459b79ce4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 1241 1 0 "f2a46984_5014_4019_9966157bca29ddff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 1242 1 0 "a94b263f_22d4_4740_92285abdc395dcbc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 1243 1 0 "f2a46984_5014_4019_9966157bca29ddff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1244 1 0 "1672d7ce_c926_4387_9d5b85b93bb40e47" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1245 1 0 "c0f75acd_8c48_4e82_a8c507872da22f86" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetConfigFile(Instrument, i_seq_Labware, str_ConfigFile); // }} "" // {{ 1246 1 0 "7cc43b7d_c5d9_4096_86e982c5cf484516" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LabwareViewName = Translate(""); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ { object objEditLabware; object objDeckLayout; object objLabware; objDeckLayout = Instrument.GetDeckLayoutObject(); if(!objDeckLayout.IsNull()) { objLabware = objDeckLayout.Labware(str_LabID); if(!objLabware.IsNull()) { objLabware.GetObject("IEditLabware6", objEditLabware); o_str_LabwareViewName = objEditLabware.DisplayName; } } objEditLabware.ReleaseObject(); objDeckLayout.ReleaseObject(); objLabware.ReleaseObject(); } /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 1248 1 0 "e182da7d_6fe0_48c9_96296acf28d083f4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ConfigFile, Translate("ViewName"), str_ReturnValue); // }} "" // {{{ 1249 1 0 "cd8d24c4_bb4b_4c3b_b6afdc5a537b136e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_LabwareViewName = StrConcat2(str_ReturnValue, Translate("")); // }} "" // {{{ 5 "LABWARE_GetLabwareViewName" "End" } // }} "" // {{{ 5 "LABWARE_GetRackHeight" "Begin" function LABWARE_GetRackHeight( device & Instrument, sequence i_seq_Labware, variable i_bool_UseDeckCoordinates, variable & o_flt_RackHeight, variable & o_flt_RackClearanceHeight ) void { // }} "" private variable flt_NotUsed; private variable flt_RackHeight; private variable flt_ZBottom; private variable flt_RackBase; private variable strFunctionName; private variable str_LabID; private variable bool_SequenceValid; private variable str_PosID; private variable str_ConfigFile; private variable bln_ValueFound; private variable str_Value; // {{ 5 "LABWARE_GetRackHeight" "InitLocals" o_flt_RackHeight = 0; o_flt_RackClearanceHeight = 0; // }} "" // {{ 1251 1 0 "7001cb3c_fe7a_4d0e_b3f000e06886cebf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1252 1 0 "42b87a82_6f38_4137_9f4223aa7918fec5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1254 1 0 "7e8e89b3_bd4e_492b_9ab5008e321d6b53" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 1255 1 0 "1286d3fb_a855_4d86_be12897053de8832" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 1256 1 0 "b71e8ebc_3d03_4056_816c4845ff0248c0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 1257 1 0 "1286d3fb_a855_4d86_be12897053de8832" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1258 1 0 "7001cb3c_fe7a_4d0e_b3f000e06886cebf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1259 1 0 "8907f5ba_a2a9_4de7_8927033540142431" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_RackClearanceHeight = 0.0; // }} "" // {{ 1260 1 0 "6ef63179_453a_4288_a94708f81ff318f6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_RackHeight = 0.0; // }} "" // {{ 1261 1 0 "6393dcba_ddb9_40b9_bedcda7de9649b17" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_RackBase = 0.0; // }} "" // {{ 1262 1 0 "cf0f865b_ec52_482f_ae32a0b4adc1e1d3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_RackHeight = 0.0; // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = Instrument.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); objRack4.GetRackData(objRackDataParams); flt_RackHeight = objRackDataParams.Item1("Labwr_ZDim"); //o_flt_RackClearanceHeight = objEditLabware5.Clearance(str_PosID); flt_RackBase = objRack4.RackBase(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{ 1264 1 0 "a02d65f3_e33c_4625_9fe6a2a1b86246f7" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_RackHeight = flt_RackBase + flt_RackHeight; // }} "" // {{{ 1265 1 0 "29b7f726_76b0_45c3_962764bb22886bb2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetConfigFile(Instrument, i_seq_Labware, str_ConfigFile); // }} "" // {{{ 1266 1 0 "6aef7e97_eab2_4568_b3b699ba34d4fc7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ValueFound = FILE_GetDefinitionFileValue(str_ConfigFile, Translate("Clearance"), str_Value); // }} "" // {{ 1267 1 0 "f83e563e_beaf_49d0_9322da83018075c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == 0) { // }} "" // {{ 1268 1 0 "00f8c874_f182_4d2f_81a4ece7b8879c76" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_RackClearanceHeight = o_flt_RackHeight; // }} "" // {{ 1269 1 0 "f83e563e_beaf_49d0_9322da83018075c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1270 1 0 "62b59ced_bff6_40c9_b0740c140c24d04b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_RackClearanceHeight = StrFVal(str_Value); // }} "" // {{ 1271 1 0 "f83e563e_beaf_49d0_9322da83018075c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1272 1 0 "29c40ee0_613c_49ea_abf2b4764e0b5804" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(Instrument, str_LabID, str_PosID, flt_NotUsed, flt_NotUsed, flt_ZBottom, flt_NotUsed); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 1273 1 0 "22105929_d260_4db2_a546e61bd3d0be53" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetLabwareOrigin(Instrument, i_seq_Labware, flt_NotUsed, flt_NotUsed, flt_ZBottom); // }} "" // {{ 1274 1 0 "05a19ab6_7ede_4aaf_a6975ac977d4bf08" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bool_UseDeckCoordinates == 0) { // }} "" // {{ 1275 1 0 "65c9f61d_97b8_452e_abc6d6a19255196e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_RackHeight = o_flt_RackHeight - flt_ZBottom; // }} "" // {{ 1276 1 0 "05a19ab6_7ede_4aaf_a6975ac977d4bf08" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1277 1 0 "0384a1d6_4a25_4599_aacfece3a51cbf57" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_RackClearanceHeight = o_flt_RackClearanceHeight + flt_ZBottom; // }} "" // {{ 1278 1 0 "05a19ab6_7ede_4aaf_a6975ac977d4bf08" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "LABWARE_GetRackHeight" "End" } // }} "" // {{{ 5 "LABWARE_GetRowColumnNumber" "Begin" function LABWARE_GetRowColumnNumber( device & Instrument, sequence i_seq_Labware, variable & o_int_RowCount, variable & o_int_ColumnCount, variable & o_bool_AlphaNumeric, variable & o_bool_IncrementContainer ) void { // }} "" private variable strFunctionName; private variable str_LabID; private variable bool_SequenceValid; private variable str_PosID; // {{ 5 "LABWARE_GetRowColumnNumber" "InitLocals" o_int_RowCount = 0; o_int_ColumnCount = 0; o_bool_AlphaNumeric = 0; o_bool_IncrementContainer = 0; // }} "" // {{ 1280 1 0 "67d417f4_e59c_427d_b1787a80624bb8fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1281 1 0 "76938996_ca10_4657_b36dbe3652ca6fcf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1283 1 0 "2ce6989b_cb58_465a_b734e3ce15b9503c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 1284 1 0 "9264c2fc_fd8b_428c_b30bcb420d87dfb3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 1285 1 0 "53ba0483_c80b_4a3d_aa62393cbe213b0b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 1286 1 0 "9264c2fc_fd8b_428c_b30bcb420d87dfb3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1287 1 0 "67d417f4_e59c_427d_b1787a80624bb8fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1288 1 0 "53df32d4_ce24_478b_872dfdcf5034f421" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bool_AlphaNumeric = 0; // }} "" // {{ 1289 1 0 "c05b65c8_cc28_4733_9ff75b4bc07d2f80" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_ColumnCount = 0; // }} "" // {{ 1290 1 0 "ea44ddc8_bbe8_404f_8eec84127fd0cf40" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_RowCount = 0; // }} "" // {{ 1291 1 0 "7a662ea7_0776_4f8a_94076506ec93a547" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bool_IncrementContainer = 0; // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = Instrument.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); objRack4.GetRackData(objRackDataParams); o_int_RowCount = objRack4.Rows(); o_int_ColumnCount = objRack4.Columns(); o_bool_AlphaNumeric = objRack4.Index(); o_bool_IncrementContainer = objRack4.Increment(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{{ 5 "LABWARE_GetRowColumnNumber" "End" } // }} "" // {{{ 5 "LABWARE_GetVisibility" "Begin" function LABWARE_GetVisibility( device & Instrument, sequence i_seq_Labware, variable & o_bool_LabwareVisibility ) void { // }} "" private variable int_LabwareVisibility; private variable strFunctionName; private variable str_LabID; private variable str_PosID; private variable bool_SequenceValid; // {{ 5 "LABWARE_GetVisibility" "InitLocals" o_bool_LabwareVisibility = 0; // }} "" // {{ 1294 1 0 "334d42f4_87da_45f4_a1d656d3ed4bed05" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1295 1 0 "7896be9d_56f6_44d8_9caac791c67043fa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1297 1 0 "ce2b9f6e_5435_4dcb_b36b136daf7393a4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 1298 1 0 "68172f44_9bc5_44e0_82ee13259711bf3e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 1299 1 0 "0f38818c_4030_4bc9_a646736305c7163d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 1300 1 0 "68172f44_9bc5_44e0_82ee13259711bf3e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1301 1 0 "334d42f4_87da_45f4_a1d656d3ed4bed05" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1302 1 0 "84c1ee23_a5c4_4047_b8072f4816049161" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_LabwareVisibility = 0; // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = Instrument.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware6", objEditLabware5); int_LabwareVisibility = objEditLabware5.Visible(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{ 1304 1 0 "e5496e7a_4e16_463d_b527c1ca4571cfac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bool_LabwareVisibility = int_LabwareVisibility; // }} "" // {{ 1305 1 0 "b61bc61c_ffe2_41e4_b5c9e26898021975" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (o_bool_LabwareVisibility == 0) { // }} "" o_bool_LabwareVisibility = hslFalse; // {{ 1307 1 0 "b61bc61c_ffe2_41e4_b5c9e26898021975" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" o_bool_LabwareVisibility = hslTrue; // {{ 1309 1 0 "b61bc61c_ffe2_41e4_b5c9e26898021975" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "LABWARE_GetVisibility" "End" } // }} "" // {{{ 5 "LABWARE_IsContainersConnected" "Begin" function LABWARE_IsContainersConnected( device & Instrument, sequence i_seq_Labware, variable & o_bool_ConnectedContainer ) void { // }} "" private variable strFunctionName; private variable str_LabID; private variable bool_SequenceValid; private variable str_PosID; // {{ 5 "LABWARE_IsContainersConnected" "InitLocals" o_bool_ConnectedContainer = 0; // }} "" // {{ 1311 1 0 "bc1ddf32_6b67_43cd_9974a389cffa8965" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1312 1 0 "3b76f03d_dc38_4e16_83acbbb5daa5e856" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1314 1 0 "5606581a_53a2_4e76_97b153ae7f033f0b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 1315 1 0 "6116021b_5f88_4346_8dfb44d5f04c22a7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 1316 1 0 "bea6861b_a0d3_4a05_a0559136647c6156" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 1317 1 0 "6116021b_5f88_4346_8dfb44d5f04c22a7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1318 1 0 "bc1ddf32_6b67_43cd_9974a389cffa8965" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1319 1 0 "ef939abd_213d_4591_bd5fbdf992b89c46" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bool_ConnectedContainer = 0; // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = Instrument.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); //objRack4.GetRackData(objRackDataParams); //bool_ConectedCarrier = objRackDataParams.Item1("ConnectedCtr"); o_bool_ConnectedContainer = objRack4.ConnectedCtr(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{ 1321 1 0 "bf7965c4_be6b_43a9_a35d76a121c7c524" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (o_bool_ConnectedContainer == 1) { // }} "" o_bool_ConnectedContainer = hslTrue; // {{ 1323 1 0 "bf7965c4_be6b_43a9_a35d76a121c7c524" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" o_bool_ConnectedContainer = hslFalse; // {{ 1325 1 0 "bf7965c4_be6b_43a9_a35d76a121c7c524" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "LABWARE_IsContainersConnected" "End" } // }} "" // {{{ 5 "SEQ_GetDefaultSequence" "Begin" function SEQ_GetDefaultSequence( device & Instrument, variable i_str_LabID, variable i_bool_SortByColumn, sequence & o_seq_DefaultSequence ) void { // }} "" private variable int_Increment; private variable str_ErrorDescription; private variable i; private variable strFunctionName; private variable bool_LabwareNotValid; private variable int_TotalColumns; private variable str_PosID; private variable int_TotalRows; private variable int_TotalPositions; private variable int_Index; private variable str_ConfigFilePath; private variable str_HoleCount; private variable str_DataType; private variable bool_ValueFound; private variable str_Value; private variable int_StartingPosition; private variable int_CurrentPosition; // {{ 5 "SEQ_GetDefaultSequence" "InitLocals" { sequence __temp; o_seq_DefaultSequence = __temp; } // }} "" // {{{ 1327 1 0 "c77c20e7_c80d_4497_8adbc2cffd0d2bfd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_DefaultSequence); // }} "" // {{ 1328 1 0 "65afabf7_8f40_4154_9dce337ab501f85a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TotalRows = 0; // }} "" // {{ 1329 1 0 "2918244f_4f5a_4bd8_8a8d4fa02a41c52e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TotalColumns = 0; // }} "" // {{ 1330 1 0 "64679526_4185_4ffe_af162615d2d61cd7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Index = 0; // }} "" // {{ 1331 1 0 "18508f3a_1487_4d23_880a3aeec76ac764" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Increment = 0; // }} "" // {{{ 1332 1 0 "3e0cfe22_b609_4550_8e4327e88d4229c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_LabwareNotValid = DevIsValidLabwareForCurrentDeckLayout(Instrument, i_str_LabID); // }} "" // {{ 1333 1 0 "06885b8d_6d47_44f7_87c48afa10405e74" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_LabwareNotValid == 0) { // }} "" // {{{ 1334 1 0 "48814189_dc22_41fb_9efacde8b07708a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorDescription = StrConcat8(Translate(""), Translate(""), Translate("Labware ID: '"), i_str_LabID, Translate("' is not known on the deck layout"), Translate(""), Translate(""), Translate("")); // }} "" // {{{ 1335 1 0 "21766ac0_19aa_4905_b549e6c1128e4eb3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, str_ErrorDescription); // }} "" // {{ 1336 1 0 "06885b8d_6d47_44f7_87c48afa10405e74" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1337 1 0 "5412a107_452f_46d5_a201300a0bb46480" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ConfigFilePath = Translate(""); // }} "" //Get Config File { object objDeckLayout; objDeckLayout = Instrument.GetDeckLayoutObject(); if(!objDeckLayout.IsNull()) { object objLabware; onerror goto HandleLabwareError; objLabware = objDeckLayout.Labware(i_str_LabID); onerror goto 0; err.Clear(); if(!objLabware.IsNull()) { object objEditLabware5; objLabware.GetObject("IEditLabware5", objEditLabware5); str_ConfigFilePath = objEditLabware5.Filename; objEditLabware5.ReleaseObject(); objDeckLayout.ReleaseObject(); objLabware.ReleaseObject(); } } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if(errorID != 0) { if (errorID==-1574764487) { Trace("LabwareID is unknown."); } else { Trace("Unknown error occured."); } } } } // {{ 1339 1 0 "8885d8f0_5386_4875_aca43987b6466142" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1340 1 0 "a40f9069_64d8_422b_84a724ea64e262e8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ConfigFilePath, Translate("DataType"), str_DataType); // }} "" // {{ 1341 1 0 "a634b09b_7dd2_47d2_89332d6012a79b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_DataType == "3") { // }} "" // {{{ 1342 1 0 "ea0b15b2_6eab_494b_a2ef02f78d86ac5f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ConfigFilePath, Translate("DataType"), str_DataType); // }} "" // {{{ 1343 1 0 "0d07ef84_a372_4a2a_968f9be0d224cbb7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ConfigFilePath, Translate("HoleCnt"), str_HoleCount); // }} "" // {{{ 1344 1 0 "cca22f80_0ec4_49a2_bff6d8f1d875f0cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = StrIVal(str_HoleCount); // }} "" // {{ 1345 1 0 "a634b09b_7dd2_47d2_89332d6012a79b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = Instrument.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(i_str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); objRack4.GetRackData(objRackDataParams); int_TotalRows = objRack4.Rows(); int_TotalColumns = objRack4.Columns(); int_Index = objRack4.Index(); int_Increment = objRack4.Increment(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{ 1347 1 0 "0672d657_e11c_467a_82ab04683421f1a4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_TotalPositions = int_TotalColumns * int_TotalRows; // }} "" // {{ 1348 1 0 "a634b09b_7dd2_47d2_89332d6012a79b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1349 1 0 "59939118_9930_41c0_884b7253788088f1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_ValueFound = FILE_GetDefinitionFileValue(str_ConfigFilePath, Translate("IX.First"), str_Value); // }} "" // {{ 1350 1 0 "5d42de6f_46f6_4ddd_a4f090d2c4002ba9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_ValueFound == 1) { // }} "" // {{{ 1351 1 0 "a4576471_aa43_40b6_94c6b9863b157839" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_StartingPosition = StrIVal(str_Value); // }} "" // {{ 1352 1 0 "dabca5e6_f048_4b81_a2261c6dd29432c5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_StartingPosition = int_StartingPosition - 1; // }} "" // {{ 1353 1 0 "5d42de6f_46f6_4ddd_a4f090d2c4002ba9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1354 1 0 "ea398f1c_79ba_494b_9a859a6a51db8b34" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_StartingPosition = 0; // }} "" // {{ 1355 1 0 "5d42de6f_46f6_4ddd_a4f090d2c4002ba9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1356 1 0 "d8760cd5_afd4_4653_94767a371d25f889" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalPositions;) { i = i + 1; // }} "" // {{ 1357 1 0 "d3e6be97_1ecd_40ee_939be082a2015cbe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index == 1) { // }} "" // {{{ 1358 1 0 "44694204_ef16_4a39_b19464a9af17b423" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ANC::Convert_Numbers_to_Alpha_Numeric(i_bool_SortByColumn, i, int_TotalRows, int_TotalColumns, str_PosID); // }} "" // {{ 1359 1 0 "d3e6be97_1ecd_40ee_939be082a2015cbe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1360 1 0 "c57a87ec_cd86_4d89_bcb39543e2fbe394" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CurrentPosition = int_StartingPosition + i; // }} "" // {{{ 1361 1 0 "df3c30cc_45f1_40d0_a246f49875c4f2d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = StrConcat2(int_CurrentPosition, Translate("")); // }} "" // {{ 1362 1 0 "d3e6be97_1ecd_40ee_939be082a2015cbe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1363 1 0 "c38a3b15_5d4d_4f3a_b293fcf28817cfa6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq_DefaultSequence, i_str_LabID, str_PosID); // }} "" // {{ 1364 1 0 "d8760cd5_afd4_4653_94767a371d25f889" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1365 1 0 "4764b491_476f_4044_bf7ee60cf14f12a1" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq_DefaultSequence.SetCurrentPosition(1); // }} "" // {{{ 5 "SEQ_GetDefaultSequence" "End" } // }} "" // {{{ 5 "SEQ_GetDefaultSequenceForLabware" "Begin" private function SEQ_GetDefaultSequenceForLabware( device & Instrument, variable i_str_LabwareID, sequence & o_seq_DefaultSequence ) void { // }} "" private variable int_Return; // {{ 5 "SEQ_GetDefaultSequenceForLabware" "InitLocals" { sequence __temp; o_seq_DefaultSequence = __temp; } // }} "" // {{{ 1367 1 0 "b1401035_d14e_47cf_956f672a1deb8546" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_DefaultSequence); // }} "" // {{ 1368 1 0 "a497de4a_c219_46f6_a49b169806bd7e4d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Return = 0; // }} "" { object objDeckLayout; object objLabware; object objEditLabware6; object objSequence; objDeckLayout = Instrument.GetDeckLayoutObject(); //objSequence = objDeckLayout.GetObject(o_seq_DefaultSequence); if(!objDeckLayout.IsNull()) { objLabware = objDeckLayout.Labware(i_str_LabwareID); if(!objLabware.IsNull()) { objLabware.GetObject("IEditLabware6", objEditLabware6); objEditLabware6.DefaultSequence(objSequence); //int_Return = objEditLabware6.DefaultSequenceEdited(); //int_Return = objEditLabware6.DefaultSequenceValid(); } } objDeckLayout.ReleaseObject(); objEditLabware6.ReleaseObject(); objLabware.ReleaseObject(); } //Trace("Return: ",int_Return); // {{{ 5 "SEQ_GetDefaultSequenceForLabware" "End" } // }} "" // {{{ 5 "SEQ_ReloadSequence" "Begin" function SEQ_ReloadSequence( device & Instrument, sequence & io_seq_SequenceToReload ) void { // }} "" private variable str_SequenceName; // {{ 5 "SEQ_ReloadSequence" "InitLocals" // }} "" // {{{ 1371 1 0 "265def99_cb86_4a81_abd1516a39a6056f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SequenceName = SeqGetName(io_seq_SequenceToReload); // }} "" { object objDeckLayout; object objEditDeckLayout8; objDeckLayout = Instrument.GetDeckLayoutObject(); if(!objDeckLayout.IsNull()) { objDeckLayout.GetObject("IEditDeckLayout8", objEditDeckLayout8); objEditDeckLayout8.ReloadSequence(str_SequenceName); } objDeckLayout.ReleaseObject(); objEditDeckLayout8.ReleaseObject(); } // {{{ 5 "SEQ_ReloadSequence" "End" } // }} "" // {{{ 5 "TEMPLATE_GetConfigFile" "Begin" function TEMPLATE_GetConfigFile( device & Instrument, sequence i_seq_Labware, variable & o_str_ConfigFilePath ) void { // }} "" private variable str_TemplateSite; private variable strFunctionName; private variable str_LabID; private variable str_Template; private variable str_PosID; private variable bool_SequenceValid; // {{ 5 "TEMPLATE_GetConfigFile" "InitLocals" o_str_ConfigFilePath = 0; // }} "" // {{ 1374 1 0 "c211786e_47e3_4694_8b484d87fd5251e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1375 1 0 "6c490621_7789_4dc1_83dd855fcd9a4dba" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1377 1 0 "a7ba3b4f_835a_4ca0_a3631d90c3c98601" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 1378 1 0 "be5f95eb_7dae_4b73_8a8ffc54e291e5c5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 1379 1 0 "418cdb7a_c10d_4e55_9defbe18ae95ed2c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 1380 1 0 "be5f95eb_7dae_4b73_8a8ffc54e291e5c5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1381 1 0 "c211786e_47e3_4694_8b484d87fd5251e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1382 1 0 "7d7f0afa_3a10_4fb8_83eff03f1dcf184e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ConfigFilePath = Translate(""); // }} "" // {{{ 1383 1 0 "a279b698_fc28_41a0_b85f418a62235d05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetCarrierAndSiteID(Instrument, i_seq_Labware, str_Template, str_TemplateSite); // }} "" //Get Config File { object objDeckLayout; objDeckLayout = Instrument.GetDeckLayoutObject(); if(!objDeckLayout.IsNull()) { object objLabware; onerror goto HandleLabwareError; objLabware = objDeckLayout.Labware(str_Template); onerror goto 0; err.Clear(); if(!objLabware.IsNull()) { object objEditLabware5; objLabware.GetObject("IEditLabware5", objEditLabware5); o_str_ConfigFilePath = objEditLabware5.Filename; objEditLabware5.ReleaseObject(); objDeckLayout.ReleaseObject(); objLabware.ReleaseObject(); } } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if(errorID != 0) { if (errorID==-1574764487) { Trace("LabwareID is unknown."); } else { Trace("Unknown error occured."); } } } } // {{{ 5 "TEMPLATE_GetConfigFile" "End" } // }} "" // {{{ 5 "TEMPLATE_GetTemplateOrigin" "Begin" function TEMPLATE_GetTemplateOrigin( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void { // }} "" private variable str_TemplateSite; private variable flt_NotUsed; private variable strFunctionName; private variable str_LabID; private variable str_Template; private variable str_PosID; private variable bool_SequenceValid; // {{ 5 "TEMPLATE_GetTemplateOrigin" "InitLocals" o_flt_X_Coord = 0; o_flt_Y_Coord = 0; o_flt_Z_Coord = 0; // }} "" // {{ 1389 1 0 "7d2acab0_7ff8_4b3d_bec4dc3ec8cb0e41" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1390 1 0 "5493d386_ffd4_4450_aecbec35034e5611" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1392 1 0 "3bd4c9b6_161f_4fa6_90f7448f362ee9a0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 1393 1 0 "a2affdb7_1331_480e_8edaa3bb27a66ffb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 1394 1 0 "eaab8ff1_6691_4c32_9df6a960b0155cb5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 1395 1 0 "a2affdb7_1331_480e_8edaa3bb27a66ffb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1396 1 0 "7d2acab0_7ff8_4b3d_bec4dc3ec8cb0e41" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1397 1 0 "605f902f_3b9a_4632_b4a12dbc91280446" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetCarrierAndSiteID(Instrument, i_seq_Labware, str_Template, str_TemplateSite); // }} "" // {{ 1398 1 0 "4e82fc8c_92f3_492f_b02ecbaf8f9225f4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_X_Coord = 0.0; // }} "" // {{ 1399 1 0 "c08d1847_88e4_4cb8_8860b24c2a717595" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Y_Coord = 0.0; // }} "" // {{ 1400 1 0 "b1c40b88_f43a_4bea_bcfdf3816003806b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Z_Coord = 0.0; // }} "" // {{{ 1401 1 0 "00e89033_feaf_40f1_9c6ad4c5185c57ab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePosition(Instrument, str_Template, o_flt_X_Coord, o_flt_Y_Coord, o_flt_Z_Coord, flt_NotUsed); // }} "" // {{{ 5 "TEMPLATE_GetTemplateOrigin" "End" } // }} "" // {{{ 5 "_CalcualteOffsetHeight" "Begin" private function _CalcualteOffsetHeight( variable i_flt_WellAngle, variable i_flt_YOffset, variable & o_flt_ZOffset ) void { // }} "" private variable flt_Calculation1; private variable flt_Calculation2; private variable flt_Radians; private variable flt_Pi; // {{ 5 "_CalcualteOffsetHeight" "InitLocals" o_flt_ZOffset = 0; // }} "" // {{ 1408 1 0 "aa7da633_e7cd_4c76_8b6ea34ffe9c30f7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Pi = 3.14159265359; // }} "" // {{ 1409 1 0 "a91f4779_b64d_4a7e_bafd0d7a09abe9e0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Radians = 0.0; // }} "" flt_Radians = i_flt_WellAngle * (flt_Pi / 180); // {{{ 1411 1 0 "5b23d1eb_b772_4f48_b83620fd2d730362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Calculation1 = MthTan(flt_Radians); // }} "" // {{ 1412 1 0 "ec6fc824_ae38_4258_91fac1fe480f4350" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Calculation2 = flt_Calculation1 * i_flt_YOffset; // }} "" // {{{ 1413 1 0 "ba018251_5a00_406d_bc7f76696831d888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_ZOffset = MthRound(flt_Calculation2, 1); // }} "" // {{{ 5 "_CalcualteOffsetHeight" "End" } // }} "" // {{{ 5 "_CalculateWellAngle" "Begin" private function _CalculateWellAngle( variable i_flt_BottomWellSegment_Height, variable i_flt_BottomWellSegment_TopWidth, variable i_flt_BottomWellSegment_BottomWidth, variable & o_flt_BottomWellSegment_Angle ) void { // }} "" private variable flt_Angle; private variable flt_BottomRadius; private variable flt_Calculation; private variable flt_Pi; private variable flt_WellRadius; // {{ 5 "_CalculateWellAngle" "InitLocals" o_flt_BottomWellSegment_Angle = 0; // }} "" // {{ 1415 1 0 "58174418_404d_4ab2_86aee90a09806818" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Pi = 3.14159265359; // }} "" // {{ 1416 1 0 "10b7e402_70d0_4c48_8673e73dd6b5e9f7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BottomRadius = 0.0; // }} "" // {{ 1417 1 0 "db759ebd_8c1c_4617_9792a784b14035e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_flt_BottomWellSegment_BottomWidth > 0) { // }} "" // {{ 1418 1 0 "abf150e2_9bcd_46ab_85b2e504e8448448" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_BottomRadius = i_flt_BottomWellSegment_BottomWidth / (2 * 1.0); // }} "" // {{ 1419 1 0 "db759ebd_8c1c_4617_9792a784b14035e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1420 1 0 "59d3c237_8a40_4734_89192cd26aee90c8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_WellRadius = i_flt_BottomWellSegment_TopWidth / (2 * 1.0); // }} "" // {{ 1421 1 0 "713dbe3c_5286_4643_be81def895c0cd9f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_WellRadius > flt_BottomRadius) { // }} "" // {{ 1422 1 0 "40ea317b_e824_4d34_9bc959fd4a9723a1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_WellRadius = flt_WellRadius - flt_BottomRadius; // }} "" // {{ 1423 1 0 "713dbe3c_5286_4643_be81def895c0cd9f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1424 1 0 "0e67227e_7cff_4e6c_9ea1fb251cc807ec" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Calculation = i_flt_BottomWellSegment_Height / (flt_WellRadius * 1.0); // }} "" // {{{ 1425 1 0 "b5c9715f_cbc5_4d1d_822d9fb9ec606e3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Angle = MthATan(flt_Calculation); // }} "" flt_Angle = flt_Angle * (180.0 / flt_Pi); // {{{ 1427 1 0 "fb13c1b9_0f79_4f12_8c6ea19a857efeb9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_BottomWellSegment_Angle = MthRound(flt_Angle, 1); // }} "" // {{{ 5 "_CalculateWellAngle" "End" } // }} "" // {{{ 5 "_ConvertToFloat" "Begin" private function _ConvertToFloat( variable iVariable, variable & oVariable ) void { // }} "" private variable str_Variable; // {{ 5 "_ConvertToFloat" "InitLocals" oVariable = 0; // }} "" // {{{ 1429 1 0 "622e7e0e_3376_4906_9bae1894586619a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Variable = StrConcat2(iVariable, Translate("")); // }} "" // {{{ 1430 1 0 "83c6edca_242e_493b_a38089332ac21aa6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" oVariable = StrFVal(str_Variable); // }} "" // {{{ 5 "_ConvertToFloat" "End" } // }} "" // {{{ 5 "_ConvertToInteger" "Begin" private function _ConvertToInteger( variable iVariable, variable & oVariable ) void { // }} "" private variable str_Variable; // {{ 5 "_ConvertToInteger" "InitLocals" oVariable = 0; // }} "" // {{{ 1432 1 0 "2aeb9ed9_2d6c_4210_968c8bd8ee1ab66c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Variable = StrConcat2(iVariable, Translate("")); // }} "" // {{{ 1433 1 0 "4bdbf79d_cd2c_4e19_8d55cf8190412563" "{C1F3C015-47B3-4514-9407-AC2E65043419}" oVariable = StrIVal(str_Variable); // }} "" // {{{ 5 "_ConvertToInteger" "End" } // }} "" // {{{ 5 "_FunctionError" "Begin" private function _FunctionError( variable i_str_FunctionName, variable i_str_ErrorDescription ) void { // }} "" private variable int_CutNum; private variable str_ErrorDescription; private variable int_Length; private variable strFunctionName; private variable int_Count; // {{ 5 "_FunctionError" "InitLocals" // }} "" // {{{ 1435 1 0 "fba91acb_69ab_44d8_899097b3fe5b3b02" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(i_str_FunctionName, Translate(":")); // }} "" // {{ 1436 1 0 "21d30552_14ef_41b4_a78d1270ad63d2dc" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1437 1 0 "ee7bcc49_3f9c_49b6_8b8b8381934cf0f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(i_str_FunctionName); // }} "" // {{ 1438 1 0 "db4a32dd_f80b_4cef_b0c2fb69a52b2d95" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1439 1 0 "044743f7_56ef_4a21_8068383f374bf059" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName = StrMid(i_str_FunctionName, int_Count, int_CutNum); // }} "" // {{{ 1440 1 0 "4875c113_bb1f_4ee0_9c927691d8068726" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorDescription = StrConcat8(strFunctionName, Translate("\n\n"), i_str_ErrorDescription, Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{{ 1441 1 0 "6885aeb9_c005_4718_aae862b570de3f62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, str_ErrorDescription); // }} "" // {{{ 5 "_FunctionError" "End" } // }} "" // {{{ 5 "_GetLabwareOrigin" "Begin" private function _GetLabwareOrigin( device & Instrument, variable i_str_LabID, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void { // }} "" private variable flt_RackBase; private variable flt_BoundaryX; private variable flt_BoundaryY; private variable flt_RackWidthX; private variable flt_RackWidthY; // {{ 5 "_GetLabwareOrigin" "InitLocals" o_flt_X_Coord = 0; o_flt_Y_Coord = 0; o_flt_Z_Coord = 0; // }} "" // {{ 1443 1 0 "d1f0cff6_2ace_487a_a765ceb3309c6a37" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_X_Coord = 0.0; // }} "" // {{ 1444 1 0 "cd6f158e_6669_4275_98d3b05cc020ff93" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Y_Coord = 0.0; // }} "" // {{ 1445 1 0 "39cf774f_8548_4272_88ee2dd37b6e9c08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Z_Coord = 0.0; // }} "" // {{ 1446 1 0 "dfcd0fa7_16ac_4014_a2e018abe8b1daa5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BoundaryX = 0.0; // }} "" // {{ 1447 1 0 "80266a1b_03ac_4d44_985bf666b1a19f2b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BoundaryY = 0.0; // }} "" // {{ 1448 1 0 "8b75a4f8_5d82_4a34_8036b2a958ca4b6a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_RackWidthX = 0.0; // }} "" // {{ 1449 1 0 "13b4b8c3_9ce2_46f8_810ced8365b34c75" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_RackWidthY = 0.0; // }} "" // {{ 1450 1 0 "e67ab11f_b803_4ecd_b7f7166ed204c09f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_RackBase = 0.0; // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = Instrument.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(i_str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); objRack4.GetRackData(objRackDataParams); flt_BoundaryX = objRackDataParams.Item1("Labwr_Bndry1X"); flt_BoundaryY = objRackDataParams.Item1("Labwr_Bndry1Y"); flt_RackWidthX = objRackDataParams.Item1("Labwr_XDim"); flt_RackWidthY = objRackDataParams.Item1("Labwr_YDim"); flt_RackBase = objRack4.RackBase(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{ 1452 1 0 "02cbe165_494d_4912_84acb66ac7bf8cc8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_X_Coord = flt_BoundaryX; // }} "" // {{ 1453 1 0 "c2c9729f_ab6c_4d73_941291b7e6c58a6f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Y_Coord = flt_BoundaryY; // }} "" // {{ 1454 1 0 "797678e7_db67_4910_b5e7514a426e5152" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Z_Coord = flt_RackBase; // }} "" // {{{ 1455 1 0 "a7e29799_e22c_4f68_9042dcd7b804551d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_Z_Coord = MthRound(o_flt_Z_Coord, 1); // }} "" // {{{ 5 "_GetLabwareOrigin" "End" } // }} "" // {{{ 5 "_GetLabwareWL" "Begin" private function _GetLabwareWL( device & Instrument, variable i_str_LabID, variable & o_flt_LabwareWidth, variable & o_flt_LabwareLength ) void { // }} "" private variable flt_RackWidthX; private variable flt_RackWidthY; // {{ 5 "_GetLabwareWL" "InitLocals" o_flt_LabwareWidth = 0; o_flt_LabwareLength = 0; // }} "" // {{ 1457 1 0 "e35e44ef_152f_4674_9aa8ed7800baea70" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_LabwareWidth = 0.0; // }} "" // {{ 1458 1 0 "375bcdd0_6e84_47aa_b74ee278a1e9db7e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_LabwareLength = 0.0; // }} "" // {{ 1459 1 0 "16b1f675_3885_43f9_b7624a8ba94d3f71" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_RackWidthX = 0.0; // }} "" // {{ 1460 1 0 "782af942_6414_4d9a_bf17c70f9420283f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_RackWidthY = 0.0; // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = Instrument.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(i_str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); objRack4.GetRackData(objRackDataParams); o_flt_LabwareLength = objRackDataParams.Item1("Labwr_XDim"); o_flt_LabwareWidth = objRackDataParams.Item1("Labwr_YDim"); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{{ 5 "_GetLabwareWL" "End" } // }} "" // {{{ 5 "_GetSequencePosition" "Begin" private function _GetSequencePosition( device & Instrument, sequence i_seq_LabwareSequence, variable & o_str_LabID, variable & o_str_PosID ) variable { // }} "" private variable bool_SequenceValid; // {{ 5 "_GetSequencePosition" "InitLocals" o_str_LabID = 0; o_str_PosID = 0; // }} "" // {{ 1463 1 0 "58653a24_e762_40f2_ae722acdc01c184e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_SequenceValid = 1; // }} "" // {{ 1464 1 0 "0eded145_632a_45ac_82fd4a21893cd6a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_7AF290DCA46C40d188FDA2A6B2903BB8 ; err.Clear(); // }} "" // {{{ 1465 1 0 "088dffda_21f9_43a3_99b2fe16da57bb10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_LabID = SeqGetLabwareId(i_seq_LabwareSequence); // }} "" // {{{ 1466 1 0 "3412b37c_7f18_4ff7_90d1535d56fceca8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_PosID = SeqGetPositionId(i_seq_LabwareSequence); // }} "" // {{ 1467 1 0 "c044347c_2101_4570_8debcd3a42fe36d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (o_str_LabID == "") { // }} "" // {{ 1468 1 0 "f502fa44_ff34_4934_a903c6379502917e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_SequenceValid = 0; // }} "" // {{ 1469 1 0 "c044347c_2101_4570_8debcd3a42fe36d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1470 1 0 "0eded145_632a_45ac_82fd4a21893cd6a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_7AF290DCA46C40d188FDA2A6B2903BB8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1471 1 0 "04462609_938a_4f6d_b52195c5fa7606a0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_SequenceValid = 0; // }} "" // {{ 1472 1 0 "0eded145_632a_45ac_82fd4a21893cd6a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1473 1 0 "e93084ba_5505_4795_9c081cbec0fded18" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (bool_SequenceValid); // }} "" // {{{ 5 "_GetSequencePosition" "End" } // }} "" // {{{ 5 "_RemoveTruncatedSequencePositions" "Begin" private function _RemoveTruncatedSequencePositions( device & Instrument, sequence & io_Sequence ) void { // }} "" private variable i; private variable int_TotalSequencePositions; private variable str_LabID; private variable str_PosID; private sequence seq_AdjustedSequence; // {{ 5 "_RemoveTruncatedSequencePositions" "InitLocals" // }} "" // {{{ 1483 1 0 "ad0d4d78_7af8_4eb0_9230599d724f1ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalSequencePositions = SeqGetTotal(io_Sequence); // }} "" // {{{ 1484 1 0 "13498ee9_657e_4574_b113a26993c95a51" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_AdjustedSequence); // }} "" // {{ 1485 1 0 "38d449a6_8d10_46c1_b2b655e719d6d810" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalSequencePositions;) { i = i + 1; // }} "" // {{{ 1486 1 0 "ad45454d_9185_43ee_b0a61d29837c553d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(io_Sequence); // }} "" // {{{ 1487 1 0 "312948f6_ada5_4060_9433e604ab4369d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(io_Sequence); // }} "" // {{{ 1488 1 0 "c9392821_7949_4bee_b72b43b8c472445a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(io_Sequence, 1); // }} "" // {{ 1489 1 0 "41868a9d_5e62_4e8b_b01b6acd66f5e79e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_LabID != "") { // }} "" // {{ 1490 1 0 "eda44de4_2325_4f91_8d0afd96b9f8578e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_PosID != "") { // }} "" // {{{ 1491 1 0 "68f12f21_ebcb_4e19_ba19dca4e8241e20" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(seq_AdjustedSequence, str_LabID, str_PosID); // }} "" // {{ 1492 1 0 "eda44de4_2325_4f91_8d0afd96b9f8578e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1493 1 0 "41868a9d_5e62_4e8b_b01b6acd66f5e79e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1494 1 0 "38d449a6_8d10_46c1_b2b655e719d6d810" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1495 1 0 "d45beffe_9793_4282_ae20061d86a34139" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_AdjustedSequence.SetCurrentPosition(1); // }} "" // {{{ 1496 1 0 "c04b3564_d8fb_49af_80ac6d547d68da27" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(io_Sequence, seq_AdjustedSequence); // }} "" // {{{ 5 "_RemoveTruncatedSequencePositions" "End" } // }} "" // {{{ 5 "ADJUST_AddContainerToPosition" "Begin" function ADJUST_AddContainerToPosition( device & Instrument, sequence i_seq_LabwareToChange, variable i_str_NewContainerFile, variable i_flt_OffsetX, variable i_flt_OffsetY, variable i_flt_OffsetZ ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable str_LabID; private variable strFunctionName_Cut; private variable int_Count; private variable str_PosID; private variable bool_SequenceValid; private variable bln_FileExists; private variable str_Extension; private variable str_FileName; private variable flt_ContainerXOffset; private variable flt_ContainerYOffset; private variable flt_ContainerBaseOffset; private variable str_Return; private variable str_LabwareConfigFilePath; private variable int_SingleContainer; private sequence seq_Temp; private variable int_ContainerIndex; private variable str_OffsetX; private variable str_OffsetY; private variable str_OffsetZ; private variable flt_Y_Offset; private variable flt_Z_Offset; private variable flt_X_Offset; // {{ 5 "ADJUST_AddContainerToPosition" "InitLocals" // }} "" // {{ 51 1 0 "f94a43cc_1136_4eee_b7e673bd9be74c76" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 52 1 0 "2e46d9ed_f8d9_4c94_abb445816e9b62e0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 54 1 0 "0bd2d112_574c_4f63_83877d1e5cd8ef22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 55 1 0 "85bf953c_9a26_4d6f_abcda2c94819ae7b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 56 1 0 "0a9fdf19_4eca_4a6f_aafca265f13eca4f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 57 1 0 "05b485d7_3e00_44e2_a2a32408cb9a9e42" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 58 1 0 "807484fd_0425_4bbd_a565e8ef83aa5e44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 60 1 0 "f94a43cc_1136_4eee_b7e673bd9be74c76" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 61 1 0 "6152ce29_38ac_4e02_9facc44839d24037" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 62 1 0 "b4bc651c_5d88_4b78_ab5d14d6b9bc6806" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 64 1 0 "b1012efa_7b78_4597_b1acdd451f8890e7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_LabwareToChange, str_LabID, str_PosID); // }} "" // {{ 65 1 0 "01ad280f_68d7_4882_9ed288c11d75c42e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 66 1 0 "e52eb9f5_e8fe_452f_b5932117f9f7540e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 67 1 0 "01ad280f_68d7_4882_9ed288c11d75c42e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 68 1 0 "6152ce29_38ac_4e02_9facc44839d24037" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 69 1 0 "16e97883_5eb5_4028_beac49e6ab55e7f9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 70 1 0 "8646e154_881f_4a8c_bbb775419eada571" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_FileExists = HSLExtensions::File::Exists(i_str_NewContainerFile); // }} "" // {{ 71 1 0 "7298d11a_5c38_4dad_ba9e95d93466cb93" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_FileExists == 0) { // }} "" Trace(i_str_NewContainerFile,": FILE DOESN'T EXIST!"); // {{ 73 1 0 "d7f26674_30bf_4ae9_a5fc53d8c8f719e8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 75 1 0 "d7f26674_30bf_4ae9_a5fc53d8c8f719e8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 76 1 0 "cb10d51c_226a_42ff_a599b27ea6332d2f" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 77 1 0 "7298d11a_5c38_4dad_ba9e95d93466cb93" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 78 1 0 "002fa24d_e465_4cd6_9fc3a1ec8db93b48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Extension = HSLExtensions::File::GetFileExtension(i_str_NewContainerFile); // }} "" // {{ 79 1 0 "8244c082_0bc2_4e9e_8f8524303e4782b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Extension != "ctr") { // }} "" Trace(i_str_NewContainerFile,": FILE NOT A CONTAINER FILE!"); // {{ 81 1 0 "aa7484d8_b94a_43a4_b1434ba61719ed75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 83 1 0 "aa7484d8_b94a_43a4_b1434ba61719ed75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 84 1 0 "fec1b600_e4b1_4dd3_986f33682a75c7fb" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 85 1 0 "8244c082_0bc2_4e9e_8f8524303e4782b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 86 1 0 "16e97883_5eb5_4028_beac49e6ab55e7f9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 87 1 0 "3d4d89f0_7852_4ed3_86a8d3ff37337108" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetConfigFile(Instrument, i_seq_LabwareToChange, str_LabwareConfigFilePath); // }} "" // {{{ 88 1 0 "59655a6d_6a86_4051_a2988076c51f6799" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_LabwareConfigFilePath, Translate("SingleCntr"), str_Return); // }} "" // {{{ 89 1 0 "1fe582e1_9438_4e3e_9347b341b7598b87" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(str_Return, int_SingleContainer); // }} "" // {{ 90 1 0 "574cdc2b_dda2_41ac_ae616274e01d6f8a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_SingleContainer == 0) { // }} "" // {{{ 91 1 0 "ceb60b71_a951_484a_a8469e29d2cc7bab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SEQ_GetDefaultSequenceForLabware(Instrument, str_LabID, seq_Temp); // }} "" // {{{ 92 1 0 "a712ffcd_c264_4b97_9464aaa9a77fc0f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ContainerIndex = SeqLookupPosition(seq_Temp, str_LabID, str_PosID, 1, 1); // }} "" // {{ 93 1 0 "574cdc2b_dda2_41ac_ae616274e01d6f8a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 94 1 0 "e892f998_f9d2_4dd7_9853b07f12cc9989" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ContainerIndex = 1; // }} "" // {{ 95 1 0 "574cdc2b_dda2_41ac_ae616274e01d6f8a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 96 1 0 "dc3b93b4_1fc5_4a9a_9db1b1a20f283649" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 97 1 0 "1f9e7333_66b4_499a_9dda3d8030b428f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_OffsetX = StrConcat4(Translate("Cntr."), int_ContainerIndex, Translate(".offsetx"), Translate("")); // }} "" // {{{ 98 1 0 "34481405_8e6b_4277_a7441edca7d333cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_LabwareConfigFilePath, str_OffsetX, str_Return); // }} "" // {{{ 99 1 0 "9a24fcd7_6cee_4aee_b7caca4b2518bdfe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerXOffset); // }} "" // {{ 100 1 0 "ed41c289_91cd_4271_99876a79a5f05c7b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 101 1 0 "1ab72718_ab58_4f95_97b50b01dc7ecdea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_OffsetY = StrConcat4(Translate("Cntr."), int_ContainerIndex, Translate(".offsety"), Translate("")); // }} "" // {{{ 102 1 0 "b401a5e7_f954_4c40_94b3ecd81b848a40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_LabwareConfigFilePath, str_OffsetY, str_Return); // }} "" // {{{ 103 1 0 "dc122a3b_514c_42c6_af74915c87cf3ac8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerYOffset); // }} "" // {{ 104 1 0 "43071576_cf25_4e33_a9edce327c74934e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 105 1 0 "26ab6765_04a6_41e1_82fd6515d43da1b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_OffsetZ = StrConcat4(Translate("Cntr."), int_ContainerIndex, Translate(".base"), Translate("")); // }} "" // {{{ 106 1 0 "7fc299d7_6ad6_400e_bcc6fdf4fa36b4ac" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_LabwareConfigFilePath, str_OffsetZ, str_Return); // }} "" // {{{ 107 1 0 "3080b949_08a2_45e9_aafabfccf082f2d8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBaseOffset); // }} "" // {{{ 108 1 0 "d59dbf85_c865_41e9_951f3f83a8d18b5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FileName = HSLExtensions::File::GetFileNameWithoutExtension(i_str_NewContainerFile); // }} "" // {{ 109 1 0 "92cd770b_d5e3_4097_bd84c91d7fa4d818" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_X_Offset = i_flt_OffsetX + flt_ContainerXOffset; // }} "" // {{ 110 1 0 "59be89ba_550b_48ba_99c71cf05d535d5d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Offset = i_flt_OffsetY + flt_ContainerYOffset; // }} "" // {{ 111 1 0 "f31f5c70_27b7_4299_80a43099b26d2094" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Offset = i_flt_OffsetZ + flt_ContainerBaseOffset; // }} "" Trace("Add ",str_FileName," to ",str_LabID," at ",str_PosID," with offsets ","X: ",flt_X_Offset," Y: ",flt_Y_Offset," Z: ",flt_Z_Offset); // {{{ 113 1 0 "0ed40865_1e6d_4fc9_a3a2b91c92a46946" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevAddContainerToRack(Instrument, str_LabID, str_PosID, i_str_NewContainerFile, flt_X_Offset, flt_Y_Offset, flt_Z_Offset); // }} "" // {{ 114 1 0 "4743d476_0e71_401a_8f65ecbd044a82d0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 116 1 0 "4743d476_0e71_401a_8f65ecbd044a82d0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "ADJUST_AddContainerToPosition" "End" } // }} "" // {{{ 5 "LABWARE_GetLabwareCenter" "Begin" function LABWARE_GetLabwareCenter( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Center, variable & o_flt_Y_Center ) void { // }} "" private variable str_ConfigFilePath; private variable strFunctionName; private variable str_LabID; private variable str_PosID; private variable bool_SequenceValid; private variable flt_Pi; private variable flt_Width; private variable str_X; private variable str_Y; private variable flt_Length; private variable flt_Origin_X; private variable flt_Origin_Y; private variable flt_Origin_Z; private variable flt_NotUsed; private variable flt_Offset_X; private variable flt_Offset_Y; private variable flt_Center_X; private variable flt_HalfLength; private variable flt_HalfHyp; private variable flt_Radians; private variable flt_Center_Y; private variable flt_Calculation; private variable flt_HalfWidth; private variable flt_Hypotenuse; private variable flt_PlateAngle; private variable flt_AdjustedPlateAngle; private variable flt_LabwareAngle; private variable flt_CosineCalculation; private variable flt_SineCalculation; // {{ 5 "LABWARE_GetLabwareCenter" "InitLocals" o_flt_X_Center = 0; o_flt_Y_Center = 0; // }} "" // {{ 1138 1 0 "e9143fde_d2e3_4c9c_85c7d1c19aedd56e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_X_Center = 0.0; // }} "" // {{ 1139 1 0 "8d6bd767_2afc_4144_a8615e2d2defe0ec" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Y_Center = 0.0; // }} "" // {{ 1140 1 0 "5652c4b5_a36c_4918_9dbc2c92670e98e4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Pi = 3.14159265359; // }} "" // {{ 1141 1 0 "81bc9a8d_ea36_479b_a62d8757133055d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1142 1 0 "5be11d8b_24c5_486e_abbafbdf4e9d90c6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1144 1 0 "f760c5bd_4e8f_4e85_91ef5585de4136d4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 1145 1 0 "983f34e2_bc42_4d72_84215babe91babd6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 1146 1 0 "1c5a2021_66a3_4e96_9af3a13d33ca5c8e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 1147 1 0 "983f34e2_bc42_4d72_84215babe91babd6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1148 1 0 "81bc9a8d_ea36_479b_a62d8757133055d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1149 1 0 "a0ed4bd3_762f_4edf_8a8d982a5691e2c8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ConfigFilePath = Translate(""); // }} "" //Get Config File { object objDeckLayout; objDeckLayout = Instrument.GetDeckLayoutObject(); if(!objDeckLayout.IsNull()) { object objLabware; onerror goto HandleLabwareError; objLabware = objDeckLayout.Labware(str_LabID); onerror goto 0; err.Clear(); if(!objLabware.IsNull()) { object objEditLabware5; objLabware.GetObject("IEditLabware5", objEditLabware5); str_ConfigFilePath = objEditLabware5.Filename; objEditLabware5.ReleaseObject(); objDeckLayout.ReleaseObject(); objLabware.ReleaseObject(); } } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if(errorID != 0) { if (errorID==-1574764487) { Trace("LabwareID is unknown."); } else { Trace("Unknown error occured."); } } } } // {{{ 1151 1 0 "b8bad97c_d3a7_4952_a936e048b01b4c1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ConfigFilePath, Translate("Dim.Dx"), str_X); // }} "" // {{{ 1152 1 0 "ec6f461b_83b1_4a7c_818b467eb8c0daf6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_ConfigFilePath, Translate("Dim.Dy"), str_Y); // }} "" // {{{ 1153 1 0 "ade6e452_bee1_4a0a_a8e78c68e84495a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Width = StrFVal(str_X); // }} "" // {{{ 1154 1 0 "096d9050_936a_4f08_9fac1648610561cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Length = StrFVal(str_Y); // }} "" // {{{ 1155 1 0 "72d194f6_17de_47cf_a070906dfdcdb5d1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetLabwareOrigin(Instrument, i_seq_Labware, flt_Origin_X, flt_Origin_Y, flt_Origin_Z); // }} "" // {{ 1156 1 0 "4d2324e7_ef9d_407e_8e1bf14e98f05b3e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1157 1 0 "f1b42e46_ea93_4762_825adcb6cf8eea2e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Hypotenuse = 0.0; // }} "" flt_Hypotenuse = flt_Length^2 + flt_Width^2; // {{{ 1159 1 0 "7bb0782e_85b8_4d54_9353a241fb5d5667" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Hypotenuse = MthPow(flt_Hypotenuse, 0.5); // }} "" // {{{ 1160 1 0 "5eb5d93a_e97e_43e9_80225615f0a5dd47" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Hypotenuse = MthRound(flt_Hypotenuse, 1); // }} "" // {{ 1161 1 0 "2c6f101d_8f1c_4726_b68abd776e258ca9" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1162 1 0 "db0fde4f_1ea4_477d_8747cf9c66e73afa" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_HalfHyp = flt_Hypotenuse / (2 * 1.0); // }} "" // {{ 1163 1 0 "1b9f4a0f_ba8b_4dd3_bcb024db9656649f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_HalfLength = flt_Length / (2 * 1.0); // }} "" // {{ 1164 1 0 "bcfbab87_2d35_47ff_876758a4da988c3e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_HalfWidth = flt_Width / (2 * 1.0); // }} "" // {{{ 1165 1 0 "b5bfaad0_f325_4813_893b7086ede948a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePosition(Instrument, str_LabID, flt_NotUsed, flt_NotUsed, flt_NotUsed, flt_LabwareAngle); // }} "" // {{ 1166 1 0 "863b59b5_9bca_4b87_8e51e7e8496937c5" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1167 1 0 "92a12331_a1d5_4e8c_8497e3ca415b539e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Calculation = flt_HalfLength / (flt_HalfWidth * 1.0); // }} "" // {{{ 1168 1 0 "60a19b83_2401_442e_bf2db38eef64a244" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_PlateAngle = MthATan(flt_Calculation); // }} "" flt_PlateAngle = flt_PlateAngle * (180.0 / flt_Pi); // {{{ 1170 1 0 "fc7c6f15_3339_4d39_99381a97d265f0a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_PlateAngle = MthRound(flt_PlateAngle, 1); // }} "" // {{ 1171 1 0 "ae08802d_6e12_420e_854c8ccb76495307" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_LabwareAngle = flt_LabwareAngle * -1; // }} "" // {{ 1172 1 0 "a639a0f3_3b07_4f3f_8a9eb9880e414a4b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_AdjustedPlateAngle = flt_LabwareAngle + flt_PlateAngle; // }} "" // {{ 1173 1 0 "0241937d_fde9_40a5_882fdd9e971d7633" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" flt_Radians = flt_AdjustedPlateAngle * (flt_Pi / 180); // {{{ 1175 1 0 "6eb781a0_e97f_4966_8fb917ccf9d68905" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_CosineCalculation = MthCos(flt_Radians); // }} "" // {{{ 1176 1 0 "9f315069_10d6_4168_8b70019c324fae11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_SineCalculation = MthSin(flt_Radians); // }} "" // {{ 1177 1 0 "996af30f_219a_4625_a514c5bae77e3622" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Offset_X = flt_CosineCalculation * flt_HalfHyp; // }} "" // {{{ 1178 1 0 "182828c7_d0bf_4738_a0c906025201ecdb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Offset_X = MthRound(flt_Offset_X, 1); // }} "" // {{ 1179 1 0 "16595834_6ba6_4a9d_a9708d58abb6ae0f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Offset_Y = flt_SineCalculation * flt_HalfHyp; // }} "" // {{{ 1180 1 0 "47f11ffe_cd9e_4c40_9436a569eb443995" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Offset_Y = MthRound(flt_Offset_Y, 1); // }} "" // {{ 1181 1 0 "3de5f669_7851_4d74_aca5b1106138907e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1182 1 0 "472c7dc3_c0e4_483e_8d0fae91945bdad0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Center_X = flt_Origin_X + flt_Offset_X; // }} "" // {{ 1183 1 0 "50d23333_c00e_41a1_9ff73a86cd2d80b7" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Center_Y = flt_Origin_Y + flt_Offset_Y; // }} "" // {{{ 1184 1 0 "f280bbfa_a6e6_4641_a63a3d97e3978d88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_X_Center = MthRound(flt_Center_X, 1); // }} "" // {{{ 1185 1 0 "1cb3cd80_a57e_4042_afa99755db21a86a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_Y_Center = MthRound(flt_Center_Y, 1); // }} "" // {{{ 5 "LABWARE_GetLabwareCenter" "End" } // }} "" // {{{ 5 "ADJUST_AddCarrierToDeckSite" "Begin" function ADJUST_AddCarrierToDeckSite( device & Instrument, variable i_str_ConfigFile, variable i_str_NewLabwareID, variable i_int_DeckPosition ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable bln_LabwareExists; private variable bln_FileExists; private variable str_DimensionXKey; private variable flt_TrackWidth; private variable str_InstrumentKey; private variable str_InstrumentValue; private variable str_DeckLayoutFile; private variable bln_InstrumentSTAR; private variable str_XValue; private variable flt_XValue; private variable int_TrackCount; private variable str_TrackNumber; private variable arr_Labware[]; private variable arr_VisState[]; private variable str_TrackCount; // {{ 5 "ADJUST_AddCarrierToDeckSite" "InitLocals" // }} "" // {{ 1 1 0 "693416aa_664d_44a3_b7f6369ef6933e58" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2 1 0 "64d8b890_2d61_4f27_a8ad7537d86b7a2e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 4 1 0 "2333a0ef_bbf3_4a31_8e60ba5bf7a7963a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 5 1 0 "dae3ccdc_f0ec_49c7_8b5181dcb68b2051" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 6 1 0 "65f30075_cc00_4489_82b2d3f06d8bd899" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 7 1 0 "81095cb6_39a4_424f_8b8e5dbeb1139913" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 8 1 0 "b200f0ec_c3bb_4a2b_81176016bf17fca0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 10 1 0 "693416aa_664d_44a3_b7f6369ef6933e58" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 11 1 0 "d34bb994_a96c_474b_b13cb17c8d7ccb68" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_DimensionXKey = Translate("Dim.Dx"); // }} "" // {{ 12 1 0 "ce2a8a99_9c52_4454_a824b822548bbd01" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_InstrumentKey = Translate("Instrument"); // }} "" Trace("Config file: ",i_str_ConfigFile); // {{ 14 1 0 "ef8f0ba9_1c24_4c97_8898f97de86917cb" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 15 1 0 "be530eaa_9506_4181_a446a0f8706cac00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_FileExists = HSLExtensions::File::Exists(i_str_ConfigFile); // }} "" // {{ 16 1 0 "88ccc2c2_f9c6_45fc_9694d5d489707642" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_FileExists == 0) { // }} "" // {{{ 17 1 0 "ab44a35a_edbf_407a_abebfb1a7ac799f5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("Config file doesn't exist!")); // }} "" // {{ 18 1 0 "88ccc2c2_f9c6_45fc_9694d5d489707642" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 19 1 0 "46d52baa_7411_40c9_92fcc2728569d5ad" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 20 1 0 "d744ddb2_d7e7_4f78_86c51a679d5dbfc5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_DeckLayoutFile = DevGetDeckLayoutFileName(Instrument); // }} "" // {{{ 21 1 0 "90e0a0e5_dc34_47fd_8745d47920795c0b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_DeckLayoutFile, str_InstrumentKey, str_InstrumentValue); // }} "" // {{{ 22 1 0 "a00e3e30_35f9_4893_ae21bef5fe20bbca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_InstrumentSTAR = StrReplace(str_InstrumentValue, Translate("STAR"), Translate("STAR")); // }} "" // {{ 23 1 0 "164c69c6_f78f_402d_a96e94f725cd7304" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_InstrumentSTAR > 0) { // }} "" // {{ 24 1 0 "0d92fd34_d8bb_4312_a9f5db6b2e7a6fcd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TrackWidth = 22.5; // }} "" // {{ 25 1 0 "164c69c6_f78f_402d_a96e94f725cd7304" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 26 1 0 "ef97d2dd_b0ef_4c01_8660e777ecd14e5b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TrackWidth = 21.83; // }} "" // {{ 27 1 0 "164c69c6_f78f_402d_a96e94f725cd7304" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 28 1 0 "85de6289_9e5a_458e_adc78292b67727cd" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 29 1 0 "17d81383_0caa_4d74_80f093b05dd0c022" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(i_str_ConfigFile, str_DimensionXKey, str_XValue); // }} "" // {{{ 30 1 0 "689191b7_f4c9_45b5_ba294eb7e5b6639c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_XValue = StrFVal(str_XValue); // }} "" // {{ 31 1 0 "b4b4d5db_c75c_476b_b8f12b378cd72c7e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_TrackCount = flt_XValue / flt_TrackWidth; // }} "" // {{{ 32 1 0 "3360b7ae_b659_42ba_97f486184651f4e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TrackCount = StrConcat2(int_TrackCount, Translate("")); // }} "" // {{{ 33 1 0 "68afd845_0053_427b_af083005a0da7950" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TrackCount = StrIVal(str_TrackCount); // }} "" // {{{ 34 1 0 "7d1dd5ab_513d_45da_b6cd4336dd6cabf7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TrackNumber = StrConcat4(int_TrackCount, Translate("T"), Translate("-"), i_int_DeckPosition); // }} "" // {{ 35 1 0 "bab34354_a1e6_4ff9_897a976135973a48" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 36 1 0 "c25f7290_d766_41bd_8906d66fe53c1f75" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_LabwareExists = DevIsValidLabwareForCurrentDeckLayout(Instrument, i_str_NewLabwareID); // }} "" // {{ 37 1 0 "9777a7af_0833_43f2_aae01c884639475c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_LabwareExists == 1) { // }} "" // {{{ 38 1 0 "92c1db8f_d8c4_4de3_a77dfaf1ae9687eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("Labware not unique!")); // }} "" // {{ 39 1 0 "9777a7af_0833_43f2_aae01c884639475c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace("Now adding ",i_str_NewLabwareID," at deck site ",str_TrackNumber); // {{{ 41 1 0 "253c0de8_0a72_456b_8124ca39309b1a3e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevAddLabwareToTemplate(Instrument, i_str_NewLabwareID, i_str_ConfigFile, Translate("default"), str_TrackNumber); // }} "" // {{ 42 1 0 "64ee102d_c786_48c9_9cb78d49580845d4" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Labware.SetSize(0); // }} "" // {{ 43 1 0 "37dcde57_b0f3_4c1a_90488e0dbd6ea920" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_VisState.SetSize(0); // }} "" // {{ 44 1 0 "75aaf96f_ac34_4652_8f8e39bdee6bf5da" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Labware.AddAsLast(i_str_NewLabwareID); // }} "" // {{ 45 1 0 "adb55248_d6a0_4386_88094e591e3d9253" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_VisState.AddAsLast(1); // }} "" // {{{ 46 1 0 "3d9e9485_e3b6_44ac_afc5259651ec8c40" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateLoadedLabware(Instrument, arr_Labware, arr_VisState, Translate("Make new labware visible")); // }} "" // {{ 47 1 0 "51f9dbf6_78ba_4692_abbef8441e471311" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 49 1 0 "51f9dbf6_78ba_4692_abbef8441e471311" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "ADJUST_AddCarrierToDeckSite" "End" } // }} "" // {{{ 5 "TEMPLATE_GetConfigFile2" "Begin" function TEMPLATE_GetConfigFile2( device & Instrument, variable i_str_Labware, variable & o_str_ConfigFilePath ) void { // }} "" // {{ 5 "TEMPLATE_GetConfigFile2" "InitLocals" o_str_ConfigFilePath = 0; // }} "" // {{ 1386 1 0 "3d6e22dd_5ca8_4a19_976a2761df055627" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ConfigFilePath = Translate(""); // }} "" //Get Config File { object objDeckLayout; objDeckLayout = Instrument.GetDeckLayoutObject(); if(!objDeckLayout.IsNull()) { object objLabware; onerror goto HandleLabwareError; objLabware = objDeckLayout.Labware(i_str_Labware); onerror goto 0; err.Clear(); if(!objLabware.IsNull()) { object objEditLabware5; objLabware.GetObject("IEditLabware5", objEditLabware5); o_str_ConfigFilePath = objEditLabware5.Filename; objEditLabware5.ReleaseObject(); objDeckLayout.ReleaseObject(); objLabware.ReleaseObject(); } } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if(errorID != 0) { if (errorID==-1574764487) { Trace("LabwareID is unknown."); } else { Trace("Unknown error occured."); } } } } // {{{ 5 "TEMPLATE_GetConfigFile2" "End" } // }} "" // {{{ 5 "TEMPLATE_GetTemplateOrigin2" "Begin" function TEMPLATE_GetTemplateOrigin2( device & Instrument, variable i_str_TemplateLabID, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void { // }} "" private variable flt_NotUsed; // {{ 5 "TEMPLATE_GetTemplateOrigin2" "InitLocals" o_flt_X_Coord = 0; o_flt_Y_Coord = 0; o_flt_Z_Coord = 0; // }} "" // {{ 1403 1 0 "729a8eb4_2c33_4281_a420e051f7c21a0a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_X_Coord = 0.0; // }} "" // {{ 1404 1 0 "ee90e920_1d62_4d2b_8a7128745294e1e8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Y_Coord = 0.0; // }} "" // {{ 1405 1 0 "5f31b172_c16b_4b3a_9ff9a51ee9afb4ea" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Z_Coord = 0.0; // }} "" // {{{ 1406 1 0 "17f5840f_4843_4143_a2d9fe143148fec8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePosition(Instrument, i_str_TemplateLabID, o_flt_X_Coord, o_flt_Y_Coord, o_flt_Z_Coord, flt_NotUsed); // }} "" // {{{ 5 "TEMPLATE_GetTemplateOrigin2" "End" } // }} "" // {{{ 5 "ADJUST_AddContainerToPositions" "Begin" function ADJUST_AddContainerToPositions( device & Instrument, sequence i_seq_LabwareToChange, variable i_str_NewContainerFile, variable i_flt_OffsetX, variable i_flt_OffsetY, variable i_flt_OffsetZ ) void { // }} "" private variable flt_ContainerXOffset; private variable flt_ContainerYOffset; private variable int_CutNum; private variable int_Length; private variable flt_Y_Offset; private variable str_OffsetX; private variable int_SingleContainer; private variable strFunctionName; private variable bln_FileExists; private variable str_OffsetY; private variable str_OffsetZ; private variable strFunctionName_Cut; private variable flt_ContainerBaseOffset; private variable str_LabID; private variable str_FileName; private variable flt_Z_Offset; private variable str_Extension; private variable str_Return; private variable int_Count; private variable bool_SequenceValid; private variable flt_X_Offset; private variable str_PosID; private variable int_ContainerIndex; private variable str_LabwareConfigFilePath; private sequence seq_Temp; private sequence i_seq_LabwarePositionsToOffset; private variable int_TotalPositions; private variable i; // {{ 5 "ADJUST_AddContainerToPositions" "InitLocals" // }} "" // {{ 118 1 0 "9ee1a050_2c8f_4e0b_a4ce1074deacec49" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 119 1 0 "d96b65b1_b2cb_4bb3_9a67a4f639bf8ef6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 121 1 0 "f3a9ee5f_48e1_4553_a85e586dc882bdb3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 122 1 0 "1ba89b15_fa7f_4c7f_a67fff0a91fb08f3" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 123 1 0 "697cfcf4_639d_4d5f_9b1417df331660bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 124 1 0 "9a8d2eea_7d48_4caf_977dd43a31a55145" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 125 1 0 "9fd26af6_f13e_4a7c_8cde7d44bcd78ffd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 127 1 0 "9ee1a050_2c8f_4e0b_a4ce1074deacec49" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 128 1 0 "c62674d3_c4be_45b8_859e2fea264e06c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 129 1 0 "f98eb359_d875_467b_ad684171bc4d4588" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 131 1 0 "671acfe7_2d9e_41df_9682e489941a5ab2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_LabwareToChange, str_LabID, str_PosID); // }} "" // {{ 132 1 0 "917dd803_3788_4ac8_ba26458b5f9116e8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 133 1 0 "3b2078e5_07e0_4671_ae9d471c77f09380" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 134 1 0 "917dd803_3788_4ac8_ba26458b5f9116e8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 135 1 0 "c62674d3_c4be_45b8_859e2fea264e06c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 136 1 0 "4dd76f4b_0a78_44d8_a71c94d0d32381e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 137 1 0 "1609eb3a_1b4b_49a1_9700c75e07f5265c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_FileExists = HSLExtensions::File::Exists(i_str_NewContainerFile); // }} "" // {{ 138 1 0 "67ff45cb_4ad7_4745_8e8e76f394d8f2a2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_FileExists == 0) { // }} "" Trace(i_str_NewContainerFile,": FILE DOESN'T EXIST!"); // {{ 140 1 0 "713a7a1f_dfa0_4b98_afb5ac7cda49a916" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 142 1 0 "713a7a1f_dfa0_4b98_afb5ac7cda49a916" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 143 1 0 "48e30f1c_31b2_4c8f_a3da632491b7238b" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 144 1 0 "67ff45cb_4ad7_4745_8e8e76f394d8f2a2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 145 1 0 "50b575bb_dce9_4303_acc627d8e2621d16" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Extension = HSLExtensions::File::GetFileExtension(i_str_NewContainerFile); // }} "" // {{ 146 1 0 "547f0a7c_8c62_47ef_9605a4229e31fb64" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Extension != "ctr") { // }} "" Trace(i_str_NewContainerFile,": FILE NOT A CONTAINER FILE!"); // {{ 148 1 0 "26e3d50e_1e14_418e_83460e2d5003c850" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 150 1 0 "26e3d50e_1e14_418e_83460e2d5003c850" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 151 1 0 "0d044891_4a2c_4985_86075f49699b5168" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 152 1 0 "547f0a7c_8c62_47ef_9605a4229e31fb64" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 153 1 0 "4dd76f4b_0a78_44d8_a71c94d0d32381e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 154 1 0 "b9c2a044_d4a2_45a3_805357757eab4d13" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(Instrument, i_seq_LabwarePositionsToOffset); // }} "" // {{{ 155 1 0 "793da75a_4ac5_435e_8ebfdb7ef8b01d03" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LABWARE_GetConfigFile(Instrument, i_seq_LabwareToChange, str_LabwareConfigFilePath); // }} "" // {{{ 156 1 0 "35a0a6b6_a427_4474_ab71d478f8dfb5c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_LabwareConfigFilePath, Translate("SingleCntr"), str_Return); // }} "" // {{{ 157 1 0 "442ae470_d0fd_4fb5_9eadb66f0a28ece3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(str_Return, int_SingleContainer); // }} "" // {{{ 158 1 0 "822bc4a9_576b_49a6_8d859e27d60c67fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(i_seq_LabwareToChange); // }} "" // {{{ 159 1 0 "64bab69d_be05_4b51_8be58ef13eb3052a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SEQ_GetDefaultSequenceForLabware(Instrument, str_LabID, seq_Temp); // }} "" // {{ 160 1 0 "e0793727_05cd_4b84_b14c8b641e8a72a8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalPositions;) { i = i + 1; // }} "" // {{{ 161 1 0 "9811fcaf_1728_4c7c_a943bedfec8b2520" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_LabwareToChange); // }} "" // {{{ 162 1 0 "3ae2cf87_c01f_46aa_b7aa03fc6ef47fd4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_LabwareToChange); // }} "" // {{{ 163 1 0 "9336992d_f376_44f7_9e4ffe7bfde1112a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(i_seq_LabwareToChange, 1); // }} "" // {{ 164 1 0 "5101f5c7_3783_4986_9a5cee480d11bac0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_SingleContainer == 0) { // }} "" // {{{ 165 1 0 "7e27c464_f899_4172_a68f5e77aec154d1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ContainerIndex = SeqLookupPosition(seq_Temp, str_LabID, str_PosID, 1, 1); // }} "" // {{ 166 1 0 "5101f5c7_3783_4986_9a5cee480d11bac0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 167 1 0 "955fef7d_c793_4ea8_abb2eb1052c6d4c3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ContainerIndex = 1; // }} "" // {{ 168 1 0 "5101f5c7_3783_4986_9a5cee480d11bac0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 169 1 0 "36cc9f84_8f42_40a4_ba0caeec0f5aecd1" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 170 1 0 "367bf423_be07_4f87_a6f7793fef020abf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_OffsetX = StrConcat4(Translate("Cntr."), int_ContainerIndex, Translate(".offsetx"), Translate("")); // }} "" // {{{ 171 1 0 "62bfac28_71be_4d14_829215bcae742acc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_LabwareConfigFilePath, str_OffsetX, str_Return); // }} "" // {{{ 172 1 0 "fe4821ee_1efe_47f6_83f59eee2764de9a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerXOffset); // }} "" // {{ 173 1 0 "3e3d3556_520e_47d1_a0185bd954f20eef" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 174 1 0 "0ccdb4a6_aeea_403a_a5879c4f7366b0af" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_OffsetY = StrConcat4(Translate("Cntr."), int_ContainerIndex, Translate(".offsety"), Translate("")); // }} "" // {{{ 175 1 0 "4df3656e_9f95_4285_9d89d8158afcf9c0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_LabwareConfigFilePath, str_OffsetY, str_Return); // }} "" // {{{ 176 1 0 "25b000ef_5b63_4c92_b7093c626c7a089c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerYOffset); // }} "" // {{ 177 1 0 "3af1d02f_9355_4d6d_a555957e48252969" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 178 1 0 "9eef685c_495c_4bd0_892fe2950e04e135" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_OffsetZ = StrConcat4(Translate("Cntr."), int_ContainerIndex, Translate(".base"), Translate("")); // }} "" // {{{ 179 1 0 "1d22c608_a490_4bdb_843db2b863f0b20a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FILE_GetDefinitionFileValue(str_LabwareConfigFilePath, str_OffsetZ, str_Return); // }} "" // {{{ 180 1 0 "9f394653_01e0_4bf3_ae10da6c4ed8200d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToFloat(str_Return, flt_ContainerBaseOffset); // }} "" // {{{ 181 1 0 "8c1fc9c8_c1c3_4af5_bfa24785079930c7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FileName = HSLExtensions::File::GetFileNameWithoutExtension(i_str_NewContainerFile); // }} "" // {{ 182 1 0 "80cec258_1dd4_4546_a642841ef967d832" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_X_Offset = i_flt_OffsetX + flt_ContainerXOffset; // }} "" // {{ 183 1 0 "894141a5_1a5c_4ecd_af0621f694aa5931" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Offset = i_flt_OffsetY + flt_ContainerYOffset; // }} "" // {{ 184 1 0 "52331300_d937_438d_9fed9075e91d1925" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Offset = i_flt_OffsetZ + flt_ContainerBaseOffset; // }} "" Trace("Add ",str_FileName," to ",str_LabID," at ",str_PosID," with offsets ","X: ",i_flt_OffsetX," Y: ",i_flt_OffsetY," Z: ",i_flt_OffsetZ); // {{{ 186 1 0 "5233f6ad_f1c0_46b7_bc77ef8bc51a6ffb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevAddContainerToRack(Instrument, str_LabID, str_PosID, i_str_NewContainerFile, flt_X_Offset, flt_Y_Offset, flt_Z_Offset); // }} "" // {{ 187 1 0 "e0793727_05cd_4b84_b14c8b641e8a72a8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 188 1 0 "1c2c426e_6a9e_49aa_85612c2bc4d30f5a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 190 1 0 "1c2c426e_6a9e_49aa_85612c2bc4d30f5a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "ADJUST_AddContainerToPositions" "End" } // }} "" // {{{ 5 "ADJUST_StackCreateAtTemplateSite" "Begin" function ADJUST_StackCreateAtTemplateSite( device & Instrument, variable i_str_ConfigFile, variable i_str_LabwareNameForStack, variable i_str_TemplateID, variable i_str_TemplateSiteID, variable i_int_TotalStack, variable i_int_LabwareType, variable i_bln_LiddedLabware, variable & o_arr_StackedLabware[] ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable str_ConfigFile; private variable str_LabwareNameForStack; private variable str_TemplateID; private variable str_TemplateSiteID; private variable str_LabwareType; private variable bln_LiddedLabware; private variable int_TotalStack; // {{ 5 "ADJUST_StackCreateAtTemplateSite" "InitLocals" o_arr_StackedLabware.SetSize( 0); // }} "" // {{ 691 1 0 "3d02adbe_14d3_4465_a6a4e584bf61a9a0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 692 1 0 "21867229_3ace_4b34_8474721d3f199dcd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 694 1 0 "f2e431b2_4e7e_459f_92c79212b42d16fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 695 1 0 "567e22ed_258b_474d_8a31686594c0923b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 696 1 0 "6043f5c0_4d6d_4c8a_a7669c4891404253" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 697 1 0 "c5eed030_e481_449d_80c9a60c906e30ce" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 698 1 0 "965092c7_6462_4272_bd9ea58a57e20cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 700 1 0 "3d02adbe_14d3_4465_a6a4e584bf61a9a0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 701 1 0 "6e322525_353c_4479_aebce3d093a54132" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ConfigFile = i_str_ConfigFile; // }} "" // {{ 702 1 0 "e9a2ae5c_66c7_4854_b611af60b8af863e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_LabwareNameForStack = i_str_LabwareNameForStack; // }} "" // {{ 703 1 0 "44a821e8_bdda_4111_b1658214bc62d25c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TemplateID = i_str_TemplateID; // }} "" // {{ 704 1 0 "7d5aa79e_061f_4a81_abead4707f394104" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TemplateSiteID = i_str_TemplateSiteID; // }} "" // {{ 705 1 0 "a59abf1f_57da_4606_bd7b4a7a82b297e3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TemplateSiteID = i_str_TemplateSiteID; // }} "" // {{ 706 1 0 "c0d7aa69_1674_4af8_9dfd3d20068dda54" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_LiddedLabware = i_bln_LiddedLabware; // }} "" // {{ 707 1 0 "990d1327_96eb_4e12_8b4a23f1f19c91af" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TotalStack = i_int_TotalStack; // }} "" // {{ 708 1 0 "7bc271d4_2ff1_4471_8739d2233c215a0d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_LabwareType == 0) { // }} "" // {{ 709 1 0 "a90f7e16_f672_40f9_b2359519eb161b9e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_LabwareType = Translate("HxLabwr2.RectRack.1"); // }} "" // {{ 710 1 0 "7bc271d4_2ff1_4471_8739d2233c215a0d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 711 1 0 "605612b9_a542_4850_bff6ffad9a48cbac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_LabwareType = Translate("HxLabwr2.CircRack.1"); // }} "" // {{ 712 1 0 "7bc271d4_2ff1_4471_8739d2233c215a0d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 713 1 0 "12ccd220_f10c_42fd_ade96b0f29b8cdd3" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_StackedLabware.SetSize(0); // }} "" { // HxPars keys static string P_XCOORD("Labwr_XCoord"); static string P_YCOORD("Labwr_YCoord"); static string P_ZCOORD("Labwr_ZCoord"); static string P_RZCOORD("Labwr_Rotation"); static string P_LABWARE_ID("Labwr_Id"); // additions static string P_FILE("Labwr_File"); static string P_COUNT("Labwr_count"); static string P_DKSITEID("Labwr_DkSiteId"); static string P_TEMPLATEID("Labwr_TemplateId"); static string P_XDIM("Labwr_XDim"); static string P_YDIM("Labwr_YDim"); static string P_ISCOVERED("Labwr_IsCovered"); static string P_CLSID("Labwr_CLSID"); static string P_DKSITEDX("Labwr_DkSiteDimX"); static string P_DKSITEDY("Labwr_DkSiteDimY"); static string P_DECKSITES("Labwr_SiteData"); static string P_STACKID("Labwr_stackID"); object objDecklayout; objDecklayout = Instrument.GetDeckLayoutObject(); if (!objDecklayout.IsNull()) { object EditDecklayout5; object Parameter; object LabwareObjects; object LabwareNames; variable myKeys[]; variable intCounter; variable blnPlate(hslTrue); objDecklayout.GetObject("IEditDeckLayout5", EditDecklayout5); Parameter.CreateObject("HXPARAMSLib.HxPars"); Parameter.Add(str_ConfigFile, P_FILE); Parameter.Add(str_LabwareNameForStack, P_LABWARE_ID); Parameter.Add(int_TotalStack, P_COUNT); Parameter.Add(str_TemplateSiteID, P_DKSITEID); Parameter.Add(str_TemplateID, P_TEMPLATEID); Parameter.Add(0, P_XDIM); Parameter.Add(0, P_YDIM); Parameter.Add(bln_LiddedLabware, P_ISCOVERED); Parameter.Add(str_LabwareType, P_CLSID); objDecklayout.AddStackToDecksite(Parameter); LabwareObjects.CreateObject("HXPARAMSLib.HxPars"); LabwareNames.CreateObject("HXPARAMSLib.HxPars"); objDecklayout.TemplateLabwareNames(LabwareObjects); myKeys = LabwareObjects.GetKeys(); for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++) { LabwareNames = LabwareObjects.Item1(intCounter); if(LabwareNames.Item1("Labwr_TemplateId") == str_TemplateID && LabwareNames.Item1("Labwr_DkSiteId") == str_TemplateSiteID) { if (!blnPlate && bln_LiddedLabware) { o_arr_StackedLabware.AddAsLast(LabwareNames.Item1("Labwr_Id")); blnPlate=hslTrue; } else { if(bln_LiddedLabware) blnPlate=hslFalse; o_arr_StackedLabware.AddAsLast(LabwareNames.Item1("Labwr_Id")); } } } objDecklayout.ReleaseObject(); EditDecklayout5.ReleaseObject(); Parameter.ReleaseObject(); LabwareObjects.ReleaseObject(); LabwareNames.ReleaseObject(); } } // {{{ 715 1 0 "a3eeb059_f790_465e_820ad32306dc8758" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Stacked Labware"), o_arr_StackedLabware); // }} "" // {{ 716 1 0 "54fd192a_287d_436b_8b05346030bb555d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 718 1 0 "54fd192a_287d_436b_8b05346030bb555d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "ADJUST_StackCreateAtTemplateSite" "End" } // }} "" // {{{ 5 "ADJUST_StackIncrease" "Begin" function ADJUST_StackIncrease( device & Instrument, variable i_str_LabwareNameForStack, variable & o_str_LabwareID ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable str_LabwareNameForStack; // {{ 5 "ADJUST_StackIncrease" "InitLocals" o_str_LabwareID = 0; // }} "" // {{ 740 1 0 "c994a739_d2ad_46da_899254b246a9af06" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 741 1 0 "5571b4d2_f0b5_45ec_aac1582dd1e9b03e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 743 1 0 "93a854e4_23fb_4e66_8d24d371cde206d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 744 1 0 "70ab5c27_f76e_4a54_a34cbffe2674a966" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 745 1 0 "72527f68_8ca5_456e_8450b41822a4c3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 746 1 0 "f51f2d98_d13a_4b34_a43babf0541548f4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 747 1 0 "e3e5e123_8a01_422f_9d7407906e470f29" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 749 1 0 "c994a739_d2ad_46da_899254b246a9af06" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 750 1 0 "0f2aa095_0d84_4382_8ebf4b48c59b37ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_LabwareNameForStack = i_str_LabwareNameForStack; // }} "" // {{ 751 1 0 "3543c6ec_8b05_4095_847b8e3a96c4db3f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LabwareID = Translate(""); // }} "" { // HxPars keys static string P_XCOORD("Labwr_XCoord"); static string P_YCOORD("Labwr_YCoord"); static string P_ZCOORD("Labwr_ZCoord"); static string P_RZCOORD("Labwr_Rotation"); static string P_LABWARE_ID("Labwr_Id"); // additions static string P_FILE("Labwr_File"); static string P_COUNT("Labwr_count"); static string P_DKSITEID("Labwr_DkSiteId"); static string P_TEMPLATEID("Labwr_TemplateId"); static string P_XDIM("Labwr_XDim"); static string P_YDIM("Labwr_YDim"); static string P_ISCOVERED("Labwr_IsCovered"); static string P_CLSID("Labwr_CLSID"); static string P_DKSITEDX("Labwr_DkSiteDimX"); static string P_DKSITEDY("Labwr_DkSiteDimY"); static string P_DECKSITES("Labwr_SiteData"); static string P_STACKID("Labwr_stackID"); object objDecklayout; variable strTemplateID; variable strTemplateSiteID; string strLabwareID; objDecklayout = Instrument.GetDeckLayoutObject(); if (!objDecklayout.IsNull()) { object EditDecklayout5; object EditDecklayout7; object Parameter; object LabwareObjects; object LabwareNames; variable myKeys[]; variable intCounter; variable intInverseCounter; variable blnPlate(hslTrue); objDecklayout.GetObject("IEditDeckLayout5", EditDecklayout5); objDecklayout.GetObject("IEditDeckLayout7", EditDecklayout7); Parameter.CreateObject("HXPARAMSLib.HxPars"); Parameter.Add(str_LabwareNameForStack, P_STACKID); objDecklayout.IncreaseStack(Parameter); LabwareObjects.CreateObject("HXPARAMSLib.HxPars"); LabwareNames.CreateObject("HXPARAMSLib.HxPars"); EditDecklayout7.GetLabwareData(LabwareObjects); myKeys = LabwareObjects.GetKeys(); // Get the template site ID and template ID of the stack for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++) { LabwareNames = LabwareObjects.Item1(intCounter); if(LabwareNames.Item1("Labwr_Id") == str_LabwareNameForStack) { strTemplateID=LabwareNames.Item1("Labwr_TemplateId"); strTemplateSiteID=LabwareNames.Item1("Labwr_DkSiteId"); } } // Get all the labware on this site objDecklayout.TemplateLabwareNames(LabwareObjects); myKeys = LabwareObjects.GetKeys(); intInverseCounter=myKeys.GetSize(); for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++) { LabwareNames = LabwareObjects.Item1(intInverseCounter); intInverseCounter=intInverseCounter-1; if(LabwareNames.Item1("Labwr_TemplateId") == strTemplateID && LabwareNames.Item1("Labwr_DkSiteId") == strTemplateSiteID && LabwareNames.Item1("Labwr_Id")!=str_LabwareNameForStack) { strLabwareID=LabwareNames.Item1("Labwr_Id"); if(strLabwareID.Find("_lid")==-1) o_str_LabwareID=strLabwareID; else o_str_LabwareID=strLabwareID; } } objDecklayout.ReleaseObject(); EditDecklayout5.ReleaseObject(); EditDecklayout7.ReleaseObject(); Parameter.ReleaseObject(); LabwareObjects.ReleaseObject(); LabwareNames.ReleaseObject(); } } // {{ 753 1 0 "739c4d0b_8d8b_47b4_890d0a87af6bc7ad" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" Trace("New Labware ID: ",o_str_LabwareID); // {{ 755 1 0 "fac54476_1225_43f5_a37c9b5192bf918d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 757 1 0 "fac54476_1225_43f5_a37c9b5192bf918d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "ADJUST_StackIncrease" "End" } // }} "" // {{{ 5 "ADJUST_StackDecrease" "Begin" function ADJUST_StackDecrease( device & Instrument, variable i_str_LabwareNameForStack, variable & o_arr_StackedLabware[] ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable str_LabwareNameForStack; private variable arr_CurrentStack[]; // {{ 5 "ADJUST_StackDecrease" "InitLocals" o_arr_StackedLabware.SetSize( 0); // }} "" // {{ 720 1 0 "f3a4e5f8_0f48_4ddc_a91fc39358bea15d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 721 1 0 "2b9ad4c8_8475_4552_b5055e762fa86f9f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 723 1 0 "fa075d5a_1d0d_4388_abe6930ed2b7a492" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 724 1 0 "53d249a9_a034_4a77_a166498cfe309e06" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 725 1 0 "c150eec6_87b3_4473_a8ab4ff1c36cea89" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 726 1 0 "ae4638c2_d6f8_4ddc_8ac50e7e8b1251b4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 727 1 0 "142e268a_7962_4ee2_bd42ca73e9c0d361" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 729 1 0 "f3a4e5f8_0f48_4ddc_a91fc39358bea15d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 730 1 0 "9e03baab_9ed3_4fd5_b45254bcaaba0260" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_LabwareNameForStack = i_str_LabwareNameForStack; // }} "" // {{ 731 1 0 "3c6faad4_041f_4d13_882a945bb7230208" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_CurrentStack.SetSize(0); // }} "" // {{ 732 1 0 "7f251bbc_b287_4f58_95ec961bf670e42a" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_CurrentStack.SetSize(0); // }} "" { // HxPars keys static string P_XCOORD("Labwr_XCoord"); static string P_YCOORD("Labwr_YCoord"); static string P_ZCOORD("Labwr_ZCoord"); static string P_RZCOORD("Labwr_Rotation"); static string P_LABWARE_ID("Labwr_Id"); // additions static string P_FILE("Labwr_File"); static string P_COUNT("Labwr_count"); static string P_DKSITEID("Labwr_DkSiteId"); static string P_TEMPLATEID("Labwr_TemplateId"); static string P_XDIM("Labwr_XDim"); static string P_YDIM("Labwr_YDim"); static string P_ISCOVERED("Labwr_IsCovered"); static string P_CLSID("Labwr_CLSID"); static string P_DKSITEDX("Labwr_DkSiteDimX"); static string P_DKSITEDY("Labwr_DkSiteDimY"); static string P_DECKSITES("Labwr_SiteData"); static string P_STACKID("Labwr_stackID"); object objDecklayout; variable strTemplateID; variable strTemplateSiteID; string strLabwareID; objDecklayout = Instrument.GetDeckLayoutObject(); if (!objDecklayout.IsNull()) { object EditDecklayout5; object EditDecklayout7; object Parameter; object LabwareObjects; object LabwareNames; variable myKeys[]; variable intCounter; variable intInverseCounter; variable blnPlate(hslTrue); objDecklayout.GetObject("IEditDeckLayout5", EditDecklayout5); objDecklayout.GetObject("IEditDeckLayout7", EditDecklayout7); Parameter.CreateObject("HXPARAMSLib.HxPars"); Parameter.Add(str_LabwareNameForStack, P_STACKID); objDecklayout.DecreaseStack(Parameter); LabwareObjects.CreateObject("HXPARAMSLib.HxPars"); LabwareNames.CreateObject("HXPARAMSLib.HxPars"); EditDecklayout7.GetLabwareData(LabwareObjects); myKeys = LabwareObjects.GetKeys(); // Get the template site ID and template ID of the stack for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++) { LabwareNames = LabwareObjects.Item1(intCounter); if(LabwareNames.Item1("Labwr_Id") == str_LabwareNameForStack) { strTemplateID=LabwareNames.Item1("Labwr_TemplateId"); strTemplateSiteID=LabwareNames.Item1("Labwr_DkSiteId"); } } // Get all the labware on this site objDecklayout.TemplateLabwareNames(LabwareObjects); myKeys = LabwareObjects.GetKeys(); intInverseCounter=myKeys.GetSize(); for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++) { LabwareNames = LabwareObjects.Item1(intCounter); intInverseCounter=intInverseCounter-1; if(LabwareNames.Item1("Labwr_TemplateId") == strTemplateID && LabwareNames.Item1("Labwr_DkSiteId") == strTemplateSiteID && LabwareNames.Item1("Labwr_Id")!=str_LabwareNameForStack) { strLabwareID=LabwareNames.Item1("Labwr_Id"); arr_CurrentStack.AddAsLast(strLabwareID); //if(strLabwareID.Find("_lid")==-1) o_strLabwareID=strLabwareID; //else o_strLabwareLidID=strLabwareID; } } objDecklayout.ReleaseObject(); EditDecklayout5.ReleaseObject(); EditDecklayout7.ReleaseObject(); Parameter.ReleaseObject(); LabwareObjects.ReleaseObject(); LabwareNames.ReleaseObject(); } } // {{{ 734 1 0 "58ba38b4_2498_403b_bbc329d39b5f55be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Current Stack"), arr_CurrentStack); // }} "" // {{ 735 1 0 "2733bea7_e5a5_49c4_9272be4bfa033e1d" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" o_arr_StackedLabware=arr_CurrentStack; // }} "" // {{ 736 1 0 "a915d75a_b1c9_49f4_b5a3304322d5b7ff" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 738 1 0 "a915d75a_b1c9_49f4_b5a3304322d5b7ff" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "ADJUST_StackDecrease" "End" } // }} "" // {{{ 5 "ADJUST_GetCurrentStack" "Begin" function ADJUST_GetCurrentStack( device & Instrument, variable i_str_LabwareNameForStack, variable & o_arr_StackedLabware[] ) void { // }} "" private variable str_LabwareNameForStack; private variable arr_CurrentStack[]; private variable int_Length; private variable int_TrimLeftNumber; // {{ 5 "ADJUST_GetCurrentStack" "InitLocals" o_arr_StackedLabware.SetSize( 0); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 209 1 0 "8c27b719_abad_4115_a8ee98855c4d0ec7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_LabwareNameForStack = i_str_LabwareNameForStack; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 210 1 0 "7c797273_3b6f_4890_b26422eb77ddb841" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(i_str_LabwareNameForStack); // }} "" // {{ 211 1 0 "736d60f4_93b8_4a10_a1b1b14ea806907f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_TrimLeftNumber = int_Length - 5; // }} "" // {{{ 212 1 0 "8f7d155a_31bc_422a_954ccef1f7a2e718" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabwareNameForStack = StrLeft(i_str_LabwareNameForStack, int_TrimLeftNumber); // }} "" // {{ 213 1 0 "48d0bcbf_9067_4dcf_8c6de734c6cd2071" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_CurrentStack.SetSize(0); // }} "" // {{ 214 1 0 "4f999e05_d678_45c5_8162e0f3a762f7ec" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_CurrentStack.SetSize(0); // }} "" { // HxPars keys static string P_XCOORD("Labwr_XCoord"); static string P_YCOORD("Labwr_YCoord"); static string P_ZCOORD("Labwr_ZCoord"); static string P_RZCOORD("Labwr_Rotation"); static string P_LABWARE_ID("Labwr_Id"); // additions static string P_FILE("Labwr_File"); static string P_COUNT("Labwr_count"); static string P_DKSITEID("Labwr_DkSiteId"); static string P_TEMPLATEID("Labwr_TemplateId"); static string P_XDIM("Labwr_XDim"); static string P_YDIM("Labwr_YDim"); static string P_ISCOVERED("Labwr_IsCovered"); static string P_CLSID("Labwr_CLSID"); static string P_DKSITEDX("Labwr_DkSiteDimX"); static string P_DKSITEDY("Labwr_DkSiteDimY"); static string P_DECKSITES("Labwr_SiteData"); static string P_STACKID("Labwr_stackID"); object objDecklayout; variable strTemplateID; variable strTemplateSiteID; string strLabwareID; objDecklayout = Instrument.GetDeckLayoutObject(); if (!objDecklayout.IsNull()) { object EditDecklayout5; object EditDecklayout7; object Parameter; object LabwareObjects; object LabwareNames; variable myKeys[]; variable intCounter; variable intInverseCounter; variable blnPlate(hslTrue); objDecklayout.GetObject("IEditDeckLayout5", EditDecklayout5); objDecklayout.GetObject("IEditDeckLayout7", EditDecklayout7); //Parameter.CreateObject("HXPARAMSLib.HxPars"); //Parameter.Add(str_LabwareNameForStack, P_STACKID); //objDecklayout.DecreaseStack(Parameter); LabwareObjects.CreateObject("HXPARAMSLib.HxPars"); LabwareNames.CreateObject("HXPARAMSLib.HxPars"); EditDecklayout7.GetLabwareData(LabwareObjects); myKeys = LabwareObjects.GetKeys(); strTemplateID = ""; strTemplateSiteID = ""; // Get the template site ID and template ID of the stack for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++) { LabwareNames = LabwareObjects.Item1(intCounter); if(LabwareNames.Item1("Labwr_Id") == str_LabwareNameForStack) { strTemplateID=LabwareNames.Item1("Labwr_TemplateId"); strTemplateSiteID=LabwareNames.Item1("Labwr_DkSiteId"); } } // Get all the labware on this site objDecklayout.TemplateLabwareNames(LabwareObjects); myKeys = LabwareObjects.GetKeys(); intInverseCounter=myKeys.GetSize(); for(intCounter=1; intCounter<=myKeys.GetSize(); intCounter++) { LabwareNames = LabwareObjects.Item1(intCounter); intInverseCounter=intInverseCounter-1; if(!strTemplateID=="" && !strTemplateSiteID =="") { if(LabwareNames.Item1("Labwr_TemplateId") == strTemplateID && LabwareNames.Item1("Labwr_DkSiteId") == strTemplateSiteID && LabwareNames.Item1("Labwr_Id")!=str_LabwareNameForStack) { strLabwareID=LabwareNames.Item1("Labwr_Id"); if(strLabwareID.Find(str_LabwareNameForStack)!=-1) arr_CurrentStack.AddAsLast(strLabwareID); //else o_strLabwareLidID=strLabwareID; } } } objDecklayout.ReleaseObject(); EditDecklayout5.ReleaseObject(); EditDecklayout7.ReleaseObject(); Parameter.ReleaseObject(); LabwareObjects.ReleaseObject(); LabwareNames.ReleaseObject(); } } // {{ 216 1 0 "70a5b26c_ce5b_4174_b85a81b1895f7906" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" o_arr_StackedLabware=arr_CurrentStack; // }} "" // {{{ 5 "ADJUST_GetCurrentStack" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=Bare_B$$valid=0$$time=2021-07-23 23:08$$checksum=faa9aeb9$$length=085$$ ================================================ FILE: pyhamilton/library/Labware Properties/Resources/LPQ_GLOBAL.hsl ================================================ #pragma global #ifndef __LPQ_GLOBAL_hsl__ #define __LPQ_GLOBAL__ 1 namespace LPQ { function InitializeVariables(); function InitializeVariables() {} namespace LABWARE_OFFSET_GLOBAL { variable BOOL_LIBRARY_INITIALIZED(hslFalse); variable ARR_CONTAINER_CONFIG_FILE[]; variable ARR_CONTAINER_SHAPE[]; variable ARR_CONTAINER_BOTTOM_WIDTH[]; variable ARR_CONTAINER_TOP_WIDTH[]; variable ARR_CONTAINER_BOTTOM_HEIGHT[]; variable ARR_BASE_OFFSET[]; variable ARR_X_OFFSET[]; variable ARR_Y_OFFSET[]; } namespace LABWARE_TILT { variable BOOL_LIBRARY_INITIALIZED(hslFalse); variable ARR_LABWARE_CONFIG_FILE[]; variable ARR_BASE_OFFSET[]; } } #endif // $$author=Bare_B$$valid=0$$time=2018-08-10 21:06$$checksum=de018a99$$length=085$$ ================================================ FILE: pyhamilton/library/SMT/MLSTARLiquidClassLib.hsl ================================================ // ====================================================================== // This is a part of the HSL File Library. // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // All rights reserved. // ---------------------------------------------------------------------- // Library: MLSTARLiquidClassLib.hsl // ====================================================================== // // Modification History // 2009-04-02: Linus Jegher: Creation // 2009-04-03: mdarin: added function "GetLiquidDbName()" // 2009-04-06: Linus Jegher: added function "GetLiquidDevices" // 2009-04-07: Linus Jegher: added function "GetLiquidClassDescription" // 2009-04-07: mdarin: added function "getTipTypesNames" // 2010-01-20: mdarin: added function "SetStateOriginalLiquid" // Set state of the liquid-class (TRUE: Predefined / FALSE: user-defined) // 2016-06-13 acuevas: added function "SetLiquidClassAspirateParameter", "SetLiquidClassDispenseParameter" //// ====================================================================== /* Beschreibung: ============================ ML STAR Liquid Class Library ============================ Diese Library bietet folgende Funktionen: - GetLiquidClassNames() Zurckgeben von allen Liquidklassennamen. - GetLiquidClassNamesFiltered() Zurckgeben von Liquidklassennamen gefiltert nach Liquid Device, Liquid, Tip typ und Dispense Mode. - EnableTadm() TADM Flag fr Liquidklasse setzen. - GetLiquidClassDispenseParameter() GetLiquidClassAspirateParameter() GetLiquidClassParameter() Auslesen jeder Eigenschalt einer Liqudklasse - GetCorrectionCurve() Zurckgeben der Korrekturkurve einer Liquidklasse - UpdateCorrectionCurve() Setzen der Korrekturkurve fr eine Liquidklasse - ExportLiquidClass() Eine Liquidklasse in eine Datei exportieren. Die Library muss bevor sie benutzt wird, initialisiert werden mit der Initialize(). Eine Liquidklasse muss, bevor eine Funktion auf ihr ausgefhrt wird, selektiert werden mit SelectLiquidClass(). */ #pragma once #include "HslUtilLib.hsl" #include "HSLUtilLib2.hsl" namespace MLSTAR_LIQUIDCLASSLib { // Die Werte fr die Funktion GetLiquidClassNamesFiltered() um den entsprechenden // Filter auszuschalten. namespace LIQUIDCLASSNAMES_FILTER { const variable NoLiquidDeviceFilter (-1); const variable NoLiquidNameFilter( ""); const variable NoTipTypeFilter( -1); const variable NoDispenseModeFilter( -1); } namespace LIQUIDCLASS_DISPENSEMODE { const variable Undefined (-1); const variable DispenseJet (0); const variable DispenseSurface (1); const variable DispenseJetPartVolume (2); const variable DispenseJetEmptyTip (3); const variable DispenseSurfacePartVolume (4); const variable DispenseSurfaceEmptyTip (5); } const variable HSL_TRUE ( hslTrue ); // constant hslTrue const variable HSL_FALSE ( hslFalse); // constant hslFalse // Aspiration Parameter // Fr GetLiquidClassAspirateParameter() namespace LIQUIDCLASS_PARAMS_ASP { const variable FlowRate (-533331950); const variable MixFlowRate (-533331949); const variable AirTransportVolume (-533331948); const variable BlowOutVolume (-533331947); const variable SwapSpeed (-533331946); const variable SettlingTime (-533331945); const variable OverAspirateVolume (-533331936); const variable ClotRetractHeight (-533331935); } // Dispensation Parameter // Fr GetLiquidClassDispenseParameter() namespace LIQUIDCLASS_PARAMS_DISP { const variable FlowRate (-533331950); const variable MixFlowRate (-533331949); const variable AirTransportVolume (-533331948); const variable BlowOutVolume (-533331947); const variable SwapSpeed (-533331946); const variable SettlingTime (-533331945); const variable StopFlowRate (-533331920); const variable StopBackVolume (-533331919); } // Allgemeine Liquidklassen Parameter // For GetLiquidClassParameter() namespace LIQUIDCLASS_PARAMS { // const variable DataDefVersion (-533331968); ?? const variable LiquidVersion (-533331967); const variable LiquidName (-533331966); const variable TipType (-533331965); const variable DispenseMode (-533331964); const variable OriginalLiquid (-533331963); const variable Notes (-533331962); const variable LiquidDevice (-533331961); // object const variable AspirateParameter (-533331952); // object const variable DispenseParameter (-533331951); // object const variable CorrectionCurve (-533331904); // object const variable PressureLLDSensitivity(-533331899); const variable LLDMaxHeightDifference(-533331898); const variable ValidationState (-533331897); const variable DesignHistory (-533331896); // object const variable MaxAspirateVolume (-533331895); const variable Tadm_Enabled (-533331887); } // Dieses Objekt referenziert das HxStarLiquidClass COM-Objekt. // Dieses Objekt wird gemeinsam von allen Tasks/Prozessen benutzt. static global object MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass; // Diese variablen speichern fr jeden Task/Prozess die selektierte Liquidklasse // D.h.: Jeder Task und jeder Prozess hat eine eigene selektierte Liquidklasse. static variable Selected_LiquidClassName(""); static object Selected_LiquidClassObject; // Diese Funktion implementiert die Initialisierung der Library. // Diese Funktion kann mehrmals aufgerufen werden, z.b.: von verschiedenen Prozessen oder Tasks. static global function MLSTAR_LIQUIDCLASSLib_Initialize( variable iReadOnly) void { // Library nur das erste mal initialisieren. if (MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.IsNull( ) == hslFalse) { return; } { object HxRegistry; variable instClassCfgFil; HxRegistry.CreateObject("HXREGLib.HxRegistry"); MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.CreateObject("Hamilton.HxStarLiquidClass"); instClassCfgFil = HxRegistry.InstClassCfgFile("ML_STAR"); #ifdef _DEBUG_UserConfig FormatTrace("DEBUG", GetFunctionName(), 4, "ML_STAR", " instrument class config file name: ", instClassCfgFil); #endif MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.InitStarLiquidClass( instClassCfgFil, iReadOnly); } } // Diese funktion wirft eine Exception, wenn die Library nicht initialisiert ist. // Das ist besser als die Fehlermeldung von HSL, die einfach nur 'Bad Argument' ist. static function Check_IsInitialized() void { if (MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.IsNull()) err.Raise( -1, "MLSTARLiquidClassLib: Library is not initialized!\n\n> Use function MLSTAR_LIQUIDCLASSLib::Initialize().\n"); } // Diese funktion wirft eine Exception, wenn keine Liquidklasse selektiert ist. // Das ist besser als die Fehlermeldung von HSL, die einfach nur 'Bad Argument' ist. static function Check_IsSelected() void { if (Selected_LiquidClassObject.IsNull()) err.Raise( -1, "MLSTARLiquidClassLib: No Liquidclass is selected!\n\n> Use function MLSTAR_LIQUIDCLASSLib::SelectLiquidClass().\n"); } function Initialize( variable iReadOnly) void { MLSTAR_LIQUIDCLASSLib_Initialize( iReadOnly); } function GetLiquidClassNames( variable& outLiquidClassNames[]) variable { object parsLiquidClassNames; parsLiquidClassNames.CreateObject("HXPARAMSLib.HxPars"); Check_IsInitialized(); MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.GetLiquidClassNames( parsLiquidClassNames); outLiquidClassNames = parsLiquidClassNames.GetKeys(); { // sortiere das array. Dazu muss ein zweites array erstellt werden, // das aber in diesem Zusammenhang nicht benutzt wird. variable dummyArray[]( outLiquidClassNames.GetSize()); Util::Sort( dummyArray, outLiquidClassNames); } return (outLiquidClassNames.GetSize()); } // Returns an array of liquid class names filtered for the specified values for // liquid device id, liquid name, tip type id and dipsense mode. The array of liquid class names is sorted. function GetLiquidClassNamesFiltered( variable liquidDeviceFilter, variable liquidNameFilter, variable tipTypeFilter, variable dispenseModeFilter, variable& outLiquidClassNames[]) variable { object parsNames; parsNames.CreateObject("HXPARAMSLib.HxPars"); Check_IsInitialized(); MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.GetFilteredLiquidClassNames( liquidDeviceFilter, liquidNameFilter, dispenseModeFilter, tipTypeFilter, parsNames); outLiquidClassNames = parsNames.GetKeys(); // Schlssel sind Liquidklassennamen { // sortiere das array. Dazu muss ein zweites array erstellt werden, // das aber in diesem Zusammenhang nicht benutzt wird. variable dummyArray[]( outLiquidClassNames.GetSize()); Util::Sort( dummyArray, outLiquidClassNames); } return (outLiquidClassNames.GetSize()); // size of array } // // Diese Funktion ladet die Daten einer Liquidklasse // function SelectLiquidClass( variable inLiquidClassName) void { object objectTemp; Check_IsInitialized(); Selected_LiquidClassObject.ReleaseObject(); Selected_LiquidClassName = ""; objectTemp.CreateObject("HXPARAMSLib.HxPars"); MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.GetLiquidClass( inLiquidClassName, objectTemp, hslFalse); Selected_LiquidClassName = inLiquidClassName; Selected_LiquidClassObject = objectTemp; } // Gibt die Korrekturpunkte der Kurve zurck. Die X-Werte werden im outXWerte-Array zurckgegeben. // Im outYWerte-Array werden die Y-Werte zurckgegeben. Die Korrekturpunkte sind in den // Arrays nach X-Wert aufsteigend sortiert. function GetCorrectionCurve( variable& outXWerte[], variable& outYWerte[]) variable { object parsCorrectionCurves; Check_IsSelected(); parsCorrectionCurves = Selected_LiquidClassObject.Item1( LIQUIDCLASS_PARAMS::CorrectionCurve); parsCorrectionCurves.GetItems( outXWerte, outYWerte); // wandle Zeichenkette in flieskomma Zahl { variable cItems; variable iItem; cItems = outXWerte.GetSize(); for (iItem = 0; iItem < cItems; ++iItem) { outXWerte[ iItem] = FVal( outXWerte.GetAt( iItem)); } } Util::Sort( outYWerte, outXWerte); return (outXWerte.GetSize()); } function UpdateCorrectionCurve( variable inXWerte[], variable inYWerte[]) void { // TODO: berprfen ob beide arrays gleich viel werte enthalten. object parsCorrectionCurves; Check_IsSelected(); if (inXWerte.GetSize() != inYWerte.GetSize()) { variable formatArgs; formatArgs = " inXWerte.Size: " + IStr( inXWerte.GetSize()) + "\n inYWerte.Size: " + IStr( inYWerte.GetSize()); err.Raise( -1, "MLSTARLiquidClassLib::UpdateCorrectionCurve(): The arrays inXWerte and inYWerte have different size!\n" + formatArgs + "\n"); } parsCorrectionCurves = Selected_LiquidClassObject.Item1( LIQUIDCLASS_PARAMS::CorrectionCurve); parsCorrectionCurves.RemoveAll(); // die Korrekturkurven-Punkte werden neu erstellt. { variable cItems; variable iItem; cItems = inXWerte.GetSize(); for (iItem = 0; iItem < cItems; ++iItem) { parsCorrectionCurves.Add( inYWerte.GetAt( iItem), inXWerte.GetAt( iItem)); } } MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.SetLiquidClass( Selected_LiquidClassName, Selected_LiquidClassObject); } function SetLiquidClassAspirateParameter (variable aspirateParameter, variable paramValue) void { object tempParam; tempParam = Selected_LiquidClassObject.Item1(LIQUIDCLASS_PARAMS::AspirateParameter); tempParam.Remove(aspirateParameter); tempParam.Add(paramValue,aspirateParameter); MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.SetLiquidClass( Selected_LiquidClassName, Selected_LiquidClassObject); } function SetLiquidClassDispenseParameter (variable dispenseParameter, variable paramValue) void { object tempParam; tempParam = Selected_LiquidClassObject.Item1(LIQUIDCLASS_PARAMS::DispenseParameter); tempParam.Remove(dispenseParameter); tempParam.Add(paramValue,dispenseParameter); MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.SetLiquidClass( Selected_LiquidClassName, Selected_LiquidClassObject); } // Die funtion gibt den Wert des angegebenen Parameters aus dem Namensraum LIQUIDCLASS_PARAMS function GetLiquidClassParameter( variable param) variable { Check_IsSelected(); return (Selected_LiquidClassObject.Item1( param)); } // Die funtion gibt den Wert des angegebenen Parameters aus dem Namensraum LIQUIDCLASS_PARAMS function GetLiquidClassParameter_Object( variable param, object& outObject) void { Check_IsSelected(); outObject = Selected_LiquidClassObject.Item1( param); } // Die funktion gibt den Wert des angegebenen Aspirations-Parameters aus dem Namensraum LIQUIDCLASS_PARAMS function GetLiquidClassAspirateParameter( variable aspirateParameter) variable { Check_IsSelected(); return (Selected_LiquidClassObject.Item2( LIQUIDCLASS_PARAMS::AspirateParameter, aspirateParameter)); } // Die funktion gibt den Wert des angegebenen Dispensations-Parameters aus dem Namensraum LIQUIDCLASS_PARAMS function GetLiquidClassDispenseParameter( variable dispenseParameter) variable { Check_IsSelected(); return (Selected_LiquidClassObject.Item2( LIQUIDCLASS_PARAMS::DispenseParameter, dispenseParameter)); } // Schaltet TADM fr selektierte Liquidklasse ein, wenn es noch nocht ist. function EnableTadm() void { variable tadmEnabled; Check_IsSelected(); tadmEnabled = Selected_LiquidClassObject.Item1( LIQUIDCLASS_PARAMS::Tadm_Enabled); if (tadmEnabled != hslTrue) { Selected_LiquidClassObject.Add( hslTrue, LIQUIDCLASS_PARAMS::Tadm_Enabled); MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.SetLiquidClass( Selected_LiquidClassName, Selected_LiquidClassObject); } } // Gibt das aktuelle Datum formatiert als Zeitstempel. Es kann als Teil eines Dateinamen // benutzt werden. Beispiel: 2009-03-17_14-56-35 - function GetTimeStamp() variable { variable date; variable time; time = GetTime( "%H-%M-%S"); date = GetDate( "%Y-%m-%d"); return (date + "_" + time); } // exportiert die selektierte Liquidklasse in die angegebene Datenbankdatei. // Diese Datenbankdatei wird neu erstellt, falls sie schon existiert. function ExportLiquidClass( variable liquidDbFile) void { object hxStarLiquid; Check_IsSelected(); { object hxRegistry; variable instClassCfgFil; hxRegistry.CreateObject("HXREGLib.HxRegistry"); hxStarLiquid.CreateObject("Hamilton.HxStarLiquidClass"); instClassCfgFil = hxRegistry.InstClassCfgFile("ML_STAR"); hxStarLiquid.InitStarLiquidClass( instClassCfgFil, hslFalse, liquidDbFile, hslTrue); } hxStarLiquid.SetLiquidclass( Selected_LiquidClassName, Selected_LiquidClassObject); hxStarLiquid.CloseDatabase(); } //mdarin: 03.04.2009: function added // get the name (file) of the Access-DB function GetLiquidDbName() variable { return(MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.GetLiquidDbName()); } //mdarin: 06.04.2009: function added (with help from L. Jegher) function GetLiquidDevices() variable { object parsLiquidClassDevices; object hxStarTipTypes; variable arrLiquidDevices[]; variable name; variable deviceId; variable deviceCount; variable item; variable outliquidDevices(""); GetLiquidClassParameter_Object( LIQUIDCLASS_PARAMS::LiquidDevice, parsLiquidClassDevices); arrLiquidDevices = parsLiquidClassDevices.GetValues(); // values in array hxStarTipTypes.CreateObject( "Hamilton.HxStarLiquidDevices"); //Trace( "DeviceIDs.Count=", arrLiquidDevices.GetSize()); deviceCount = arrLiquidDevices.GetSize(); for (item = 0; item < deviceCount; item++) { deviceId = arrLiquidDevices[item]; //Trace( "DeviceID=", deviceId); name = hxStarTipTypes.GetViewName( deviceId); //Trace( "DeviceName fr DeviceID ",name); outliquidDevices = outliquidDevices + name + ";"; } //Trace( "LiquidDevices=", outliquidDevices); return(outliquidDevices); } namespace DESCRIPTION_SECTIONS { static const variable None ( 0); static const variable CommonParameters ( 1); static const variable LiquidParameters ( 2); static const variable CorrectionCurve ( 4); static const variable Notes ( 8); static const variable TadmState ( 16); static const variable ToleranceBandVolumes ( 32); static const variable ToleranceBandDetails ( 64); static const variable All (CommonParameters+LiquidParameters+CorrectionCurve+Notes+TadmState+ToleranceBandVolumes+ToleranceBandDetails); } function GetLiquidClassDescription() variable { variable description; Check_IsSelected(); description = MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.GetLiquidClassDescription( Selected_LiquidClassName, DESCRIPTION_SECTIONS::All); return (description); } // 07.04.2009: mdarin: created with claudio jrg // get tiptypes in array. (parallel-array) // get tip-name in array. (parallel-array) // tip-types depending on config-file! function getTipTypesNames(variable& oArrTipID[], variable& oArrTipNames[]) variable { object objTmp; object starTipTypes; object parsPtr; object enumerator; object hxPar; object parsOneTipType; if ( 0 == objTmp.CreateObject("Hamilton.HxStarTipTypes") ) // create temp object { Trace("ERROR: CreateObject(\"Hamilton.HxStarTipTypes\")"); // error create object return(hslFalse); } if ( 0 == objTmp.GetObject("IHxStarTipTypes2", starTipTypes) ) // create temp object { Trace("ERROR: Query Interface to IHxStarTipTypes2"); // error create object return(hslFalse); } // Trace(starTipTypes); if ( 0 == parsPtr.CreateObject("HXPARAMSLib.HxPars") ) { Trace("ERROR: parsPtr.CreateObject(\"HXPARAMSLib.HxPars\")"); return(hslFalse); } // Trace("Count = ", parsPtr.Count); starTipTypes.GetTipTypes(parsPtr); // Trace("Count = ", parsPtr.Count); enumerator = parsPtr._NewEnum; while (enumerator.EnumNext(hxPar)) { //Trace("TipType=", hxPar.Key, " value=", hxPar.Value); parsOneTipType = hxPar.Value; // Trace("ViewName=", parsOneTipType.Item1(starTipTypes.HxStarTipTypeKeys_ttViewName)); oArrTipID.AddAsLast(hxPar.Key); oArrTipNames.AddAsLast(parsOneTipType.Item1(starTipTypes.HxStarTipTypeKeys_ttViewName)); hxPar.ReleaseObject(); } // sort arrays Util::Sort( oArrTipID, oArrTipNames); return(hslTrue); } // function "SetStateOriginalLiquid", 2010-01-20, mdarin // Set state of the liquid-class (TRUE: Predefined / FALSE: user-defined) function SetStateOriginalLiquid( variable iState // hslTrue: set to "predefined", hslFalse: set to "user-defined" ) void { variable actualState; if (iState != HSL_TRUE && iState != HSL_FALSE) { Trace("ERROR: Wrong input-parameter. Only hslTrue or hslFalse allowed!"); err.Raise( -1, "ERROR: Wrong input-parameter. Only hslTrue or hslFalse allowed!"); } Check_IsSelected(); // raise error if no LC is selected in previous actualState = Selected_LiquidClassObject.Item1( LIQUIDCLASS_PARAMS::OriginalLiquid); // get actual state of LC // Trace("actualState before update: ", actualState, " / iState: ", iState); if (actualState != iState) // set only if "new state" is not equal to "existing state" { Selected_LiquidClassObject.Add( iState, LIQUIDCLASS_PARAMS::OriginalLiquid); MLSTAR_LIQUIDCLASSLib_HxStarLiquidClass.SetLiquidClass( Selected_LiquidClassName, Selected_LiquidClassObject); } // actualState = Selected_LiquidClassObject.Item1( LIQUIDCLASS_PARAMS::OriginalLiquid); // Trace("actualState AFTER update: ", actualState); } // ------------------------------------------------------------ /* #define TEST_MLSTAR_LIQUIDCLASSLib 1 #ifdef TEST_MLSTAR_LIQUIDCLASSLib method main() { //variable oAarr[]; //Initialize( hslTrue); // SelectLiquidClass( "michiMitClaudia_5mlT_Water_DispenseSurface_Empty"); //SelectLiquidClass( "1000ulNeedleCRWater_DispenseJet_Empty"); //GetLiquidDevices(); //Trace( GetLiquidClassDescription()); variable oArrTipID[]; variable oArrTipNames[]; variable retVal; retVal = getTipTypesNames(oArrTipID, oArrTipNames); Trace("-------------------------------"); Trace("retVal = ", retVal); Trace("-------------------------------"); Util2::Debug::TraceArray_2("2Arrays", oArrTipID, oArrTipNames); Trace("-------------------------------"); } #endif // ------------------------------------------------------------ */ } // $$author=Cuevas_A$$valid=0$$time=2016-06-13 20:10$$checksum=c180235c$$length=085$$ ================================================ FILE: pyhamilton/library/SMTs/lookup.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 1/16/2017 10:36:57 PM #pragma once #ifndef HSL_RUNTIME namespace LOOKUP { function _InitLibrary() { } function _ExitLibrary() { } function Lookup( variable & array[], variable item ) variable { return (0); } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=Bare_B$$valid=0$$time=2017-01-16 22:36$$checksum=21d7e3ff$$length=083$$ ================================================ FILE: pyhamilton/library/SMTs/lookup.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "HSLUtilLib.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace LOOKUP { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function Lookup( variable & array[], variable item ) variable ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" // }} "" } // {{{ 5 "Lookup" "Begin" function Lookup( variable & array[], variable item ) variable { // }} "" private variable index; private variable lookupreturn; // {{ 5 "Lookup" "InitLocals" // }} "" // {{{ 1 1 0 "73682500_9c03_41e6_9201fab1cd9ec558" "{C1F3C015-47B3-4514-9407-AC2E65043419}" lookupreturn = Util::Lookup(array, item, index); // }} "" // {{ 2 1 0 "d9632361_4ee8_4d64_b474934cca7658f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lookupreturn > 0) { // }} "" // {{ 3 1 0 "44861c96_df20_437e_a886b3c8938bf129" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" index = index + 1; // }} "" // {{{ 4 1 0 "f372de40_bd88_4ab1_95c0820685390b07" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (index); // }} "" // {{ 5 1 0 "d9632361_4ee8_4d64_b474934cca7658f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 6 1 0 "f060c5ab_63e8_43de_88d40330f32e022d" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (0); // }} "" // {{ 7 1 0 "d9632361_4ee8_4d64_b474934cca7658f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "Lookup" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=Bare_B$$valid=0$$time=2017-01-16 22:36$$checksum=6a223184$$length=085$$ ================================================ FILE: pyhamilton/library/STAR Tools/Channel Tools Test.res ================================================ #pragma once global resource Res_ML_STAR(1, 0xff0000, Translate("ML_STAR")); function Res_ML_STAR_map(variable unit) variable { return(unit); } function Res_ML_STAR_rmap(variable address) variable { return(address); } namespace ResourceUnit { variable Res_ML_STAR; } // $$author=Bare_B$$valid=0$$time=2022-04-20 16:54$$checksum=e56ba27c$$length=083$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/CHANNEL_TOOLS_GLOBAL.hsl ================================================ #pragma global #ifndef __CHANNEL_TOOLS_GLOBAL_hsl__ #define __CHANNEL_TOOLS_GLOBAL__ 1 namespace SPLIT_WELLS_GLOBAL { function InitializeVariables(); function InitializeVariables() {} variable ARR_CONTAINER_IDS[]; variable ARR_LABWARE_CONFIG_FILE[]; variable ARR_CONTAINER_CONFIG_FILE[]; variable ARR_CONTAINER_WIDTH[]; variable ARR_CONTAINER_SHAPE[]; variable ARR_CONTAINER_BOTTOM_WIDTH[]; variable ARR_CONTAINER_TOP_WIDTH[]; variable ARR_CONTAINER_BOTTOM_HEIGHT[]; variable BOOL_LIBRARY_INITIALIZED(hslFalse); } namespace LABWARE_OFFSET_GLOBAL { variable BOOL_LIBRARY_INITIALIZED(hslFalse); variable ARR_CONTAINER_CONFIG_FILE[]; variable ARR_CONTAINER_SHAPE[]; variable ARR_CONTAINER_BOTTOM_WIDTH[]; variable ARR_CONTAINER_TOP_WIDTH[]; variable ARR_CONTAINER_BOTTOM_HEIGHT[]; } namespace LABWARE_TILT { variable BOOL_LIBRARY_INITIALIZED(hslFalse); variable ARR_LABWARE_CONFIG_FILE[]; variable ARR_BASE_OFFSET[]; } #endif // $$author=Bare_B$$valid=0$$time=2018-03-20 16:48$$checksum=7261bae0$$length=085$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/FW_HelperLibrary.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 10/23/2020 1:02:26 PM #pragma once #ifndef HSL_RUNTIME namespace FW_HELPERLIBRARY { function _InitLibrary() { } function _ExitLibrary() { } function CheckForError( variable i_str_FunctionName, variable i_str_ReturnValue, variable i_bool_RaiseError ) void { } function GetChannelNumber( variable & io_int_ChannelNumber ) void { } function GetChannelValue( variable i_int_ChannelNumber, variable & o_str_ChannelValue ) void { } function GetErrorDescriptionMainError( variable i_str_ErrorCode, variable & o_str_ErrorDescription ) void { } function GetErrorDescriptionSlaveError( variable i_str_ErrorCode, variable & o_str_ErrorDescription ) void { } function GetSlaveError( variable i_str_ReturnValue, variable & o_arr_Channels[], variable & o_arr_SlaveErrors[], variable & o_arr_ErrorDescription[] ) void { } function Get_Instrument_Type( device & ML_STAR, variable & o_int_InstrumentType, variable & o_int_MaxAutoloadTracks ) variable { return (0); } function Get_X_Ranges_STAR( device & ML_STAR, variable & o_flt_LeftXMin, variable & o_flt_LeftXMax, variable & o_flt_RightXMin, variable & o_flt_RightXMax ) void { } function InitFunction( device & ML_STAR ) void { } function Parse_Parameter_Multiple( variable i_str_ParameterFull, variable i_str_Parameter, variable i_flt_Conversion, variable i_int_TotalDigits, variable i_int_MaxValues, variable & o_bol_ParameterFound, variable & o_arr_flt_Value[] ) void { } function Parse_Parameter_Multiple2( variable i_str_ParameterFull, variable i_str_Parameter, variable i_flt_Conversion, variable & o_bol_ParameterFound, variable & o_arr_flt_Value[] ) void { } function Parse_Parameter_Single( variable i_str_ParameterFull, variable i_str_Parameter, variable i_flt_Conversion, variable i_int_TotalDigits, variable & o_bol_ParameterFound, variable & o_flt_Value ) void { } function Parse_Parameter_Single_String( variable i_str_ParameterFull, variable i_str_Parameter, variable & o_bol_ParameterFound, variable & o_str_Value ) void { } function RemoveExcessDigits( variable & io_flt_Value ) void { } function SetParameter( variable i_strParameterName, variable i_fltValue, variable i_fltConversionValue, variable i_intTotalDigits, variable & o_strParameter ) void { } function SetParametersAll( variable i_strParameterName, variable i_fltValue, variable i_fltConversionValue, variable i_intTotalDigits, variable & o_strParameter ) void { } function SetParametersArr( variable i_strParameterName, variable & i_arrValues[], variable i_fltConversionValue, variable i_intTotalDigits, variable i_intTotalChannels, variable & o_strParameter ) void { } global variable G_ARR_FW_XL_COM_YMin[]; global variable G_ARR_FW_PIP_COM_YMax[]; global variable G_ARR_FW_PIP_COM_YMin[]; global variable G_FW_PIP_COM_XArmMax; global variable G_FW_PIP_COM_FirmwareType; global variable G_FW_PIP_COM_SimulationMode; global variable G_FW_XL_COM_Raster; global variable G_FW_PIP_COM_TotalChannels; global variable G_ARR_FW_XL_COM_YMax[]; global variable G_FW_PIP_COM_Raster; global variable G_FW_XL_COM_TotalChannels; global variable G_FW_PIP_COM_MPH_Exist; global variable G_FW_PIP_COM_LibraryInitialized(0); global variable G_FW_PIP_COM_XArmMin; global variable G_FW_PIP_COM_InstrumentType; } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=user$$valid=0$$time=2020-10-23 13:02$$checksum=a2b94457$$length=081$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/FW_HelperLibrary.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "HSLMthLib.hsl" #include "HSLStrLib.hsl" #include "HSLExtensions\\String.hsl" #include "HSLUtilLib2.hsl" #include "HSLErrLib.hsl" #include "HSLUtilLib.hsl" #include "HSL_MethodHelper.hsl" #include "HSLExtensions\\File.hsl" #include "HSLFilLib.hsl" #include "HSLDevLib.hsl" #include "STAR Tools\\Resources\\SubMethods\\HelperLibrary.hs_" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" #include "HSLPTLLib.hsl" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace FW_HELPERLIBRARY { // }} "" global variable G_FW_PIP_COM_TotalChannels; global variable G_FW_PIP_COM_XArmMin; global variable G_FW_PIP_COM_XArmMax; global variable G_FW_PIP_COM_MPH_Exist; global variable G_FW_PIP_COM_SimulationMode; global variable G_FW_XL_COM_TotalChannels; global variable G_FW_PIP_COM_InstrumentType; global variable G_FW_XL_COM_Raster; global variable G_FW_PIP_COM_Raster; global variable G_FW_PIP_COM_FirmwareType; global variable G_FW_PIP_COM_LibraryInitialized(0); global variable G_ARR_FW_XL_COM_YMax[]; global variable G_ARR_FW_PIP_COM_YMin[]; global variable G_ARR_FW_PIP_COM_YMax[]; global variable G_ARR_FW_XL_COM_YMin[]; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function CheckForError( variable i_str_FunctionName, variable i_str_ReturnValue, variable i_bool_RaiseError ) void ; function GetChannelNumber( variable & io_int_ChannelNumber ) void ; function GetChannelValue( variable i_int_ChannelNumber, variable & o_str_ChannelValue ) void ; function GetErrorDescriptionMainError( variable i_str_ErrorCode, variable & o_str_ErrorDescription ) void ; function GetErrorDescriptionSlaveError( variable i_str_ErrorCode, variable & o_str_ErrorDescription ) void ; function GetSlaveError( variable i_str_ReturnValue, variable & o_arr_Channels[], variable & o_arr_SlaveErrors[], variable & o_arr_ErrorDescription[] ) void ; function Get_Instrument_Type( device & ML_STAR, variable & o_int_InstrumentType, variable & o_int_MaxAutoloadTracks ) variable ; function Get_X_Ranges_STAR( device & ML_STAR, variable & o_flt_LeftXMin, variable & o_flt_LeftXMax, variable & o_flt_RightXMin, variable & o_flt_RightXMax ) void ; function InitFunction( device & ML_STAR ) void ; function Parse_Parameter_Multiple( variable i_str_ParameterFull, variable i_str_Parameter, variable i_flt_Conversion, variable i_int_TotalDigits, variable i_int_MaxValues, variable & o_bol_ParameterFound, variable & o_arr_flt_Value[] ) void ; function Parse_Parameter_Multiple2( variable i_str_ParameterFull, variable i_str_Parameter, variable i_flt_Conversion, variable & o_bol_ParameterFound, variable & o_arr_flt_Value[] ) void ; function Parse_Parameter_Single( variable i_str_ParameterFull, variable i_str_Parameter, variable i_flt_Conversion, variable i_int_TotalDigits, variable & o_bol_ParameterFound, variable & o_flt_Value ) void ; function Parse_Parameter_Single_String( variable i_str_ParameterFull, variable i_str_Parameter, variable & o_bol_ParameterFound, variable & o_str_Value ) void ; function RemoveExcessDigits( variable & io_flt_Value ) void ; function SetParameter( variable i_strParameterName, variable i_fltValue, variable i_fltConversionValue, variable i_intTotalDigits, variable & o_strParameter ) void ; function SetParametersAll( variable i_strParameterName, variable i_fltValue, variable i_fltConversionValue, variable i_intTotalDigits, variable & o_strParameter ) void ; function SetParametersArr( variable i_strParameterName, variable & i_arrValues[], variable i_fltConversionValue, variable i_intTotalDigits, variable i_intTotalChannels, variable & o_strParameter ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" PTL::SetWashingStateDefault("RinseTime1", 5); PTL::SetWashingStateDefault("SoakTime1", 5); PTL::SetWashingStateDefault("FlowRate1", 11); PTL::SetWashingStateDefault("RinseTime2", 0); PTL::SetWashingStateDefault("SoakTime2", 0); PTL::SetWashingStateDefault("FlowRate2", 11); PTL::SetWashingStateDefault("DrainingTime", 10); PTL::SetWashingStateDefault("StartWashLiquid", 0); PTL::SetLoadingStateDefault("RecoveryOptionContinue", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionExclude", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionDefault", 0); PTL::SetLoadingStateDefault("KitLotCheckEnabled", hslFalse); HELPERLIBRARY::_InitLibrary(); // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" HELPERLIBRARY::_ExitLibrary(); // }} "" } // {{{ 5 "GetErrorDescriptionMainError" "Begin" function GetErrorDescriptionMainError( variable i_str_ErrorCode, variable & o_str_ErrorDescription ) void { // }} "" private variable str_ErrorDescription; private variable str_ErrorCause; // {{ 5 "GetErrorDescriptionMainError" "InitLocals" o_str_ErrorDescription = 0; // }} "" // {{{ 153 1 0 "2fd09426_b8d5_4bd0_a865fe3b076818a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ErrorCode = StrConcat2(i_str_ErrorCode, Translate("")); // }} "" // {{ 154 1 0 "ff8ca630_397d_4e9f_a804f2f93f5d5ace" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Unknown error"); // }} "" // {{ 155 1 0 "b380b8c3_f4e6_4a53_ba30569b269aff1f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 156 1 0 "d762c888_7a95_46f1_b972aaf62316cba5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ErrorDescription = Translate(""); // }} "" // {{ 157 1 0 "f16d5e40_b5c5_4b79_8435d2610cbb2102" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "00") { // }} "" // {{ 158 1 0 "61d362dc_c80f_416e_b9c9608735b2d8a8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("No Error"); // }} "" // {{ 159 1 0 "bae7c277_e1cd_4709_91014652ec062b53" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 160 1 0 "f16d5e40_b5c5_4b79_8435d2610cbb2102" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 161 1 0 "8bd45cbf_7aa6_41ab_8096898e86352e17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "01") { // }} "" // {{ 162 1 0 "19eda1fe_bdb5_44d0_919753c5ef91e311" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Syntax error"); // }} "" // {{ 163 1 0 "7e1ba0d1_f2a8_47ac_93cba5838af19f64" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 164 1 0 "8bd45cbf_7aa6_41ab_8096898e86352e17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 165 1 0 "f1784673_8460_4aa0_a5aaa54c5aa6d640" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "02") { // }} "" // {{ 166 1 0 "23464258_a4dd_4c32_b3738fa25d94e9f5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Hardware error"); // }} "" // {{ 167 1 0 "1cadda43_3d94_4730_b71f4c53cb2aff91" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("drive blocked, low power etc."); // }} "" // {{ 168 1 0 "f1784673_8460_4aa0_a5aaa54c5aa6d640" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 169 1 0 "63e19508_f6bb_4b3a_96c33bbdf05f7dd2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "03") { // }} "" // {{ 170 1 0 "068dc7ad_92d9_450e_b9edaf748c33a461" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Command not completed"); // }} "" // {{ 171 1 0 "e5dcbde4_7017_4602_a96ca61a00929905" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("error in previous sequence (not executed)"); // }} "" // {{ 172 1 0 "63e19508_f6bb_4b3a_96c33bbdf05f7dd2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 173 1 0 "817bec49_b65f_46f0_b93d483aa8920218" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "04") { // }} "" // {{ 174 1 0 "a4d93d79_27f5_41f8_81ae9f0c4e57859f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Clot detected"); // }} "" // {{ 175 1 0 "06b48dc3_cb69_4846_b16cfd0183bd02b6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("LLD not interrupted"); // }} "" // {{ 176 1 0 "817bec49_b65f_46f0_b93d483aa8920218" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 177 1 0 "18bc92f5_0e41_489a_9b80dcb95f2224e2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "05") { // }} "" // {{ 178 1 0 "b8b24bee_0709_4398_8e30cc689ab8b491" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Barcode unreadable"); // }} "" // {{ 179 1 0 "9a7f5a13_fe94_46b3_bf1fc6f8a3a8b677" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("bad or missing barcode"); // }} "" // {{ 180 1 0 "18bc92f5_0e41_489a_9b80dcb95f2224e2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 181 1 0 "ff94ecbe_a5af_433c_a3c69ee12732f485" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "06") { // }} "" // {{ 182 1 0 "ea2169a7_3079_448f_91ec68b01c47db7f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Too little liquid"); // }} "" // {{ 183 1 0 "5dea1a85_831f_46f3_93ebf023badf9622" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("liquid surface is not detected"); // }} "" // {{ 184 1 0 "ff94ecbe_a5af_433c_a3c69ee12732f485" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 185 1 0 "66a069ae_2af0_40b9_b299e4e2467bdc30" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "07") { // }} "" // {{ 186 1 0 "ab7291b3_0661_4fc6_ab4365f05f9ca4b0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Tip already fitted"); // }} "" // {{ 187 1 0 "99d3e194_ae31_4038_89f772501d7c404d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Repeated attempts to fit a tip or iSwap movement with tips"); // }} "" // {{ 188 1 0 "66a069ae_2af0_40b9_b299e4e2467bdc30" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 189 1 0 "4da4b08c_6498_4ab4_bac5e8b49b029bf5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "08") { // }} "" // {{ 190 1 0 "fd596358_5170_4780_b58bc29d4c72a5a7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("No Tip"); // }} "" // {{ 191 1 0 "ae62c9d5_04ea_4583_bcbbf0e3461ececa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("command was started without fitting tip"); // }} "" // {{ 192 1 0 "4da4b08c_6498_4ab4_bac5e8b49b029bf5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 193 1 0 "3671bdc3_7229_43b6_9bb6b44bc5e73ff9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "09") { // }} "" // {{ 194 1 0 "deed5f97_0b61_4e49_909199ccb89d4bfc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("No Carrier"); // }} "" // {{ 195 1 0 "883b27c3_6b90_4fda_a23dc64cdfbf3736" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("load command without carrier"); // }} "" // {{ 196 1 0 "3671bdc3_7229_43b6_9bb6b44bc5e73ff9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 197 1 0 "4fa59db3_e9a8_4e76_a282fec388daf0ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "10") { // }} "" // {{ 198 1 0 "269a484c_9d32_47ca_bcf5233876dc7f8e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Not completed"); // }} "" // {{ 199 1 0 "3b208baf_962a_4cf5_851cacbb63d6ab2c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Command in command buffer was aborted due to an error in a previous command, or command stack was deleted"); // }} "" // {{ 200 1 0 "4fa59db3_e9a8_4e76_a282fec388daf0ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 201 1 0 "27bab5c1_3a87_476c_983ae0f4799a5da9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "11") { // }} "" // {{ 202 1 0 "2bed150c_0b3b_4677_bb392f325bab5cac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Dispense with pressure LLD"); // }} "" // {{ 203 1 0 "f7eebac6_8597_43e0_8c47e8aa50c97bff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("dispense with pressure LLD is not permitted"); // }} "" // {{ 204 1 0 "27bab5c1_3a87_476c_983ae0f4799a5da9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 205 1 0 "30df1028_4d0d_4b5f_981ae1b65b434744" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "12") { // }} "" // {{ 206 1 0 "574805af_c729_45f5_906570f6e7254156" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("No Teach In Signal"); // }} "" // {{ 207 1 0 "1f6ad0f5_9673_4596_a559cb3c8ed724e9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("X-Movement to LLD reached maximum allowable position without detecting Teach in signal"); // }} "" // {{ 208 1 0 "30df1028_4d0d_4b5f_981ae1b65b434744" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 209 1 0 "f5478479_60f8_4753_937e83c07d37c285" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "13") { // }} "" // {{ 210 1 0 "4d61b339_bde1_415c_87d7b4f47ed72dae" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Loading Tray error"); // }} "" // {{ 211 1 0 "87c19654_27a9_4560_9d7a837f4ed234e8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("position already occupied"); // }} "" // {{ 212 1 0 "f5478479_60f8_4753_937e83c07d37c285" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 213 1 0 "41d92afb_97ac_4de1_b06e6938e00edf29" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "14") { // }} "" // {{ 214 1 0 "3d63024d_9479_4960_b85cf41fbb177373" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Sequenced aspiration with pressure LLD"); // }} "" // {{ 215 1 0 "8132794d_f797_4f50_a6bb64c84bca60bc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("sequenced aspiration with pressure LLD is not permitted"); // }} "" // {{ 216 1 0 "41d92afb_97ac_4de1_b06e6938e00edf29" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 217 1 0 "d011c74e_ed9d_410a_ab67b68f87a3a24c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "15") { // }} "" // {{ 218 1 0 "d08aa72b_b865_4665_8f7447d60fcf29a2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Not allowed parameter combination"); // }} "" // {{ 219 1 0 "b1e33a17_1b84_449c_9956d45ba23b1b23" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("i.e. PLLD and dispense or wrong X-drive assignment"); // }} "" // {{ 220 1 0 "d011c74e_ed9d_410a_ab67b68f87a3a24c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 221 1 0 "593a5e47_753e_422c_bd6daf00fb92ad18" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "16") { // }} "" // {{ 222 1 0 "515b69bd_7405_4957_a7fe530e766fdcd0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Cover close error"); // }} "" // {{ 223 1 0 "adf8db10_eefd_46a7_8952d8641fc1f474" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("cover is not closed and couldn't be locked"); // }} "" // {{ 224 1 0 "593a5e47_753e_422c_bd6daf00fb92ad18" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 225 1 0 "b832d0d5_f5f4_4e3f_ac9bd9007c1eda43" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "17") { // }} "" // {{ 226 1 0 "16fa1039_4921_4484_ab72f63534c68f26" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Aspiration error"); // }} "" // {{ 227 1 0 "6b8fac5c_c4a0_4c17_92f60733bf0b33b8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("aspiration liquid stream error detected"); // }} "" // {{ 228 1 0 "b832d0d5_f5f4_4e3f_ac9bd9007c1eda43" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 229 1 0 "e0c66351_eb31_4e80_918ea04bc1f5cad9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "18") { // }} "" // {{ 230 1 0 "2954d52f_8e4f_4ee3_95d8adf3d7dec822" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Wash fluid or waste error"); // }} "" // {{ 231 1 0 "6f561083_7e27_40c8_98930510f9350762" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("missing wash fluid, or waste of particular washer is full"); // }} "" // {{ 232 1 0 "e0c66351_eb31_4e80_918ea04bc1f5cad9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 233 1 0 "ab93ca4b_ff71_4235_b4576762c53f09d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "19") { // }} "" // {{ 234 1 0 "999a6dbf_903b_49b0_91b118ff45027f34" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Incubation error"); // }} "" // {{ 235 1 0 "78b6a4ea_46eb_48ae_878c1aa26be8d1e9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("incubator temperature out of limit"); // }} "" // {{ 236 1 0 "ab93ca4b_ff71_4235_b4576762c53f09d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 237 1 0 "1b850c55_d10c_455d_996cf2c49a303299" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "20") { // }} "" // {{ 238 1 0 "06a7fe4c_f989_4f74_a3d16b1e7c1163cc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("TADM measurement error"); // }} "" // {{ 239 1 0 "0e18265a_a334_48b9_aa898733ee3b6dc4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("overshoot of limits during aspiration or dispensation"); // }} "" // {{ 240 1 0 "1b850c55_d10c_455d_996cf2c49a303299" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 241 1 0 "d756104d_6f3c_43a5_af8a815d2c45ef41" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "21") { // }} "" // {{ 242 1 0 "3eb9894c_4f61_46e6_9d2087378fddef95" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("No element"); // }} "" // {{ 243 1 0 "720552c4_05e9_4507_a22d218fd48da385" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("expected element not detected"); // }} "" // {{ 244 1 0 "d756104d_6f3c_43a5_af8a815d2c45ef41" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 245 1 0 "87d29932_2352_4a07_a7a0b9cc6e4e0b0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "22") { // }} "" // {{ 246 1 0 "35913154_08d7_4852_a413490bb3f366e6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Element still holding"); // }} "" // {{ 247 1 0 "f62271e2_d147_4855_a61453b290ff697b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Get command is sent twice or element is not discarded"); // }} "" // {{ 248 1 0 "87d29932_2352_4a07_a7a0b9cc6e4e0b0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 249 1 0 "eb3e3828_a6e9_4c0a_9e1f10b826ef4041" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "23") { // }} "" // {{ 250 1 0 "6e44a50b_4d5e_4732_bf3cb812368c8b94" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Element lost"); // }} "" // {{ 251 1 0 "142e530e_25e3_4d0d_9e342a2948957b0c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("expected element is missing (lost)"); // }} "" // {{ 252 1 0 "eb3e3828_a6e9_4c0a_9e1f10b826ef4041" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 253 1 0 "4f05f865_c137_4080_8903db84bbb99249" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "24") { // }} "" // {{ 254 1 0 "f8e50707_9ddf_46b8_9a29b1ab395904d9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Illegal target plate position"); // }} "" // {{ 255 1 0 "b0013bce_28a0_461b_9b91a376a1702d7d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("over or underflow of iSWAP positions or iSWAP is not in park position during pipetting activities"); // }} "" // {{ 256 1 0 "4f05f865_c137_4080_8903db84bbb99249" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 257 1 0 "b3fbc197_2a41_41e4_9df80f347f1e85fb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "25") { // }} "" // {{ 258 1 0 "4fd263bf_5dc6_49ec_b1417c66218378e4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Illegal user access"); // }} "" // {{ 259 1 0 "bce38602_cc69_44af_8b756fbe2d1743b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("carrier was manually removed or cover is open"); // }} "" // {{ 260 1 0 "b3fbc197_2a41_41e4_9df80f347f1e85fb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 261 1 0 "68bf8f94_e08c_44ae_ba2d420aceb1ba22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "26") { // }} "" // {{ 262 1 0 "9ef2b3bd_b6a5_446b_8d3fd236b36eddf5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("TADM measurement error"); // }} "" // {{ 263 1 0 "e1379707_df19_45ca_a8f3d4dc3da74ddb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("exciding of limits during aspiration or dispensation"); // }} "" // {{ 264 1 0 "68bf8f94_e08c_44ae_ba2d420aceb1ba22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 265 1 0 "7832c749_6d3c_4be1_aae31d6168d94f56" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "27") { // }} "" // {{ 266 1 0 "47171c55_3463_4e1e_a8ac58a8ada578ed" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Posiition not reachable"); // }} "" // {{ 267 1 0 "3fbf3446_29d8_49ac_b232639962da4735" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("position out of mechanical limits using iSWAP, CoRe gripper or PIP-channels"); // }} "" // {{ 268 1 0 "7832c749_6d3c_4be1_aae31d6168d94f56" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 269 1 0 "bf98d427_84b7_4c78_86ef70f5f35d5694" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "28") { // }} "" // {{ 270 1 0 "ba3261bb_ca6d_4a33_817f1699abec018a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("unexpected LLD"); // }} "" // {{ 271 1 0 "0e47599f_a104_4d30_a130201aa918b8c5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Liquid level is reached before LLD scanning is started"); // }} "" // {{ 272 1 0 "bf98d427_84b7_4c78_86ef70f5f35d5694" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 273 1 0 "0c6a360e_e0a9_4756_8a2bdcc9703cf49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "29") { // }} "" // {{ 274 1 0 "c5b685a8_c60b_4c21_80ad58b7a0dcec5a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("area already occupied"); // }} "" // {{ 275 1 0 "ff354bcf_cf12_4a83_93926f10d241435b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Its impossible to occupy area because this area is already in use"); // }} "" // {{ 276 1 0 "0c6a360e_e0a9_4756_8a2bdcc9703cf49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 277 1 0 "210d7c06_da25_478e_b73d7f16641027a9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "30") { // }} "" // {{ 278 1 0 "1dfd1411_d8ad_47a2_821abb6515122848" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("impossible to occupy area"); // }} "" // {{ 279 1 0 "67469ad1_b527_4349_834bb6494a8845af" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Area cant be occupied because is no solution for arm prepositioning"); // }} "" // {{ 280 1 0 "210d7c06_da25_478e_b73d7f16641027a9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 281 1 0 "7cb5ada9_fde5_47cc_a1cb8418331cdcdf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "99") { // }} "" // {{ 282 1 0 "59e7e214_1a0f_45e3_959877e697fbd270" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Slave error"); // }} "" // {{ 283 1 0 "867e4a57_0caa_40b7_abc59e3deb652e3c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 284 1 0 "7cb5ada9_fde5_47cc_a1cb8418331cdcdf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 285 1 0 "64a0249e_5aea_4015_865a02015a741d53" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_ErrorCause == "") { // }} "" // {{{ 286 1 0 "8157c5da_aa9d_4688_82731324fa0059a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_ErrorDescription = StrConcat4(str_ErrorDescription, Translate(""), Translate(""), Translate("")); // }} "" // {{ 287 1 0 "64a0249e_5aea_4015_865a02015a741d53" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 288 1 0 "d7ef1257_e8eb_48b9_a89a22a9d0927b23" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_ErrorDescription = StrConcat4(str_ErrorDescription, Translate(" :: "), str_ErrorCause, Translate("")); // }} "" // {{ 289 1 0 "64a0249e_5aea_4015_865a02015a741d53" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "GetErrorDescriptionMainError" "End" } // }} "" // {{{ 5 "GetErrorDescriptionSlaveError" "Begin" function GetErrorDescriptionSlaveError( variable i_str_ErrorCode, variable & o_str_ErrorDescription ) void { // }} "" private variable str_ErrorDescription; private variable str_ErrorCause; private variable str_ErrorHeader; // {{ 5 "GetErrorDescriptionSlaveError" "InitLocals" o_str_ErrorDescription = 0; // }} "" // {{{ 291 1 0 "75e19f5f_5c71_40ed_9e1945ca2a344d00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ErrorCode = StrConcat2(i_str_ErrorCode, Translate("")); // }} "" // {{ 292 1 0 "dd2f50c1_0059_4d25_97498b5420c58d8b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorHeader = Translate(""); // }} "" // {{ 293 1 0 "cb6b64f8_6fae_4663_9803f5165c1b16ae" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Unknown error"); // }} "" // {{ 294 1 0 "8f6ea2d5_b154_42fc_87b6b45bdf9d1e70" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 295 1 0 "d24fcad7_2847_4a03_ae3406644818417c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ErrorDescription = Translate(""); // }} "" // {{ 296 1 0 "b5c9fba9_bc50_45c2_ace146ed7514ec5c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "00") { // }} "" // {{ 297 1 0 "fafa9e4c_37fe_40fc_8d676cc7a8ea73a4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorHeader = Translate(""); // }} "" // {{ 298 1 0 "b815d66f_e406_4e5a_93e74a26504438c8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("No Error"); // }} "" // {{ 299 1 0 "9b63a333_660a_47f7_9b7f1b579b80beed" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 300 1 0 "b5c9fba9_bc50_45c2_ace146ed7514ec5c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 301 1 0 "401ffd82_13f1_4d31_9553d5d667588226" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "20") { // }} "" // {{{ 302 1 0 "74f4930d_6b31_45d3_88348845c6c08663" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Transfer check"), Translate(" :: ")); // }} "" // {{ 303 1 0 "9f24b781_4253_41ec_92df4c7be31be6bb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("No communication to EEPROM"); // }} "" // {{ 304 1 0 "692c55df_c57b_4084_af050f909525e376" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("I2C Bus or EEPROM not working"); // }} "" // {{ 305 1 0 "401ffd82_13f1_4d31_9553d5d667588226" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 306 1 0 "dc4b6514_9ad4_4927_8e04d75bcc207079" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "30") { // }} "" // {{{ 307 1 0 "c3b1d7fb_8cf6_4ae2_b6bbd87eec89c055" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Syntax check"), Translate(" :: ")); // }} "" // {{ 308 1 0 "f49d5011_d198_45dd_9b1439f00bfde61c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Undefined command"); // }} "" // {{ 309 1 0 "76eff144_500e_49ca_ad09015d371265cc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("unknown command"); // }} "" // {{ 310 1 0 "dc4b6514_9ad4_4927_8e04d75bcc207079" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 311 1 0 "d8a80c67_eaa8_48c0_84469667b8533701" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "31") { // }} "" // {{{ 312 1 0 "8336aae3_56f4_4054_974eb8b0181ceb21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Syntax check"), Translate(" :: ")); // }} "" // {{ 313 1 0 "5ef6d736_a3cb_40de_a57c7cb57f643c51" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Undefined parameter"); // }} "" // {{ 314 1 0 "eec190d6_70a2_4dfa_96d85934d3efebe1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("unknown parameter"); // }} "" // {{ 315 1 0 "d8a80c67_eaa8_48c0_84469667b8533701" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 316 1 0 "803c49ba_3e18_4995_9805759df8ffbb21" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "32") { // }} "" // {{{ 317 1 0 "94c1a5eb_15da_4bdd_a6234c353b556b3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Syntax check"), Translate(" :: ")); // }} "" // {{ 318 1 0 "f9092fca_4e9d_40a0_8b7ef00c58866487" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Parameter out of range"); // }} "" // {{ 319 1 0 "e7f42df8_8061_4b07_949bd0bae3c574d3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("parameter outside permitted range"); // }} "" // {{ 320 1 0 "803c49ba_3e18_4995_9805759df8ffbb21" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 321 1 0 "4a1ca385_c134_48d5_95fb08d9181a1d04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "35") { // }} "" // {{{ 322 1 0 "51ce8985_130a_4d7e_aba7738cbc468ae0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("General errors during execution of commands"), Translate(" :: ")); // }} "" // {{ 323 1 0 "a012fc20_24fd_4267_a3fd43812e09274b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Voltages outside permitted range"); // }} "" // {{ 324 1 0 "fb3acf7f_0d07_4c4c_8901707b453bed53" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Hardware not working properly"); // }} "" // {{ 325 1 0 "4a1ca385_c134_48d5_95fb08d9181a1d04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 326 1 0 "b0f484b1_194e_498d_8b0807d2656fd9d1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "36") { // }} "" // {{{ 327 1 0 "aeb0f95d_e2f0_4d11_a382958c0f4e9091" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("General errors during execution of commands"), Translate(" :: ")); // }} "" // {{ 328 1 0 "b1724b69_8c40_4370_8d6c80b1f359226f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Stop during execution of a command"); // }} "" // {{ 329 1 0 "708bd525_6e8a_4bdd_bfbd3de52bd7fd9f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 330 1 0 "b0f484b1_194e_498d_8b0807d2656fd9d1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 331 1 0 "aa762baa_0142_4bbb_a43af39a41535166" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "37") { // }} "" // {{{ 332 1 0 "85ee0f9c_2026_4a85_8e4555fe1d4a7f9f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("General errors during execution of commands"), Translate(" :: ")); // }} "" // {{ 333 1 0 "a83026cc_1a3f_4f94_86b733783ae67bcc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Movement interrupted"); // }} "" // {{ 334 1 0 "9bcff3ef_5fbf_4da5_b57d483f3f5e456c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Second core gripper pipetting channel has a step loss"); // }} "" // {{ 335 1 0 "aa762baa_0142_4bbb_a43af39a41535166" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 336 1 0 "70bb4b45_28f0_4d70_afb9866be3f8705f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "40") { // }} "" // {{{ 337 1 0 "202f5e9c_271b_42ec_be8454844b10f59d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Parallelity errors"), Translate(" :: ")); // }} "" // {{ 338 1 0 "a658d213_1523_4bea_bdb267448f30317a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("No parallel processes permitted"); // }} "" // {{ 339 1 0 "0d57b905_c535_4a19_afb8390dc445488d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Two or more commands sent for the same control"); // }} "" // {{ 340 1 0 "70bb4b45_28f0_4d70_afb9866be3f8705f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 341 1 0 "e4799154_be15_4cb8_9c5e6fc03a3ecd92" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "50") { // }} "" // {{{ 342 1 0 "cb690614_dfc5_4266_a956dd46885e59e8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Dispensing drive"), Translate(" :: ")); // }} "" // {{ 343 1 0 "c2cc1794_d899_4e1b_86607db07ccedf3e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Init. position not found"); // }} "" // {{ 344 1 0 "fb26c12c_4e31_4d56_ba5871e458ea4645" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Hardware not working"); // }} "" // {{ 345 1 0 "e4799154_be15_4cb8_9c5e6fc03a3ecd92" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 346 1 0 "e3cbf50c_b67b_4948_8cc6a33adbf5cf38" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "51") { // }} "" // {{{ 347 1 0 "271f3cac_a611_4d76_a7ea00cba7109d93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Dispensing drive"), Translate(" :: ")); // }} "" // {{ 348 1 0 "22396cbe_bcf6_4314_952d893cb37e5350" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Drive not initialized"); // }} "" // {{ 349 1 0 "cddb3f34_6ae3_493b_b1e59a121d5cdb11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Command sent before drive initialized"); // }} "" // {{ 350 1 0 "e3cbf50c_b67b_4948_8cc6a33adbf5cf38" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 351 1 0 "97078f46_8ea2_4c5d_933ed897f4674c45" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "52") { // }} "" // {{{ 352 1 0 "f471e526_0321_4920_8832675df81881ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Dispensing drive"), Translate(" :: ")); // }} "" // {{ 353 1 0 "7dddb1ea_2a49_4e87_81a2fe154e443bf5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Movement error"); // }} "" // {{ 354 1 0 "07505d7f_6572_48a6_bb9c6146ed01e0f3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("step loss"); // }} "" // {{ 355 1 0 "97078f46_8ea2_4c5d_933ed897f4674c45" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 356 1 0 "18a92b1b_be70_4c57_a50be2695c2731b2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "53") { // }} "" // {{{ 357 1 0 "0d31a49c_693d_493c_b4f2fd2c7e876515" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Dispensing drive"), Translate(" :: ")); // }} "" // {{ 358 1 0 "6498a39a_5eaf_4db8_886cd8c582190b55" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Maximum volume in tip reached"); // }} "" // {{ 359 1 0 "d1a02fb1_46d3_4080_97a48eeaeb5f1570" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 360 1 0 "18a92b1b_be70_4c57_a50be2695c2731b2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 361 1 0 "7b31ef90_4c5f_47cb_9397334e80fc067b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "54") { // }} "" // {{{ 362 1 0 "fa9b1465_beb1_4f1d_be80bea6df037c82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Dispensing drive"), Translate(" :: ")); // }} "" // {{ 363 1 0 "c03ee111_4815_4fc2_a22ef5383ca0ed88" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Position out of permitted area"); // }} "" // {{ 364 1 0 "30c1c422_80ea_4edb_8a5cbdc27dc419d3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 365 1 0 "7b31ef90_4c5f_47cb_9397334e80fc067b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 366 1 0 "8898f114_68f9_4215_9386129747df01b8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "55") { // }} "" // {{{ 367 1 0 "f294c450_ce65_4cf8_9dba99f9977ad729" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Y-drive"), Translate(" :: ")); // }} "" // {{ 368 1 0 "46c2b011_e5ea_4456_acd7af0e2b511e53" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Drive blocked"); // }} "" // {{ 369 1 0 "a128a47e_47ab_4f8f_966d77908c6a44a0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Hardware not working"); // }} "" // {{ 370 1 0 "8898f114_68f9_4215_9386129747df01b8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 371 1 0 "f873cf23_28b8_43fe_944da985cf38aab8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "56") { // }} "" // {{{ 372 1 0 "c638f660_c573_4c1b_86a0ac35d65e39f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Y-drive"), Translate(" :: ")); // }} "" // {{ 373 1 0 "b36c1df5_6614_4e16_9549f6b873836131" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Drive not initialized"); // }} "" // {{ 374 1 0 "4ad71921_94bd_4e88_9c702b4083a09927" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Command sent before drive initialized"); // }} "" // {{ 375 1 0 "f873cf23_28b8_43fe_944da985cf38aab8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 376 1 0 "8fb6555d_8ce1_48a3_b41263804435664f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "57") { // }} "" // {{{ 377 1 0 "fa7722c1_5c52_4644_a2a8ef8480437e95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Y-drive"), Translate(" :: ")); // }} "" // {{ 378 1 0 "593f5485_9627_4a92_87ddc213d0716b24" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Movement error"); // }} "" // {{ 379 1 0 "58ce26f7_2513_4897_8003aedd72ac1032" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Step loss"); // }} "" // {{ 380 1 0 "8fb6555d_8ce1_48a3_b41263804435664f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 381 1 0 "4cc39ad3_9d5f_48ca_adc22d4439fa38de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "60") { // }} "" // {{{ 382 1 0 "b8e5c9b3_9516_4229_9ce834531cd12073" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Z-drive"), Translate(" :: ")); // }} "" // {{ 383 1 0 "d801236d_6e2f_4496_938939caca3d316e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Drive blocked"); // }} "" // {{ 384 1 0 "1d77271f_54fb_4e66_b66254ad25a08899" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Hardware not working"); // }} "" // {{ 385 1 0 "4cc39ad3_9d5f_48ca_adc22d4439fa38de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 386 1 0 "bd24457a_99a8_42f4_b9b3db2f47371dae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "61") { // }} "" // {{{ 387 1 0 "177596ee_0431_4aed_a51d18cd521e8b84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Z-drive"), Translate(" :: ")); // }} "" // {{ 388 1 0 "bc0ca613_26ca_4fd6_be418d524638beb0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Drive not initialized"); // }} "" // {{ 389 1 0 "b31122b3_851d_4bec_928488bcab019c91" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Command sent before drive initialized"); // }} "" // {{ 390 1 0 "bd24457a_99a8_42f4_b9b3db2f47371dae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 391 1 0 "8e905d17_539f_4b45_a5ba5ec47f2fc879" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "62") { // }} "" // {{{ 392 1 0 "b949dd1a_8619_4207_8edf05d13e46e17b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Z-drive"), Translate(" :: ")); // }} "" // {{ 393 1 0 "8cafc397_d9fc_49dc_ae109cba6eb0714d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Movement error"); // }} "" // {{ 394 1 0 "426f276e_0741_49c0_9d1b14c58530354e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Step loss"); // }} "" // {{ 395 1 0 "8e905d17_539f_4b45_a5ba5ec47f2fc879" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 396 1 0 "e743065f_4af8_45aa_9b6f127e5e156ca9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "63") { // }} "" // {{{ 397 1 0 "3f8facc1_df65_4a3c_8110e4d1639f6c2f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Z-drive"), Translate(" :: ")); // }} "" // {{ 398 1 0 "90d27fa7_68c3_4fc5_811deff21248e5ab" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Limit stop not found"); // }} "" // {{ 399 1 0 "eb7cdcca_ab2e_4b8e_bf0dfc909548e94e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 400 1 0 "e743065f_4af8_45aa_9b6f127e5e156ca9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 401 1 0 "51951faf_c668_4fc0_be70e4324e52a4e2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "65") { // }} "" // {{{ 402 1 0 "844fe999_2abd_4390_8a811577a178226c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Squeezer drive"), Translate(" :: ")); // }} "" // {{ 403 1 0 "11b66411_bb1d_4f5b_ae82ee443a52bb6a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Drive blocked"); // }} "" // {{ 404 1 0 "8a840dbb_fd10_4a49_a824c4b534e8b07c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Hardware not working"); // }} "" // {{ 405 1 0 "51951faf_c668_4fc0_be70e4324e52a4e2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 406 1 0 "74676e12_49a1_4e79_9a7db2d72ddce548" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "66") { // }} "" // {{{ 407 1 0 "b08fa0b0_ece3_48b0_a4cb69fd815e3ea9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Squeezer drive"), Translate(" :: ")); // }} "" // {{ 408 1 0 "a47fe026_31a4_4073_b7ea16ce9b0686c9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Drive not initialized"); // }} "" // {{ 409 1 0 "1a231a57_f6a7_44de_8a21a9b48e215d17" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Command sent before drive initialized"); // }} "" // {{ 410 1 0 "74676e12_49a1_4e79_9a7db2d72ddce548" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 411 1 0 "d69c7ef6_be43_4539_89cb8a1370182bdb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "67") { // }} "" // {{{ 412 1 0 "9143f67e_e200_492d_b850aa26cc753d88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Squeezer drive"), Translate(" :: ")); // }} "" // {{ 413 1 0 "205ba637_ff99_4418_8c47a53a3913ee69" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Movement error"); // }} "" // {{ 414 1 0 "a1f0d6e8_bbdf_4c18_9f4ee9daff9f1e55" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Step loss"); // }} "" // {{ 415 1 0 "d69c7ef6_be43_4539_89cb8a1370182bdb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 416 1 0 "c2cd5ee2_1a18_4fe2_a0c5c4ae11fc419f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "68") { // }} "" // {{{ 417 1 0 "96531039_333c_4a44_a0ca3503daab2810" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Squeezer drive"), Translate(" :: ")); // }} "" // {{ 418 1 0 "e580dd2f_c1c7_43f2_ac6237cb7f93d561" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Init. position adjustment error"); // }} "" // {{ 419 1 0 "e624e5aa_1b05_4dcd_967021fa5a416597" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 420 1 0 "c2cd5ee2_1a18_4fe2_a0c5c4ae11fc419f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 421 1 0 "c22a1919_6627_41c1_a540d0538eccda21" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "70") { // }} "" // {{{ 422 1 0 "66368cb8_0727_4f8a_bc1a8826117a5796" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Liquid Level Detection"), Translate(" :: ")); // }} "" // {{ 423 1 0 "804486b2_e538_4705_8eae34c8a38642df" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("No liquid level found"); // }} "" // {{ 424 1 0 "c88d2648_a215_4f0e_8ad0992b5739b825" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("No liquid present"); // }} "" // {{ 425 1 0 "c22a1919_6627_41c1_a540d0538eccda21" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 426 1 0 "534f535d_7628_4d31_b3e0f73098decda3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "71") { // }} "" // {{{ 427 1 0 "3ca2d585_b881_4577_85e2d46ba305d5e7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Liquid Level Detection"), Translate(" :: ")); // }} "" // {{ 428 1 0 "c8da22f8_a319_40ca_97aee2a0e7b7b2a2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Not enough liquid present"); // }} "" // {{ 429 1 0 "72581cb9_122a_4bd9_a692be0754869b86" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Immersion depth or surface following position below minimal access range"); // }} "" // {{ 430 1 0 "534f535d_7628_4d31_b3e0f73098decda3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 431 1 0 "e76f0f3e_8077_4ced_860f466d9ebc6f74" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "72") { // }} "" // {{{ 432 1 0 "68f50273_c730_481a_a20b3252ce55c403" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Liquid Level Detection"), Translate(" :: ")); // }} "" // {{ 433 1 0 "b6eaccf4_93c7_41e3_98a3cc8e0bde47ae" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Auto calibration at pressure sensor not possible"); // }} "" // {{ 434 1 0 "4e001dfc_be3e_4b7d_ad0b581c644b0048" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Hardware not working"); // }} "" // {{ 435 1 0 "e76f0f3e_8077_4ced_860f466d9ebc6f74" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 436 1 0 "b930a3d3_0ff2_40ea_962ea59203bf1a69" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "73") { // }} "" // {{{ 437 1 0 "7bd1d264_dc36_4fb9_ae913860bd8f1d61" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Liquid Level Detection"), Translate(" :: ")); // }} "" // {{ 438 1 0 "4175cc21_a0ab_4a30_9f0acea275061e11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("No liquid level found with dual LLD"); // }} "" // {{ 439 1 0 "8f5e935f_86b8_4e65_98ae54e3f285d8a9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Difference of LLD positions on dual LLD exceed the maximum"); // }} "" // {{ 440 1 0 "b930a3d3_0ff2_40ea_962ea59203bf1a69" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 441 1 0 "ed9e9560_70a6_47f5_a1305c3810ffbf29" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "74") { // }} "" // {{{ 442 1 0 "0d7030b9_f8d2_4205_8d088e0531166a71" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Liquid Level Detection"), Translate(" :: ")); // }} "" // {{ 443 1 0 "4b5dc97b_09d0_449c_b3c280690a8ce083" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Liquid at a not allowed position detected"); // }} "" // {{ 444 1 0 "0a6f6f1c_0644_494f_a79f40eff57b5664" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 445 1 0 "ed9e9560_70a6_47f5_a1305c3810ffbf29" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 446 1 0 "2498177a_2059_4563_ab8d3127fd2c8dee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "75") { // }} "" // {{{ 447 1 0 "dbb753f2_6ae6_4d0d_8f858fd104afdd28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Error on tip handling"), Translate(" :: ")); // }} "" // {{ 448 1 0 "48dcad4b_b407_400b_9c48d87c8007a3e5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("No tip picked up"); // }} "" // {{ 449 1 0 "6d0cf031_006f_4394_8d27e38de3ed1e13" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("No tip present at position"); // }} "" // {{ 450 1 0 "2498177a_2059_4563_ab8d3127fd2c8dee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 451 1 0 "40c7fca3_2b3c_497e_93fed0a896197d09" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "76") { // }} "" // {{{ 452 1 0 "0dee9a09_649b_428f_bda2a407fefce744" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Error on tip handling"), Translate(" :: ")); // }} "" // {{ 453 1 0 "51200096_0ec7_4d72_99c7acfb64fa1a1c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Tip already picked up"); // }} "" // {{ 454 1 0 "b446f6f1_16bb_4b83_b49ddc673949f4c6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("A fresh tip cannot be picked up, because one is already present"); // }} "" // {{ 455 1 0 "40c7fca3_2b3c_497e_93fed0a896197d09" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 456 1 0 "8a93931c_17fe_4697_981ef03b4c70dd3d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "77") { // }} "" // {{{ 457 1 0 "747d7be9_5153_43fb_b2387fa5d77301a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Error on tip handling"), Translate(" :: ")); // }} "" // {{ 458 1 0 "8ce0e761_5930_4725_876b3fed067121e0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Tip not discarded"); // }} "" // {{ 459 1 0 "356e42b6_7931_457d_9b1cb5021b0cbbed" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 460 1 0 "8a93931c_17fe_4697_981ef03b4c70dd3d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 461 1 0 "ee25fc26_3b5b_40e6_b95e2b8917e5968a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "78") { // }} "" // {{{ 462 1 0 "85802152_c90d_4f37_85df06a2b36b816a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Error on tip handling"), Translate(" :: ")); // }} "" // {{ 463 1 0 "f36853d3_b288_4f2f_9eb1493a631ee759" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Wrong tip detected"); // }} "" // {{ 464 1 0 "eb7d884d_8b83_48e2_8407205dd6e35f6c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("The tip picked up was not of tip type specified"); // }} "" // {{ 465 1 0 "ee25fc26_3b5b_40e6_b95e2b8917e5968a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 466 1 0 "4ec29c88_d7c5_4c31_8b802d97604160a7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "80") { // }} "" // {{{ 467 1 0 "5bbdefbe_580e_4573_a1052d31bab883a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Error during liquid handling"), Translate(" :: ")); // }} "" // {{ 468 1 0 "8182bc40_e086_4701_aba39ad05efd06e7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Liquid not correctly aspirated"); // }} "" // {{ 469 1 0 "a57bc338_091f_4e4a_9b9fa654d34177c0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Error in liquid aspiration"); // }} "" // {{ 470 1 0 "4ec29c88_d7c5_4c31_8b802d97604160a7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 471 1 0 "831a0c2b_2f23_437d_90e12db18b0a71c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "81") { // }} "" // {{{ 472 1 0 "56ba4286_8eb8_4c40_9875a6ff63361ee8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Error during liquid handling"), Translate(" :: ")); // }} "" // {{ 473 1 0 "2ea530c6_fb38_4fc3_aff4944d207d7fff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Clot detected"); // }} "" // {{ 474 1 0 "efac6fec_d983_4722_8b7e9cdbb385914a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 475 1 0 "831a0c2b_2f23_437d_90e12db18b0a71c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 476 1 0 "14e5199a_4e82_417a_8b1127c540391154" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "82") { // }} "" // {{{ 477 1 0 "86b289cf_1c92_4843_a0a1e82dd17ecedb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Error during liquid handling"), Translate(" :: ")); // }} "" // {{ 478 1 0 "a1333612_2292_40e5_9a0fb058b50b56d8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("TADM measurement out of lower limit curve"); // }} "" // {{ 479 1 0 "32382a83_acbc_4da4_af1af14ecaec369b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 480 1 0 "14e5199a_4e82_417a_8b1127c540391154" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 481 1 0 "c075f85d_a0ba_49fb_a6bd3ed3cfe6288d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "83") { // }} "" // {{{ 482 1 0 "27d54cd6_2165_4e52_be0f366c788731b0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Error during liquid handling"), Translate(" :: ")); // }} "" // {{ 483 1 0 "3892169d_0e9c_484b_b200bab6cf4d7c73" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("TADM measurement out of upper limit curve"); // }} "" // {{ 484 1 0 "d7ffa35f_852e_4b31_b37a9b29173ccf1a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 485 1 0 "c075f85d_a0ba_49fb_a6bd3ed3cfe6288d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 486 1 0 "b1eaeb25_e43c_4bb7_aab6b22e695430e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "84") { // }} "" // {{{ 487 1 0 "e2b1c6d0_ce24_4c0c_866f57a2bbe222b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Error during liquid handling"), Translate(" :: ")); // }} "" // {{ 488 1 0 "5b49e608_eb47_4aad_8a6de45cfcf88673" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Not enough memory for TADM measurement"); // }} "" // {{ 489 1 0 "7c12d8dc_a4b8_48e0_9aec18790663b432" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 490 1 0 "b1eaeb25_e43c_4bb7_aab6b22e695430e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 491 1 0 "be4f7bd2_4baf_41f3_88c953effa6057d3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "85") { // }} "" // {{{ 492 1 0 "bea7749c_3e57_4526_87d9ecf3f829ac6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Error during liquid handling"), Translate(" :: ")); // }} "" // {{ 493 1 0 "f145c8d3_1f72_4cbf_b0ee3017c4ec6d21" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("No communication to digital potentiometer"); // }} "" // {{ 494 1 0 "215f9340_eaf0_4f1e_bbdfb63db3a28fef" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 495 1 0 "be4f7bd2_4baf_41f3_88c953effa6057d3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 496 1 0 "59421ea3_5992_44bf_bd6e121aab5da7b5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "86") { // }} "" // {{{ 497 1 0 "fba0e3b6_dbdb_4614_9218da69f5350e01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Error during liquid handling"), Translate(" :: ")); // }} "" // {{ 498 1 0 "d4736cf0_67c2_4abc_acb18446c65364f8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("ADC algorithm error"); // }} "" // {{ 499 1 0 "bccb9a67_a019_4388_8defd9cb004aa781" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 500 1 0 "59421ea3_5992_44bf_bd6e121aab5da7b5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 501 1 0 "1c31a283_66ea_4f6e_8fb9e56da58ca9cf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "87") { // }} "" // {{{ 502 1 0 "fed22673_70d6_4b4b_86d590dda1a826a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Error during liquid handling"), Translate(" :: ")); // }} "" // {{ 503 1 0 "39972bcc_6bb1_47d1_8a0ec01b8402b343" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("2nd phase of liquid not found"); // }} "" // {{ 504 1 0 "aefa931d_f49a_45dd_92d12618e3546677" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("No 2nd phase of liquid present"); // }} "" // {{ 505 1 0 "1c31a283_66ea_4f6e_8fb9e56da58ca9cf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 506 1 0 "8487ddff_6440_4324_8d9603e246a7f9d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "88") { // }} "" // {{{ 507 1 0 "6c71cbbb_f31d_4692_b87e7d5c5837db43" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Error during liquid handling"), Translate(" :: ")); // }} "" // {{ 508 1 0 "571120b0_4fb0_4599_ac3beb1138637a95" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Not enough 2nd phase of liquid present"); // }} "" // {{ 509 1 0 "22899f29_e88e_40a7_b059b952868be12b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Immersion depth or surface following position below minimal access range"); // }} "" // {{ 510 1 0 "8487ddff_6440_4324_8d9603e246a7f9d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 511 1 0 "c53d20a3_e579_4ece_987a80eebdf048d2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "90") { // }} "" // {{{ 512 1 0 "3b91a408_0203_4f2d_ab97982d4cd37885" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Limit curve errors"), Translate(" :: ")); // }} "" // {{ 513 1 0 "87bae6e0_e5cf_46a4_b1ee13bc2193225f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Limit curve not resetable"); // }} "" // {{ 514 1 0 "73b62280_03c4_432b_a6e7032925e8a4f6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 515 1 0 "c53d20a3_e579_4ece_987a80eebdf048d2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 516 1 0 "f6db7f47_205b_4dae_89571081a472297d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "91") { // }} "" // {{{ 517 1 0 "a5d170bd_fa1b_43d9_b902b11137b85a68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Limit curve errors"), Translate(" :: ")); // }} "" // {{ 518 1 0 "127bcadf_62da_46b7_985c93e2a685611b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Limit curve not programmable"); // }} "" // {{ 519 1 0 "4d818f8a_3b37_4537_b28cc8f72c507d45" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 520 1 0 "f6db7f47_205b_4dae_89571081a472297d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 521 1 0 "761f3aca_c7e3_47c8_a88d344ac9c79455" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "92") { // }} "" // {{{ 522 1 0 "7ffecdb8_876a_4b26_bc7ce6329c697dcb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Limit curve errors"), Translate(" :: ")); // }} "" // {{ 523 1 0 "399ee31b_1c02_46cf_9916f85f07feb05d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Limit curve name not found"); // }} "" // {{ 524 1 0 "06283a14_834d_43a5_87a6ac1724238904" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 525 1 0 "761f3aca_c7e3_47c8_a88d344ac9c79455" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 526 1 0 "3b97365a_0ae7_4446_bc0ca1114a3de51a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "93") { // }} "" // {{{ 527 1 0 "ed5a18c0_4737_4d83_ab6b0de93ddaf872" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Limit curve errors"), Translate(" :: ")); // }} "" // {{ 528 1 0 "21d67c96_bb49_4210_b6aac4477e5f9555" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Limit curve data incorrect"); // }} "" // {{ 529 1 0 "0802592c_4e83_4269_80a2eef7b5d46e74" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Calculate data address out of limit curve address range or Syntax error"); // }} "" // {{ 530 1 0 "3b97365a_0ae7_4446_bc0ca1114a3de51a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 531 1 0 "e3a17a78_b4be_4fa5_b9830af4dcb9c501" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "94") { // }} "" // {{{ 532 1 0 "c9829ff1_d198_4d24_946470974b94cc7c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Limit curve errors"), Translate(" :: ")); // }} "" // {{ 533 1 0 "67a6f440_67e3_4160_b6bb69c0899fcae9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Not enough memory for limit curve"); // }} "" // {{ 534 1 0 "6aa54e59_91f8_4110_859b936ce3bd0196" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 535 1 0 "e3a17a78_b4be_4fa5_b9830af4dcb9c501" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 536 1 0 "ce9be709_2b7d_40a1_a586156c38728d91" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "95") { // }} "" // {{{ 537 1 0 "167e21b8_af36_438f_b3cc863e08be6497" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Limit curve errors"), Translate(" :: ")); // }} "" // {{ 538 1 0 "ae5d0f7c_1b32_4971_b3a8423fea515072" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Not allowed limit curve index"); // }} "" // {{ 539 1 0 "ead124b8_bf2a_44aa_84fba843b8115c15" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 540 1 0 "ce9be709_2b7d_40a1_a586156c38728d91" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 541 1 0 "c00b0427_9f82_405d_868fe5d991b54bf3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "96") { // }} "" // {{{ 542 1 0 "d11b28e6_e6fd_405d_aaa2ee25992a8212" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Limit curve errors"), Translate(" :: ")); // }} "" // {{ 543 1 0 "ffef534a_aec7_4a71_bb0a43a107b04e44" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Limit curve already stored"); // }} "" // {{ 544 1 0 "88d5fa53_0341_437e_abc3069a093fc33e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate(""); // }} "" // {{ 545 1 0 "c00b0427_9f82_405d_868fe5d991b54bf3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 546 1 0 "38468ebb_e7bd_40d2_8226d777a081fe9e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_ErrorCode == "99") { // }} "" // {{{ 547 1 0 "72cdbd37_2cff_459c_b17f412196382042" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorHeader = StrConcat2(Translate("Pipetting Head error"), Translate(" :: ")); // }} "" // {{ 548 1 0 "1c7068e4_51c1_41d7_b0c57dfe34c86599" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorDescription = Translate("Pipetting Head error"); // }} "" // {{ 549 1 0 "8d565cec_e372_47ee_b202b41036a793a5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorCause = Translate("Return message of the command CH includes a Pipetting Head error"); // }} "" // {{ 550 1 0 "38468ebb_e7bd_40d2_8226d777a081fe9e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 551 1 0 "2d977ec6_9014_4b7f_9d7454688d143d4c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_ErrorCause == "") { // }} "" // {{{ 552 1 0 "d927ec0b_fea9_4107_a380948c320cc8ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_ErrorDescription = StrConcat4(str_ErrorHeader, str_ErrorDescription, Translate(""), Translate("")); // }} "" // {{ 553 1 0 "2d977ec6_9014_4b7f_9d7454688d143d4c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 554 1 0 "a1c141f8_33a8_4b74_9fb28e3475c5ad26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_ErrorDescription = StrConcat4(str_ErrorHeader, str_ErrorDescription, Translate(" :: "), str_ErrorCause); // }} "" // {{ 555 1 0 "2d977ec6_9014_4b7f_9d7454688d143d4c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "GetErrorDescriptionSlaveError" "End" } // }} "" // {{{ 5 "GetSlaveError" "Begin" function GetSlaveError( variable i_str_ReturnValue, variable & o_arr_Channels[], variable & o_arr_SlaveErrors[], variable & o_arr_ErrorDescription[] ) void { // }} "" private variable str_ErrorDescription; private variable i; private variable str_ChannelError; private variable int_SplitValues; private variable bln_UseSlaveError; private variable str_ChannelNumber; private variable str_Value; private variable arr_ChannelErrors[]; private variable arr_Values[]; // {{ 5 "GetSlaveError" "InitLocals" o_arr_Channels.SetSize( 0); o_arr_SlaveErrors.SetSize( 0); o_arr_ErrorDescription.SetSize( 0); // }} "" // {{ 557 1 0 "afc90f3b_c11a_4867_99e472a6d9bfa078" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_Channels.SetSize(0); // }} "" // {{ 558 1 0 "a36997aa_5932_4a65_b45c14ae19438dbd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_SlaveErrors.SetSize(0); // }} "" // {{ 559 1 0 "bc1ec587_3c2d_4fc2_b7439e29f2be3690" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_ErrorDescription.SetSize(0); // }} "" // {{{ 560 1 0 "35085599_3888_4afc_b8b7c74b9f524478" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arr_Values = HSLExtensions::String::Split(i_str_ReturnValue, Translate(" "), 1); // }} "" // {{ 561 1 0 "37b3bb1f_ba4c_4d76_b4d4208cf578e702" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_SplitValues=arr_Values.GetSize(); // }} "" // {{ 562 1 0 "5bf9a4ba_99da_4eb9_886814a7d2256bb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_SplitValues < 1) { // }} "" // {{{ 563 1 0 "3612e241_dac7_4609_9756925b14dd5654" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 564 1 0 "5bf9a4ba_99da_4eb9_886814a7d2256bb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 565 1 0 "da900631_969a_4392_94a93d5edaba8f87" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_SplitValues;) { i = i + 1; // }} "" // {{ 566 1 0 "40c5fc33_a568_4959_a13f3c729a73b916" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i > 1) { // }} "" // {{ 567 1 0 "9a148937_1b7e_45d5_883515af3ada3ab4" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_Value=arr_Values.GetAt(i-1); // }} "" // {{{ 568 1 0 "c8f4050c_255d_4b6e_991e0159ce082492" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arr_ChannelErrors = HSLExtensions::String::Split(str_Value, Translate("/"), 1); // }} "" // {{ 569 1 0 "2baeee57_4f48_44d8_80f82e1727385a60" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 570 1 0 "ef34bbf9_f1cb_4a74_9f6730ee19e5fc35" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_ChannelNumber=arr_ChannelErrors.GetAt(1-1); // }} "" // {{{ 571 1 0 "0d9ae77b_3d97_43d5_983c119164e56e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelNumber = StrLeft(str_ChannelNumber, 2); // }} "" // {{{ 572 1 0 "d9d79e2a_c5de_4a50_a0ad568de2d79824" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelNumber = StrRight(str_ChannelNumber, 1); // }} "" // {{{ 573 1 0 "1b0ad0e4_6083_458e_abc480347a6051e0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetChannelNumber(str_ChannelNumber); // }} "" // {{ 574 1 0 "ca528c1b_fb12_4a5d_81aa98fd7affa8cd" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_Channels.AddAsLast(str_ChannelNumber); // }} "" // {{ 575 1 0 "2baeee57_4f48_44d8_80f82e1727385a60" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 576 1 0 "4013bf50_15fa_4159_b77d11b2f1e53b97" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 577 1 0 "734de51e_3a6c_40f2_8c2d5738ca25be0e" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_ChannelError=arr_ChannelErrors.GetAt(2-1); // }} "" // {{{ 578 1 0 "1db48e9f_2854_4a02_97ee9d91771ace86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelError = StrRight(str_ChannelError, 2); // }} "" // {{ 579 1 0 "837d175f_ac45_4d60_83ad88ec04b41245" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_UseSlaveError = 0; // }} "" // {{ 580 1 0 "1d2a8727_fc43_4886_83768867f5118675" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_ChannelError == "00") { // }} "" // {{ 581 1 0 "42e44098_6d23_4853_b8052b70258fe46d" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_ChannelError=arr_ChannelErrors.GetAt(1-1); // }} "" // {{{ 582 1 0 "21d6e900_aa1c_4805_b6acda450718a552" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelError = StrRight(str_ChannelError, 2); // }} "" // {{ 583 1 0 "8e86d428_17b7_42e2_9cdeae1377b7b232" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_UseSlaveError = 1; // }} "" // {{ 584 1 0 "1d2a8727_fc43_4886_83768867f5118675" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 585 1 0 "ce2a4c4c_2cdf_4677_93535a1be0bfe1f2" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_SlaveErrors.AddAsLast(str_ChannelError); // }} "" // {{ 586 1 0 "4013bf50_15fa_4159_b77d11b2f1e53b97" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 587 1 0 "a21bf5c1_2ffd_4b88_9e77adad07c43425" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 588 1 0 "846a5d42_91b6_46d2_a63e34453f0ef81b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_UseSlaveError == 0) { // }} "" // {{{ 589 1 0 "2bddbbfc_8886_46b5_81d6278e779d53a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetErrorDescriptionSlaveError(str_ChannelError, str_ErrorDescription); // }} "" // {{ 590 1 0 "846a5d42_91b6_46d2_a63e34453f0ef81b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 591 1 0 "72c0381d_2734_4062_b928f0216546e4b8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetErrorDescriptionMainError(str_ChannelError, str_ErrorDescription); // }} "" // {{ 592 1 0 "846a5d42_91b6_46d2_a63e34453f0ef81b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 593 1 0 "5b540cd3_61f0_4a6f_8e4c474c1bc3b238" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_ErrorDescription.AddAsLast(str_ErrorDescription); // }} "" // {{ 594 1 0 "a21bf5c1_2ffd_4b88_9e77adad07c43425" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 595 1 0 "40c5fc33_a568_4959_a13f3c729a73b916" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 596 1 0 "da900631_969a_4392_94a93d5edaba8f87" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 597 1 0 "c86ab118_9282_428a_bcb0f004bb7af7f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_3(Translate("Channel Number Slave Error Description"), o_arr_Channels, o_arr_SlaveErrors, o_arr_ErrorDescription); // }} "" // {{{ 5 "GetSlaveError" "End" } // }} "" // {{{ 5 "Parse_Parameter_Multiple" "Begin" function Parse_Parameter_Multiple( variable i_str_ParameterFull, variable i_str_Parameter, variable i_flt_Conversion, variable i_int_TotalDigits, variable i_int_MaxValues, variable & o_bol_ParameterFound, variable & o_arr_flt_Value[] ) void { // }} "" private variable str_Value3; private variable int_Remaining; private variable str_RegionOfInterest; private variable int_ValueNumber; private variable int_LoopCount; private variable int_StringPosition; private variable flt_Value2; private variable int_ParamaterLength; private variable o_flt_Value; private variable int_ChannelCount; private variable int_SecondCut; private variable int_Count; private variable str_Value2; private variable int_Value2; private variable str_Value; // {{ 5 "Parse_Parameter_Multiple" "InitLocals" o_bol_ParameterFound = 0; o_arr_flt_Value.SetSize( 0); // }} "" // {{ 680 1 0 "664217f1_0cfb_4b58_807ae038ae05a940" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_flt_Value.SetSize(0); // }} "" // {{{ 681 1 0 "1cfd9263_f929_4b48_a77307d3bd688b3a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_bol_ParameterFound = StrReplace(i_str_ParameterFull, i_str_Parameter, i_str_Parameter); // }} "" // {{{ 682 1 0 "70dfd8b0_d3cf_4c66_8984abb947d3be47" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ParamaterLength = StrGetLength(i_str_ParameterFull); // }} "" // {{ 683 1 0 "00e78725_0607_4f82_b7aa0c34ee047ffb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (o_bol_ParameterFound == 1) { // }} "" // {{{ 684 1 0 "d71d99c4_c723_4380_ba444fb460a036b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_StringPosition = StrFind(i_str_ParameterFull, i_str_Parameter); // }} "" // {{ 685 1 0 "07534d47_6099_4e3a_b175c131eb4bd0b9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_StringPosition = int_StringPosition + 1; // }} "" // {{ 686 1 0 "994eae45_9d6c_4b82_ac8526d371527f51" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Remaining = int_ParamaterLength - int_StringPosition; // }} "" // {{{ 687 1 0 "543e0a1e_f762_4187_a4bbc0bfeb2df7d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_RegionOfInterest = StrMid(i_str_ParameterFull, int_StringPosition, int_Remaining); // }} "" // {{ 688 1 0 "efffda42_ae06_4c4c_943e113fa2d36b4c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ValueNumber = i_int_TotalDigits + 1; // }} "" // {{ 689 1 0 "75d42e53_24fb_46fa_b93b19846d7e7bd5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_SecondCut = i_int_TotalDigits; // }} "" // {{ 690 1 0 "ea274759_4187_4a02_8e85451230971152" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Count = 1; // }} "" // {{ 691 1 0 "4a898f6f_5b0b_4185_8271daf103f814ef" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { int_LoopCount = 0; while (1 == 1) { int_LoopCount = int_LoopCount + 1; // }} "" // {{ 692 1 0 "836f7f7e_bddc_4443_ac285642b30a2da9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ChannelCount = int_ChannelCount + 1; // }} "" // {{ 693 1 0 "08d2cfd5_7ae9_459d_80d28e5d21fa5144" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 694 1 0 "beb353e9_04c1_4861_836425cb3b3e7266" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrMid(str_RegionOfInterest, int_Count, int_ValueNumber); // }} "" // {{ 695 1 0 "063f937a_cc65_49aa_907ebf1dcab964bd" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + int_ValueNumber; // }} "" // {{ 696 1 0 "04d59727_6f0e_4d89_8996ab23ee79bc33" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 697 1 0 "6f991928_99c3_4920_810b956a74e96703" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value2 = StrLeft(str_Value, int_SecondCut); // }} "" // {{{ 698 1 0 "70e9bdc3_6037_4fc0_af76f78c31b4ca23" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value2 = StrIVal(str_Value2); // }} "" // {{ 699 1 0 "e2429a49_5f80_4cd2_a840f3807d0b1d03" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Value2 = int_Value2 * i_flt_Conversion; // }} "" // {{ 700 1 0 "f318cc93_efa4_4f59_85a196bc87a7c381" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Value = flt_Value2; // }} "" // {{ 701 1 0 "28305402_d070_4deb_a5038e5b893a3ecf" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_flt_Value.AddAsLast(o_flt_Value); // }} "" // {{ 702 1 0 "b7b99765_ef5b_4482_b2abd45de4a54dae" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 703 1 0 "5d6233d2_bcd9_4ccc_83f4de003bfad514" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value3 = StrRight(str_Value, 1); // }} "" // {{ 704 1 0 "a10f6d67_aefc_4e98_91e5df77dc65b508" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Value3 != " ") { // }} "" // {{ 705 1 0 "f0b9f3e2_9fe7_4d8b_b01e7300629d7e27" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Value3 == "&") { // }} "" // {{ 706 1 0 "0cba3b7d_93d6_457b_829b9ec1cf736d80" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (int_ChannelCount < i_int_MaxValues) { // }} "" // {{ 707 1 0 "d64c0eb7_9ad9_49a1_a652d9a5d9ed6f8e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ChannelCount = int_ChannelCount + 1; // }} "" // {{ 708 1 0 "f02c906c_2c42_4273_81b5cb34d14fb09e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_flt_Value.AddAsLast(o_flt_Value); // }} "" // {{ 709 1 0 "0cba3b7d_93d6_457b_829b9ec1cf736d80" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 710 1 0 "f0b9f3e2_9fe7_4d8b_b01e7300629d7e27" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 711 1 0 "9592eae1_1171_470d_aecd4b3e46880250" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 712 1 0 "a10f6d67_aefc_4e98_91e5df77dc65b508" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 713 1 0 "4a898f6f_5b0b_4185_8271daf103f814ef" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 714 1 0 "00e78725_0607_4f82_b7aa0c34ee047ffb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "Parse_Parameter_Multiple" "End" } // }} "" // {{{ 5 "Parse_Parameter_Single" "Begin" function Parse_Parameter_Single( variable i_str_ParameterFull, variable i_str_Parameter, variable i_flt_Conversion, variable i_int_TotalDigits, variable & o_bol_ParameterFound, variable & o_flt_Value ) void { // }} "" private variable str_Value3; private variable int_Remaining; private variable str_RegionOfInterest; private variable int_ValueNumber; private variable int_LoopCount; private variable int_StringPosition; private variable flt_Value2; private variable int_ParamaterLength; private variable int_SecondCut; private variable int_Count; private variable str_Value; private variable int_Value2; private variable str_Value2; // {{ 5 "Parse_Parameter_Single" "InitLocals" o_bol_ParameterFound = 0; o_flt_Value = 0; // }} "" // {{ 736 1 0 "0dd1b254_c894_48f3_9398f875709f87d5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Value = 0.0; // }} "" // {{{ 737 1 0 "5e0c6a55_f144_403b_a1273e43544ca61e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_bol_ParameterFound = StrReplace(i_str_ParameterFull, i_str_Parameter, i_str_Parameter); // }} "" // {{{ 738 1 0 "4193d503_e2c2_4c2d_80bf34904a824cdf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(i_str_ParameterFull, Translate("+"), Translate("")); // }} "" // {{{ 739 1 0 "5f81679f_f664_41c3_a6ac898eadad9ec1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ParamaterLength = StrGetLength(i_str_ParameterFull); // }} "" // {{ 740 1 0 "6e471ada_c5d9_4a09_b218c33be763ae65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (o_bol_ParameterFound == 1) { // }} "" // {{{ 741 1 0 "9222c8ec_562d_4031_af27a5dd45820e03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_StringPosition = StrFind(i_str_ParameterFull, i_str_Parameter); // }} "" // {{ 742 1 0 "066892e1_42dd_4917_ae9c85df0d8ab81f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_StringPosition = int_StringPosition + 1; // }} "" // {{ 743 1 0 "ea877b5b_dc97_4171_91f7ade7452f66d7" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Remaining = int_ParamaterLength - int_StringPosition; // }} "" // {{{ 744 1 0 "7a43adc1_a32f_456b_a510c5f7e49089fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_RegionOfInterest = StrMid(i_str_ParameterFull, int_StringPosition, int_Remaining); // }} "" // {{ 745 1 0 "a7937907_d8fe_4224_9ca7f11e0a7def3c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ValueNumber = i_int_TotalDigits + 1; // }} "" // {{ 746 1 0 "fd790eaf_cd40_4cf5_9526b5c43c73063c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_SecondCut = i_int_TotalDigits; // }} "" // {{ 747 1 0 "07874cb5_59c6_4b08_aa7fb6dfcc5e008f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Count = 1; // }} "" // {{ 748 1 0 "af163c1e_cffb_46f1_a28f5b9bd45986db" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { int_LoopCount = 0; while (1 == 1) { int_LoopCount = int_LoopCount + 1; // }} "" // {{ 749 1 0 "9b064fd1_6f90_43fd_9f4afdfbd0113e1a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 750 1 0 "29633c33_c96f_419f_861caecffa3ed97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrMid(str_RegionOfInterest, int_Count, int_ValueNumber); // }} "" // {{ 751 1 0 "87118c68_1279_485c_8ddfde129150211a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + int_ValueNumber; // }} "" // {{ 752 1 0 "10ae8a20_2f32_4bfe_b375d26c4e2ea174" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 753 1 0 "8019a6d4_e2df_4db2_84cb12b6d18a8792" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value2 = StrLeft(str_Value, int_SecondCut); // }} "" // {{{ 754 1 0 "ce7f0edc_eead_43dc_aa76527c5bf5d266" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value2 = StrIVal(str_Value2); // }} "" // {{ 755 1 0 "aa385ae7_961b_470c_bcae38bdb45f794f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Value2 = int_Value2 * i_flt_Conversion; // }} "" // {{ 756 1 0 "d3f32f8c_51d2_4c97_867243935b7863ec" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Value = flt_Value2; // }} "" // {{ 757 1 0 "354f604d_9f27_4bd3_99fee80681ea40dd" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 758 1 0 "abcf7466_67ef_4ada_b7fba2c5e1e05d27" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value3 = StrRight(str_Value, 1); // }} "" // {{ 759 1 0 "373a1d59_ac3b_4d64_a1dabb340f47add7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Value3 != " ") { // }} "" // {{ 760 1 0 "154f3ae6_dab3_46b4_81957705c16fdcdd" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 761 1 0 "373a1d59_ac3b_4d64_a1dabb340f47add7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 762 1 0 "af163c1e_cffb_46f1_a28f5b9bd45986db" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 763 1 0 "6e471ada_c5d9_4a09_b218c33be763ae65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "Parse_Parameter_Single" "End" } // }} "" // {{{ 5 "CheckForError" "Begin" function CheckForError( variable i_str_FunctionName, variable i_str_ReturnValue, variable i_bool_RaiseError ) void { // }} "" private variable bool_ParamFound; private variable str_ErrorReturn; private variable int_MainErrorCode; private variable i; private variable str_MainError; private variable str_MainErrorCode; private variable str_ErrorRaise; private variable str_SlaveError; private variable int_TotalErrors; private variable int_ErrorCode; private variable str_SlaveErrorCode; private variable bool_SimMode; private variable arr_ErrorDescription[]; private variable arr_Channels[]; private variable arr_SlaveErrors[]; // {{ 5 "CheckForError" "InitLocals" // }} "" // {{{ 1 1 0 "60700903_5959_4982_808f52126fe0053c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_SimMode = Util::GetSimulationMode(); // }} "" // {{{ 2 1 0 "faa9742f_5596_478d_ad2353887304cbc4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" Parse_Parameter_Single_String(i_str_ReturnValue, Translate("er"), bool_ParamFound, str_ErrorReturn); // }} "" // {{ 3 1 0 "0fef935a_f7cd_4d16_9b6f1814019e5657" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_ParamFound == 0) { // }} "" // {{{ 4 1 0 "0704324f_aae9_462b_bae0785d6246165a" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 5 1 0 "0fef935a_f7cd_4d16_9b6f1814019e5657" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 6 1 0 "d56016f4_1526_4595_8c94b489814fe005" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SimMode == 1) { // }} "" // {{ 7 1 0 "a57b0469_af32_4dff_b3cf2f61346e6bfa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" i_bool_RaiseError = 0; // }} "" // {{ 8 1 0 "d56016f4_1526_4595_8c94b489814fe005" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 9 1 0 "b119c64e_8061_4dac_8f511aae1062cd61" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorReturn = StrLeft(str_ErrorReturn, 5); // }} "" // {{ 10 1 0 "8c8f1fd2_1b3e_40a3_bf80485eb9307ed9" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 11 1 0 "10032557_18ca_44c4_bfad2deb2e50e6bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_MainErrorCode = StrLeft(str_ErrorReturn, 2); // }} "" // {{{ 12 1 0 "01d24045_5439_4ef9_a04c934542f9277e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SlaveErrorCode = StrRight(str_ErrorReturn, 2); // }} "" // {{ 13 1 0 "591a8120_3787_430a_981dd761f0487c09" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_MainErrorCode == "00") { // }} "" // {{{ 14 1 0 "5d9963a8_65e5_4f3f_9728ee114f06e580" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 15 1 0 "591a8120_3787_430a_981dd761f0487c09" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 16 1 0 "6499c89c_e378_4e1d_95efa47f1f8a37ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_MainErrorCode = StrTrimRight(str_MainErrorCode, Translate(" ")); // }} "" // {{{ 17 1 0 "193aa51a_22d3_456c_9eef4b7ffdb5b9b0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_MainErrorCode = StrIVal(str_MainErrorCode); // }} "" // {{{ 18 1 0 "14fcd3ea_fc79_4323_a3b7f3689d91aebe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_MainErrorCode = StrConcat2(int_MainErrorCode, Translate("")); // }} "" // {{ 19 1 0 "41bdd6ba_703f_425c_ba2019535c764237" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_MainErrorCode == "0") { // }} "" // {{{ 20 1 0 "0039c5be_728c_4ba4_8bedf32c5bea7d48" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 21 1 0 "41bdd6ba_703f_425c_ba2019535c764237" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 22 1 0 "a10cc756_1e36_44c7_b26573b7c20daf41" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetErrorDescriptionMainError(str_MainErrorCode, str_MainError); // }} "" // {{ 23 1 0 "9cde3718_060f_4bac_bfd9f8f3dcb2b4bc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_SlaveErrorCode = Translate(""); // }} "" // {{ 24 1 0 "f531d361_c31c_44ba_9a01492de368dbc8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_SlaveError = Translate(""); // }} "" // {{ 25 1 0 "3381673b_91e4_4182_b38783c4062318f4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_MainErrorCode == "99") { // }} "" // {{{ 26 1 0 "b4128d88_0340_4e2f_ba8d6bb033bae5cc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetSlaveError(i_str_ReturnValue, arr_Channels, arr_SlaveErrors, arr_ErrorDescription); // }} "" // {{ 27 1 0 "04d002b1_7a8e_4423_a5151fa990970ee0" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalErrors=arr_Channels.GetSize(); // }} "" // {{ 28 1 0 "df5f5d06_5a8a_42eb_a2d4947aae1bc1e9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalErrors;) { i = i + 1; // }} "" // {{ 29 1 0 "a7583699_1e84_4bdd_8fdb904b51eb43c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i == 1) { // }} "" // {{{ 30 1 0 "8f62d727_8896_4bf3_8097cb5ffb2bdd7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SlaveErrorCode = StrConcat4(str_SlaveErrorCode, Translate("; "), Translate(""), Translate("")); // }} "" // {{ 31 1 0 "a7583699_1e84_4bdd_8fdb904b51eb43c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 32 1 0 "45aa328d_d1ad_491a_96a714d3de2f23c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SlaveErrorCode = StrConcat4(str_SlaveErrorCode, arr_Channels.ElementAt( i -1), Translate(" "), arr_SlaveErrors.ElementAt( i -1)); // }} "" // {{{ 33 1 0 "30450ef9_4dc4_4773_806697d297060ac0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SlaveErrorCode = StrConcat2(str_SlaveErrorCode, Translate(" ")); // }} "" // {{{ 34 1 0 "e3fe75db_b7f1_4eb9_aa89ef0926475700" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SlaveError = StrConcat4(str_SlaveError, arr_Channels.ElementAt( i -1), Translate(" "), arr_ErrorDescription.ElementAt( i -1)); // }} "" // {{{ 35 1 0 "3209500b_c6d7_47ad_a515c91f386ae591" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SlaveError = StrConcat2(str_SlaveError, Translate(" ")); // }} "" // {{ 36 1 0 "df5f5d06_5a8a_42eb_a2d4947aae1bc1e9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 37 1 0 "3381673b_91e4_4182_b38783c4062318f4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace("Main Error Code: ",str_MainErrorCode," Main Error Description: ",str_MainError); Trace("Slave Error Code: ",str_SlaveErrorCode," Slave Error Description: ",str_SlaveError); // {{ 39 1 0 "09eec0ff_a415_45fa_b2f8e4c1467affb7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bool_RaiseError == 1) { // }} "" // {{{ 40 1 0 "7cf574f7_b4b9_41ce_a1b1ff9a3b75f011" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorRaise = StrConcat12(i_str_FunctionName, Translate(" :: "), Translate("Error while running function"), Translate("\n\n"), str_SlaveErrorCode, Translate(" - "), str_SlaveError, Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{{ 41 1 0 "1995cb28_22f7_4b4b_8430afe72cd2f042" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ErrorCode = StrIVal(str_SlaveErrorCode); // }} "" // {{{ 42 1 0 "16e4982a_7725_4f68_bae35382b8707649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(int_ErrorCode, str_ErrorRaise); // }} "" // {{ 43 1 0 "09eec0ff_a415_45fa_b2f8e4c1467affb7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "CheckForError" "End" } // }} "" // {{{ 5 "GetChannelNumber" "Begin" function GetChannelNumber( variable & io_int_ChannelNumber ) void { // }} "" // {{ 5 "GetChannelNumber" "InitLocals" // }} "" // {{{ 45 1 0 "d721a440_36de_4d78_a07de5780e38de3a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_int_ChannelNumber = StrConcat2(io_int_ChannelNumber, Translate("")); // }} "" // {{ 46 1 0 "d1e19a5f_3aa7_4ca7_b9356c02afc538f0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (io_int_ChannelNumber == "10") { // }} "" // {{ 47 1 0 "c91adfed_b54f_4364_bf5ef24bf2791f51" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" io_int_ChannelNumber = Translate("A"); // }} "" // {{{ 48 1 0 "6115ab0d_ae0f_4ec4_9402ce05b8813b71" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 49 1 0 "d1e19a5f_3aa7_4ca7_b9356c02afc538f0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 50 1 0 "e0474747_8f61_452e_bc91b813b28209a6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (io_int_ChannelNumber == "11") { // }} "" // {{ 51 1 0 "6fab649c_27bd_4f3c_97b15a32dd78ad8e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" io_int_ChannelNumber = Translate("B"); // }} "" // {{{ 52 1 0 "81462c2a_e0c5_4ec7_96071972d4108853" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 53 1 0 "e0474747_8f61_452e_bc91b813b28209a6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 54 1 0 "5a618f6f_8f39_41fa_b318d2ad0c5a1cc7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (io_int_ChannelNumber == "12") { // }} "" // {{ 55 1 0 "560907e4_2a32_4820_b9f44b89f4956001" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" io_int_ChannelNumber = Translate("C"); // }} "" // {{{ 56 1 0 "d89a7b92_eab3_4aec_9bc677da37918d33" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 57 1 0 "5a618f6f_8f39_41fa_b318d2ad0c5a1cc7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 58 1 0 "66de9ad8_b823_48ba_a1ac1128bad0a03f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (io_int_ChannelNumber == "13") { // }} "" // {{ 59 1 0 "b7e80518_39a2_4aaf_924ce0cedd0eea16" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" io_int_ChannelNumber = Translate("D"); // }} "" // {{{ 60 1 0 "270e1653_8306_4370_ac0321871ae9dd67" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 61 1 0 "66de9ad8_b823_48ba_a1ac1128bad0a03f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 62 1 0 "24294572_f22b_4db0_92114c89c16e664a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (io_int_ChannelNumber == "14") { // }} "" // {{ 63 1 0 "7a3627fb_7b9d_4a4c_a566a4ddbaee6a53" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" io_int_ChannelNumber = Translate("E"); // }} "" // {{{ 64 1 0 "53e19e8f_77e2_4173_95c7149147be06b9" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 65 1 0 "24294572_f22b_4db0_92114c89c16e664a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 66 1 0 "ce4c1961_8db3_41fa_b1aad6637969922c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (io_int_ChannelNumber == "15") { // }} "" // {{ 67 1 0 "1625c718_c1cc_46db_b66ff7254288565b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" io_int_ChannelNumber = Translate("F"); // }} "" // {{{ 68 1 0 "d0a6664e_9315_4a4d_a921f5bad945a169" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 69 1 0 "ce4c1961_8db3_41fa_b1aad6637969922c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 70 1 0 "990105ec_82eb_49e6_a77246898d0056da" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (io_int_ChannelNumber == "16") { // }} "" // {{ 71 1 0 "d3aaa2ff_a35b_49d6_ba942b1a034078f1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" io_int_ChannelNumber = Translate("G"); // }} "" // {{{ 72 1 0 "3f7ed6df_bdf2_41ec_8c3ea18b813d6d43" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 73 1 0 "990105ec_82eb_49e6_a77246898d0056da" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 74 1 0 "8f19990a_d407_48ce_84266cc32cf65f3b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (io_int_ChannelNumber == "A") { // }} "" // {{ 75 1 0 "9a660ffb_bac3_4a6b_b41cf6f08603c54d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" io_int_ChannelNumber = Translate("10"); // }} "" // {{{ 76 1 0 "2dc2bc4e_ab56_4898_87f97a8131c7e410" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 77 1 0 "8f19990a_d407_48ce_84266cc32cf65f3b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 78 1 0 "92cb32a9_2043_4343_8db63674351ddb22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (io_int_ChannelNumber == "B") { // }} "" // {{ 79 1 0 "c0d1cf4f_fcaf_41aa_8ba79a606654f47a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" io_int_ChannelNumber = Translate("11"); // }} "" // {{{ 80 1 0 "fca78eec_f155_429f_b21b6a838ac9eea7" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 81 1 0 "92cb32a9_2043_4343_8db63674351ddb22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 82 1 0 "394b17ba_9e28_489c_bcf3a1cb6838acc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (io_int_ChannelNumber == "C") { // }} "" // {{ 83 1 0 "4f009caf_71d3_4465_929e5322b761d9c4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" io_int_ChannelNumber = Translate("12"); // }} "" // {{{ 84 1 0 "d9e31ba0_a628_487a_9ee2a71d5d01c9b3" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 85 1 0 "394b17ba_9e28_489c_bcf3a1cb6838acc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 86 1 0 "2d72959a_f691_4057_b0ff849b11bce919" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (io_int_ChannelNumber == "D") { // }} "" // {{ 87 1 0 "3c708c62_57c3_46ff_aaaf79f333c14c21" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" io_int_ChannelNumber = Translate("13"); // }} "" // {{{ 88 1 0 "7c49d9d7_58fb_48e2_bbfb3878ca80c3bb" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 89 1 0 "2d72959a_f691_4057_b0ff849b11bce919" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 90 1 0 "737805f5_41a5_4a0e_b33bf1d3258d1c94" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (io_int_ChannelNumber == "E") { // }} "" // {{ 91 1 0 "7e8649da_2b54_4155_ad1569f930cd35a7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" io_int_ChannelNumber = Translate("14"); // }} "" // {{{ 92 1 0 "b91328cb_6bdf_412e_b24a930e2abe5342" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 93 1 0 "737805f5_41a5_4a0e_b33bf1d3258d1c94" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 94 1 0 "c9da4510_1d46_41f5_90139d7e31b713e7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (io_int_ChannelNumber == "F") { // }} "" // {{ 95 1 0 "36253eec_7d1b_4d87_a6b5033e3e5d7bad" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" io_int_ChannelNumber = Translate("15"); // }} "" // {{{ 96 1 0 "42929e9c_82e2_45e0_9ba94467b7e83fdf" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 97 1 0 "c9da4510_1d46_41f5_90139d7e31b713e7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 98 1 0 "b9593144_4875_40f9_a568779c72d28de1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (io_int_ChannelNumber == "G") { // }} "" // {{ 99 1 0 "44d645af_4c9a_46d9_8c685c89f9b1f4c9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" io_int_ChannelNumber = Translate("16"); // }} "" // {{{ 100 1 0 "aeebe93f_f858_43ab_b864e79f8b659cbc" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 101 1 0 "b9593144_4875_40f9_a568779c72d28de1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "GetChannelNumber" "End" } // }} "" // {{{ 5 "Parse_Parameter_Single_String" "Begin" function Parse_Parameter_Single_String( variable i_str_ParameterFull, variable i_str_Parameter, variable & o_bol_ParameterFound, variable & o_str_Value ) void { // }} "" private variable str_Value3; private variable int_Remaining; private variable str_RegionOfInterest; private variable int_ValueNumber; private variable int_LoopCount; private variable int_StringPosition; private variable int_ParamaterLength; private variable int_SecondCut; private variable int_Count; private variable str_Value2; private variable str_Value; // {{ 5 "Parse_Parameter_Single_String" "InitLocals" o_bol_ParameterFound = 0; o_str_Value = 0; // }} "" // {{ 765 1 0 "5bc142c2_754d_4ef5_a9d903af4312e4b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_Value = Translate(""); // }} "" // {{{ 766 1 0 "72f4424f_451e_4522_9400a03ea2dbc8a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_bol_ParameterFound = StrReplace(i_str_ParameterFull, i_str_Parameter, i_str_Parameter); // }} "" // {{{ 767 1 0 "29eada4f_eb7c_4867_a9e46d30c7192afb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ParamaterLength = StrGetLength(i_str_ParameterFull); // }} "" // {{ 768 1 0 "b9572762_cc0f_4e73_ba7e36a6b7f646cb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (o_bol_ParameterFound == 1) { // }} "" // {{{ 769 1 0 "9002487b_9e58_4988_b9b87267d59d9585" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_StringPosition = StrFind(i_str_ParameterFull, i_str_Parameter); // }} "" // {{ 770 1 0 "7ea0715c_53c4_4db5_9fdd6520a49e33fc" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_StringPosition = int_StringPosition + 1; // }} "" // {{ 771 1 0 "bb9e9cf1_9ace_4d49_aab11112d7e92c3a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Remaining = int_ParamaterLength - int_StringPosition; // }} "" // {{{ 772 1 0 "2562e406_c548_4fbb_842d66fe6fe94d8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_RegionOfInterest = StrMid(i_str_ParameterFull, int_StringPosition, int_Remaining); // }} "" // {{ 773 1 0 "9ce532fc_f06a_4513_9d302d6b6cef09e6" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ValueNumber = int_Remaining + 1; // }} "" // {{ 774 1 0 "15468028_c45c_40b6_bdad08cd10820a2a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_SecondCut = int_Remaining; // }} "" // {{ 775 1 0 "d6415e16_0873_4a2c_9c94bbe2ffb4e7ad" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Count = 1; // }} "" // {{ 776 1 0 "2aa91625_c673_47ef_a4a2df55d4dcc5d8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { int_LoopCount = 0; while (1 == 1) { int_LoopCount = int_LoopCount + 1; // }} "" // {{ 777 1 0 "e241c4a5_f27d_44cd_881f1ea838173d80" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 778 1 0 "6e711114_1bde_4092_9c7a1701ece20aa0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrMid(str_RegionOfInterest, int_Count, int_ValueNumber); // }} "" // {{ 779 1 0 "70e00d71_e810_4304_9e205226300163a1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + int_ValueNumber; // }} "" // {{ 780 1 0 "3600f0f8_436d_4de7_94bad9804be93047" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 781 1 0 "94fa1f7f_8d71_4495_be5939f2fb818c56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value2 = StrLeft(str_Value, int_SecondCut); // }} "" // {{ 782 1 0 "c31b56f5_a8ac_49bd_b1de75903d245e0d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_Value = str_Value2; // }} "" // {{ 783 1 0 "b03cc812_bbbc_4595_92cc1f7d5336eb75" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 784 1 0 "53407751_4b34_48fd_a8cbf7fc3b546e85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value3 = StrRight(str_Value, 1); // }} "" // {{ 785 1 0 "d2b70d77_f7fc_4a43_adc7e7132c645673" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Value3 != " ") { // }} "" // {{ 786 1 0 "e0f8a442_0c81_4561_869a5712cd720be7" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 787 1 0 "d2b70d77_f7fc_4a43_adc7e7132c645673" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 788 1 0 "2aa91625_c673_47ef_a4a2df55d4dcc5d8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 789 1 0 "b9572762_cc0f_4e73_ba7e36a6b7f646cb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "Parse_Parameter_Single_String" "End" } // }} "" // {{{ 5 "SetParameter" "Begin" function SetParameter( variable i_strParameterName, variable i_fltValue, variable i_fltConversionValue, variable i_intTotalDigits, variable & o_strParameter ) void { // }} "" private variable flt_Value; private variable int_Value; private variable str_Value; // {{ 5 "SetParameter" "InitLocals" o_strParameter = 0; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 800 1 0 "436ce862_6e8b_45e9_891117d49ac3d1f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE12(Translate(" Param name: "), i_strParameterName, Translate(" Value: "), i_fltValue, Translate(" Total Digits: "), i_intTotalDigits, Translate(" Conversion: "), i_fltConversionValue, Translate(""), Translate(""), Translate(""), Translate("")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 801 1 0 "41a7e7ea_bd7e_48ee_970804928e9a086c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(i_strParameterName, Translate("")); // }} "" // {{ 802 1 0 "298b8164_c748_49e2_a1f7579d39c5efd2" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Value = i_fltValue * i_fltConversionValue; // }} "" // {{{ 803 1 0 "193a98be_82f4_4734_a909ca945e0d6afa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = MthRound(flt_Value, 0); // }} "" // {{{ 804 1 0 "ef7000c2_1281_4311_8614f4d93be1db8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrConcat2(int_Value, Translate("")); // }} "" // {{{ 805 1 0 "7bafac06_f5cd_474f_96514365ed48328c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrFillLeft(int_Value, Translate("0"), i_intTotalDigits); // }} "" // {{{ 806 1 0 "346ecf46_8c48_428b_9827d8450b184f9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_strParameter = StrConcat2(str_Value, int_Value); // }} "" // {{{ 5 "SetParameter" "End" } // }} "" // {{{ 5 "RemoveExcessDigits" "Begin" function RemoveExcessDigits( variable & io_flt_Value ) void { // }} "" private variable int_Check; // {{ 5 "RemoveExcessDigits" "InitLocals" // }} "" // {{{ 791 1 0 "8c1cd0de_aab4_43d0_a434e550bb80535d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_flt_Value = MthRound(io_flt_Value, 1); // }} "" // {{{ 792 1 0 "4004d120_b465_46ea_85f39e227258a3fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_flt_Value = StrConcat2(io_flt_Value, Translate("")); // }} "" // {{{ 793 1 0 "29762b4b_c21e_479f_8f0395f23b7b7015" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_flt_Value = StrTrimRight(io_flt_Value, Translate("0")); // }} "" // {{{ 794 1 0 "196ae165_df03_4aa4_a515b6ea1ce12768" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Check = StrRight(io_flt_Value, 1); // }} "" // {{ 795 1 0 "db96a5f5_ee31_4b99_8f6e4abb7de22246" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Check == ".") { // }} "" // {{{ 796 1 0 "e706a91f_491a_4e56_96e72051479e48df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(io_flt_Value, Translate("."), Translate(".0")); // }} "" // {{ 797 1 0 "db96a5f5_ee31_4b99_8f6e4abb7de22246" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 798 1 0 "ffb7d94a_4d3e_4442_bdf65adc43fadb2f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_flt_Value = StrFVal(io_flt_Value); // }} "" // {{{ 5 "RemoveExcessDigits" "End" } // }} "" // {{{ 5 "Parse_Parameter_Multiple2" "Begin" function Parse_Parameter_Multiple2( variable i_str_ParameterFull, variable i_str_Parameter, variable i_flt_Conversion, variable & o_bol_ParameterFound, variable & o_arr_flt_Value[] ) void { // }} "" private variable int_TotalParsed; private variable i; private variable str_ParseValue; private variable str_CurrentValue; private variable int_StringPosition; private variable flt_Value2; private variable int_ParamaterLength; private variable o_flt_Value; private variable int_CutAmount; private variable int_Value2; private variable arr_ParsedValues[]; // {{ 5 "Parse_Parameter_Multiple2" "InitLocals" o_bol_ParameterFound = 0; o_arr_flt_Value.SetSize( 0); // }} "" // {{ 716 1 0 "6ccf22d7_cb81_407c_96e2dae2b43d413f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_flt_Value.SetSize(0); // }} "" // {{{ 717 1 0 "585d1607_95a9_4720_808722816ff67691" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_bol_ParameterFound = StrReplace(i_str_ParameterFull, i_str_Parameter, i_str_Parameter); // }} "" // {{{ 718 1 0 "d68c16ef_5fa6_46ee_8e9e96d93ae69779" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ParamaterLength = StrGetLength(i_str_ParameterFull); // }} "" // {{ 719 1 0 "5357d425_0ac6_43ac_8aee48d3921528d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (o_bol_ParameterFound == 1) { // }} "" // {{{ 720 1 0 "f56a04cc_6fb9_419e_81204c871b0b85bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_StringPosition = StrFind(i_str_ParameterFull, i_str_Parameter); // }} "" // {{ 721 1 0 "458410f5_9ece_4606_930fcdf666bb508c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutAmount = int_ParamaterLength - int_StringPosition; // }} "" // {{{ 722 1 0 "89d4d228_c96c_47cc_bf7dfa5b41134c90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ParseValue = StrMid(i_str_ParameterFull, int_StringPosition, int_CutAmount); // }} "" // {{{ 723 1 0 "f652d0bb_50bd_4f0d_bddd8d4c3a1b868c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(str_ParseValue, i_str_Parameter, Translate("")); // }} "" // {{{ 724 1 0 "73961fa5_d6a6_4819_bf8c7ae0a6b8279a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Parsed String: "), str_ParseValue); // }} "" // {{{ 725 1 0 "0cf1a8bf_256b_43ce_9f3ef5c4202cc34b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arr_ParsedValues = HSLExtensions::String::Split(str_ParseValue, Translate(" "), BOOLEON::TRUE); // }} "" // {{ 726 1 0 "1f9a4023_146d_4db7_b3a692c5e86c6d3e" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalParsed=arr_ParsedValues.GetSize(); // }} "" // {{ 727 1 0 "3510806d_f0ac_44a3_b5fc62ae59d87042" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalParsed;) { i = i + 1; // }} "" // {{ 728 1 0 "d30ecb55_d8ad_4adc_b5eee5ba495d15d9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_CurrentValue=arr_ParsedValues.GetAt(i-1); // }} "" // {{{ 729 1 0 "1f8c7732_f5ee_4198_ba054e4ef13aeab5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value2 = StrIVal(str_CurrentValue); // }} "" // {{ 730 1 0 "13ebc12b_e68b_49c3_a9e3382779bb6046" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Value2 = int_Value2 * i_flt_Conversion; // }} "" // {{ 731 1 0 "ca4c60ac_af9d_4720_abc78e09e97a3f2b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Value = flt_Value2; // }} "" // {{ 732 1 0 "b68a14b8_e026_4b50_abc9ef6f148c8b28" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_flt_Value.AddAsLast(o_flt_Value); // }} "" // {{ 733 1 0 "3510806d_f0ac_44a3_b5fc62ae59d87042" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 734 1 0 "5357d425_0ac6_43ac_8aee48d3921528d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "Parse_Parameter_Multiple2" "End" } // }} "" // {{{ 5 "GetChannelValue" "Begin" function GetChannelValue( variable i_int_ChannelNumber, variable & o_str_ChannelValue ) void { // }} "" // {{ 5 "GetChannelValue" "InitLocals" o_str_ChannelValue = 0; // }} "" // {{ 103 1 0 "179d7e3d_1353_443e_b3a0d719e86190a5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChannelValue = Translate(""); // }} "" // {{ 104 1 0 "4e80dcbc_10d3_4313_854df78c071ff090" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChannelNumber == 1) { // }} "" // {{ 105 1 0 "be0a3834_b6b8_4498_a2b42a1bd661d26f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChannelValue = Translate("1"); // }} "" // {{ 106 1 0 "4e80dcbc_10d3_4313_854df78c071ff090" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 107 1 0 "c2bf3dbe_c377_430d_95c448a2e4e5794e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChannelNumber == 2) { // }} "" // {{ 108 1 0 "c80119e9_b680_4548_a1f62f5a3bd41011" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChannelValue = Translate("2"); // }} "" // {{ 109 1 0 "c2bf3dbe_c377_430d_95c448a2e4e5794e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 110 1 0 "7f24f6c6_da14_496f_ad1d51cf2dbbcad3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChannelNumber == 3) { // }} "" // {{ 111 1 0 "0c7fee77_6693_456b_b18c8af9b6c29f64" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChannelValue = Translate("3"); // }} "" // {{ 112 1 0 "7f24f6c6_da14_496f_ad1d51cf2dbbcad3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 113 1 0 "59e8e52a_db8a_4668_98ff3e0a6e3c1f41" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChannelNumber == 4) { // }} "" // {{ 114 1 0 "762c0f0f_04a7_4fa5_b11179b2de6ff5aa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChannelValue = Translate("4"); // }} "" // {{ 115 1 0 "59e8e52a_db8a_4668_98ff3e0a6e3c1f41" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 116 1 0 "c715b2df_9372_451b_9a99dfc16dd22c06" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChannelNumber == 5) { // }} "" // {{ 117 1 0 "6ea858bd_75ac_4e54_be40cf884bd88ae6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChannelValue = Translate("5"); // }} "" // {{ 118 1 0 "c715b2df_9372_451b_9a99dfc16dd22c06" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 119 1 0 "4424698e_ae5a_41d8_92dceda1991fcb94" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChannelNumber == 6) { // }} "" // {{ 120 1 0 "f758eeae_2237_4086_99738573f7c4be4c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChannelValue = Translate("6"); // }} "" // {{ 121 1 0 "4424698e_ae5a_41d8_92dceda1991fcb94" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 122 1 0 "e0501023_abed_421f_8b1586590ec4e2cc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChannelNumber == 7) { // }} "" // {{ 123 1 0 "2aed1aea_6aa1_4e0a_a64a32b247eb1577" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChannelValue = Translate("7"); // }} "" // {{ 124 1 0 "e0501023_abed_421f_8b1586590ec4e2cc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 125 1 0 "3326a2c1_5500_4932_aa6d0bca00f7bba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChannelNumber == 8) { // }} "" // {{ 126 1 0 "a0d8a4b4_5d70_46dc_8856a7e3baeb4c3e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChannelValue = Translate("8"); // }} "" // {{ 127 1 0 "3326a2c1_5500_4932_aa6d0bca00f7bba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 128 1 0 "5add87e5_5a02_4df4_bcec24ea7b800a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChannelNumber == 9) { // }} "" // {{ 129 1 0 "6554a560_9c9f_4bb5_9c504a0e9f0d7e01" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChannelValue = Translate("9"); // }} "" // {{ 130 1 0 "5add87e5_5a02_4df4_bcec24ea7b800a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 131 1 0 "2f50591e_6204_4140_82ab4a84e8c21c2f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChannelNumber == 10) { // }} "" // {{ 132 1 0 "8faa1212_93fd_4df8_8c7f4ffaa5b5ec85" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChannelValue = Translate("A"); // }} "" // {{ 133 1 0 "2f50591e_6204_4140_82ab4a84e8c21c2f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 134 1 0 "437b0fc2_d2e4_4e26_89f07edb3c4c076d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChannelNumber == 11) { // }} "" // {{ 135 1 0 "9867bcb6_7bb5_44c7_973d07ac47942a99" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChannelValue = Translate("B"); // }} "" // {{ 136 1 0 "437b0fc2_d2e4_4e26_89f07edb3c4c076d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 137 1 0 "514a10db_25ed_4046_92259fb66af80708" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChannelNumber == 12) { // }} "" // {{ 138 1 0 "996bd828_ec70_4987_82af932526e93ae0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChannelValue = Translate("C"); // }} "" // {{ 139 1 0 "514a10db_25ed_4046_92259fb66af80708" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 140 1 0 "a0cd1aa0_c453_4bf9_b90fe3b6cd30bc46" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChannelNumber == 13) { // }} "" // {{ 141 1 0 "ea9ab002_a6d0_43f9_850071c39dbd9362" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChannelValue = Translate("D"); // }} "" // {{ 142 1 0 "a0cd1aa0_c453_4bf9_b90fe3b6cd30bc46" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 143 1 0 "820656e7_4ea2_4ee4_9ec143c59f1d8797" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChannelNumber == 14) { // }} "" // {{ 144 1 0 "4391a745_10d5_4402_b5501e8a5bc4e7e1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChannelValue = Translate("E"); // }} "" // {{ 145 1 0 "820656e7_4ea2_4ee4_9ec143c59f1d8797" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 146 1 0 "3a7141fa_4f9b_4f5f_b3b58e41f955173e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChannelNumber == 15) { // }} "" // {{ 147 1 0 "bbc0fc23_e6e1_4878_80ec07b859ce4160" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChannelValue = Translate("F"); // }} "" // {{ 148 1 0 "3a7141fa_4f9b_4f5f_b3b58e41f955173e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 149 1 0 "50e6a761_5f56_40a0_97df2d1fb60ef990" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChannelNumber == 16) { // }} "" // {{ 150 1 0 "f33eae4e_d52f_4362_b0a95bfbbf112988" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChannelValue = Translate("G"); // }} "" // {{ 151 1 0 "50e6a761_5f56_40a0_97df2d1fb60ef990" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "GetChannelValue" "End" } // }} "" // {{{ 5 "Get_Instrument_Type" "Begin" function Get_Instrument_Type( device & ML_STAR, variable & o_int_InstrumentType, variable & o_int_MaxAutoloadTracks ) variable { // }} "" private variable bool_ParamFound; private variable str_ReturnValue; private variable bln_VStarExists; private variable str_ConfigFile; private variable int_NumberOfTracks; private variable str_NumberOfTracksAutoload; private variable ret_int_FirmwareType; private variable str_ConfigFolderPath; private variable str_NumberOfTracks; // {{ 5 "Get_Instrument_Type" "InitLocals" o_int_InstrumentType = 0; o_int_MaxAutoloadTracks = 0; // }} "" // {{ 599 1 0 "74fab7fb_3a06_4843_8589f6872c77ec20" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_int_FirmwareType = 0; // }} "" // {{ 600 1 0 "3464f9d4_92b6_4e79_8f8d0a3ca493e74e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_InstrumentType = -1; // }} "" // {{{ 601 1 0 "6d0c1d44_2717_48b6_9b485855bee33ead" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ConfigFolderPath = FilGetConfigPath(); // }} "" // {{{ 602 1 0 "f15c5cb7_7273_4814_99b04dd7adb2dc01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ConfigFile = StrConcat4(str_ConfigFolderPath, Translate("\\"), Translate("VStar.cfg"), Translate("")); // }} "" // {{{ 603 1 0 "8d64b165_baeb_4c62_918395d18e319004" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_VStarExists = HSLExtensions::File::Exists(str_ConfigFile); // }} "" // {{ 604 1 0 "5daf3ee0_0983_490b_9ffd5e49dc7fece4" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("5daf3ee0_0983_490b_9ffd5e49dc7fece4"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 605 1 0 "f819c425_d591_4167_a80aa4b45feb8dd8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("xt"), 1.0, 2, bool_ParamFound, int_NumberOfTracks); // }} "" // {{{ 606 1 0 "4823ca95_aefc_4410_b4cdc6096e269554" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("xa"), 1.0, 2, bool_ParamFound, o_int_MaxAutoloadTracks); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 607 1 0 "3f2d736f_7758_46d8_9ed51bcb7817cf4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_NumberOfTracks = StrIVal(str_NumberOfTracks); // }} "" // {{{ 608 1 0 "78b241e7_f6d8_4d7d_a05618ec723fd983" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_int_MaxAutoloadTracks = StrIVal(str_NumberOfTracksAutoload); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 609 1 0 "c81ca76e_ff9b_45ef_95e8b0ae68170906" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_VStarExists == BOOLEON::FALSE) { // }} "" // {{ 610 1 0 "0f2869f6_2eae_421e_aa2b822b4c46c1a9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_int_FirmwareType = 1; // }} "" // {{ 611 1 0 "b38a6d77_9b3f_4385_83b0db9c83af29b7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_NumberOfTracks == 30) { // }} "" // {{ 612 1 0 "d0a7cdf6_0636_47c1_88fba7124f56ec2f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_InstrumentType = 1; // }} "" // {{ 613 1 0 "b38a6d77_9b3f_4385_83b0db9c83af29b7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 614 1 0 "6e020a1d_a577_4a04_87b1a2c657d5194d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_NumberOfTracks == 54) { // }} "" // {{ 615 1 0 "80c8539c_0db5_461b_8a3beba4329486ed" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_InstrumentType = 0; // }} "" // {{ 616 1 0 "6e020a1d_a577_4a04_87b1a2c657d5194d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 617 1 0 "8c11609d_b82e_46a4_9dc0f9f9cd8b07dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_NumberOfTracks == 76) { // }} "" // {{ 618 1 0 "ccdb57cb_651f_4071_9c5e73cdf7d33a20" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_InstrumentType = 2; // }} "" // {{ 619 1 0 "8c11609d_b82e_46a4_9dc0f9f9cd8b07dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 620 1 0 "c81ca76e_ff9b_45ef_95e8b0ae68170906" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 621 1 0 "cc21fe6f_51b6_4b04_b3344fb8374f6d4a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_int_FirmwareType = 2; // }} "" // {{ 622 1 0 "ed8f03f2_0a8e_42c9_b1fc2f7d259e2aaf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_NumberOfTracks == 54) { // }} "" // {{ 623 1 0 "2b04a8bb_0373_475d_876ac61f8bf2cf9e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_InstrumentType = 4; // }} "" // {{ 624 1 0 "ed8f03f2_0a8e_42c9_b1fc2f7d259e2aaf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 625 1 0 "4a674b73_a364_43eb_a13b534503475375" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_NumberOfTracks == 84) { // }} "" // {{ 626 1 0 "d807aabc_1919_424c_b375f2f93647ad4c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_InstrumentType = 3; // }} "" // {{ 627 1 0 "4a674b73_a364_43eb_a13b534503475375" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 628 1 0 "c81ca76e_ff9b_45ef_95e8b0ae68170906" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 629 1 0 "40d87acc_04a2_4e4d_8cabba33e01168df" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_int_FirmwareType); // }} "" // {{{ 5 "Get_Instrument_Type" "End" } // }} "" // {{{ 5 "InitFunction" "Begin" function InitFunction( device & ML_STAR ) void { // }} "" private variable int_NotUsed; private variable flt_NotUsed; // {{ 5 "InitFunction" "InitLocals" // }} "" // {{ 667 1 0 "4e735e5a_f61f_425a_8112bf018dc429c1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_LibraryInitialized == BOOLEON::FALSE) { // }} "" // {{{ 668 1 0 "f81a8c3c_ceab_45a9_8a6bfccc5ccc2e4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" G_FW_PIP_COM_SimulationMode = Util::GetSimulationMode(); // }} "" // {{{ 669 1 0 "8264ce0e_2d21_4083_ae840753174c299d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" G_FW_PIP_COM_FirmwareType = Get_Instrument_Type(ML_STAR, G_FW_PIP_COM_InstrumentType, int_NotUsed); // }} "" // {{ 670 1 0 "d8cd10d5_b750_4de0_bcf80cf962a4dbf3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" G_FW_PIP_COM_LibraryInitialized = BOOLEON::TRUE; // }} "" // {{ 671 1 0 "79d25dba_6399_4711_8b7afe64766d26a6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_InstrumentType <= 2) { // }} "" // {{{ 672 1 0 "3e07d9e0_afad_4bbb_898f4a856ac8f5ca" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" Get_X_Ranges_STAR(ML_STAR, G_FW_PIP_COM_XArmMin, G_FW_PIP_COM_XArmMax, flt_NotUsed, flt_NotUsed); // }} "" // {{ 673 1 0 "79d25dba_6399_4711_8b7afe64766d26a6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 674 1 0 "79d25dba_6399_4711_8b7afe64766d26a6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 675 1 0 "5472f7b7_03e6_4048_9e3ef41b13425311" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" G_FW_PIP_COM_TotalChannels = HELPERLIBRARY::GetChannelLimits(ML_STAR, 0, G_ARR_FW_PIP_COM_YMax, G_ARR_FW_PIP_COM_YMin, G_FW_PIP_COM_Raster); // }} "" // {{{ 676 1 0 "64b40169_a768_494e_b3788842990b3da0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" G_FW_XL_COM_TotalChannels = HELPERLIBRARY::GetChannelLimits(ML_STAR, 1, G_ARR_FW_XL_COM_YMax, G_ARR_FW_XL_COM_YMin, G_FW_XL_COM_Raster); // }} "" // {{{ 677 1 0 "d78d710c_147c_467b_86b82e101cec157d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" G_FW_PIP_COM_MPH_Exist = DevGetCfgValueWithKey(ML_STAR, 24); // }} "" // {{ 678 1 0 "4e735e5a_f61f_425a_8112bf018dc429c1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "InitFunction" "End" } // }} "" // {{{ 5 "SetParametersAll" "Begin" function SetParametersAll( variable i_strParameterName, variable i_fltValue, variable i_fltConversionValue, variable i_intTotalDigits, variable & o_strParameter ) void { // }} "" private variable flt_Value; private variable int_Value; // {{ 5 "SetParametersAll" "InitLocals" o_strParameter = 0; // }} "" // {{ 808 1 0 "d3686f9c_3ace_48ea_8273b55e4fee3681" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_strParameter = Translate(""); // }} "" // {{{ 809 1 0 "2489ac49_0b12_4c0b_a2ac084aa08dd625" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_strParameter = StrConcat2(i_strParameterName, Translate("")); // }} "" // {{ 810 1 0 "656d2a7f_f1b7_473f_869be3d9422e492c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Value = i_fltValue * i_fltConversionValue; // }} "" // {{{ 811 1 0 "0d61f3be_1bee_48a8_a8e3b32576454e15" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = MthRound(flt_Value, 0); // }} "" // {{{ 812 1 0 "cafe536b_25f6_4a5b_be77b6509e6b5b05" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrConcat2(int_Value, Translate("")); // }} "" // {{{ 813 1 0 "647aaa68_be7e_4399_9e2c14dac9858397" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrFillLeft(int_Value, Translate("0"), i_intTotalDigits); // }} "" // {{{ 814 1 0 "787bd66a_a4ae_4d83_8f809696eae5fdbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_strParameter = StrConcat2(o_strParameter, int_Value); // }} "" // {{{ 815 1 0 "4762a3be_9493_41f9_936f26bb1042ba1c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_strParameter = StrConcat2(o_strParameter, Translate("&")); // }} "" // {{{ 5 "SetParametersAll" "End" } // }} "" // {{{ 5 "SetParametersArr" "Begin" function SetParametersArr( variable i_strParameterName, variable & i_arrValues[], variable i_fltConversionValue, variable i_intTotalDigits, variable i_intTotalChannels, variable & o_strParameter ) void { // }} "" private variable i; private variable flt_Value; private variable int_Value; // {{ 5 "SetParametersArr" "InitLocals" o_strParameter = 0; // }} "" // {{ 817 1 0 "44538aa3_fe28_47e1_a81e9da49e89fb35" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_strParameter = Translate(""); // }} "" // {{{ 818 1 0 "2e82fd94_4629_47b1_a67b6904cbece464" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_strParameter = StrConcat2(i_strParameterName, Translate("")); // }} "" // {{ 819 1 0 "c07c4fcb_57bf_41a4_8d5731d31ba45850" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < i_intTotalChannels;) { i = i + 1; // }} "" // {{ 820 1 0 "b68d51a3_d0e5_4dbe_a2b38b67c866a9c7" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Value = i_arrValues.ElementAt( i -1) * i_fltConversionValue; // }} "" // {{{ 821 1 0 "208ef254_d7b3_4b6f_8554caa909907d7c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = MthRound(flt_Value, 0); // }} "" // {{{ 822 1 0 "37c59107_05d8_4def_9885450df5be93d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrConcat2(int_Value, Translate("")); // }} "" // {{{ 823 1 0 "7cce36f3_dad0_4e40_bf823d55bdba1ad1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrFillLeft(int_Value, Translate("0"), i_intTotalDigits); // }} "" // {{{ 824 1 0 "bbbf28b5_2c05_47b7_991edcf442eae82e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_strParameter = StrConcat2(o_strParameter, int_Value); // }} "" // {{ 825 1 0 "098df4af_db5d_4037_93ca3fb47abd70ca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i != i_intTotalChannels) { // }} "" // {{{ 826 1 0 "0d9b9172_46d0_47de_b4974db015067735" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_strParameter = StrConcat2(o_strParameter, Translate(" ")); // }} "" // {{ 827 1 0 "098df4af_db5d_4037_93ca3fb47abd70ca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 828 1 0 "c07c4fcb_57bf_41a4_8d5731d31ba45850" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "SetParametersArr" "End" } // }} "" // {{{ 5 "Get_X_Ranges_STAR" "Begin" function Get_X_Ranges_STAR( device & ML_STAR, variable & o_flt_LeftXMin, variable & o_flt_LeftXMax, variable & o_flt_RightXMin, variable & o_flt_RightXMax ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable bol_ParamFound; private variable i; private variable strFunctionName; private variable strFunctionName_Cut; private variable bol_SimulationMode; private variable int_Count; private variable int_Values; private variable arr_Values[]; // {{ 5 "Get_X_Ranges_STAR" "InitLocals" o_flt_LeftXMin = 0; o_flt_LeftXMax = 0; o_flt_RightXMin = 0; o_flt_RightXMax = 0; // }} "" // {{ 631 1 0 "f408350f_6d96_4cc5_9095f4d4873c0703" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_LeftXMax = 0.0; // }} "" // {{ 632 1 0 "c92c76f9_d757_40d6_97b5172f1175cfee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_LeftXMin = 0.0; // }} "" // {{ 633 1 0 "2a0635cc_f7be_456d_8831d376e6e21e25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_RightXMax = 0.0; // }} "" // {{ 634 1 0 "ce200a08_0453_43f4_9236c8decaaaa422" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_RightXMin = 0.0; // }} "" // {{ 635 1 0 "6a290605_e8fa_40a0_90dc3019d12f68f5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 636 1 0 "533f79f3_4adc_466f_baa638e4a4ecffca" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 638 1 0 "1172d0cb_ced3_42bd_9c477082b09a5cb9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 639 1 0 "7e80c2fb_57f1_4974_8ef7e4bbd0fcd248" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 640 1 0 "959509ed_116d_44dc_a58cb3308284ecd1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 641 1 0 "4573e745_b31c_4610_bb3e69094b89912d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 642 1 0 "c95d221f_d3f8_49ff_aba12dd9dc25dc78" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 643 1 0 "c547da47_6d9b_4496_b092949de1259eaa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 644 1 0 "6a290605_e8fa_40a0_90dc3019d12f68f5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 645 1 0 "dd702032_04bc_4af3_a8b71ae22c7be37b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bol_SimulationMode = Util::GetSimulationMode(); // }} "" // {{ 646 1 0 "471906b0_5532_4571_bdb92f02e4b6fb53" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("471906b0_5532_4571_bdb92f02e4b6fb53"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 647 1 0 "f92d1874_244b_4b4f_aac9e1b108744c37" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" CheckForError(strFunctionName, str_ReturnValue, BOOLEON::TRUE); // }} "" // {{{ 648 1 0 "9e92fba3_c4a3_4c5e_a4fba6d4d66bed7e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" Parse_Parameter_Multiple(str_ReturnValue, Translate("ru"), 0.1, 5, 4, bol_ParamFound, arr_Values); // }} "" // {{ 649 1 0 "bad278cc_5a41_4f33_9be6d8642c981041" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParamFound == 1) { // }} "" // {{ 650 1 0 "3e5d1646_a3bc_4d62_879dc27b19f5d167" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_Values=arr_Values.GetSize(); // }} "" // {{ 651 1 0 "a04f6e81_9126_4cdd_a5bc37d02d0b92a3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_Values;) { i = i + 1; // }} "" // {{ 652 1 0 "43050eba_bb72_4415_96bafb7cb1933e90" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i == 1) { // }} "" // {{ 653 1 0 "92be56ed_a0b0_4d5e_949aa1a1c2e174c6" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" o_flt_LeftXMin=arr_Values.GetAt(1-1); // }} "" // {{ 654 1 0 "43050eba_bb72_4415_96bafb7cb1933e90" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 655 1 0 "0c6aedc5_08e9_4369_bf11f8bd72a19ca1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i == 2) { // }} "" // {{ 656 1 0 "d158e06b_49ca_4c46_a49aafab944e2a00" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" o_flt_LeftXMax=arr_Values.GetAt(2-1); // }} "" // {{ 657 1 0 "0c6aedc5_08e9_4369_bf11f8bd72a19ca1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 658 1 0 "939c746d_1a14_4ff4_8fc21c21e854efdf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i == 3) { // }} "" // {{ 659 1 0 "662411cb_9f19_4560_8901179d8a107b62" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" o_flt_RightXMin=arr_Values.GetAt(3-1); // }} "" // {{ 660 1 0 "939c746d_1a14_4ff4_8fc21c21e854efdf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 661 1 0 "cb47b998_2538_4204_a7334c02584a2686" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i == 4) { // }} "" // {{ 662 1 0 "c37e9424_7af6_40c8_9ef8a8068f194fc8" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" o_flt_RightXMax=arr_Values.GetAt(4-1); // }} "" // {{ 663 1 0 "cb47b998_2538_4204_a7334c02584a2686" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 664 1 0 "a04f6e81_9126_4cdd_a5bc37d02d0b92a3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 665 1 0 "bad278cc_5a41_4f33_9be6d8642c981041" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "Get_X_Ranges_STAR" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=user$$valid=0$$time=2020-10-23 13:02$$checksum=a5ed95c5$$length=083$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/Firmware Pipetting Commands.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 7/29/2021 11:19:22 AM #pragma once #ifndef HSL_RUNTIME namespace FIRMWARE_PIPETTING_COMMANDS { function _InitLibrary() { } function _ExitLibrary() { } function GetChannelNumber1mL( device & ML_STAR, variable & o_int_ChannelCount ) void { } function GetChannelNumber5mL( device & ML_STAR, variable & o_int_ChannelCount ) void { } function GetChannelPatternWithTips( device & ML_STAR, variable i_bln_1mL, variable & o_str_ChannelPattern ) void { } function GetChannelRaster1mL( device & ML_STAR, variable & o_flt_ChannelRaster ) void { } function GetChannelRaster5mL( device & ML_STAR, variable & o_flt_ChannelRaster ) void { } function GetChannelXCoordinate( device & ML_STAR, variable & o_flt_CurrentXCoord ) void { } function GetChannelYCoordinates( device & ML_STAR, variable i_bln_1mL, variable & o_arr_YCoords[] ) void { } function GetChannelZCoordinates( device & ML_STAR, variable i_bln_1mL, variable & o_arr_ZCoords[] ) void { } function GetChannelZCoordinatesLastLLD( device & ML_STAR, variable i_bln_1mL, variable & o_arr_ZCoords[] ) void { } function GetMPHExist( device & ML_STAR, variable & o_int_MPHExists ) void { } function Get_Tip_Volume_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void { } function Get_Tip_Volume_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void { } function MPH96AspirateFromFixedHeight( device & ML_STAR, variable i_flt_XCoord, variable i_flt_YCoord, variable i_flt_AspHeight, variable i_flt_AspirateDistance, variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_MinimumHeight, variable i_flt_ZBottom, variable i_flt_SubmergeDepth, variable i_flt_AspirateVolume, variable i_flt_AspirateSpeed, variable i_flt_TransportAirGap, variable i_flt_BlowoutVolume, variable i_int_SettlingTime, variable i_flt_SwapSpeed, variable i_flt_PullOutDistance ) void { } function MPH96DispenseFromFixedHeight( device & ML_STAR, variable i_int_DispenseMode, variable i_flt_XCoord, variable i_flt_YCoord, variable i_flt_DispHeight, variable i_flt_DispenseDistance, variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_MinimumHeight, variable i_flt_ZBottom, variable i_flt_SubmergeDepth, variable i_flt_DispenseVolume, variable i_flt_DispenseSpeed, variable i_flt_CutOffSpeed, variable i_flt_StopBackVolume, variable i_flt_TransportAirGap, variable i_flt_BlowoutVolume, variable i_int_SettlingTime, variable i_flt_SwapSpeed, variable i_flt_PullOutDistance ) void { } function MPH96GetCoordinates( device & ML_STAR, variable & o_flt_CurrentXCoord, variable & o_flt_CurrentYCoord, variable & o_flt_CurrentZCoord ) void { } function MPH96GetTipPresence( device & ML_STAR, variable & o_bln_TipLoaded ) void { } function PIPAspirateFromFixedHeight( device & ML_STAR, variable i_str_ChannelPattern, variable & i_arr_XCoord[], variable & i_arr_YCoord[], variable & i_arr_FixedHeights[], variable & i_arr_AspirateDistance[], variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_MinimumHeight, variable i_flt_ZBottom, variable i_flt_ContainerDepth, variable i_flt_AspirateVolume, variable i_flt_AspirateSpeed, variable i_flt_TransportAirGap, variable i_flt_BlowoutVolume, variable i_int_SettlingTime, variable i_flt_SwapSpeed, variable i_flt_PullOutDistance ) void { } function PIPAspirateFromFixedHeight_ArrayVolumes( device & ML_STAR, variable i_str_ChannelPattern, variable & i_arr_XCoord[], variable & i_arr_YCoord[], variable & i_arr_FixedHeights[], variable & i_arr_AspirateDistance[], variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_MinimumHeight, variable i_flt_ZBottom, variable i_flt_ContainerDepth, variable & i_arr_AspirateVolume[], variable i_flt_AspirateSpeed, variable i_flt_TransportAirGap, variable i_flt_BlowoutVolume, variable i_int_SettlingTime, variable i_flt_SwapSpeed, variable i_flt_PullOutDistance ) void { } function PIPDispenseFromFixedHeight( device & ML_STAR, variable i_str_ChannelPattern, variable i_int_DispenseMode, variable & i_arr_XCoord[], variable & i_arr_YCoord[], variable & i_arr_FixedHeights[], variable & i_arr_DispenseDistance[], variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_MinimumHeight, variable i_flt_ZBottom, variable i_flt_DispenseVolume, variable i_flt_DispenseSpeed, variable i_flt_CutOffSpeed, variable i_flt_StopBackVolume, variable i_flt_TransportAirGap, variable i_flt_BlowoutVolume, variable i_int_SettlingTime, variable i_flt_SwapSpeed, variable i_flt_PullOutDistance, variable i_flt_MaximumHeight ) void { } function PIPDispenseFromFixedHeight_ArrayVolumes( device & ML_STAR, variable i_str_ChannelPattern, variable i_int_DispenseMode, variable & i_arr_XCoord[], variable & i_arr_YCoord[], variable & i_arr_FixedHeights[], variable & i_arr_DispenseDistance[], variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_MinimumHeight, variable i_flt_ZBottom, variable & i_arr_DispenseVolume[], variable i_flt_DispenseSpeed, variable i_flt_CutOffSpeed, variable i_flt_StopBackVolume, variable i_flt_TransportAirGap, variable i_flt_BlowoutVolume, variable i_int_SettlingTime, variable i_flt_SwapSpeed, variable i_flt_PullOutDistance, variable i_flt_MaximumHeight ) void { } function PIPFindLiquidLevel( device & ML_STAR, variable i_str_ChannelPattern, variable & i_arr_XCoord[], variable & i_arr_YCoord[], variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_LiquidSearchHeight, variable i_flt_MinimumHeight, variable i_bln_UseCLLD, variable & o_arr_LiquidHeights[] ) void { } function PIPMixFromFixedHeight( device & ML_STAR, variable i_str_ChannelPattern, variable & i_arr_XCoord[], variable & i_arr_YCoord[], variable & i_arr_FixedHeights[], variable & i_arr_MixDistance[], variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_MinimumHeight, variable i_flt_ZBottom, variable i_int_MixCycles, variable i_flt_MixVolume, variable i_flt_MixSpeed ) void { } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=Bare_B$$valid=0$$time=2021-07-29 11:19$$checksum=d2f0cb19$$length=083$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/Firmware Pipetting Commands.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "HSLStrLib.hsl" #include "STAR Tools\\Resources\\SubMethods\\HelperLibrary.hs_" #include "HSL_MethodHelper.hsl" #include "STAR Tools\\Resources\\SubMethods\\FW_HelperLibrary.hs_" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" #include "HSLPTLLib.hsl" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace FIRMWARE_PIPETTING_COMMANDS { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function GetChannelNumber1mL( device & ML_STAR, variable & o_int_ChannelCount ) void ; function GetChannelNumber5mL( device & ML_STAR, variable & o_int_ChannelCount ) void ; function GetChannelPatternWithTips( device & ML_STAR, variable i_bln_1mL, variable & o_str_ChannelPattern ) void ; function GetChannelRaster1mL( device & ML_STAR, variable & o_flt_ChannelRaster ) void ; function GetChannelRaster5mL( device & ML_STAR, variable & o_flt_ChannelRaster ) void ; function GetChannelXCoordinate( device & ML_STAR, variable & o_flt_CurrentXCoord ) void ; function GetChannelYCoordinates( device & ML_STAR, variable i_bln_1mL, variable & o_arr_YCoords[] ) void ; function GetChannelZCoordinates( device & ML_STAR, variable i_bln_1mL, variable & o_arr_ZCoords[] ) void ; function GetChannelZCoordinatesLastLLD( device & ML_STAR, variable i_bln_1mL, variable & o_arr_ZCoords[] ) void ; function GetMPHExist( device & ML_STAR, variable & o_int_MPHExists ) void ; function Get_Tip_Volume_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void ; function Get_Tip_Volume_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void ; function MPH96AspirateFromFixedHeight( device & ML_STAR, variable i_flt_XCoord, variable i_flt_YCoord, variable i_flt_AspHeight, variable i_flt_AspirateDistance, variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_MinimumHeight, variable i_flt_ZBottom, variable i_flt_SubmergeDepth, variable i_flt_AspirateVolume, variable i_flt_AspirateSpeed, variable i_flt_TransportAirGap, variable i_flt_BlowoutVolume, variable i_int_SettlingTime, variable i_flt_SwapSpeed, variable i_flt_PullOutDistance ) void ; function MPH96DispenseFromFixedHeight( device & ML_STAR, variable i_int_DispenseMode, variable i_flt_XCoord, variable i_flt_YCoord, variable i_flt_DispHeight, variable i_flt_DispenseDistance, variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_MinimumHeight, variable i_flt_ZBottom, variable i_flt_SubmergeDepth, variable i_flt_DispenseVolume, variable i_flt_DispenseSpeed, variable i_flt_CutOffSpeed, variable i_flt_StopBackVolume, variable i_flt_TransportAirGap, variable i_flt_BlowoutVolume, variable i_int_SettlingTime, variable i_flt_SwapSpeed, variable i_flt_PullOutDistance ) void ; function MPH96GetCoordinates( device & ML_STAR, variable & o_flt_CurrentXCoord, variable & o_flt_CurrentYCoord, variable & o_flt_CurrentZCoord ) void ; function MPH96GetTipPresence( device & ML_STAR, variable & o_bln_TipLoaded ) void ; function PIPAspirateFromFixedHeight( device & ML_STAR, variable i_str_ChannelPattern, variable & i_arr_XCoord[], variable & i_arr_YCoord[], variable & i_arr_FixedHeights[], variable & i_arr_AspirateDistance[], variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_MinimumHeight, variable i_flt_ZBottom, variable i_flt_ContainerDepth, variable i_flt_AspirateVolume, variable i_flt_AspirateSpeed, variable i_flt_TransportAirGap, variable i_flt_BlowoutVolume, variable i_int_SettlingTime, variable i_flt_SwapSpeed, variable i_flt_PullOutDistance ) void ; function PIPAspirateFromFixedHeight_ArrayVolumes( device & ML_STAR, variable i_str_ChannelPattern, variable & i_arr_XCoord[], variable & i_arr_YCoord[], variable & i_arr_FixedHeights[], variable & i_arr_AspirateDistance[], variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_MinimumHeight, variable i_flt_ZBottom, variable i_flt_ContainerDepth, variable & i_arr_AspirateVolume[], variable i_flt_AspirateSpeed, variable i_flt_TransportAirGap, variable i_flt_BlowoutVolume, variable i_int_SettlingTime, variable i_flt_SwapSpeed, variable i_flt_PullOutDistance ) void ; function PIPDispenseFromFixedHeight( device & ML_STAR, variable i_str_ChannelPattern, variable i_int_DispenseMode, variable & i_arr_XCoord[], variable & i_arr_YCoord[], variable & i_arr_FixedHeights[], variable & i_arr_DispenseDistance[], variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_MinimumHeight, variable i_flt_ZBottom, variable i_flt_DispenseVolume, variable i_flt_DispenseSpeed, variable i_flt_CutOffSpeed, variable i_flt_StopBackVolume, variable i_flt_TransportAirGap, variable i_flt_BlowoutVolume, variable i_int_SettlingTime, variable i_flt_SwapSpeed, variable i_flt_PullOutDistance, variable i_flt_MaximumHeight ) void ; function PIPDispenseFromFixedHeight_ArrayVolumes( device & ML_STAR, variable i_str_ChannelPattern, variable i_int_DispenseMode, variable & i_arr_XCoord[], variable & i_arr_YCoord[], variable & i_arr_FixedHeights[], variable & i_arr_DispenseDistance[], variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_MinimumHeight, variable i_flt_ZBottom, variable & i_arr_DispenseVolume[], variable i_flt_DispenseSpeed, variable i_flt_CutOffSpeed, variable i_flt_StopBackVolume, variable i_flt_TransportAirGap, variable i_flt_BlowoutVolume, variable i_int_SettlingTime, variable i_flt_SwapSpeed, variable i_flt_PullOutDistance, variable i_flt_MaximumHeight ) void ; function PIPFindLiquidLevel( device & ML_STAR, variable i_str_ChannelPattern, variable & i_arr_XCoord[], variable & i_arr_YCoord[], variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_LiquidSearchHeight, variable i_flt_MinimumHeight, variable i_bln_UseCLLD, variable & o_arr_LiquidHeights[] ) void ; function PIPMixFromFixedHeight( device & ML_STAR, variable i_str_ChannelPattern, variable & i_arr_XCoord[], variable & i_arr_YCoord[], variable & i_arr_FixedHeights[], variable & i_arr_MixDistance[], variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_MinimumHeight, variable i_flt_ZBottom, variable i_int_MixCycles, variable i_flt_MixVolume, variable i_flt_MixSpeed ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" PTL::SetWashingStateDefault("RinseTime1", 5); PTL::SetWashingStateDefault("SoakTime1", 5); PTL::SetWashingStateDefault("FlowRate1", 11); PTL::SetWashingStateDefault("RinseTime2", 0); PTL::SetWashingStateDefault("SoakTime2", 0); PTL::SetWashingStateDefault("FlowRate2", 11); PTL::SetWashingStateDefault("DrainingTime", 10); PTL::SetWashingStateDefault("StartWashLiquid", 0); PTL::SetLoadingStateDefault("RecoveryOptionContinue", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionExclude", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionDefault", 0); PTL::SetLoadingStateDefault("KitLotCheckEnabled", hslFalse); HELPERLIBRARY::_InitLibrary(); FW_HELPERLIBRARY::_InitLibrary(); // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" HELPERLIBRARY::_ExitLibrary(); FW_HELPERLIBRARY::_ExitLibrary(); // }} "" } // {{{ 5 "GetChannelXCoordinate" "Begin" function GetChannelXCoordinate( device & ML_STAR, variable & o_flt_CurrentXCoord ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable str_ReturnValue; private variable str_FirmwareCMND; private variable bln_ParamFound; private variable str_Value; private variable int_Value; private variable flt_Value; // {{ 5 "GetChannelXCoordinate" "InitLocals" o_flt_CurrentXCoord = 0; // }} "" // {{{ 62 1 0 "8f507e5f_1916_47c6_827cc3b6512a8924" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 63 1 0 "d5d9631c_2685_4b99_9c55ef54b81a7e1a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentXCoord = 0.0; // }} "" // {{ 64 1 0 "ef2cf56a_9705_4ac8_b11334487fbc73e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 65 1 0 "5e4a0ce0_3e2d_4ce2_b8b8bcd8962fb200" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 67 1 0 "08de56e3_a090_4f80_9372865a19a49b20" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 68 1 0 "9ff994eb_2377_405c_a3d4cd541929e261" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 69 1 0 "e7ed4376_efb0_48f9_993a21d94f9a35d8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 70 1 0 "07d6ff75_3203_4763_9b69679d806609fb" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 71 1 0 "ab33da02_8ef1_477d_a24ae51eef4bf47e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 72 1 0 "8c5da471_9017_4f47_84f805e4ccf46cf3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 73 1 0 "ef2cf56a_9705_4ac8_b11334487fbc73e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 74 1 0 "b1625b2e_13f9_4b63_ab99b6a5f8f18635" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 75 1 0 "b3962518_52c7_4a35_abecc16974456838" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE) { // }} "" // {{ 76 1 0 "f3b30415_6852_499c_b13b04cf38dca36f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_FirmwareType == 1) { // }} "" // {{{ 77 1 0 "3f0a26c8_9a83_4054_beee9535b636d8c4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("C0RX"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 78 1 0 "c80bb90d_5daa_4e68_8868e8212bcbdfd5" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("c80bb90d_5daa_4e68_8868e8212bcbdfd5"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 79 1 0 "f3b30415_6852_499c_b13b04cf38dca36f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 80 1 0 "db2e9f58_d2d9_4625_a993c5589de6a641" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("A1XMRX"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 81 1 0 "9f482c66_8601_448c_88839d367c7c1de5" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("9f482c66_8601_448c_88839d367c7c1de5"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 82 1 0 "f3b30415_6852_499c_b13b04cf38dca36f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 83 1 0 "af46d51f_f752_4c92_be7c4a726441a7a6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(str_FirmwareCMND, str_ReturnValue, BOOLEON::TRUE); // }} "" // {{{ 84 1 0 "3121dd51_58a3_464c_9d9be6ba5e82750a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("rx"), 0.1, 5, bln_ParamFound, flt_Value); // }} "" // {{ 85 1 0 "b3962518_52c7_4a35_abecc16974456838" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 86 1 0 "50ea72b7_a8dc_4399_838709db849334b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ParamFound = BOOLEON::FALSE; // }} "" // {{ 87 1 0 "b3962518_52c7_4a35_abecc16974456838" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 88 1 0 "17a22148_349e_4c0b_99bb785396fa8e85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ParamFound == BOOLEON::TRUE) { // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 89 1 0 "8e704eab_b3f9_4106_af0c685801c27945" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrIVal(str_Value); // }} "" // {{ 90 1 0 "08ffbef2_bf8f_45ee_b088060b1b18ba36" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentXCoord = int_Value / (10.0 * 1.0); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 91 1 0 "0163ba20_b1a0_4f9b_8eedd9b74e28aba8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentXCoord = flt_Value; // }} "" // {{ 92 1 0 "17a22148_349e_4c0b_99bb785396fa8e85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "GetChannelXCoordinate" "End" } // }} "" // {{{ 5 "GetChannelYCoordinates" "Begin" function GetChannelYCoordinates( device & ML_STAR, variable i_bln_1mL, variable & o_arr_YCoords[] ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable str_FirmwareCMND; private variable str_ReturnValue; private variable arr_Values[]; private variable bln_ParamFound; private variable str_ParamSearch; // {{ 5 "GetChannelYCoordinates" "InitLocals" o_arr_YCoords.SetSize( 0); // }} "" // {{{ 94 1 0 "41df05de_9ddc_454d_a19d6a04ccca9245" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 95 1 0 "1739b86a_4cde_4941_a56eb73738839c6c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_YCoords.SetSize(G_FW_PIP_COM_TotalChannels); // }} "" // {{ 96 1 0 "4e682004_e348_4565_b1beda6b7c26f778" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 97 1 0 "5888d632_e9f1_44db_b1b3b4dcb4b7fed7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 99 1 0 "afb1181a_fc75_425e_8df3513d6203c57c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 100 1 0 "ac21991a_7444_4b00_ba3889250f7ddd7e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 101 1 0 "86f86123_71af_4616_bff2b0deab644888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 102 1 0 "cf66b8c3_3a63_438d_ab42e71015735257" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 103 1 0 "44020009_12a3_4681_b0bc1fbfa359b3ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 104 1 0 "5b907a36_3d93_45ab_85e021c5279c113a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 105 1 0 "4e682004_e348_4565_b1beda6b7c26f778" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 106 1 0 "df74fee0_989e_405b_bafcb181730f3d40" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 107 1 0 "a7756d77_187f_4d60_86f4c3caefd027b5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE) { // }} "" // {{ 108 1 0 "c8168305_eb6b_4f5c_8a7e55bd1f9da250" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_FirmwareType == 1) { // }} "" // {{ 109 1 0 "3083bd22_aad7_4201_a89d85402b06bf49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_1mL == BOOLEON::TRUE) { // }} "" // {{{ 110 1 0 "b86505df_48e1_4643_b7d4c9502ba13e72" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("C0RY"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 111 1 0 "d740a4b8_cdcb_4ba6_94f4b96a91b932d3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ParamSearch = Translate("ry"); // }} "" // {{ 112 1 0 "3083bd22_aad7_4201_a89d85402b06bf49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 113 1 0 "7a67a8d0_d85b_4216_89973a7987f2429f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("C0UY"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 114 1 0 "6ea23281_df87_4753_934148d2bad462c7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ParamSearch = Translate("uy"); // }} "" // {{ 115 1 0 "3083bd22_aad7_4201_a89d85402b06bf49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 116 1 0 "b08419f1_d948_436b_92d93bfaf58c68c6" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("b08419f1_d948_436b_92d93bfaf58c68c6"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 117 1 0 "c8168305_eb6b_4f5c_8a7e55bd1f9da250" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 118 1 0 "9a63c702_5f18_4969_a6732da660771aa3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_1mL == BOOLEON::TRUE) { // }} "" // {{{ 119 1 0 "5f9cadcd_0af6_435e_8bf2f0d92b1322e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("A1PMRY"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 120 1 0 "c96504fd_ef2a_4983_86474e3e7075774e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ParamSearch = Translate("ry"); // }} "" // {{ 121 1 0 "9a63c702_5f18_4969_a6732da660771aa3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 122 1 0 "acf6f87c_45a1_44f5_b72421ec9f298def" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("A1LMRY"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 123 1 0 "77c03808_fb3c_4f3e_a1bf13e0811e7d31" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ParamSearch = Translate("ry"); // }} "" // {{ 124 1 0 "9a63c702_5f18_4969_a6732da660771aa3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 125 1 0 "1b0b77df_aa51_4e2c_9325e8ae31da084c" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("1b0b77df_aa51_4e2c_9325e8ae31da084c"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 126 1 0 "c8168305_eb6b_4f5c_8a7e55bd1f9da250" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 127 1 0 "90067c8f_79cc_4450_b9b58a8e032a313d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(str_FirmwareCMND, str_ReturnValue, BOOLEON::TRUE); // }} "" // {{{ 128 1 0 "2a6dd63e_48ca_426c_adcc3ac2f28561ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple2(str_ReturnValue, str_ParamSearch, 0.1, bln_ParamFound, arr_Values); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 129 1 0 "c58eaf5d_b27f_4b92_b35c66b68862569d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, str_ParamSearch, 0.1, 5, G_FW_PIP_COM_TotalChannels, bln_ParamFound, arr_Values); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 130 1 0 "a7756d77_187f_4d60_86f4c3caefd027b5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 131 1 0 "259084b8_e705_4c64_ae4e4dba82774a22" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ParamFound = BOOLEON::FALSE; // }} "" // {{ 132 1 0 "a7756d77_187f_4d60_86f4c3caefd027b5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 133 1 0 "7c853cd6_bde0_4e16_a9d5a0a7f41f6860" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ParamFound == BOOLEON::TRUE) { // }} "" // {{ 134 1 0 "af12afd2_0c6b_4dfd_929dc0265e5e5bd4" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" o_arr_YCoords=arr_Values; // }} "" // {{ 135 1 0 "7c853cd6_bde0_4e16_a9d5a0a7f41f6860" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "GetChannelYCoordinates" "End" } // }} "" // {{{ 5 "GetChannelZCoordinates" "Begin" function GetChannelZCoordinates( device & ML_STAR, variable i_bln_1mL, variable & o_arr_ZCoords[] ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable str_FirmwareCMND; private variable str_ParamSearch; private variable int_Count; private variable bln_ParamFound; private variable arr_Values[]; // {{ 5 "GetChannelZCoordinates" "InitLocals" o_arr_ZCoords.SetSize( 0); // }} "" // {{{ 137 1 0 "4c83b6a5_e738_460d_8763a9e3bb869d05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 138 1 0 "460d5a74_12b6_40ef_a6a3ccea24bd965f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_ZCoords.SetSize(G_FW_PIP_COM_TotalChannels); // }} "" // {{ 139 1 0 "13221000_0e35_4b53_903b80bf65c7719e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 140 1 0 "0786c7d1_ca60_4852_91849e2dc9d740ff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 142 1 0 "e1eff49b_8d74_4e6f_b85ed7d2c73c046f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 143 1 0 "0dc9dc10_b581_4ab7_8c63aff95fcba782" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 144 1 0 "57ef6ba8_b164_4a6d_98c5fa0485a2987d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 145 1 0 "e8fa64ab_90a4_4039_8a2340476dacb720" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 146 1 0 "42e69ac0_c5f8_45a5_bf52acada41146ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 147 1 0 "043432d4_2641_4394_9c57eb66d578bf46" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 148 1 0 "13221000_0e35_4b53_903b80bf65c7719e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 149 1 0 "d6ec1471_2375_456a_b47caa14e238436a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 150 1 0 "76141cd6_3d5d_4e2a_a028edb89d7e59e1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE) { // }} "" // {{ 151 1 0 "e7b96b44_3f3e_4a83_a634ccf1b4c0819f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_FirmwareType == 1) { // }} "" // {{ 152 1 0 "83ab1d51_1b00_41ac_8ae0a485d686bb0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_1mL == BOOLEON::TRUE) { // }} "" // {{{ 153 1 0 "4f51cd37_a7a4_4012_936c62438e5a54c4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("C0RZ"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 154 1 0 "20e5ae7a_17ab_4a99_999dd9c3cf912dd3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ParamSearch = Translate("rz"); // }} "" // {{ 155 1 0 "83ab1d51_1b00_41ac_8ae0a485d686bb0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 156 1 0 "a9371bb1_ccac_4ebd_80747804ebe498f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("C0UZ"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 157 1 0 "985ee16c_246b_4867_ac0e779b31c4e43c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ParamSearch = Translate("uz"); // }} "" // {{ 158 1 0 "83ab1d51_1b00_41ac_8ae0a485d686bb0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 159 1 0 "72e4a698_f7b5_4765_9698d5a51a8231eb" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("72e4a698_f7b5_4765_9698d5a51a8231eb"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 160 1 0 "e7b96b44_3f3e_4a83_a634ccf1b4c0819f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 161 1 0 "9be00fb2_761c_4703_b81d24d50355b796" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_1mL == BOOLEON::TRUE) { // }} "" // {{{ 162 1 0 "99fd6152_c2cc_47a0_b7257dafbf0852ea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("A1PMRZ"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 163 1 0 "9f078fc7_ae52_4d32_9371f4e178d98577" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ParamSearch = Translate("rz"); // }} "" // {{ 164 1 0 "9be00fb2_761c_4703_b81d24d50355b796" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 165 1 0 "5eb8502c_bc95_43f4_9df4fb49ffa10ea8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("A1LMRZ"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 166 1 0 "56c93e64_187a_4882_b4f69155b3030ad8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ParamSearch = Translate("rz"); // }} "" // {{ 167 1 0 "9be00fb2_761c_4703_b81d24d50355b796" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 168 1 0 "31f75aaa_7878_4854_9ac0409a97187e14" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("31f75aaa_7878_4854_9ac0409a97187e14"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 169 1 0 "e7b96b44_3f3e_4a83_a634ccf1b4c0819f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 170 1 0 "cd3684f6_3dc2_4a52_aa299268de64bfee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(str_FirmwareCMND, str_ReturnValue, BOOLEON::TRUE); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 171 1 0 "5d378cd5_237f_4c06_9917c29da9942f22" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, str_ParamSearch, 0.1, 5, G_FW_PIP_COM_TotalChannels, bln_ParamFound, arr_Values); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 172 1 0 "5a3d93af_4d25_4365_a6f0e5c55af040c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple2(str_ReturnValue, str_ParamSearch, 0.1, bln_ParamFound, arr_Values); // }} "" // {{ 173 1 0 "76141cd6_3d5d_4e2a_a028edb89d7e59e1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 174 1 0 "7e6dfded_e010_463f_a7a02be4e30fb05e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ParamFound = BOOLEON::FALSE; // }} "" // {{ 175 1 0 "76141cd6_3d5d_4e2a_a028edb89d7e59e1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 176 1 0 "97031d52_9f4d_48a5_a1ad549eb92a29fe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ParamFound == BOOLEON::TRUE) { // }} "" // {{ 177 1 0 "7600e984_f6fd_4090_bc8a35a328fe09da" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" o_arr_ZCoords=arr_Values; // }} "" // {{ 178 1 0 "97031d52_9f4d_48a5_a1ad549eb92a29fe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "GetChannelZCoordinates" "End" } // }} "" // {{{ 5 "PIPFindLiquidLevel" "Begin" function PIPFindLiquidLevel( device & ML_STAR, variable i_str_ChannelPattern, variable & i_arr_XCoord[], variable & i_arr_YCoord[], variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_LiquidSearchHeight, variable i_flt_MinimumHeight, variable i_bln_UseCLLD, variable & o_arr_LiquidHeights[] ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable arr_Params[]; private variable str_Value; private variable str_ChPattern; private variable i; private variable str_ChannelValue; private variable int_Value; private variable int_TotalParams; private variable str_Params; private variable str_FirmwareCommand; private variable str_ReturnValue; private variable arr_ZCoords[]; private variable int_ChannelValue; // {{ 5 "PIPFindLiquidLevel" "InitLocals" o_arr_LiquidHeights.SetSize( 0); // }} "" // {{{ 1501 1 0 "4354f773_c318_400b_b64089fd3411f21f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 1502 1 0 "7876417f_1dac_43bf_9f02c44fa9d6e44f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_LiquidHeights.SetSize(0); // }} "" // {{ 1503 1 0 "b40662c4_083a_414d_9f92d873fa623e5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1504 1 0 "c99c0460_3c49_4811_963cabefd583e64a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1506 1 0 "58ce4cd7_3149_4c06_9f2d133d11e1ada0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 1507 1 0 "9714c1bc_f022_49b4_86e3d1f84b5b6a17" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1508 1 0 "50bc6d21_6c46_4612_92070e383ae42437" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 1509 1 0 "2bbf60fe_d970_460f_be80bbbef6b1d4c0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1510 1 0 "b53086ed_7fa3_47ca_b15ddf3512903b44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 1511 1 0 "7c08c7a8_1340_4362_8032a6abb498e1bc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 1512 1 0 "b40662c4_083a_414d_9f92d873fa623e5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1513 1 0 "c40d4eba_b361_4425_b51254dadd84e956" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Params.SetSize(0); // }} "" // {{ 1514 1 0 "ff9aad09_1b2d_45c5_a71183f04c8400ed" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FirmwareCommand = Translate("C0AS"); // }} "" // {{ 1515 1 0 "1cb49e05_f33a_48d8_8b2dfc4b42d0ef0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1516 1 0 "88b56053_4574_4692_981c7965ddaacfaf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("at"), Translate("2&")); // }} "" // {{ 1517 1 0 "d19d526d_e453_49ba_8eece4878b495b2e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1518 1 0 "1cb49e05_f33a_48d8_8b2dfc4b42d0ef0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1519 1 0 "eff4cdf7_5f0b_43ef_b9f62aba1731bd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1520 1 0 "6b079eea_14c9_4672_ac3407051b0d50c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrConcat2(i_str_ChannelPattern, Translate("")); // }} "" // {{{ 1521 1 0 "d3058af6_84dc_40a5_b623b6bcd861a685" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrFillRight(str_ChPattern, Translate("0"), G_FW_PIP_COM_TotalChannels); // }} "" // {{ 1522 1 0 "07b1ac92_7918_4def_9179ae9d5e257f7c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Value = Translate("tm"); // }} "" // {{ 1523 1 0 "913c6494_053e_4e30_8795ea23b1d0ecc4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < G_FW_PIP_COM_TotalChannels;) { i = i + 1; // }} "" // {{{ 1524 1 0 "8668938b_e59a_42f6_8d2f779b304a6804" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelValue = StrLeft(str_ChPattern, i); // }} "" // {{{ 1525 1 0 "1633c8a4_74e1_4bf6_ba378115699cba35" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelValue = StrRight(str_ChannelValue, 1); // }} "" // {{{ 1526 1 0 "54a8aadb_9a02_4b28_8b581d5bf44e95fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(str_Value, str_ChannelValue); // }} "" // {{ 1527 1 0 "b1d83f94_6c6f_4c3a_be201e81c4ad7098" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i < G_FW_PIP_COM_TotalChannels) { // }} "" // {{{ 1528 1 0 "5b1264e0_a901_47c1_b927e5c1c9f346e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(str_Value, Translate(" ")); // }} "" // {{ 1529 1 0 "b1d83f94_6c6f_4c3a_be201e81c4ad7098" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1530 1 0 "913c6494_053e_4e30_8795ea23b1d0ecc4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1531 1 0 "e6f85175_a103_49fb_858953b2a8547812" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1532 1 0 "eff4cdf7_5f0b_43ef_b9f62aba1731bd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1533 1 0 "4f165fbd_c357_4471_9889488d73511923" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1534 1 0 "574813b7_39e8_40b8_9e8360ec0e531402" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("xp"), i_arr_XCoord, 10.0, 5, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 1535 1 0 "3b3ebc07_17d2_4500_91ffcd125605890a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1536 1 0 "4f165fbd_c357_4471_9889488d73511923" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1537 1 0 "d81e8a82_298c_4d4e_838c1fdb0f78861b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1538 1 0 "d7d3152d_ded1_4c62_bfaaa39460219117" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("yp"), i_arr_YCoord, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 1539 1 0 "2f06a137_b38a_4079_b13379e253d33098" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1540 1 0 "d81e8a82_298c_4d4e_838c1fdb0f78861b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1541 1 0 "72399163_303f_4fe8_92257e01899f880d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1542 1 0 "1f704208_0949_4d7a_94be09626590b496" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("th"), i_flt_StartTraverseHeight, 10.0, 4, str_Value); // }} "" // {{ 1543 1 0 "e0cc888c_e560_4419_a761ca4a2a59020a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1544 1 0 "72399163_303f_4fe8_92257e01899f880d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1545 1 0 "18f12a50_9cb8_4eb1_bb114b34559b18cd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1546 1 0 "6e633031_69fb_4e6a_82564e2856977ded" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("te"), i_flt_EndTranverseHeight, 10.0, 4, str_Value); // }} "" // {{ 1547 1 0 "490c40e5_22dd_439d_8ba7261a5968b0fc" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1548 1 0 "18f12a50_9cb8_4eb1_bb114b34559b18cd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1549 1 0 "618c9371_82a3_4ec5_89f71887a517d33d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1550 1 0 "acfe27aa_784a_4c27_a6f8916fd0dc12e7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("lp"), i_flt_LiquidSearchHeight, 10.0, 4, str_Value); // }} "" // {{ 1551 1 0 "5de76943_e738_4502_8a71d3c64f0b1976" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1552 1 0 "618c9371_82a3_4ec5_89f71887a517d33d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1553 1 0 "810ec877_0465_44fd_a1aebfbab0b6f2ed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1554 1 0 "9baedf98_0b03_4679_98773b8d6cc86507" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("zl"), 245.0, 10.0, 4, str_Value); // }} "" // {{ 1555 1 0 "44566210_fb1e_4745_a5e8e58e31214547" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1556 1 0 "810ec877_0465_44fd_a1aebfbab0b6f2ed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1557 1 0 "6cf019ea_7589_4bb8_ae8a37f068c00fb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1558 1 0 "b4b3a09a_b63f_4831_9ef29dee53dc669f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("po"), 5.0, 10.0, 4, str_Value); // }} "" // {{ 1559 1 0 "50d59b68_3669_4911_8fc869ea268142fb" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1560 1 0 "6cf019ea_7589_4bb8_ae8a37f068c00fb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1561 1 0 "de9e0fcc_2da5_4fb4_83dae5dfbf262ef5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1562 1 0 "0785d231_a06d_413f_b7476259938240d4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("zx"), i_flt_MinimumHeight, 10.0, 4, str_Value); // }} "" // {{ 1563 1 0 "b6754b18_7737_4356_b5017fcad01d96cb" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1564 1 0 "de9e0fcc_2da5_4fb4_83dae5dfbf262ef5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1565 1 0 "f351d0bc_9e65_4e5b_a92c7da423ebebfe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1566 1 0 "e039f855_149b_4f2e_b23b327b41aa8a04" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ip"), 0.0, 10.0, 4, str_Value); // }} "" // {{ 1567 1 0 "182bd253_8413_4310_98ee672a4d07c400" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1568 1 0 "f351d0bc_9e65_4e5b_a92c7da423ebebfe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1569 1 0 "d1f09708_6c2a_48cb_97b4bd3ae309236b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1570 1 0 "e10a48e7_6795_4b97_a13ef13e8c0a7cde" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("fp"), 0.0, 10.0, 4, str_Value); // }} "" // {{ 1571 1 0 "57ff5d8e_0510_4eaf_b8bc364552be61a9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1572 1 0 "d1f09708_6c2a_48cb_97b4bd3ae309236b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1573 1 0 "14607d16_2724_45c9_9f64dfcdabc75de4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1574 1 0 "975ec0d9_5257_4ccf_b1546ac0fb48e124" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("av"), 0.0, 10.0, 5, str_Value); // }} "" // {{ 1575 1 0 "ec0d24b9_319c_4628_953ab7c1816232f1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1576 1 0 "14607d16_2724_45c9_9f64dfcdabc75de4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1577 1 0 "d3e7d061_50ee_4428_aaabfb4f3157edc6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1578 1 0 "22653b99_ea79_4e52_89fe4f937c9e68c0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("as"), 10.0, 10.0, 4, str_Value); // }} "" // {{ 1579 1 0 "a1ef6669_c729_48c1_bc5a4d2bada08757" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1580 1 0 "d3e7d061_50ee_4428_aaabfb4f3157edc6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1581 1 0 "d8806d13_92cc_499e_b6b11c54a6e8f8d6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1582 1 0 "72fedd17_3c3b_4aeb_bc3b228d98fd47dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ta"), 0.0, 10.0, 3, str_Value); // }} "" // {{ 1583 1 0 "c1bfd998_a217_4ab9_945b26c954605252" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1584 1 0 "d8806d13_92cc_499e_b6b11c54a6e8f8d6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1585 1 0 "6ac88acb_a675_4eff_a8ec1f55a73778e6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1586 1 0 "4c694794_1551_4b16_953fde07a1e56758" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ba"), 0.0, 10.0, 4, str_Value); // }} "" // {{ 1587 1 0 "dcf20846_ddc4_4dfc_80401d6e75d0f1f7" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1588 1 0 "6ac88acb_a675_4eff_a8ec1f55a73778e6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1589 1 0 "dc9934ce_ebd1_4aaa_8c2ade9b0114b30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1590 1 0 "c0752dc0_386a_4ac1_8e78f672750db901" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("oa"), 0.0, 10.0, 3, str_Value); // }} "" // {{ 1591 1 0 "0f953310_c2be_4230_ad747e1a041147d7" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1592 1 0 "dc9934ce_ebd1_4aaa_8c2ade9b0114b30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1593 1 0 "7e46ce6b_c137_4f4a_ab403ccccec7bd51" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1594 1 0 "58db6c84_12bb_4c70_9a4c41eb0176773d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("lm"), Translate("")); // }} "" // {{{ 1595 1 0 "cbd051a0_bf60_47fc_9404fd8a02c0d7c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrConcat2(1, Translate("")); // }} "" // {{{ 1596 1 0 "970caceb_5b45_47e4_a784d2e7a5613485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat4(str_Value, int_Value, Translate("&"), Translate("")); // }} "" // {{ 1597 1 0 "f50564ee_e0f6_4519_a2fcce9b03558917" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1598 1 0 "7e46ce6b_c137_4f4a_ab403ccccec7bd51" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1599 1 0 "d1e3bb2f_4c53_416c_a302aea201aa2485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1600 1 0 "f25e3428_44e5_4437_8d181a7e05f14ba6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("ll"), Translate("")); // }} "" // {{{ 1601 1 0 "40ac2441_b27e_462d_a9fd312bead03ad5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrConcat2(1, Translate("")); // }} "" // {{{ 1602 1 0 "a6a6913e_ad30_492d_a53cd512bb2a5770" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat4(str_Value, int_Value, Translate("&"), Translate("")); // }} "" // {{ 1603 1 0 "65e70ee3_5304_4021_be8c6320c5d2f9de" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1604 1 0 "d1e3bb2f_4c53_416c_a302aea201aa2485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1605 1 0 "51211b52_16c6_4606_a6259cfb5221e0e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1606 1 0 "d390bfd4_0008_4a9f_a3712aaeb2b05a6b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("de"), 15.0, 10.0, 4, str_Value); // }} "" // {{ 1607 1 0 "7c19ee95_6ffd_4dec_914b030b30e90b24" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1608 1 0 "51211b52_16c6_4606_a6259cfb5221e0e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1609 1 0 "1cbc471e_c562_4840_924bb02f8d09b152" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1610 1 0 "2f79abc5_b48f_4945_a0c332e484e13c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("wt"), 0.0, 10.0, 2, str_Value); // }} "" // {{ 1611 1 0 "1bb99e9f_8557_43f5_bf5f2154720a4b02" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1612 1 0 "1cbc471e_c562_4840_924bb02f8d09b152" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1613 1 0 "b10ba448_6dd8_4c6e_97e24dfcc4a1cbc9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1614 1 0 "afdfda89_f453_4221_bc51480d9582541c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mv"), 0.0, 10.0, 5, str_Value); // }} "" // {{ 1615 1 0 "b689b8f1_c23a_4e84_9b0fb1d0269f903a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1616 1 0 "b10ba448_6dd8_4c6e_97e24dfcc4a1cbc9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1617 1 0 "9c93a045_f28b_489a_a9b38d6c00d3155b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1618 1 0 "f77d06f5_855d_41a9_b498e1ff1d4bb6aa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mc"), 0, 1, 2, str_Value); // }} "" // {{ 1619 1 0 "b4788b7f_49a4_4e45_9c79be9f6507318e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1620 1 0 "9c93a045_f28b_489a_a9b38d6c00d3155b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1621 1 0 "fe7cd9d0_2d88_4ce4_88477490aa132267" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1622 1 0 "60afbaad_c29d_4b73_ac94764f1f132440" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mp"), 0.0, 10.0, 3, str_Value); // }} "" // {{ 1623 1 0 "f1815f70_be2f_401c_b2dadc0a4f97b6b4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1624 1 0 "fe7cd9d0_2d88_4ce4_88477490aa132267" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1625 1 0 "776280b1_a1ac_4433_b8d7352cfb1fa44c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1626 1 0 "12c89aa0_c30b_4a99_9dc92bdf1cbdd7a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ms"), 10.0, 10.0, 4, str_Value); // }} "" // {{ 1627 1 0 "f152546c_1907_4a1f_9893e206be65c727" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1628 1 0 "776280b1_a1ac_4433_b8d7352cfb1fa44c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1629 1 0 "10a10524_6153_481d_9c597a4396132697" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1630 1 0 "578514c7_b29b_4d54_82d804c309c72981" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mh"), 0.0, 10.0, 4, str_Value); // }} "" // {{ 1631 1 0 "07e1390d_e222_4da5_b941af43529ec947" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1632 1 0 "10a10524_6153_481d_9c597a4396132697" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1633 1 0 "c3ae262c_f71c_4ddb_ac6e8a02753a13ea" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1634 1 0 "0ac0665f_5264_427b_a736269f8d0027e7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gi"), Translate("000&")); // }} "" // {{ 1635 1 0 "a9f2e625_bd67_4e5d_b4d6d1486e03e99b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1636 1 0 "c3ae262c_f71c_4ddb_ac6e8a02753a13ea" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1637 1 0 "17088e9a_270e_4c2f_aeaebc973ef9d1ff" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1638 1 0 "f53c9294_ae72_47f0_8df60d9e7f5c7eb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gj"), Translate("0")); // }} "" // {{ 1639 1 0 "1f0de30d_e998_4c24_bd1de1888ebad6ea" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1640 1 0 "17088e9a_270e_4c2f_aeaebc973ef9d1ff" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1641 1 0 "9eaa7e96_2023_49a8_843a7edf4e8e0fd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1642 1 0 "e0c16542_6869_4f4a_9cc3620d54c57a83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gk"), Translate("0")); // }} "" // {{ 1643 1 0 "6b5f6c5e_95fc_40de_8e4ff520a340f5ec" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1644 1 0 "9eaa7e96_2023_49a8_843a7edf4e8e0fd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1645 1 0 "9f0ffa50_7715_4227_851bc7c26e32e9a0" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalParams=arr_Params.GetSize(); // }} "" // {{ 1646 1 0 "ae926b45_2efd_4a49_bf768a551ca15408" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Params = Translate(""); // }} "" // {{ 1647 1 0 "1aed9fc9_a8c2_47a3_bf4fe0f2d06ce113" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalParams;) { i = i + 1; // }} "" // {{{ 1648 1 0 "bf04909e_e410_4983_87105ba6c1a85c7b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Params = StrConcat2(str_Params, arr_Params.ElementAt( i -1)); // }} "" // {{ 1649 1 0 "1aed9fc9_a8c2_47a3_bf4fe0f2d06ce113" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1650 1 0 "a975cf6e_fa12_4cfa_8a9a8ea9636f9c1e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE06(Translate("Firmware Command: "), str_FirmwareCommand, Translate(" : "), str_Params, Translate(""), Translate("")); // }} "" // {{ 1651 1 0 "61bb0474_bb3b_45b6_ae4fa1b682bca5ed" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE) { // }} "" // {{ 1652 1 0 "c62e8bd1_efb1_421a_bc9f722a85db5c07" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("c62e8bd1_efb1_421a_bc9f722a85db5c07"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 1653 1 0 "0d2b8b6f_ba0a_4924_9099707e9a38b982" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(str_FirmwareCommand, str_ReturnValue, BOOLEON::FALSE); // }} "" // {{{ 1654 1 0 "157ad8e4_2acc_4a9b_b758c6d8898064e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetChannelZCoordinatesLastLLD(ML_STAR, 1, arr_ZCoords); // }} "" // {{ 1655 1 0 "b3d3403a_a55d_4682_9a41a1c8a6555cad" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < G_FW_PIP_COM_TotalChannels;) { i = i + 1; // }} "" // {{{ 1656 1 0 "2b6caa9f_d804_48b8_936fa273d8afa8b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelValue = StrLeft(i_str_ChannelPattern, i); // }} "" // {{{ 1657 1 0 "71b4014d_84f6_40eb_961b0eeb2d28a0be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelValue = StrRight(str_ChannelValue, 1); // }} "" // {{{ 1658 1 0 "f4fa1885_069b_4d41_a9e4c865935e151a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ChannelValue = StrIVal(str_ChannelValue); // }} "" // {{ 1659 1 0 "1dcccf40_6864_4699_948971e107c9cb81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelValue == 1) { // }} "" // {{ 1660 1 0 "cda80af9_0e18_4e23_876c9274f694f841" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_LiquidHeights.AddAsLast(arr_ZCoords.ElementAt( i -1)); // }} "" // {{ 1661 1 0 "1dcccf40_6864_4699_948971e107c9cb81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1662 1 0 "8b0af7af_942e_4f62_948289796f675021" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_LiquidHeights.AddAsLast(0.0); // }} "" // {{ 1663 1 0 "1dcccf40_6864_4699_948971e107c9cb81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1664 1 0 "b3d3403a_a55d_4682_9a41a1c8a6555cad" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1665 1 0 "61bb0474_bb3b_45b6_ae4fa1b682bca5ed" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1666 1 0 "42eb727d_ca97_405e_923274709bc009bc" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < G_FW_PIP_COM_TotalChannels;) { i = i + 1; // }} "" // {{ 1667 1 0 "0490425c_98be_41d0_9dc79dc82b7e027a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_LiquidHeights.AddAsLast(0.0); // }} "" // {{ 1668 1 0 "42eb727d_ca97_405e_923274709bc009bc" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1669 1 0 "61bb0474_bb3b_45b6_ae4fa1b682bca5ed" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "PIPFindLiquidLevel" "End" } // }} "" // {{{ 5 "PIPMixFromFixedHeight" "Begin" function PIPMixFromFixedHeight( device & ML_STAR, variable i_str_ChannelPattern, variable & i_arr_XCoord[], variable & i_arr_YCoord[], variable & i_arr_FixedHeights[], variable & i_arr_MixDistance[], variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_MinimumHeight, variable i_flt_ZBottom, variable i_int_MixCycles, variable i_flt_MixVolume, variable i_flt_MixSpeed ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable str_Params; private variable i; private variable str_FirmwareCommand; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_TotalParams; private variable int_Count; private variable str_ChannelValue; private variable int_Value; private variable str_ChPattern; private variable str_Value; private variable arr_Params[]; private variable flt_MixDistance; private variable flt_EndHeight; private variable arr_PullOutDistance[]; private variable arr_LiquidFollowing[]; private variable arr_MixDistance[]; // {{ 5 "PIPMixFromFixedHeight" "InitLocals" // }} "" // {{{ 1671 1 0 "8cf4a5ca_3017_4e8a_bb7834ee6cacdd4d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 1672 1 0 "0df78064_3a50_4245_ad5ff4e4f103f77e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1673 1 0 "541958a3_0ff5_411d_b14a0eb24058d2e3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1675 1 0 "fdd0d5da_0647_4c1a_afccbfbcb43efa17" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 1676 1 0 "93a5dbdd_9982_4df3_a46133d64e09103b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1677 1 0 "fcc6a71b_8a12_48bf_a42682634c8c1d9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 1678 1 0 "5fc0f136_36f3_4ade_b1e59b016c13c162" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1679 1 0 "8318ac88_894c_4651_9f57f161c3d4c32b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 1680 1 0 "7ed24ea5_2bf1_4816_8ca3ff03a0b5a4ff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 1681 1 0 "0df78064_3a50_4245_ad5ff4e4f103f77e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1682 1 0 "72cfd020_1487_4e0c_bd518341ea79e6c7" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Params.SetSize(0); // }} "" // {{ 1683 1 0 "3bf225f4_ede9_4c38_b5dbeaf65fbfe962" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FirmwareCommand = Translate("C0AS"); // }} "" // {{ 1684 1 0 "93330a05_d028_40b3_b89322935717888a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1685 1 0 "8df20299_da4c_4478_8584fd077704872f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("at"), Translate("2&")); // }} "" // {{ 1686 1 0 "5088d316_991c_4ee3_986659e4ebd64b5b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1687 1 0 "93330a05_d028_40b3_b89322935717888a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1688 1 0 "276b4f2d_e2b5_4223_84ab21bddc7d31c5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1689 1 0 "91945455_f70a_43a0_973f43cfefe5c92d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrConcat2(i_str_ChannelPattern, Translate("")); // }} "" // {{{ 1690 1 0 "171ff607_e2f3_4eed_8fed3cf86d1f5bc1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrFillRight(str_ChPattern, Translate("0"), G_FW_PIP_COM_TotalChannels); // }} "" // {{ 1691 1 0 "9ae091ba_a104_43ab_a7dba1a00542cf23" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Value = Translate("tm"); // }} "" // {{ 1692 1 0 "652cf3cb_698c_47bc_a91fda80a187f150" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < G_FW_PIP_COM_TotalChannels;) { i = i + 1; // }} "" // {{{ 1693 1 0 "3e28bca1_48f8_4e2e_830e5a033847f0a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelValue = StrLeft(str_ChPattern, i); // }} "" // {{{ 1694 1 0 "4e2a6dee_a16c_4e94_ba4c2cb07fff24e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelValue = StrRight(str_ChannelValue, 1); // }} "" // {{{ 1695 1 0 "4a7020e1_fa32_4008_8f7cf3c251f9c89e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(str_Value, str_ChannelValue); // }} "" // {{ 1696 1 0 "186e7903_9a36_43e5_a7f9ea59ff561dc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i < G_FW_PIP_COM_TotalChannels) { // }} "" // {{{ 1697 1 0 "3ec711b0_3a94_4937_9f026516508a8346" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(str_Value, Translate(" ")); // }} "" // {{ 1698 1 0 "186e7903_9a36_43e5_a7f9ea59ff561dc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1699 1 0 "652cf3cb_698c_47bc_a91fda80a187f150" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1700 1 0 "549956c4_6b27_4c10_b6264452c06ce1f2" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1701 1 0 "276b4f2d_e2b5_4223_84ab21bddc7d31c5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1702 1 0 "6b232f1d_75d7_4d24_925385624d35872e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1703 1 0 "9e977811_7608_4e46_a72a6231137ac1f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("xp"), i_arr_XCoord, 10.0, 5, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 1704 1 0 "6bb26dee_f661_46ee_aa620f0000b9421b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1705 1 0 "6b232f1d_75d7_4d24_925385624d35872e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1706 1 0 "42b615e1_e97f_45c0_87ac75f6e5e2de8a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1707 1 0 "b8902ebe_2c3a_43a9_8afa42d6f6460499" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("yp"), i_arr_YCoord, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 1708 1 0 "66396eba_0641_4bdf_ae5e126ab90116cc" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1709 1 0 "42b615e1_e97f_45c0_87ac75f6e5e2de8a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1710 1 0 "802b2b09_0bbb_4671_85e4c5f2a4ef7ac1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1711 1 0 "c836aa90_4c5d_49b6_953b1d59df5bb154" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("th"), i_flt_StartTraverseHeight, 10.0, 4, str_Value); // }} "" // {{ 1712 1 0 "5739dcf0_5d39_4ed8_9f8dfbebe42b55ba" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1713 1 0 "802b2b09_0bbb_4671_85e4c5f2a4ef7ac1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1714 1 0 "94a4a015_668c_4fec_a2b88b714ad9a418" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1715 1 0 "f6f9856d_5fdd_4416_9c98e537e156d760" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("te"), i_flt_EndTranverseHeight, 10.0, 4, str_Value); // }} "" // {{ 1716 1 0 "5ad1a8c5_03b2_4a70_b019548640886e38" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1717 1 0 "94a4a015_668c_4fec_a2b88b714ad9a418" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1718 1 0 "ecb0e6e0_a900_47de_b963a980fb761a17" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1719 1 0 "502f1a78_5065_4035_93495cf19e1a42c7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("lp"), 245.0, 10.0, 4, str_Value); // }} "" // {{ 1720 1 0 "67c9e95d_aeb7_43da_9b944c3dd4fb59bc" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1721 1 0 "ecb0e6e0_a900_47de_b963a980fb761a17" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1722 1 0 "98c5a422_566c_4e71_b5464ad26b872e1e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1723 1 0 "d0b26b80_f8e5_48f6_be913aa35db15b19" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("zl"), i_arr_FixedHeights, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 1724 1 0 "5c80ad99_2afa_4cc5_92a235a9d0c9242a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1725 1 0 "98c5a422_566c_4e71_b5464ad26b872e1e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1726 1 0 "dd724ac7_6c79_4822_9334d26952faf9e9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1727 1 0 "1b2c0495_290e_47bf_9475836805da9039" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_PullOutDistance.SetSize(0); // }} "" // {{{ 1728 1 0 "49792c13_5e44_48d8_bfcfef2aa9728f51" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("po"), 0.0, 10.0, 4, str_Value); // }} "" // {{ 1729 1 0 "ea13e69e_76d0_4bc7_a460d0dddabb699b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1730 1 0 "dd724ac7_6c79_4822_9334d26952faf9e9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1731 1 0 "e4ee43d3_25ec_438c_8e113dbbefee4977" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1732 1 0 "b10cad61_a0fc_4c7f_850ce084e6fad8f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("zx"), i_flt_MinimumHeight, 10.0, 4, str_Value); // }} "" // {{ 1733 1 0 "17aac994_5ef4_4e95_acfb77cf0fc65b8f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1734 1 0 "e4ee43d3_25ec_438c_8e113dbbefee4977" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1735 1 0 "7654d8d1_8420_4096_b53c1aaef4c5c3b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1736 1 0 "ad779e85_687a_4995_9d8add7d463843ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ip"), 0.0, 10.0, 4, str_Value); // }} "" // {{ 1737 1 0 "c5765c02_1901_42bf_bc0cd37c91b5f2c2" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1738 1 0 "7654d8d1_8420_4096_b53c1aaef4c5c3b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1739 1 0 "adc2661c_312c_420e_a4525b08db11723c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1740 1 0 "c9c7e736_688c_4de3_a0f170490ba09002" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_LiquidFollowing.SetSize(0); // }} "" // {{{ 1741 1 0 "f94f32fd_1767_41d8_9a93ff65cd7066bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("fp"), 0.0, 10.0, 4, str_Value); // }} "" // {{ 1742 1 0 "03a2ad3e_24b9_4ff9_b4e0a489fa78e9a3" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1743 1 0 "adc2661c_312c_420e_a4525b08db11723c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1744 1 0 "57f27180_ea6e_46cb_836d52e86d19b0be" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1745 1 0 "818c4615_ef04_4bb3_836838be8955cf70" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("av"), 0.0, 10.0, 5, str_Value); // }} "" // {{ 1746 1 0 "53b6f946_0fa6_4b2f_a91ef02963affa34" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1747 1 0 "57f27180_ea6e_46cb_836d52e86d19b0be" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1748 1 0 "fe4e3c83_3bfd_41ea_9d5eafec468a1ba2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1749 1 0 "5e06d7cf_c0c3_4e5a_9a27e50fe99736bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("as"), 10.0, 10.0, 4, str_Value); // }} "" // {{ 1750 1 0 "44d77a9d_c572_4da5_b620fbe75449f502" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1751 1 0 "fe4e3c83_3bfd_41ea_9d5eafec468a1ba2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1752 1 0 "c88f1083_d02b_490d_99f5383542551908" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1753 1 0 "4199eec8_484e_43a5_9ca5dc652c151ed8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ta"), 0.0, 10.0, 3, str_Value); // }} "" // {{ 1754 1 0 "3ac928fe_f498_400c_a78f14d30fe53f8d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1755 1 0 "c88f1083_d02b_490d_99f5383542551908" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1756 1 0 "c3561784_6ddd_43a4_8313ea362218028d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1757 1 0 "76ea325e_d9c9_4fe2_b70714f463dc4960" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ba"), 0.0, 10.0, 4, str_Value); // }} "" // {{ 1758 1 0 "3db7ade7_110e_466b_b3cdb49cfa0efcac" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1759 1 0 "c3561784_6ddd_43a4_8313ea362218028d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1760 1 0 "c034c7b0_5d47_46b0_a92958f39d25f9b7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1761 1 0 "e17defd5_9403_41a4_ba25db6b6a1b5bbb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("oa"), 0.0, 10.0, 3, str_Value); // }} "" // {{ 1762 1 0 "18f564f7_7ae9_41d1_be7ce863059c9ba6" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1763 1 0 "c034c7b0_5d47_46b0_a92958f39d25f9b7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1764 1 0 "9f41929e_c832_47e8_a8b125926c5cde36" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1765 1 0 "29adf0dd_b90e_4860_8bdb499edc4d0649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("lm"), Translate("")); // }} "" // {{{ 1766 1 0 "70644afa_3747_470a_94a778d836a48fcf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrConcat2(0, Translate("")); // }} "" // {{{ 1767 1 0 "48cea96d_e484_4eb9_8af09fd9021c1586" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat4(str_Value, int_Value, Translate("&"), Translate("")); // }} "" // {{ 1768 1 0 "be560f24_bb2c_42ed_a50d8e739082f803" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1769 1 0 "9f41929e_c832_47e8_a8b125926c5cde36" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1770 1 0 "6e7b98ea_b702_4939_bbdea9aca078af91" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1771 1 0 "5fe2fdd3_c4a9_40ab_8f8b73908e2dbab4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("ll"), Translate("")); // }} "" // {{{ 1772 1 0 "6cb28def_e781_438c_b8e951c774807a30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrConcat2(1, Translate("")); // }} "" // {{{ 1773 1 0 "f3da08ab_ddfa_43c4_902533d72e1ae41a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat4(str_Value, int_Value, Translate("&"), Translate("")); // }} "" // {{ 1774 1 0 "a7fd0968_2a39_420c_ad43d1167252c891" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1775 1 0 "6e7b98ea_b702_4939_bbdea9aca078af91" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1776 1 0 "287ce4c1_07af_4dd0_8ded9ab341ac9265" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1777 1 0 "339eaafa_2890_4fe2_b572f669355bffc6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("de"), 15.0, 10.0, 4, str_Value); // }} "" // {{ 1778 1 0 "ae305e9c_d7e0_43a7_b6ed4de91a354a83" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1779 1 0 "287ce4c1_07af_4dd0_8ded9ab341ac9265" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1780 1 0 "740ede35_e977_4ee0_9a7c8acafb16fd5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1781 1 0 "cfa794fb_f9a0_420b_95e5d10c186224ce" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("wt"), 0.0, 10.0, 2, str_Value); // }} "" // {{ 1782 1 0 "1a60b869_a9a4_433f_9c98723430d765dd" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1783 1 0 "740ede35_e977_4ee0_9a7c8acafb16fd5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1784 1 0 "8d139f7b_c45b_4424_a579e6ad1a95d4e0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1785 1 0 "3b3ddb3c_3e78_4799_803903a89a565c68" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mv"), i_flt_MixVolume, 10.0, 5, str_Value); // }} "" // {{ 1786 1 0 "19a12699_9466_40fd_89934ca7a9a688fb" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1787 1 0 "8d139f7b_c45b_4424_a579e6ad1a95d4e0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1788 1 0 "75a1d213_4bca_4dba_8ecc5faf0c19fd81" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1789 1 0 "58015eb9_9588_4ec7_8aae8b902f9c4914" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mc"), i_int_MixCycles, 1, 2, str_Value); // }} "" // {{ 1790 1 0 "216259a8_57b5_44da_842dd5c1c27df8cc" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1791 1 0 "75a1d213_4bca_4dba_8ecc5faf0c19fd81" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1792 1 0 "77952b78_ece0_455f_9d17e7b56cdb000d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1793 1 0 "91bc97c8_69f9_4f89_8aca0efd64373897" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mp"), 0.0, 10.0, 3, str_Value); // }} "" // {{ 1794 1 0 "8e159b79_32c2_4734_8ebbb57a318ee87f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1795 1 0 "77952b78_ece0_455f_9d17e7b56cdb000d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1796 1 0 "5e1b2378_045b_45a1_850504a9452e3f74" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1797 1 0 "36f062d6_da9a_4846_ad9752620b5cbf0a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ms"), i_flt_MixSpeed, 10.0, 4, str_Value); // }} "" // {{ 1798 1 0 "58d2ca58_380a_4703_973b0a4f11c1497d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1799 1 0 "5e1b2378_045b_45a1_850504a9452e3f74" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1800 1 0 "098174f5_3b55_44d7_aa72083c022d5661" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1801 1 0 "cb6c187f_35f1_45fe_be3eb1cd35823571" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_MixDistance.SetSize(0); // }} "" // {{ 1802 1 0 "881a2147_52d9_4516_9b71283d4de0dea9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < G_FW_PIP_COM_TotalChannels;) { i = i + 1; // }} "" // {{ 1803 1 0 "dc4d2f64_3e6f_46f5_b97fdfea5a4748b7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MixDistance = i_arr_MixDistance.ElementAt( i -1); // }} "" // {{ 1804 1 0 "498dcaa3_d879_421a_bb15100417e9f268" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndHeight = i_arr_FixedHeights.ElementAt( i -1) - flt_MixDistance; // }} "" // {{ 1805 1 0 "ecf3ef4e_dcfe_4981_84ebe61759712516" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_EndHeight < i_flt_MinimumHeight) { // }} "" // {{ 1806 1 0 "b73cbe01_0ac4_4e81_91b2da080adc9eae" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_MixDistance = i_arr_FixedHeights.ElementAt( i -1) - i_flt_MinimumHeight; // }} "" // {{ 1807 1 0 "dceea0cb_8017_44b0_b3dd9aec520bd464" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_MixDistance = flt_MixDistance - 0.5; // }} "" // {{ 1808 1 0 "ecf3ef4e_dcfe_4981_84ebe61759712516" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1809 1 0 "998a8396_4bfc_4dd5_a86feb8d97d1982c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_MixDistance < 0.0) { // }} "" // {{ 1810 1 0 "0da3cc37_7629_4ef9_94a33a11f9633199" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MixDistance = 0.0; // }} "" // {{ 1811 1 0 "998a8396_4bfc_4dd5_a86feb8d97d1982c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1812 1 0 "4351f6ca_499a_40cc_946cca7014549074" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_MixDistance.AddAsLast(flt_MixDistance); // }} "" // {{ 1813 1 0 "881a2147_52d9_4516_9b71283d4de0dea9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1814 1 0 "1012a9ca_c922_4416_8a76d383f3f65984" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("mh"), arr_MixDistance, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 1815 1 0 "f911cdee_f023_4444_bcbc58c8c0579e67" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1816 1 0 "098174f5_3b55_44d7_aa72083c022d5661" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1817 1 0 "185d675e_95a8_45a0_83aeea6535a7ce84" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1818 1 0 "78d87a09_7831_44fe_b61d0d0de3c8420a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gi"), Translate("000&")); // }} "" // {{ 1819 1 0 "40aee74f_c780_4cf4_a1016efa8888389f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1820 1 0 "185d675e_95a8_45a0_83aeea6535a7ce84" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1821 1 0 "51d7ba86_f050_4651_a28ec27d1a6b2c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1822 1 0 "f5efee5f_3fd2_416a_bce4b24e732a502b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gj"), Translate("0")); // }} "" // {{ 1823 1 0 "b3e0d34d_e1be_43fb_bf19be1fda18369f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1824 1 0 "51d7ba86_f050_4651_a28ec27d1a6b2c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1825 1 0 "7f897615_b17a_4381_84cd350c604ee2c1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1826 1 0 "6901236f_ae7a_465c_bf5c4b5ff8ac5190" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gk"), Translate("0")); // }} "" // {{ 1827 1 0 "00d141af_8a57_4945_b49e6188d9552db2" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1828 1 0 "7f897615_b17a_4381_84cd350c604ee2c1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1829 1 0 "f6bb6c9a_54a2_401e_a39db5288c445e97" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalParams=arr_Params.GetSize(); // }} "" // {{ 1830 1 0 "221cc6f2_fc7a_48d8_9b0eeaf85016eed4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Params = Translate(""); // }} "" // {{ 1831 1 0 "e418788e_470a_4b32_8f10878f3b1465dc" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalParams;) { i = i + 1; // }} "" // {{{ 1832 1 0 "49a4b0a9_29d8_4c62_a8046f4da0927079" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Params = StrConcat2(str_Params, arr_Params.ElementAt( i -1)); // }} "" // {{ 1833 1 0 "e418788e_470a_4b32_8f10878f3b1465dc" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1834 1 0 "dbaec4c1_4aee_473d_9cdc695886aa3025" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE06(Translate("Firmware Command: "), str_FirmwareCommand, Translate(" : "), str_Params, Translate(""), Translate("")); // }} "" // {{ 1835 1 0 "c119395c_e1eb_410f_9515759216e82081" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE) { // }} "" // {{ 1836 1 0 "843e47b1_e392_4b39_9b1c928002fb44f7" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("843e47b1_e392_4b39_9b1c928002fb44f7"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 1837 1 0 "87aa134a_d11d_4231_833c0644dd214795" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(str_FirmwareCommand, str_ReturnValue, BOOLEON::TRUE); // }} "" // {{ 1838 1 0 "c119395c_e1eb_410f_9515759216e82081" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "PIPMixFromFixedHeight" "End" } // }} "" // {{{ 5 "PIPAspirateFromFixedHeight" "Begin" function PIPAspirateFromFixedHeight( device & ML_STAR, variable i_str_ChannelPattern, variable & i_arr_XCoord[], variable & i_arr_YCoord[], variable & i_arr_FixedHeights[], variable & i_arr_AspirateDistance[], variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_MinimumHeight, variable i_flt_ZBottom, variable i_flt_ContainerDepth, variable i_flt_AspirateVolume, variable i_flt_AspirateSpeed, variable i_flt_TransportAirGap, variable i_flt_BlowoutVolume, variable i_int_SettlingTime, variable i_flt_SwapSpeed, variable i_flt_PullOutDistance ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable str_Params; private variable i; private variable str_FirmwareCommand; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_TotalParams; private variable int_Count; private variable str_ChannelValue; private variable int_Value; private variable str_ChPattern; private variable str_Value; private variable arr_Params[]; private variable flt_LiquidFollow; private variable flt_EndLocation; private variable flt_PullOut; private variable flt_FixHeight; private variable arr_PullOutDistance[]; private variable arr_LiquidFollowing[]; // {{ 5 "PIPAspirateFromFixedHeight" "InitLocals" // }} "" // {{{ 733 1 0 "20655276_4c32_47cc_af661877d68c4384" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 734 1 0 "58a0ce0b_fccc_4995_bf9399d2a85013b6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 735 1 0 "d345a137_09c6_4719_a4b739301adbb987" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 737 1 0 "add921cb_457b_46a6_8175af02b5c7f4d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 738 1 0 "3b635bbb_4445_4b91_ba15d854425b0b56" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 739 1 0 "2299c249_2ee1_4836_a5389fa9b6fdf055" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 740 1 0 "95f7d5c3_79ec_4675_99b8803fd5dc7de3" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 741 1 0 "4d246183_4cde_4394_b51ef01f8bbcbfd7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 742 1 0 "e4f4daed_0d52_44d0_9e57d0e03886189a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 743 1 0 "58a0ce0b_fccc_4995_bf9399d2a85013b6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 744 1 0 "91fed34c_3e6d_413d_b0ba1991dfd3e92b" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Params.SetSize(0); // }} "" // {{ 745 1 0 "959e3f9b_5054_48da_9c252c9a62f059b3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FirmwareCommand = Translate("C0AS"); // }} "" // {{ 746 1 0 "ea2083f4_9d41_49eb_9241f6adb873b8d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 747 1 0 "334ef6b3_8f26_4c7f_999f8e439dc9364c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("at"), Translate("2&")); // }} "" // {{ 748 1 0 "e7cbcaca_a101_4aad_82cea12e18b75657" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 749 1 0 "ea2083f4_9d41_49eb_9241f6adb873b8d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 750 1 0 "ca3738fa_4d7b_4ec9_9928322a3ea35b1a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 751 1 0 "cb091c3a_207c_4f47_a8add9d094690f3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrConcat2(i_str_ChannelPattern, Translate("")); // }} "" // {{{ 752 1 0 "99c9ff16_fc76_4606_83333149e1fa4951" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrFillRight(str_ChPattern, Translate("0"), G_FW_PIP_COM_TotalChannels); // }} "" // {{ 753 1 0 "f8fa7cb6_5da6_4047_ae750202b7d5f7ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Value = Translate("tm"); // }} "" // {{ 754 1 0 "d92de307_a7bc_4116_942972c2998fcc29" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < G_FW_PIP_COM_TotalChannels;) { i = i + 1; // }} "" // {{{ 755 1 0 "523dd5ae_a9e9_423d_ba949717b8dfae6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelValue = StrLeft(str_ChPattern, i); // }} "" // {{{ 756 1 0 "73c1a12a_07b2_4225_a59c339316b3ce43" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelValue = StrRight(str_ChannelValue, 1); // }} "" // {{{ 757 1 0 "8ed0a977_fa98_4ad1_a213660ae0135c5a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(str_Value, str_ChannelValue); // }} "" // {{ 758 1 0 "2f85c017_81a3_4c7d_b3f445e1b94d6bd4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i < G_FW_PIP_COM_TotalChannels) { // }} "" // {{{ 759 1 0 "7a70ca60_b0fe_47d4_ac499550658a3ed0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(str_Value, Translate(" ")); // }} "" // {{ 760 1 0 "2f85c017_81a3_4c7d_b3f445e1b94d6bd4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 761 1 0 "d92de307_a7bc_4116_942972c2998fcc29" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 762 1 0 "0ce9459e_5d61_4e9a_af1999a4fb6f3359" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 763 1 0 "ca3738fa_4d7b_4ec9_9928322a3ea35b1a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 764 1 0 "20ed56f1_9697_46f5_9eed05e18e19b709" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 765 1 0 "26615a4d_44bf_496b_837f83aa7a2b15d6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("xp"), i_arr_XCoord, 10.0, 5, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 766 1 0 "4cdee343_dfc8_4a20_b078089cdd65c6db" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 767 1 0 "20ed56f1_9697_46f5_9eed05e18e19b709" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 768 1 0 "084b6850_1b46_4363_825a75dee3b572fe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 769 1 0 "ea55ba00_d58a_4cfc_acdbee80a75a41d3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("yp"), i_arr_YCoord, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 770 1 0 "8eb978d6_aaf5_4b28_9a7c26f5d8e7548d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 771 1 0 "084b6850_1b46_4363_825a75dee3b572fe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 772 1 0 "51a8a62a_1513_4f8f_b7bd1d5ec46f98cb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 773 1 0 "57313ad3_aafd_475d_971b3198be54158f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("th"), i_flt_StartTraverseHeight, 10.0, 4, str_Value); // }} "" // {{ 774 1 0 "0d0e1efb_8f80_4960_a3fbfe6a074eedaf" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 775 1 0 "51a8a62a_1513_4f8f_b7bd1d5ec46f98cb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 776 1 0 "6161e81a_ba1c_44d7_8c5d7798b5cc6d57" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 777 1 0 "d132278b_00d0_4c32_b25df0ee73d9de76" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("te"), i_flt_EndTranverseHeight, 10.0, 4, str_Value); // }} "" // {{ 778 1 0 "cb929e94_a212_4e33_97659d2af05b8d1c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 779 1 0 "6161e81a_ba1c_44d7_8c5d7798b5cc6d57" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 780 1 0 "30a0e019_9425_46e1_bdd0c2bc341ffb15" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 781 1 0 "e905f5f9_401f_4374_a227c5c6a60d6db0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("lp"), 245.0, 10.0, 4, str_Value); // }} "" // {{ 782 1 0 "3b219c90_8d75_4de5_8b17d678d9e93524" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 783 1 0 "30a0e019_9425_46e1_bdd0c2bc341ffb15" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 784 1 0 "c9e4df96_4acd_4426_9a3eea9214e5b197" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 785 1 0 "fe293acd_62eb_489f_911d7ecae9fa7eff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("zl"), i_arr_FixedHeights, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 786 1 0 "8358f245_a42d_4c88_8997a0e06859d28a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 787 1 0 "c9e4df96_4acd_4426_9a3eea9214e5b197" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 788 1 0 "4c075639_fd3f_4058_8219a9c61520c301" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 789 1 0 "ae0caf16_f0b3_455c_b830717550f7f192" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_PullOutDistance.SetSize(0); // }} "" // {{ 790 1 0 "ef613f55_65bb_4b62_8ff1aa341b54dfa8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < G_FW_PIP_COM_TotalChannels;) { i = i + 1; // }} "" // {{ 791 1 0 "1382a0a9_543c_49a5_a6fd441c570a46e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 792 1 0 "a6828413_2471_4f7a_952c98fb511a7bb5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollow = i_arr_AspirateDistance.ElementAt( i -1); // }} "" // {{ 793 1 0 "3ef188c7_9467_451c_ab1f06ead5affac0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndLocation = i_arr_FixedHeights.ElementAt( i -1) - 0.0; // }} "" // {{ 794 1 0 "8b4f8d03_bd7f_4af5_b1b68923d49ffb94" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndLocation = flt_EndLocation - flt_LiquidFollow; // }} "" // {{ 795 1 0 "5dc51645_95cd_4d1c_9cf17045c68b4e19" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_EndLocation < i_flt_MinimumHeight) { // }} "" // {{ 796 1 0 "6e11104b_16f9_4d45_94a2984ece3049b2" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndLocation = i_flt_MinimumHeight + 0.5; // }} "" // {{ 797 1 0 "5dc51645_95cd_4d1c_9cf17045c68b4e19" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 798 1 0 "2139a5fa_7ce2_4468_ba3ab7e4176fc296" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollow = i_arr_AspirateDistance.ElementAt( i -1) - flt_LiquidFollow; // }} "" // {{ 799 1 0 "f055be9d_3627_4581_9862efd82f9c6513" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_LiquidFollow < 0.0) { // }} "" // {{ 800 1 0 "7df11862_62d7_4810_859283f51bf15948" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollow = 0.0; // }} "" // {{ 801 1 0 "f055be9d_3627_4581_9862efd82f9c6513" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 802 1 0 "4b20dc6a_c3b1_4b67_86f7d76be9d382fb" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_PullOut = flt_LiquidFollow + i_flt_PullOutDistance; // }} "" // {{ 803 1 0 "1382a0a9_543c_49a5_a6fd441c570a46e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 804 1 0 "ff13008b_9522_40da_8729cb5f1ec5aa4d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_PullOutDistance.AddAsLast(flt_PullOut); // }} "" // {{ 805 1 0 "ef613f55_65bb_4b62_8ff1aa341b54dfa8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 806 1 0 "f2524f64_d07e_4592_8cbe853b55b9638c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("po"), arr_PullOutDistance, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 807 1 0 "f2596fbc_5424_4cb0_8a98f9d4d84fc18a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 808 1 0 "4c075639_fd3f_4058_8219a9c61520c301" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 809 1 0 "0ef67afc_7874_42a7_9b5aaf3945a8b3f5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 810 1 0 "b885e72f_8b1c_452f_87a25cece3cd65a7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("zx"), i_flt_MinimumHeight, 10.0, 4, str_Value); // }} "" // {{ 811 1 0 "fe1920c6_a99f_4531_b96e88fd2b7083c6" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 812 1 0 "0ef67afc_7874_42a7_9b5aaf3945a8b3f5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 813 1 0 "66ea33ff_7e72_4e81_a29f7d53ff9208aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 814 1 0 "e050e20a_1c68_4bf1_af615b66119d0958" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ip"), 0.0, 10.0, 4, str_Value); // }} "" // {{ 815 1 0 "a054e4bb_1b0b_4e71_af592664fdd39fd4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 816 1 0 "66ea33ff_7e72_4e81_a29f7d53ff9208aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 817 1 0 "84fcc306_4052_459a_9250821c9a8497c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 818 1 0 "62c70ecb_b03a_4317_93363a7b61b5c930" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_LiquidFollowing.SetSize(0); // }} "" // {{ 819 1 0 "62271d5b_4d4e_4915_937208b0c20eac32" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < G_FW_PIP_COM_TotalChannels;) { i = i + 1; // }} "" // {{ 820 1 0 "4f08e9ef_1226_45b7_b5c6f77b9a2d72b0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollow = i_arr_AspirateDistance.ElementAt( i -1); // }} "" // {{ 821 1 0 "1a7a62b3_aba3_4c8e_a88026c880251868" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_FixHeight = i_arr_FixedHeights.ElementAt( i -1) + i_flt_ZBottom; // }} "" // {{ 822 1 0 "4419eabb_49c2_4b51_b952ea620a87fe1f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndLocation = flt_FixHeight - flt_LiquidFollow; // }} "" // {{ 823 1 0 "573e2daf_f306_4b89_895c9acdf5afe55c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_EndLocation < i_flt_MinimumHeight) { // }} "" // {{ 824 1 0 "e88c6b03_5c04_4d0a_a507841a19bbe9f9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndLocation = i_flt_MinimumHeight + 0.0; // }} "" // {{ 825 1 0 "573e2daf_f306_4b89_895c9acdf5afe55c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 826 1 0 "cb7e1a90_2f59_457f_9d167c199af34995" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollow = flt_FixHeight - flt_EndLocation; // }} "" // {{ 827 1 0 "ae5a672c_e54a_4166_86acc56d5127776e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_LiquidFollow < 0.0) { // }} "" // {{ 828 1 0 "cd1be0c2_d62b_4bc9_926afcb676bdc0db" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollow = 0.0; // }} "" // {{ 829 1 0 "ae5a672c_e54a_4166_86acc56d5127776e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 830 1 0 "0518d8c5_9536_4291_a92e6bd0018c49d9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_LiquidFollowing.AddAsLast(flt_LiquidFollow); // }} "" // {{ 831 1 0 "62271d5b_4d4e_4915_937208b0c20eac32" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 832 1 0 "04a2039d_8cbb_4e45_a65cf1d66b659d8b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("fp"), arr_LiquidFollowing, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 833 1 0 "860e1777_bf41_4513_b90d4d9b82789a0e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 834 1 0 "84fcc306_4052_459a_9250821c9a8497c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 835 1 0 "1cfb22cb_c264_4f03_ad3f21690e321b66" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 836 1 0 "41514075_1d5a_4180_af5f5277d6a02720" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("av"), i_flt_AspirateVolume, 10.0, 5, str_Value); // }} "" // {{ 837 1 0 "94c9b8f7_0835_4908_a67359a18e4da95b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 838 1 0 "1cfb22cb_c264_4f03_ad3f21690e321b66" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 839 1 0 "3cd14530_9f21_4968_b95fa707bc5b9b71" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 840 1 0 "971a64cc_43c2_4236_ab1e217062894e47" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("as"), i_flt_AspirateSpeed, 10.0, 4, str_Value); // }} "" // {{ 841 1 0 "4f99d000_9d8e_46ec_91a0b210e51e628c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 842 1 0 "3cd14530_9f21_4968_b95fa707bc5b9b71" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 843 1 0 "35975e44_d9b5_42b2_a00f04db8e13aa8b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 844 1 0 "bb205802_d11e_4787_9fe55977d62ef9e7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ta"), i_flt_TransportAirGap, 10.0, 3, str_Value); // }} "" // {{ 845 1 0 "ae676529_c4c0_4d67_9783a7dc8b4eb191" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 846 1 0 "35975e44_d9b5_42b2_a00f04db8e13aa8b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 847 1 0 "161041a7_af1a_448c_bd574ba1ae14ab46" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 848 1 0 "fdaa99bc_85f0_48eb_9a84ca6f5323b291" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ba"), i_flt_BlowoutVolume, 10.0, 4, str_Value); // }} "" // {{ 849 1 0 "1c84b2e9_4929_4a6b_ab49e1ce159a8955" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 850 1 0 "161041a7_af1a_448c_bd574ba1ae14ab46" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 851 1 0 "15c6bd20_6fcb_478e_9f0c33b38ade9ca4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 852 1 0 "4f7628b0_1495_4ece_b5687a3007bed104" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("oa"), 0.0, 10.0, 3, str_Value); // }} "" // {{ 853 1 0 "c2055664_7b82_45fc_b2fdd22c07548d9a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 854 1 0 "15c6bd20_6fcb_478e_9f0c33b38ade9ca4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 855 1 0 "0075a9c4_d275_4f32_a90b936a3c65d489" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 856 1 0 "c5c3b301_658d_4c32_9ea2f3e1e2e1d3db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("lm"), Translate("")); // }} "" // {{{ 857 1 0 "b8cd44fa_74f0_4487_892c1ae30e9a5c32" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrConcat2(0, Translate("")); // }} "" // {{{ 858 1 0 "51351611_bd36_454f_a93def1525cac777" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat4(str_Value, int_Value, Translate("&"), Translate("")); // }} "" // {{ 859 1 0 "86194fc9_06bf_4462_b7d8235be70ef7f7" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 860 1 0 "0075a9c4_d275_4f32_a90b936a3c65d489" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 861 1 0 "61b57297_bd4a_4a6b_afea250e7b9b1bdd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 862 1 0 "166934f4_b4bb_41fe_87653aa9cb0bcf07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("ll"), Translate("")); // }} "" // {{{ 863 1 0 "8b481448_b0cb_4ba6_830a17c6d99fd308" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrConcat2(1, Translate("")); // }} "" // {{{ 864 1 0 "de4042be_7bb6_43eb_b5d888c6749cf444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat4(str_Value, int_Value, Translate("&"), Translate("")); // }} "" // {{ 865 1 0 "b4cd4cc4_8654_492a_af0839d89516b609" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 866 1 0 "61b57297_bd4a_4a6b_afea250e7b9b1bdd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 867 1 0 "415556cd_e82f_41e7_a2aca3d0b171b1a9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 868 1 0 "3a75a3e0_2fe7_44eb_ba195ff0385415af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("de"), i_flt_SwapSpeed, 10.0, 4, str_Value); // }} "" // {{ 869 1 0 "6d74db5d_b74c_4e1d_8803d638b739a57b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 870 1 0 "415556cd_e82f_41e7_a2aca3d0b171b1a9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 871 1 0 "52bdd868_4768_4085_add44b68067f68cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 872 1 0 "77ad3181_751b_4765_80fc9ad5e3aaba6e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("wt"), i_int_SettlingTime, 10.0, 2, str_Value); // }} "" // {{ 873 1 0 "657d4db8_13ad_4e7d_9d84e1b1558c619e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 874 1 0 "52bdd868_4768_4085_add44b68067f68cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 875 1 0 "6cbcddfc_2a18_4c89_a6933c231baefa43" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 876 1 0 "eff10d4e_f1b5_4ca5_a356a7ad25e76b25" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mv"), 0.0, 10.0, 5, str_Value); // }} "" // {{ 877 1 0 "37525ad3_ba83_4fda_93b38eca646763fd" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 878 1 0 "6cbcddfc_2a18_4c89_a6933c231baefa43" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 879 1 0 "b7838a97_28e7_47f8_b7e8b744793c23c4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 880 1 0 "b0eecb9d_78d0_4d1f_bb2d1ae68a6d796a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mc"), 0, 1, 2, str_Value); // }} "" // {{ 881 1 0 "cc28ca0a_cb4e_4d6e_94fdfa7fcd52f64c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 882 1 0 "b7838a97_28e7_47f8_b7e8b744793c23c4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 883 1 0 "0b7cf5ca_caee_4ca6_98bcfa8d7e5ccba9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 884 1 0 "f4e9e496_d8bf_45b2_9c3cbc71fb6d8b7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mp"), 0.0, 10.0, 3, str_Value); // }} "" // {{ 885 1 0 "18012e18_8d12_40be_a4dce1f0127a3b7c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 886 1 0 "0b7cf5ca_caee_4ca6_98bcfa8d7e5ccba9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 887 1 0 "ebd6598f_fa00_4881_bc51086c4d8868c1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 888 1 0 "1fdd47e5_49c7_4b1e_81e32fdba938cc27" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ms"), 10.0, 10.0, 4, str_Value); // }} "" // {{ 889 1 0 "7c565be1_c872_47ac_a4e9232f32ffce2b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 890 1 0 "ebd6598f_fa00_4881_bc51086c4d8868c1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 891 1 0 "f433f55f_47b0_4fd7_a4ea539fa42655eb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 892 1 0 "d6d8cdd6_bd6c_45fc_82f550a41066d3fc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mh"), 0.0, 10.0, 4, str_Value); // }} "" // {{ 893 1 0 "f822dd08_614b_4c09_9af0979c25d4e580" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 894 1 0 "f433f55f_47b0_4fd7_a4ea539fa42655eb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 895 1 0 "48d89881_4cf4_411c_b1ae0fd85a475176" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 896 1 0 "7ad13ace_36af_4539_818090e0acc27abf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gi"), Translate("000&")); // }} "" // {{ 897 1 0 "c5dc3474_8ee7_449f_90aa75c7ca77781c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 898 1 0 "48d89881_4cf4_411c_b1ae0fd85a475176" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 899 1 0 "1d8f6778_063b_4aed_82914d80f8b7ddf7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 900 1 0 "659e8a4e_8a13_4b8a_975a44ac8829a8d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gj"), Translate("0")); // }} "" // {{ 901 1 0 "28cea189_a94c_4056_a48a28d016b891c8" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 902 1 0 "1d8f6778_063b_4aed_82914d80f8b7ddf7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 903 1 0 "c1bd976c_1ace_4f35_a8e6ed11483810dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 904 1 0 "a292ed52_c51e_4663_9cd52cfd147f5b59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gk"), Translate("0")); // }} "" // {{ 905 1 0 "f2e2ea46_0544_4875_96ab8b21c7fbeedd" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 906 1 0 "c1bd976c_1ace_4f35_a8e6ed11483810dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 907 1 0 "e784a74f_1ed2_4696_8a9562f9c5496087" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalParams=arr_Params.GetSize(); // }} "" // {{ 908 1 0 "ce173261_1089_457f_858b30d62be24609" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Params = Translate(""); // }} "" // {{ 909 1 0 "cda66be3_266d_4c93_8da351c946827004" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalParams;) { i = i + 1; // }} "" // {{{ 910 1 0 "d8e0c0f2_8350_4da2_9d4aff480541287a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Params = StrConcat2(str_Params, arr_Params.ElementAt( i -1)); // }} "" // {{ 911 1 0 "cda66be3_266d_4c93_8da351c946827004" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 912 1 0 "391c08fc_1d44_48c8_887beb7709247f0a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE06(Translate("Firmware Command: "), str_FirmwareCommand, Translate(" : "), str_Params, Translate(""), Translate("")); // }} "" // {{ 913 1 0 "641dae10_3ad1_4b74_a23ffa48629d0159" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE) { // }} "" // {{ 914 1 0 "fef11d3a_6c3d_4296_acaf454a9754ddf4" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("fef11d3a_6c3d_4296_acaf454a9754ddf4"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 915 1 0 "018a2e55_735b_43fd_92f684f0ae1b54fd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(str_FirmwareCommand, str_ReturnValue, BOOLEON::TRUE); // }} "" // {{ 916 1 0 "641dae10_3ad1_4b74_a23ffa48629d0159" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 917 1 0 "07ee5779_f3e8_4122_93b5f730d9b8db4a" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("07ee5779_f3e8_4122_93b5f730d9b8db4a"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 918 1 0 "641dae10_3ad1_4b74_a23ffa48629d0159" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "PIPAspirateFromFixedHeight" "End" } // }} "" // {{{ 5 "PIPDispenseFromFixedHeight" "Begin" function PIPDispenseFromFixedHeight( device & ML_STAR, variable i_str_ChannelPattern, variable i_int_DispenseMode, variable & i_arr_XCoord[], variable & i_arr_YCoord[], variable & i_arr_FixedHeights[], variable & i_arr_DispenseDistance[], variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_MinimumHeight, variable i_flt_ZBottom, variable i_flt_DispenseVolume, variable i_flt_DispenseSpeed, variable i_flt_CutOffSpeed, variable i_flt_StopBackVolume, variable i_flt_TransportAirGap, variable i_flt_BlowoutVolume, variable i_int_SettlingTime, variable i_flt_SwapSpeed, variable i_flt_PullOutDistance, variable i_flt_MaximumHeight ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable str_FirmwareCommand; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable arr_Params[]; private variable str_Value; private variable i; private variable str_ChannelValue; private variable str_ChPattern; private variable int_Value; private variable flt_EndLocation; private variable flt_LiquidFollow; private variable flt_PullOut; private variable str_ReturnValue; private variable str_Params; private variable int_TotalParams; private variable int_DispenseMode; private variable arr_PullOutDistance[]; // {{ 5 "PIPDispenseFromFixedHeight" "InitLocals" // }} "" // {{{ 1105 1 0 "aae08fbb_6f48_4ea8_8af94988af63e95c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 1106 1 0 "970d0915_2377_4a1d_8edbf181ec09559c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1107 1 0 "26649af4_d3bd_408d_a24362aa778602e3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1109 1 0 "3d29927a_2ec6_40f1_b6eb6299b604060c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 1110 1 0 "92a17b4c_1edd_4183_a88b41c0930b193f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1111 1 0 "dbdfea83_b3ea_45fc_b34eb776de0d7c4d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 1112 1 0 "7f7e80b2_b06d_469c_abedfbbb6896c955" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1113 1 0 "42f694d3_1672_4a3f_ad87c4d577694944" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 1114 1 0 "d8704886_2519_4c17_8061b15dd09805fd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 1115 1 0 "970d0915_2377_4a1d_8edbf181ec09559c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1116 1 0 "e74d7a47_8850_40b8_b5cc2ece8921430b" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Params.SetSize(0); // }} "" // {{ 1117 1 0 "54d2b5e5_1110_43be_8456ed701671be5a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FirmwareCommand = Translate("C0DS"); // }} "" // {{ 1118 1 0 "f7c8aca9_9e7e_4cc9_92b1b8bee4b058b7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1119 1 0 "116185e2_91e7_4268_bb8e0dedc8dcd111" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 1; // }} "" // {{ 1120 1 0 "c139be19_c25e_4f44_acdce82706b0f61b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_DispenseMode == 0) { // }} "" // {{ 1121 1 0 "35477bcf_c3bd_43a6_abccad335b7e8c9e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 0; // }} "" // {{ 1122 1 0 "c139be19_c25e_4f44_acdce82706b0f61b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1123 1 0 "b56bc348_dac8_410e_8bb9ed17f828eb41" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_DispenseMode == 1) { // }} "" // {{ 1124 1 0 "2411b75a_4c70_481b_98b82ffe16d85515" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 2; // }} "" // {{ 1125 1 0 "b56bc348_dac8_410e_8bb9ed17f828eb41" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1126 1 0 "2ce59cd6_f9ac_4a65_81adb92fa51a90f5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_DispenseMode == 2) { // }} "" // {{ 1127 1 0 "d8413aeb_951c_464d_bc7ca67220670a1a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 0; // }} "" // {{ 1128 1 0 "2ce59cd6_f9ac_4a65_81adb92fa51a90f5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1129 1 0 "56a718b0_ab8c_4575_9b0c722ff9f14a57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_DispenseMode == 3) { // }} "" // {{ 1130 1 0 "15e9472f_c453_4b76_ad8f580361acec94" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 1; // }} "" // {{ 1131 1 0 "56a718b0_ab8c_4575_9b0c722ff9f14a57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1132 1 0 "9fc4fbb4_c642_49a4_a87cb018183f2b46" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_DispenseMode == 4) { // }} "" // {{ 1133 1 0 "1cd66237_48b5_4dd6_a89bc4e437967b28" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 2; // }} "" // {{ 1134 1 0 "9fc4fbb4_c642_49a4_a87cb018183f2b46" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1135 1 0 "991c5b90_2af0_48cb_92c78c62488df683" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_DispenseMode == 5) { // }} "" // {{ 1136 1 0 "be359f4c_3ac8_4ef3_bff8d41f8a5095fa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 3; // }} "" // {{ 1137 1 0 "991c5b90_2af0_48cb_92c78c62488df683" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1138 1 0 "4a47bf00_dd1e_44c9_8979e170994c7f7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_DispenseMode == 6) { // }} "" // {{ 1139 1 0 "918ee23a_462e_4538_85400efb27d8344a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 4; // }} "" // {{ 1140 1 0 "4a47bf00_dd1e_44c9_8979e170994c7f7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1141 1 0 "3b0d64fe_b945_4e09_939201edaf38da52" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat4(Translate("dm"), int_DispenseMode, Translate("&"), Translate("")); // }} "" // {{ 1142 1 0 "9f9d4135_8bd2_413d_b016a6180c0f125e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1143 1 0 "f7c8aca9_9e7e_4cc9_92b1b8bee4b058b7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1144 1 0 "645355bf_2888_4bfa_aea0347285f81f83" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1145 1 0 "e760f805_3491_4197_b7c254d764927d2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrConcat2(i_str_ChannelPattern, Translate("")); // }} "" // {{{ 1146 1 0 "6aecb619_e366_4996_b4058e845b16e4f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrFillRight(str_ChPattern, Translate("0"), G_FW_PIP_COM_TotalChannels); // }} "" // {{ 1147 1 0 "6b1e2614_efec_46d4_996e9aaf62253032" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Value = Translate("tm"); // }} "" // {{ 1148 1 0 "afb38f9a_6c58_40c5_9d8882f7939d520d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < G_FW_PIP_COM_TotalChannels;) { i = i + 1; // }} "" // {{{ 1149 1 0 "50cbf850_ee93_4cb3_9085ae8d352dda0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelValue = StrLeft(str_ChPattern, i); // }} "" // {{{ 1150 1 0 "7e51c3d5_6014_4d13_a20b35016664b30e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelValue = StrRight(str_ChannelValue, 1); // }} "" // {{{ 1151 1 0 "eee33b2a_944b_405e_aaedc7fca3c5f2f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(str_Value, str_ChannelValue); // }} "" // {{ 1152 1 0 "129b2db5_0709_49e3_a843bb761e817ad3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i < G_FW_PIP_COM_TotalChannels) { // }} "" // {{{ 1153 1 0 "66bfb8a2_cebd_4f31_88421dd30ea77f8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(str_Value, Translate(" ")); // }} "" // {{ 1154 1 0 "129b2db5_0709_49e3_a843bb761e817ad3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1155 1 0 "afb38f9a_6c58_40c5_9d8882f7939d520d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1156 1 0 "ac9e21c5_b13b_4562_b78f52a080059177" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1157 1 0 "645355bf_2888_4bfa_aea0347285f81f83" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1158 1 0 "3928179e_c49a_4622_90ecb82d3fec70f2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1159 1 0 "79794b82_e7e5_4aa8_b0d45b5e6dce033e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("xp"), i_arr_XCoord, 10.0, 5, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 1160 1 0 "e0e4b118_9443_47a0_b8a4f1945fda9263" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1161 1 0 "3928179e_c49a_4622_90ecb82d3fec70f2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1162 1 0 "dc60bcb1_1c1b_4391_867211a2a2c40bf5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1163 1 0 "f2b5dab0_956d_4ccc_815491b27aee9cde" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("yp"), i_arr_YCoord, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 1164 1 0 "3cb532ce_5507_4aa4_921d551b64287019" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1165 1 0 "dc60bcb1_1c1b_4391_867211a2a2c40bf5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1166 1 0 "c657cda0_67a8_4a75_a2f36f92880156f2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1167 1 0 "9ebba764_7284_4359_9905e25e55e1cea6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("zx"), i_flt_MinimumHeight, 10.0, 4, str_Value); // }} "" // {{ 1168 1 0 "1385feca_308f_4c9d_ad380d7782ec63b9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1169 1 0 "c657cda0_67a8_4a75_a2f36f92880156f2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1170 1 0 "d215a340_1ed5_4c57_835e597b1565f282" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1171 1 0 "6fb70c91_395e_48e7_a131ba1fbaeafb0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("th"), i_flt_StartTraverseHeight, 10.0, 4, str_Value); // }} "" // {{ 1172 1 0 "c30d489b_c2cf_4113_933fb25eb09f8e00" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1173 1 0 "d215a340_1ed5_4c57_835e597b1565f282" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1174 1 0 "fbdbbd3d_2cb5_43ab_860c041ee539c6f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1175 1 0 "1b03f175_aa0f_41c1_96a46cd86dc5609b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("te"), i_flt_EndTranverseHeight, 10.0, 4, str_Value); // }} "" // {{ 1176 1 0 "0567da72_39a1_4831_af6622f4795ff50a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1177 1 0 "fbdbbd3d_2cb5_43ab_860c041ee539c6f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1178 1 0 "ff674d79_4b12_426c_a7ef2188522fd718" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1179 1 0 "b9efc8f5_1fbb_423c_92531542ed2bca29" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("lp"), 245.0, 10.0, 4, str_Value); // }} "" // {{ 1180 1 0 "74115666_3ff1_4418_b5163e8cd15fc4ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1181 1 0 "ff674d79_4b12_426c_a7ef2188522fd718" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1182 1 0 "847609b4_5665_4ed2_afc694188e9c7479" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1183 1 0 "3e8b6592_3a20_4708_8a78a4e2898ea19f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("zl"), i_arr_FixedHeights, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 1184 1 0 "90e4e61f_13bf_4cc8_bc62644026b173c7" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1185 1 0 "847609b4_5665_4ed2_afc694188e9c7479" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1186 1 0 "90342ece_4c6b_4586_a88eccca4ddc4269" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1187 1 0 "2e22546f_fa30_4c21_b50751c161c8240c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_PullOutDistance.SetSize(0); // }} "" // {{ 1188 1 0 "2fb420e8_81b2_4c8c_b2e9613093e8189b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < G_FW_PIP_COM_TotalChannels;) { i = i + 1; // }} "" // {{ 1189 1 0 "7f910433_6505_4c9f_90eba49d26694178" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollow = i_arr_DispenseDistance.ElementAt( i -1); // }} "" // {{ 1190 1 0 "486aa89b_4603_4f08_b2176d5971778b02" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndLocation = i_arr_FixedHeights.ElementAt( i -1) - 0.0; // }} "" // {{ 1191 1 0 "42cb3a3a_170b_4d3e_84e6e93d9b3fa7de" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndLocation = flt_EndLocation + flt_LiquidFollow; // }} "" // {{ 1192 1 0 "59ef67f4_5ebe_4547_8c5390dc91bfdf4a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndLocation = flt_EndLocation + i_flt_PullOutDistance; // }} "" // {{ 1193 1 0 "4af62ff4_cec0_4269_b9109dd915d1688b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_EndLocation > i_flt_MaximumHeight) { // }} "" // {{ 1194 1 0 "a4a020df_170f_4d5d_82efab73313e8fdd" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndLocation = i_flt_MaximumHeight - 0.5; // }} "" // {{ 1195 1 0 "4af62ff4_cec0_4269_b9109dd915d1688b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1196 1 0 "4cc6e44e_357e_4342_861ede9ac2c3c8f2" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_PullOut = flt_EndLocation + 0.0; // }} "" // {{ 1197 1 0 "0dd8798b_79b8_42e3_bc47c5f7d790d50c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_PullOut = flt_PullOut - flt_LiquidFollow; // }} "" // {{ 1198 1 0 "90b840ad_9a81_40d9_962087c3f9495fd5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_PullOut = flt_PullOut - i_arr_FixedHeights.ElementAt( i -1); // }} "" // {{ 1199 1 0 "86baedbd_c250_48ff_b4310649d0264411" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_PullOut < 0.0) { // }} "" // {{ 1200 1 0 "cb31f331_a41a_40ce_9d6a51962c9b75f3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_PullOut = 0.0; // }} "" // {{ 1201 1 0 "86baedbd_c250_48ff_b4310649d0264411" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1202 1 0 "a4b8aed6_35b1_4c3e_8d3d8e415ded46b4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_PullOutDistance.AddAsLast(flt_PullOut); // }} "" // {{ 1203 1 0 "2fb420e8_81b2_4c8c_b2e9613093e8189b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1204 1 0 "927184eb_341c_43de_a4b857abcc83627c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("po"), arr_PullOutDistance, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 1205 1 0 "e123df16_9080_4a13_8d6a0414f7717284" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1206 1 0 "90342ece_4c6b_4586_a88eccca4ddc4269" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1207 1 0 "6e42d6df_eb82_4deb_81487939713adacb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1208 1 0 "ab2d3376_d54b_4aec_837fced1e9822708" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ip"), 0.0, 10.0, 4, str_Value); // }} "" // {{ 1209 1 0 "906469f1_6849_47cf_ba8e84854c715086" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1210 1 0 "6e42d6df_eb82_4deb_81487939713adacb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1211 1 0 "4bd4d566_09d3_4eeb_ae51b407e5edd648" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1212 1 0 "e2771e3b_b1a3_4496_b0502857533a02af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("fp"), i_arr_DispenseDistance, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 1213 1 0 "08fd3775_f1e6_4f39_8119960761d60f4a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1214 1 0 "4bd4d566_09d3_4eeb_ae51b407e5edd648" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1215 1 0 "9bb18d61_9f92_468d_9ba22b061cb87513" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1216 1 0 "6f96864e_13f7_4996_bc0a57f6c6105360" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("dv"), i_flt_DispenseVolume, 10.0, 5, str_Value); // }} "" // {{ 1217 1 0 "9bc03bc5_6f82_4ad4_b95a35bc53f7319c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1218 1 0 "9bb18d61_9f92_468d_9ba22b061cb87513" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1219 1 0 "5b4536c1_05e1_4f3d_8d6fed936c8d1076" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1220 1 0 "334387ff_6e86_473a_a1a1d399f4ab6a70" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ds"), i_flt_DispenseSpeed, 10.0, 4, str_Value); // }} "" // {{ 1221 1 0 "d4b4ce63_50b4_46a2_98b5044bb934ed50" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1222 1 0 "5b4536c1_05e1_4f3d_8d6fed936c8d1076" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1223 1 0 "10674c74_91d8_4eb0_a9f511fb67c290ec" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1224 1 0 "2fca4f21_55d7_485f_b2ea7dc0c8141742" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ss"), i_flt_CutOffSpeed, 10.0, 4, str_Value); // }} "" // {{ 1225 1 0 "6f3ee5a1_1e5c_464e_a0e97def45a36f0b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1226 1 0 "10674c74_91d8_4eb0_a9f511fb67c290ec" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1227 1 0 "2d3f375f_4e6b_4dff_aa4441a41adf9c9e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1228 1 0 "9e522df7_1d81_4860_91a7d59bfb1f585f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("rv"), i_flt_StopBackVolume, 10.0, 3, str_Value); // }} "" // {{ 1229 1 0 "7d4b77ff_35b0_4677_b0e3138d71be6d8f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1230 1 0 "2d3f375f_4e6b_4dff_aa4441a41adf9c9e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1231 1 0 "bf129f6d_e03a_4fa3_ae7ae6b0fecef6a8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1232 1 0 "970f24f2_0529_4784_b70736cdf6dd60f1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ta"), i_flt_TransportAirGap, 10.0, 3, str_Value); // }} "" // {{ 1233 1 0 "3c010810_892c_4b4c_b25b1dc8c965a3ec" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1234 1 0 "bf129f6d_e03a_4fa3_ae7ae6b0fecef6a8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1235 1 0 "6061753c_cb73_495f_9997c6ed0729fda4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1236 1 0 "b544a336_f976_4e62_a8cff65ed76dfc0c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ba"), i_flt_BlowoutVolume, 10.0, 4, str_Value); // }} "" // {{ 1237 1 0 "55f1f238_61b3_4e5b_b4dfc985839a646d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1238 1 0 "6061753c_cb73_495f_9997c6ed0729fda4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1239 1 0 "a46062d2_d0e1_43b4_9ac6749337c65a11" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1240 1 0 "d2224e13_b6e6_421b_b5578b1145257546" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("lm"), Translate("")); // }} "" // {{{ 1241 1 0 "5240ddc4_d3cf_4f72_954e3ebcdacbd307" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrConcat2(0, Translate("")); // }} "" // {{{ 1242 1 0 "8d333774_fe4d_416b_afaae1d092371b8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat4(str_Value, int_Value, Translate("&"), Translate("")); // }} "" // {{ 1243 1 0 "c8c16037_40d1_4cdd_84ad22c14233fb40" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1244 1 0 "a46062d2_d0e1_43b4_9ac6749337c65a11" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1245 1 0 "a4bec335_e315_4dc8_9c4cfb7ab1ec0d93" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1246 1 0 "3a9a13a6_1028_4c34_8ff048ce070d24db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("ll"), Translate("")); // }} "" // {{{ 1247 1 0 "531368ff_68c4_4ae7_b70b7a7d17ca9f7b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrConcat2(1, Translate("")); // }} "" // {{{ 1248 1 0 "8dd7f90d_9e57_488e_89048efbb79d89e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat4(str_Value, int_Value, Translate("&"), Translate("")); // }} "" // {{ 1249 1 0 "e7bc76dd_3d32_4303_a0aa77edac5e9bb9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1250 1 0 "a4bec335_e315_4dc8_9c4cfb7ab1ec0d93" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1251 1 0 "47c74384_f24d_4b07_a5fa91777f6d492c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1252 1 0 "e083f3d6_9ce6_4dfd_bb6a04355d64b64f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("de"), i_flt_SwapSpeed, 10.0, 4, str_Value); // }} "" // {{ 1253 1 0 "5c953267_f760_49a6_aee8d352774b85e5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1254 1 0 "47c74384_f24d_4b07_a5fa91777f6d492c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1255 1 0 "6a2f714f_def7_4bc2_a1f83dd0586acec9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1256 1 0 "85aaedc1_a273_49f4_8eb286a549d33b0b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("wt"), i_int_SettlingTime, 10.0, 2, str_Value); // }} "" // {{ 1257 1 0 "7c397c25_5fc1_4b67_91457ff026284165" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1258 1 0 "6a2f714f_def7_4bc2_a1f83dd0586acec9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1259 1 0 "f53dd4fc_08fa_4bee_b39caba107d27cb0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1260 1 0 "12ead56e_2517_441c_a28b90d8aa7b73e1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mv"), 0.0, 10.0, 5, str_Value); // }} "" // {{ 1261 1 0 "3d91ae8c_6d15_4348_bdafd19ea49a8fd4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1262 1 0 "f53dd4fc_08fa_4bee_b39caba107d27cb0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1263 1 0 "a0eebc7e_ac51_4834_abcc981793f4b680" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1264 1 0 "b2a1f2a9_36d6_4dad_a32b81ce5b8858e1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mc"), 0, 1, 2, str_Value); // }} "" // {{ 1265 1 0 "85d591a8_9383_4805_81a98955b4abf25b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1266 1 0 "a0eebc7e_ac51_4834_abcc981793f4b680" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1267 1 0 "8a291632_8eca_4e08_8cdf27a6cedeec13" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1268 1 0 "1f9785eb_2001_40cb_9473b567e20ec365" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mp"), 0.0, 10.0, 3, str_Value); // }} "" // {{ 1269 1 0 "847c778a_ac1b_4aee_81d00ab9b83fc46a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1270 1 0 "8a291632_8eca_4e08_8cdf27a6cedeec13" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1271 1 0 "15c29705_93bd_4b97_a739c2af86140b30" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1272 1 0 "71fd6a05_a86e_40d6_b700c515ddb3c9a5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ms"), 10.0, 10.0, 4, str_Value); // }} "" // {{ 1273 1 0 "fcc79538_cdab_4a07_9348bb8ea4302231" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1274 1 0 "15c29705_93bd_4b97_a739c2af86140b30" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1275 1 0 "941ddda0_8d5b_492a_8bf3a9df0fa556f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1276 1 0 "a9e2f4bf_cfbc_4809_99a57d1b784391cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mh"), 0.0, 10.0, 4, str_Value); // }} "" // {{ 1277 1 0 "cda1c7bf_d9cd_4ff3_b5630d95c20c7bce" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1278 1 0 "941ddda0_8d5b_492a_8bf3a9df0fa556f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1279 1 0 "a54fe17f_07db_4279_9349d68e4bc7b749" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1280 1 0 "bc3fa4b4_398c_4a2d_ac70d355285bfba1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gi"), Translate("000&")); // }} "" // {{ 1281 1 0 "a1a2b992_3515_4ed8_970cb6aea952ad48" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1282 1 0 "a54fe17f_07db_4279_9349d68e4bc7b749" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1283 1 0 "17294fd9_66a8_4cdb_ba00d704ae49fe99" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1284 1 0 "1d846927_e3e1_4ae0_a255020d60448a30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gj"), Translate("0")); // }} "" // {{ 1285 1 0 "9e3bb943_24d9_43ac_a325e51d1be29a82" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1286 1 0 "17294fd9_66a8_4cdb_ba00d704ae49fe99" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1287 1 0 "bc796b7f_660d_4a1a_8656c09fd43a3ece" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1288 1 0 "f42346d6_88a9_4f48_85480cdea291fa66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gk"), Translate("0")); // }} "" // {{ 1289 1 0 "7c689a88_8efd_447d_9911e36e5c8e4839" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1290 1 0 "bc796b7f_660d_4a1a_8656c09fd43a3ece" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1291 1 0 "584ae0e5_7549_4317_926f0fc82092e1a6" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalParams=arr_Params.GetSize(); // }} "" // {{ 1292 1 0 "f005f53c_e288_4d64_aeeff0173eb58a7e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Params = Translate(""); // }} "" // {{ 1293 1 0 "7c4da3c4_0460_4237_b1968cb6c39095ed" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalParams;) { i = i + 1; // }} "" // {{{ 1294 1 0 "4a51f3a0_26ad_4914_85b91e0bd363f2b6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Params = StrConcat2(str_Params, arr_Params.ElementAt( i -1)); // }} "" // {{ 1295 1 0 "7c4da3c4_0460_4237_b1968cb6c39095ed" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1296 1 0 "a889b507_3d5a_4548_b3e72ffa83d0a6f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE06(Translate("Firmware Command: "), str_FirmwareCommand, Translate(" : "), str_Params, Translate(""), Translate("")); // }} "" // {{ 1297 1 0 "55275ff0_1d26_47e3_b35175781c810529" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE) { // }} "" // {{ 1298 1 0 "9b3c6270_dd7d_4c2c_83f3a9fc711a5aec" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("9b3c6270_dd7d_4c2c_83f3a9fc711a5aec"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 1299 1 0 "d7fd3ec9_6217_41e1_beec4f05af2be718" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(str_FirmwareCommand, str_ReturnValue, BOOLEON::TRUE); // }} "" // {{ 1300 1 0 "55275ff0_1d26_47e3_b35175781c810529" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1301 1 0 "b54e68b4_182a_4b66_9051ad03451c9ed8" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("b54e68b4_182a_4b66_9051ad03451c9ed8"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 1302 1 0 "55275ff0_1d26_47e3_b35175781c810529" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "PIPDispenseFromFixedHeight" "End" } // }} "" // {{{ 5 "GetChannelPatternWithTips" "Begin" function GetChannelPatternWithTips( device & ML_STAR, variable i_bln_1mL, variable & o_str_ChannelPattern ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable str_ReturnValue; private variable str_FirmwareCMND; private variable str_ParamSearch; private variable bln_ParamFound; private variable arr_Values[]; private variable i; private variable int_TotalChannels; // {{ 5 "GetChannelPatternWithTips" "InitLocals" o_str_ChannelPattern = 0; // }} "" // {{{ 7 1 0 "685a90b8_5bd8_4e8d_896348227ad0254a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 8 1 0 "f448afd2_5408_4aaa_95b328ed4be782b1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChannelPattern = Translate(""); // }} "" // {{ 9 1 0 "beed1be9_52ff_4a61_a7447a4f06aa07e9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 10 1 0 "4ff3cc24_72d1_485c_9028b06261a3c96f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 12 1 0 "e081d5d2_e860_45d3_992912f9aff339ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 13 1 0 "d1c6e948_8dbe_4412_b076a2a50066822f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 14 1 0 "e0de645f_8428_41eb_ace4f9f33b936033" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 15 1 0 "6d43d3c7_e8f5_448d_8afbc99ac60e1d85" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 16 1 0 "89ad365f_7c22_4a61_afad7218220cabc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 17 1 0 "5a333338_4133_476b_aa76a889adae91c9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 18 1 0 "beed1be9_52ff_4a61_a7447a4f06aa07e9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 19 1 0 "b90edf04_c68c_4969_a89d0444d23d0540" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_1mL == BOOLEON::TRUE) { // }} "" // {{ 20 1 0 "b1ba102c_8e3b_4041_865b541b6f34481b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TotalChannels = G_FW_PIP_COM_TotalChannels; // }} "" // {{ 21 1 0 "b90edf04_c68c_4969_a89d0444d23d0540" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 22 1 0 "91b818aa_b1bf_4183_962189df3f317a22" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TotalChannels = G_FW_XL_COM_TotalChannels; // }} "" // {{ 23 1 0 "b90edf04_c68c_4969_a89d0444d23d0540" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 24 1 0 "7b52f4d3_559b_4506_8364b0e713ff0e04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE) { // }} "" // {{ 25 1 0 "dceee657_231a_4553_8b1bf76052c8a67c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_FirmwareType == 1) { // }} "" // {{ 26 1 0 "298e2ef7_8360_40bf_ac264f553af3fd14" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_1mL == BOOLEON::TRUE) { // }} "" // {{{ 27 1 0 "08ee324f_2230_43e2_8d21e45109dd19b0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("C0RT"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 28 1 0 "682964b7_5518_4a6d_b96ba62fe65a54ff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ParamSearch = Translate("rt"); // }} "" // {{ 29 1 0 "298e2ef7_8360_40bf_ac264f553af3fd14" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 30 1 0 "8b3242cd_650d_44e7_919bbde5662bc521" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("C0UT"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 31 1 0 "21ce5e9a_f597_430b_ae2b64e717d4e9f7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ParamSearch = Translate("ut"); // }} "" // {{ 32 1 0 "298e2ef7_8360_40bf_ac264f553af3fd14" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 33 1 0 "8ea7bfda_3189_436a_bde0a3e7b7551c15" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("8ea7bfda_3189_436a_bde0a3e7b7551c15"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 34 1 0 "dceee657_231a_4553_8b1bf76052c8a67c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 35 1 0 "864cc80a_d4e0_4059_a1ad9cbc7857da46" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_1mL == BOOLEON::TRUE) { // }} "" // {{{ 36 1 0 "b226956e_e135_44db_8f722c93f7abcfa4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("A1PMQA"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 37 1 0 "a067115a_b326_48f4_b05dcd338583d53d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ParamSearch = Translate("rt"); // }} "" // {{ 38 1 0 "864cc80a_d4e0_4059_a1ad9cbc7857da46" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 39 1 0 "1034386a_c342_4530_af82d360383ec472" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("A1LMQA"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 40 1 0 "c713e5e2_c03e_4d95_a75c46a31b306e6a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ParamSearch = Translate("rt"); // }} "" // {{ 41 1 0 "864cc80a_d4e0_4059_a1ad9cbc7857da46" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 42 1 0 "607e3d3f_d05b_4d49_89f15e3c753e4eb3" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("607e3d3f_d05b_4d49_89f15e3c753e4eb3"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 43 1 0 "dceee657_231a_4553_8b1bf76052c8a67c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 44 1 0 "6122dcfd_2913_4859_aa68ea59e0390621" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(str_FirmwareCMND, str_ReturnValue, BOOLEON::TRUE); // }} "" // {{{ 45 1 0 "cf8f2bf7_cc1a_466b_83d216e2edfa5a50" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, str_ParamSearch, 1, 1, int_TotalChannels, bln_ParamFound, arr_Values); // }} "" // {{ 46 1 0 "7b52f4d3_559b_4506_8364b0e713ff0e04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 47 1 0 "6e18099b_9532_4f01_b1a36fd62c43326f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ParamFound = BOOLEON::FALSE; // }} "" // {{ 48 1 0 "7b52f4d3_559b_4506_8364b0e713ff0e04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 49 1 0 "3a2c02ff_6acb_42ba_9bedba7d9dd696da" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ParamFound == BOOLEON::TRUE) { // }} "" // {{ 50 1 0 "e5ec7fd0_01b3_47a7_9994dd90de82529c" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalChannels;) { i = i + 1; // }} "" // {{{ 51 1 0 "baf718c1_ab53_485c_8523f010ba46b9a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_ChannelPattern = StrConcat2(o_str_ChannelPattern, arr_Values.ElementAt( i -1)); // }} "" // {{ 52 1 0 "e5ec7fd0_01b3_47a7_9994dd90de82529c" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 53 1 0 "3a2c02ff_6acb_42ba_9bedba7d9dd696da" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 54 1 0 "9799a1aa_565c_442b_b6bcecd09b224154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_ChannelPattern = StrFillRight(o_str_ChannelPattern, Translate("0"), int_TotalChannels); // }} "" // {{{ 5 "GetChannelPatternWithTips" "End" } // }} "" // {{{ 5 "GetChannelNumber1mL" "Begin" function GetChannelNumber1mL( device & ML_STAR, variable & o_int_ChannelCount ) void { // }} "" // {{ 5 "GetChannelNumber1mL" "InitLocals" o_int_ChannelCount = 0; // }} "" // {{{ 1 1 0 "ee1115f2_2185_4e57_86c2c9068af4eb96" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 2 1 0 "19c99046_2834_4c65_880ecc86f7c05a57" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_ChannelCount = G_FW_PIP_COM_TotalChannels; // }} "" // {{{ 5 "GetChannelNumber1mL" "End" } // }} "" // {{{ 5 "GetChannelRaster1mL" "Begin" function GetChannelRaster1mL( device & ML_STAR, variable & o_flt_ChannelRaster ) void { // }} "" // {{ 5 "GetChannelRaster1mL" "InitLocals" o_flt_ChannelRaster = 0; // }} "" // {{{ 56 1 0 "ef4abdb0_b4b2_4c8e_8176a9ea4b72e001" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 57 1 0 "81c75e37_f80d_44fa_bacfcfbf442eb244" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_ChannelRaster = G_FW_PIP_COM_Raster; // }} "" // {{{ 5 "GetChannelRaster1mL" "End" } // }} "" // {{{ 5 "MPH96AspirateFromFixedHeight" "Begin" function MPH96AspirateFromFixedHeight( device & ML_STAR, variable i_flt_XCoord, variable i_flt_YCoord, variable i_flt_AspHeight, variable i_flt_AspirateDistance, variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_MinimumHeight, variable i_flt_ZBottom, variable i_flt_SubmergeDepth, variable i_flt_AspirateVolume, variable i_flt_AspirateSpeed, variable i_flt_TransportAirGap, variable i_flt_BlowoutVolume, variable i_int_SettlingTime, variable i_flt_SwapSpeed, variable i_flt_PullOutDistance ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable i; private variable str_FirmwareCommand; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable str_Value; private variable arr_Params[]; private variable str_ReturnValue; private variable str_Params; private variable int_TotalParams; private variable flt_AspirationHeight; // {{ 5 "MPH96AspirateFromFixedHeight" "InitLocals" // }} "" // {{{ 320 1 0 "125ab2fe_65ae_4757_858cb391d1ef4e69" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 321 1 0 "97ff6c48_11ad_4868_ae2a30d5fb4e27e0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 322 1 0 "baff6322_4392_4921_b7dfcb1ce33f60fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 324 1 0 "9baa364a_b376_44f0_bb765bf2b4cedd7d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 325 1 0 "e9aa3ade_3d0c_42f6_8575038576f2d248" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 326 1 0 "395e4af3_6dbf_4ad8_91cb931a77872abc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 327 1 0 "c5995883_ac41_48fe_af95b48f4734858d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 328 1 0 "39a0212d_54e3_4ddc_94596e9abda5cd38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 329 1 0 "beaeedc6_ba74_4677_8316a9afce5bac6a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 330 1 0 "97ff6c48_11ad_4868_ae2a30d5fb4e27e0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 331 1 0 "d15fd069_601b_41f6_a82e0785efa86f44" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Params.SetSize(0); // }} "" // {{ 332 1 0 "068ff2b6_7c78_4e2c_b01b7737a9670b05" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FirmwareCommand = Translate("C0EA"); // }} "" // {{ 333 1 0 "c62ff9b3_45cb_4c92_abe935deddd7e79a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 334 1 0 "deccb892_b990_4faf_b9b0ba24dc11bf0f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("aa"), Translate("2")); // }} "" // {{ 335 1 0 "10441135_5242_4452_92e482bec330c447" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 336 1 0 "c62ff9b3_45cb_4c92_abe935deddd7e79a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 337 1 0 "cc4415b6_1121_4aa6_bbc312786aa79266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 338 1 0 "b76feddf_f138_4966_96fb00c01cc07feb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("xs"), i_flt_XCoord, 10.0, 5, str_Value); // }} "" // {{ 339 1 0 "9b047e7f_9a03_4e32_82d75e378beebb50" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 340 1 0 "cc4415b6_1121_4aa6_bbc312786aa79266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 341 1 0 "b70d41f0_cbb4_4d54_b6c5d631b0e3ea5e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 342 1 0 "2feb26e2_8361_4d74_8de17701b3320bfe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_flt_XCoord > 0) { // }} "" // {{{ 343 1 0 "40975c28_8c1f_44ca_b566ba60231cd564" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("xd"), Translate("0")); // }} "" // {{ 344 1 0 "2feb26e2_8361_4d74_8de17701b3320bfe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 345 1 0 "2da1ca40_6a67_453a_8476c9a0af81002b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("xd"), Translate("1")); // }} "" // {{ 346 1 0 "2feb26e2_8361_4d74_8de17701b3320bfe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 347 1 0 "db42c8c9_83f2_4c10_985666d5fbb1869c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 348 1 0 "b70d41f0_cbb4_4d54_b6c5d631b0e3ea5e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 349 1 0 "9cbdd8a3_b471_48f5_9babf85e16203f11" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 350 1 0 "36ba39e1_da7e_4c37_a9b2f8a945ec50ad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("yh"), i_flt_YCoord, 10.0, 4, str_Value); // }} "" // {{ 351 1 0 "ae116732_532a_468d_be15e03e64f3b368" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 352 1 0 "9cbdd8a3_b471_48f5_9babf85e16203f11" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 353 1 0 "fe2f73b3_aaa5_43ab_929de045eb573b6f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 354 1 0 "d63b6bea_8a9c_42b2_bd3524d6f16d557c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("zh"), i_flt_StartTraverseHeight, 10.0, 4, str_Value); // }} "" // {{ 355 1 0 "adbb02ab_dad5_4db9_92691a68c7c5cd4f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 356 1 0 "fe2f73b3_aaa5_43ab_929de045eb573b6f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 357 1 0 "1831f549_9dab_40fc_b7219bccb8f291b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 358 1 0 "085cf00d_a7b9_40c9_862c379dbd84c972" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("ze"), i_flt_EndTranverseHeight, 10.0, 4, str_Value); // }} "" // {{ 359 1 0 "a3032fe8_1ba4_4bc0_b344a3db010b4ed5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 360 1 0 "1831f549_9dab_40fc_b7219bccb8f291b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 361 1 0 "db803f06_4ae9_4c76_a5609efc812cf28c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 362 1 0 "313cf9b7_8967_408f_a2af8ea806b3ce02" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("lz"), 0.0, 10.0, 4, str_Value); // }} "" // {{ 363 1 0 "4aed9df6_a71f_43c5_859cc281b0b50393" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 364 1 0 "db803f06_4ae9_4c76_a5609efc812cf28c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 365 1 0 "59d00afe_cbef_493c_bf5d370ac1a29981" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 366 1 0 "310979e9_8f3e_4db7_9a35918de9f2be1b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_AspirationHeight = i_flt_AspHeight + i_flt_ZBottom; // }} "" // {{{ 367 1 0 "c1e4301f_7149_4424_bed6a90a55127ba9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("zt"), flt_AspirationHeight, 10.0, 4, str_Value); // }} "" // {{ 368 1 0 "01cf9442_514f_4a1c_909984a4d46fbb9b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 369 1 0 "59d00afe_cbef_493c_bf5d370ac1a29981" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 370 1 0 "bd86d9b4_ae46_4565_9ae3d314f0d584ae" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 371 1 0 "a8991def_3ea2_4bef_906aa0b16b9070f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("pp"), i_flt_PullOutDistance, 10.0, 4, str_Value); // }} "" // {{ 372 1 0 "ea5840b0_ec1d_4217_a00eaa91c93d4723" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 373 1 0 "bd86d9b4_ae46_4565_9ae3d314f0d584ae" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 374 1 0 "bb4d38c0_a318_4304_8987a35191a940fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 375 1 0 "4c54cd64_37b5_45c1_ba43face60c4191f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("zm"), i_flt_MinimumHeight, 10.0, 4, str_Value); // }} "" // {{ 376 1 0 "43b7a4e7_157e_4150_9efaf2954ae3c648" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 377 1 0 "bb4d38c0_a318_4304_8987a35191a940fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 378 1 0 "066676bc_5222_47ca_b3a3459b7539a522" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 379 1 0 "6474aa7a_889b_4f47_84389fb7b9bcb766" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("zv"), 0.0, 10.0, 4, str_Value); // }} "" // {{ 380 1 0 "57ded6af_0fdf_461e_871dc91e72d1358f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 381 1 0 "066676bc_5222_47ca_b3a3459b7539a522" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 382 1 0 "7688b5e9_b526_452a_b4a53c6b604b884b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 383 1 0 "51d61dcf_8b04_40ca_9a3f200cf1eb042b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("zq"), 0.0, 10.0, 5, str_Value); // }} "" // {{ 384 1 0 "b30999f6_2bcb_49fd_83d6553ad99369d8" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 385 1 0 "7688b5e9_b526_452a_b4a53c6b604b884b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 386 1 0 "8d314fdb_7580_4cc7_b3a00d374be7f3df" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 387 1 0 "97b98794_9d8e_402b_bc4737939c2edf53" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("iw"), i_flt_SubmergeDepth, 10.0, 3, str_Value); // }} "" // {{ 388 1 0 "bbf849d1_1a09_4955_971c8bcd179db9e3" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 389 1 0 "8d314fdb_7580_4cc7_b3a00d374be7f3df" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 390 1 0 "8653b0b8_ccf1_445c_b70e0b448fe01d03" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 391 1 0 "db6e942b_349b_4519_8e57ba8fa3a410b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("ix"), Translate("0")); // }} "" // {{ 392 1 0 "eca9e048_bdfe_4639_b461bef5eddecd85" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 393 1 0 "8653b0b8_ccf1_445c_b70e0b448fe01d03" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 394 1 0 "aeeffc1a_5dc7_444e_ab4ae02b35b241f1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 395 1 0 "86e8ccc7_6215_4554_b8b8ece7714a8115" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("fh"), i_flt_AspirateDistance, 10.0, 3, str_Value); // }} "" // {{ 396 1 0 "34f3681c_b021_4849_b2bd670976b0e3a5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 397 1 0 "aeeffc1a_5dc7_444e_ab4ae02b35b241f1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 398 1 0 "9438a31f_391e_494d_bff0529691367be2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 399 1 0 "d86bd6f0_33a1_43a2_895dadf87351ac96" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("af"), i_flt_AspirateVolume, 10.0, 5, str_Value); // }} "" // {{ 400 1 0 "cf00b876_5f4b_4c61_95c9a3b59e26b2aa" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 401 1 0 "9438a31f_391e_494d_bff0529691367be2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 402 1 0 "8690dc85_171b_4afb_a56b7c0808b0a4e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 403 1 0 "fab371b3_7175_4556_9ed2f34f549273a7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("ag"), i_flt_AspirateSpeed, 10.0, 4, str_Value); // }} "" // {{ 404 1 0 "3ed2ef57_79e7_4b6e_a8316dd6282a0f29" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 405 1 0 "8690dc85_171b_4afb_a56b7c0808b0a4e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 406 1 0 "5f2272c3_e47f_4430_bd3c7b85fe149974" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 407 1 0 "e3530b53_ae48_4427_bdd6e1e7fb59e9cd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("vt"), i_flt_TransportAirGap, 10.0, 3, str_Value); // }} "" // {{ 408 1 0 "41827f0b_02a2_4039_a8dc836b37197dcc" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 409 1 0 "5f2272c3_e47f_4430_bd3c7b85fe149974" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 410 1 0 "7abb325e_cdeb_4e7e_aa0b196ce239d7b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 411 1 0 "bdde2684_b4d0_4cce_84aa7fc9a0cb040f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("bv"), i_flt_BlowoutVolume, 10.0, 5, str_Value); // }} "" // {{ 412 1 0 "8a670d22_f7c7_4cee_9150531bf1c562e8" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 413 1 0 "7abb325e_cdeb_4e7e_aa0b196ce239d7b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 414 1 0 "a5e7bd35_6b4c_4959_9448d53278ad24b0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 415 1 0 "932118bb_1ffa_4d09_be8136b23fef970f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("wv"), 0.0, 10.0, 5, str_Value); // }} "" // {{ 416 1 0 "774a2dbe_8d5c_45d8_b9e56a7c9fd9f462" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 417 1 0 "a5e7bd35_6b4c_4959_9448d53278ad24b0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 418 1 0 "4cb11be0_28f3_4709_a2832cc4a49130e6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 419 1 0 "eef940ff_687f_462f_9618ca276b91dbfc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("cm"), Translate("0")); // }} "" // {{ 420 1 0 "5bf30e84_92b9_4d37_96e9d4618e78923c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 421 1 0 "4cb11be0_28f3_4709_a2832cc4a49130e6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 422 1 0 "6a3da7d5_f574_4de3_914bacb63efc246f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 423 1 0 "315e489c_ffba_4dcf_93b66c246d2980e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("cs"), Translate("1")); // }} "" // {{ 424 1 0 "b370ae62_a390_49b2_bb2e4a0742c32fcf" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 425 1 0 "6a3da7d5_f574_4de3_914bacb63efc246f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 426 1 0 "6acd6af0_ca05_4bb0_93f79e88cc687da0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 427 1 0 "96ae202d_ced0_4d9f_bdf41db06085849b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("bs"), i_flt_SwapSpeed, 10.0, 4, str_Value); // }} "" // {{ 428 1 0 "570f420a_c452_47ec_96a3896304f21806" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 429 1 0 "6acd6af0_ca05_4bb0_93f79e88cc687da0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 430 1 0 "dce55014_2c22_4b0e_9debe7d607c9578d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 431 1 0 "9ba31cfe_dc11_4656_be92dfc80274dd54" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("wh"), i_int_SettlingTime, 10.0, 2, str_Value); // }} "" // {{ 432 1 0 "36aa8c94_6c6a_4d6c_bac711224c276c97" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 433 1 0 "dce55014_2c22_4b0e_9debe7d607c9578d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 434 1 0 "ce12465f_ac0f_4aa7_949d2550cabe0b02" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 435 1 0 "03f11220_ea9c_4d71_999aeec655131db1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("hv"), 0.0, 10.0, 5, str_Value); // }} "" // {{ 436 1 0 "c77ae46b_0748_453b_8130d8b2b4cb6f24" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 437 1 0 "ce12465f_ac0f_4aa7_949d2550cabe0b02" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 438 1 0 "ece62b5b_de50_4915_95b4339b3bdb5fc4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 439 1 0 "a2b8751c_aa7e_477b_b4017e7506c18e92" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("hc"), Translate("00")); // }} "" // {{ 440 1 0 "807d7090_f276_4e25_9763c054584c1523" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 441 1 0 "ece62b5b_de50_4915_95b4339b3bdb5fc4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 442 1 0 "d23bde29_8714_4c7c_a071314eaf88e150" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 443 1 0 "e02ec5a6_d7d7_439a_ad27d81db20c5645" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("hp"), 0.0, 10.0, 3, str_Value); // }} "" // {{ 444 1 0 "e5a2adcc_6e60_4c86_98283414f0987976" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 445 1 0 "d23bde29_8714_4c7c_a071314eaf88e150" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 446 1 0 "4ba25f8c_fdc4_4c2d_94dc9bca417a9041" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 447 1 0 "6ad2e74e_45d7_4593_8bcea7161ecfaddc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("mj"), 0.0, 10.0, 3, str_Value); // }} "" // {{ 448 1 0 "0c2fc195_d05a_4f12_87ebfbae0445fe55" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 449 1 0 "4ba25f8c_fdc4_4c2d_94dc9bca417a9041" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 450 1 0 "fb987632_dfdb_4962_be85cea7f174b9c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 451 1 0 "5be7d4f1_0974_472f_bf2b38d139cb5f9c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("hs"), 3.0, 10.0, 4, str_Value); // }} "" // {{ 452 1 0 "3f875822_3af9_4d63_848e168e5641bab7" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 453 1 0 "fb987632_dfdb_4962_be85cea7f174b9c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 454 1 0 "adc57b3f_4925_4422_a8f8005aa0221416" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 455 1 0 "f0305ae4_a67b_4c76_b8770c3f1a3378b0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("cw"), Translate("FFFFFFFFFFFFFFFFFFFFFFFF")); // }} "" // {{ 456 1 0 "63c65cd8_99fd_43ca_88de37f57467e7d7" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 457 1 0 "adc57b3f_4925_4422_a8f8005aa0221416" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 458 1 0 "1485dde8_a83e_4471_a1e80dbdc4d926d3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 459 1 0 "7b758703_9ed7_4122_aecd787b33008ff7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gj"), Translate("0")); // }} "" // {{ 460 1 0 "f2dbd7c9_428d_4c9c_9af4e9f74dd3313f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 461 1 0 "1485dde8_a83e_4471_a1e80dbdc4d926d3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 462 1 0 "f5bbd450_a342_44ac_b4ae4f543035e9be" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 463 1 0 "aa7e4be5_0912_4b11_baf3c47beb3bdc6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gk"), Translate("0")); // }} "" // {{ 464 1 0 "12928fdc_8973_45c7_9a0341e0046fd27c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 465 1 0 "f5bbd450_a342_44ac_b4ae4f543035e9be" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 466 1 0 "5a31fcba_f7ab_4e9e_8a5d6498713e0323" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalParams=arr_Params.GetSize(); // }} "" // {{ 467 1 0 "24192c24_cb2a_48bb_9f6929d3cedf607d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Params = Translate(""); // }} "" // {{ 468 1 0 "d7abe2dd_54c8_43dc_a9c72298d2d61ea9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalParams;) { i = i + 1; // }} "" // {{{ 469 1 0 "d3a39bff_afc5_406d_abb208bc8386b0d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Params = StrConcat2(str_Params, arr_Params.ElementAt( i -1)); // }} "" // {{ 470 1 0 "d7abe2dd_54c8_43dc_a9c72298d2d61ea9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 471 1 0 "c3cad658_246e_428a_b007681f16c08eb4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE06(Translate("Firmware Command: "), str_FirmwareCommand, Translate(" : "), str_Params, Translate(""), Translate("")); // }} "" // {{ 472 1 0 "e673ffda_6491_42a7_9e5f820d7de110cf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE) { // }} "" // {{ 473 1 0 "2ba18b80_0c29_44af_9e46d7297c8fcffc" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("2ba18b80_0c29_44af_9e46d7297c8fcffc"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 474 1 0 "acabd556_0619_4c34_b60787ea13e43d31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(str_FirmwareCommand, str_ReturnValue, BOOLEON::TRUE); // }} "" // {{ 475 1 0 "e673ffda_6491_42a7_9e5f820d7de110cf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "MPH96AspirateFromFixedHeight" "End" } // }} "" // {{{ 5 "MPH96DispenseFromFixedHeight" "Begin" function MPH96DispenseFromFixedHeight( device & ML_STAR, variable i_int_DispenseMode, variable i_flt_XCoord, variable i_flt_YCoord, variable i_flt_DispHeight, variable i_flt_DispenseDistance, variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_MinimumHeight, variable i_flt_ZBottom, variable i_flt_SubmergeDepth, variable i_flt_DispenseVolume, variable i_flt_DispenseSpeed, variable i_flt_CutOffSpeed, variable i_flt_StopBackVolume, variable i_flt_TransportAirGap, variable i_flt_BlowoutVolume, variable i_int_SettlingTime, variable i_flt_SwapSpeed, variable i_flt_PullOutDistance ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable str_Params; private variable i; private variable str_FirmwareCommand; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_TotalParams; private variable int_Count; private variable str_Value; private variable arr_Params[]; private variable int_DispenseMode; private variable flt_DispenseHeight; // {{ 5 "MPH96DispenseFromFixedHeight" "InitLocals" // }} "" // {{{ 477 1 0 "b8207341_307b_49ae_8cebd2a9e4eb1bfc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 478 1 0 "881c0c8d_8405_4361_8c1ceb936f5b4fcc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 479 1 0 "5237e25a_8fb6_4346_969c1025645cb640" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 481 1 0 "4d810c55_85fa_4cb8_8cb30849ae680748" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 482 1 0 "e50d703a_dc70_4dfd_a8b872c53474c28c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 483 1 0 "d02f441a_debe_47a4_9febba42d0c00948" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 484 1 0 "3396bd98_224d_4b7d_b5a38409d46a01eb" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 485 1 0 "06eaf030_0902_4d58_be219a8335c7344b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 486 1 0 "4d8be66a_1f18_43e6_869dced0c451dd34" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 487 1 0 "881c0c8d_8405_4361_8c1ceb936f5b4fcc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 488 1 0 "479b046a_5a27_4c80_999441059e7cba81" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Params.SetSize(0); // }} "" // {{ 489 1 0 "7f86b54f_4632_4328_8447bf7822b1f9e8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FirmwareCommand = Translate("C0ED"); // }} "" // {{ 490 1 0 "b70c5ead_6dee_4618_9161fa0636bc4969" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 491 1 0 "8c2414c4_2e1d_4561_b85a5e7e1c3620ef" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 1; // }} "" // {{ 492 1 0 "c048cd63_c8bc_43d2_84fd8cbfdc33b660" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_DispenseMode == 0) { // }} "" // {{ 493 1 0 "0044f330_3b60_42d1_ad965ccd12429a80" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 0; // }} "" // {{ 494 1 0 "c048cd63_c8bc_43d2_84fd8cbfdc33b660" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 495 1 0 "1cc10116_79e9_4471_819b227d649307a7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_DispenseMode == 1) { // }} "" // {{ 496 1 0 "fbfaa2b4_c26a_402f_b1f8937d97a02eea" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 2; // }} "" // {{ 497 1 0 "1cc10116_79e9_4471_819b227d649307a7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 498 1 0 "cd2846ea_aab6_48e0_98c5d2f303384787" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_DispenseMode == 2) { // }} "" // {{ 499 1 0 "fd7cc30f_32a6_40b3_95f2c4920bd26a3b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 0; // }} "" // {{ 500 1 0 "cd2846ea_aab6_48e0_98c5d2f303384787" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 501 1 0 "c67dba3c_c449_4534_a17bcd4be262dafb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_DispenseMode == 3) { // }} "" // {{ 502 1 0 "03d2a998_1fa3_4025_a12b95c22f3316b2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 1; // }} "" // {{ 503 1 0 "c67dba3c_c449_4534_a17bcd4be262dafb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 504 1 0 "5920f2b5_f16f_4f2a_887c68f3731dbe3a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_DispenseMode == 4) { // }} "" // {{ 505 1 0 "33c4f68e_66e2_4b3f_af169ed6cba4f935" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 2; // }} "" // {{ 506 1 0 "5920f2b5_f16f_4f2a_887c68f3731dbe3a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 507 1 0 "61d1e91e_8d0a_4b29_92aed7bfbdc9892b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_DispenseMode == 5) { // }} "" // {{ 508 1 0 "91fd8c85_36e5_4467_99bf071f23174ad3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 3; // }} "" // {{ 509 1 0 "61d1e91e_8d0a_4b29_92aed7bfbdc9892b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 510 1 0 "e5b9ee81_a6c7_4991_b84ec98fe2b34542" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("da"), int_DispenseMode); // }} "" // {{ 511 1 0 "49bddb75_87bf_4efa_832bedeae601e59d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 512 1 0 "b70c5ead_6dee_4618_9161fa0636bc4969" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 513 1 0 "fa821c1e_4907_4cf4_944c8aa24d06e363" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 514 1 0 "0ea9db37_2b9a_4157_9276dec2cac440d6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("xs"), i_flt_XCoord, 10.0, 5, str_Value); // }} "" // {{ 515 1 0 "f00ee213_9254_4ea8_b0914144492c95cd" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 516 1 0 "fa821c1e_4907_4cf4_944c8aa24d06e363" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 517 1 0 "e4b1fa86_3046_4194_9a1a215a92e86b3e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 518 1 0 "388b0a72_ef7e_42be_b2336fca70413316" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_flt_XCoord > 0) { // }} "" // {{{ 519 1 0 "84257e64_9028_4e10_853ba6eebf56016f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("xd"), Translate("0")); // }} "" // {{ 520 1 0 "388b0a72_ef7e_42be_b2336fca70413316" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 521 1 0 "d87b5ade_c186_4311_ab52b4eee78aeecd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("xd"), Translate("1")); // }} "" // {{ 522 1 0 "388b0a72_ef7e_42be_b2336fca70413316" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 523 1 0 "52ebc6b2_74d4_43c8_857ec5fe9ebdc0e4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 524 1 0 "e4b1fa86_3046_4194_9a1a215a92e86b3e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 525 1 0 "5d6b9019_9376_4abe_8bc27b7a932d45e9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 526 1 0 "3fa6576a_763f_4c22_b557a490f7bf293c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("yh"), i_flt_YCoord, 10.0, 4, str_Value); // }} "" // {{ 527 1 0 "8585085b_c1bb_4092_b7c52607f4929ba8" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 528 1 0 "5d6b9019_9376_4abe_8bc27b7a932d45e9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 529 1 0 "d06c7e77_9f70_4fa9_ac12c4f253814ca1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 530 1 0 "21fd49be_8710_4552_a071a0a14e969770" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("zm"), i_flt_MinimumHeight, 10.0, 4, str_Value); // }} "" // {{ 531 1 0 "e5a0274b_3d49_4bfc_987070f5c0b747fe" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 532 1 0 "d06c7e77_9f70_4fa9_ac12c4f253814ca1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 533 1 0 "77c5032a_3e32_4fdd_9681358c07342a08" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 534 1 0 "e87c608d_f130_431c_aaf433938752898e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("zv"), 0.0, 10.0, 4, str_Value); // }} "" // {{ 535 1 0 "4e0928d9_7717_4c31_962d8c272a5cb684" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 536 1 0 "77c5032a_3e32_4fdd_9681358c07342a08" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 537 1 0 "d8b4069b_47ce_409c_be8af6b743e082ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 538 1 0 "5003b6b4_dbca_44aa_8fc350c0c82d501d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("zq"), 0.0, 10.0, 5, str_Value); // }} "" // {{ 539 1 0 "e03ce2e9_64bf_4c64_b869d01008fd3a21" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 540 1 0 "d8b4069b_47ce_409c_be8af6b743e082ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 541 1 0 "07ef1005_b933_4cc7_9a530c92b151ca76" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 542 1 0 "4e16f3c3_2590_413e_9c26931010eff6da" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("lz"), 0.0, 10.0, 4, str_Value); // }} "" // {{ 543 1 0 "44801acb_1a0b_4d71_a78618061e7d16d3" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 544 1 0 "07ef1005_b933_4cc7_9a530c92b151ca76" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 545 1 0 "a0dbdcac_d44f_4def_a5d073bf9c6afc19" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 546 1 0 "46ab9a5e_7490_4266_90bcf052b16a07e8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_DispenseHeight = i_flt_DispHeight + i_flt_ZBottom; // }} "" // {{{ 547 1 0 "c31efaf2_33ed_49b8_b13fe6b232acb8d6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("zt"), flt_DispenseHeight, 10.0, 4, str_Value); // }} "" // {{ 548 1 0 "d17bd6ba_dd80_4a35_a6e31e2173e96d92" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 549 1 0 "a0dbdcac_d44f_4def_a5d073bf9c6afc19" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 550 1 0 "ab4aff20_a74f_42ae_98f92befe3aa2442" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 551 1 0 "813db301_77de_4065_93466f6e357a93b4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("pp"), i_flt_PullOutDistance, 10.0, 4, str_Value); // }} "" // {{ 552 1 0 "578f5a07_3e30_4eb5_8dd5a3b06182172c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 553 1 0 "ab4aff20_a74f_42ae_98f92befe3aa2442" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 554 1 0 "c9df9ba8_d5ad_434c_9dbfa5980f36532e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 555 1 0 "5b4abfee_af3b_486a_ba4ea4c16b872b09" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("iw"), i_flt_SubmergeDepth, 10.0, 3, str_Value); // }} "" // {{ 556 1 0 "55e18cd8_1158_41b2_9fb3168a259bfde1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 557 1 0 "c9df9ba8_d5ad_434c_9dbfa5980f36532e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 558 1 0 "f4a4d167_574a_4ac0_8daf0aa97323ccf9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 559 1 0 "b32856db_4022_4b8d_8fef073762e13c25" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("ix"), Translate("0")); // }} "" // {{ 560 1 0 "76ba8cc4_809e_4d4c_9facb85e26a304d7" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 561 1 0 "f4a4d167_574a_4ac0_8daf0aa97323ccf9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 562 1 0 "87d3187f_6dba_489c_835ee6120303b1aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 563 1 0 "95a49c48_a94a_48ce_b3f7bdb32f7efbca" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("fh"), i_flt_DispenseDistance, 10.0, 3, str_Value); // }} "" // {{ 564 1 0 "228011eb_2e4b_4288_9a0b72c283c4b662" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 565 1 0 "87d3187f_6dba_489c_835ee6120303b1aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 566 1 0 "18c3f3d9_57b7_4fc8_94efa0177359028b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 567 1 0 "f75372c1_3d6f_4159_a0be0cf87437b236" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("zh"), i_flt_StartTraverseHeight, 10.0, 4, str_Value); // }} "" // {{ 568 1 0 "bd7605c1_ec23_4855_a77edea96b55fa75" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 569 1 0 "18c3f3d9_57b7_4fc8_94efa0177359028b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 570 1 0 "d05625ac_1483_46c8_9f5b105c0c145fc8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 571 1 0 "6cf0ec28_f451_4abd_a2e371181db24b06" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("ze"), i_flt_EndTranverseHeight, 10.0, 4, str_Value); // }} "" // {{ 572 1 0 "71b10552_7adc_43f7_a338545ad221c128" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 573 1 0 "d05625ac_1483_46c8_9f5b105c0c145fc8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 574 1 0 "0bc5cef9_c7d8_4335_bc22f62db71764a9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 575 1 0 "0a099b12_73fb_4177_a1f0f2ca74b07915" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("df"), i_flt_DispenseVolume, 10.0, 5, str_Value); // }} "" // {{ 576 1 0 "ad628400_91bd_4b9e_bbaeca2e57a2ac0c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 577 1 0 "0bc5cef9_c7d8_4335_bc22f62db71764a9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 578 1 0 "047e30f7_5b85_4ab8_a650a506e61b726f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 579 1 0 "957f27e0_0d6a_4f41_b685417f6be4957e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("dg"), i_flt_DispenseSpeed, 10.0, 4, str_Value); // }} "" // {{ 580 1 0 "e00b052a_b9c0_47b1_b87fbce0553a9c5a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 581 1 0 "047e30f7_5b85_4ab8_a650a506e61b726f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 582 1 0 "a3b9c87a_cee0_478d_b227e7b12919ddcd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 583 1 0 "9e1d1968_85bc_4a1f_b0bc9629f7515232" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("es"), i_flt_CutOffSpeed, 10.0, 4, str_Value); // }} "" // {{ 584 1 0 "14bb715d_62e7_4edd_a2ae71cd5be80584" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 585 1 0 "a3b9c87a_cee0_478d_b227e7b12919ddcd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 586 1 0 "6a5a29a7_d3ff_465f_8ab1bbd75d801aa1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 587 1 0 "140d7d1f_1c79_4fa4_a3da4ec0c98137da" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("ev"), i_flt_StopBackVolume, 10.0, 3, str_Value); // }} "" // {{ 588 1 0 "7a0822eb_94e9_4d6e_bc40ce62ebeb35b4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 589 1 0 "6a5a29a7_d3ff_465f_8ab1bbd75d801aa1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 590 1 0 "a65d8cd5_6bf3_42d5_b498be035a64e0ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 591 1 0 "24eced1c_f486_496d_a53148d0bfd20e34" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("vt"), i_flt_TransportAirGap, 10.0, 3, str_Value); // }} "" // {{ 592 1 0 "007156bd_79db_42e2_b713718463832de1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 593 1 0 "a65d8cd5_6bf3_42d5_b498be035a64e0ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 594 1 0 "84da6875_f937_40f5_b829d689ab6bb246" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 595 1 0 "69934ee8_b922_4f97_9b3e863955e4d808" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("bv"), i_flt_BlowoutVolume, 10.0, 5, str_Value); // }} "" // {{ 596 1 0 "653fdf89_1df4_4688_86a9fab106508d68" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 597 1 0 "84da6875_f937_40f5_b829d689ab6bb246" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 598 1 0 "ffcdf493_1347_49c5_a7a22baef1ce37a8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 599 1 0 "4399907c_1680_4646_b0ba98115a1de27c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("wv"), 0.0, 10.0, 5, str_Value); // }} "" // {{ 600 1 0 "6a747a8a_81b0_4be9_bfed66f893362ea5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 601 1 0 "ffcdf493_1347_49c5_a7a22baef1ce37a8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 602 1 0 "8e202ab7_e387_4ccd_b0e5bb9e53534df9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 603 1 0 "d3217856_5f01_46f5_bf4eedd35f32fe02" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("cm"), Translate("0")); // }} "" // {{ 604 1 0 "0acb3463_587a_4392_82481fe01896afa9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 605 1 0 "8e202ab7_e387_4ccd_b0e5bb9e53534df9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 606 1 0 "b878c225_17d0_4fc0_9780adbba43beee6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 607 1 0 "9121f107_85ae_4677_83426669f92314a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("cs"), Translate("1")); // }} "" // {{ 608 1 0 "05bcc6cf_ccc4_4959_a47bc4afab7624dc" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 609 1 0 "b878c225_17d0_4fc0_9780adbba43beee6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 610 1 0 "5d39a9d2_5379_4b35_9a955de501a42df3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 611 1 0 "02cc93c8_a328_4969_9babe0b5e7b5e523" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("bs"), i_flt_SwapSpeed, 10.0, 4, str_Value); // }} "" // {{ 612 1 0 "fdf871a0_dc9f_4d47_80d610d6bf1acbbe" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 613 1 0 "5d39a9d2_5379_4b35_9a955de501a42df3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 614 1 0 "dd3b7108_0104_4f8c_b2ba89d2d2336918" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 615 1 0 "1d1dfdcc_c024_465b_9de35e21a3c7b17b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("wh"), i_int_SettlingTime, 10.0, 2, str_Value); // }} "" // {{ 616 1 0 "8b18a7b0_629a_49f7_9dccc6755d244111" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 617 1 0 "dd3b7108_0104_4f8c_b2ba89d2d2336918" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 618 1 0 "f68441bc_ddbf_41bb_8093c4e7fb8c4bbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 619 1 0 "18b41d6c_e7dd_41ce_be913b9a23bf25e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("hv"), 0.0, 10.0, 5, str_Value); // }} "" // {{ 620 1 0 "fe000cc7_5dcd_4e9f_8a727a69a6e592cd" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 621 1 0 "f68441bc_ddbf_41bb_8093c4e7fb8c4bbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 622 1 0 "279d900b_23a1_4047_997638d6ce082098" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 623 1 0 "4e4f6a10_b66f_490e_b9acf74fc74c59b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("hc"), Translate("00")); // }} "" // {{ 624 1 0 "3a4a98da_2b4f_4e87_aed85df436eac9ca" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 625 1 0 "279d900b_23a1_4047_997638d6ce082098" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 626 1 0 "723d1700_6758_466a_bfbdf6457a61e420" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 627 1 0 "ef481af4_1139_47f8_a88859ddbdbd2e35" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("hp"), 0.0, 10.0, 3, str_Value); // }} "" // {{ 628 1 0 "83aca9d7_56ef_4420_aa30877882358d37" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 629 1 0 "723d1700_6758_466a_bfbdf6457a61e420" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 630 1 0 "93c2470d_3948_42d0_9e54de1cb370b432" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 631 1 0 "c2ab8a2c_29c1_42e2_a55dd4baeba5ee70" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("mj"), 0.0, 10.0, 3, str_Value); // }} "" // {{ 632 1 0 "de3a8430_da7e_4812_bab4ce3ed48d8d4a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 633 1 0 "93c2470d_3948_42d0_9e54de1cb370b432" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 634 1 0 "55882ebf_97ff_4bb2_bae06467caf40e32" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 635 1 0 "37fd9788_61c3_4e5e_83b9d9e479e80711" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("hs"), 3.0, 10.0, 4, str_Value); // }} "" // {{ 636 1 0 "be8afc3e_b657_45cf_a8ef03b8cd450d24" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 637 1 0 "55882ebf_97ff_4bb2_bae06467caf40e32" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 638 1 0 "4c52e23c_cf34_4022_9fb7e9c3702da7b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 639 1 0 "3892e081_fde6_4348_83b7b917430e043b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("cw"), Translate("FFFFFFFFFFFFFFFFFFFFFFFF")); // }} "" // {{ 640 1 0 "7cebb7fa_08c8_4761_8c64c010aac6d01c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 641 1 0 "4c52e23c_cf34_4022_9fb7e9c3702da7b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 642 1 0 "8a79ecda_372f_4238_a8fb5538bb6f949c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 643 1 0 "253cbee9_4c14_4c61_8d82c0f56d8469b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gj"), Translate("0")); // }} "" // {{ 644 1 0 "db5a4755_3997_4e21_ba90df6315f93574" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 645 1 0 "8a79ecda_372f_4238_a8fb5538bb6f949c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 646 1 0 "fb7c0e5b_6748_4950_b822e4c81872a172" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 647 1 0 "da99c95d_7690_411b_adb2e9ec647ed5bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gk"), Translate("0")); // }} "" // {{ 648 1 0 "81dce19e_bf13_42e6_ab7f3ffb0019cc9e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 649 1 0 "fb7c0e5b_6748_4950_b822e4c81872a172" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 650 1 0 "1b1a285e_88d8_4742_a19366fec4100d54" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalParams=arr_Params.GetSize(); // }} "" // {{ 651 1 0 "d6fbe33b_ec65_48a5_a7d0da2778ad391c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Params = Translate(""); // }} "" // {{ 652 1 0 "820fd4ed_247e_4329_8f18dff412c38756" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalParams;) { i = i + 1; // }} "" // {{{ 653 1 0 "d20b1dca_75bd_48bc_ad66ba57ff6a1531" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Params = StrConcat2(str_Params, arr_Params.ElementAt( i -1)); // }} "" // {{ 654 1 0 "820fd4ed_247e_4329_8f18dff412c38756" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 655 1 0 "c95b454f_df9b_42ae_943e398528a7ec16" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE06(Translate("Firmware Command: "), str_FirmwareCommand, Translate(" : "), str_Params, Translate(""), Translate("")); // }} "" // {{ 656 1 0 "5dbd0411_f39d_48ab_93136097f1234c9f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE) { // }} "" // {{ 657 1 0 "8c07b7be_da28_4394_a5008fead644ec34" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("8c07b7be_da28_4394_a5008fead644ec34"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 658 1 0 "5b05c111_18d9_4bef_aba4ab7c7ca490d6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(str_FirmwareCommand, str_ReturnValue, BOOLEON::TRUE); // }} "" // {{ 659 1 0 "5dbd0411_f39d_48ab_93136097f1234c9f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "MPH96DispenseFromFixedHeight" "End" } // }} "" // {{{ 5 "GetMPHExist" "Begin" function GetMPHExist( device & ML_STAR, variable & o_int_MPHExists ) void { // }} "" // {{ 5 "GetMPHExist" "InitLocals" o_int_MPHExists = 0; // }} "" // {{{ 223 1 0 "8aae0695_9c2f_4b55_b03b31693555f5c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 224 1 0 "ce6bf58c_91c5_4469_b03ef07500f331e8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_MPHExists = G_FW_PIP_COM_MPH_Exist; // }} "" // {{{ 5 "GetMPHExist" "End" } // }} "" // {{{ 5 "MPH96GetTipPresence" "Begin" function MPH96GetTipPresence( device & ML_STAR, variable & o_bln_TipLoaded ) void { // }} "" private variable strFW_digits; private variable str_ReturnValue; private variable str_Params; private variable i; private variable str_FirmwareCommand; private variable str_FirmwareCMND; private variable int_TotalParams; private variable arr_Params[]; // {{ 5 "MPH96GetTipPresence" "InitLocals" o_bln_TipLoaded = 0; // }} "" // {{{ 705 1 0 "63c9dcd3_eead_44bb_96096b2a6d109c77" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 706 1 0 "6e847874_106b_4a30_8fe8c21cfb708b9a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bln_TipLoaded = 0; // }} "" // {{ 707 1 0 "c4e7a088_17dc_46c9_b40b58ecb1143015" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Params.SetSize(0); // }} "" // {{ 708 1 0 "5df08781_8d0a_437c_910d0d7c9f662d1e" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalParams=arr_Params.GetSize(); // }} "" // {{ 709 1 0 "ad4923c3_0949_4108_a742bfbce004bf83" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Params = Translate(""); // }} "" // {{ 710 1 0 "4f1ffa49_0a9c_4152_bdaeed5ebaafeef4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalParams;) { i = i + 1; // }} "" // {{{ 711 1 0 "043394a9_24c4_44d9_a87aeb9acf2d86b0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Params = StrConcat2(str_Params, arr_Params.ElementAt( i -1)); // }} "" // {{ 712 1 0 "4f1ffa49_0a9c_4152_bdaeed5ebaafeef4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 713 1 0 "74ce99d6_088d_4f00_9dd70a5ec8bbb1de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_FirmwareType == 1) { // }} "" // {{ 714 1 0 "8ebb47d5_ef98_45a6_a4ee2ab001870fed" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FirmwareCommand = Translate("C0QH"); // }} "" // {{ 715 1 0 "74ce99d6_088d_4f00_9dd70a5ec8bbb1de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 716 1 0 "96ed2d0f_0555_428f_847a6ea3d8d1950e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FirmwareCommand = Translate("A1HMQA"); // }} "" // {{ 717 1 0 "74ce99d6_088d_4f00_9dd70a5ec8bbb1de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 718 1 0 "2a44f2c5_8399_4d5d_9564d03c8157e705" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE06(Translate("Firmware Command: "), str_FirmwareCommand, Translate(" : "), str_Params, Translate(""), Translate("")); // }} "" // {{ 719 1 0 "92af59ed_bd44_4152_bdadef5c89cdeb5a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE) { // }} "" // {{ 720 1 0 "9d15528e_5782_4a9b_a55e3e85cfed7070" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_FirmwareType == 1) { // }} "" // {{ 721 1 0 "e3e7de18_494e_44a3_ab4136a61ad6270a" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("e3e7de18_494e_44a3_ab4136a61ad6270a"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 722 1 0 "9d15528e_5782_4a9b_a55e3e85cfed7070" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 723 1 0 "d2844c47_3355_4f96_89628d198c79a746" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(str_FirmwareCommand, str_Params, Translate(""), Translate("")); // }} "" // {{ 724 1 0 "e714ddeb_42a3_4a32_ae2c28c8263fb5b3" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("e714ddeb_42a3_4a32_ae2c28c8263fb5b3"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 725 1 0 "9d15528e_5782_4a9b_a55e3e85cfed7070" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 726 1 0 "1f1cd098_9ac6_4857_b87e1ad728525702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFW_digits = StrRight(str_ReturnValue, 1); // }} "" // {{{ 727 1 0 "bfb2ab34_cb27_480e_b843fe7ffd6aae27" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFW_digits = StrIVal(strFW_digits); // }} "" // {{ 728 1 0 "2697dd62_fbc1_48d5_836735941d9b35bf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bln_TipLoaded = strFW_digits; // }} "" // {{ 729 1 0 "92af59ed_bd44_4152_bdadef5c89cdeb5a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" if(o_bln_TipLoaded == 1)o_bln_TipLoaded = hslTrue; if(o_bln_TipLoaded == 0)o_bln_TipLoaded = hslFalse; // {{{ 731 1 0 "181ab455_1c54_4f4c_bbd900025f83ecf0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate(" MPH96 Tip Loaded: "), o_bln_TipLoaded); // }} "" // {{{ 5 "MPH96GetTipPresence" "End" } // }} "" // {{{ 5 "MPH96GetCoordinates" "Begin" function MPH96GetCoordinates( device & ML_STAR, variable & o_flt_CurrentXCoord, variable & o_flt_CurrentYCoord, variable & o_flt_CurrentZCoord ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable str_FirmwareCMND; private variable int_Count; private variable bln_ParamFound; private variable str_Value; private variable int_XDirection; // {{ 5 "MPH96GetCoordinates" "InitLocals" o_flt_CurrentXCoord = 0; o_flt_CurrentYCoord = 0; o_flt_CurrentZCoord = 0; // }} "" // {{{ 661 1 0 "c5f8967d_69f2_40b3_83816dc4b64ddb3a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 662 1 0 "ac559337_e983_42e1_bebb76da76534058" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentXCoord = 0.0; // }} "" // {{ 663 1 0 "3ac5fb50_90e2_4be1_8acfa5771c76b08a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentYCoord = 0.0; // }} "" // {{ 664 1 0 "35147b50_2a8a_462f_a7258d1b8a6c70bf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentZCoord = 0.0; // }} "" // {{ 665 1 0 "4d623a89_9e95_42e4_a3e506fb6f732e1d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 666 1 0 "58557b24_b295_44c6_adb37a0ba968b25c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 668 1 0 "ec97d68c_7adf_4118_a24ec9582522ccb2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 669 1 0 "dfd648b9_f39f_4b17_a014e67069f0db3e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 670 1 0 "543d9884_8130_4a35_98dc2eec5f50bd80" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 671 1 0 "798ff654_1f48_416d_af5b71b6f8686539" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 672 1 0 "b0ae397a_3e27_4d27_adb7733e3daecaca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 673 1 0 "78b52d61_c509_444e_972f1d405bc841bf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 674 1 0 "4d623a89_9e95_42e4_a3e506fb6f732e1d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 675 1 0 "09d08929_56ea_4597_8e9bb06ed78a5826" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 676 1 0 "3b081931_9df2_4eee_a0b159fb9c5c248c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE) { // }} "" // {{ 677 1 0 "31f0e8d9_c44a_45ff_b60d7391e2fccd0d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_FirmwareType == 1) { // }} "" // {{{ 678 1 0 "479cc84d_a9ec_492b_bb942c1a661703d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("C0QI"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 679 1 0 "3a127675_368a_4080_8339e9f4a5fdd37c" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("3a127675_368a_4080_8339e9f4a5fdd37c"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 680 1 0 "2056d2c6_3a25_4222_a76d740e78601dc2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(str_FirmwareCMND, str_ReturnValue, BOOLEON::TRUE); // }} "" // {{{ 681 1 0 "9c3cf705_049c_4ae2_a739596ca9c7cabb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("xs"), 0.1, 5, bln_ParamFound, o_flt_CurrentXCoord); // }} "" // {{{ 682 1 0 "f010b50f_8121_4655_a5bf199cdc2143e4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("xd"), 1, 1, bln_ParamFound, str_Value); // }} "" // {{ 683 1 0 "1ee698f6_3520_4274_a2d5f5820d530bbc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ParamFound == BOOLEON::TRUE) { // }} "" // {{{ 684 1 0 "6c1f21e8_3e79_43e1_be319df9ee39c22c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(str_Value, Translate("")); // }} "" // {{{ 685 1 0 "b47d66c4_07d0_49d0_80e971d1ce55bf3e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::ConvertToInteger(str_Value, int_XDirection); // }} "" // {{ 686 1 0 "1ee698f6_3520_4274_a2d5f5820d530bbc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 687 1 0 "d433f8f9_7ecf_4f39_a56fb3033c6710f8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_XDirection == 1) { // }} "" // {{ 688 1 0 "242ab735_e573_48f1_97f5cff8e6a7b2a8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentXCoord = o_flt_CurrentXCoord * -1; // }} "" // {{ 689 1 0 "d433f8f9_7ecf_4f39_a56fb3033c6710f8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 690 1 0 "e4dab6cc_d141_4034_9f45d0cb184717fd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("yh"), 0.1, 4, bln_ParamFound, o_flt_CurrentYCoord); // }} "" // {{{ 691 1 0 "0f130d67_69dc_41d0_a9d849b38f678326" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("za"), 0.1, 4, bln_ParamFound, o_flt_CurrentZCoord); // }} "" // {{ 692 1 0 "31f0e8d9_c44a_45ff_b60d7391e2fccd0d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 693 1 0 "81576bbf_f83d_45da_8824165afc3d8c40" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("A1HMQI"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 694 1 0 "c9ead723_3995_4926_ba31b27d0345aa27" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("c9ead723_3995_4926_ba31b27d0345aa27"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 695 1 0 "6a1c605e_09a5_48bc_827b5399c4aaf2be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(str_FirmwareCMND, str_ReturnValue, BOOLEON::TRUE); // }} "" // {{{ 696 1 0 "d9226658_10c5_43be_8e88f1315b466ede" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("rx"), 0.1, 6, bln_ParamFound, o_flt_CurrentXCoord); // }} "" // {{{ 697 1 0 "e015de7f_a09e_45d3_bca9e7d3f636d713" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("ry"), 0.1, 4, bln_ParamFound, o_flt_CurrentYCoord); // }} "" // {{{ 698 1 0 "6a90688e_ac0d_4666_96801f7992ab1f44" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("rz"), 0.1, 4, bln_ParamFound, o_flt_CurrentZCoord); // }} "" // {{ 699 1 0 "31f0e8d9_c44a_45ff_b60d7391e2fccd0d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 700 1 0 "3b081931_9df2_4eee_a0b159fb9c5c248c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 701 1 0 "0014e1f7_2d1d_4bf2_b514d16dba743c77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("X Coord: "), o_flt_CurrentXCoord, Translate("")); // }} "" // {{{ 702 1 0 "485f67a0_f071_4527_9fa9345d6724f417" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Y Coord: "), o_flt_CurrentYCoord, Translate("")); // }} "" // {{{ 703 1 0 "be82bf8d_36b0_43fe_a4964c070fa6463f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Z Coord: "), o_flt_CurrentZCoord, Translate("")); // }} "" // {{{ 5 "MPH96GetCoordinates" "End" } // }} "" // {{{ 5 "Get_Tip_Volume_1mL" "Begin" function Get_Tip_Volume_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable bol_ParameterFound; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_TotalFound; private variable flt_Resolution; private variable int_Count; private variable str_Firmware; private variable arr_Values[]; // {{ 5 "Get_Tip_Volume_1mL" "InitLocals" o_flt_MaxTipVolume = 0; o_flt_CurrentVolumeInTip = 0; // }} "" // {{ 226 1 0 "c99740c5_bb24_44cf_96befcc2993a0216" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 227 1 0 "2ad681b2_417d_40dc_9a6a9dc6f57e3449" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 229 1 0 "1500e804_dca8_48ce_a47d10d80457dd89" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 230 1 0 "a4cfc372_fbb9_421a_8f1dc6871863daea" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 231 1 0 "f9edf6c4_8b57_47d7_83a4ce9f20e08519" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 232 1 0 "eafacbc7_23c3_468c_88c37f685f47f085" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 233 1 0 "b14ecd9f_c49b_4e0e_8694398e8a6aa164" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 234 1 0 "3762023a_caf3_45e4_a09c6b37bac70dab" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 235 1 0 "c99740c5_bb24_44cf_96befcc2993a0216" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 236 1 0 "0e1a4250_140d_4c55_aad13f9d1e820998" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::GetChannelValue(i_int_CurrentChannel, i_int_CurrentChannel); // }} "" // {{ 237 1 0 "87cce606_662b_4f1a_abe026426e0ca555" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_MaxTipVolume = 0.0; // }} "" // {{ 238 1 0 "57c0287f_78e4_463a_8437abeca50abe06" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentVolumeInTip = 0.0; // }} "" // {{ 239 1 0 "81d8b1a9_ea71_41ce_80db97f4c0170a54" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE) { // }} "" // {{ 240 1 0 "88d52258_ffca_451e_82a700449709fde0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_FirmwareType == 1) { // }} "" // {{ 241 1 0 "870cc81c_26a9_42f5_9987d1f1a6e83866" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 242 1 0 "1be598ca_3125_47b1_9a289e567da440be" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution = 0.046876; // }} "" // {{ 243 1 0 "524e6c12_b900_4893_b4370871ae55a940" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 244 1 0 "a26acadf_36d8_432d_9ed845df62a43ff4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Firmware = StrConcat4(Translate("P"), i_int_CurrentChannel, Translate("QC"), Translate("")); // }} "" // {{ 245 1 0 "ef96bc25_004e_4007_8cc2cc4ff3981a84" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("ef96bc25_004e_4007_8cc2cc4ff3981a84"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 246 1 0 "88d52258_ffca_451e_82a700449709fde0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 247 1 0 "2d7e1eac_030e_4995_99cd4f20c0860108" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 248 1 0 "84d3114d_5648_4d2c_815fa2aefa24196c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution = 0.046876; // }} "" // {{ 249 1 0 "b200110c_4a75_46ba_ac3da9292afb8f13" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 250 1 0 "dabd88d5_c834_4725_9dba715f4ae8c4ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Firmware = StrConcat4(Translate("A1P"), i_int_CurrentChannel, Translate("QC"), Translate("")); // }} "" // {{ 251 1 0 "c7632cb8_1605_4ddb_ae71a1a1de0aa2e6" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("c7632cb8_1605_4ddb_ae71a1a1de0aa2e6"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 252 1 0 "88d52258_ffca_451e_82a700449709fde0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 253 1 0 "66e80300_0e73_438c_bd8d50bd789bc0eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{ 254 1 0 "cbb1e185_ae15_4cf7_ac949bb2226719ee" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 255 1 0 "22757394_cc2e_47af_b132729b0cc635dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate("qc"), flt_Resolution, 5, 2, bol_ParameterFound, arr_Values); // }} "" // {{ 256 1 0 "c9ab594b_5c05_46d4_be1e4f712576f6cb" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalFound=arr_Values.GetSize(); // }} "" // {{ 257 1 0 "061e9610_0e77_4270_8258493f2c7e1dae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalFound >= 1) { // }} "" // {{ 258 1 0 "6e719122_674d_457e_b9e7d6990ae9dfaf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 259 1 0 "b2281962_9f52_4cbc_924df9a1bb4f924c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_MaxTipVolume = arr_Values.ElementAt( 1 -1); // }} "" // {{{ 260 1 0 "e6a83208_844e_4dd9_8b47015d3372d2fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::RemoveExcessDigits(o_flt_MaxTipVolume); // }} "" // {{ 261 1 0 "6e719122_674d_457e_b9e7d6990ae9dfaf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 262 1 0 "061e9610_0e77_4270_8258493f2c7e1dae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 263 1 0 "3e59413b_e4d3_45df_986aa2ca415669ec" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 264 1 0 "0c705e83_b740_45e4_9bd6eed03c8740e7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalFound >= 2) { // }} "" // {{ 265 1 0 "652318e7_40fa_4f4f_9776db3c30a464c8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 266 1 0 "44818059_59a5_4b23_9fd8ac71df0f12e6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentVolumeInTip = arr_Values.ElementAt( 2 -1); // }} "" // {{{ 267 1 0 "cd8644ef_7469_49e2_829b992f24779be6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::RemoveExcessDigits(o_flt_CurrentVolumeInTip); // }} "" // {{ 268 1 0 "652318e7_40fa_4f4f_9776db3c30a464c8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 269 1 0 "0c705e83_b740_45e4_9bd6eed03c8740e7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 270 1 0 "81d8b1a9_ea71_41ce_80db97f4c0170a54" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace(" ","Channel Number: ",i_int_CurrentChannel); Trace(" ","Max tip volume: ",o_flt_MaxTipVolume," uL"); Trace(" ","Current tip volume: ",o_flt_CurrentVolumeInTip," uL"); /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 5 "Get_Tip_Volume_1mL" "End" } // }} "" // {{{ 5 "GetChannelZCoordinatesLastLLD" "Begin" function GetChannelZCoordinatesLastLLD( device & ML_STAR, variable i_bln_1mL, variable & o_arr_ZCoords[] ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable str_FirmwareCMND; private variable str_ParamSearch; private variable int_Count; private variable bln_ParamFound; private variable arr_Values[]; // {{ 5 "GetChannelZCoordinatesLastLLD" "InitLocals" o_arr_ZCoords.SetSize( 0); // }} "" // {{{ 180 1 0 "cc58f1a1_38d1_42b0_b16cc4bc4c972a7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 181 1 0 "dd8af6ac_02f7_4d20_ae97ca2f7003cbb0" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_ZCoords.SetSize(G_FW_PIP_COM_TotalChannels); // }} "" // {{ 182 1 0 "317e6747_ba6b_4fe6_81c16c69ef407fd0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 183 1 0 "84f0cee4_6f5f_4e63_ae8d535b100ac185" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 185 1 0 "e5cb312c_deb0_4a50_88df694f13a6a021" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 186 1 0 "ac4f4d1b_e518_4a39_ae4dce6668192cea" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 187 1 0 "1896844d_ead1_42a0_983ba664f44c9669" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 188 1 0 "64de4def_bc54_48c0_b275b673c02b82e5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 189 1 0 "085104b2_9259_4a50_8ad2ed0db441fa6c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 190 1 0 "0cda61a6_acc8_4e0e_99c1f7b598adb4f9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 191 1 0 "317e6747_ba6b_4fe6_81c16c69ef407fd0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 192 1 0 "d1e65e94_d6d8_49e0_94297a97f5cefe92" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 193 1 0 "37bb13a2_5f1d_40b7_b7e4ea36b2c2f590" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE) { // }} "" // {{ 194 1 0 "6c3e8177_7639_4508_b1a1de9ecc46cec0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_FirmwareType == 1) { // }} "" // {{ 195 1 0 "e8a8f9c7_b301_4733_a6a760a002ed8552" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_1mL == BOOLEON::TRUE) { // }} "" // {{{ 196 1 0 "ac7cc1bc_fd88_4385_b011a89b98865204" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("C0RL"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 197 1 0 "a2e91ea4_a7c8_4a06_b16708d1d989a95b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ParamSearch = Translate("lh"); // }} "" // {{ 198 1 0 "e8a8f9c7_b301_4733_a6a760a002ed8552" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 199 1 0 "babe919b_75ab_48a2_a15f7ba145f253f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("C0UL"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 200 1 0 "7e70beba_3204_49d8_8de0dc6d7f6f5579" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ParamSearch = Translate("ul"); // }} "" // {{ 201 1 0 "e8a8f9c7_b301_4733_a6a760a002ed8552" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 202 1 0 "2897a272_6060_443c_9ae7b21f6e5f0188" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("2897a272_6060_443c_9ae7b21f6e5f0188"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 203 1 0 "6c3e8177_7639_4508_b1a1de9ecc46cec0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 204 1 0 "96d1f524_e8ea_402a_904ad9eb07f74398" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_1mL == BOOLEON::TRUE) { // }} "" // {{{ 205 1 0 "ff717543_36ad_4017_b240fbe3505dd96b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("A1PMRL"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 206 1 0 "c5310bb2_8abc_40a7_8af626d68b951869" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ParamSearch = Translate("rl"); // }} "" // {{ 207 1 0 "96d1f524_e8ea_402a_904ad9eb07f74398" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 208 1 0 "193f54e6_4d61_4d10_a734bca8667207fe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("A1LMRL"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 209 1 0 "cf5b3723_19b0_4a13_91540881dc47361c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ParamSearch = Translate("rl"); // }} "" // {{ 210 1 0 "96d1f524_e8ea_402a_904ad9eb07f74398" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 211 1 0 "9e81983a_2b6d_4ed7_9821fdffa8d2d172" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("9e81983a_2b6d_4ed7_9821fdffa8d2d172"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 212 1 0 "6c3e8177_7639_4508_b1a1de9ecc46cec0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 213 1 0 "68c57e83_9cb1_4ce5_bfbdcfa9be445444" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(str_FirmwareCMND, str_ReturnValue, BOOLEON::TRUE); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 214 1 0 "8c420c64_bdee_4c6c_b989375869830d73" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, str_ParamSearch, 0.1, 5, G_FW_PIP_COM_TotalChannels, bln_ParamFound, arr_Values); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 215 1 0 "a56981a6_bd84_4e30_9bc6af5dd46bc082" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple2(str_ReturnValue, str_ParamSearch, 0.1, bln_ParamFound, arr_Values); // }} "" // {{ 216 1 0 "37bb13a2_5f1d_40b7_b7e4ea36b2c2f590" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 217 1 0 "613c93a8_a048_4739_98995c8c8441cf98" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ParamFound = BOOLEON::FALSE; // }} "" // {{ 218 1 0 "37bb13a2_5f1d_40b7_b7e4ea36b2c2f590" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 219 1 0 "657cad0e_7715_4220_8055a5a026f6d3f4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ParamFound == BOOLEON::TRUE) { // }} "" // {{ 220 1 0 "8b90c8e4_d6cb_48f0_9ef53fadfdafb016" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" o_arr_ZCoords=arr_Values; // }} "" // {{ 221 1 0 "657cad0e_7715_4220_8055a5a026f6d3f4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "GetChannelZCoordinatesLastLLD" "End" } // }} "" // {{{ 5 "PIPAspirateFromFixedHeight_ArrayVolumes" "Begin" function PIPAspirateFromFixedHeight_ArrayVolumes( device & ML_STAR, variable i_str_ChannelPattern, variable & i_arr_XCoord[], variable & i_arr_YCoord[], variable & i_arr_FixedHeights[], variable & i_arr_AspirateDistance[], variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_MinimumHeight, variable i_flt_ZBottom, variable i_flt_ContainerDepth, variable & i_arr_AspirateVolume[], variable i_flt_AspirateSpeed, variable i_flt_TransportAirGap, variable i_flt_BlowoutVolume, variable i_int_SettlingTime, variable i_flt_SwapSpeed, variable i_flt_PullOutDistance ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable str_Params; private variable flt_LiquidFollow; private variable flt_EndLocation; private variable i; private variable str_FirmwareCommand; private variable strFunctionName; private variable flt_FixHeight; private variable strFunctionName_Cut; private variable int_TotalParams; private variable int_Count; private variable str_ChannelValue; private variable flt_PullOut; private variable int_Value; private variable str_ChPattern; private variable str_Value; private variable arr_Params[]; private variable arr_PullOutDistance[]; private variable arr_LiquidFollowing[]; // {{ 5 "PIPAspirateFromFixedHeight_ArrayVolumes" "InitLocals" // }} "" // {{{ 920 1 0 "9a3a8a2c_2942_4d13_ae5fd294bd799f00" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 921 1 0 "484308ed_2e13_4918_bf46a949924a3dab" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 922 1 0 "e4ec46d5_2d2b_4009_894817d91033e9d9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 924 1 0 "0a0cb0f6_61c4_443a_baecb8b92576080e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 925 1 0 "3f988253_98d0_4f97_89298f7b1b047db2" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 926 1 0 "74d30de1_0768_40ab_844faa9968340ad3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 927 1 0 "a65de8a9_1e4b_42ae_b4ba814144d9879c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 928 1 0 "194f245a_03d8_47d1_bd8453b7cae51cd7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 929 1 0 "6837a081_7e1f_41ff_8dcc5b7fb13e0817" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 930 1 0 "484308ed_2e13_4918_bf46a949924a3dab" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 931 1 0 "68bab662_9f9f_460d_8fc0f5f91cabf538" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Params.SetSize(0); // }} "" // {{ 932 1 0 "5fc21ef4_c48a_40f8_840d5a9254084421" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FirmwareCommand = Translate("C0AS"); // }} "" // {{ 933 1 0 "b5be6625_db9c_453b_9ce53eec06179ea0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 934 1 0 "36da9999_a6ef_46a8_a4cf21302e9de090" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("at"), Translate("2&")); // }} "" // {{ 935 1 0 "11d7590d_06be_463f_9656f597a640381e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 936 1 0 "b5be6625_db9c_453b_9ce53eec06179ea0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 937 1 0 "aeda547e_be44_4704_8966a3550caeb675" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 938 1 0 "500d6147_6ea4_4c25_abf3b85281c75db6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrConcat2(i_str_ChannelPattern, Translate("")); // }} "" // {{{ 939 1 0 "cade5aa2_5667_4691_8d8665f49949169a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrFillRight(str_ChPattern, Translate("0"), G_FW_PIP_COM_TotalChannels); // }} "" // {{ 940 1 0 "df1ab12a_fa62_45bb_8e2f1f4d5aafcd4c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Value = Translate("tm"); // }} "" // {{ 941 1 0 "d29560df_3175_40f2_8587bbe713b3619d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < G_FW_PIP_COM_TotalChannels;) { i = i + 1; // }} "" // {{{ 942 1 0 "ca773cb3_916e_4512_a2352ebbcb364b15" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelValue = StrLeft(str_ChPattern, i); // }} "" // {{{ 943 1 0 "e7528f94_cb16_44f4_be70fb13b33aa47e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelValue = StrRight(str_ChannelValue, 1); // }} "" // {{{ 944 1 0 "8da77ebf_0bf0_498b_a11a0710ac3186c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(str_Value, str_ChannelValue); // }} "" // {{ 945 1 0 "824409e7_dbd0_4d12_8aae242ae2a3cd9e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i < G_FW_PIP_COM_TotalChannels) { // }} "" // {{{ 946 1 0 "bf840d11_3d38_4ee9_8b6e28e49bd29650" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(str_Value, Translate(" ")); // }} "" // {{ 947 1 0 "824409e7_dbd0_4d12_8aae242ae2a3cd9e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 948 1 0 "d29560df_3175_40f2_8587bbe713b3619d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 949 1 0 "18beb88e_5bb8_4877_ab6bb27e93bc002e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 950 1 0 "aeda547e_be44_4704_8966a3550caeb675" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 951 1 0 "13ad6c1a_fbb9_4f7d_9794b1dbf5d3260a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 952 1 0 "b8466796_b95f_49bf_994252ec410f21fd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("xp"), i_arr_XCoord, 10.0, 5, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 953 1 0 "8b86b744_c49c_4f0a_893590a0212413a9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 954 1 0 "13ad6c1a_fbb9_4f7d_9794b1dbf5d3260a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 955 1 0 "6d324c76_581a_43ee_846ae0d004faf322" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 956 1 0 "5501d561_79e6_4eb3_a1d9b6bf19541915" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("yp"), i_arr_YCoord, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 957 1 0 "2a766025_80fa_46e1_b97f59a168e4f4be" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 958 1 0 "6d324c76_581a_43ee_846ae0d004faf322" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 959 1 0 "e9271615_7a0d_4211_a69b54d33b8b3365" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 960 1 0 "61699d96_aa04_4168_a75ad5d15d492f9e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("th"), i_flt_StartTraverseHeight, 10.0, 4, str_Value); // }} "" // {{ 961 1 0 "f808df3f_c3db_419b_812a9fcc577acad0" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 962 1 0 "e9271615_7a0d_4211_a69b54d33b8b3365" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 963 1 0 "bc1a3b59_c5a0_4fad_b1a5f640db9e3c4a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 964 1 0 "a0dca42a_dddd_4079_997f02c1da4d652d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("te"), i_flt_EndTranverseHeight, 10.0, 4, str_Value); // }} "" // {{ 965 1 0 "90b46e38_2b12_4f38_a6150e61e259a53c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 966 1 0 "bc1a3b59_c5a0_4fad_b1a5f640db9e3c4a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 967 1 0 "89fe963b_7ebd_486d_baf1ca0083d44fcf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 968 1 0 "45efcb76_2ba1_4b09_899c42b87acc2156" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("lp"), 245.0, 10.0, 4, str_Value); // }} "" // {{ 969 1 0 "bb5f06b9_76c8_4526_b732e3b4451ef436" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 970 1 0 "89fe963b_7ebd_486d_baf1ca0083d44fcf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 971 1 0 "bdd75d49_5d6d_445d_b435c0d3ff5d3e55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 972 1 0 "8e71050d_def9_4f3a_82ec0d0c06bc28db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("zl"), i_arr_FixedHeights, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 973 1 0 "96333cba_d403_495b_92fc6d3abdddc76b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 974 1 0 "bdd75d49_5d6d_445d_b435c0d3ff5d3e55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 975 1 0 "d3f3a22d_ea7e_4bff_a1090362b7ae416d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 976 1 0 "1676975a_2967_489f_96382fff7febede1" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_PullOutDistance.SetSize(0); // }} "" // {{ 977 1 0 "a5b911e7_3017_4b95_8704992661917970" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < G_FW_PIP_COM_TotalChannels;) { i = i + 1; // }} "" // {{ 978 1 0 "4543b8bb_4b00_4d2b_b50b3fc7a44b6d5c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 979 1 0 "bc4bc3cd_b577_41d9_91d0b6e9f5b3ce2b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollow = i_arr_AspirateDistance.ElementAt( i -1); // }} "" // {{ 980 1 0 "aaa4356d_8853_4d6c_95b4237abfa0b597" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndLocation = i_arr_FixedHeights.ElementAt( i -1) - 0.0; // }} "" // {{ 981 1 0 "7e6c6e04_5099_4a93_99871ae3c0e3b86b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndLocation = flt_EndLocation - flt_LiquidFollow; // }} "" // {{ 982 1 0 "e0a4eb6a_04b4_47f7_8cde2e42dd04dc5b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_EndLocation < i_flt_MinimumHeight) { // }} "" // {{ 983 1 0 "2d011787_df9f_4829_8e0f2e01e0759995" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndLocation = i_flt_MinimumHeight + 0.5; // }} "" // {{ 984 1 0 "e0a4eb6a_04b4_47f7_8cde2e42dd04dc5b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 985 1 0 "bf1d085b_1422_4f2c_a55ae832d3c40bbe" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollow = i_arr_AspirateDistance.ElementAt( i -1) - flt_LiquidFollow; // }} "" // {{ 986 1 0 "04716494_0b8f_4378_a4c6b156bc9338c5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_LiquidFollow < 0.0) { // }} "" // {{ 987 1 0 "0604e9ea_6f67_43c5_b2ad400c44d23ada" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollow = 0.0; // }} "" // {{ 988 1 0 "04716494_0b8f_4378_a4c6b156bc9338c5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 989 1 0 "c11738ab_9f6d_452b_9c356100b44b5493" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_PullOut = flt_LiquidFollow + i_flt_PullOutDistance; // }} "" // {{ 990 1 0 "4543b8bb_4b00_4d2b_b50b3fc7a44b6d5c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 991 1 0 "f0d409de_45f0_44fc_a1ce74319359a4a8" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_PullOutDistance.AddAsLast(flt_PullOut); // }} "" // {{ 992 1 0 "a5b911e7_3017_4b95_8704992661917970" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 993 1 0 "5428791a_ecad_4305_a010f853a23d97fd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("po"), arr_PullOutDistance, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 994 1 0 "a608995a_44a9_4248_b7943382cd7c372c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 995 1 0 "d3f3a22d_ea7e_4bff_a1090362b7ae416d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 996 1 0 "83413f21_a076_47e4_a0125a5335fb9cc1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 997 1 0 "6ba4c50f_6c0d_4eb3_bdf43ca0dee1d5ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("zx"), i_flt_MinimumHeight, 10.0, 4, str_Value); // }} "" // {{ 998 1 0 "150d822a_6ecc_4e3d_98539811c4ea5f2a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 999 1 0 "83413f21_a076_47e4_a0125a5335fb9cc1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1000 1 0 "3aca521d_a846_48c2_bffe20d22ba78a10" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1001 1 0 "394a67ff_31d7_424c_aff531420781ca1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ip"), 0.0, 10.0, 4, str_Value); // }} "" // {{ 1002 1 0 "7f13b082_249a_4439_872642a990fa8b4c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1003 1 0 "3aca521d_a846_48c2_bffe20d22ba78a10" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1004 1 0 "c414d108_327e_457e_a7c44a4e4a566f0f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1005 1 0 "544ab340_0bb0_4ff5_bad806778e77a363" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_LiquidFollowing.SetSize(0); // }} "" // {{ 1006 1 0 "f7d6666a_0e0c_4474_b584f633d743e635" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < G_FW_PIP_COM_TotalChannels;) { i = i + 1; // }} "" // {{ 1007 1 0 "1603f392_3f35_40ee_ab40402539eb4a4d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollow = i_arr_AspirateDistance.ElementAt( i -1); // }} "" // {{ 1008 1 0 "870bb524_6022_410a_8575c377d0e7e0ed" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_FixHeight = i_arr_FixedHeights.ElementAt( i -1) + i_flt_ZBottom; // }} "" // {{ 1009 1 0 "2c40154b_84e7_48d8_8faf478dc19d4b7b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndLocation = flt_FixHeight - flt_LiquidFollow; // }} "" // {{ 1010 1 0 "1bde191b_9568_4a99_af50c22133db90af" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_EndLocation < i_flt_MinimumHeight) { // }} "" // {{ 1011 1 0 "be27308b_3ccb_4544_9b8869be76b295fc" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndLocation = i_flt_MinimumHeight + 0.0; // }} "" // {{ 1012 1 0 "1bde191b_9568_4a99_af50c22133db90af" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1013 1 0 "c6d1d52f_45d1_490a_8409afa60ec622ae" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollow = flt_FixHeight - flt_EndLocation; // }} "" // {{ 1014 1 0 "b683a03d_889f_4543_8df87c948702b7af" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_LiquidFollow < 0.0) { // }} "" // {{ 1015 1 0 "e13d9bb2_59b6_4143_be5c8e5f91a03114" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollow = 0.0; // }} "" // {{ 1016 1 0 "b683a03d_889f_4543_8df87c948702b7af" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1017 1 0 "488fab17_3957_4d37_9b62c6f14180b17a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_LiquidFollowing.AddAsLast(flt_LiquidFollow); // }} "" // {{ 1018 1 0 "f7d6666a_0e0c_4474_b584f633d743e635" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1019 1 0 "b50abe86_e595_4333_9e1c2eda70f2c2b5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("fp"), arr_LiquidFollowing, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 1020 1 0 "3f403fdc_6b84_45da_8c0f0f9e36db9de8" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1021 1 0 "c414d108_327e_457e_a7c44a4e4a566f0f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1022 1 0 "17a6f287_e408_4b75_8f732e5297660e24" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1023 1 0 "d1e50ee2_3692_4a74_8f64ecfe744cbc14" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("av"), i_arr_AspirateVolume, 10.0, 5, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 1024 1 0 "54e56743_470a_480e_8d6eaf9d0e71beaa" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1025 1 0 "17a6f287_e408_4b75_8f732e5297660e24" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1026 1 0 "5f630f5b_f713_45f9_b5ef5ad4687d7bd0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1027 1 0 "d76d2af4_7d9c_46a3_ae313cd08060af7e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("as"), i_flt_AspirateSpeed, 10.0, 4, str_Value); // }} "" // {{ 1028 1 0 "5e97cc18_b11a_4d81_bfd58c16b0f5a7e0" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1029 1 0 "5f630f5b_f713_45f9_b5ef5ad4687d7bd0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1030 1 0 "64cd6ec5_7f1b_4829_ba7c9affb4af679d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1031 1 0 "4f9004c1_8bde_41fe_9b6dad43eb57ea99" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ta"), i_flt_TransportAirGap, 10.0, 3, str_Value); // }} "" // {{ 1032 1 0 "40fb534a_449b_4ef0_9685b3b37c668086" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1033 1 0 "64cd6ec5_7f1b_4829_ba7c9affb4af679d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1034 1 0 "e2a85a7b_1470_4b24_b9230e51d09203ec" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1035 1 0 "b9c00e39_e82d_4c1c_bd82eff4ba5704bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ba"), i_flt_BlowoutVolume, 10.0, 4, str_Value); // }} "" // {{ 1036 1 0 "fd6d9cd6_902c_41a9_a2940fffe23185a2" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1037 1 0 "e2a85a7b_1470_4b24_b9230e51d09203ec" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1038 1 0 "1a406342_3bd6_4527_82918e4e36e94351" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1039 1 0 "44c73b78_4342_4638_abdcff9ec1d14029" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("oa"), 0.0, 10.0, 3, str_Value); // }} "" // {{ 1040 1 0 "4e9b9dac_0053_45d8_a195598e951680d1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1041 1 0 "1a406342_3bd6_4527_82918e4e36e94351" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1042 1 0 "2405b584_445e_4f68_9f26b5279afc9c69" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1043 1 0 "848f79ae_b838_49bd_bd96ee680e51e8b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("lm"), Translate("")); // }} "" // {{{ 1044 1 0 "c71b825f_d0cb_4f7d_8508395864801220" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrConcat2(0, Translate("")); // }} "" // {{{ 1045 1 0 "363b691f_e83e_42dc_bd7faa6a1a765a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat4(str_Value, int_Value, Translate("&"), Translate("")); // }} "" // {{ 1046 1 0 "26c51bf5_d1ea_4c7c_ac58cc6d7a98d240" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1047 1 0 "2405b584_445e_4f68_9f26b5279afc9c69" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1048 1 0 "d236f6fa_50cf_4303_a057dd526654c399" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1049 1 0 "53de9ca3_f68d_43d8_aa25c61ccd928b41" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("ll"), Translate("")); // }} "" // {{{ 1050 1 0 "460dbf3a_a492_4ef7_8dff06c293d44311" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrConcat2(1, Translate("")); // }} "" // {{{ 1051 1 0 "a1509f77_6343_4d8c_95fc63260f9d2d4f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat4(str_Value, int_Value, Translate("&"), Translate("")); // }} "" // {{ 1052 1 0 "4b776bdf_d1fd_4fd4_995d4dbdc9d78915" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1053 1 0 "d236f6fa_50cf_4303_a057dd526654c399" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1054 1 0 "861c7adf_c5ec_4e16_9b35198b3ba433a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1055 1 0 "d88c4131_6937_4277_a88f184882190848" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("de"), i_flt_SwapSpeed, 10.0, 4, str_Value); // }} "" // {{ 1056 1 0 "f5f92bb8_5e61_4983_8e8f540f9986b135" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1057 1 0 "861c7adf_c5ec_4e16_9b35198b3ba433a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1058 1 0 "414b8b2c_10e7_4136_bc2b97ef55b92444" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1059 1 0 "77b54e08_d850_44ac_99a5fa5fe959c7b2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("wt"), i_int_SettlingTime, 10.0, 2, str_Value); // }} "" // {{ 1060 1 0 "02b3efd4_022b_43e0_861a02067c808369" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1061 1 0 "414b8b2c_10e7_4136_bc2b97ef55b92444" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1062 1 0 "95b6b7c4_f009_458d_bbe2098f1becaf20" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1063 1 0 "cede3310_16d8_4add_96a5764a66f9398b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mv"), 0.0, 10.0, 5, str_Value); // }} "" // {{ 1064 1 0 "1ae8ef42_4c9e_4767_87f46d4bae83544f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1065 1 0 "95b6b7c4_f009_458d_bbe2098f1becaf20" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1066 1 0 "6de31cc4_81d8_4290_a9711241b4f4b4d6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1067 1 0 "e4fcf385_4a4b_427b_906881094a0cdc1c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mc"), 0, 1, 2, str_Value); // }} "" // {{ 1068 1 0 "550a730a_85d2_4baf_aa34371699ca98ac" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1069 1 0 "6de31cc4_81d8_4290_a9711241b4f4b4d6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1070 1 0 "d6a6e19c_e9c1_4e4e_920ad4808e88cd10" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1071 1 0 "c4478707_019b_4417_b91064d20c28feb1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mp"), 0.0, 10.0, 3, str_Value); // }} "" // {{ 1072 1 0 "7d53c675_dc02_420f_98789444ae476131" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1073 1 0 "d6a6e19c_e9c1_4e4e_920ad4808e88cd10" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1074 1 0 "ea121f4e_e153_4ff7_80782cd8c480ca8b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1075 1 0 "d2da25bc_271b_4c2a_8084da74ecdc293a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ms"), 10.0, 10.0, 4, str_Value); // }} "" // {{ 1076 1 0 "71bbf379_e740_4e03_9ba750683f34333a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1077 1 0 "ea121f4e_e153_4ff7_80782cd8c480ca8b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1078 1 0 "f36b0e62_12e2_4d5f_a2c366bc4af6534f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1079 1 0 "ab4e69aa_4344_47e9_8c03b74ee5894fbd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mh"), 0.0, 10.0, 4, str_Value); // }} "" // {{ 1080 1 0 "4add9de4_42db_4c1b_859ea26020e39e96" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1081 1 0 "f36b0e62_12e2_4d5f_a2c366bc4af6534f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1082 1 0 "21889970_dea4_437b_bed8fb9ddaad6cd6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1083 1 0 "27edd796_e737_4755_b63e5163a4914759" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gi"), Translate("000&")); // }} "" // {{ 1084 1 0 "03a2abc4_637d_4551_beb5bc7d5cb792a7" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1085 1 0 "21889970_dea4_437b_bed8fb9ddaad6cd6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1086 1 0 "e5555857_e599_4bb8_a73164ae5c526bd7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1087 1 0 "1a854e1a_bde1_41dc_abedfc7d10622aa3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gj"), Translate("0")); // }} "" // {{ 1088 1 0 "8071ddfe_427e_4683_aa81b79e2b4edc56" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1089 1 0 "e5555857_e599_4bb8_a73164ae5c526bd7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1090 1 0 "35072636_8007_411f_b97db6f03cfc7c8a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1091 1 0 "860f41b4_a49a_4e17_906788b07810de41" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gk"), Translate("0")); // }} "" // {{ 1092 1 0 "a45a1908_57ba_47fc_b726314b4fef8ef0" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1093 1 0 "35072636_8007_411f_b97db6f03cfc7c8a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1094 1 0 "81e98615_ea48_435d_9c49ed8d65f7180d" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalParams=arr_Params.GetSize(); // }} "" // {{ 1095 1 0 "5b58bb5e_dac0_4533_913e0ca42114e85e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Params = Translate(""); // }} "" // {{ 1096 1 0 "d55ecb3e_6957_40a8_964056f10a1f801e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalParams;) { i = i + 1; // }} "" // {{{ 1097 1 0 "c7ff29eb_7c89_49f5_89ea486248a0a2b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Params = StrConcat2(str_Params, arr_Params.ElementAt( i -1)); // }} "" // {{ 1098 1 0 "d55ecb3e_6957_40a8_964056f10a1f801e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1099 1 0 "f39ff15f_e006_4bc8_a585c6ee2aa23884" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE06(Translate("Firmware Command: "), str_FirmwareCommand, Translate(" : "), str_Params, Translate(""), Translate("")); // }} "" // {{ 1100 1 0 "c192e6c9_c9c1_4660_9c199436b43dc3e0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE) { // }} "" // {{ 1101 1 0 "e41152cf_42d5_468f_80c610425a747e08" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("e41152cf_42d5_468f_80c610425a747e08"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 1102 1 0 "67250a8d_be3e_4105_88ca3701c41888e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(str_FirmwareCommand, str_ReturnValue, BOOLEON::TRUE); // }} "" // {{ 1103 1 0 "c192e6c9_c9c1_4660_9c199436b43dc3e0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "PIPAspirateFromFixedHeight_ArrayVolumes" "End" } // }} "" // {{{ 5 "PIPDispenseFromFixedHeight_ArrayVolumes" "Begin" function PIPDispenseFromFixedHeight_ArrayVolumes( device & ML_STAR, variable i_str_ChannelPattern, variable i_int_DispenseMode, variable & i_arr_XCoord[], variable & i_arr_YCoord[], variable & i_arr_FixedHeights[], variable & i_arr_DispenseDistance[], variable i_flt_StartTraverseHeight, variable i_flt_EndTranverseHeight, variable i_flt_MinimumHeight, variable i_flt_ZBottom, variable & i_arr_DispenseVolume[], variable i_flt_DispenseSpeed, variable i_flt_CutOffSpeed, variable i_flt_StopBackVolume, variable i_flt_TransportAirGap, variable i_flt_BlowoutVolume, variable i_int_SettlingTime, variable i_flt_SwapSpeed, variable i_flt_PullOutDistance, variable i_flt_MaximumHeight ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable str_Params; private variable i; private variable flt_EndLocation; private variable flt_LiquidFollow; private variable str_FirmwareCommand; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_DispenseMode; private variable int_TotalParams; private variable int_Count; private variable str_ChannelValue; private variable flt_PullOut; private variable int_Value; private variable str_ChPattern; private variable str_Value; private variable arr_Params[]; private variable arr_PullOutDistance[]; // {{ 5 "PIPDispenseFromFixedHeight_ArrayVolumes" "InitLocals" // }} "" // {{{ 1304 1 0 "7c0baacc_f10b_40a6_9f87eb6e0136266d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 1305 1 0 "b2b3c9d5_5e67_4815_b55c582c675af6cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1306 1 0 "5db64fbe_da21_47ee_a27d65c1c9949ed1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1308 1 0 "8ab6432c_1739_459a_a033538479822b5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 1309 1 0 "e7a220dd_f862_4eba_9be62cf43de09c6b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1310 1 0 "25ce81e5_4093_4a5f_9ef614c24be1e948" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 1311 1 0 "ff2b6579_fcac_488c_9e0a6d1b4aabf72a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1312 1 0 "72e000c5_cf5c_4d15_8ec6f2fc2f41c968" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 1313 1 0 "e4d7c850_408c_4de9_a42a9ef2dc243bf3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 1314 1 0 "b2b3c9d5_5e67_4815_b55c582c675af6cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1315 1 0 "c272ea88_bd5d_4fd7_90af58ee151b879d" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Params.SetSize(0); // }} "" // {{ 1316 1 0 "a6e6454c_78eb_4282_a1cbf4e7c6bd6727" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FirmwareCommand = Translate("C0DS"); // }} "" // {{ 1317 1 0 "5fb43361_5cf8_4b86_afa491d2ff6d11ff" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1318 1 0 "38b54daa_fca8_44d2_9b50409dacde9aea" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 1; // }} "" // {{ 1319 1 0 "2ee47076_5bd4_4101_89fa49f2181887f0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_DispenseMode == 0) { // }} "" // {{ 1320 1 0 "7c8b6d9f_18c8_46fc_b30ac9b6e9b931a2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 0; // }} "" // {{ 1321 1 0 "2ee47076_5bd4_4101_89fa49f2181887f0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1322 1 0 "cb5fcfc1_7d55_4af1_af734d3fb7918b90" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_DispenseMode == 1) { // }} "" // {{ 1323 1 0 "183bfb31_da4f_407c_b40767600e49dae3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 2; // }} "" // {{ 1324 1 0 "cb5fcfc1_7d55_4af1_af734d3fb7918b90" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1325 1 0 "2962c7fb_7faa_4933_8c5f02bbc501d93b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_DispenseMode == 2) { // }} "" // {{ 1326 1 0 "98c9efe3_bcc3_4b37_9d368e3726993b75" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 0; // }} "" // {{ 1327 1 0 "2962c7fb_7faa_4933_8c5f02bbc501d93b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1328 1 0 "ad586d99_3f8a_4076_ad771629f6233a5e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_DispenseMode == 3) { // }} "" // {{ 1329 1 0 "f7f10f70_fbb2_45ed_85d4a11c9f2b1289" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 1; // }} "" // {{ 1330 1 0 "ad586d99_3f8a_4076_ad771629f6233a5e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1331 1 0 "6b35c5d8_9ed9_4d80_bdb8a683574785c1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_DispenseMode == 4) { // }} "" // {{ 1332 1 0 "d6fad0a3_1ddb_45c1_9f63efdd9c39cfaa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 2; // }} "" // {{ 1333 1 0 "6b35c5d8_9ed9_4d80_bdb8a683574785c1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1334 1 0 "b1f7c689_677c_4c5e_a349c32d59c2be26" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_DispenseMode == 5) { // }} "" // {{ 1335 1 0 "54d579d6_edd6_4d2c_a71a20cfce607532" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 3; // }} "" // {{ 1336 1 0 "b1f7c689_677c_4c5e_a349c32d59c2be26" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1337 1 0 "95fe9aa6_9647_4fdc_8b926fd02820eb2c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_DispenseMode == 6) { // }} "" // {{ 1338 1 0 "2483b720_9ed2_45be_a5d41854dd34f195" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseMode = 4; // }} "" // {{ 1339 1 0 "95fe9aa6_9647_4fdc_8b926fd02820eb2c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1340 1 0 "83d9099f_7c21_4230_9cea602b6848d90e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat4(Translate("dm"), int_DispenseMode, Translate("&"), Translate("")); // }} "" // {{ 1341 1 0 "261aee9b_7467_4d38_91383068a79f5db4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1342 1 0 "5fb43361_5cf8_4b86_afa491d2ff6d11ff" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1343 1 0 "624faa85_dcc0_4c31_84875a288c92b907" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1344 1 0 "5ff8d449_1ed8_4b43_98bea9ae52688cf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrConcat2(i_str_ChannelPattern, Translate("")); // }} "" // {{{ 1345 1 0 "65152c52_23e1_4b40_995b6425d7e8d612" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrFillRight(str_ChPattern, Translate("0"), G_FW_PIP_COM_TotalChannels); // }} "" // {{ 1346 1 0 "bd985c53_bf9b_4ba9_acb514eb75676d39" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Value = Translate("tm"); // }} "" // {{ 1347 1 0 "e463785c_4f0c_4685_893449b2b725db67" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < G_FW_PIP_COM_TotalChannels;) { i = i + 1; // }} "" // {{{ 1348 1 0 "1a347561_90ed_4d59_a313211fa019cf19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelValue = StrLeft(str_ChPattern, i); // }} "" // {{{ 1349 1 0 "543e483e_6d0d_4db0_a9fb7f90bf860540" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelValue = StrRight(str_ChannelValue, 1); // }} "" // {{{ 1350 1 0 "74498f5b_5a0d_4dfc_ba789ea921c57196" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(str_Value, str_ChannelValue); // }} "" // {{ 1351 1 0 "d69b2172_2049_453a_99d780885e6d25b1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i < G_FW_PIP_COM_TotalChannels) { // }} "" // {{{ 1352 1 0 "a31f904d_8500_4337_80dc5e1ee902b05f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(str_Value, Translate(" ")); // }} "" // {{ 1353 1 0 "d69b2172_2049_453a_99d780885e6d25b1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1354 1 0 "e463785c_4f0c_4685_893449b2b725db67" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1355 1 0 "334ef6b6_a7ed_4232_98d6484264efd04a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1356 1 0 "624faa85_dcc0_4c31_84875a288c92b907" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1357 1 0 "6332c056_ffd3_453a_a8718068e5828b29" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1358 1 0 "a33c8b27_14a3_41d6_aefdf04fd7c1a8d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("xp"), i_arr_XCoord, 10.0, 5, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 1359 1 0 "d54974e2_db0d_4d3a_8e06ae2d0ffca4dd" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1360 1 0 "6332c056_ffd3_453a_a8718068e5828b29" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1361 1 0 "e6fec685_aa86_4a32_853546c74db43370" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1362 1 0 "8c07a545_3194_4deb_9759a0acb5983c4c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("yp"), i_arr_YCoord, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 1363 1 0 "b3870596_0f7e_4a91_9d80ae9592754b8e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1364 1 0 "e6fec685_aa86_4a32_853546c74db43370" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1365 1 0 "51fbd8b9_3aea_4086_8cc0ffeeea331439" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1366 1 0 "5bbf3d62_2e04_49a5_89e74ffa5038e49b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("zx"), i_flt_MinimumHeight, 10.0, 4, str_Value); // }} "" // {{ 1367 1 0 "8e6ef7ac_2113_4b74_86e2fed5dcbb7b59" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1368 1 0 "51fbd8b9_3aea_4086_8cc0ffeeea331439" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1369 1 0 "c7b29c01_36dc_4b9a_a9def3b807af9690" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1370 1 0 "f0cb4105_56bc_49d7_b17063c8af82fce2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("th"), i_flt_StartTraverseHeight, 10.0, 4, str_Value); // }} "" // {{ 1371 1 0 "d33f8158_eadf_4e3a_9a3a94954ea09634" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1372 1 0 "c7b29c01_36dc_4b9a_a9def3b807af9690" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1373 1 0 "9203d5c2_1620_4254_90bc2028a06c7bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1374 1 0 "ce584b50_cbe0_4b6b_84df430865ef4c44" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParameter(Translate("te"), i_flt_EndTranverseHeight, 10.0, 4, str_Value); // }} "" // {{ 1375 1 0 "e045695d_873a_4e97_a0687c5571b0b77d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1376 1 0 "9203d5c2_1620_4254_90bc2028a06c7bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1377 1 0 "861ecd5a_fe2d_489d_85e59c5896b2d25c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1378 1 0 "9cccd8f2_5cb8_4891_80e01cc981ac9656" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("lp"), 245.0, 10.0, 4, str_Value); // }} "" // {{ 1379 1 0 "fc2aad27_efbf_4d85_8d50c2e1fecfd7eb" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1380 1 0 "861ecd5a_fe2d_489d_85e59c5896b2d25c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1381 1 0 "ced12e31_e0a7_411f_b2de42411a801067" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1382 1 0 "8e4d6db8_8476_4be5_a16da909bec3c93a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("zl"), i_arr_FixedHeights, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 1383 1 0 "42efcd98_e9c7_4a83_9f8ad3c304fdafce" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1384 1 0 "ced12e31_e0a7_411f_b2de42411a801067" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1385 1 0 "befcd0f0_4547_4eb7_b77ae5f2d021d0b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1386 1 0 "8cfe825e_c79f_4f68_a1fc5fe341422082" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_PullOutDistance.SetSize(0); // }} "" // {{ 1387 1 0 "04a4d790_e572_44a6_b38c0be54f3174e2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < G_FW_PIP_COM_TotalChannels;) { i = i + 1; // }} "" // {{ 1388 1 0 "2604f440_c75c_4ea7_8e86584dadfe7b9a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollow = i_arr_DispenseDistance.ElementAt( i -1); // }} "" // {{ 1389 1 0 "ac6cb32a_dee3_4106_8fc1006e3976a978" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndLocation = i_arr_FixedHeights.ElementAt( i -1) - 0.0; // }} "" // {{ 1390 1 0 "bd63c733_8406_4e50_bbb426cc80165fb6" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndLocation = flt_EndLocation + flt_LiquidFollow; // }} "" // {{ 1391 1 0 "c767737b_8fab_46bc_8d8ac3962ad153b0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndLocation = flt_EndLocation + i_flt_PullOutDistance; // }} "" // {{ 1392 1 0 "0293d1bd_040c_41d8_a2eca4d83b9e990e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_EndLocation > i_flt_MaximumHeight) { // }} "" // {{ 1393 1 0 "4323e18d_42b3_4cc8_80c4cabb48eca8a8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndLocation = i_flt_MaximumHeight - 0.5; // }} "" // {{ 1394 1 0 "0293d1bd_040c_41d8_a2eca4d83b9e990e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1395 1 0 "ff87967f_432a_484b_9cfcb1083ab21baa" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_PullOut = flt_EndLocation + 0.0; // }} "" // {{ 1396 1 0 "150aa8bf_8325_4ddb_8615eaea5c12697b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_PullOut = flt_PullOut - flt_LiquidFollow; // }} "" // {{ 1397 1 0 "a302338e_8277_4b9e_a3b84f3576eab32b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_PullOut = flt_PullOut - i_arr_FixedHeights.ElementAt( i -1); // }} "" // {{ 1398 1 0 "87039c09_ff4d_43c0_94ca12d6612bbfea" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_PullOut < 0.0) { // }} "" // {{ 1399 1 0 "d2c2b102_246b_45cb_b90787566ba502b8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_PullOut = 0.0; // }} "" // {{ 1400 1 0 "87039c09_ff4d_43c0_94ca12d6612bbfea" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1401 1 0 "7ea7bc40_8d14_4514_87df6bc71f814752" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_PullOutDistance.AddAsLast(flt_PullOut); // }} "" // {{ 1402 1 0 "04a4d790_e572_44a6_b38c0be54f3174e2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1403 1 0 "1c034f38_80e1_4c86_85270d8dfcfc7b61" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("po"), arr_PullOutDistance, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 1404 1 0 "a55316af_9084_4254_8ce8794074358251" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1405 1 0 "befcd0f0_4547_4eb7_b77ae5f2d021d0b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1406 1 0 "020edf2a_2f19_42dc_8d5b7adc24f7e409" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1407 1 0 "94430471_4933_48ff_9aecca474f750bb3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ip"), 0.0, 10.0, 4, str_Value); // }} "" // {{ 1408 1 0 "f4d784f8_bf34_44bb_8d293dc54e05d7d6" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1409 1 0 "020edf2a_2f19_42dc_8d5b7adc24f7e409" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1410 1 0 "cb97d0be_4062_4817_9e5756a62e75954b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1411 1 0 "6b76f23a_c750_4d28_854abe6a181a4558" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("fp"), i_arr_DispenseDistance, 10.0, 4, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 1412 1 0 "a0deb586_2e2f_4302_91dd3bcd02bc0e80" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1413 1 0 "cb97d0be_4062_4817_9e5756a62e75954b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1414 1 0 "36bfb394_7fc6_4958_b00d6e1a31355726" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1415 1 0 "0b6ae436_e2c9_4b2e_bc558efeae8f7f1b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersArr(Translate("dv"), i_arr_DispenseVolume, 10.0, 5, G_FW_PIP_COM_TotalChannels, str_Value); // }} "" // {{ 1416 1 0 "018434d8_ee4e_4b64_ae8f114b44e0078a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1417 1 0 "36bfb394_7fc6_4958_b00d6e1a31355726" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1418 1 0 "e460cfc9_7c93_430b_be58b76dd96ee74b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1419 1 0 "57aa4aea_b118_4b2f_a40eeeaad1e1bc40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ds"), i_flt_DispenseSpeed, 10.0, 4, str_Value); // }} "" // {{ 1420 1 0 "37dc318c_a16d_4a16_817172c468f71fd1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1421 1 0 "e460cfc9_7c93_430b_be58b76dd96ee74b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1422 1 0 "59499580_766e_4716_ab0b36b3256d02f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1423 1 0 "4433b223_d3ba_4cee_ae6ed7fd80c8bb56" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ss"), i_flt_CutOffSpeed, 10.0, 4, str_Value); // }} "" // {{ 1424 1 0 "80a950f7_c9c1_494d_87333547343d1f1f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1425 1 0 "59499580_766e_4716_ab0b36b3256d02f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1426 1 0 "400d2368_a189_49bb_9ad3afdc1985cb5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1427 1 0 "966c1f2d_b3cb_4373_a64ae6bec9e88d4c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("rv"), i_flt_StopBackVolume, 10.0, 3, str_Value); // }} "" // {{ 1428 1 0 "a25eaa29_aa66_4c40_a033a1fff796c0cb" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1429 1 0 "400d2368_a189_49bb_9ad3afdc1985cb5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1430 1 0 "bdebee86_c24e_4a77_9f80fb3adfc716fe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1431 1 0 "eabecaf5_9272_4749_b1baace21e14ba27" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ta"), i_flt_TransportAirGap, 10.0, 3, str_Value); // }} "" // {{ 1432 1 0 "97c30544_41fd_4c76_bd898fb899850530" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1433 1 0 "bdebee86_c24e_4a77_9f80fb3adfc716fe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1434 1 0 "d3d168ec_fc46_4f2f_85779752c9457c84" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1435 1 0 "274ff24d_6462_4932_882564ea9a97d706" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ba"), i_flt_BlowoutVolume, 10.0, 4, str_Value); // }} "" // {{ 1436 1 0 "4b9787c3_e6a7_4c43_ae438f265e12e844" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1437 1 0 "d3d168ec_fc46_4f2f_85779752c9457c84" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1438 1 0 "82049daa_eea8_4da3_a8bbac32e99e8d70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1439 1 0 "370fc510_d68d_491d_a8f018f7d52ebc9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("lm"), Translate("")); // }} "" // {{{ 1440 1 0 "6a718259_4f8a_4427_adba379175e5148a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrConcat2(0, Translate("")); // }} "" // {{{ 1441 1 0 "31711ecf_c7fb_4ef7_8fdc75a709f7c63d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat4(str_Value, int_Value, Translate("&"), Translate("")); // }} "" // {{ 1442 1 0 "21346387_6ddd_4702_911bb3df929a8bfa" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1443 1 0 "82049daa_eea8_4da3_a8bbac32e99e8d70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1444 1 0 "6d8042e5_fcf2_493e_a2cd07ff7104c2aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1445 1 0 "adbf504c_8a1f_4567_859948293c95ad49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("ll"), Translate("")); // }} "" // {{{ 1446 1 0 "302fce50_a9bd_41d6_89296f6ae866320a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrConcat2(1, Translate("")); // }} "" // {{{ 1447 1 0 "9c878000_246c_4a20_bfc370831c60510c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat4(str_Value, int_Value, Translate("&"), Translate("")); // }} "" // {{ 1448 1 0 "87f66c4a_473f_446c_a51b601714e64bbe" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1449 1 0 "6d8042e5_fcf2_493e_a2cd07ff7104c2aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1450 1 0 "731ade0f_83a0_42bc_a11a362ba44d3d7c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1451 1 0 "a405e6d1_154f_4b67_b1528073c0346377" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("de"), i_flt_SwapSpeed, 10.0, 4, str_Value); // }} "" // {{ 1452 1 0 "b9692a1a_7469_4611_b466a6c9d580066f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1453 1 0 "731ade0f_83a0_42bc_a11a362ba44d3d7c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1454 1 0 "0a8b61f1_018e_45f8_b865a2ecbe3ec7f3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1455 1 0 "4dfeabba_c20f_4436_8c4797404d4c896b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("wt"), i_int_SettlingTime, 10.0, 2, str_Value); // }} "" // {{ 1456 1 0 "62525ed1_86e6_4ec0_946a0bee2cd0243c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1457 1 0 "0a8b61f1_018e_45f8_b865a2ecbe3ec7f3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1458 1 0 "a93c234d_9cf2_4be3_9646a94cd1fd0a74" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1459 1 0 "251b30fa_9053_435a_960b4e4236307251" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mv"), 0.0, 10.0, 5, str_Value); // }} "" // {{ 1460 1 0 "157f5099_d49c_4ada_a56e9470ee19fb4a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1461 1 0 "a93c234d_9cf2_4be3_9646a94cd1fd0a74" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1462 1 0 "86b4178f_7d81_413f_927c02bcb8ef769c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1463 1 0 "401c42b1_bdfa_4f45_98c8a8ee479e036c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mc"), 0, 1, 2, str_Value); // }} "" // {{ 1464 1 0 "af9289e7_8c58_4636_9c734424a749ebb7" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1465 1 0 "86b4178f_7d81_413f_927c02bcb8ef769c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1466 1 0 "57a380ec_5d42_48bd_82226920c291fe2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1467 1 0 "153c321b_e412_4add_8dacbf0df1b11b1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mp"), 0.0, 10.0, 3, str_Value); // }} "" // {{ 1468 1 0 "46388a12_8bdf_4c84_b4389f3773e67af4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1469 1 0 "57a380ec_5d42_48bd_82226920c291fe2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1470 1 0 "23d76617_5e50_4feb_82139a6b873697b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1471 1 0 "38af4deb_8f74_45b6_8a815867d0de92d6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("ms"), 10.0, 10.0, 4, str_Value); // }} "" // {{ 1472 1 0 "ec1d4f3f_3698_44eb_a2aef660f6865827" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1473 1 0 "23d76617_5e50_4feb_82139a6b873697b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1474 1 0 "e7ac3e37_6751_43f7_ae189f0de6957ad3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1475 1 0 "55f8b4cf_264e_419f_92e624b25a90423e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::SetParametersAll(Translate("mh"), 0.0, 10.0, 4, str_Value); // }} "" // {{ 1476 1 0 "171c5de9_ee35_4815_87044442d5c4a5f3" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1477 1 0 "e7ac3e37_6751_43f7_ae189f0de6957ad3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1478 1 0 "ce438748_a281_4e39_9eccb9221590bdb0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1479 1 0 "4ae01db9_fd1b_4779_b543f4dcc7bd8629" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gi"), Translate("000&")); // }} "" // {{ 1480 1 0 "6a13cc2d_6110_4e87_aad6d3435846cf74" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1481 1 0 "ce438748_a281_4e39_9eccb9221590bdb0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1482 1 0 "b6b4c8cf_d0d2_45fc_bfbde4a6ada7d2ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1483 1 0 "d638f2d4_3600_4772_9269efda6090fa5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gj"), Translate("0")); // }} "" // {{ 1484 1 0 "6136f59a_8326_4b41_895495d0d7abefc2" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1485 1 0 "b6b4c8cf_d0d2_45fc_bfbde4a6ada7d2ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1486 1 0 "58feaa3a_5d13_4660_861373536eb40dee" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1487 1 0 "67c0faa7_e259_4d0a_88f71bd5d7c751ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrConcat2(Translate("gk"), Translate("0")); // }} "" // {{ 1488 1 0 "54703d1b_c3c1_44f4_8a58359a3179e2bc" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Params.AddAsLast(str_Value); // }} "" // {{ 1489 1 0 "58feaa3a_5d13_4660_861373536eb40dee" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1490 1 0 "a4601fbf_1015_41a0_a48e10a9c2dbc2d0" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalParams=arr_Params.GetSize(); // }} "" // {{ 1491 1 0 "e5b07196_07e8_4e81_a1e9aa8119811c92" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Params = Translate(""); // }} "" // {{ 1492 1 0 "eb380651_9984_4dde_b96d35df33ed5f3c" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalParams;) { i = i + 1; // }} "" // {{{ 1493 1 0 "18d94b55_1a34_492a_8ce04cc75c25e3dd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Params = StrConcat2(str_Params, arr_Params.ElementAt( i -1)); // }} "" // {{ 1494 1 0 "eb380651_9984_4dde_b96d35df33ed5f3c" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1495 1 0 "3df79614_2e36_41f5_b0434ed7edffae53" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE06(Translate("Firmware Command: "), str_FirmwareCommand, Translate(" : "), str_Params, Translate(""), Translate("")); // }} "" // {{ 1496 1 0 "5fa9165d_743c_4d9e_ab5b589535d707c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE) { // }} "" // {{ 1497 1 0 "e010b6f2_78bf_4632_be2aa286cda18776" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("e010b6f2_78bf_4632_be2aa286cda18776"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 1498 1 0 "569684ba_b55f_4a08_a4721638358a6529" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(str_FirmwareCommand, str_ReturnValue, BOOLEON::TRUE); // }} "" // {{ 1499 1 0 "5fa9165d_743c_4d9e_ab5b589535d707c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "PIPDispenseFromFixedHeight_ArrayVolumes" "End" } // }} "" // {{{ 5 "GetChannelNumber5mL" "Begin" function GetChannelNumber5mL( device & ML_STAR, variable & o_int_ChannelCount ) void { // }} "" // {{ 5 "GetChannelNumber5mL" "InitLocals" o_int_ChannelCount = 0; // }} "" // {{{ 4 1 0 "5eadf372_7f6d_40c4_a2c2b7be42ce2612" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 5 1 0 "338a8122_3162_4e32_b056293acd740a34" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_ChannelCount = G_FW_XL_COM_TotalChannels; // }} "" // {{{ 5 "GetChannelNumber5mL" "End" } // }} "" // {{{ 5 "GetChannelRaster5mL" "Begin" function GetChannelRaster5mL( device & ML_STAR, variable & o_flt_ChannelRaster ) void { // }} "" // {{ 5 "GetChannelRaster5mL" "InitLocals" o_flt_ChannelRaster = 0; // }} "" // {{{ 59 1 0 "9e93a6e2_cf61_48bc_8e82ba8929d0f23a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 60 1 0 "c52e0ac2_3124_44dc_a4c777716b270df4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_ChannelRaster = G_FW_XL_COM_Raster; // }} "" // {{{ 5 "GetChannelRaster5mL" "End" } // }} "" // {{{ 5 "Get_Tip_Volume_5mL" "Begin" function Get_Tip_Volume_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable bol_ParameterFound; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_TotalFound; private variable flt_Resolution; private variable int_Count; private variable str_Firmware; private variable arr_Values[]; // {{ 5 "Get_Tip_Volume_5mL" "InitLocals" o_flt_MaxTipVolume = 0; o_flt_CurrentVolumeInTip = 0; // }} "" // {{ 273 1 0 "60a64b0f_e5ec_4df4_a186b39ad3d12bd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 274 1 0 "ba1f6888_a9ab_435e_900b5e3889da4d99" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 276 1 0 "f53a62cc_dcf8_4f7d_85bef8bf2a7db230" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 277 1 0 "be1e77ce_c325_4df1_8e4c7cd9bc7a4345" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 278 1 0 "471ca568_8837_4c0a_836609fa48cab444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 279 1 0 "26066c3f_211f_44ba_aa548c99af927539" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 280 1 0 "b202cf5c_3b29_4d54_b464f7b576d376de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 281 1 0 "8505736b_8747_439a_90e691254f97eab8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 282 1 0 "60a64b0f_e5ec_4df4_a186b39ad3d12bd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 283 1 0 "9083b1e4_2f58_486d_bad0810ea848dd8f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::GetChannelValue(i_int_CurrentChannel, i_int_CurrentChannel); // }} "" // {{ 284 1 0 "4d82225d_ceaa_43d8_b5dcc72bf1ae20c8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_MaxTipVolume = 0.0; // }} "" // {{ 285 1 0 "feb8955c_289b_4435_aac6859f9cf1eb06" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentVolumeInTip = 0.0; // }} "" // {{ 286 1 0 "fb25930c_f3a1_4478_91451a5b885a7df7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE) { // }} "" // {{ 287 1 0 "cfe087ec_1481_4196_8b5d3e75939de8f1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_FirmwareType == 1) { // }} "" // {{ 288 1 0 "803105de_09c5_484b_973fad35802be690" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 289 1 0 "8b14f2dc_af4e_460e_ba67141edeb4bd01" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution = 0.044711063; // }} "" // {{ 290 1 0 "f7d6be36_1da3_4298_a60c43592c0abde6" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 291 1 0 "47b2d09f_5ba1_43e6_98ec860c770b3b94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Firmware = StrConcat4(Translate("L"), i_int_CurrentChannel, Translate("QC"), Translate("")); // }} "" // {{ 292 1 0 "4adaa130_c0ec_4c54_83596ec9e2945c19" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("4adaa130_c0ec_4c54_83596ec9e2945c19"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 293 1 0 "cfe087ec_1481_4196_8b5d3e75939de8f1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 294 1 0 "df73c13a_b607_415b_bf57ed83b38c775e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 295 1 0 "8725f898_b146_4ce1_880ec4ac793bd31f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution = 0.044741106; // }} "" // {{ 296 1 0 "a69e6542_9c81_4345_a35ced8ba9049d5b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 297 1 0 "8782527b_f83b_4969_a3c965a41e7ccdf0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Firmware = StrConcat4(Translate("A1L"), i_int_CurrentChannel, Translate("QC"), Translate("")); // }} "" // {{ 298 1 0 "891d951e_f974_4cb8_b678ca0dfc3f1754" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("891d951e_f974_4cb8_b678ca0dfc3f1754"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 299 1 0 "cfe087ec_1481_4196_8b5d3e75939de8f1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 300 1 0 "3513adf9_401a_471e_b0f1cb8c49e1fb27" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{ 301 1 0 "c763309a_c139_49ea_9e0f5ba5224f7726" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 302 1 0 "36197976_9f7d_481c_bb54ccb24aff5752" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate("qc"), flt_Resolution, 5, 2, bol_ParameterFound, arr_Values); // }} "" // {{ 303 1 0 "71ee7801_ef12_417a_bd46b693ac11df66" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalFound=arr_Values.GetSize(); // }} "" // {{ 304 1 0 "afc022aa_117a_496c_8e09818fa9f94fbc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalFound >= 1) { // }} "" // {{ 305 1 0 "d7454024_dc21_4700_97bb3f760096bbcf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 306 1 0 "c87bd61e_de99_4b48_a442f6c404e84c7b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_MaxTipVolume = arr_Values.ElementAt( 1 -1); // }} "" // {{{ 307 1 0 "1428a845_2918_4290_addedc268fc0ea77" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::RemoveExcessDigits(o_flt_MaxTipVolume); // }} "" // {{ 308 1 0 "d7454024_dc21_4700_97bb3f760096bbcf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 309 1 0 "afc022aa_117a_496c_8e09818fa9f94fbc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 310 1 0 "1b53d4d8_d33c_4c4f_a152fc9abd10538d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 311 1 0 "c45db941_9469_4ff9_91106a2c5f9c28fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalFound >= 2) { // }} "" // {{ 312 1 0 "46b774dc_4359_4c46_b52d998189b8c8cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 313 1 0 "2cefdba4_9b59_495e_8a26baf2d9296d4a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentVolumeInTip = arr_Values.ElementAt( 2 -1); // }} "" // {{{ 314 1 0 "e2753d0f_eead_449c_a2575a357eced7f5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::RemoveExcessDigits(o_flt_CurrentVolumeInTip); // }} "" // {{ 315 1 0 "46b774dc_4359_4c46_b52d998189b8c8cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 316 1 0 "c45db941_9469_4ff9_91106a2c5f9c28fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 317 1 0 "fb25930c_f3a1_4478_91451a5b885a7df7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace(" ","Channel Number: ",i_int_CurrentChannel); Trace(" ","Max tip volume: ",o_flt_MaxTipVolume," uL"); Trace(" ","Current tip volume: ",o_flt_CurrentVolumeInTip," uL"); /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 5 "Get_Tip_Volume_5mL" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=Bare_B$$valid=0$$time=2021-07-29 11:19$$checksum=c22e39db$$length=085$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/HelperLibrary.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 4/20/2022 4:45:49 PM #pragma once #ifndef HSL_RUNTIME namespace HELPERLIBRARY { function _InitLibrary() { } function _ExitLibrary() { } function AdjustSequence( device & ML_STAR, sequence i_seq_SequenceToAdjust, variable i_int_StartingPosition, variable i_int_EndingPosition, sequence & o_seq_AdjustedSequence ) void { } function CalculateVolumeToHeight( device & ML_STAR, variable iLabwareID, variable iLiquidVolume, variable iStartHeight ) variable { return (0); } function CalculateXYFromDiameterAndAngle( variable iDiameter, variable iPhi_Degree, variable & oDelta_X, variable & oDelta_Y ) void { } function ConvertToFloat( variable iVariable, variable & oVariable ) void { } function ConvertToInteger( variable iVariable, variable & oVariable ) void { } function GetCarrierAndSiteID( device & Instrument, variable i_str_Labware, variable & o_str_TemplateID, variable & o_str_TemplateSiteID ) void { } function GetCenterSpotContainer( variable & o_str_CenterSpotContainerPath ) void { } function GetCenterSpotLabware( variable & o_str_CenterSpotLabwarePath ) void { } function GetChannelLimits( device & ML_STAR, variable i_Channel_Type, variable & o_Y_Max[], variable & o_Y_Min[], variable & o_Raster ) variable { return (0); } function GetConfigurationFile( device & i_Instrument, variable i_LabwareID, variable & o_ConfigFile ) void { } function GetConnectedContainer( device & ML_STAR, variable i_str_LabID, variable & o_bool_ConnectedContainer ) void { } function GetContainerBaseOffset( device & io_instrument, variable i_str_Labware, variable i_str_PosID, variable & o_containerBaseOffset ) void { } function GetContainerBaseThickness( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_containerBaseThickness ) void { } function GetContainerConfigurationFile( device & io_instrument, variable i_str_Labware, variable i_str_PosID, variable & o_str_ContainerFileName ) void { } function GetContainerDepth( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_ContainerDepth, variable & o_ContainerClearanceHeight ) void { } function GetContainerGeometry( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_str_ContainerGeometry ) void { } function GetContainerShape( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_int_ContainerShape ) void { } function GetContainerWidth( device & ML_STAR, variable i_str_LabID, variable & o_flt_ContainerWidth ) void { } function GetDefaultSequence( device & ML_STAR, variable i_str_LabID, variable i_bool_SortByColumn, sequence & o_seq_DefaultSequence ) void { } function GetDefinitionFileValue( variable & i_str_ConfigFilePath, variable i_str_ValueToSearch, variable & o_str_Value ) variable { return (0); } function GetFirstPosition( device & ML_STAR, variable i_str_LabID, variable & o_str_PosID ) void { } function GetIndexingFormat( device & io_instrument, variable i_str_Labware, variable & o_positionIndexingFormat ) void { } function GetLabwareCenter2( device & ML_STAR, variable i_str_LabID, variable & o_flt_X_Center, variable & o_flt_Y_Center ) void { } function GetLabwareFileName( device & ML_STAR, variable i_str_LabID, variable & o_str_LabwareFileName ) void { } function GetLabwareLW( device & Instrument, variable i_str_LabID, variable & o_flt_Labware_L, variable & o_flt_Labware_W ) void { } function GetLabwareName( device & ML_STAR, variable i_str_LabID, variable & o_str_ViewName ) void { } function GetLabwareOrigin( device & Instrument, variable i_str_LabID, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void { } function GetLabwareType( device & ML_STAR, variable i_str_LabID, variable & o_str_LabwareType ) void { } function GetLabwareVisibility( device & ML_STAR, variable i_str_LabID, variable & o_int_LabwareVisibility ) void { } function GetRackHeight( device & ML_STAR, variable i_str_LabID, variable & o_flt_RackHeight, variable & o_flt_RackClearanceHeight ) void { } function GetRowColumnNumber( device & Instrument, variable i_str_LabwareID, variable & o_int_RowCount, variable & o_int_ColumnCount, variable & o_bool_AlphaNumeric, variable & o_bool_IncrementContainer ) void { } function GetTempSortingFilePath( variable & o_str_TempSortingFilePath ) void { } function GetTipName( device & ML_STAR, variable i_str_TipLabware, variable & o_str_TipName, variable & o_int_TipType ) void { } function GetTransportSequence( device & ML_STAR, variable i_str_LabID, sequence & o_seq_TransportSequence ) void { } function GetZTranslate( device & ML_STAR, variable i_str_LabID, variable & o_flt_ZTranslate, variable & o_flt_ZTransValue ) void { } function Lookup( variable & array[], variable item ) variable { return (0); } function RemoveTruncatedSequencePositions( device & Instrument, sequence & io_Sequence ) void { } function ReplaceLabware( device & ML_STAR, variable i_str_LabID, variable i_str_NewConfigFile ) void { } function SetAbsolutePositionForLabwareID( device & io_devDevice, variable i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void { } function Set_Channel_Pattern( variable & io_Channel_Pattern, variable i_Channel_Number, variable i_Value ) void { } function Set_Relative_Position_for_LabwareID( device & io_devDevice, variable & i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void { } function SortSequence( device & Instrument, sequence & io_Sequence, variable i_bln_ByLabID ) void { } function SortSequenceRaster( device & Instrument, sequence & io_Sequence, variable i_bln_ByLabID, variable i_flt_YRaster ) void { } function SortSequences( device & Instrument, sequence & io_Sequence1, sequence & io_Sequence2, variable i_bln_ByLabID ) void { } function SplitString( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { } function TipCapacityCheck( device & Instrument, variable i_str_TipLabware, variable & o_flt_TipCapacity ) void { } function TipCheck( device & Instrument, sequence & i_seq_Tips, variable i_str_TipCounter, variable i_int_TipsNeeded ) void { } function _ConvertToFloat( variable & io_Variable ) void { } function _ConvertToInt( variable & io_Variable ) void { } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=Bare_B$$valid=0$$time=2022-04-20 16:45$$checksum=e738357c$$length=083$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/HelperLibrary.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "HSLStrLib.hsl" #include "Alpha Numeric Conversion\\Alpha Numeric Conversion.hs_" #include "HSLSeqLib.hsl" #include "HSLDevLib.hsl" #include "HSLUtilLib2.hsl" #include "HSLTrcLib.hsl" #include "HSLMthLib.hsl" #include "HSLExtensions\\File.hsl" #include "HSLMlStarStepReturnLib.hsl" #include "HSLUtilLib.hsl" #include "HSLTipCountingLib.hsl" #include "HSLDeckVisualize.hsl" #include "HSLStatistics.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" #include "HSLPTLLib.hsl" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace HELPERLIBRARY { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function AdjustSequence( device & ML_STAR, sequence i_seq_SequenceToAdjust, variable i_int_StartingPosition, variable i_int_EndingPosition, sequence & o_seq_AdjustedSequence ) void ; function CalculateVolumeToHeight( device & ML_STAR, variable iLabwareID, variable iLiquidVolume, variable iStartHeight ) variable ; function CalculateXYFromDiameterAndAngle( variable iDiameter, variable iPhi_Degree, variable & oDelta_X, variable & oDelta_Y ) void ; function ConvertToFloat( variable iVariable, variable & oVariable ) void ; function ConvertToInteger( variable iVariable, variable & oVariable ) void ; private function FindLiquidHeight( device & ML_STAR, variable i_str_LiquidLevelReturn, sequence i_seq_Labware, variable i_int_Channel, variable & o_flt_LiquidHeight ) void ; function GetCarrierAndSiteID( device & Instrument, variable i_str_Labware, variable & o_str_TemplateID, variable & o_str_TemplateSiteID ) void ; function GetCenterSpotContainer( variable & o_str_CenterSpotContainerPath ) void ; function GetCenterSpotLabware( variable & o_str_CenterSpotLabwarePath ) void ; function GetChannelLimits( device & ML_STAR, variable i_Channel_Type, variable & o_Y_Max[], variable & o_Y_Min[], variable & o_Raster ) variable ; function GetConfigurationFile( device & i_Instrument, variable i_LabwareID, variable & o_ConfigFile ) void ; function GetConnectedContainer( device & ML_STAR, variable i_str_LabID, variable & o_bool_ConnectedContainer ) void ; function GetContainerBaseOffset( device & io_instrument, variable i_str_Labware, variable i_str_PosID, variable & o_containerBaseOffset ) void ; function GetContainerBaseThickness( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_containerBaseThickness ) void ; function GetContainerConfigurationFile( device & io_instrument, variable i_str_Labware, variable i_str_PosID, variable & o_str_ContainerFileName ) void ; function GetContainerDepth( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_ContainerDepth, variable & o_ContainerClearanceHeight ) void ; function GetContainerGeometry( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_str_ContainerGeometry ) void ; function GetContainerShape( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_int_ContainerShape ) void ; function GetContainerWidth( device & ML_STAR, variable i_str_LabID, variable & o_flt_ContainerWidth ) void ; function GetDefaultSequence( device & ML_STAR, variable i_str_LabID, variable i_bool_SortByColumn, sequence & o_seq_DefaultSequence ) void ; function GetDefinitionFileValue( variable & i_str_ConfigFilePath, variable i_str_ValueToSearch, variable & o_str_Value ) variable ; function GetFirstPosition( device & ML_STAR, variable i_str_LabID, variable & o_str_PosID ) void ; function GetIndexingFormat( device & io_instrument, variable i_str_Labware, variable & o_positionIndexingFormat ) void ; function GetLabwareCenter2( device & ML_STAR, variable i_str_LabID, variable & o_flt_X_Center, variable & o_flt_Y_Center ) void ; private function GetLabwareCenter2_OLD( device & ML_STAR, variable i_str_LabID, variable & o_flt_X_Center, variable & o_flt_Y_Center ) void ; private function GetLabwareCenter_OLD( device & ML_STAR, variable i_str_LabID, variable & o_flt_Center_X, variable & o_flt_Center_Y ) void ; function GetLabwareFileName( device & ML_STAR, variable i_str_LabID, variable & o_str_LabwareFileName ) void ; function GetLabwareLW( device & Instrument, variable i_str_LabID, variable & o_flt_Labware_L, variable & o_flt_Labware_W ) void ; function GetLabwareName( device & ML_STAR, variable i_str_LabID, variable & o_str_ViewName ) void ; function GetLabwareOrigin( device & Instrument, variable i_str_LabID, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void ; private function GetLabwareOrigin_OLD( device & ML_STAR, variable i_str_LabID, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void ; function GetLabwareType( device & ML_STAR, variable i_str_LabID, variable & o_str_LabwareType ) void ; function GetLabwareVisibility( device & ML_STAR, variable i_str_LabID, variable & o_int_LabwareVisibility ) void ; private function GetProbeAdjustment( device & ML_STAR, variable i_str_LabID, variable & o_flt_XProbeAdjustment, variable & o_flt_YProbeAdjustment, variable & o_flt_ZProbeAdjustment ) void ; function GetRackHeight( device & ML_STAR, variable i_str_LabID, variable & o_flt_RackHeight, variable & o_flt_RackClearanceHeight ) void ; function GetRowColumnNumber( device & Instrument, variable i_str_LabwareID, variable & o_int_RowCount, variable & o_int_ColumnCount, variable & o_bool_AlphaNumeric, variable & o_bool_IncrementContainer ) void ; function GetTempSortingFilePath( variable & o_str_TempSortingFilePath ) void ; function GetTipName( device & ML_STAR, variable i_str_TipLabware, variable & o_str_TipName, variable & o_int_TipType ) void ; function GetTransportSequence( device & ML_STAR, variable i_str_LabID, sequence & o_seq_TransportSequence ) void ; function GetZTranslate( device & ML_STAR, variable i_str_LabID, variable & o_flt_ZTranslate, variable & o_flt_ZTransValue ) void ; function Lookup( variable & array[], variable item ) variable ; function RemoveTruncatedSequencePositions( device & Instrument, sequence & io_Sequence ) void ; private function RemoveTruncatedSequencePositionsOLD( device & ML_STAR, sequence & io_Sequence ) void ; function ReplaceLabware( device & ML_STAR, variable i_str_LabID, variable i_str_NewConfigFile ) void ; function SetAbsolutePositionForLabwareID( device & io_devDevice, variable i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void ; function Set_Channel_Pattern( variable & io_Channel_Pattern, variable i_Channel_Number, variable i_Value ) void ; function Set_Relative_Position_for_LabwareID( device & io_devDevice, variable & i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void ; function SortSequence( device & Instrument, sequence & io_Sequence, variable i_bln_ByLabID ) void ; function SortSequenceRaster( device & Instrument, sequence & io_Sequence, variable i_bln_ByLabID, variable i_flt_YRaster ) void ; function SortSequences( device & Instrument, sequence & io_Sequence1, sequence & io_Sequence2, variable i_bln_ByLabID ) void ; function SplitString( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; function TipCapacityCheck( device & Instrument, variable i_str_TipLabware, variable & o_flt_TipCapacity ) void ; function TipCheck( device & Instrument, sequence & i_seq_Tips, variable i_str_TipCounter, variable i_int_TipsNeeded ) void ; function _ConvertToFloat( variable & io_Variable ) void ; function _ConvertToInt( variable & io_Variable ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" PTL::SetWashingStateDefault("RinseTime1", 5); PTL::SetWashingStateDefault("SoakTime1", 5); PTL::SetWashingStateDefault("FlowRate1", 11); PTL::SetWashingStateDefault("RinseTime2", 0); PTL::SetWashingStateDefault("SoakTime2", 0); PTL::SetWashingStateDefault("FlowRate2", 11); PTL::SetWashingStateDefault("DrainingTime", 10); PTL::SetWashingStateDefault("StartWashLiquid", 0); PTL::SetLoadingStateDefault("RecoveryOptionContinue", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionExclude", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionDefault", 0); PTL::SetLoadingStateDefault("KitLotCheckEnabled", hslFalse); ANC::_InitLibrary(); // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" ANC::_ExitLibrary(); // }} "" } // {{{ 5 "GetLabwareCenter_OLD" "Begin" private function GetLabwareCenter_OLD( device & ML_STAR, variable i_str_LabID, variable & o_flt_Center_X, variable & o_flt_Center_Y ) void { // }} "" private variable flt_BoundaryX; private variable flt_BoundaryY; private variable flt_RackWidthX; private variable flt_RackWidthY; private variable flt_HalfRackWidthX; private variable flt_HalfRackWidthY; private variable flt_Angle; // {{ 5 "GetLabwareCenter_OLD" "InitLocals" o_flt_Center_X = 0; o_flt_Center_Y = 0; // }} "" // {{ 387 1 0 "3ba277ed_40a7_4471_9411073e92ba87b9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Center_X = 0.0; // }} "" // {{ 388 1 0 "ee9c188f_d889_413a_a6cb988b04606220" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Center_Y = 0.0; // }} "" // {{ 389 1 0 "46b7754f_a226_4ff6_836cdcb746c7a0b9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BoundaryX = 0.0; // }} "" // {{ 390 1 0 "ae4ab0f7_6021_415c_95eef25a0bc4d2ba" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BoundaryY = 0.0; // }} "" // {{ 391 1 0 "0ff64bd9_bb9a_4bc3_bbc6f75c8e0a3c7e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_RackWidthX = 0.0; // }} "" // {{ 392 1 0 "19a3b357_0526_4de3_b2a41299c8088154" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_RackWidthY = 0.0; // }} "" // {{ 393 1 0 "144d39f5_32b1_4973_82a2ec7d8a15b580" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Angle = 0.0; // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = ML_STAR.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(i_str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); objRack4.GetRackData(objRackDataParams); flt_BoundaryX = objRackDataParams.Item1("Labwr_Bndry1X"); flt_BoundaryY = objRackDataParams.Item1("Labwr_Bndry1Y"); flt_RackWidthX = objRackDataParams.Item1("Labwr_XDim"); flt_RackWidthY = objRackDataParams.Item1("Labwr_YDim"); flt_Angle = objEditLabware5.Angle(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{ 395 1 0 "847b42f4_6388_46ef_8364fd4eea4dea87" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Angle == 0.0) { // }} "" // {{ 396 1 0 "a602bfbe_0402_4139_b4a57b18707785d1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_HalfRackWidthX = flt_RackWidthX / (2 * 1.0); // }} "" // {{ 397 1 0 "754a9cdd_a605_49c6_afaa8ec4a8e7da67" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_HalfRackWidthY = flt_RackWidthY / (2 * 1.0); // }} "" // {{ 398 1 0 "47fd2a8a_0c9d_4e28_9f509a4b33778889" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_Center_X = flt_BoundaryX + flt_HalfRackWidthX; // }} "" // {{ 399 1 0 "59af96fa_4dbf_461e_85c169cd7c24e38b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_Center_Y = flt_BoundaryY + flt_HalfRackWidthY; // }} "" // {{ 400 1 0 "847b42f4_6388_46ef_8364fd4eea4dea87" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 401 1 0 "548cac89_9812_4bd4_8b3b480a1f6c7758" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Angle == 180.0) { // }} "" // {{ 402 1 0 "5466f38a_5b2f_4c7f_9cb37567859887c0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_HalfRackWidthX = flt_RackWidthX / (2 * 1.0); // }} "" // {{ 403 1 0 "26b39e92_8f10_4c74_88186f25f0e46b4f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_HalfRackWidthY = flt_RackWidthY / (2 * 1.0); // }} "" // {{ 404 1 0 "a0a9fae9_f749_43c7_b375294939b8c3df" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_Center_X = flt_BoundaryX - flt_HalfRackWidthX; // }} "" // {{ 405 1 0 "3532b160_8b98_4343_973f1fb8ea2305a6" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_Center_Y = flt_BoundaryY - flt_HalfRackWidthY; // }} "" // {{ 406 1 0 "548cac89_9812_4bd4_8b3b480a1f6c7758" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 407 1 0 "1f44821d_7069_4f1b_80dbf2e493e12416" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Angle == 270.0) { // }} "" // {{ 408 1 0 "08374814_2e20_44f1_891f76eed34dcf98" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_HalfRackWidthX = flt_RackWidthX / (2 * 1.0); // }} "" // {{ 409 1 0 "462fec21_3dfc_487a_bdd3ed75f7c35bf6" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_HalfRackWidthY = flt_RackWidthY / (2 * 1.0); // }} "" // {{ 410 1 0 "d2c6525b_cf36_4df2_b90ce4396fe851fc" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_Center_X = flt_BoundaryX - flt_HalfRackWidthY; // }} "" // {{ 411 1 0 "87ea7889_9159_480e_a24c44af5d834c85" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_Center_Y = flt_BoundaryY + flt_HalfRackWidthX; // }} "" // {{ 412 1 0 "1f44821d_7069_4f1b_80dbf2e493e12416" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 413 1 0 "19efda46_4468_4bfa_9d4c01d1d293dd38" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Angle == 90.0) { // }} "" // {{ 414 1 0 "feb7bfb8_4c8f_497f_933721ab3e5bf5ab" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_HalfRackWidthX = flt_RackWidthX / (2 * 1.0); // }} "" // {{ 415 1 0 "72cb01cd_fc69_4f48_a8dbb726f557d948" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_HalfRackWidthY = flt_RackWidthY / (2 * 1.0); // }} "" // {{ 416 1 0 "64266667_38de_4dcf_8aec143acf9fa398" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_Center_X = flt_BoundaryX + flt_HalfRackWidthY; // }} "" // {{ 417 1 0 "4ec953ba_d21c_4fc6_8b1f776c7227a246" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_Center_Y = flt_BoundaryY - flt_HalfRackWidthX; // }} "" // {{ 418 1 0 "19efda46_4468_4bfa_9d4c01d1d293dd38" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "GetLabwareCenter_OLD" "End" } // }} "" // {{{ 5 "GetFirstPosition" "Begin" function GetFirstPosition( device & ML_STAR, variable i_str_LabID, variable & o_str_PosID ) void { // }} "" private variable int_TotalColumns; private variable int_Index; private variable int_TotalRows; private variable int_Increment; // {{ 5 "GetFirstPosition" "InitLocals" o_str_PosID = 0; // }} "" // {{ 301 1 0 "c8b440f7_009b_4141_96c0c3007ba0a893" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TotalRows = 0; // }} "" // {{ 302 1 0 "dcaad2ec_0f35_45b5_b8e492f5e2d85228" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TotalColumns = 0; // }} "" // {{ 303 1 0 "438777c5_7760_459f_902a101dc77d227d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Index = 0; // }} "" // {{ 304 1 0 "2ae3e88d_d8f9_4488_9be13b67431b741b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Increment = 0; // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = ML_STAR.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(i_str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); objRack4.GetRackData(objRackDataParams); int_TotalRows = objRack4.Rows(); int_TotalColumns = objRack4.Columns(); int_Index = objRack4.Index(); int_Increment = objRack4.Increment(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{ 306 1 0 "cee06bd8_a364_4f64_a8a48f943a51870f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index == 1) { // }} "" // {{{ 307 1 0 "cf6e20cf_d35f_470e_bde04ceb4966569b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ANC::Convert_Numbers_to_Alpha_Numeric(int_Increment, 1, int_TotalRows, int_TotalColumns, o_str_PosID); // }} "" // {{ 308 1 0 "cee06bd8_a364_4f64_a8a48f943a51870f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 309 1 0 "4bfd1307_0f95_484d_8c4ed030c4bb59e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_PosID = StrConcat2(1, Translate("")); // }} "" // {{ 310 1 0 "cee06bd8_a364_4f64_a8a48f943a51870f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "GetFirstPosition" "End" } // }} "" // {{{ 5 "GetDefaultSequence" "Begin" function GetDefaultSequence( device & ML_STAR, variable i_str_LabID, variable i_bool_SortByColumn, sequence & o_seq_DefaultSequence ) void { // }} "" private variable int_Increment; private variable int_TotalColumns; private variable int_Index; private variable int_TotalRows; private variable i; private variable str_PosID; private variable int_TotalPositions; // {{ 5 "GetDefaultSequence" "InitLocals" // }} "" // {{{ 233 1 0 "ccd7f7ab_c072_4e70_9f15e93df5140777" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_DefaultSequence); // }} "" // {{ 234 1 0 "efd5d9da_ee30_4508_aa2dfcc59018958e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TotalRows = 0; // }} "" // {{ 235 1 0 "ae71793f_d5b3_4fd7_a36e66012ead1df3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TotalColumns = 0; // }} "" // {{ 236 1 0 "d3ba81c8_4671_42bc_93aba1d248de30f5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Index = 0; // }} "" // {{ 237 1 0 "d8adb416_9cdc_443a_92fd00de3eeb446b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Increment = 0; // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = ML_STAR.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(i_str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); objRack4.GetRackData(objRackDataParams); int_TotalRows = objRack4.Rows(); int_TotalColumns = objRack4.Columns(); int_Index = objRack4.Index(); int_Increment = objRack4.Increment(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{ 239 1 0 "f6c9da22_cf8c_4738_a70f0a72de085142" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_TotalPositions = int_TotalColumns * int_TotalRows; // }} "" // {{ 240 1 0 "0134623f_4b32_42e6_a94d75d7d8a19b81" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalPositions;) { i = i + 1; // }} "" // {{ 241 1 0 "35f367a2_b87d_46f5_8772a2b676b9317c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index == 1) { // }} "" // {{{ 242 1 0 "1d9ef885_dfb1_497e_be598dd08dc99d33" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ANC::Convert_Numbers_to_Alpha_Numeric(i_bool_SortByColumn, i, int_TotalRows, int_TotalColumns, str_PosID); // }} "" // {{ 243 1 0 "35f367a2_b87d_46f5_8772a2b676b9317c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 244 1 0 "2e26872a_f389_49ec_96d92031564d67aa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = StrConcat2(i, Translate("")); // }} "" // {{ 245 1 0 "35f367a2_b87d_46f5_8772a2b676b9317c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 246 1 0 "c50fec5e_2baa_42c1_ae8febd0637f79db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq_DefaultSequence, i_str_LabID, str_PosID); // }} "" // {{ 247 1 0 "0134623f_4b32_42e6_a94d75d7d8a19b81" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 248 1 0 "61c7eced_16f5_4ac3_8b3af29b2a599728" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq_DefaultSequence.SetCurrentPosition(1); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 249 1 0 "7cfdae6c_9786_4a60_9b9e4c63bb8cc301" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceSequence(o_seq_DefaultSequence); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 5 "GetDefaultSequence" "End" } // }} "" // {{{ 5 "GetChannelLimits" "Begin" function GetChannelLimits( device & ML_STAR, variable i_Channel_Type, variable & o_Y_Max[], variable & o_Y_Min[], variable & o_Raster ) variable { // }} "" private variable y_value; private variable raster_labhand_channels; private variable minimum_y; private variable chan_index; private variable num_labhand_channels; private variable num_camera_channels; private variable raster_1mL_channels; private variable num_1mL_channels; private variable raster_5mL_channels; private variable raster_camera_channels; private variable maximum_y; private variable num_5mL_channels; private variable ret_Num_Channels; private variable chan_offset; private variable arr_max_y_5mL[]; private variable arr_min_y_labhand[]; private variable arr_min_y_1mL[]; private variable arr_min_y_5mL[]; private variable arr_max_y_labhand[]; private variable arr_max_y_1mL[]; private variable type_labhand_channels; // {{ 5 "GetChannelLimits" "InitLocals" o_Y_Max.SetSize( 0); o_Y_Min.SetSize( 0); o_Raster = 0; // }} "" // {{ 78 1 0 "ea336ebe_bc81_4c01_b429969c3e16dae7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_Num_Channels = 0; // }} "" // {{ 79 1 0 "f59b8491_143f_417b_ad1dfe648c381420" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_Raster = 0; // }} "" // {{ 80 1 0 "9923fc5f_9eed_42d3_80a762f5e641e5e4" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_Y_Max.SetSize(0); // }} "" // {{ 81 1 0 "d3ba671f_a59c_4607_9ccedc50b056222b" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_Y_Min.SetSize(0); // }} "" // {{{ 82 1 0 "9127229f_0d90_4420_8badf09befa86ff7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Channel_Type = StrConcat2(i_Channel_Type, Translate("")); // }} "" // {{{ 83 1 0 "d6ffd722_c18a_4c68_86d7d7c0f1344357" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Channel_Type = StrIVal(i_Channel_Type); // }} "" // {{ 84 1 0 "824ee71a_394f_4ace_8c0632bae4e5dcf6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type < 0) { // }} "" // {{{ 85 1 0 "fff13015_d158_4877_8a5956786fc82dc1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace4(Translate("*************** Channel type of "), i_Channel_Type, Translate(" is not recognized by this library!!!!"), Translate("")); // }} "" // {{{ 86 1 0 "b362e070_80ac_4144_92363a6e871e3807" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_Num_Channels); // }} "" // {{ 87 1 0 "824ee71a_394f_4ace_8c0632bae4e5dcf6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 88 1 0 "27ce5445_7451_46a7_8eb864f8d122af81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type > 2) { // }} "" // {{{ 89 1 0 "dcf8bcb6_b235_41e4_a0895f9dc5f25857" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace4(Translate("*************** Channel type of "), i_Channel_Type, Translate(" is not recognized by this library!!!!"), Translate("")); // }} "" // {{{ 90 1 0 "baf16651_7d55_44d3_9cde2031f6e327ee" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_Num_Channels); // }} "" // {{ 91 1 0 "27ce5445_7451_46a7_8eb864f8d122af81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 92 1 0 "44e04681_e0e6_4874_a6f14fdf66a94806" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 93 1 0 "6cd127ca_f412_4327_8d7d2f79055deb3a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{{ 94 1 0 "f1dd7d11_29b2_4c5a_b6a9189c6a4cdf4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_5mL_channels = DevGetCfgValueWithKey(ML_STAR, 43); // }} "" // {{{ 95 1 0 "438bffdc_8fff_4612_98a676b0d09e2b43" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_labhand_channels = DevGetCfgValueWithKey(ML_STAR, 47); // }} "" // {{{ 96 1 0 "56a03ed9_ea7e_4d6c_b443f0ba2d3b7419" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_camera_channels = DevGetCfgValueWithKey(ML_STAR, 45); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Total Camera Channels: ",num_camera_channels); /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 98 1 0 "788b58c2_f89b_4ac7_9f2fa02a5694bfaa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" raster_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 26); // }} "" // {{{ 99 1 0 "e5f1f606_b625_4018_9c0736002e7e269c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" raster_5mL_channels = DevGetCfgValueWithKey(ML_STAR, 42); // }} "" // {{{ 100 1 0 "a8daad3c_eb84_4ad1_97c761eb5925b839" "{C1F3C015-47B3-4514-9407-AC2E65043419}" raster_labhand_channels = DevGetCfgValueWithKey(ML_STAR, 48); // }} "" // {{{ 101 1 0 "e5a5b7fd_4120_404d_9a0e73b64875034f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" type_labhand_channels = DevGetCfgValueWithKey(ML_STAR, 58); // }} "" // {{ 102 1 0 "5a23a4ac_3f9f_4bc0_aa08a6c6ee9a1fba" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (type_labhand_channels == 4) { // }} "" // {{ 103 1 0 "a70a1bbb_4c6a_46eb_aab6ff94aac91edc" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 104 1 0 "eb457f28_b4bd_4ef3_986e73926542e73b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" num_labhand_channels = 0; // }} "" // {{ 105 1 0 "5a23a4ac_3f9f_4bc0_aa08a6c6ee9a1fba" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 106 1 0 "8af282d9_7ecf_49ce_8943ed94eb2f2bd4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (type_labhand_channels == 5) { // }} "" // {{ 107 1 0 "b810931a_9c5c_4377_9773fcd5d6b748db" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 108 1 0 "77683ab6_6f3e_48a6_9f1bb16b5926a0fd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" num_labhand_channels = 0; // }} "" // {{ 109 1 0 "8af282d9_7ecf_49ce_8943ed94eb2f2bd4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 110 1 0 "0f228898_fadf_426e_87055fab9fbb603d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" raster_camera_channels = 18; // }} "" // {{ 111 1 0 "16568ff7_a171_4706_8d48c736971d6d44" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" raster_camera_channels = 22.5; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 112 1 0 "5f3ec8e0_6491_47ed_8b9c2eec42744ce5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" raster_camera_channels = 29.5; // }} "" // {{ 113 1 0 "44e04681_e0e6_4874_a6f14fdf66a94806" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 114 1 0 "046ae8a3_3ac1_4977_a0ac2412246a0b24" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 115 1 0 "6f9b04fd_4552_47a5_8e0a50c82ed9b0b9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" maximum_y = 613.5; // }} "" // {{ 116 1 0 "251c347e_acf8_4329_b0c89de985a332d9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" maximum_y = 614.5; // }} "" // {{ 117 1 0 "5443e481_0e0f_42e5_87aa2ff7c958a04b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" y_value = maximum_y; // }} "" // {{ 118 1 0 "d1b7d9df_5a33_4046_8676446200610f15" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 119 1 0 "89abbd40_780b_4aea_a55f2106230249d9" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_max_y_1mL.SetSize(0); // }} "" // {{ 120 1 0 "b74263e3_5c4f_4cf9_be2fe49e3ffbc328" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(chan_index = 0; chan_index < num_1mL_channels;) { chan_index = chan_index + 1; // }} "" // {{ 121 1 0 "2e3651a5_91f0_4ca6_ad8eb2d9eb55e37d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" y_value = chan_index * raster_1mL_channels; // }} "" // {{ 122 1 0 "c8494529_c5c9_49d2_8b61b92efc952185" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" y_value = maximum_y - y_value; // }} "" // {{ 123 1 0 "68ea8426_7d73_4c67_bdcd501cf33d857b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_max_y_1mL.AddAsLast(y_value); // }} "" // {{ 124 1 0 "b74263e3_5c4f_4cf9_be2fe49e3ffbc328" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" maximum_y = maximum_y - (num_1mL_channels * raster_1mL_channels); // {{ 126 1 0 "7c81d0b1_8b57_4e7f_a90ab55d848e1582" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 127 1 0 "0eba1ace_53eb_4540_aeeea8569425c2ac" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_max_y_5mL.SetSize(0); // }} "" // {{ 128 1 0 "9ad84e1c_94a2_4902_bd549388a436fb96" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(chan_index = 0; chan_index < num_5mL_channels;) { chan_index = chan_index + 1; // }} "" // {{ 129 1 0 "cf66ecc0_40f2_4abb_ab9716df34c8a8ec" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" y_value = chan_index * raster_5mL_channels; // }} "" // {{ 130 1 0 "19ac8a5f_68b7_440d_96168c405c91dd08" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" y_value = maximum_y - y_value; // }} "" // {{ 131 1 0 "6d915fd2_e4fe_482a_a659e8fba2346916" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_max_y_5mL.AddAsLast(y_value); // }} "" // {{ 132 1 0 "9ad84e1c_94a2_4902_bd549388a436fb96" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" maximum_y = maximum_y - (num_5mL_channels * raster_5mL_channels); // {{ 134 1 0 "93f4b5e4_08ba_4675_9556d010942f0910" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 135 1 0 "e8ffccb9_edd3_48bd_bca8bb3f4e97caec" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_max_y_labhand.SetSize(0); // }} "" // {{ 136 1 0 "9fcbe538_a2e6_442a_bfd2bef110d1fdd8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(chan_index = 0; chan_index < num_labhand_channels;) { chan_index = chan_index + 1; // }} "" // {{ 137 1 0 "0dc434fd_558c_41f0_a3294e0a5aa587d5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" y_value = chan_index * raster_labhand_channels; // }} "" // {{ 138 1 0 "fbdee2f0_c9dd_4250_ba68c1825f6f4e33" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" y_value = maximum_y - y_value; // }} "" // {{ 139 1 0 "0e9d9631_a3c1_4f78_8250f4018865a8ad" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_max_y_labhand.AddAsLast(y_value); // }} "" // {{ 140 1 0 "9fcbe538_a2e6_442a_bfd2bef110d1fdd8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 141 1 0 "046ae8a3_3ac1_4977_a0ac2412246a0b24" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 142 1 0 "a0515340_0c7b_421f_a80b891f32e59806" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 143 1 0 "07d7a07d_da6d_4fa6_a4eef30fa2fd5626" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" minimum_y = -1.0; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 144 1 0 "28428876_1bff_46a0_a4c39ac7be51c3d4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" minimum_y = 6.0; // }} "" // {{ 145 1 0 "fc2181d2_1257_4f50_99d3b91844fa3306" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" minimum_y = -0.5; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 146 1 0 "27e7c182_6096_49f8_8df45245bd87f3bb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" y_value = 0.0; // }} "" minimum_y = minimum_y + (num_camera_channels * raster_camera_channels); // {{ 148 1 0 "9190cc47_0515_4ca8_9652eaeedbf2cb60" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_min_y_labhand.SetSize(0); // }} "" // {{ 149 1 0 "78c5aedf_6d7c_4907_865a6e82d4c0f2fb" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(chan_offset = 0; chan_offset < num_labhand_channels;) { chan_offset = chan_offset + 1; // }} "" // {{ 150 1 0 "83411ddf_2f6a_4a67_b55794711ab1d1d3" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" chan_index = num_labhand_channels - chan_offset; // }} "" // {{ 151 1 0 "002539cb_d3f8_4765_a4cc0c935d124cec" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" chan_index = chan_index + 1; // }} "" // {{ 152 1 0 "e4b7144d_abb3_4926_b5eaa24c257f0e2c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" y_value = chan_index * raster_labhand_channels; // }} "" // {{ 153 1 0 "46bd42ff_3aaf_443a_b294282cf83b98f6" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" y_value = minimum_y + y_value; // }} "" // {{ 154 1 0 "68ed3784_5241_4d99_84fcdb477f6090fb" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_min_y_labhand.AddAsLast(y_value); // }} "" // {{ 155 1 0 "78c5aedf_6d7c_4907_865a6e82d4c0f2fb" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" minimum_y = minimum_y + (num_labhand_channels * raster_labhand_channels); // {{ 157 1 0 "c9c3f0ce_5188_4c63_ae326ab0690bffcd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_min_y_5mL.SetSize(0); // }} "" // {{ 158 1 0 "9f5d335d_c0a4_4f15_9a7530d0599b4065" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(chan_offset = 0; chan_offset < num_5mL_channels;) { chan_offset = chan_offset + 1; // }} "" // {{ 159 1 0 "01515408_ed18_45db_a8bf2d5a8d18c1d1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" chan_index = num_5mL_channels - chan_offset; // }} "" // {{ 160 1 0 "7f57655b_0626_47ee_8e516ca7e58ce328" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" chan_index = chan_index + 1; // }} "" // {{ 161 1 0 "bc9c207f_3467_49bf_a8d922d6f6e2b211" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" y_value = chan_index * raster_5mL_channels; // }} "" // {{ 162 1 0 "588eb412_7f69_49c7_9b72dde665758c57" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" y_value = minimum_y + y_value; // }} "" // {{ 163 1 0 "9d660dd9_3d19_4e86_b09f38b00a60c9f8" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_min_y_5mL.AddAsLast(y_value); // }} "" // {{ 164 1 0 "9f5d335d_c0a4_4f15_9a7530d0599b4065" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" minimum_y = minimum_y + (num_5mL_channels * raster_5mL_channels); // {{ 166 1 0 "12147f80_80e5_4015_b2216690387ed1bf" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_min_y_1mL.SetSize(0); // }} "" // {{ 167 1 0 "883ae312_793c_4fde_a836d00ae53a6725" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(chan_offset = 0; chan_offset < num_1mL_channels;) { chan_offset = chan_offset + 1; // }} "" // {{ 168 1 0 "5ac1f7b3_29b5_439f_bfb20ccd2b37b0d7" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" chan_index = num_1mL_channels - chan_offset; // }} "" // {{ 169 1 0 "539f981f_99a3_4e11_8d8964bf1a66a183" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" chan_index = chan_index + 1; // }} "" // {{ 170 1 0 "5079d029_71ed_4402_90b7b969f8d63ad6" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" y_value = chan_index * raster_1mL_channels; // }} "" // {{ 171 1 0 "7d4759ae_3552_4c63_8a9e966a48d94a1d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" y_value = minimum_y + y_value; // }} "" // {{ 172 1 0 "d93101e8_a683_47d3_a36a68e6294393e9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_min_y_1mL.AddAsLast(y_value); // }} "" // {{ 173 1 0 "883ae312_793c_4fde_a836d00ae53a6725" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 174 1 0 "a0515340_0c7b_421f_a80b891f32e59806" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 175 1 0 "abf52a84_8669_46f0_b07d9ea29e17fd01" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 176 1 0 "b597dc83_5eb7_49e3_886672f268701d1f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 0) { // }} "" // {{ 177 1 0 "dcb7264d_e7e5_4175_ae9a08b76fda61b3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 178 1 0 "2050d3e0_e288_4f10_b3b317b91c8d242b" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" o_Y_Max=arr_max_y_1mL; // }} "" // {{ 179 1 0 "01694b3c_2ff2_47df_aaa1a3247b6faa5b" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" o_Y_Min=arr_min_y_1mL; // }} "" // {{ 180 1 0 "f4e7c4ee_dd71_4359_b8b8e31f4f5c47ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_Raster = raster_1mL_channels; // }} "" // {{{ 181 1 0 "6ada8780_f22c_4b6b_a5544de1e9ae6eac" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (num_1mL_channels); // }} "" // {{ 182 1 0 "b597dc83_5eb7_49e3_886672f268701d1f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 183 1 0 "22bd27bc_d9d9_4705_ba816d5facff5142" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 1) { // }} "" // {{ 184 1 0 "f6043c58_46f6_4c93_b72dc1678ee402a3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 185 1 0 "dc686eef_5ae0_464b_93f8926b3b59ff7f" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" o_Y_Max=arr_max_y_5mL; // }} "" // {{ 186 1 0 "0733b7d8_3f82_4649_bb47fe65b21db6a9" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" o_Y_Min=arr_min_y_5mL; // }} "" // {{ 187 1 0 "ce7c61c2_a7c4_42e6_9c2c15616430e50d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_Raster = raster_5mL_channels; // }} "" // {{{ 188 1 0 "1be90bc1_95d6_468a_920e5594644f2a80" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (num_5mL_channels); // }} "" // {{ 189 1 0 "22bd27bc_d9d9_4705_ba816d5facff5142" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 190 1 0 "6af2c6e5_e19b_4553_93d371fa6d06c2dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 2) { // }} "" // {{ 191 1 0 "b74ab50d_68e6_4353_83a7815ed353d9d0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 192 1 0 "e7f431d6_4233_4891_abde639180989db8" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" o_Y_Max=arr_max_y_labhand; // }} "" // {{ 193 1 0 "7d9122fe_452f_4329_bef219e468198bfb" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" o_Y_Min=arr_min_y_labhand; // }} "" // {{ 194 1 0 "4d7bac82_a777_490b_8b51e8a87816eb18" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_Raster = raster_labhand_channels; // }} "" // {{{ 195 1 0 "8d29e814_82cb_4b62_9fe2223aedb75bc5" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (num_labhand_channels); // }} "" // {{ 196 1 0 "6af2c6e5_e19b_4553_93d371fa6d06c2dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "GetChannelLimits" "End" } // }} "" // {{{ 5 "SetAbsolutePositionForLabwareID" "Begin" function SetAbsolutePositionForLabwareID( device & io_devDevice, variable i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void { // }} "" // {{ 5 "SetAbsolutePositionForLabwareID" "InitLocals" // }} "" // Set Absolute Position { static string P_XCOORD("Labwr_XCoord"); static string P_YCOORD("Labwr_YCoord"); static string P_ZCOORD("Labwr_ZCoord"); static string P_RZCOORD("Labwr_Rotation"); static string P_LABWARE_ID("Labwr_Id"); variable PosVals[]; object objDecklayout; variable strFunctionName(""); //strFunctionName = ExtractFunctionName(GetFunctionName()); // check input variables //if (!CheckString(i_strLabwareID, "i_strLabwareID", strFunctionName)) return(hslFalse); //StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_strLabwareID = " + i_strLabwareID + ", i_fltPositionX = " + FStr(i_fltPositionX) + ", i_fltPositionY = " + FStr(i_fltPositionY) + ", i_fltPositionZ = " + FStr(i_fltPositionZ) + ", i_fltPositionR = " + FStr(i_fltPositionR), strFunctionName); //EnterSemaphore(); objDecklayout = io_devDevice.GetDeckLayoutObject(); //LeaveSemaphore(); if (!objDecklayout.IsNull()) { object objLabware; onerror goto HandleLabwareError; objLabware = objDecklayout.Labware(i_strLabwareID); onerror goto 0; err.Clear(); if (!objLabware.IsNull()) { object Decklayout5; object MoveParameters; objDecklayout.GetObject("IDeckLayout5", Decklayout5); //EnterSemaphore(); //io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals); //LeaveSemaphore(); //StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Current position: (" + FStr(PosVals[0]) + "/" + FStr(PosVals[1]) + "/" + FStr(PosVals[2]) + "/" + FStr(PosVals[3]) + ")", strFunctionName); MoveParameters.CreateObject("HXPARAMSLib.HxPars"); MoveParameters.Add(i_strLabwareID, P_LABWARE_ID); MoveParameters.Add(i_fltPositionX, P_XCOORD); MoveParameters.Add(i_fltPositionY, P_YCOORD); MoveParameters.Add(i_fltPositionZ, P_ZCOORD); MoveParameters.Add(i_fltPositionR, P_RZCOORD); Decklayout5.MoveLabware(objLabware, MoveParameters); // Trace new position //EnterSemaphore(); //io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals); //LeaveSemaphore(); objLabware.ReleaseObject(); objDecklayout.ReleaseObject(); Decklayout5.ReleaseObject(); MoveParameters.ReleaseObject(); //StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "New position: (" + FStr(PosVals[0]) + "/" + FStr(PosVals[1]) + "/" + FStr(PosVals[2]) + "/" + FStr(PosVals[3]) + ")", strFunctionName); //return(hslTrue); } //else //{ //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find labware.", strFunctionName); //objDecklayout.ReleaseObject(); //return(hslFalse); //} // } //else //{ //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find decklayout.", strFunctionName); //return(hslFalse); } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); //Trace(errorID); if (errorID==-1574764487) { Trace("LabwareID is unknown."); //return(hslFalse); } else { //Trace("Unknown error occured."); //return(hslFalse); } } } // {{{ 5 "SetAbsolutePositionForLabwareID" "End" } // }} "" // {{{ 5 "SplitString" "Begin" function SplitString( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "SplitString" "InitLocals" arrTokens.SetSize( 0); // }} "" // {{ 690 1 0 "42996e8f_b700_4a6e_b78eff23c14a2c77" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 691 1 0 "d1635855_122b_4a8c_90631189a9867182" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 692 1 0 "6d54fc12_063e_4f8c_833c4bfdcb71cc6e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 693 1 0 "abf5d1ce_6910_4487_a7cccb79cff6b4c2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "SplitString" "End" } // }} "" // {{{ 5 "GetConfigurationFile" "Begin" function GetConfigurationFile( device & i_Instrument, variable i_LabwareID, variable & o_ConfigFile ) void { // }} "" // {{ 5 "GetConfigurationFile" "InitLocals" o_ConfigFile = 0; // }} "" // {{ 198 1 0 "faa9720c_7cb8_43ca_8afc88512d7da9cf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_ConfigFile = Translate(""); // }} "" //Get Config File { object objDeckLayout; objDeckLayout = i_Instrument.GetDeckLayoutObject(); if(!objDeckLayout.IsNull()) { object objLabware; onerror goto HandleLabwareError; objLabware = objDeckLayout.Labware(i_LabwareID); onerror goto 0; err.Clear(); if(!objLabware.IsNull()) { object objEditLabware5; objLabware.GetObject("IEditLabware5", objEditLabware5); o_ConfigFile = objEditLabware5.Filename; objEditLabware5.ReleaseObject(); objDeckLayout.ReleaseObject(); objLabware.ReleaseObject(); } } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if(errorID != 0) { if (errorID==-1574764487) { Trace("LabwareID is unknown."); } else { Trace("Unknown error occured."); } } } } // {{{ 5 "GetConfigurationFile" "End" } // }} "" // {{{ 5 "ConvertToFloat" "Begin" function ConvertToFloat( variable iVariable, variable & oVariable ) void { // }} "" private variable str_Variable; // {{ 5 "ConvertToFloat" "InitLocals" oVariable = 0; // }} "" // {{{ 36 1 0 "d7b82e20_1082_487d_ab4c6c1195734338" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Variable = StrConcat2(iVariable, Translate("")); // }} "" // {{{ 37 1 0 "4b71f87f_caf5_4b19_94bef433bbbfd38d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" oVariable = StrFVal(str_Variable); // }} "" // {{{ 5 "ConvertToFloat" "End" } // }} "" // {{{ 5 "GetContainerWidth" "Begin" function GetContainerWidth( device & ML_STAR, variable i_str_LabID, variable & o_flt_ContainerWidth ) void { // }} "" private variable flt_ContainerDiameter; private variable str_PosID; // {{ 5 "GetContainerWidth" "InitLocals" o_flt_ContainerWidth = 0; // }} "" // {{ 228 1 0 "91037bbe_ecd2_4112_a7c98ff1c4a2b358" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_ContainerDiameter = 0.0; // }} "" // {{{ 229 1 0 "bf9f208f_a3c8_4451_9d71f55b7da30ab0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetFirstPosition(ML_STAR, i_str_LabID, str_PosID); // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = ML_STAR.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(i_str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); objRack4.GetRackData(objRackDataParams); flt_ContainerDiameter = objEditLabware5.CntrDiameter(str_PosID); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{ 231 1 0 "3745d894_ae29_4de8_b6c0ce3d2c2d7686" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_ContainerWidth = flt_ContainerDiameter; // }} "" // {{{ 5 "GetContainerWidth" "End" } // }} "" // {{{ 5 "GetCenterSpotLabware" "Begin" function GetCenterSpotLabware( variable & o_str_CenterSpotLabwarePath ) void { // }} "" private variable str_CenterSpot; private variable str_FileName; // {{ 5 "GetCenterSpotLabware" "InitLocals" o_str_CenterSpotLabwarePath = 0; // }} "" // {{ 69 1 0 "19f84dba_e569_4ff4_8e7cd26ef393d586" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_CenterSpotLabwarePath = Translate(""); // }} "" // {{ 70 1 0 "6a83c753_dfa7_46e5_96c90c55568a4a71" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_CenterSpot = Translate(""); // }} "" str_CenterSpot = GetFileName(); // {{{ 72 1 0 "34436c34_75da_443e_ba399f933b500c33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FileName = HSLExtensions::File::GetFileName(str_CenterSpot); // }} "" // {{{ 73 1 0 "21b1cd64_b64f_47d0_9fd9a83dbbfd878e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(str_CenterSpot, str_FileName, Translate("")); // }} "" // {{{ 74 1 0 "de060277_1c39_4714_bb7b43d28158fd8d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CenterSpot = StrConcat8(str_CenterSpot, Translate("\\"), Translate("CenterSpot"), Translate(".rck"), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{{ 75 1 0 "0c16cc42_d931_4676_9228face067b65e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(str_CenterSpot, Translate("\\"), Translate("\\\\")); // }} "" // {{ 76 1 0 "99ad1890_daea_4c6c_affd795f34e73e14" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_CenterSpotLabwarePath = str_CenterSpot; // }} "" // {{{ 5 "GetCenterSpotLabware" "End" } // }} "" // {{{ 5 "GetCenterSpotContainer" "Begin" function GetCenterSpotContainer( variable & o_str_CenterSpotContainerPath ) void { // }} "" private variable str_CenterSpot; private variable str_FileName; // {{ 5 "GetCenterSpotContainer" "InitLocals" o_str_CenterSpotContainerPath = 0; // }} "" // {{ 60 1 0 "d9567e1e_cfa8_4190_abe003a047a72635" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_CenterSpotContainerPath = Translate(""); // }} "" // {{ 61 1 0 "11dbcb88_a754_439d_895bb43ab8ff6d18" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_CenterSpot = Translate(""); // }} "" str_CenterSpot = GetFileName(); // {{{ 63 1 0 "a1a22edc_c510_4154_8756b98a10d723c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FileName = HSLExtensions::File::GetFileName(str_CenterSpot); // }} "" // {{{ 64 1 0 "16e047ee_213b_4d78_a3496db8a2f7a142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(str_CenterSpot, str_FileName, Translate("")); // }} "" // {{{ 65 1 0 "1ee2d424_f2cc_4157_bdf7c22087f36251" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CenterSpot = StrConcat8(str_CenterSpot, Translate("\\"), Translate("CenterSpot"), Translate(".ctr"), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{{ 66 1 0 "7aee8259_e759_4a68_b2c496fd825599f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(str_CenterSpot, Translate("\\"), Translate("\\\\")); // }} "" // {{ 67 1 0 "2144e644_dbca_42f9_8444bb57260d2319" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_CenterSpotContainerPath = str_CenterSpot; // }} "" // {{{ 5 "GetCenterSpotContainer" "End" } // }} "" // {{{ 5 "ConvertToInteger" "Begin" function ConvertToInteger( variable iVariable, variable & oVariable ) void { // }} "" private variable str_Variable; // {{ 5 "ConvertToInteger" "InitLocals" oVariable = 0; // }} "" // {{{ 39 1 0 "99d92331_8d54_450b_8a5d4fbdb35f0ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Variable = StrConcat2(iVariable, Translate("")); // }} "" // {{{ 40 1 0 "8218847c_0ad8_4149_be748609a2fe423d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" oVariable = StrIVal(str_Variable); // }} "" // {{{ 5 "ConvertToInteger" "End" } // }} "" // {{{ 5 "GetIndexingFormat" "Begin" function GetIndexingFormat( device & io_instrument, variable i_str_Labware, variable & o_positionIndexingFormat ) void { // }} "" // {{ 5 "GetIndexingFormat" "InitLocals" o_positionIndexingFormat = 0; // }} "" // {{ 312 1 0 "43339f38_48ba_4ff7_ad335b0a4aff2e73" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_positionIndexingFormat = 0; // }} "" { object rack; object labware; object m_decklayout; variable labwareId; m_decklayout = io_instrument.GetDeckLayoutObject(); //labwareId = SeqGetLabwareId(i_sequenceLabware); labware = m_decklayout.Labware(i_str_Labware); labware.GetObject("IRectRack2", rack); o_positionIndexingFormat = rack.index; } // {{{ 5 "GetIndexingFormat" "End" } // }} "" // {{{ 5 "GetTipName" "Begin" function GetTipName( device & ML_STAR, variable i_str_TipLabware, variable & o_str_TipName, variable & o_int_TipType ) void { // }} "" private variable int_Length; private variable str_TipType; private variable int_TipType; // {{ 5 "GetTipName" "InitLocals" o_str_TipName = 0; o_int_TipType = 0; // }} "" // {{ 519 1 0 "817a9847_e3d6_411f_aed418256ab325fa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_TipName = Translate(""); // }} "" // {{{ 520 1 0 "585a7905_a380_4198_b62640e136442c61" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipType = DevGetLabwareData(ML_STAR, i_str_TipLabware, Translate("MlStarTipRack")); // }} "" // {{{ 521 1 0 "fae47452_771c_4557_83166abe3cb2bf02" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(str_TipType); // }} "" // {{ 522 1 0 "9e55246f_bd81_4be2_91d793fc4144ba0f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Length > 0) { // }} "" // {{{ 523 1 0 "debeb5ed_d2b7_4a2a_85a531aa55c01c2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TipType = StrIVal(str_TipType); // }} "" // {{ 524 1 0 "9e55246f_bd81_4be2_91d793fc4144ba0f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 525 1 0 "d09b3e82_0537_4b44_a85bde56dc0797f3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TipType = -1; // }} "" // {{ 526 1 0 "9e55246f_bd81_4be2_91d793fc4144ba0f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 527 1 0 "36177b00_b09b_4f5a_b3d8a9721f20498c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_TipType = int_TipType; // }} "" // {{ 528 1 0 "0640acdf_49fe_480b_836579b83f27d8bf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 0) { // }} "" // {{ 529 1 0 "1699751f_f020_4b19_9a27f0274839292b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_TipName = Translate("300uL Tips"); // }} "" // {{ 530 1 0 "0640acdf_49fe_480b_836579b83f27d8bf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 531 1 0 "b0c7fe89_d8dc_4a20_9d9d450d2d7f0513" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 1) { // }} "" // {{ 532 1 0 "e36147e5_7496_4677_85ca8cd771627364" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_TipName = Translate("300uL Tips"); // }} "" // {{ 533 1 0 "b0c7fe89_d8dc_4a20_9d9d450d2d7f0513" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 534 1 0 "2c75644d_2186_4510_b14735d260d55682" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 30) { // }} "" // {{ 535 1 0 "2f22366f_e904_43a1_bd5ea7c46ae0fd7a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_TipName = Translate("300uL Tips"); // }} "" // {{ 536 1 0 "2c75644d_2186_4510_b14735d260d55682" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 537 1 0 "ca0fb59c_4085_4722_9a8834a8c1c3c063" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 2) { // }} "" // {{ 538 1 0 "03cb7fa5_d304_4d4a_b3332674f03b744f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_TipName = Translate("10uL Tips"); // }} "" // {{ 539 1 0 "ca0fb59c_4085_4722_9a8834a8c1c3c063" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 540 1 0 "27e87592_6e4a_4874_bc0afc69ccb9c267" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 3) { // }} "" // {{ 541 1 0 "48b27773_b881_4be5_8a21afbfec5cc063" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_TipName = Translate("10uL Tips"); // }} "" // {{ 542 1 0 "27e87592_6e4a_4874_bc0afc69ccb9c267" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 543 1 0 "82402819_a9f3_437a_9014f0187cd65301" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 32) { // }} "" // {{ 544 1 0 "26708fe6_a89b_43d3_b9e18b8969333e65" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_TipName = Translate("10uL Tips"); // }} "" // {{ 545 1 0 "82402819_a9f3_437a_9014f0187cd65301" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 546 1 0 "ba28e3af_bd0b_421c_a6ef02d63c26f9e7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 4) { // }} "" // {{ 547 1 0 "86db7263_f632_4ce0_884dcc68c81946ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_TipName = Translate("1000uL Tips"); // }} "" // {{ 548 1 0 "ba28e3af_bd0b_421c_a6ef02d63c26f9e7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 549 1 0 "47f5e723_8e3e_4529_af6e3c00d30b59c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 5) { // }} "" // {{ 550 1 0 "adcc4822_b0d3_4867_8cea5b650f42b60e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_TipName = Translate("1000uL Tips"); // }} "" // {{ 551 1 0 "47f5e723_8e3e_4529_af6e3c00d30b59c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 552 1 0 "662fb244_7c9b_4b3a_a08b7a20ff60d4a4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 10) { // }} "" // {{ 553 1 0 "00c1b0ad_aeeb_433d_a65c0e683bfa46ce" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_TipName = Translate("Teaching Needles"); // }} "" // {{ 554 1 0 "662fb244_7c9b_4b3a_a08b7a20ff60d4a4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 555 1 0 "d77f5373_102e_4c5c_8eef8190d9e32c14" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 22) { // }} "" // {{ 556 1 0 "737266d4_2665_42c6_bba347ced1dfb7ff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_TipName = Translate("50uL Tips"); // }} "" // {{ 557 1 0 "d77f5373_102e_4c5c_8eef8190d9e32c14" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 558 1 0 "2abb6610_aedd_48e3_86d3701bbcaf31b5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 23) { // }} "" // {{ 559 1 0 "8e8d6032_de4d_4d30_8a8bd5e003ac1435" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_TipName = Translate("50uL Tips"); // }} "" // {{ 560 1 0 "2abb6610_aedd_48e3_86d3701bbcaf31b5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 561 1 0 "110020a6_6f45_4421_9655b16223d38eca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 31) { // }} "" // {{ 562 1 0 "7b6b9be4_3174_4809_a9912416c888ff11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_TipName = Translate("50uL Tips"); // }} "" // {{ 563 1 0 "110020a6_6f45_4421_9655b16223d38eca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 564 1 0 "efe46ef8_d9ff_4b1d_b65ae333659c92bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 36) { // }} "" // {{ 565 1 0 "f3813768_588a_4963_b0fae40d641a574a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_TipName = Translate("300uL Slim Tips"); // }} "" // {{ 566 1 0 "efe46ef8_d9ff_4b1d_b65ae333659c92bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 567 1 0 "93478e02_2ad6_4fdf_8b7e2b4841f30715" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 45) { // }} "" // {{ 568 1 0 "0ce3fb16_9d6e_40c1_9f06c40e709c9452" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_TipName = Translate("300uL Slim Tips"); // }} "" // {{ 569 1 0 "93478e02_2ad6_4fdf_8b7e2b4841f30715" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "GetTipName" "End" } // }} "" // {{{ 5 "FindLiquidHeight" "Begin" private function FindLiquidHeight( device & ML_STAR, variable i_str_LiquidLevelReturn, sequence i_seq_Labware, variable i_int_Channel, variable & o_flt_LiquidHeight ) void { // }} "" private variable flt_LiquidLevelDeck; private variable NotUsed; private variable flt_ZBottom; private variable str_LabID; private variable bool_Simulation; // {{ 5 "FindLiquidHeight" "InitLocals" o_flt_LiquidHeight = 0; // }} "" // {{{ 42 1 0 "ca059c24_f10e_4a72_9e721ee9b30f8bfe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_Simulation = Util::GetSimulationMode(); // }} "" // {{{ 43 1 0 "97d23cc1_1cbc_4b43_a85133c6410146d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_Labware); // }} "" // {{{ 44 1 0 "0690e87e_e227_4927_a988e9b720053fff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_LiquidLevelDeck = StepReturn::GetLastLiquidLevel(i_int_Channel, i_str_LiquidLevelReturn); // }} "" // {{{ 45 1 0 "d7a2782c_1648_41e9_b57c1bb7c29b6336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePosition(ML_STAR, str_LabID, NotUsed, NotUsed, flt_ZBottom, NotUsed); // }} "" // {{ 46 1 0 "c282cfca_6627_41b1_84ae06f9794804ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_Simulation == 1) { // }} "" // {{ 47 1 0 "a859b8d2_bff1_40b6_aa959bb2b8aa7d7e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("---------------- SIMULATED ADD 5mm TO LIQUID HEIGHT")); // }} "" // {{ 48 1 0 "bbb8c31a_59d6_4e14_a8c0fae86050d978" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidLevelDeck = flt_ZBottom + 5.0; // }} "" // {{ 49 1 0 "c282cfca_6627_41b1_84ae06f9794804ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 50 1 0 "07c10261_ee3b_48f5_b7318d121bb46a25" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_LiquidHeight = flt_LiquidLevelDeck - flt_ZBottom; // }} "" // {{ 51 1 0 "51e9b7bd_58bc_4887_9419d0d5bb20cacd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (o_flt_LiquidHeight < 0) { // }} "" // {{ 52 1 0 "f766168f_9bea_4c61_9f85b13350c98503" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_LiquidHeight = 0; // }} "" // {{ 53 1 0 "51e9b7bd_58bc_4887_9419d0d5bb20cacd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace("******** Liquid Level Height for ",str_LabID," is ",o_flt_LiquidHeight); // {{{ 5 "FindLiquidHeight" "End" } // }} "" // {{{ 5 "TipCheck" "Begin" function TipCheck( device & Instrument, sequence & i_seq_Tips, variable i_str_TipCounter, variable i_int_TipsNeeded ) void { // }} "" private dialog customDialog706FAA79E4E040d68E3F244DA0881AB6; private variable int_CurrentPosition; private variable flt_TipCapacity; private variable int_NumLabIDs; private variable str_TipMessage; private variable int_EndPosition; private variable int_PositionsRemaining; private variable str_TipLabware; private variable str_TipName; private variable arr_LabIDs[]; // {{ 5 "TipCheck" "InitLocals" // }} "" // {{ 736 1 0 "922bfa86_018c_42b2_809cc36a3d4615d3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("========= Check tip sequence")); // }} "" // {{{ 737 1 0 "1c3d88bc_5361_494d_983669d662e24cff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqGetLabwareIds(i_seq_Tips, arr_LabIDs); // }} "" // {{ 738 1 0 "0f8c0c70_471b_448c_b8d32c0acef69ca7" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_NumLabIDs=arr_LabIDs.GetSize(); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 739 1 0 "e40bc71e_5af2_42b2_a6fc17fc0fee037f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_NumLabIDs == 0) { // }} "" // {{ 740 1 0 "2721609f_9c0d_49d9_b8db9c1e5f2cdb67" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("------------------ No labware detected in sequence")); // }} "" // {{{ 741 1 0 "c53f4659_d85a_44bc_9f0b87c83f4034aa" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 742 1 0 "e40bc71e_5af2_42b2_a6fc17fc0fee037f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 743 1 0 "298654bf_f99f_47d8_8d30cbc6f4e2f805" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_NumLabIDs > 0) { // }} "" // {{ 744 1 0 "6439ce16_0a71_4fda_a2e2da9b53d09d57" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_TipLabware=arr_LabIDs.GetAt(1-1); // }} "" // {{{ 745 1 0 "1c257b60_e5f0_439e_a10a21578ce536c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TipCapacityCheck(Instrument, str_TipLabware, flt_TipCapacity); // }} "" // {{ 746 1 0 "298654bf_f99f_47d8_8d30cbc6f4e2f805" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 747 1 0 "47ee026d_9082_479f_9c1f170ee607ee3d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TipCapacity = Translate("Unknown"); // }} "" // {{ 748 1 0 "298654bf_f99f_47d8_8d30cbc6f4e2f805" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 749 1 0 "4fa41955_f485_4b69_83939d135ba00256" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipName = StrConcat4(flt_TipCapacity, Translate(" uL Tips"), Translate(""), Translate("")); // }} "" // {{{ 750 1 0 "40fabed3_2b54_4da2_bab4591af87dabc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipMessage = StrConcat4(Translate("Please load more "), str_TipName, Translate(" on to the deck."), Translate("")); // }} "" // {{ 751 1 0 "4573027c_43f9_4be1_a1ae1f2c0a3985a8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (1 == 1) { // }} "" // {{ 752 1 0 "932acddb_bc5a_442e_b16f7e89a43419b7" "{B31F353B-5D80-11d4-A5EB-0050DA737D89}" int_CurrentPosition = i_seq_Tips.GetCurrentPosition(); // }} "" // {{ 753 1 0 "1a8219e8_6f93_4cf6_aedfcda992a672d8" "{B31F353D-5D80-11d4-A5EB-0050DA737D89}" int_EndPosition = i_seq_Tips.GetCount(); // }} "" // {{ 754 1 0 "dd7bfeb0_4c79_4455_9a3d2c218c794ba2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_CurrentPosition == 0) { // }} "" // {{ 755 1 0 "0122085d_6fce_49ac_b0297477938d65b6" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CurrentPosition = int_EndPosition + 1; // }} "" // {{ 756 1 0 "dd7bfeb0_4c79_4455_9a3d2c218c794ba2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 757 1 0 "ade20c58_6c3d_4c9e_9bc9277acfa20cf4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_PositionsRemaining = int_EndPosition - int_CurrentPosition; // }} "" // {{ 758 1 0 "f0ba240a_e10d_484a_8fd1d351563996fc" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_PositionsRemaining = int_PositionsRemaining + 1; // }} "" Trace(" ","Positions Remaining: ",int_PositionsRemaining," Tips Needed: ",i_int_TipsNeeded); // {{ 760 1 0 "a908afeb_6cbc_4f1f_9f3b1d23cf8a1b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsRemaining >= i_int_TipsNeeded) { // }} "" // {{ 761 1 0 "8d2d6099_888b_421a_8c05814e76c262dd" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("------------------ Sufficient tips found")); // }} "" // {{ 762 1 0 "c117e974_82af_416d_830b1655e4f7d145" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 763 1 0 "a908afeb_6cbc_4f1f_9f3b1d23cf8a1b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 764 1 0 "55852e66_6a4b_4fe4_a263ddd4058a1dc2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("------------------ Insufficient tips found")); // }} "" // {{ 765 1 0 "181352df_f60a_447b_8a9ca42e39ced194" "{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}" customDialog706FAA79E4E040d68E3F244DA0881AB6.InitCustomDialog( "181352df_f60a_447b_8a9ca42e39ced194" ); customDialog706FAA79E4E040d68E3F244DA0881AB6.SetCustomDialogProperty( "textBlock2.Text", str_TipMessage ); customDialog706FAA79E4E040d68E3F244DA0881AB6.ShowCustomDialog(); // }} "" // {{ 766 1 0 "12215a7e_2613_4119_bcc480dbce64ca00" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_Tips.SetCurrentPosition(1); // }} "" // {{{ 767 1 0 "7bb73106_7b69_452d_bb7be777a1eb1bdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TipCount::Edit2(i_seq_Tips, i_str_TipCounter, Instrument, 99999); // }} "" // {{ 768 1 0 "4573027c_43f9_4be1_a1ae1f2c0a3985a8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "TipCheck" "End" } // }} "" // {{{ 5 "TipCapacityCheck" "Begin" function TipCapacityCheck( device & Instrument, variable i_str_TipLabware, variable & o_flt_TipCapacity ) void { // }} "" private variable str_TipType; private variable int_TipType; // {{ 5 "TipCapacityCheck" "InitLocals" o_flt_TipCapacity = 0; // }} "" // {{ 696 1 0 "f3f73451_d2f2_48b0_9d313e3ccbd76cfa" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_A455AB1F404B4082BD50E99095DD4F0A ; err.Clear(); // }} "" // {{{ 697 1 0 "e633943b_12cc_4414_85b72678e15a7a88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipType = DevGetLabwareData(Instrument, i_str_TipLabware, Translate("MlStarTipRack")); // }} "" // {{ 698 1 0 "f3f73451_d2f2_48b0_9d313e3ccbd76cfa" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_A455AB1F404B4082BD50E99095DD4F0A : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 699 1 0 "f3f73451_d2f2_48b0_9d313e3ccbd76cfa" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 700 1 0 "18176fd8_74d6_4cf1_93658a5bff5f9113" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TipType = StrIVal(str_TipType); // }} "" // {{ 701 1 0 "c17f4ce1_bb5b_4b57_b909714c2cdaee09" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 0.0; // }} "" // {{ 702 1 0 "e77304ce_9f08_475a_8fb8fcf92df0d529" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 2) { // }} "" // {{ 703 1 0 "0fc9bca5_9267_48f4_b5048ff04aaea490" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 10; // }} "" // {{ 704 1 0 "e77304ce_9f08_475a_8fb8fcf92df0d529" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 705 1 0 "9280d3ff_cb0d_4e65_bd99e99296aa60bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 32) { // }} "" // {{ 706 1 0 "0943290d_3cb2_472d_aad83ecb5f517f50" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 10; // }} "" // {{ 707 1 0 "9280d3ff_cb0d_4e65_bd99e99296aa60bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 708 1 0 "80f4d6a8_c9cb_429c_95ee496fe54382ea" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 3) { // }} "" // {{ 709 1 0 "4f80064a_110c_4ac3_84c49ba556775a46" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 10; // }} "" // {{ 710 1 0 "80f4d6a8_c9cb_429c_95ee496fe54382ea" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 711 1 0 "7d2e79b0_a521_453b_a685fcd9a686937b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 22) { // }} "" // {{ 712 1 0 "f2d090dd_bf93_445b_987d91afdcc53519" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 50; // }} "" // {{ 713 1 0 "7d2e79b0_a521_453b_a685fcd9a686937b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 714 1 0 "b60d124b_a6ef_4764_8c0a29d1b8dd7e5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 31) { // }} "" // {{ 715 1 0 "9f5a8e82_d85e_40a7_862cb16245b007bf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 50; // }} "" // {{ 716 1 0 "b60d124b_a6ef_4764_8c0a29d1b8dd7e5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 717 1 0 "00df9924_112f_42ee_8cf31c7fdaeef7e1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 23) { // }} "" // {{ 718 1 0 "148d410a_ff32_46cd_a2933afa36b5ee60" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 50; // }} "" // {{ 719 1 0 "00df9924_112f_42ee_8cf31c7fdaeef7e1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 720 1 0 "a6510d15_d3bb_4ca0_ba5b0e886a153d5c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 0) { // }} "" // {{ 721 1 0 "d82a8ccf_3547_436b_9cb21e4761366346" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 300; // }} "" // {{ 722 1 0 "a6510d15_d3bb_4ca0_ba5b0e886a153d5c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 723 1 0 "9035782d_e104_442d_97d17a169aea3d46" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 30) { // }} "" // {{ 724 1 0 "4426cc11_4df5_47f0_b36210ab58042744" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 300; // }} "" // {{ 725 1 0 "9035782d_e104_442d_97d17a169aea3d46" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 726 1 0 "ab1e7236_e314_4f08_bd399648c7f63f72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 1) { // }} "" // {{ 727 1 0 "265e1266_a3eb_4a35_bf6393e593cf9e4b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 300; // }} "" // {{ 728 1 0 "ab1e7236_e314_4f08_bd399648c7f63f72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 729 1 0 "7243b919_086f_41f6_a3bd5faa1c5ed439" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 4) { // }} "" // {{ 730 1 0 "d6bb9c5f_bc7d_4b4a_89c4d393165c26c5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 1000; // }} "" // {{ 731 1 0 "7243b919_086f_41f6_a3bd5faa1c5ed439" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 732 1 0 "550d6a6c_a565_44cf_902d05c8d70b722b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 5) { // }} "" // {{ 733 1 0 "d37ae73f_016e_4cb1_8c90ffe5f672e962" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 1000; // }} "" // {{ 734 1 0 "550d6a6c_a565_44cf_902d05c8d70b722b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "TipCapacityCheck" "End" } // }} "" // {{{ 5 "GetConnectedContainer" "Begin" function GetConnectedContainer( device & ML_STAR, variable i_str_LabID, variable & o_bool_ConnectedContainer ) void { // }} "" private variable bool_ConectedCarrier; // {{ 5 "GetConnectedContainer" "InitLocals" o_bool_ConnectedContainer = 0; // }} "" // {{ 201 1 0 "44149f1a_5cc1_422b_952ff48c2733b4bd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_ConectedCarrier = 0; // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = ML_STAR.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(i_str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); //objRack4.GetRackData(objRackDataParams); //bool_ConectedCarrier = objRackDataParams.Item1("ConnectedCtr"); bool_ConectedCarrier = objRack4.ConnectedCtr(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{ 203 1 0 "22e80592_f9d9_41d1_99a1810c755594cd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bool_ConnectedContainer = bool_ConectedCarrier; // }} "" // {{{ 5 "GetConnectedContainer" "End" } // }} "" // {{{ 5 "GetLabwareVisibility" "Begin" function GetLabwareVisibility( device & ML_STAR, variable i_str_LabID, variable & o_int_LabwareVisibility ) void { // }} "" private variable int_LabwareVisibility; // {{ 5 "GetLabwareVisibility" "InitLocals" o_int_LabwareVisibility = 0; // }} "" // {{ 472 1 0 "5f5bcbeb_1353_4d98_ba0089b3bf443a0c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_LabwareVisibility = 0; // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = ML_STAR.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(i_str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware6", objEditLabware5); int_LabwareVisibility = objEditLabware5.Visible(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{ 474 1 0 "ed6685a6_355e_4c1e_90a04df5c1a43b43" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_LabwareVisibility = int_LabwareVisibility; // }} "" // {{{ 5 "GetLabwareVisibility" "End" } // }} "" // {{{ 5 "GetLabwareFileName" "Begin" function GetLabwareFileName( device & ML_STAR, variable i_str_LabID, variable & o_str_LabwareFileName ) void { // }} "" private variable str_LabwareFileName; // {{ 5 "GetLabwareFileName" "InitLocals" o_str_LabwareFileName = 0; // }} "" // {{ 420 1 0 "124675bf_5e64_4213_bc88c306bfbffa2c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_LabwareFileName = Translate(""); // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = ML_STAR.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(i_str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware6", objEditLabware5); str_LabwareFileName = objEditLabware5.FileName(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{ 422 1 0 "25f22063_b7e9_41c4_9698e8fb06926407" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LabwareFileName = str_LabwareFileName; // }} "" // {{{ 5 "GetLabwareFileName" "End" } // }} "" // {{{ 5 "GetLabwareName" "Begin" function GetLabwareName( device & ML_STAR, variable i_str_LabID, variable & o_str_ViewName ) void { // }} "" private variable str_Name; private variable str_ViewName; // {{ 5 "GetLabwareName" "InitLocals" o_str_ViewName = 0; // }} "" // {{ 428 1 0 "92247661_65bd_45a8_8abe6524af37909c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ViewName = Translate(""); // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = ML_STAR.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(i_str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware6", objEditLabware5); str_ViewName = objEditLabware5.DisplayName(); str_Name = objEditLabware5.Name(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{ 430 1 0 "fbb902c5_1378_4a41_9e89bfd31b2922a6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ViewName = str_ViewName; // }} "" // {{{ 5 "GetLabwareName" "End" } // }} "" // {{{ 5 "GetLabwareType" "Begin" function GetLabwareType( device & ML_STAR, variable i_str_LabID, variable & o_str_LabwareType ) void { // }} "" private variable str_LabwareType; // {{ 5 "GetLabwareType" "InitLocals" o_str_LabwareType = 0; // }} "" // {{ 468 1 0 "6323894e_30e4_401a_922f4d855fca0d63" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_LabwareType = Translate(""); // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = ML_STAR.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(i_str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware6", objEditLabware5); str_LabwareType = objEditLabware5.Type(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{ 470 1 0 "47e9d6ef_2172_4c1b_8a3a7dc66b141706" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LabwareType = str_LabwareType; // }} "" // {{{ 5 "GetLabwareType" "End" } // }} "" // {{{ 5 "GetLabwareOrigin_OLD" "Begin" private function GetLabwareOrigin_OLD( device & ML_STAR, variable i_str_LabID, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void { // }} "" private variable flt_BoundaryX; private variable flt_BoundaryY; private variable flt_RackWidthX; private variable flt_RackWidthY; private variable flt_RackBase; private variable flt_BaseOffset; private variable flt_ContainerBaseThickness; private variable flt_ContainerOffset; private variable str_FirstPosition; // {{ 5 "GetLabwareOrigin_OLD" "InitLocals" o_flt_X_Coord = 0; o_flt_Y_Coord = 0; o_flt_Z_Coord = 0; // }} "" // {{ 449 1 0 "79fb3527_4f65_4511_9c5f3e985a696d57" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_X_Coord = 0.0; // }} "" // {{ 450 1 0 "9a1ca9af_bd09_4da2_b065be8743081eb2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Y_Coord = 0.0; // }} "" // {{ 451 1 0 "eeed632c_c0fa_406c_945503cad0df4c3a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Z_Coord = 0.0; // }} "" // {{ 452 1 0 "bbbc873d_4747_48b6_888144a8c1b501b2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BoundaryX = 0.0; // }} "" // {{ 453 1 0 "8182a9c8_8c49_4b60_b5085a889b44dd56" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BoundaryY = 0.0; // }} "" // {{ 454 1 0 "34c557e4_44a1_4074_9c54719ffdbb64cf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_RackWidthX = 0.0; // }} "" // {{ 455 1 0 "eaba73e2_fc14_445b_bd3b9c6b0cc75da3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_RackWidthY = 0.0; // }} "" // {{ 456 1 0 "687a7d2b_0a83_46d4_b88263aabf527f53" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_RackBase = 0.0; // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = ML_STAR.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(i_str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); objRack4.GetRackData(objRackDataParams); flt_BoundaryX = objRackDataParams.Item1("Labwr_Bndry1X"); flt_BoundaryY = objRackDataParams.Item1("Labwr_Bndry1Y"); flt_RackWidthX = objRackDataParams.Item1("Labwr_XDim"); flt_RackWidthY = objRackDataParams.Item1("Labwr_YDim"); flt_RackBase = objRack4.RackBase(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{{ 458 1 0 "42714814_c1dd_417a_9c95208b8dbd61e8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetFirstPosition(ML_STAR, i_str_LabID, str_FirstPosition); // }} "" // {{ 459 1 0 "b6617210_13d6_40b3_8350d7d6860c9fb2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_X_Coord = flt_BoundaryX; // }} "" // {{ 460 1 0 "c3a5c855_2e0d_4895_8010b22bbf7ea27f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Y_Coord = flt_BoundaryY; // }} "" // {{ 461 1 0 "bc3162bf_0538_49c8_be8b0b5fcd7ad656" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Z_Coord = flt_RackBase; // }} "" // {{{ 462 1 0 "5683dfe7_d309_4e6b_ade190cb33a8d773" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetContainerBaseThickness(ML_STAR, i_str_LabID, str_FirstPosition, flt_ContainerBaseThickness); // }} "" // {{{ 463 1 0 "558e966d_5490_4eba_970ec0d2811298d3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetContainerBaseOffset(ML_STAR, i_str_LabID, str_FirstPosition, flt_BaseOffset); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 464 1 0 "a2df9d45_7891_47e8_a667660399e853b5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ContainerOffset = flt_ContainerBaseThickness + flt_BaseOffset; // }} "" // {{ 465 1 0 "3bf1b61c_fb04_4012_ac0dced27fc47701" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_Z_Coord = flt_RackBase - flt_ContainerBaseThickness; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 466 1 0 "6f93061d_6567_4807_8662231fe935a2af" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_Z_Coord = MthRound(o_flt_Z_Coord, 1); // }} "" // {{{ 5 "GetLabwareOrigin_OLD" "End" } // }} "" // {{{ 5 "GetZTranslate" "Begin" function GetZTranslate( device & ML_STAR, variable i_str_LabID, variable & o_flt_ZTranslate, variable & o_flt_ZTransValue ) void { // }} "" // {{ 5 "GetZTranslate" "InitLocals" o_flt_ZTranslate = 0; o_flt_ZTransValue = 0; // }} "" // {{ 576 1 0 "e5eb7bd7_9135_4642_973feb4721ae62d4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_ZTranslate = 0.0; // }} "" // {{ 577 1 0 "522ff36f_38bb_49d0_94fc0bcd0a2f2a1c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_ZTransValue = 0.0; // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = ML_STAR.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(i_str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); objRack4.GetRackData(objRackDataParams); //flt_RackHeight = objRackDataParams.Item1("Labwr_ZDim"); //o_flt_RackClearanceHeight = objEditLabware5.Clearance(str_PosID); //flt_RackBase = objRack4.RackBase(); o_flt_ZTranslate = objRack4.ZTranslate(); o_flt_ZTransValue = objRack4.ZTransValue(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{{ 579 1 0 "b3da8f2a_b17b_4923_a9898e2907f6d2c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_ZTranslate = MthRound(o_flt_ZTranslate, 1); // }} "" // {{{ 580 1 0 "390c29ae_ecf1_4d9c_9303946fbbb982c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_ZTransValue = MthRound(o_flt_ZTransValue, 1); // }} "" // {{{ 5 "GetZTranslate" "End" } // }} "" // {{{ 5 "GetContainerBaseThickness" "Begin" function GetContainerBaseThickness( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_containerBaseThickness ) void { // }} "" // {{ 5 "GetContainerBaseThickness" "InitLocals" o_containerBaseThickness = 0; // }} "" // {{ 209 1 0 "7f7065fc_fdad_43a7_a26893eed32fdb26" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_containerBaseThickness = 0; // }} "" { object rack; object ctr; object labware; object m_decklayout; variable labwareId; m_decklayout = io_instrument.GetDeckLayoutObject(); //labwareId = SeqGetLabwareId(i_sequenceLabware); labware = m_decklayout.Labware(i_str_Labware); labware.GetObject2("{3E5213CF-57C9-4911-B33E-05E77130E4DB}", rack); // IEditLabware6 rack.CntrAtPosition(ctr,i_str_PositionID); o_containerBaseThickness = ctr.ContainerBaseDepth; rack.ReleaseObject(); ctr.ReleaseObject(); labware.ReleaseObject(); m_decklayout.ReleaseObject(); } // {{{ 211 1 0 "90407a24_6444_4450_930836477f228f54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_containerBaseThickness = MthRound(o_containerBaseThickness, 1); // }} "" // {{{ 5 "GetContainerBaseThickness" "End" } // }} "" // {{{ 5 "GetContainerBaseOffset" "Begin" function GetContainerBaseOffset( device & io_instrument, variable i_str_Labware, variable i_str_PosID, variable & o_containerBaseOffset ) void { // }} "" // {{ 5 "GetContainerBaseOffset" "InitLocals" o_containerBaseOffset = 0; // }} "" // {{ 205 1 0 "7d1dfd04_0d47_4951_b54a0107781220b7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_containerBaseOffset = 0; // }} "" { object rack; object labware; object m_decklayout; variable labwareId; m_decklayout = io_instrument.GetDeckLayoutObject(); //labwareId = SeqGetLabwareId(i_sequenceLabware); labware = m_decklayout.Labware(i_str_Labware); labware.GetObject("IRectRack2", rack); // IEditLabware6 o_containerBaseOffset = rack.ContainerBaseOffset(i_str_PosID); rack.ReleaseObject(); labware.ReleaseObject(); m_decklayout.ReleaseObject(); } // {{{ 207 1 0 "ca748d28_1205_4213_b2cba3fe302d51c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_containerBaseOffset = MthRound(o_containerBaseOffset, 1); // }} "" // {{{ 5 "GetContainerBaseOffset" "End" } // }} "" // {{{ 5 "GetContainerDepth" "Begin" function GetContainerDepth( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_ContainerDepth, variable & o_ContainerClearanceHeight ) void { // }} "" // {{ 5 "GetContainerDepth" "InitLocals" o_ContainerDepth = 0; o_ContainerClearanceHeight = 0; // }} "" // {{ 216 1 0 "a0e4c53d_5808_452a_a1e1e6e9304ca4c8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_ContainerDepth = 0; // }} "" // {{ 217 1 0 "000d7a36_54f8_4279_82a6e40a58bd905c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_ContainerClearanceHeight = 0.0; // }} "" { object rack; object ctr; object labware; object m_decklayout; variable labwareId; m_decklayout = io_instrument.GetDeckLayoutObject(); //labwareId = SeqGetLabwareId(i_sequenceLabware); labware = m_decklayout.Labware(i_str_Labware); labware.GetObject2("{3E5213CF-57C9-4911-B33E-05E77130E4DB}", rack); // IEditLabware6 rack.CntrAtPosition(ctr,i_str_PositionID); o_ContainerDepth = ctr.Depth; o_ContainerClearanceHeight = ctr.Clearance; rack.ReleaseObject(); ctr.ReleaseObject(); labware.ReleaseObject(); m_decklayout.ReleaseObject(); } // {{{ 219 1 0 "79122a28_e977_4b35_8ea2f9ce1dd0bdeb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_ContainerClearanceHeight = MthRound(o_ContainerClearanceHeight, 1); // }} "" // {{{ 220 1 0 "bf3d3ad4_b888_4ea3_97d460885f2344f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_ContainerDepth = MthRound(o_ContainerDepth, 1); // }} "" // {{{ 5 "GetContainerDepth" "End" } // }} "" // {{{ 5 "GetContainerConfigurationFile" "Begin" function GetContainerConfigurationFile( device & io_instrument, variable i_str_Labware, variable i_str_PosID, variable & o_str_ContainerFileName ) void { // }} "" // {{ 5 "GetContainerConfigurationFile" "InitLocals" o_str_ContainerFileName = 0; // }} "" // {{ 213 1 0 "6916e8d0_13d9_4e5c_9b29105e0ba21f25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ContainerFileName = Translate(""); // }} "" { object rack; object ctr; object labware; object m_decklayout; variable labwareId; m_decklayout = io_instrument.GetDeckLayoutObject(); //labwareId = SeqGetLabwareId(i_sequenceLabware); labware = m_decklayout.Labware(i_str_Labware); labware.GetObject2("{3E5213CF-57C9-4911-B33E-05E77130E4DB}", rack); // IEditLabware6 rack.CntrAtPosition(ctr,i_str_PosID); o_str_ContainerFileName = ctr.FileName; rack.ReleaseObject(); ctr.ReleaseObject(); labware.ReleaseObject(); m_decklayout.ReleaseObject(); } // {{{ 5 "GetContainerConfigurationFile" "End" } // }} "" // {{{ 5 "GetContainerGeometry" "Begin" function GetContainerGeometry( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_str_ContainerGeometry ) void { // }} "" // {{ 5 "GetContainerGeometry" "InitLocals" o_str_ContainerGeometry = 0; // }} "" // {{ 222 1 0 "1f89e551_dd7a_4c65_a6e0a86b6b7820af" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ContainerGeometry = Translate(""); // }} "" { object rack; object ctr; object labware; object m_decklayout; variable labwareId; m_decklayout = io_instrument.GetDeckLayoutObject(); //labwareId = SeqGetLabwareId(i_sequenceLabware); labware = m_decklayout.Labware(i_str_Labware); labware.GetObject2("{3E5213CF-57C9-4911-B33E-05E77130E4DB}", rack); // IEditLabware6 rack.CntrAtPosition(ctr,i_str_PositionID); o_str_ContainerGeometry = ctr.geometry; rack.ReleaseObject(); ctr.ReleaseObject(); labware.ReleaseObject(); m_decklayout.ReleaseObject(); } // {{{ 5 "GetContainerGeometry" "End" } // }} "" // {{{ 5 "GetContainerShape" "Begin" function GetContainerShape( device & io_instrument, variable i_str_Labware, variable i_str_PositionID, variable & o_int_ContainerShape ) void { // }} "" // {{ 5 "GetContainerShape" "InitLocals" o_int_ContainerShape = 0; // }} "" // {{ 225 1 0 "335efb5e_587d_4cbf_994a3dc14b765274" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_ContainerShape = 0.0; // }} "" { object rack; object ctr; object labware; object m_decklayout; variable labwareId; m_decklayout = io_instrument.GetDeckLayoutObject(); //labwareId = SeqGetLabwareId(i_sequenceLabware); labware = m_decklayout.Labware(i_str_Labware); labware.GetObject2("{3E5213CF-57C9-4911-B33E-05E77130E4DB}", rack); // IEditLabware6 rack.CntrAtPosition(ctr,i_str_PositionID); o_int_ContainerShape = ctr.Shape; rack.ReleaseObject(); ctr.ReleaseObject(); labware.ReleaseObject(); m_decklayout.ReleaseObject(); } // {{{ 5 "GetContainerShape" "End" } // }} "" // {{{ 5 "GetProbeAdjustment" "Begin" private function GetProbeAdjustment( device & ML_STAR, variable i_str_LabID, variable & o_flt_XProbeAdjustment, variable & o_flt_YProbeAdjustment, variable & o_flt_ZProbeAdjustment ) void { // }} "" // {{ 5 "GetProbeAdjustment" "InitLocals" o_flt_XProbeAdjustment = 0; o_flt_YProbeAdjustment = 0; o_flt_ZProbeAdjustment = 0; // }} "" // {{ 476 1 0 "f17c65dd_7378_4201_807f40b5ba572503" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_XProbeAdjustment = 0.0; // }} "" // {{ 477 1 0 "c1ae0e2a_0a87_4441_8e12463f56663c8c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_YProbeAdjustment = 0.0; // }} "" // {{ 478 1 0 "2115123b_0c33_4fbc_b5118f0be69a12e3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_ZProbeAdjustment = 0.0; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = ML_STAR.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(i_str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware3", objEditLabware5); o_flt_XProbeAdjustment = objEditLabware5.XProbeAdjustment; o_flt_YProbeAdjustment = objEditLabware5.YProbeAdjustment; o_flt_ZProbeAdjustment = objEditLabware5.ZProbeAdjustment; objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 5 "GetProbeAdjustment" "End" } // }} "" // {{{ 5 "AdjustSequence" "Begin" function AdjustSequence( device & ML_STAR, sequence i_seq_SequenceToAdjust, variable i_int_StartingPosition, variable i_int_EndingPosition, sequence & o_seq_AdjustedSequence ) void { // }} "" private variable i; private variable int_TotalSequencePositions; private variable str_LabID; private variable str_PosID; // {{ 5 "AdjustSequence" "InitLocals" { sequence __temp; o_seq_AdjustedSequence = __temp; } // }} "" // {{{ 1 1 0 "2a575e19_dbec_4a20_b950e99a10285537" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalSequencePositions = SeqGetTotal(i_seq_SequenceToAdjust); // }} "" // {{ 2 1 0 "f31c8a1a_445c_43b0_a4bca112b6a969ce" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_SequenceToAdjust.SetCurrentPosition(i_int_StartingPosition); // }} "" // {{ 3 1 0 "e073a8ce_16d4_4807_8a5074fc74edc3f2" "{B31F353C-5D80-11d4-A5EB-0050DA737D89}" i_seq_SequenceToAdjust.SetCount(i_int_EndingPosition); // }} "" // {{{ 4 1 0 "f7b34b19_82e5_4924_a93d96a59d71c2a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_AdjustedSequence); // }} "" // {{ 5 1 0 "c738b45a_4711_415d_889335f43e7f68b9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalSequencePositions;) { i = i + 1; // }} "" // {{{ 6 1 0 "6ede4c03_acba_46d4_9fd43e877bc4e1ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_SequenceToAdjust); // }} "" // {{{ 7 1 0 "05c2a3cf_1ced_49e0_b55f6b55ae6788af" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_SequenceToAdjust); // }} "" // {{{ 8 1 0 "09faec89_efe8_4b28_a829bfe1a53c44dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(i_seq_SequenceToAdjust, 1); // }} "" // {{ 9 1 0 "5ef68546_ff6c_4f88_bd33fcb21d888d8d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_PosID != "") { // }} "" // {{{ 10 1 0 "49f08b6d_e36f_41d1_90d1ff28b858481f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq_AdjustedSequence, str_LabID, str_PosID); // }} "" // {{ 11 1 0 "5ef68546_ff6c_4f88_bd33fcb21d888d8d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 12 1 0 "c738b45a_4711_415d_889335f43e7f68b9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 13 1 0 "b0595e6e_102d_4779_b85a874965973c0c" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq_AdjustedSequence.SetCurrentPosition(1); // }} "" // {{{ 5 "AdjustSequence" "End" } // }} "" // {{{ 5 "RemoveTruncatedSequencePositionsOLD" "Begin" private function RemoveTruncatedSequencePositionsOLD( device & ML_STAR, sequence & io_Sequence ) void { // }} "" private variable i; private variable int_TotalSequencePositions; private variable str_LabID; private variable str_PosID; private sequence seq_AdjustedSequence; // {{ 5 "RemoveTruncatedSequencePositionsOLD" "InitLocals" // }} "" // {{{ 592 1 0 "2939bf42_f149_45f7_8b8b0e46835bd130" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalSequencePositions = SeqGetTotal(io_Sequence); // }} "" // {{{ 593 1 0 "c4dda7bc_a8e9_44c6_b1c9881d28609daa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_AdjustedSequence); // }} "" // {{ 594 1 0 "12223b72_d6a8_4d37_991d9dbfff71b567" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalSequencePositions;) { i = i + 1; // }} "" // {{{ 595 1 0 "d712505c_8e6e_4880_b351ff8f88c2ad1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(io_Sequence); // }} "" // {{{ 596 1 0 "f25b328e_318b_4972_9ba2c9655186b09d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(io_Sequence); // }} "" // {{{ 597 1 0 "26f265bf_0d7f_47c5_aac0720bbeeea5b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(io_Sequence, 1); // }} "" // {{ 598 1 0 "4066de0b_6cfe_4cc2_b683d878c9aca9dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_LabID != "") { // }} "" // {{ 599 1 0 "015f1044_c801_4c3d_84429af9e2a803b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_PosID != "") { // }} "" // {{{ 600 1 0 "b9391fea_fb7c_48ec_8cc2c1ab088d909d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(seq_AdjustedSequence, str_LabID, str_PosID); // }} "" // {{ 601 1 0 "015f1044_c801_4c3d_84429af9e2a803b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 602 1 0 "4066de0b_6cfe_4cc2_b683d878c9aca9dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 603 1 0 "12223b72_d6a8_4d37_991d9dbfff71b567" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 604 1 0 "90db56ee_50b5_47ee_8ac5d407606e1a9a" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_AdjustedSequence.SetCurrentPosition(1); // }} "" // {{{ 605 1 0 "2ea11682_cf8e_409e_be67ec0d74ce7fc2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(io_Sequence, seq_AdjustedSequence); // }} "" // {{{ 5 "RemoveTruncatedSequencePositionsOLD" "End" } // }} "" // {{{ 5 "ReplaceLabware" "Begin" function ReplaceLabware( device & ML_STAR, variable i_str_LabID, variable i_str_NewConfigFile ) void { // }} "" private variable flt_Current_Z; private variable int_LabwareVisibility; private variable flt_Current_A; private variable flt_Current_X; private variable flt_Current_Y; private variable str_CurrentTemplateID; private variable str_CurrentTemplateSiteID; private variable arr_LabID[]; private variable arr_LabID_Vis[]; // {{ 5 "ReplaceLabware" "InitLocals" // }} "" // {{{ 607 1 0 "1ffa73ad_6b7d_4436_a16499a2d347d84a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetLabwareVisibility(ML_STAR, i_str_LabID, int_LabwareVisibility); // }} "" // {{ 608 1 0 "163721c0_0452_4e63_85d399dc52efbb3f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_LabID.SetSize(0); // }} "" // {{ 609 1 0 "eec89ec7_45c0_420a_9fd4f414d02cdba0" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_LabID.AddAsLast(i_str_LabID); // }} "" // {{ 610 1 0 "a27e9a47_f30b_474f_854655c09b6aaad1" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_LabID_Vis.SetSize(0); // }} "" // {{ 611 1 0 "68473b11_b6cd_4cf1_b4e6d8b61f6b7e69" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_LabID_Vis.AddAsLast(int_LabwareVisibility); // }} "" // {{{ 612 1 0 "24d00924_ee99_4075_a9fbd31a19b8f0f1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SetAbsolutePositionForLabwareID(ML_STAR, i_str_LabID, flt_Current_X, flt_Current_Y, flt_Current_Z, flt_Current_A); // }} "" // {{{ 613 1 0 "041a7dd3_5cf9_4fb3_9b0f758455889892" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetCarrierAndSiteID(ML_STAR, i_str_LabID, str_CurrentTemplateID, str_CurrentTemplateSiteID); // }} "" // {{{ 614 1 0 "99a94ec7_3eaf_48fd_b6771c9bf6ca937c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevRemoveLabware(ML_STAR, i_str_LabID); // }} "" // {{ 615 1 0 "ea7431e9_7d5d_409c_bedf30a49385840e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_CurrentTemplateID == "default") { // }} "" // {{{ 616 1 0 "5f9896b2_42e6_41d7_8c28c6fe6ac9da71" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevAddLabware(ML_STAR, i_str_LabID, i_str_NewConfigFile, flt_Current_X, flt_Current_Y, flt_Current_Z, flt_Current_A); // }} "" // {{ 617 1 0 "ea7431e9_7d5d_409c_bedf30a49385840e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 618 1 0 "528d8ff4_ea0c_4ac6_9814a72b59283142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevAddLabwareToTemplate(ML_STAR, i_str_LabID, i_str_NewConfigFile, str_CurrentTemplateID, str_CurrentTemplateSiteID); // }} "" // {{ 619 1 0 "ea7431e9_7d5d_409c_bedf30a49385840e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 620 1 0 "a351b4e3_1e7a_4190_aaf41184b7382ac1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateLoadedLabware(ML_STAR, arr_LabID, arr_LabID_Vis, Translate("")); // }} "" // {{{ 5 "ReplaceLabware" "End" } // }} "" // {{{ 5 "GetCarrierAndSiteID" "Begin" function GetCarrierAndSiteID( device & Instrument, variable i_str_Labware, variable & o_str_TemplateID, variable & o_str_TemplateSiteID ) void { // }} "" // {{ 5 "GetCarrierAndSiteID" "InitLocals" o_str_TemplateID = 0; o_str_TemplateSiteID = 0; // }} "" // {{ 56 1 0 "0fe4025a_f7c5_499d_bb1c2bf1eae91a90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_TemplateID = Translate(""); // }} "" // {{ 57 1 0 "41595d44_70a7_4156_bb74c6109c58c918" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_TemplateSiteID = Translate(""); // }} "" { object obj_Decklayout; obj_Decklayout = Instrument.GetDeckLayoutObject(); if (!obj_Decklayout.IsNull()) { object EditDecklayout5; object Parameter; object LabwareObjects; object LabwareNames; variable Array_Keys[]; variable intCounter; obj_Decklayout.GetObject("IEditDeckLayout5", EditDecklayout5); LabwareObjects.CreateObject("HXPARAMSLib.HxPars"); LabwareNames.CreateObject("HXPARAMSLib.HxPars"); obj_Decklayout.TemplateLabwareNames(LabwareObjects); Array_Keys = LabwareObjects.GetKeys(); for(intCounter=1; intCounter<=Array_Keys.GetSize(); intCounter++) { LabwareNames = LabwareObjects.Item1(intCounter); if(LabwareNames.Item1("Labwr_Id") == i_str_Labware) { //var_return = 1; o_str_TemplateSiteID = LabwareNames.Item1("Labwr_DkSiteId"); o_str_TemplateID = LabwareNames.Item1("Labwr_TemplateId"); } } obj_Decklayout.ReleaseObject(); EditDecklayout5.ReleaseObject(); Parameter.ReleaseObject(); LabwareObjects.ReleaseObject(); LabwareNames.ReleaseObject(); } } // {{{ 5 "GetCarrierAndSiteID" "End" } // }} "" // {{{ 5 "GetRowColumnNumber" "Begin" function GetRowColumnNumber( device & Instrument, variable i_str_LabwareID, variable & o_int_RowCount, variable & o_int_ColumnCount, variable & o_bool_AlphaNumeric, variable & o_bool_IncrementContainer ) void { // }} "" // {{ 5 "GetRowColumnNumber" "InitLocals" o_int_RowCount = 0; o_int_ColumnCount = 0; o_bool_AlphaNumeric = 0; o_bool_IncrementContainer = 0; // }} "" // {{ 499 1 0 "2692d37e_412b_4b80_a350cc84a05f41f7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bool_AlphaNumeric = 0; // }} "" // {{ 500 1 0 "65f67b49_5555_4cbb_92c6a50c130c1154" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_ColumnCount = 0; // }} "" // {{ 501 1 0 "f0f83718_3e06_43a5_928da60fabb66776" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_RowCount = 0; // }} "" // {{ 502 1 0 "da36996e_150c_48e2_92b56040a30eda9d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bool_IncrementContainer = 0; // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = Instrument.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(i_str_LabwareID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); objRack4.GetRackData(objRackDataParams); o_int_RowCount = objRack4.Rows(); o_int_ColumnCount = objRack4.Columns(); o_bool_AlphaNumeric = objRack4.Index(); o_bool_IncrementContainer = objRack4.Increment(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{{ 5 "GetRowColumnNumber" "End" } // }} "" // {{{ 5 "GetLabwareLW" "Begin" function GetLabwareLW( device & Instrument, variable i_str_LabID, variable & o_flt_Labware_L, variable & o_flt_Labware_W ) void { // }} "" // {{ 5 "GetLabwareLW" "InitLocals" o_flt_Labware_L = 0; o_flt_Labware_W = 0; // }} "" // {{ 424 1 0 "f6323e62_bd06_4f00_acb3e924aac4ed70" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Labware_W = 0.0; // }} "" // {{ 425 1 0 "11ab5143_efd0_4466_a5ccbbcc20a8fc02" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Labware_L = 0.0; // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = Instrument.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(i_str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); objRack4.GetRackData(objRackDataParams); o_flt_Labware_W = objRackDataParams.Item1("Labwr_XDim"); o_flt_Labware_L = objRackDataParams.Item1("Labwr_YDim"); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{{ 5 "GetLabwareLW" "End" } // }} "" // {{{ 5 "GetLabwareCenter2_OLD" "Begin" private function GetLabwareCenter2_OLD( device & ML_STAR, variable i_str_LabID, variable & o_flt_X_Center, variable & o_flt_Y_Center ) void { // }} "" private variable int_Increment; private variable int_TotalColumns; private variable int_Index; private variable int_TotalRows; private variable str_PosID; private variable flt_X_Coord; private variable flt_NotUsed; private variable flt_Y_Coord; private variable int_EndPosition; private variable arr_Y_Coordinate[]; private variable arr_X_Coordinate[]; // {{ 5 "GetLabwareCenter2_OLD" "InitLocals" o_flt_X_Center = 0; o_flt_Y_Center = 0; // }} "" // {{ 356 1 0 "b75803c4_499e_43de_a1fa56eb56b08800" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TotalRows = 0; // }} "" // {{ 357 1 0 "dc152a9e_c294_4b2d_aa38b11a2f888eae" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TotalColumns = 0; // }} "" // {{ 358 1 0 "9e0b2841_5de3_4d0c_8eac99ca80e6d761" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Index = 0; // }} "" // {{ 359 1 0 "ecca85ae_53e9_4d2b_a18c348b6da88e43" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Increment = 0; // }} "" // {{ 360 1 0 "79db16cc_b63d_4bbe_91ced19708edb159" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_X_Center = 0.0; // }} "" // {{ 361 1 0 "2573f1a8_73e6_43c0_a718a00a9b1c590b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Y_Center = 0.0; // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = ML_STAR.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(i_str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); objRack4.GetRackData(objRackDataParams); int_TotalRows = objRack4.Rows(); int_TotalColumns = objRack4.Columns(); int_Index = objRack4.Index(); int_Increment = objRack4.Increment(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{ 363 1 0 "4dccff9b_adfe_44a1_85a5a30918c40518" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_X_Coordinate.SetSize(0); // }} "" // {{ 364 1 0 "b0b3edf9_1b5d_4bc5_ac4700f6aed2a1ef" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Y_Coordinate.SetSize(0); // }} "" // {{ 365 1 0 "deedd98d_cf52_4029_ac05666080867d50" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_EndPosition = int_TotalColumns * int_TotalRows; // }} "" // {{ 366 1 0 "d30c3429_c299_45ad_868be925cf27b488" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 367 1 0 "d38a6e23_8e27_46be_a3c858b20ee5cec5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index == 1) { // }} "" // {{{ 368 1 0 "dcd725a7_df9a_4aed_9530368cf174dc34" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ANC::Convert_Numbers_to_Alpha_Numeric(int_Increment, 1, int_TotalRows, int_TotalColumns, str_PosID); // }} "" // {{ 369 1 0 "d38a6e23_8e27_46be_a3c858b20ee5cec5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 370 1 0 "a5e9ba3d_5be5_4572_9d17acac6f6a8f74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = StrConcat2(1, Translate("")); // }} "" // {{ 371 1 0 "d38a6e23_8e27_46be_a3c858b20ee5cec5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 372 1 0 "14ff9ae8_361e_49e7_b132cd8b8c5a92e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, i_str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_NotUsed, flt_NotUsed); // }} "" // {{ 373 1 0 "08077110_ab71_4b12_9de227749b64eaa1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_X_Coordinate.AddAsLast(flt_X_Coord); // }} "" // {{ 374 1 0 "5cf19ad3_e9de_4976_886df959109d2001" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Y_Coordinate.AddAsLast(flt_Y_Coord); // }} "" // {{ 375 1 0 "661085f4_0f7c_4027_a7bb226c3c9ed1a1" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 376 1 0 "edd1a44d_572c_4026_b65ff3fea8bc0718" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index == 1) { // }} "" // {{{ 377 1 0 "4c5763d2_8674_462c_a31996dd81b6675a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ANC::Convert_Numbers_to_Alpha_Numeric(int_Increment, int_EndPosition, int_TotalRows, int_TotalColumns, str_PosID); // }} "" // {{ 378 1 0 "edd1a44d_572c_4026_b65ff3fea8bc0718" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 379 1 0 "1684e001_838b_4e92_a7d15aa909270608" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = StrConcat2(int_EndPosition, Translate("")); // }} "" // {{ 380 1 0 "edd1a44d_572c_4026_b65ff3fea8bc0718" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 381 1 0 "c5b814fb_ed3b_4159_837e9ebe2bf43e30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, i_str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_NotUsed, flt_NotUsed); // }} "" // {{ 382 1 0 "f230b179_0f94_4bc4_b23e5ff121f33608" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_X_Coordinate.AddAsLast(flt_X_Coord); // }} "" // {{ 383 1 0 "e089ccbb_96fd_422b_bd19c3b788fbed5e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Y_Coordinate.AddAsLast(flt_Y_Coord); // }} "" // {{{ 384 1 0 "5437b8c3_d551_4c53_a3f5b82b57283339" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_X_Center = HSLStatisitics::Stat_Average(arr_X_Coordinate); // }} "" // {{{ 385 1 0 "c235ea1d_05a7_4a7b_a61e6544735c0668" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_Y_Center = HSLStatisitics::Stat_Average(arr_Y_Coordinate); // }} "" // {{{ 5 "GetLabwareCenter2_OLD" "End" } // }} "" // {{{ 5 "Set_Relative_Position_for_LabwareID" "Begin" function Set_Relative_Position_for_LabwareID( device & io_devDevice, variable & i_strLabwareID, variable i_fltPositionX, variable i_fltPositionY, variable i_fltPositionZ, variable i_fltPositionR ) void { // }} "" // {{ 5 "Set_Relative_Position_for_LabwareID" "InitLocals" // }} "" { // HxPars keys static string P_XCOORD("Labwr_XCoord"); static string P_YCOORD("Labwr_YCoord"); static string P_ZCOORD("Labwr_ZCoord"); static string P_RZCOORD("Labwr_Rotation"); static string P_LABWARE_ID("Labwr_Id"); // Helper functions //private function ConvertToFloat(variable iVariable, variable& oVariable) variable; //private function CheckBool(variable iVariable, variable iTraceEntry, variable iFunctionName) variable; //private function CheckInteger(variable iVariable, variable iTraceEntry, variable iFunctionName) variable; //private function CheckIntegerRange(variable iVariable, variable iTraceEntry, variable iMin, variable iMax, variable iFunctionName) variable; //private function CheckString(variable iVariable, variable iTraceEntry, variable iFunctionName) variable; //private function CheckFloat(variable iVariable, variable iTraceEntry, variable iFunctionName) variable; //private function StatusTrace(variable i_intState, variable i_intTraceLevel, variable i_strTraceString, variable i_strFunctionName) void; //private function EnterSemaphore(); //private function LeaveSemaphore(); //private function ExtractFunctionName(variable i_strFunctionName) variable; //private function ReverseFind(string i_strString, string i_strSubString) variable; //////////////////////////////////////////////////////////////////////////// // RelativePositionValuesSetForLabwareID //////////////////////////////////////////////////////////////////////////// //function RelativePositionValuesSetForLabwareID(device& io_devDevice, // variable i_strLabwareID, // variable i_fltPositionX, // variable i_fltPositionY, // variable i_fltPositionZ, // variable i_fltPositionR) variable { variable PosVals[]; variable myValue; object objDecklayout; variable strFunctionName(""); // strFunctionName = ExtractFunctionName(GetFunctionName()); // check input variables // if(!CheckString(i_strLabwareID, "i_strLabwareID", strFunctionName)) return(hslFalse); //StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_strLabwareID = " + i_strLabwareID, strFunctionName); //EnterSemaphore(); objDecklayout = io_devDevice.GetDeckLayoutObject(); //LeaveSemaphore(); if(!objDecklayout.IsNull()) { object objLabware; variable strPos(""); onerror goto HandleLabwareError; objLabware = objDecklayout.Labware(i_strLabwareID); onerror goto 0; err.Clear(); if(!objLabware.IsNull()) { object Decklayout5; object MoveParameters; variable fltPos, fltPosShift; objDecklayout.GetObject("IDeckLayout5", Decklayout5); MoveParameters.CreateObject("HXPARAMSLib.HxPars"); MoveParameters.Add(i_strLabwareID, P_LABWARE_ID); //EnterSemaphore(); io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals); //LeaveSemaphore(); //StatusTrace(CMD_PROGRESS, TRACE_LEVEL_DEBUG, "Current position: (" + FStr(PosVals[0]) + "/" + FStr(PosVals[1]) + "/" + FStr(PosVals[2]) + "/" + FStr(PosVals[3]) + ")", strFunctionName); ConvertToFloat(PosVals[0],fltPos); ConvertToFloat(i_fltPositionX,fltPosShift); MoveParameters.Add(fltPos+fltPosShift, P_XCOORD); ConvertToFloat(PosVals[1],fltPos); ConvertToFloat(i_fltPositionY,fltPosShift); MoveParameters.Add(fltPos+fltPosShift, P_YCOORD); ConvertToFloat(PosVals[2],fltPos); ConvertToFloat(i_fltPositionZ,fltPosShift); MoveParameters.Add(fltPos+fltPosShift, P_ZCOORD); ConvertToFloat(PosVals[3],fltPos); ConvertToFloat(i_fltPositionR,fltPosShift); MoveParameters.Add(fltPos+fltPosShift, P_RZCOORD); Decklayout5.MoveLabware(objLabware, MoveParameters); //EnterSemaphore(); io_devDevice.GetLabwarePosition(i_strLabwareID, PosVals); //LeaveSemaphore(); objLabware.ReleaseObject(); objDecklayout.ReleaseObject(); Decklayout5.ReleaseObject(); MoveParameters.ReleaseObject(); //StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "New position: (" + FStr(PosVals[0]) + "/" + FStr(PosVals[1]) + "/" + FStr(PosVals[2]) + "/" + FStr(PosVals[3]) + ")", strFunctionName); //return(hslTrue); } else { //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find labware.", strFunctionName); objDecklayout.ReleaseObject(); //return(hslFalse); } } else { //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find decklayout.", strFunctionName); //return(hslFalse); } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if (errorID==-1574764487) { Trace("LabwareID is unknown."); //return(hslFalse); } else { //Trace("Unknown error occured."); //return(hslFalse); } } } ////////////////////////////////////////////////////////////////////////// // private function ConvertToFloat ////////////////////////////////////////////////////////////////////////// } // {{{ 5 "Set_Relative_Position_for_LabwareID" "End" } // }} "" // {{{ 5 "Set_Channel_Pattern" "Begin" function Set_Channel_Pattern( variable & io_Channel_Pattern, variable i_Channel_Number, variable i_Value ) void { // }} "" private variable current_channel; private variable total_channels; private variable channel_index; private variable loopCounter1; private variable additional_channels; private variable str_parse; private variable arr_channel_pattern[]; // {{ 5 "Set_Channel_Pattern" "InitLocals" // }} "" // {{ 624 1 0 "456d482d_8ebb_4a2b_b845f9483d4be195" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 625 1 0 "311d098f_f350_4728_8148577c16384069" "{C1F3C015-47B3-4514-9407-AC2E65043419}" total_channels = StrGetLength(io_Channel_Pattern); // }} "" // {{ 626 1 0 "79f60d5a_8432_4be4_b7076a203709c263" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 627 1 0 "cdad9bab_306b_49c3_a547f5fa0d3537dd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Channel_Number = StrConcat2(i_Channel_Number, Translate("")); // }} "" // {{{ 628 1 0 "df4929f1_816c_493d_bc84a5fc67769d74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Channel_Number = StrIVal(i_Channel_Number); // }} "" // {{ 629 1 0 "eff5d9ad_a0a7_4dc1_a832a1b0bfb57849" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 630 1 0 "f58c6f0f_0947_4c54_bdc2300c1a0195f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Value = StrConcat2(i_Value, Translate("")); // }} "" // {{ 631 1 0 "8819250a_03db_49a3_af4e3b0576a6d99a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Value != "0") { // }} "" // {{ 632 1 0 "81b3fc4a_2eb1_482b_954b8e16f3cd0ae3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Value != "1") { // }} "" // {{{ 633 1 0 "524dba23_ef41_4e3e_96d950a6108dc9ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace4(Translate("********************* Value of "), i_Value, Translate(" is not recognized as a valid channel value. A value of 0 will be added at channel index "), i_Channel_Number); // }} "" // {{ 634 1 0 "c7e5dd19_5b31_40c3_b103b9e9b8be033f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" i_Value = Translate("0"); // }} "" // {{ 635 1 0 "81b3fc4a_2eb1_482b_954b8e16f3cd0ae3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 636 1 0 "8819250a_03db_49a3_af4e3b0576a6d99a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 637 1 0 "117b5694_7628_4cb6_98baaf8f6b5de1b5" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 638 1 0 "99483fcf_3612_4d09_af00c58eecfbfc72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Number > total_channels) { // }} "" // {{ 639 1 0 "31002bd2_e7af_4b71_941066936c4bfcec" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" additional_channels = i_Channel_Number - total_channels; // }} "" // {{ 640 1 0 "979f6fd4_0e98_4648_b1b7f49cd7067243" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < additional_channels;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 641 1 0 "8be106da_6055_4278_9f93fdcdaa8ccbb3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_Channel_Pattern = StrConcat2(io_Channel_Pattern, Translate("0")); // }} "" // {{ 642 1 0 "979f6fd4_0e98_4648_b1b7f49cd7067243" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 643 1 0 "3dfd312a_a6be_44c4_bcff2c5fd4c52ea9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = i_Channel_Number; // }} "" // {{ 644 1 0 "99483fcf_3612_4d09_af00c58eecfbfc72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 645 1 0 "3f832199_aeb2_451c_8a5123eee5cbb05b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_parse = total_channels; // }} "" // {{ 646 1 0 "9ce4d45c_4870_4c58_8e9190b0fc776731" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 647 1 0 "b7851d8e_8869_488f_9bcb86e8fbf5fbe5" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_channel_pattern.SetSize(total_channels); // }} "" // {{ 648 1 0 "1b455199_a89e_4536_82f1bc619ca75778" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(channel_index = 0; channel_index < total_channels;) { channel_index = channel_index + 1; // }} "" // {{{ 649 1 0 "7bdc470a_ac46_4959_80facc19d987fbb3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" current_channel = StrRight(io_Channel_Pattern, str_parse); // }} "" // {{{ 650 1 0 "036db6d9_e5e2_4e27_967d246f71d3e7e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" current_channel = StrLeft(current_channel, 1); // }} "" // {{ 651 1 0 "f6bd6219_05b8_470b_9c5a538a1f1de1b6" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_channel_pattern.SetAt(channel_index-1, current_channel); // }} "" // {{ 652 1 0 "f4ac660e_04de_4a32_9e046d8ff0cf03ef" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" str_parse = str_parse - 1; // }} "" // {{ 653 1 0 "1b455199_a89e_4536_82f1bc619ca75778" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 654 1 0 "57a0c715_25f4_4f2e_b50c222ffe3d1f07" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 655 1 0 "7da22874_90f5_4081_98c4c93fd94aca56" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_channel_pattern.SetAt(i_Channel_Number-1, i_Value); // }} "" // {{ 656 1 0 "f45bc91c_20d2_428f_b09d4caec67702f5" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 657 1 0 "55b764ac_1826_4350_bf512e9f3facfe5d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" io_Channel_Pattern = Translate(""); // }} "" // {{ 658 1 0 "3435d964_2e49_4c03_b9ff0c684403f81b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(channel_index = 0; channel_index < total_channels;) { channel_index = channel_index + 1; // }} "" // {{ 659 1 0 "a1f1d1df_516e_4fcd_8d50863b7842d31c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" current_channel=arr_channel_pattern.GetAt(channel_index-1); // }} "" // {{{ 660 1 0 "806fade0_867a_49f5_ab6cf191fdc42164" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_Channel_Pattern = StrConcat2(io_Channel_Pattern, current_channel); // }} "" // {{ 661 1 0 "3435d964_2e49_4c03_b9ff0c684403f81b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "Set_Channel_Pattern" "End" } // }} "" // {{{ 5 "GetTempSortingFilePath" "Begin" function GetTempSortingFilePath( variable & o_str_TempSortingFilePath ) void { // }} "" private variable str_FileName; private variable str_SubFileName; private variable bln_FileExists; // {{ 5 "GetTempSortingFilePath" "InitLocals" o_str_TempSortingFilePath = 0; // }} "" // {{ 505 1 0 "91e664f2_d2e4_4312_b19abfd4d89a738d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_TempSortingFilePath = Translate(""); // }} "" // {{ 506 1 0 "b5748e98_e5dd_4c50_a92ae664e982fb01" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_SubFileName = Translate(""); // }} "" str_SubFileName = GetFileName(); // {{{ 508 1 0 "1c76f021_3ec5_4622_a5de1447d63f8ca5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FileName = HSLExtensions::File::GetFileName(str_SubFileName); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("File name: ",str_FileName); /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 510 1 0 "95f70832_4437_403a_9e423080b1aa13da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(str_SubFileName, str_FileName, Translate("")); // }} "" // {{{ 511 1 0 "5a3fe9bb_25e7_46e4_94a4f2529b2f6c76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_TempSortingFilePath = StrConcat8(str_SubFileName, Translate(""), Translate("TEMP_SORT_FILE"), Translate(".xls"), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{{ 512 1 0 "ad9faea0_55c8_47aa_b5d82012259b507e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(o_str_TempSortingFilePath, Translate("\\"), Translate("\\\\")); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Temp File name: ",o_str_TempSortingFilePath); /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 514 1 0 "c270d669_50a4_47c1_8ef41d0f6d25cfbb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_FileExists = HSLExtensions::File::Exists(o_str_TempSortingFilePath); // }} "" // {{ 515 1 0 "9cd374e4_8c68_4a5d_8167eaba07b3e696" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_FileExists == 1) { // }} "" // {{{ 516 1 0 "d0183f5b_00ef_40bb_aac0f3bf29c1ffdc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(o_str_TempSortingFilePath); // }} "" // {{ 517 1 0 "9cd374e4_8c68_4a5d_8167eaba07b3e696" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "GetTempSortingFilePath" "End" } // }} "" // {{{ 5 "GetTransportSequence" "Begin" function GetTransportSequence( device & ML_STAR, variable i_str_LabID, sequence & o_seq_TransportSequence ) void { // }} "" private variable str_PosID; // {{ 5 "GetTransportSequence" "InitLocals" { sequence __temp; o_seq_TransportSequence = __temp; } // }} "" // {{{ 571 1 0 "aa4bf041_120d_4e0f_96632ee8486b80a0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetFirstPosition(ML_STAR, i_str_LabID, str_PosID); // }} "" // {{{ 572 1 0 "bb9cdf50_2e0d_4280_b5b78dc88c7fa9dd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_TransportSequence); // }} "" // {{{ 573 1 0 "08da6a0f_5c8b_47a0_8accf6da68cdaccc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq_TransportSequence, i_str_LabID, str_PosID); // }} "" // {{ 574 1 0 "ff36b244_b293_4793_9ee220aa611896aa" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq_TransportSequence.SetCurrentPosition(1); // }} "" // {{{ 5 "GetTransportSequence" "End" } // }} "" // {{{ 5 "GetDefinitionFileValue" "Begin" function GetDefinitionFileValue( variable & i_str_ConfigFilePath, variable i_str_ValueToSearch, variable & o_str_Value ) variable { // }} "" private variable str_DataDefinition; private variable strFunctionName; private variable bool_FileExists; private variable str_Instance; private variable bool_ReturnValue; private variable str_Extension; // {{ 5 "GetDefinitionFileValue" "InitLocals" o_str_Value = 0; // }} "" // {{ 251 1 0 "be6bb0b9_27fc_4f57_a3d8c122e39f352d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_Value = Translate(""); // }} "" // {{ 252 1 0 "b581d28f_95e8_486a_9ea39dad56a98b08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_ReturnValue = 0; // }} "" // {{ 253 1 0 "8e70a97e_f40f_4968_9273cd7574f9cdda" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 254 1 0 "c1448306_ea4f_4f3e_98d3c44d51b66473" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 256 1 0 "8a442f8c_fb4d_4b27_a19b976a3cf5e88f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(i_str_ConfigFilePath); // }} "" // {{ 257 1 0 "75ded585_2b12_4f8d_bf0b79e274ee4b62" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 0) { // }} "" Trace(i_str_ConfigFilePath," - File doesn't exist!"); // {{{ 259 1 0 "39dc6bb6_888f_45b1_bb60d9d684c42fcb" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (bool_ReturnValue); // }} "" // {{ 260 1 0 "75ded585_2b12_4f8d_bf0b79e274ee4b62" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 261 1 0 "b520d252_9e82_4d64_a6a4877252d20f39" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ValueToSearch = StrConcat2(i_str_ValueToSearch, Translate("")); // }} "" // {{ 262 1 0 "8e70a97e_f40f_4968_9273cd7574f9cdda" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 263 1 0 "f34afdc2_52cd_4d3f_824cbf9c5612db80" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Extension = HSLExtensions::File::GetFileExtension(i_str_ConfigFilePath); // }} "" // {{ 264 1 0 "61986ddc_c4eb_44d7_acea092f61df2bdd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_DataDefinition = Translate(""); // }} "" // {{ 265 1 0 "c85eead5_e296_43d6_b7d333bafa6c9d3a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Instance = Translate(""); // }} "" // {{ 266 1 0 "92bccf0b_a2aa_429d_87024e9f12408d45" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Extension == "rck") { // }} "" // {{ 267 1 0 "ffb1e29e_c522_4db7_95c46c3cf98ebf27" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_DataDefinition = Translate("RECTRACK"); // }} "" // {{ 268 1 0 "e8e21c80_abde_46b7_84490559e40c5703" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Instance = Translate("default"); // }} "" // {{ 269 1 0 "92bccf0b_a2aa_429d_87024e9f12408d45" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 270 1 0 "6226a753_bbf6_441d_a23d426bd6023aa5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Extension == "ctr") { // }} "" // {{ 271 1 0 "1442a91c_667a_47dd_83b8a628583d52f6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_DataDefinition = Translate("CONTAINER"); // }} "" // {{ 272 1 0 "c3735e42_50f4_4bef_bacdbf5f1ce7058e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Instance = Translate("default"); // }} "" // {{ 273 1 0 "6226a753_bbf6_441d_a23d426bd6023aa5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 274 1 0 "6b9aa912_0612_4c1c_9c72dc02cb2e8f29" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Extension == "tml") { // }} "" // {{ 275 1 0 "62cbf670_165e_4e40_912b43908309a418" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_DataDefinition = Translate("TEMPLATE"); // }} "" // {{ 276 1 0 "8e4dc791_8c42_4774_b1eb18c7c717718b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Instance = Translate("default"); // }} "" // {{ 277 1 0 "6b9aa912_0612_4c1c_9c72dc02cb2e8f29" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 278 1 0 "86d4d450_2432_474f_b3369fe32baad9f5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Extension == "lid") { // }} "" // {{ 279 1 0 "758a2ab4_7f9c_41a4_8102dc3e89854c11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_DataDefinition = Translate("COVER"); // }} "" // {{ 280 1 0 "0c40bb3f_9e0c_4bb0_9c77b677b5528aa7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Instance = Translate("default"); // }} "" // {{ 281 1 0 "86d4d450_2432_474f_b3369fe32baad9f5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 282 1 0 "e86b3e65_b5b8_4da6_9460c65fb175af23" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Extension == "lay") { // }} "" // {{ 283 1 0 "896d925b_9a68_4a84_a0483ba2c0001a37" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_DataDefinition = Translate("DECKLAY"); // }} "" // {{ 284 1 0 "b154386a_2e5c_4c8b_b06ea534349415dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Instance = Translate("ML_STAR"); // }} "" // {{ 285 1 0 "e86b3e65_b5b8_4da6_9460c65fb175af23" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Data definition: ",str_DataDefinition); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 287 1 0 "c4950a15_8897_4584_a69e0d43342e18f7" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 288 1 0 "18d2ae9f_d183_4976_ad45c4322967d5ca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_DataDefinition != "") { // }} "" { object objCfgFile; objCfgFile.CreateObject("HXCFGFILLIB.HxCfgFile"); objCfgFile.LoadFile(i_str_ConfigFilePath); onerror goto HandleError; if(objCfgFile.ExistDataDef(str_DataDefinition,str_Instance) == 1) { //o_str_Value = objCfgFile.GetDataDefValueAsString(str_DataDefinition,"default",i_str_ValueToSearch); objCfgFile.LookupDataDefValueAsString(str_DataDefinition,str_Instance,i_str_ValueToSearch,o_str_Value); } onerror goto 0; err.Clear(); objCfgFile.ReleaseObject(); HandleError: { objCfgFile.ReleaseObject(); } } // {{ 290 1 0 "7d54b18d_b90d_42f5_804d61536efac50b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (o_str_Value != "") { // }} "" // {{ 291 1 0 "d13b4662_77f9_4aae_982d49d4577b73fa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_ReturnValue = 1; // }} "" // {{ 292 1 0 "7d54b18d_b90d_42f5_804d61536efac50b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 293 1 0 "4bce011a_4c08_440c_84bdd749ac3dd718" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_ReturnValue = 0; // }} "" // {{ 294 1 0 "7d54b18d_b90d_42f5_804d61536efac50b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 295 1 0 "18d2ae9f_d183_4976_ad45c4322967d5ca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" Trace("File type: ",str_Extension," unknown!"); // {{ 297 1 0 "e2a2e08f_202a_47c5_b2376db5277b5729" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_ReturnValue = 0; // }} "" // {{ 298 1 0 "18d2ae9f_d183_4976_ad45c4322967d5ca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 299 1 0 "db57ab77_1564_43a1_9f90e6583a6874ab" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (bool_ReturnValue); // }} "" // {{{ 5 "GetDefinitionFileValue" "End" } // }} "" // {{{ 5 "_ConvertToFloat" "Begin" function _ConvertToFloat( variable & io_Variable ) void { // }} "" // {{ 5 "_ConvertToFloat" "InitLocals" // }} "" // {{{ 770 1 0 "e85fbb24_8627_490c_9906f3335ada2931" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_Variable = StrConcat2(io_Variable, Translate("")); // }} "" // {{{ 771 1 0 "7c2130fc_419c_4b14_a4c68cb540a0bafc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_Variable = StrFVal(io_Variable); // }} "" // {{{ 5 "_ConvertToFloat" "End" } // }} "" // {{{ 5 "_ConvertToInt" "Begin" function _ConvertToInt( variable & io_Variable ) void { // }} "" // {{ 5 "_ConvertToInt" "InitLocals" // }} "" // {{{ 773 1 0 "3ec0389d_d182_4b32_9e6e3d403ec1b99a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_Variable = StrConcat2(io_Variable, Translate("")); // }} "" // {{{ 774 1 0 "830eca01_a045_4ca8_a98ba70f46893e87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_Variable = StrIVal(io_Variable); // }} "" // {{{ 5 "_ConvertToInt" "End" } // }} "" // {{{ 5 "GetLabwareOrigin" "Begin" function GetLabwareOrigin( device & Instrument, variable i_str_LabID, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void { // }} "" private variable flt_RackBase; private variable str_LabID; private variable flt_BoundaryX; private variable flt_BoundaryY; private variable flt_RackWidthX; private variable flt_RackWidthY; // {{ 5 "GetLabwareOrigin" "InitLocals" o_flt_X_Coord = 0; o_flt_Y_Coord = 0; o_flt_Z_Coord = 0; // }} "" // {{ 432 1 0 "333ccbc0_cfff_4ec8_9f94e4405c18535b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_LabID = i_str_LabID; // }} "" // {{ 433 1 0 "66e906bb_9f08_4377_938af2bb94c70976" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_X_Coord = 0.0; // }} "" // {{ 434 1 0 "a0dac30d_6863_4bc6_ade453a9353c0355" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Y_Coord = 0.0; // }} "" // {{ 435 1 0 "dee0269b_4915_40b2_ad99c7caa91cab3c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Z_Coord = 0.0; // }} "" // {{ 436 1 0 "6c50145f_53a5_49d9_9beb9a84ab0cc220" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BoundaryX = 0.0; // }} "" // {{ 437 1 0 "9c0c0b2b_15f9_4649_bfe6b08212290964" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BoundaryY = 0.0; // }} "" // {{ 438 1 0 "ce5cfb47_438b_4f5d_ae377ae0e3ec46dc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_RackWidthX = 0.0; // }} "" // {{ 439 1 0 "c3641241_da49_49b0_a18d34a777bd9c08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_RackWidthY = 0.0; // }} "" // {{ 440 1 0 "207e7dee_5f5a_425d_874a7489e005396a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_RackBase = 0.0; // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = Instrument.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); objRack4.GetRackData(objRackDataParams); flt_BoundaryX = objRackDataParams.Item1("Labwr_Bndry1X"); flt_BoundaryY = objRackDataParams.Item1("Labwr_Bndry1Y"); flt_RackWidthX = objRackDataParams.Item1("Labwr_XDim"); flt_RackWidthY = objRackDataParams.Item1("Labwr_YDim"); flt_RackBase = objRack4.RackBase(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{ 442 1 0 "1afacbb7_b4d4_44e7_a2b27ec1910cea12" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_X_Coord = flt_BoundaryX; // }} "" // {{ 443 1 0 "208a4482_7851_4619_b3cd2d78a58f0776" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Y_Coord = flt_BoundaryY; // }} "" // {{ 444 1 0 "e00622d1_fe95_4b68_a180efde1876f267" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Z_Coord = flt_RackBase; // }} "" // {{{ 445 1 0 "f632fdab_ccb1_4c36_8355dd2ce8b9a3d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_X_Coord = MthRound(o_flt_X_Coord, 1); // }} "" // {{{ 446 1 0 "cbe82450_8c9b_4a50_825b9ed94e31f67d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_Y_Coord = MthRound(o_flt_Y_Coord, 1); // }} "" // {{{ 447 1 0 "06543618_621c_492c_820c5e148bacfd89" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_Z_Coord = MthRound(o_flt_Z_Coord, 1); // }} "" // {{{ 5 "GetLabwareOrigin" "End" } // }} "" // {{{ 5 "GetLabwareCenter2" "Begin" function GetLabwareCenter2( device & ML_STAR, variable i_str_LabID, variable & o_flt_X_Center, variable & o_flt_Y_Center ) void { // }} "" private variable flt_NotUsed; private variable flt_Offset_X; private variable flt_Width; private variable flt_Offset_Y; private variable flt_Origin_X; private variable str_ConfigFilePath; private variable flt_Origin_Y; private variable flt_HalfHyp; private variable flt_HalfLength; private variable flt_Center_X; private variable str_X; private variable flt_Origin_Z; private variable flt_Radians; private variable flt_Center_Y; private variable str_Y; private variable flt_Calculation; private variable flt_HalfWidth; private variable flt_Hypotenuse; private variable flt_Pi; private variable flt_Length; private variable flt_AdjustedPlateAngle; private variable flt_PlateAngle; private variable flt_CosineCalculation; private variable flt_LabwareAngle; private variable flt_SineCalculation; // {{ 5 "GetLabwareCenter2" "InitLocals" o_flt_X_Center = 0; o_flt_Y_Center = 0; // }} "" // {{ 315 1 0 "5785d595_68fc_4de0_a89c9dfb2a8da1ba" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_X_Center = 0.0; // }} "" // {{ 316 1 0 "71516cce_d6c9_426b_94e0e5cabf84ca14" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Y_Center = 0.0; // }} "" // {{ 317 1 0 "bf1a51f7_4c62_4db7_b9629e762ee9432b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Pi = 3.14159265359; // }} "" // {{ 318 1 0 "3e840746_9384_4070_a41edc8a2887bd7c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ConfigFilePath = Translate(""); // }} "" //Get Config File { object objDeckLayout; objDeckLayout = ML_STAR.GetDeckLayoutObject(); if(!objDeckLayout.IsNull()) { object objLabware; onerror goto HandleLabwareError; objLabware = objDeckLayout.Labware(i_str_LabID); onerror goto 0; err.Clear(); if(!objLabware.IsNull()) { object objEditLabware5; objLabware.GetObject("IEditLabware5", objEditLabware5); str_ConfigFilePath = objEditLabware5.Filename; objEditLabware5.ReleaseObject(); objDeckLayout.ReleaseObject(); objLabware.ReleaseObject(); } } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if(errorID != 0) { if (errorID==-1574764487) { Trace("LabwareID is unknown."); } else { Trace("Unknown error occured."); } } } } // {{{ 320 1 0 "4b39a671_21ee_4002_b2ff19f3d377d7cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetDefinitionFileValue(str_ConfigFilePath, Translate("Dim.Dx"), str_X); // }} "" // {{{ 321 1 0 "88955104_3517_49a0_a270879441ffa709" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetDefinitionFileValue(str_ConfigFilePath, Translate("Dim.Dy"), str_Y); // }} "" // {{{ 322 1 0 "b04efeeb_3950_4025_be30bf67e8596046" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Width = StrFVal(str_X); // }} "" // {{{ 323 1 0 "cf054720_36e5_4ede_9fc0f5093759ec98" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Length = StrFVal(str_Y); // }} "" // {{{ 324 1 0 "4613366d_a08e_4e13_9d75aca3b86c87c9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetLabwareOrigin(ML_STAR, i_str_LabID, flt_Origin_X, flt_Origin_Y, flt_Origin_Z); // }} "" // {{ 325 1 0 "159de3d5_aa37_4842_973e10c82802eb96" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 326 1 0 "cfde975e_ad11_42da_89aacff2a3a358e1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Hypotenuse = 0.0; // }} "" flt_Hypotenuse = flt_Length^2 + flt_Width^2; // {{{ 328 1 0 "9e319c3c_448e_4ddb_b098bad8fbdcb611" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Hypotenuse = MthPow(flt_Hypotenuse, 0.5); // }} "" // {{{ 329 1 0 "8b00fb57_2962_40ea_b1cc09ffed5e8038" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Hypotenuse = MthRound(flt_Hypotenuse, 1); // }} "" // {{ 330 1 0 "85f2d104_5142_47d7_9a147ba8ce2b2069" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 331 1 0 "7396b8f0_d180_4daa_9192219ea8c3d23a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_HalfHyp = flt_Hypotenuse / (2 * 1.0); // }} "" // {{ 332 1 0 "9779b720_4e64_4810_a47e70923c86f6f3" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_HalfLength = flt_Length / (2 * 1.0); // }} "" // {{ 333 1 0 "71633f84_541a_4298_8bfec79c8d87a34a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_HalfWidth = flt_Width / (2 * 1.0); // }} "" // {{{ 334 1 0 "9c81bc0d_11a4_43b6_9a40027cd7a41a77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePosition(ML_STAR, i_str_LabID, flt_NotUsed, flt_NotUsed, flt_NotUsed, flt_LabwareAngle); // }} "" // {{ 335 1 0 "f7616020_ca36_456b_9fefed6b5f162118" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 336 1 0 "f9c71207_bf7a_4ba8_b53acaf198731d95" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Calculation = flt_HalfLength / (flt_HalfWidth * 1.0); // }} "" // {{{ 337 1 0 "1e22acfd_26d1_42d1_8d0e98ce575a1327" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_PlateAngle = MthATan(flt_Calculation); // }} "" flt_PlateAngle = flt_PlateAngle * (180.0 / flt_Pi); // {{{ 339 1 0 "5e37f1ab_69b0_4c53_976b644a1cb9afac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_PlateAngle = MthRound(flt_PlateAngle, 1); // }} "" // {{ 340 1 0 "212df273_4e26_4ecf_8c8d1b963e80007c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_LabwareAngle = flt_LabwareAngle * -1; // }} "" // {{ 341 1 0 "427799ee_f679_491c_a4f08d2dc675c36a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_AdjustedPlateAngle = flt_LabwareAngle + flt_PlateAngle; // }} "" // {{ 342 1 0 "8f14ae15_3eae_462c_9dce27031d6bd7a8" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" flt_Radians = flt_AdjustedPlateAngle * (flt_Pi / 180); // {{{ 344 1 0 "4167af72_cd4c_47d4_a73d36d5e5aed59f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_CosineCalculation = MthCos(flt_Radians); // }} "" // {{{ 345 1 0 "8bf8918a_e56f_4e06_bf82e4b568b973bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_SineCalculation = MthSin(flt_Radians); // }} "" // {{ 346 1 0 "cf494bbe_973b_4d1b_b0864ff1b53b3d05" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Offset_X = flt_CosineCalculation * flt_HalfHyp; // }} "" // {{{ 347 1 0 "34ce83f1_0a94_4416_8d3571bf0ecd6680" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Offset_X = MthRound(flt_Offset_X, 1); // }} "" // {{ 348 1 0 "de918329_d031_40ee_bab425a8cb303dff" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Offset_Y = flt_SineCalculation * flt_HalfHyp; // }} "" // {{{ 349 1 0 "91b52b26_ca5d_4dc1_ad8d0724c0b48cd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Offset_Y = MthRound(flt_Offset_Y, 1); // }} "" // {{ 350 1 0 "f0d56d85_3e5f_46e1_aaa8d49df6f9c611" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 351 1 0 "bed2663a_6004_4116_8c93db5061f52065" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Center_X = flt_Origin_X + flt_Offset_X; // }} "" // {{ 352 1 0 "1d5774b3_0803_4114_82a1d67d67e0969b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Center_Y = flt_Origin_Y + flt_Offset_Y; // }} "" // {{{ 353 1 0 "489b41ee_bd0e_45bf_951cd58bc61820cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_X_Center = MthRound(flt_Center_X, 1); // }} "" // {{{ 354 1 0 "b10c5f86_c8eb_4472_9cdd1cd30acaccae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_Y_Center = MthRound(flt_Center_Y, 1); // }} "" // {{{ 5 "GetLabwareCenter2" "End" } // }} "" // {{{ 5 "GetRackHeight" "Begin" function GetRackHeight( device & ML_STAR, variable i_str_LabID, variable & o_flt_RackHeight, variable & o_flt_RackClearanceHeight ) void { // }} "" private variable flt_RackHeight; private variable flt_RackBase; private variable str_ConfigFile; private variable bln_ValueFound; private variable str_PosID; private variable str_Value; // {{ 5 "GetRackHeight" "InitLocals" o_flt_RackHeight = 0; o_flt_RackClearanceHeight = 0; // }} "" // {{ 481 1 0 "149b9ecd_9eef_4167_bb923d4e4818746c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_RackClearanceHeight = 0.0; // }} "" // {{ 482 1 0 "bdee4e84_3d73_4034_98230cd77613fb01" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_RackHeight = 0.0; // }} "" // {{ 483 1 0 "3a8b19e7_efbc_449f_bf12a1cfdae64252" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_RackBase = 0.0; // }} "" // {{ 484 1 0 "8ba30f43_027a_4488_b64d1a77245f88f5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_RackHeight = 0.0; // }} "" // {{ 485 1 0 "47e06867_16f1_4b62_ace488e78054bed8" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 486 1 0 "01661b8d_8495_4b00_98594a9cd802a0da" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetFirstPosition(ML_STAR, i_str_LabID, str_PosID); // }} "" // {{{ 487 1 0 "e15139a0_5840_4ccb_be812a51590552ac" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetConfigurationFile(ML_STAR, i_str_LabID, str_ConfigFile); // }} "" { object objRackDataParams; object objDecklayout; object objLabware; object objTemplate; object objRack; object objRack4; object objEditLabware5; objRackDataParams.CreateObject("HXPARAMSLib.HxPars"); objDecklayout = ML_STAR.GetDeckLayoutObject(); objLabware = objDecklayout.Labware(i_str_LabID); objLabware.GetObject("ITemplateDeckData", objTemplate); objLabware.GetObject("IRectRack4", objRack4); objLabware.GetObject("IRectRack", objRack); objLabware.GetObject("IEditLabware5", objEditLabware5); objRack4.GetRackData(objRackDataParams); flt_RackHeight = objRackDataParams.Item1("Labwr_ZDim"); //o_flt_RackClearanceHeight = objEditLabware5.Clearance(str_PosID); flt_RackBase = objRack4.RackBase(); objRackDataParams.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); objTemplate.ReleaseObject(); objRack.ReleaseObject(); objRack4.ReleaseObject(); objEditLabware5.ReleaseObject(); } // {{ 489 1 0 "5f7f3c95_dbf7_471f_a7584e56b78c7377" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_RackHeight = flt_RackBase + flt_RackHeight; // }} "" // {{{ 490 1 0 "bc51132c_0292_46bf_a5fa888f7e0be63f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ValueFound = GetDefinitionFileValue(str_ConfigFile, Translate("Clearance"), str_Value); // }} "" // {{ 491 1 0 "a7e62a8b_9a9e_4a08_999fbebbddfbd05d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == 1) { // }} "" // {{{ 492 1 0 "67a28f4d_3cf4_4fe3_a19f7b539ba5e685" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_RackClearanceHeight = StrFVal(str_Value); // }} "" // {{ 493 1 0 "1ad1df3b_1421_4671_a999e4e83db79af1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_RackClearanceHeight = flt_RackBase + o_flt_RackClearanceHeight; // }} "" // {{ 494 1 0 "a7e62a8b_9a9e_4a08_999fbebbddfbd05d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 495 1 0 "c43a2f19_8d2c_41fd_8cac07da346f8a23" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_RackClearanceHeight = o_flt_RackHeight; // }} "" // {{ 496 1 0 "a7e62a8b_9a9e_4a08_999fbebbddfbd05d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Rack Base: ",flt_RackBase); Trace("Rack Dimension Z: ",flt_RackHeight); Trace("Rack Height: ",o_flt_RackHeight); Trace("Rack Clearance Height: ",o_flt_RackClearanceHeight); /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 5 "GetRackHeight" "End" } // }} "" // {{{ 5 "RemoveTruncatedSequencePositions" "Begin" function RemoveTruncatedSequencePositions( device & Instrument, sequence & io_Sequence ) void { // }} "" // {{ 5 "RemoveTruncatedSequencePositions" "InitLocals" // }} "" { variable int_CurrentPosition; variable int_TotalSequencePositions; sequence seq_AdjustedSequence; variable i; int_CurrentPosition = io_Sequence.GetCurrentPosition(); seq_AdjustedSequence.CopySequence(io_Sequence); int_TotalSequencePositions = io_Sequence.GetTotal(); SeqRemoveAll(io_Sequence); for(i = int_CurrentPosition; i <= int_TotalSequencePositions;) { if(int_CurrentPosition == 0) break; seq_AdjustedSequence.SetCurrentPosition(i); if(seq_AdjustedSequence.GetLabwareId() != "" && seq_AdjustedSequence.GetPositionId() != "") { io_Sequence.Add(seq_AdjustedSequence.GetLabwareId(), seq_AdjustedSequence.GetPositionId()); } i = i + 1; } io_Sequence.SetCurrentPosition(1); } // {{{ 5 "RemoveTruncatedSequencePositions" "End" } // }} "" // {{{ 5 "SortSequence" "Begin" function SortSequence( device & Instrument, sequence & io_Sequence, variable i_bln_ByLabID ) void { // }} "" private variable str_TempSortingFilePath; private variable str_SQL_Sort; // {{ 5 "SortSequence" "InitLocals" // }} "" // {{{ 665 1 0 "b4882176_9e2e_46a4_a49e2ac40c6e6aca" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetTempSortingFilePath(str_TempSortingFilePath); // }} "" // {{ 666 1 0 "5afdf3dd_fe8c_47f3_bd372cb974748861" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_ByLabID == 1) { // }} "" // {{{ 667 1 0 "6a54fe91_8d3e_416d_b2063a1d3c76e02c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Sort = StrConcat4(Translate("SELECT * FROM SORT ORDER BY LAB_ID ASC, X_COORD ASC, Y_COORD DESC"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 668 1 0 "5afdf3dd_fe8c_47f3_bd372cb974748861" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 669 1 0 "2807140a_6365_438e_878e7a2e1d41715c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Sort = StrConcat4(Translate("SELECT * FROM SORT ORDER BY X_COORD ASC, Y_COORD DESC"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 670 1 0 "5afdf3dd_fe8c_47f3_bd372cb974748861" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" { variable int_CurrentPosition; variable int_TotalSequencePositions; sequence seq_AdjustedSequence; variable i; file WriteFile; file ReadFile; variable str_LabID; variable str_PosID; variable flt_X; variable flt_Y; variable arr_Coordinates[]; int_CurrentPosition = io_Sequence.GetCurrentPosition(); seq_AdjustedSequence.CopySequence(io_Sequence); int_TotalSequencePositions = io_Sequence.GetTotal(); SeqRemoveAll(io_Sequence); WriteFile.RemoveFields(); WriteFile.AddField("LAB_ID", str_LabID, hslString, 255); WriteFile.AddField("POS_ID", str_PosID, hslString, 255); WriteFile.AddField("X_COORD", flt_X, hslFloat); WriteFile.AddField("Y_COORD", flt_Y, hslFloat); if(WriteFile.Open(str_TempSortingFilePath + " " + "SORT", hslWrite)) { for(i = int_CurrentPosition; i <= int_TotalSequencePositions;) { if(int_CurrentPosition == 0) break; seq_AdjustedSequence.SetCurrentPosition(i); if(seq_AdjustedSequence.GetLabwareId() != "" && seq_AdjustedSequence.GetPositionId() != "") { str_LabID = seq_AdjustedSequence.GetLabwareId(); str_PosID = seq_AdjustedSequence.GetPositionId(); Instrument.GetLabwarePosition(str_LabID, arr_Coordinates, str_PosID); flt_X = arr_Coordinates[0]; flt_Y = arr_Coordinates[1]; WriteFile.WriteRecord(); } i = i + 1; } } WriteFile.Close(); WriteFile.RemoveFields(); ReadFile.RemoveFields(); ReadFile.AddField("LAB_ID", str_LabID, hslString, 255); ReadFile.AddField("POS_ID", str_PosID, hslString, 255); ReadFile.AddField("X_COORD", flt_X, hslFloat); ReadFile.AddField("Y_COORD", flt_Y, hslFloat); if(ReadFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead, str_SQL_Sort)) { while(ReadFile.Eof() == 0) { ReadFile.ReadRecord(); io_Sequence.Add(str_LabID,str_PosID); } } else { Trace("ERROR OCCURRED DURING SORT"); io_Sequence.CopySequence(seq_AdjustedSequence); } ReadFile.Close(); ReadFile.RemoveFields(); io_Sequence.SetCurrentPosition(1); } // {{{ 5 "SortSequence" "End" } // }} "" // {{{ 5 "Lookup" "Begin" function Lookup( variable & array[], variable item ) variable { // }} "" private variable index; private variable lookupreturn; // {{ 5 "Lookup" "InitLocals" // }} "" // {{{ 582 1 0 "f918c839_22a0_44d4_a1875cb1cf83638f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" lookupreturn = Util::Lookup(array, item, index); // }} "" // {{ 583 1 0 "a738f837_2e72_4662_aac6fa7dd533626e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lookupreturn > 0) { // }} "" // {{ 584 1 0 "96d8071f_2136_47d3_a3c1d0c36601575a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" index = index + 1; // }} "" // {{{ 585 1 0 "a7edec9f_b096_4102_bc9ebdf80797df70" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (index); // }} "" // {{ 586 1 0 "a738f837_2e72_4662_aac6fa7dd533626e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 587 1 0 "39494638_4368_4973_88cd022ff1d68d03" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (0); // }} "" // {{ 588 1 0 "a738f837_2e72_4662_aac6fa7dd533626e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "Lookup" "End" } // }} "" // {{{ 5 "SortSequences" "Begin" function SortSequences( device & Instrument, sequence & io_Sequence1, sequence & io_Sequence2, variable i_bln_ByLabID ) void { // }} "" private variable str_TempSortingFilePath; private variable str_SQL_Sort; // {{ 5 "SortSequences" "InitLocals" // }} "" // {{{ 682 1 0 "ce098eee_9916_4aaa_b6c2757090bb0143" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetTempSortingFilePath(str_TempSortingFilePath); // }} "" // {{ 683 1 0 "b07779e6_f7ff_4a6a_a9980db1497cc059" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_ByLabID == 1) { // }} "" // {{{ 684 1 0 "b84cd2c9_5f30_4b68_87ca5c22019cbe11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Sort = StrConcat4(Translate("SELECT * FROM SORT ORDER BY LAB_ID ASC, X_COORD ASC, Y_COORD DESC"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 685 1 0 "b07779e6_f7ff_4a6a_a9980db1497cc059" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 686 1 0 "46d3fb8a_c166_4ff4_9145e48426e6f692" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Sort = StrConcat4(Translate("SELECT * FROM SORT ORDER BY X_COORD ASC, Y_COORD DESC"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 687 1 0 "b07779e6_f7ff_4a6a_a9980db1497cc059" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" { variable int_CurrentPosition; variable int_TotalSequencePositions; sequence seq_AdjustedSequence1; sequence seq_AdjustedSequence2; variable i; file WriteFile; file ReadFile; variable str_LabID; variable str_PosID; variable str_LabID2; variable str_PosID2; variable flt_X; variable flt_Y; variable arr_Coordinates[]; int_CurrentPosition = io_Sequence1.GetCurrentPosition(); seq_AdjustedSequence1.CopySequence(io_Sequence1); seq_AdjustedSequence2.CopySequence(io_Sequence2); int_TotalSequencePositions = io_Sequence1.GetTotal(); SeqRemoveAll(io_Sequence1); SeqRemoveAll(io_Sequence2); WriteFile.RemoveFields(); WriteFile.AddField("LAB_ID", str_LabID, hslString, 255); WriteFile.AddField("POS_ID", str_PosID, hslString, 255); WriteFile.AddField("X_COORD", flt_X, hslFloat); WriteFile.AddField("Y_COORD", flt_Y, hslFloat); WriteFile.AddField("LAB_ID_2", str_LabID2, hslString, 255); WriteFile.AddField("POS_ID_2", str_PosID2, hslString, 255); if(WriteFile.Open(str_TempSortingFilePath + " " + "SORT", hslWrite)) { for(i = int_CurrentPosition; i <= int_TotalSequencePositions;) { if(int_CurrentPosition == 0) break; seq_AdjustedSequence1.SetCurrentPosition(i); seq_AdjustedSequence2.SetCurrentPosition(i); if(seq_AdjustedSequence1.GetLabwareId() != "" && seq_AdjustedSequence1.GetPositionId() != "") { str_LabID = seq_AdjustedSequence1.GetLabwareId(); str_PosID = seq_AdjustedSequence1.GetPositionId(); Instrument.GetLabwarePosition(str_LabID, arr_Coordinates, str_PosID); flt_X = arr_Coordinates[0]; flt_Y = arr_Coordinates[1]; str_LabID2 = seq_AdjustedSequence2.GetLabwareId(); str_PosID2 = seq_AdjustedSequence2.GetPositionId(); WriteFile.WriteRecord(); } i = i + 1; } } WriteFile.Close(); WriteFile.RemoveFields(); ReadFile.RemoveFields(); ReadFile.AddField("LAB_ID", str_LabID, hslString, 255); ReadFile.AddField("POS_ID", str_PosID, hslString, 255); ReadFile.AddField("X_COORD", flt_X, hslFloat); ReadFile.AddField("Y_COORD", flt_Y, hslFloat); ReadFile.AddField("LAB_ID_2", str_LabID2, hslString, 255); ReadFile.AddField("POS_ID_2", str_PosID2, hslString, 255); if(ReadFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead, str_SQL_Sort)) { while(ReadFile.Eof() == 0) { ReadFile.ReadRecord(); io_Sequence1.Add(str_LabID,str_PosID); io_Sequence2.Add(str_LabID2,str_PosID2); } } else { Trace("ERROR OCCURRED DURING SORT"); io_Sequence1.CopySequence(seq_AdjustedSequence1); io_Sequence2.CopySequence(seq_AdjustedSequence2); } ReadFile.Close(); ReadFile.RemoveFields(); io_Sequence1.SetCurrentPosition(1); io_Sequence2.SetCurrentPosition(1); } // {{{ 5 "SortSequences" "End" } // }} "" // {{{ 5 "CalculateXYFromDiameterAndAngle" "Begin" function CalculateXYFromDiameterAndAngle( variable iDiameter, variable iPhi_Degree, variable & oDelta_X, variable & oDelta_Y ) void { // }} "" private variable tmp_Phi; private variable tmp_SinPhi; private variable iRadius; private variable tmp_CosPhi; // {{ 5 "CalculateXYFromDiameterAndAngle" "InitLocals" oDelta_X = 0; oDelta_Y = 0; // }} "" // {{ 24 1 0 "94200683_d132_48fa_bd6dc3a020af8300" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 25 1 0 "034cb667_900f_4f85_a6ad42da452dc1a6" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 26 1 0 "69b737e3_6fe8_4bf8_821bf51be27fd90a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" iRadius = iDiameter; // }} "" // {{ 27 1 0 "edd5c5c2_0ec6_4026_815e1b24653a9f9a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" tmp_Phi = iPhi_Degree * 3.1415926; // }} "" // {{ 28 1 0 "54b91f80_e958_4475_b515d6108b404d8a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" tmp_Phi = tmp_Phi / (180.0 * 1.0); // }} "" // {{{ 29 1 0 "ce576a51_0d42_4b25_94ad2566214a9f1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" tmp_CosPhi = MthCos(tmp_Phi); // }} "" // {{ 30 1 0 "d6bdb605_2594_4d64_aeaf25b122e8c325" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" oDelta_X = iRadius * tmp_CosPhi; // }} "" // {{{ 31 1 0 "efa4a9b3_07de_4bca_88147b0b5fdb5a43" "{C1F3C015-47B3-4514-9407-AC2E65043419}" tmp_SinPhi = MthSin(tmp_Phi); // }} "" // {{ 32 1 0 "104c2926_e35d_4514_8e3bd4f828cff285" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" oDelta_Y = iRadius * tmp_SinPhi; // }} "" // {{{ 33 1 0 "0469093b_04bb_4d54_9b255eed8b476068" "{C1F3C015-47B3-4514-9407-AC2E65043419}" oDelta_X = MthRound(oDelta_X, 1); // }} "" // {{{ 34 1 0 "778fa82a_6dd6_40e4_aa36fdf7db046f7d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" oDelta_Y = MthRound(oDelta_Y, 1); // }} "" // {{{ 5 "CalculateXYFromDiameterAndAngle" "End" } // }} "" // {{{ 5 "CalculateVolumeToHeight" "Begin" function CalculateVolumeToHeight( device & ML_STAR, variable iLabwareID, variable iLiquidVolume, variable iStartHeight ) variable { // }} "" private variable tmp_TubeDiameter; private variable tmp_TubeRadius; private variable tmp_Height; // {{ 5 "CalculateVolumeToHeight" "InitLocals" // }} "" // {{ 15 1 0 "dc05dad0_21a4_4324_b1bab26044971811" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 16 1 0 "321c42b8_67d1_4f2f_a9b4896e99805c8b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetContainerWidth(ML_STAR, iLabwareID, tmp_TubeDiameter); // }} "" // {{ 17 1 0 "0c2a6ee0_78ba_42c5_884f1f70fd430b6b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" tmp_TubeRadius = tmp_TubeDiameter / (2.0 * 1.0); // }} "" // {{ 18 1 0 "e8af591f_6ad7_4e24_a448bcb3e3611e6d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 19 1 0 "89976b65_56b8_42b6_bc80f85b12af1f52" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" tmp_Height = 0.0; // }} "" // {{ 20 1 0 "c090f8a2_75b8_48ae_bd621a5dffcad42d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" { variable SphericVolumeOfTubeBottom; variable VolumeBetweenStartAndConeSegment; SphericVolumeOfTubeBottom=tmp_TubeRadius*3.1415926/3.0*MthPow(tmp_TubeRadius,2)*7/4; VolumeBetweenStartAndConeSegment=3.1415926*MthPow(tmp_TubeRadius,2)*(iStartHeight-tmp_TubeRadius); if (iLiquidVolume<=VolumeBetweenStartAndConeSegment) //Volumen oberhalb BottomCone ist ausreichend also Zylinder rechnen { tmp_Height = (iLiquidVolume) / (3.1415926 * MthPow(tmp_TubeRadius, 2)); } else { if (iLiquidVolume > SphericVolumeOfTubeBottom) { //height above Cone tmp_Height = (iLiquidVolume-SphericVolumeOfTubeBottom) / (3.1415926 * MthPow(tmp_TubeRadius, 2)); //+ height in zylinder tmp_Height = tmp_Height + (tmp_TubeRadius); } else { //Cutted ConeVol Pi/3*(R*R+R*r+r*r) with r=R/2 gives Pi/3*R*R*7/4 tmp_Height = iLiquidVolume / (3.1415926/3.0*MthPow(tmp_TubeRadius,2)*7/4); } } } // {{{ 22 1 0 "8f077eb0_eedd_45d3_802af42e2a4cf77d" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (tmp_Height); // }} "" // {{{ 5 "CalculateVolumeToHeight" "End" } // }} "" // {{{ 5 "SortSequenceRaster" "Begin" function SortSequenceRaster( device & Instrument, sequence & io_Sequence, variable i_bln_ByLabID, variable i_flt_YRaster ) void { // }} "" private variable str_TempSortingFilePath; private variable str_SQL_Sort; // {{ 5 "SortSequenceRaster" "InitLocals" // }} "" // {{{ 673 1 0 "e5a4d0f6_fff1_4a9c_a98b666c96c560ad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetTempSortingFilePath(str_TempSortingFilePath); // }} "" // {{ 674 1 0 "b8670065_4865_406f_91cea5b72ef22931" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_ByLabID == 1) { // }} "" // {{{ 675 1 0 "ea62cde6_f3c4_4431_8326905f881a755d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Sort = StrConcat4(Translate("SELECT * FROM SORT ORDER BY LAB_ID ASC, X_COORD ASC, RASTER_CHECK DESC, Y_COORD DESC"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 676 1 0 "b8670065_4865_406f_91cea5b72ef22931" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 677 1 0 "ecced08f_4838_440c_aeb6622a050c4db9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Sort = StrConcat4(Translate("SELECT * FROM SORT ORDER BY X_COORD ASC, RASTER_CHECK DESC, Y_COORD DESC"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 678 1 0 "b8670065_4865_406f_91cea5b72ef22931" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" { variable int_CurrentPosition; variable int_TotalSequencePositions; sequence seq_AdjustedSequence; variable i; file WriteFile; file ReadFile; variable str_LabID; variable str_PosID; variable flt_X; variable flt_Y; variable int_R; variable flt_CurrentY; variable flt_CurrentX; variable arr_Coordinates[]; int_CurrentPosition = io_Sequence.GetCurrentPosition(); seq_AdjustedSequence.CopySequence(io_Sequence); int_TotalSequencePositions = io_Sequence.GetTotal(); SeqRemoveAll(io_Sequence); WriteFile.RemoveFields(); WriteFile.AddField("LAB_ID", str_LabID, hslString, 255); WriteFile.AddField("POS_ID", str_PosID, hslString, 255); WriteFile.AddField("X_COORD", flt_X, hslFloat); WriteFile.AddField("Y_COORD", flt_Y, hslFloat); WriteFile.AddField("RASTER_CHECK",int_R, hslInteger); if(WriteFile.Open(str_TempSortingFilePath + " " + "SORT", hslWrite)) { for(i = int_CurrentPosition; i <= int_TotalSequencePositions;) { if(int_CurrentPosition == 0) break; seq_AdjustedSequence.SetCurrentPosition(i); if(seq_AdjustedSequence.GetLabwareId() != "" && seq_AdjustedSequence.GetPositionId() != "") { str_LabID = seq_AdjustedSequence.GetLabwareId(); str_PosID = seq_AdjustedSequence.GetPositionId(); Instrument.GetLabwarePosition(str_LabID, arr_Coordinates, str_PosID); flt_X = arr_Coordinates[0]; flt_Y = arr_Coordinates[1]; if(i == int_CurrentPosition) { int_R = 1; flt_CurrentY = flt_Y; flt_CurrentX = flt_X; } else if(flt_X != flt_CurrentX) { int_R = 1; flt_CurrentY = flt_Y; flt_CurrentX = flt_X; } else { int_R = (flt_CurrentY - flt_Y) / i_flt_YRaster; } if(int_R >= 1.0) { int_R = 1; flt_CurrentY = flt_Y; } else int_R = 0; WriteFile.WriteRecord(); } i = i + 1; } } WriteFile.Close(); WriteFile.RemoveFields(); ReadFile.RemoveFields(); ReadFile.AddField("LAB_ID", str_LabID, hslString, 255); ReadFile.AddField("POS_ID", str_PosID, hslString, 255); ReadFile.AddField("X_COORD", flt_X, hslFloat); ReadFile.AddField("Y_COORD", flt_Y, hslFloat); ReadFile.AddField("RASTER_CHECK",int_R, hslInteger); if(ReadFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead, str_SQL_Sort)) { while(ReadFile.Eof() == 0) { ReadFile.ReadRecord(); io_Sequence.Add(str_LabID,str_PosID); } } else { Trace("ERROR OCCURRED DURING SORT"); io_Sequence.CopySequence(seq_AdjustedSequence); } ReadFile.Close(); ReadFile.RemoveFields(); io_Sequence.SetCurrentPosition(1); } /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 680 1 0 "1f9f3808_ca9e_433a_8cf01bf071a22e3a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceSequence(io_Sequence); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 5 "SortSequenceRaster" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=Bare_B$$valid=0$$time=2022-04-20 16:45$$checksum=605d76f9$$length=085$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/Liquid Level Check.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 9/23/2019 10:30:09 AM #pragma once #ifndef HSL_RUNTIME namespace LIQUID_LEVEL_CHECK { function _InitLibrary() { } function _ExitLibrary() { } function FindLiquidHeight( device & ML_STAR, variable i_str_LiquidLevelReturn, sequence i_seq_Labware, variable i_int_Channel, variable & o_flt_LiquidHeight ) void { } function MeasureLiquidLevel_Multi( device & ML_STAR, sequence & i_arrseq_FullReservoirSequences[], sequence & i_seq_TipsToUse, sequence i_seq_TipWaste, variable i_str_TipCounter, variable i_int_LLD_Sensitivity, variable i_bool_ConvertTouL, variable & o_arr_VolumesMeasured[] ) variable { return (0); } function MeasureLiquidLevel_Single( device & ML_STAR, sequence i_seq_FullReservoirSequence, sequence & i_seq_TipsToUse, sequence i_seq_TipWaste, variable i_str_TipCounter, variable i_bool_IncrementTipSequence, variable i_int_LLD_Sensitivity, variable i_bool_ConvertTouL, variable & o_flt_VolumeMeasured ) variable { return (0); } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=Bare_B$$valid=0$$time=2019-09-23 10:30$$checksum=652b603e$$length=083$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/Liquid Level Check.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "HSLStrLib.hsl" #include "HSLExtensions\\File.hsl" #include "HSLFilLib.hsl" #include "HSLDevLib.hsl" #include "HSLSeqLib.hsl" #include "HSLMthLib.hsl" #include "HSLUtilLib2.hsl" #include "HSLMlStarStepReturnLib.hsl" #include "HSLUtilLib.hsl" #include "STAR Tools\\Resources\\SubMethods\\HelperLibrary.hs_" #include "STAR Tools\\STAR Tip Tools.hs_" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" #include "HSLPTLLib.hsl" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace LIQUID_LEVEL_CHECK { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function FindLiquidHeight( device & ML_STAR, variable i_str_LiquidLevelReturn, sequence i_seq_Labware, variable i_int_Channel, variable & o_flt_LiquidHeight ) void ; function MeasureLiquidLevel_Multi( device & ML_STAR, sequence & i_arrseq_FullReservoirSequences[], sequence & i_seq_TipsToUse, sequence i_seq_TipWaste, variable i_str_TipCounter, variable i_int_LLD_Sensitivity, variable i_bool_ConvertTouL, variable & o_arr_VolumesMeasured[] ) variable ; function MeasureLiquidLevel_Single( device & ML_STAR, sequence i_seq_FullReservoirSequence, sequence & i_seq_TipsToUse, sequence i_seq_TipWaste, variable i_str_TipCounter, variable i_bool_IncrementTipSequence, variable i_int_LLD_Sensitivity, variable i_bool_ConvertTouL, variable & o_flt_VolumeMeasured ) variable ; private function _Get_CenterWell( device & ML_STAR, sequence i_seq_Reservoir, variable & o_str_WellID ) void ; private function _Get_LiquidClass( variable i_int_TipType, variable & o_str_LiquidClass ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" PTL::SetWashingStateDefault("RinseTime1", 5); PTL::SetWashingStateDefault("SoakTime1", 5); PTL::SetWashingStateDefault("FlowRate1", 11); PTL::SetWashingStateDefault("RinseTime2", 0); PTL::SetWashingStateDefault("SoakTime2", 0); PTL::SetWashingStateDefault("FlowRate2", 11); PTL::SetWashingStateDefault("DrainingTime", 10); PTL::SetWashingStateDefault("StartWashLiquid", 0); PTL::SetLoadingStateDefault("RecoveryOptionContinue", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionExclude", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionDefault", 0); PTL::SetLoadingStateDefault("KitLotCheckEnabled", hslFalse); HELPERLIBRARY::_InitLibrary(); STAR_TIP_TOOLS::_InitLibrary(); // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" HELPERLIBRARY::_ExitLibrary(); STAR_TIP_TOOLS::_ExitLibrary(); // }} "" } // {{{ 5 "MeasureLiquidLevel_Single" "Begin" function MeasureLiquidLevel_Single( device & ML_STAR, sequence i_seq_FullReservoirSequence, sequence & i_seq_TipsToUse, sequence i_seq_TipWaste, variable i_str_TipCounter, variable i_bool_IncrementTipSequence, variable i_int_LLD_Sensitivity, variable i_bool_ConvertTouL, variable & o_flt_VolumeMeasured ) variable { // }} "" private variable str_FunctionName; private variable str_TipCounter; private variable int_Total1mLChannels; private variable ret_FunctionSuccessful; private variable str_TipName; private variable str_TipLabID; private variable int_Length; private variable str_WasteLabID; private variable int_Value; private variable str_Value; private variable str_ReservoirLabID; private variable int_TotalPositions; private variable int_TipType; private variable str_LiquidClass; private variable str_ChannelPattern; private variable str_CenterWell; private sequence seq_LLCheck; private variable str_IncrementSequence; private variable int_IncrementSequence; private variable flt_VolumeMeasureduL; private variable flt_VolumeMeasuredmL; private variable flt_LiquidLevel; private variable str_ReturnValue; private variable flt_VolumeMeasured; private variable str_LabID; private variable int_LLD_Sensitivity; private variable str_PosID; private variable bool_ConnectedContainer; // {{ 5 "MeasureLiquidLevel_Single" "InitLocals" o_flt_VolumeMeasured = 0; // }} "" // {{ 203 1 0 "e90544d9_4738_4f3a_a570cf7b79f679dc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_FunctionSuccessful = 0; // }} "" // {{ 204 1 0 "cfb89b58_2f36_4d92_a9656b652de5e856" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_VolumeMeasured = 0.0; // }} "" // {{ 205 1 0 "aad3d293_6822_4fde_a7293fe0a5937f81" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FunctionName = Translate(""); // }} "" // {{{ 206 1 0 "da29512f_614e_47d2_a5cf8356fb27bc17" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_LLCheck); // }} "" // {{ 207 1 0 "50be0b10_ea44_4ce4_8fe34f0c0feba3b6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 208 1 0 "40c1d59f_eab9_4ec7_adcc9fc423e3cd69" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 209 1 0 "c17facbb_6b3f_4696_a3faf0dede057fc8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Total1mLChannels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" Trace(" ","Total Channels: ",int_Total1mLChannels); // {{ 211 1 0 "daf28217_7944_4b98_8a28abf62160058c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Total1mLChannels == 0) { // }} "" // {{ 212 1 0 "725f7ba4_180a_45b9_b1ece96eddf0f541" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=========================================\n\nNO 1mL CHANNELS ARE LOADED ON THE SYSTEM!\n\n=========================================")); // }} "" Trace("----------------------------------- ",str_FunctionName," - FINISH"); // {{{ 214 1 0 "050a0f57_e2e0_4fec_8e1f20cfc26f0452" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_FunctionSuccessful); // }} "" // {{ 215 1 0 "daf28217_7944_4b98_8a28abf62160058c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 216 1 0 "0dd0bae2_cd21_4e4b_b7087993dc879cd0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ChannelPattern = Translate("1"); // }} "" // {{{ 217 1 0 "73bd48b6_7107_40f8_a2fa7943c505f40c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelPattern = StrFillRight(str_ChannelPattern, Translate("0"), int_Total1mLChannels); // }} "" Trace(" ","Channel Pattern: ",str_ChannelPattern); // {{ 219 1 0 "50be0b10_ea44_4ce4_8fe34f0c0feba3b6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 220 1 0 "c0a72b00_130e_4543_9ab612e46b81244d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 221 1 0 "b833daf9_bf1f_4813_acb5ea911bfca765" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 222 1 0 "c310ac30_2ec9_44bc_ae4f60ef8ef76ffd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipLabID = SeqGetLabwareId(i_seq_TipsToUse); // }} "" // {{{ 223 1 0 "f8521ab9_bf98_4d18_8d456932045415e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(str_TipLabID); // }} "" // {{ 224 1 0 "51fc769d_e559_449a_a9cf7f053a716e68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Length > 0) { // }} "" // {{{ 225 1 0 "a9d1c9e4_90ed_4cf1_9349ea4a87eeb8cd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTipName(ML_STAR, str_TipLabID, str_TipName, int_TipType); // }} "" // {{ 226 1 0 "51fc769d_e559_449a_a9cf7f053a716e68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 227 1 0 "d2639bc3_414b_48b6_8aceb2e04efed86b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TipType = Translate("UNKNOWN"); // }} "" // {{ 228 1 0 "51fc769d_e559_449a_a9cf7f053a716e68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 229 1 0 "03844497_2858_4302_9b8ca4eaf5c8d057" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipCounter = StrConcat2(i_str_TipCounter, Translate("")); // }} "" // {{ 230 1 0 "36f64d58_2974_4164_828207b44bf5f45e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_TipCounter == "0") { // }} "" // {{ 231 1 0 "7d11fc3e_291c_4b8e_b7d17a81a60f9ae5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TipCounter = Translate(""); // }} "" // {{ 232 1 0 "36f64d58_2974_4164_828207b44bf5f45e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 233 1 0 "64074e66_671c_4b63_b7c8c741df956a90" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_TipCounter == "") { // }} "" // {{{ 234 1 0 "0143f375_d4ac_4fbc_be7fb3f7b51a87a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipCounter = StrConcat4(Translate("Tip_Counter"), Translate("_"), int_TipType, Translate("")); // }} "" // {{ 235 1 0 "64074e66_671c_4b63_b7c8c741df956a90" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace(" ","Tip Counter: ",str_TipCounter); // {{ 237 1 0 "c0a72b00_130e_4543_9ab612e46b81244d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 238 1 0 "e471f455_7f17_4c94_8d49fb76ac3998da" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 239 1 0 "226c7aa3_40b7_494b_9c722e64e170e8c2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 240 1 0 "ec109416_1eb2_46d2_be36e280d2a6f2db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::TipCheck(ML_STAR, i_seq_TipsToUse, str_TipCounter, 1); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 241 1 0 "a0d6a6c7_e4c3_431f_878ddc2446bf9f00" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCheck(ML_STAR, i_seq_TipsToUse, str_TipCounter, 1); // }} "" // {{{ 242 1 0 "c50e500c_0746_41b1_a2124eca3023b96b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipLabID = SeqGetLabwareId(i_seq_TipsToUse); // }} "" // {{{ 243 1 0 "a27ca153_2aaf_4ca5_aec270484840183a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTipName(ML_STAR, str_TipLabID, str_TipName, int_TipType); // }} "" // {{ 244 1 0 "b7972478_2acf_4afd_a90aa24694cc69a1" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 245 1 0 "692a7386_2e23_4426_8cd0192740c161ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_IncrementSequence = StrConcat2(i_bool_IncrementTipSequence, Translate("")); // }} "" // {{{ 246 1 0 "4cde60cb_0f6e_4345_b71a79b4aae47b52" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_IncrementSequence = StrIVal(str_IncrementSequence); // }} "" // {{ 247 1 0 "31c9bc7e_8e94_4d64_89cc797ecca1d801" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_IncrementSequence > 1) { // }} "" // {{ 248 1 0 "9f9937f4_311d_418e_96fccaacaa3a2b8e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_IncrementSequence = 1; // }} "" // {{ 249 1 0 "31c9bc7e_8e94_4d64_89cc797ecca1d801" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 250 1 0 "cbd7bf2e_2a08_43ba_965f95f8583e6553" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_IncrementSequence < 0) { // }} "" // {{ 251 1 0 "51b7eb53_d078_4989_94089dd82a5bbfb0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_IncrementSequence = 0; // }} "" // {{ 252 1 0 "cbd7bf2e_2a08_43ba_965f95f8583e6553" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace(" ","Tip Labware: ",str_TipLabID); Trace(" ","Tip Name: ",str_TipName); Trace(" ","Tip Type: ",int_TipType); Trace(" ","Increment Sequence: ",int_IncrementSequence); // {{ 254 1 0 "1b33c415_f032_40f1_99ea627f6c0ef2e5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_TipName == "") { // }} "" // {{ 255 1 0 "87371e4f_a56a_4c68_a6ce3994357b8359" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=========================================\n\nTIP SEQUENCE DOES NOT POINT TO A TIP LABWARE!\n\n=========================================")); // }} "" Trace("----------------------------------- ",str_FunctionName," - FINISH"); // {{{ 257 1 0 "606e2807_14e7_41a4_be0d947e523940ad" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_FunctionSuccessful); // }} "" // {{ 258 1 0 "1b33c415_f032_40f1_99ea627f6c0ef2e5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 259 1 0 "55cf6cd8_23a2_435c_84b4e46c01ea7d6b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 260 1 0 "e9c390f0_d06b_45a8_bbbce20ec156bc51" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _Get_LiquidClass(int_TipType, str_LiquidClass); // }} "" Trace(" ","Liquid Class: ",str_LiquidClass); // {{ 262 1 0 "798e0ced_6ea9_408a_9147575471972d38" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_LiquidClass == "") { // }} "" // {{ 263 1 0 "bdd2ac03_14bb_48be_a9b439a36b7cbc38" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=========================================\n\nTIP TYPE IS NOT SUPPORTED IN THIS FUNCTION!\n\n=========================================")); // }} "" Trace("----------------------------------- ",str_FunctionName," - FINISH"); // {{{ 265 1 0 "bba302ed_b6b7_4ee6_bd6f5d101a45b41a" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_FunctionSuccessful); // }} "" // {{ 266 1 0 "798e0ced_6ea9_408a_9147575471972d38" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 267 1 0 "e471f455_7f17_4c94_8d49fb76ac3998da" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 268 1 0 "543928b3_ab47_4da6_a428054a009d74e7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 269 1 0 "384cdf04_9f03_49d1_89382d54935be525" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 270 1 0 "09812169_8f39_4bbf_bcaf85cc8bb2b8c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_WasteLabID = SeqGetLabwareId(i_seq_TipWaste); // }} "" // {{{ 271 1 0 "7f076a3c_07fd_459a_946032872e2fe6d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(str_WasteLabID); // }} "" // {{ 272 1 0 "0475a959_f43b_479a_bc02dea7d273316d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Length == 0) { // }} "" // {{ 273 1 0 "b4f285e4_9468_4f34_885c963a463e88fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Value = 0; // }} "" // {{ 274 1 0 "0475a959_f43b_479a_bc02dea7d273316d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 275 1 0 "962edaf2_6cd9_4f46_84d3c8d0141ad090" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = DevGetLabwareData(ML_STAR, str_WasteLabID, Translate("MlStarIsWasteRack")); // }} "" // {{{ 276 1 0 "7e12cae1_de74_40db_ac545d7d86972bf7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(str_Value); // }} "" // {{ 277 1 0 "9387981e_b8dd_4186_888cf030f595e577" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Length == 0) { // }} "" // {{ 278 1 0 "52950068_170a_42ed_96cc73649ef0de8b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Value = 0; // }} "" // {{ 279 1 0 "9387981e_b8dd_4186_888cf030f595e577" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 280 1 0 "3775c2bd_ce32_4313_8ee976ca8ad4cb5a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrIVal(str_Value); // }} "" // {{ 281 1 0 "9387981e_b8dd_4186_888cf030f595e577" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 282 1 0 "0475a959_f43b_479a_bc02dea7d273316d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace(" ","Waste Labware: ",str_WasteLabID); // {{ 284 1 0 "acec9cc9_5374_4110_9a2d6ef4804ab2b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 0) { // }} "" // {{ 285 1 0 "7715f4ec_6030_43d3_b3f22f96ff11a6c1" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=========================================\n\nWASTE SEQUENCE DOES NOT POINT TO A TIP WASTE LABWARE!\n\n=========================================")); // }} "" Trace("----------------------------------- ",str_FunctionName," - FINISH"); // {{{ 287 1 0 "6008c3b5_515f_4a7f_b7953bfdd09784ef" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_FunctionSuccessful); // }} "" // {{ 288 1 0 "acec9cc9_5374_4110_9a2d6ef4804ab2b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 289 1 0 "543928b3_ab47_4da6_a428054a009d74e7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 290 1 0 "ac5a27ef_fb9d_4d1f_bd0a832d567850ec" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 291 1 0 "35eec086_9ffe_4734_becc74e903f7882a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 292 1 0 "282b2480_766a_449d_b473c13b1875df4d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ReservoirLabID = SeqGetLabwareId(i_seq_FullReservoirSequence); // }} "" // {{{ 293 1 0 "dc27caf1_b5ed_42ab_9c26e9a05a324b9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(str_ReservoirLabID); // }} "" Trace(" ","Reservoir Labware: ",str_ReservoirLabID); // {{ 295 1 0 "3b115983_105c_4c06_91c3cfb66de7fac7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Length == 0) { // }} "" // {{ 296 1 0 "1ea5545b_28ed_4df1_bd01e9243a08daeb" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=========================================\n\nLABWARE ID OF RESERVOIR SEQUENCE IS UNKNOWN!\n\n=========================================")); // }} "" Trace("----------------------------------- ",str_FunctionName," - FINISH"); // {{{ 298 1 0 "b1e51d01_5b60_4b00_b3f78f1021b21e33" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_FunctionSuccessful); // }} "" // {{ 299 1 0 "3b115983_105c_4c06_91c3cfb66de7fac7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 300 1 0 "a79ee8e1_23f4_41ac_880cc0593007d755" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 301 1 0 "ea7bfc9a_eb58_4647_b59132f6c4a8f115" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(i_seq_FullReservoirSequence); // }} "" Trace(" ","Reservoir Positions: ",int_TotalPositions); // {{{ 303 1 0 "cf25bdfa_d6a4_4581_aa3cfd3502886bdc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _Get_CenterWell(ML_STAR, i_seq_FullReservoirSequence, str_CenterWell); // }} "" Trace(" ","Reservoir Check Well: ",str_CenterWell); // {{ 305 1 0 "ac5a27ef_fb9d_4d1f_bd0a832d567850ec" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 306 1 0 "86d81a33_f6fb_488b_a0bb0679fe8cd159" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 307 1 0 "9ab019a8_9d7b_4896_85396d022264dc2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_LLD_Sensitivity = StrConcat2(i_int_LLD_Sensitivity, Translate("")); // }} "" // {{{ 308 1 0 "b4dea5d6_625d_4187_9f753a9dd02a01af" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_LLD_Sensitivity = StrIVal(int_LLD_Sensitivity); // }} "" // {{ 309 1 0 "c20fc989_9d0f_47d5_8fcd7a76c429e732" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_LLD_Sensitivity < 1) { // }} "" // {{ 310 1 0 "43a84b54_b45e_4b44_bbb554de2fba8b05" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_LLD_Sensitivity = 1; // }} "" // {{ 311 1 0 "c20fc989_9d0f_47d5_8fcd7a76c429e732" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 312 1 0 "fbb24d4a_be5c_4cfb_9e27619c51881c1d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_LLD_Sensitivity > 5) { // }} "" // {{ 313 1 0 "f708961c_eb39_40a9_84da1ee5a39d032b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_LLD_Sensitivity = 5; // }} "" // {{ 314 1 0 "fbb24d4a_be5c_4cfb_9e27619c51881c1d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 315 1 0 "86d81a33_f6fb_488b_a0bb0679fe8cd159" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 316 1 0 "5d02e105_6031_4f5c_89e2bc1952ca5b33" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 317 1 0 "5b84d30f_ad99_4702_908507806512c9a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(seq_LLCheck, str_ReservoirLabID, str_CenterWell); // }} "" // {{ 318 1 0 "c48af225_cbf6_434b_83dfb2b887004bc8" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_LLCheck.SetCurrentPosition(1); // }} "" // {{{ 319 1 0 "8e86d65f_c4b7_4329_bfbbaf5cda2cdf2d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::Optimized1mLTipPickup2(ML_STAR, i_seq_TipsToUse, str_TipCounter, str_ChannelPattern); // }} "" // {{ 320 1 0 "0f903fde_5bc1_49ea_9c4d99efd4ceeb83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_TipLabID == str_WasteLabID) { // }} "" // {{{ 321 1 0 "f76ab270_2aac_4463_87055ddc736ede50" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(i_seq_TipWaste, i_seq_TipsToUse); // }} "" // {{ 322 1 0 "0f903fde_5bc1_49ea_9c4d99efd4ceeb83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 323 1 0 "0c5117d2_c2a6_43e0_b29862a1d80a85f5" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 324 1 0 "43280cd0_05b0_4b11_823802ed169da8e8" "ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2("43280cd0_05b0_4b11_823802ed169da8e8"); // TipPickUp } // }} "" // {{{ 325 1 0 "25b95489_1488_4bce_bd71df0cd99e3955" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Write(ML_STAR, i_seq_TipsToUse, str_TipCounter); // }} "" // {{ 326 1 0 "44274e91_e2f6_492e_9c389516c2dc517e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 327 1 0 "e195af30_6a2f_4a6e_a1f9573e5dff30de" "ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2("e195af30_6a2f_4a6e_a1f9573e5dff30de"); // Aspirate } // }} "" // {{ 328 1 0 "8c36e0fe_5c30_4510_afb4add0600902b0" "ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}" { variable arrRetValues[]; arrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C("8c36e0fe_5c30_4510_afb4add0600902b0"); // GetLastLiquidLevel str_ReturnValue = arrRetValues[2]; } // }} "" // {{ 329 1 0 "93e75c71_c7d9_4c9a_8e5e596929372845" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 330 1 0 "28bc0b9e_9be7_4b38_a89c6a07c52ec07c" "ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2("28bc0b9e_9be7_4b38_a89c6a07c52ec07c"); // TipEject } // }} "" // {{ 331 1 0 "4272ec9c_b61f_4853_9c77bb221b231d14" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 332 1 0 "9ed5c402_8378_42e5_b77778d474593547" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FindLiquidHeight(ML_STAR, str_ReturnValue, seq_LLCheck, 1, flt_LiquidLevel); // }} "" // {{{ 333 1 0 "ac671cde_ad21_47f5_bf734e8575b692ab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_LLCheck); // }} "" // {{{ 334 1 0 "c31ddfed_7994_40a0_8318b7d86fc0e07f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(seq_LLCheck); // }} "" // {{{ 335 1 0 "1231c29e_fa27_469c_9068cddaa4eb1f75" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(seq_LLCheck, 1); // }} "" // {{{ 336 1 0 "aa3a717d_8f2b_4bc9_9868882da1480f3a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetConnectedContainer(ML_STAR, str_LabID, bool_ConnectedContainer); // }} "" // {{ 337 1 0 "08200ec2_fe09_4ce0_8904bb7e7471c09a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 338 1 0 "24e50547_d0da_46fe_a259c563f9f34971" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_VolumeMeasuredmL = DevComputeContainerVolume(ML_STAR, str_LabID, str_PosID, flt_LiquidLevel, 0); // }} "" // {{ 339 1 0 "680dd78e_90a1_427a_bc6044e5ef67cdef" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bool_ConvertTouL == 1) { // }} "" // {{ 340 1 0 "cdff0f37_56a2_4e65_848201332788f39d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 341 1 0 "c8b5a523_adbc_4882_95f8966e878f266b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeMeasureduL = flt_VolumeMeasuredmL * 1000; // }} "" // {{ 342 1 0 "4d17bded_62ea_4e6d_b8f25ba3f8d61548" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_ConnectedContainer == 1) { // }} "" // {{ 343 1 0 "f9bb5000_f5e3_4bdf_82f318662a3edafb" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 344 1 0 "d00b80d1_ea8f_4831_9fcf6fa223c43e09" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeMeasured = flt_VolumeMeasureduL * int_TotalPositions; // }} "" // {{ 345 1 0 "4d17bded_62ea_4e6d_b8f25ba3f8d61548" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 346 1 0 "427f68c8_9dbb_457a_bffa501c63b322e5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeMeasured = flt_VolumeMeasureduL; // }} "" // {{ 347 1 0 "4d17bded_62ea_4e6d_b8f25ba3f8d61548" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 348 1 0 "680dd78e_90a1_427a_bc6044e5ef67cdef" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 349 1 0 "79776b79_64ca_407d_881dba161c70d558" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_ConnectedContainer == 1) { // }} "" // {{ 350 1 0 "b10096f0_b61e_42b5_9552f92c94b7d596" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 351 1 0 "c19eb565_5bfb_4a77_90bff88ab1b073f7" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeMeasured = flt_VolumeMeasuredmL * int_TotalPositions; // }} "" // {{ 352 1 0 "79776b79_64ca_407d_881dba161c70d558" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 353 1 0 "c8d1081f_40e0_4a54_b93e9f57864651cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeMeasured = flt_VolumeMeasuredmL; // }} "" // {{ 354 1 0 "79776b79_64ca_407d_881dba161c70d558" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 355 1 0 "680dd78e_90a1_427a_bc6044e5ef67cdef" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 356 1 0 "3b1d7d17_0204_4647_915304fa05785871" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_VolumeMeasured = MthRound(flt_VolumeMeasured, 1); // }} "" // {{ 357 1 0 "e058dbdb_122c_45fa_97c92cc1d2e31917" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (o_flt_VolumeMeasured < 0.0) { // }} "" // {{ 358 1 0 "215b1ed1_e6f0_44f1_84c03b0648d60051" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_VolumeMeasured = 0.0; // }} "" // {{ 359 1 0 "e058dbdb_122c_45fa_97c92cc1d2e31917" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 360 1 0 "c0cb6451_3eb9_47e1_a98946d6620eb8c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bool_ConvertTouL == 1) { // }} "" Trace(""); Trace(" ","Volume Measured: ",o_flt_VolumeMeasured," uL"); Trace(""); // {{ 362 1 0 "c0cb6451_3eb9_47e1_a98946d6620eb8c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" Trace(""); Trace(" ","Volume Measured: ",o_flt_VolumeMeasured," mL"); Trace(""); // {{ 364 1 0 "c0cb6451_3eb9_47e1_a98946d6620eb8c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 365 1 0 "ff9702a9_ece0_4136_af9565d0a2dbd875" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_FunctionSuccessful = 1; // }} "" // {{{ 366 1 0 "ff0d1996_a693_449a_b62a0c61807581b4" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_FunctionSuccessful); // }} "" // {{{ 5 "MeasureLiquidLevel_Single" "End" } // }} "" // {{{ 5 "_Get_LiquidClass" "Begin" private function _Get_LiquidClass( variable i_int_TipType, variable & o_str_LiquidClass ) void { // }} "" // {{ 5 "_Get_LiquidClass" "InitLocals" o_str_LiquidClass = 0; // }} "" // {{ 401 1 0 "f1e37e31_de8f_4fe3_b17f1ab1c2b92f0d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LiquidClass = Translate(""); // }} "" // {{ 402 1 0 "9a8d1049_53eb_47e0_8415cf6e8ae869e2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 0) { // }} "" // {{ 403 1 0 "544b4f28_5b0b_477b_829de504ada2ded1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LiquidClass = Translate("LLD_Check_S"); // }} "" // {{ 404 1 0 "9a8d1049_53eb_47e0_8415cf6e8ae869e2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 405 1 0 "23917478_ea9e_4bb7_b39a892361066ab5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 1) { // }} "" // {{ 406 1 0 "6dfb6f24_4979_48c3_b22ffa7fa9a887a5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LiquidClass = Translate("LLD_Check_SF"); // }} "" // {{ 407 1 0 "23917478_ea9e_4bb7_b39a892361066ab5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 408 1 0 "51e69337_49e1_4504_96cc0d92286b2b98" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 4) { // }} "" // {{ 409 1 0 "0e35cac7_e86f_4829_8bb8318c30d711fc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LiquidClass = Translate("LLD_Check_H"); // }} "" // {{ 410 1 0 "51e69337_49e1_4504_96cc0d92286b2b98" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 411 1 0 "673eb83a_33b9_4727_a72804b2b31b676b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 5) { // }} "" // {{ 412 1 0 "cfb28c28_4d95_4fb0_979100e6074f17ea" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LiquidClass = Translate("LLD_Check_HF"); // }} "" // {{ 413 1 0 "673eb83a_33b9_4727_a72804b2b31b676b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 414 1 0 "d850136d_552a_4dd8_a4020fc524f2e9be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 22) { // }} "" // {{ 415 1 0 "e5ae2af7_9f15_4d05_bea42f0eb63aceb1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LiquidClass = Translate("LLD_Check_50uL"); // }} "" // {{ 416 1 0 "d850136d_552a_4dd8_a4020fc524f2e9be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 417 1 0 "ea092c6a_b4f6_49b6_b842f3613a62ea46" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 23) { // }} "" // {{ 418 1 0 "d153b5e5_7ad9_468f_b09237866e579abe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LiquidClass = Translate("LLD_Check_50uLF"); // }} "" // {{ 419 1 0 "ea092c6a_b4f6_49b6_b842f3613a62ea46" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "_Get_LiquidClass" "End" } // }} "" // {{{ 5 "MeasureLiquidLevel_Multi" "Begin" function MeasureLiquidLevel_Multi( device & ML_STAR, sequence & i_arrseq_FullReservoirSequences[], sequence & i_seq_TipsToUse, sequence i_seq_TipWaste, variable i_str_TipCounter, variable i_int_LLD_Sensitivity, variable i_bool_ConvertTouL, variable & o_arr_VolumesMeasured[] ) variable { // }} "" private variable str_FunctionName; private variable ret_FunctionSuccessful; private sequence seq_LLCheck; private variable str_ChannelPattern; private variable int_Total1mLChannels; private variable str_LiquidClass; private variable int_TotalReservoirs; private variable int_TipType; private variable str_TipCounter; private variable str_TipLabID; private variable str_TipName; private variable int_Length; private variable str_WasteLabID; private variable int_Value; private variable str_Value; private variable i; private variable str_CenterWell; private variable str_ReservoirLabID; private variable int_TotalPositions; private sequence seq_CurrentReservoir; private variable int_RemainingReservoirs; private variable flt_VolumeMeasureduL; private variable flt_VolumeMeasured; private variable int_GetLLDCount; private variable flt_VolumeMeasuredmL; private variable int_ChanNumber; private variable int_ReservoirIndex; private variable arr_PositionsPerReservoir[]; private variable str_ReturnValue; private variable flt_LiquidLevel; private variable str_LabID; private variable str_PosID; private variable bool_Simulation; private variable int_LLD_Sensitivity; private variable bool_ConnectedContainer; // {{ 5 "MeasureLiquidLevel_Multi" "InitLocals" o_arr_VolumesMeasured.SetSize( 0); // }} "" // {{{ 15 1 0 "ad31ddb4_abdb_4626_a2478a1967c43c8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_Simulation = Util::GetSimulationMode(); // }} "" // {{ 16 1 0 "93f20679_1bdf_4e82_a88179351012c056" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_FunctionSuccessful = 0; // }} "" // {{ 17 1 0 "66829a2d_dda6_4260_be2ea2c1c6b5d84e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FunctionName = Translate(""); // }} "" // {{{ 18 1 0 "6337b28e_3961_48f2_a3f31c644a5a01c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_LLCheck); // }} "" // {{ 19 1 0 "8cc26343_aa33_4d0f_9207b9338a95e003" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 20 1 0 "6e807c3f_d422_4778_b80771e2e3c2b6d6" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 21 1 0 "94a414b4_cb94_4096_857a6312ad03cdbe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Total1mLChannels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" Trace(" ","Total Channels: ",int_Total1mLChannels); // {{ 23 1 0 "e330062f_3c35_478b_835a83d2d46aeb73" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Total1mLChannels == 0) { // }} "" // {{ 24 1 0 "2d32bfbd_8239_420b_92536fa0594b36d6" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=========================================\n\nNO 1mL CHANNELS ARE LOADED ON THE SYSTEM!\n\n=========================================")); // }} "" Trace("----------------------------------- ",str_FunctionName," - FINISH"); // {{{ 26 1 0 "0891dc53_69bc_4cf3_aca6b86acc97eb3b" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_FunctionSuccessful); // }} "" // {{ 27 1 0 "e330062f_3c35_478b_835a83d2d46aeb73" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 28 1 0 "8cc26343_aa33_4d0f_9207b9338a95e003" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 29 1 0 "186cccd7_c021_4102_9e4bbd0151fcaa68" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 30 1 0 "593b2908_25f6_4cee_b385909de2d192b9" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 31 1 0 "09d2a797_5800_42aa_969dbd9f236da193" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalReservoirs=i_arrseq_FullReservoirSequences.GetSize(); // }} "" Trace(" ","Total Reservoirs: ",int_TotalReservoirs); // {{ 33 1 0 "b6ab34d3_1762_4b29_b2fd285cc79f0209" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalReservoirs == 0) { // }} "" // {{ 34 1 0 "497d237c_1db4_46f5_b79de1602743b542" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=========================================\n\nNO SEQUENCES WERE FOUND IN ARRAY!\n\n=========================================")); // }} "" Trace("----------------------------------- ",str_FunctionName," - FINISH"); // {{{ 36 1 0 "c82083ca_a1e3_434f_8b778a1af9a0e6aa" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_FunctionSuccessful); // }} "" // {{ 37 1 0 "b6ab34d3_1762_4b29_b2fd285cc79f0209" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 38 1 0 "186cccd7_c021_4102_9e4bbd0151fcaa68" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 39 1 0 "1cd72c52_0e6f_4e17_a1b7870c87de540f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 40 1 0 "ad066f97_c64a_4712_b1ae085a2479b4d0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 41 1 0 "84eb0284_2c00_4f8d_8873eb12c0a1251e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipLabID = SeqGetLabwareId(i_seq_TipsToUse); // }} "" // {{{ 42 1 0 "b8044aba_d878_4afb_87cc297b14273dc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(str_TipLabID); // }} "" // {{ 43 1 0 "43c2a6c8_4e07_4ba6_9da5d9f4e14fb4b7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Length > 0) { // }} "" // {{{ 44 1 0 "f0b51f81_c941_4f4b_ab18d230c70c1f1b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTipName(ML_STAR, str_TipLabID, str_TipName, int_TipType); // }} "" // {{ 45 1 0 "43c2a6c8_4e07_4ba6_9da5d9f4e14fb4b7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 46 1 0 "cbf567af_03cd_4a7e_ae9c59127a6eecc5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TipType = Translate("UNKNOWN"); // }} "" // {{ 47 1 0 "43c2a6c8_4e07_4ba6_9da5d9f4e14fb4b7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 48 1 0 "7b6186f8_ac0d_45ca_ac8e4f5d3dc82702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipCounter = StrConcat2(i_str_TipCounter, Translate("")); // }} "" // {{ 49 1 0 "4ec1bee7_ed12_478f_923333158deb7911" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_TipCounter == "0") { // }} "" // {{ 50 1 0 "6dc0c8ad_fbe1_42d7_b65642e12db5024e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TipCounter = Translate(""); // }} "" // {{ 51 1 0 "4ec1bee7_ed12_478f_923333158deb7911" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 52 1 0 "0eb0e259_d1a2_4439_bdcda897888be843" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_TipCounter == "") { // }} "" // {{{ 53 1 0 "1fb5ec12_2e81_4cb4_8a0a997b7265f626" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipCounter = StrConcat4(Translate("Tip_Counter"), Translate("_"), int_TipType, Translate("")); // }} "" // {{ 54 1 0 "0eb0e259_d1a2_4439_bdcda897888be843" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace(" ","Tip Counter: ",str_TipCounter); // {{ 56 1 0 "1cd72c52_0e6f_4e17_a1b7870c87de540f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 57 1 0 "e50424cb_7376_444c_8c5a57e97501b1b0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 58 1 0 "8f0a9c14_cd28_4e68_9dbc33db11f71785" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 59 1 0 "c1e19a90_a5f8_41be_ba1e91e32b6958ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::TipCheck(ML_STAR, i_seq_TipsToUse, str_TipCounter, int_TotalReservoirs); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 60 1 0 "366178b4_09c0_4d26_a738055794398771" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCheck(ML_STAR, i_seq_TipsToUse, str_TipCounter, int_TotalReservoirs); // }} "" // {{{ 61 1 0 "b3bea720_d803_4dda_91ac907eff12314e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipLabID = SeqGetLabwareId(i_seq_TipsToUse); // }} "" // {{{ 62 1 0 "68fe7f03_a233_4981_84d7775e4a5de8cc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTipName(ML_STAR, str_TipLabID, str_TipName, int_TipType); // }} "" Trace(" ","Tip Labware: ",str_TipLabID); Trace(" ","Tip Name: ",str_TipName); Trace(" ","Tip Type: ",int_TipType); // {{ 64 1 0 "146dfdb4_658b_4389_9642629cdeaa5880" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_TipName == "") { // }} "" // {{ 65 1 0 "656fc12a_e887_4ba8_8c5c6261b143a733" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=========================================\n\nTIP SEQUENCE DOES NOT POINT TO A TIP LABWARE!\n\n=========================================")); // }} "" Trace("----------------------------------- ",str_FunctionName," - FINISH"); // {{{ 67 1 0 "99b25def_f8fd_4a51_9127c831c38bb5a2" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_FunctionSuccessful); // }} "" // {{ 68 1 0 "146dfdb4_658b_4389_9642629cdeaa5880" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 69 1 0 "ee154012_a4be_4ec1_89bf6908af36a0ac" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 70 1 0 "3934aec7_7490_4808_af9cdbbefe336f0b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _Get_LiquidClass(int_TipType, str_LiquidClass); // }} "" Trace(" ","Liquid Class: ",str_LiquidClass); // {{ 72 1 0 "66c09d07_1001_420a_aa4b937af8660313" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_LiquidClass == "") { // }} "" // {{ 73 1 0 "3a088e6f_3b6e_4d04_a9c34d4800e6b510" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=========================================\n\nTIP TYPE IS NOT SUPPORTED IN THIS FUNCTION!\n\n=========================================")); // }} "" Trace("----------------------------------- ",str_FunctionName," - FINISH"); // {{{ 75 1 0 "f4f9723f_a022_4303_838cd3e1288fa835" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_FunctionSuccessful); // }} "" // {{ 76 1 0 "66c09d07_1001_420a_aa4b937af8660313" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 77 1 0 "e50424cb_7376_444c_8c5a57e97501b1b0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 78 1 0 "be4c9113_b30d_4570_80ac5ade5da71ef2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 79 1 0 "dc9b5f73_7409_4002_8c26622a9cfaa8a1" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 80 1 0 "49ab7502_730f_43c8_976dfe238fc5c88b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_WasteLabID = SeqGetLabwareId(i_seq_TipWaste); // }} "" // {{{ 81 1 0 "c65fa5a1_a99b_4111_a2ba2c4087120add" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(str_WasteLabID); // }} "" // {{ 82 1 0 "9ad63703_ea2f_40a5_ab9e4fdf4dc8b228" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Length == 0) { // }} "" // {{ 83 1 0 "650fbb1c_966a_4d77_a3f3edc690ca6fab" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Value = 0; // }} "" // {{ 84 1 0 "9ad63703_ea2f_40a5_ab9e4fdf4dc8b228" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 85 1 0 "9a3ee54b_97b9_4459_af1e17f96503a4d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = DevGetLabwareData(ML_STAR, str_WasteLabID, Translate("MlStarIsWasteRack")); // }} "" // {{{ 86 1 0 "8d888962_d27f_4865_889c6e62a461acbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(str_Value); // }} "" // {{ 87 1 0 "9573d7ee_0b7d_49fd_a3c9ba40d3cb7d5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Length == 0) { // }} "" // {{ 88 1 0 "ebebdae6_4c80_4946_8447bf6b531dd755" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Value = 0; // }} "" // {{ 89 1 0 "9573d7ee_0b7d_49fd_a3c9ba40d3cb7d5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 90 1 0 "d7e5af39_ea87_41b1_bef601435f2229ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrIVal(str_Value); // }} "" // {{ 91 1 0 "9573d7ee_0b7d_49fd_a3c9ba40d3cb7d5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 92 1 0 "9ad63703_ea2f_40a5_ab9e4fdf4dc8b228" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace(" ","Waste Labware: ",str_WasteLabID); // {{ 94 1 0 "3a3f7865_7723_4f66_b5fd35fe78f3d7e7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 0) { // }} "" // {{ 95 1 0 "c89de483_0f96_4982_9e941d4cca05c180" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=========================================\n\nWASTE SEQUENCE DOES NOT POINT TO A TIP WASTE LABWARE!\n\n=========================================")); // }} "" Trace("----------------------------------- ",str_FunctionName," - FINISH"); // {{{ 97 1 0 "e7000f18_466a_4451_90afd8023d6e73a4" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_FunctionSuccessful); // }} "" // {{ 98 1 0 "3a3f7865_7723_4f66_b5fd35fe78f3d7e7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 99 1 0 "be4c9113_b30d_4570_80ac5ade5da71ef2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 100 1 0 "5e937f9f_f096_403e_bdb29a3b29f7a5ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 101 1 0 "782b29b5_adc0_4cba_8f098e6d6722382b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_LLD_Sensitivity = StrConcat2(i_int_LLD_Sensitivity, Translate("")); // }} "" // {{{ 102 1 0 "e1d23163_9431_40a6_8842828a73ac5729" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_LLD_Sensitivity = StrIVal(int_LLD_Sensitivity); // }} "" // {{ 103 1 0 "1b712770_a4f2_409d_a847f52075d7fcae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_LLD_Sensitivity < 1) { // }} "" // {{ 104 1 0 "bc8290d8_79ae_4266_bcb5262b5991a71c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_LLD_Sensitivity = 1; // }} "" // {{ 105 1 0 "1b712770_a4f2_409d_a847f52075d7fcae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 106 1 0 "f7d54de1_0e43_4b2a_84cade9ab5962483" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_LLD_Sensitivity > 5) { // }} "" // {{ 107 1 0 "016cebe7_a300_4a0e_b2095d13d427d33d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_LLD_Sensitivity = 5; // }} "" // {{ 108 1 0 "f7d54de1_0e43_4b2a_84cade9ab5962483" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 109 1 0 "5e937f9f_f096_403e_bdb29a3b29f7a5ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 110 1 0 "a1c3d220_39a0_435f_8d69bd00dd90897d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 111 1 0 "2a3cf5b9_0aaa_42eb_a1fbea890dabbdd3" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_PositionsPerReservoir.SetSize(0); // }} "" // {{ 112 1 0 "d404f7f2_eb38_4f87_a53b9ea9ff9a0f2e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalReservoirs;) { i = i + 1; // }} "" // {{ 113 1 0 "bf4f3619_01f6_4151_b08d855fbb3c378f" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" seq_CurrentReservoir=i_arrseq_FullReservoirSequences.GetAt(i-1); // }} "" // {{ 114 1 0 "526e8a6f_6323_418a_a1f02ee95d57111b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 115 1 0 "4e3779ff_1542_4638_b560301378371331" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 116 1 0 "a3ba29ab_4e92_4333_bb63478f9fd53e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ReservoirLabID = SeqGetLabwareId(seq_CurrentReservoir); // }} "" // {{{ 117 1 0 "c49eacd0_f87d_490f_abf1157dddc04fd0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(str_ReservoirLabID); // }} "" Trace(" ","Reservoir Labware: ",str_ReservoirLabID); // {{ 119 1 0 "c88b094f_91c3_4141_b619a96352d34998" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Length == 0) { // }} "" // {{ 120 1 0 "ddfa7ef5_a486_402c_b6d4942fb7790366" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=========================================\n\nLABWARE ID OF RESERVOIR SEQUENCE IS UNKNOWN!\n\n=========================================")); // }} "" Trace("----------------------------------- ",str_FunctionName," - FINISH"); // {{{ 122 1 0 "09a02483_538d_4a71_b2de3143159aed83" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_FunctionSuccessful); // }} "" // {{ 123 1 0 "c88b094f_91c3_4141_b619a96352d34998" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 124 1 0 "1bb91cd8_8104_4a63_ab062a31a190e6b9" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 125 1 0 "66cdd0e4_fc25_4101_935ebba9a49932ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(seq_CurrentReservoir); // }} "" // {{ 126 1 0 "41e69416_fb76_4589_8a99e32a8ec42dcd" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_PositionsPerReservoir.AddAsLast(int_TotalPositions); // }} "" Trace(" ","Reservoir Positions: ",int_TotalPositions); // {{{ 128 1 0 "80662e58_880b_4fbc_b4382228081edaf1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _Get_CenterWell(ML_STAR, seq_CurrentReservoir, str_CenterWell); // }} "" Trace(" ","Reservoir Check Well: ",str_CenterWell); // {{ 130 1 0 "526e8a6f_6323_418a_a1f02ee95d57111b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 131 1 0 "c5be8a66_a57f_41e8_b449e7c07b0ebad2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 132 1 0 "40f55667_5550_460d_9fd9e937e4160b1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(seq_LLCheck, str_ReservoirLabID, str_CenterWell); // }} "" // {{ 133 1 0 "d404f7f2_eb38_4f87_a53b9ea9ff9a0f2e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 134 1 0 "6141eb6d_ab6e_4828_8d97d293564f8b1f" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_LLCheck.SetCurrentPosition(1); // }} "" // {{ 135 1 0 "185d601f_3b96_427e_b6fce215af16909f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_RemainingReservoirs = int_TotalReservoirs; // }} "" // {{ 136 1 0 "e038929d_f364_46d0_a30f4d596bd205ab" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ReservoirIndex = 1; // }} "" // {{{ 137 1 0 "53bd30fc_52e3_4982_bdf01e54c4b72037" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Positions per reservoir"), arr_PositionsPerReservoir); // }} "" // {{ 138 1 0 "13b0bdc6_d4bf_48d3_bb42e98d14762102" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { seq_LLCheck.SetCurrentPosition(1); while ( (seq_LLCheck.GetCurrentPosition() > 0) ) { AlignSequences(hslTrue, seq_LLCheck, 1); // }} "" // {{{ 139 1 0 "9d6fe7fa_7f39_4f1a_8fc55aa102c00157" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::Optimized1mLTipPickup(ML_STAR, i_seq_TipsToUse, seq_LLCheck, str_TipCounter, str_ChannelPattern); // }} "" // {{ 140 1 0 "80272638_2144_40d0_95a300483c3eac21" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_TipLabID == str_WasteLabID) { // }} "" // {{{ 141 1 0 "b8e5728c_a3d1_4245_97113d11638abe14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(i_seq_TipWaste, i_seq_TipsToUse); // }} "" // {{ 142 1 0 "80272638_2144_40d0_95a300483c3eac21" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 143 1 0 "6305dd84_5504_4071_8e91b88d0a1c0809" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_GetLLDCount = int_RemainingReservoirs; // }} "" // {{ 144 1 0 "8f7f12bb_8c49_4669_ba678e20c6d2c868" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_RemainingReservoirs > int_Total1mLChannels) { // }} "" // {{ 145 1 0 "a0902f48_6a1f_4b22_81922ee8a975900c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_GetLLDCount = int_Total1mLChannels; // }} "" // {{ 146 1 0 "8f7f12bb_8c49_4669_ba678e20c6d2c868" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 147 1 0 "72a8a026_bd87_427c_907eea2e18370bb2" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_RemainingReservoirs = int_RemainingReservoirs - int_GetLLDCount; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 148 1 0 "f93e05f4_2c75_4c34_8db398234b32c73a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 149 1 0 "e08b20c1_b1c4_4828_92fdf7f4f604661b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ChannelPattern = Translate(""); // }} "" // {{{ 150 1 0 "f40c5626_0a82_4fab_909f62f54bb1405a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelPattern = StrFillLeft(str_ChannelPattern, Translate("1"), int_GetLLDCount); // }} "" // {{{ 151 1 0 "8695bf45_cd39_4a52_9b9d5a3a1c6df6f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelPattern = StrFillRight(str_ChannelPattern, Translate("0"), int_Total1mLChannels); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 152 1 0 "5e4a2037_6c5b_4eaa_a826bc05ee980201" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 153 1 0 "7eef809f_09f8_45b4_b666b9871422095b" "ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2("7eef809f_09f8_45b4_b666b9871422095b"); // TipPickUp } // }} "" // {{{ 154 1 0 "eeef15a2_eac2_4c4e_82e4e64775349d3d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Write(ML_STAR, i_seq_TipsToUse, str_TipCounter); // }} "" // {{ 155 1 0 "91e21fef_e880_4899_b2c369e14bd04a56" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 156 1 0 "8bbb2ba3_d956_4eb7_80918f57fd791a3a" "ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2("8bbb2ba3_d956_4eb7_80918f57fd791a3a"); // Aspirate } // }} "" // {{ 157 1 0 "77205af1_2f8d_44ce_b329b3be4e22a436" "ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}" { variable arrRetValues[]; arrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C("77205af1_2f8d_44ce_b329b3be4e22a436"); // GetLastLiquidLevel str_ReturnValue = arrRetValues[2]; } // }} "" // {{ 158 1 0 "2d806c88_ea5e_4490_99223043114d6291" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 159 1 0 "3f8f88ed_9aa2_47a9_a2d3cfccd30c6fe8" "ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2("3f8f88ed_9aa2_47a9_a2d3cfccd30c6fe8"); // TipEject } // }} "" // {{ 160 1 0 "d650c0d0_1466_4e97_a81f8fe282792f57" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 161 1 0 "4452c092_ffe0_49cf_b7bcb9622ee886d8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChanNumber = 0; int_ChanNumber < int_GetLLDCount;) { int_ChanNumber = int_ChanNumber + 1; // }} "" // {{{ 162 1 0 "31ae3420_52f0_4da5_87076ff33acc4d5b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FindLiquidHeight(ML_STAR, str_ReturnValue, seq_LLCheck, int_ChanNumber, flt_LiquidLevel); // }} "" // {{{ 163 1 0 "188366bb_aacd_45a4_ba4bc0179920573a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_LLCheck); // }} "" // {{{ 164 1 0 "7a77ea7e_a755_40fb_9cf2733941fb87d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(seq_LLCheck); // }} "" // {{{ 165 1 0 "615bbe48_ffe0_40a0_8820b9805f0251f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(seq_LLCheck, 1); // }} "" // {{{ 166 1 0 "71739464_aadc_4e61_adc664c673f3a7bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetConnectedContainer(ML_STAR, str_LabID, bool_ConnectedContainer); // }} "" // {{ 167 1 0 "be37a44a_2252_4c83_8adc14ca8616d6de" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 168 1 0 "68430cc7_eb30_4b64_984e090296043724" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_VolumeMeasuredmL = DevComputeContainerVolume(ML_STAR, str_LabID, str_PosID, flt_LiquidLevel, 0); // }} "" // {{ 169 1 0 "d99e3291_fe0f_4a32_ac634c89d0a0d5d9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bool_ConvertTouL == 1) { // }} "" // {{ 170 1 0 "410b4be3_32e4_4e61_b91107597e0d72b8" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 171 1 0 "77ba5310_7219_4be9_94f46fd722277eb0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeMeasureduL = flt_VolumeMeasuredmL * 1000; // }} "" // {{ 172 1 0 "ee0ce757_2931_4be3_b76ede0132755dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_ConnectedContainer == 1) { // }} "" // {{ 173 1 0 "71dd8251_2c9f_4ae0_956940ed77c30fb9" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 174 1 0 "f2766e0b_c954_4299_a845b1aaf2b5ead2" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeMeasured = flt_VolumeMeasureduL * arr_PositionsPerReservoir.ElementAt( int_ReservoirIndex -1); // }} "" // {{ 175 1 0 "ee0ce757_2931_4be3_b76ede0132755dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 176 1 0 "2a44fb98_7411_40e6_83abab51802219c8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeMeasured = flt_VolumeMeasureduL; // }} "" // {{ 177 1 0 "ee0ce757_2931_4be3_b76ede0132755dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 178 1 0 "d99e3291_fe0f_4a32_ac634c89d0a0d5d9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 179 1 0 "340a9267_c2ab_4d7f_98099f081ac4d816" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_ConnectedContainer == 1) { // }} "" // {{ 180 1 0 "f22b1498_85ea_45b8_bfbb5d86fb7d3a20" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 181 1 0 "77fde561_f967_4884_bcf60f73a67d279e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeMeasured = flt_VolumeMeasuredmL * arr_PositionsPerReservoir.ElementAt( int_ReservoirIndex -1); // }} "" // {{ 182 1 0 "340a9267_c2ab_4d7f_98099f081ac4d816" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 183 1 0 "e1cea54a_5a9a_4e5f_ae3739e6e19f5e13" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeMeasured = flt_VolumeMeasuredmL; // }} "" // {{ 184 1 0 "340a9267_c2ab_4d7f_98099f081ac4d816" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 185 1 0 "d99e3291_fe0f_4a32_ac634c89d0a0d5d9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 186 1 0 "5957cf64_52a5_467d_abbc6b3c89f4f43e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_VolumeMeasured = MthRound(flt_VolumeMeasured, 1); // }} "" // {{ 187 1 0 "7fed99ab_6dff_4947_b482bbf0f21664b1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_VolumeMeasured < 0.0) { // }} "" // {{ 188 1 0 "2b219b64_efa3_4e5a_becab91a7c2f3034" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeMeasured = 0.0; // }} "" // {{ 189 1 0 "7fed99ab_6dff_4947_b482bbf0f21664b1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 190 1 0 "8faec59d_953e_465b_895d8df3002ff08f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_VolumesMeasured.AddAsLast(flt_VolumeMeasured); // }} "" // {{ 191 1 0 "ab276033_ba93_45c0_84b9966a86d0d1ef" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ReservoirIndex = int_ReservoirIndex + 1; // }} "" // {{ 192 1 0 "7442922c_eaf8_4f3c_90ba7acb8b2598ba" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bool_ConvertTouL == 1) { // }} "" Trace(""); Trace(" ","Volume Measured: ",flt_VolumeMeasured," uL"); Trace(""); // {{ 194 1 0 "7442922c_eaf8_4f3c_90ba7acb8b2598ba" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" Trace(""); Trace(" ","Volume Measured: ",flt_VolumeMeasured," mL"); Trace(""); // {{ 196 1 0 "7442922c_eaf8_4f3c_90ba7acb8b2598ba" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 197 1 0 "4452c092_ffe0_49cf_b7bcb9622ee886d8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 198 1 0 "13b0bdc6_d4bf_48d3_bb42e98d14762102" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" if ( (seq_LLCheck.GetCurrentPosition() > 0 && seq_LLCheck.GetMax() == 0 ) ) { MECC::EndlessSequenceLoopWarning(GetFileName()); } } seq_LLCheck.SetMax(seq_LLCheck.GetTotal()); } // }} "" // {{{ 199 1 0 "1ffcb9fb_babf_484e_a7f5794b40d60197" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Liquid Level Measured per Reservoir"), o_arr_VolumesMeasured); // }} "" // {{ 200 1 0 "582df751_25f9_4468_a8d007c2efd50436" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_FunctionSuccessful = 1; // }} "" // {{{ 201 1 0 "6c6188bc_c735_48c4_b3a8773b837fa036" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_FunctionSuccessful); // }} "" // {{{ 5 "MeasureLiquidLevel_Multi" "End" } // }} "" // {{{ 5 "_Get_CenterWell" "Begin" private function _Get_CenterWell( device & ML_STAR, sequence i_seq_Reservoir, variable & o_str_WellID ) void { // }} "" private variable flt_Sum_X; private variable flt_Sum_Y; private variable NotUsed; private variable flt_YCoord; private variable flt_XCoord; private variable str_TempSortingFile; private variable str_Well; private variable str_LogFolderPath; private variable int_PositionCount; private variable str_SQL_Sort; private variable flt_AvgX; private variable flt_AvgY; private variable int_Index; private variable int_TotalPositions; private file SortFile; private variable str_LabID; private variable bool_FileExists; // {{ 5 "_Get_CenterWell" "InitLocals" o_str_WellID = 0; // }} "" // {{ 368 1 0 "86985e17_0dec_490c_95da1a7d98feb63e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_WellID = 0; // }} "" // {{{ 369 1 0 "f94aa8f3_c244_4151_93945ac08fcdb832" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LogFolderPath = FilGetLogFilesPath(); // }} "" // {{{ 370 1 0 "81abacd7_ab8c_42b5_a16df8582e8fc3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TempSortingFile = StrConcat4(str_LogFolderPath, Translate("\\"), Translate("TEMP_SORTING"), Translate(".xls")); // }} "" // {{{ 371 1 0 "3ff83d7c_39ea_4a80_b13470c0d5c32f33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(str_TempSortingFile); // }} "" // {{ 372 1 0 "dfc71569_3e4f_4d9d_9cf0442b312538f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 1) { // }} "" // {{{ 373 1 0 "e04cc4bd_0cf5_449b_b6d3e3bfa753da66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(str_TempSortingFile); // }} "" // {{ 374 1 0 "dfc71569_3e4f_4d9d_9cf0442b312538f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 375 1 0 "a7334e46_b12e_4b02_990b8c47a025d539" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" SortFile.AddField("INDEX", int_Index, hslInteger); SortFile.AddField("WELL", str_Well, hslString, 255); SortFile.AddField("X", flt_XCoord, hslFloat); SortFile.AddField("Y", flt_YCoord, hslFloat); if( 0 == SortFile.Open(str_TempSortingFile + " " + "SORT", hslWrite) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_TempSortingFile, "HxMetEdCompCmd"); } // }} "" // {{ 376 1 0 "208eb405_25c9_44dc_89830e2bdbe98942" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 377 1 0 "7023128f_101f_473e_bb91b047cf6c48c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(i_seq_Reservoir); // }} "" // {{ 378 1 0 "ec63db7d_e193_48ee_b8f0524ba1f75bac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Sum_X = 0.0; // }} "" // {{ 379 1 0 "5827d13f_b45f_4cd9_8124f9fa4f37a9e2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Sum_Y = 0.0; // }} "" // {{ 380 1 0 "97dc397c_3b51_47ab_8fbdee340e19b6ef" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PositionCount = 0; // }} "" // {{ 381 1 0 "41fadccf_bc17_471c_8319f6e42c346e39" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_Index = 0; int_Index < int_TotalPositions;) { int_Index = int_Index + 1; // }} "" // {{ 382 1 0 "705be494_e1fc_4330_88c16efe8f490f5b" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_Reservoir.SetCurrentPosition(int_Index); // }} "" // {{{ 383 1 0 "3970550d_68fb_49aa_be97305a57f1369d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_Reservoir); // }} "" // {{{ 384 1 0 "395ffc04_b7f1_4a7d_bf9481aba53e3dac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Well = SeqGetPositionId(i_seq_Reservoir); // }} "" // {{{ 385 1 0 "0364b824_9fa5_4d0b_9ea7c5f4fb32264e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, str_LabID, str_Well, flt_XCoord, flt_YCoord, NotUsed, NotUsed); // }} "" // {{ 386 1 0 "1cbb36fc_07c5_4c4c_a63ebc32b3080339" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_PositionCount = int_PositionCount + 1; // }} "" // {{ 387 1 0 "389ac483_7409_421a_97328118b0213287" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Sum_X = flt_Sum_X + flt_XCoord; // }} "" // {{ 388 1 0 "c0b6ba31_e2ad_40ba_b1d24bcad4f7e665" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Sum_Y = flt_Sum_Y + flt_YCoord; // }} "" // {{ 389 1 0 "848054a0_25f2_4056_92e1264f68c409d4" "{B31F3537-5D80-11d4-A5EB-0050DA737D89}" if( 0 == SortFile.WriteRecord() ) { MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 390 1 0 "41fadccf_bc17_471c_8319f6e42c346e39" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 391 1 0 "a7a8df5b_57da_45ff_ae5e509c0ce41998" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != SortFile.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } SortFile.RemoveFields(); // }} "" // {{ 392 1 0 "c30eb598_33c1_4156_a89e8c9898532824" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_AvgX = flt_Sum_X / (int_PositionCount * 1.0); // }} "" // {{ 393 1 0 "64744148_d0b9_4b18_8b884a17ae705203" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_AvgY = flt_Sum_Y / (int_PositionCount * 1.0); // }} "" // {{{ 394 1 0 "12a52f83_da61_4f43_bad8d7c36b72cb03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Sort = StrConcat8(Translate("SELECT * FROM SORT WHERE X <= "), flt_AvgX, Translate(" AND Y >= "), flt_AvgY, Translate(" ORDER BY X DESC, Y ASC"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 395 1 0 "ca25db2c_d78f_48d2_9d6342ce0f45ee1a" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" SortFile.AddField("INDEX", int_Index, hslInteger); SortFile.AddField("WELL", str_Well, hslString, 255); SortFile.AddField("X", flt_XCoord, hslFloat); SortFile.AddField("Y", flt_YCoord, hslFloat); if( 0 == SortFile.Open(str_TempSortingFile + " " + "SORT", hslRead, str_SQL_Sort) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_TempSortingFile, "HxMetEdCompCmd"); } // }} "" // {{ 396 1 0 "228114da_8cd5_4fdf_baf3b5d8476c5ede" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == SortFile.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 397 1 0 "6b4d5476_104f_4119_b1366266d64080db" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != SortFile.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } SortFile.RemoveFields(); // }} "" // {{ 398 1 0 "1f45bbf3_320e_4387_b747ec1fc41c926d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_WellID = str_Well; // }} "" // {{{ 399 1 0 "de917bc9_11c8_4c76_bbdc50b170bf19b7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(str_TempSortingFile); // }} "" // {{{ 5 "_Get_CenterWell" "End" } // }} "" // {{{ 5 "FindLiquidHeight" "Begin" function FindLiquidHeight( device & ML_STAR, variable i_str_LiquidLevelReturn, sequence i_seq_Labware, variable i_int_Channel, variable & o_flt_LiquidHeight ) void { // }} "" private variable flt_LiquidLevelDeck; private variable flt_ZBottom; private variable NotUsed; private variable str_LabID; private variable bool_Simulation; // {{ 5 "FindLiquidHeight" "InitLocals" o_flt_LiquidHeight = 0; // }} "" // {{{ 1 1 0 "bc77b9e7_438f_4bb5_b880e2d97eeaf08d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_Simulation = Util::GetSimulationMode(); // }} "" // {{{ 2 1 0 "a0884662_2ca3_423d_9c5610edba00109e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_Labware); // }} "" // {{{ 3 1 0 "7d388b8a_baad_4f8f_a6286dc99437360b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_LiquidLevelDeck = StepReturn::GetLastLiquidLevel(i_int_Channel, i_str_LiquidLevelReturn); // }} "" // {{{ 4 1 0 "c2a2b828_e796_4692_80f764d97fde8c92" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePosition(ML_STAR, str_LabID, NotUsed, NotUsed, flt_ZBottom, NotUsed); // }} "" // {{ 5 1 0 "6bab14f1_c892_493b_9cbc3fe85bde529b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_Simulation == 1) { // }} "" // {{ 6 1 0 "62f925db_67f6_4087_94a47d33c50c6c1f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 7 1 0 "11227dc6_caf9_4699_98225d5f6673ff5f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidLevelDeck = flt_ZBottom + 5.0; // }} "" // {{ 8 1 0 "6bab14f1_c892_493b_9cbc3fe85bde529b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 9 1 0 "8d65de38_d3d0_40c1_b9853775ce9fa2f3" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_LiquidHeight = flt_LiquidLevelDeck - flt_ZBottom; // }} "" // {{ 10 1 0 "7501c0ac_82ed_412d_a7b0816bf4eaf769" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (o_flt_LiquidHeight < 0) { // }} "" // {{ 11 1 0 "87991044_405f_42e0_aac0874028fbd952" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_LiquidHeight = 0; // }} "" // {{ 12 1 0 "7501c0ac_82ed_412d_a7b0816bf4eaf769" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("******** Liquid Level Height for ",str_LabID," is ",o_flt_LiquidHeight); /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 5 "FindLiquidHeight" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=Bare_B$$valid=0$$time=2019-09-23 10:46$$checksum=17badcf7$$length=085$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/Plate Stack Verify.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 12/17/2020 3:41:53 PM #pragma once #ifndef HSL_RUNTIME namespace PLATE_STACK_VERIFY { function _InitLibrary() { } function _ExitLibrary() { } function Get_Arr_StackSequences( device & ML_STAR, sequence i_seq_AllStacks, sequence & o_arr_StackSequences[] ) void { } function Plate_Stack_Verfy_V2( device & ML_STAR, sequence & i_arr_seq_PlateStacks[], variable & o_arr_PlateCounts[] ) void { } function Plate_Stack_Verify( device & ML_STAR, sequence & i_arr_seq_PlateStacks[], variable & o_arr_PlateCounts[] ) void { } function _ConvertChannelToAlpha( variable & i_int_ChanNum, variable & o_str_ChanNum ) void { } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=Windows10$$valid=0$$time=2020-12-17 15:41$$checksum=9020ed07$$length=086$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/Plate Stack Verify.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "HSLDevLib.hsl" #include "HSLSeqLib.hsl" #include "HSLFilLib.hsl" #include "HSLExtensions\\File.hsl" #include "HSLStrLib.hsl" #include "HSLUtilLib2.hsl" #include "HSLUtilLib.hsl" #include "HSLLabwrAccess\\HSLLabwrAccess.hsl" #include "HSLExtensions\\Array.hsl" #include "HSLMthLib.hsl" #include "STAR Tools\\Resources\\SubMethods\\HelperLibrary.hs_" #include "STAR Tools\\Resources\\SubMethods\\FW_HelperLibrary.hs_" #include "STAR Tools\\Resources\\SubMethods\\STAR Channel Movement Tools.hs_" #include "STAR Tools\\Resources\\SubMethods\\VANTAGE Channel Movement Tools.hs_" #include "HSL_MethodHelper.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" #include "HSLPTLLib.hsl" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace PLATE_STACK_VERIFY { // }} "" variable str_SortFile; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function Get_Arr_StackSequences( device & ML_STAR, sequence i_seq_AllStacks, sequence & o_arr_StackSequences[] ) void ; function Plate_Stack_Verfy_V2( device & ML_STAR, sequence & i_arr_seq_PlateStacks[], variable & o_arr_PlateCounts[] ) void ; function Plate_Stack_Verify( device & ML_STAR, sequence & i_arr_seq_PlateStacks[], variable & o_arr_PlateCounts[] ) void ; function _ConvertChannelToAlpha( variable & i_int_ChanNum, variable & o_str_ChanNum ) void ; private function _Find_Stack_Heights( device & ML_STAR, variable & i_arr_StackLabIDs[] ) void ; private function _Find_Stack_Heights_V2( device & ML_STAR, variable & i_arr_StackLabIDs[], variable i_strChPattern, variable & i_arrXCoords[], variable & i_arrYCoords[], variable & i_arrZCoords[] ) void ; private function _RemoveSpots( device & ML_STAR, variable & i_arr_LabwareIDs[] ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" PTL::SetWashingStateDefault("RinseTime1", 5); PTL::SetWashingStateDefault("SoakTime1", 5); PTL::SetWashingStateDefault("FlowRate1", 11); PTL::SetWashingStateDefault("RinseTime2", 0); PTL::SetWashingStateDefault("SoakTime2", 0); PTL::SetWashingStateDefault("FlowRate2", 11); PTL::SetWashingStateDefault("DrainingTime", 10); PTL::SetWashingStateDefault("StartWashLiquid", 0); PTL::SetLoadingStateDefault("RecoveryOptionContinue", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionExclude", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionDefault", 0); PTL::SetLoadingStateDefault("KitLotCheckEnabled", hslFalse); HELPERLIBRARY::_InitLibrary(); FW_HELPERLIBRARY::_InitLibrary(); STAR_CHANNEL_MOVEMENT_TOOLS::_InitLibrary(); VANTAGE_CHANNEL_MOVEMENT_TOOLS::_InitLibrary(); // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" HELPERLIBRARY::_ExitLibrary(); FW_HELPERLIBRARY::_ExitLibrary(); STAR_CHANNEL_MOVEMENT_TOOLS::_ExitLibrary(); VANTAGE_CHANNEL_MOVEMENT_TOOLS::_ExitLibrary(); // }} "" } // {{{ 5 "Plate_Stack_Verify" "Begin" function Plate_Stack_Verify( device & ML_STAR, sequence & i_arr_seq_PlateStacks[], variable & o_arr_PlateCounts[] ) void { // }} "" private variable int_TotalStackNumber; private variable int_NumChannels; private variable str_LogFolderPath; private variable int_PlateCount; private variable flt_ZMin; private variable flt_ZMax; private variable int_MaxStack; private variable flt_XCenter; private variable str_Status; private variable flt_YCenter; private variable flt_ZStepSize; private variable int_Order; private variable str_PlateLabTop; private file file1; private variable NotUsed; private variable str_PlateLabBottom; private sequence seq_CurrentPlateStack; private variable arr_LabIDs[]; private variable flt_ZDifference; private variable flt_ChanRaster; private variable arr_YMin[]; private variable arr_YMax[]; private variable str_CenterSpot; private variable str_LabID; private variable str_CenterSpotName; private variable int_NumNotDone; private variable flt_CurrentX; private variable str_SQL_Count; private variable int_ChannelCount; private variable int_ChannelStart; private file FileQuery; private variable flt_YMin; private variable flt_YMax; private variable int_ChannelYGood; private variable bol_ChannelYMinGood; private variable bol_ChannelYMaxGood; private variable arr_ChannelsUsed[]; private variable int_ChIndex; private variable arr_ChannelY[]; private variable int_ChanIndex; private variable int_ChannelsUsed; private variable flt_PreviousY; private variable int_ChannelsSet; private variable flt_ChannelY; private variable bol_ChannelStatus; private sequence seq_PositionChannels; private variable str_SQL_Filter; private variable arr_CenterSpots[]; private variable arr_StackLabIDs[]; private variable int_XCount; private dialog dialogHandle1; private variable int_InBetweenPlates; private variable bool_FileExists; private variable flt_ZBottom; // {{ 5 "Plate_Stack_Verify" "InitLocals" o_arr_PlateCounts.SetSize( 0); // }} "" // {{ 183 1 0 "8ff6ec29_e680_4497_987307f4998cee03" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_PlateCounts.SetSize(0); // }} "" // {{ 184 1 0 "63a911cb_3a41_4f8d_95c1fa8fd5b76b3d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_CenterSpotName = Translate("CS_"); // }} "" // {{ 185 1 0 "7350b4b9_7a7a_4886_936a636cf6a3de87" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalStackNumber=i_arr_seq_PlateStacks.GetSize(); // }} "" // {{{ 186 1 0 "cc5161ef_1628_4042_b1988ff193013a9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_NumChannels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{{ 187 1 0 "a447e168_7cca_4f2f_a7a1e73a31008ccf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" int_NumChannels = HELPERLIBRARY::GetChannelLimits(ML_STAR, 0, arr_YMax, arr_YMin, flt_ChanRaster); // }} "" // {{ 188 1 0 "4202290a_1c52_42b5_a5fc940fa72656f8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ChannelStart = 1; // }} "" // {{ 189 1 0 "deab1659_c839_454f_8fe4ace95f722f6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 190 1 0 "6aad09a5_0aed_492b_b7aae0affdaaa3f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetCenterSpotLabware(str_CenterSpot); // }} "" // {{ 191 1 0 "deab1659_c839_454f_8fe4ace95f722f6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 192 1 0 "141cca64_bd75_4923_a1195e92e7c3bed5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 193 1 0 "95da6301_ffda_470e_a805eea13599581d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LogFolderPath = FilGetLogFilesPath(); // }} "" // {{{ 194 1 0 "a19e4a90_6f0f_4daf_b8d3ceb326cbfce9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SortFile = StrConcat4(str_LogFolderPath, Translate("\\"), Translate("Plate_Stack_Verify_Sort"), Translate(".xls")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 195 1 0 "5a402d07_086f_45b5_8826f8d90e1651a6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTempSortingFilePath(str_SortFile); // }} "" // {{{ 196 1 0 "5a510cd1_c005_4208_a2300890796d7ed9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(str_SortFile); // }} "" // {{ 197 1 0 "49f21997_2732_4087_9a0b43fd8e5035e5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 1) { // }} "" // {{{ 198 1 0 "cb50ecbe_10d2_4074_a117ca4f12e06345" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(str_SortFile); // }} "" // {{ 199 1 0 "49f21997_2732_4087_9a0b43fd8e5035e5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 200 1 0 "141cca64_bd75_4923_a1195e92e7c3bed5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 201 1 0 "d388232e_e41e_423d_a24d27b105a8a8fc" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" file1.AddField("ORDER", int_Order, hslInteger); file1.AddField("PLATE_LAB_TOP", str_PlateLabTop, hslString, 255); file1.AddField("PLATE_LAB_BOTTOM", str_PlateLabBottom, hslString, 255); file1.AddField("MAX_STACK", int_MaxStack, hslInteger); file1.AddField("Z_MIN", flt_ZMin, hslFloat); file1.AddField("Z_MAX", flt_ZMax, hslFloat); file1.AddField("Z_BOTTOM", flt_ZBottom, hslFloat); file1.AddField("Z_STEP_SIZE", flt_ZStepSize, hslFloat); file1.AddField("X_CENTER", flt_XCenter, hslFloat); file1.AddField("Y_CENTER", flt_YCenter, hslFloat); file1.AddField("PLATE_COUNT", int_PlateCount, hslInteger); file1.AddField("STATUS", str_Status, hslString, 255); if( 0 == file1.Open(str_SortFile + " " + "Stack_Info", hslWrite) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, "HxMetEdCompCmd"); } // }} "" // {{ 202 1 0 "757ed680_8eb5_4cac_855873bb2758c886" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Status = Translate("NOT_DONE"); // }} "" // {{ 203 1 0 "8d0caeb2_1223_43c2_a6f3ec0fd99e1615" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PlateCount = 0; // }} "" // {{ 204 1 0 "91e00967_9cdc_405d_987aa0c3591d583d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_Order = 0; int_Order < int_TotalStackNumber;) { int_Order = int_Order + 1; // }} "" // {{ 205 1 0 "498c6e35_34d8_48a5_9ed2ff4151eea194" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" seq_CurrentPlateStack=i_arr_seq_PlateStacks.GetAt(int_Order-1); // }} "" // {{{ 206 1 0 "0cb87551_7a3e_493c_a142182c8fdcb0cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqGetLabwareIds(seq_CurrentPlateStack, arr_LabIDs); // }} "" // {{ 207 1 0 "f49b776c_52b3_4d44_bed35ee2c73f96ac" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_MaxStack=arr_LabIDs.GetSize(); // }} "" // {{ 208 1 0 "5510acbc_1c31_41b6_8fc01a358f10953d" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_PlateLabBottom=arr_LabIDs.GetAt(int_MaxStack-1); // }} "" // {{ 209 1 0 "b19e8800_16cd_438e_a3236c699466b3c7" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_PlateLabTop=arr_LabIDs.GetAt(1-1); // }} "" // {{{ 210 1 0 "c457f5f9_4fd3_473e_a4f996a389e9dfe8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetRackHeight(ML_STAR, str_PlateLabBottom, flt_ZMin, NotUsed); // }} "" // {{{ 211 1 0 "b070c23f_d94f_4faf_93fe84e5e7378e50" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetRackHeight(ML_STAR, str_PlateLabTop, flt_ZMax, NotUsed); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 212 1 0 "04512283_e34d_4c7c_949d4826bf7cf73a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePosition(ML_STAR, str_PlateLabBottom, NotUsed, NotUsed, flt_ZMin, NotUsed); // }} "" // {{{ 213 1 0 "0e00b59b_d018_4bcf_9a78c3a0343746b7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePosition(ML_STAR, str_PlateLabTop, NotUsed, NotUsed, flt_ZMax, NotUsed); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 214 1 0 "e5e58d42_3edc_45af_b61062dd08fc4aac" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_ZMin > flt_ZMax) { // }} "" // {{ 215 1 0 "8f2e94a0_66d3_41ce_8f0134a8100eb360" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 216 1 0 "f0f3e2ab_b084_470f_b616806cfe377443" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_PlateLabBottom=arr_LabIDs.GetAt(1-1); // }} "" // {{ 217 1 0 "ea880097_9043_47ee_8b3432d0e33411e6" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_PlateLabTop=arr_LabIDs.GetAt(int_MaxStack-1); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 218 1 0 "cd12348e_7d74_42ad_9f58107d6180dc1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePosition(ML_STAR, str_PlateLabBottom, NotUsed, NotUsed, flt_ZMin, NotUsed); // }} "" // {{{ 219 1 0 "d79d1ffc_ab14_4c2c_bbdd0870df394281" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePosition(ML_STAR, str_PlateLabTop, NotUsed, NotUsed, flt_ZMax, NotUsed); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 220 1 0 "7f2b1bfe_bbfa_4863_ae179617abbbbb9e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetRackHeight(ML_STAR, str_PlateLabBottom, flt_ZMin, NotUsed); // }} "" // {{{ 221 1 0 "ba7aacfe_1d49_4800_b4931c8888bf9c15" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetRackHeight(ML_STAR, str_PlateLabTop, flt_ZMax, NotUsed); // }} "" // {{ 222 1 0 "e5e58d42_3edc_45af_b61062dd08fc4aac" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 223 1 0 "fc3b4652_4906_4a6b_9dbfca53d3951747" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ZDifference = flt_ZMax - flt_ZMin; // }} "" // {{ 224 1 0 "cdf57ac9_6fbc_4547_926bf9ece59b0ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_ZDifference < 0) { // }} "" // {{ 225 1 0 "eef444c5_182b_4a08_958bfb243facc605" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ZDifference = flt_ZDifference * -1; // }} "" // {{ 226 1 0 "cdf57ac9_6fbc_4547_926bf9ece59b0ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 227 1 0 "3cfaaf94_55f0_4617_a5245ad1859305ab" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_InBetweenPlates = int_MaxStack - 1; // }} "" // {{ 228 1 0 "a34ce995_7191_423c_998f624521af9309" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_InBetweenPlates == 0) { // }} "" // {{ 229 1 0 "73829885_84ed_4dd5_877a8d767cbc2c1e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 230 1 0 "9a3f56b8_471a_4806_bb85930f8d7c07e1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_InBetweenPlates = 1; // }} "" // {{ 231 1 0 "a34ce995_7191_423c_998f624521af9309" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 232 1 0 "1bf0e690_1662_4ba2_935c1328fa046c25" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ZStepSize = flt_ZDifference / (int_InBetweenPlates * 1.0); // }} "" // {{{ 233 1 0 "b20a1112_9add_4f28_8a2a0419537dacb5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetLabwareCenter2(ML_STAR, str_PlateLabTop, flt_XCenter, flt_YCenter); // }} "" // {{{ 234 1 0 "3fc05c8c_91d2_44ea_8a0822640554ddbd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetLabwareOrigin(ML_STAR, str_PlateLabBottom, NotUsed, NotUsed, flt_ZBottom); // }} "" // {{ 235 1 0 "13d3da00_eb4f_4f22_a2c80d5efc5003eb" "{B31F3537-5D80-11d4-A5EB-0050DA737D89}" if( 0 == file1.WriteRecord() ) { MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 236 1 0 "91e00967_9cdc_405d_987aa0c3591d583d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 237 1 0 "4cae418b_590f_4635_a9b35fee956a063e" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != file1.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } file1.RemoveFields(); // }} "" // {{ 238 1 0 "0a227021_8bf7_48ef_badbb329e9585806" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (1 == 1) { // }} "" // {{{ 239 1 0 "57f165f0_2872_40d6_89379d2eca6c1c17" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Count = StrConcat2(Translate("SELECT COUNT(*) AS N FROM [Stack_Info$] WHERE STATUS = 'NOT_DONE'"), Translate("")); // }} "" // {{ 240 1 0 "85f11dfd_69db_49db_ae3558170e5dbdb4" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" FileQuery.AddField("N", int_NumNotDone, hslInteger); if( 0 == FileQuery.Open(str_SortFile + " " + "Stack_Info$", hslRead, str_SQL_Count) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, "HxMetEdCompCmd"); } // }} "" // {{ 241 1 0 "0b95d492_3a11_4612_82953580cba10f4e" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == FileQuery.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 242 1 0 "caf79d22_dc0b_46c9_b0a02f65ccbfc635" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != FileQuery.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } FileQuery.RemoveFields(); // }} "" // {{ 243 1 0 "9dfe6975_54c7_4584_85d6d33c3bcbc1a6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_NumNotDone == 0) { // }} "" // {{ 244 1 0 "62b0c43c_2875_40a5_aee9e484b0f32507" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 245 1 0 "9dfe6975_54c7_4584_85d6d33c3bcbc1a6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 246 1 0 "04f5dc0b_9510_497c_beaef240d79da802" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 247 1 0 "00300080_141e_40ab_953c812db5e336ea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Count = StrConcat2(Translate("SELECT X_CENTER, COUNT(*) AS N FROM [Stack_Info$] WHERE STATUS = 'NOT_DONE' GROUP BY X_CENTER"), Translate(" ORDER BY X_CENTER ASC")); // }} "" // {{ 248 1 0 "29a5ea11_d338_4250_bc63bbb3b4a44db7" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" FileQuery.AddField("X_CENTER", flt_XCenter, hslFloat); FileQuery.AddField("N", int_XCount, hslInteger); if( 0 == FileQuery.Open(str_SortFile + " " + "Stack_Info$", hslRead, str_SQL_Count) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, "HxMetEdCompCmd"); } // }} "" // {{ 249 1 0 "a1fe3687_a393_4b97_8a9f3e9fde469c5b" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == FileQuery.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 250 1 0 "ed7c5624_126a_4ab5_b335cb6a72b3859f" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != FileQuery.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } FileQuery.RemoveFields(); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace(" X Value: ", flt_XCenter," Count: ",int_XCount); // {{{ 252 1 0 "295d78eb_6677_4c5c_bb4a9697cd5ac3ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Filter = StrConcat2(Translate("SELECT * FROM Stack_Info WHERE STATUS = 'NOT_DONE'"), Translate(" ORDER BY X_CENTER ASC, Y_CENTER DESC")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 253 1 0 "93938fa0_2e4a_4755_ad2e3b70bdc92899" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Filter = StrConcat4(Translate("SELECT * FROM [Stack_Info$] WHERE STATUS = 'NOT_DONE' AND X_CENTER = "), flt_XCenter, Translate(" ORDER BY Y_CENTER DESC"), Translate("")); // }} "" // {{ 254 1 0 "986d06d1_512c_4560_a4549c864b1c4ab3" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" FileQuery.AddField("ORDER", int_Order, hslInteger); FileQuery.AddField("PLATE_LAB_TOP", str_PlateLabTop, hslString, 255); FileQuery.AddField("PLATE_LAB_BOTTOM", str_PlateLabBottom, hslString, 255); FileQuery.AddField("MAX_STACK", int_MaxStack, hslInteger); FileQuery.AddField("Z_MIN", flt_ZMin, hslFloat); FileQuery.AddField("Z_MAX", flt_ZMax, hslFloat); FileQuery.AddField("Z_BOTTOM", flt_ZBottom, hslFloat); FileQuery.AddField("Z_STEP_SIZE", flt_ZStepSize, hslFloat); FileQuery.AddField("X_CENTER", flt_XCenter, hslFloat); FileQuery.AddField("Y_CENTER", flt_YCenter, hslFloat); FileQuery.AddField("PLATE_COUNT", int_PlateCount, hslInteger); FileQuery.AddField("STATUS", str_Status, hslString, 255); if( 0 == FileQuery.Open(str_SortFile + " " + "Stack_Info$", hslRead, str_SQL_Filter) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, "HxMetEdCompCmd"); } // }} "" // {{ 255 1 0 "909da5fa_b961_4270_858d36dc9543a104" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 256 1 0 "34c1c0b8_c461_42e6_9602d0731ba18be1" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChannelsUsed.SetSize(int_NumChannels); // }} "" // {{ 257 1 0 "6ed42822_858e_4ed3_a58ad45dcab8e419" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChannelY.SetSize(int_NumChannels); // }} "" // {{ 258 1 0 "b40c3d06_8f36_48c8_bc7205d7e83add6f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_StackLabIDs.SetSize(int_NumChannels); // }} "" // {{ 259 1 0 "05209953_93c3_4237_83c170cc0590a879" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_NumChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 260 1 0 "59c2db91_2c11_489b_ad09733be935e1e6" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChannelsUsed.SetAt(int_ChIndex-1, 0); // }} "" // {{ 261 1 0 "b8980c99_97c2_4cab_a3a215416852fec3" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChannelY.SetAt(int_ChIndex-1, 0.0); // }} "" // {{ 262 1 0 "92b94b92_1ade_4e43_a813d844ddacf2c7" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_StackLabIDs.SetAt(int_ChIndex-1, Translate("")); // }} "" // {{ 263 1 0 "05209953_93c3_4237_83c170cc0590a879" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 264 1 0 "d54c863f_5dd2_431b_b9f27d6988daca9e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ChannelCount = int_NumChannels - int_XCount; // }} "" // {{ 265 1 0 "6a1abb09_8551_4c47_9dac3a9540281739" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_XCount > int_NumChannels) { // }} "" // {{ 266 1 0 "47061e7b_f745_4d48_9cbd1d21016087da" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ChannelCount = 0; // }} "" // {{ 267 1 0 "6a1abb09_8551_4c47_9dac3a9540281739" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 268 1 0 "892b1315_edf5_47ef_8779f65c99def11f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentX = 0.0; // }} "" // {{ 269 1 0 "afa0b5fa_d6ef_4ed8_b1ff3318f7e3db12" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ChannelsUsed = 0; // }} "" // {{ 270 1 0 "ca55bfc8_4f76_4875_9d632671a068c4b6" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while ( (FileQuery.Eof() == 0) ) { // }} "" // {{ 271 1 0 "76897ba2_fc60_4496_a82de874f516fe01" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == FileQuery.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace(" Plate Lab ID: ",str_PlateLabTop); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 273 1 0 "1bb72d5f_f2f8_4de6_a66776c79533f561" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentX == 0.0) { // }} "" // {{ 274 1 0 "89c7a39e_4a27_45e8_bdf5d1b1ea877660" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentX = flt_XCenter; // }} "" // {{ 275 1 0 "1bb72d5f_f2f8_4de6_a66776c79533f561" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 276 1 0 "6a23a21e_bad7_4581_be0ba2c0e40a71f4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_XCenter != flt_CurrentX) { // }} "" // {{ 277 1 0 "55ab7813_c0bb_49d3_9be4b370bbd0daac" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 278 1 0 "6a23a21e_bad7_4581_be0ba2c0e40a71f4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 279 1 0 "5d08957f_78ad_4f97_8f6cd35e6771ed23" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 280 1 0 "78ada13d_f46e_4105_92ab9e9df2f282c4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (1 == 1) { // }} "" // {{ 281 1 0 "7197a749_4c91_42cc_b17631d0799d3119" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ChannelCount = int_ChannelCount + 1; // }} "" // {{ 282 1 0 "cc8b1e32_4be1_481b_9c20e75cbf1e1779" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelCount > int_NumChannels) { // }} "" // {{ 283 1 0 "1f3ed85b_9054_48a5_b6b0e8d5dba4f4fc" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 284 1 0 "cc8b1e32_4be1_481b_9c20e75cbf1e1779" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 285 1 0 "3c86b06d_8563_4db2_a4c4cb143cab1c60" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_YMax=arr_YMax.GetAt(int_ChannelCount-1); // }} "" // {{ 286 1 0 "bb2dcc0c_231a_47dc_97b2ea54a35e0a39" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_YMin=arr_YMin.GetAt(int_ChannelCount-1); // }} "" // {{ 287 1 0 "66e44a70_f6ad_44a9_9135943ee810cb52" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bol_ChannelYMaxGood = 0; // }} "" // {{ 288 1 0 "d8ef35f2_231f_4c7b_8a2de6924d4bb62e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bol_ChannelYMinGood = 0; // }} "" // {{ 289 1 0 "8d19c561_5b26_49c8_8cfde3a737dfc917" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_YCenter <= flt_YMax) { // }} "" // {{ 290 1 0 "eabbbbe7_109f_4cbc_936c7d7c5cb4f0e9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bol_ChannelYMaxGood = 1; // }} "" // {{ 291 1 0 "8d19c561_5b26_49c8_8cfde3a737dfc917" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 292 1 0 "4674ec3b_3cd1_4c94_b264fa8f8368afa7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_YCenter >= flt_YMin) { // }} "" // {{ 293 1 0 "c19fb244_e638_4ea0_8b89bc61dbf05422" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bol_ChannelYMinGood = 1; // }} "" // {{ 294 1 0 "4674ec3b_3cd1_4c94_b264fa8f8368afa7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 295 1 0 "08d34485_7a9d_4044_a5df43f31e0ed0ef" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ChannelYGood = bol_ChannelYMaxGood + bol_ChannelYMinGood; // }} "" // {{ 296 1 0 "c1ca7615_2e1c_4510_89fdc85202dd1001" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelYGood == 2) { // }} "" // {{ 297 1 0 "f130658c_18a5_49f2_9d0e30752b826a97" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_StackLabIDs.SetAt(int_ChannelCount-1, str_PlateLabTop); // }} "" // {{ 298 1 0 "fda78fc7_7684_4657_9172910bda611491" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChannelY.SetAt(int_ChannelCount-1, flt_YCenter); // }} "" // {{ 299 1 0 "66ccde20_b10f_43c2_97c89f570941ba3e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChannelsUsed.SetAt(int_ChannelCount-1, 1); // }} "" // {{ 300 1 0 "cf168010_c287_4743_900cddc2bcb14b03" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ChannelsUsed = int_ChannelsUsed + 1; // }} "" // {{ 301 1 0 "1edadea7_4e15_47e2_8b472f7eb9ac5c76" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 302 1 0 "c1ca7615_2e1c_4510_89fdc85202dd1001" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 303 1 0 "78ada13d_f46e_4105_92ab9e9df2f282c4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 304 1 0 "5b6e446d_5e19_4fd5_b4c2f12ee8456a7b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelCount > int_NumChannels) { // }} "" // {{ 305 1 0 "9546a41c_1caa_4cd3_87bfea291b31420a" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 306 1 0 "5b6e446d_5e19_4fd5_b4c2f12ee8456a7b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 307 1 0 "ca55bfc8_4f76_4875_9d632671a068c4b6" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 308 1 0 "2623705d_50d7_4600_8f4ba9368da8636c" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != FileQuery.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } FileQuery.RemoveFields(); // }} "" // {{{ 309 1 0 "6de64791_0195_451c_96ee87e621d4af89" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_PositionChannels); // }} "" // {{ 310 1 0 "77732126_6f6e_4997_881b2b765c813ab1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ChannelsSet = 0; // }} "" // {{ 311 1 0 "15a95721_6c13_49f8_a9a1f73a6db16239" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_PreviousY = 999999.9; // }} "" // {{ 312 1 0 "b5c12cff_39e3_41ae_b03912685f176ef6" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 313 1 0 "b007fd2a_2d20_4407_a6fd69c0bdf5b2ca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_2(Translate("Channel Use Channel Y"), arr_ChannelsUsed, arr_ChannelY); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 314 1 0 "a949b61d_eb55_4eed_875e8e82b08ce98a" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_CenterSpots.SetSize(0); // }} "" // {{ 315 1 0 "afb19545_bb4d_41b1_a38d4555ffe502dc" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChanIndex = 0; int_ChanIndex < int_NumChannels;) { int_ChanIndex = int_ChanIndex + 1; // }} "" // {{ 316 1 0 "ab717401_a0d9_46ea_92a0f96a2a973ed8" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" bol_ChannelStatus=arr_ChannelsUsed.GetAt(int_ChanIndex-1); // }} "" // {{ 317 1 0 "b84ef76a_482f_45a7_af858d78e474d4a7" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ChannelY=arr_ChannelY.GetAt(int_ChanIndex-1); // }} "" // {{ 318 1 0 "0839d713_7ac5_447b_9dd9de8b5c2c8491" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ChannelStatus == 0) { // }} "" // {{ 319 1 0 "19dc8501_58a1_4c1c_bf4f605b74e9cb0d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelsSet == 0) { // }} "" // {{ 320 1 0 "ac9ec7c4_36dc_4790_816e38166b153478" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ChannelY=arr_YMax.GetAt(int_ChanIndex-1); // }} "" // {{ 321 1 0 "19dc8501_58a1_4c1c_bf4f605b74e9cb0d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 322 1 0 "99e7a062_6f5a_4120_bcb775b1cc53e6d7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelsSet == int_ChannelsUsed) { // }} "" // {{ 323 1 0 "7f170733_3f01_4b69_b47e74e02a186697" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ChannelY=arr_YMin.GetAt(int_ChanIndex-1); // }} "" // {{ 324 1 0 "99e7a062_6f5a_4120_bcb775b1cc53e6d7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 325 1 0 "0839d713_7ac5_447b_9dd9de8b5c2c8491" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 326 1 0 "8ba5fc4d_154c_4df7_bff9f6240b35f611" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ChannelsSet = int_ChannelsSet + 1; // }} "" // {{ 327 1 0 "0839d713_7ac5_447b_9dd9de8b5c2c8491" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 328 1 0 "221c0b72_20f6_434b_9aba5009f723c7af" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = StrConcat2(str_CenterSpotName, int_ChanIndex); // }} "" // {{{ 329 1 0 "b85e27bb_046d_4fe9_b252b94942125af1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevAddLabware(ML_STAR, str_LabID, str_CenterSpot, flt_CurrentX, flt_ChannelY, 300.0, 0.0); // }} "" // {{{ 330 1 0 "71d17c5f_15a0_4b16_b81691424b9f07ba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(seq_PositionChannels, str_LabID, Translate("1")); // }} "" // {{ 331 1 0 "664e7633_d6d8_4998_864a3d55f565f6b7" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_CenterSpots.AddAsLast(str_LabID); // }} "" // {{ 332 1 0 "afb19545_bb4d_41b1_a38d4555ffe502dc" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 333 1 0 "417125a8_5bec_47ba_9a29fd56e9ecdbe9" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_PositionChannels.SetCurrentPosition(1); // }} "" // {{ 334 1 0 "be2b8669_54e4_42d5_909e5abe8376f37d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 335 1 0 "e582746b_0588_435d_8fb4772a8383661f" "ML_STAR:{81DA4252-3BA9-11d4-AE21-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._81DA4252_3BA9_11d4_AE21_0004ACB1DCB2("e582746b_0588_435d_8fb4772a8383661f"); // MoveToPosition } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 336 1 0 "f8207eb0_5173_4dff_ab0c281643ed632b" "{21E07B31-8D2E-11d4-A3B8-002035848439}" dialogHandle1.SetOutput(Translate("")); dialogHandle1.ShowOutput("", hslOKOnly | hslInformation | hslDefButton1, hslInfinite); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 337 1 0 "f5350b51_a820_41ee_afd0b2fe7521f552" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 338 1 0 "522e080e_8bc3_4d5f_a23be5abfd72f2db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveSpots(ML_STAR, arr_CenterSpots); // }} "" // {{ 339 1 0 "2f4722e1_55f5_4586_8d6ec5281975052c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 340 1 0 "4d5c8588_628f_43f6_a919092861dce74f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Stack LabIDs"), arr_StackLabIDs); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 341 1 0 "9a7c5598_f863_4769_bffd2945a42d6d54" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _Find_Stack_Heights(ML_STAR, arr_StackLabIDs); // }} "" // {{ 342 1 0 "0a227021_8bf7_48ef_badbb329e9585806" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 343 1 0 "1ae9d73f_4125_40be_b3d21d12bc91607a" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" file1.AddField("ORDER", int_Order, hslInteger); file1.AddField("PLATE_LAB_TOP", str_PlateLabTop, hslString, 255); file1.AddField("PLATE_LAB_BOTTOM", str_PlateLabBottom, hslString, 255); file1.AddField("MAX_STACK", int_MaxStack, hslInteger); file1.AddField("Z_MIN", flt_ZMin, hslFloat); file1.AddField("Z_MAX", flt_ZMax, hslFloat); file1.AddField("Z_BOTTOM", flt_ZBottom, hslFloat); file1.AddField("Z_STEP_SIZE", flt_ZStepSize, hslFloat); file1.AddField("X_CENTER", flt_XCenter, hslFloat); file1.AddField("Y_CENTER", flt_YCenter, hslFloat); file1.AddField("PLATE_COUNT", int_PlateCount, hslInteger); file1.AddField("STATUS", str_Status, hslString, 255); if( 0 == file1.Open(str_SortFile + " " + "Stack_Info$", hslRead) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, "HxMetEdCompCmd"); } // }} "" // {{ 344 1 0 "d0793516_bcda_42e0_82a0c50d25eb5d54" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while ( (file1.Eof() == 0) ) { // }} "" // {{ 345 1 0 "756cc8be_d6a0_4eeb_8d4807cc5e057112" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == file1.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 346 1 0 "ccbfa5e5_a031_4233_b3628c7021359df6" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_PlateCounts.AddAsLast(int_PlateCount); // }} "" // {{ 347 1 0 "d0793516_bcda_42e0_82a0c50d25eb5d54" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 348 1 0 "e7807da7_5f3f_408c_b7e2f34c7bf1558c" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != file1.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } file1.RemoveFields(); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 349 1 0 "fc03a88c_fc83_4b8c_9d65a13845f3e081" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(str_SortFile); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 5 "Plate_Stack_Verify" "End" } // }} "" // {{{ 5 "_RemoveSpots" "Begin" private function _RemoveSpots( device & ML_STAR, variable & i_arr_LabwareIDs[] ) void { // }} "" private variable str_LabID; private variable int_NumLabware; private variable int_Index; // {{ 5 "_RemoveSpots" "InitLocals" // }} "" // {{ 551 1 0 "ca1cefa8_2d3b_434e_a991d8fc8de96ffd" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_NumLabware=i_arr_LabwareIDs.GetSize(); // }} "" // {{ 552 1 0 "04cd6343_ef7c_4447_90f6d0022bbff483" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_Index = 0; int_Index < int_NumLabware;) { int_Index = int_Index + 1; // }} "" // {{ 553 1 0 "308b5b85_be19_4bd8_9b816a3f458f5e85" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_LabID=i_arr_LabwareIDs.GetAt(int_Index-1); // }} "" // {{{ 554 1 0 "ea657e00_a8bf_4d48_be9a33465481f252" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevRemoveLabware(ML_STAR, str_LabID); // }} "" // {{ 555 1 0 "04cd6343_ef7c_4447_90f6d0022bbff483" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 556 1 0 "fec0391e_495b_4ba7_b1750ef538f22990" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" i_arr_LabwareIDs.SetSize(0); // }} "" // {{{ 5 "_RemoveSpots" "End" } // }} "" // {{{ 5 "_Find_Stack_Heights" "Begin" private function _Find_Stack_Heights( device & ML_STAR, variable & i_arr_StackLabIDs[] ) void { // }} "" private variable intResolution; private variable int_NumChannels; private variable str_FirmwareCMND; private variable strStackHeight; private variable intStackHeight; private variable int_ChIndex; private variable str_CurrentLabID; private variable int_PlateCount; private variable flt_ZMin; private variable flt_ZMax; private variable int_MaxStack; private variable flt_XCenter; private variable str_SQL_Filter; private variable str_Status; private variable flt_YCenter; private variable flt_ZStepSize; private variable int_Order; private variable str_PlateLabTop; private file file1; private variable bol_SimulationMode; private variable str_SQL_Update; private file UpdateFile; private variable int_LoopCounter; private variable int_SeekHeight; private variable flt_SeekHeight; private variable str_FirmwareParam; private variable int_ChannelNum; private variable str_ChIndex; private variable flt_Z_Bottom; private variable str_PlateLabBottom; private variable int_PlateIndex; private variable flt_CurrentPlateHeight; private variable flt_NoPlateFoundRange; private variable flt_HalfStepHeight; // {{ 5 "_Find_Stack_Heights" "InitLocals" // }} "" // {{{ 383 1 0 "3b0c340a_18bf_49c8_b4b663afff757e06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bol_SimulationMode = Util::GetSimulationMode(); // }} "" // {{ 384 1 0 "99aa4ed2_3624_469f_b6a4b90f06e656ba" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 385 1 0 "27dd6427_06a2_4548_a9fd5193fbd5cf47" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" intResolution = 0.01072765; // }} "" // {{ 386 1 0 "3367461b_4365_40e4_997c1e8728546915" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 387 1 0 "0973d509_3920_405b_b295a3ff5f45e9b6" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_NumChannels=i_arr_StackLabIDs.GetSize(); // }} "" // {{ 388 1 0 "018cdaa1_0eca_484f_bbe2c7608463e7be" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_NumChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 389 1 0 "5416a313_4fc9_4325_95c1312a080cb852" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_CurrentLabID=i_arr_StackLabIDs.GetAt(int_ChIndex-1); // }} "" // {{ 390 1 0 "d5658013_1758_4898_b5495e4d68426f5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_CurrentLabID != "") { // }} "" // {{ 391 1 0 "66466a0f_f553_41b2_8f6325fb454b3acb" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 392 1 0 "e9bf3cb7_7b2b_4ea8_8f4a5f1912eec419" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Filter = StrConcat4(Translate("SELECT * FROM [Stack_Info$] WHERE PLATE_LAB_TOP = '"), str_CurrentLabID, Translate("'"), Translate("")); // }} "" // {{ 393 1 0 "c1d15405_2506_4311_8f305516b8106e95" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" file1.AddField("ORDER", int_Order, hslInteger); file1.AddField("PLATE_LAB_TOP", str_PlateLabTop, hslString, 255); file1.AddField("PLATE_LAB_BOTTOM", str_PlateLabBottom, hslString, 255); file1.AddField("MAX_STACK", int_MaxStack, hslInteger); file1.AddField("Z_MIN", flt_ZMin, hslFloat); file1.AddField("Z_MAX", flt_ZMax, hslFloat); file1.AddField("Z_BOTTOM", flt_Z_Bottom, hslFloat); file1.AddField("Z_STEP_SIZE", flt_ZStepSize, hslFloat); file1.AddField("X_CENTER", flt_XCenter, hslFloat); file1.AddField("Y_CENTER", flt_YCenter, hslFloat); file1.AddField("PLATE_COUNT", int_PlateCount, hslInteger); file1.AddField("STATUS", str_Status, hslString, 255); if( 0 == file1.Open(str_SortFile + " " + "Stack_Info$", hslRead, str_SQL_Filter) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, "HxMetEdCompCmd"); } // }} "" // {{ 394 1 0 "39503fc1_142f_4b36_835a9e9784aa0a0a" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == file1.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 395 1 0 "e07b6641_56de_4a31_8f7c5b409107728f" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != file1.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } file1.RemoveFields(); // }} "" Trace("Z Min: ",flt_ZMin); // {{ 397 1 0 "d46b8f9f_7546_4083_a117416e619159d5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 398 1 0 "437b99e4_d331_4352_9e82d3eb3724a128" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 399 1 0 "a64fba7d_c7a7_420f_ade03a74270a5d9c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ChannelNum = int_ChIndex; // }} "" // {{{ 400 1 0 "d35dc7b2_aa73_467f_af5960eb550f75ec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertChannelToAlpha(int_ChIndex, str_ChIndex); // }} "" // {{{ 401 1 0 "18ff78de_f624_4153_b6ec86b6b5cc3cda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("P"), str_ChIndex, Translate("ZG"), Translate("")); // }} "" // {{ 402 1 0 "c21e8716_8486_410e_8eda947b937b5336" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_SimulationMode == 0) { // }} "" // {{ 403 1 0 "9c311818_c6a0_41f0_a9989c3940ab29a8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_SeekHeight = flt_Z_Bottom - 0.0; // }} "" // {{ 404 1 0 "c21e8716_8486_410e_8eda947b937b5336" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 405 1 0 "789c27af_5fa0_41b8_8b3341a3a50bc3cd" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_SeekHeight = flt_ZMax - 0.0; // }} "" // {{ 406 1 0 "c21e8716_8486_410e_8eda947b937b5336" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 407 1 0 "8c091d29_ad28_4ec8_a7e0af6d783f9c9a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_SeekHeight = flt_SeekHeight / (intResolution * 1.0); // }} "" // {{{ 408 1 0 "f9cc74d5_d600_4b27_829dad873a13dd22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_SeekHeight = MthCeiling(flt_SeekHeight); // }} "" // {{ 409 1 0 "575427f8_e5f4_4342_a8d68230262e6d30" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_SeekHeight < 12584) { // }} "" // {{ 410 1 0 "511a0a85_31b9_4f05_8e7b2d8e9c63daec" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_SeekHeight = 12584; // }} "" // {{ 411 1 0 "575427f8_e5f4_4342_a8d68230262e6d30" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 412 1 0 "29b0174b_c94e_4163_a145b95084364d77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareParam = StrConcat4(Translate("za"), int_SeekHeight, Translate("zr010"), Translate("zw1")); // }} "" // {{{ 413 1 0 "53403b01_75f8_4960_82bb4ba421f0e0be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareParam = StrConcat2(str_FirmwareParam, Translate("zv04500")); // }} "" // {{ 414 1 0 "9d655ce6_83fb_4c96_841c4522c8ecb5ef" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("9d655ce6_83fb_4c96_841c4522c8ecb5ef"); // FirmwareCommand } // }} "" // {{{ 415 1 0 "b026c62e_a19f_47d2_b1c0ee4376394525" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("P"), str_ChIndex, Translate("RZ"), Translate("")); // }} "" // {{ 416 1 0 "e948cca2_fba1_4a06_ab3df9c6e40669ac" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("e948cca2_fba1_4a06_ab3df9c6e40669ac"); // FirmwareCommand strStackHeight = arrRetValues[3]; } // }} "" // {{ 417 1 0 "ffb9fd26_9f40_48ab_9ef0d3159fd2eff8" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 418 1 0 "5b815655_8135_4f3d_ae29020dcb28023a" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("5b815655_8135_4f3d_ae29020dcb28023a"); // FirmwareCommand } // }} "" // {{ 419 1 0 "e7c6f128_b162_4c20_886fe6075dc94277" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 420 1 0 "2a30e115_8926_4b25_93a0158f7b1a544a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("P"), str_ChIndex, Translate("ZD"), Translate("")); // }} "" // {{ 421 1 0 "c57d68ef_8fa4_476c_b001ff74e6e5e1e3" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("c57d68ef_8fa4_476c_b001ff74e6e5e1e3"); // FirmwareCommand } // }} "" // {{ 422 1 0 "d46b8f9f_7546_4083_a117416e619159d5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 423 1 0 "d22d2374_77f6_4f2d_b213a1bc571eb584" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_SimulationMode == 0) { // }} "" // {{ 424 1 0 "7aa6930c_b54a_454a_b1097aab372cfe10" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 425 1 0 "2e37ae95_fb27_410d_b0e2d72685c1c11f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strStackHeight = StrMid(strStackHeight, 3, 5); // }} "" // {{ 426 1 0 "95ba7a36_52ec_4bf5_bf487844e3521d4c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 427 1 0 "2ba5f3cc_5fe0_47a5_bee95f061b423b2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" intStackHeight = StrIVal(strStackHeight); // }} "" // {{ 428 1 0 "05c9ba38_d2c5_4444_823b9144da31576b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 429 1 0 "ac5bac29_2742_4f99_91ff90e14625b123" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" intStackHeight = intStackHeight * intResolution; // }} "" // {{ 430 1 0 "d22d2374_77f6_4f2d_b213a1bc571eb584" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 431 1 0 "bcbd8b7d_f75f_427e_ac60611ed2aa3b7b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" intStackHeight = flt_ZMax; // }} "" // {{ 432 1 0 "d22d2374_77f6_4f2d_b213a1bc571eb584" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace("Stack Height Found: ",intStackHeight); // {{ 434 1 0 "f10e4a63_53d7_480a_957fa9caafad1030" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PlateCount = 0; // }} "" // {{ 435 1 0 "22534d26_99b9_46d9_9a23eaee8bc1c7bb" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_LoopCounter = 0; int_LoopCounter < 1;) { int_LoopCounter = int_LoopCounter + 1; // }} "" // {{ 436 1 0 "81f6ca6c_562e_4329_86d96abdebe44dfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (intStackHeight < 135.0) { // }} "" // {{ 437 1 0 "b3546d5a_e94d_46dc_a83b0e361a50467d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 438 1 0 "710937f0_66dc_44b2_9f3e4c78739bf193" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 439 1 0 "81f6ca6c_562e_4329_86d96abdebe44dfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 440 1 0 "d90dd117_6d36_4765_85a4690007650729" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_HalfStepHeight = flt_ZStepSize / (2 * 1.0); // }} "" // {{ 441 1 0 "ffebe998_f8b0_493e_998a2f95f0fcda12" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_NoPlateFoundRange = flt_Z_Bottom + flt_HalfStepHeight; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 442 1 0 "996cde49_92d4_41f2_956e57a6d0a33f6e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (intStackHeight == flt_Z_Bottom) { // }} "" // {{ 443 1 0 "33304f56_133a_4fd0_8e63daa6bc5844f5" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 444 1 0 "55c2fbbf_ebfa_477d_acade600ebdc66ed" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 445 1 0 "996cde49_92d4_41f2_956e57a6d0a33f6e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 446 1 0 "2e67a213_e17a_43a2_88c4b53e23ef5d1b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (intStackHeight <= flt_NoPlateFoundRange) { // }} "" // {{ 447 1 0 "a6cfbeea_4762_46a0_a3b2c056e8ca24d3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 448 1 0 "09de39bf_736e_40c6_a9245e614c771b76" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 449 1 0 "2e67a213_e17a_43a2_88c4b53e23ef5d1b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 450 1 0 "73e89ad8_970c_4a77_9ba62968b784e6c1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentPlateHeight = flt_Z_Bottom; // }} "" // {{ 451 1 0 "2970b246_4367_4d04_a43659b5258f2285" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (intStackHeight > flt_CurrentPlateHeight) { // }} "" // {{ 452 1 0 "fdb5d186_ea4c_4658_9d83aad600b25398" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_PlateCount = int_PlateCount + 1; // }} "" // {{ 453 1 0 "2970b246_4367_4d04_a43659b5258f2285" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 454 1 0 "92d519c1_2a25_4d05_9811a1a41d4c4076" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentPlateHeight = flt_ZMin; // }} "" // {{ 455 1 0 "5ce474ae_dceb_41b8_8aa26e39f6d6d218" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_PlateIndex = 0; int_PlateIndex < int_MaxStack;) { int_PlateIndex = int_PlateIndex + 1; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Stack Height: ",intStackHeight," Current Plate Height: ",flt_CurrentPlateHeight); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 457 1 0 "6bb74a56_98f7_4f12_860956db48ae1350" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (intStackHeight > flt_CurrentPlateHeight) { // }} "" // {{ 458 1 0 "d0cdc288_d81c_4bd2_99a9287229922874" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentPlateHeight = flt_CurrentPlateHeight + flt_ZStepSize; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Step Size: ",flt_ZStepSize); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 460 1 0 "1b3fd0a7_0859_4a70_822493e1ca932c2d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_PlateCount = int_PlateCount + 1; // }} "" // {{ 461 1 0 "6bb74a56_98f7_4f12_860956db48ae1350" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 462 1 0 "cac4d264_d1eb_4345_a4e02bea27edc001" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 463 1 0 "6bb74a56_98f7_4f12_860956db48ae1350" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 464 1 0 "5ce474ae_dceb_41b8_8aa26e39f6d6d218" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 465 1 0 "22534d26_99b9_46d9_9a23eaee8bc1c7bb" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 466 1 0 "aa6fa9d8_e9a2_4acf_bf47a1a8f9ac7862" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 467 1 0 "ee1d5ac8_a900_43f6_833e46617f24c79a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Update = StrConcat12(Translate("UPDATE [Stack_Info$] SET STATUS = 'DONE', PLATE_COUNT = "), int_PlateCount, Translate(" WHERE PLATE_LAB_TOP = '"), str_CurrentLabID, Translate("'"), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{ 468 1 0 "eeaac2db_c8ff_4a5f_a51b25ea8ad73485" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" if( 0 == UpdateFile.Open(str_SortFile + " " + "Stack_Info$", hslRead, str_SQL_Update) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, "HxMetEdCompCmd"); } // }} "" // {{ 469 1 0 "0f530e5a_35ea_480d_979abec4ba7dea58" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != UpdateFile.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } UpdateFile.RemoveFields(); // }} "" // {{ 470 1 0 "d5658013_1758_4898_b5495e4d68426f5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 471 1 0 "018cdaa1_0eca_484f_bbe2c7608463e7be" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "_Find_Stack_Heights" "End" } // }} "" // {{{ 5 "Get_Arr_StackSequences" "Begin" function Get_Arr_StackSequences( device & ML_STAR, sequence i_seq_AllStacks, sequence & o_arr_StackSequences[] ) void { // }} "" private variable arr_TemplateSites[]; private variable arr_LabIDs[]; private variable str_LabID; private variable int_NumLabIDs; private variable int_Index; private variable str_TemplateSite; private variable str_Template; private variable str_Location; private variable str_TempLab; private variable str_TempPos; private variable int_arrPosition; private sequence seq_Transport; private sequence seq_CurrentPosition; private variable arr_Index[]; private variable int_LocationFound; // {{ 5 "Get_Arr_StackSequences" "InitLocals" o_arr_StackSequences.SetSize( 0); // }} "" // {{{ 1 1 0 "4e4ab40a_887e_4a4b_aa0bd4825b869d1b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqGetLabwareIds(i_seq_AllStacks, arr_LabIDs); // }} "" // {{ 2 1 0 "193424d7_5216_44f0_be551bb5147e4299" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_StackSequences.SetSize(0); // }} "" // {{ 3 1 0 "7dca3fe6_704a_4b46_b3384649901a43d5" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_TemplateSites.SetSize(0); // }} "" // {{ 4 1 0 "3a8703dd_fd41_461d_ad1e3630e445bb57" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_NumLabIDs=arr_LabIDs.GetSize(); // }} "" // {{ 5 1 0 "8f217f5b_3578_4bc2_854c86dd2dfd0cc2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_Index = 0; int_Index < int_NumLabIDs;) { int_Index = int_Index + 1; // }} "" // {{ 6 1 0 "151da251_a509_41ef_87f11294291a75b1" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_LabID=arr_LabIDs.GetAt(int_Index-1); // }} "" // {{{ 7 1 0 "bc39c3c0_400c_4432_b91a4e46f5c63fbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetCarrierAndSiteID(ML_STAR, str_LabID, str_Template, str_TemplateSite); // }} "" // {{{ 8 1 0 "4f8eee61_09c8_4ca0_9cd75ff51d8707d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Location = StrConcat2(str_Template, str_TemplateSite); // }} "" // {{{ 9 1 0 "9f7d89fb_3c52_408c_80d4dfde379fadd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arr_Index = HSLExtensions::Array::FindValue(arr_TemplateSites, str_Location); // }} "" // {{ 10 1 0 "a4222aa9_41c1_4883_9f06bfb4229a8f17" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_LocationFound=arr_Index.GetSize(); // }} "" // {{ 11 1 0 "ffdc108b_d600_416b_80735939424484f9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_arrPosition = 0; // }} "" // {{ 12 1 0 "71893a7d_e86f_46f9_b6914cabf588a8aa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_LocationFound > 0) { // }} "" // {{ 13 1 0 "7d542317_8bd1_42cb_93340e3730db93fa" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" int_arrPosition=arr_Index.GetAt(1-1); // }} "" // {{ 14 1 0 "71893a7d_e86f_46f9_b6914cabf588a8aa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 15 1 0 "743c14ab_4431_48ee_b9caac35274e5bd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLLabwrAccess::GetTransportSequenceForLabwareID(ML_STAR, str_LabID, seq_Transport); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 16 1 0 "41d7ced5_4c07_43ba_9ad34da91a9fce3e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTransportSequence(ML_STAR, str_LabID, seq_Transport); // }} "" // {{ 17 1 0 "59d1e09d_a66c_46df_ad8b3ae1648f4c6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_arrPosition == 0) { // }} "" // {{ 18 1 0 "652e9f95_ba52_43af_aaef3c3e04749f10" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_StackSequences.AddAsLast(seq_Transport); // }} "" // {{ 19 1 0 "5a0637f3_943c_43b4_b4abd3a539a3e7d8" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_TemplateSites.AddAsLast(str_Location); // }} "" // {{ 20 1 0 "59d1e09d_a66c_46df_ad8b3ae1648f4c6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 21 1 0 "c8677999_84d1_4767_945522a1645518b5" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" seq_CurrentPosition=o_arr_StackSequences.GetAt(int_arrPosition-1); // }} "" // {{{ 22 1 0 "c11106ff_fd10_4973_8037d8c58b678e07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TempLab = SeqGetLabwareId(seq_Transport); // }} "" // {{{ 23 1 0 "a7a0e893_2049_44d0_b77c5c84d158696c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TempPos = SeqGetPositionId(seq_Transport); // }} "" // {{{ 24 1 0 "151452df_d24e_4372_96a9777ece96c6dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(seq_CurrentPosition, str_TempLab, str_TempPos); // }} "" // {{ 25 1 0 "f3ae0d20_1ded_4050_831951598c1c113f" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_CurrentPosition.SetCurrentPosition(1); // }} "" // {{ 26 1 0 "4569c55e_643c_4106_878bfbc0afa68edd" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_StackSequences.SetAt(int_arrPosition-1, seq_CurrentPosition); // }} "" // {{ 27 1 0 "59d1e09d_a66c_46df_ad8b3ae1648f4c6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 28 1 0 "8f217f5b_3578_4bc2_854c86dd2dfd0cc2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "Get_Arr_StackSequences" "End" } // }} "" // {{{ 5 "_ConvertChannelToAlpha" "Begin" function _ConvertChannelToAlpha( variable & i_int_ChanNum, variable & o_str_ChanNum ) void { // }} "" // {{ 5 "_ConvertChannelToAlpha" "InitLocals" o_str_ChanNum = 0; // }} "" // {{ 351 1 0 "fd3a5c9e_1635_4188_b4c8c5df66718867" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChanNum <= 9) { // }} "" // {{{ 352 1 0 "c8f7eea5_2f1f_415a_9bc71d0a1e45568c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_ChanNum = StrConcat2(i_int_ChanNum, Translate("")); // }} "" // {{ 353 1 0 "fd3a5c9e_1635_4188_b4c8c5df66718867" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 354 1 0 "c61225ce_a905_429e_8a58dc31f2f61363" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChanNum == 10) { // }} "" // {{ 355 1 0 "8b0e3500_4d07_43e4_a3019409e439e720" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChanNum = Translate("A"); // }} "" // {{ 356 1 0 "c61225ce_a905_429e_8a58dc31f2f61363" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 357 1 0 "7379539c_e114_4cda_8fb64024a28e8e1e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChanNum == 11) { // }} "" // {{ 358 1 0 "e69b8219_4b0e_4100_ae1378c82d998222" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChanNum = "B"; // }} "" // {{ 359 1 0 "7379539c_e114_4cda_8fb64024a28e8e1e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 360 1 0 "538ef7f3_3003_4225_9fcf2fe8c3c7fe1f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChanNum == 12) { // }} "" // {{ 361 1 0 "f5ab2219_8a54_41f9_9f6d86a2073307c8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChanNum = Translate("C"); // }} "" // {{ 362 1 0 "538ef7f3_3003_4225_9fcf2fe8c3c7fe1f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 363 1 0 "33c6c7eb_1ac5_432f_9a7e1af5bfb0fc87" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChanNum == 13) { // }} "" // {{ 364 1 0 "2ba6e355_b87a_4200_a317290696b102e7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChanNum = Translate("D"); // }} "" // {{ 365 1 0 "33c6c7eb_1ac5_432f_9a7e1af5bfb0fc87" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 366 1 0 "3988f7b2_df6e_4197_bbdf9919062a3b51" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChanNum == 14) { // }} "" // {{ 367 1 0 "038f780d_096c_456b_9433b6dd6e52327a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChanNum = Translate("E"); // }} "" // {{ 368 1 0 "3988f7b2_df6e_4197_bbdf9919062a3b51" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 369 1 0 "a0b1a748_2369_4903_b5b6b2318e85dd73" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChanNum == 15) { // }} "" // {{ 370 1 0 "cf7a70fd_9043_4c11_86763481409b2d49" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChanNum = Translate("F"); // }} "" // {{ 371 1 0 "a0b1a748_2369_4903_b5b6b2318e85dd73" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 372 1 0 "87304e80_8011_4a9c_9f29d32281599200" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChanNum == 16) { // }} "" // {{ 373 1 0 "9f4fa6f9_ed87_48c4_929db5647383167a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChanNum = Translate("G"); // }} "" // {{ 374 1 0 "87304e80_8011_4a9c_9f29d32281599200" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 375 1 0 "a0b1a748_2369_4903_b5b6b2318e85dd73" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 376 1 0 "3988f7b2_df6e_4197_bbdf9919062a3b51" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 377 1 0 "33c6c7eb_1ac5_432f_9a7e1af5bfb0fc87" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 378 1 0 "538ef7f3_3003_4225_9fcf2fe8c3c7fe1f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 379 1 0 "7379539c_e114_4cda_8fb64024a28e8e1e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 380 1 0 "c61225ce_a905_429e_8a58dc31f2f61363" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 381 1 0 "fd3a5c9e_1635_4188_b4c8c5df66718867" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "_ConvertChannelToAlpha" "End" } // }} "" // {{{ 5 "Plate_Stack_Verfy_V2" "Begin" function Plate_Stack_Verfy_V2( device & ML_STAR, sequence & i_arr_seq_PlateStacks[], variable & o_arr_PlateCounts[] ) void { // }} "" private variable int_NumChannels; private variable flt_ChanRaster; private variable flt_ZBottom; private variable flt_ZMin; private variable int_PlateCount; private variable flt_ZMax; private variable int_MaxStack; private variable str_Carrier; private variable int_TotalStackNumber; private variable bool_FileExists; private variable str_CarrierSite; private variable flt_XCenter; private variable str_Status; private variable flt_YCenter; private variable flt_ZStepSize; private variable int_Order; private variable int_ChannelStart; private variable str_PlateLabBottom; private variable str_PlateLabTop; private file file1; private variable arr_YMin[]; private variable arr_YMax[]; private variable int_NumNotDone; private variable int_InBetweenPlates; private variable flt_ZDifference; private variable NotUsed; private variable int_XCount; private variable str_SQL_Count; private variable flt_CarrierAngle; private variable flt_CarrierX; private variable flt_CarrierY; private variable flt_CarrierZ; private sequence seq_CurrentPlateStack; private file FileQuery; private variable arr_LabIDs[]; private variable str_SQL_Avg; private variable flt_CurrentX; private variable flt_YMin; private variable int_ChanIndex; private variable flt_YMax; private variable int_ChannelsUsed; private variable int_ChannelCount; private variable str_SQL_Filter; private variable flt_ChannelY; private variable bol_ChannelStatus; private variable bol_ChannelYMinGood; private variable int_ChannelYGood; private variable str_ChPattern; private variable bol_ChannelYMaxGood; private variable int_ChIndex; private variable arr_ChannelsUsed[]; private variable arr_StackLabIDs[]; private variable arr_fltXCoords[]; private variable arr_fltYCoords[]; private variable arr_fltZCoords[]; private variable arr_ChannelY[]; private variable flt_CurrentZ; // {{ 5 "Plate_Stack_Verfy_V2" "InitLocals" o_arr_PlateCounts.SetSize( 0); // }} "" // {{{ 30 1 0 "dfd16f13_063e_43e1_a9a86bf64120974c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 31 1 0 "235528e7_05ae_489d_88bc814ef284c3f8" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_PlateCounts.SetSize(0); // }} "" // {{ 32 1 0 "4a2769b9_32e9_46d8_94685974309723c6" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalStackNumber=i_arr_seq_PlateStacks.GetSize(); // }} "" // {{{ 33 1 0 "bdbf977d_ee0d_47e2_a53d93564dec62d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_NumChannels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{{ 34 1 0 "4277e9e7_0eae_4f9c_a161675f596c7b96" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" int_NumChannels = HELPERLIBRARY::GetChannelLimits(ML_STAR, 0, arr_YMax, arr_YMin, flt_ChanRaster); // }} "" // {{ 35 1 0 "5826764b_17a8_4bba_b37b8b003720c7b3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ChannelStart = 1; // }} "" // {{ 36 1 0 "f45f0335_1129_4cb7_88b0292dd862e5e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 37 1 0 "25c168ad_d4de_4347_a3fef5e6c204a75a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTempSortingFilePath(str_SortFile); // }} "" // {{{ 38 1 0 "81626cf8_5afa_4570_be6bdc68926fd5aa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(str_SortFile); // }} "" // {{ 39 1 0 "39be70be_be6c_4695_8d8a166991d04586" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 1) { // }} "" // {{{ 40 1 0 "d1b58076_1d2b_4915_a102faca7b4c44fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(str_SortFile); // }} "" // {{ 41 1 0 "39be70be_be6c_4695_8d8a166991d04586" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 42 1 0 "f45f0335_1129_4cb7_88b0292dd862e5e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 43 1 0 "fc9df987_e226_4433_91bf9547d94bd5a6" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" file1.AddField("ORDER", int_Order, hslInteger); file1.AddField("PLATE_LAB_TOP", str_PlateLabTop, hslString, 255); file1.AddField("PLATE_LAB_BOTTOM", str_PlateLabBottom, hslString, 255); file1.AddField("MAX_STACK", int_MaxStack, hslInteger); file1.AddField("Z_MIN", flt_ZMin, hslFloat); file1.AddField("Z_MAX", flt_ZMax, hslFloat); file1.AddField("Z_BOTTOM", flt_ZBottom, hslFloat); file1.AddField("Z_STEP_SIZE", flt_ZStepSize, hslFloat); file1.AddField("X_CENTER", flt_XCenter, hslFloat); file1.AddField("Y_CENTER", flt_YCenter, hslFloat); file1.AddField("CARRIER", str_Carrier, hslString, 255); file1.AddField("CARRIER_SITE", str_CarrierSite, hslString, 255); file1.AddField("CARRIER_X", flt_CarrierX, hslFloat); file1.AddField("PLATE_COUNT", int_PlateCount, hslInteger); file1.AddField("STATUS", str_Status, hslString, 255); if( 0 == file1.Open(str_SortFile + " " + "Stack_Info", hslWrite) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, "HxMetEdCompCmd"); } // }} "" // {{ 44 1 0 "c020ce90_f367_4f4b_93e70e1e924a0cc0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Status = Translate("NOT_DONE"); // }} "" // {{ 45 1 0 "db23dbe8_ae29_42e9_b781541da5f891ad" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PlateCount = 0; // }} "" // {{ 46 1 0 "de26df41_1eec_4518_9b4103e3250b5381" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_Order = 0; int_Order < int_TotalStackNumber;) { int_Order = int_Order + 1; // }} "" // {{ 47 1 0 "f25696f9_9ddf_4e86_8e58cd27eba08c46" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" seq_CurrentPlateStack=i_arr_seq_PlateStacks.GetAt(int_Order-1); // }} "" // {{{ 48 1 0 "f397528f_bc27_4424_bcc0be5c7b1bb991" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqGetLabwareIds(seq_CurrentPlateStack, arr_LabIDs); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 49 1 0 "99dfdf98_1e61_49b3_b6d3df845a730861" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Lab IDs"), arr_LabIDs); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 50 1 0 "45ea3628_c769_4d0e_be082a701a4e1a6f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_MaxStack=arr_LabIDs.GetSize(); // }} "" // {{ 51 1 0 "a791360a_4d66_4187_b36abae3c9c4e92f" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_PlateLabBottom=arr_LabIDs.GetAt(int_MaxStack-1); // }} "" // {{ 52 1 0 "57ffd2fa_eb9c_4d4d_ba26b07f42af7ac7" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_PlateLabTop=arr_LabIDs.GetAt(1-1); // }} "" // {{{ 53 1 0 "7076cc13_a62b_4164_95abd3d6daafcddf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetRackHeight(ML_STAR, str_PlateLabBottom, flt_ZMin, NotUsed); // }} "" // {{{ 54 1 0 "b2fb2bf5_6d39_415b_807641ec81f53b27" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetRackHeight(ML_STAR, str_PlateLabTop, flt_ZMax, NotUsed); // }} "" // {{ 55 1 0 "fa69e5d1_94e8_4f51_b80ebec54d47d9da" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_ZMin > flt_ZMax) { // }} "" // {{ 56 1 0 "320e42ab_f7ff_4605_b08949e0c7ae9caf" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 57 1 0 "725edddb_8b89_45ca_92f96d6e9af9b9e9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_PlateLabBottom=arr_LabIDs.GetAt(1-1); // }} "" // {{ 58 1 0 "983cf5df_c8b4_4b19_b4c2f87e817a021b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_PlateLabTop=arr_LabIDs.GetAt(int_MaxStack-1); // }} "" // {{{ 59 1 0 "9b0d3e24_591d_49dc_87fd319ccc9beec5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetRackHeight(ML_STAR, str_PlateLabBottom, flt_ZMin, NotUsed); // }} "" // {{{ 60 1 0 "cbdfe7f6_47fa_4070_88d918f9fbbb9bb0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetRackHeight(ML_STAR, str_PlateLabTop, flt_ZMax, NotUsed); // }} "" // {{ 61 1 0 "fa69e5d1_94e8_4f51_b80ebec54d47d9da" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 62 1 0 "62de3b5f_e595_4fc9_84af07bbcb237158" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetLabwareCenter2(ML_STAR, str_PlateLabTop, flt_XCenter, flt_YCenter); // }} "" // {{{ 63 1 0 "e02a6b1c_6435_4aa2_9cdcde87129a5d27" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetLabwareOrigin(ML_STAR, str_PlateLabBottom, NotUsed, NotUsed, flt_ZBottom); // }} "" // {{{ 64 1 0 "bd65adfa_65e6_4f9d_927e238f6994b25a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetCarrierAndSiteID(ML_STAR, str_PlateLabBottom, str_Carrier, str_CarrierSite); // }} "" // {{{ 65 1 0 "076b0c62_0ca4_435c_a99fd4dc53727951" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), str_Carrier, Translate(""), Translate("")); // }} "" // {{ 66 1 0 "125c852f_12ef_4aea_be8bb600523223f5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Carrier != "default") { // }} "" // {{{ 67 1 0 "9a30116a_41cc_482c_8b3690833ce15cde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePosition(ML_STAR, str_Carrier, flt_CarrierX, flt_CarrierY, flt_CarrierZ, flt_CarrierAngle); // }} "" // {{ 68 1 0 "125c852f_12ef_4aea_be8bb600523223f5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 69 1 0 "ce35d36b_0f65_42f4_a767f3fd40e4a92b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePosition(ML_STAR, str_PlateLabBottom, flt_CarrierX, flt_CarrierY, flt_CarrierZ, flt_CarrierAngle); // }} "" // {{ 70 1 0 "125c852f_12ef_4aea_be8bb600523223f5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 71 1 0 "3e8a7099_5720_47bd_98b03c2d2f741ae8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ZDifference = flt_ZMax - flt_ZMin; // }} "" // {{ 72 1 0 "6ea39d55_3955_4781_9ff20d5929328d27" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_ZDifference < 0) { // }} "" // {{ 73 1 0 "36d7e92c_1c50_4261_b477a42e3e47d7f9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ZDifference = flt_ZDifference * -1; // }} "" // {{ 74 1 0 "6ea39d55_3955_4781_9ff20d5929328d27" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 75 1 0 "46e88dcc_9940_41c1_bec0716b27ce5cc8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_InBetweenPlates = int_MaxStack - 1; // }} "" // {{ 76 1 0 "73b00eb5_5130_4f76_adc0bc60a8ea7616" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_InBetweenPlates == 0) { // }} "" // {{ 77 1 0 "dbdc0f0c_9b11_4bbb_b4d7de827c0fc18c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 78 1 0 "1332afd2_667a_45ca_a8a53c5a9ed45467" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_InBetweenPlates = 1; // }} "" // {{ 79 1 0 "7aa2b0ea_19c8_4dfd_9b22cea38dd48fe8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ZDifference = flt_ZMax - flt_ZBottom; // }} "" // {{ 80 1 0 "73b00eb5_5130_4f76_adc0bc60a8ea7616" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 81 1 0 "1dfb3c92_7db4_49c9_a112d9be441ab724" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ZStepSize = flt_ZDifference / (int_InBetweenPlates * 1.0); // }} "" // {{ 82 1 0 "a1bbc78b_19a2_409d_88d98609c4855147" "{B31F3537-5D80-11d4-A5EB-0050DA737D89}" if( 0 == file1.WriteRecord() ) { MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 83 1 0 "de26df41_1eec_4518_9b4103e3250b5381" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 84 1 0 "1c0d2d88_04ad_44f9_b252a8c42bfb7f6f" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != file1.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } file1.RemoveFields(); // }} "" // {{ 85 1 0 "0a038169_90e6_4d3f_bac0674d8c506cf1" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (1 == 1) { // }} "" // {{{ 86 1 0 "f22876a3_f8fe_4d6d_b4fb9257125bc6db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Count = StrConcat2(Translate("SELECT COUNT(*) AS N FROM [Stack_Info$] WHERE STATUS = 'NOT_DONE'"), Translate("")); // }} "" // {{ 87 1 0 "57d5d140_6f0f_419f_979f96865ca4cb82" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" FileQuery.AddField("N", int_NumNotDone, hslInteger); if( 0 == FileQuery.Open(str_SortFile + " " + "Stack_Info$", hslRead, str_SQL_Count) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, "HxMetEdCompCmd"); } // }} "" // {{ 88 1 0 "eeecf038_4a3c_4128_a53e25d24967377a" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == FileQuery.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 89 1 0 "e1d453cf_5424_495a_9daf613a69e66e5a" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != FileQuery.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } FileQuery.RemoveFields(); // }} "" // {{ 90 1 0 "dc472985_4c4c_4a9b_b32c9d42969fd9d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_NumNotDone == 0) { // }} "" // {{ 91 1 0 "f59103fd_49f9_4dfe_99ee5fc05b2440ef" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 92 1 0 "dc472985_4c4c_4a9b_b32c9d42969fd9d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 93 1 0 "9b72b34d_aa0a_4851_acf0b79c21e0a2cc" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 94 1 0 "b605f3d1_86ca_467d_baa201acc2aeeb6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Count = StrConcat2(Translate("SELECT CARRIER_X, COUNT(*) AS N FROM [Stack_Info$] WHERE STATUS = 'NOT_DONE' GROUP BY CARRIER_X"), Translate(" ORDER BY CARRIER_X ASC")); // }} "" // {{ 95 1 0 "6944a106_5241_4954_97efdac8db14d2fe" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" FileQuery.AddField("CARRIER_X", flt_CarrierX, hslFloat); FileQuery.AddField("N", int_XCount, hslInteger); if( 0 == FileQuery.Open(str_SortFile + " " + "Stack_Info$", hslRead, str_SQL_Count) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, "HxMetEdCompCmd"); } // }} "" // {{ 96 1 0 "5dea2eb2_ca02_4940_b91f91b1161ab4b9" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == FileQuery.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 97 1 0 "57656023_6195_4cb6_8fa892e2fec34616" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != FileQuery.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } FileQuery.RemoveFields(); // }} "" // {{ 98 1 0 "ffb7ac34_80b9_4fda_a92cbf4c25f688fe" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 99 1 0 "b10e3ad1_a42f_467a_9add5f14a93ea5f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Avg = StrConcat4(Translate("SELECT CARRIER_X, AVG(X_CENTER) AS N FROM [Stack_Info$] WHERE STATUS = 'NOT_DONE' AND CARRIER_X = "), flt_CarrierX, Translate(""), Translate("")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 100 1 0 "90924a92_52a0_4869_a4020013644c5e94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Avg = StrConcat4(Translate("SELECT AVG(X_CENTER) AS N FROM [Stack_Info$] WHERE STATUS = 'NOT_DONE' AND CARRIER_X = "), flt_CarrierX, Translate(""), Translate("")); // }} "" // {{ 101 1 0 "59d2caf6_b812_4c27_a139ec6691d72822" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" FileQuery.AddField("N", flt_XCenter, hslInteger); if( 0 == FileQuery.Open(str_SortFile + " " + "Stack_Info$", hslRead, str_SQL_Avg) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, "HxMetEdCompCmd"); } // }} "" // {{ 102 1 0 "ed4b0f3c_e80a_47d7_8d55628caaeb3abb" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == FileQuery.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 103 1 0 "72a647f6_2ad8_44c6_a6c3e2c4c9972ee7" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != FileQuery.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } FileQuery.RemoveFields(); // }} "" // {{{ 104 1 0 "778e0b92_bd20_4557_b540cc9a9f6da082" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Filter = StrConcat4(Translate("SELECT * FROM [Stack_Info$] WHERE STATUS = 'NOT_DONE' AND CARRIER_X = "), flt_CarrierX, Translate(" ORDER BY Y_CENTER DESC"), Translate("")); // }} "" // {{ 105 1 0 "6d871395_2588_4d01_98570ec6f39fb7b5" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" FileQuery.AddField("ORDER", int_Order, hslInteger); FileQuery.AddField("PLATE_LAB_TOP", str_PlateLabTop, hslString, 255); FileQuery.AddField("PLATE_LAB_BOTTOM", str_PlateLabBottom, hslString, 255); FileQuery.AddField("MAX_STACK", int_MaxStack, hslInteger); FileQuery.AddField("Z_MIN", flt_ZMin, hslFloat); FileQuery.AddField("Z_MAX", flt_ZMax, hslFloat); FileQuery.AddField("Z_BOTTOM", flt_ZBottom, hslFloat); FileQuery.AddField("Z_STEP_SIZE", flt_ZStepSize, hslFloat); FileQuery.AddField("X_CENTER", flt_XCenter, hslFloat); FileQuery.AddField("Y_CENTER", flt_YCenter, hslFloat); FileQuery.AddField("CARRIER", str_Carrier, hslString, 255); FileQuery.AddField("CARRIER_SITE", str_CarrierSite, hslString, 255); FileQuery.AddField("CARRIER_X", flt_CarrierX, hslFloat); FileQuery.AddField("PLATE_COUNT", int_PlateCount, hslInteger); FileQuery.AddField("STATUS", str_Status, hslString, 255); if( 0 == FileQuery.Open(str_SortFile + " " + "Stack_Info", hslRead, str_SQL_Filter) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, "HxMetEdCompCmd"); } // }} "" // {{ 106 1 0 "5d90fe49_e814_466d_bc88595a0258a94d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 107 1 0 "3c8d006d_aca8_41ac_89ba2df0f2c1dfd1" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChannelsUsed.SetSize(int_NumChannels); // }} "" // {{ 108 1 0 "d8fc7656_b9d2_44fa_97c31fccb2ac0404" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChannelY.SetSize(int_NumChannels); // }} "" // {{ 109 1 0 "22baed3d_e319_401c_bbfc60f929eb2011" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_StackLabIDs.SetSize(int_NumChannels); // }} "" // {{ 110 1 0 "41037c9a_4aaf_42e2_90db93b4255117af" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_NumChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 111 1 0 "f8ca623c_9a37_4adf_b6925a49407cf0e8" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChannelsUsed.SetAt(int_ChIndex-1, 0); // }} "" // {{ 112 1 0 "1f205849_2089_4da5_96f87f445e77b8a0" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChannelY.SetAt(int_ChIndex-1, 0.0); // }} "" // {{ 113 1 0 "a4d1241f_5065_4c05_bb9e474a7b5dced7" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_StackLabIDs.SetAt(int_ChIndex-1, Translate("")); // }} "" // {{ 114 1 0 "41037c9a_4aaf_42e2_90db93b4255117af" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 115 1 0 "0f7717de_3bde_4c2b_adb4efb001b19c3e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ChannelCount = int_NumChannels - int_XCount; // }} "" // {{ 116 1 0 "66a3b2a3_0656_4240_b1d5b67c42d949fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_XCount > int_NumChannels) { // }} "" // {{ 117 1 0 "327d57d1_e850_4205_96501159583311dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ChannelCount = 0; // }} "" // {{ 118 1 0 "66a3b2a3_0656_4240_b1d5b67c42d949fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 119 1 0 "669d98e4_3c84_42a5_a0449fc50ebdf425" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentX = 0.0; // }} "" // {{ 120 1 0 "6f42ab55_f411_46d6_abfc2ebfda9b1822" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ChannelsUsed = 0; // }} "" // {{ 121 1 0 "2baa5696_1f70_4a89_b1a8ecd4d057f734" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while ( (FileQuery.Eof() == 0) ) { // }} "" // {{ 122 1 0 "0520f933_7954_4899_aa6f973caceb0ede" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == FileQuery.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 123 1 0 "4872fae0_9ee4_4f6f_9e193f137e43053e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentX == 0.0) { // }} "" // {{ 124 1 0 "a3017758_0bb5_49c6_93d5644ba0f08758" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentX = flt_CarrierX; // }} "" // {{ 125 1 0 "4872fae0_9ee4_4f6f_9e193f137e43053e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 126 1 0 "6cc66fce_9f11_4af7_952df0d671d86177" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CarrierX != flt_CurrentX) { // }} "" // {{ 127 1 0 "48b6270f_777b_47f1_8e0944129648854b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 128 1 0 "6cc66fce_9f11_4af7_952df0d671d86177" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 129 1 0 "271d7de5_19f7_4471_be3b9725c3eb2cd0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 130 1 0 "6e17b3d4_9ece_40a5_8493e5ee56a3af1a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (1 == 1) { // }} "" // {{ 131 1 0 "8b445f05_567d_4f8d_ba4c45f7cd28fa43" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ChannelCount = int_ChannelCount + 1; // }} "" // {{ 132 1 0 "04356914_c96a_49b3_bec82d163319fea6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelCount > int_NumChannels) { // }} "" // {{ 133 1 0 "58786351_3726_41eb_a9d8a7b8fd4d2c79" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 134 1 0 "04356914_c96a_49b3_bec82d163319fea6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 135 1 0 "88c7ec6e_e345_42a2_9a4b16358083e6d7" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_YMax=arr_YMax.GetAt(int_ChannelCount-1); // }} "" // {{ 136 1 0 "9b30ecea_9fc3_456b_9c5d043cf40b1040" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_YMin=arr_YMin.GetAt(int_ChannelCount-1); // }} "" // {{ 137 1 0 "bc0064ac_81ad_417d_86cc83508911fef2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bol_ChannelYMaxGood = 0; // }} "" // {{ 138 1 0 "e7fd56d2_1f4b_4ec3_bc564241c2dd352c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bol_ChannelYMinGood = 0; // }} "" // {{ 139 1 0 "1df36c2c_dd9c_4f3d_b56f0eb3839bbe77" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_YCenter <= flt_YMax) { // }} "" // {{ 140 1 0 "22aa5666_4f74_44ba_bd8262665c26043f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bol_ChannelYMaxGood = 1; // }} "" // {{ 141 1 0 "1df36c2c_dd9c_4f3d_b56f0eb3839bbe77" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 142 1 0 "1a7c194b_1213_460d_b9a2d0c3a7d1d098" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_YCenter >= flt_YMin) { // }} "" // {{ 143 1 0 "b814d970_b760_4b4f_9402edd217552f1e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bol_ChannelYMinGood = 1; // }} "" // {{ 144 1 0 "1a7c194b_1213_460d_b9a2d0c3a7d1d098" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 145 1 0 "ce8d372d_31ad_4553_83541de5a7b5dce8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ChannelYGood = bol_ChannelYMaxGood + bol_ChannelYMinGood; // }} "" // {{ 146 1 0 "502031f6_0e5b_4ead_ae83b946b3b79a05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelYGood == 2) { // }} "" // {{ 147 1 0 "97013550_0af7_4fdf_ac537269a06a03ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_StackLabIDs.SetAt(int_ChannelCount-1, str_PlateLabTop); // }} "" // {{ 148 1 0 "0f44c116_d1fd_4529_953d8a59fe9c2ba7" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChannelY.SetAt(int_ChannelCount-1, flt_YCenter); // }} "" // {{ 149 1 0 "8f2d25b1_3a36_4313_97bf886be5f75652" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChannelsUsed.SetAt(int_ChannelCount-1, 1); // }} "" // {{ 150 1 0 "b676b212_51f7_4d4f_8feb1f7df3871957" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ChannelsUsed = int_ChannelsUsed + 1; // }} "" // {{ 151 1 0 "0d6fd4c6_7009_4246_9dfe1cf6ff012cdd" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 152 1 0 "502031f6_0e5b_4ead_ae83b946b3b79a05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 153 1 0 "6e17b3d4_9ece_40a5_8493e5ee56a3af1a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 154 1 0 "52ebb5c5_90de_4bc3_b6aed9161b71a637" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelCount > int_NumChannels) { // }} "" // {{ 155 1 0 "d0709f42_8e3a_469b_8453671167b51b31" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 156 1 0 "52ebb5c5_90de_4bc3_b6aed9161b71a637" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 157 1 0 "2baa5696_1f70_4a89_b1a8ecd4d057f734" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 158 1 0 "2c1d7e7d_108a_41bb_a6bb6f44fe23b133" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != FileQuery.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } FileQuery.RemoveFields(); // }} "" // {{ 159 1 0 "ac20ff21_2edd_4baf_aa0113a47474e680" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ChPattern = Translate(""); // }} "" // {{ 160 1 0 "1c9db89e_abc4_40e4_9e55544b8db5f220" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_fltXCoords.SetSize(0); // }} "" // {{ 161 1 0 "2b2ae402_e032_4104_937d402d53ed7e2d" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_fltYCoords.SetSize(0); // }} "" // {{ 162 1 0 "c925ac98_9a7a_42eb_99baa7e97cba48c8" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_fltZCoords.SetSize(0); // }} "" // {{ 163 1 0 "ea7069d5_19cd_4119_bdf7d63f112008d4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChanIndex = 0; int_ChanIndex < int_NumChannels;) { int_ChanIndex = int_ChanIndex + 1; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 164 1 0 "80c0c7f9_3b14_494a_af31f3ccb75e9b2b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentZ = 334.7; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 165 1 0 "32d7d0cb_1a89_4ed2_bca8a0e32b51c067" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentZ = 245.0; // }} "" // {{ 166 1 0 "9ddcbbde_c3ba_448f_a1ccb19503461390" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" bol_ChannelStatus=arr_ChannelsUsed.GetAt(int_ChanIndex-1); // }} "" // {{ 167 1 0 "36056dd5_a4b2_4f9a_b50e002cb94ec37c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ChannelY=arr_ChannelY.GetAt(int_ChanIndex-1); // }} "" // {{{ 168 1 0 "08a12421_5343_4141_849f4fd2bbc36984" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrConcat2(str_ChPattern, bol_ChannelStatus); // }} "" // {{ 169 1 0 "31cf8388_8b8c_457f_86fd45198a112ae2" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_fltXCoords.AddAsLast(flt_XCenter); // }} "" // {{ 170 1 0 "cde4bfae_a6b2_4d58_91dcd0bc550a11e5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_fltYCoords.AddAsLast(flt_ChannelY); // }} "" // {{ 171 1 0 "4790d281_ce2b_4f63_8ba6b12a431be544" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_fltZCoords.AddAsLast(flt_CurrentZ); // }} "" // {{ 172 1 0 "ea7069d5_19cd_4119_bdf7d63f112008d4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 173 1 0 "297b7321_5e3d_4df3_81e7f6106072900a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_MOVEMENT_TOOLS::Move_Channels_To_Absolute_Position_1mL(ML_STAR, str_ChPattern, 245.0, arr_fltXCoords, arr_fltYCoords, arr_fltZCoords); // }} "" // {{{ 174 1 0 "33b73570_e7a1_4db8_850a698386bbcf9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _Find_Stack_Heights_V2(ML_STAR, arr_StackLabIDs, str_ChPattern, arr_fltXCoords, arr_fltYCoords, arr_fltZCoords); // }} "" // {{ 175 1 0 "0a038169_90e6_4d3f_bac0674d8c506cf1" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 176 1 0 "bdcab28e_4ad9_4d1c_9e9837744bdefd7e" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" file1.AddField("ORDER", int_Order, hslInteger); file1.AddField("PLATE_LAB_TOP", str_PlateLabTop, hslString, 255); file1.AddField("PLATE_LAB_BOTTOM", str_PlateLabBottom, hslString, 255); file1.AddField("MAX_STACK", int_MaxStack, hslInteger); file1.AddField("Z_MIN", flt_ZMin, hslFloat); file1.AddField("Z_MAX", flt_ZMax, hslFloat); file1.AddField("Z_BOTTOM", flt_ZBottom, hslFloat); file1.AddField("Z_STEP_SIZE", flt_ZStepSize, hslFloat); file1.AddField("X_CENTER", flt_XCenter, hslFloat); file1.AddField("Y_CENTER", flt_YCenter, hslFloat); file1.AddField("CARRIER", str_Carrier, hslString, 255); file1.AddField("CARRIER_SITE", str_CarrierSite, hslString, 255); file1.AddField("CARRIER_X", flt_CarrierX, hslFloat); file1.AddField("PLATE_COUNT", int_PlateCount, hslInteger); file1.AddField("STATUS", str_Status, hslString, 255); if( 0 == file1.Open(str_SortFile + " " + "Stack_Info", hslRead) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, "HxMetEdCompCmd"); } // }} "" // {{ 177 1 0 "6e9db376_c75b_45f9_9adf7e60df77a160" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while ( (file1.Eof() == 0) ) { // }} "" // {{ 178 1 0 "5bf814d7_ac68_4d43_b949f7852a5d7769" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == file1.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 179 1 0 "d5652418_543b_42c3_95d319726a81109d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_PlateCounts.AddAsLast(int_PlateCount); // }} "" // {{ 180 1 0 "6e9db376_c75b_45f9_9adf7e60df77a160" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 181 1 0 "36db0fb7_5db2_4076_87e041bb860ce000" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != file1.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } file1.RemoveFields(); // }} "" // {{{ 5 "Plate_Stack_Verfy_V2" "End" } // }} "" // {{{ 5 "_Find_Stack_Heights_V2" "Begin" private function _Find_Stack_Heights_V2( device & ML_STAR, variable & i_arr_StackLabIDs[], variable i_strChPattern, variable & i_arrXCoords[], variable & i_arrYCoords[], variable & i_arrZCoords[] ) void { // }} "" private variable int_NumChannels; private variable int_PlateCount; private variable flt_ZBottom; private variable flt_ZMin; private variable flt_ZMax; private variable int_MaxStack; private variable str_Carrier; private variable str_CarrierSite; private variable flt_CarrierX; private variable flt_XCenter; private variable str_SQL_Filter; private variable str_Status; private variable flt_YCenter; private variable flt_ZStepSize; private variable int_Order; private variable str_PlateLabBottom; private variable str_PlateLabTop; private variable str_CurrentLabID; private variable int_ChIndex; private file file1; private variable flt_Z_Bottom; private variable flt_SeekHeight; private variable int_ChannelNum; private variable int_PlateIndex; private variable flt_NoPlateFoundRange; private variable flt_HalfStepHeight; private variable intStackHeight; private variable str_SQL_Update; private variable flt_CurrentPlateHeight; private variable int_LoopCounter; private file UpdateFile; private variable flt_CurrentPlusHalf; private variable bln_PlateFound; private variable flt_TipLength; // {{ 5 "_Find_Stack_Heights_V2" "InitLocals" // }} "" // {{ 473 1 0 "327e2216_4ee3_4c59_bf03834fdd5d17d6" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 474 1 0 "1b47c7d4_b390_46ad_bccbffc9edffa20e" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_NumChannels=i_arr_StackLabIDs.GetSize(); // }} "" // {{ 475 1 0 "cd134388_3957_4902_be68ba6eacf4e62a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_NumChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 476 1 0 "b333b36c_c23e_4760_a5f5fdfef85bafd6" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_CurrentLabID=i_arr_StackLabIDs.GetAt(int_ChIndex-1); // }} "" // {{ 477 1 0 "72c1e454_d219_418d_83538e055dc2c004" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_CurrentLabID != "") { // }} "" // {{ 478 1 0 "f0c29edf_ddf7_4250_a0d2048b7e302e6d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 479 1 0 "98a3e0ca_5033_4d46_8a3f4a93f2afc4a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Filter = StrConcat4(Translate("SELECT * FROM [Stack_Info$] WHERE PLATE_LAB_TOP = '"), str_CurrentLabID, Translate("'"), Translate("")); // }} "" // {{ 480 1 0 "fbd7b511_729a_4221_af3d5ffd20940ba9" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" file1.AddField("ORDER", int_Order, hslInteger); file1.AddField("PLATE_LAB_TOP", str_PlateLabTop, hslString, 255); file1.AddField("PLATE_LAB_BOTTOM", str_PlateLabBottom, hslString, 255); file1.AddField("MAX_STACK", int_MaxStack, hslInteger); file1.AddField("Z_MIN", flt_ZMin, hslFloat); file1.AddField("Z_MAX", flt_ZMax, hslFloat); file1.AddField("Z_BOTTOM", flt_ZBottom, hslFloat); file1.AddField("Z_STEP_SIZE", flt_ZStepSize, hslFloat); file1.AddField("X_CENTER", flt_XCenter, hslFloat); file1.AddField("Y_CENTER", flt_YCenter, hslFloat); file1.AddField("CARRIER", str_Carrier, hslString, 255); file1.AddField("CARRIER_SITE", str_CarrierSite, hslString, 255); file1.AddField("CARRIER_X", flt_CarrierX, hslFloat); file1.AddField("PLATE_COUNT", int_PlateCount, hslInteger); file1.AddField("STATUS", str_Status, hslString, 255); if( 0 == file1.Open(str_SortFile + " " + "Stack_Info", hslRead, str_SQL_Filter) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, "HxMetEdCompCmd"); } // }} "" // {{ 481 1 0 "d84ac293_8a49_493e_968bc43c436a7779" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == file1.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 482 1 0 "0056f0cd_053b_48cf_8c11570d8604a65c" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != file1.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } file1.RemoveFields(); // }} "" Trace("Z Min: ",flt_ZMin); // {{ 484 1 0 "7f94d5fe_33fc_46d2_b26b8350d537f6ce" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 485 1 0 "16a3870c_8a00_4989_96007042a44d7c85" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ChannelNum = int_ChIndex; // }} "" // {{ 486 1 0 "0459fea9_1cce_4c67_86926e64295841ad" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::FALSE) { // }} "" // {{ 487 1 0 "d2961f14_e69c_4433_b8be2ffef2eccdc5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_SeekHeight = flt_Z_Bottom - 0.0; // }} "" // {{ 488 1 0 "0459fea9_1cce_4c67_86926e64295841ad" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 489 1 0 "cc21db16_076b_4e9a_b32cab9c4aeff029" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_SeekHeight = flt_ZMax - 0.0; // }} "" // {{ 490 1 0 "0459fea9_1cce_4c67_86926e64295841ad" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 491 1 0 "f60645c7_9dd1_45d8_a446d00206d39140" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_SeekHeight < 135.0) { // }} "" // {{ 492 1 0 "289f421f_b4db_4520_af4c5ebbe31f29ea" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_SeekHeight = 135.0; // }} "" // {{ 493 1 0 "f60645c7_9dd1_45d8_a446d00206d39140" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace("Z Seek Height: ",flt_SeekHeight); // {{ 495 1 0 "55d183ad_11aa_4258_a88098376cb83d6d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_InstrumentType <= 2) { // }} "" // {{{ 496 1 0 "5b2f87d2_128d_4e01_9025c7f4e4be91aa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_MOVEMENT_TOOLS::QueryTipLength(ML_STAR, int_ChannelNum, flt_TipLength); // }} "" // {{{ 497 1 0 "b4f1ef9b_14fc_477a_adc222531e79bbb8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_PlateFound = STAR_CHANNEL_MOVEMENT_TOOLS::Search_Z(ML_STAR, int_ChannelNum, flt_SeekHeight, flt_TipLength, 1, intStackHeight); // }} "" // {{ 498 1 0 "55d183ad_11aa_4258_a88098376cb83d6d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 499 1 0 "050159d9_79ae_457e_a4d71e1db6f00987" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" VANTAGE_CHANNEL_MOVEMENT_TOOLS::QueryTipLength(ML_STAR, int_ChannelNum, flt_TipLength); // }} "" // {{{ 500 1 0 "a8f8719b_db28_4ba3_bcaee4abebf00d14" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_PlateFound = VANTAGE_CHANNEL_MOVEMENT_TOOLS::Search_Z(ML_STAR, int_ChannelNum, flt_SeekHeight, flt_TipLength, 1, intStackHeight); // }} "" // {{ 501 1 0 "55d183ad_11aa_4258_a88098376cb83d6d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 502 1 0 "26afd6b4_e168_4090_b4e9ee4bf8dc3b42" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::TRUE) { // }} "" // {{ 503 1 0 "51173418_e7b2_4de4_b46e9177c07f98c0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" intStackHeight = flt_ZMax; // }} "" // {{ 504 1 0 "26afd6b4_e168_4090_b4e9ee4bf8dc3b42" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace("Stack Height Found: ",intStackHeight); // {{ 506 1 0 "76bbf53d_200d_47e8_bb2053c0e9c8eddf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PlateCount = 0; // }} "" // {{ 507 1 0 "f7090c07_3db7_43a6_a6f6f1f240ef5dd3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_LoopCounter = 0; int_LoopCounter < 1;) { int_LoopCounter = int_LoopCounter + 1; // }} "" // {{ 508 1 0 "081b4d93_8e82_4a23_9502d733d9bcdf3a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (intStackHeight < 135.0) { // }} "" // {{ 509 1 0 "664f305d_9dd1_4ece_85fbecba577ed4c3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("Channel Limit")); // }} "" // {{ 510 1 0 "81932928_82d7_42fb_b880d9b09fdb1945" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 511 1 0 "081b4d93_8e82_4a23_9502d733d9bcdf3a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 512 1 0 "a0ef3eb7_8599_412f_a17f74e8115d008b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_PlateFound == BOOLEON::FALSE) { // }} "" // {{ 513 1 0 "076ea05f_4cbd_4bdf_be5bda73d8fe0bce" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 514 1 0 "a0ef3eb7_8599_412f_a17f74e8115d008b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 515 1 0 "bfbc9b15_a7c3_498f_8ad5f90b8dbff322" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_HalfStepHeight = flt_ZStepSize / (2 * 1.0); // }} "" // {{ 516 1 0 "22077134_f221_4342_9b3e6d9c00758f80" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_NoPlateFoundRange = flt_ZBottom + flt_HalfStepHeight; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 517 1 0 "c5624447_a4bb_4c89_854851cc1f50d0e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate("Plate Stack Height: "), intStackHeight, Translate(" No Plate Found Range: "), flt_NoPlateFoundRange); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 518 1 0 "4aca2fde_265d_41b7_ac3dcdfca53b570e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (intStackHeight <= flt_NoPlateFoundRange) { // }} "" // {{ 519 1 0 "27f87a89_a604_4605_ac97f1000f995b1a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("No plate found")); // }} "" // {{ 520 1 0 "12e35982_9d20_4f12_9c8ade226604b498" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 521 1 0 "4aca2fde_265d_41b7_ac3dcdfca53b570e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 522 1 0 "d10157e1_6054_4e81_870f05f2e229c065" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentPlateHeight = flt_ZBottom; // }} "" // {{ 523 1 0 "755ff7da_69a7_4c9f_8d05c70e91465ed1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (intStackHeight > flt_CurrentPlateHeight) { // }} "" // {{ 524 1 0 "ec6cc928_d62d_471f_9b246851e2adf27c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_PlateCount = int_PlateCount + 1; // }} "" // {{ 525 1 0 "755ff7da_69a7_4c9f_8d05c70e91465ed1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 526 1 0 "03fe3ff3_e687_43c3_b20018e9097bebdd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentPlateHeight = flt_ZMin; // }} "" // {{ 527 1 0 "33d0e9d2_8c2a_4403_a922eac4adeb4c69" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_PlateIndex = 0; int_PlateIndex < int_MaxStack;) { int_PlateIndex = int_PlateIndex + 1; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Stack Height: ",intStackHeight," Current Plate Height: ",flt_CurrentPlateHeight); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 529 1 0 "2ea49e8a_4f9b_42b1_8de2bc585a389faf" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentPlusHalf = flt_CurrentPlateHeight + flt_HalfStepHeight; // }} "" // {{ 530 1 0 "57f76f58_e93a_4cd2_bab2bd3c5ce038d8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (intStackHeight > flt_CurrentPlusHalf) { // }} "" // {{ 531 1 0 "628110fb_1a6f_4b44_a7c848fc86ed41f4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentPlateHeight = flt_CurrentPlateHeight + flt_ZStepSize; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Step Size: ",flt_ZStepSize); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 533 1 0 "9cf272d8_a084_42bb_958fbd83df520105" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_PlateCount = int_PlateCount + 1; // }} "" // {{ 534 1 0 "57f76f58_e93a_4cd2_bab2bd3c5ce038d8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 535 1 0 "7f584264_865e_45b4_b0fd95c41575638d" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 536 1 0 "57f76f58_e93a_4cd2_bab2bd3c5ce038d8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 537 1 0 "33d0e9d2_8c2a_4403_a922eac4adeb4c69" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 538 1 0 "f7090c07_3db7_43a6_a6f6f1f240ef5dd3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 539 1 0 "ec16d9e5_0cf5_445f_a5530423cb399af0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 540 1 0 "cf360d11_2f6d_4d5a_aebddb44396fc713" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Update = StrConcat12(Translate("UPDATE [Stack_Info$] SET STATUS = 'DONE', PLATE_COUNT = "), int_PlateCount, Translate(" WHERE PLATE_LAB_TOP = '"), str_CurrentLabID, Translate("'"), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{ 541 1 0 "593f00d2_b8cd_4808_9c83d0ec5ad21f72" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" if( 0 == UpdateFile.Open(str_SortFile + " " + "Stack_Info$", hslRead, str_SQL_Update) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_SortFile, "HxMetEdCompCmd"); } // }} "" // {{ 542 1 0 "c2aededd_d161_42d0_a04098189d4b7a15" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != UpdateFile.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } UpdateFile.RemoveFields(); // }} "" // {{ 543 1 0 "72c1e454_d219_418d_83538e055dc2c004" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 544 1 0 "cd134388_3957_4902_be68ba6eacf4e62a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 545 1 0 "b040a0be_0f90_4b74_9621eac94d3d16c6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_InstrumentType <= 2) { // }} "" // {{{ 546 1 0 "39449030_3a14_4384_a746962d4aa2625f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_MOVEMENT_TOOLS::Reset_Search_Z(ML_STAR); // }} "" // {{ 547 1 0 "b040a0be_0f90_4b74_9621eac94d3d16c6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 548 1 0 "89880218_c8f0_4893_94a1c053dba649d3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" VANTAGE_CHANNEL_MOVEMENT_TOOLS::Reset_Search_Z(ML_STAR); // }} "" // {{ 549 1 0 "b040a0be_0f90_4b74_9621eac94d3d16c6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "_Find_Stack_Heights_V2" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=Windows10$$valid=0$$time=2020-12-17 15:41$$checksum=182d9498$$length=088$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/STAR Channel Movement Tools.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 10/6/2021 2:58:30 PM #pragma once #ifndef HSL_RUNTIME namespace STAR_CHANNEL_MOVEMENT_TOOLS { function _InitLibrary() { } function _ExitLibrary() { } function CheckPlateWithTwoChannels( device & ML_STAR, variable i_flt_XCenter, variable i_flt_YCenter, variable i_flt_ZMinimumSearchHeight, variable i_flt_ZSpeed, variable i_flt_SearchWidth, variable i_flt_MinimumTraverseHeightBegining, variable i_flt_MinimumTraverseHeightEnding, variable i_int_BackChannel, variable i_int_FrontChannel ) variable { return (0); } function GetStopDiskZCoord( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_ZCoord ) void { } function Get_Channel_Position( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void { } function Get_Channel_Position_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void { } function Get_Channel_Position_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void { } function Get_Tip_Present_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void { } function Get_Tip_Present_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void { } function Get_Tip_Volume_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void { } function Get_Tip_Volume_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void { } function InitializeDispenseDrive_1mL( device & ML_STAR, variable i_int_CurrentChannel ) void { } function InitializeDispenseDrive_5mL( device & ML_STAR, variable i_int_CurrentChannel ) void { } function Move_Channels_To_Absolute_Position( device & ML_STAR, variable i_str_ChannelPattern, variable i_flt_MinimumZHeightAtBegining, variable i_flt_X_Position, variable & i_arr_Y_Position[], variable & i_arr_Z_Position[] ) void { } function Move_Channels_To_Absolute_Position_1mL( device & ML_STAR, variable i_str_ChannelPattern, variable i_flt_MinimumZHeightAtBegining, variable & i_arr_X_Position[], variable & i_arr_Y_Position[], variable & i_arr_Z_Position[] ) void { } function Move_Channels_To_Absolute_Position_5mL( device & ML_STAR, variable i_str_ChannelPattern, variable i_flt_MinimumZHeightAtBegining, variable & i_arr_X_Position[], variable & i_arr_Y_Position[], variable & i_arr_Z_Position[] ) void { } function QueryTipLength( device & ML_STAR, variable i_intChannelNumber, variable & o_fltTipLength ) void { } function ResetChannelFW( device & ML_STAR ) void { } function Reset_Search_Z( device & ML_STAR ) void { } function Search_Z( device & ML_STAR, variable i_int_CurrentChannel, variable i_flt_Z_Min, variable i_flt_TipLength, variable i_int_Sensitivity, variable & o_flt_Z_Found ) variable { return (0); } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=Hamilton$$valid=0$$time=2021-10-06 14:58$$checksum=50ced559$$length=085$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/STAR Channel Movement Tools.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "HSLMthLib.hsl" #include "HSLStrLib.hsl" #include "HSLUtilLib2.hsl" #include "HSLErrLib.hsl" #include "HSLUtilLib.hsl" #include "STAR Tools\\Resources\\SubMethods\\FW_HelperLibrary.hs_" #include "HSLDevLib.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" #include "HSLPTLLib.hsl" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace STAR_CHANNEL_MOVEMENT_TOOLS { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function CheckPlateWithTwoChannels( device & ML_STAR, variable i_flt_XCenter, variable i_flt_YCenter, variable i_flt_ZMinimumSearchHeight, variable i_flt_ZSpeed, variable i_flt_SearchWidth, variable i_flt_MinimumTraverseHeightBegining, variable i_flt_MinimumTraverseHeightEnding, variable i_int_BackChannel, variable i_int_FrontChannel ) variable ; function GetStopDiskZCoord( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_ZCoord ) void ; function Get_Channel_Position( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void ; function Get_Channel_Position_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void ; function Get_Channel_Position_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void ; function Get_Tip_Present_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void ; function Get_Tip_Present_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void ; function Get_Tip_Volume_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void ; function Get_Tip_Volume_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void ; function InitializeDispenseDrive_1mL( device & ML_STAR, variable i_int_CurrentChannel ) void ; function InitializeDispenseDrive_5mL( device & ML_STAR, variable i_int_CurrentChannel ) void ; function Move_Channels_To_Absolute_Position( device & ML_STAR, variable i_str_ChannelPattern, variable i_flt_MinimumZHeightAtBegining, variable i_flt_X_Position, variable & i_arr_Y_Position[], variable & i_arr_Z_Position[] ) void ; function Move_Channels_To_Absolute_Position_1mL( device & ML_STAR, variable i_str_ChannelPattern, variable i_flt_MinimumZHeightAtBegining, variable & i_arr_X_Position[], variable & i_arr_Y_Position[], variable & i_arr_Z_Position[] ) void ; function Move_Channels_To_Absolute_Position_5mL( device & ML_STAR, variable i_str_ChannelPattern, variable i_flt_MinimumZHeightAtBegining, variable & i_arr_X_Position[], variable & i_arr_Y_Position[], variable & i_arr_Z_Position[] ) void ; function QueryTipLength( device & ML_STAR, variable i_intChannelNumber, variable & o_fltTipLength ) void ; function ResetChannelFW( device & ML_STAR ) void ; function Reset_Search_Z( device & ML_STAR ) void ; function Search_Z( device & ML_STAR, variable i_int_CurrentChannel, variable i_flt_Z_Min, variable i_flt_TipLength, variable i_int_Sensitivity, variable & o_flt_Z_Found ) variable ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" PTL::SetWashingStateDefault("RinseTime1", 5); PTL::SetWashingStateDefault("SoakTime1", 5); PTL::SetWashingStateDefault("FlowRate1", 11); PTL::SetWashingStateDefault("RinseTime2", 0); PTL::SetWashingStateDefault("SoakTime2", 0); PTL::SetWashingStateDefault("FlowRate2", 11); PTL::SetWashingStateDefault("DrainingTime", 10); PTL::SetWashingStateDefault("StartWashLiquid", 0); PTL::SetLoadingStateDefault("RecoveryOptionContinue", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionExclude", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionDefault", 0); PTL::SetLoadingStateDefault("KitLotCheckEnabled", hslFalse); FW_HELPERLIBRARY::_InitLibrary(); // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" FW_HELPERLIBRARY::_ExitLibrary(); // }} "" } // {{{ 5 "CheckPlateWithTwoChannels" "Begin" function CheckPlateWithTwoChannels( device & ML_STAR, variable i_flt_XCenter, variable i_flt_YCenter, variable i_flt_ZMinimumSearchHeight, variable i_flt_ZSpeed, variable i_flt_SearchWidth, variable i_flt_MinimumTraverseHeightBegining, variable i_flt_MinimumTraverseHeightEnding, variable i_int_BackChannel, variable i_int_FrontChannel ) variable { // }} "" private variable int_ZY; private variable str_te; private variable bool_ParamFound; private variable int_yg; private variable str_YJ; private variable str_ReturnValue; private variable int_CutNum; private variable flt_ZY; private variable flt_yg; private variable int_Length; private variable int_ZJ; private variable flt_ZJ; private variable int_YJ; private variable i; private variable int_te; private variable str_th; private variable strFunctionName; private variable flt_YJ; private variable flt_te; private variable str_yo; private variable str_FWCommand; private variable int_th; private variable int_TotalParameters; private variable flt_th; private variable strFunctionName_Cut; private variable int_yo; private variable str_FWCommandSet; private variable flt_yo; private variable str_XS; private variable str_Parameters; private variable flt_OpenWidth; private variable int_ErrorCode; private variable str_BackChannel; private variable str_XD; private variable str_YV; private variable str_YW; private variable int_XS; private variable int_Count; private variable flt_XS; private variable str_ZY; private variable str_yg; private variable ret_WallFound; private variable str_ParameterSet; private variable str_FrontChannel; private variable str_ZJ; private variable arr_ParameterList[]; // {{ 5 "CheckPlateWithTwoChannels" "InitLocals" // }} "" // {{ 1 1 0 "95bcb95c_1733_4a3d_ab45d93276ef6d40" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2 1 0 "2388f1dd_9fa7_468b_8c7b6b112e9e9602" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 4 1 0 "52ddd19e_50e8_41fa_80cf85a60abb3a8a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 5 1 0 "368f7f3d_907d_4854_93c81733416e4db3" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 6 1 0 "80a00942_f671_47bb_9cc09dbf913782c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 7 1 0 "ff01c3a3_c20e_466b_b020a2520c34d607" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 8 1 0 "2e4cf1bf_ecac_40f7_89090b1f82842918" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 9 1 0 "67a0c963_25c4_47a1_93d67d928ac1a5ba" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 10 1 0 "95bcb95c_1733_4a3d_ab45d93276ef6d40" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 11 1 0 "1b4941d8_8720_459c_8863f3e9cf6fbebf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_WallFound = 0; // }} "" // {{ 12 1 0 "d69a572d_5e22_4fff_96a63f9a6388d64c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FWCommand = Translate("C0ZP"); // }} "" // {{ 13 1 0 "f1586d04_732d_4bfa_b11e07dcdfaaba95" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Parameters = Translate(""); // }} "" // {{ 14 1 0 "3e9e306f_634a_4ebf_9dfdb2b98a8b19d3" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ParameterList.SetSize(0); // }} "" // {{ 15 1 0 "cd43f0f7_780b_42cf_92ce04ea1739a975" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 16 1 0 "e7aa73c0_b4f5_4f4f_83f98bf344b16af0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_XS = i_flt_XCenter * 10; // }} "" // {{{ 17 1 0 "80e6817f_f2af_4d74_93f1081cf0da0ffa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_XS = MthCeiling(flt_XS); // }} "" // {{{ 18 1 0 "c071715e_4109_41b5_863b407fccf767a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_XS = StrConcat2(int_XS, Translate("")); // }} "" // {{{ 19 1 0 "ae540665_15f7_434c_a42c1e79bcea22f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_XS = StrFillLeft(str_XS, Translate("0"), 5); // }} "" // {{{ 20 1 0 "fb8faf19_bb0a_4cc9_ac245c520670ebe2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_XS = StrConcat2(Translate("xs"), str_XS); // }} "" // {{ 21 1 0 "90e8ecfe_4b99_4122_bc1c345c655a7146" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ParameterList.AddAsLast(str_XS); // }} "" // {{ 22 1 0 "cd43f0f7_780b_42cf_92ce04ea1739a975" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 23 1 0 "a9e176f5_b89a_4d22_a1091f37c9dd0540" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 24 1 0 "8222ab79_c132_4c2d_a48f870cddc3a230" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_flt_XCenter > 0) { // }} "" // {{ 25 1 0 "f69a94af_47a3_4aad_96353bae0317dd51" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_XD = Translate("xd0"); // }} "" // {{ 26 1 0 "8222ab79_c132_4c2d_a48f870cddc3a230" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 27 1 0 "9bbffb4d_0bec_42da_b61c59047b1e5112" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_XD = Translate("xd1"); // }} "" // {{ 28 1 0 "8222ab79_c132_4c2d_a48f870cddc3a230" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 29 1 0 "af680953_4b17_4cba_82e067a9ea0e6efa" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ParameterList.AddAsLast(str_XD); // }} "" // {{ 30 1 0 "a9e176f5_b89a_4d22_a1091f37c9dd0540" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 31 1 0 "32888b92_6bdc_4fea_84ddfeb0255984dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 32 1 0 "bdc4b0e6_86c4_41e4_9a103dd77a7803cf" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_YJ = i_flt_YCenter * 10; // }} "" // {{{ 33 1 0 "27e1f4e5_3d21_4722_addadc4f3ed1033e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_YJ = MthCeiling(flt_YJ); // }} "" // {{{ 34 1 0 "404dcbba_56c1_4ce8_b8e7a13a4a04e56d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YJ = StrConcat2(int_YJ, Translate("")); // }} "" // {{{ 35 1 0 "2564a187_6767_482d_b9bf6e78d05fc414" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YJ = StrFillLeft(str_YJ, Translate("0"), 4); // }} "" // {{{ 36 1 0 "226f9208_eb96_49e6_a17cdf7d0f7d3ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YJ = StrConcat2(Translate("yj"), str_YJ); // }} "" // {{ 37 1 0 "a35345e9_675f_44f3_ae0fee74db39b5b3" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ParameterList.AddAsLast(str_YJ); // }} "" // {{ 38 1 0 "32888b92_6bdc_4fea_84ddfeb0255984dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 39 1 0 "ad5bb06f_b1ca_44f6_8020171a9f4942fe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 40 1 0 "d0277e76_66d0_4892_b0a234bbfb7fda1d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_YV = Translate("yv2778"); // }} "" // {{ 41 1 0 "c3661003_9e00_4e1c_842a3bd96c33d58b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ParameterList.AddAsLast(str_YV); // }} "" // {{ 42 1 0 "ad5bb06f_b1ca_44f6_8020171a9f4942fe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 43 1 0 "16f97765_7e95_4c96_a954ec5ad587bd92" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 44 1 0 "0b972594_d87f_42c0_9e1d0fa18d2fc5a1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ZJ = i_flt_ZMinimumSearchHeight * 10; // }} "" // {{{ 45 1 0 "e98526fa_ee6d_47b6_a58faea05351677a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ZJ = MthCeiling(flt_ZJ); // }} "" // {{{ 46 1 0 "2211aad3_2110_4710_9d96e5ab70ed20ba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZJ = StrConcat2(int_ZJ, Translate("")); // }} "" // {{{ 47 1 0 "11a7278b_a44f_472f_99e79dd1b093eb50" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZJ = StrFillLeft(str_ZJ, Translate("0"), 4); // }} "" // {{{ 48 1 0 "462d39f8_74f4_4235_be096f01010f4f2d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZJ = StrConcat2(Translate("zj"), str_ZJ); // }} "" // {{ 49 1 0 "f431ac96_64ee_4de2_b92bb6b1c09f2a52" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ParameterList.AddAsLast(str_ZJ); // }} "" // {{ 50 1 0 "16f97765_7e95_4c96_a954ec5ad587bd92" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 51 1 0 "6ea7c026_0fda_4563_ab95088bd37c6149" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 52 1 0 "60048411_1793_4204_af03e26c803d3566" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ZY = i_flt_ZSpeed * 10; // }} "" // {{{ 53 1 0 "bfc3419d_cac2_4c1d_be524580db72d147" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ZY = MthCeiling(flt_ZY); // }} "" // {{{ 54 1 0 "b32464d9_8d4e_41db_86cb5528cc37b330" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZY = StrConcat2(int_ZY, Translate("")); // }} "" // {{{ 55 1 0 "c36b8915_a9bc_4a79_a4b1a6d4abcdc431" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZY = StrFillLeft(str_ZY, Translate("0"), 4); // }} "" // {{{ 56 1 0 "522e9e7a_8758_4421_a66f99a0f1c725d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZY = StrConcat2(Translate("zy"), str_ZY); // }} "" // {{ 57 1 0 "8ef08fad_1ffa_47c4_b8befca7d91e24f4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ParameterList.AddAsLast(str_ZY); // }} "" // {{ 58 1 0 "6ea7c026_0fda_4563_ab95088bd37c6149" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 59 1 0 "cc3ccedb_17ee_4356_97ff613e1f791266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 60 1 0 "064ce836_976a_4108_83e027aa495e276f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_yo = i_flt_SearchWidth * 10; // }} "" // {{{ 61 1 0 "1086aa9a_f6b6_41fd_b505d753962fe355" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_yo = MthCeiling(flt_yo); // }} "" // {{{ 62 1 0 "48e14431_23a7_455e_bcec63f1f78c40f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_yo = StrConcat2(int_yo, Translate("")); // }} "" // {{{ 63 1 0 "dd9bf8ed_e3dd_4d83_933c7d7600d7be52" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_yo = StrFillLeft(str_yo, Translate("0"), 4); // }} "" // {{{ 64 1 0 "923ee095_4061_4c43_ae5c08ae9afe90cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_yo = StrConcat2(Translate("yo"), str_yo); // }} "" // {{ 65 1 0 "0f896c87_2e11_4c46_8df580c1526bc292" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ParameterList.AddAsLast(str_yo); // }} "" // {{ 66 1 0 "cc3ccedb_17ee_4356_97ff613e1f791266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 67 1 0 "ebfecdaa_5526_4de3_84001ef8cd7982e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 68 1 0 "ac8dd882_2eab_4e76_a362ee6aec174003" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_OpenWidth = i_flt_SearchWidth + 1.0; // }} "" // {{ 69 1 0 "ec8c86cf_562a_4d92_ba81f8902f309c1a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_yg = flt_OpenWidth * 10; // }} "" // {{{ 70 1 0 "cf756142_b653_4781_a113f5c6c775fedf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_yg = MthCeiling(flt_yg); // }} "" // {{{ 71 1 0 "c221f570_3235_4a20_aa68f0bddf7e9742" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_yg = StrConcat2(int_yg, Translate("")); // }} "" // {{{ 72 1 0 "997328ce_500a_421d_956765a10b10e4e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_yg = StrFillLeft(str_yg, Translate("0"), 4); // }} "" // {{{ 73 1 0 "a57b0a44_86ab_481b_b7912233ed83aa2d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_yg = StrConcat2(Translate("yg"), str_yg); // }} "" // {{ 74 1 0 "96e29d3c_751d_4870_a44f23b6f51a6370" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ParameterList.AddAsLast(str_yg); // }} "" // {{ 75 1 0 "ebfecdaa_5526_4de3_84001ef8cd7982e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 76 1 0 "f12b983f_97b7_4089_be27d9d29f3ddd42" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 77 1 0 "f267c6c5_b9c3_4e99_b2ccfe06e36f672a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_YW = Translate("yw20"); // }} "" // {{ 78 1 0 "ce5ec637_d995_410d_82642d4a5553af46" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ParameterList.AddAsLast(str_YW); // }} "" // {{ 79 1 0 "f12b983f_97b7_4089_be27d9d29f3ddd42" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 80 1 0 "b640eb16_359d_4638_a2f01c53dcba944e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 81 1 0 "ebef869b_b461_4bfc_be3387a57bfda429" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_th = i_flt_MinimumTraverseHeightBegining * 10; // }} "" // {{{ 82 1 0 "ed56541b_5d75_41c0_afc1694bff0bb497" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_th = MthCeiling(flt_th); // }} "" // {{{ 83 1 0 "533e3a20_217e_4546_88fc5a7130ac1582" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_th = StrConcat2(int_th, Translate("")); // }} "" // {{{ 84 1 0 "ca26f3be_7040_46c9_b23c33bb70f4c210" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_th = StrFillLeft(str_th, Translate("0"), 4); // }} "" // {{{ 85 1 0 "6d994c03_933d_410f_86540957494c5685" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_th = StrConcat2(Translate("th"), str_th); // }} "" // {{ 86 1 0 "e5ec71ef_d8a9_4df0_b1589cab56d5a71b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ParameterList.AddAsLast(str_th); // }} "" // {{ 87 1 0 "b640eb16_359d_4638_a2f01c53dcba944e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 88 1 0 "d82fc42d_4ea2_413e_8a28a8a66e37d6d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 89 1 0 "1986dc11_ecac_4c7c_b314a7f46e2310b6" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_te = i_flt_MinimumTraverseHeightEnding * 10; // }} "" // {{{ 90 1 0 "58f5bf63_0ffc_4cf0_943a8a4f1803753f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_te = MthCeiling(flt_te); // }} "" // {{{ 91 1 0 "2f4d15e0_5a1f_4e64_900de2711cc4c45d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_te = StrConcat2(int_te, Translate("")); // }} "" // {{{ 92 1 0 "0cc62d70_f974_4638_a6a5cab8a681c7fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_te = StrFillLeft(str_te, Translate("0"), 4); // }} "" // {{{ 93 1 0 "1eb26446_b7e9_4228_8b12dc132a0d8ead" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_te = StrConcat2(Translate("te"), str_te); // }} "" // {{ 94 1 0 "d554acce_589f_4c2f_8d93a15d5d184958" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ParameterList.AddAsLast(str_te); // }} "" // {{ 95 1 0 "d82fc42d_4ea2_413e_8a28a8a66e37d6d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 96 1 0 "1587876f_e9a7_4f7b_93a184d06423f2e8" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalParameters=arr_ParameterList.GetSize(); // }} "" // {{{ 97 1 0 "3a1b2b10_bba0_4f6e_aa96ea19229c44d6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_BackChannel = StrConcat2(i_int_BackChannel, Translate("")); // }} "" // {{{ 98 1 0 "0d4d09cd_c89b_4e8a_9cdef98fa54f9ec8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_BackChannel = StrFillLeft(str_BackChannel, Translate("0"), 2); // }} "" // {{{ 99 1 0 "e409179e_8726_48eb_b9d88eb78a13fbf0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FrontChannel = StrConcat2(i_int_FrontChannel, Translate("")); // }} "" // {{{ 100 1 0 "36dc59e4_65eb_4173_a02fede0ccfcf4cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FrontChannel = StrFillLeft(str_FrontChannel, Translate("0"), 2); // }} "" // {{ 101 1 0 "1c515df3_2d2f_4c63_a66b004aded6e331" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalParameters;) { i = i + 1; // }} "" // {{{ 102 1 0 "188edcfe_6a7f_4cf2_b9aa02a8de51f4b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Parameters = StrConcat2(str_Parameters, arr_ParameterList.ElementAt( i -1)); // }} "" // {{ 103 1 0 "1c515df3_2d2f_4c63_a66b004aded6e331" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 104 1 0 "bb7e37e4_c6d8_4037_9ed702604e600111" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Parameters = StrConcat8(str_Parameters, Translate("pa"), str_BackChannel, Translate("pb"), str_FrontChannel, Translate(""), Translate(""), Translate("")); // }} "" // {{ 105 1 0 "867fa8c8_c19b_4cf0_b3558ac66b02e95f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FWCommandSet = Translate("C0ZO"); // }} "" // {{{ 106 1 0 "e81f6087_8c6c_4f4c_ac0900a27b57bd12" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ParameterSet = StrConcat8(Translate("pa"), str_BackChannel, Translate("pb"), str_FrontChannel, Translate(""), Translate(""), Translate(""), Translate("")); // }} "" Trace("FW Command Set Channels: ",str_FWCommandSet," : ",str_ParameterSet); Trace("FW Command: ",str_FWCommand," : ",str_Parameters); // {{ 108 1 0 "72b1ed70_9637_49b1_8cbd153426a15791" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("72b1ed70_9637_49b1_8cbd153426a15791"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 109 1 0 "719e868f_8893_43ae_966b7e0caa72150a" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("719e868f_8893_43ae_966b7e0caa72150a"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 110 1 0 "447731e0_5956_4067_a02ead95a97d69e4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("er"), 1, 2, bool_ParamFound, int_ErrorCode); // }} "" // {{ 111 1 0 "e68d88c2_7e3c_42f5_8b57eae002e89e34" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ErrorCode != 0) { // }} "" // {{ 112 1 0 "463043a6_76ff_450a_80557f2dbf503962" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_WallFound = 1; // }} "" // {{ 113 1 0 "e68d88c2_7e3c_42f5_8b57eae002e89e34" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 114 1 0 "d7db596f_280f_48df_851e053494008225" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{{ 115 1 0 "ebb6eed6_9c4a_43f1_b9de4a669b496261" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_WallFound); // }} "" // {{{ 5 "CheckPlateWithTwoChannels" "End" } // }} "" // {{{ 5 "GetStopDiskZCoord" "Begin" function GetStopDiskZCoord( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_ZCoord ) void { // }} "" private variable str_FW_ReturnPosition; private variable str_ReturnValue; private variable bol_ParameterFound; private variable strFunctionName; private variable str_FirmwareCMND; private variable int_FW_Position; private variable flt_Resolution_Z; private variable flt_ReturnValue; // {{ 5 "GetStopDiskZCoord" "InitLocals" o_flt_ZCoord = 0; // }} "" // {{ 117 1 0 "fa9c9a26_1337_4d88_8b04a0f8e3bd15fc" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 118 1 0 "8316c436_8beb_4fa4_95ea71e28496433c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_Z = 0.01072765; // }} "" // {{{ 119 1 0 "0fb9cd76_185d_48df_9b002122cc5ed5c7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::GetChannelNumber(i_int_CurrentChannel); // }} "" // {{{ 120 1 0 "879f0ca7_8ff7_4460_a60acbef7a59e637" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("P"), i_int_CurrentChannel, Translate("RZ"), Translate("")); // }} "" // {{ 121 1 0 "33ad331d_aff2_4776_b251af9edcd5c576" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("33ad331d_aff2_4776_b251af9edcd5c576"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 122 1 0 "900adb35_4356_4df7_85106114edc4345f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("rz+"), flt_Resolution_Z, 5, bol_ParameterFound, flt_ReturnValue); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 123 1 0 "78edb55a_f49b_454a_887267280d50dd2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FW_ReturnPosition = StrRight(str_ReturnValue, 5); // }} "" // {{{ 124 1 0 "b11f60c4_594d_493c_a1073c0e7885b84e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_FW_Position = StrIVal(str_FW_ReturnPosition); // }} "" // {{ 125 1 0 "a771a34a_fec7_42fa_8d0d72e554781ae4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ReturnValue = int_FW_Position * flt_Resolution_Z; // }} "" // {{{ 126 1 0 "f86a3e75_3e04_4bba_8d2980981cd5adec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_ReturnValue = MthRound(flt_ReturnValue, 1); // }} "" Trace("Stop disk Z coord: ",flt_ReturnValue); // {{{ 128 1 0 "391e9fb3_9cfe_4485_8cf6375be5f846c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{ 129 1 0 "96d5feeb_c718_4ef6_9a7bd52b9ba40f9b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_ZCoord = flt_ReturnValue; // }} "" // {{{ 5 "GetStopDiskZCoord" "End" } // }} "" // {{{ 5 "Get_Channel_Position" "Begin" function Get_Channel_Position( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable bol_ParameterFound; private variable strFunctionName; private variable str_FirmwarePARAM; private variable strFunctionName_Cut; private variable str_FirmwareCMND; private variable bol_SimulationMode; private variable flt_Resolution_X; private variable flt_Resolution_Y; private variable int_Count; private variable flt_Resolution_Z; private variable str_CurrentChannel; private variable flt_ReturnValue; // {{ 5 "Get_Channel_Position" "InitLocals" o_X_Coord = 0; o_Y_Coord = 0; o_Z_Coord = 0; // }} "" // {{ 131 1 0 "c80d77c1_8ede_4c1e_a0f59a4168eae7bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 132 1 0 "97bfc336_a51c_48b2_8a6215593ad6283d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 134 1 0 "52c37af2_8db3_454d_abdfb9ae34b21212" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 135 1 0 "ba9ac87f_4a78_44ee_ab6de77690e0a965" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 136 1 0 "58e58fa9_6bad_4b72_a133356922019479" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 137 1 0 "59f299c6_bf47_4b9b_b6712dbc1314040f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 138 1 0 "e05259ad_eaa6_4b6c_ad61d38d5fb86360" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 139 1 0 "02e2bec1_a275_49e9_9df888d1f9b9da57" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 140 1 0 "c80d77c1_8ede_4c1e_a0f59a4168eae7bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 141 1 0 "238456d4_02e7_46ed_b33dc9689b71350c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bol_SimulationMode = Util::GetSimulationMode(); // }} "" // {{{ 142 1 0 "7449cfa6_6eb4_44de_a8995bb6d4f4ad4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::GetChannelNumber(i_int_CurrentChannel); // }} "" // {{ 143 1 0 "e734f863_36d6_44b4_b169b677ca217989" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 144 1 0 "060d34b6_87da_4d7d_86a666eff11336d7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_Z = 0.1; // }} "" // {{ 145 1 0 "d3760c4a_2933_4123_b5b2cbdb44687a90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_Y = 0.1; // }} "" // {{ 146 1 0 "a576e51b_502d_4d53_b6a66c639e344e0e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_X = 0.1; // }} "" // {{ 147 1 0 "5dc70757_0fff_47a7_aac3d3c5ba1af04b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 148 1 0 "fb25a54b_2ec3_4874_bb3259a576c71965" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("C0RD"), Translate(""), Translate(""), Translate("")); // }} "" // {{{ 149 1 0 "f684c094_cdac_438e_a6c615917e79fc1b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChannel = StrConcat2(i_int_CurrentChannel, Translate("")); // }} "" // {{{ 150 1 0 "b53ca538_9201_4921_a4d5544b3ccd0921" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChannel = StrFillLeft(str_CurrentChannel, Translate("0"), 2); // }} "" // {{{ 151 1 0 "d1d7455d_4c4c_4b3c_bc63f95983ec5f16" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwarePARAM = StrConcat4(Translate("pn"), str_CurrentChannel, Translate(""), Translate("")); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 152 1 0 "75fc82c4_334b_4bec_a09223c8586d589c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwarePARAM = StrConcat4(Translate("pn"), i_int_CurrentChannel, Translate(""), Translate("")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 153 1 0 "e2bc182c_9cc6_42bf_8b69e0aa35cfe3cc" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("e2bc182c_9cc6_42bf_8b69e0aa35cfe3cc"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 154 1 0 "38586d71_fd6c_4737_a937cfa49951c5ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 155 1 0 "7d0b1fb0_21a1_483e_8d6cd662960cc1c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("rd"), flt_Resolution_Z, 4, bol_ParameterFound, flt_ReturnValue); // }} "" // {{ 156 1 0 "f569c101_b414_4ef8_8ba3ead0576b691c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 157 1 0 "bd8b44bb_79da_4930_afb3d05a382f65cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_Z_Coord = flt_ReturnValue; // }} "" // {{ 158 1 0 "f569c101_b414_4ef8_8ba3ead0576b691c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 159 1 0 "38586d71_fd6c_4737_a937cfa49951c5ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 160 1 0 "a11312ff_b635_4c30_b80ebedabbd5a5a6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{ 161 1 0 "4f041c3f_b2d3_41fe_94bef9c2a3410e52" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 162 1 0 "dc84f16a_fa19_494b_bdb43bb139e8064e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("C0RB"), Translate(""), Translate(""), Translate("")); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 163 1 0 "2da8882d_6e9c_4ae8_be9ea39303a7fe26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwarePARAM = StrConcat4(Translate("pn"), i_int_CurrentChannel, Translate(""), Translate("")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 164 1 0 "679236e6_e7ae_4e18_bb7b3934d007e11c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChannel = StrConcat2(i_int_CurrentChannel, Translate("")); // }} "" // {{{ 165 1 0 "c74c93ac_71f5_4a91_88da50d51d9cf32c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChannel = StrFillLeft(str_CurrentChannel, Translate("0"), 2); // }} "" // {{{ 166 1 0 "559913db_852b_474a_9f3314b75177c82b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwarePARAM = StrConcat4(Translate("pn"), str_CurrentChannel, Translate(""), Translate("")); // }} "" // {{ 167 1 0 "e3fbef76_0407_4584_a87d0fccb2234d1f" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("e3fbef76_0407_4584_a87d0fccb2234d1f"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 168 1 0 "42b7a7f8_51b4_44d8_bfb9b10e94be36f9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 169 1 0 "527444ae_af67_4efb_a52bdb45108e6824" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("rb"), flt_Resolution_Y, 4, bol_ParameterFound, flt_ReturnValue); // }} "" // {{ 170 1 0 "e349a453_9e90_4660_a0bc578036c12682" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 171 1 0 "afe9454d_bb49_4071_8d5c67bb5c28f558" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_Y_Coord = flt_ReturnValue; // }} "" // {{ 172 1 0 "e349a453_9e90_4660_a0bc578036c12682" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 173 1 0 "42b7a7f8_51b4_44d8_bfb9b10e94be36f9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 174 1 0 "0ec63267_92f0_4353_bd128f6bd39a183d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{ 175 1 0 "35b24da2_43b0_422b_bee3cd8bd5caca9c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 176 1 0 "9248e99a_e549_4ccd_ac8b6ad815f05708" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("C0"), Translate(""), Translate("RX"), Translate("")); // }} "" // {{ 177 1 0 "bd5c8ec3_fe2f_4bae_a51fd19c5c579d35" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("bd5c8ec3_fe2f_4bae_a51fd19c5c579d35"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 178 1 0 "031f85b3_f1bd_4cf9_84bc9836cce4fcf1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 179 1 0 "6a07e93f_295e_4079_a40d55a67bb83a9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("rx"), flt_Resolution_X, 5, bol_ParameterFound, flt_ReturnValue); // }} "" // {{ 180 1 0 "3e53220a_2983_4e59_abf8a535ca1d0f15" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 181 1 0 "082b40c9_ec11_4b0a_8b4d459cb6219fef" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_X_Coord = flt_ReturnValue; // }} "" // {{ 182 1 0 "3e53220a_2983_4e59_abf8a535ca1d0f15" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 183 1 0 "031f85b3_f1bd_4cf9_84bc9836cce4fcf1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 184 1 0 "45a497c0_6c82_4388_ada588076c0d2320" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" Trace(" Current X Position: ",o_X_Coord); Trace(" Current Y Position: ",o_Y_Coord); Trace(" Current Z Position: ",o_Z_Coord); // {{{ 5 "Get_Channel_Position" "End" } // }} "" // {{{ 5 "Move_Channels_To_Absolute_Position" "Begin" function Move_Channels_To_Absolute_Position( device & ML_STAR, variable i_str_ChannelPattern, variable i_flt_MinimumZHeightAtBegining, variable i_flt_X_Position, variable & i_arr_Y_Position[], variable & i_arr_Z_Position[] ) void { // }} "" private variable i_int_X_Position; private variable int_SafeTravelHeight; private variable str_ReturnValue; private variable flt_SafeTravelHeight; private variable int_CutNum; private variable str_Y_Position; private variable str_FWParameter; private variable int_Length; private variable int_Y_Position; private variable str_TH; private variable i; private variable strFunctionName; private variable str_ZP; private variable str_FWCommand; private variable int_TotalParameters; private variable flt_Y_Position; private variable str_YP; private variable str_Z_Position; private variable strFunctionName_Cut; private variable str_XP; private variable int_Z_Position; private variable str_TM; private variable flt_Z_Position; private variable int_TotalChannels; private variable int_Count; private variable int_TotalYValues; private variable str_ChValue; private variable int_TotalZValues; private variable i_str_X_Position; private variable int_ChValue; private variable int_ChPatternLength; private variable str_SafeTravelHeight; private variable int_ChIndex; private variable arr_Parameters[]; private variable arr_ChPattern[]; // {{ 5 "Move_Channels_To_Absolute_Position" "InitLocals" // }} "" // {{ 453 1 0 "0c5309c7_89c9_4b5e_aba84e881040bc71" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 454 1 0 "35123262_d17f_446b_aa9dd903b3ccffd3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 455 1 0 "6b00e2a7_3cb6_4c01_bcf043080c84c0d4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 457 1 0 "7ee99627_6b9a_48ba_96914bad749897e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 458 1 0 "1c83844a_4367_4654_b4070a28a308e2dd" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 459 1 0 "cafc65db_ea3e_4527_9f736fe71a03f718" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 460 1 0 "9b934e84_2a08_4294_8c2fd6bf737c1d41" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 461 1 0 "5aff3373_e806_4df6_9c4d059d96a43555" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 462 1 0 "d585fb0b_169c_408c_be60d64232eb536b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 463 1 0 "35123262_d17f_446b_aa9dd903b3ccffd3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 464 1 0 "290ad16f_a913_4d29_97d232269583372a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 465 1 0 "c64fe919_c548_4f96_b28c7ea68c304d8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChannelPattern = StrConcat2(i_str_ChannelPattern, Translate("")); // }} "" // {{{ 466 1 0 "1deeb182_d73a_473e_87abb5ea2def1f42" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{{ 467 1 0 "5b828746_74fe_4655_ad50d5439e268301" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ChPatternLength = StrGetLength(i_str_ChannelPattern); // }} "" // {{ 468 1 0 "f2166a99_4b36_4ae6_870e240690910fe4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChPatternLength < int_TotalChannels) { // }} "" Trace("Channel Pattern: ",i_str_ChannelPattern); // {{{ 470 1 0 "9a5ab7e2_ab05_4a52_9c231eaef85f213b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Channel pattern is less than the total number of channels on the system!")); // }} "" // {{ 471 1 0 "f2166a99_4b36_4ae6_870e240690910fe4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 472 1 0 "2a51791b_6465_498a_9c9a4730f19b3814" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalYValues=i_arr_Y_Position.GetSize(); // }} "" // {{ 473 1 0 "cbbfc14e_9b00_4876_9f1ad1f69b9196d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalYValues < int_TotalChannels) { // }} "" // {{{ 474 1 0 "6c7eb953_7a55_432d_b7f2f1c4b9ece3c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Y Values"), i_arr_Y_Position); // }} "" // {{{ 475 1 0 "345c8d70_4691_497d_93a0d766ccd1b603" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("There are not enough values in the array for the Y Positions")); // }} "" // {{ 476 1 0 "cbbfc14e_9b00_4876_9f1ad1f69b9196d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 477 1 0 "0d87e761_d85b_4d3b_83bfc61de7647c78" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalZValues=i_arr_Z_Position.GetSize(); // }} "" // {{ 478 1 0 "c5fd6230_898f_44c3_9fe3ec6819e8b0e0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalZValues < int_TotalChannels) { // }} "" // {{{ 479 1 0 "9da0eddc_c4c5_4ba8_968aee35954dfa03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Z Values"), i_arr_Z_Position); // }} "" // {{{ 480 1 0 "2bf050cb_1bb4_425e_b79309ab8e84b129" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("There are not enough values in the array for the Z Positions")); // }} "" // {{ 481 1 0 "c5fd6230_898f_44c3_9fe3ec6819e8b0e0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 482 1 0 "290ad16f_a913_4d29_97d232269583372a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 483 1 0 "77c19676_e57d_4d7c_bbf5090c5b256574" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_SafeTravelHeight = i_flt_MinimumZHeightAtBegining; // }} "" // {{ 484 1 0 "e2de2bfb_ff4d_498d_846005884056673a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 485 1 0 "a8fafdb7_125f_4eae_9fc500af7b77ac16" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FWCommand = Translate("C0JM"); // }} "" // {{ 486 1 0 "b7081531_c7d2_4080_9818dc11c934600c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FWParameter = Translate(""); // }} "" // {{ 487 1 0 "96d6f622_48cb_4d8c_9607830b6a6cf3d4" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Parameters.SetSize(0); // }} "" // {{ 488 1 0 "b28fb61d_3da0_4944_ac8dd7ab729a1006" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 489 1 0 "6ab3142f_9764_452f_abff00202fe0b1af" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChPattern.SetSize(0); // }} "" // {{ 490 1 0 "14c62e1e_a131_44b7_84eb7104155713f0" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 491 1 0 "b11c8f7e_dc05_47f5_bf4c02a25edfbd03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChValue = StrLeft(i_str_ChannelPattern, int_ChIndex); // }} "" // {{{ 492 1 0 "c9b66123_932c_4144_9e4de3137c1bc1c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChValue = StrRight(str_ChValue, 1); // }} "" // {{{ 493 1 0 "3634f3dc_bb66_4e2d_b69bed1f88fff1f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ChValue = StrIVal(str_ChValue); // }} "" // {{ 494 1 0 "5a9560a2_22e2_4ac1_b60a15fc0977ae9e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.AddAsLast(int_ChValue); // }} "" // {{ 495 1 0 "14c62e1e_a131_44b7_84eb7104155713f0" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 496 1 0 "70877773_65ed_4307_bc63934b5859ed1a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TM = Translate("tm"); // }} "" // {{ 497 1 0 "3ba2d5d2_7748_4ba3_b1787918dcd54203" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 498 1 0 "104cf3ca_1001_40e5_ae2601cda6fc6b44" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 499 1 0 "e96bc810_88ec_460d_97570cd95648fb97" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TM = StrConcat2(str_TM, Translate(" ")); // }} "" // {{ 500 1 0 "104cf3ca_1001_40e5_ae2601cda6fc6b44" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 501 1 0 "98fb9d6e_de46_4d5e_b33a3af320fe7f23" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TM = StrConcat2(str_TM, arr_ChPattern.ElementAt( int_ChIndex -1)); // }} "" // {{ 502 1 0 "3ba2d5d2_7748_4ba3_b1787918dcd54203" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 503 1 0 "50e44c31_e8e0_42f8_9f08421adfbe9b01" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_TM); // }} "" // {{ 504 1 0 "b28fb61d_3da0_4944_ac8dd7ab729a1006" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 505 1 0 "cfaa6d94_f0ed_4087_a1e19360aad912b0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 506 1 0 "64c84607_dce9_4d76_a2f4428862f46c84" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_XP = Translate("xp"); // }} "" // {{ 507 1 0 "26a1d28c_8229_47d6_bdd055118865a8c5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" i_flt_X_Position = i_flt_X_Position * 10; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 508 1 0 "e18f3498_ccf4_4b63_984293153aad6612" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_int_X_Position = MthCeiling(i_flt_X_Position); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 509 1 0 "fcbe611e_0976_48e6_8eea8fd782f96e53" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_int_X_Position = MthFloor(i_flt_X_Position); // }} "" // {{{ 510 1 0 "e18e5de2_8f96_4832_92f45131ce01043b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_X_Position = StrConcat2(i_int_X_Position, Translate("")); // }} "" // {{{ 511 1 0 "6172e874_1a4a_4d3f_a701072a20a62046" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_X_Position = StrFillLeft(i_str_X_Position, Translate("0"), 5); // }} "" // {{{ 512 1 0 "af281060_8558_4a5e_8826b199d903b9ca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_XP = StrConcat4(str_XP, i_str_X_Position, Translate("&"), Translate("")); // }} "" // {{ 513 1 0 "7398c745_0539_4eef_94eac9aa701fa21f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_XP); // }} "" // {{ 514 1 0 "cfaa6d94_f0ed_4087_a1e19360aad912b0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 515 1 0 "8e234886_c9b5_4d40_81c00643f6d6f73f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 516 1 0 "46cfd617_ba54_4125_abbe41d153b1d317" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_YP = Translate("yp"); // }} "" // {{ 517 1 0 "8a1b3a94_3ba5_491a_8ae86096a642d67f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalYValues;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 518 1 0 "fd7f1ce1_4abd_4856_a734b68fcbb2ee1d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 519 1 0 "992086ec_38ad_4c29_a0651da3807b7814" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YP = StrConcat2(str_YP, Translate(" ")); // }} "" // {{ 520 1 0 "fd7f1ce1_4abd_4856_a734b68fcbb2ee1d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 521 1 0 "8e173cdc_8870_4817_b4364aafccfcc590" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_Y_Position=i_arr_Y_Position.GetAt(int_ChIndex-1); // }} "" // {{ 522 1 0 "a8a3c07d_b7d1_4ca3_8a4ad23e2120ce3f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Position = flt_Y_Position * 10; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 523 1 0 "f16f5fee_1ed2_4c36_8098ff4c32c11669" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Y_Position = MthCeiling(flt_Y_Position); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 524 1 0 "be37f038_f60e_447a_8f5129b85354c822" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Y_Position = MthFloor(flt_Y_Position); // }} "" // {{{ 525 1 0 "6cdb8bfd_e73e_4c99_a3c473c695774819" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Y_Position = StrConcat2(int_Y_Position, Translate("")); // }} "" // {{{ 526 1 0 "ffbbf990_0c5f_4f2f_93a6d917c3ccaa8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Y_Position = StrFillLeft(str_Y_Position, Translate("0"), 4); // }} "" // {{{ 527 1 0 "68f2a142_cc4a_478a_8d97b10711659bc6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YP = StrConcat4(str_YP, str_Y_Position, Translate(""), Translate("")); // }} "" // {{ 528 1 0 "8a1b3a94_3ba5_491a_8ae86096a642d67f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 529 1 0 "de94c9aa_cc2a_412b_a51138be8e5ad6af" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_YP); // }} "" // {{ 530 1 0 "8e234886_c9b5_4d40_81c00643f6d6f73f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 531 1 0 "603d2655_93b2_4877_86cf841821b0099d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 532 1 0 "145e585e_67f3_43f7_855dc7a0f7733691" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TH = Translate("th"); // }} "" // {{ 533 1 0 "cd68e15d_5a8f_4c87_b72610c8319ff27e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_SafeTravelHeight = flt_SafeTravelHeight * 10; // }} "" // {{{ 534 1 0 "d796ce1f_7103_4016_985aed15a984e000" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_SafeTravelHeight = MthCeiling(flt_SafeTravelHeight); // }} "" // {{{ 535 1 0 "232a1151_7a41_439d_aef9fe193522f537" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SafeTravelHeight = StrConcat2(int_SafeTravelHeight, Translate("")); // }} "" // {{{ 536 1 0 "62e6baaa_ad18_417d_a732b2cb3b1fd4af" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SafeTravelHeight = StrFillLeft(str_SafeTravelHeight, Translate("0"), 4); // }} "" // {{{ 537 1 0 "2707e7d3_efaa_4ce1_902c6af2560840c4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TH = StrConcat4(str_TH, str_SafeTravelHeight, Translate(""), Translate("")); // }} "" // {{ 538 1 0 "e845b6e4_1e8d_42dd_83be97d01270af21" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_TH); // }} "" // {{ 539 1 0 "603d2655_93b2_4877_86cf841821b0099d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 540 1 0 "8bb1b1e8_7156_4893_8a9418764a0bbf62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 541 1 0 "a87b2b4b_9c7c_4241_88366afa1bcb9034" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ZP = Translate("zp"); // }} "" // {{ 542 1 0 "b46377bf_edaf_485b_b82aaf941cf951c0" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalZValues;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 543 1 0 "3745f2b3_f43f_4ca9_a7eb7d64286b5269" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 544 1 0 "ee48df7d_34d2_4506_a268d609cffeb9b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZP = StrConcat2(str_ZP, Translate(" ")); // }} "" // {{ 545 1 0 "3745f2b3_f43f_4ca9_a7eb7d64286b5269" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 546 1 0 "5277a6ef_1590_423d_80a8ce7eaebdb36f" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_Z_Position=i_arr_Z_Position.GetAt(int_ChIndex-1); // }} "" // {{ 547 1 0 "9983d518_816d_4be1_97386822b0776c47" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Position = flt_Z_Position * 10; // }} "" // {{{ 548 1 0 "e0b00c4f_3f3e_4f01_8d41c4962227e643" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Z_Position = MthCeiling(flt_Z_Position); // }} "" // {{{ 549 1 0 "e3374866_c1d1_4a0b_806436267b5fa6c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Z_Position = StrConcat2(int_Z_Position, Translate("")); // }} "" // {{{ 550 1 0 "a8773445_fbf3_4427_86d14bced6ed6e3e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Z_Position = StrFillLeft(str_Z_Position, Translate("0"), 4); // }} "" // {{{ 551 1 0 "41a85799_8196_4542_b0d364df2ba53bc5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZP = StrConcat4(str_ZP, str_Z_Position, Translate(""), Translate("")); // }} "" // {{ 552 1 0 "b46377bf_edaf_485b_b82aaf941cf951c0" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 553 1 0 "fd334142_46a3_4f73_8926644e02b8222b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_ZP); // }} "" // {{ 554 1 0 "8bb1b1e8_7156_4893_8a9418764a0bbf62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 555 1 0 "b099615f_9367_4c90_98de7894412a461c" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalParameters=arr_Parameters.GetSize(); // }} "" // {{ 556 1 0 "5eefc37e_2f99_4a82_8cd628cda201f709" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalParameters;) { i = i + 1; // }} "" // {{{ 557 1 0 "8556399e_dcbc_47b7_9868c616128a316c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FWParameter = StrConcat2(str_FWParameter, arr_Parameters.ElementAt( i -1)); // }} "" // {{ 558 1 0 "5eefc37e_2f99_4a82_8cd628cda201f709" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" Trace("FW Command: ",str_FWCommand," : ",str_FWParameter); // {{ 560 1 0 "91307dc9_649a_484b_b9b3285692706c50" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("91307dc9_649a_484b_b9b3285692706c50"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 561 1 0 "ab892d7e_0d06_4a1a_b8d85e2357499ac1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{{ 5 "Move_Channels_To_Absolute_Position" "End" } // }} "" // {{{ 5 "Reset_Search_Z" "Begin" function Reset_Search_Z( device & ML_STAR ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; // {{ 5 "Reset_Search_Z" "InitLocals" // }} "" // {{ 844 1 0 "54a33f46_23ad_4d27_acb96466a0a34434" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 845 1 0 "ab3356de_8f6d_45a0_ac6ae775fac39a0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 846 1 0 "8a3387c2_d39c_4b16_bf35617f1257785b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 848 1 0 "d29bdaab_d3b2_47f3_8c129b8ce60ce409" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 849 1 0 "4a30dd18_dfe8_4c44_876d23c8f577ad65" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 850 1 0 "e65c3f36_7950_491e_b03348072e1110d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 851 1 0 "c53346d4_b278_412f_bca2fafea9f206f4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 852 1 0 "07008eae_857c_4405_8631c6afbd5f889a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 853 1 0 "d48e36eb_5d76_4f07_b51dfca8b1ce6e69" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 854 1 0 "ab3356de_8f6d_45a0_ac6ae775fac39a0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 855 1 0 "b45db223_ddc7_45c3_8cd4471483138db0" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("b45db223_ddc7_45c3_8cd4471483138db0"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 856 1 0 "782c5d3c_b400_44da_a8a374830875db14" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{{ 5 "Reset_Search_Z" "End" } // }} "" // {{{ 5 "Search_Z" "Begin" function Search_Z( device & ML_STAR, variable i_int_CurrentChannel, variable i_flt_Z_Min, variable i_flt_TipLength, variable i_int_Sensitivity, variable & o_flt_Z_Found ) variable { // }} "" private variable bool_ParamFound; private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable int_SeekHeight; private variable strFunctionName; private variable int_Channel; private variable flt_SeekHeight; private variable str_FirmwareParam; private variable flt_Z_MinPlusTip; private variable strFunctionName_Cut; private variable str_FirmwareCMND; private variable int_ErrorCode; private variable int_Count; private variable flt_Resolution_Z; private variable ret_WallFound; // {{ 5 "Search_Z" "InitLocals" o_flt_Z_Found = 0; // }} "" // {{ 858 1 0 "98570bc4_19fe_4872_bbecd2382ede813d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 859 1 0 "25b40f2c_6976_4558_8811e52cf870c5dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 861 1 0 "643ab493_1872_477e_b19db08fd37555ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 862 1 0 "53e88b28_044e_4d16_9db4eb5dc35507e4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 863 1 0 "a1dfd38a_0e97_4181_a7467eafa5fd287d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 864 1 0 "d2e92f58_bd8a_4420_92de107a14297986" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 865 1 0 "a854fb45_4ac9_4c0d_bf0a59b91f8be495" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 866 1 0 "1123ee7d_e001_40f0_a1afed83e5270ccd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 867 1 0 "98570bc4_19fe_4872_bbecd2382ede813d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 868 1 0 "ac6e6bce_f19a_4b99_a9ebdf1107a3eae4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Channel = i_int_CurrentChannel; // }} "" // {{{ 869 1 0 "179cacbb_7479_4160_8050f77aaa1cb030" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::GetChannelNumber(int_Channel); // }} "" // {{ 870 1 0 "a894e107_ad37_4329_927441e0cc2300e2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 871 1 0 "7ce49fc6_bc04_4f5f_abbda643a8421fc9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_Z = 0.01072765; // }} "" // {{ 872 1 0 "004b8ab0_0f70_482e_98c6fc2610a821ef" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 873 1 0 "2fbb7377_2c1d_440f_9d3c06623f465603" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_WallFound = 0; // }} "" // {{ 874 1 0 "a39603ab_cab0_489d_a06066e10f34c3d9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Z_MinPlusTip = i_flt_Z_Min + i_flt_TipLength; // }} "" // {{ 875 1 0 "d9bc1b2b_a6b6_4b56_9ef0bb1f009db9d9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_SeekHeight = flt_Z_MinPlusTip / (flt_Resolution_Z * 1.0); // }} "" // {{{ 876 1 0 "7fbba71d_9dbf_4dd3_a17ca7735773e53c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_SeekHeight = MthCeiling(flt_SeekHeight); // }} "" // {{ 877 1 0 "41a9f4dd_dd57_4fab_a5961040e0cc341a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_SeekHeight < 12584) { // }} "" // {{ 878 1 0 "200d487c_701b_45da_90a29e49384b1465" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_SeekHeight = 12584; // }} "" // {{ 879 1 0 "41a9f4dd_dd57_4fab_a5961040e0cc341a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 880 1 0 "835d8015_a96e_438e_9167b81985226772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("P"), int_Channel, Translate("ZG"), Translate("")); // }} "" // {{ 881 1 0 "bf9ac522_1ef9_471a_a72e3b4c7854d343" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("bf9ac522_1ef9_471a_a72e3b4c7854d343"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 882 1 0 "d0c99af4_44d7_4cb7_bb15364062250df2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{{ 883 1 0 "edc28cb1_9aea_44c6_846d988586190c5e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("P"), int_Channel, Translate("ZG"), Translate("")); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 884 1 0 "de08c0ca_be6f_4fd9_a8d0d93ccccb8fb9" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 885 1 0 "8334d914_2eb6_461b_bac6a6004852ea77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareParam = StrConcat4(Translate("za"), int_SeekHeight, Translate("zv01500zr005zw"), i_int_Sensitivity); // }} "" // {{ 886 1 0 "19a78278_fb8c_430a_a23cae80e09bae69" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 887 1 0 "fa1f2e7f_d618_4f97_a31d580fbb260be0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareParam = StrConcat4(Translate("za"), int_SeekHeight, Translate("zv03000zr005zw"), i_int_Sensitivity); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 888 1 0 "cc170063_83cf_4ac4_a3c0c0a8ee72142b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 889 1 0 "810ffbfc_c972_44ef_ab7485912aa14622" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareParam = StrConcat4(Translate("za"), int_SeekHeight, Translate("zv04500zr005zw"), i_int_Sensitivity); // }} "" // {{ 890 1 0 "4db35b5b_f6ac_4650_bdd1217a963f7b17" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("4db35b5b_f6ac_4650_bdd1217a963f7b17"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 891 1 0 "3bcd04f0_14c1_48da_ae1e8a47e13767b5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("er"), 1, 2, bool_ParamFound, int_ErrorCode); // }} "" // {{ 892 1 0 "db2bd7d5_b353_444f_9bf12303e2b8bead" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ErrorCode != 0) { // }} "" // {{ 893 1 0 "77cc0fb9_4d69_47b9_ab302e1669eed3d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_WallFound = 1; // }} "" // {{ 894 1 0 "db2bd7d5_b353_444f_9bf12303e2b8bead" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 895 1 0 "f515ca26_5124_4f2a_8131f4511e5de27b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{{ 896 1 0 "6eca3477_2809_4f3e_b7f7a30f53332e03" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetStopDiskZCoord(ML_STAR, i_int_CurrentChannel, o_flt_Z_Found); // }} "" // {{ 897 1 0 "d039b95e_1789_42dd_892c08b0962970e4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_Z_Found = o_flt_Z_Found - i_flt_TipLength; // }} "" // {{ 898 1 0 "e7743dab_8883_42d4_9d40930d810beee0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 899 1 0 "1d1eed8a_eb15_41a5_b808246d5b511513" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("P"), Translate("X"), Translate("AA"), Translate("")); // }} "" // {{{ 900 1 0 "bdd3f735_0972_4a1b_b569006b1ec8ec03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareParam = StrConcat8(Translate("zv12000"), Translate("zr075"), Translate("zw3"), Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{ 901 1 0 "3bb69fc3_70d2_44dd_8c78ccc6e045d1ba" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("3bb69fc3_70d2_44dd_8c78ccc6e045d1ba"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 902 1 0 "911825bd_393d_44c2_85a3c6a51e897ce7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{{ 903 1 0 "b30a91d1_26cc_4860_8731a8968739d89b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("P"), int_Channel, Translate("ZG"), Translate("")); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 904 1 0 "33d8226a_b527_46d6_8999a8809f9d23f5" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("33d8226a_b527_46d6_8999a8809f9d23f5"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 905 1 0 "b90bab36_b64f_4f21_92e185f2850c3570" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("b90bab36_b64f_4f21_92e185f2850c3570"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 906 1 0 "6194f508_a7ff_4402_b39e72e3b191fd02" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{{ 907 1 0 "a722d244_9fcd_4da9_bcb884eb02d549c5" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_WallFound); // }} "" // {{{ 5 "Search_Z" "End" } // }} "" // {{{ 5 "Get_Channel_Position_1mL" "Begin" function Get_Channel_Position_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable bol_ParameterFound; private variable strFunctionName; private variable str_FirmwarePARAM; private variable strFunctionName_Cut; private variable str_FirmwareCMND; private variable flt_Resolution_X; private variable flt_Resolution_Y; private variable int_Count; private variable str_CurrentChannel; private variable flt_Resolution_Z; private variable flt_ReturnValue; // {{ 5 "Get_Channel_Position_1mL" "InitLocals" o_X_Coord = 0; o_Y_Coord = 0; o_Z_Coord = 0; // }} "" // {{ 187 1 0 "daa75f5c_9522_4b58_930a0a6d7fd4330c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 188 1 0 "1f1f5a51_6e72_4996_b49e812baf95bfa7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 190 1 0 "1b1a8005_b7fc_4302_93815666d9761561" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 191 1 0 "bd196b88_17ff_4a10_be204dac789544d3" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 192 1 0 "6aa28391_671f_4b2d_b2cf6d30705a8412" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 193 1 0 "f0604e8a_5587_4148_b072b906c6d58353" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 194 1 0 "64505a23_a4e2_4587_90c93e97f04184d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 195 1 0 "943b5bb5_d694_4a5d_92793ef52e8a3828" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 196 1 0 "daa75f5c_9522_4b58_930a0a6d7fd4330c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 197 1 0 "7986593d_8c10_4598_94d5c114e7cbfa0c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 198 1 0 "80be88c8_b009_4ab0_b8be224537cc129f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_Z = 0.1; // }} "" // {{ 199 1 0 "2c84cb3a_eeba_4863_8bae0af7e43920a5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_Y = 0.1; // }} "" // {{ 200 1 0 "0f3e4416_ac52_4b0a_a83e871aca329ffc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_X = 0.1; // }} "" // {{ 201 1 0 "fa513b6f_2fd3_4dbb_8dd8cdbf84864a10" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 202 1 0 "6bfa998d_9699_4055_89918ebb03504881" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("C0RD"), Translate(""), Translate(""), Translate("")); // }} "" // {{{ 203 1 0 "430c7169_326c_41ce_8ce8d9370abd5aaa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChannel = StrConcat2(i_int_CurrentChannel, Translate("")); // }} "" // {{{ 204 1 0 "bc9ff2b9_6ec5_4215_a0737c0805f0875d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChannel = StrFillLeft(str_CurrentChannel, Translate("0"), 2); // }} "" // {{{ 205 1 0 "00477595_2572_4743_a3bfeec47a670409" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwarePARAM = StrConcat4(Translate("pn"), str_CurrentChannel, Translate(""), Translate("")); // }} "" // {{ 206 1 0 "b66cdf9d_e7da_4827_bd535b7bea166094" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("b66cdf9d_e7da_4827_bd535b7bea166094"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 207 1 0 "5ac49141_caf2_4dcc_8c00a3c256d847da" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{ 208 1 0 "255026d9_bc35_48ba_9a9007226576d73d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 209 1 0 "5cad8926_4cea_4feb_982114d117482469" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("rd"), flt_Resolution_Z, 4, bol_ParameterFound, flt_ReturnValue); // }} "" // {{ 210 1 0 "3c308526_fbf7_4dda_8b7e249eccdd235b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 211 1 0 "16a1b580_0b19_4229_8ae6d5e99af4e221" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_Z_Coord = flt_ReturnValue; // }} "" // {{ 212 1 0 "3c308526_fbf7_4dda_8b7e249eccdd235b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 213 1 0 "255026d9_bc35_48ba_9a9007226576d73d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 214 1 0 "e37b6eec_2cb5_486f_82c2da7d47fcb4b3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 215 1 0 "a16f1ecc_38e4_445e_8d30e7767fd9f562" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("C0RB"), Translate(""), Translate(""), Translate("")); // }} "" // {{{ 216 1 0 "31b8e798_0b53_453b_af6176308f0411c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChannel = StrConcat2(i_int_CurrentChannel, Translate("")); // }} "" // {{{ 217 1 0 "59c52dd5_3801_40b0_92ded84ea67e6efa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChannel = StrFillLeft(str_CurrentChannel, Translate("0"), 2); // }} "" // {{{ 218 1 0 "e12c4b17_ee98_4620_80784a9628ee23d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwarePARAM = StrConcat4(Translate("pn"), str_CurrentChannel, Translate(""), Translate("")); // }} "" // {{ 219 1 0 "51995bb9_c25e_4038_84921c864de88fbf" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("51995bb9_c25e_4038_84921c864de88fbf"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 220 1 0 "d0e94fcb_6606_404c_8f4ccc5343cf19a0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{ 221 1 0 "6812add1_b699_4e17_a30d67dfaae9f9cd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 222 1 0 "3612ee22_3d6f_4a6e_b7396a1c43f6f8d6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("rb"), flt_Resolution_Y, 4, bol_ParameterFound, flt_ReturnValue); // }} "" // {{ 223 1 0 "a2614c52_9fb1_44ec_99c23be303d7de58" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 224 1 0 "4d4c7a68_c4ad_4409_a48520e8de4dc04e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_Y_Coord = flt_ReturnValue; // }} "" // {{ 225 1 0 "a2614c52_9fb1_44ec_99c23be303d7de58" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 226 1 0 "6812add1_b699_4e17_a30d67dfaae9f9cd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 227 1 0 "29cdfbfc_ed4e_4596_b75b57f63d0804d7" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 228 1 0 "c6832dc4_fd74_4a76_bcd6fe4814ca7ed3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("C0"), Translate(""), Translate("RX"), Translate("")); // }} "" // {{ 229 1 0 "e45ea220_05ec_44b3_a283e250b13df33c" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("e45ea220_05ec_44b3_a283e250b13df33c"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 230 1 0 "95e011c4_54e8_4aa4_819a60c9330e9760" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{ 231 1 0 "c60d11e9_509c_4e70_8b5afbb0baae33fa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 232 1 0 "dfdecb5e_fd3a_4173_85e83c8d542a7a28" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("rx"), flt_Resolution_X, 5, bol_ParameterFound, flt_ReturnValue); // }} "" // {{ 233 1 0 "236f0001_670f_4bd7_b8e98fac1d5b36be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 234 1 0 "d1e68a46_7321_4433_8bbc8d2ae6e23caa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_X_Coord = flt_ReturnValue; // }} "" // {{ 235 1 0 "236f0001_670f_4bd7_b8e98fac1d5b36be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 236 1 0 "c60d11e9_509c_4e70_8b5afbb0baae33fa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(" ","Channel Number: ",i_int_CurrentChannel); Trace(" Current X Position: ",o_X_Coord); Trace(" Current Y Position: ",o_Y_Coord); Trace(" Current Z Position: ",o_Z_Coord); // {{{ 5 "Get_Channel_Position_1mL" "End" } // }} "" // {{{ 5 "Get_Channel_Position_5mL" "Begin" function Get_Channel_Position_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable bol_ParameterFound; private variable strFunctionName; private variable str_FirmwarePARAM; private variable strFunctionName_Cut; private variable str_FirmwareCMND; private variable flt_Resolution_X; private variable int_Count; private variable flt_Resolution_Y; private variable flt_Resolution_Z; private variable str_CurrentChannel; private variable flt_ReturnValue; // {{ 5 "Get_Channel_Position_5mL" "InitLocals" o_X_Coord = 0; o_Y_Coord = 0; o_Z_Coord = 0; // }} "" // {{ 239 1 0 "5f702af8_de5a_46c8_b56a71ff1e1538a9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 240 1 0 "a9840c82_4dbd_4971_ae1a8f747fdf84b0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 242 1 0 "75836450_ce3f_40c4_845f53bddae7b7cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 243 1 0 "93e04be1_2ea7_4389_b237f7c448905de6" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 244 1 0 "d88187f2_7afc_4e6b_957f957154a61af1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 245 1 0 "8027255c_4bf3_473f_b952cf8b4fdea78a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 246 1 0 "d2bd9f1e_e9ee_4df6_b676bd65c39d3656" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 247 1 0 "3fa2940b_2016_49bb_a3efa4a30979bf5e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 248 1 0 "5f702af8_de5a_46c8_b56a71ff1e1538a9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 249 1 0 "2efcf20f_0e15_4f76_b61cd2b9bafa827f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 250 1 0 "3878e6f2_1245_4d6d_b18f193c8088ffa9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_Z = 0.1; // }} "" // {{ 251 1 0 "33da65c4_b2d5_4045_9a72fe32a22036c5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_Y = 0.1; // }} "" // {{ 252 1 0 "cb97552f_ca9c_432d_b1d5c43018c9d9b7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_X = 0.1; // }} "" // {{ 253 1 0 "0f4c161b_38b3_460c_a6c84aab799721f7" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 254 1 0 "a1eb43cf_b422_4faf_95d185c2b1bca3d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("C0UD"), Translate(""), Translate(""), Translate("")); // }} "" // {{{ 255 1 0 "6a1c22cc_d741_4b44_ac8e16d1b2bb0be1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChannel = StrConcat2(i_int_CurrentChannel, Translate("")); // }} "" // {{{ 256 1 0 "fba842c6_f0a4_43e7_be2e55a49448ed83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChannel = StrFillLeft(str_CurrentChannel, Translate("0"), 1); // }} "" // {{{ 257 1 0 "63eddbf1_6dfd_4e74_b17af494e59c0997" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwarePARAM = StrConcat4(Translate("pm"), str_CurrentChannel, Translate(""), Translate("")); // }} "" // {{ 258 1 0 "e6fc3adb_5ee1_45d9_8a56c166eb692cd6" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("e6fc3adb_5ee1_45d9_8a56c166eb692cd6"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 259 1 0 "a2dcac72_a2a5_46cd_847ce579c2d22d9e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{ 260 1 0 "7152cd4a_412c_43c9_ad54224b0767e25c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 261 1 0 "af2f20a6_641b_40f3_8cf8c7d63bb82e20" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("rd"), flt_Resolution_Z, 4, bol_ParameterFound, flt_ReturnValue); // }} "" // {{ 262 1 0 "6e0970ef_5139_4e05_94c30e233f4f485b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 263 1 0 "c51c4013_5cc9_4244_a20680b99450396f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_Z_Coord = flt_ReturnValue; // }} "" // {{ 264 1 0 "6e0970ef_5139_4e05_94c30e233f4f485b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 265 1 0 "7152cd4a_412c_43c9_ad54224b0767e25c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 266 1 0 "ad5140c3_d9a3_47c8_aa0d77b453b71849" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 267 1 0 "f70e37ca_ecf6_4770_82af98ff70443dc5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("C0UB"), Translate(""), Translate(""), Translate("")); // }} "" // {{{ 268 1 0 "b3928049_ffed_4373_8850c44de7f50364" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChannel = StrConcat2(i_int_CurrentChannel, Translate("")); // }} "" // {{{ 269 1 0 "335644f3_0fbf_4aeb_991ce4da5dc3ff8a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChannel = StrFillLeft(str_CurrentChannel, Translate("0"), 1); // }} "" // {{{ 270 1 0 "e6cae7e7_726e_44ce_9921110433e5c174" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwarePARAM = StrConcat4(Translate("pm"), str_CurrentChannel, Translate(""), Translate("")); // }} "" // {{ 271 1 0 "c74ad185_a96e_465c_a5f54ad103fae927" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("c74ad185_a96e_465c_a5f54ad103fae927"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 272 1 0 "74700d80_7d41_4665_83d9af5b6e267117" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{ 273 1 0 "a338d474_fb6a_48ff_b9670eb0dc8f1cdf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 274 1 0 "08ec6b1b_d615_4681_b2f56b240aedd22b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("rb"), flt_Resolution_Y, 4, bol_ParameterFound, flt_ReturnValue); // }} "" // {{ 275 1 0 "caf1ca45_fef6_461e_ab4bb0e6711a1acd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 276 1 0 "3ece95ab_c2e1_4c53_89e295e80ee2ddd9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_Y_Coord = flt_ReturnValue; // }} "" // {{ 277 1 0 "caf1ca45_fef6_461e_ab4bb0e6711a1acd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 278 1 0 "a338d474_fb6a_48ff_b9670eb0dc8f1cdf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 279 1 0 "73fbdc9f_33f5_45e0_b3f3d8c07beb631b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 280 1 0 "20c1d87a_5907_4b17_81b59161d32bf35e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("C0"), Translate(""), Translate("RX"), Translate("")); // }} "" // {{ 281 1 0 "11669a50_5998_440b_bdc30077b35bf562" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("11669a50_5998_440b_bdc30077b35bf562"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 282 1 0 "c4134e17_ca3a_4fc7_842f3abd0525855b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{ 283 1 0 "0a20e396_8ed1_41f5_a4d18cf9c114bfb9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 284 1 0 "9ca06edf_85b2_44a2_a5ff283f5af4098b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("rx"), flt_Resolution_X, 5, bol_ParameterFound, flt_ReturnValue); // }} "" // {{ 285 1 0 "7b72af82_19e2_4d06_8f9555b3a641cbc9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 286 1 0 "2bb11dec_0c25_44a2_9e8fdf62d8b4c46e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_X_Coord = flt_ReturnValue; // }} "" // {{ 287 1 0 "7b72af82_19e2_4d06_8f9555b3a641cbc9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 288 1 0 "0a20e396_8ed1_41f5_a4d18cf9c114bfb9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(" ","Channel Number: ",i_int_CurrentChannel); Trace(" Current X Position: ",o_X_Coord); Trace(" Current Y Position: ",o_Y_Coord); Trace(" Current Z Position: ",o_Z_Coord); // {{{ 5 "Get_Channel_Position_5mL" "End" } // }} "" // {{{ 5 "Get_Tip_Present_1mL" "Begin" function Get_Tip_Present_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable bol_ParameterFound; private variable strFunctionName; private variable strFunctionName_Cut; private variable flt_Resolution; private variable int_Count; private variable flt_Value; private variable str_Firmware; // {{ 5 "Get_Tip_Present_1mL" "InitLocals" o_bool_TipPresent = 0; // }} "" // {{ 291 1 0 "6e4d9a46_bed8_4afd_a7b8d2f2655e3db0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 292 1 0 "e34494e3_e19e_4564_a3b7614ec9d7bec6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 294 1 0 "244866f1_ff0d_4c4b_82e6a7556d3f9e1c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 295 1 0 "e4914968_189e_4065_9f75978d6c7cb5c8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 296 1 0 "b6171ec9_ce8c_4223_87febd5d124c866b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 297 1 0 "dd9e2f8d_1c98_478d_91aa3c75402a4044" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 298 1 0 "324b01c0_0cc2_42f7_87b61be55fd26015" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 299 1 0 "6a08e286_9cb6_4340_9e352201ea96797b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 300 1 0 "6e4d9a46_bed8_4afd_a7b8d2f2655e3db0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 301 1 0 "6411dfac_3226_481b_af1e16eb3a6225d3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::GetChannelValue(i_int_CurrentChannel, i_int_CurrentChannel); // }} "" // {{ 302 1 0 "5d7415ff_debe_426d_a33ac6fb29bcc413" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bool_TipPresent = 0; // }} "" // {{ 303 1 0 "d0ab2e2b_843c_40aa_ace6bec7de391fea" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 304 1 0 "6e89a23b_3ad5_4e5d_9a9fbe27cbea74f7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution = 1; // }} "" // {{ 305 1 0 "75465e9b_aa5f_4a12_ab4f69b99fa1db84" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 306 1 0 "9cc547c6_66db_48fd_87e9c31816aed3c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Firmware = StrConcat4(Translate("P"), i_int_CurrentChannel, Translate("RT"), Translate("")); // }} "" // {{ 307 1 0 "d531ac8a_5146_4e9d_a9203a97c4cbfea9" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("d531ac8a_5146_4e9d_a9203a97c4cbfea9"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 308 1 0 "c09a97f0_6c3d_450d_ae8b1525d7c6c876" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{ 309 1 0 "6e1782d7_c0aa_458a_9e1fc670fe6ed78d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 310 1 0 "c1f72452_45c3_467d_8f753dcbca994a51" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("rt"), flt_Resolution, 1, bol_ParameterFound, flt_Value); // }} "" // {{ 311 1 0 "58dc44c9_c583_4442_b7d5b2209c639b9b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 312 1 0 "48eae4b0_5d4a_4321_91ebc95a39e7ac17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Value == 1.0) { // }} "" // {{ 313 1 0 "5f87e80b_6233_48a7_8fdb37dac977449a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bool_TipPresent = 1; // }} "" // {{ 314 1 0 "48eae4b0_5d4a_4321_91ebc95a39e7ac17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 315 1 0 "44b50d29_a94a_4fa6_a54caa6cc1625bc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bool_TipPresent = 0; // }} "" // {{ 316 1 0 "48eae4b0_5d4a_4321_91ebc95a39e7ac17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 317 1 0 "58dc44c9_c583_4442_b7d5b2209c639b9b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace(" ","Channel Number: ",i_int_CurrentChannel); Trace(" ","Tip Present: ",o_bool_TipPresent); // {{{ 5 "Get_Tip_Present_1mL" "End" } // }} "" // {{{ 5 "Get_Tip_Present_5mL" "Begin" function Get_Tip_Present_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable bol_ParameterFound; private variable strFunctionName; private variable strFunctionName_Cut; private variable flt_Resolution; private variable int_Count; private variable flt_Value; private variable str_Firmware; // {{ 5 "Get_Tip_Present_5mL" "InitLocals" o_bool_TipPresent = 0; // }} "" // {{ 320 1 0 "ebe08941_0805_40f8_9c24e5928accf34a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 321 1 0 "b458c7ac_0f64_44ba_b1639ab6495ce0b5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 323 1 0 "73478616_3f06_4f11_91a70e7c516dc71d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 324 1 0 "30ad3fbe_3621_4c00_ad6d4c9351892b26" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 325 1 0 "78d67337_bfb8_4656_92285af3baff60d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 326 1 0 "7a7649ff_b226_44d9_9563b1651633848b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 327 1 0 "9634b4c9_7f17_4ede_b2eb5ce08f7e9243" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 328 1 0 "f5214744_4bdc_4584_aec184124f73de45" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 329 1 0 "ebe08941_0805_40f8_9c24e5928accf34a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 330 1 0 "a4d43413_970b_4e7c_a6531e50ff9494b8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bool_TipPresent = 0; // }} "" // {{ 331 1 0 "4187790a_e82d_4bde_800d999e0ef8361f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 332 1 0 "6f3d64de_1c1c_4f90_8971c874d5ea21dc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution = 1; // }} "" // {{ 333 1 0 "34ada387_8ec8_4e3f_bc3fe1e3364b57ec" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 334 1 0 "9deaad02_16b3_4a0e_96f778d217ec90ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Firmware = StrConcat4(Translate("L"), i_int_CurrentChannel, Translate("RT"), Translate("")); // }} "" // {{ 335 1 0 "ca9a728d_4b3a_4cef_82cbab575444f50d" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("ca9a728d_4b3a_4cef_82cbab575444f50d"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 336 1 0 "e3114933_9345_4459_8903cc91211f7916" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{ 337 1 0 "7b9206ad_5c49_4055_b6612756249d0963" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 338 1 0 "11e362b1_875b_4490_ba0d41b1f51b8077" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("rt"), flt_Resolution, 1, bol_ParameterFound, flt_Value); // }} "" // {{ 339 1 0 "5b8834ba_2ea8_41a4_a132d97c5452e56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 340 1 0 "a3549dad_86fb_43f6_85d6aeb0bf9a966e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Value == 1.0) { // }} "" // {{ 341 1 0 "2d4acdf4_ab3d_4384_9c7743375fd3a607" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bool_TipPresent = 1; // }} "" // {{ 342 1 0 "a3549dad_86fb_43f6_85d6aeb0bf9a966e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 343 1 0 "5e51d091_f831_44be_b97f9f92676c19e9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bool_TipPresent = 0; // }} "" // {{ 344 1 0 "a3549dad_86fb_43f6_85d6aeb0bf9a966e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 345 1 0 "5b8834ba_2ea8_41a4_a132d97c5452e56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace(" ","Channel Number: ",i_int_CurrentChannel); Trace(" ","Tip Present: ",o_bool_TipPresent); // {{{ 5 "Get_Tip_Present_5mL" "End" } // }} "" // {{{ 5 "Get_Tip_Volume_1mL" "Begin" function Get_Tip_Volume_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable bol_ParameterFound; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_TotalFound; private variable flt_Resolution; private variable int_Count; private variable str_Firmware; private variable arr_Values[]; // {{ 5 "Get_Tip_Volume_1mL" "InitLocals" o_flt_MaxTipVolume = 0; o_flt_CurrentVolumeInTip = 0; // }} "" // {{ 348 1 0 "3ee0c97a_da9a_43fd_ae1f5b4082ee17ea" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 349 1 0 "d631ef7a_41fa_48b7_ae5c75aa56f1068c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 351 1 0 "6e417cde_5e19_4520_81339654991b1a0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 352 1 0 "959db750_25c8_4c48_a6d5b9356c72811e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 353 1 0 "3c7eac3b_3de2_4fd9_99af5a3e5270fb28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 354 1 0 "f05cfd79_d9a1_4f40_bf1bf1733fef292b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 355 1 0 "2f8a567f_e0e9_40ba_a436c4582d5e4fef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 356 1 0 "e49d9f93_7e8a_43bd_b91082037efb041c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 357 1 0 "3ee0c97a_da9a_43fd_ae1f5b4082ee17ea" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 358 1 0 "12978e38_eaaa_48c5_b848e7dfedf2c430" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::GetChannelValue(i_int_CurrentChannel, i_int_CurrentChannel); // }} "" // {{ 359 1 0 "0f9bc4ef_90b7_471d_a02454c108fb6b28" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_MaxTipVolume = 0.0; // }} "" // {{ 360 1 0 "633bea17_8e27_4f7e_a79481ac158d9bba" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentVolumeInTip = 0.0; // }} "" // {{ 361 1 0 "064bb57b_8c44_4f20_bffdff8481c3c835" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 362 1 0 "baff7fe7_d23e_4347_a04253806b5248b6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution = 0.046876; // }} "" // {{ 363 1 0 "7071fdcd_1a09_45fb_b33b912a9aeed47b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 364 1 0 "4f1f6946_17b6_49b2_b7de0e9f0b735f1e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Firmware = StrConcat4(Translate("P"), i_int_CurrentChannel, Translate("QC"), Translate("")); // }} "" // {{ 365 1 0 "1919c242_4efe_4170_8249723caa047241" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("1919c242_4efe_4170_8249723caa047241"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 366 1 0 "0b8a1a77_709c_4973_9001dc87f0b712ab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{ 367 1 0 "843fc8cf_084a_4950_bd30db10a9444197" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 368 1 0 "26deb7aa_90da_4b90_85aecfbb8931b1a6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate("qc"), flt_Resolution, 5, 2, bol_ParameterFound, arr_Values); // }} "" // {{ 369 1 0 "d361375d_4d7a_4d0f_9e15322abb27f774" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalFound=arr_Values.GetSize(); // }} "" // {{ 370 1 0 "602cc5d9_8f80_4754_ae5d75957c735c6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalFound >= 1) { // }} "" // {{ 371 1 0 "02bfd6c7_97e5_43c8_a5200df05d8d2c2d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 372 1 0 "40417a38_2fb7_4a9d_8cc0b8f5bdcb8f7b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_MaxTipVolume = arr_Values.ElementAt( 1 -1); // }} "" // {{{ 373 1 0 "e0e6f9c8_e39c_4edd_b3c6815d9c545257" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::RemoveExcessDigits(o_flt_MaxTipVolume); // }} "" // {{ 374 1 0 "02bfd6c7_97e5_43c8_a5200df05d8d2c2d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 375 1 0 "602cc5d9_8f80_4754_ae5d75957c735c6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 376 1 0 "0305cb6b_2e64_46d9_b0f0ce445113d931" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 377 1 0 "c49ee5b7_e2af_4ec4_99622f2231581167" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalFound >= 2) { // }} "" // {{ 378 1 0 "6c6a3bb1_4ed1_45b4_b6506ec4df33dcc7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 379 1 0 "45f80962_620f_4fcc_994ddc00606316e3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentVolumeInTip = arr_Values.ElementAt( 2 -1); // }} "" // {{{ 380 1 0 "ce6efb3b_bebf_4204_8c54682a1c04a672" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::RemoveExcessDigits(o_flt_CurrentVolumeInTip); // }} "" // {{ 381 1 0 "6c6a3bb1_4ed1_45b4_b6506ec4df33dcc7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 382 1 0 "c49ee5b7_e2af_4ec4_99622f2231581167" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace(" ","Channel Number: ",i_int_CurrentChannel); Trace(" ","Max tip volume: ",o_flt_MaxTipVolume," uL"); Trace(" ","Current tip volume: ",o_flt_CurrentVolumeInTip," uL"); // {{{ 5 "Get_Tip_Volume_1mL" "End" } // }} "" // {{{ 5 "Get_Tip_Volume_5mL" "Begin" function Get_Tip_Volume_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable bol_ParameterFound; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_TotalFound; private variable flt_Resolution; private variable int_Count; private variable str_Firmware; private variable arr_Values[]; // {{ 5 "Get_Tip_Volume_5mL" "InitLocals" o_flt_MaxTipVolume = 0; o_flt_CurrentVolumeInTip = 0; // }} "" // {{ 385 1 0 "a7408c9a_3441_44d0_a43f37d2d56d713a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 386 1 0 "d87b5b19_87fd_4f06_a396c845190a6c0a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 388 1 0 "8798de9e_e91b_450e_ab5cf9bc6f286ef2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 389 1 0 "6b5d2070_8319_46c3_ba3584aa342f97dc" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 390 1 0 "25e109e8_def8_4d7a_92f5d3713bf081d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 391 1 0 "963fc8c4_6061_48fe_a0dd6e835a720893" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 392 1 0 "639fba65_d1cd_469e_bc39964eee587218" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 393 1 0 "92916e58_8506_45be_b74844d6cdc22a43" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 394 1 0 "a7408c9a_3441_44d0_a43f37d2d56d713a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 395 1 0 "3c5ebd5f_6009_4f46_8d3a6875c9197be1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_MaxTipVolume = 0.0; // }} "" // {{ 396 1 0 "f41b6630_688a_4021_b1a06ecaff60cefa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentVolumeInTip = 0.0; // }} "" // {{ 397 1 0 "859de34c_cf82_4b5a_a1d1347747fa6f87" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 398 1 0 "7bfe46e8_4305_4057_a38755c54c5b1c82" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution = 0.044711063; // }} "" // {{ 399 1 0 "0255bcf1_2d40_4b94_89e7eb7064e5640e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 400 1 0 "8908e946_a9fe_49ad_88e0c02b6e8b01a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Firmware = StrConcat4(Translate("L"), i_int_CurrentChannel, Translate("QC"), Translate("")); // }} "" // {{ 401 1 0 "c1fe4891_7471_43f8_92fa2d6eb7cd599f" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("c1fe4891_7471_43f8_92fa2d6eb7cd599f"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 402 1 0 "102a30e6_22c3_433b_924d604694656507" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{ 403 1 0 "3c121a11_7a02_4344_95cb25ef0af781c2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 404 1 0 "d40c82e2_aa4b_40eb_bd46fcff24581553" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate("qc"), flt_Resolution, 5, 2, bol_ParameterFound, arr_Values); // }} "" // {{ 405 1 0 "f8157c5c_b590_465e_93c9b70a7e41e1c8" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalFound=arr_Values.GetSize(); // }} "" // {{ 406 1 0 "a5166e52_64b5_4d8b_94cb7765e6495e21" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalFound >= 1) { // }} "" // {{ 407 1 0 "e1ac2ae5_42d7_4b4f_a30d7f700250392d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 408 1 0 "913f884c_f890_4431_985528e38d39b827" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_MaxTipVolume = arr_Values.ElementAt( 1 -1); // }} "" // {{{ 409 1 0 "0e1d81de_9cfd_4673_99d210a20780994f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::RemoveExcessDigits(o_flt_MaxTipVolume); // }} "" // {{ 410 1 0 "e1ac2ae5_42d7_4b4f_a30d7f700250392d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 411 1 0 "a5166e52_64b5_4d8b_94cb7765e6495e21" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 412 1 0 "5b887ece_26b3_4ce0_b8046c4b9aa46278" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 413 1 0 "6eb3f6af_090f_4915_862d4aefaabb599c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalFound >= 2) { // }} "" // {{ 414 1 0 "11573ead_57b7_4d4e_b8fe424521cffe9e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 415 1 0 "044a6b2e_cfac_48a8_8553812629e0ee62" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentVolumeInTip = arr_Values.ElementAt( 2 -1); // }} "" // {{{ 416 1 0 "58947471_303d_4618_8cc053d85d75f172" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::RemoveExcessDigits(o_flt_CurrentVolumeInTip); // }} "" // {{ 417 1 0 "11573ead_57b7_4d4e_b8fe424521cffe9e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 418 1 0 "6eb3f6af_090f_4915_862d4aefaabb599c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace(" ","Channel Number: ",i_int_CurrentChannel); Trace(" ","Max tip volume: ",o_flt_MaxTipVolume," uL"); Trace(" ","Current tip volume: ",o_flt_CurrentVolumeInTip," uL"); // {{{ 5 "Get_Tip_Volume_5mL" "End" } // }} "" // {{{ 5 "InitializeDispenseDrive_1mL" "Begin" function InitializeDispenseDrive_1mL( device & ML_STAR, variable i_int_CurrentChannel ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable str_Firmware; // {{ 5 "InitializeDispenseDrive_1mL" "InitLocals" // }} "" // {{ 421 1 0 "e1a78fba_4e50_4d2e_8c50548a4ba72148" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 422 1 0 "6b2614be_eac0_4f77_9d1432b01988222d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 424 1 0 "4ca8c88a_49c4_4733_ae1bce07ca08423d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 425 1 0 "c7db43c2_2471_42ac_a859a6d243c51214" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 426 1 0 "163d6f07_b2b4_418d_9903e62bd90f08d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 427 1 0 "f7a28463_dcc7_42ac_a761bd73c044359b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 428 1 0 "165447ba_3f1a_43f3_a5e5768437321e48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 429 1 0 "7c2da12e_6502_408a_bfb5655bf25b0ddd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 430 1 0 "e1a78fba_4e50_4d2e_8c50548a4ba72148" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 431 1 0 "acd73585_541e_4048_9d2faa84bd282531" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::GetChannelValue(i_int_CurrentChannel, i_int_CurrentChannel); // }} "" // {{ 432 1 0 "b35066dd_7526_4143_b6db2ee25c4b7542" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 433 1 0 "3131dbab_c783_4fae_9d1ffadcc2db1661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Firmware = StrConcat4(Translate("P"), i_int_CurrentChannel, Translate("DI"), Translate("")); // }} "" // {{ 434 1 0 "5bbb7af7_740b_449d_acadf2a93dc0aa82" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("5bbb7af7_740b_449d_acadf2a93dc0aa82"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 435 1 0 "bf03f0fd_c3c0_4f61_83c676fdeee1101a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{{ 5 "InitializeDispenseDrive_1mL" "End" } // }} "" // {{{ 5 "InitializeDispenseDrive_5mL" "Begin" function InitializeDispenseDrive_5mL( device & ML_STAR, variable i_int_CurrentChannel ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable str_Firmware; // {{ 5 "InitializeDispenseDrive_5mL" "InitLocals" // }} "" // {{ 437 1 0 "c548bcf3_5793_4a03_95f36c4ffee319d5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 438 1 0 "fe74a87f_df0a_476f_85100051db5258a9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 440 1 0 "9edbd6c5_83bf_4dc9_8dcdb1a9bfb8422d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 441 1 0 "d84a96db_0373_4559_a0c794e941e9d880" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 442 1 0 "b2f6f79a_f998_48b6_82d458e86045a46e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 443 1 0 "c27ccd9a_8172_41fe_b7b7cf5160111269" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 444 1 0 "74550b5f_29bb_460f_a376b8f7c38b9e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 445 1 0 "e0b5ad5b_0d9e_4ce1_9c64b8c3929dbb80" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 446 1 0 "c548bcf3_5793_4a03_95f36c4ffee319d5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 447 1 0 "892cc97b_6e5d_4024_8c5946d7f29d0abc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::GetChannelValue(i_int_CurrentChannel, i_int_CurrentChannel); // }} "" // {{ 448 1 0 "d9b4e7e1_e501_487f_9dbc855000bc14fb" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 449 1 0 "277814e2_3409_405d_a588ac8e30b1489c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Firmware = StrConcat4(Translate("L"), i_int_CurrentChannel, Translate("DI"), Translate("")); // }} "" // {{ 450 1 0 "5e0efe0e_f7ec_432a_8daf9a6b4c119545" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("5e0efe0e_f7ec_432a_8daf9a6b4c119545"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 451 1 0 "2e2400a1_85bb_4361_9dd7f747506f1547" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{{ 5 "InitializeDispenseDrive_5mL" "End" } // }} "" // {{{ 5 "Move_Channels_To_Absolute_Position_1mL" "Begin" function Move_Channels_To_Absolute_Position_1mL( device & ML_STAR, variable i_str_ChannelPattern, variable i_flt_MinimumZHeightAtBegining, variable & i_arr_X_Position[], variable & i_arr_Y_Position[], variable & i_arr_Z_Position[] ) void { // }} "" private variable int_SafeTravelHeight; private variable str_ReturnValue; private variable flt_X_Position; private variable str_Y_Position; private variable flt_SafeTravelHeight; private variable int_CutNum; private variable str_FWParameter; private variable int_Length; private variable int_Y_Position; private variable str_TH; private variable i; private variable strFunctionName; private variable str_ZP; private variable str_FWCommand; private variable str_Z_Position; private variable flt_Y_Position; private variable str_YP; private variable int_TotalParameters; private variable strFunctionName_Cut; private variable str_XP; private variable int_Z_Position; private variable str_TM; private variable flt_Z_Position; private variable int_TotalChannels; private variable str_X_Position; private variable int_TotalXValues; private variable int_Count; private variable int_TotalYValues; private variable str_ChValue; private variable int_X_Position; private variable int_ChValue; private variable int_TotalZValues; private variable int_ChPatternLength; private variable str_SafeTravelHeight; private variable int_ChIndex; private variable arr_Parameters[]; private variable arr_ChPattern[]; // {{ 5 "Move_Channels_To_Absolute_Position_1mL" "InitLocals" // }} "" // {{ 563 1 0 "a588c555_b86b_4e0d_bb2ffa1304a6e693" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 564 1 0 "bf019c1e_29a3_469b_bc58f920a3a59f78" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 565 1 0 "e70f918b_2e66_4981_85ab2310f121dba5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 567 1 0 "40ccd8a8_89b7_4464_85f78c712bfde13d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 568 1 0 "877a2cf7_34b8_4f1b_8f0baa63d0f14c41" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 569 1 0 "b35908d6_8db9_4552_98a63885a3845b6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 570 1 0 "d41e26f7_7ea5_431e_bd334559915dd464" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 571 1 0 "aba92164_eb84_4269_bfd13f18227d67fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 572 1 0 "afd3695e_3d30_4ab8_ac6a070a19faccd8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 573 1 0 "bf019c1e_29a3_469b_bc58f920a3a59f78" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 574 1 0 "a2c65ac4_f3f8_4b61_94b90d13dbc09b9c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 575 1 0 "7f778ec6_17d7_486c_a6db37aead78f894" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChannelPattern = StrConcat2(i_str_ChannelPattern, Translate("")); // }} "" // {{{ 576 1 0 "78611882_2d73_4216_a128807729d6a534" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{{ 577 1 0 "0f4bd06c_62bb_4dcf_b915bd1bc9973a98" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ChPatternLength = StrGetLength(i_str_ChannelPattern); // }} "" // {{ 578 1 0 "7320b0d6_40cc_48e3_926c6e132eb14384" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChPatternLength < int_TotalChannels) { // }} "" Trace("Channel Pattern: ",i_str_ChannelPattern); // {{{ 580 1 0 "3469dff0_c6ad_4d39_bde15c017fcf2144" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Channel pattern is less than the total number of channels on the system!")); // }} "" // {{ 581 1 0 "7320b0d6_40cc_48e3_926c6e132eb14384" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 582 1 0 "a837be14_7a69_4f75_82baf48adae698bf" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalXValues=i_arr_X_Position.GetSize(); // }} "" // {{ 583 1 0 "efc2d000_dd54_49f2_b6bec8d58cc5b326" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalXValues < int_TotalChannels) { // }} "" // {{{ 584 1 0 "f1147cde_5241_470f_96ce1f367db8a008" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("X Values"), i_arr_X_Position); // }} "" // {{{ 585 1 0 "e2c6f617_5af1_41be_88491d47ecb7bd20" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("There are not enough values in the array for the X Positions")); // }} "" // {{ 586 1 0 "efc2d000_dd54_49f2_b6bec8d58cc5b326" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 587 1 0 "38657fc1_c650_4f29_98471c2852a810bb" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalYValues=i_arr_Y_Position.GetSize(); // }} "" // {{ 588 1 0 "aee8d8ea_032c_4de7_9cd574d8704c12c5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalYValues < int_TotalChannels) { // }} "" // {{{ 589 1 0 "53119b24_febf_4c8d_aa8c53c7f0348ff1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Y Values"), i_arr_Y_Position); // }} "" // {{{ 590 1 0 "b9048a90_d65c_4870_8ae0c34a196cfc6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("There are not enough values in the array for the Y Positions")); // }} "" // {{ 591 1 0 "aee8d8ea_032c_4de7_9cd574d8704c12c5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 592 1 0 "64793eb5_8aaa_4977_b015824bc68ad165" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalZValues=i_arr_Z_Position.GetSize(); // }} "" // {{ 593 1 0 "74237475_7a00_4c65_af2609d24885300d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalZValues < int_TotalChannels) { // }} "" // {{{ 594 1 0 "53ebf0fe_0a50_45ed_8712ce0183de3fca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Z Values"), i_arr_Z_Position); // }} "" // {{{ 595 1 0 "46ae07a6_9917_4e78_bb7f1d19c51133bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("There are not enough values in the array for the Z Positions")); // }} "" // {{ 596 1 0 "74237475_7a00_4c65_af2609d24885300d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 597 1 0 "a2c65ac4_f3f8_4b61_94b90d13dbc09b9c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 598 1 0 "8a8faa46_af5b_46bd_9f8d25050015e1f8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_SafeTravelHeight = i_flt_MinimumZHeightAtBegining; // }} "" // {{ 599 1 0 "6e9be8aa_4225_4393_a3bac9e56be8b88c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 600 1 0 "b61e43e5_a983_493e_b15c8c1fcb51cd7a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FWCommand = Translate("C0JM"); // }} "" // {{ 601 1 0 "6b1b9a53_215e_44bf_ac808ec3f7021e35" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FWParameter = Translate(""); // }} "" // {{ 602 1 0 "bdfa93bc_4882_474b_ab8f42cd4b1b435c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Parameters.SetSize(0); // }} "" // {{ 603 1 0 "f22e05c9_9c83_48cd_99a0c729a7f780ee" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 604 1 0 "6f3d28ac_212c_4209_b2e1762e55782e44" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChPattern.SetSize(0); // }} "" // {{ 605 1 0 "cb7e3195_f3f7_4989_b1d9d0dee11e3f38" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 606 1 0 "4a95f35e_9f1a_425f_91ed02dfce5b2201" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChValue = StrLeft(i_str_ChannelPattern, int_ChIndex); // }} "" // {{{ 607 1 0 "e93cc5ff_9352_4790_8c79345f82b832a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChValue = StrRight(str_ChValue, 1); // }} "" // {{{ 608 1 0 "daac779b_0dfb_40a3_99b4609d87bf5923" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ChValue = StrIVal(str_ChValue); // }} "" // {{ 609 1 0 "04805c4b_d800_452d_81facc0b4ac200d5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.AddAsLast(int_ChValue); // }} "" // {{ 610 1 0 "cb7e3195_f3f7_4989_b1d9d0dee11e3f38" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 611 1 0 "20dc4913_ead5_4842_b948c7dc2f4d72bf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TM = Translate("tm"); // }} "" // {{ 612 1 0 "f35cadf4_bb3b_4861_aff0acee4e704693" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 613 1 0 "9879cbc5_1c69_4cb9_b4df36ea0ffeab10" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 614 1 0 "48ad7ff3_39ba_484d_8ec22416c6153b31" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TM = StrConcat2(str_TM, Translate(" ")); // }} "" // {{ 615 1 0 "9879cbc5_1c69_4cb9_b4df36ea0ffeab10" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 616 1 0 "d79a1e7f_c00d_47f3_a4c37621203329c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TM = StrConcat2(str_TM, arr_ChPattern.ElementAt( int_ChIndex -1)); // }} "" // {{ 617 1 0 "f35cadf4_bb3b_4861_aff0acee4e704693" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 618 1 0 "8c53c3ab_c519_4b97_8506c46234e8ae4e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_TM); // }} "" // {{ 619 1 0 "f22e05c9_9c83_48cd_99a0c729a7f780ee" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 620 1 0 "25a512d9_c30b_487f_b83c5093c0fe6c1e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 621 1 0 "6e82c7e9_0972_4a07_8f97beb8744dca5c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_XP = Translate("xp"); // }} "" // {{ 622 1 0 "0713c8bd_5231_45ec_8be2db64168b424a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 623 1 0 "3ed8373e_c1fa_41b9_bb4c68dd0f47c232" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 624 1 0 "571914d2_65e5_4e4a_b67c7d6b59a284b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_XP = StrConcat2(str_XP, Translate(" ")); // }} "" // {{ 625 1 0 "3ed8373e_c1fa_41b9_bb4c68dd0f47c232" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 626 1 0 "815e6666_d1c7_42d9_95a5624ce6d4a3be" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_X_Position=i_arr_X_Position.GetAt(int_ChIndex-1); // }} "" // {{ 627 1 0 "2c2730bd_1710_44fe_92559cb477c7509c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_X_Position = flt_X_Position * 10; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 628 1 0 "afa3b9f5_460e_4f61_bed4a0f707030310" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_X_Position = MthCeiling(flt_X_Position); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 629 1 0 "0f0c97ac_ac7f_4d46_bc090e99c56c9ff0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_X_Position = MthFloor(flt_X_Position); // }} "" // {{{ 630 1 0 "56928e2f_b1ee_45bb_878c3cedc8433e25" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_X_Position = StrConcat2(int_X_Position, Translate("")); // }} "" // {{{ 631 1 0 "ec84d574_6168_495e_983fa3a4602de06a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_X_Position = StrFillLeft(str_X_Position, Translate("0"), 5); // }} "" // {{{ 632 1 0 "a577540f_2708_4063_90089b0ad0f0944e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_XP = StrConcat4(str_XP, str_X_Position, Translate(""), Translate("")); // }} "" // {{ 633 1 0 "0713c8bd_5231_45ec_8be2db64168b424a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 634 1 0 "b8c07111_1e45_4dc1_9bd72936d23fdf36" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_XP); // }} "" // {{ 635 1 0 "25a512d9_c30b_487f_b83c5093c0fe6c1e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 636 1 0 "85e489e7_e062_4745_b05b04dc7b76407a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 637 1 0 "8386c4a9_625a_4c8f_82857e99b534fcb7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_YP = Translate("yp"); // }} "" // {{ 638 1 0 "e1864b69_0432_49a3_aff161426f0529c9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 639 1 0 "6a427fe7_b184_4e81_835d3c57fa70031f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 640 1 0 "08473a86_3b35_4776_b67c981b4720bfb9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YP = StrConcat2(str_YP, Translate(" ")); // }} "" // {{ 641 1 0 "6a427fe7_b184_4e81_835d3c57fa70031f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 642 1 0 "7c4ddfd2_4c1a_4a9d_9cf3a9a98e961296" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_Y_Position=i_arr_Y_Position.GetAt(int_ChIndex-1); // }} "" // {{ 643 1 0 "4132cb13_cff3_4dde_84ff9586dea42e40" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Position = flt_Y_Position * 10; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 644 1 0 "c6b026b6_b9ca_481c_aceb46b59682b740" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Y_Position = MthCeiling(flt_Y_Position); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 645 1 0 "e5048167_0cb7_4364_91cc420f16a410bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Y_Position = MthFloor(flt_Y_Position); // }} "" // {{{ 646 1 0 "2fccfc44_5ddb_465b_a60d5bfb91a21c89" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Y_Position = StrConcat2(int_Y_Position, Translate("")); // }} "" // {{{ 647 1 0 "52bcdce5_08ad_4f72_9287278b84ef6714" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Y_Position = StrFillLeft(str_Y_Position, Translate("0"), 4); // }} "" // {{{ 648 1 0 "c0018559_e2bf_44a2_b62de99292bd88b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YP = StrConcat4(str_YP, str_Y_Position, Translate(""), Translate("")); // }} "" // {{ 649 1 0 "e1864b69_0432_49a3_aff161426f0529c9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 650 1 0 "62b5276c_36cd_4487_91e242b7313337ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_YP); // }} "" // {{ 651 1 0 "85e489e7_e062_4745_b05b04dc7b76407a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 652 1 0 "1d8d8d67_c48d_401b_ae5e4f0871e7e510" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 653 1 0 "9df0230e_162a_4995_824ce770fee0b6bd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TH = Translate("th"); // }} "" // {{ 654 1 0 "ae142342_e1b3_4823_91da69f3e15cbd51" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_SafeTravelHeight = flt_SafeTravelHeight * 10; // }} "" // {{{ 655 1 0 "ca9198ca_1446_4a8d_85ab1fc0ab96a271" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_SafeTravelHeight = MthCeiling(flt_SafeTravelHeight); // }} "" // {{{ 656 1 0 "56f5126c_753e_4856_b263a81e5c906bcf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SafeTravelHeight = StrConcat2(int_SafeTravelHeight, Translate("")); // }} "" // {{{ 657 1 0 "fc7dc944_e667_4e9c_bc9530c5be4a7df5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SafeTravelHeight = StrFillLeft(str_SafeTravelHeight, Translate("0"), 4); // }} "" // {{{ 658 1 0 "03139909_b1f1_40fc_86e71504d79ef25b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TH = StrConcat4(str_TH, str_SafeTravelHeight, Translate(""), Translate("")); // }} "" // {{ 659 1 0 "bd448ab1_7fd1_4acc_b3ccea41218287b1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_TH); // }} "" // {{ 660 1 0 "1d8d8d67_c48d_401b_ae5e4f0871e7e510" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 661 1 0 "9331f652_d951_4f90_86105d1f446e3485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 662 1 0 "54eb5cfa_bc53_4436_a7a01d516bd2a0ae" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ZP = Translate("zp"); // }} "" // {{ 663 1 0 "47e01f6c_3784_4061_986f9f3b901bc5e1" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 664 1 0 "692d6818_7e17_408b_8f53b4cb45ef6dae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 665 1 0 "4c66e457_8543_423d_a7780ef77e8a17de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZP = StrConcat2(str_ZP, Translate(" ")); // }} "" // {{ 666 1 0 "692d6818_7e17_408b_8f53b4cb45ef6dae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 667 1 0 "ecb4151c_0f4a_432f_8d699069b6d1658a" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_Z_Position=i_arr_Z_Position.GetAt(int_ChIndex-1); // }} "" // {{ 668 1 0 "cc1a861d_b9ee_449d_afecd25571f15bd1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Position = flt_Z_Position * 10; // }} "" // {{{ 669 1 0 "c356e5e8_d769_4f2f_91862745b283c3a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Z_Position = MthCeiling(flt_Z_Position); // }} "" // {{{ 670 1 0 "a9b1e4db_5f9c_498f_8f19e2d5eff41820" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Z_Position = StrConcat2(int_Z_Position, Translate("")); // }} "" // {{{ 671 1 0 "dfe90122_1d98_4dcd_93fc34fbfe0a21d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Z_Position = StrFillLeft(str_Z_Position, Translate("0"), 4); // }} "" // {{{ 672 1 0 "e0ddd0f2_1147_4420_9dbfc9ba83acaf81" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZP = StrConcat4(str_ZP, str_Z_Position, Translate(""), Translate("")); // }} "" // {{ 673 1 0 "47e01f6c_3784_4061_986f9f3b901bc5e1" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 674 1 0 "3eed8bcb_cfd8_434a_ba668db633244df9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_ZP); // }} "" // {{ 675 1 0 "9331f652_d951_4f90_86105d1f446e3485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 676 1 0 "fdbd614e_eb12_4600_98179e849efa1eae" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalParameters=arr_Parameters.GetSize(); // }} "" // {{ 677 1 0 "4aaa1abb_6c3f_48c7_96a1a14444e8a461" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalParameters;) { i = i + 1; // }} "" // {{{ 678 1 0 "9835d001_53ed_48cd_b6ad7e3767b6e1a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FWParameter = StrConcat2(str_FWParameter, arr_Parameters.ElementAt( i -1)); // }} "" // {{ 679 1 0 "4aaa1abb_6c3f_48c7_96a1a14444e8a461" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" Trace("FW Command: ",str_FWCommand," : ",str_FWParameter); // {{ 681 1 0 "62fd1ff7_d330_4d83_bd4b3c747509ae4d" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("62fd1ff7_d330_4d83_bd4b3c747509ae4d"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 682 1 0 "f899a4e4_bd9d_42a7_83b7e6608deb4a5c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{{ 5 "Move_Channels_To_Absolute_Position_1mL" "End" } // }} "" // {{{ 5 "Move_Channels_To_Absolute_Position_5mL" "Begin" function Move_Channels_To_Absolute_Position_5mL( device & ML_STAR, variable i_str_ChannelPattern, variable i_flt_MinimumZHeightAtBegining, variable & i_arr_X_Position[], variable & i_arr_Y_Position[], variable & i_arr_Z_Position[] ) void { // }} "" private variable int_SafeTravelHeight; private variable str_ReturnValue; private variable str_Y_Position; private variable flt_SafeTravelHeight; private variable int_CutNum; private variable flt_X_Position; private variable str_FWParameter; private variable int_Length; private variable int_Y_Position; private variable i; private variable str_TH; private variable strFunctionName; private variable str_ZP; private variable str_FWCommand; private variable flt_Y_Position; private variable str_Z_Position; private variable int_TotalParameters; private variable str_YP; private variable int_Z_Position; private variable strFunctionName_Cut; private variable str_XP; private variable str_TM; private variable flt_Z_Position; private variable int_TotalChannels; private variable str_X_Position; private variable int_TotalXValues; private variable int_Count; private variable str_ChValue; private variable int_TotalYValues; private variable int_X_Position; private variable int_TotalZValues; private variable int_ChValue; private variable str_SafeTravelHeight; private variable int_ChPatternLength; private variable int_ChIndex; private variable arr_Parameters[]; private variable arr_ChPattern[]; // {{ 5 "Move_Channels_To_Absolute_Position_5mL" "InitLocals" // }} "" // {{ 684 1 0 "adaf70d3_c242_4a89_aded65812fbcf673" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 685 1 0 "54ee01d0_8c55_4657_ba147def5a6ca087" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 686 1 0 "9bb601db_79dd_4a4d_9d779ee4f7b0c52e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 688 1 0 "d99ac1d2_7728_4a1d_96342d66525858ea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 689 1 0 "58e25a7d_5c6e_46b4_8aacccf9dafee503" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 690 1 0 "662b2620_a0b8_423b_82c7d6c1078eda62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 691 1 0 "fa3af063_6c7e_4287_a554f4ca5f1d0255" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 692 1 0 "391fa014_7661_4870_87d207972b37f073" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 693 1 0 "cc96983c_2a17_4e26_b6040bb0aa207bf1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 694 1 0 "54ee01d0_8c55_4657_ba147def5a6ca087" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 695 1 0 "5339ac64_88ef_4ca4_a7fb145b1d00104f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 696 1 0 "3313d004_c9d5_484c_b0112255b51e82dd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChannelPattern = StrConcat2(i_str_ChannelPattern, Translate("")); // }} "" // {{{ 697 1 0 "3b822477_2bbb_4260_9bb937cefd4545c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 43); // }} "" // {{{ 698 1 0 "eef659b3_a28d_4348_97fec868104cf2be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ChPatternLength = StrGetLength(i_str_ChannelPattern); // }} "" // {{ 699 1 0 "0ec66070_1e49_4be9_869a590e68bd878e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChPatternLength < int_TotalChannels) { // }} "" Trace("Channel Pattern: ",i_str_ChannelPattern); // {{{ 701 1 0 "c8d823f4_5bff_4ffb_a7eecdd760132a88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Channel pattern is less than the total number of channels on the system!")); // }} "" // {{ 702 1 0 "0ec66070_1e49_4be9_869a590e68bd878e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 703 1 0 "8ed4055c_3b14_41ce_af25b80aa4f734e2" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalXValues=i_arr_X_Position.GetSize(); // }} "" // {{ 704 1 0 "e3e4d654_15fb_4cab_83d8e5515d06ebf4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalXValues < int_TotalChannels) { // }} "" // {{{ 705 1 0 "23ace3d8_e862_4ed6_91447bcdaefbae8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("X Values"), i_arr_X_Position); // }} "" // {{{ 706 1 0 "8bb9e015_de56_490c_8cdeadbc891552fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("There are not enough values in the array for the X Positions")); // }} "" // {{ 707 1 0 "e3e4d654_15fb_4cab_83d8e5515d06ebf4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 708 1 0 "0ae3561e_ebef_4804_880905b9ed1b3c2c" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalYValues=i_arr_Y_Position.GetSize(); // }} "" // {{ 709 1 0 "a7b0ef4d_b57a_48f4_a6a78bae23595272" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalYValues < int_TotalChannels) { // }} "" // {{{ 710 1 0 "2de1db07_3d00_4903_838b8440294e34a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Y Values"), i_arr_Y_Position); // }} "" // {{{ 711 1 0 "6ed39e17_92e7_402c_8c3e739680648f24" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("There are not enough values in the array for the Y Positions")); // }} "" // {{ 712 1 0 "a7b0ef4d_b57a_48f4_a6a78bae23595272" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 713 1 0 "524424bb_8c03_4fe0_908ab5658a976cfb" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalZValues=i_arr_Z_Position.GetSize(); // }} "" // {{ 714 1 0 "c871c7c7_eb54_4d3a_a78459bc7b24241f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalZValues < int_TotalChannels) { // }} "" // {{{ 715 1 0 "6df2e0a6_693c_457e_ad83c6a52e0a543f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Z Values"), i_arr_Z_Position); // }} "" // {{{ 716 1 0 "d0061191_8df3_4bbe_a3ae0ec5ff1ca05a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("There are not enough values in the array for the Z Positions")); // }} "" // {{ 717 1 0 "c871c7c7_eb54_4d3a_a78459bc7b24241f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 718 1 0 "5339ac64_88ef_4ca4_a7fb145b1d00104f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 719 1 0 "63b6d4ef_a3ec_4ecf_b029aecf05a2f121" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_SafeTravelHeight = i_flt_MinimumZHeightAtBegining; // }} "" // {{ 720 1 0 "d6b3cc8d_3f60_4e1a_89d4e466799baf98" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 721 1 0 "a4e4c5e9_d3af_4608_b78b1d20528c6d6c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FWCommand = Translate("C0LL"); // }} "" // {{ 722 1 0 "c9fe3e56_23b4_478b_ae35ab79bd28daa9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FWParameter = Translate(""); // }} "" // {{ 723 1 0 "b449dd6f_f4cf_4fc6_84fd36d83a277042" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Parameters.SetSize(0); // }} "" // {{ 724 1 0 "d1c4d000_0af0_4cc1_8f19f2148dbef7d8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 725 1 0 "02595de2_48b0_4acf_b50bea5462f9ae9f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChPattern.SetSize(0); // }} "" // {{ 726 1 0 "39096895_cd1e_4e29_b094522342dfc3bc" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 727 1 0 "860860b0_4784_4ad9_9aba8905144003df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChValue = StrLeft(i_str_ChannelPattern, int_ChIndex); // }} "" // {{{ 728 1 0 "ad88bea3_1473_4656_b0b94802324e5514" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChValue = StrRight(str_ChValue, 1); // }} "" // {{{ 729 1 0 "aa1440c2_1b41_4891_91dbdc1c3947bd3b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ChValue = StrIVal(str_ChValue); // }} "" // {{ 730 1 0 "484a4d8b_b0e0_45ab_9ab6db78d2e391a0" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.AddAsLast(int_ChValue); // }} "" // {{ 731 1 0 "39096895_cd1e_4e29_b094522342dfc3bc" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 732 1 0 "9d5daabf_885b_479c_804d318b0812c722" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TM = Translate("tr"); // }} "" // {{ 733 1 0 "3cb0e08d_68c1_4905_a73585ffabf0850f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 734 1 0 "e29ef9d6_5426_4b9e_a63dd072dc183e24" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 735 1 0 "d0c5a04e_1759_40bd_97bf299b0afb5589" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TM = StrConcat2(str_TM, Translate(" ")); // }} "" // {{ 736 1 0 "e29ef9d6_5426_4b9e_a63dd072dc183e24" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 737 1 0 "65a54f61_e324_4de6_b37b140ea23f3e85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TM = StrConcat2(str_TM, arr_ChPattern.ElementAt( int_ChIndex -1)); // }} "" // {{ 738 1 0 "3cb0e08d_68c1_4905_a73585ffabf0850f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 739 1 0 "a59dfc54_4f3e_4293_a60ca284870d444e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_TM); // }} "" // {{ 740 1 0 "d1c4d000_0af0_4cc1_8f19f2148dbef7d8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 741 1 0 "b712e602_58c6_4e7f_86d3bb11dbbb7912" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 742 1 0 "e7814e8f_c773_4bb0_8e85ab0b85dcf0d5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_XP = Translate("xb"); // }} "" // {{ 743 1 0 "17bb68f5_9a9c_4405_9bd475a5f9ee6928" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 744 1 0 "7a277e76_001c_4287_8a953903cfe77720" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 745 1 0 "bab41946_642a_453d_b0fd8e97a6bb75d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_XP = StrConcat2(str_XP, Translate(" ")); // }} "" // {{ 746 1 0 "7a277e76_001c_4287_8a953903cfe77720" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 747 1 0 "38ef88df_1f53_4b18_b874edb7a8f2822d" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_X_Position=i_arr_X_Position.GetAt(int_ChIndex-1); // }} "" // {{ 748 1 0 "ad613af1_fe17_42f0_adc187012eb6888b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_X_Position = flt_X_Position * 10; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 749 1 0 "376b9453_07bc_4d25_9928235e13807b2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_X_Position = MthCeiling(flt_X_Position); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 750 1 0 "ad570025_4021_45b3_b2a0ab8840b9a98e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_X_Position = MthFloor(flt_X_Position); // }} "" // {{{ 751 1 0 "28fe2bc9_1694_4352_8083774f3ae2d8b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_X_Position = StrConcat2(int_X_Position, Translate("")); // }} "" // {{{ 752 1 0 "4401608f_8440_4024_9e482edd2e0948a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_X_Position = StrFillLeft(str_X_Position, Translate("0"), 5); // }} "" // {{{ 753 1 0 "15b8bb8d_74c4_4e66_bbc7cae8912a8400" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_XP = StrConcat4(str_XP, str_X_Position, Translate(""), Translate("")); // }} "" // {{ 754 1 0 "17bb68f5_9a9c_4405_9bd475a5f9ee6928" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 755 1 0 "ad89c2c3_a3e0_4f02_9b1719f8339e2d72" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_XP); // }} "" // {{ 756 1 0 "b712e602_58c6_4e7f_86d3bb11dbbb7912" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 757 1 0 "3ec7a635_2b4e_46f2_be7c8af8f87e6318" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 758 1 0 "335f51d7_07b8_4aca_9103cc44c75b7515" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_YP = Translate("yf"); // }} "" // {{ 759 1 0 "c5abe5ee_5eb5_46fb_81e27486fd854236" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 760 1 0 "bb910d54_42b0_4a42_afb1266e769f361f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 761 1 0 "2eb20e86_07ba_48b7_8683fdbc003de7cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YP = StrConcat2(str_YP, Translate(" ")); // }} "" // {{ 762 1 0 "bb910d54_42b0_4a42_afb1266e769f361f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 763 1 0 "138050ff_918f_4211_bbe82ffd584807dd" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_Y_Position=i_arr_Y_Position.GetAt(int_ChIndex-1); // }} "" // {{ 764 1 0 "e35e70da_e3c7_4a01_aced0d098a77dc9e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Position = flt_Y_Position * 10; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 765 1 0 "11c0f7ca_c136_490d_b03a2c5afb010069" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Y_Position = MthCeiling(flt_Y_Position); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 766 1 0 "90df89c2_5150_453a_93a4066ed4f850f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Y_Position = MthFloor(flt_Y_Position); // }} "" // {{{ 767 1 0 "34b84401_9f2c_4fc3_ae5e9677f7c2fc01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Y_Position = StrConcat2(int_Y_Position, Translate("")); // }} "" // {{{ 768 1 0 "a7abbbb3_7a6b_45bd_90905e90eabed3e7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Y_Position = StrFillLeft(str_Y_Position, Translate("0"), 4); // }} "" // {{{ 769 1 0 "792266c1_d3a9_42a9_85301f3b43ecde46" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YP = StrConcat4(str_YP, str_Y_Position, Translate(""), Translate("")); // }} "" // {{ 770 1 0 "c5abe5ee_5eb5_46fb_81e27486fd854236" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 771 1 0 "140e1882_f995_4142_b6d3d8579718420e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_YP); // }} "" // {{ 772 1 0 "3ec7a635_2b4e_46f2_be7c8af8f87e6318" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 773 1 0 "7bd0ade9_26dc_4404_b64afef6e25d9bcf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 774 1 0 "e8d3cb5a_7024_4180_a03d355e378854d1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TH = Translate("th"); // }} "" // {{ 775 1 0 "b986fef6_e195_4d14_a0908ebe7199796a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_SafeTravelHeight = flt_SafeTravelHeight * 10; // }} "" // {{{ 776 1 0 "272d453f_fbf2_4016_ba7f275d4aca3f20" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_SafeTravelHeight = MthCeiling(flt_SafeTravelHeight); // }} "" // {{{ 777 1 0 "27a6cf62_1311_4450_a5fc811f0cc70a8a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SafeTravelHeight = StrConcat2(int_SafeTravelHeight, Translate("")); // }} "" // {{{ 778 1 0 "6e76390b_664d_42a1_a259f11ff684c713" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SafeTravelHeight = StrFillLeft(str_SafeTravelHeight, Translate("0"), 4); // }} "" // {{{ 779 1 0 "5bb8bd45_53aa_4ba6_8c5efed5cd9c4c7c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TH = StrConcat4(str_TH, str_SafeTravelHeight, Translate(""), Translate("")); // }} "" // {{ 780 1 0 "28007a71_1a46_4e7f_baae4e100d5b6df6" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_TH); // }} "" // {{ 781 1 0 "7bd0ade9_26dc_4404_b64afef6e25d9bcf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 782 1 0 "f377d740_5e78_4c7d_955dabed701d3fa0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 783 1 0 "9ffa7e7b_11ba_4bc9_bbc972b8ab2074f4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ZP = Translate("pz"); // }} "" // {{ 784 1 0 "27681f36_e360_47ff_93889966ff138691" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 785 1 0 "c181dac8_f08f_4373_9d02653caa62bb47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 786 1 0 "579fa67b_00a6_4118_8b758e4ab1259a64" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZP = StrConcat2(str_ZP, Translate(" ")); // }} "" // {{ 787 1 0 "c181dac8_f08f_4373_9d02653caa62bb47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 788 1 0 "a2da36c9_ae63_411b_add6b3643c5265dd" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_Z_Position=i_arr_Z_Position.GetAt(int_ChIndex-1); // }} "" // {{ 789 1 0 "7be6408d_3e14_464e_a538e4b6d144426a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Position = flt_Z_Position * 10; // }} "" // {{{ 790 1 0 "536cfd34_6c9e_4740_a26bf07d2e71df6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Z_Position = MthCeiling(flt_Z_Position); // }} "" // {{{ 791 1 0 "20d30078_fadc_4d49_9f9c462cd2a40c49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Z_Position = StrConcat2(int_Z_Position, Translate("")); // }} "" // {{{ 792 1 0 "efd55f1f_9475_4557_913550e04966f265" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Z_Position = StrFillLeft(str_Z_Position, Translate("0"), 4); // }} "" // {{{ 793 1 0 "c06b7009_584e_4ad5_bf1fd20e61c15a01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZP = StrConcat4(str_ZP, str_Z_Position, Translate(""), Translate("")); // }} "" // {{ 794 1 0 "27681f36_e360_47ff_93889966ff138691" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 795 1 0 "2def1163_615f_4bd7_96f06a560884dcdb" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_ZP); // }} "" // {{ 796 1 0 "f377d740_5e78_4c7d_955dabed701d3fa0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 797 1 0 "33cbd14b_3c92_476e_8a57b283a9ebc86b" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalParameters=arr_Parameters.GetSize(); // }} "" // {{ 798 1 0 "4a5b6300_9b77_4878_baa2700156c75f5d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalParameters;) { i = i + 1; // }} "" // {{{ 799 1 0 "07c978cb_2e92_497e_8fc58e2fdb60a96a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FWParameter = StrConcat2(str_FWParameter, arr_Parameters.ElementAt( i -1)); // }} "" // {{ 800 1 0 "4a5b6300_9b77_4878_baa2700156c75f5d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" Trace("FW Command: ",str_FWCommand," : ",str_FWParameter); // {{ 802 1 0 "b998ada0_0e6e_44e7_9c8a957edd40f4df" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("b998ada0_0e6e_44e7_9c8a957edd40f4df"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 803 1 0 "3287e674_7027_4e29_96862c7b4f2eb3b5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{{ 5 "Move_Channels_To_Absolute_Position_5mL" "End" } // }} "" // {{{ 5 "ResetChannelFW" "Begin" function ResetChannelFW( device & ML_STAR ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable str_FirmwareParam; private variable strFunctionName_Cut; private variable str_FirmwareCMND; private variable int_Count; // {{ 5 "ResetChannelFW" "InitLocals" // }} "" // {{ 829 1 0 "798a7910_5bb3_4c5c_a2ca64e08cd1c9ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 830 1 0 "9072e62d_1c35_4c06_83fbede1743cb53c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 832 1 0 "6387ebae_98b9_4f99_86d3dcdd14fef5e8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 833 1 0 "60388ad7_6a79_4e43_bd84728ae484bc7e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 834 1 0 "0a061ddf_8e16_42e3_828c60d30606ca2d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 835 1 0 "849a3f9c_7b54_48dd_a74d0c6be9f3f697" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 836 1 0 "3ee8b7ae_2379_4275_a066502b57cfef69" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 837 1 0 "bac655bd_3426_4c14_b03e4783ac74cdb6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 838 1 0 "798a7910_5bb3_4c5c_a2ca64e08cd1c9ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 839 1 0 "d4338634_6b31_48c3_ab5277db9403ad41" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("P"), Translate("X"), Translate("AA"), Translate("")); // }} "" // {{{ 840 1 0 "a527614f_17bc_4b99_aab6eb2decd06649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareParam = StrConcat8(Translate("zv12000"), Translate("zr075"), Translate("zw3"), Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{ 841 1 0 "5f171dc0_91a4_4d98_a5a93f2cd81e7ab4" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("5f171dc0_91a4_4d98_a5a93f2cd81e7ab4"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 842 1 0 "43a667e1_0cee_4c5f_af37309603d9b230" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{{ 5 "ResetChannelFW" "End" } // }} "" // {{{ 5 "QueryTipLength" "Begin" function QueryTipLength( device & ML_STAR, variable i_intChannelNumber, variable & o_fltTipLength ) void { // }} "" private variable str_ReturnValue; private variable bol_ParameterFound; private variable bln_TipPresent; private variable strFunctionName; private variable str_FirmwarePARAM; private variable flt_ZTipCoord; private variable str_FirmwareCMND; private variable flt_Resolution_X; private variable flt_Resolution_Y; private variable flt_ZStopDisk; private variable flt_Resolution_Z; private variable str_CurrentChannel; private variable flt_ReturnValue; // {{ 5 "QueryTipLength" "InitLocals" o_fltTipLength = 0; // }} "" // {{{ 805 1 0 "e63f9d77_6cdf_4440_89d5d0c8d309444a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" Get_Tip_Present_1mL(ML_STAR, i_intChannelNumber, bln_TipPresent); // }} "" // {{ 806 1 0 "f602d065_f2de_4b13_81cb210a029fafaf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_TipPresent == 0) { // }} "" // {{{ 807 1 0 "063f09e1_483e_43e5_a990433926c21d07" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 808 1 0 "f602d065_f2de_4b13_81cb210a029fafaf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 809 1 0 "2543d2e4_0fb6_4ac8_94a094294a020ff6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetStopDiskZCoord(ML_STAR, i_intChannelNumber, flt_ZStopDisk); // }} "" // {{ 810 1 0 "e1cd1449_c2af_424f_b54279590c25da6a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 811 1 0 "1eb7be7c_ab74_4c2e_89da43d172a96045" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_Z = 0.1; // }} "" // {{ 812 1 0 "c626f2ab_68f7_403c_afd9e6562c017e75" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_Y = 0.1; // }} "" // {{ 813 1 0 "482a2d96_8399_4756_81fb7db9394dca7d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_X = 0.1; // }} "" // {{ 814 1 0 "aff0fffc_92a5_4ff8_a17d19c77459b3ad" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 815 1 0 "ff63ded5_0f59_4046_b23f1705a91e74ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("C0RD"), Translate(""), Translate(""), Translate("")); // }} "" // {{{ 816 1 0 "2094a66e_2a9a_4bfe_81c58049f91c2617" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChannel = StrConcat2(i_intChannelNumber, Translate("")); // }} "" // {{{ 817 1 0 "2d0b52c0_cc36_4cfb_bc9f93d089f7d615" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChannel = StrFillLeft(str_CurrentChannel, Translate("0"), 2); // }} "" // {{{ 818 1 0 "d6ab60b0_efc4_48fa_b4a6aee67a1c07a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwarePARAM = StrConcat4(Translate("pn"), str_CurrentChannel, Translate(""), Translate("")); // }} "" // {{ 819 1 0 "056b4518_3bbe_4a83_822c6cb5e94ad848" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("056b4518_3bbe_4a83_822c6cb5e94ad848"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 820 1 0 "13324c33_ce10_4363_9f063037436069df" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{{ 821 1 0 "5e19fb2b_51a9_48af_994f7921dcd82206" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("rd"), flt_Resolution_Z, 4, bol_ParameterFound, flt_ReturnValue); // }} "" // {{ 822 1 0 "cacbcbf7_ed9d_425c_aa52d4f32078ef98" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 823 1 0 "0ba55aeb_d79a_4945_b129ca59b50de0de" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_ZTipCoord = flt_ReturnValue; // }} "" // {{ 824 1 0 "cacbcbf7_ed9d_425c_aa52d4f32078ef98" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 825 1 0 "6d2dbfee_32de_4ec0_a6556df8468ad9f6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_ZTipCoord = flt_ZStopDisk; // }} "" // {{ 826 1 0 "cacbcbf7_ed9d_425c_aa52d4f32078ef98" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 827 1 0 "fb6e2cb9_7942_4ee6_b5e9b0be36e731a5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_fltTipLength = flt_ZStopDisk - flt_ZTipCoord; // }} "" // {{{ 5 "QueryTipLength" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=Hamilton$$valid=0$$time=2021-10-06 14:58$$checksum=a35fc73c$$length=087$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/Split_Wells.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 9/26/2019 9:05:44 AM #pragma once #ifndef HSL_RUNTIME namespace SPLIT_WELLS { function _InitLibrary() { } function _ExitLibrary() { } function CalcualteOffsetHeight( variable i_flt_WellAngle, variable i_flt_YOffset, variable & o_flt_ZOffset ) void { } function CalculateWellAngle( variable i_flt_BottomWellSegment_Height, variable i_flt_BottomWellSegment_TopWidth, variable i_flt_BottomWellSegment_BottomWidth, variable & o_flt_BottomWellSegment_Angle ) void { } function InitializeSplitWells( ) void { } function RemoveContainers( device & ML_STAR, variable i_bool_ConsolidateVolumes ) void { } function SplitWellsFlatBottom( device & ML_STAR, sequence i_seq_SequenceToSplitWells, variable i_int_SequenceIndex, variable i_int_MaxWellSplit, sequence & io_seq_SpltSequence ) void { } function SplitWellsVBottom( device & ML_STAR, sequence i_seq_SequenceToSplitWells, variable i_int_SequenceIndex, variable i_int_MaxWellSplit, variable i_flt_ContainerBottomSegment_TopDiameter, variable i_flt_ContainerBottomSegment_BottomDiameter, variable i_flt_ContainerBottomSegment_Height, sequence & io_seq_SpltSequence ) void { } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=Bare_B$$valid=0$$time=2019-09-26 09:05$$checksum=d31d8911$$length=083$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/Split_Wells.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "STAR Tools\\Resources\\SubMethods\\CHANNEL_TOOLS_GLOBAL.hsl" #include "HSLLabwareStateLib.hsl" #include "HSLSeqLib.hsl" #include "HSLStrLib.hsl" #include "HSLDevLib.hsl" #include "HSLMthLib.hsl" #include "HSLErrLib.hsl" #include "HSLExtensions\\File.hsl" #include "SMTs\\lookup.hs_" #include "STAR Tools\\Resources\\SubMethods\\HelperLibrary.hs_" #include "HSLVectorDbTracking.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" #include "HSLPTLLib.hsl" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace SPLIT_WELLS { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function CalcualteOffsetHeight( variable i_flt_WellAngle, variable i_flt_YOffset, variable & o_flt_ZOffset ) void ; function CalculateWellAngle( variable i_flt_BottomWellSegment_Height, variable i_flt_BottomWellSegment_TopWidth, variable i_flt_BottomWellSegment_BottomWidth, variable & o_flt_BottomWellSegment_Angle ) void ; function InitializeSplitWells( ) void ; function RemoveContainers( device & ML_STAR, variable i_bool_ConsolidateVolumes ) void ; function SplitWellsFlatBottom( device & ML_STAR, sequence i_seq_SequenceToSplitWells, variable i_int_SequenceIndex, variable i_int_MaxWellSplit, sequence & io_seq_SpltSequence ) void ; function SplitWellsVBottom( device & ML_STAR, sequence i_seq_SequenceToSplitWells, variable i_int_SequenceIndex, variable i_int_MaxWellSplit, variable i_flt_ContainerBottomSegment_TopDiameter, variable i_flt_ContainerBottomSegment_BottomDiameter, variable i_flt_ContainerBottomSegment_Height, sequence & io_seq_SpltSequence ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" PTL::SetWashingStateDefault("RinseTime1", 5); PTL::SetWashingStateDefault("SoakTime1", 5); PTL::SetWashingStateDefault("FlowRate1", 11); PTL::SetWashingStateDefault("RinseTime2", 0); PTL::SetWashingStateDefault("SoakTime2", 0); PTL::SetWashingStateDefault("FlowRate2", 11); PTL::SetWashingStateDefault("DrainingTime", 10); PTL::SetWashingStateDefault("StartWashLiquid", 0); PTL::SetLoadingStateDefault("RecoveryOptionContinue", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionExclude", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionDefault", 0); PTL::SetLoadingStateDefault("KitLotCheckEnabled", hslFalse); LOOKUP::_InitLibrary(); HELPERLIBRARY::_InitLibrary(); // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" LOOKUP::_ExitLibrary(); HELPERLIBRARY::_ExitLibrary(); // }} "" } // {{{ 5 "InitializeSplitWells" "Begin" function InitializeSplitWells( ) void { // }} "" // {{ 5 "InitializeSplitWells" "InitLocals" // }} "" // {{{ 22 1 0 "d4b6e79a_8ac5_4a82_a9f13ffefdcbf247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SPLIT_WELLS_GLOBAL::InitializeVariables(); // }} "" // {{ 23 1 0 "e5404d22_49c8_4b24_9769b7191218f527" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" SPLIT_WELLS_GLOBAL::ARR_CONTAINER_CONFIG_FILE.SetSize(0); // }} "" // {{ 24 1 0 "21538013_d11b_4b56_942be066c394df1e" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" SPLIT_WELLS_GLOBAL::ARR_CONTAINER_IDS.SetSize(0); // }} "" // {{ 25 1 0 "a1f651fa_a158_47bf_bdbc4ddf4f457544" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" SPLIT_WELLS_GLOBAL::ARR_CONTAINER_WIDTH.SetSize(0); // }} "" // {{ 26 1 0 "c3cf1e18_c90c_4f7a_bb8ac001f9087a7e" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" SPLIT_WELLS_GLOBAL::ARR_LABWARE_CONFIG_FILE.SetSize(0); // }} "" SPLIT_WELLS_GLOBAL::BOOL_LIBRARY_INITIALIZED = hslTrue; // {{{ 5 "InitializeSplitWells" "End" } // }} "" // {{{ 5 "RemoveContainers" "Begin" function RemoveContainers( device & ML_STAR, variable i_bool_ConsolidateVolumes ) void { // }} "" private variable flt_CurrentVolume; private variable str_LabID_Final; private variable str_CurrentContainer; private variable int_TotalContainers; private variable str_LabID; private variable flt_NewVolume; private variable flt_LabwareVolume; private variable int_Cut2; private variable str_PosID; private variable int_ContainerIndex; private variable int_Cut3; private variable int_Cut; private sequence seq_GetVolume; // {{ 5 "RemoveContainers" "InitLocals" // }} "" // {{ 29 1 0 "c662c304_c9f9_43a7_8e9abc836e776864" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalContainers=SPLIT_WELLS_GLOBAL::ARR_CONTAINER_IDS.GetSize(); // }} "" // {{ 30 1 0 "fb318380_04d8_4e79_9e93650724cdf379" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ContainerIndex = 0; int_ContainerIndex < int_TotalContainers;) { int_ContainerIndex = int_ContainerIndex + 1; // }} "" // {{ 31 1 0 "971cc042_0828_4f12_80c7b8715164b304" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_CurrentContainer=SPLIT_WELLS_GLOBAL::ARR_CONTAINER_IDS.GetAt(int_ContainerIndex-1); // }} "" // {{ 32 1 0 "9fa5cac6_7448_4075_9386cf927b345fb1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bool_ConsolidateVolumes == 1) { // }} "" // {{ 33 1 0 "55444c33_117b_4e27_b1228be718a2ecae" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 34 1 0 "b3f9118f_8018_474d_a79c6fed00f0101e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_GetVolume); // }} "" // {{{ 35 1 0 "b84e9dba_638f_4b3f_98f4b74f1a380474" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(seq_GetVolume, str_CurrentContainer, Translate("1")); // }} "" // {{ 36 1 0 "77690743_0b22_43a7_819efed20a1d3bcd" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_GetVolume.SetCurrentPosition(1); // }} "" // {{ 37 1 0 "7b8b4f94_9af5_400a_81baf43cf7bad07f" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2955394691474b87A9B4B29F55DF457C ; err.Clear(); // }} "" // {{{ 38 1 0 "f7427202_1b02_417e_831756ce226e1514" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_CurrentVolume = HSLLabwState::GetLabwareVolume(ML_STAR, seq_GetVolume); // }} "" // {{ 39 1 0 "7b8b4f94_9af5_400a_81baf43cf7bad07f" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2955394691474b87A9B4B29F55DF457C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 40 1 0 "7ca456dd_1a59_45af_8b6e3a76484e66e4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentVolume = 0.0; // }} "" // {{ 41 1 0 "7b8b4f94_9af5_400a_81baf43cf7bad07f" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 42 1 0 "dd23b9d0_5c87_42d8_812cff794c7fc1ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Cut = StrReverseFind(str_CurrentContainer, Translate("_")); // }} "" // {{{ 43 1 0 "987c8dca_819c_48d4_9f1f6f82a6d12e7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = StrLeft(str_CurrentContainer, int_Cut); // }} "" // {{{ 44 1 0 "ddb89659_80f5_435e_975b87687f6d24f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Cut2 = StrReverseFind(str_LabID, Translate("_")); // }} "" // {{{ 45 1 0 "b3d99b8a_99b4_4a06_813510e693e51faa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID_Final = StrLeft(str_LabID, int_Cut2); // }} "" // {{ 46 1 0 "522de025_811e_4e13_9a2e9bf5adf993dc" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Cut3 = int_Cut - int_Cut2; // }} "" // {{ 47 1 0 "ea5acf0f_caee_4f18_974705f12b1d8aca" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Cut3 = int_Cut3 - 1; // }} "" // {{{ 48 1 0 "1efeb97e_fba2_4e2e_9670c2f45f21c258" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = StrRight(str_LabID, int_Cut3); // }} "" // {{{ 49 1 0 "981087ef_a655_4d69_bbc00af0d385f5e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_GetVolume); // }} "" // {{{ 50 1 0 "c15401f7_7ad3_4c1d_a7a73595e774bdc6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(seq_GetVolume, str_LabID_Final, str_PosID); // }} "" // {{ 51 1 0 "bf83ed4d_2ccb_4128_b3365e492edc1a87" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_GetVolume.SetCurrentPosition(1); // }} "" // {{ 52 1 0 "67a7f97f_7103_49b8_8abd991b484625a4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0C904BC1A6FE4486B8C6C9CB5356B697 ; err.Clear(); // }} "" // {{{ 53 1 0 "1382f2cb_2f03_40c1_8f6fbba9dc153100" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_LabwareVolume = HSLLabwState::GetLabwareVolume(ML_STAR, seq_GetVolume); // }} "" // {{ 54 1 0 "67a7f97f_7103_49b8_8abd991b484625a4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0C904BC1A6FE4486B8C6C9CB5356B697 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 55 1 0 "ad7b40ed_d050_44cf_a4993ff61702ad98" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_LabwareVolume = 0.0; // }} "" // {{ 56 1 0 "67a7f97f_7103_49b8_8abd991b484625a4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 57 1 0 "76587fb8_cff2_40ac_818a78eab0b7bb56" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_NewVolume = flt_LabwareVolume + flt_CurrentVolume; // }} "" Trace("----"," New Volume for ",str_LabID_Final," ",str_PosID," = ",flt_NewVolume," uL"); // {{ 59 1 0 "0747fcac_c8de_4f52_b2f481a13107250f" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F7B028E651034cdfB8C2FE712DB8B0A9 ; err.Clear(); // }} "" // {{{ 60 1 0 "3ea15274_8130_4b98_93ad6be31f74f105" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLLabwState::SetLabwareVolume(ML_STAR, seq_GetVolume, flt_NewVolume); // }} "" // {{ 61 1 0 "0747fcac_c8de_4f52_b2f481a13107250f" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F7B028E651034cdfB8C2FE712DB8B0A9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 62 1 0 "0747fcac_c8de_4f52_b2f481a13107250f" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 63 1 0 "9fa5cac6_7448_4075_9386cf927b345fb1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 64 1 0 "69af829e_67c4_4008_9f1a9f31b91877f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevRemoveLabware(ML_STAR, str_CurrentContainer); // }} "" // {{ 65 1 0 "fb318380_04d8_4e79_9e93650724cdf379" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 66 1 0 "67b6d2b7_ac20_4992_90118a9f2d4a529c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" SPLIT_WELLS_GLOBAL::ARR_CONTAINER_IDS.SetSize(0); // }} "" // {{{ 5 "RemoveContainers" "End" } // }} "" // {{{ 5 "CalcualteOffsetHeight" "Begin" function CalcualteOffsetHeight( variable i_flt_WellAngle, variable i_flt_YOffset, variable & o_flt_ZOffset ) void { // }} "" private variable flt_Calculation1; private variable flt_Calculation2; private variable flt_Radians; private variable flt_Pi; // {{ 5 "CalcualteOffsetHeight" "InitLocals" o_flt_ZOffset = 0; // }} "" // {{ 1 1 0 "77450905_7c15_41f9_92b015c592cf7540" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Pi = 3.14159265359; // }} "" // {{ 2 1 0 "37320f22_7290_49a2_aebf3810ef221b83" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Radians = 0.0; // }} "" flt_Radians = i_flt_WellAngle * (flt_Pi / 180); // {{{ 4 1 0 "0fd4dba8_d617_4eb4_8c74e056550358c4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Calculation1 = MthTan(flt_Radians); // }} "" // {{ 5 1 0 "651b1739_9e47_43be_9f595ab1816f7862" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Calculation2 = flt_Calculation1 * i_flt_YOffset; // }} "" // {{{ 6 1 0 "f4800a1f_9952_4731_965bde1bb2f745f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_ZOffset = MthRound(flt_Calculation2, 1); // }} "" // {{{ 5 "CalcualteOffsetHeight" "End" } // }} "" // {{{ 5 "CalculateWellAngle" "Begin" function CalculateWellAngle( variable i_flt_BottomWellSegment_Height, variable i_flt_BottomWellSegment_TopWidth, variable i_flt_BottomWellSegment_BottomWidth, variable & o_flt_BottomWellSegment_Angle ) void { // }} "" private variable flt_Angle; private variable flt_BottomRadius; private variable flt_Calculation; private variable flt_Pi; private variable flt_WellRadius; // {{ 5 "CalculateWellAngle" "InitLocals" o_flt_BottomWellSegment_Angle = 0; // }} "" // {{ 8 1 0 "2404d2d5_3cf0_47f5_88c6cbf74e25df06" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Pi = 3.14159265359; // }} "" // {{ 9 1 0 "26ac396f_e4fa_4876_9af9a2bf09ccc991" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BottomRadius = 0.0; // }} "" // {{ 10 1 0 "09ad0772_f2a6_4b4a_ae1ff72f2811da55" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_flt_BottomWellSegment_BottomWidth > 0) { // }} "" // {{ 11 1 0 "ca71d565_a87b_4da5_b08adf9c380e3815" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_BottomRadius = i_flt_BottomWellSegment_BottomWidth / (2 * 1.0); // }} "" // {{ 12 1 0 "09ad0772_f2a6_4b4a_ae1ff72f2811da55" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 13 1 0 "4c35e6d4_e8e5_4464_abbff4e97049ee97" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_WellRadius = i_flt_BottomWellSegment_TopWidth / (2 * 1.0); // }} "" // {{ 14 1 0 "0c564bb8_2dee_4aed_98e89d355500970a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_WellRadius > flt_BottomRadius) { // }} "" // {{ 15 1 0 "0cd7f03d_1a81_47d8_843db6b704a3fae8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_WellRadius = flt_WellRadius - flt_BottomRadius; // }} "" // {{ 16 1 0 "0c564bb8_2dee_4aed_98e89d355500970a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 17 1 0 "c16cf0fa_d6a6_46b9_a241b3bc3d932f8e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Calculation = i_flt_BottomWellSegment_Height / (flt_WellRadius * 1.0); // }} "" // {{{ 18 1 0 "14982e36_5dfb_498a_a2eec4f0d79adcad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Angle = MthATan(flt_Calculation); // }} "" flt_Angle = flt_Angle * (180.0 / flt_Pi); // {{{ 20 1 0 "e4d1919b_5959_40b8_b3202a92b4a05eea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_BottomWellSegment_Angle = MthRound(flt_Angle, 1); // }} "" // {{{ 5 "CalculateWellAngle" "End" } // }} "" // {{{ 5 "SplitWellsVBottom" "Begin" function SplitWellsVBottom( device & ML_STAR, sequence i_seq_SequenceToSplitWells, variable i_int_SequenceIndex, variable i_int_MaxWellSplit, variable i_flt_ContainerBottomSegment_TopDiameter, variable i_flt_ContainerBottomSegment_BottomDiameter, variable i_flt_ContainerBottomSegment_Height, sequence & io_seq_SpltSequence ) void { // }} "" private variable flt_Position_Z; private variable flt_X_Coord; private variable int_ConfigFileFound; private variable flt_A_Coord; private variable flt_Z_Coord; private variable flt_Y_Coord; private variable flt_TotalTopHalf; private variable int_MaxPositions_Sequence; private variable flt_Y_Offset; private variable str_SequenceIndex; private variable flt_Y_Center; private variable str_CurrentPosID; private variable flt_FirstContainerLocation_Y; private variable str_ContainerName; private variable flt_Z_Offset; private variable bol_OddContainers; private variable str_ConfigFile; private variable flt_BottomSegment_Radius; private variable flt_Position_A; private variable flt_WellBottomAngle; private variable flt_ContainerHoleWidth; private variable int_MaximumContainers; private variable int_TotalTopHalf; private variable bol_LabwareExists; private variable str_ConfigFile_Container; private variable flt_Z_Start; private variable flt_PositiveOffset; private variable int_ContainerIndex; private variable str_TempContainerPath; private variable flt_Position_X; private variable str_CurrentLabID; private variable int_Index; private variable str_TempRackPath; private variable flt_PositiveOffset_mm; private variable flt_Position_Y; private variable int_Remainder; private variable flt_AngleEnd; private variable flt_AngleStart; // {{ 5 "SplitWellsVBottom" "InitLocals" // }} "" // {{{ 160 1 0 "5ffaee4a_4100_4da7_b041f4ce7b2c1bbc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetCenterSpotLabware(str_TempRackPath); // }} "" // {{{ 161 1 0 "1e471a53_4ae5_4cfe_a4946a4cc3e2c347" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetCenterSpotContainer(str_TempContainerPath); // }} "" // {{ 162 1 0 "50ef3164_e9ea_4a50_9a92b9181965021e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 163 1 0 "de33c4db_895b_4b64_bb2ae2213b135f9b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 164 1 0 "4d648453_40e0_4b9a_95724606552bccb1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SequenceIndex = StrConcat2(i_int_SequenceIndex, Translate("")); // }} "" // {{{ 165 1 0 "e1b38b72_f019_476b_8de8c6f5717040a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Index = StrIVal(str_SequenceIndex); // }} "" // {{{ 166 1 0 "0475e55e_e79a_4925_9284fde859e8ca74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_MaxPositions_Sequence = SeqGetTotal(i_seq_SequenceToSplitWells); // }} "" // {{ 167 1 0 "37b5fe3d_d325_424b_a6afbf8cf9f4a896" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index < 1) { // }} "" // {{ 168 1 0 "3b22979e_8fe3_4b30_acf3c56fdd2701d8" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=================================\nIndex is less than 1\n=================================")); // }} "" // {{{ 169 1 0 "de494f74_6785_45a1_a703122721c92317" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Split_Wells - Sequence index is less than 1")); // }} "" // {{ 170 1 0 "37b5fe3d_d325_424b_a6afbf8cf9f4a896" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 171 1 0 "beb1225c_c3db_4477_afb74ff7dd053938" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index > int_MaxPositions_Sequence) { // }} "" // {{ 172 1 0 "2f2530ae_29f9_464a_908f62712529328c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=================================\nIndex is greater than the number of sequence positions\n=================================")); // }} "" // {{{ 173 1 0 "9869bbbc_f245_403c_ae06ae5d073a4e2d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Split_Wells - Sequence index is greater than the positions in the sequence")); // }} "" // {{ 174 1 0 "beb1225c_c3db_4477_afb74ff7dd053938" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 175 1 0 "50ef3164_e9ea_4a50_9a92b9181965021e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 176 1 0 "ff6b408d_4c7c_4017_bba7647e9bdb8578" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 177 1 0 "26120be1_d3a3_4a23_8007ba4e36853f67" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_SequenceToSplitWells.SetCurrentPosition(i_int_SequenceIndex); // }} "" // {{{ 178 1 0 "66200452_0a0e_46f2_8742fac3598b719e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentLabID = SeqGetLabwareId(i_seq_SequenceToSplitWells); // }} "" // {{{ 179 1 0 "84bf939b_3617_459c_9d3f7c8ec6e22065" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentPosID = SeqGetPositionId(i_seq_SequenceToSplitWells); // }} "" // {{{ 180 1 0 "519a7157_9385_4ad2_a6e5c33f0e281dc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" VectorDb_Labware::LoadLabware(ML_STAR, str_CurrentLabID, str_CurrentPosID); // }} "" // {{{ 181 1 0 "679aa8bb_f772_4ee0_9b04e2027e6811b4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetConfigurationFile(ML_STAR, str_CurrentLabID, str_ConfigFile); // }} "" // {{{ 182 1 0 "f9787262_2b0d_4179_8be7fe07c68e8223" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetContainerWidth(ML_STAR, str_CurrentLabID, flt_ContainerHoleWidth); // }} "" // {{{ 183 1 0 "5711b38b_1791_483c_a0a1f2cb15186159" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" int_ConfigFileFound = LOOKUP::Lookup(SPLIT_WELLS_GLOBAL::ARR_LABWARE_CONFIG_FILE, str_ConfigFile); // }} "" // {{ 184 1 0 "74a58717_fb4d_4193_b875b4714ddffb79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ConfigFileFound == 0) { // }} "" // {{{ 185 1 0 "4b0c060c_8b7b_48d7_ad4e347c4e34d50f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_CurrentLabID, str_CurrentPosID, str_ConfigFile_Container); // }} "" // {{ 186 1 0 "8ac09e28_7711_4299_8d3db0670dc952d5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" SPLIT_WELLS_GLOBAL::ARR_LABWARE_CONFIG_FILE.AddAsLast(str_ConfigFile); // }} "" // {{ 187 1 0 "edc90fea_c31b_4d0f_8b43615949c99dc5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" SPLIT_WELLS_GLOBAL::ARR_CONTAINER_CONFIG_FILE.AddAsLast(str_ConfigFile_Container); // }} "" // {{ 188 1 0 "74a58717_fb4d_4193_b875b4714ddffb79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 189 1 0 "583cb593_ef62_42f4_8d98194e66329b9b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_ConfigFile_Container=SPLIT_WELLS_GLOBAL::ARR_CONTAINER_CONFIG_FILE.GetAt(int_ConfigFileFound-1); // }} "" // {{ 190 1 0 "74a58717_fb4d_4193_b875b4714ddffb79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 191 1 0 "496fa591_2f3a_4ac4_9c196bbe0725b144" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_ConfigFile_Container == "") { // }} "" // {{ 192 1 0 "a9b3e159_c654_456d_b22308fa87a9ec8c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ConfigFile_Container = str_TempContainerPath; // }} "" // {{ 193 1 0 "496fa591_2f3a_4ac4_9c196bbe0725b144" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 194 1 0 "1096c831_598f_434a_82112108c69661b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ContainerName = HSLExtensions::File::GetFileNameWithoutExtension(str_ConfigFile_Container); // }} "" Trace(""); Trace("Container File Name: ",str_ContainerName); Trace(""); // {{{ 196 1 0 "ad32c0a9_cc88_4fc1_be3b028e20416675" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, str_CurrentLabID, str_CurrentPosID, flt_Position_X, flt_Position_Y, flt_Position_Z, flt_Position_A); // }} "" // {{ 197 1 0 "a0986fe6_5872_4ebf_bfce0866d2fde3f7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Center = flt_Position_Y; // }} "" // {{ 198 1 0 "bc6c3bc6_48d4_41b0_bf18885c799a5abb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Start = flt_Position_Z; // }} "" // {{{ 199 1 0 "edadbda1_37b1_4963_bc62504f01fabbbb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" CalculateWellAngle(i_flt_ContainerBottomSegment_Height, i_flt_ContainerBottomSegment_TopDiameter, i_flt_ContainerBottomSegment_BottomDiameter, flt_WellBottomAngle); // }} "" // {{ 200 1 0 "7f3fac2b_0f9b_4bf2_96d35044cb701865" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 201 1 0 "c9b90537_7d69_4099_8665926444a199c6" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_MaximumContainers = flt_ContainerHoleWidth / (9 * 1.0); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 202 1 0 "d7c699d9_96ea_4155_93e2778bbce7f023" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_MaximumContainers = flt_ContainerHoleWidth / 9; // }} "" // {{ 203 1 0 "09c3f4a1_1391_40d1_b8dbde22fe71760d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Remainder = flt_ContainerHoleWidth % 9; // }} "" // {{ 204 1 0 "a497b5a2_1fc4_4517_afe17a81d05a976d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Remainder > 0) { // }} "" // {{ 205 1 0 "7595644f_f531_4af0_ad80224ad3fef267" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_MaximumContainers = int_MaximumContainers + 1; // }} "" // {{ 206 1 0 "a497b5a2_1fc4_4517_afe17a81d05a976d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 207 1 0 "596bbab9_84be_432d_be6ac93bf312b532" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_MaximumContainers = MthFloor(int_MaximumContainers); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 208 1 0 "1ee39408_0b37_4a40_9657e3ed73046167" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::ConvertToInteger(int_MaximumContainers, int_MaximumContainers); // }} "" // {{ 209 1 0 "233183ca_3e84_4b81_944bf6cff57304f1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_MaximumContainers > i_int_MaxWellSplit) { // }} "" // {{ 210 1 0 "28353763_ea7f_4cbf_a61e8cf0067ac094" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_MaximumContainers = i_int_MaxWellSplit; // }} "" // {{ 211 1 0 "233183ca_3e84_4b81_944bf6cff57304f1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 212 1 0 "3b57bea9_fabf_4040_a5a267b7d691a151" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_MaximumContainers == 1) { // }} "" // {{ 213 1 0 "24256c93_ab50_47a0_9fbd88b9903917cc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_PositiveOffset = 0.0; // }} "" // {{ 214 1 0 "3b57bea9_fabf_4040_a5a267b7d691a151" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 215 1 0 "fe7751a1_f457_4583_9de41a8b81b20a20" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" bol_OddContainers = int_MaximumContainers % 2; // }} "" // {{ 216 1 0 "0315108e_c760_47c9_8d8c30d8c0c7fa8b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_OddContainers == 1) { // }} "" // {{ 217 1 0 "92a8a630_c072_42e5_96ece18301535878" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_TotalTopHalf = int_MaximumContainers - 1; // }} "" // {{ 218 1 0 "fd36622c_cb38_4029_a838a32264a89ba9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_TotalTopHalf = int_TotalTopHalf / 2; // }} "" // {{ 219 1 0 "f5a5f324_e1c9_4c8a_95f92f99b2890613" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_PositiveOffset_mm = int_TotalTopHalf * 9.0; // }} "" // {{ 220 1 0 "0315108e_c760_47c9_8d8c30d8c0c7fa8b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 221 1 0 "77a97295_5d88_4130_bddecae17e3f100a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_TotalTopHalf = int_MaximumContainers / 2; // }} "" // {{ 222 1 0 "91f8791b_88e4_49ec_b74e6ea9b1cb805f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_TotalTopHalf = int_TotalTopHalf - 0.5; // }} "" // {{ 223 1 0 "1b99fb0d_d7ab_4393_81111eb2f71f190b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_PositiveOffset_mm = flt_TotalTopHalf * 9.0; // }} "" // {{ 224 1 0 "0315108e_c760_47c9_8d8c30d8c0c7fa8b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 225 1 0 "497da821_2546_4366_bfc7dd6c0f3f65b3" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_FirstContainerLocation_Y = flt_Position_Y + flt_PositiveOffset_mm; // }} "" Trace(" ","Maximum Containers: ",int_MaximumContainers); Trace(" ","Positive Offset: ",flt_PositiveOffset_mm); Trace(" ","Well Center: ",flt_Position_Y); Trace(" ","First Location: ",flt_FirstContainerLocation_Y); Trace(" ","Container Hole Width: ",flt_ContainerHoleWidth); Trace(" ","Well Angle: ",flt_WellBottomAngle," degrees"); // {{ 227 1 0 "3a1f99a3_7e72_43e6_9e387faf4a7789a1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Position_Y = flt_FirstContainerLocation_Y; // }} "" // {{ 228 1 0 "7f3fac2b_0f9b_4bf2_96d35044cb701865" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 229 1 0 "d2165b57_65a9_49af_8f9578e80bc6dc77" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BottomSegment_Radius = 0.0; // }} "" // {{ 230 1 0 "d2ae9be7_657b_4714_96fdb35c2b52c302" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_flt_ContainerBottomSegment_BottomDiameter > 0.0) { // }} "" // {{ 231 1 0 "09f6df77_4a7a_464d_aab026e030753030" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_BottomSegment_Radius = i_flt_ContainerBottomSegment_BottomDiameter / (2 * 1.0); // }} "" // {{ 232 1 0 "d2ae9be7_657b_4714_96fdb35c2b52c302" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Bottom Segment Radius: ",flt_BottomSegment_Radius); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 234 1 0 "3e87e00e_48cb_40de_abdbdfbbd4dc7093" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_AngleStart = flt_Y_Center + flt_BottomSegment_Radius; // }} "" // {{ 235 1 0 "1093b413_a42b_426d_86a5362ab34678cd" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_AngleEnd = flt_Y_Center - flt_BottomSegment_Radius; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Angle Start Position: ",flt_AngleStart," Angle End Position: ",flt_AngleEnd); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 237 1 0 "9e65fd07_da39_4b8e_9f4d2d7cddf4e128" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ContainerIndex = 0; int_ContainerIndex < int_MaximumContainers;) { int_ContainerIndex = int_ContainerIndex + 1; // }} "" // {{ 238 1 0 "9e9126c5_62fe_4ad6_9baaa1e4d0bb6026" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Offset = 0.0; // }} "" // {{ 239 1 0 "ee6c4bc6_c5c3_4006_a4d98679396e1002" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Offset = 0.0; // }} "" // {{{ 240 1 0 "08f2c2e2_79aa_48e6_9b6dae27f23ece26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ContainerName = StrConcat8(str_CurrentLabID, Translate("_"), str_CurrentPosID, Translate("_"), int_ContainerIndex, Translate(""), Translate(""), Translate("")); // }} "" // {{{ 241 1 0 "1d9a9fb6_11bc_4ea9_a7524754080ec67a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bol_LabwareExists = DevIsValidLabwareForCurrentDeckLayout(ML_STAR, str_ContainerName); // }} "" // {{ 242 1 0 "80f5c8e1_cacb_457b_8f75796ee0f23f6d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_LabwareExists == 0) { // }} "" // {{{ 243 1 0 "f98f9fad_2b80_44a7_a6bc9758a33bdc2a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevAddLabware(ML_STAR, str_ContainerName, str_TempRackPath, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_A_Coord); // }} "" // {{ 244 1 0 "80f5c8e1_cacb_457b_8f75796ee0f23f6d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 245 1 0 "fd1e555c_0267_48dd_a940b2791e45df94" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Position_Y > flt_AngleStart) { // }} "" // {{ 246 1 0 "791acec7_d062_4690_87854ffe442be4b7" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Offset = flt_Position_Y - flt_AngleStart; // }} "" // {{{ 247 1 0 "d8a883e9_c6e2_49fa_b820538aeab76394" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" CalcualteOffsetHeight(flt_WellBottomAngle, flt_Y_Offset, flt_Z_Offset); // }} "" // {{ 248 1 0 "fd1e555c_0267_48dd_a940b2791e45df94" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 249 1 0 "4a3d19b5_5e38_4ef3_97d9cfe4447f1cea" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Position_Y < flt_AngleEnd) { // }} "" // {{ 250 1 0 "2e951cd4_6a59_4016_af0d89a200875bef" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Offset = flt_Position_Y - flt_AngleStart; // }} "" // {{ 251 1 0 "adf402ec_46cb_4816_b9e7bad08019270c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Offset = flt_Y_Offset * -1; // }} "" // {{{ 252 1 0 "072ab947_92f6_498d_adbe278eb958774b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" CalcualteOffsetHeight(flt_WellBottomAngle, flt_Y_Offset, flt_Z_Offset); // }} "" // {{ 253 1 0 "4a3d19b5_5e38_4ef3_97d9cfe4447f1cea" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 254 1 0 "dedb4c73_5410_41fb_babdf3626126c66a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 255 1 0 "3c0227e6_49cd_4a2a_9cd5b8a136079731" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Offset = flt_Position_Y - flt_Y_Center; // }} "" // {{ 256 1 0 "331e8f11_bfb5_474f_886c6c9ea685e218" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Y_Offset < 0.0) { // }} "" // {{ 257 1 0 "9b6007d4_8262_4fc9_b3c7b0aaace540cc" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Offset = flt_Y_Offset * -1; // }} "" // {{ 258 1 0 "331e8f11_bfb5_474f_886c6c9ea685e218" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 259 1 0 "eeda18c3_ee24_4b8d_a90b50ac3c93d5a9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Y_Offset > flt_BottomSegment_Radius) { // }} "" // {{ 260 1 0 "2cfadc2a_4c04_4ee3_8dce21f15131da77" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Offset = flt_Y_Offset - flt_BottomSegment_Radius; // }} "" // {{ 261 1 0 "eeda18c3_ee24_4b8d_a90b50ac3c93d5a9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 262 1 0 "54cc239b_a691_4d5a_b625b9e3f1843fcc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Y_Offset <= 0.0) { // }} "" // {{ 263 1 0 "ffabded2_dcd0_4231_aaf60f067a889f56" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Offset = 0; // }} "" // {{ 264 1 0 "54cc239b_a691_4d5a_b625b9e3f1843fcc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 265 1 0 "ee948fea_2c85_4de5_bbdc72580b9b275d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" CalcualteOffsetHeight(flt_WellBottomAngle, flt_Y_Offset, flt_Z_Offset); // }} "" // {{ 266 1 0 "54cc239b_a691_4d5a_b625b9e3f1843fcc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 267 1 0 "64522989_5d12_4579_8b5ccc9ee8f5e3f5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Position_Z = flt_Z_Start + flt_Z_Offset; // }} "" Trace("New Z Bottom: ",flt_Position_Z); // {{ 269 1 0 "dedb4c73_5410_41fb_babdf3626126c66a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace("Z Offset: ",flt_Z_Offset); Trace("Y Offset: ",flt_Y_Offset); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 271 1 0 "782c9f1d_6293_41ef_a6d8e804715f7945" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Offset = flt_Z_Offset * -1; // }} "" // {{{ 272 1 0 "c7c7ebc3_c114_4ce4_842faea1f0c27672" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevAddContainerToRack(ML_STAR, str_ContainerName, Translate("1"), str_ConfigFile_Container, 0.0, 0.0, flt_Z_Offset); // }} "" // {{{ 273 1 0 "83521094_cb77_475d_96fbe2cf857c15d7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::SetAbsolutePositionForLabwareID(ML_STAR, str_ContainerName, flt_Position_X, flt_Position_Y, flt_Position_Z, flt_Position_A); // }} "" // {{ 274 1 0 "b7e338f4_1894_4b19_b7529f19a8d42dd3" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Position_Y = flt_Position_Y - 9.0; // }} "" // {{{ 275 1 0 "89814e79_5f37_472a_96e963a896ca0c49" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" int_Index = LOOKUP::Lookup(SPLIT_WELLS_GLOBAL::ARR_CONTAINER_IDS, str_ContainerName); // }} "" // {{ 276 1 0 "e50297b8_1f0f_46b4_b314bd33da3c48bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index == 0) { // }} "" // {{ 277 1 0 "a8f73c2d_d648_4a3c_9ec4534e07517a19" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" SPLIT_WELLS_GLOBAL::ARR_CONTAINER_IDS.AddAsLast(str_ContainerName); // }} "" // {{ 278 1 0 "e50297b8_1f0f_46b4_b314bd33da3c48bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 279 1 0 "6e6c1e70_ff8a_42f8_b311e38c1b03f5f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(io_seq_SpltSequence, str_ContainerName, Translate("1")); // }} "" // {{ 280 1 0 "9e65fd07_da39_4b8e_9f4d2d7cddf4e128" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 281 1 0 "05a94d28_0a61_48c5_8c76dea1fd1eff03" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_seq_SpltSequence.SetCurrentPosition(1); // }} "" // {{{ 5 "SplitWellsVBottom" "End" } // }} "" // {{{ 5 "SplitWellsFlatBottom" "Begin" function SplitWellsFlatBottom( device & ML_STAR, sequence i_seq_SequenceToSplitWells, variable i_int_SequenceIndex, variable i_int_MaxWellSplit, sequence & io_seq_SpltSequence ) void { // }} "" private variable flt_Position_Z; private variable flt_X_Coord; private variable int_ConfigFileFound; private variable flt_A_Coord; private variable flt_Z_Coord; private variable flt_Y_Coord; private variable flt_TotalTopHalf; private variable flt_Y_Offset; private variable int_MaxPositions_Sequence; private variable flt_Y_Center; private variable str_SequenceIndex; private variable str_CurrentPosID; private variable flt_FirstContainerLocation_Y; private variable str_ContainerName; private variable flt_Z_Offset; private variable str_ConfigFile; private variable flt_Position_A; private variable bol_OddContainers; private variable flt_ContainerHoleWidth; private variable int_MaximumContainers; private variable bol_LabwareExists; private variable str_ConfigFile_Container; private variable int_TotalTopHalf; private variable flt_Z_Start; private variable int_ContainerIndex; private variable flt_PositiveOffset; private variable str_TempContainerPath; private variable flt_Position_X; private variable str_TempRackPath; private variable str_CurrentLabID; private variable flt_Position_Y; private variable flt_PositiveOffset_mm; private variable int_Index; private variable int_Remainder; // {{ 5 "SplitWellsFlatBottom" "InitLocals" // }} "" // {{{ 68 1 0 "9ab6c557_a70c_46e6_8307bd1114b6a610" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetCenterSpotLabware(str_TempRackPath); // }} "" // {{{ 69 1 0 "5cf8154b_bc7b_430a_b7033f85768ff884" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetCenterSpotContainer(str_TempContainerPath); // }} "" // {{ 70 1 0 "e778a95c_de95_4645_ae5ec9c3acfbd906" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 71 1 0 "e033e9c7_1784_4d9b_84755722d39f68c3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 72 1 0 "89854b70_d489_427b_b4edfb069b52bd16" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SequenceIndex = StrConcat2(i_int_SequenceIndex, Translate("")); // }} "" // {{{ 73 1 0 "000928df_6f4c_453a_b33930fca8e75d5a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Index = StrIVal(str_SequenceIndex); // }} "" // {{{ 74 1 0 "a8a17c8a_94c3_4ab8_8d2a29b6d0f499ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_MaxPositions_Sequence = SeqGetTotal(i_seq_SequenceToSplitWells); // }} "" // {{ 75 1 0 "a356952e_1059_42ec_8943a319e00adf3c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index < 1) { // }} "" // {{ 76 1 0 "743f66fb_6bfd_471f_aaf006bf9600f301" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=================================\nIndex is less than 1\n=================================")); // }} "" // {{{ 77 1 0 "7e1f8648_af1f_4bbe_b8d1e60a10ac56dd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Split_Wells - Sequence index is less than 1")); // }} "" // {{ 78 1 0 "a356952e_1059_42ec_8943a319e00adf3c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 79 1 0 "f7987fdb_1fd0_4750_89078d742da07afc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index > int_MaxPositions_Sequence) { // }} "" // {{ 80 1 0 "a450e0dd_169b_4580_bb3579978b0f14e6" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=================================\nIndex is greater than the number of sequence positions\n=================================")); // }} "" // {{{ 81 1 0 "1032a113_5e21_4410_9424b2a09274159e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Split_Wells - Sequence index is greater than the positions in the sequence")); // }} "" // {{ 82 1 0 "f7987fdb_1fd0_4750_89078d742da07afc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 83 1 0 "e778a95c_de95_4645_ae5ec9c3acfbd906" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 84 1 0 "354bf6e6_51fb_48c3_be01d381dffda6f7" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 85 1 0 "8a6ab5af_1a25_4b18_bc6aeb001408d30b" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_SequenceToSplitWells.SetCurrentPosition(i_int_SequenceIndex); // }} "" // {{{ 86 1 0 "e69f5f98_eb87_44c2_9c1270f71d194e2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentLabID = SeqGetLabwareId(i_seq_SequenceToSplitWells); // }} "" // {{{ 87 1 0 "12dab32e_b281_4d0f_b75644ee01499326" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentPosID = SeqGetPositionId(i_seq_SequenceToSplitWells); // }} "" // {{{ 88 1 0 "ea25b265_6c49_416a_a3c044d6bc873d25" "{C1F3C015-47B3-4514-9407-AC2E65043419}" VectorDb_Labware::LoadLabware(ML_STAR, str_CurrentLabID, Translate("")); // }} "" // {{{ 89 1 0 "bff14137_03a5_4647_a3e4073cba8a9e90" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetConfigurationFile(ML_STAR, str_CurrentLabID, str_ConfigFile); // }} "" // {{{ 90 1 0 "a6dbc477_47c5_4b90_b0c31af44c56be59" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" int_ConfigFileFound = LOOKUP::Lookup(SPLIT_WELLS_GLOBAL::ARR_LABWARE_CONFIG_FILE, str_ConfigFile); // }} "" // {{{ 91 1 0 "24c6c3f1_aedf_498a_8f85fdd0fd258777" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetContainerWidth(ML_STAR, str_CurrentLabID, flt_ContainerHoleWidth); // }} "" // {{ 92 1 0 "f0f2992b_fc62_47a9_a9641825c7e889be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ConfigFileFound == 0) { // }} "" // {{{ 93 1 0 "e6f93e1f_822f_40a3_ad5030eb4c758ee2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_CurrentLabID, str_CurrentPosID, str_ConfigFile_Container); // }} "" // {{ 94 1 0 "9ef77fd7_5b69_4e98_95b099345cdd542d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" SPLIT_WELLS_GLOBAL::ARR_LABWARE_CONFIG_FILE.AddAsLast(str_ConfigFile); // }} "" // {{ 95 1 0 "f6ec34d9_d2b2_4c32_ae226d06640aca8d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" SPLIT_WELLS_GLOBAL::ARR_CONTAINER_CONFIG_FILE.AddAsLast(str_ConfigFile_Container); // }} "" // {{ 96 1 0 "f0f2992b_fc62_47a9_a9641825c7e889be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 97 1 0 "bf64eb1d_a227_4288_967586fd66fa04e0" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_ConfigFile_Container=SPLIT_WELLS_GLOBAL::ARR_CONTAINER_CONFIG_FILE.GetAt(int_ConfigFileFound-1); // }} "" // {{ 98 1 0 "f0f2992b_fc62_47a9_a9641825c7e889be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 99 1 0 "a720093b_17c4_4a5e_9d8b33bd62b39881" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_ConfigFile_Container == "") { // }} "" // {{ 100 1 0 "2263b60d_eba6_4071_843e98684df0ac71" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ConfigFile_Container = str_TempContainerPath; // }} "" // {{ 101 1 0 "a720093b_17c4_4a5e_9d8b33bd62b39881" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 102 1 0 "b528e20c_6172_495a_948d18893d2ea555" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ContainerName = HSLExtensions::File::GetFileNameWithoutExtension(str_ConfigFile_Container); // }} "" Trace(""); Trace("Container File Name: ",str_ContainerName); Trace(""); // {{{ 104 1 0 "df117b26_ee36_4795_9a8eb7140d70b4b2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, str_CurrentLabID, str_CurrentPosID, flt_Position_X, flt_Position_Y, flt_Position_Z, flt_Position_A); // }} "" // {{ 105 1 0 "b8b086cd_9942_43d7_9d76655d723c930a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Center = flt_Position_Y; // }} "" // {{ 106 1 0 "a9045ea2_41e5_4e14_9a7b928e97ca7a6b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Start = flt_Position_Z; // }} "" // {{ 107 1 0 "e1ee35a7_0614_41d9_b026888cd13d3713" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 108 1 0 "6150b463_58a1_4d0d_ade51ba2c00bd158" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_MaximumContainers = flt_ContainerHoleWidth / 9; // }} "" // {{ 109 1 0 "10297dc5_6864_44be_b6caa7daa33e601c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Remainder = flt_ContainerHoleWidth % 9; // }} "" // {{ 110 1 0 "db213f6e_587e_4825_8e41f0d579f0bd83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Remainder > 0) { // }} "" // {{ 111 1 0 "5c383d28_a878_4093_b7010ba58a5f7f67" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_MaximumContainers = int_MaximumContainers + 1; // }} "" // {{ 112 1 0 "db213f6e_587e_4825_8e41f0d579f0bd83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 113 1 0 "b71be591_d6bc_4076_8b6016d9c4b3e58e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_MaximumContainers > i_int_MaxWellSplit) { // }} "" // {{ 114 1 0 "9358d150_0c69_45c0_8efab6d1a3cc114e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_MaximumContainers = i_int_MaxWellSplit; // }} "" // {{ 115 1 0 "b71be591_d6bc_4076_8b6016d9c4b3e58e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 116 1 0 "c468a3ce_6756_455c_8f33b1a15c6e9c00" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::ConvertToInteger(int_MaximumContainers, int_MaximumContainers); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 117 1 0 "f3fa14b0_4417_4c79_b85ab2d4e8d5377e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_MaximumContainers = MthFloor(int_MaximumContainers); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 118 1 0 "343ba83b_e9c1_457a_9d28c2d8d011461d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_MaximumContainers == 1) { // }} "" // {{ 119 1 0 "8e804731_99ae_4311_8763f64418134a93" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_PositiveOffset = 0.0; // }} "" // {{ 120 1 0 "343ba83b_e9c1_457a_9d28c2d8d011461d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 121 1 0 "1d6b5595_a255_4cea_a6bbfd5763c1a828" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" bol_OddContainers = int_MaximumContainers % 2; // }} "" // {{ 122 1 0 "ac24b7b2_bc6a_4b38_9f684cea95d5bdeb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_OddContainers == 1) { // }} "" // {{ 123 1 0 "307e259f_32b7_426c_bcb92a9c2dffdc6f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_TotalTopHalf = int_MaximumContainers - 1; // }} "" // {{ 124 1 0 "815d6778_4730_455e_ad218de6ccf9e0d4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_TotalTopHalf = int_TotalTopHalf / 2; // }} "" // {{ 125 1 0 "57c8a966_b6ee_496b_b25f9d0a42910131" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_PositiveOffset_mm = int_TotalTopHalf * 9.0; // }} "" // {{ 126 1 0 "ac24b7b2_bc6a_4b38_9f684cea95d5bdeb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 127 1 0 "2145c230_d6fb_473a_aac494b635876325" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_TotalTopHalf = int_MaximumContainers / 2; // }} "" // {{ 128 1 0 "a0744c6e_33bd_4418_877e88144de6d1c1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_TotalTopHalf = int_TotalTopHalf - 0.5; // }} "" // {{ 129 1 0 "88bf3ba8_374b_4f3c_9a42a5194caeb3f8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_PositiveOffset_mm = flt_TotalTopHalf * 9.0; // }} "" // {{ 130 1 0 "ac24b7b2_bc6a_4b38_9f684cea95d5bdeb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 131 1 0 "90eba7f3_50ad_417b_8f10c24a2233953e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_FirstContainerLocation_Y = flt_Position_Y + flt_PositiveOffset_mm; // }} "" Trace(" ","Maximum Containers: ",int_MaximumContainers); Trace(" ","Positive Offset: ",flt_PositiveOffset_mm); Trace(" ","Well Center: ",flt_Position_Y); Trace(" ","First Location: ",flt_FirstContainerLocation_Y); Trace(" ","Container Hole Width: ",flt_ContainerHoleWidth); // {{ 133 1 0 "0da188cb_3f87_476e_8e625e5f0029f736" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Position_Y = flt_FirstContainerLocation_Y; // }} "" // {{ 134 1 0 "e1ee35a7_0614_41d9_b026888cd13d3713" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 135 1 0 "44c946fc_f348_46cd_96b4b0089db0c983" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ContainerIndex = 0; int_ContainerIndex < int_MaximumContainers;) { int_ContainerIndex = int_ContainerIndex + 1; // }} "" // {{{ 136 1 0 "1a45e979_5d67_47a9_87067a1d66f6bcee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ContainerName = StrConcat8(str_CurrentLabID, Translate("_"), str_CurrentPosID, Translate("_"), int_ContainerIndex, Translate(""), Translate(""), Translate("")); // }} "" // {{{ 137 1 0 "146756b2_3ed4_422d_8c80ba4474c178b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bol_LabwareExists = DevIsValidLabwareForCurrentDeckLayout(ML_STAR, str_ContainerName); // }} "" // {{ 138 1 0 "923207cf_c348_4fd4_ad1e659c83658c70" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_LabwareExists == 0) { // }} "" // {{{ 139 1 0 "5c4e5423_4b07_4b17_9130c537675f6733" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevAddLabware(ML_STAR, str_ContainerName, str_TempRackPath, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_A_Coord); // }} "" // {{ 140 1 0 "923207cf_c348_4fd4_ad1e659c83658c70" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 141 1 0 "7962d11e_6826_40b8_98f5e791532af8ca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevAddContainerToRack(ML_STAR, str_ContainerName, Translate("1"), str_ConfigFile_Container, 0.0, 0.0, 0.0); // }} "" // {{ 142 1 0 "110670dd_b769_42ba_95d2d411c38190c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 143 1 0 "79542fce_0148_4457_b31501452aae0269" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Offset = flt_Position_Y - flt_Y_Center; // }} "" // {{ 144 1 0 "052438a1_2f6c_48e7_bbb0c71f99514ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Y_Offset < 0.0) { // }} "" // {{ 145 1 0 "8b0f27b3_db06_4d49_beee60e1724a53a1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Offset = flt_Y_Offset * -1; // }} "" // {{ 146 1 0 "052438a1_2f6c_48e7_bbb0c71f99514ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 147 1 0 "06aaccec_d2eb_431f_a4058f0a9dfe648e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Offset = 0; // }} "" // {{ 148 1 0 "a2a5e5c4_4255_4025_b467c4285defb8eb" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Position_Z = flt_Z_Start + flt_Z_Offset; // }} "" // {{ 149 1 0 "110670dd_b769_42ba_95d2d411c38190c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 150 1 0 "4ed18878_5c43_4ca4_b67bc9015b3389e4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::SetAbsolutePositionForLabwareID(ML_STAR, str_ContainerName, flt_Position_X, flt_Position_Y, flt_Position_Z, flt_Position_A); // }} "" // {{ 151 1 0 "d64d2e51_d9df_44ff_b78ba8d4d886f7d7" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Position_Y = flt_Position_Y - 9.0; // }} "" // {{{ 152 1 0 "e76cc8b1_16b5_44de_b1402ff3e19ee22e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" int_Index = LOOKUP::Lookup(SPLIT_WELLS_GLOBAL::ARR_CONTAINER_IDS, str_ContainerName); // }} "" // {{ 153 1 0 "286eb7a7_c1a0_4fa1_a50c9187ec72f10f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index == 0) { // }} "" // {{ 154 1 0 "69e095e2_fb4d_432b_9cfa625b41d9ccf8" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" SPLIT_WELLS_GLOBAL::ARR_CONTAINER_IDS.AddAsLast(str_ContainerName); // }} "" // {{ 155 1 0 "286eb7a7_c1a0_4fa1_a50c9187ec72f10f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 156 1 0 "ddc256ad_6c88_4266_8920015b2aabd383" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(io_seq_SpltSequence, str_ContainerName, Translate("1")); // }} "" // {{ 157 1 0 "44c946fc_f348_46cd_96b4b0089db0c983" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 158 1 0 "bcd8014b_47bd_40a0_bf74bb3eb5d68996" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_seq_SpltSequence.SetCurrentPosition(1); // }} "" // {{{ 5 "SplitWellsFlatBottom" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=Bare_B$$valid=0$$time=2019-09-26 09:05$$checksum=a93a4899$$length=085$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/TIP_OFFSET_GLOBAL.hsl ================================================ #pragma global #ifndef __TIP_OFFSET_GLOBAL_hsl__ #define __TIP_OFFSET_GLOBAL_hsl__ 1 namespace TIP_OFFSET_GLOBAL { namespace INIT { function InitializeVariables(); function InitializeVariables() {} } namespace BOOL { variable LIBRARY_INITIALIZED(hslFalse); } namespace SEQ { sequence TIP_REFRESH; sequence SOURCE_TIP_REFRESH; sequence TIP_PICK_UP; sequence TIP_OFFSET_CURRENT; sequence RETURN_TO_PICKUP; sequence EMPTY_POSITIONS; } namespace FLT { const variable CONTAINER_OFFSET(12.5); } namespace INT { variable TIPS_LOADED(0); variable OFFSET_INDEX(0); } namespace ARR { variable TIP_OFFSET_LAB_ID[]; variable TIPS_LOADED[]; sequence TIPS_RETURN_POSITION[]; sequence TIPS_OFFSET_CURRENT[]; } } #endif // $$author=Bare_B$$valid=0$$time=2019-09-17 13:04$$checksum=21467b7b$$length=085$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/Tip Tool Global Variables.hsl ================================================ #pragma global #ifndef __Tip_Tool_Global_Variables_hsl__ #define __Tip_Tool_Global_Variables_hsl__ 1 namespace TT_GLOBAL_VARIABLES { namespace TIP_COUNT { function InitializeVariables(); function InitializeVariables() {} variable TIP_COUNTER[]; variable TIP_COUNT_NEEDED[]; variable LIBRARY_INITIALIZED(hslFalse); } } #endif // $$author=Bare_B$$valid=0$$time=2019-06-17 17:13$$checksum=5085208f$$length=085$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/TipCounterGlobal.hsl ================================================ #pragma global #ifndef __TipCounterGlobal_hsl__ #define __TipCounterGlobal_hsl__ 1 static variable initializedLib(hslFalse); static object m_elementCounterObject; static variable systemSimulationOn(hslFalse); namespace TIP_COUNTER { function InitTipCountingLibrary(); function CheckTipCounterName(variable& tipCounter); function ReadFromHxElementCounter(device& deviceContext, sequence& sequenceObj, variable labwareType, variable tipCounter, variable InstrumentClass); function CreateNewHxElementCounter(sequence& sequenceObj, variable labwareType, variable tipCounter, variable InstrumentClass); function EditSequence(device& deviceContext, sequence& sequenceObj, variable blnEditable, variable intTimeOut); function EditSequence2(device& deviceContext, sequence& sequenceObj, variable blnEditable, variable firstPosition, variable lastPosition, variable intTimeOut); function WriteHxElementCounter(sequence sequenceObj, variable labwareType, variable tipCounter, variable InstrumentClass); function RemoveUsedPositions(device& deviceContext, sequence& sequenceObj); function GetListOfElementCounterNames(variable InstrumentClass, variable labwareType, variable& listOfTipCounters[]); function InitTipCountingLibrary() { if(!initializedLib) { object vectorDbTracker; object elementCounter; object services; object generalSettings; vectorDbTracker = GetVectorDbTrackerObject(); elementCounter = vectorDbTracker.GetElementCounter(); elementCounter.GetObject2("{4BD6717B-EF66-42ff-9EF8-166099E46E2B}", m_elementCounterObject); services.CreateObject( "Hamilton.HxServicesGeneralSettings" ); services.GetObject( "IHxServicesGeneralSettings2", generalSettings ); systemSimulationOn = ( generalSettings.SimulationOn != 0 ); vectorDbTracker.ReleaseObject(); elementCounter.ReleaseObject(); services.ReleaseObject(); generalSettings.ReleaseObject(); initializedLib = hslTrue; //Trace("Initialized"); } } function CheckTipCounterName(variable& tipCounter) { if(!m_elementCounterObject.ElementCounterNameIsValid(tipCounter)) { variable invalidName(tipCounter); tipCounter = m_elementCounterObject.GetValidElementCounterName(invalidName); //Trace(tipCounter); } } function ReadFromHxElementCounter(device& deviceContext, sequence& sequenceObj, variable labwareType, variable tipCounter, variable InstrumentClass) { deviceContext.CopyResetSequence(sequenceObj.GetName(), sequenceObj); if(!m_elementCounterObject.ElementCounterExists(tipCounter, InstrumentClass)) return; m_elementCounterObject.ReadElementCounterIntoSequence(tipCounter, InstrumentClass, labwareType, GetSimulationMode(), sequenceObj.GetSequenceObject()); if(sequenceObj.GetCount() == 0) { deviceContext.CopyResetSequence(sequenceObj.GetName(), sequenceObj); } } function CreateNewHxElementCounter(sequence sequenceObj, variable labwareType, variable tipCounter, variable InstrumentClass) { if(!m_elementCounterObject.ElementCounterExists(tipCounter, InstrumentClass)) { m_elementCounterObject.CreateElementCounter(tipCounter, InstrumentClass, GetSimulationMode()); m_elementCounterObject.ResetElementCounter(tipCounter, InstrumentClass, labwareType, GetSimulationMode(), sequenceObj.GetSequenceObject(), 1); } } function EditSequence(device& deviceContext, sequence& sequenceObj, variable blnEditable, variable intTimeOut) { sequence reloadSequence; deviceContext.CopyResetSequence(sequenceObj.GetName(), reloadSequence); deviceContext.RemoveSequences(); deviceContext.AddSequence2(sequenceObj, reloadSequence, blnEditable); if(intTimeOut< 0) deviceContext.EditSequences("Edit Tip Count","Set the first and the last position of the tip sequence as the actual current and count position of the tip sequence respectively.",hslInfinite,""); else deviceContext.EditSequences("Edit Tip Count","Set the first and the last position of the tip sequence as the actual current and count position of the tip sequence respectively.",intTimeOut,""); deviceContext.RemoveSequences(); } function EditSequence2(device& deviceContext, sequence& sequenceObj, variable blnEditable, variable firstPosition, variable lastPosition, variable intTimeOut) { sequence reloadSequence; deviceContext.CopyResetSequence(sequenceObj.GetName(), sequenceObj); deviceContext.RemoveSequences(); deviceContext.AddSequence(sequenceObj, 0, firstPosition, lastPosition, blnEditable, ""); if(intTimeOut< 0) deviceContext.EditSequences("Edit Tip Count","Set the first and the last position of the tip sequence as the actual current and count position of the tip sequence respectively.",hslInfinite,""); else deviceContext.EditSequences("Edit Tip Count","Set the first and the last position of the tip sequence as the actual current and count position of the tip sequence respectively.",intTimeOut,""); deviceContext.RemoveSequences(); } function WriteHxElementCounter(sequence sequenceObj, variable labwareType, variable tipCounter, variable InstrumentClass) { m_elementCounterObject.WriteSequenceIntoElementCounter(tipCounter, InstrumentClass,labwareType, GetSimulationMode(), sequenceObj.GetSequenceObject()); } function RemoveUsedPositions(device& deviceContext, sequence& sequenceObj) { if(sequenceObj.GetCurrentPosition() != 1) { variable position; variable total; variable emptySequence(hslFalse); if(sequenceObj.GetCurrentPosition() == 0) { total = sequenceObj.GetTotal(); emptySequence = hslTrue; } else { total = sequenceObj.GetCurrentPosition() - 1; //emptySequence = hslTrue; } //sequenceObj.SetCount(total); sequenceObj.SetCurrentPosition(1); for (position = 1; position <= total; position++) sequenceObj.RemoveAt(1); //sequenceObj.SetMax(sequenceObj.GetCount()); if(emptySequence) { sequenceObj.SetCount(0); sequenceObj.SetCurrentPosition(0); sequenceObj.SetMax(0); } } } function GetListOfElementCounterNames(variable InstrumentClass, variable labwareType, variable& listOfTipCounters[]) { variable NumberOfCounters(0); object listOfCounters; object pars; NumberOfCounters = m_elementCounterObject.GetListOfElementCounterNames(InstrumentClass, labwareType, listOfCounters); pars.CreateObject("HXPARAMSLib.HxPars"); //Trace(" ","Total number of counters: ",NumberOfCounters); listOfTipCounters = listOfCounters.GetKeys(); listOfCounters.ReleaseObject(); pars.ReleaseObject(); } } #endif // $$author=Hamilton$$valid=0$$time=2021-10-06 18:21$$checksum=236d30cb$$length=087$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/Travel Lanes.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 3/26/2020 2:50:35 PM #pragma once #ifndef HSL_RUNTIME namespace TRAVEL_LANES { function _InitLibrary() { } function _ExitLibrary() { } function MoveChannelsToSequencePosition( device & ML_STAR, sequence i_seq_PositionsToMove ) void { } function MoveChannelsToSequencePosition_5mL( device & ML_STAR, sequence i_seq_PositionsToMove ) void { } function MoveChannelsToTravelLanes( device & ML_STAR ) void { } function MoveChannelsToTravelLanes_5mL( device & ML_STAR ) void { } function MoveSingleChannel( device & ML_STAR, variable i_int_ChannelNumber, variable i_flt_YCoordinate ) void { } function MoveSingleChannel_5mL( device & ML_STAR, variable i_int_ChannelNumber, variable i_flt_YCoordinate ) void { } function MoveUsedChannel( device & ML_STAR, variable i_str_PipetteReturn ) void { } function MoveUsedChannel_5mL( device & ML_STAR, variable i_str_PipetteReturn ) void { } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=Bare_B$$valid=0$$time=2020-03-26 14:50$$checksum=0a6679c2$$length=083$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/Travel Lanes.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "HSLDevLib.hsl" #include "STAR Tools\\Resources\\SubMethods\\HelperLibrary.hs_" #include "HSLStrLib.hsl" #include "HSLMlStarStepReturnLib.hsl" #include "HSLExtensions\\String.hsl" #include "HSLUtilLib.hsl" #include "HSLSeqLib.hsl" #include "HSLUtilLib2.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" #include "HSLPTLLib.hsl" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace TRAVEL_LANES { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function MoveChannelsToSequencePosition( device & ML_STAR, sequence i_seq_PositionsToMove ) void ; function MoveChannelsToSequencePosition_5mL( device & ML_STAR, sequence i_seq_PositionsToMove ) void ; function MoveChannelsToTravelLanes( device & ML_STAR ) void ; function MoveChannelsToTravelLanes_5mL( device & ML_STAR ) void ; function MoveSingleChannel( device & ML_STAR, variable i_int_ChannelNumber, variable i_flt_YCoordinate ) void ; function MoveSingleChannel_5mL( device & ML_STAR, variable i_int_ChannelNumber, variable i_flt_YCoordinate ) void ; function MoveUsedChannel( device & ML_STAR, variable i_str_PipetteReturn ) void ; function MoveUsedChannel_5mL( device & ML_STAR, variable i_str_PipetteReturn ) void ; private function _ConvertToInteger( variable & io_Value ) void ; private function _RemoveTruncatedSequencePositions( device & Instrument, sequence & io_Sequence ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" PTL::SetWashingStateDefault("RinseTime1", 5); PTL::SetWashingStateDefault("SoakTime1", 5); PTL::SetWashingStateDefault("FlowRate1", 11); PTL::SetWashingStateDefault("RinseTime2", 0); PTL::SetWashingStateDefault("SoakTime2", 0); PTL::SetWashingStateDefault("FlowRate2", 11); PTL::SetWashingStateDefault("DrainingTime", 10); PTL::SetWashingStateDefault("StartWashLiquid", 0); PTL::SetLoadingStateDefault("RecoveryOptionContinue", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionExclude", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionDefault", 0); PTL::SetLoadingStateDefault("KitLotCheckEnabled", hslFalse); HELPERLIBRARY::_InitLibrary(); // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" HELPERLIBRARY::_ExitLibrary(); // }} "" } // {{{ 5 "MoveChannelsToTravelLanes" "Begin" function MoveChannelsToTravelLanes( device & ML_STAR ) void { // }} "" private variable intNumberOfChannels; private variable flt_YRaster; private variable arr_YMin[]; private variable arr_YMax[]; private variable int_YRaster; private variable int_ChannelIndex; private variable int_SplitChannel; private variable flt_ChannelPosition; private variable str_ChannelPosition; private variable str_Parameter; private variable int_ChannelPosition; // {{ 5 "MoveChannelsToTravelLanes" "InitLocals" // }} "" // {{{ 85 1 0 "88d697ae_555c_4cd1_9d5d0acdca0efc0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" intNumberOfChannels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{{ 86 1 0 "3e979005_19c7_4be1_a0c52a1826545807" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetChannelLimits(ML_STAR, 0, arr_YMax, arr_YMin, flt_YRaster); // }} "" // {{ 87 1 0 "084b03e6_ddce_41a0_91f533b5c1c9baf1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_YRaster = flt_YRaster * 10; // }} "" // {{{ 88 1 0 "c1913313_3555_4511_85701ed631adbfa0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(int_YRaster); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 89 1 0 "89def391_fde9_470d_880e65495cdbff27" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_2(Translate("Y Max and Y Min"), arr_YMax, arr_YMin); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 90 1 0 "b82a3cea_f710_48ef_ad71fbb23c63eaf4" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 91 1 0 "a33480ae_f61f_407e_81e9674bf6ec6a8e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (intNumberOfChannels < 8) { // }} "" // {{ 92 1 0 "6d3ee10f_28ca_4179_a1daf748d47b2811" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_SplitChannel = intNumberOfChannels; // }} "" // {{ 93 1 0 "a33480ae_f61f_407e_81e9674bf6ec6a8e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 94 1 0 "71a3b55c_1044_4cc4_8904dcd1417ced90" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_SplitChannel = intNumberOfChannels / 2; // }} "" // {{ 95 1 0 "a33480ae_f61f_407e_81e9674bf6ec6a8e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 96 1 0 "37a43f97_cb32_4fc1_b8f2f60dd526c3cf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Parameter = Translate("yp"); // }} "" // {{ 97 1 0 "2500f91f_99af_48db_86b21c39f13616ad" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < intNumberOfChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{ 98 1 0 "2213a93a_96fb_43dc_a122ab80d6e1dd53" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelIndex <= int_SplitChannel) { // }} "" // {{ 99 1 0 "c67847e7_df4f_4631_af85fc48b376a59c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ChannelPosition=arr_YMax.GetAt(int_ChannelIndex-1); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 100 1 0 "13680f7f_d1ab_468d_9d5356befa9f8b36" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ChannelPosition = flt_ChannelPosition - 1.0; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 101 1 0 "2213a93a_96fb_43dc_a122ab80d6e1dd53" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 102 1 0 "ecf4ff4f_93be_4c64_b12041a747b6e85d" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ChannelPosition=arr_YMin.GetAt(int_ChannelIndex-1); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 103 1 0 "e2a8e95b_232f_4400_91c79fa0270cf5b5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ChannelPosition = flt_ChannelPosition + 1.0; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 104 1 0 "2213a93a_96fb_43dc_a122ab80d6e1dd53" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 105 1 0 "09d91aef_a63c_4e17_afbc978d1493beca" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ChannelPosition = flt_ChannelPosition * 10; // }} "" // {{{ 106 1 0 "ccbd366f_106a_4567_aa11f2d2cb6d56de" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(int_ChannelPosition); // }} "" // {{{ 107 1 0 "89e95360_721f_4dc7_bf920df1f504998e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelPosition = StrConcat2(int_ChannelPosition, Translate("")); // }} "" // {{{ 108 1 0 "1a660529_5d2d_4289_b30af9e578e44d60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelPosition = StrFillLeft(str_ChannelPosition, Translate("0"), 4); // }} "" // {{{ 109 1 0 "6dceec55_b4aa_4460_b54923c49a65381a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Parameter = StrConcat8(str_Parameter, Translate(""), str_ChannelPosition, Translate(" "), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{ 110 1 0 "2500f91f_99af_48db_86b21c39f13616ad" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 111 1 0 "c0d97569_eec7_421d_8511e7e8672b1387" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Parameter = StrTrimRight(str_Parameter, Translate(" ")); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Parameter: ",str_Parameter); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 113 1 0 "d6375e0f_8f2e_480d_ba35e0d8bdf74888" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("d6375e0f_8f2e_480d_ba35e0d8bdf74888"); // FirmwareCommand } // }} "" // {{{ 5 "MoveChannelsToTravelLanes" "End" } // }} "" // {{{ 5 "_ConvertToInteger" "Begin" private function _ConvertToInteger( variable & io_Value ) void { // }} "" // {{ 5 "_ConvertToInteger" "InitLocals" // }} "" // {{{ 268 1 0 "46d5b405_7240_4958_96280787aafc8e73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_Value = StrConcat2(io_Value, Translate("")); // }} "" // {{{ 269 1 0 "dc9f7fa5_abb1_48fd_b1699f8be8fdbd39" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_Value = StrIVal(io_Value); // }} "" // {{{ 5 "_ConvertToInteger" "End" } // }} "" // {{{ 5 "MoveUsedChannel" "Begin" function MoveUsedChannel( device & ML_STAR, variable i_str_PipetteReturn ) void { // }} "" private variable flt_YRaster; private variable intNumberOfChannels; private variable arr_YMin[]; private variable arr_YMax[]; private variable str_LabwareID; private variable intNumberOfPositions; private variable loop_StepReturn; private variable str_Parameter; private variable int_YValue; private variable flt_YValue; private variable strChannelPositions; private variable arrChannelPositions[]; private variable bool_MoveChannel; private variable bool_SimulationMode; private variable i; private variable flt_CurrentY; // {{ 5 "MoveUsedChannel" "InitLocals" // }} "" // {{{ 203 1 0 "809b0b0b_638f_4da5_912c465e1669d449" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_SimulationMode = Util::GetSimulationMode(); // }} "" // {{{ 204 1 0 "82da7adb_6da1_4f5c_b529bad03d26eeee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" intNumberOfChannels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{{ 205 1 0 "0b3a2b2c_996a_47f0_85f1cb41e7093062" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetChannelLimits(ML_STAR, 0, arr_YMax, arr_YMin, flt_YRaster); // }} "" // {{{ 206 1 0 "5d980187_6f45_48ef_b8a96e14435127fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" intNumberOfPositions = StepReturn::GetNumberOfPositions(i_str_PipetteReturn); // }} "" // {{ 207 1 0 "76bb75d5_aed6_4347_a6e39c668ed6721d" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("76bb75d5_aed6_4347_a6e39c668ed6721d"); // FirmwareCommand strChannelPositions = arrRetValues[3]; } // }} "" // {{{ 208 1 0 "bd85ff23_7eb7_4b1f_a22d877587775651" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrChannelPositions = HSLExtensions::String::Split(strChannelPositions, Translate("+"), 1); // }} "" // {{ 209 1 0 "7d445466_0ab5_446d_a82f7d5a162eb851" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loop_StepReturn = 0; loop_StepReturn < intNumberOfPositions;) { loop_StepReturn = loop_StepReturn + 1; // }} "" // {{ 210 1 0 "7eae8b53_68ec_4187_8cabdc54b71eeef9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" i = loop_StepReturn + 1; // }} "" // {{{ 211 1 0 "d13e8f6a_dfe3_4585_998a4f0a2c5eb24e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabwareID = StepReturn::GetLabwareId(loop_StepReturn, i_str_PipetteReturn); // }} "" // {{ 212 1 0 "eade2439_6bb7_4668_b474e8dd349b1762" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Parameter = Translate(""); // }} "" // {{ 213 1 0 "3d10cc9f_5c91_4f2c_aa95ab4a5d5ddfed" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_LabwareID != "") { // }} "" // {{ 214 1 0 "74a6596b_6075_4ecb_a595187d0b05e8a7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_MoveChannel = 0; // }} "" // {{ 215 1 0 "37e97ec6_ecb6_47cc_b944015574a6c0b4" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_YValue=arr_YMax.GetAt(loop_StepReturn-1); // }} "" // {{ 216 1 0 "d9dd3ec7_d6f6_4e09_b511449c66b2cf4c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_CurrentY=arrChannelPositions.GetAt(i-1); // }} "" // {{{ 217 1 0 "85c01e77_2199_4563_a81806a58ae4118d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_CurrentY = StrFVal(flt_CurrentY); // }} "" // {{ 218 1 0 "09106d1a_42d2_48a3_a60f998964cd709c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentY = flt_CurrentY / (10 * 1.0); // }} "" // {{ 219 1 0 "31fd0452_6e48_43e1_9d1664be43e54afc" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_YValue = flt_YValue - 1.0; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 220 1 0 "190cfbcd_e1b1_49ca_927d57cf983cdf17" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 221 1 0 "ba9672e0_138e_4993_87efc24b2afaa93a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SimulationMode == 0) { // }} "" // {{ 222 1 0 "57f402b7_c6ef_4104_99bc344eaf60599e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentY < int_YValue) { // }} "" // {{ 223 1 0 "57f402b7_c6ef_4104_99bc344eaf60599e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 224 1 0 "f3d6c714_9400_4a64_be14b9a1e40141aa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_MoveChannel = 1; // }} "" // {{ 225 1 0 "ba9672e0_138e_4993_87efc24b2afaa93a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 226 1 0 "ba9672e0_138e_4993_87efc24b2afaa93a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "1" */ } /* }} "" */ Trace("Y Max: ",flt_YValue," Current Y: ",flt_CurrentY," Move channel number: ",loop_StepReturn); // {{ 228 1 0 "1b34d4f0_e183_48c6_b889b496eb39cdba" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_MoveChannel = 1; // }} "" // {{ 229 1 0 "670dedec_6416_4d1b_9bee5d92f00999cf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_MoveChannel == 1) { // }} "" // {{{ 230 1 0 "8394b06b_09d8_42b1_b149e5ded035e82c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" MoveSingleChannel(ML_STAR, loop_StepReturn, flt_YValue); // }} "" // {{ 231 1 0 "670dedec_6416_4d1b_9bee5d92f00999cf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 232 1 0 "3d10cc9f_5c91_4f2c_aa95ab4a5d5ddfed" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 233 1 0 "7d445466_0ab5_446d_a82f7d5a162eb851" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "MoveUsedChannel" "End" } // }} "" // {{{ 5 "MoveSingleChannel" "Begin" function MoveSingleChannel( device & ML_STAR, variable i_int_ChannelNumber, variable i_flt_YCoordinate ) void { // }} "" private variable flt_YRaster; private variable intNumberOfChannels; private variable bool_SimulationMode; private variable arr_YMin[]; private variable arr_YMax[]; private variable int_YValue; private variable str_PN; private variable flt_YValue; private variable str_YValue; private variable str_Param; private variable str_YParam; // {{ 5 "MoveSingleChannel" "InitLocals" // }} "" // {{{ 145 1 0 "fc8ab023_b4b9_4040_aa0f2e958a32e8d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_SimulationMode = Util::GetSimulationMode(); // }} "" // {{{ 146 1 0 "4f39a0b8_3948_415d_ad23d9218739f28d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" intNumberOfChannels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{{ 147 1 0 "8e01d290_ae3b_43ed_a50773004e3fe085" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetChannelLimits(ML_STAR, 0, arr_YMax, arr_YMin, flt_YRaster); // }} "" // {{ 148 1 0 "a9b0f511_c41c_43f0_83f6d2c352f59e32" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChannelNumber > intNumberOfChannels) { // }} "" Trace("CHANNEL ",i_int_ChannelNumber," EXCEEDS NUMBER OF CHANNELS ON SYSTEM!"); // {{{ 150 1 0 "03d7ab9a_32cc_4a72_9c332ede36abcb94" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 151 1 0 "a9b0f511_c41c_43f0_83f6d2c352f59e32" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 152 1 0 "e18cf183_a4a0_424a_bd1f62e4ed9ba81c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_flt_YCoordinate > arr_YMax.ElementAt( i_int_ChannelNumber -1)) { // }} "" Trace("Y COORDINATE ",i_flt_YCoordinate," IS GREATER THAN THE Y LIMIT FOR CHANNEL ",i_int_ChannelNumber,"!"); // {{{ 154 1 0 "23434c8a_ca56_49db_940a2eb1c3bae9df" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 155 1 0 "e18cf183_a4a0_424a_bd1f62e4ed9ba81c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 156 1 0 "01415988_ad76_434c_a33e9342bcc226e0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_flt_YCoordinate < arr_YMin.ElementAt( i_int_ChannelNumber -1)) { // }} "" Trace("Y COORDINATE ",i_flt_YCoordinate," IS LESS THAN THE Y LIMIT FOR CHANNEL ",i_int_ChannelNumber,"!"); // {{{ 158 1 0 "9eb83969_2cb9_41ad_90807da369498057" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 159 1 0 "01415988_ad76_434c_a33e9342bcc226e0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 160 1 0 "a8a3df6a_50b8_4f81_81057e6db0747f02" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PN = StrConcat2(i_int_ChannelNumber, Translate("")); // }} "" // {{{ 161 1 0 "23d5dd1d_c88a_41ff_aee9cea641a5db17" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PN = StrFillLeft(str_PN, Translate("0"), 2); // }} "" // {{{ 162 1 0 "2b996360_00c7_4971_96fd80a9885a1cb3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PN = StrConcat2(Translate("pn"), str_PN); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 163 1 0 "d576a623_5862_45de_822133de1fdfffc0" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_YValue=arr_YMax.GetAt(i_int_ChannelNumber-1); // }} "" // {{ 164 1 0 "5dae945f_042d_4c02_b862d6a94ba1963b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_YValue = flt_YValue - 1.0; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 165 1 0 "2b3b3969_25d4_433d_babc8c1927bea6c2" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_YValue = i_flt_YCoordinate * 10; // }} "" // {{{ 166 1 0 "0ad9be2d_2327_43e7_bf88b8a13ec85fbc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(int_YValue); // }} "" // {{{ 167 1 0 "c6241081_3676_422d_84a83a6ac9ae4bbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YValue = StrConcat2(int_YValue, Translate("")); // }} "" // {{{ 168 1 0 "56088999_a7d6_4f89_8b7f9df5df875bee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YValue = StrFillLeft(str_YValue, Translate("0"), 4); // }} "" // {{{ 169 1 0 "5b60e463_e286_4192_b41fc27b18503508" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YParam = StrConcat2(Translate("yj"), str_YValue); // }} "" // {{{ 170 1 0 "33318657_c174_4813_880f171bba23ed2d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Param = StrConcat2(str_PN, str_YParam); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Parameter: ",str_Param); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 172 1 0 "499e2f72_b21a_48a8_bc19ef4de3927fe1" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("499e2f72_b21a_48a8_bc19ef4de3927fe1"); // FirmwareCommand } // }} "" // {{{ 5 "MoveSingleChannel" "End" } // }} "" // {{{ 5 "MoveChannelsToSequencePosition" "Begin" function MoveChannelsToSequencePosition( device & ML_STAR, sequence i_seq_PositionsToMove ) void { // }} "" private variable intNumberOfChannels; private variable flt_X_Coord; private variable flt_NotUsed; private variable flt_Y_Coord; private variable i; private variable str_LabID; private variable flt_ChannelRaster; private variable flt_PreviousY; private variable str_PosID; private variable int_TotalPositions; private variable arr_YMin[]; private variable arr_YMax[]; private variable arr_YMovement[]; private variable int_RemainingChannels; private variable str_ChannelPosition; private variable flt_ChannelPosition; private variable str_Parameter; private variable int_ChannelPosition; private variable int_ChannelIndex; // {{ 5 "MoveChannelsToSequencePosition" "InitLocals" // }} "" // {{{ 1 1 0 "bf20e4dd_51fb_4f42_aa2708183267beb1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" intNumberOfChannels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{{ 2 1 0 "f9c3a074_82ee_46d9_a111802340566ffd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(ML_STAR, i_seq_PositionsToMove); // }} "" // {{{ 3 1 0 "67001960_91b5_46b6_89cac51df39dc4a8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetChannelLimits(ML_STAR, 0, arr_YMax, arr_YMin, flt_ChannelRaster); // }} "" // {{{ 4 1 0 "7e891cc9_2eca_435e_aff63b293dccc790" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(i_seq_PositionsToMove); // }} "" // {{ 5 1 0 "4a2045fd_7331_477c_98d9d6d9d8c9c5ba" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_PreviousY = arr_YMax.ElementAt( 1 -1); // }} "" // {{ 6 1 0 "f913fc54_c303_46af_90478b07d5891440" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_YMovement.SetSize(0); // }} "" // {{ 7 1 0 "0bc35d2e_35a0_4dab_935a09280a34c3a7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalPositions;) { i = i + 1; // }} "" // {{ 8 1 0 "71e37847_6fe5_462b_98150a7ae3630e89" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_PositionsToMove.SetCurrentPosition(i); // }} "" // {{{ 9 1 0 "08e9c8f6_a923_4b22_baeee025dde19438" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_PositionsToMove); // }} "" // {{{ 10 1 0 "de9ecd30_0e9e_49ff_bb793c22a04365fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_PositionsToMove); // }} "" // {{{ 11 1 0 "0d5b6523_9764_4041_8ffdbf1a3198e524" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_NotUsed, flt_NotUsed); // }} "" // {{ 12 1 0 "0ac7a6ce_f570_4f8e_b6fa39a1df4feaf1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Y_Coord < flt_PreviousY) { // }} "" // {{ 13 1 0 "574538eb_3545_4790_abfe77ca225a6e1a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_YMovement.AddAsLast(flt_Y_Coord); // }} "" // {{ 14 1 0 "0ac7a6ce_f570_4f8e_b6fa39a1df4feaf1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 15 1 0 "01bd689a_4dca_4cae_a53f6679dec340be" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Coord = flt_PreviousY - flt_ChannelRaster; // }} "" // {{ 16 1 0 "f075df6a_3e96_4874_9eb78f49f7582bc0" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_YMovement.AddAsLast(flt_Y_Coord); // }} "" // {{ 17 1 0 "0ac7a6ce_f570_4f8e_b6fa39a1df4feaf1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 18 1 0 "f6d19b7c_bcde_45b1_96f342ddfdf35f25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_PreviousY = flt_Y_Coord; // }} "" // {{ 19 1 0 "27dcfa12_ea0d_49a0_aecaac6005d99da1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i == intNumberOfChannels) { // }} "" // {{ 20 1 0 "9776c9b5_6286_4f22_8c467644458b7d27" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 21 1 0 "27dcfa12_ea0d_49a0_aecaac6005d99da1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 22 1 0 "0bc35d2e_35a0_4dab_935a09280a34c3a7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 23 1 0 "078cd4e2_9d6e_44e1_9c7d55dcc98bc816" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_RemainingChannels = intNumberOfChannels - i; // }} "" // {{ 24 1 0 "dfaa4b9f_6e0e_4f8f_b70ca42f384cd126" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_RemainingChannels > 0) { // }} "" // {{ 25 1 0 "40e02fa5_7c22_40f7_8cf9c8239f7aca18" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_RemainingChannels;) { i = i + 1; // }} "" // {{ 26 1 0 "e09ee838_2f52_4117_994417cc75c3305f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Coord = flt_PreviousY - flt_ChannelRaster; // }} "" // {{ 27 1 0 "7b9d9c0f_3c82_4f83_9b8d9db9b9508d93" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_YMovement.AddAsLast(flt_Y_Coord); // }} "" // {{ 28 1 0 "6a192cb5_e655_477c_999ffbe56b2064ec" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_PreviousY = flt_Y_Coord; // }} "" // {{ 29 1 0 "40e02fa5_7c22_40f7_8cf9c8239f7aca18" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 30 1 0 "dfaa4b9f_6e0e_4f8f_b70ca42f384cd126" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 31 1 0 "c1a5fe7f_e917_46e7_8661420f022605c4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Parameter = Translate("yp"); // }} "" // {{ 32 1 0 "c9fb5f7c_f95f_4b63_9579ee4383aeca84" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < intNumberOfChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{ 33 1 0 "2ab0ebf7_3d7b_4893_9a4598608de4833d" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ChannelPosition=arr_YMovement.GetAt(int_ChannelIndex-1); // }} "" // {{ 34 1 0 "c1d3c470_53a9_4147_aeab4306db570bba" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ChannelPosition = flt_ChannelPosition * 10; // }} "" // {{{ 35 1 0 "7f7ebc18_57ef_4539_83a6ed6dc173e36e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(int_ChannelPosition); // }} "" // {{{ 36 1 0 "92c57a53_afb9_4ec5_8eee59c79ad1e540" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelPosition = StrConcat2(int_ChannelPosition, Translate("")); // }} "" // {{{ 37 1 0 "84e6f6aa_a0a4_4059_82fea0af25ff78f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelPosition = StrFillLeft(str_ChannelPosition, Translate("0"), 4); // }} "" // {{{ 38 1 0 "ce675c7f_114a_4bc9_b76010b1a7f693cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Parameter = StrConcat8(str_Parameter, Translate(""), str_ChannelPosition, Translate(" "), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{ 39 1 0 "c9fb5f7c_f95f_4b63_9579ee4383aeca84" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 40 1 0 "4a9cffff_35e7_49df_bb32d01d8d35ae16" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Parameter = StrTrimRight(str_Parameter, Translate(" ")); // }} "" Trace("C0JY :: ",str_Parameter); // {{ 42 1 0 "3dfc0357_6870_44cb_a036474bf98dd6ed" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("3dfc0357_6870_44cb_a036474bf98dd6ed"); // FirmwareCommand } // }} "" // {{{ 5 "MoveChannelsToSequencePosition" "End" } // }} "" // {{{ 5 "_RemoveTruncatedSequencePositions" "Begin" private function _RemoveTruncatedSequencePositions( device & Instrument, sequence & io_Sequence ) void { // }} "" private variable i; private variable int_TotalSequencePositions; private variable str_LabID; private variable str_PosID; private sequence seq_AdjustedSequence; // {{ 5 "_RemoveTruncatedSequencePositions" "InitLocals" // }} "" // {{{ 271 1 0 "45aca038_7f2a_4395_bbaa76931d5875f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalSequencePositions = SeqGetTotal(io_Sequence); // }} "" // {{{ 272 1 0 "fe3181d8_73d0_4a61_9c3f289430cbb660" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_AdjustedSequence); // }} "" // {{ 273 1 0 "85df0678_be03_4e60_be93e8cd6139a311" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalSequencePositions;) { i = i + 1; // }} "" // {{{ 274 1 0 "17c7f58a_7cd3_400d_81e5bb8f8e68be4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(io_Sequence); // }} "" // {{{ 275 1 0 "991d3b6e_a50f_446f_9060ae36cef63f73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(io_Sequence); // }} "" // {{{ 276 1 0 "83a85e48_ac4c_4a05_9534d3c5b336665b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(io_Sequence, 1); // }} "" // {{ 277 1 0 "c8cedc88_cb8d_40c8_9220d117d992bd0e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_LabID != "") { // }} "" // {{ 278 1 0 "bc19d1c1_1ef5_446a_bc014a5e600d3e11" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_PosID != "") { // }} "" // {{{ 279 1 0 "9d4505f6_4943_4bc0_862afa9ed10d5780" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(seq_AdjustedSequence, str_LabID, str_PosID); // }} "" // {{ 280 1 0 "bc19d1c1_1ef5_446a_bc014a5e600d3e11" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 281 1 0 "c8cedc88_cb8d_40c8_9220d117d992bd0e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 282 1 0 "85df0678_be03_4e60_be93e8cd6139a311" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 283 1 0 "fd1bddb8_6e6f_4046_81cecfca81ab0d2f" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_AdjustedSequence.SetCurrentPosition(1); // }} "" // {{{ 284 1 0 "4869f4c1_903c_492e_98c55d4ba44781b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(io_Sequence, seq_AdjustedSequence); // }} "" // {{{ 5 "_RemoveTruncatedSequencePositions" "End" } // }} "" // {{{ 5 "MoveChannelsToSequencePosition_5mL" "Begin" function MoveChannelsToSequencePosition_5mL( device & ML_STAR, sequence i_seq_PositionsToMove ) void { // }} "" private variable str_ChannelPosition; private variable flt_X_Coord; private variable flt_NotUsed; private variable flt_Y_Coord; private variable int_RemainingChannels; private variable i; private variable str_LabID; private variable flt_ChannelPosition; private variable flt_ChannelRaster; private variable flt_PreviousY; private variable str_Parameter; private variable int_ChannelPosition; private variable int_ChannelIndex; private variable intNumberOfChannels; private variable str_PosID; private variable int_TotalPositions; private variable arr_YMovement[]; private variable arr_YMin[]; private variable arr_YMax[]; // {{ 5 "MoveChannelsToSequencePosition_5mL" "InitLocals" // }} "" // {{{ 44 1 0 "36f17567_2d05_4a3d_ae06afc757b1f40f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" intNumberOfChannels = DevGetCfgValueWithKey(ML_STAR, 43); // }} "" // {{{ 45 1 0 "37ffe800_1a7f_421f_8b9b0202665422ab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(ML_STAR, i_seq_PositionsToMove); // }} "" // {{{ 46 1 0 "0ff7abd7_e2bd_4aaa_abbb460b5a161434" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetChannelLimits(ML_STAR, 1, arr_YMax, arr_YMin, flt_ChannelRaster); // }} "" // {{{ 47 1 0 "037022d2_b81b_41ae_b1488a273641f35e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(i_seq_PositionsToMove); // }} "" // {{ 48 1 0 "e6ae2e74_e275_4205_b118272b20578d1a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_PreviousY = arr_YMax.ElementAt( 1 -1); // }} "" // {{ 49 1 0 "16680a17_fc78_48f2_acc8052f32a22728" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_YMovement.SetSize(0); // }} "" // {{ 50 1 0 "dc18d27b_02a8_4ce4_9e5f0e1345c5ff64" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalPositions;) { i = i + 1; // }} "" // {{ 51 1 0 "af85afa8_27f8_4aad_862e8c0a9e44d3bc" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_PositionsToMove.SetCurrentPosition(i); // }} "" // {{{ 52 1 0 "18a62eb9_a72b_491f_87b623caab0d5154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_PositionsToMove); // }} "" // {{{ 53 1 0 "0514a72a_1df6_44b1_8b40e258b25634f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_PositionsToMove); // }} "" // {{{ 54 1 0 "095238b4_4647_4027_a2d0bda1208447d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_NotUsed, flt_NotUsed); // }} "" // {{ 55 1 0 "77e43295_075d_48fb_b6cf2e442d0a130e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Y_Coord < flt_PreviousY) { // }} "" // {{ 56 1 0 "e541c0cd_290d_4f80_82030beb98f507ad" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_YMovement.AddAsLast(flt_Y_Coord); // }} "" // {{ 57 1 0 "77e43295_075d_48fb_b6cf2e442d0a130e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 58 1 0 "60cfb36f_e712_4a45_be5251e0a85abd73" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Coord = flt_PreviousY - flt_ChannelRaster; // }} "" // {{ 59 1 0 "3ee718b2_4991_4c23_95d8e2eba5b8bf17" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_YMovement.AddAsLast(flt_Y_Coord); // }} "" // {{ 60 1 0 "77e43295_075d_48fb_b6cf2e442d0a130e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 61 1 0 "4b673e0d_f833_44e4_a3af03ca54167438" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_PreviousY = flt_Y_Coord; // }} "" // {{ 62 1 0 "5ad6e4b7_adcd_4c57_af72361d76269143" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i == intNumberOfChannels) { // }} "" // {{ 63 1 0 "5dfb3fb3_0218_4066_826521c6aff10abc" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 64 1 0 "5ad6e4b7_adcd_4c57_af72361d76269143" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 65 1 0 "dc18d27b_02a8_4ce4_9e5f0e1345c5ff64" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 66 1 0 "036c6010_a35c_4cb6_a90de60c51a9f92c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_RemainingChannels = intNumberOfChannels - i; // }} "" // {{ 67 1 0 "c9652e3a_adde_4364_a6d6a70ead9c5ee7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_RemainingChannels > 0) { // }} "" // {{ 68 1 0 "c29a7474_e2fb_428b_80255eb70d501e9e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_RemainingChannels;) { i = i + 1; // }} "" // {{ 69 1 0 "0e04cf4a_d329_4435_91478601f5179314" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Coord = flt_PreviousY - flt_ChannelRaster; // }} "" // {{ 70 1 0 "ead3cee8_a6cd_4af9_860841243aaec2c6" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_YMovement.AddAsLast(flt_Y_Coord); // }} "" // {{ 71 1 0 "c29a7474_e2fb_428b_80255eb70d501e9e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 72 1 0 "c9652e3a_adde_4364_a6d6a70ead9c5ee7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 73 1 0 "9dd57cb7_306f_48ae_a12c7598a7864413" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Parameter = Translate("yf"); // }} "" // {{ 74 1 0 "0538bc00_bb94_488f_81a1745866d71e54" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < intNumberOfChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{ 75 1 0 "b1efdc2c_6004_4746_a09c316d11e199ea" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ChannelPosition=arr_YMovement.GetAt(int_ChannelIndex-1); // }} "" // {{ 76 1 0 "c36983c8_872a_4203_a6d98c819a1dd3de" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ChannelPosition = flt_ChannelPosition * 10; // }} "" // {{{ 77 1 0 "2e0b1bce_4284_42ec_9dbd6716572937ca" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(int_ChannelPosition); // }} "" // {{{ 78 1 0 "fa95c057_57aa_4123_8bbe8d1dc4e91eef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelPosition = StrConcat2(int_ChannelPosition, Translate("")); // }} "" // {{{ 79 1 0 "6f7b4cfd_5f43_4f68_8cf36c21dde87d30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelPosition = StrFillLeft(str_ChannelPosition, Translate("0"), 4); // }} "" // {{{ 80 1 0 "35613d80_46ff_47b7_ad93ee8fe085fb7d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Parameter = StrConcat8(str_Parameter, Translate(""), str_ChannelPosition, Translate(" "), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{ 81 1 0 "0538bc00_bb94_488f_81a1745866d71e54" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 82 1 0 "72172be5_264a_4416_8c72198993943294" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Parameter = StrTrimRight(str_Parameter, Translate(" ")); // }} "" // {{ 83 1 0 "7ccf82e9_1db4_4918_932f436d2dacef5b" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("7ccf82e9_1db4_4918_932f436d2dacef5b"); // FirmwareCommand } // }} "" // {{{ 5 "MoveChannelsToSequencePosition_5mL" "End" } // }} "" // {{{ 5 "MoveChannelsToTravelLanes_5mL" "Begin" function MoveChannelsToTravelLanes_5mL( device & ML_STAR ) void { // }} "" private variable str_ChannelPosition; private variable int_SplitChannel; private variable flt_YRaster; private variable flt_ChannelPosition; private variable str_Parameter; private variable int_ChannelPosition; private variable int_ChannelIndex; private variable intNumberOfChannels; private variable int_YRaster; private variable arr_YMin[]; private variable arr_YMax[]; // {{ 5 "MoveChannelsToTravelLanes_5mL" "InitLocals" // }} "" // {{{ 115 1 0 "f82933ef_29ef_4dbc_84199cff86cc28fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" intNumberOfChannels = DevGetCfgValueWithKey(ML_STAR, 43); // }} "" // {{{ 116 1 0 "cf9aa0b6_99ef_4814_b0d12791bc426137" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetChannelLimits(ML_STAR, 1, arr_YMax, arr_YMin, flt_YRaster); // }} "" // {{ 117 1 0 "9a1b3fcb_f75f_488c_8ed5af251f534449" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_YRaster = flt_YRaster * 10; // }} "" // {{{ 118 1 0 "dce36dea_df6d_4df1_91a37324ff09eac5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(int_YRaster); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 119 1 0 "12638869_0862_41a1_9841ac30941c0167" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_2(Translate("Y Max and Y Min"), arr_YMax, arr_YMin); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 120 1 0 "8d678499_8146_4923_880271c43eba4f4b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 121 1 0 "8dcfdc02_772c_42d9_878c7313deda9f4d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (intNumberOfChannels < 4) { // }} "" // {{ 122 1 0 "4685e6cd_71e9_4c6a_81ac795783b0a857" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_SplitChannel = intNumberOfChannels; // }} "" // {{ 123 1 0 "8dcfdc02_772c_42d9_878c7313deda9f4d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 124 1 0 "e50071b1_d025_4bbc_996d5e0933ccc18f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_SplitChannel = intNumberOfChannels / 2; // }} "" // {{ 125 1 0 "8dcfdc02_772c_42d9_878c7313deda9f4d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 126 1 0 "33b11cdb_e498_495a_990d119b56d21a01" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Parameter = Translate("yf"); // }} "" // {{ 127 1 0 "446cbbf8_e9fc_4cb9_900466c8d814259b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < intNumberOfChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{ 128 1 0 "9f39b710_808c_49a5_b5438d2927b4da5e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelIndex <= int_SplitChannel) { // }} "" // {{ 129 1 0 "a3e7de1f_9a54_44ed_8299e7d11cef6019" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ChannelPosition=arr_YMax.GetAt(int_ChannelIndex-1); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 130 1 0 "e55fab79_e490_4e99_b5b839c375880d99" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ChannelPosition = flt_ChannelPosition - 1.0; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 131 1 0 "9f39b710_808c_49a5_b5438d2927b4da5e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 132 1 0 "fe17d218_2360_4faf_ba55502e12f65460" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ChannelPosition=arr_YMin.GetAt(int_ChannelIndex-1); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 133 1 0 "8c2235da_cef3_4bfc_81a9283b19804fca" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ChannelPosition = flt_ChannelPosition + 1.0; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 134 1 0 "9f39b710_808c_49a5_b5438d2927b4da5e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 135 1 0 "f778b01a_8df5_47b5_bdff1b4dd8a3d09b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ChannelPosition = flt_ChannelPosition * 10; // }} "" // {{{ 136 1 0 "355e1cdc_5563_4860_826a51335b17ede5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(int_ChannelPosition); // }} "" // {{{ 137 1 0 "03b75d38_2101_4bfe_ae9cb21063670e9a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelPosition = StrConcat2(int_ChannelPosition, Translate("")); // }} "" // {{{ 138 1 0 "7a407768_9bd0_49d7_a73c88174fd139a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelPosition = StrFillLeft(str_ChannelPosition, Translate("0"), 4); // }} "" // {{{ 139 1 0 "2f5d65ee_9021_4f39_83a620f8237ba036" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Parameter = StrConcat8(str_Parameter, Translate(""), str_ChannelPosition, Translate(" "), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{ 140 1 0 "446cbbf8_e9fc_4cb9_900466c8d814259b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 141 1 0 "5861b509_c3c1_4147_af0b2e900e184c6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Parameter = StrTrimRight(str_Parameter, Translate(" ")); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Parameter: ",str_Parameter); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 143 1 0 "f8170055_2cfb_4fc4_a5382d4bfbabd712" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("f8170055_2cfb_4fc4_a5382d4bfbabd712"); // FirmwareCommand } // }} "" // {{{ 5 "MoveChannelsToTravelLanes_5mL" "End" } // }} "" // {{{ 5 "MoveSingleChannel_5mL" "Begin" function MoveSingleChannel_5mL( device & ML_STAR, variable i_int_ChannelNumber, variable i_flt_YCoordinate ) void { // }} "" private variable flt_YRaster; private variable str_YValue; private variable int_YValue; private variable str_Param; private variable str_PN; private variable flt_YValue; private variable intNumberOfChannels; private variable str_YParam; private variable bool_SimulationMode; private variable arr_YMin[]; private variable arr_YMax[]; // {{ 5 "MoveSingleChannel_5mL" "InitLocals" // }} "" // {{{ 174 1 0 "d4716ddc_4f40_4ca1_943d53f710994b28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_SimulationMode = Util::GetSimulationMode(); // }} "" // {{{ 175 1 0 "4d36ab42_1377_4d52_946f7bfcb035611f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" intNumberOfChannels = DevGetCfgValueWithKey(ML_STAR, 43); // }} "" // {{{ 176 1 0 "2b385b19_0128_4cba_9df8b746130dcb3b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetChannelLimits(ML_STAR, 1, arr_YMax, arr_YMin, flt_YRaster); // }} "" // {{ 177 1 0 "94dc005a_8dbf_4f7c_bbfacda6ffd06736" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ChannelNumber > intNumberOfChannels) { // }} "" Trace("CHANNEL ",i_int_ChannelNumber," EXCEEDS NUMBER OF CHANNELS ON SYSTEM!"); // {{{ 179 1 0 "fcbe3f54_f18d_4f7e_9cb463871daff384" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 180 1 0 "94dc005a_8dbf_4f7c_bbfacda6ffd06736" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 181 1 0 "6bed1644_76c8_4a1f_a7841c3bed50ef57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_flt_YCoordinate > arr_YMax.ElementAt( i_int_ChannelNumber -1)) { // }} "" Trace("Y COORDINATE ",i_flt_YCoordinate," IS GREATER THAN THE Y LIMIT FOR CHANNEL ",i_int_ChannelNumber,"!"); // {{{ 183 1 0 "a4d58e8d_44d4_43c9_b6da066a0d58e294" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 184 1 0 "6bed1644_76c8_4a1f_a7841c3bed50ef57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 185 1 0 "3e2ea714_295c_470c_a5ef46ee02a16558" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_flt_YCoordinate < arr_YMin.ElementAt( i_int_ChannelNumber -1)) { // }} "" Trace("Y COORDINATE ",i_flt_YCoordinate," IS LESS THAN THE Y LIMIT FOR CHANNEL ",i_int_ChannelNumber,"!"); // {{{ 187 1 0 "5210d82d_62ee_4dcc_a58d6159f51a8c70" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 188 1 0 "3e2ea714_295c_470c_a5ef46ee02a16558" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 189 1 0 "2149d892_5afc_4d28_9cf4a8f5e5067722" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PN = StrConcat2(i_int_ChannelNumber, Translate("")); // }} "" // {{{ 190 1 0 "41bd419e_b171_420d_809f211917137ceb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PN = StrFillLeft(str_PN, Translate("0"), 2); // }} "" // {{{ 191 1 0 "0ced7226_45dd_49c6_a4e977a428908d29" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PN = StrConcat2(Translate("pn"), str_PN); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 192 1 0 "cafa179a_fe58_4d5a_86e31f6da6c18a6b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_YValue=arr_YMax.GetAt(i_int_ChannelNumber-1); // }} "" // {{ 193 1 0 "295d6e72_c92b_4444_88d401c0cd4a0909" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_YValue = flt_YValue - 1.0; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 194 1 0 "4c37356a_a057_4c8f_b3b6170eb1dd9f30" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_YValue = i_flt_YCoordinate * 10; // }} "" // {{{ 195 1 0 "fdf8d283_b6fd_4c0d_8e759dab00d56d09" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(int_YValue); // }} "" // {{{ 196 1 0 "0569da26_847c_4bed_974d1ac4b25d9e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YValue = StrConcat2(int_YValue, Translate("")); // }} "" // {{{ 197 1 0 "6ab5d99b_f153_463b_a5a5bbd7a17d5b6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YValue = StrFillLeft(str_YValue, Translate("0"), 4); // }} "" // {{{ 198 1 0 "ed169683_1838_422f_9d0289b4fcfbeb9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YParam = StrConcat2(Translate("yj"), str_YValue); // }} "" // {{{ 199 1 0 "d8fc5d1f_d36d_4ff8_bd342a06ac170324" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Param = StrConcat2(str_PN, str_YParam); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Parameter: ",str_Param); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 201 1 0 "d48fa358_29fd_497a_8445a4b9657d9a73" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("d48fa358_29fd_497a_8445a4b9657d9a73"); // FirmwareCommand } // }} "" // {{{ 5 "MoveSingleChannel_5mL" "End" } // }} "" // {{{ 5 "MoveUsedChannel_5mL" "Begin" function MoveUsedChannel_5mL( device & ML_STAR, variable i_str_PipetteReturn ) void { // }} "" private variable str_LabwareID; private variable intNumberOfPositions; private variable strChannelPositions; private variable int_YValue; private variable flt_YRaster; private variable loop_StepReturn; private variable str_Parameter; private variable flt_YValue; private variable intNumberOfChannels; private variable bool_MoveChannel; private variable bool_SimulationMode; private variable arrChannelPositions[]; private variable arr_YMin[]; private variable arr_YMax[]; private variable i; private variable flt_CurrentY; // {{ 5 "MoveUsedChannel_5mL" "InitLocals" // }} "" // {{{ 235 1 0 "07d322c6_e3ed_4189_9bca4272a3df07ba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_SimulationMode = Util::GetSimulationMode(); // }} "" // {{{ 236 1 0 "bb7b2f6d_7307_40a4_aac2ec088511b4b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" intNumberOfChannels = DevGetCfgValueWithKey(ML_STAR, 43); // }} "" // {{{ 237 1 0 "4fce9d3d_9c2e_4adf_9118d7ecc28a8728" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetChannelLimits(ML_STAR, 1, arr_YMax, arr_YMin, flt_YRaster); // }} "" // {{{ 238 1 0 "84dd10a9_eec6_4b54_b8c382fa200237f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" intNumberOfPositions = StepReturn::GetNumberOfPositions(i_str_PipetteReturn); // }} "" // {{ 239 1 0 "60c6c941_6631_412b_97d02a71e980c205" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("60c6c941_6631_412b_97d02a71e980c205"); // FirmwareCommand strChannelPositions = arrRetValues[3]; } // }} "" // {{{ 240 1 0 "a5b1e32e_1b00_4c38_838fdd045245f437" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrChannelPositions = HSLExtensions::String::Split(strChannelPositions, Translate("+"), 1); // }} "" // {{ 241 1 0 "bf1a7931_ddf3_481e_a121d956124a76e4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loop_StepReturn = 0; loop_StepReturn < intNumberOfPositions;) { loop_StepReturn = loop_StepReturn + 1; // }} "" // {{ 242 1 0 "687699a2_fdcb_4519_a61580192b9e6f15" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" i = loop_StepReturn + 1; // }} "" // {{{ 243 1 0 "ed884165_eb10_472a_a38e0a83b71dfce7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabwareID = StepReturn::GetLabwareId(loop_StepReturn, i_str_PipetteReturn); // }} "" // {{ 244 1 0 "cf5e6df5_ab84_4e89_9e32d96a56add5fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Parameter = Translate(""); // }} "" // {{ 245 1 0 "c119798f_9a3b_4220_af24e9419b5eb5a9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_LabwareID != "") { // }} "" // {{ 246 1 0 "785d809b_5132_4396_be468047cdcfed2f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_MoveChannel = 0; // }} "" // {{ 247 1 0 "c460b000_87e0_40ab_9fd36ddcac0ab6fa" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_YValue=arr_YMax.GetAt(loop_StepReturn-1); // }} "" // {{ 248 1 0 "c3daa079_1919_4934_94349fd7a915aa76" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_CurrentY=arrChannelPositions.GetAt(i-1); // }} "" // {{{ 249 1 0 "6729a215_c40e_4c6a_a326487c511d3e29" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_CurrentY = StrFVal(flt_CurrentY); // }} "" // {{ 250 1 0 "62f1d9ed_c441_4616_aab6cf6d8c488d43" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentY = flt_CurrentY / (10 * 1.0); // }} "" // {{ 251 1 0 "1e6bf4a0_e93d_4af1_9fbb0d1bc178948f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_YValue = flt_YValue - 1.0; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 252 1 0 "10b23a75_5c9c_4668_b5460a7962e43c72" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 253 1 0 "7d386231_9850_4da7_a46536c1890c5185" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SimulationMode == 0) { // }} "" // {{ 254 1 0 "f2969793_51df_47d1_996fbfd3b7b0a471" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arrChannelPositions.ElementAt( loop_StepReturn -1) < int_YValue) { // }} "" // {{ 255 1 0 "65590267_7a0d_44b1_99df8ca9880a34ab" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_MoveChannel = 1; // }} "" // {{ 256 1 0 "f2969793_51df_47d1_996fbfd3b7b0a471" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 257 1 0 "7d386231_9850_4da7_a46536c1890c5185" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 258 1 0 "82d74ffc_b217_4c9a_a42e63667e5c5729" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_MoveChannel = 1; // }} "" // {{ 259 1 0 "7d386231_9850_4da7_a46536c1890c5185" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "1" */ } /* }} "" */ Trace("Y Max: ",flt_YValue," Current Y: ",flt_CurrentY," Move channel number: ",loop_StepReturn); // {{ 261 1 0 "b68b2b6f_4e2a_4d4f_a554f6ccbd9374ce" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_MoveChannel = 1; // }} "" // {{ 262 1 0 "8a25d03e_094f_498b_a014d059852377a7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_MoveChannel == 1) { // }} "" // {{{ 263 1 0 "c4b061a9_c1a8_4b6c_a5e7d214741b62d6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" MoveSingleChannel_5mL(ML_STAR, loop_StepReturn, flt_YValue); // }} "" // {{ 264 1 0 "8a25d03e_094f_498b_a014d059852377a7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 265 1 0 "c119798f_9a3b_4220_af24e9419b5eb5a9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 266 1 0 "bf1a7931_ddf3_481e_a121d956124a76e4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "MoveUsedChannel_5mL" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=Bare_B$$valid=0$$time=2020-03-26 14:50$$checksum=8ee8441d$$length=085$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/VANTAGE Channel Movement Tools.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 10/6/2021 3:00:03 PM #pragma once #ifndef HSL_RUNTIME namespace VANTAGE_CHANNEL_MOVEMENT_TOOLS { function _InitLibrary() { } function _ExitLibrary() { } function CheckPlateWithTwoChannels( device & ML_STAR, variable i_flt_XCenter, variable i_flt_YCenter, variable i_flt_ZMinimumSearchHeight, variable i_flt_ZSpeed, variable i_flt_SearchWidth, variable i_flt_MinimumTraverseHeightBegining, variable i_flt_MinimumTraverseHeightEnding, variable i_int_BackChannel, variable i_int_FrontChannel, variable & o_flt_HeightFound ) variable { return (0); } function GetStopDiskZCoord( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_ZCoord ) void { } function Get_Channel_Position( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void { } function Get_Channel_Position_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void { } function Get_Tip_Present_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void { } function Get_Tip_Present_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void { } function Get_Tip_Volume_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void { } function Get_Tip_Volume_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void { } function InitializeDispenseDrive_1mL( device & ML_STAR, variable i_int_CurrentChannel ) void { } function InitializeDispenseDrive_5mL( device & ML_STAR, variable i_int_CurrentChannel ) void { } function Move_Channels_To_Absolute_Position( device & ML_STAR, variable i_str_ChannelPattern, variable i_flt_MinimumZHeightAtBegining, variable i_flt_X_Position, variable & i_arr_Y_Position[], variable & i_arr_Z_Position[] ) void { } function Move_Channels_To_Absolute_Position_1mL( device & ML_STAR, variable i_str_ChannelPattern, variable i_flt_MinimumZHeightAtBegining, variable & i_arr_X_Position[], variable & i_arr_Y_Position[], variable & i_arr_Z_Position[] ) void { } function Move_Channels_To_Absolute_Position_5mL( device & ML_STAR, variable i_str_ChannelPattern, variable i_flt_MinimumZHeightAtBegining, variable & i_arr_X_Position[], variable & i_arr_Y_Position[], variable & i_arr_Z_Position[] ) void { } function QueryTipLength( device & ML_STAR, variable i_intChannelNumber, variable & o_fltTipLength ) void { } function Reset_Search_Z( device & ML_STAR ) void { } function Search_Z( device & ML_STAR, variable i_int_CurrentChannel, variable i_flt_Z_Min, variable i_flt_TipLength, variable i_int_Sensitivity, variable & o_flt_Z_Found ) variable { return (0); } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=Hamilton$$valid=0$$time=2021-10-06 15:00$$checksum=6f78774d$$length=085$$ ================================================ FILE: pyhamilton/library/STAR Tools/Resources/SubMethods/VANTAGE Channel Movement Tools.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "HSLDevLib.hsl" #include "HSLMthLib.hsl" #include "HSLStrLib.hsl" #include "HSLErrLib.hsl" #include "HSLUtilLib2.hsl" #include "HSLUtilLib.hsl" #include "HSLExtensions\\String.hsl" #include "STAR Tools\\Resources\\SubMethods\\FW_HelperLibrary.hs_" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" #include "HSLPTLLib.hsl" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace VANTAGE_CHANNEL_MOVEMENT_TOOLS { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function CheckPlateWithTwoChannels( device & ML_STAR, variable i_flt_XCenter, variable i_flt_YCenter, variable i_flt_ZMinimumSearchHeight, variable i_flt_ZSpeed, variable i_flt_SearchWidth, variable i_flt_MinimumTraverseHeightBegining, variable i_flt_MinimumTraverseHeightEnding, variable i_int_BackChannel, variable i_int_FrontChannel, variable & o_flt_HeightFound ) variable ; function GetStopDiskZCoord( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_ZCoord ) void ; function Get_Channel_Position( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void ; function Get_Channel_Position_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void ; function Get_Tip_Present_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void ; function Get_Tip_Present_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void ; function Get_Tip_Volume_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void ; function Get_Tip_Volume_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void ; function InitializeDispenseDrive_1mL( device & ML_STAR, variable i_int_CurrentChannel ) void ; function InitializeDispenseDrive_5mL( device & ML_STAR, variable i_int_CurrentChannel ) void ; function Move_Channels_To_Absolute_Position( device & ML_STAR, variable i_str_ChannelPattern, variable i_flt_MinimumZHeightAtBegining, variable i_flt_X_Position, variable & i_arr_Y_Position[], variable & i_arr_Z_Position[] ) void ; function Move_Channels_To_Absolute_Position_1mL( device & ML_STAR, variable i_str_ChannelPattern, variable i_flt_MinimumZHeightAtBegining, variable & i_arr_X_Position[], variable & i_arr_Y_Position[], variable & i_arr_Z_Position[] ) void ; function Move_Channels_To_Absolute_Position_5mL( device & ML_STAR, variable i_str_ChannelPattern, variable i_flt_MinimumZHeightAtBegining, variable & i_arr_X_Position[], variable & i_arr_Y_Position[], variable & i_arr_Z_Position[] ) void ; function QueryTipLength( device & ML_STAR, variable i_intChannelNumber, variable & o_fltTipLength ) void ; function Reset_Search_Z( device & ML_STAR ) void ; function Search_Z( device & ML_STAR, variable i_int_CurrentChannel, variable i_flt_Z_Min, variable i_flt_TipLength, variable i_int_Sensitivity, variable & o_flt_Z_Found ) variable ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" PTL::SetWashingStateDefault("RinseTime1", 5); PTL::SetWashingStateDefault("SoakTime1", 5); PTL::SetWashingStateDefault("FlowRate1", 11); PTL::SetWashingStateDefault("RinseTime2", 0); PTL::SetWashingStateDefault("SoakTime2", 0); PTL::SetWashingStateDefault("FlowRate2", 11); PTL::SetWashingStateDefault("DrainingTime", 10); PTL::SetWashingStateDefault("StartWashLiquid", 0); PTL::SetLoadingStateDefault("RecoveryOptionContinue", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionExclude", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionDefault", 0); PTL::SetLoadingStateDefault("KitLotCheckEnabled", hslFalse); FW_HELPERLIBRARY::_InitLibrary(); // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" FW_HELPERLIBRARY::_ExitLibrary(); // }} "" } // {{{ 5 "CheckPlateWithTwoChannels" "Begin" function CheckPlateWithTwoChannels( device & ML_STAR, variable i_flt_XCenter, variable i_flt_YCenter, variable i_flt_ZMinimumSearchHeight, variable i_flt_ZSpeed, variable i_flt_SearchWidth, variable i_flt_MinimumTraverseHeightBegining, variable i_flt_MinimumTraverseHeightEnding, variable i_int_BackChannel, variable i_int_FrontChannel, variable & o_flt_HeightFound ) variable { // }} "" private variable i_int_X_Position; private variable bool_ParamFound; private variable int_SafeTravelHeight; private variable str_ReturnValue; private variable int_CutNum; private variable str_Y_Position; private variable flt_SafeTravelHeight; private variable str_FWParameter; private variable int_Length; private variable flt_NotUsed; private variable flt_ZCoordBack; private variable flt_ZSpeed; private variable int_Y_Position; private variable i; private variable str_TH; private variable strFunctionName; private variable str_ZP; private variable str_FWCommand; private variable flt_HalfDistanceY; private variable str_YP; private variable flt_ZCoordFront; private variable flt_Y_Position; private variable int_TotalParameters; private variable str_Z_Position; private variable strFunctionName_Cut; private variable str_XP; private variable int_Z_Position; private variable i_str_ChannelPattern; private variable str_TM; private variable flt_FrontYLocation; private variable flt_BackYLocation; private variable flt_ZIncremenToMM; private variable str_ZV; private variable flt_XCenter; private variable int_ErrorCode; private variable str_ZSpeed; private variable int_ZSpeed; private variable flt_Z_Position; private variable int_TotalChannels; private variable int_Count; private variable ret_WallFound; private variable str_ChValue; private variable i_str_X_Position; private variable int_ChValue; private variable str_SafeTravelHeight; private variable int_ChIndex; private variable arr_Parameters[]; private variable arr_ChPattern[]; private variable i_arr_Z_Position1[]; private variable i_arr_Y_Position[]; private variable i_arr_Z_Position2[]; private variable i_arr_Z_Position3[]; // {{ 5 "CheckPlateWithTwoChannels" "InitLocals" o_flt_HeightFound = 0; // }} "" // {{ 1 1 0 "1e9c3630_89a5_49bb_8235e6218c5ea0a0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2 1 0 "538679c0_cdd0_42f3_9369f47ad165d70d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_ZIncremenToMM = 0.009765625; // }} "" // {{ 3 1 0 "491e4f53_cb0a_4903_9a06672d5911c1a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 4 1 0 "2d1dbd80_f0ab_493a_bda3c2f79e15afb9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 6 1 0 "a58d60d9_5f99_48fd_96c8056e0ad5ce24" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 7 1 0 "e8a8d1e4_67e5_4a6f_b7da8bfffcb2922d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 8 1 0 "db8492e9_071e_4ce1_a0861520533206b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 9 1 0 "9ac61ee0_1b80_44fd_95249e412e3f9c05" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 10 1 0 "87ca3462_e149_48bf_aff46796d9d62bcb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 11 1 0 "9476cc7e_5541_4dc3_b16fec195f5ffcc7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 12 1 0 "491e4f53_cb0a_4903_9a06672d5911c1a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 13 1 0 "300499ad_1087_4348_951a2b148d17e30d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_WallFound = 0; // }} "" // {{ 14 1 0 "e326096c_9ca0_4557_b4bf53a556c58fb0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_HeightFound = 0.0; // }} "" // {{{ 15 1 0 "1756cd09_54f6_4e3c_96c401273c440485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{ 16 1 0 "bb46d230_453f_46ce_9a97d95a978c82b9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 17 1 0 "82166d55_5579_4dae_82d2a653994bc5af" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" i_str_ChannelPattern = Translate(""); // }} "" // {{ 18 1 0 "942da3cf_ec52_40f7_929bd9773cc80da7" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChPattern.SetSize(0); // }} "" // {{ 19 1 0 "96754f7b_997b_41e6_96533b32a40ad685" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 20 1 0 "a5594dd4_a5bc_4da0_82f85d5e15b45ba0" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.AddAsLast(0); // }} "" // {{ 21 1 0 "96754f7b_997b_41e6_96533b32a40ad685" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 22 1 0 "58ac1a0b_f02c_4e99_9aae24416edcbbb8" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.SetAt(i_int_BackChannel-1, 1); // }} "" // {{ 23 1 0 "b6b1f31c_2a07_449b_b8f9c93fa2754a00" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.SetAt(i_int_FrontChannel-1, 1); // }} "" // {{ 24 1 0 "05f2b90d_407e_48f2_ac6eb0fc78e72a0f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 25 1 0 "1d276884_6001_4a75_aee0515601ab425a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChannelPattern = StrConcat2(i_str_ChannelPattern, arr_ChPattern.ElementAt( int_ChIndex -1)); // }} "" // {{ 26 1 0 "05f2b90d_407e_48f2_ac6eb0fc78e72a0f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 27 1 0 "bb46d230_453f_46ce_9a97d95a978c82b9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 28 1 0 "90add92a_6cca_4c05_b9534ef745e0776f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 29 1 0 "c2b7b034_e2fb_46a7_ad1161814ad9755e" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" i_arr_Y_Position.SetSize(0); // }} "" // {{ 30 1 0 "55cd1259_b508_4ddb_b384ac68319842e9" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" i_arr_Z_Position1.SetSize(0); // }} "" // {{ 31 1 0 "99c9ddce_2410_4967_bebbad90508a9f50" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" i_arr_Z_Position2.SetSize(0); // }} "" // {{ 32 1 0 "6776aa17_5dca_4aa8_a98fb38f49f91fff" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" i_arr_Z_Position3.SetSize(0); // }} "" // {{ 33 1 0 "b7baa091_28a3_4cb3_bd89b0d1e6fe2475" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_HalfDistanceY = i_flt_SearchWidth / (2 * 1.0); // }} "" // {{ 34 1 0 "e7bc8b09_a1fc_4d02_9b2ba680ad22e21e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_BackYLocation = i_flt_YCenter + flt_HalfDistanceY; // }} "" // {{ 35 1 0 "e989e420_4688_4fbb_900775fd5bcf85c3" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_FrontYLocation = i_flt_YCenter - flt_HalfDistanceY; // }} "" // {{ 36 1 0 "e2ddb0f6_3cc3_432e_8323e906bf280463" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 37 1 0 "87d18488_1c49_4d9e_82890f4ac0b9137c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" i_arr_Y_Position.AddAsLast(0.0); // }} "" // {{ 38 1 0 "0bbd4798_8c50_4f66_85c185258b8d957e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" i_arr_Z_Position1.AddAsLast(0.0); // }} "" // {{ 39 1 0 "04d45935_b944_4a6a_bae93611bb4dd9ce" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" i_arr_Z_Position2.AddAsLast(0.0); // }} "" // {{ 40 1 0 "4fd5d0e9_9319_4c48_b654b099c823d529" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" i_arr_Z_Position3.AddAsLast(0.0); // }} "" // {{ 41 1 0 "e2ddb0f6_3cc3_432e_8323e906bf280463" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 42 1 0 "b3ef0d13_39f3_4861_9d16300650ee1ef0" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" i_arr_Y_Position.SetAt(i_int_BackChannel-1, flt_BackYLocation); // }} "" // {{ 43 1 0 "5c0e4dfd_2efd_406e_89e8a5bee3424b04" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" i_arr_Y_Position.SetAt(i_int_FrontChannel-1, flt_FrontYLocation); // }} "" // {{ 44 1 0 "77839380_20a4_4192_b9a6a38da749e600" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" i_arr_Z_Position1.SetAt(i_int_BackChannel-1, i_flt_MinimumTraverseHeightBegining); // }} "" // {{ 45 1 0 "5c73d7a3_c94d_4564_8728b4140efe0fe0" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" i_arr_Z_Position1.SetAt(i_int_FrontChannel-1, i_flt_MinimumTraverseHeightBegining); // }} "" // {{ 46 1 0 "f73d7a08_9227_4084_b40fc55a52f37e6c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" i_arr_Z_Position2.SetAt(i_int_BackChannel-1, i_flt_ZMinimumSearchHeight); // }} "" // {{ 47 1 0 "08578a22_8c02_4c77_b00d3d52e509092e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" i_arr_Z_Position2.SetAt(i_int_FrontChannel-1, i_flt_ZMinimumSearchHeight); // }} "" // {{ 48 1 0 "6322e468_d18f_41de_8f420bf9d522e08a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" i_arr_Z_Position3.SetAt(i_int_BackChannel-1, i_flt_MinimumTraverseHeightEnding); // }} "" // {{ 49 1 0 "a2728051_f010_4309_b2ab0c96599ba2d4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" i_arr_Z_Position3.SetAt(i_int_FrontChannel-1, i_flt_MinimumTraverseHeightEnding); // }} "" // {{ 50 1 0 "90add92a_6cca_4c05_b9534ef745e0776f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 51 1 0 "4686cef3_0253_420e_92006badff7585ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 52 1 0 "bb129d94_cdc5_4fbb_a79a56bac5aeecc4" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("Move to start position")); // }} "" // {{ 53 1 0 "771f9b36_d55c_4715_baf4042e9b49306e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_SafeTravelHeight = i_flt_MinimumTraverseHeightBegining; // }} "" // {{ 54 1 0 "858446c7_2dd9_403b_94852d8e706b41f6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_XCenter = i_flt_XCenter; // }} "" // {{ 55 1 0 "0f19e3cd_3f40_4f42_9ed008f5296bb199" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FWCommand = Translate("C0JM"); // }} "" // {{ 56 1 0 "d6c2a603_af1d_434c_93ca038d2a619e78" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FWParameter = Translate(""); // }} "" // {{ 57 1 0 "89f6e4f2_cdc9_4482_ad8bc0f82f331c53" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Parameters.SetSize(0); // }} "" // {{ 58 1 0 "f36029a0_d693_43f5_8228458617976471" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 59 1 0 "e1acfeb2_e25b_4ade_bbe333d078adaa3f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChPattern.SetSize(0); // }} "" // {{ 60 1 0 "1c934587_4dc3_48a8_b1b285863c07a6b6" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 61 1 0 "2d95ab85_effb_45da_a720cacaec8e46d6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChValue = StrLeft(i_str_ChannelPattern, int_ChIndex); // }} "" // {{{ 62 1 0 "65e47ecf_750e_4a93_8e509e59c2966497" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChValue = StrRight(str_ChValue, 1); // }} "" // {{{ 63 1 0 "3b6762c6_f466_4c46_9926b0c9055e26fe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ChValue = StrIVal(str_ChValue); // }} "" // {{ 64 1 0 "c6e8fd0d_36c0_41ef_8f02caf7a9e63b77" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.AddAsLast(int_ChValue); // }} "" // {{ 65 1 0 "1c934587_4dc3_48a8_b1b285863c07a6b6" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 66 1 0 "c3d4b989_6c3d_4f36_bf2a5357735d7a8b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TM = Translate("tm"); // }} "" // {{ 67 1 0 "5835d8e1_1f9b_455a_a4d2b9ee08af62ba" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 68 1 0 "b685d5cf_be57_4ba4_93be9915b3e6b4da" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 69 1 0 "af00ac49_cd06_457b_bc85d2bc00fb51e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TM = StrConcat2(str_TM, Translate(" ")); // }} "" // {{ 70 1 0 "b685d5cf_be57_4ba4_93be9915b3e6b4da" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 71 1 0 "871904c2_8089_4ef6_aac91b0c7eaa62dd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TM = StrConcat2(str_TM, arr_ChPattern.ElementAt( int_ChIndex -1)); // }} "" // {{ 72 1 0 "5835d8e1_1f9b_455a_a4d2b9ee08af62ba" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 73 1 0 "802dec5d_1dd6_4680_82c8b23d062fcfc8" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_TM); // }} "" // {{ 74 1 0 "f36029a0_d693_43f5_8228458617976471" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 75 1 0 "1e56a973_ad98_4d12_9614698d276973c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 76 1 0 "5e2000f7_a7f1_4f9f_a071002dc8332b19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_XP = Translate("xp"); // }} "" // {{ 77 1 0 "bbf4a8f8_39c5_47d7_a87bbcdf7b33bfe4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_XCenter = flt_XCenter * 10; // }} "" // {{{ 78 1 0 "e368d7fd_2fed_49a1_8a224872ff0f4a37" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_int_X_Position = MthCeiling(flt_XCenter); // }} "" // {{{ 79 1 0 "997a3600_86df_49b9_bfa0c1951222fbce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_X_Position = StrConcat2(i_int_X_Position, Translate("")); // }} "" // {{{ 80 1 0 "9ce3fb40_985d_4744_a843cdc335e184c7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_X_Position = StrFillLeft(i_str_X_Position, Translate("0"), 5); // }} "" // {{{ 81 1 0 "b2123763_9046_4fe4_b895f9726843411b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_XP = StrConcat4(str_XP, i_str_X_Position, Translate("&"), Translate("")); // }} "" // {{ 82 1 0 "2fb432cc_ae2c_4011_9ea5d1e189bb4ac5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_XP); // }} "" // {{ 83 1 0 "1e56a973_ad98_4d12_9614698d276973c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 84 1 0 "5a6c23b0_b016_4a15_956b785bc25883fe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 85 1 0 "eaacc9c2_33e2_4d66_b0e55a909cf93e92" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_YP = Translate("yp"); // }} "" // {{ 86 1 0 "a7a0266d_97a3_4177_8657093d857d1137" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 87 1 0 "28c48d23_7aa4_47da_9034c7765c1105c0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 88 1 0 "97db8d61_9895_4cdb_be047bceba6ce3e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YP = StrConcat2(str_YP, Translate(" ")); // }} "" // {{ 89 1 0 "28c48d23_7aa4_47da_9034c7765c1105c0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 90 1 0 "fe33da64_5119_44eb_b53dbd470d28c5de" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_Y_Position=i_arr_Y_Position.GetAt(int_ChIndex-1); // }} "" // {{ 91 1 0 "86bf4228_2a82_4b72_8238d953a831ea58" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Position = flt_Y_Position * 10; // }} "" // {{{ 92 1 0 "89c6a8fd_2bac_41b9_b87bc7c1d8596b98" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Y_Position = MthCeiling(flt_Y_Position); // }} "" // {{{ 93 1 0 "955f32af_f088_4045_b13897d91308131a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Y_Position = StrConcat2(int_Y_Position, Translate("")); // }} "" // {{{ 94 1 0 "93aa7352_07a4_4371_b4932da428f31256" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Y_Position = StrFillLeft(str_Y_Position, Translate("0"), 4); // }} "" // {{{ 95 1 0 "13b744f6_6388_4778_9f7a4475c8438e81" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YP = StrConcat4(str_YP, str_Y_Position, Translate(""), Translate("")); // }} "" // {{ 96 1 0 "a7a0266d_97a3_4177_8657093d857d1137" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 97 1 0 "a014780f_ae63_41e6_9900d48e4370f42e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_YP); // }} "" // {{ 98 1 0 "5a6c23b0_b016_4a15_956b785bc25883fe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 99 1 0 "450d084a_9d92_4886_b7f1e116358b9903" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 100 1 0 "151a5274_4881_433c_90d4f74dd2d8c4c2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TH = Translate("th"); // }} "" // {{ 101 1 0 "c84d5ac4_f621_4d35_a2a53a703d34826b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_SafeTravelHeight = flt_SafeTravelHeight * 10; // }} "" // {{{ 102 1 0 "868a5801_11d6_4e86_87d4c26c269b0d57" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_SafeTravelHeight = MthCeiling(flt_SafeTravelHeight); // }} "" // {{{ 103 1 0 "4354fc22_40a7_4ae8_860397937f9747b7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SafeTravelHeight = StrConcat2(int_SafeTravelHeight, Translate("")); // }} "" // {{{ 104 1 0 "83f30991_f10a_4357_9403faeefd46b944" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SafeTravelHeight = StrFillLeft(str_SafeTravelHeight, Translate("0"), 4); // }} "" // {{{ 105 1 0 "b2e9759d_90a4_4763_be7c40d6e1849b02" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TH = StrConcat4(str_TH, str_SafeTravelHeight, Translate(""), Translate("")); // }} "" // {{ 106 1 0 "eb943cbe_6fd5_4c97_bb8a62b9e8e41296" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_TH); // }} "" // {{ 107 1 0 "450d084a_9d92_4886_b7f1e116358b9903" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 108 1 0 "3df1b819_909e_46d3_b34a1a4ad9bc613f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 109 1 0 "ed5e253a_08cd_4d25_b7e2805e6ded3052" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ZP = Translate("zp"); // }} "" // {{ 110 1 0 "287055f2_927f_4f23_b7f089d41a5ff4d0" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 111 1 0 "37219d2a_ca31_4d69_b58f5a682bb952f5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 112 1 0 "32f52ce9_8ae9_4617_bf3603f90ec2c0bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZP = StrConcat2(str_ZP, Translate(" ")); // }} "" // {{ 113 1 0 "37219d2a_ca31_4d69_b58f5a682bb952f5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 114 1 0 "d0e19a92_4296_4193_bc6985b264fc3ea9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_Z_Position=i_arr_Z_Position1.GetAt(int_ChIndex-1); // }} "" // {{ 115 1 0 "95394750_d043_4e2c_8a3106dfe40f91b7" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Position = flt_Z_Position * 10; // }} "" // {{{ 116 1 0 "e8704b32_6d7e_4e57_9cc4867669d6899d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Z_Position = MthCeiling(flt_Z_Position); // }} "" // {{{ 117 1 0 "dc5ca7d8_5dbe_42cf_97551621ee72d5c4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Z_Position = StrConcat2(int_Z_Position, Translate("")); // }} "" // {{{ 118 1 0 "0722891e_4b46_4f20_a45373c13019c5c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Z_Position = StrFillLeft(str_Z_Position, Translate("0"), 4); // }} "" // {{{ 119 1 0 "30bac45b_e2cf_4de8_849aec50b423865d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZP = StrConcat4(str_ZP, str_Z_Position, Translate(""), Translate("")); // }} "" // {{ 120 1 0 "287055f2_927f_4f23_b7f089d41a5ff4d0" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 121 1 0 "cafb6b01_8c33_4e3d_897529ee445d7a1b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_ZP); // }} "" // {{ 122 1 0 "3df1b819_909e_46d3_b34a1a4ad9bc613f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 123 1 0 "674f9492_6f1d_442c_90ea5b9550284625" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalParameters=arr_Parameters.GetSize(); // }} "" // {{ 124 1 0 "a010655e_437b_4b7a_9c1116b638b1fa8c" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalParameters;) { i = i + 1; // }} "" // {{{ 125 1 0 "d1a42572_fc42_400b_bfe2eee181f1f84e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FWParameter = StrConcat2(str_FWParameter, arr_Parameters.ElementAt( i -1)); // }} "" // {{ 126 1 0 "a010655e_437b_4b7a_9c1116b638b1fa8c" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" Trace("FW Command: ",str_FWCommand," : ",str_FWParameter); // {{ 128 1 0 "3a4e0272_893f_4c22_9333ff27d40c3933" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("3a4e0272_893f_4c22_9333ff27d40c3933"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 129 1 0 "91fb0d9b_56f7_4ebc_a4615c85de33f3bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{ 130 1 0 "4686cef3_0253_420e_92006badff7585ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 131 1 0 "c4a29586_d41c_4d91_b2f4af76960615e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 132 1 0 "253eae5f_19f8_45ed_89f4a951a327f3cd" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("Change Z speed and sensitivity")); // }} "" // {{ 133 1 0 "e69d3ef1_3b37_4a88_8576a092961f0208" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ZSpeed = i_flt_ZSpeed / (flt_ZIncremenToMM * 1.0); // }} "" // {{{ 134 1 0 "2e6f0e5d_ead4_44a9_83faa8a0e1d26d70" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ZSpeed = MthCeiling(flt_ZSpeed); // }} "" // {{{ 135 1 0 "f46d9c11_a90e_41a6_b27fadb0d950345c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZSpeed = StrConcat2(int_ZSpeed, Translate("")); // }} "" // {{{ 136 1 0 "70c83cf0_9f7b_4101_a12c002a8b132584" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZSpeed = StrFillLeft(str_ZSpeed, Translate("0"), 5); // }} "" // {{{ 137 1 0 "82919a75_1305_4c90_bee80b38a77673d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZV = StrConcat4(Translate("zv"), str_ZSpeed, Translate(""), Translate("")); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 138 1 0 "445ff6bb_dac4_468c_a864886c7a11aba9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FWCommand = StrConcat8(Translate("A1PXZGzr150000zw0010za34600"), str_ZV, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 139 1 0 "91729b0b_485e_4d5c_a0830ef2d2a60e6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FWCommand = StrConcat8(Translate("A1PXAAzr150000zw0100za34600"), str_ZV, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" Trace("FW Command: ",str_FWCommand); // {{ 141 1 0 "9681fe46_b76e_417a_9dc2c2a352c88e44" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("9681fe46_b76e_417a_9dc2c2a352c88e44"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 142 1 0 "c4a29586_d41c_4d91_b2f4af76960615e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 143 1 0 "dbc6215c_4576_4b70_8a3307a46e2bbece" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 144 1 0 "c68f228a_72af_47e8_bc2969676f554a74" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("Move to tap position")); // }} "" // {{ 145 1 0 "5498ab31_5bd7_4846_a61c036df88ba94b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_SafeTravelHeight = i_flt_MinimumTraverseHeightBegining; // }} "" // {{ 146 1 0 "6b7eb294_ae02_445f_8850f5701a665dce" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_XCenter = i_flt_XCenter; // }} "" // {{ 147 1 0 "7e223730_4836_449c_8fa1e4cd92adfe3c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FWCommand = Translate("C0JM"); // }} "" // {{ 148 1 0 "26e88a70_9c2d_4c27_b414ed0464c4d702" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FWParameter = Translate(""); // }} "" // {{ 149 1 0 "1c3c5614_a8c4_4ac7_8f9b8f7fadf54acd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Parameters.SetSize(0); // }} "" // {{ 150 1 0 "24c1ce34_6a85_4ba0_ad7678448cd58822" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 151 1 0 "18e988b6_cd15_47bf_b304f4a3656b4aa5" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChPattern.SetSize(0); // }} "" // {{ 152 1 0 "15dd81d5_737c_43f4_a371f2ed1f740a13" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 153 1 0 "c81c6dd3_9e20_4563_a1b447de47056a93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChValue = StrLeft(i_str_ChannelPattern, int_ChIndex); // }} "" // {{{ 154 1 0 "0e1e89e4_ae9d_4dee_8da2e2dcf0559da0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChValue = StrRight(str_ChValue, 1); // }} "" // {{{ 155 1 0 "63b07615_931d_4111_b0fab3128fcd9a64" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ChValue = StrIVal(str_ChValue); // }} "" // {{ 156 1 0 "2dd936ea_a40d_4b59_ba8695361f46bf3d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.AddAsLast(int_ChValue); // }} "" // {{ 157 1 0 "15dd81d5_737c_43f4_a371f2ed1f740a13" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 158 1 0 "a4c22564_6f45_4bcd_820a00f3e5490d0f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TM = Translate("tm"); // }} "" // {{ 159 1 0 "bfb91682_39c1_4fcf_ab9200918b90bd03" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 160 1 0 "abc19f4d_e54b_4b76_a0afe301bdf0cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 161 1 0 "e49d9603_6e57_4531_850099e4a669d0f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TM = StrConcat2(str_TM, Translate(" ")); // }} "" // {{ 162 1 0 "abc19f4d_e54b_4b76_a0afe301bdf0cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 163 1 0 "537c6145_66ac_4034_bd32aabbff2afdc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TM = StrConcat2(str_TM, arr_ChPattern.ElementAt( int_ChIndex -1)); // }} "" // {{ 164 1 0 "bfb91682_39c1_4fcf_ab9200918b90bd03" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 165 1 0 "7a07ace6_a773_4ae7_8ef406cda3885f61" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_TM); // }} "" // {{ 166 1 0 "24c1ce34_6a85_4ba0_ad7678448cd58822" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 167 1 0 "c2906693_158c_47eb_a01439f875904438" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 168 1 0 "937218a6_aad1_47e9_988bbad47ff6e631" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_XP = Translate("xp"); // }} "" // {{ 169 1 0 "ccb7c0ce_ce73_4713_a5168993392fa37f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_XCenter = flt_XCenter * 10; // }} "" // {{{ 170 1 0 "0093666f_228a_48e7_84418e3d4d0b8016" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_int_X_Position = MthCeiling(flt_XCenter); // }} "" // {{{ 171 1 0 "7a85d5b6_4694_495a_91e7337be3e9d73f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_X_Position = StrConcat2(i_int_X_Position, Translate("")); // }} "" // {{{ 172 1 0 "da320f5d_a1df_491d_a7470db1b68526b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_X_Position = StrFillLeft(i_str_X_Position, Translate("0"), 5); // }} "" // {{{ 173 1 0 "d329ee5d_e5c0_4d8f_8b0f91cf350ac15c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_XP = StrConcat4(str_XP, i_str_X_Position, Translate("&"), Translate("")); // }} "" // {{ 174 1 0 "e41e1f3c_cad7_4b18_9b0e202de7e80431" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_XP); // }} "" // {{ 175 1 0 "c2906693_158c_47eb_a01439f875904438" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 176 1 0 "cd82fa5d_b96d_40ed_b3497a44613b795e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 177 1 0 "5fdbe974_5afd_45ef_99996ea3e16c1edb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_YP = Translate("yp"); // }} "" // {{ 178 1 0 "71d67240_e350_4343_83f6a6c734a3be27" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 179 1 0 "069babe7_6600_4cbe_9e9496c84fffa8be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 180 1 0 "36653d37_92f0_4d62_b0dce159737c3d78" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YP = StrConcat2(str_YP, Translate(" ")); // }} "" // {{ 181 1 0 "069babe7_6600_4cbe_9e9496c84fffa8be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 182 1 0 "6297de84_0ed7_40b8_ac4bd0b9f2d2bfc7" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_Y_Position=i_arr_Y_Position.GetAt(int_ChIndex-1); // }} "" // {{ 183 1 0 "50c3f20b_e0f4_4c39_b495d6c4e0b7f70e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Position = flt_Y_Position * 10; // }} "" // {{{ 184 1 0 "297d8095_543a_4acf_93f69de926edfe91" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Y_Position = MthCeiling(flt_Y_Position); // }} "" // {{{ 185 1 0 "4aba1740_88d2_4a05_9b938b16dbe0e9bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Y_Position = StrConcat2(int_Y_Position, Translate("")); // }} "" // {{{ 186 1 0 "53b0c058_371b_4488_898fbf09d3d20307" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Y_Position = StrFillLeft(str_Y_Position, Translate("0"), 4); // }} "" // {{{ 187 1 0 "752ae2a9_32b3_4773_86daaf929994f324" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YP = StrConcat4(str_YP, str_Y_Position, Translate(""), Translate("")); // }} "" // {{ 188 1 0 "71d67240_e350_4343_83f6a6c734a3be27" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 189 1 0 "4a8a3f7c_4871_4b59_88fad760fed2598c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_YP); // }} "" // {{ 190 1 0 "cd82fa5d_b96d_40ed_b3497a44613b795e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 191 1 0 "5db8f146_287a_4239_8915567dcabc0e27" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 192 1 0 "ca00a96a_7f65_4a7e_8eb406e3432c7092" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TH = Translate("th"); // }} "" // {{ 193 1 0 "84b07daf_6498_465c_b2ba6abd86876aad" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_SafeTravelHeight = flt_SafeTravelHeight * 10; // }} "" // {{{ 194 1 0 "41f098ff_ca76_4c39_9443757123aaa85b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_SafeTravelHeight = MthCeiling(flt_SafeTravelHeight); // }} "" // {{{ 195 1 0 "7c9eea09_4f96_4479_a879cd40805cc068" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SafeTravelHeight = StrConcat2(int_SafeTravelHeight, Translate("")); // }} "" // {{{ 196 1 0 "947c8122_39c4_40b7_a95f3f48f4824e18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SafeTravelHeight = StrFillLeft(str_SafeTravelHeight, Translate("0"), 4); // }} "" // {{{ 197 1 0 "b4a58d20_e603_40ab_9cb2371260199c0a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TH = StrConcat4(str_TH, str_SafeTravelHeight, Translate(""), Translate("")); // }} "" // {{ 198 1 0 "fe16abfe_e42d_4d29_a65f16de752ee037" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_TH); // }} "" // {{ 199 1 0 "5db8f146_287a_4239_8915567dcabc0e27" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 200 1 0 "a7507488_3068_4942_99877c745b15654a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 201 1 0 "38cbde78_1da2_4f43_b929908e6e1c8297" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ZP = Translate("zp"); // }} "" // {{ 202 1 0 "cf92a4ee_7725_4531_94573eee043f6a04" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 203 1 0 "36afeac7_ab08_4b20_bdfd7e51d3f68bde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 204 1 0 "4bdee81e_6142_4c97_9268704a097e31f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZP = StrConcat2(str_ZP, Translate(" ")); // }} "" // {{ 205 1 0 "36afeac7_ab08_4b20_bdfd7e51d3f68bde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 206 1 0 "1be65eed_dee8_47a2_97282088f1513ff0" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_Z_Position=i_arr_Z_Position2.GetAt(int_ChIndex-1); // }} "" // {{ 207 1 0 "2152baee_07e6_4022_b9ddc8e729653502" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Position = flt_Z_Position * 10; // }} "" // {{{ 208 1 0 "dc1083f5_775b_4c31_9ec07fbfd5ef9a5d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Z_Position = MthCeiling(flt_Z_Position); // }} "" // {{{ 209 1 0 "f4fd9811_8bbe_4366_873bc8108377a61b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Z_Position = StrConcat2(int_Z_Position, Translate("")); // }} "" // {{{ 210 1 0 "09437c3b_5ac8_445c_86108506f4ce622d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Z_Position = StrFillLeft(str_Z_Position, Translate("0"), 4); // }} "" // {{{ 211 1 0 "eac4d02e_208e_46a4_869174ed97450e7b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZP = StrConcat4(str_ZP, str_Z_Position, Translate(""), Translate("")); // }} "" // {{ 212 1 0 "cf92a4ee_7725_4531_94573eee043f6a04" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 213 1 0 "fc5f6120_3aa8_4df5_b123c05c77955f9b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_ZP); // }} "" // {{ 214 1 0 "a7507488_3068_4942_99877c745b15654a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 215 1 0 "7f9c1fb8_3c28_4a3e_95255a02e3a3bfce" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalParameters=arr_Parameters.GetSize(); // }} "" // {{ 216 1 0 "84ed218b_3b73_468e_a9e15d6d0b65906e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalParameters;) { i = i + 1; // }} "" // {{{ 217 1 0 "37c5e7c9_5397_41ed_9e3d21a680cc9436" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FWParameter = StrConcat2(str_FWParameter, arr_Parameters.ElementAt( i -1)); // }} "" // {{ 218 1 0 "84ed218b_3b73_468e_a9e15d6d0b65906e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" Trace("FW Command: ",str_FWCommand," : ",str_FWParameter); // {{ 220 1 0 "4a07a3dc_4584_49fe_acf5a39938f624f0" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("4a07a3dc_4584_49fe_acf5a39938f624f0"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 221 1 0 "588775db_81a5_4f60_8945be115e5a2ffa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("er"), 1, 2, bool_ParamFound, int_ErrorCode); // }} "" // {{ 222 1 0 "21a56c42_8cc4_4a69_92132700f307a3ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ErrorCode != 0) { // }} "" // {{ 223 1 0 "726cb41f_cc7a_4f81_b8db1a55e5203ff5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_WallFound = 1; // }} "" // {{ 224 1 0 "21a56c42_8cc4_4a69_92132700f307a3ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 225 1 0 "a2adb8f1_1891_43f9_9e11157bc903f01d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{ 226 1 0 "dbc6215c_4576_4b70_8a3307a46e2bbece" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 227 1 0 "dbb7fa80_986a_4e99_8e50de666d7a1dd0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 228 1 0 "1ebeae11_4411_414d_9d3c7c07ea399c46" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("Reset the speed back to normal")); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 229 1 0 "31ad2883_3e00_406b_b0a2ed47b10fcd7b" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("31ad2883_3e00_406b_b0a2ed47b10fcd7b"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 230 1 0 "cd7e400e_e15f_480a_b351a60c96b9795a" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("cd7e400e_e15f_480a_b351a60c96b9795a"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 231 1 0 "dbb7fa80_986a_4e99_8e50de666d7a1dd0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 232 1 0 "3a96b22f_cc5f_4886_8f2fa52bb18eedf7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" Get_Channel_Position(ML_STAR, i_int_BackChannel, flt_NotUsed, flt_NotUsed, flt_ZCoordBack); // }} "" // {{{ 233 1 0 "a653fff2_561d_4a88_b242648c85375428" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" Get_Channel_Position(ML_STAR, i_int_FrontChannel, flt_NotUsed, flt_NotUsed, flt_ZCoordFront); // }} "" // {{ 234 1 0 "90321f38_787f_4e36_8d8cf76998ed4d04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_ZCoordBack > flt_ZCoordFront) { // }} "" // {{ 235 1 0 "ca7c20ca_63fe_40a7_a9ae50b56c281c32" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_HeightFound = flt_ZCoordBack; // }} "" // {{ 236 1 0 "90321f38_787f_4e36_8d8cf76998ed4d04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 237 1 0 "c58b81da_6d99_4f2d_840a8d4fcd2cb3aa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_HeightFound = flt_ZCoordFront; // }} "" // {{ 238 1 0 "90321f38_787f_4e36_8d8cf76998ed4d04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 239 1 0 "9594b087_c559_400e_ad8356ec1b971b2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 240 1 0 "aca8f30f_ac23_44a4_9e290fa88097561c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("Move to final position")); // }} "" // {{ 241 1 0 "6458ca77_2291_44fc_b1d06a1a76985ad0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_SafeTravelHeight = i_flt_MinimumTraverseHeightBegining; // }} "" // {{ 242 1 0 "c196d206_1cc7_4aea_b0e4770b6cebc12c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_XCenter = i_flt_XCenter; // }} "" // {{ 243 1 0 "3f6a0d43_9845_48a5_9b10522cf186f7f3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FWCommand = Translate("C0JM"); // }} "" // {{ 244 1 0 "d23e6e6c_b82a_410f_8ccfcb3c769d8783" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FWParameter = Translate(""); // }} "" // {{ 245 1 0 "61504ca1_115d_4f4b_9411efb5109f3fdd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Parameters.SetSize(0); // }} "" // {{ 246 1 0 "6da373d0_8ab6_46f0_a442a6b06b84b06f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 247 1 0 "b704ec00_73f6_45ed_ab78a9886bc3b402" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChPattern.SetSize(0); // }} "" // {{ 248 1 0 "472af723_9964_4fe2_b046ccc83b1704d6" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 249 1 0 "bd795c95_955e_4a95_8705d0867ef0102b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChValue = StrLeft(i_str_ChannelPattern, int_ChIndex); // }} "" // {{{ 250 1 0 "6ae85cf1_5688_4347_a8da7dafeca0bf68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChValue = StrRight(str_ChValue, 1); // }} "" // {{{ 251 1 0 "28f53a14_8feb_42d7_b59e575767b01745" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ChValue = StrIVal(str_ChValue); // }} "" // {{ 252 1 0 "a6fd1ac1_76d5_45e4_94f91e764cdd95f3" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.AddAsLast(int_ChValue); // }} "" // {{ 253 1 0 "472af723_9964_4fe2_b046ccc83b1704d6" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 254 1 0 "97021693_3b6d_4c53_b7b432917dab704d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TM = Translate("tm"); // }} "" // {{ 255 1 0 "9a5a6f9c_6948_4dc9_8b718c0b207fda88" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 256 1 0 "70b77f34_8805_4ba2_bfde7f84003eb9df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 257 1 0 "7ea06c03_52b0_47a3_af378cea227381a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TM = StrConcat2(str_TM, Translate(" ")); // }} "" // {{ 258 1 0 "70b77f34_8805_4ba2_bfde7f84003eb9df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 259 1 0 "21c0a467_f5c6_4ecf_9e8f66ea76a0eb54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TM = StrConcat2(str_TM, arr_ChPattern.ElementAt( int_ChIndex -1)); // }} "" // {{ 260 1 0 "9a5a6f9c_6948_4dc9_8b718c0b207fda88" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 261 1 0 "a2649ea5_5be4_41cd_afcfc58a5f382215" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_TM); // }} "" // {{ 262 1 0 "6da373d0_8ab6_46f0_a442a6b06b84b06f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 263 1 0 "01a86660_f4f8_40ae_97ece16b98a36947" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 264 1 0 "6309f4f4_18da_4524_aece0e96c4701990" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_XP = Translate("xp"); // }} "" // {{ 265 1 0 "f3fc4c5e_3414_430e_ae0b79968f821184" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_XCenter = flt_XCenter * 10; // }} "" // {{{ 266 1 0 "f13db7f5_2f37_471b_9a539f336bcad1e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_int_X_Position = MthCeiling(flt_XCenter); // }} "" // {{{ 267 1 0 "f8d55d0f_a15d_4ba7_bfa78bb8786d9df6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_X_Position = StrConcat2(i_int_X_Position, Translate("")); // }} "" // {{{ 268 1 0 "883db91b_7730_4654_8cec088b962ff126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_X_Position = StrFillLeft(i_str_X_Position, Translate("0"), 5); // }} "" // {{{ 269 1 0 "f8b6ba01_4291_4add_bbb0b4f51ba80097" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_XP = StrConcat4(str_XP, i_str_X_Position, Translate("&"), Translate("")); // }} "" // {{ 270 1 0 "1f449a65_0427_4535_a03fe74e5489c957" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_XP); // }} "" // {{ 271 1 0 "01a86660_f4f8_40ae_97ece16b98a36947" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 272 1 0 "cabc3a67_d635_45e2_ba8fab405cd9b249" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 273 1 0 "7e9de21b_b332_4f4c_89002968dbf6614f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_YP = Translate("yp"); // }} "" // {{ 274 1 0 "4942e801_e094_4243_9cbd2a520883cbbf" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 275 1 0 "d30ee41c_40f3_491e_a93f4210b9bbf9f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 276 1 0 "55dcd8b6_6b8e_43dc_9e4d1712ef161cb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YP = StrConcat2(str_YP, Translate(" ")); // }} "" // {{ 277 1 0 "d30ee41c_40f3_491e_a93f4210b9bbf9f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 278 1 0 "606700e3_1b5b_4848_8e5480ec4653ab75" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_Y_Position=i_arr_Y_Position.GetAt(int_ChIndex-1); // }} "" // {{ 279 1 0 "0b78654e_cf7c_4afc_a55e3647533feaef" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Position = flt_Y_Position * 10; // }} "" // {{{ 280 1 0 "40ba10c1_7ec9_49ef_828712838bc6c79a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Y_Position = MthCeiling(flt_Y_Position); // }} "" // {{{ 281 1 0 "c5413206_f404_410e_b7ccc4ba32640748" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Y_Position = StrConcat2(int_Y_Position, Translate("")); // }} "" // {{{ 282 1 0 "a9847340_1af4_4a69_bc0690203249c03b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Y_Position = StrFillLeft(str_Y_Position, Translate("0"), 4); // }} "" // {{{ 283 1 0 "e555d3e0_debd_4cf3_a26be1efbe79db24" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YP = StrConcat4(str_YP, str_Y_Position, Translate(""), Translate("")); // }} "" // {{ 284 1 0 "4942e801_e094_4243_9cbd2a520883cbbf" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 285 1 0 "e48881e1_7188_4b02_b12b85d5dc69e31e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_YP); // }} "" // {{ 286 1 0 "cabc3a67_d635_45e2_ba8fab405cd9b249" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 287 1 0 "49603afc_3a4d_441a_952ffe1a8704edf9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 288 1 0 "79809aee_a863_44c8_a71f2aa8aaa2c0a4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TH = Translate("th"); // }} "" // {{ 289 1 0 "0e70dfb9_273e_4b04_84220ee1cdd575d5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_SafeTravelHeight = flt_SafeTravelHeight * 10; // }} "" // {{{ 290 1 0 "4adee88f_4840_42e7_825f4d9c6586cac7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_SafeTravelHeight = MthCeiling(flt_SafeTravelHeight); // }} "" // {{{ 291 1 0 "d3d68cbd_08c9_4ae1_b6143666024ed8af" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SafeTravelHeight = StrConcat2(int_SafeTravelHeight, Translate("")); // }} "" // {{{ 292 1 0 "1d0cd928_087a_4102_92b8e60c00ac0de2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SafeTravelHeight = StrFillLeft(str_SafeTravelHeight, Translate("0"), 4); // }} "" // {{{ 293 1 0 "9020a5ac_b663_4b08_91d0e8bb7a99d56c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TH = StrConcat4(str_TH, str_SafeTravelHeight, Translate(""), Translate("")); // }} "" // {{ 294 1 0 "126dbbcb_99ff_43ab_9c3208f26cb4fb95" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_TH); // }} "" // {{ 295 1 0 "49603afc_3a4d_441a_952ffe1a8704edf9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 296 1 0 "8a8f0522_ab37_43af_bc21fe3d7754822c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 297 1 0 "c16bbadd_8aef_4611_97d0cd897695ac79" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ZP = Translate("zp"); // }} "" // {{ 298 1 0 "ed8f363c_8f1c_4222_888b5cb6a3fddfde" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 299 1 0 "a32617e2_bb32_464b_a1f4bd270f68e2df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 300 1 0 "3510c348_62fc_433f_a3769e93dd5cc9e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZP = StrConcat2(str_ZP, Translate(" ")); // }} "" // {{ 301 1 0 "a32617e2_bb32_464b_a1f4bd270f68e2df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 302 1 0 "50f3030a_0984_4c6f_8a1b1c252debcfea" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_Z_Position=i_arr_Z_Position3.GetAt(int_ChIndex-1); // }} "" // {{ 303 1 0 "2d37454a_7b78_4356_837bdd2f3ae5c680" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Position = flt_Z_Position * 10; // }} "" // {{{ 304 1 0 "99307bf0_ac25_44ce_a14d69a6550dcd60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Z_Position = MthCeiling(flt_Z_Position); // }} "" // {{{ 305 1 0 "24740695_d13a_4ac3_8c7e674538cd4d34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Z_Position = StrConcat2(int_Z_Position, Translate("")); // }} "" // {{{ 306 1 0 "58a7dedf_35cb_4292_a7ee56ce26eab713" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Z_Position = StrFillLeft(str_Z_Position, Translate("0"), 4); // }} "" // {{{ 307 1 0 "d4f46dc4_b277_4fe7_b329689485e3eb29" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZP = StrConcat4(str_ZP, str_Z_Position, Translate(""), Translate("")); // }} "" // {{ 308 1 0 "ed8f363c_8f1c_4222_888b5cb6a3fddfde" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 309 1 0 "77a30e2e_52f8_4933_a9deb5d9e1dc6aea" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_ZP); // }} "" // {{ 310 1 0 "8a8f0522_ab37_43af_bc21fe3d7754822c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 311 1 0 "c92aa5a7_c3dc_4c4c_840a57d7537b6daf" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalParameters=arr_Parameters.GetSize(); // }} "" // {{ 312 1 0 "ec946279_ab69_4b05_8c103a905e84eb15" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalParameters;) { i = i + 1; // }} "" // {{{ 313 1 0 "e343bcc2_4b9e_4720_9f6d34a2b831ff2a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FWParameter = StrConcat2(str_FWParameter, arr_Parameters.ElementAt( i -1)); // }} "" // {{ 314 1 0 "ec946279_ab69_4b05_8c103a905e84eb15" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" Trace("FW Command: ",str_FWCommand," : ",str_FWParameter); // {{ 316 1 0 "8aa06f78_f0c0_47b5_8882611b914863f2" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("8aa06f78_f0c0_47b5_8882611b914863f2"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 317 1 0 "02b86a8d_d194_41c8_a6ff984b00873573" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{ 318 1 0 "9594b087_c559_400e_ad8356ec1b971b2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 319 1 0 "d7a4ffeb_a45f_45af_a2b3d0c758facdf4" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_WallFound); // }} "" // {{{ 5 "CheckPlateWithTwoChannels" "End" } // }} "" // {{{ 5 "GetStopDiskZCoord" "Begin" function GetStopDiskZCoord( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_ZCoord ) void { // }} "" private variable str_FW_ReturnPosition; private variable str_ReturnValue; private variable bol_ParameterFound; private variable strFunctionName; private variable str_FirmwareCMND; private variable int_FW_Position; private variable flt_Resolution_Z; private variable flt_ReturnValue; // {{ 5 "GetStopDiskZCoord" "InitLocals" o_flt_ZCoord = 0; // }} "" // {{ 321 1 0 "808fedd2_4684_4a87_bfb7e21ebc2352e5" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 322 1 0 "3b3587b1_e24e_4200_82eb3e0d49751927" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_Z = 0.009765625; // }} "" // {{{ 323 1 0 "a35bd492_f4ec_46e6_b5869ecbaebfb84a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::GetChannelNumber(i_int_CurrentChannel); // }} "" // {{{ 324 1 0 "b2d9e4d5_efdd_4aed_96758e997ebdb268" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("A1P"), i_int_CurrentChannel, Translate("RZ"), Translate("")); // }} "" // {{ 325 1 0 "f178d574_017c_4ebe_bc0e8005f30824f4" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("f178d574_017c_4ebe_bc0e8005f30824f4"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 326 1 0 "afe394ca_8806_4bb6_9c7dc4092e1d7115" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("rz+"), flt_Resolution_Z, 5, bol_ParameterFound, flt_ReturnValue); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 327 1 0 "587634b4_fda0_4527_9a96cd380baf3922" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FW_ReturnPosition = StrRight(str_ReturnValue, 5); // }} "" // {{{ 328 1 0 "f15c0713_adfb_4290_a16c307b13961582" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_FW_Position = StrIVal(str_FW_ReturnPosition); // }} "" // {{ 329 1 0 "ee0a8d2f_1b28_4449_ab0a4e73568ca32c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ReturnValue = int_FW_Position * flt_Resolution_Z; // }} "" // {{{ 330 1 0 "203e136c_560d_430a_80f25b1664eb7e9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_ReturnValue = MthRound(flt_ReturnValue, 1); // }} "" Trace("Stop disk Z coord: ",flt_ReturnValue); // {{{ 332 1 0 "5ad72775_5607_492d_94e6b8fa3b7d596e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{ 333 1 0 "6f8a90fc_6346_4970_b988fe69cab6df3f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_ZCoord = flt_ReturnValue; // }} "" // {{{ 5 "GetStopDiskZCoord" "End" } // }} "" // {{{ 5 "Search_Z" "Begin" function Search_Z( device & ML_STAR, variable i_int_CurrentChannel, variable i_flt_Z_Min, variable i_flt_TipLength, variable i_int_Sensitivity, variable & o_flt_Z_Found ) variable { // }} "" private variable bool_ParamFound; private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable int_SeekHeight; private variable strFunctionName; private variable int_Channel; private variable flt_SeekHeight; private variable str_FirmwareParam; private variable flt_Z_MinPlusTip; private variable strFunctionName_Cut; private variable str_FirmwareCMND; private variable int_CLLD_Status; private variable flt_ResetPosition; private variable int_ErrorCode; private variable int_Count; private variable str_Position; private variable ret_WallFound; private variable flt_Resolution_Z; private variable Not_Used; private variable int_Sensitivity; private variable str_FWParam; // {{ 5 "Search_Z" "InitLocals" o_flt_Z_Found = 0; // }} "" // {{ 1001 1 0 "14b638ee_302e_489f_9b3c4039d15e8be1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1002 1 0 "bbabf009_b1fa_432e_935b268ac11eb40d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1004 1 0 "a8c95f15_5838_4a96_a7672cee2003a32f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 1005 1 0 "dc295d77_82cb_4749_ab1e210d13405734" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1006 1 0 "eb11a3d9_b2c1_442e_8febc24aaa3957ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 1007 1 0 "3f4767f2_aba0_4152_b7848d82bd7aa393" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1008 1 0 "917899ce_7a9d_4f6f_b0661e3959c4e234" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 1009 1 0 "1c06d663_e691_448f_b7dd3dcfe0cd335b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 1010 1 0 "14b638ee_302e_489f_9b3c4039d15e8be1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1011 1 0 "44efc75b_7b84_4c3e_a02dd91cc0581869" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Channel = i_int_CurrentChannel; // }} "" // {{{ 1012 1 0 "ec3b3913_251f_456c_a54407b7b3e2e00b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::GetChannelNumber(int_Channel); // }} "" // {{ 1013 1 0 "449c4ff1_f249_4c30_89bd583a48eb5bd9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_WallFound = 0; // }} "" // {{ 1014 1 0 "aa098a93_636b_4ccd_b053d62739b57daf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Sensitivity = 0; // }} "" // {{ 1015 1 0 "54bbe6e3_b97e_4db4_978a2dc1c24f824d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_Sensitivity == 0) { // }} "" // {{ 1016 1 0 "426f50b5_1289_4055_ab45e4a3ad5a7845" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Sensitivity = 50; // }} "" // {{ 1017 1 0 "54bbe6e3_b97e_4db4_978a2dc1c24f824d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1018 1 0 "b22a4b28_7977_4dde_8b8cda956ecc6916" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_Sensitivity == 1) { // }} "" // {{ 1019 1 0 "840bd3b3_fadd_41e4_bc3da17ac4adce77" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Sensitivity = 100; // }} "" // {{ 1020 1 0 "b22a4b28_7977_4dde_8b8cda956ecc6916" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1021 1 0 "c13ed4fc_1bf6_4c34_97886b7e85008527" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_Sensitivity == 2) { // }} "" // {{ 1022 1 0 "b0d32cfb_b2ec_4f32_aea4978414a3703a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Sensitivity = 200; // }} "" // {{ 1023 1 0 "c13ed4fc_1bf6_4c34_97886b7e85008527" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1024 1 0 "ee1a5aa4_4e9e_47a3_a79aafd72d03b139" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_Sensitivity == 3) { // }} "" // {{ 1025 1 0 "6ccc4896_d1b3_47f7_b548d15c82934de8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Sensitivity = 400; // }} "" // {{ 1026 1 0 "ee1a5aa4_4e9e_47a3_a79aafd72d03b139" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1027 1 0 "2271c0d6_8ce1_42ec_a36a1d00719f6fc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_Sensitivity == 4) { // }} "" // {{ 1028 1 0 "eaa84638_9da6_4596_9b68fa83d40b06c8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Sensitivity = 600; // }} "" // {{ 1029 1 0 "2271c0d6_8ce1_42ec_a36a1d00719f6fc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1030 1 0 "ca82c3aa_8686_443b_b90de0f9dd08a917" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_Sensitivity == 5) { // }} "" // {{ 1031 1 0 "0a763115_26fd_4f6d_885d29dea5578d07" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Sensitivity = 800; // }} "" // {{ 1032 1 0 "ca82c3aa_8686_443b_b90de0f9dd08a917" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1033 1 0 "589a1518_1e83_4cae_8501509c2ea72eea" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_Sensitivity == 6) { // }} "" // {{ 1034 1 0 "14603f44_bd67_470f_a7eb67e3274e1918" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Sensitivity = 1000; // }} "" // {{ 1035 1 0 "589a1518_1e83_4cae_8501509c2ea72eea" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1036 1 0 "2592da34_ed2d_4f5c_a8b828fd9d6f631c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_Sensitivity == 7) { // }} "" // {{ 1037 1 0 "0cbaac9e_adf1_4a33_ba218071da549c3b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Sensitivity = 1200; // }} "" // {{ 1038 1 0 "2592da34_ed2d_4f5c_a8b828fd9d6f631c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1039 1 0 "b626db13_c769_4fab_8e4c6417f01ffc89" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1040 1 0 "2b73aad0_9ffa_4a1e_aabb9f2161b034a9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_Z = 0.009765625; // }} "" // {{ 1041 1 0 "7538f9ab_f59d_4cf3_895daf6ccde51324" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1042 1 0 "da6e774e_44a4_40f7_ad87a22baa6f94e6" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Z_MinPlusTip = i_flt_Z_Min + i_flt_TipLength; // }} "" // {{ 1043 1 0 "e4943460_9345_4913_b3a92bfd4754d151" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_SeekHeight = flt_Z_MinPlusTip / (flt_Resolution_Z * 1.0); // }} "" // {{{ 1044 1 0 "10d63e69_c1d8_4d1d_9f17bd1f227cdf2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_SeekHeight = MthCeiling(flt_SeekHeight); // }} "" // {{ 1045 1 0 "ee5495cf_0171_42a0_b2591739b7ecada6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_SeekHeight < 14541) { // }} "" // {{ 1046 1 0 "1635adbd_6f35_41d3_ab2bf2a92c10852f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_SeekHeight = 14541; // }} "" // {{ 1047 1 0 "ee5495cf_0171_42a0_b2591739b7ecada6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1048 1 0 "892bceec_2bc6_4228_bf56c50b7c079717" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1049 1 0 "4423c8a3_80d7_454b_941c1b55f38207b7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Sensitivity = StrConcat2(int_Sensitivity, Translate("")); // }} "" // {{{ 1050 1 0 "aac564ab_9d2b_4823_b6458714e867170b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Sensitivity = StrFillLeft(int_Sensitivity, Translate("0"), 4); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1051 1 0 "88c91cc6_bb40_4539_90819877d45329a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareParam = StrConcat4(Translate("za"), int_SeekHeight, Translate("zv01648zr005000zw"), int_Sensitivity); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 1052 1 0 "127f0b42_cd48_4ff3_939a243a408bc424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareParam = StrConcat4(Translate("za"), int_SeekHeight, Translate("zv02000zr150000zw"), int_Sensitivity); // }} "" // {{{ 1053 1 0 "fcf22e1b_7b3e_40dd_b325682b29db875c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("A1P"), int_Channel, Translate("ZG"), str_FirmwareParam); // }} "" Trace("Search for Z: ",str_FirmwareCMND); // {{ 1055 1 0 "ef521993_60a0_4687_a9ef0dc3e7e526f7" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("ef521993_60a0_4687_a9ef0dc3e7e526f7"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 1056 1 0 "54a5c14b_9958_4374_96490d9b06223fb3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{{ 1057 1 0 "8cdbdd20_f119_46e0_a950f7e664fdd6bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("er"), 1, 2, bool_ParamFound, int_ErrorCode); // }} "" // {{ 1058 1 0 "da6c2b76_2e70_4601_9f4794afe9d82b90" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ErrorCode != 0) { // }} "" // {{ 1059 1 0 "b20fb877_2356_4db7_b80ff894ccd7d40c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_WallFound = 1; // }} "" // {{ 1060 1 0 "da6c2b76_2e70_4601_9f4794afe9d82b90" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1061 1 0 "665baf3a_e424_41e4_a827561675c23ee8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" Get_Channel_Position(ML_STAR, i_int_CurrentChannel, Not_Used, Not_Used, o_flt_Z_Found); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 1062 1 0 "4bff5607_c907_4a69_a69caf47a215de1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetStopDiskZCoord(ML_STAR, i_int_CurrentChannel, o_flt_Z_Found); // }} "" // {{ 1063 1 0 "f56d8d13_5ca9_4ea7_8111c09a7a1100de" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_Z_Found = o_flt_Z_Found - i_flt_TipLength; // }} "" Trace("CLLD Status: ",int_CLLD_Status); Trace("Z Position found: ",o_flt_Z_Found); // {{ 1065 1 0 "a00eee26_1adc_41fc_83b3e7ea4aa89b86" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 1066 1 0 "65e50cbe_2b4e_49a1_abbb89cb01c0a0d5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ResetPosition = o_flt_Z_Found + i_flt_TipLength; // }} "" // {{ 1067 1 0 "8b2050a2_0a05_4a8a_81eb589ee07b7c2f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ResetPosition = flt_ResetPosition / (flt_Resolution_Z * 1.0); // }} "" // {{{ 1068 1 0 "cd7ba820_6ae0_4c15_a2a19e5d5cb6ac8f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_ResetPosition = MthRound(flt_ResetPosition, 0); // }} "" // {{{ 1069 1 0 "9103be2f_dce1_4497_aab2aa57733d4223" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Position = StrConcat2(flt_ResetPosition, Translate("")); // }} "" // {{{ 1070 1 0 "f0083d85_ef1b_448c_bba6e89c60ae36bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Position = StrFillLeft(str_Position, Translate("0"), 5); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 1071 1 0 "7117b1a5_1e83_49db_a06bc85ec6ccbe2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareParam = StrConcat8(Translate("zv25000"), Translate("zr150000"), Translate("zw1000"), Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{{ 1072 1 0 "6bab1cee_d6a9_428f_931d66c821eb8024" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("A1P"), int_Channel, Translate("AA"), str_FirmwareParam); // }} "" // {{ 1073 1 0 "627af9c8_9264_4eca_950c0215209f5e3f" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("627af9c8_9264_4eca_950c0215209f5e3f"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 1074 1 0 "183a5954_b695_4c2f_aafebc623360be1a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{{ 1075 1 0 "316f75e5_ef22_4e63_b28d79d19845b761" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FWParam = StrConcat4(Translate("A1P"), int_Channel, Translate("ZGzv25000zr150000zw1000za34600"), Translate("")); // }} "" // {{ 1076 1 0 "8de8eddd_ab89_4746_9089b2be918a45f8" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("8de8eddd_ab89_4746_9089b2be918a45f8"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 1077 1 0 "e9b8eeed_0287_40c8_b1d0d5673b891ed5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{{ 1078 1 0 "3d230386_51ef_4d19_b8153565e617df13" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_WallFound); // }} "" // {{{ 5 "Search_Z" "End" } // }} "" // {{{ 5 "Move_Channels_To_Absolute_Position" "Begin" function Move_Channels_To_Absolute_Position( device & ML_STAR, variable i_str_ChannelPattern, variable i_flt_MinimumZHeightAtBegining, variable i_flt_X_Position, variable & i_arr_Y_Position[], variable & i_arr_Z_Position[] ) void { // }} "" private variable i_int_X_Position; private variable int_SafeTravelHeight; private variable str_ReturnValue; private variable int_CutNum; private variable flt_SafeTravelHeight; private variable str_Y_Position; private variable str_FWParameter; private variable int_Length; private variable int_Y_Position; private variable i; private variable str_TH; private variable strFunctionName; private variable str_ZP; private variable str_FWCommand; private variable flt_Y_Position; private variable int_TotalParameters; private variable str_Z_Position; private variable str_YP; private variable strFunctionName_Cut; private variable str_XP; private variable int_Z_Position; private variable str_TM; private variable flt_Z_Position; private variable int_TotalChannels; private variable int_Count; private variable int_TotalYValues; private variable str_ChValue; private variable int_ChValue; private variable int_TotalZValues; private variable i_str_X_Position; private variable str_SafeTravelHeight; private variable int_ChIndex; private variable int_ChPatternLength; private variable arr_Parameters[]; private variable arr_ChPattern[]; // {{ 5 "Move_Channels_To_Absolute_Position" "InitLocals" // }} "" // {{ 616 1 0 "ccd84b95_8562_41fb_b359144e6c83ff01" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 617 1 0 "62b2e06f_44ea_4ea8_86a08e204e3f4341" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 618 1 0 "66418798_6380_43c2_a0644f8699190860" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 620 1 0 "ed050484_aae0_4332_9096caa6332dd844" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 621 1 0 "94c09a3c_f3dd_404f_aeb1e22cd6ab93f1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 622 1 0 "de2f5fdb_c9fe_49a6_b084b9b0c0a8fff7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 623 1 0 "cb865020_491b_49f0_b0e0a82416439b2c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 624 1 0 "712dbd1f_9190_4cba_9233e9573aee1e0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 625 1 0 "2164d880_5d51_4377_b4d405d275c6745c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 626 1 0 "62b2e06f_44ea_4ea8_86a08e204e3f4341" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 627 1 0 "09c6686a_8c44_4de7_a0e6ca0553a9bd51" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 628 1 0 "9671837b_6a40_4124_b1b4f1cdf28f0c53" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChannelPattern = StrConcat2(i_str_ChannelPattern, Translate("")); // }} "" // {{{ 629 1 0 "e3c84b24_0ecb_409f_b3add2590bb8f0de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{{ 630 1 0 "b5eacb0a_efbd_4e5d_9f9687aa3d9cb9d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ChPatternLength = StrGetLength(i_str_ChannelPattern); // }} "" // {{ 631 1 0 "5f18d38d_7871_4eab_97a40f86914a33a1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChPatternLength < int_TotalChannels) { // }} "" Trace("Channel Pattern: ",i_str_ChannelPattern); // {{{ 633 1 0 "5ab8aedb_9a36_48da_a5e343cfa04c0dde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Channel pattern is less than the total number of channels on the system!")); // }} "" // {{ 634 1 0 "5f18d38d_7871_4eab_97a40f86914a33a1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 635 1 0 "a58b5ecf_aaf9_4beb_83e3d4e0e530bbc9" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalYValues=i_arr_Y_Position.GetSize(); // }} "" // {{ 636 1 0 "76daf011_f0cc_4fba_999b8ccef97ba851" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalYValues < int_TotalChannels) { // }} "" // {{{ 637 1 0 "900055d7_738b_493b_a32316d107001cd6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Y Values"), i_arr_Y_Position); // }} "" // {{{ 638 1 0 "6c1dba85_06e5_4373_b7855e7ffe9c3e61" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("There are not enough values in the array for the Y Positions")); // }} "" // {{ 639 1 0 "76daf011_f0cc_4fba_999b8ccef97ba851" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 640 1 0 "76533b2a_27da_4ae6_902efa913bcd6f64" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalZValues=i_arr_Z_Position.GetSize(); // }} "" // {{ 641 1 0 "15116105_19e0_4578_a7660d0b2ca55e3c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalZValues < int_TotalChannels) { // }} "" // {{{ 642 1 0 "2f02574e_79ad_4258_a076aeb85e609be3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Z Values"), i_arr_Z_Position); // }} "" // {{{ 643 1 0 "ba6a3596_cbd9_4462_b14d5d57277b013e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("There are not enough values in the array for the Z Positions")); // }} "" // {{ 644 1 0 "15116105_19e0_4578_a7660d0b2ca55e3c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 645 1 0 "09c6686a_8c44_4de7_a0e6ca0553a9bd51" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 646 1 0 "f11f999e_0854_4102_bb6042fa30a815b3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_SafeTravelHeight = i_flt_MinimumZHeightAtBegining; // }} "" // {{ 647 1 0 "e5d98103_ce4e_4afc_ac2d08ccba1fc5c5" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 648 1 0 "58575a96_a7c1_4d5f_bf41e87aa5ae405b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FWCommand = Translate("C0JM"); // }} "" // {{ 649 1 0 "d61a886f_5076_4ae9_b1dd819e4a88f428" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FWParameter = Translate(""); // }} "" // {{ 650 1 0 "73a5485f_f5fb_4974_a388cbc9ab2d23b2" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Parameters.SetSize(0); // }} "" // {{ 651 1 0 "904d4e5a_954f_47ef_97104823731d65b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 652 1 0 "7bb51ccc_9054_4926_bf5e9c2df41ce6a3" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChPattern.SetSize(0); // }} "" // {{ 653 1 0 "e2dafa89_6e2a_4ea7_ab11ff97d45a8159" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 654 1 0 "21f5e4dd_52d3_46bd_8eb69dee3019a652" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChValue = StrLeft(i_str_ChannelPattern, int_ChIndex); // }} "" // {{{ 655 1 0 "06062bca_c330_4b2f_a92eebffdd7dea2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChValue = StrRight(str_ChValue, 1); // }} "" // {{{ 656 1 0 "b9b3a2aa_d68d_4865_ac492948a052aee6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ChValue = StrIVal(str_ChValue); // }} "" // {{ 657 1 0 "6ba7dbe2_f091_4c3e_84da23bb4b1ba0cc" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.AddAsLast(int_ChValue); // }} "" // {{ 658 1 0 "e2dafa89_6e2a_4ea7_ab11ff97d45a8159" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 659 1 0 "7afbc2cb_bf70_45d6_ae0633677fc7876d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TM = Translate("tm"); // }} "" // {{ 660 1 0 "a2330c76_8eca_48b1_8e8b5c9a8a588417" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 661 1 0 "26d9c430_97d1_4936_8dd31c3c37de23af" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 662 1 0 "ae8d66ef_830f_4872_b50a757b05d6480d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TM = StrConcat2(str_TM, Translate(" ")); // }} "" // {{ 663 1 0 "26d9c430_97d1_4936_8dd31c3c37de23af" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 664 1 0 "82b23f42_8244_4d0e_a4d4c5255e69a396" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TM = StrConcat2(str_TM, arr_ChPattern.ElementAt( int_ChIndex -1)); // }} "" // {{ 665 1 0 "a2330c76_8eca_48b1_8e8b5c9a8a588417" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 666 1 0 "88b84a9d_bc1c_434c_b59b15b232e32919" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_TM); // }} "" // {{ 667 1 0 "904d4e5a_954f_47ef_97104823731d65b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 668 1 0 "9567a089_f10e_43f4_b69e78b19a86cc26" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 669 1 0 "aa6ff721_f361_4bdf_91eaf5e6c839b1f2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_XP = Translate("xp"); // }} "" // {{ 670 1 0 "e1080b1a_08b9_4cb1_af5e7a91fd7b313b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" i_flt_X_Position = i_flt_X_Position * 10; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 671 1 0 "ef2018f3_aac1_4961_80adf02b79b4d4c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_int_X_Position = MthCeiling(i_flt_X_Position); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 672 1 0 "2ccd69fd_a830_4c2b_b41b31ff45eaf1bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_int_X_Position = MthFloor(i_flt_X_Position); // }} "" // {{{ 673 1 0 "11edefad_7f22_4a8b_8b9ab71df3c6ba7f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_X_Position = StrConcat2(i_int_X_Position, Translate("")); // }} "" // {{{ 674 1 0 "79ae717b_d1e2_4a95_ad9f743468a6b7f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_X_Position = StrFillLeft(i_str_X_Position, Translate("0"), 5); // }} "" // {{{ 675 1 0 "9dd5796c_1a92_4386_8dc3a4dedb747178" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_XP = StrConcat4(str_XP, i_str_X_Position, Translate("&"), Translate("")); // }} "" // {{ 676 1 0 "ab5f3441_8277_43ea_99407f3ad7ada4fd" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_XP); // }} "" // {{ 677 1 0 "9567a089_f10e_43f4_b69e78b19a86cc26" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 678 1 0 "cead53e1_935f_41a1_91506082d70dcf93" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 679 1 0 "ffd2f938_f4ab_466b_a5586247894bfacd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_YP = Translate("yp"); // }} "" // {{ 680 1 0 "d527c771_c71c_46a9_af83979042451748" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalYValues;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 681 1 0 "7a1e3e29_00be_438b_b1f20cfefda640ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 682 1 0 "06b9f2a3_7877_4bd4_85666597e781e705" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YP = StrConcat2(str_YP, Translate(" ")); // }} "" // {{ 683 1 0 "7a1e3e29_00be_438b_b1f20cfefda640ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 684 1 0 "40199f71_d408_414e_82eb2f5a17a7a359" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_Y_Position=i_arr_Y_Position.GetAt(int_ChIndex-1); // }} "" // {{ 685 1 0 "16b4e33e_ac59_4058_85c89a1854aa0c73" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Position = flt_Y_Position * 10; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 686 1 0 "0aecfea7_56b8_4781_97ea1fb254c429ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Y_Position = MthCeiling(flt_Y_Position); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 687 1 0 "90a433ed_5c49_4306_9988ad763c19438e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Y_Position = MthFloor(flt_Y_Position); // }} "" // {{{ 688 1 0 "ef87d007_2126_4e81_a37d32c8d4045fe2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Y_Position = StrConcat2(int_Y_Position, Translate("")); // }} "" // {{{ 689 1 0 "0517e7cd_74d6_4a3c_b2e5226c79e5d7b0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Y_Position = StrFillLeft(str_Y_Position, Translate("0"), 4); // }} "" // {{{ 690 1 0 "ff22e472_a18c_4b01_a1df10a6bc96d4cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YP = StrConcat4(str_YP, str_Y_Position, Translate(""), Translate("")); // }} "" // {{ 691 1 0 "d527c771_c71c_46a9_af83979042451748" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 692 1 0 "46befb3c_8ab4_432b_afe08894217d8112" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_YP); // }} "" // {{ 693 1 0 "cead53e1_935f_41a1_91506082d70dcf93" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 694 1 0 "4ba00e7c_50ab_4b73_b80ae966ce36e61b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 695 1 0 "fbafb7f2_c25d_4e3f_b25df6a6244a6e47" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TH = Translate("th"); // }} "" // {{ 696 1 0 "46db4e08_f803_46e8_b3f7023cee38e8ec" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_SafeTravelHeight = flt_SafeTravelHeight * 10; // }} "" // {{{ 697 1 0 "d1b5ac71_b75d_4cbf_9737bea7ea524f7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_SafeTravelHeight = MthCeiling(flt_SafeTravelHeight); // }} "" // {{{ 698 1 0 "693f9035_20b4_407b_a631a56eb21dc33f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SafeTravelHeight = StrConcat2(int_SafeTravelHeight, Translate("")); // }} "" // {{{ 699 1 0 "6faadd81_8d7a_4c92_83d1e611880750a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SafeTravelHeight = StrFillLeft(str_SafeTravelHeight, Translate("0"), 4); // }} "" // {{{ 700 1 0 "68bf4ec0_a400_446a_8e211fefe98f350b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TH = StrConcat4(str_TH, str_SafeTravelHeight, Translate(""), Translate("")); // }} "" // {{ 701 1 0 "d3e29cfd_ba51_472f_9d7811fbfcfd8611" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_TH); // }} "" // {{ 702 1 0 "4ba00e7c_50ab_4b73_b80ae966ce36e61b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 703 1 0 "2de5d222_a0ec_4b6a_93c5c577e35c5c2e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 704 1 0 "2ab4db29_cdf2_45bf_8cb3160c44101b23" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ZP = Translate("zp"); // }} "" // {{ 705 1 0 "3ddd11c6_23c1_4d59_8687c5af379578f8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalZValues;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 706 1 0 "5256b625_2856_4ec2_a8794e03741483f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 707 1 0 "58122ce0_c738_4bd4_80d4cd608290ff0f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZP = StrConcat2(str_ZP, Translate(" ")); // }} "" // {{ 708 1 0 "5256b625_2856_4ec2_a8794e03741483f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 709 1 0 "b4fdcece_d6e7_452d_b1d98125f5c7bded" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_Z_Position=i_arr_Z_Position.GetAt(int_ChIndex-1); // }} "" // {{ 710 1 0 "14b2371b_ad8a_4691_8cf7865cb19d24da" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Position = flt_Z_Position * 10; // }} "" // {{{ 711 1 0 "33b5ee4c_2270_4b36_a36fc22efa53e856" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Z_Position = MthCeiling(flt_Z_Position); // }} "" // {{{ 712 1 0 "8bcfaf91_a50b_4cba_9e50235d79eba84f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Z_Position = StrConcat2(int_Z_Position, Translate("")); // }} "" // {{{ 713 1 0 "923ef198_851c_40a1_9d165e15f6012064" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Z_Position = StrFillLeft(str_Z_Position, Translate("0"), 4); // }} "" // {{{ 714 1 0 "70fce9c2_1e9b_4394_919326482e7b1729" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZP = StrConcat4(str_ZP, str_Z_Position, Translate(""), Translate("")); // }} "" // {{ 715 1 0 "3ddd11c6_23c1_4d59_8687c5af379578f8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 716 1 0 "d08694ed_ec48_4020_9103e972cb31d93d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_ZP); // }} "" // {{ 717 1 0 "2de5d222_a0ec_4b6a_93c5c577e35c5c2e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 718 1 0 "5049a41c_4f7b_41c8_a3a796ffa41af0ab" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalParameters=arr_Parameters.GetSize(); // }} "" // {{ 719 1 0 "6a7401ec_83d8_4602_b65b1efd850c9f50" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalParameters;) { i = i + 1; // }} "" // {{{ 720 1 0 "eb8f95e6_493b_426d_a2265777da33ffd6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FWParameter = StrConcat2(str_FWParameter, arr_Parameters.ElementAt( i -1)); // }} "" // {{ 721 1 0 "6a7401ec_83d8_4602_b65b1efd850c9f50" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" Trace("FW Command: ",str_FWCommand," : ",str_FWParameter); // {{ 723 1 0 "6b2d78e7_a928_476c_9b21484ee4ebdcd9" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("6b2d78e7_a928_476c_9b21484ee4ebdcd9"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 724 1 0 "8c1a2540_7cc1_4178_93f73390e264dded" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{{ 5 "Move_Channels_To_Absolute_Position" "End" } // }} "" // {{{ 5 "Get_Channel_Position" "Begin" function Get_Channel_Position( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable bol_ParameterFound; private variable strFunctionName; private variable strFunctionName_Cut; private variable str_FirmwareCMND; private variable bol_SimulationMode; private variable int_TotalChannels; private variable flt_Resolution_X; private variable flt_Resolution_Y; private variable int_Count; private variable flt_Resolution_Z; private variable flt_ReturnValue; private variable arr_Values[]; // {{ 5 "Get_Channel_Position" "InitLocals" o_X_Coord = 0; o_Y_Coord = 0; o_Z_Coord = 0; // }} "" // {{ 335 1 0 "697f51fd_cc8b_4e37_8ee2357935963f00" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 336 1 0 "6dc82ffd_44a0_4c92_8b73830f79f25fee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 338 1 0 "b89367d2_2621_46d1_84f16c2b2cf1baca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 339 1 0 "8628b83c_336a_4d1d_92187e1d5009001d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 340 1 0 "194a15ad_627e_43ac_a4b167dbce147b98" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 341 1 0 "e714c237_6d8d_4313_bc85381ab3841d10" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 342 1 0 "0d54c7eb_2f4d_4811_ab86c8d70ea96458" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 343 1 0 "a8595e49_fe36_4f26_998cbf1c440c4793" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 344 1 0 "697f51fd_cc8b_4e37_8ee2357935963f00" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 345 1 0 "50343e6a_8c14_402b_854c209092dd3c0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bol_SimulationMode = Util::GetSimulationMode(); // }} "" // {{{ 346 1 0 "babd1fda_466a_4d9a_8d73f11322b3b87e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{ 347 1 0 "42810f08_ccc8_4698_a4336b6d90068ed9" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 348 1 0 "dc1f2931_358d_47ef_ba7ff11fe10f7a5c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_Z = 0.1; // }} "" // {{ 349 1 0 "54ca21c1_cf47_443a_876b79f4f6e79ffa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_Y = 0.1; // }} "" // {{ 350 1 0 "1eb2c648_f863_466a_bbefa8b068e9368e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_X = 0.1; // }} "" // {{ 351 1 0 "08e736d1_1412_4aaa_aef30b7a88d336d8" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 352 1 0 "410a5e25_de98_4ab2_833a35f1a6d6b83b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("A1PMRZ"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 353 1 0 "e324bf7e_19fc_4198_951535c0dde27bf3" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("e324bf7e_19fc_4198_951535c0dde27bf3"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 354 1 0 "f4c895a8_cbce_404a_be2d9b371798e138" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{ 355 1 0 "3c8b90c4_55ba_405d_8c3cba93210ff265" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 356 1 0 "3dd6420d_f192_4264_a2db9da4d83103aa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate("rz"), flt_Resolution_Z, 4, int_TotalChannels, bol_ParameterFound, arr_Values); // }} "" // {{ 357 1 0 "c4eafc52_35d7_4893_97e1d3293058561c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 358 1 0 "5419bc17_e595_4ecb_aa606e2d85294cb8" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" o_Z_Coord=arr_Values.GetAt(i_int_CurrentChannel-1); // }} "" // {{ 359 1 0 "c4eafc52_35d7_4893_97e1d3293058561c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 360 1 0 "3c8b90c4_55ba_405d_8c3cba93210ff265" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 361 1 0 "209ae7df_a2f5_49a6_b01fa3d7dbf8fc26" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 362 1 0 "f71e037e_8d7a_47dc_904a8d97b3b23f7f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("A1PMRY"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 363 1 0 "210eaa2b_24e5_4af4_ba7c385ee3103d46" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("210eaa2b_24e5_4af4_ba7c385ee3103d46"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 364 1 0 "c31d6ce5_4951_4c4a_a5525e24c5e14f92" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{ 365 1 0 "aaf8e255_7aa0_4d96_8c0e7b48c5c46ba1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 366 1 0 "edd40619_0bc6_411a_ab6bded9f8550f50" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate("ry"), flt_Resolution_Y, 4, int_TotalChannels, bol_ParameterFound, arr_Values); // }} "" // {{ 367 1 0 "101d1567_e010_440c_af9191e463f7c789" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 368 1 0 "65bf856b_3fc0_437e_a6a3d3c15323a71d" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" o_Y_Coord=arr_Values.GetAt(i_int_CurrentChannel-1); // }} "" // {{ 369 1 0 "101d1567_e010_440c_af9191e463f7c789" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 370 1 0 "aaf8e255_7aa0_4d96_8c0e7b48c5c46ba1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 371 1 0 "d7ebd66b_8e73_49c3_822063886286fa92" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 372 1 0 "101c3872_e276_4ea2_b651a39f364e8dc3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("A1XMRX"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 373 1 0 "7250b726_7ba5_492f_bb45f15a4123bc70" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("7250b726_7ba5_492f_bb45f15a4123bc70"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 374 1 0 "a590eefb_35ca_41b3_810302e333422c82" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{ 375 1 0 "1a22df5e_4c06_4e6e_b5aed2bef583c481" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 376 1 0 "e5942f85_b650_4599_a3854076ef178258" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("rx"), flt_Resolution_X, 5, bol_ParameterFound, flt_ReturnValue); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 377 1 0 "48d47d6d_a47a_46c9_a64f49a0b9ef03f5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate("rx"), flt_Resolution_X, 5, 5, bol_ParameterFound, arr_Values); // }} "" // {{ 378 1 0 "628d50ca_5cde_4414_ac74ac6672c69edb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 379 1 0 "426856a4_6ef7_40c0_ac318819686f02de" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_X_Coord = flt_ReturnValue; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 380 1 0 "ef836613_a26d_4717_a4ebab4a55c96bfe" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" o_X_Coord=arr_Values.GetAt(1-1); // }} "" // {{ 381 1 0 "628d50ca_5cde_4414_ac74ac6672c69edb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 382 1 0 "1a22df5e_4c06_4e6e_b5aed2bef583c481" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(" Current X Position: ",o_X_Coord); Trace(" Current Y Position: ",o_Y_Coord); Trace(" Current Z Position: ",o_Z_Coord); // {{{ 5 "Get_Channel_Position" "End" } // }} "" // {{{ 5 "Reset_Search_Z" "Begin" function Reset_Search_Z( device & ML_STAR ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; // {{ 5 "Reset_Search_Z" "InitLocals" // }} "" // {{ 986 1 0 "2ba67953_cf21_430a_becb5b187ee31f75" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 987 1 0 "129c1702_7ff6_4fb9_a6ccb4ab207ed069" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 988 1 0 "fb249dca_76bf_41d8_ac57c6df79e2f49d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 990 1 0 "5542c641_50ef_40d6_aefcde36b4c2fe99" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 991 1 0 "51a7a0db_6514_460a_bcae3caba815ce3b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 992 1 0 "02cc285c_0854_4538_8f5941d84d3e77e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 993 1 0 "d563b758_51bb_4338_82f08e22d4c38408" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 994 1 0 "4036c4af_d5f2_466a_844e067f0147ae48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 995 1 0 "2ff391e7_205b_4b06_9d5a8e0e8571072d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 996 1 0 "129c1702_7ff6_4fb9_a6ccb4ab207ed069" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 997 1 0 "c657f0eb_8424_4e33_a3c8526437b41d79" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("c657f0eb_8424_4e33_a3c8526437b41d79"); // FirmwareCommand } // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 998 1 0 "d05c184e_e001_410b_8de00b7255736ca8" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("d05c184e_e001_410b_8de00b7255736ca8"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 999 1 0 "e87e1e76_01aa_4ace_b9be5942a362a9e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{{ 5 "Reset_Search_Z" "End" } // }} "" // {{{ 5 "Move_Channels_To_Absolute_Position_1mL" "Begin" function Move_Channels_To_Absolute_Position_1mL( device & ML_STAR, variable i_str_ChannelPattern, variable i_flt_MinimumZHeightAtBegining, variable & i_arr_X_Position[], variable & i_arr_Y_Position[], variable & i_arr_Z_Position[] ) void { // }} "" private variable int_SafeTravelHeight; private variable str_ReturnValue; private variable int_CutNum; private variable flt_SafeTravelHeight; private variable flt_X_Position; private variable str_Y_Position; private variable str_FWParameter; private variable int_Length; private variable str_TH; private variable i; private variable int_Y_Position; private variable strFunctionName; private variable str_ZP; private variable str_FWCommand; private variable flt_Y_Position; private variable str_YP; private variable int_TotalParameters; private variable str_Z_Position; private variable strFunctionName_Cut; private variable str_XP; private variable int_Z_Position; private variable str_TM; private variable flt_Z_Position; private variable int_TotalChannels; private variable str_X_Position; private variable int_TotalXValues; private variable int_Count; private variable str_ChValue; private variable int_TotalYValues; private variable int_X_Position; private variable int_ChValue; private variable int_TotalZValues; private variable int_ChIndex; private variable str_SafeTravelHeight; private variable int_ChPatternLength; private variable arr_Parameters[]; private variable arr_ChPattern[]; // {{ 5 "Move_Channels_To_Absolute_Position_1mL" "InitLocals" // }} "" // {{ 726 1 0 "dde884c5_6aa3_450e_87b6d10af154de85" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 727 1 0 "ebe56fb5_9d7d_4221_b8a95b8abe373a66" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 728 1 0 "b56daa7d_80f2_47df_bc35b753d7f1eb14" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 730 1 0 "4cefb903_8677_478f_be2845f9fd8a3239" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 731 1 0 "19c5108f_ba35_4cdb_983114dbe1a5ec21" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 732 1 0 "4f30661e_8684_4736_8061ec4730fd826e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 733 1 0 "8d41fb67_8b1c_408a_a1d53dc13965dc6e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 734 1 0 "8d9105cb_6976_4cd1_be3c809348d5df26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 735 1 0 "c787d268_c478_4932_a09413f819a35d7d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 736 1 0 "ebe56fb5_9d7d_4221_b8a95b8abe373a66" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 737 1 0 "d4c6dce0_ef3a_49f5_a5f92f44eceda343" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 738 1 0 "4ac66093_061c_4d07_a6173a52b8c740fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChannelPattern = StrConcat2(i_str_ChannelPattern, Translate("")); // }} "" // {{{ 739 1 0 "2ccc0a6c_1908_4374_a528cacde492d824" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{{ 740 1 0 "8d4c2ba6_01b3_4d69_99fa509d2613f5e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ChPatternLength = StrGetLength(i_str_ChannelPattern); // }} "" // {{ 741 1 0 "3c6279bd_b3d6_40ec_981bc31667054fd6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChPatternLength < int_TotalChannels) { // }} "" Trace("Channel Pattern: ",i_str_ChannelPattern); // {{{ 743 1 0 "ee0e8164_a3d5_4f39_b6a23c78dcba63f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Channel pattern is less than the total number of channels on the system!")); // }} "" // {{ 744 1 0 "3c6279bd_b3d6_40ec_981bc31667054fd6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 745 1 0 "c57b1aa4_0837_4882_a8f9627c35b72f45" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalXValues=i_arr_X_Position.GetSize(); // }} "" // {{ 746 1 0 "f2bbf66c_8e32_4406_8eeda47b7b2612e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalXValues < int_TotalChannels) { // }} "" // {{{ 747 1 0 "6cc10662_8298_4887_84af046f6e89cc61" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("X Values"), i_arr_X_Position); // }} "" // {{{ 748 1 0 "05aa072e_e312_44a3_990722f07490699f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("There are not enough values in the array for the X Positions")); // }} "" // {{ 749 1 0 "f2bbf66c_8e32_4406_8eeda47b7b2612e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 750 1 0 "2b57d1dd_cb9a_47f6_b37e883523ee55bb" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalYValues=i_arr_Y_Position.GetSize(); // }} "" // {{ 751 1 0 "9bd2ed4e_c870_4d2d_ba77f58514184882" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalYValues < int_TotalChannels) { // }} "" // {{{ 752 1 0 "098da980_36a6_4ac9_ac56c2ae0644e519" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Y Values"), i_arr_Y_Position); // }} "" // {{{ 753 1 0 "e754fd84_8cd3_480e_b2a91c1725519d47" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("There are not enough values in the array for the Y Positions")); // }} "" // {{ 754 1 0 "9bd2ed4e_c870_4d2d_ba77f58514184882" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 755 1 0 "a853a74f_13ad_4150_9395747006a0ee7c" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalZValues=i_arr_Z_Position.GetSize(); // }} "" // {{ 756 1 0 "5a084c42_d4e1_4d9e_90bb6037e4681215" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalZValues < int_TotalChannels) { // }} "" // {{{ 757 1 0 "9f01b6ce_58dd_4a3b_bab43608139df8fe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Z Values"), i_arr_Z_Position); // }} "" // {{{ 758 1 0 "0ca8fcde_6746_490b_bfd5229050aa2034" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("There are not enough values in the array for the Z Positions")); // }} "" // {{ 759 1 0 "5a084c42_d4e1_4d9e_90bb6037e4681215" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 760 1 0 "d4c6dce0_ef3a_49f5_a5f92f44eceda343" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 761 1 0 "580fc218_f5df_4c6c_bfc0fc59784e3a18" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_SafeTravelHeight = i_flt_MinimumZHeightAtBegining; // }} "" // {{ 762 1 0 "8317fe12_5047_4417_b143716cf38b5c56" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 763 1 0 "94438913_5789_4fca_b21fe0749ea79ee0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FWCommand = Translate("C0JM"); // }} "" // {{ 764 1 0 "af82730f_8f6d_41e2_a281f5747891059b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FWParameter = Translate(""); // }} "" // {{ 765 1 0 "c13f8049_e559_4590_8d32cdb027278d77" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Parameters.SetSize(0); // }} "" // {{ 766 1 0 "6a4ad6b7_b9c0_4ac0_96df6132459af199" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 767 1 0 "8dad4e48_ffa4_484c_985d47eb8e3b384f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChPattern.SetSize(0); // }} "" // {{ 768 1 0 "5866852a_6943_4dd8_b5bd2874a6b9e916" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 769 1 0 "2da7f99c_b1d0_4a98_9b6184c49919b67e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChValue = StrLeft(i_str_ChannelPattern, int_ChIndex); // }} "" // {{{ 770 1 0 "a2c28c5d_38bf_4bc8_8c30b09929e5fdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChValue = StrRight(str_ChValue, 1); // }} "" // {{{ 771 1 0 "c7a45740_fab7_4a98_97aa00f3b16ff49d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ChValue = StrIVal(str_ChValue); // }} "" // {{ 772 1 0 "015e72ea_60b7_4e91_aaf359cca621435c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.AddAsLast(int_ChValue); // }} "" // {{ 773 1 0 "5866852a_6943_4dd8_b5bd2874a6b9e916" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 774 1 0 "49c03c16_fb92_4501_99d98e33c2335740" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TM = Translate("tm"); // }} "" // {{ 775 1 0 "49da9750_1bbb_446c_9a5c7b9d21a12f70" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 776 1 0 "89c95929_305a_4e7f_92be12c1a90ab313" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 777 1 0 "47a1d963_9727_4156_a735c636a0a1711a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TM = StrConcat2(str_TM, Translate(" ")); // }} "" // {{ 778 1 0 "89c95929_305a_4e7f_92be12c1a90ab313" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 779 1 0 "80931cbe_03ad_4d3f_b660107253a08c47" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TM = StrConcat2(str_TM, arr_ChPattern.ElementAt( int_ChIndex -1)); // }} "" // {{ 780 1 0 "49da9750_1bbb_446c_9a5c7b9d21a12f70" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 781 1 0 "b4c5e895_9cf9_41e9_875342f8a0e88b08" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_TM); // }} "" // {{ 782 1 0 "6a4ad6b7_b9c0_4ac0_96df6132459af199" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 783 1 0 "3ebb4c39_cc7d_4c12_82fcd0e2ee320f11" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 784 1 0 "7742159f_4645_49b2_a5f4ab44e824652d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_XP = Translate("xp"); // }} "" // {{ 785 1 0 "ebce37dc_1f84_4668_a738a6701ede4af3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 786 1 0 "26cc0467_1520_4b8f_9f64c85c846f3a66" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 787 1 0 "66676e91_322f_490a_b7444661ee078770" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_XP = StrConcat2(str_XP, Translate(" ")); // }} "" // {{ 788 1 0 "26cc0467_1520_4b8f_9f64c85c846f3a66" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 789 1 0 "7a695800_a40e_4c52_a0637b9b1214e62f" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_X_Position=i_arr_X_Position.GetAt(int_ChIndex-1); // }} "" // {{ 790 1 0 "8f5bce01_bd80_4d8f_ba4521be3b85a940" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_X_Position = flt_X_Position * 10; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 791 1 0 "7c85534d_cadf_4f91_bd2bf1fc9c3bba3e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_X_Position = MthCeiling(flt_X_Position); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 792 1 0 "31128c36_0b61_4808_95d15d0f6acb8de6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_X_Position = MthFloor(flt_X_Position); // }} "" // {{{ 793 1 0 "4010980c_2e18_4155_b411ed489131faf4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_X_Position = StrConcat2(int_X_Position, Translate("")); // }} "" // {{{ 794 1 0 "58bc1bd9_259d_4673_ba226e0f44a870f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_X_Position = StrFillLeft(str_X_Position, Translate("0"), 5); // }} "" // {{{ 795 1 0 "af0db8a6_a59d_4e17_9bb183f8fef3f851" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_XP = StrConcat4(str_XP, str_X_Position, Translate(""), Translate("")); // }} "" // {{ 796 1 0 "ebce37dc_1f84_4668_a738a6701ede4af3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 797 1 0 "2002c66e_bf37_4e20_b5b8bd70619c79fe" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_XP); // }} "" // {{ 798 1 0 "3ebb4c39_cc7d_4c12_82fcd0e2ee320f11" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 799 1 0 "ca5f7062_80d6_40c9_873c342c9c038383" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 800 1 0 "ba6d31ba_0894_41ab_a021b7bdf28ea44b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_YP = Translate("yp"); // }} "" // {{ 801 1 0 "9e124154_b674_4531_b26b30aa66a6c437" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 802 1 0 "c0d6907a_4311_42f9_868b3b21cb32ceb0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 803 1 0 "e9109eb7_5d80_45d3_b1d21b6a572b219e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YP = StrConcat2(str_YP, Translate(" ")); // }} "" // {{ 804 1 0 "c0d6907a_4311_42f9_868b3b21cb32ceb0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 805 1 0 "53cacb7e_71f9_4283_9feae8f83f7bd87e" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_Y_Position=i_arr_Y_Position.GetAt(int_ChIndex-1); // }} "" // {{ 806 1 0 "33d7519c_42d3_40cc_94b6a479e50ace71" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Position = flt_Y_Position * 10; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 807 1 0 "1937dced_42c7_4773_976e8dc2cb65e811" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Y_Position = MthCeiling(flt_Y_Position); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 808 1 0 "34e811ce_ba0a_45bb_8e9277f893225e98" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Y_Position = MthFloor(flt_Y_Position); // }} "" // {{{ 809 1 0 "5cfb9661_83a4_4731_8041b6b008e8fa10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Y_Position = StrConcat2(int_Y_Position, Translate("")); // }} "" // {{{ 810 1 0 "46b3ba3d_2c7f_43db_afc9d307958b57cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Y_Position = StrFillLeft(str_Y_Position, Translate("0"), 4); // }} "" // {{{ 811 1 0 "70423494_409f_425f_87f70d9944a5636b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YP = StrConcat4(str_YP, str_Y_Position, Translate(""), Translate("")); // }} "" // {{ 812 1 0 "9e124154_b674_4531_b26b30aa66a6c437" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 813 1 0 "a25abe98_0ce5_4848_a841b86512a722e4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_YP); // }} "" // {{ 814 1 0 "ca5f7062_80d6_40c9_873c342c9c038383" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 815 1 0 "16a7103c_d7eb_4056_a70b5861311859fe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 816 1 0 "6e7632cf_e433_442d_94cf912b7d71d72d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TH = Translate("th"); // }} "" // {{ 817 1 0 "f0d12bd4_7c9a_4bdc_84b696913ef34a26" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_SafeTravelHeight = flt_SafeTravelHeight * 10; // }} "" // {{{ 818 1 0 "6b22e321_7ad7_45e3_9d42a95bb3d16caf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_SafeTravelHeight = MthCeiling(flt_SafeTravelHeight); // }} "" // {{{ 819 1 0 "07e90b9a_a0c1_4b7c_84b1a9bb2ae78993" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SafeTravelHeight = StrConcat2(int_SafeTravelHeight, Translate("")); // }} "" // {{{ 820 1 0 "20cee882_54aa_45e7_9e47adf94f0fb2a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SafeTravelHeight = StrFillLeft(str_SafeTravelHeight, Translate("0"), 4); // }} "" // {{{ 821 1 0 "c32ab1e1_cb46_4294_80dc73386beed683" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TH = StrConcat4(str_TH, str_SafeTravelHeight, Translate(""), Translate("")); // }} "" // {{ 822 1 0 "c0610e07_ef7a_44d8_b3e51fac2bcf7a1d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_TH); // }} "" // {{ 823 1 0 "16a7103c_d7eb_4056_a70b5861311859fe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 824 1 0 "40f87651_5875_477d_899eec89a60a79d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 825 1 0 "4eeb323e_b023_4da4_ade3c02ca3cc17e7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ZP = Translate("zp"); // }} "" // {{ 826 1 0 "91f451ab_6da8_475c_a691955e760a3228" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 827 1 0 "e1581606_ce8e_4977_9b843e79d237f378" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 828 1 0 "099ade8a_e784_419c_86cc880b0b3ebe44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZP = StrConcat2(str_ZP, Translate(" ")); // }} "" // {{ 829 1 0 "e1581606_ce8e_4977_9b843e79d237f378" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 830 1 0 "566d6745_b21b_4efe_b214b332fca8b017" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_Z_Position=i_arr_Z_Position.GetAt(int_ChIndex-1); // }} "" // {{ 831 1 0 "46db7800_d664_4555_969195c85d3e81b9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Position = flt_Z_Position * 10; // }} "" // {{{ 832 1 0 "c48f7223_03a4_4cfb_baa66b3e0efd2385" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Z_Position = MthCeiling(flt_Z_Position); // }} "" // {{{ 833 1 0 "74677797_6348_447a_8ef558bb0ccb6f7f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Z_Position = StrConcat2(int_Z_Position, Translate("")); // }} "" // {{{ 834 1 0 "62653a21_e047_4eb3_aab0bbbb33980946" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Z_Position = StrFillLeft(str_Z_Position, Translate("0"), 4); // }} "" // {{{ 835 1 0 "18bb4db2_bef8_4fc4_984dc44767ac9cc8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZP = StrConcat4(str_ZP, str_Z_Position, Translate(""), Translate("")); // }} "" // {{ 836 1 0 "91f451ab_6da8_475c_a691955e760a3228" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 837 1 0 "7a53768c_b21d_4a0b_978e245861c13a32" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_ZP); // }} "" // {{ 838 1 0 "40f87651_5875_477d_899eec89a60a79d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 839 1 0 "ec3d3329_2668_43c2_b9f555e64a54603b" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalParameters=arr_Parameters.GetSize(); // }} "" // {{ 840 1 0 "edb114ef_5cc5_43aa_9176c6694551f1b1" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalParameters;) { i = i + 1; // }} "" // {{{ 841 1 0 "58a240b0_bda9_4de2_b7f4a880d25c35ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FWParameter = StrConcat2(str_FWParameter, arr_Parameters.ElementAt( i -1)); // }} "" // {{ 842 1 0 "edb114ef_5cc5_43aa_9176c6694551f1b1" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" Trace("FW Command: ",str_FWCommand," : ",str_FWParameter); // {{ 844 1 0 "eeffe2e6_18b4_4fb4_9f9026a16cbea805" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("eeffe2e6_18b4_4fb4_9f9026a16cbea805"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 845 1 0 "b64fbf24_e988_48c5_ad2a16a7d011bd6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{{ 5 "Move_Channels_To_Absolute_Position_1mL" "End" } // }} "" // {{{ 5 "Move_Channels_To_Absolute_Position_5mL" "Begin" function Move_Channels_To_Absolute_Position_5mL( device & ML_STAR, variable i_str_ChannelPattern, variable i_flt_MinimumZHeightAtBegining, variable & i_arr_X_Position[], variable & i_arr_Y_Position[], variable & i_arr_Z_Position[] ) void { // }} "" private variable int_SafeTravelHeight; private variable str_ReturnValue; private variable int_CutNum; private variable str_Y_Position; private variable flt_SafeTravelHeight; private variable flt_X_Position; private variable str_FWParameter; private variable int_Length; private variable str_TH; private variable i; private variable int_Y_Position; private variable strFunctionName; private variable str_ZP; private variable str_FWCommand; private variable int_TotalParameters; private variable str_Z_Position; private variable str_YP; private variable flt_Y_Position; private variable strFunctionName_Cut; private variable str_XP; private variable int_Z_Position; private variable str_TM; private variable flt_Z_Position; private variable int_TotalChannels; private variable int_TotalXValues; private variable int_Count; private variable str_X_Position; private variable int_TotalYValues; private variable str_ChValue; private variable int_X_Position; private variable int_TotalZValues; private variable int_ChValue; private variable str_SafeTravelHeight; private variable int_ChPatternLength; private variable int_ChIndex; private variable arr_Parameters[]; private variable arr_ChPattern[]; // {{ 5 "Move_Channels_To_Absolute_Position_5mL" "InitLocals" // }} "" // {{ 847 1 0 "788a84c9_62dc_4792_98bbf8c5a8280f95" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 848 1 0 "bfc59f8e_7562_4c31_94a437abd7f2c22d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 849 1 0 "5efb7e4e_1c55_45e3_ba49240939927f8e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 851 1 0 "c8cc2b50_b015_4374_824af32eeae0dc1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 852 1 0 "0ea692e4_a44b_4d73_a3013605412475f7" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 853 1 0 "59730736_3179_473f_865731175540e786" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 854 1 0 "5be44454_c83f_44de_b6b04a6e4744d0c9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 855 1 0 "fb1aeba0_bc91_4016_b29c39d72bf8aaf1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 856 1 0 "c9de3195_7510_48b3_bc7ef84551cf82be" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 857 1 0 "bfc59f8e_7562_4c31_94a437abd7f2c22d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 858 1 0 "0cd8b871_d6ed_41e4_bdeea0839052a341" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 859 1 0 "30be081c_1766_4432_b12bfbb309ef3bc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChannelPattern = StrConcat2(i_str_ChannelPattern, Translate("")); // }} "" // {{{ 860 1 0 "8801fb5b_4513_4831_a83742b54cc6760b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 43); // }} "" // {{{ 861 1 0 "13c3e35d_513f_4e1e_a037745c6c3b19a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ChPatternLength = StrGetLength(i_str_ChannelPattern); // }} "" // {{ 862 1 0 "736f4a0a_b567_4228_99719775b20237f1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChPatternLength < int_TotalChannels) { // }} "" Trace("Channel Pattern: ",i_str_ChannelPattern); // {{{ 864 1 0 "fdfe8b4b_3b60_4fc8_9865304a6d1b5bb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Channel pattern is less than the total number of channels on the system!")); // }} "" // {{ 865 1 0 "736f4a0a_b567_4228_99719775b20237f1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 866 1 0 "7d27d5c7_a65b_4793_b9a46f6db03840c5" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalXValues=i_arr_X_Position.GetSize(); // }} "" // {{ 867 1 0 "6098fe30_660f_4756_b1d6b3f26069b6c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalXValues < int_TotalChannels) { // }} "" // {{{ 868 1 0 "081c74f7_1e8c_4331_a42ebfadf47ca62c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("X Values"), i_arr_X_Position); // }} "" // {{{ 869 1 0 "d7230343_be19_4415_9b2efeffa3b69d0f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("There are not enough values in the array for the X Positions")); // }} "" // {{ 870 1 0 "6098fe30_660f_4756_b1d6b3f26069b6c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 871 1 0 "330f83af_9950_4adf_8bb524c71f73764a" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalYValues=i_arr_Y_Position.GetSize(); // }} "" // {{ 872 1 0 "c2973fc5_137c_4168_8ad098e2cbf34073" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalYValues < int_TotalChannels) { // }} "" // {{{ 873 1 0 "2088155b_5330_4987_9aed2f1ce1666f84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Y Values"), i_arr_Y_Position); // }} "" // {{{ 874 1 0 "e471f1bb_7a35_45c5_9a41db7f8d0e8986" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("There are not enough values in the array for the Y Positions")); // }} "" // {{ 875 1 0 "c2973fc5_137c_4168_8ad098e2cbf34073" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 876 1 0 "7ff10ba5_746b_4aa1_82987a72718969bd" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalZValues=i_arr_Z_Position.GetSize(); // }} "" // {{ 877 1 0 "d18d6c20_2775_48b5_92399f0c03b97968" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalZValues < int_TotalChannels) { // }} "" // {{{ 878 1 0 "74537f21_83d6_436e_bc3c3ea7719f7fc8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Z Values"), i_arr_Z_Position); // }} "" // {{{ 879 1 0 "5ea80aba_1c13_46b3_a43b044ca52e18a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("There are not enough values in the array for the Z Positions")); // }} "" // {{ 880 1 0 "d18d6c20_2775_48b5_92399f0c03b97968" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 881 1 0 "0cd8b871_d6ed_41e4_bdeea0839052a341" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 882 1 0 "5fee1b91_6c24_4b04_9b8a29939ffedbdb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_SafeTravelHeight = i_flt_MinimumZHeightAtBegining; // }} "" // {{ 883 1 0 "db3faaa0_cf1b_483a_aa305ad33bbe6c01" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 884 1 0 "7efe6794_7ab8_4438_aec584c9df82ff15" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FWCommand = Translate("C0LL"); // }} "" // {{ 885 1 0 "6f8b3c9b_6d6e_4f32_8f051aa0ab9d0723" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FWParameter = Translate(""); // }} "" // {{ 886 1 0 "2f789ce2_a3b5_48cc_a3addcbda3a8d19a" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Parameters.SetSize(0); // }} "" // {{ 887 1 0 "141cc3b9_3c16_4121_b856db30baa31c18" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 888 1 0 "7528dc18_5299_4565_86f61ade13e6a51f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChPattern.SetSize(0); // }} "" // {{ 889 1 0 "1fe64d18_dff9_4730_be7dd2242565234c" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 890 1 0 "295ace19_cbc0_4a45_b4c6f2fc5bbb20f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChValue = StrLeft(i_str_ChannelPattern, int_ChIndex); // }} "" // {{{ 891 1 0 "faba3183_73f3_4dbd_b8eb3970565ac48e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChValue = StrRight(str_ChValue, 1); // }} "" // {{{ 892 1 0 "5dd047ec_6738_40a9_a0d4428fd82a0f3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ChValue = StrIVal(str_ChValue); // }} "" // {{ 893 1 0 "f4792c82_cb88_48c5_a313d5293f8de311" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.AddAsLast(int_ChValue); // }} "" // {{ 894 1 0 "1fe64d18_dff9_4730_be7dd2242565234c" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 895 1 0 "a6a7ea4b_4392_408c_931670c6be55223e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TM = Translate("tr"); // }} "" // {{ 896 1 0 "67eddedd_558b_4372_87881b1e62c8ea15" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 897 1 0 "164c6818_e0d4_4009_941883cd6a1e3398" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 898 1 0 "9d151c41_a543_4803_a1311b5a27f1face" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TM = StrConcat2(str_TM, Translate(" ")); // }} "" // {{ 899 1 0 "164c6818_e0d4_4009_941883cd6a1e3398" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 900 1 0 "d7494bec_41ff_4134_a5e0dbf2ca4f3e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TM = StrConcat2(str_TM, arr_ChPattern.ElementAt( int_ChIndex -1)); // }} "" // {{ 901 1 0 "67eddedd_558b_4372_87881b1e62c8ea15" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 902 1 0 "f4f12525_9901_4138_8aef7c5b9484a85a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_TM); // }} "" // {{ 903 1 0 "141cc3b9_3c16_4121_b856db30baa31c18" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 904 1 0 "5eedd538_b0ba_4d70_9db1cd8e618fbaaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 905 1 0 "71d04987_1496_460e_806e187643bc2f99" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_XP = Translate("xb"); // }} "" // {{ 906 1 0 "085c87a1_b35e_4938_a57096aebe112690" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 907 1 0 "b0371a3e_82ad_46d4_9836405495ba240e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 908 1 0 "691baf0d_611c_4031_97560b896b15f2ca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_XP = StrConcat2(str_XP, Translate(" ")); // }} "" // {{ 909 1 0 "b0371a3e_82ad_46d4_9836405495ba240e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 910 1 0 "bc908856_bba1_4254_a6430066f9628c47" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_X_Position=i_arr_X_Position.GetAt(int_ChIndex-1); // }} "" // {{ 911 1 0 "2506449a_c352_4165_83a97412545310dc" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_X_Position = flt_X_Position * 10; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 912 1 0 "4bc84289_459c_4bcf_9a9e18ceb7ee8e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_X_Position = MthCeiling(flt_X_Position); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 913 1 0 "e7b0fb7a_deeb_48d5_ac53e6600ba76f07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_X_Position = MthFloor(flt_X_Position); // }} "" // {{{ 914 1 0 "d2bfa995_2990_405c_ae10245afc5a6dc2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_X_Position = StrConcat2(int_X_Position, Translate("")); // }} "" // {{{ 915 1 0 "135fb249_77c1_40ef_905f7b4fcabc65ca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_X_Position = StrFillLeft(str_X_Position, Translate("0"), 5); // }} "" // {{{ 916 1 0 "d70115d5_bd5d_4bb5_b5311e29ca0f1090" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_XP = StrConcat4(str_XP, str_X_Position, Translate(""), Translate("")); // }} "" // {{ 917 1 0 "085c87a1_b35e_4938_a57096aebe112690" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 918 1 0 "72d714c9_4369_4888_86c3951e8fbe5686" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_XP); // }} "" // {{ 919 1 0 "5eedd538_b0ba_4d70_9db1cd8e618fbaaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 920 1 0 "445b4a70_8014_4fab_9e8df871cb2f997f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 921 1 0 "05cfbfdf_1451_480a_894d4e4cd18b017c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_YP = Translate("yf"); // }} "" // {{ 922 1 0 "c1dd65a3_40c3_4151_8d86c328ec254972" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 923 1 0 "b5ce6c13_b6b6_48bb_a6655c8d96d9beb7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 924 1 0 "4ac55f29_86ff_44bd_9d9d3ff235a02fb9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YP = StrConcat2(str_YP, Translate(" ")); // }} "" // {{ 925 1 0 "b5ce6c13_b6b6_48bb_a6655c8d96d9beb7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 926 1 0 "308fc17b_914a_4f4e_904824521b1c9b40" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_Y_Position=i_arr_Y_Position.GetAt(int_ChIndex-1); // }} "" // {{ 927 1 0 "26473385_6fcd_4082_b92e399da412ce7d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Y_Position = flt_Y_Position * 10; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 928 1 0 "7019269f_5312_47c0_91247a5f09a6c147" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Y_Position = MthCeiling(flt_Y_Position); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 929 1 0 "1f95e947_93a4_4134_831454de16da9aaa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Y_Position = MthFloor(flt_Y_Position); // }} "" // {{{ 930 1 0 "21b2cc90_4152_4c8a_948e839fe95b0c23" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Y_Position = StrConcat2(int_Y_Position, Translate("")); // }} "" // {{{ 931 1 0 "59af3cb8_e1d6_4ef3_883bec679bfd2d09" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Y_Position = StrFillLeft(str_Y_Position, Translate("0"), 4); // }} "" // {{{ 932 1 0 "79acaa44_5e32_4180_a1c96c53dcd1a590" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_YP = StrConcat4(str_YP, str_Y_Position, Translate(""), Translate("")); // }} "" // {{ 933 1 0 "c1dd65a3_40c3_4151_8d86c328ec254972" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 934 1 0 "c6131584_5a3f_43be_b90fa939c304c82a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_YP); // }} "" // {{ 935 1 0 "445b4a70_8014_4fab_9e8df871cb2f997f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 936 1 0 "2a621f49_078d_40c6_a8e5f3942052bb4b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 937 1 0 "b5f990a5_4872_48ff_bbdf79e97708b94e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TH = Translate("th"); // }} "" // {{ 938 1 0 "daea6efa_a685_48da_96476f10f2503dc1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_SafeTravelHeight = flt_SafeTravelHeight * 10; // }} "" // {{{ 939 1 0 "e4bd3b39_414e_4aff_aedcf2241ac41ec9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_SafeTravelHeight = MthCeiling(flt_SafeTravelHeight); // }} "" // {{{ 940 1 0 "7b9864bf_1a03_4212_bb3dbcba42910616" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SafeTravelHeight = StrConcat2(int_SafeTravelHeight, Translate("")); // }} "" // {{{ 941 1 0 "b559d7d1_6372_4b70_9ceaf550da7ce273" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SafeTravelHeight = StrFillLeft(str_SafeTravelHeight, Translate("0"), 4); // }} "" // {{{ 942 1 0 "b053b8e5_522c_4416_8f47a5e08c3a6bc5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TH = StrConcat4(str_TH, str_SafeTravelHeight, Translate(""), Translate("")); // }} "" // {{ 943 1 0 "236984db_57bf_4093_8010a9ee4701a7d2" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_TH); // }} "" // {{ 944 1 0 "2a621f49_078d_40c6_a8e5f3942052bb4b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 945 1 0 "a305457d_f45c_479c_91debe97563ab049" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 946 1 0 "b64f05e4_6aa6_43a1_b8eb0f474959669c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ZP = Translate("pz"); // }} "" // {{ 947 1 0 "f7023814_20dc_4c64_a7c857481039e4d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 948 1 0 "38bf3a90_142a_4f1d_8ae371379017fe97" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex > 1) { // }} "" // {{{ 949 1 0 "36bee97a_5741_4d0d_959e4fa1aab2d64f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZP = StrConcat2(str_ZP, Translate(" ")); // }} "" // {{ 950 1 0 "38bf3a90_142a_4f1d_8ae371379017fe97" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 951 1 0 "9ba133a3_a9a9_482e_88fd492f8e2ab338" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_Z_Position=i_arr_Z_Position.GetAt(int_ChIndex-1); // }} "" // {{ 952 1 0 "60706e6f_e5d4_4d9c_a559e292e5596c1d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Z_Position = flt_Z_Position * 10; // }} "" // {{{ 953 1 0 "0f4f37b5_4536_4b55_8b10796e2d6f6f71" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Z_Position = MthCeiling(flt_Z_Position); // }} "" // {{{ 954 1 0 "5b7a584d_7143_42d3_9bafebae2af371ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Z_Position = StrConcat2(int_Z_Position, Translate("")); // }} "" // {{{ 955 1 0 "6a8ce2e6_9620_4fdd_9c82816a5ccd9257" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Z_Position = StrFillLeft(str_Z_Position, Translate("0"), 4); // }} "" // {{{ 956 1 0 "65eb776b_f57e_49fc_af9298c15635489f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZP = StrConcat4(str_ZP, str_Z_Position, Translate(""), Translate("")); // }} "" // {{ 957 1 0 "f7023814_20dc_4c64_a7c857481039e4d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 958 1 0 "c54a8d25_a774_4ed1_88454fa57f6a4a16" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Parameters.AddAsLast(str_ZP); // }} "" // {{ 959 1 0 "a305457d_f45c_479c_91debe97563ab049" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 960 1 0 "d1958b62_b532_41b4_ac2748ad47d606b7" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalParameters=arr_Parameters.GetSize(); // }} "" // {{ 961 1 0 "1ff5ed47_4a3e_4965_af143118b8947b39" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalParameters;) { i = i + 1; // }} "" // {{{ 962 1 0 "3d3b7067_b251_44ac_bc68fa5e99918c36" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FWParameter = StrConcat2(str_FWParameter, arr_Parameters.ElementAt( i -1)); // }} "" // {{ 963 1 0 "1ff5ed47_4a3e_4965_af143118b8947b39" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" Trace("FW Command: ",str_FWCommand," : ",str_FWParameter); // {{ 965 1 0 "2783da43_7cf0_40bd_aa3a8867292aeb42" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("2783da43_7cf0_40bd_aa3a8867292aeb42"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 966 1 0 "e4ffeee8_6468_467d_a8bd04cb69d2ebf2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{{ 5 "Move_Channels_To_Absolute_Position_5mL" "End" } // }} "" // {{{ 5 "InitializeDispenseDrive_1mL" "Begin" function InitializeDispenseDrive_1mL( device & ML_STAR, variable i_int_CurrentChannel ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable str_Firmware; // {{ 5 "InitializeDispenseDrive_1mL" "InitLocals" // }} "" // {{ 584 1 0 "f9a7889f_785d_49db_80d946245c4fc5c3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 585 1 0 "4da2964b_e02c_45cc_be6d294607557ad3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 587 1 0 "f5d2fd4e_9cdd_4b12_92d3afa3b8674ea9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 588 1 0 "97eb9592_5d53_403e_87fff7dc2b1a1172" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 589 1 0 "bd426cd8_58c7_446d_82a41e472ef6aff1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 590 1 0 "c9b1ad26_4f78_4c4c_8764da8f1d7f2a62" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 591 1 0 "ce2aecb7_674d_4804_9c858281fa1a3422" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 592 1 0 "508dc682_6cb7_455c_8ad4199fdf24eb3d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 593 1 0 "f9a7889f_785d_49db_80d946245c4fc5c3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 594 1 0 "be67db63_38c5_4220_b86290e89c723756" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::GetChannelValue(i_int_CurrentChannel, i_int_CurrentChannel); // }} "" // {{ 595 1 0 "cafc317d_6f9d_4cb1_9dee1e68faea636f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 596 1 0 "868aedf0_aa83_47f7_96578d18005bf150" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Firmware = StrConcat4(Translate("A1P"), i_int_CurrentChannel, Translate("DI"), Translate("")); // }} "" // {{ 597 1 0 "d5d4ced4_97d6_456d_8467256330e38844" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("d5d4ced4_97d6_456d_8467256330e38844"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 598 1 0 "c40df688_5b38_4363_99cf7a7a2dd7887a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{{ 5 "InitializeDispenseDrive_1mL" "End" } // }} "" // {{{ 5 "InitializeDispenseDrive_5mL" "Begin" function InitializeDispenseDrive_5mL( device & ML_STAR, variable i_int_CurrentChannel ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable str_Firmware; // {{ 5 "InitializeDispenseDrive_5mL" "InitLocals" // }} "" // {{ 600 1 0 "47ed5c20_7923_45a1_ad750a7ba39d08b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 601 1 0 "e49fef9d_7493_4c23_964dea87b5b2af4f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 603 1 0 "0aae2e46_ebb0_48ab_81ae508103a908ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 604 1 0 "6ff09b66_565b_4312_8eb5260e6e1441e3" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 605 1 0 "6f5da4b0_bf52_4695_b38fd3a2f0d025fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 606 1 0 "28abdaf7_ce7b_4b79_808baf70e1aeabcd" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 607 1 0 "76d23fc9_3469_4b55_ad9abe340949e2f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 608 1 0 "c2b4c4a4_e01a_4ab5_872b1984bca7f4b6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 609 1 0 "47ed5c20_7923_45a1_ad750a7ba39d08b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 610 1 0 "6247e00e_21c5_4776_855eb1a091b41e28" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::GetChannelValue(i_int_CurrentChannel, i_int_CurrentChannel); // }} "" // {{ 611 1 0 "93d01cd9_d00f_43b4_8e97cfb8ac570ec7" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 612 1 0 "d089e556_cd64_40ab_a92a11eef5194cb6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Firmware = StrConcat4(Translate("A1L"), i_int_CurrentChannel, Translate("DI"), Translate("")); // }} "" // {{ 613 1 0 "e51458cc_6f8e_4a9f_b2470540cf3430f9" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("e51458cc_6f8e_4a9f_b2470540cf3430f9"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 614 1 0 "04c7bbe1_8d73_4f54_9d8440db0504bba3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{{ 5 "InitializeDispenseDrive_5mL" "End" } // }} "" // {{{ 5 "Get_Channel_Position_5mL" "Begin" function Get_Channel_Position_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_X_Coord, variable & o_Y_Coord, variable & o_Z_Coord ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable bol_ParameterFound; private variable strFunctionName; private variable strFunctionName_Cut; private variable str_FirmwareCMND; private variable bol_SimulationMode; private variable flt_Resolution_X; private variable int_TotalChannels; private variable flt_Resolution_Y; private variable int_Count; private variable flt_Resolution_Z; private variable flt_ReturnValue; private variable arr_Values[]; // {{ 5 "Get_Channel_Position_5mL" "InitLocals" o_X_Coord = 0; o_Y_Coord = 0; o_Z_Coord = 0; // }} "" // {{ 385 1 0 "ffaa00d3_0f8e_4301_ac2ea5d8e7d5b9d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 386 1 0 "d48828a7_1133_43c5_a35f2bc7e0547ec7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 388 1 0 "e292094a_cdf9_4143_bc793656bbb49925" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 389 1 0 "fef97844_2116_43af_85d4563955a1d600" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 390 1 0 "efebd71d_5f2e_455c_84c0afafaa2bac93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 391 1 0 "6c32801e_6b37_4412_8c268dfeaaecfc7f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 392 1 0 "1cb4bfe9_4d8c_46cd_b8363a7e48648e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 393 1 0 "6718fe98_72cd_48b3_8cad8e7b17444c16" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 394 1 0 "ffaa00d3_0f8e_4301_ac2ea5d8e7d5b9d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 395 1 0 "b6f8e5e5_93ab_4e4a_8e456c4bf58a96e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bol_SimulationMode = Util::GetSimulationMode(); // }} "" // {{{ 396 1 0 "8ab0186c_669c_46d7_9541e1dcb22bf537" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{ 397 1 0 "7222e0b8_a3b9_430c_a86417e0cb81843f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 398 1 0 "5a159ff1_02e0_4f1b_a30c3a791c00ed25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_Z = 0.1; // }} "" // {{ 399 1 0 "0f6223a0_ebb9_4513_90d07b82d1b0f398" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_Y = 0.1; // }} "" // {{ 400 1 0 "68cb8641_8eb7_44f3_918325871118424b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution_X = 0.1; // }} "" // {{ 401 1 0 "96bbb9aa_1836_45e4_a27e4d7b5cf53689" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 402 1 0 "14026989_63be_4dac_af79c6273d762ed7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("A1LMRZ"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 403 1 0 "0d3dec41_c196_43f0_a235ef54f4debc8c" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("0d3dec41_c196_43f0_a235ef54f4debc8c"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 404 1 0 "7848ae71_60d2_46f5_b777045ee44e5b84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{ 405 1 0 "1d099b2f_4384_4d5a_8182b36c421b4590" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 406 1 0 "73e3a8df_05da_4e5f_9a15e91bd22e53d1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate("rz"), flt_Resolution_Z, 4, int_TotalChannels, bol_ParameterFound, arr_Values); // }} "" // {{ 407 1 0 "627d4dab_ed64_4c3b_b522289386242039" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 408 1 0 "c027f9dd_1a3c_4f3b_ba16f157a319499b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" o_Z_Coord=arr_Values.GetAt(i_int_CurrentChannel-1); // }} "" // {{ 409 1 0 "627d4dab_ed64_4c3b_b522289386242039" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 410 1 0 "1d099b2f_4384_4d5a_8182b36c421b4590" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 411 1 0 "43291a22_65ed_4169_a03fb2e1a9b4f711" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 412 1 0 "cb6ea9dd_be54_4768_b42725c6435bac5d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("A1LMRY"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 413 1 0 "77fb92c1_4e99_48a0_91384e37cd31c76c" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("77fb92c1_4e99_48a0_91384e37cd31c76c"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 414 1 0 "57c4c19c_f8ec_440c_9e0f92d91fe978a3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{ 415 1 0 "572b5cab_8b20_44ff_8e44ff139f641967" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 416 1 0 "7c29e40b_e5c3_4644_a718865993a73455" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate("ry"), flt_Resolution_Y, 4, int_TotalChannels, bol_ParameterFound, arr_Values); // }} "" // {{ 417 1 0 "c81dee5c_9bb7_497b_82bef1e9b26ac0a4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 418 1 0 "b3076f7d_7e51_4975_b24aca5603350486" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" o_Y_Coord=arr_Values.GetAt(i_int_CurrentChannel-1); // }} "" // {{ 419 1 0 "c81dee5c_9bb7_497b_82bef1e9b26ac0a4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 420 1 0 "572b5cab_8b20_44ff_8e44ff139f641967" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 421 1 0 "607cf504_0425_419a_88aa77ca35811eb1" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 422 1 0 "58c37c1f_0705_49dc_92f8c2be04af2ae6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("A1XMRX"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 423 1 0 "b947ca24_9670_4aaa_b0fb91d3db128f49" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("b947ca24_9670_4aaa_b0fb91d3db128f49"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 424 1 0 "25dcaec0_dbdc_45c3_84f4a447927e3072" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 1); // }} "" // {{ 425 1 0 "71938169_7825_4783_a65b4ccfa8c7e358" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 426 1 0 "8f46efb7_8818_4266_ad658418a922cc9c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("rx"), flt_Resolution_X, 5, bol_ParameterFound, flt_ReturnValue); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 427 1 0 "e6ccfed4_ec75_4f1b_b901b58a30d6ba58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate("rx"), flt_Resolution_X, 5, 5, bol_ParameterFound, arr_Values); // }} "" // {{ 428 1 0 "c2199846_b8f0_459b_8750f8df127e21e0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 429 1 0 "ba05d325_d2a3_40ec_98b8f30652940b9b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_X_Coord = flt_ReturnValue; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 430 1 0 "3069a30f_3df0_4589_9776e675b27f4b24" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" o_X_Coord=arr_Values.GetAt(1-1); // }} "" // {{ 431 1 0 "c2199846_b8f0_459b_8750f8df127e21e0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 432 1 0 "71938169_7825_4783_a65b4ccfa8c7e358" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(" Current X Position: ",o_X_Coord); Trace(" Current Y Position: ",o_Y_Coord); Trace(" Current Z Position: ",o_Z_Coord); // {{{ 5 "Get_Channel_Position_5mL" "End" } // }} "" // {{{ 5 "Get_Tip_Present_1mL" "Begin" function Get_Tip_Present_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable bol_ParameterFound; private variable strFunctionName; private variable strFunctionName_Cut; private variable flt_Resolution; private variable int_Count; private variable flt_Value; private variable str_Firmware; private variable int_TotalChannels; private variable str_CurrentChannel; private variable arr_TipsPresent[]; // {{ 5 "Get_Tip_Present_1mL" "InitLocals" o_bool_TipPresent = 0; // }} "" // {{ 435 1 0 "692d97ec_2e44_4ad3_941604612e15477a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 436 1 0 "c2d46cb7_b9a0_4d34_ab49f4907ea7b6ac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 438 1 0 "8c00161a_83bd_4220_aac4483a952718f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 439 1 0 "61a933a3_2b98_45c5_add4d2a7a7b930c8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 440 1 0 "68a5ac55_7eee_4fb1_9ebf9204d47fa6b7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 441 1 0 "6fbf1377_f50d_429f_a52befc083a5aa7c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 442 1 0 "b8711a41_9ec8_4893_97c8175ae988b1d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 443 1 0 "f8c48f11_6fda_4541_98b36044ac3297aa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 444 1 0 "692d97ec_2e44_4ad3_941604612e15477a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 445 1 0 "9073ced6_8ef9_42f5_b57ce67944ba7a7f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::GetChannelValue(i_int_CurrentChannel, i_int_CurrentChannel); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 446 1 0 "8e23ff46_cbbb_4b19_a1b7ee0cea08f4f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{ 447 1 0 "3cfc9602_994d_46a9_b81b7e38f385e420" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bool_TipPresent = 0; // }} "" // {{ 448 1 0 "987ca36d_9eba_4a64_9030c590557183ca" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 449 1 0 "e27a8d03_6c09_46f9_a5015fbbc4dbe40c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution = 1; // }} "" // {{ 450 1 0 "8fcd972d_ca18_48b0_975f2785dbd72bf6" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 451 1 0 "76c2b900_74f0_418e_a7ce512b00446e21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChannel = StrConcat2(i_int_CurrentChannel, Translate("")); // }} "" // {{{ 452 1 0 "d59df0e1_175f_4a07_b5edd1592a949b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChannel = StrFillLeft(str_CurrentChannel, Translate("0"), 2); // }} "" // {{{ 453 1 0 "b65b82aa_2bb2_4636_b849d7b3759c5973" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Firmware = StrConcat4(Translate("A1P"), Translate("M"), Translate("QA"), Translate("")); // }} "" // {{ 454 1 0 "a024fef4_e611_4e47_83b54acc919de469" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("a024fef4_e611_4e47_83b54acc919de469"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 455 1 0 "e2c800f1_a06b_4434_914599d87f1ee831" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{ 456 1 0 "d0d6e6fa_e12f_4c72_89f600ca8e10643b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 457 1 0 "870fdd05_a9ee_444a_9f87d4f72b471ac4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple2(str_ReturnValue, Translate("rt"), 1, bol_ParameterFound, arr_TipsPresent); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 458 1 0 "1ad31436_c12f_443f_a92b0cfa1be8af44" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate("rt"), 1, 1, G_FW_PIP_COM_TotalChannels, bol_ParameterFound, arr_TipsPresent); // }} "" // {{{ 459 1 0 "f4e54d34_d056_4a79_a6e50502e199aedd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("rt"), flt_Resolution, 1, bol_ParameterFound, flt_Value); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 460 1 0 "af8bd4fa_57f7_4cb4_ae151cb9ba583194" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 461 1 0 "c249b9a1_6aed_4426_86e39063f47f4ca6" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalChannels=arr_TipsPresent.GetSize(); // }} "" // {{ 462 1 0 "9bacba32_ff97_4f36_8783640a8ce7d603" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_CurrentChannel <= int_TotalChannels) { // }} "" // {{ 463 1 0 "9a16a7b0_ea5c_4fdb_b99237fc00b03067" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_Value=arr_TipsPresent.GetAt(i_int_CurrentChannel-1); // }} "" // {{ 464 1 0 "9bacba32_ff97_4f36_8783640a8ce7d603" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 465 1 0 "5316f650_5931_4963_8db123342c2d6f90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Value = 0.0; // }} "" // {{ 466 1 0 "9bacba32_ff97_4f36_8783640a8ce7d603" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 467 1 0 "5a648d8e_81f6_4983_9f296436693d7485" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Value == 1.0) { // }} "" // {{ 468 1 0 "0bc4235d_47c8_4f1f_9f275e5eddaf9ee4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bool_TipPresent = 1; // }} "" // {{ 469 1 0 "5a648d8e_81f6_4983_9f296436693d7485" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 470 1 0 "24f036c7_7014_404b_bbc53cc0ae0aafbf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bool_TipPresent = 0; // }} "" // {{ 471 1 0 "5a648d8e_81f6_4983_9f296436693d7485" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 472 1 0 "af8bd4fa_57f7_4cb4_ae151cb9ba583194" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace(" ","Channel Number: ",i_int_CurrentChannel); Trace(" ","Tip Present: ",o_bool_TipPresent); // {{{ 5 "Get_Tip_Present_1mL" "End" } // }} "" // {{{ 5 "Get_Tip_Present_5mL" "Begin" function Get_Tip_Present_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_bool_TipPresent ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable bol_ParameterFound; private variable strFunctionName; private variable strFunctionName_Cut; private variable flt_Resolution; private variable int_Count; private variable flt_Value; private variable str_Firmware; private variable int_TotalChannels; private variable arr_TipsPresent[]; // {{ 5 "Get_Tip_Present_5mL" "InitLocals" o_bool_TipPresent = 0; // }} "" // {{ 475 1 0 "f7a356f8_c1e4_4ffc_aafed44e36cfad5a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 476 1 0 "5919d06b_9b3f_4111_8335cabb068b5165" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 478 1 0 "13629838_0e35_4894_aa04361700fbe4b7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 479 1 0 "d319297c_4288_43a6_a4867a2fd3a78830" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 480 1 0 "daac456d_28c8_4d02_8f09e1846edcd05e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 481 1 0 "7dc09aae_c077_44a1_8d83d6a8aa2e3e95" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 482 1 0 "1b7c633c_0a54_4546_b56f8745755de8df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 483 1 0 "c8a8b308_4fe5_49ef_8bf314c0a2ae7e6c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 484 1 0 "f7a356f8_c1e4_4ffc_aafed44e36cfad5a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 485 1 0 "387d1568_acfe_48ed_897df469280a705e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bool_TipPresent = 0; // }} "" // {{ 486 1 0 "90462648_16a7_4c51_92ff110d71b134d9" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 487 1 0 "2ea14abd_a06c_4bb1_906d6fa10f7d6844" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution = 1; // }} "" // {{ 488 1 0 "a1197d52_9d86_4cbf_93da2eb82e95ebd6" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 489 1 0 "4f00dc0c_bf0c_4ed5_b86e23436882255f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Firmware = StrConcat4(Translate("A1L"), Translate("M"), Translate("QA"), Translate("")); // }} "" // {{ 490 1 0 "625fb85f_6c51_4a86_b63a5eea83adcd17" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("625fb85f_6c51_4a86_b63a5eea83adcd17"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 491 1 0 "0661dd15_8532_474f_8633b297439518d7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{ 492 1 0 "45eec093_bcb5_4b93_a4430d4c4c34c64e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 493 1 0 "76aa95a6_773e_479a_9c793fc3f85dea3d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple2(str_ReturnValue, Translate("rt"), 1, bol_ParameterFound, arr_TipsPresent); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 494 1 0 "4a2132e1_9661_41cc_b52967b3fa1ebaab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate("rt"), 1, 1, G_FW_XL_COM_TotalChannels, bol_ParameterFound, arr_TipsPresent); // }} "" // {{{ 495 1 0 "b95b4952_7e8c_460b_a2c6951715281266" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Single(str_ReturnValue, Translate("rt"), flt_Resolution, 1, bol_ParameterFound, flt_Value); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 496 1 0 "6183815c_7a60_4564_b8b3065efa645887" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 497 1 0 "4e33dd02_07fb_4946_9737400395968b28" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalChannels=arr_TipsPresent.GetSize(); // }} "" // {{ 498 1 0 "8c73e53d_911a_42ba_853feac5e3070d20" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_CurrentChannel <= int_TotalChannels) { // }} "" // {{ 499 1 0 "49b70053_c013_49bf_ae77fbf3870e2beb" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_Value=arr_TipsPresent.GetAt(i_int_CurrentChannel-1); // }} "" // {{ 500 1 0 "8c73e53d_911a_42ba_853feac5e3070d20" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 501 1 0 "790ca4d4_8a9c_45e7_a85854e9cd7ca950" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Value = 0.0; // }} "" // {{ 502 1 0 "8c73e53d_911a_42ba_853feac5e3070d20" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 503 1 0 "52195489_2848_4336_99484f4c94c61873" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Value == 1.0) { // }} "" // {{ 504 1 0 "6709cce2_fde6_4952_82212f2f0f5e9d1d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bool_TipPresent = 1; // }} "" // {{ 505 1 0 "52195489_2848_4336_99484f4c94c61873" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 506 1 0 "df51d909_1005_485f_a72d146731a9bbc5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bool_TipPresent = 0; // }} "" // {{ 507 1 0 "52195489_2848_4336_99484f4c94c61873" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 508 1 0 "6183815c_7a60_4564_b8b3065efa645887" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace(" ","Channel Number: ",i_int_CurrentChannel); Trace(" ","Tip Present: ",o_bool_TipPresent); // {{{ 5 "Get_Tip_Present_5mL" "End" } // }} "" // {{{ 5 "Get_Tip_Volume_1mL" "Begin" function Get_Tip_Volume_1mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable bol_ParameterFound; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_TotalFound; private variable flt_Resolution; private variable int_Count; private variable str_Firmware; private variable arr_Values[]; // {{ 5 "Get_Tip_Volume_1mL" "InitLocals" o_flt_MaxTipVolume = 0; o_flt_CurrentVolumeInTip = 0; // }} "" // {{ 511 1 0 "3f616c1c_a920_49b5_8bb9cc4982bcb762" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 512 1 0 "2de9e027_e3d5_4d72_81a326cf1143c767" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 514 1 0 "74037b15_82bf_4b49_89808c331da98bad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 515 1 0 "0b1a39ee_c71e_4f49_b9f26cef8f3de1ff" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 516 1 0 "08c5a202_276c_419a_92f411e0a16eca19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 517 1 0 "5c328cea_8550_44c0_bbc238b62d2a07e4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 518 1 0 "04c70b62_138c_431c_b75e75f2da2ba65b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 519 1 0 "35fde00e_77a4_40eb_8e21ecbc691d2d3b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 520 1 0 "3f616c1c_a920_49b5_8bb9cc4982bcb762" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 521 1 0 "e3c93a6e_e698_4e57_b4968e9a795e9c27" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::GetChannelValue(i_int_CurrentChannel, i_int_CurrentChannel); // }} "" // {{ 522 1 0 "db263934_1479_484f_9d9721c4fcd6ff61" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_MaxTipVolume = 0.0; // }} "" // {{ 523 1 0 "09c2ea34_52a7_445f_995023f89a1b8fa8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentVolumeInTip = 0.0; // }} "" // {{ 524 1 0 "4ef3c13b_91d4_41de_b32b4cd821a91e80" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 525 1 0 "72501c75_cd91_4681_b5730704f44ccdc5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution = 0.046876; // }} "" // {{ 526 1 0 "badb8d2b_e440_4302_b19882f38c2b8fe4" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 527 1 0 "5581d8c9_62ca_40bc_86a0db96de706592" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Firmware = StrConcat4(Translate("A1P"), i_int_CurrentChannel, Translate("QC"), Translate("")); // }} "" // {{ 528 1 0 "4f306e9c_ed7b_4f7d_b20e833bd211e6a1" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("4f306e9c_ed7b_4f7d_b20e833bd211e6a1"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 529 1 0 "cbcd0aae_49bc_4691_902b07d2bffbe01c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{ 530 1 0 "d23cc9ec_4d2b_4d0c_934d5f622d65f157" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 531 1 0 "c363b4fe_2898_4b19_9fa61de69aa085a0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate("qc"), flt_Resolution, 5, 2, bol_ParameterFound, arr_Values); // }} "" // {{ 532 1 0 "3c7b0b84_4a47_4910_895f313103880228" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalFound=arr_Values.GetSize(); // }} "" // {{ 533 1 0 "81bc6df0_c414_4234_849143ec1f4478a1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalFound >= 1) { // }} "" // {{ 534 1 0 "8bbb9b60_9a0f_45c2_aabe3b48400141b0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 535 1 0 "9150ac99_4d34_4498_bf0e47fce2a6dd1d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_MaxTipVolume = arr_Values.ElementAt( 1 -1); // }} "" // {{{ 536 1 0 "40ccad34_8e55_4ea3_9b92fdc1ef77bb52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::RemoveExcessDigits(o_flt_MaxTipVolume); // }} "" // {{ 537 1 0 "8bbb9b60_9a0f_45c2_aabe3b48400141b0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 538 1 0 "81bc6df0_c414_4234_849143ec1f4478a1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 539 1 0 "cc969ed1_0da6_4636_941efc85d8765ff0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 540 1 0 "b8e8b344_0420_4491_a753694f1cad01b5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalFound >= 2) { // }} "" // {{ 541 1 0 "176889e5_453b_4458_885d079db4e721b1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 542 1 0 "73286740_91e5_40a2_a5db551470366b70" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentVolumeInTip = arr_Values.ElementAt( 2 -1); // }} "" // {{{ 543 1 0 "7936498d_edac_4f87_b25e6bb3367f71ea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::RemoveExcessDigits(o_flt_CurrentVolumeInTip); // }} "" // {{ 544 1 0 "176889e5_453b_4458_885d079db4e721b1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 545 1 0 "b8e8b344_0420_4491_a753694f1cad01b5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace(" ","Channel Number: ",i_int_CurrentChannel); Trace(" ","Max tip volume: ",o_flt_MaxTipVolume," uL"); Trace(" ","Current tip volume: ",o_flt_CurrentVolumeInTip," uL"); // {{{ 5 "Get_Tip_Volume_1mL" "End" } // }} "" // {{{ 5 "Get_Tip_Volume_5mL" "Begin" function Get_Tip_Volume_5mL( device & ML_STAR, variable i_int_CurrentChannel, variable & o_flt_MaxTipVolume, variable & o_flt_CurrentVolumeInTip ) void { // }} "" private variable str_ReturnValue; private variable int_CutNum; private variable int_Length; private variable bol_ParameterFound; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_TotalFound; private variable flt_Resolution; private variable int_Count; private variable str_Firmware; private variable arr_Values[]; // {{ 5 "Get_Tip_Volume_5mL" "InitLocals" o_flt_MaxTipVolume = 0; o_flt_CurrentVolumeInTip = 0; // }} "" // {{ 548 1 0 "84e37093_56d0_43fe_bc679ee3e6648bc8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 549 1 0 "b0d66ee3_8aec_446c_9d2a8594ead234cc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 551 1 0 "d6f19931_c43d_4cdd_94672a1de7b3ec6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 552 1 0 "11a74334_c295_431c_93e763eb33e8d510" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 553 1 0 "f4854814_2241_4fe3_8353c63ee3fe6f40" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 554 1 0 "ad9be799_857e_4147_88930ea9b3ecf8d4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 555 1 0 "a81d9c57_f947_4a02_9241d5176b3ab69c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" // {{ 556 1 0 "453258ba_4a47_4158_9c54615a841aedec" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = strFunctionName_Cut; // }} "" // {{ 557 1 0 "84e37093_56d0_43fe_bc679ee3e6648bc8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 558 1 0 "8888f3d0_2e8b_4eb8_b3ed361083ddce01" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_MaxTipVolume = 0.0; // }} "" // {{ 559 1 0 "83fcda40_d699_4896_8eaedd6f1e5a6fe4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentVolumeInTip = 0.0; // }} "" // {{ 560 1 0 "80eecbde_ac55_492c_98367f57dc3b2299" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 561 1 0 "eac0a3f8_9b55_4305_bbe1291c5eb12981" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Resolution = 0.044711063; // }} "" // {{ 562 1 0 "b980110c_f4be_4ced_b97c09563a7a5b20" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 563 1 0 "aad6ee8f_f853_4117_9885d2cef7edd3ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Firmware = StrConcat4(Translate("A1L"), i_int_CurrentChannel, Translate("QC"), Translate("")); // }} "" // {{ 564 1 0 "95008990_1bb2_4cff_9d81aa099b6a6d5f" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("95008990_1bb2_4cff_9d81aa099b6a6d5f"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 565 1 0 "c6b5c1a4_07e0_41b8_b538f9c071e6aebf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{ 566 1 0 "00366979_e1e1_4f84_8f36f3c265859b21" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 567 1 0 "3148a5bf_49c6_4572_bd36369ec0517fdb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate("qc"), flt_Resolution, 5, 2, bol_ParameterFound, arr_Values); // }} "" // {{ 568 1 0 "a355bdd1_03b6_441d_8232df219b1a9dab" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalFound=arr_Values.GetSize(); // }} "" // {{ 569 1 0 "bd79da4a_b71b_422a_8484ef50e27a1764" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalFound >= 1) { // }} "" // {{ 570 1 0 "be606b8f_aa38_4681_85ed4a9b93753fef" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 571 1 0 "7a2b3f6d_dbfb_411a_96bc7f90964afbde" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_MaxTipVolume = arr_Values.ElementAt( 1 -1); // }} "" // {{{ 572 1 0 "4fed12d7_3411_4ce9_825b240efbddcb3b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::RemoveExcessDigits(o_flt_MaxTipVolume); // }} "" // {{ 573 1 0 "be606b8f_aa38_4681_85ed4a9b93753fef" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 574 1 0 "bd79da4a_b71b_422a_8484ef50e27a1764" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 575 1 0 "4c1aae9c_f2b2_42d9_902020331cd33aad" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 576 1 0 "77ddf967_8865_44c3_9c84ecb201e609c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalFound >= 2) { // }} "" // {{ 577 1 0 "542034cd_544b_4ea8_a6e644e1761c17f1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 578 1 0 "5b77c4fd_6dc1_44f6_bab20f813b294c2f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentVolumeInTip = arr_Values.ElementAt( 2 -1); // }} "" // {{{ 579 1 0 "fbef6bb9_9621_4d9d_a5e0635f42fad456" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::RemoveExcessDigits(o_flt_CurrentVolumeInTip); // }} "" // {{ 580 1 0 "542034cd_544b_4ea8_a6e644e1761c17f1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 581 1 0 "77ddf967_8865_44c3_9c84ecb201e609c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace(" ","Channel Number: ",i_int_CurrentChannel); Trace(" ","Max tip volume: ",o_flt_MaxTipVolume," uL"); Trace(" ","Current tip volume: ",o_flt_CurrentVolumeInTip," uL"); // {{{ 5 "Get_Tip_Volume_5mL" "End" } // }} "" // {{{ 5 "QueryTipLength" "Begin" function QueryTipLength( device & ML_STAR, variable i_intChannelNumber, variable & o_fltTipLength ) void { // }} "" private variable str_ReturnValue; private variable bol_ParameterFound; private variable bln_TipPresent; private variable strFunctionName; private variable flt_ZTipCoord; private variable str_FirmwareCMND; private variable flt_ZStopDisk; private variable arr_Values[]; // {{ 5 "QueryTipLength" "InitLocals" o_fltTipLength = 0; // }} "" // {{ 968 1 0 "1a46acf9_fd9c_4e07_bba23f994b037a4f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_fltTipLength = 0.0; // }} "" // {{{ 969 1 0 "e7b6706d_8674_44cd_aa26ed6ee00ecf7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" Get_Tip_Present_1mL(ML_STAR, i_intChannelNumber, bln_TipPresent); // }} "" // {{ 970 1 0 "00b81d7c_e02c_4214_8f8b47907e90f79b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_TipPresent == 0) { // }} "" // {{{ 971 1 0 "b0de3b91_6c91_475d_8fef3293ace5a0c7" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 972 1 0 "00b81d7c_e02c_4214_8f8b47907e90f79b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 973 1 0 "1aeb9867_9524_46f4_80586627e401d526" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetStopDiskZCoord(ML_STAR, i_intChannelNumber, flt_ZStopDisk); // }} "" // {{ 974 1 0 "24cb0a4c_ef4d_4c2a_b3877e37ae236320" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 975 1 0 "166a467f_3de8_4f4f_aab55cbca76ef9ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FirmwareCMND = StrConcat4(Translate("A1PMRZ"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 976 1 0 "4e53f8b5_2dd2_46c9_9f9e86952bd71877" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("4e53f8b5_2dd2_46c9_9f9e86952bd71877"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{{ 977 1 0 "f483f601_5a9d_4b95_9f092e670763d1a9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::CheckForError(strFunctionName, str_ReturnValue, 0); // }} "" // {{{ 978 1 0 "bec21b5c_8815_4c59_a509953f2da390f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::Parse_Parameter_Multiple(str_ReturnValue, Translate("rz"), 0.1, 4, G_FW_PIP_COM_TotalChannels, bol_ParameterFound, arr_Values); // }} "" // {{ 979 1 0 "8cc2b4b6_5d76_479e_bdbfaa65e6f5abbb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_ParameterFound == 1) { // }} "" // {{ 980 1 0 "21679e56_49b1_4d0d_ad2068efb50aa1f6" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ZTipCoord=arr_Values.GetAt(i_intChannelNumber-1); // }} "" // {{ 981 1 0 "8cc2b4b6_5d76_479e_bdbfaa65e6f5abbb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 982 1 0 "4788c03a_1e6c_4741_9224c8917ea074ea" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_ZTipCoord = flt_ZStopDisk; // }} "" // {{ 983 1 0 "8cc2b4b6_5d76_479e_bdbfaa65e6f5abbb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 984 1 0 "5961dc31_d549_4aee_b4e26a7d4797f8de" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_fltTipLength = flt_ZStopDisk - flt_ZTipCoord; // }} "" // {{{ 5 "QueryTipLength" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=Hamilton$$valid=0$$time=2021-10-06 15:00$$checksum=911ac006$$length=087$$ ================================================ FILE: pyhamilton/library/STAR Tools/STAR Channel Tools.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 12/13/2021 11:05:43 AM #pragma once #ifndef HSL_RUNTIME namespace STAR_CHANNEL_TOOLS { function _InitLibrary() { } function _ExitLibrary() { } function CHAN_ACCESS_Sort1Sequence( device & ML_STAR, sequence & io_Sequence_to_Sort, variable i_Channel_Type, variable i_Sort_by_Labware, variable i_Sort_by_XY, variable i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence & o_Sorted_Sequence, variable & o_Channel_Pattern ) variable { return (0); } function CHAN_ACCESS_Sort1Sequence1Array( device & ML_STAR, sequence & io_Sequence_to_Sort, variable & io_Array_of_Variables[], variable i_Channel_Type, variable i_Sort_by_Labware, variable i_Sort_by_XY, variable i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence & o_Sorted_Sequence, variable & o_Sorted_Array[], variable & o_Channel_Pattern ) variable { return (0); } function CHAN_ACCESS_Sort1Sequence2Arrays( device & ML_STAR, sequence & io_Sequence_to_Sort, variable & io_Array_of_Variables[], variable & io_Array_of_Variables2[], variable i_Channel_Type, variable i_Sort_by_Labware, variable i_Sort_by_XY, variable i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence & o_Sorted_Sequence, variable & o_Sorted_Array[], variable & o_Sorted_Array2[], variable & o_Channel_Pattern ) variable { return (0); } function CHAN_ACCESS_Sort2Sequences( device & ML_STAR, sequence & io_Sequence_to_Sort, sequence & io_Sequence_to_Sort2, variable i_Channel_Type, variable i_Sort_by_Labware, variable i_Sort_by_XY, variable i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence & o_Sorted_Sequence, sequence & o_Sorted_Sequence2, variable & o_Channel_Pattern ) variable { return (0); } function CHAN_ACCESS_Sort2Sequences1Array( device & ML_STAR, sequence & io_Sequence_to_Sort, sequence & io_Sequence_to_Sort2, variable & io_Array_of_Variables[], variable i_Channel_Type, variable i_Sort_by_Labware, variable i_Sort_by_XY, variable i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence & o_Sorted_Sequence, sequence & o_Sorted_Sequence2, variable & o_Sorted_Array[], variable & o_Channel_Pattern ) variable { return (0); } function CHAN_ACCESS_Sort2Sequences2Arrays( device & ML_STAR, sequence & io_Sequence_to_Sort, sequence & io_Sequence_to_Sort2, variable & io_Array_of_Variables[], variable & io_Array_of_Variables2[], variable i_Channel_Type, variable i_Sort_by_Labware, variable i_Sort_by_XY, variable i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence & o_Sorted_Sequence, sequence & o_Sorted_Sequence2, variable & o_Sorted_Array[], variable & o_Sorted_Array2[], variable & o_Channel_Pattern ) variable { return (0); } function LIQUID_LEVEL_GetLiquidLevelHeight( device & ML_STAR, variable i_str_LiquidLevelReturn, sequence i_seq_Labware, variable i_int_Channel, variable & o_flt_LiquidHeight ) void { } function LIQUID_LEVEL_MeasureLiquidMulti( device & ML_STAR, sequence & i_arrseq_FullReservoirSequences[], sequence & i_seq_TipsToUse, sequence i_seq_TipWaste, variable i_str_TipCounter, variable i_int_LLD_Sensitivity, variable i_bool_ConvertTouL, variable & o_arr_VolumesMeasured[] ) variable { return (0); } function LIQUID_LEVEL_MeasureLiquidSingle( device & ML_STAR, sequence i_seq_FullReservoirSequence, sequence & i_seq_TipsToUse, sequence i_seq_TipWaste, variable i_str_TipCounter, variable i_bool_IncrementTipSequence, variable i_int_LLD_Sensitivity, variable i_bool_ConvertTouL, variable & o_flt_VolumeMeasured ) variable { return (0); } function LIQUID_LEVEL_ReturnVolumesFromLiquidLevel( device & ML_STAR, variable i_str_PipettingReturn, variable i_str_LiquidLevelReturn, variable i_bool_ConvertTouL, variable & o_arr_VolumesMeasured[] ) void { } function MOVE_ChannelsToSequencePosition( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_Positions, variable i_flt_ZHeight ) void { } function MOVE_ChannelsToSequencePosition_5mL( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_Positions, variable i_flt_ZHeight ) void { } function MOVE_CheckPlateWithTwoChannels( device & ML_STAR, variable i_int_FrontMostChannel, sequence i_seq_PlateToCheck, variable i_flt_TapWidth ) variable { return (0); } function MOVE_InitDispenseDrive( device & ML_STAR, variable i_int_ChNumber ) void { } function MOVE_InitDispenseDrive_5mL( device & ML_STAR, variable i_int_ChNumber ) void { } function PLATE_STACK_CountPlateStacks( device & ML_STAR, sequence i_seq_PlateStack_Full, sequence & o_seq_PlateStack_Count, variable & o_int_PlateCount ) void { } function QUERY_GetChannelPosition( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_XCoord, variable & o_flt_YCoord, variable & o_flt_ZCoord ) void { } function QUERY_GetChannelPosition_5mL( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_XCoord, variable & o_flt_YCoord, variable & o_flt_ZCoord ) void { } function QUERY_GetTipPresentState( device & ML_STAR, variable i_int_ChNumber, variable & o_bln_TipPresent ) void { } function QUERY_GetTipPresentState_5mL( device & ML_STAR, variable i_int_ChNumber, variable & o_bln_TipPresent ) void { } function QUERY_GetTipVolume( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_MaxVolume, variable & o_flt_CurrentChannelVolume ) void { } function QUERY_GetTipVolume_5mL( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_MaxVolume, variable & o_flt_CurrentChannelVolume ) void { } function SPLIT_WELLS_AddContainersToWell( device & ML_STAR, sequence i_seq_SequenceToSplit, variable i_int_SequenceIndex, variable i_int_MaxSplitNumber, sequence & io_seq_SplitSequence ) void { } function SPLIT_WELLS_RemoveContainers( device & ML_STAR, variable i_bool_UpdateVolumes ) void { } function TRAVEL_LANES_MoveChannelsToTravelLanes( device & ML_STAR ) void { } function TRAVEL_LANES_MoveChannelsToTravelLanes_5mL( device & ML_STAR ) void { } function TRAVEL_LANES_MoveChannelsToYPosition( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void { } function TRAVEL_LANES_MoveChannelsToYPosition_5mL( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void { } function TRAVEL_LANES_MoveChannelsWithTravelLanes( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void { } function TRAVEL_LANES_MoveChannelsWithTravelLanes_5mL( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void { } function TRAVEL_LANES_SingleSource_ChannelDisplacement( device & ML_STAR, variable i_strStepReturn ) void { } function TRAVEL_LANES_SingleSource_ChannelDisplacement_5mL( device & ML_STAR, variable i_strStepReturn ) void { } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=Bare_B$$valid=0$$time=2021-12-13 11:05$$checksum=1b6412be$$length=083$$ ================================================ FILE: pyhamilton/library/STAR Tools/STAR Channel Tools.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "STAR Tools\\Resources\\SubMethods\\Plate Stack Verify.hs_" #include "HSLFilLib.hsl" #include "HSLStrLib.hsl" #include "HSLExtensions\\File.hsl" #include "HSLSeqLib.hsl" #include "HSLDevLib.hsl" #include "HSLUtilLib2.hsl" #include "STAR Tools\\Resources\\SubMethods\\Split_Wells.hs_" #include "STAR Tools\\Resources\\SubMethods\\CHANNEL_TOOLS_GLOBAL.hsl" #include "HSLErrLib.hsl" #include "STAR Tools\\Resources\\SubMethods\\HelperLibrary.hs_" #include "SMTs\\lookup.hs_" #include "STAR Tools\\Resources\\SubMethods\\Liquid Level Check.hs_" #include "HSLTrcLib.hsl" #include "HSLExtensions\\Array.hsl" #include "STAR Tools\\Resources\\SubMethods\\Travel Lanes.hs_" #include "HSLMlStarStepReturnLib.hsl" #include "Labware Properties\\Labware_Property_Query.hs_" #include "HSLMthLib.hsl" #include "HSLUtilLib.hsl" #include "STAR Tools\\Resources\\SubMethods\\FW_HelperLibrary.hs_" #include "STAR Tools\\Resources\\SubMethods\\STAR Channel Movement Tools.hs_" #include "STAR Tools\\Resources\\SubMethods\\VANTAGE Channel Movement Tools.hs_" #include "HSL_MethodHelper.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" #include "HSLPTLLib.hsl" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace STAR_CHANNEL_TOOLS { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" private function Abstract( ) void ; function CHAN_ACCESS_Sort1Sequence( device & ML_STAR, sequence & io_Sequence_to_Sort, variable i_Channel_Type, variable i_Sort_by_Labware, variable i_Sort_by_XY, variable i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence & o_Sorted_Sequence, variable & o_Channel_Pattern ) variable ; function CHAN_ACCESS_Sort1Sequence1Array( device & ML_STAR, sequence & io_Sequence_to_Sort, variable & io_Array_of_Variables[], variable i_Channel_Type, variable i_Sort_by_Labware, variable i_Sort_by_XY, variable i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence & o_Sorted_Sequence, variable & o_Sorted_Array[], variable & o_Channel_Pattern ) variable ; function CHAN_ACCESS_Sort1Sequence2Arrays( device & ML_STAR, sequence & io_Sequence_to_Sort, variable & io_Array_of_Variables[], variable & io_Array_of_Variables2[], variable i_Channel_Type, variable i_Sort_by_Labware, variable i_Sort_by_XY, variable i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence & o_Sorted_Sequence, variable & o_Sorted_Array[], variable & o_Sorted_Array2[], variable & o_Channel_Pattern ) variable ; function CHAN_ACCESS_Sort2Sequences( device & ML_STAR, sequence & io_Sequence_to_Sort, sequence & io_Sequence_to_Sort2, variable i_Channel_Type, variable i_Sort_by_Labware, variable i_Sort_by_XY, variable i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence & o_Sorted_Sequence, sequence & o_Sorted_Sequence2, variable & o_Channel_Pattern ) variable ; function CHAN_ACCESS_Sort2Sequences1Array( device & ML_STAR, sequence & io_Sequence_to_Sort, sequence & io_Sequence_to_Sort2, variable & io_Array_of_Variables[], variable i_Channel_Type, variable i_Sort_by_Labware, variable i_Sort_by_XY, variable i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence & o_Sorted_Sequence, sequence & o_Sorted_Sequence2, variable & o_Sorted_Array[], variable & o_Channel_Pattern ) variable ; function CHAN_ACCESS_Sort2Sequences2Arrays( device & ML_STAR, sequence & io_Sequence_to_Sort, sequence & io_Sequence_to_Sort2, variable & io_Array_of_Variables[], variable & io_Array_of_Variables2[], variable i_Channel_Type, variable i_Sort_by_Labware, variable i_Sort_by_XY, variable i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence & o_Sorted_Sequence, sequence & o_Sorted_Sequence2, variable & o_Sorted_Array[], variable & o_Sorted_Array2[], variable & o_Channel_Pattern ) variable ; function LIQUID_LEVEL_GetLiquidLevelHeight( device & ML_STAR, variable i_str_LiquidLevelReturn, sequence i_seq_Labware, variable i_int_Channel, variable & o_flt_LiquidHeight ) void ; function LIQUID_LEVEL_MeasureLiquidMulti( device & ML_STAR, sequence & i_arrseq_FullReservoirSequences[], sequence & i_seq_TipsToUse, sequence i_seq_TipWaste, variable i_str_TipCounter, variable i_int_LLD_Sensitivity, variable i_bool_ConvertTouL, variable & o_arr_VolumesMeasured[] ) variable ; function LIQUID_LEVEL_MeasureLiquidSingle( device & ML_STAR, sequence i_seq_FullReservoirSequence, sequence & i_seq_TipsToUse, sequence i_seq_TipWaste, variable i_str_TipCounter, variable i_bool_IncrementTipSequence, variable i_int_LLD_Sensitivity, variable i_bool_ConvertTouL, variable & o_flt_VolumeMeasured ) variable ; function LIQUID_LEVEL_ReturnVolumesFromLiquidLevel( device & ML_STAR, variable i_str_PipettingReturn, variable i_str_LiquidLevelReturn, variable i_bool_ConvertTouL, variable & o_arr_VolumesMeasured[] ) void ; function MOVE_ChannelsToSequencePosition( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_Positions, variable i_flt_ZHeight ) void ; function MOVE_ChannelsToSequencePosition_5mL( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_Positions, variable i_flt_ZHeight ) void ; function MOVE_CheckPlateWithTwoChannels( device & ML_STAR, variable i_int_FrontMostChannel, sequence i_seq_PlateToCheck, variable i_flt_TapWidth ) variable ; function MOVE_InitDispenseDrive( device & ML_STAR, variable i_int_ChNumber ) void ; function MOVE_InitDispenseDrive_5mL( device & ML_STAR, variable i_int_ChNumber ) void ; function PLATE_STACK_CountPlateStacks( device & ML_STAR, sequence i_seq_PlateStack_Full, sequence & o_seq_PlateStack_Count, variable & o_int_PlateCount ) void ; function QUERY_GetChannelPosition( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_XCoord, variable & o_flt_YCoord, variable & o_flt_ZCoord ) void ; function QUERY_GetChannelPosition_5mL( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_XCoord, variable & o_flt_YCoord, variable & o_flt_ZCoord ) void ; function QUERY_GetTipPresentState( device & ML_STAR, variable i_int_ChNumber, variable & o_bln_TipPresent ) void ; function QUERY_GetTipPresentState_5mL( device & ML_STAR, variable i_int_ChNumber, variable & o_bln_TipPresent ) void ; function QUERY_GetTipVolume( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_MaxVolume, variable & o_flt_CurrentChannelVolume ) void ; function QUERY_GetTipVolume_5mL( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_MaxVolume, variable & o_flt_CurrentChannelVolume ) void ; function SPLIT_WELLS_AddContainersToWell( device & ML_STAR, sequence i_seq_SequenceToSplit, variable i_int_SequenceIndex, variable i_int_MaxSplitNumber, sequence & io_seq_SplitSequence ) void ; function SPLIT_WELLS_RemoveContainers( device & ML_STAR, variable i_bool_UpdateVolumes ) void ; function TRAVEL_LANES_MoveChannelsToTravelLanes( device & ML_STAR ) void ; function TRAVEL_LANES_MoveChannelsToTravelLanes_5mL( device & ML_STAR ) void ; function TRAVEL_LANES_MoveChannelsToYPosition( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void ; function TRAVEL_LANES_MoveChannelsToYPosition_5mL( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void ; function TRAVEL_LANES_MoveChannelsWithTravelLanes( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void ; function TRAVEL_LANES_MoveChannelsWithTravelLanes_5mL( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void ; function TRAVEL_LANES_SingleSource_ChannelDisplacement( device & ML_STAR, variable i_strStepReturn ) void ; function TRAVEL_LANES_SingleSource_ChannelDisplacement_5mL( device & ML_STAR, variable i_strStepReturn ) void ; private function _FunctionError( variable i_str_FunctionName, variable i_str_ErrorDescription ) void ; private function _GetSequencePosition( device & Instrument, sequence i_seq_LabwareSequence, variable & o_str_LabID, variable & o_str_PosID ) variable ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" PTL::SetWashingStateDefault("RinseTime1", 5); PTL::SetWashingStateDefault("SoakTime1", 5); PTL::SetWashingStateDefault("FlowRate1", 11); PTL::SetWashingStateDefault("RinseTime2", 0); PTL::SetWashingStateDefault("SoakTime2", 0); PTL::SetWashingStateDefault("FlowRate2", 11); PTL::SetWashingStateDefault("DrainingTime", 10); PTL::SetWashingStateDefault("StartWashLiquid", 0); PTL::SetLoadingStateDefault("RecoveryOptionContinue", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionExclude", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionDefault", 0); PTL::SetLoadingStateDefault("KitLotCheckEnabled", hslFalse); PLATE_STACK_VERIFY::_InitLibrary(); SPLIT_WELLS::_InitLibrary(); HELPERLIBRARY::_InitLibrary(); LOOKUP::_InitLibrary(); LIQUID_LEVEL_CHECK::_InitLibrary(); TRAVEL_LANES::_InitLibrary(); LPQ::_InitLibrary(); FW_HELPERLIBRARY::_InitLibrary(); STAR_CHANNEL_MOVEMENT_TOOLS::_InitLibrary(); VANTAGE_CHANNEL_MOVEMENT_TOOLS::_InitLibrary(); // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" PLATE_STACK_VERIFY::_ExitLibrary(); SPLIT_WELLS::_ExitLibrary(); HELPERLIBRARY::_ExitLibrary(); LOOKUP::_ExitLibrary(); LIQUID_LEVEL_CHECK::_ExitLibrary(); TRAVEL_LANES::_ExitLibrary(); LPQ::_ExitLibrary(); FW_HELPERLIBRARY::_ExitLibrary(); STAR_CHANNEL_MOVEMENT_TOOLS::_ExitLibrary(); VANTAGE_CHANNEL_MOVEMENT_TOOLS::_ExitLibrary(); // }} "" } // {{{ 5 "PLATE_STACK_CountPlateStacks" "Begin" function PLATE_STACK_CountPlateStacks( device & ML_STAR, sequence i_seq_PlateStack_Full, sequence & o_seq_PlateStack_Count, variable & o_int_PlateCount ) void { // }} "" private variable strFunctionName; private sequence arr_PlateStack[]; private variable arr_PlateCounts[]; private variable str_LogFolderPath; private variable flt_X_Coord; private variable int_StackNum; private variable flt_Z_Coord; private variable flt_Y_Coord; private variable int_StackCount; private variable str_LabID; private variable str_PosID; private variable str_TempSortFile; private sequence seq_CurrentStack; private file SortFile; private variable i; private variable int_TotalInStack; private variable flt_NotUsed; private variable str_SQL_Sort; private variable int_StackLoop; private sequence seq_TempPlateStack; private variable int_CutNum; private variable int_Length; private variable int_Count; private file SortFile2; private variable strFunctionName_Cut; private variable bool_FileExists; // {{ 5 "PLATE_STACK_CountPlateStacks" "InitLocals" { sequence __temp; o_seq_PlateStack_Count = __temp; } o_int_PlateCount = 0; // }} "" // {{ 1950 1 0 "bd6a5218_8352_4374_ab1989a030826000" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1951 1 0 "7d42947f_c74e_4be7_895b7b6cd7cfa60b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1953 1 0 "9af12363_8986_488d_b64ccfbbd81317a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 1954 1 0 "0679dae5_5219_41dc_b744197e0e535edf" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1955 1 0 "cd428867_8cb0_47eb_a56eb10330d1cfd1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 1956 1 0 "31f4a0a2_7943_42e7_a1604182a4d0af67" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1957 1 0 "a274551a_16b8_4b1a_80a4a84bae5e4642" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 1959 1 0 "bd6a5218_8352_4374_ab1989a030826000" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1960 1 0 "62f33c7f_0b4a_4c22_841611ea3851ca1a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{{ 1961 1 0 "9a1af323_47e6_49b1_9f4cce00d7750007" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_PlateStack_Count); // }} "" // {{ 1962 1 0 "64dea824_c106_40a7_b0846983551fa11d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_PlateCount = 0; // }} "" // {{{ 1963 1 0 "8959cfea_8051_4950_85f06b5dc7f75520" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" PLATE_STACK_VERIFY::Get_Arr_StackSequences(ML_STAR, i_seq_PlateStack_Full, arr_PlateStack); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1964 1 0 "7731361d_3322_4762_a35b165be2486903" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LogFolderPath = FilGetLogFilesPath(); // }} "" // {{{ 1965 1 0 "c04ae655_6b35_4db2_af2df94c8fb6000b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TempSortFile = StrConcat4(str_LogFolderPath, Translate("\\"), Translate("TEMP_SORTING_FILE"), Translate(".xls")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 1966 1 0 "163f0164_de7c_41f0_9b2b2f1e12531a14" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTempSortingFilePath(str_TempSortFile); // }} "" // {{{ 1967 1 0 "90e574a7_6250_4fb1_8059072874d98252" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(str_TempSortFile); // }} "" // {{ 1968 1 0 "4471e5ad_acee_4f0d_bff10f13610721e2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 1) { // }} "" // {{{ 1969 1 0 "893f28ed_8cfa_4df9_a2ca28a30e3da8c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(str_TempSortFile); // }} "" // {{ 1970 1 0 "4471e5ad_acee_4f0d_bff10f13610721e2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1971 1 0 "6d248701_0c25_4757_9ca88981e96dac97" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" PLATE_STACK_VERIFY::Plate_Stack_Verify(ML_STAR, arr_PlateStack, arr_PlateCounts); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 1972 1 0 "e180f468_17cf_4574_ac79dce662b6b95e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" PLATE_STACK_VERIFY::Plate_Stack_Verfy_V2(ML_STAR, arr_PlateStack, arr_PlateCounts); // }} "" // {{{ 1973 1 0 "6ce2130f_0bb5_45c5_831f0114aa71fc8f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Plate Counts"), arr_PlateCounts); // }} "" // {{ 1974 1 0 "c55e0360_57c7_4d6d_9034aa8efe9303e8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1975 1 0 "6f6a66d7_3ad0_4da5_a204607a37c52cfd" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" SortFile.AddField("STACK_NUM", int_StackNum, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("POS_ID", str_PosID, hslString, 255); SortFile.AddField("X_COORD", flt_X_Coord, hslFloat); SortFile.AddField("Y_COORD", flt_Y_Coord, hslFloat); SortFile.AddField("Z_COORD", flt_Z_Coord, hslFloat); if( 0 == SortFile.Open(str_TempSortFile + " " + "SORT_FILE", hslWrite) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_TempSortFile, "HxMetEdCompCmd"); } // }} "" // {{ 1976 1 0 "ee44ecdb_c12b_4359_91435c48addfaaa8" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_StackCount=arr_PlateStack.GetSize(); // }} "" // {{ 1977 1 0 "4071ab62_3af9_4d03_b7c359e6fafc542d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_StackNum = 0; int_StackNum < int_StackCount;) { int_StackNum = int_StackNum + 1; // }} "" // {{ 1978 1 0 "ecfcc1d6_9f7f_4dd5_8e4d4d3df7ea38e2" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" seq_CurrentStack=arr_PlateStack.GetAt(int_StackNum-1); // }} "" // {{{ 1979 1 0 "149ad0c0_a5ab_4b6f_b66643044be71fc7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalInStack = SeqGetTotal(seq_CurrentStack); // }} "" // {{ 1980 1 0 "c26d6da5_98b8_49cf_8212be67c528610d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalInStack;) { i = i + 1; // }} "" // {{ 1981 1 0 "16076977_81b3_47d9_9ea18123fa052a01" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_CurrentStack.SetCurrentPosition(i); // }} "" // {{{ 1982 1 0 "c73825d7_c2a7_44bc_99a801f377ac986f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_CurrentStack); // }} "" // {{{ 1983 1 0 "ba3d09ee_996b_4f61_bd231f71c31d20f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(seq_CurrentStack); // }} "" // {{{ 1984 1 0 "e5c474d0_2814_4525_b9ffced23ff2d15f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_NotUsed); // }} "" // {{ 1985 1 0 "1f462b94_1577_49d3_afe15fdb9b5a396a" "{B31F3537-5D80-11d4-A5EB-0050DA737D89}" if( 0 == SortFile.WriteRecord() ) { MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1986 1 0 "c26d6da5_98b8_49cf_8212be67c528610d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1987 1 0 "4071ab62_3af9_4d03_b7c359e6fafc542d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1988 1 0 "cf199eb1_5227_44e7_a6a83dcb9f7188c1" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != SortFile.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } SortFile.RemoveFields(); // }} "" // {{ 1989 1 0 "c55e0360_57c7_4d6d_9034aa8efe9303e8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1990 1 0 "88859c3a_81e8_4eef_994a48f1c2ce76f4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1991 1 0 "85de04c9_3427_4c70_b4133d491d635be1" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_StackLoop=arr_PlateCounts.GetSize(); // }} "" // {{{ 1992 1 0 "3b96ddf1_98bf_4d75_819ad6b2120d9368" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_TempPlateStack); // }} "" // {{ 1993 1 0 "7d0325f3_ad35_405a_afaea35f56549fb8" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" SortFile2.AddField("STACK_NUM", int_StackNum, hslInteger); SortFile2.AddField("LAB_ID", str_LabID, hslString, 255); SortFile2.AddField("POS_ID", str_PosID, hslString, 255); SortFile2.AddField("X_COORD", flt_X_Coord, hslFloat); SortFile2.AddField("Y_COORD", flt_Y_Coord, hslFloat); SortFile2.AddField("Z_COORD", flt_Z_Coord, hslFloat); if( 0 == SortFile2.Open(str_TempSortFile + " " + "SORT_FILE2", hslWrite) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_TempSortFile, "HxMetEdCompCmd"); } // }} "" // {{ 1994 1 0 "38a1153d_28ed_443f_a8b6d1fce6504cfd" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_StackLoop;) { i = i + 1; // }} "" // {{ 1995 1 0 "7957c260_1f41_4157_ae4e7a347911dcc5" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" int_StackCount=arr_PlateCounts.GetAt(i-1); // }} "" // {{ 1996 1 0 "4802a929_6f57_423f_bcf18e02f53e119f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_int_PlateCount = o_int_PlateCount + int_StackCount; // }} "" // {{ 1997 1 0 "03af9fc9_f8f6_412e_be2e498133c76e4c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_StackCount > 0) { // }} "" // {{{ 1998 1 0 "6894a09a_806a_4f6b_b9013c2f16e9ab06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Sort = StrConcat4(Translate("SELECT * FROM [SORT_FILE$] WHERE STACK_NUM = "), i, Translate(" ORDER BY Z_COORD ASC"), Translate("")); // }} "" // {{ 1999 1 0 "6b934522_f549_4d40_86992a173a6557cd" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" SortFile.AddField("STACK_NUM", int_StackNum, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("POS_ID", str_PosID, hslString, 255); SortFile.AddField("X_COORD", flt_X_Coord, hslFloat); SortFile.AddField("Y_COORD", flt_Y_Coord, hslFloat); SortFile.AddField("Z_COORD", flt_Z_Coord, hslFloat); if( 0 == SortFile.Open(str_TempSortFile + " " + "SORT_FILE$", hslRead, str_SQL_Sort) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_TempSortFile, "HxMetEdCompCmd"); } // }} "" // {{ 2000 1 0 "122cab7f_1c4c_4071_babbea26fffe0b53" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { int_Count = 0; while ( (SortFile.Eof() == 0) ) { int_Count = int_Count + 1; // }} "" // {{ 2001 1 0 "9d4325a7_4872_4ba4_96dac0c871d83173" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == SortFile.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2002 1 0 "76daa390_6f85_49d1_9981bd2412cd7a2e" "{B31F3537-5D80-11d4-A5EB-0050DA737D89}" if( 0 == SortFile2.WriteRecord() ) { MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2003 1 0 "e24e2fe4_e8e7_4605_b2669f4a54695fdc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Count == int_StackCount) { // }} "" // {{ 2004 1 0 "fb2e872a_21c6_4421_a823d77a89ba5bd6" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2005 1 0 "e24e2fe4_e8e7_4605_b2669f4a54695fdc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2006 1 0 "122cab7f_1c4c_4071_babbea26fffe0b53" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2007 1 0 "8164edb8_d008_4886_9ca48115d6274731" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != SortFile.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } SortFile.RemoveFields(); // }} "" // {{ 2008 1 0 "03af9fc9_f8f6_412e_be2e498133c76e4c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2009 1 0 "38a1153d_28ed_443f_a8b6d1fce6504cfd" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2010 1 0 "1401c62a_6519_4864_8053a849f7affc7e" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TempPlateStack.SetCurrentPosition(1); // }} "" // {{ 2011 1 0 "88859c3a_81e8_4eef_994a48f1c2ce76f4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2012 1 0 "2828a0ae_7bbf_4ee2_bf87e689a652014e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2013 1 0 "0e186ed3_8a42_42c8_ba4475c815f7df6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Sort = StrConcat4(Translate("SELECT * FROM [SORT_FILE2$] "), Translate(""), Translate(" ORDER BY STACK_NUM ASC, Z_COORD DESC"), Translate("")); // }} "" // {{ 2014 1 0 "d3a9bd2b_8dc4_40a8_93af2e19e956075d" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" SortFile2.AddField("STACK_NUM", int_StackNum, hslInteger); SortFile2.AddField("LAB_ID", str_LabID, hslString, 255); SortFile2.AddField("POS_ID", str_PosID, hslString, 255); SortFile2.AddField("X_COORD", flt_X_Coord, hslFloat); SortFile2.AddField("Y_COORD", flt_Y_Coord, hslFloat); SortFile2.AddField("Z_COORD", flt_Z_Coord, hslFloat); if( 0 == SortFile2.Open(str_TempSortFile + " " + "SORT_FILE2$", hslRead, str_SQL_Sort) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_TempSortFile, "HxMetEdCompCmd"); } // }} "" // {{ 2015 1 0 "0404a4bc_309c_44ce_bbc6bb3a14eaa86d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while ( (SortFile2.Eof() == 0) ) { // }} "" // {{ 2016 1 0 "ca777f95_f746_4b36_8024d1646f94addf" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == SortFile2.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 2017 1 0 "012ff4f6_8e18_4743_804f4771e92cd211" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq_PlateStack_Count, str_LabID, str_PosID); // }} "" // {{ 2018 1 0 "0404a4bc_309c_44ce_bbc6bb3a14eaa86d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2019 1 0 "e456b26f_74f9_446a_ac874137f7fe22f0" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != SortFile2.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } SortFile2.RemoveFields(); // }} "" // {{ 2020 1 0 "6ae8506b_01e2_45b0_a15ba425bf3e56ed" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq_PlateStack_Count.SetCurrentPosition(1); // }} "" // {{ 2021 1 0 "2828a0ae_7bbf_4ee2_bf87e689a652014e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2022 1 0 "f2df1472_3ccd_4145_99f73df6b839e529" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 2024 1 0 "f2df1472_3ccd_4145_99f73df6b839e529" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "PLATE_STACK_CountPlateStacks" "End" } // }} "" // {{{ 5 "SPLIT_WELLS_AddContainersToWell" "Begin" function SPLIT_WELLS_AddContainersToWell( device & ML_STAR, sequence i_seq_SequenceToSplit, variable i_int_SequenceIndex, variable i_int_MaxSplitNumber, sequence & io_seq_SplitSequence ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable int_Count; private variable int_MaxPositions_Sequence; private variable str_SequenceIndex; private variable str_CurrentPosID; private variable int_Index; private variable str_CurrentLabID; private variable str_ConfigFile; private variable flt_ContainerBottomWidth; private variable flt_ContainerBottomHeight; private variable flt_ContainerTopWidth; private variable int_ContainerShape; private variable str_ContainerFile; private variable str_ContainerFileName; private variable strFunctionName_Cut; private variable str_KeySearch; private variable int_SegmentCount; // {{ 5 "SPLIT_WELLS_AddContainersToWell" "InitLocals" // }} "" // {{{ 2146 1 0 "9740e189_7c1b_4399_bdadbb4acf7b0aa0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SPLIT_WELLS_GLOBAL::InitializeVariables(); // }} "" // {{ 2147 1 0 "3002445f_c8ed_4618_80f20cf88a7835a5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2148 1 0 "0561789e_b3d0_4ea5_bf789aa2c48ddef6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 2150 1 0 "3a72cd46_db84_4117_a9d2c92bb981c495" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 2151 1 0 "cce40cdd_65ef_4db3_87fa2be6c613f7ce" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 2152 1 0 "b80b15c0_f363_49f2_bd25b31e190ff005" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 2153 1 0 "18d45ae6_a570_4943_a9ac68898c9fa888" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 2154 1 0 "e61945f0_8b3a_4010_9e48ea41a614aba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 2156 1 0 "3002445f_c8ed_4618_80f20cf88a7835a5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2157 1 0 "276f67df_3e1f_4a2a_b2fa6951918b50e1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (SPLIT_WELLS_GLOBAL::BOOL_LIBRARY_INITIALIZED == 0) { // }} "" // {{{ 2158 1 0 "ac0d13dc_aeed_49e1_9323978dc1c8416c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPLIT_WELLS::InitializeSplitWells(); // }} "" // {{ 2159 1 0 "276f67df_3e1f_4a2a_b2fa6951918b50e1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2160 1 0 "7d37525c_98cb_49df_bad4408ae8d4f0aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2161 1 0 "5b38ff28_d67b_4377_ab3c328da5b78ee3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2162 1 0 "08d37428_1f97_4ca8_86edcadecc7c354f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SequenceIndex = StrConcat2(i_int_SequenceIndex, Translate("")); // }} "" // {{{ 2163 1 0 "e82da283_6267_4861_98c0938820772f6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Index = StrIVal(str_SequenceIndex); // }} "" // {{{ 2164 1 0 "e40c8e4e_c79a_4e9a_8fc863e030d15479" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_MaxPositions_Sequence = SeqGetTotal(i_seq_SequenceToSplit); // }} "" // {{ 2165 1 0 "c42378bf_65b2_4575_adff944cfe7cf2bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index < 1) { // }} "" // {{ 2166 1 0 "999a93bb_dbf2_47a6_9055cbf45481e4f2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=================================\nIndex is less than 1\n=================================")); // }} "" // {{{ 2167 1 0 "72c9f125_f099_4f4a_a590a3f6bf474e19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Split_Wells - Sequence index is less than 1")); // }} "" // {{ 2168 1 0 "c42378bf_65b2_4575_adff944cfe7cf2bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2169 1 0 "e29edb38_9c3b_47c7_92cad0ac440652bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index > int_MaxPositions_Sequence) { // }} "" // {{ 2170 1 0 "c2616d47_ad9e_45b1_ac589eb8e410de1e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=================================\nIndex is greater than the number of sequence positions\n=================================")); // }} "" // {{{ 2171 1 0 "dfb9f0e4_bdc6_4d92_abe8b8a6e66ea7a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Split_Wells - Sequence index is greater than the positions in the sequence")); // }} "" // {{ 2172 1 0 "e29edb38_9c3b_47c7_92cad0ac440652bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2173 1 0 "7d37525c_98cb_49df_bad4408ae8d4f0aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2174 1 0 "927271b1_b211_4de9_b320d05bf7a9d76b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2175 1 0 "72c491d1_0d44_4fc0_9f0fdde713c0e70f" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_SequenceToSplit.SetCurrentPosition(i_int_SequenceIndex); // }} "" // {{{ 2176 1 0 "9ca54737_6bf7_46d5_9b675179e1f23d85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentLabID = SeqGetLabwareId(i_seq_SequenceToSplit); // }} "" // {{{ 2177 1 0 "556efab7_30ef_46ab_8e8bfccdcad6e84a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentPosID = SeqGetPositionId(i_seq_SequenceToSplit); // }} "" // {{{ 2178 1 0 "6766a605_97ab_400f_86dec34e0b52f9c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetConfigurationFile(ML_STAR, str_CurrentLabID, str_ConfigFile); // }} "" // {{{ 2179 1 0 "0df03131_627b_4134_ba761a638f16030c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" int_Index = LOOKUP::Lookup(SPLIT_WELLS_GLOBAL::ARR_LABWARE_CONFIG_FILE, str_ConfigFile); // }} "" // {{ 2180 1 0 "c8ab8f5f_100d_4722_906e5555d659943a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index == 0) { // }} "" // {{{ 2181 1 0 "5c63a9d9_6e7e_49a1_bfa6b8bf7b7cb9b4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_CurrentLabID, str_CurrentPosID, str_ContainerFile); // }} "" // {{{ 2182 1 0 "73b5f1d0_cf57_413b_86135190f3c76a0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ContainerFileName = HSLExtensions::File::GetFileNameWithoutExtension(str_ContainerFile); // }} "" // {{{ 2183 1 0 "52e209aa_bffc_42ff_92519a677dbd45b5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, Translate("Segments"), int_SegmentCount); // }} "" // {{{ 2184 1 0 "8369981c_32f9_4893_8c8c603402e0edd1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::_ConvertToInt(int_SegmentCount); // }} "" // {{{ 2185 1 0 "604fe7e7_8569_4f18_a4574e047dd8a543" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, Translate("Shape"), int_ContainerShape); // }} "" // {{{ 2186 1 0 "e717d2aa_eb46_4fe2_bb8c58d147a1946d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::_ConvertToInt(int_ContainerShape); // }} "" // {{ 2187 1 0 "c45ed826_a75d_4aeb_86c636c17da28e93" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 0) { // }} "" // {{ 2188 1 0 "b6593a84_be41_4e83_9441729be6b48753" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2189 1 0 "aa1e65d4_cced_43db_aa4063db1d1c62d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_KeySearch = StrConcat4(int_SegmentCount, Translate(".DY"), Translate(""), Translate("")); // }} "" // {{{ 2190 1 0 "bd6d027c_7331_4d9e_82fac6c13bc5565f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerTopWidth); // }} "" // {{{ 2191 1 0 "51725053_d2bc_4b16_ae47ee844de3274a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::_ConvertToFloat(flt_ContainerTopWidth); // }} "" // {{{ 2192 1 0 "ff1145b1_eb4d_460f_900cc603e9bfc09d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_KeySearch = StrConcat4(int_SegmentCount, Translate(".DY"), Translate(""), Translate("")); // }} "" // {{{ 2193 1 0 "fa44b801_dd35_4997_902d52c9dc04a5dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerBottomWidth); // }} "" // {{{ 2194 1 0 "07d4a299_229a_4c53_86e9254d158a2827" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::_ConvertToFloat(flt_ContainerBottomWidth); // }} "" // {{{ 2195 1 0 "1653ea22_3ea1_45bb_b1b50296d0079131" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_KeySearch = StrConcat4(int_SegmentCount, Translate(".Max"), Translate(""), Translate("")); // }} "" // {{{ 2196 1 0 "5500cfc1_1081_454b_b006003bdcf90c83" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerBottomHeight); // }} "" // {{{ 2197 1 0 "7f28e1b3_2aa9_4f0e_a1721bb8500fb6db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::_ConvertToFloat(flt_ContainerBottomHeight); // }} "" // {{ 2198 1 0 "c45ed826_a75d_4aeb_86c636c17da28e93" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2199 1 0 "3c030e67_062a_49da_a6c9d7843d3a2895" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 1) { // }} "" // {{ 2200 1 0 "44aa388d_77d7_46bd_811ca05e7ff3afdd" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2201 1 0 "4e047bd3_e0a6_4deb_84c6fcb0b7abef76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_KeySearch = StrConcat4(int_SegmentCount, Translate(".DX"), Translate(""), Translate("")); // }} "" // {{{ 2202 1 0 "998c5d7e_e14a_422d_b7cf6afabb37f3dc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerTopWidth); // }} "" // {{{ 2203 1 0 "6dab221f_e8cb_49cd_9a16e286a23eae45" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::_ConvertToFloat(flt_ContainerTopWidth); // }} "" // {{{ 2204 1 0 "1e090604_8459_49fd_b35b6a7adef3769c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_KeySearch = StrConcat4(int_SegmentCount, Translate(".DY"), Translate(""), Translate("")); // }} "" // {{{ 2205 1 0 "3af9f71a_1fa8_417d_a89d1dfc1274916d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerBottomWidth); // }} "" // {{{ 2206 1 0 "2b804b38_c35f_4e2c_a6ece4616d0bca40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::_ConvertToFloat(flt_ContainerBottomWidth); // }} "" // {{{ 2207 1 0 "1ab9b11c_d991_4f5e_93cdfee6997eae87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_KeySearch = StrConcat4(int_SegmentCount, Translate(".Max"), Translate(""), Translate("")); // }} "" // {{{ 2208 1 0 "90b74c10_cb67_43ea_b160083771c4a2d0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerBottomHeight); // }} "" // {{{ 2209 1 0 "a903f6e8_602a_452d_ab95563165f5aee6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::_ConvertToFloat(flt_ContainerBottomHeight); // }} "" // {{ 2210 1 0 "3c030e67_062a_49da_a6c9d7843d3a2895" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2211 1 0 "522e12ae_80eb_4e6d_96caeceb4f22337a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 2) { // }} "" // {{ 2212 1 0 "132eb169_bbdf_4332_88b1b69fe4d0cd26" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2213 1 0 "f86a11d8_ba1c_4488_9ed47eb9ba5cd7c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_KeySearch = StrConcat4(int_SegmentCount, Translate(".DX"), Translate(""), Translate("")); // }} "" // {{{ 2214 1 0 "942748bd_98b3_4ac0_bc20353140143eb1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerTopWidth); // }} "" // {{{ 2215 1 0 "1b80b252_ef49_45af_9afa7bdf24acbaf6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::_ConvertToFloat(flt_ContainerTopWidth); // }} "" // {{{ 2216 1 0 "d309cc2f_2da7_4d73_87b33388bcf907c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_KeySearch = StrConcat4(int_SegmentCount, Translate(".DY"), Translate(""), Translate("")); // }} "" // {{{ 2217 1 0 "b55e2c23_bba6_46fe_83a87c0bcc018025" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerBottomWidth); // }} "" // {{{ 2218 1 0 "01b1ef5c_b4e2_46f2_817bd8833511fd2c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::_ConvertToFloat(flt_ContainerBottomWidth); // }} "" // {{{ 2219 1 0 "1df538a7_c15b_4b48_863aab96aadc8b66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_KeySearch = StrConcat4(int_SegmentCount, Translate(".Max"), Translate(""), Translate("")); // }} "" // {{{ 2220 1 0 "bcccdd36_1953_46b3_ad23f04a66162dfe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerBottomHeight); // }} "" // {{{ 2221 1 0 "62a77db0_7040_4419_9f7637a20a52309c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::_ConvertToFloat(flt_ContainerBottomHeight); // }} "" // {{ 2222 1 0 "522e12ae_80eb_4e6d_96caeceb4f22337a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2223 1 0 "3d01e867_da5c_40fa_8536c5d27e00e080" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 3) { // }} "" // {{ 2224 1 0 "bd6fe9cc_c29a_449b_94c7355467be64df" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2225 1 0 "254a8376_e7fc_4e49_88984959e052c3ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_KeySearch = StrConcat4(int_SegmentCount, Translate(".DX"), Translate(""), Translate("")); // }} "" // {{{ 2226 1 0 "f176664d_b09c_4c56_ac53309a46dd86e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerTopWidth); // }} "" // {{{ 2227 1 0 "55f390b6_4f35_4690_a9205fe86ca7e089" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::_ConvertToFloat(flt_ContainerTopWidth); // }} "" // {{{ 2228 1 0 "d53795fd_2202_48e5_a2834303d1d9c3fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_KeySearch = StrConcat4(int_SegmentCount, Translate(".DY"), Translate(""), Translate("")); // }} "" // {{{ 2229 1 0 "4c7f73ad_cf80_4125_b6a1f33c516d0655" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerBottomWidth); // }} "" // {{{ 2230 1 0 "1a66fd42_b279_4891_88a00f9ca31e00fc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::_ConvertToFloat(flt_ContainerBottomWidth); // }} "" // {{{ 2231 1 0 "146af97c_ba62_40fa_bbe933f1b8918ce7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_KeySearch = StrConcat4(int_SegmentCount, Translate(".Max"), Translate(""), Translate("")); // }} "" // {{{ 2232 1 0 "0f489173_3951_4b91_8b7db1b1c4a37e7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerBottomHeight); // }} "" // {{{ 2233 1 0 "1aa9e881_10cd_41f8_a54d6cc456fc6c74" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::_ConvertToFloat(flt_ContainerBottomHeight); // }} "" // {{ 2234 1 0 "3d01e867_da5c_40fa_8536c5d27e00e080" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2235 1 0 "40bfc4c4_90db_4226_adde218862fd276b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 4) { // }} "" // {{ 2236 1 0 "9e856cdc_d16e_404b_b4571365320cb0fb" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2237 1 0 "a9e625e6_5b88_40c4_bdb5ee58b091b2f4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_ContainerBottomWidth = 0.0; // }} "" // {{{ 2238 1 0 "4f7d8735_4f42_4d94_93a0e8e08d60d812" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_KeySearch = StrConcat4(int_SegmentCount, Translate(".DX"), Translate(""), Translate("")); // }} "" // {{{ 2239 1 0 "5f74467c_e81a_4488_90f5928fa358546c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerTopWidth); // }} "" // {{{ 2240 1 0 "763e0d69_070d_4454_b43fe166180cd4a5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::_ConvertToFloat(flt_ContainerTopWidth); // }} "" // {{{ 2241 1 0 "11c064ea_4091_4f4c_b82d6d8d30903b3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_KeySearch = StrConcat4(int_SegmentCount, Translate(".Max"), Translate(""), Translate("")); // }} "" // {{{ 2242 1 0 "ed0d4938_1d52_4368_a037d52f52f340ac" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerBottomHeight); // }} "" // {{{ 2243 1 0 "806c751d_3b69_4b29_b02200d01a268a90" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::_ConvertToFloat(flt_ContainerBottomHeight); // }} "" // {{ 2244 1 0 "40bfc4c4_90db_4226_adde218862fd276b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2245 1 0 "96f981f2_c958_4527_a11c2c427befdd54" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 5) { // }} "" // {{ 2246 1 0 "6327241f_18a7_4d1b_a8cd21fafc296372" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2247 1 0 "5cd6975c_8242_499d_b7b8b31458407a73" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_ContainerBottomWidth = 0.0; // }} "" // {{{ 2248 1 0 "17195c64_a253_45b8_9eb7c254ff70774c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_KeySearch = StrConcat4(int_SegmentCount, Translate(".DX"), Translate(""), Translate("")); // }} "" // {{{ 2249 1 0 "df6d2e6d_ccba_405d_aa9be69411ca3c82" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerTopWidth); // }} "" // {{{ 2250 1 0 "209eee43_dcd1_42dc_97f189b20b522530" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::_ConvertToFloat(flt_ContainerTopWidth); // }} "" // {{{ 2251 1 0 "a04a39c4_0877_49d1_850e174e6577d204" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_KeySearch = StrConcat4(int_SegmentCount, Translate(".Max"), Translate(""), Translate("")); // }} "" // {{{ 2252 1 0 "5237f268_7009_4149_86cd88c0f12c8238" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetDefinitionFileValue(str_ContainerFile, str_KeySearch, flt_ContainerBottomHeight); // }} "" // {{{ 2253 1 0 "d6f14b6a_be5a_4860_86863cbee9176d23" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::_ConvertToFloat(flt_ContainerBottomHeight); // }} "" // {{ 2254 1 0 "96f981f2_c958_4527_a11c2c427befdd54" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2255 1 0 "0342a64f_5ecf_41a8_ba852671f0fbc692" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" SPLIT_WELLS_GLOBAL::ARR_CONTAINER_SHAPE.AddAsLast(int_ContainerShape); // }} "" // {{ 2256 1 0 "cde5e7a3_6349_4a8e_b00331adfe4d905e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" SPLIT_WELLS_GLOBAL::ARR_CONTAINER_CONFIG_FILE.AddAsLast(str_ContainerFile); // }} "" // {{ 2257 1 0 "4a4bdb9e_5b3e_4d4d_b3d77b305685a33e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" SPLIT_WELLS_GLOBAL::ARR_CONTAINER_TOP_WIDTH.AddAsLast(flt_ContainerTopWidth); // }} "" // {{ 2258 1 0 "da09baee_77eb_4f0a_b89e8b786c7c2fa5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" SPLIT_WELLS_GLOBAL::ARR_CONTAINER_BOTTOM_WIDTH.AddAsLast(flt_ContainerBottomWidth); // }} "" // {{ 2259 1 0 "e481ea9d_c659_4093_81c328970d8a3ef6" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" SPLIT_WELLS_GLOBAL::ARR_CONTAINER_BOTTOM_HEIGHT.AddAsLast(flt_ContainerBottomHeight); // }} "" // {{ 2260 1 0 "c8ab8f5f_100d_4722_906e5555d659943a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2261 1 0 "8bc0fc55_4875_4d42_a3a46397826d8f26" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" int_ContainerShape=SPLIT_WELLS_GLOBAL::ARR_CONTAINER_SHAPE.GetAt(int_Index-1); // }} "" // {{ 2262 1 0 "69fe191f_9bee_4cd6_b134c4f594956f5d" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ContainerTopWidth=SPLIT_WELLS_GLOBAL::ARR_CONTAINER_TOP_WIDTH.GetAt(int_Index-1); // }} "" // {{ 2263 1 0 "1f1526f8_d1f9_432d_bb57d106fa66b332" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ContainerBottomWidth=SPLIT_WELLS_GLOBAL::ARR_CONTAINER_BOTTOM_WIDTH.GetAt(int_Index-1); // }} "" // {{ 2264 1 0 "b1951062_9c48_4751_9fa4542f1cdc9f53" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_ContainerBottomHeight=SPLIT_WELLS_GLOBAL::ARR_CONTAINER_BOTTOM_HEIGHT.GetAt(int_Index-1); // }} "" // {{ 2265 1 0 "d91b5d9c_c9a7_4f06_9941ee3bf9c94dad" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_ContainerFile=SPLIT_WELLS_GLOBAL::ARR_CONTAINER_CONFIG_FILE.GetAt(int_Index-1); // }} "" // {{ 2266 1 0 "c8ab8f5f_100d_4722_906e5555d659943a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2267 1 0 "8bd2a14f_e9d2_4215_812ddd528a579805" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2268 1 0 "fd2ff78d_314d_40d1_8d8412ebeebb7135" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 0) { // }} "" // {{ 2269 1 0 "90114a43_8695_4ff0_97c27049cb0fe75d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("======================================\nFLAT WELLS\n======================================")); // }} "" // {{{ 2270 1 0 "940a1fc3_2e1e_40bf_8f4f6c3bf85927a8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPLIT_WELLS::SplitWellsFlatBottom(ML_STAR, i_seq_SequenceToSplit, i_int_SequenceIndex, i_int_MaxSplitNumber, io_seq_SplitSequence); // }} "" // {{ 2271 1 0 "fd2ff78d_314d_40d1_8d8412ebeebb7135" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2272 1 0 "ee75e07e_2570_454f_9ba2aaf0f19be32b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 1) { // }} "" // {{ 2273 1 0 "984f636f_0b2e_48a7_b1258d28231c1d7f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("======================================\nFLAT WELLS\n======================================")); // }} "" // {{{ 2274 1 0 "1ed41d68_da0c_440e_a5e27ad3291b4dc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPLIT_WELLS::SplitWellsFlatBottom(ML_STAR, i_seq_SequenceToSplit, i_int_SequenceIndex, i_int_MaxSplitNumber, io_seq_SplitSequence); // }} "" // {{ 2275 1 0 "ee75e07e_2570_454f_9ba2aaf0f19be32b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2276 1 0 "a8d8e4ac_625b_447e_a83e7305c309901f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 2) { // }} "" // {{ 2277 1 0 "82a6b687_4d7a_46d3_b59db2e1b4ae8d30" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("======================================\nFLAT WELLS\n======================================")); // }} "" // {{{ 2278 1 0 "57c4b733_a989_4e90_b57dcd8e8cf0da75" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPLIT_WELLS::SplitWellsFlatBottom(ML_STAR, i_seq_SequenceToSplit, i_int_SequenceIndex, i_int_MaxSplitNumber, io_seq_SplitSequence); // }} "" // {{ 2279 1 0 "a8d8e4ac_625b_447e_a83e7305c309901f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2280 1 0 "17ab64c7_9d7e_42ad_9d0c7777242cb14a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 3) { // }} "" // {{ 2281 1 0 "9deb7db7_2e25_49a9_88eab3b49b94062f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("======================================\nANGLE WELLS\n======================================")); // }} "" // {{{ 2282 1 0 "ea7bcdda_28df_48d4_83e9a75b847d6e78" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPLIT_WELLS::SplitWellsVBottom(ML_STAR, i_seq_SequenceToSplit, i_int_SequenceIndex, i_int_MaxSplitNumber, flt_ContainerTopWidth, flt_ContainerBottomWidth, flt_ContainerBottomHeight, io_seq_SplitSequence); // }} "" // {{ 2283 1 0 "17ab64c7_9d7e_42ad_9d0c7777242cb14a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2284 1 0 "a30056f8_fab1_4e9c_80af48a7003dcd2e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 4) { // }} "" // {{ 2285 1 0 "d70f13c7_e4a9_4bb9_8a8c54e10f951b04" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("======================================\nANGLE WELLS\n======================================")); // }} "" // {{{ 2286 1 0 "3a4de7f0_8a1c_4bb1_87dc2420e33216db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPLIT_WELLS::SplitWellsVBottom(ML_STAR, i_seq_SequenceToSplit, i_int_SequenceIndex, i_int_MaxSplitNumber, flt_ContainerTopWidth, flt_ContainerBottomWidth, flt_ContainerBottomHeight, io_seq_SplitSequence); // }} "" // {{ 2287 1 0 "a30056f8_fab1_4e9c_80af48a7003dcd2e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2288 1 0 "0a535777_3bc6_4508_9126bb2e49fab81e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ContainerShape == 5) { // }} "" // {{ 2289 1 0 "12aaa2f0_be39_4213_9845b70c562d89e6" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("======================================\nANGLE WELLS\n======================================")); // }} "" // {{{ 2290 1 0 "06bba2df_3ae3_43f7_8539856eed4cd733" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPLIT_WELLS::SplitWellsVBottom(ML_STAR, i_seq_SequenceToSplit, i_int_SequenceIndex, i_int_MaxSplitNumber, flt_ContainerTopWidth, flt_ContainerBottomWidth, flt_ContainerBottomHeight, io_seq_SplitSequence); // }} "" // {{ 2291 1 0 "0a535777_3bc6_4508_9126bb2e49fab81e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2292 1 0 "8bd2a14f_e9d2_4215_812ddd528a579805" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2293 1 0 "ca5b3741_dd04_414a_830ca8628e9c1995" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 2295 1 0 "ca5b3741_dd04_414a_830ca8628e9c1995" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "SPLIT_WELLS_AddContainersToWell" "End" } // }} "" // {{{ 5 "SPLIT_WELLS_RemoveContainers" "Begin" function SPLIT_WELLS_RemoveContainers( device & ML_STAR, variable i_bool_UpdateVolumes ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable int_Count; private variable strFunctionName_Cut; // {{ 5 "SPLIT_WELLS_RemoveContainers" "InitLocals" // }} "" // {{ 2297 1 0 "cd84f7fa_ffd9_4bab_87cf42a7eb70c364" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2298 1 0 "67892ee1_04de_4826_8f53a8f57aca4442" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 2300 1 0 "04ce9541_2209_431e_a2bd421862aa4338" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 2301 1 0 "d013949c_c9f3_4732_9138909f2581a20d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 2302 1 0 "f5f78043_5e4f_4b74_bd474369855d0c1b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 2303 1 0 "beb7ac42_8787_4c71_a12cca4fccef4d4b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 2304 1 0 "b8d116d1_7bfb_4b0b_ad2c26932c634cf7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 2306 1 0 "cd84f7fa_ffd9_4bab_87cf42a7eb70c364" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2307 1 0 "bc292a11_1518_4dea_8053af199dcf5ea3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPLIT_WELLS::RemoveContainers(ML_STAR, i_bool_UpdateVolumes); // }} "" // {{ 2308 1 0 "cb2c4107_325a_4199_8453491cd702c7dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 2310 1 0 "cb2c4107_325a_4199_8453491cd702c7dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "SPLIT_WELLS_RemoveContainers" "End" } // }} "" // {{{ 5 "LIQUID_LEVEL_MeasureLiquidSingle" "Begin" function LIQUID_LEVEL_MeasureLiquidSingle( device & ML_STAR, sequence i_seq_FullReservoirSequence, sequence & i_seq_TipsToUse, sequence i_seq_TipWaste, variable i_str_TipCounter, variable i_bool_IncrementTipSequence, variable i_int_LLD_Sensitivity, variable i_bool_ConvertTouL, variable & o_flt_VolumeMeasured ) variable { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable int_Count; private variable bool_FunctionSuccessful; private variable strFunctionName_Cut; // {{ 5 "LIQUID_LEVEL_MeasureLiquidSingle" "InitLocals" o_flt_VolumeMeasured = 0; // }} "" // {{ 1551 1 0 "bbd37a7e_e6ff_4711_9d37d0db70f2c928" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1552 1 0 "9a1e779e_fe37_4b6b_a3380b2a1e8a9f78" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1554 1 0 "d9cafebd_865e_49e6_805eb179ca4cdd2d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 1555 1 0 "1d8c348f_ebaf_46cf_9a2b8b43983bfa8c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1556 1 0 "e6a212c3_6198_4fcc_98558ec55def2a5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 1557 1 0 "f8a83d4d_e38d_43a2_8e04a240f626c75d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1558 1 0 "fcece0e8_3216_4fc1_93b7530c92eee2a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 1560 1 0 "bbd37a7e_e6ff_4711_9d37d0db70f2c928" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1561 1 0 "2f13cfb8_9e3a_4d0b_934c7696682e677b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{{ 1562 1 0 "8be9f04f_d14c_435a_8694341300a045bf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_FunctionSuccessful = LIQUID_LEVEL_CHECK::MeasureLiquidLevel_Single(ML_STAR, i_seq_FullReservoirSequence, i_seq_TipsToUse, i_seq_TipWaste, i_str_TipCounter, i_bool_IncrementTipSequence, i_int_LLD_Sensitivity, i_bool_ConvertTouL, o_flt_VolumeMeasured); // }} "" // {{ 1563 1 0 "9d6b2c68_4b31_4846_ac13c0e1cc12b2e0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 1565 1 0 "9d6b2c68_4b31_4846_ac13c0e1cc12b2e0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1566 1 0 "432f3b6d_3536_4828_a3f25463cf9751dc" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (bool_FunctionSuccessful); // }} "" // {{{ 5 "LIQUID_LEVEL_MeasureLiquidSingle" "End" } // }} "" // {{{ 5 "LIQUID_LEVEL_MeasureLiquidMulti" "Begin" function LIQUID_LEVEL_MeasureLiquidMulti( device & ML_STAR, sequence & i_arrseq_FullReservoirSequences[], sequence & i_seq_TipsToUse, sequence i_seq_TipWaste, variable i_str_TipCounter, variable i_int_LLD_Sensitivity, variable i_bool_ConvertTouL, variable & o_arr_VolumesMeasured[] ) variable { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable bool_FunctionSuccessful; private variable int_Count; private variable strFunctionName_Cut; // {{ 5 "LIQUID_LEVEL_MeasureLiquidMulti" "InitLocals" o_arr_VolumesMeasured.SetSize( 0); // }} "" // {{ 1534 1 0 "56a57b07_b0be_4f1f_8104ee8d3648af70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1535 1 0 "fb150298_430b_427b_91d6858278430672" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1537 1 0 "9067eb45_25e7_4722_87690023cef921bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 1538 1 0 "de07a8ec_b4c1_46ab_94150801e42e0558" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1539 1 0 "a54b8965_ae62_474b_a09baadc63164362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 1540 1 0 "52d39605_9e78_4225_9e0051bd9524b045" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1541 1 0 "1f2235c6_eb6f_4092_8463f5f05e547cdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 1543 1 0 "56a57b07_b0be_4f1f_8104ee8d3648af70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1544 1 0 "41f70261_7656_49ac_be65714b157dbe5a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{{ 1545 1 0 "a7e846ef_6897_4301_8f49f79825497248" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_FunctionSuccessful = LIQUID_LEVEL_CHECK::MeasureLiquidLevel_Multi(ML_STAR, i_arrseq_FullReservoirSequences, i_seq_TipsToUse, i_seq_TipWaste, i_str_TipCounter, i_int_LLD_Sensitivity, i_bool_ConvertTouL, o_arr_VolumesMeasured); // }} "" // {{ 1546 1 0 "2611e881_56f7_4ace_b8de50b64d3a4bdd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 1548 1 0 "2611e881_56f7_4ace_b8de50b64d3a4bdd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1549 1 0 "3f168ff3_50ee_4634_b1378c64fd1712f0" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (bool_FunctionSuccessful); // }} "" // {{{ 5 "LIQUID_LEVEL_MeasureLiquidMulti" "End" } // }} "" // {{{ 5 "LIQUID_LEVEL_GetLiquidLevelHeight" "Begin" function LIQUID_LEVEL_GetLiquidLevelHeight( device & ML_STAR, variable i_str_LiquidLevelReturn, sequence i_seq_Labware, variable i_int_Channel, variable & o_flt_LiquidHeight ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable int_Count; private variable strFunctionName_Cut; private variable str_LabID; // {{ 5 "LIQUID_LEVEL_GetLiquidLevelHeight" "InitLocals" o_flt_LiquidHeight = 0; // }} "" // {{ 1516 1 0 "a086588b_4acb_4619_8f04776ef83e3db2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1517 1 0 "e5cca96d_f439_4751_979db4aba90f7437" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1519 1 0 "5ebec32f_3f4e_4580_ad2b9de1f1c5859f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 1520 1 0 "6e99261b_ced2_48ab_a1bb6c4b2a89d77e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1521 1 0 "96b3ced6_dad2_46ad_a3a2a1646f6c3184" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 1522 1 0 "d98776d1_ae1d_4104_afd49475e7d06dd3" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1523 1 0 "428b63e5_33c8_4009_8e41e22ad4fd153b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 1525 1 0 "a086588b_4acb_4619_8f04776ef83e3db2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1526 1 0 "35924568_f966_4c71_b5418fba319b6f14" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{{ 1527 1 0 "1796c362_98b2_4d33_9abf662ada19d00e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LIQUID_LEVEL_CHECK::FindLiquidHeight(ML_STAR, i_str_LiquidLevelReturn, i_seq_Labware, i_int_Channel, o_flt_LiquidHeight); // }} "" // {{{ 1528 1 0 "e45e6b0c_5f53_4a7a_8d32057a5fd5cd01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_Labware); // }} "" Trace("******** Liquid Level Height for ",str_LabID," is ",o_flt_LiquidHeight); // {{ 1530 1 0 "83406c53_82ae_480f_a14b3e61633f0afd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 1532 1 0 "83406c53_82ae_480f_a14b3e61633f0afd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "LIQUID_LEVEL_GetLiquidLevelHeight" "End" } // }} "" // {{{ 5 "CHAN_ACCESS_Sort1Sequence" "Begin" function CHAN_ACCESS_Sort1Sequence( device & ML_STAR, sequence & io_Sequence_to_Sort, variable i_Channel_Type, variable i_Sort_by_Labware, variable i_Sort_by_XY, variable i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence & o_Sorted_Sequence, variable & o_Channel_Pattern ) variable { // }} "" private variable status; private variable used_exclusion; private variable channel_raster; private variable num_to_sort; private variable in_group; private variable pos1; private variable restriction_raster; private variable num_used; private variable in_index; private variable update_sql; private variable y_min; private variable y_max; private variable ret_Number_Remaining; private variable num_labhand_channels; private variable total_channels; private variable file_index; private variable null; private variable restriction1; private variable not_used; private variable lab1; private variable sort_file; private variable num_1mL_channels; private variable prev_y_coord; private variable filter_sql; private variable count_sql; private variable prev_x_coord; private variable order_by; private variable num_5mL_channels; private variable y1; private variable count_value; private variable channel_number; private variable x1; private variable line_number; private variable sequence_name; private sequence temp_seq1; private file Count_Available; private file Update_FIle; private file Sort_File; private variable arr_Y_Min[]; private variable arr_Y_Max[]; private variable arr_line_numbers[]; private variable bool_FileExists; private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; // {{ 5 "CHAN_ACCESS_Sort1Sequence" "InitLocals" { sequence __temp; o_Sorted_Sequence = __temp; } o_Channel_Pattern = 0; // }} "" // {{ 3 1 0 "d6f3fc22_7f9a_4989_a9a14fc455fd3c07" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 4 1 0 "2dba5073_0b0c_41f8_bd562729012a79ae" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 6 1 0 "cd6a9b1a_4754_4705_a20fb1d817421dab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 7 1 0 "e9d33642_9e8e_441b_a24b03d0ebb532e3" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 8 1 0 "71859bb0_4b46_4d9d_9c9ac8dfe0e43c2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 9 1 0 "5697df8f_5556_4863_a1ad5ebee7679cbe" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 10 1 0 "8c2a7383_cd1a_42b3_95124c9b77137785" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 12 1 0 "d6f3fc22_7f9a_4989_a9a14fc455fd3c07" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 13 1 0 "b0725c22_fda8_4015_9137316a1b954471" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 14 1 0 "c5e2774a_aa75_4e50_a7c4c835bb139e64" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 15 1 0 "8db8b7b8_6c6a_4332_a835386fab8c7c30" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 16 1 0 "3831ca5f_ab0a_4a2c_8a12b8c994337837" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{{ 17 1 0 "9c1b70e0_9604_4f29_aa911457e0a71bc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_5mL_channels = DevGetCfgValueWithKey(ML_STAR, 43); // }} "" // {{{ 18 1 0 "9e8078f0_f002_4e31_a0906b3f835792f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_labhand_channels = DevGetCfgValueWithKey(ML_STAR, 47); // }} "" // {{{ 19 1 0 "13554f0c_dc3c_4abf_9262375de4760861" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Channel_Type = StrConcat2(i_Channel_Type, Translate("")); // }} "" // {{{ 20 1 0 "6cd45cb1_2ce3_44ef_9f5eb1ffc8ffcfd1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Channel_Type = StrIVal(i_Channel_Type); // }} "" // {{ 21 1 0 "89fb37dd_eaed_4f98_90d1ff6c9fd5afcb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type < 0) { // }} "" // {{{ 22 1 0 "97c80ab4_8340_4a92_98f2dfc079ddb7f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace4(Translate("*************** Channel type of "), i_Channel_Type, Translate(" is not recognized by this library!!!!"), Translate("")); // }} "" // {{ 23 1 0 "4a53cda6_4691_4ff8_9a9f329753cb7250" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = 0; // }} "" // {{ 24 1 0 "89fb37dd_eaed_4f98_90d1ff6c9fd5afcb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 25 1 0 "15f8d3c2_e518_4a81_bb6e834ffa682698" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type > 2) { // }} "" // {{{ 26 1 0 "7dc752c7_839b_4204_9c23187c3fe067bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace4(Translate("*************** Channel type of "), i_Channel_Type, Translate(" is not recognized by this library!!!!"), Translate("")); // }} "" // {{ 27 1 0 "48f6c7d1_b36f_4bad_9bb7215e3a998d86" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = 0; // }} "" // {{ 28 1 0 "15f8d3c2_e518_4a81_bb6e834ffa682698" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 29 1 0 "900c32f8_10d7_481a_97d54a8eb66849b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 0) { // }} "" // {{ 30 1 0 "8960a3f9_e0a4_4706_97ed4ab462270328" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = num_1mL_channels; // }} "" // {{ 31 1 0 "900c32f8_10d7_481a_97d54a8eb66849b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 32 1 0 "98a89b12_59af_47ab_b4160536fef74631" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 1) { // }} "" // {{ 33 1 0 "50cab040_35cb_461a_b73f298f00973142" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = num_5mL_channels; // }} "" // {{ 34 1 0 "98a89b12_59af_47ab_b4160536fef74631" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 35 1 0 "96d0d544_aaa4_48a2_9280ef0af21f6919" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 2) { // }} "" // {{ 36 1 0 "3a1c1512_764a_4ce9_a4e32bf0861f00f4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = num_labhand_channels; // }} "" // {{ 37 1 0 "96d0d544_aaa4_48a2_9280ef0af21f6919" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 38 1 0 "c5e2774a_aa75_4e50_a7c4c835bb139e64" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 39 1 0 "6e731c7c_d48e_45aa_a4c2d9255f38545f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 40 1 0 "3bd6ed4a_5a72_4873_957be930a530b10f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_Channel_Pattern = Translate(""); // }} "" // {{ 41 1 0 "0f8f2c00_b4b7_485c_a08b98e61e8565c5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (total_channels == 0) { // }} "" // {{ 42 1 0 "43b0f265_1241_4654_a1ee4c5e154f7428" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 0) { // }} "" // {{{ 43 1 0 "a6765e72_2173_4dfe_b330837939e4bb7d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** There are no 1 mL channels installed!"), Translate("")); // }} "" // {{{ 44 1 0 "480c0969_e36e_4743_bb487758958bdd83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("No 1 mL channels installed!!")); // }} "" // {{ 45 1 0 "43b0f265_1241_4654_a1ee4c5e154f7428" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 46 1 0 "ac77a079_5aa9_4414_b11b8e0244a15df7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 1) { // }} "" // {{{ 47 1 0 "542e5ee0_f2a5_41af_810c5cc8282784e8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** There are no 5 mL channels installed!"), Translate("")); // }} "" // {{{ 48 1 0 "0dc3ca0c_8a0e_4c42_8bd52c4605c595e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("No 5 mL channels installed!!")); // }} "" // {{ 49 1 0 "ac77a079_5aa9_4414_b11b8e0244a15df7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 50 1 0 "25afbf98_97fd_4adb_8ebf13b2ce7e9542" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 2) { // }} "" // {{{ 51 1 0 "14738f7d_6fde_4920_bb3785e27d0dba06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** There are no Lab Handler channels installed!"), Translate("")); // }} "" // {{{ 52 1 0 "9c73d852_df59_49b9_8e836607886df2c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("No Lab Handler channels installed!!")); // }} "" // {{ 53 1 0 "25afbf98_97fd_4adb_8ebf13b2ce7e9542" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 54 1 0 "0f8f2c00_b4b7_485c_a08b98e61e8565c5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 55 1 0 "38df9805_a332_46f3_a2ab55db4d4061f9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, io_Sequence_to_Sort); // }} "" // {{{ 56 1 0 "92e6240f_0773_42a1_a6bd6860aa8c1d67" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, total_channels, 0); // }} "" // {{{ 57 1 0 "3b7547d5_0711_40d1_af97e25f8056e94c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Max_Channel = StrConcat2(i_Max_Channel, Translate("")); // }} "" // {{{ 58 1 0 "1f7a62aa_0b36_435f_a7c58d1f8b1d2430" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Max_Channel = StrIVal(i_Max_Channel); // }} "" // {{ 59 1 0 "ae5efae8_ee87_4c22_bfe8d31d7d196965" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Max_Channel <= 0) { // }} "" // {{ 60 1 0 "126a7044_31fd_438d_8c3ed2fbc1ee0460" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" i_Max_Channel = total_channels; // }} "" // {{ 61 1 0 "ae5efae8_ee87_4c22_bfe8d31d7d196965" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 62 1 0 "bce55838_c315_4ef8_975a41a3b89cf383" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Max_Channel > total_channels) { // }} "" // {{ 63 1 0 "4fb360f7_4053_4389_a7b8b647b27e6fb1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" i_Max_Channel = total_channels; // }} "" // {{ 64 1 0 "bce55838_c315_4ef8_975a41a3b89cf383" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 65 1 0 "113f54fa_a980_4fe2_8550c7cae73fa7bf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_Number_Remaining = 0; // }} "" // {{{ 66 1 0 "95baef2f_9689_4604_b497b89fa46e30e8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_Sorted_Sequence); // }} "" // {{ 67 1 0 "9edbd3b6_2024_4a5a_86081664e3393f47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 0) { // }} "" // {{ 68 1 0 "0debce79_26eb_4775_aab52e8c135bbda0" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Max=G_ARR_FW_PIP_COM_YMax; // }} "" // {{ 69 1 0 "79fcce01_b9f9_45cd_a7196f9953b818eb" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Min=G_ARR_FW_PIP_COM_YMin; // }} "" // {{ 70 1 0 "1bd28008_345c_46c2_93f60f65ae31754c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" channel_raster = G_FW_PIP_COM_Raster; // }} "" // {{ 71 1 0 "9edbd3b6_2024_4a5a_86081664e3393f47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 72 1 0 "a5827b05_0def_470a_8d5b5a054d38353b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 1) { // }} "" // {{ 73 1 0 "70e0858d_c2b1_4a64_adce77def7184425" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Max=G_ARR_FW_XL_COM_YMax; // }} "" // {{ 74 1 0 "edcf2857_5db9_4fcc_9f0a735ba8fa051a" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Min=G_ARR_FW_XL_COM_YMin; // }} "" // {{ 75 1 0 "c3c593f3_a099_4563_8bcf1cf5abb30f31" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" channel_raster = G_FW_XL_COM_Raster; // }} "" // {{ 76 1 0 "a5827b05_0def_470a_8d5b5a054d38353b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 77 1 0 "4c0f45ef_9465_4050_b03596afa0d47112" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 2) { // }} "" // {{{ 78 1 0 "e794f148_b377_4c9d_a85db760b0a30b0c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetChannelLimits(ML_STAR, i_Channel_Type, arr_Y_Max, arr_Y_Min, channel_raster); // }} "" // {{ 79 1 0 "4c0f45ef_9465_4050_b03596afa0d47112" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 80 1 0 "2b3ea4df_8973_464f_96e4fcb745e167e3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 81 1 0 "ecf3b9ae_7ab1_49e6_ae76a33a1eae255b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTempSortingFilePath(sort_file); // }} "" // {{{ 82 1 0 "3c4c0b74_5a3f_4d66_a409ce1ff2617a91" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(sort_file); // }} "" // {{ 83 1 0 "9a47dea5_d1c2_44b4_a296d0d310bd8bcf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 1) { // }} "" // {{{ 84 1 0 "71c03dfe_8803_485e_af7894413e3b1b07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(sort_file); // }} "" // {{ 85 1 0 "9a47dea5_d1c2_44b4_a296d0d310bd8bcf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 86 1 0 "30b51238_87b2_447c_aef14e349adf5ace" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_to_sort = SeqGetTotal(io_Sequence_to_Sort); // }} "" // {{{ 87 1 0 "bf45ec82_c452_4f7c_ad4821e78f16b2be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" sequence_name = SeqGetName(io_Sequence_to_Sort); // }} "" // {{ 88 1 0 "d964d78a_43e0_4150_8f2e9ba6427362c0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (num_to_sort == 0) { // }} "" // {{{ 89 1 0 "8457ebc3_a63e_4cdf_9bc2139f78eeb3fc" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_Number_Remaining); // }} "" // {{ 90 1 0 "d964d78a_43e0_4150_8f2e9ba6427362c0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 91 1 0 "390b968f_06ab_437c_b1dad73164df8b99" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("________________________________________________________"), Translate("")); // }} "" // {{{ 92 1 0 "ad89e116_e937_4e4b_ad3eb2bcce1ae558" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(""), Translate("")); // }} "" // {{{ 93 1 0 "0985e440_8e98_4b8c_9a22b58639499f02" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Sequence to Sort: "), sequence_name); // }} "" // {{{ 94 1 0 "90491856_a701_43e2_8bc1d1f1e73dfc90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Number of Positions in Sequence: "), num_to_sort); // }} "" // {{{ 95 1 0 "be83bfbf_e8d4_4145_85587f46c1f90657" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Sort by Labware: "), i_Sort_by_Labware); // }} "" // {{{ 96 1 0 "f562c993_84b4_4550_9229746336a018df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Sort by XY: "), i_Sort_by_XY); // }} "" // {{{ 97 1 0 "202bc06f_66d6_4952_91f9d583460e8808" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Sort for Channel Raster: "), i_Sort_for_Channel_Raster); // }} "" // {{{ 98 1 0 "05ddc00b_edb5_4c58_b629a901cceec06e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Channel Raster: "), channel_raster); // }} "" // {{{ 99 1 0 "57963eb9_86cc_45b1_9ad05b4f1f5779d1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Maximum Channel: "), i_Max_Channel); // }} "" if(i_Channel_Type == 0) Trace(" Channel Type: 1 mL"); else if(i_Channel_Type == 1) Trace(" Channel Type: 5 mL"); else if(i_Channel_Type == 2) Trace(" Channel Type: Labware Handler"); // {{{ 101 1 0 "7b56ec9c_9f2e_4239_bd135ce1d1cf86cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("________________________________________________________"), Translate("")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 102 1 0 "6e3988d1_672e_451c_840ecbf87a3dd4d8" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 103 1 0 "48aa5382_86f1_4ea0_850e51e6ded083c6" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Sort_File.AddField("LINE_NUMBER", line_number, hslInteger); Sort_File.AddField("LAB1", lab1, hslString, 255); Sort_File.AddField("POS1", pos1, hslString, 255); Sort_File.AddField("LAB2", not_used, hslString, 255); Sort_File.AddField("POS2", not_used, hslString, 255); Sort_File.AddField("VAL1", not_used, hslString, 255); Sort_File.AddField("VAL2", not_used, hslString, 255); Sort_File.AddField("X1", x1, hslFloat); Sort_File.AddField("Y1", y1, hslFloat); Sort_File.AddField("X2", not_used, hslString, 255); Sort_File.AddField("Y2", not_used, hslString, 255); Sort_File.AddField("STATUS", status, hslString, 255); if( 0 == Sort_File.Open(sort_file + " " + "SORT", hslWrite) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 104 1 0 "21e72fef_11d9_41d4_af27c4e5b31fc8b5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" not_used = Translate("-----"); // }} "" // {{ 105 1 0 "da36dcc3_35f4_40f6_89ba2e012a0b15b9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" status = Translate("NOT_DONE"); // }} "" // {{ 106 1 0 "9e2cc9d9_5f94_470b_87d5907d0b061972" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(line_number = 0; line_number < num_to_sort;) { line_number = line_number + 1; // }} "" // {{ 107 1 0 "221851d3_3c9c_4513_9cdf93b73156311b" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_Sequence_to_Sort.SetCurrentPosition(line_number); // }} "" // {{{ 108 1 0 "eb236da1_eaf2_4d72_805161785d744f1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" lab1 = SeqGetLabwareId(io_Sequence_to_Sort); // }} "" // {{{ 109 1 0 "bd3df358_05c9_485d_8911100cd2430a53" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pos1 = SeqGetPositionId(io_Sequence_to_Sort); // }} "" // {{{ 110 1 0 "ac07d35a_5031_41d1_92f17e6510fed8e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, lab1, pos1, x1, y1, null, null); // }} "" // {{ 111 1 0 "fb772a16_204b_46e1_9c124ec30f74a050" "{B31F3537-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Sort_File.WriteRecord() ) { MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 112 1 0 "9e2cc9d9_5f94_470b_87d5907d0b061972" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 113 1 0 "0fccaf77_0033_4f13_9c652672825f3a38" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Sort_File.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Sort_File.RemoveFields(); // }} "" // {{ 114 1 0 "90cca26c_e4bb_4cf5_8c2b74c55ed3b2b7" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_line_numbers.SetSize(0); // }} "" // {{ 115 1 0 "85787c03_c070_43b2_8df71d15d8d3f381" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_x_coord = 0.0; // }} "" // {{ 116 1 0 "f757dc20_0d30_49f2_899e0a07118d7528" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_y_coord = 999.0; // }} "" // {{ 117 1 0 "d71b0271_0071_499b_91887a97e6cc10d9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(channel_number = 0; channel_number < i_Max_Channel;) { channel_number = channel_number + 1; // }} "" // {{ 118 1 0 "1608acda_ea81_44ef_81a2e48f1c15c264" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" prev_y_coord = prev_y_coord - channel_raster; // }} "" // {{{ 119 1 0 "ef8f1f7a_b92a_4957_b0bf77bec5f37bb9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" restriction_raster = StrConcat8(Translate("AND (X1"), Translate(" = "), prev_x_coord, Translate(" AND "), Translate("Y1"), Translate(" <= "), prev_y_coord, Translate(")")); // }} "" // {{ 120 1 0 "e947ea79_d666_4f92_8e9b7447436053e6" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 121 1 0 "e5a47cc5_5e8c_43fd_8b5de50af78d7f1b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" y_max=arr_Y_Max.GetAt(channel_number-1); // }} "" // {{ 122 1 0 "46108d45_883e_47c1_87c6fee6b3f015a4" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" y_min=arr_Y_Min.GetAt(channel_number-1); // }} "" // {{{ 123 1 0 "9393a38b_33ec_404a_8bd5f9e85d3233da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" restriction1 = StrConcat8(Translate("(Y1 "), Translate(">= "), y_min, Translate(" AND "), Translate("Y1 "), Translate("<= "), y_max, Translate(")")); // }} "" // {{ 124 1 0 "8281c5b4_d83e_4c48_917ba84a77f161da" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 125 1 0 "51e01213_7dd6_44e2_9e05db67afbd54cb" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" num_used=arr_line_numbers.GetSize(); // }} "" // {{ 126 1 0 "1c1cff31_0280_4e78_8d13f567019b5e01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (num_used == 0) { // }} "" // {{ 127 1 0 "00b116cb_ad69_4886_9dff0ef4c7e7b638" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" used_exclusion = Translate(""); // }} "" // {{ 128 1 0 "1c1cff31_0280_4e78_8d13f567019b5e01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 129 1 0 "988458ab_1759_4a49_bb850df0b8f6c4d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(Translate("AND LINE_NUMBER NOT IN("), Translate("")); // }} "" // {{ 130 1 0 "b14e49f0_bf51_462e_aea988896ed5ed0a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(in_index = 0; in_index < num_used;) { in_index = in_index + 1; // }} "" // {{ 131 1 0 "cf8317a2_7ddb_40ff_b02a5a7af0f20f75" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" line_number=arr_line_numbers.GetAt(in_index-1); // }} "" // {{ 132 1 0 "71638867_fcca_4697_b8f61cb123bbd4c5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (in_index != 1) { // }} "" // {{{ 133 1 0 "dcd3ba66_c2c5_410f_b15f5481a6028d95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(used_exclusion, Translate(", ")); // }} "" // {{ 134 1 0 "71638867_fcca_4697_b8f61cb123bbd4c5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 135 1 0 "ab78e3bd_b9e3_4cd3_a9f574151f983412" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(used_exclusion, line_number); // }} "" // {{ 136 1 0 "b14e49f0_bf51_462e_aea988896ed5ed0a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 137 1 0 "e3a7b785_b2dc_4dba_9cb2656affb2d13e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(used_exclusion, Translate(")")); // }} "" // {{ 138 1 0 "1c1cff31_0280_4e78_8d13f567019b5e01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 139 1 0 "522954f8_63eb_44d9_b10ea9259cd87d5e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 140 1 0 "588f5dc2_6343_437b_95182190bd7f0f81" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" order_by = Translate(""); // }} "" if(i_Sort_by_Labware == 1 && i_Sort_by_XY == 1) { order_by = "ORDER BY LAB1 ASC, X1 ASC, Y1 DESC"; } else if(i_Sort_by_Labware == 1 && i_Sort_by_XY == 0) { order_by = "ORDER BY LAB1 ASC, LINE_NUMBER ASC"; } else if(i_Sort_by_Labware == 0 && i_Sort_by_XY == 1) { order_by = "ORDER BY X1 ASC, Y1 DESC"; } else { order_by = "ORDER BY LINE_NUMBER ASC"; } // {{ 142 1 0 "495cbddd_2877_429c_89518c61735363cd" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 143 1 0 "527c8ef5_8b06_498b_ae94ae6fe4a5f035" "{C1F3C015-47B3-4514-9407-AC2E65043419}" count_sql = StrConcat12(Translate("SELECT COUNT(*) AS N FROM SORT WHERE "), restriction1, Translate(" "), used_exclusion, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), restriction_raster); // }} "" // {{ 144 1 0 "02be3c85_6b62_49da_b79be1fe9ba99bfa" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Count_Available.AddField("N", count_value, hslInteger); if( 0 == Count_Available.Open(sort_file + " " + "SORT", hslRead, count_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 145 1 0 "c892384f_93c7_4723_88370965c33bf275" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Count_Available.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 146 1 0 "2543264f_e1d1_4d28_bce161a111380660" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Count_Available.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Count_Available.RemoveFields(); // }} "" // {{ 147 1 0 "ad969767_85bf_463f_802c75925652b373" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (count_value == 0) { // }} "" // {{ 148 1 0 "e5a06bcf_9e88_44dc_949cf89eb432245e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_x_coord = 0.0; // }} "" // {{ 149 1 0 "ad969767_85bf_463f_802c75925652b373" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 150 1 0 "2b9a7720_3438_4e5b_8b89b6eccc1be2e1" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 151 1 0 "9c36e68b_6382_4d1b_9e822e1fe59722db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" count_sql = StrConcat12(Translate("SELECT COUNT(*) AS N FROM SORT WHERE "), restriction1, Translate(" "), used_exclusion, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{ 152 1 0 "06849aa6_e5cd_4458_83fd520397eea087" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Count_Available.AddField("N", count_value, hslInteger); if( 0 == Count_Available.Open(sort_file + " " + "SORT", hslRead, count_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 153 1 0 "32a96f15_24be_444b_b0a936167d0f6d4d" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Count_Available.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 154 1 0 "b5e2fffd_d01e_4b96_850d89265dfa963d" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Count_Available.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Count_Available.RemoveFields(); // }} "" // {{ 155 1 0 "eabe061b_6c3f_4bc5_b1a0572dcec52d55" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (count_value > 0) { // }} "" // {{ 156 1 0 "c7b878e7_4e8a_442f_867141fb057476ef" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 157 1 0 "a165ab4b_8b6e_4110_a5c79e0ecb683d03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" filter_sql = StrConcat12(Translate("SELECT * FROM SORT WHERE "), restriction1, Translate(" "), used_exclusion, Translate(" "), order_by, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{ 158 1 0 "ae01ec44_8376_4898_b7f9436a984b44fe" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Sort_File.AddField("LINE_NUMBER", line_number, hslInteger); Sort_File.AddField("LAB1", lab1, hslString, 255); Sort_File.AddField("POS1", pos1, hslString, 255); Sort_File.AddField("LAB2", not_used, hslString, 255); Sort_File.AddField("POS2", not_used, hslString, 255); Sort_File.AddField("VAL1", not_used, hslString, 255); Sort_File.AddField("VAL2", not_used, hslString, 255); Sort_File.AddField("X1", x1, hslFloat); Sort_File.AddField("Y1", y1, hslFloat); Sort_File.AddField("X2", not_used, hslString, 255); Sort_File.AddField("Y2", not_used, hslString, 255); Sort_File.AddField("STATUS", status, hslString, 255); if( 0 == Sort_File.Open(sort_file + " " + "SORT", hslRead, filter_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 159 1 0 "993a71c1_7692_4530_91fc94a260e80b70" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { file_index = 0; while ( (Sort_File.Eof() == 0) ) { file_index = file_index + 1; // }} "" // {{ 160 1 0 "47503b32_5a37_41c4_9f9c458d0cb7f757" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Sort_File.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 161 1 0 "fe4a1497_1002_4a83_a638eeabd2dee9b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Sort_for_Channel_Raster == 0) { // }} "" // {{ 162 1 0 "4d92fa33_0ecc_4fdd_884347f1f82dd349" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 163 1 0 "fe4a1497_1002_4a83_a638eeabd2dee9b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 164 1 0 "140ef73f_acb7_4446_91c85d77f3144670" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (x1 != prev_x_coord) { // }} "" // {{ 165 1 0 "e5776e1d_8789_4a28_86ec97c97ded8021" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 166 1 0 "140ef73f_acb7_4446_91c85d77f3144670" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 167 1 0 "668414d6_639f_4f77_ac48b94c64d1a8c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (y1 <= prev_y_coord) { // }} "" // {{ 168 1 0 "d5ddbf3a_9e63_4c20_accfce8130574069" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 169 1 0 "668414d6_639f_4f77_ac48b94c64d1a8c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 170 1 0 "993a71c1_7692_4530_91fc94a260e80b70" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 171 1 0 "719d6a45_db87_4ad4_a438ae98f3e40487" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Sort_File.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Sort_File.RemoveFields(); // }} "" // {{{ 172 1 0 "8cbb6a18_4289_4d73_b4fad7f888a533fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_Sorted_Sequence, lab1, pos1); // }} "" // {{{ 173 1 0 "8d539857_787b_43ff_8eaecfd8bdf3f1f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, channel_number, 1); // }} "" // {{ 174 1 0 "32d1929b_8397_450d_a30a4cfb09ad3d2a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_line_numbers.AddAsLast(line_number); // }} "" // {{ 175 1 0 "8befa745_c35c_44c6_8ef55b6877b709bd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_x_coord = x1; // }} "" // {{ 176 1 0 "bc5d7822_7342_4c81_a026ae2dcd5949d7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_y_coord = y1; // }} "" // {{ 177 1 0 "eabe061b_6c3f_4bc5_b1a0572dcec52d55" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 178 1 0 "d71b0271_0071_499b_91887a97e6cc10d9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 179 1 0 "859e4a63_d3d7_4513_aa0b98ab0cf3ceeb" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_Sorted_Sequence.SetCurrentPosition(1); // }} "" // {{ 180 1 0 "63c0a16d_2749_4a35_9cd7e1a1e7987699" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 181 1 0 "5e07202c_fbf6_4270_b9e9db886ce9776a" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" num_used=arr_line_numbers.GetSize(); // }} "" // {{ 182 1 0 "c06a2569_9f74_4a19_b529f51e24485183" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" ret_Number_Remaining = num_to_sort - num_used; // }} "" // {{ 183 1 0 "c4242370_8fcd_4f69_bb47802ae08f4585" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (num_used == 0) { // }} "" // {{{ 184 1 0 "e6f53725_860a_4915_b0681dc07a42e98f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("********************************** The remaining positions are out of reach for the selected channels!!!!"), Translate("")); // }} "" // {{{ 185 1 0 "251370c2_2b61_4942_8e85ca1ce9e82bba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("The remaining positions are out of reach for all the selected channels!!!!")); // }} "" // {{ 186 1 0 "c4242370_8fcd_4f69_bb47802ae08f4585" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 187 1 0 "d0432436_6d86_4224_883c5e087bf5c911" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(Translate("LINE_NUMBER IN("), Translate("")); // }} "" // {{ 188 1 0 "54c12b82_9c4c_441d_83c5e48cd638917e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(in_index = 0; in_index < num_used;) { in_index = in_index + 1; // }} "" // {{ 189 1 0 "0b8456c2_da8f_40fe_a6cde463f32d8fc4" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" line_number=arr_line_numbers.GetAt(in_index-1); // }} "" // {{ 190 1 0 "18a2b225_5504_45ab_890b6046745887ac" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (in_index != 1) { // }} "" // {{{ 191 1 0 "588c448b_345a_44de_89526bb45e1cdaf9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(in_group, Translate(", ")); // }} "" // {{ 192 1 0 "18a2b225_5504_45ab_890b6046745887ac" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 193 1 0 "fb8a03d1_16f9_4617_88a8fd526880c4fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(in_group, line_number); // }} "" // {{ 194 1 0 "54c12b82_9c4c_441d_83c5e48cd638917e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 195 1 0 "2f800577_9538_4f41_9a612f06dcf88b30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(in_group, Translate(")")); // }} "" // {{{ 196 1 0 "3d895c8e_1123_485c_a3bad157cb497397" "{C1F3C015-47B3-4514-9407-AC2E65043419}" update_sql = StrConcat4(Translate("UPDATE SORT SET STATUS = 'DONE' WHERE "), in_group, Translate(""), Translate("")); // }} "" // {{ 197 1 0 "31938dfe_e810_4987_afa5bf2ad6d04016" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Update_FIle.Open(sort_file + " " + "SORT", hslRead, update_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 198 1 0 "dbea1a68_1cb4_4bde_b770dd8ecda0d1be" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Update_FIle.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Update_FIle.RemoveFields(); // }} "" // {{ 199 1 0 "6864ff66_518b_4849_b4b8299c93568db0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 200 1 0 "040197d8_a1f3_4ebc_9549c2ed2f08988d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" count_sql = StrConcat2(Translate("SELECT COUNT(*) AS N FROM SORT WHERE STATUS = 'NOT_DONE'"), Translate("")); // }} "" // {{ 201 1 0 "82390a90_ecc3_4d3b_9bf6f38b82efb738" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Count_Available.AddField("N", count_value, hslInteger); if( 0 == Count_Available.Open(sort_file + " " + "SORT", hslRead, count_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 202 1 0 "5eddbfdd_b75a_4f8a_964a138fc95d22c3" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Count_Available.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 203 1 0 "4a346fab_4996_4a1e_bb7c222defe54652" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Count_Available.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Count_Available.RemoveFields(); // }} "" // {{ 204 1 0 "965649d4_d5d5_49c7_bad705a1e100b8b1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_Number_Remaining = count_value; // }} "" // {{ 205 1 0 "120db923_7435_47a1_bfd3b07c69fb00c1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (count_value == 0) { // }} "" // {{{ 206 1 0 "138cab6d_0fd9_4630_b3b92a6266e4e682" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(io_Sequence_to_Sort); // }} "" // {{ 207 1 0 "120db923_7435_47a1_bfd3b07c69fb00c1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 208 1 0 "495922d0_a11e_40d3_a6722c58302c30c4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" filter_sql = StrConcat2(Translate("SELECT * FROM SORT WHERE STATUS = 'NOT_DONE' ORDER BY LINE_NUMBER ASC"), Translate("")); // }} "" // {{{ 209 1 0 "69bb4ff5_83ec_4bc4_b28a5544fb7fe024" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(temp_seq1); // }} "" // {{ 210 1 0 "cb945e4d_b94d_42c4_8a092d53b267d222" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Sort_File.AddField("LINE_NUMBER", line_number, hslInteger); Sort_File.AddField("LAB1", lab1, hslString, 255); Sort_File.AddField("POS1", pos1, hslString, 255); Sort_File.AddField("LAB2", not_used, hslString, 255); Sort_File.AddField("POS2", not_used, hslString, 255); Sort_File.AddField("VAL1", not_used, hslString, 255); Sort_File.AddField("VAL2", not_used, hslString, 255); Sort_File.AddField("X1", x1, hslFloat); Sort_File.AddField("Y1", y1, hslFloat); Sort_File.AddField("X2", not_used, hslString, 255); Sort_File.AddField("Y2", not_used, hslString, 255); Sort_File.AddField("STATUS", status, hslString, 255); if( 0 == Sort_File.Open(sort_file + " " + "SORT", hslRead, filter_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 211 1 0 "569c6913_ab6d_49a4_863164a4fa038b88" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while ( (Sort_File.Eof() == 0) ) { // }} "" // {{ 212 1 0 "f67ee222_a5ba_4deb_8a0ebc90d4ba5767" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Sort_File.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 213 1 0 "278267b9_602a_47b5_bf2b5f6af92df5e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(temp_seq1, lab1, pos1); // }} "" // {{ 214 1 0 "569c6913_ab6d_49a4_863164a4fa038b88" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 215 1 0 "61fa63ae_fe3c_4f12_aaef291cb3fda7a2" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Sort_File.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Sort_File.RemoveFields(); // }} "" // {{ 216 1 0 "abfd90ec_d8a6_4d8d_8b26fa61cbc71548" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" temp_seq1.SetCurrentPosition(1); // }} "" // {{{ 217 1 0 "0583089a_8948_4354_91611ef08c996f84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(io_Sequence_to_Sort, temp_seq1); // }} "" // {{ 218 1 0 "120db923_7435_47a1_bfd3b07c69fb00c1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 219 1 0 "f083d51e_c0c2_40d3_a96236e2ed7a65a8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 221 1 0 "f083d51e_c0c2_40d3_a96236e2ed7a65a8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 222 1 0 "3efcf433_c482_4a05_99a3246142a78416" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_Number_Remaining); // }} "" // {{{ 5 "CHAN_ACCESS_Sort1Sequence" "End" } // }} "" // {{{ 5 "CHAN_ACCESS_Sort1Sequence1Array" "Begin" function CHAN_ACCESS_Sort1Sequence1Array( device & ML_STAR, sequence & io_Sequence_to_Sort, variable & io_Array_of_Variables[], variable i_Channel_Type, variable i_Sort_by_Labware, variable i_Sort_by_XY, variable i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence & o_Sorted_Sequence, variable & o_Sorted_Array[], variable & o_Channel_Pattern ) variable { // }} "" private variable channel_raster; private variable used_exclusion; private variable status; private variable pos1; private variable num_to_sort; private variable in_group; private variable restriction_raster; private variable num_used; private variable in_index; private variable y_min; private variable update_sql; private variable y_max; private variable val1; private variable ret_Number_Remaining; private variable num_in_array; private variable value_equal; private variable num_labhand_channels; private variable total_channels; private variable file_index; private variable null; private variable restriction1; private variable not_used; private variable lab1; private variable sort_file; private variable prev_x_coord; private variable num_1mL_channels; private variable filter_sql; private variable prev_y_coord; private variable count_sql; private variable order_by; private variable num_5mL_channels; private variable is_string; private variable y1; private variable val_type1; private variable channel_number; private variable count_value; private variable x1; private variable line_number; private variable is_integer; private variable is_float; private variable sequence_name; private sequence temp_seq1; private file Count_Available; private file Update_FIle; private file Sort_File; private variable arr_temp_array1[]; private variable arr_Y_Min[]; private variable arr_Y_Max[]; private variable arr_line_numbers[]; private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable bool_FileExists; // {{ 5 "CHAN_ACCESS_Sort1Sequence1Array" "InitLocals" { sequence __temp; o_Sorted_Sequence = __temp; } o_Sorted_Array.SetSize( 0); o_Channel_Pattern = 0; // }} "" // {{ 224 1 0 "859f2747_addd_43dc_b174f032c09082ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 225 1 0 "fa9a0018_ce85_4233_9f8f79768a985347" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 227 1 0 "100ea6ff_0ed3_49c0_951442d26a6218e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 228 1 0 "92a571f6_f6b6_48fd_bb8ce1a7c17ad9c2" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 229 1 0 "dc1531e2_b8f3_4dbd_a68d8d4a82ee8482" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 230 1 0 "148c0c87_371d_4f1e_8d7970a3182d92fa" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 231 1 0 "35343af9_2c8c_4b25_be676f2ef8d64f16" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 233 1 0 "859f2747_addd_43dc_b174f032c09082ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 234 1 0 "993096e7_5333_49ab_9b6cd4b11ab4ae78" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 235 1 0 "b22d0c2c_d4f4_40ef_b385238b87d3b3d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 236 1 0 "2d1efb37_eb7b_4601_9dd0d6450b952b4e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 237 1 0 "8ab492d9_c036_40c5_8eb2e8698212026f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{{ 238 1 0 "1a4daa24_8d2e_466e_a694798a815fefc7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_5mL_channels = DevGetCfgValueWithKey(ML_STAR, 43); // }} "" // {{{ 239 1 0 "62ef6e3c_a822_4f37_b3acb378c55f1c5d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_labhand_channels = DevGetCfgValueWithKey(ML_STAR, 47); // }} "" // {{{ 240 1 0 "e6dc126e_483b_4039_97ec2cceac88d93c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Channel_Type = StrConcat2(i_Channel_Type, Translate("")); // }} "" // {{{ 241 1 0 "b241e611_053a_4023_9e9fc70a2a8529ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Channel_Type = StrIVal(i_Channel_Type); // }} "" // {{ 242 1 0 "0278d514_5bf3_4d38_b4a12c6799e214a9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type < 0) { // }} "" // {{{ 243 1 0 "e9d94097_d99b_4463_9f46a2766590581f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace4(Translate("*************** Channel type of "), i_Channel_Type, Translate(" is not recognized by this library!!!!"), Translate("")); // }} "" // {{ 244 1 0 "c2323579_a8e8_4d81_85c57a708ea99166" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = 0; // }} "" // {{ 245 1 0 "0278d514_5bf3_4d38_b4a12c6799e214a9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 246 1 0 "9e35a5bf_9d0b_42b2_ab63325afd4f376b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type > 2) { // }} "" // {{{ 247 1 0 "e1576b5d_2016_49e4_82b6fac677d638b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace4(Translate("*************** Channel type of "), i_Channel_Type, Translate(" is not recognized by this library!!!!"), Translate("")); // }} "" // {{ 248 1 0 "658afd15_6ba4_4cf7_adfc2fdd8df23dd7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = 0; // }} "" // {{ 249 1 0 "9e35a5bf_9d0b_42b2_ab63325afd4f376b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 250 1 0 "71830ba8_1b16_41c9_9b6f6749bb157255" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 0) { // }} "" // {{ 251 1 0 "4f39ba55_c372_4573_be2a102fdcaf54fd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = num_1mL_channels; // }} "" // {{ 252 1 0 "71830ba8_1b16_41c9_9b6f6749bb157255" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 253 1 0 "fffb1524_ddcf_45fb_ac057450180b9bf5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 1) { // }} "" // {{ 254 1 0 "4d612a8a_704c_4d4a_a15977299cf85361" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = num_5mL_channels; // }} "" // {{ 255 1 0 "fffb1524_ddcf_45fb_ac057450180b9bf5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 256 1 0 "ed0e24dc_5835_4fef_a3044e5cd7b4d02c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 2) { // }} "" // {{ 257 1 0 "1dccb59a_d987_45c6_861fba28854a6c37" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = num_labhand_channels; // }} "" // {{ 258 1 0 "ed0e24dc_5835_4fef_a3044e5cd7b4d02c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 259 1 0 "b22d0c2c_d4f4_40ef_b385238b87d3b3d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 260 1 0 "ac670a4f_4a46_412f_875979a0a4113534" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 261 1 0 "b5d3b5e5_f9d4_4479_b9a2510207f9b9fd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_Channel_Pattern = Translate(""); // }} "" // {{ 262 1 0 "6e9a6e07_09c9_45d8_bb1c560b3831d2c5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (total_channels == 0) { // }} "" // {{ 263 1 0 "3e8b51d3_0339_4d7c_89155d36de153586" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 0) { // }} "" // {{{ 264 1 0 "b5f5abd2_5151_4502_ae6f112b8b907a8f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** There are no 1 mL channels installed!"), Translate("")); // }} "" // {{{ 265 1 0 "888541b4_6a53_467c_a1c6c3b295c39e6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("No 1 mL channels installed!!")); // }} "" // {{ 266 1 0 "3e8b51d3_0339_4d7c_89155d36de153586" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 267 1 0 "a1815b5e_beb4_443b_b938fddfd615639d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 1) { // }} "" // {{{ 268 1 0 "72d82c21_0b43_4b9e_942742760313bd1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** There are no 5 mL channels installed!"), Translate("")); // }} "" // {{{ 269 1 0 "49367259_1600_4192_9f2ead1dc9d26a2a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("No 5 mL channels installed!!")); // }} "" // {{ 270 1 0 "a1815b5e_beb4_443b_b938fddfd615639d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 271 1 0 "7641e088_40ab_462a_911f445606772f04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 2) { // }} "" // {{{ 272 1 0 "aa7e1a84_4539_49e7_a81d270b8dadc350" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** There are no Lab Handler channels installed!"), Translate("")); // }} "" // {{{ 273 1 0 "47425b17_31d5_4934_a001fa3eeb5c1f24" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("No Lab Handler channels installed!!")); // }} "" // {{ 274 1 0 "7641e088_40ab_462a_911f445606772f04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 275 1 0 "6e9a6e07_09c9_45d8_bb1c560b3831d2c5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 276 1 0 "36b122d3_8c01_4d2f_81b7df627d631a0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, io_Sequence_to_Sort); // }} "" // {{{ 277 1 0 "62c42dc6_0d49_4a0e_a28b7b70474dcdeb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, total_channels, 0); // }} "" // {{{ 278 1 0 "9df6e2ad_debf_48e9_bef681c27e228bb6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Max_Channel = StrConcat2(i_Max_Channel, Translate("")); // }} "" // {{{ 279 1 0 "231e95f0_d2fb_461c_81a5f01e603586df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Max_Channel = StrIVal(i_Max_Channel); // }} "" // {{ 280 1 0 "dd0923ed_7516_4871_a74f722facd97cdf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Max_Channel <= 0) { // }} "" // {{ 281 1 0 "530c87be_1123_406e_ab6a2a5be1ed562a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" i_Max_Channel = total_channels; // }} "" // {{ 282 1 0 "dd0923ed_7516_4871_a74f722facd97cdf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 283 1 0 "6041d695_7b98_437a_b82150aa177f6687" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Max_Channel > total_channels) { // }} "" // {{ 284 1 0 "22618534_0b46_49c8_aab6ecf432ebd32c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" i_Max_Channel = total_channels; // }} "" // {{ 285 1 0 "6041d695_7b98_437a_b82150aa177f6687" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 286 1 0 "b1435ae7_440b_474f_ba5db96112d9524c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_Number_Remaining = 0; // }} "" // {{{ 287 1 0 "6044702f_66a5_4452_b7c32bbb77fb0492" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_Sorted_Sequence); // }} "" // {{ 288 1 0 "97f184cb_dac4_4e7a_8753930da4542693" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_Sorted_Array.SetSize(i_Max_Channel); // }} "" // {{ 289 1 0 "05a00d25_5083_4282_9ddfe6619752d650" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 0) { // }} "" // {{ 290 1 0 "eb7c0c97_d10b_4530_8c983221dc8d7f5c" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Max=G_ARR_FW_PIP_COM_YMax; // }} "" // {{ 291 1 0 "c45bc921_e017_4f4e_9cd01ea2e7c22b76" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Min=G_ARR_FW_PIP_COM_YMin; // }} "" // {{ 292 1 0 "4c8aee98_9c2d_4f35_bce0c6c05be618c6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" channel_raster = G_FW_PIP_COM_Raster; // }} "" // {{ 293 1 0 "05a00d25_5083_4282_9ddfe6619752d650" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 294 1 0 "87b10b49_de4e_4bc9_aa1caca1bfdd3067" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 1) { // }} "" // {{ 295 1 0 "4a7bc42b_5d13_4ec6_92b9bf4a32d051cb" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Max=G_ARR_FW_XL_COM_YMax; // }} "" // {{ 296 1 0 "7dc0124e_03bb_4450_aa76f707cd1232e8" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Min=G_ARR_FW_XL_COM_YMin; // }} "" // {{ 297 1 0 "234efb66_b7a4_44fc_b5f91366b18dfbb4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" channel_raster = G_FW_XL_COM_Raster; // }} "" // {{ 298 1 0 "87b10b49_de4e_4bc9_aa1caca1bfdd3067" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 299 1 0 "0e60082f_5f4e_447d_97cadb0835bd4272" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 2) { // }} "" // {{{ 300 1 0 "bed7a88f_9070_4e62_86d95747145f8662" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetChannelLimits(ML_STAR, i_Channel_Type, arr_Y_Max, arr_Y_Min, channel_raster); // }} "" // {{ 301 1 0 "0e60082f_5f4e_447d_97cadb0835bd4272" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 302 1 0 "bfc49120_0e6e_46ff_9c5301337cf8acbc" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 303 1 0 "04dfeb7c_7fb3_4070_b886b012f852cc02" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTempSortingFilePath(sort_file); // }} "" // {{{ 304 1 0 "472369f3_a85e_41b8_b7ccc82b2bcbc3ca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(sort_file); // }} "" // {{ 305 1 0 "3c08d656_5063_44d0_8126a0cf7dfea963" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 1) { // }} "" // {{{ 306 1 0 "a55536b1_4851_4d81_b7243e23fb470116" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(sort_file); // }} "" // {{ 307 1 0 "3c08d656_5063_44d0_8126a0cf7dfea963" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 308 1 0 "a7cd4e60_4224_4fbb_8fa6665e191e2d75" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_to_sort = SeqGetTotal(io_Sequence_to_Sort); // }} "" // {{{ 309 1 0 "77354240_6eb4_45b5_99c1198f96cbf270" "{C1F3C015-47B3-4514-9407-AC2E65043419}" sequence_name = SeqGetName(io_Sequence_to_Sort); // }} "" // {{ 310 1 0 "16320a9d_b3c3_45ff_9e3168f529b124d2" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" num_in_array=io_Array_of_Variables.GetSize(); // }} "" // {{ 311 1 0 "5758402a_cef6_4850_80d90585f85786f7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" value_equal = 0; // }} "" if(num_to_sort == num_in_array) value_equal = 1; // {{ 313 1 0 "a302ff3d_62d2_46d6_ac9e60f1a488c6e2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (num_to_sort == 0) { // }} "" // {{{ 314 1 0 "222db455_79d3_4d3f_905a6c32c8a1344b" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_Number_Remaining); // }} "" // {{ 315 1 0 "a302ff3d_62d2_46d6_ac9e60f1a488c6e2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 316 1 0 "695ca188_d0dd_4d6c_b74f438dae1f375e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (value_equal == 0) { // }} "" // {{{ 317 1 0 "fd765036_3ede_4274_954e447d5a1d842e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("############## SEQUENCE AND ARRAY DO NOT HAVE THE SAME NUMBER OF POSITIONS."), Translate("")); // }} "" // {{{ 318 1 0 "0388252c_59ca_46c9_9548201b9104e6f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Sequence and array does not have the same number of positions.")); // }} "" // {{ 319 1 0 "695ca188_d0dd_4d6c_b74f438dae1f375e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 320 1 0 "b212dd37_9a8a_41e4_9e40f462e148cf1c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("________________________________________________________"), Translate("")); // }} "" // {{{ 321 1 0 "e0c1801e_07ab_447e_8f7cf4804b8ecc03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(""), Translate("")); // }} "" // {{{ 322 1 0 "8265c0d5_5985_4659_bed8f5177f261a69" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Sequence to Sort: "), sequence_name); // }} "" // {{{ 323 1 0 "d9df33b7_a1aa_4b2d_86f74f28ada5955e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Number of Positions in Sequence: "), num_to_sort); // }} "" // {{{ 324 1 0 "b0b86df8_9ed4_414f_a9647ef83263152d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Sort by Labware: "), i_Sort_by_Labware); // }} "" // {{{ 325 1 0 "4655d85a_229b_4ce7_a4d67ec5d47c5f70" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Sort by XY: "), i_Sort_by_XY); // }} "" // {{{ 326 1 0 "6fef4614_9ffa_4038_8c762bebe3782cbb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Sort for Channel Raster: "), i_Sort_for_Channel_Raster); // }} "" // {{{ 327 1 0 "c07c66f3_db50_41ec_9394d9c32d21426d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Channel Raster: "), channel_raster); // }} "" // {{{ 328 1 0 "3deabee1_915d_419d_bd6a25217f212ab7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Maximum Channel: "), i_Max_Channel); // }} "" if(i_Channel_Type == 0) Trace(" Channel Type: 1 mL"); else if(i_Channel_Type == 1) Trace(" Channel Type: 5 mL"); else if(i_Channel_Type == 2) Trace(" Channel Type: Labware Handler"); // {{{ 330 1 0 "8e22d413_c6db_4f5b_9f89108eb8da2365" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("________________________________________________________"), Translate("")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 331 1 0 "9ff9ea74_90ae_4d44_998acf0bc8b8e390" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 332 1 0 "9450234e_6e9d_4ab4_b00c5cb604183b1b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" is_float = HSLExtensions::Array::IsFloatArray(io_Array_of_Variables); // }} "" // {{{ 333 1 0 "360b0b07_c5c6_4bf5_8748743dbdb14aeb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" is_integer = HSLExtensions::Array::IsIntegerArray(io_Array_of_Variables); // }} "" // {{{ 334 1 0 "9edb3b10_aaf7_4663_877eca15429d4c64" "{C1F3C015-47B3-4514-9407-AC2E65043419}" is_string = HSLExtensions::Array::IsStringArray(io_Array_of_Variables); // }} "" // {{ 335 1 0 "47fd5db1_fa1e_46c7_98a62d6e907f2a9b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" val_type1 = 0; // }} "" if(is_float == 1) val_type1 = 1; else if(is_integer == 1) val_type1 = 2; // {{ 337 1 0 "7e33240a_8e21_4bd7_ad3abba1b00d94c8" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 338 1 0 "48eae329_c026_442a_ba747e1faad2279a" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Sort_File.AddField("LINE_NUMBER", line_number, hslInteger); Sort_File.AddField("LAB1", lab1, hslString, 255); Sort_File.AddField("POS1", pos1, hslString, 255); Sort_File.AddField("LAB2", not_used, hslString, 255); Sort_File.AddField("POS2", not_used, hslString, 255); Sort_File.AddField("VAL1", val1, hslString, 255); Sort_File.AddField("VAL2", not_used, hslString, 255); Sort_File.AddField("X1", x1, hslFloat); Sort_File.AddField("Y1", y1, hslFloat); Sort_File.AddField("X2", not_used, hslString, 255); Sort_File.AddField("Y2", not_used, hslString, 255); Sort_File.AddField("STATUS", status, hslString, 255); if( 0 == Sort_File.Open(sort_file + " " + "SORT", hslWrite) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 339 1 0 "d1cd0e59_9359_4c0c_b014ceb5c9890064" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" not_used = Translate("-----"); // }} "" // {{ 340 1 0 "0841b6dd_d632_40b0_8f3090526e2f704e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" status = Translate("NOT_DONE"); // }} "" // {{ 341 1 0 "2e91d526_2001_41f2_876b636b01b6dc54" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(line_number = 0; line_number < num_to_sort;) { line_number = line_number + 1; // }} "" // {{ 342 1 0 "9a850b41_5d36_4dd0_8da1622fe877801b" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_Sequence_to_Sort.SetCurrentPosition(line_number); // }} "" // {{{ 343 1 0 "96c325c9_3555_4c3d_b73dc5ade9a7ddf1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" lab1 = SeqGetLabwareId(io_Sequence_to_Sort); // }} "" // {{{ 344 1 0 "6d390a45_f79e_40d9_8a999a93d2ba9aeb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pos1 = SeqGetPositionId(io_Sequence_to_Sort); // }} "" // {{{ 345 1 0 "9a13ed8c_0972_46a8_bfa66315d099eec1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, lab1, pos1, x1, y1, null, null); // }} "" // {{ 346 1 0 "817bc09d_f4e1_4baf_b0c0aab6165ece48" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" val1=io_Array_of_Variables.GetAt(line_number-1); // }} "" // {{ 347 1 0 "c8b9bb06_15f6_4c27_86cee5d6e212142c" "{B31F3537-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Sort_File.WriteRecord() ) { MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 348 1 0 "2e91d526_2001_41f2_876b636b01b6dc54" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 349 1 0 "c90b5977_03bb_4b5a_ae1c867fb403982f" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Sort_File.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Sort_File.RemoveFields(); // }} "" // {{ 350 1 0 "9b66b2eb_103c_47be_9b30e802664e4393" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_line_numbers.SetSize(0); // }} "" // {{ 351 1 0 "3e640c5e_f7c0_4fb4_a7b77e1809bfb276" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_x_coord = 0.0; // }} "" // {{ 352 1 0 "a053a414_5b3d_462f_a3e70c29d6ca54a8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_y_coord = 999.0; // }} "" // {{ 353 1 0 "f59abef5_52c6_465e_ac7d4dfe0141c699" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(channel_number = 0; channel_number < i_Max_Channel;) { channel_number = channel_number + 1; // }} "" // {{ 354 1 0 "00311f56_d96d_4062_ab245c061bb28846" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" prev_y_coord = prev_y_coord - channel_raster; // }} "" // {{{ 355 1 0 "09c441b4_e06d_4710_b22fb2adda84ad8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" restriction_raster = StrConcat8(Translate("AND (X1"), Translate(" = "), prev_x_coord, Translate(" AND "), Translate("Y1"), Translate(" <= "), prev_y_coord, Translate(")")); // }} "" // {{ 356 1 0 "b9204fe7_ea1f_4686_916aef49d51f44f1" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 357 1 0 "1a810470_43f1_4bb9_a1a425a42b67f005" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" y_max=arr_Y_Max.GetAt(channel_number-1); // }} "" // {{ 358 1 0 "0bd66511_b780_4282_a3ae50e7d626c4bb" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" y_min=arr_Y_Min.GetAt(channel_number-1); // }} "" // {{{ 359 1 0 "3ad9278b_02a9_4476_b2a79b1bd9c58a0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" restriction1 = StrConcat8(Translate("(Y1 "), Translate(">= "), y_min, Translate(" AND "), Translate("Y1 "), Translate("<= "), y_max, Translate(")")); // }} "" // {{ 360 1 0 "d23394bf_fb28_4d96_9824ba3790058636" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 361 1 0 "7c6534bb_a197_4c93_bd4fdb166798ead6" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" num_used=arr_line_numbers.GetSize(); // }} "" // {{ 362 1 0 "9c611d0b_4b6f_4317_90f2087adcc6dd37" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (num_used == 0) { // }} "" // {{ 363 1 0 "986a49ed_85ec_4b47_a86ff3a2fa9484bd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" used_exclusion = Translate(""); // }} "" // {{ 364 1 0 "9c611d0b_4b6f_4317_90f2087adcc6dd37" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 365 1 0 "8cd3a0ce_620d_4bef_a0774034b781e85d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(Translate("AND LINE_NUMBER NOT IN("), Translate("")); // }} "" // {{ 366 1 0 "ad885f3c_09ea_4f51_ad78277fc682aa30" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(in_index = 0; in_index < num_used;) { in_index = in_index + 1; // }} "" // {{ 367 1 0 "548aff85_ece7_4592_be087e241637acc6" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" line_number=arr_line_numbers.GetAt(in_index-1); // }} "" // {{ 368 1 0 "cab8ff12_b883_46cc_926dd0399c851e3f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (in_index != 1) { // }} "" // {{{ 369 1 0 "1cbe0b93_2fc7_4177_9ed145250c32bc4d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(used_exclusion, Translate(", ")); // }} "" // {{ 370 1 0 "cab8ff12_b883_46cc_926dd0399c851e3f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 371 1 0 "2c69b7c2_9b64_46fe_b25619f703d442dd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(used_exclusion, line_number); // }} "" // {{ 372 1 0 "ad885f3c_09ea_4f51_ad78277fc682aa30" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 373 1 0 "ee222584_dc8c_473e_a0a6c27bdb55df74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(used_exclusion, Translate(")")); // }} "" // {{ 374 1 0 "9c611d0b_4b6f_4317_90f2087adcc6dd37" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 375 1 0 "6b7d1da4_857c_469a_80695ba667e5bed0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 376 1 0 "56dec4ab_2017_4601_bf5b619d1d8e65ac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" order_by = Translate(""); // }} "" if(i_Sort_by_Labware == 1 && i_Sort_by_XY == 1) { order_by = "ORDER BY LAB1 ASC, X1 ASC, Y1 DESC"; } else if(i_Sort_by_Labware == 1 && i_Sort_by_XY == 0) { order_by = "ORDER BY LAB1 ASC, LINE_NUMBER ASC"; } else if(i_Sort_by_Labware == 0 && i_Sort_by_XY == 1) { order_by = "ORDER BY X1 ASC, Y1 DESC"; } else { order_by = "ORDER BY LINE_NUMBER ASC"; } // {{ 378 1 0 "a2edb2cc_c200_4056_98eddb4b08260429" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 379 1 0 "b890f0e8_8fe0_4454_a573b7017fdfb573" "{C1F3C015-47B3-4514-9407-AC2E65043419}" count_sql = StrConcat12(Translate("SELECT COUNT(*) AS N FROM SORT WHERE "), restriction1, Translate(" "), used_exclusion, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), restriction_raster); // }} "" // {{ 380 1 0 "7b1fa051_a22b_4d4c_b866995ebef497b0" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Count_Available.AddField("N", count_value, hslInteger); if( 0 == Count_Available.Open(sort_file + " " + "SORT", hslRead, count_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 381 1 0 "38209b86_2947_43d3_95c8110b4e09af0b" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Count_Available.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 382 1 0 "bd02e292_91c0_494e_a0da986820989587" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Count_Available.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Count_Available.RemoveFields(); // }} "" // {{ 383 1 0 "c90b41cc_2c6a_462b_b5eb14a568d27ffa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (count_value == 0) { // }} "" // {{ 384 1 0 "8bf987aa_778e_4ce3_bca27e15620014c9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_x_coord = 0.0; // }} "" // {{ 385 1 0 "c90b41cc_2c6a_462b_b5eb14a568d27ffa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 386 1 0 "1c328817_cbe8_4125_8e4bea448bcc64e0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 387 1 0 "91140b5b_dec8_4ce3_be3b21670f443207" "{C1F3C015-47B3-4514-9407-AC2E65043419}" count_sql = StrConcat12(Translate("SELECT COUNT(*) AS N FROM SORT WHERE "), restriction1, Translate(" "), used_exclusion, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{ 388 1 0 "57e6d1f1_f7ca_4fd6_9aa8da793e919822" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Count_Available.AddField("N", count_value, hslInteger); if( 0 == Count_Available.Open(sort_file + " " + "SORT", hslRead, count_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 389 1 0 "481c7a8a_b907_41a9_b205a144a97982a9" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Count_Available.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 390 1 0 "a65a359a_81e7_409e_8166fe2c62673dc9" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Count_Available.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Count_Available.RemoveFields(); // }} "" // {{ 391 1 0 "1e27d55f_2d55_42a4_acb35b856b681877" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (count_value > 0) { // }} "" // {{ 392 1 0 "de24d4f1_c2f0_4f48_9b13d23d587dc9fd" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 393 1 0 "5a9e4f07_3a09_453e_9dfabdf984abcbb2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" filter_sql = StrConcat12(Translate("SELECT * FROM SORT WHERE "), restriction1, Translate(" "), used_exclusion, Translate(" "), order_by, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{ 394 1 0 "fe7f08fd_a595_4d26_ad0d6bba65b14170" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Sort_File.AddField("LINE_NUMBER", line_number, hslInteger); Sort_File.AddField("LAB1", lab1, hslString, 255); Sort_File.AddField("POS1", pos1, hslString, 255); Sort_File.AddField("LAB2", not_used, hslString, 255); Sort_File.AddField("POS2", not_used, hslString, 255); Sort_File.AddField("VAL1", val1, hslString, 255); Sort_File.AddField("VAL2", not_used, hslString, 255); Sort_File.AddField("X1", x1, hslFloat); Sort_File.AddField("Y1", y1, hslFloat); Sort_File.AddField("X2", not_used, hslString, 255); Sort_File.AddField("Y2", not_used, hslString, 255); Sort_File.AddField("STATUS", status, hslString, 255); if( 0 == Sort_File.Open(sort_file + " " + "SORT", hslRead, filter_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 395 1 0 "3761a6ad_eedf_487f_ab1dec090365412b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { file_index = 0; while ( (Sort_File.Eof() == 0) ) { file_index = file_index + 1; // }} "" // {{ 396 1 0 "8fb90739_278c_4bdd_a51361f1465856a3" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Sort_File.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 397 1 0 "bf2a6773_f3ee_456c_a29a7f6581d1ae4a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Sort_for_Channel_Raster == 0) { // }} "" // {{ 398 1 0 "901faa1b_f82a_47e0_9a6923ead11232d4" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 399 1 0 "bf2a6773_f3ee_456c_a29a7f6581d1ae4a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 400 1 0 "740b3984_7632_4c78_a6b1896a5cdd268a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (x1 != prev_x_coord) { // }} "" // {{ 401 1 0 "770013f0_dbe6_4506_abe01299baa3ac72" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 402 1 0 "740b3984_7632_4c78_a6b1896a5cdd268a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 403 1 0 "1bbd2615_01df_4097_99815149c6923ec0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (y1 <= prev_y_coord) { // }} "" // {{ 404 1 0 "53e73996_6f07_491e_83e063e2f626751a" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 405 1 0 "1bbd2615_01df_4097_99815149c6923ec0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 406 1 0 "3761a6ad_eedf_487f_ab1dec090365412b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 407 1 0 "2b3f1e04_e5b3_4890_a77b425d6051de25" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Sort_File.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Sort_File.RemoveFields(); // }} "" // This converts the array values back to their original state if(val_type1 == 1) val1 = FVal(val1); else if(val_type1 == 2) val1 = IVal(val1); // {{{ 409 1 0 "1f7c5560_002f_43b8_8b9429a580f6c3e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_Sorted_Sequence, lab1, pos1); // }} "" // {{{ 410 1 0 "b8a2ae26_b3ed_440f_96fe5eb72e8adb3a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, channel_number, 1); // }} "" // {{ 411 1 0 "84e8377a_0233_42dd_94f0996931dec666" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_Sorted_Array.SetAt(channel_number-1, val1); // }} "" // {{ 412 1 0 "1b6660d2_8727_4b45_8edec9c177ca0c2c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_line_numbers.AddAsLast(line_number); // }} "" // {{ 413 1 0 "07e4725b_da6f_47d4_bb9ce0ac22bf749a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_x_coord = x1; // }} "" // {{ 414 1 0 "786d82af_6013_461c_be5af625c118ac8b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_y_coord = y1; // }} "" // {{ 415 1 0 "1e27d55f_2d55_42a4_acb35b856b681877" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 416 1 0 "b1195e50_8ab8_4feb_b98dbdb9755d15ff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" val1 = Translate("0"); // }} "" // This converts the array values back to their original state if(val_type1 == 1) val1 = FVal(val1); else if(val_type1 == 2) val1 = IVal(val1); // {{ 418 1 0 "e845dd4f_c537_43fd_8f9a47f0fc625473" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_Sorted_Array.SetAt(channel_number-1, val1); // }} "" // {{ 419 1 0 "1e27d55f_2d55_42a4_acb35b856b681877" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 420 1 0 "f59abef5_52c6_465e_ac7d4dfe0141c699" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 421 1 0 "ba84d3e1_d8af_427e_80d4d9f4b897daa1" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_Sorted_Sequence.SetCurrentPosition(1); // }} "" // {{ 422 1 0 "d783ecc8_4e4a_4b5d_86a289c05401d5c9" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 423 1 0 "c3810bf2_b58f_4a3b_a301bad2a15f03d4" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" num_used=arr_line_numbers.GetSize(); // }} "" // {{ 424 1 0 "d0284fb8_4332_4740_ba882c5961523873" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" ret_Number_Remaining = num_to_sort - num_used; // }} "" // {{ 425 1 0 "2f23c357_d57f_40af_83af9ede43af55b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (num_used == 0) { // }} "" // {{{ 426 1 0 "73d6c385_e90f_404f_a9a5e807f926e6a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("********************************** The remaining positions are out of reach for the selected channels!!!!"), Translate("")); // }} "" // {{{ 427 1 0 "dbba32bb_65be_4a2a_b977e75ca1caa933" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("The remaining positions are out of reach for all the selected channels!!!!")); // }} "" // {{ 428 1 0 "2f23c357_d57f_40af_83af9ede43af55b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 429 1 0 "772473a2_7f9b_4c9a_a38a4079c291ce82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(Translate("LINE_NUMBER IN("), Translate("")); // }} "" // {{ 430 1 0 "b0cbef3b_ac40_456d_a4771aa35f7a2737" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(in_index = 0; in_index < num_used;) { in_index = in_index + 1; // }} "" // {{ 431 1 0 "971a0af4_ad0b_47ef_8167dbe2508fcddb" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" line_number=arr_line_numbers.GetAt(in_index-1); // }} "" // {{ 432 1 0 "90f5127c_b5cc_4e33_ae9283d96bfda405" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (in_index != 1) { // }} "" // {{{ 433 1 0 "f9eb7c40_8660_456b_96aabc01e136da45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(in_group, Translate(", ")); // }} "" // {{ 434 1 0 "90f5127c_b5cc_4e33_ae9283d96bfda405" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 435 1 0 "59b56322_1062_48ee_b24b50d12afe9f42" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(in_group, line_number); // }} "" // {{ 436 1 0 "b0cbef3b_ac40_456d_a4771aa35f7a2737" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 437 1 0 "97d0589e_a3b0_47b4_865f688dacfbd71c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(in_group, Translate(")")); // }} "" // {{{ 438 1 0 "26c5e709_7e9f_42d6_9a16fc220e271449" "{C1F3C015-47B3-4514-9407-AC2E65043419}" update_sql = StrConcat4(Translate("UPDATE SORT SET STATUS = 'DONE' WHERE "), in_group, Translate(""), Translate("")); // }} "" // {{ 439 1 0 "f97b1074_5be4_4e67_9c9d4131bd75eba9" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Update_FIle.Open(sort_file + " " + "SORT", hslRead, update_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 440 1 0 "7d21acb2_1ea1_48a9_b4d24da53bd738be" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Update_FIle.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Update_FIle.RemoveFields(); // }} "" // {{ 441 1 0 "06a584e4_442a_4fc7_bffa937b06256c43" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 442 1 0 "69086706_acc8_4a82_8fe1763b01cce182" "{C1F3C015-47B3-4514-9407-AC2E65043419}" count_sql = StrConcat2(Translate("SELECT COUNT(*) AS N FROM SORT WHERE STATUS = 'NOT_DONE'"), Translate("")); // }} "" // {{ 443 1 0 "a067fd14_083e_457a_98eef646e339de8f" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Count_Available.AddField("N", count_value, hslInteger); if( 0 == Count_Available.Open(sort_file + " " + "SORT", hslRead, count_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 444 1 0 "6c2ba365_cfe1_44ac_ac1836c6fb22d86d" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Count_Available.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 445 1 0 "46f4757c_53a0_4d3d_8b2fda4fa733a49b" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Count_Available.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Count_Available.RemoveFields(); // }} "" // {{ 446 1 0 "e402d723_f7ff_4142_bfc938fe41d48771" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_Number_Remaining = count_value; // }} "" // {{ 447 1 0 "f9796bbb_97a1_49fb_9085d6034927d6eb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (count_value == 0) { // }} "" // {{{ 448 1 0 "7126da96_b7af_4d7d_8120206540f423ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(io_Sequence_to_Sort); // }} "" // {{ 449 1 0 "3d319957_3310_4727_913bdbe6f7cc7a53" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" io_Array_of_Variables.SetSize(0); // }} "" // {{ 450 1 0 "f9796bbb_97a1_49fb_9085d6034927d6eb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 451 1 0 "cb1007c0_e522_479b_923e28ee78fd490b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" filter_sql = StrConcat2(Translate("SELECT * FROM SORT WHERE STATUS = 'NOT_DONE' ORDER BY LINE_NUMBER ASC"), Translate("")); // }} "" // {{{ 452 1 0 "a66659f9_db6d_4876_a9b8d623a04d79d1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(temp_seq1); // }} "" // {{ 453 1 0 "dc5bb7b8_3fa8_403b_b6acad3a472d98e6" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_temp_array1.SetSize(0); // }} "" // {{ 454 1 0 "e27a58d9_b7c0_49d1_a20f1a1305c6fccb" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Sort_File.AddField("LINE_NUMBER", line_number, hslInteger); Sort_File.AddField("LAB1", lab1, hslString, 255); Sort_File.AddField("POS1", pos1, hslString, 255); Sort_File.AddField("LAB2", not_used, hslString, 255); Sort_File.AddField("POS2", not_used, hslString, 255); Sort_File.AddField("VAL1", val1, hslString, 255); Sort_File.AddField("VAL2", not_used, hslString, 255); Sort_File.AddField("X1", x1, hslFloat); Sort_File.AddField("Y1", y1, hslFloat); Sort_File.AddField("X2", not_used, hslString, 255); Sort_File.AddField("Y2", not_used, hslString, 255); Sort_File.AddField("STATUS", status, hslString, 255); if( 0 == Sort_File.Open(sort_file + " " + "SORT", hslRead, filter_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 455 1 0 "cdc7d6b6_3d03_4230_aebbae278b12eef9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while ( (Sort_File.Eof() == 0) ) { // }} "" // {{ 456 1 0 "5d9a3450_de6a_49f7_ac9a94816561e70b" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Sort_File.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // This converts the array values back to their original state if(val_type1 == 1) val1 = FVal(val1); else if(val_type1 == 2) val1 = IVal(val1); // {{ 458 1 0 "2d354c1c_2be7_414d_a2e5264626130cd2" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_temp_array1.AddAsLast(val1); // }} "" // {{{ 459 1 0 "62e3ccec_1a57_4944_88e029bfa2f8dd75" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(temp_seq1, lab1, pos1); // }} "" // {{ 460 1 0 "cdc7d6b6_3d03_4230_aebbae278b12eef9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 461 1 0 "f2ee08db_b9ae_4c1b_bf7875017fa4b85f" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Sort_File.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Sort_File.RemoveFields(); // }} "" // {{ 462 1 0 "0f1a44c4_06fe_4668_a07c1c7337a0bed8" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" temp_seq1.SetCurrentPosition(1); // }} "" // {{{ 463 1 0 "5b7b28b2_8ac7_4faf_9f965cd9849ef390" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(io_Sequence_to_Sort, temp_seq1); // }} "" // {{ 464 1 0 "e2ff80fc_5c39_449e_93cbc5c02668bd7f" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" io_Array_of_Variables=arr_temp_array1; // }} "" // {{ 465 1 0 "f9796bbb_97a1_49fb_9085d6034927d6eb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 466 1 0 "0fdfabeb_3be9_441f_a1f88d79ae51d453" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 468 1 0 "0fdfabeb_3be9_441f_a1f88d79ae51d453" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 469 1 0 "a97cd7c4_1c57_4c08_a861607d3d11337c" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_Number_Remaining); // }} "" // {{{ 5 "CHAN_ACCESS_Sort1Sequence1Array" "End" } // }} "" // {{{ 5 "CHAN_ACCESS_Sort1Sequence2Arrays" "Begin" function CHAN_ACCESS_Sort1Sequence2Arrays( device & ML_STAR, sequence & io_Sequence_to_Sort, variable & io_Array_of_Variables[], variable & io_Array_of_Variables2[], variable i_Channel_Type, variable i_Sort_by_Labware, variable i_Sort_by_XY, variable i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence & o_Sorted_Sequence, variable & o_Sorted_Array[], variable & o_Sorted_Array2[], variable & o_Channel_Pattern ) variable { // }} "" private variable used_exclusion; private variable channel_raster; private variable status; private variable num_in_array2; private variable num_to_sort; private variable in_group; private variable pos1; private variable is_string2; private variable restriction_raster; private variable num_used; private variable in_index; private variable update_sql; private variable y_min; private variable ret_Number_Remaining; private variable is_float2; private variable val1; private variable y_max; private variable num_in_array; private variable value_equal; private variable num_labhand_channels; private variable total_channels; private variable val2; private variable file_index; private variable null; private variable restriction1; private variable not_used; private variable lab1; private variable sort_file; private variable is_integer2; private variable filter_sql; private variable prev_y_coord; private variable num_1mL_channels; private variable prev_x_coord; private variable count_sql; private variable order_by; private variable num_5mL_channels; private variable val_type1; private variable is_string; private variable y1; private variable channel_number; private variable count_value; private variable val_type2; private variable x1; private variable is_integer; private variable line_number; private variable is_float; private variable sequence_name; private sequence temp_seq1; private file Count_Available; private file Update_FIle; private file Sort_File; private variable arr_temp_array1[]; private variable arr_temp_array2[]; private variable arr_Y_Min[]; private variable arr_Y_Max[]; private variable arr_line_numbers[]; private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable bool_FileExists; private variable int_Count; // {{ 5 "CHAN_ACCESS_Sort1Sequence2Arrays" "InitLocals" { sequence __temp; o_Sorted_Sequence = __temp; } o_Sorted_Array.SetSize( 0); o_Sorted_Array2.SetSize( 0); o_Channel_Pattern = 0; // }} "" // {{ 471 1 0 "d5e351cb_41fc_4c1a_9bb57ea21513b5cd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 472 1 0 "e5ff749c_fbf4_4cd7_b55ca11e98443723" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 474 1 0 "7cffb75b_3051_48fb_bd0ffa8b746f9ff5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 475 1 0 "5f26a3ee_57c4_4afe_b1f85f64d445bd1c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 476 1 0 "78c32475_90f7_4bde_8ed2d8ab7a45c45f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 477 1 0 "637d6345_8eb2_4a42_b105bb3fcdea2fc0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 478 1 0 "3d21013f_4eb2_40e8_9eae992f400b62db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 480 1 0 "d5e351cb_41fc_4c1a_9bb57ea21513b5cd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 481 1 0 "c5993fdd_988d_44c0_8f2ffc3182e43a13" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 482 1 0 "a733d1e9_3461_4ad4_9f63e113bbbd8d8a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 483 1 0 "536df048_9f70_4c63_9405e4263dc44ebd" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 484 1 0 "bac8145f_7f61_4ab7_9e29d985fe40e57e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{{ 485 1 0 "1c0bf5aa_ecdc_4d7b_b134d25f42dd5cc3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_5mL_channels = DevGetCfgValueWithKey(ML_STAR, 43); // }} "" // {{{ 486 1 0 "3af7af3c_e018_40b0_bf777b548fcb9586" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_labhand_channels = DevGetCfgValueWithKey(ML_STAR, 47); // }} "" // {{{ 487 1 0 "f5ea5095_102b_4099_871d88db59d090d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Channel_Type = StrConcat2(i_Channel_Type, Translate("")); // }} "" // {{{ 488 1 0 "1733d707_2383_40f9_b2176dc45599ce12" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Channel_Type = StrIVal(i_Channel_Type); // }} "" // {{ 489 1 0 "49decf33_1a13_40f1_a1bc0c6894304688" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type < 0) { // }} "" // {{{ 490 1 0 "29aca248_ee54_4041_b053a76e4da78837" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace4(Translate("*************** Channel type of "), i_Channel_Type, Translate(" is not recognized by this library!!!!"), Translate("")); // }} "" // {{ 491 1 0 "2f63c653_1e5c_4d2c_8a7bc400d7f32070" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = 0; // }} "" // {{ 492 1 0 "49decf33_1a13_40f1_a1bc0c6894304688" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 493 1 0 "7308f035_ce5b_401a_bc8af70d7e1e47bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type > 2) { // }} "" // {{{ 494 1 0 "4be49f71_c45e_4633_a988a811516a47f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace4(Translate("*************** Channel type of "), i_Channel_Type, Translate(" is not recognized by this library!!!!"), Translate("")); // }} "" // {{ 495 1 0 "b90b5730_0b8e_4f10_bc517b4dac4d959a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = 0; // }} "" // {{ 496 1 0 "7308f035_ce5b_401a_bc8af70d7e1e47bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 497 1 0 "ea475905_72fb_4897_80a23c088ca33a82" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 0) { // }} "" // {{ 498 1 0 "c0ea74b1_829b_4f0e_8ea08dd914766ab0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = num_1mL_channels; // }} "" // {{ 499 1 0 "ea475905_72fb_4897_80a23c088ca33a82" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 500 1 0 "93b57430_edae_4d32_b597db5925c050da" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 1) { // }} "" // {{ 501 1 0 "208df700_d1d1_4416_a1c87210f62bc8a0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = num_5mL_channels; // }} "" // {{ 502 1 0 "93b57430_edae_4d32_b597db5925c050da" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 503 1 0 "51504218_1e0e_4c52_a3d821675f85d031" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 2) { // }} "" // {{ 504 1 0 "0c6ca8ae_2056_429e_b0cd6d5c44f4bf2d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = num_labhand_channels; // }} "" // {{ 505 1 0 "51504218_1e0e_4c52_a3d821675f85d031" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 506 1 0 "a733d1e9_3461_4ad4_9f63e113bbbd8d8a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 507 1 0 "b2f0f0cd_312c_4489_b8b78fcbf9128edc" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 508 1 0 "b0d8f127_c061_46a6_8fc708f831969caa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_Channel_Pattern = Translate(""); // }} "" // {{ 509 1 0 "95f829c5_bf9a_4d72_b3ec9d6d34651a6d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (total_channels == 0) { // }} "" // {{ 510 1 0 "2c3147ca_ac10_4206_b614cb746ca9028b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 0) { // }} "" // {{{ 511 1 0 "f4b42977_d5fc_4213_b2193ef4bb94d368" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** There are no 1 mL channels installed!"), Translate("")); // }} "" // {{{ 512 1 0 "6f726399_c924_45a0_9e0cec66c72e2260" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("No 1 mL channels installed!!")); // }} "" // {{ 513 1 0 "2c3147ca_ac10_4206_b614cb746ca9028b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 514 1 0 "756907b5_3d9e_407b_bd8e96031907766a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 1) { // }} "" // {{{ 515 1 0 "af215748_c85f_4549_a6898bbf5bb9e864" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** There are no 5 mL channels installed!"), Translate("")); // }} "" // {{{ 516 1 0 "188c8c72_25fb_49fe_a172e257284fa158" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("No 5 mL channels installed!!")); // }} "" // {{ 517 1 0 "756907b5_3d9e_407b_bd8e96031907766a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 518 1 0 "9ee75066_66ba_45a4_8f8044b0f04e5ca6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 2) { // }} "" // {{{ 519 1 0 "f6b22ab1_23ed_49d6_86e8b0822f968516" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** There are no Lab Handler channels installed!"), Translate("")); // }} "" // {{{ 520 1 0 "7079d1c7_d37d_492b_b8251ac9f17b9d10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("No Lab Handler channels installed!!")); // }} "" // {{ 521 1 0 "9ee75066_66ba_45a4_8f8044b0f04e5ca6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 522 1 0 "95f829c5_bf9a_4d72_b3ec9d6d34651a6d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 523 1 0 "8ca0a003_a0f8_4afd_b7654793ba1549f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, io_Sequence_to_Sort); // }} "" // {{{ 524 1 0 "8799a827_3994_49a3_9f71b330f289c637" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, total_channels, 0); // }} "" // {{{ 525 1 0 "b365f325_f840_4b5d_969db2f6d5cf5e5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Max_Channel = StrConcat2(i_Max_Channel, Translate("")); // }} "" // {{{ 526 1 0 "2c9e10e8_a51e_4237_92ed756435b3358e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Max_Channel = StrIVal(i_Max_Channel); // }} "" // {{ 527 1 0 "376e18de_7bb0_4b75_a47ad14db8b49a25" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Max_Channel <= 0) { // }} "" // {{ 528 1 0 "8226c29d_9939_405e_a068e520bf26c032" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" i_Max_Channel = total_channels; // }} "" // {{ 529 1 0 "376e18de_7bb0_4b75_a47ad14db8b49a25" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 530 1 0 "203cd1ac_9697_4e68_8d20e9aa8658286f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Max_Channel > total_channels) { // }} "" // {{ 531 1 0 "f4f87acd_0c92_4198_b9ac578d532d413a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" i_Max_Channel = total_channels; // }} "" // {{ 532 1 0 "203cd1ac_9697_4e68_8d20e9aa8658286f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 533 1 0 "f5e603b9_1825_4e81_bfedd59c95bf635c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_Number_Remaining = 0; // }} "" // {{{ 534 1 0 "00077552_3b71_44e7_91b963dc819a6e4d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_Sorted_Sequence); // }} "" // {{ 535 1 0 "313c4f2f_9946_44ad_8e183fabb0a77d70" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_Sorted_Array.SetSize(i_Max_Channel); // }} "" // {{ 536 1 0 "c21bc53a_3438_46e0_8e58b0eab8317cb3" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_Sorted_Array2.SetSize(i_Max_Channel); // }} "" // {{ 537 1 0 "428371de_1e9d_44bd_bf5cdf8754706434" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 0) { // }} "" // {{ 538 1 0 "6257a649_1975_4838_bd78b6f133f15dd4" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Max=G_ARR_FW_PIP_COM_YMax; // }} "" // {{ 539 1 0 "bfe2f179_48cf_40bd_ba37f53f4712d792" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Min=G_ARR_FW_PIP_COM_YMin; // }} "" // {{ 540 1 0 "78bd17cc_c58e_4db5_9e6a67fcfdb57925" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" channel_raster = G_FW_PIP_COM_Raster; // }} "" // {{ 541 1 0 "428371de_1e9d_44bd_bf5cdf8754706434" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 542 1 0 "d10493cd_85b9_40f5_9253ebf18658d685" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 1) { // }} "" // {{ 543 1 0 "00499320_3ec2_420e_911324962dca671a" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Max=G_ARR_FW_XL_COM_YMax; // }} "" // {{ 544 1 0 "e647454d_66cc_448d_b026b70f81e38122" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Min=G_ARR_FW_XL_COM_YMin; // }} "" // {{ 545 1 0 "9f4c2b55_f18d_4698_979c83eb84e02772" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" channel_raster = G_FW_XL_COM_Raster; // }} "" // {{ 546 1 0 "d10493cd_85b9_40f5_9253ebf18658d685" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 547 1 0 "afc5d524_21d0_496a_9dd327ef13f5fbda" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 2) { // }} "" // {{{ 548 1 0 "caa58ebc_92f3_455d_b401cdeee91a52a9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetChannelLimits(ML_STAR, i_Channel_Type, arr_Y_Max, arr_Y_Min, channel_raster); // }} "" // {{ 549 1 0 "afc5d524_21d0_496a_9dd327ef13f5fbda" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 550 1 0 "935b06e7_f8ff_4287_9b722c47e44b5deb" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 551 1 0 "2f3e683c_1dac_4cde_bcd5064c5c8f3e96" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTempSortingFilePath(sort_file); // }} "" // {{{ 552 1 0 "bec910ea_e693_4f5d_b1762048ec11828f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(sort_file); // }} "" // {{ 553 1 0 "e98d4e62_0922_4d3c_853465c9b7739cd8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 1) { // }} "" // {{{ 554 1 0 "e2b5a448_3bc7_44dc_b481ec9c7cd51e48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(sort_file); // }} "" // {{ 555 1 0 "e98d4e62_0922_4d3c_853465c9b7739cd8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 556 1 0 "19aa48a2_0b85_4a8d_bf36aa1249c402ba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_to_sort = SeqGetTotal(io_Sequence_to_Sort); // }} "" // {{{ 557 1 0 "18bc44ca_d6a2_43ee_8ca7da146ea6a01d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" sequence_name = SeqGetName(io_Sequence_to_Sort); // }} "" // {{ 558 1 0 "82a74a37_351c_4c2b_822d1033b0854a66" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" num_in_array=io_Array_of_Variables.GetSize(); // }} "" // {{ 559 1 0 "1c5132ae_dda1_4ab5_a2e19116fb903cbb" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" num_in_array2=io_Array_of_Variables2.GetSize(); // }} "" // {{ 560 1 0 "4911101a_bbe7_4e1d_afd46c64d18fc563" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" value_equal = 0; // }} "" if(num_to_sort == num_in_array && num_to_sort == num_in_array2) value_equal = 1; // {{ 562 1 0 "e9796f1c_fe9a_421f_9e3716fcf2bc5a9f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (num_to_sort == 0) { // }} "" // {{{ 563 1 0 "1864cfdb_07de_42de_ac4bcc7d7dd3e30c" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_Number_Remaining); // }} "" // {{ 564 1 0 "e9796f1c_fe9a_421f_9e3716fcf2bc5a9f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 565 1 0 "71f230ba_2ab8_4bdd_8451cbede5aecbbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (value_equal == 0) { // }} "" // {{{ 566 1 0 "8c7648cd_6aac_4944_85a6b8efb48c0360" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("############## SEQUENCE AND ARRAYS DO NOT HAVE THE SAME NUMBER OF POSITIONS."), Translate("")); // }} "" // {{{ 567 1 0 "8f5394b1_dafa_409e_97806469847499c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Sequence and arrays do not have the same number of positions.")); // }} "" // {{ 568 1 0 "71f230ba_2ab8_4bdd_8451cbede5aecbbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 569 1 0 "cc4765b9_25a3_42c1_af0a5c44a9479cd9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("________________________________________________________"), Translate("")); // }} "" // {{{ 570 1 0 "09a2e2e5_dede_4373_b6799ee8b5074db3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(""), Translate("")); // }} "" // {{{ 571 1 0 "2d28b857_395e_46c5_a3a81f03cbbacd88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Sequence to Sort: "), sequence_name); // }} "" // {{{ 572 1 0 "f93c4224_20de_4768_a37b5f70e4bbfc0a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Number of Positions in Sequence: "), num_to_sort); // }} "" // {{{ 573 1 0 "609b8130_988e_4461_9035936a7c4d1cec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Sort by Labware: "), i_Sort_by_Labware); // }} "" // {{{ 574 1 0 "fbdea640_c499_4747_b39881ed28e03ac7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Sort by XY: "), i_Sort_by_XY); // }} "" // {{{ 575 1 0 "03b2ce05_e40b_4343_a6b6cb93d58dafa2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Sort for Channel Raster: "), i_Sort_for_Channel_Raster); // }} "" // {{{ 576 1 0 "4cb56b93_2eec_48a6_8132414ff26fd69c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Channel Raster: "), channel_raster); // }} "" // {{{ 577 1 0 "2a39d194_c9b3_4524_80ba8f10bd2b73fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Maximum Channel: "), i_Max_Channel); // }} "" if(i_Channel_Type == 0) Trace(" Channel Type: 1 mL"); else if(i_Channel_Type == 1) Trace(" Channel Type: 5 mL"); else if(i_Channel_Type == 2) Trace(" Channel Type: Labware Handler"); // {{{ 579 1 0 "fcb17679_6241_4ed0_9d9f04a69a6d4f2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("________________________________________________________"), Translate("")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 580 1 0 "fd977631_7d93_4dc0_b8c69b4cb146c150" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 581 1 0 "71d06f6a_8372_4afd_973574df03e62f5d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" is_float = HSLExtensions::Array::IsFloatArray(io_Array_of_Variables); // }} "" // {{{ 582 1 0 "47c1e87d_3f8c_4496_83bb4bec16bb5fc8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" is_integer = HSLExtensions::Array::IsIntegerArray(io_Array_of_Variables); // }} "" // {{{ 583 1 0 "90da5ba8_8bcd_4c67_9eb3ea802d74b65c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" is_string = HSLExtensions::Array::IsStringArray(io_Array_of_Variables); // }} "" // {{{ 584 1 0 "14f1b780_805d_4b17_b712516d3d88a402" "{C1F3C015-47B3-4514-9407-AC2E65043419}" is_float2 = HSLExtensions::Array::IsFloatArray(io_Array_of_Variables2); // }} "" // {{{ 585 1 0 "42b8780f_e0b9_47a0_b66ac3fa0d1bde9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" is_integer2 = HSLExtensions::Array::IsIntegerArray(io_Array_of_Variables2); // }} "" // {{{ 586 1 0 "3f19c19f_26ca_4f26_aadf1e4b9873aba2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" is_string2 = HSLExtensions::Array::IsStringArray(io_Array_of_Variables2); // }} "" // {{ 587 1 0 "bd40b829_2216_4277_9bb7a303189e9e4a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" val_type1 = 0; // }} "" // {{ 588 1 0 "8a2849ab_7fb7_4f36_9ebbc3853fa8e6c2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" val_type2 = 0; // }} "" if(is_float == 1) val_type1 = 1; else if(is_integer == 1) val_type1 = 2; if(is_float2 == 1) val_type2 = 1; else if(is_integer2 == 1) val_type2 = 2; // {{ 590 1 0 "fee6bc9b_524a_4572_8b00e7f24c77a057" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 591 1 0 "e99d1301_3e9b_4125_aa8d439db6fa7b1c" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Sort_File.AddField("LINE_NUMBER", line_number, hslInteger); Sort_File.AddField("LAB1", lab1, hslString, 255); Sort_File.AddField("POS1", pos1, hslString, 255); Sort_File.AddField("LAB2", not_used, hslString, 255); Sort_File.AddField("POS2", not_used, hslString, 255); Sort_File.AddField("VAL1", val1, hslString, 255); Sort_File.AddField("VAL2", val2, hslString, 255); Sort_File.AddField("X1", x1, hslFloat); Sort_File.AddField("Y1", y1, hslFloat); Sort_File.AddField("X2", not_used, hslString, 255); Sort_File.AddField("Y2", not_used, hslString, 255); Sort_File.AddField("STATUS", status, hslString, 255); if( 0 == Sort_File.Open(sort_file + " " + "SORT", hslWrite) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 592 1 0 "da2730f7_b588_4482_aa2f69f03cde50ed" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" not_used = Translate("-----"); // }} "" // {{ 593 1 0 "26fe431f_622a_44f0_bf04cc34bbad7412" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" status = Translate("NOT_DONE"); // }} "" // {{ 594 1 0 "8c2ed21d_f502_4316_90066ab1a8796225" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(line_number = 0; line_number < num_to_sort;) { line_number = line_number + 1; // }} "" // {{ 595 1 0 "8a7ec7b6_5d6a_4b08_844cb2c067fc3176" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_Sequence_to_Sort.SetCurrentPosition(line_number); // }} "" // {{{ 596 1 0 "7f956177_b1f5_446e_9fca85e6160f37ba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" lab1 = SeqGetLabwareId(io_Sequence_to_Sort); // }} "" // {{{ 597 1 0 "678ffd16_9965_4d4b_89b89827706772fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pos1 = SeqGetPositionId(io_Sequence_to_Sort); // }} "" // {{{ 598 1 0 "1bf15487_db33_4e52_a10e9ca36952079b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, lab1, pos1, x1, y1, null, null); // }} "" // {{ 599 1 0 "28d0b136_19e7_4cf8_93653630fffd8207" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" val1=io_Array_of_Variables.GetAt(line_number-1); // }} "" // {{ 600 1 0 "d9f87989_d0a4_4a55_a7e9dbb73bc1ab36" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" val2=io_Array_of_Variables2.GetAt(line_number-1); // }} "" // {{ 601 1 0 "ab62c233_1a20_4146_b5bc4d673b05b76d" "{B31F3537-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Sort_File.WriteRecord() ) { MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 602 1 0 "8c2ed21d_f502_4316_90066ab1a8796225" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 603 1 0 "9555f01a_68ac_4092_839d4cf77725f984" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Sort_File.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Sort_File.RemoveFields(); // }} "" // {{ 604 1 0 "fbe96d0e_df43_4a02_bd8c2c58ec196c0a" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_line_numbers.SetSize(0); // }} "" // {{ 605 1 0 "52a6a4b3_75bd_4c50_bbeb62ba36ee3a6a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_x_coord = 0.0; // }} "" // {{ 606 1 0 "11475ea1_0699_4a29_b7cc5dd46b0f404a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_y_coord = 999.0; // }} "" // {{ 607 1 0 "0e8200f0_cb10_409b_b33aa9c7bef7e2a4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(channel_number = 0; channel_number < i_Max_Channel;) { channel_number = channel_number + 1; // }} "" // {{ 608 1 0 "3161ab8c_aeda_4ee3_90f187d33437bb6a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" prev_y_coord = prev_y_coord - channel_raster; // }} "" // {{{ 609 1 0 "1f0bd26f_8d2e_4b53_9bf513b19f4fe864" "{C1F3C015-47B3-4514-9407-AC2E65043419}" restriction_raster = StrConcat8(Translate("AND (X1"), Translate(" = "), prev_x_coord, Translate(" AND "), Translate("Y1"), Translate(" <= "), prev_y_coord, Translate(")")); // }} "" // {{ 610 1 0 "496acd7a_fd4c_44f9_9dc35348e77db53f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 611 1 0 "db051b25_dc4f_4eb7_9f1f8843e19ce356" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" y_max=arr_Y_Max.GetAt(channel_number-1); // }} "" // {{ 612 1 0 "606f3fde_02c9_416d_8aaa1a25e69b03c8" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" y_min=arr_Y_Min.GetAt(channel_number-1); // }} "" // {{{ 613 1 0 "b932d4ac_9908_46ef_abdbf8ce9e78df5a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" restriction1 = StrConcat8(Translate("(Y1 "), Translate(">= "), y_min, Translate(" AND "), Translate("Y1 "), Translate("<= "), y_max, Translate(")")); // }} "" // {{ 614 1 0 "5672a2f9_c6ef_4da5_ac45cb4c32415224" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 615 1 0 "ed15f69d_ba9b_4e52_8612cef431b23a2c" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" num_used=arr_line_numbers.GetSize(); // }} "" // {{ 616 1 0 "d3368136_cb74_411d_b3995e656fa4b09a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (num_used == 0) { // }} "" // {{ 617 1 0 "4dddf02f_2854_4966_b9f09b1f9b0dc97b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" used_exclusion = Translate(""); // }} "" // {{ 618 1 0 "d3368136_cb74_411d_b3995e656fa4b09a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 619 1 0 "17ccb9cb_2b2f_4d71_8a6ac57f218b701b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(Translate("AND LINE_NUMBER NOT IN("), Translate("")); // }} "" // {{ 620 1 0 "b93ef8e0_ffc1_4b13_b9bee78dc64d76c6" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(in_index = 0; in_index < num_used;) { in_index = in_index + 1; // }} "" // {{ 621 1 0 "b1e46920_aa56_494b_b5233ffe5fef8364" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" line_number=arr_line_numbers.GetAt(in_index-1); // }} "" // {{ 622 1 0 "015ceb12_3ea1_4bb6_a1d681ecb00b573a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (in_index != 1) { // }} "" // {{{ 623 1 0 "4e8b5f9a_e81f_4cd8_ae2e253ad4fb46d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(used_exclusion, Translate(", ")); // }} "" // {{ 624 1 0 "015ceb12_3ea1_4bb6_a1d681ecb00b573a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 625 1 0 "1a0562ab_308d_409d_a34936ae0334cc6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(used_exclusion, line_number); // }} "" // {{ 626 1 0 "b93ef8e0_ffc1_4b13_b9bee78dc64d76c6" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 627 1 0 "acaaf743_f07f_4591_af1a64945cbc3648" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(used_exclusion, Translate(")")); // }} "" // {{ 628 1 0 "d3368136_cb74_411d_b3995e656fa4b09a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 629 1 0 "5b0c3b18_c4b5_4eef_b77b2f1e5eb26673" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 630 1 0 "984f59e5_fbf9_4b77_9538403ff13775d5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" order_by = Translate(""); // }} "" if(i_Sort_by_Labware == 1 && i_Sort_by_XY == 1) { order_by = "ORDER BY LAB1 ASC, X1 ASC, Y1 DESC"; } else if(i_Sort_by_Labware == 1 && i_Sort_by_XY == 0) { order_by = "ORDER BY LAB1 ASC, LINE_NUMBER ASC"; } else if(i_Sort_by_Labware == 0 && i_Sort_by_XY == 1) { order_by = "ORDER BY X1 ASC, Y1 DESC"; } else { order_by = "ORDER BY LINE_NUMBER ASC"; } // {{ 632 1 0 "02c7628f_fbf0_4a29_87b178f15bf11f56" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 633 1 0 "1b39a7d9_816e_481d_998110fd5747b596" "{C1F3C015-47B3-4514-9407-AC2E65043419}" count_sql = StrConcat12(Translate("SELECT COUNT(*) AS N FROM SORT WHERE "), restriction1, Translate(" "), used_exclusion, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), restriction_raster); // }} "" // {{ 634 1 0 "a1ba3c95_9d64_4ae0_b7237dec32224ca6" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Count_Available.AddField("N", count_value, hslInteger); if( 0 == Count_Available.Open(sort_file + " " + "SORT", hslRead, count_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 635 1 0 "891216b7_16c6_4b18_8ef2f7f71011ecf4" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Count_Available.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 636 1 0 "9c69bed8_10ae_400f_85862ec7f8ef0c65" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Count_Available.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Count_Available.RemoveFields(); // }} "" // {{ 637 1 0 "05b4a348_abc7_4129_8678fdcf004a4d3f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (count_value == 0) { // }} "" // {{ 638 1 0 "89c18bd3_656a_4489_861e2206d444bc3d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_x_coord = 0.0; // }} "" // {{ 639 1 0 "05b4a348_abc7_4129_8678fdcf004a4d3f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 640 1 0 "03ecb8da_3837_425f_9e8df0f913e75732" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 641 1 0 "45af02e8_d80e_4e37_a20ab9de2debbbf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" count_sql = StrConcat12(Translate("SELECT COUNT(*) AS N FROM SORT WHERE "), restriction1, Translate(" "), used_exclusion, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{ 642 1 0 "b4affe6a_e18b_4353_b1b3059ba4cd1e29" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Count_Available.AddField("N", count_value, hslInteger); if( 0 == Count_Available.Open(sort_file + " " + "SORT", hslRead, count_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 643 1 0 "815b61dd_38eb_46a6_a9a22a6dd82daa7c" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Count_Available.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 644 1 0 "7133d0c0_1220_44ae_9d3a605289ce5b85" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Count_Available.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Count_Available.RemoveFields(); // }} "" // {{ 645 1 0 "a593c055_4329_42a7_81de29bc66e4bee4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (count_value > 0) { // }} "" // {{ 646 1 0 "dbb27cbc_4039_492a_8337c1512f191420" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 647 1 0 "8c5f738a_51e0_4fa1_99408199950e4266" "{C1F3C015-47B3-4514-9407-AC2E65043419}" filter_sql = StrConcat12(Translate("SELECT * FROM SORT WHERE "), restriction1, Translate(" "), used_exclusion, Translate(" "), order_by, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{ 648 1 0 "7babd096_d48e_4754_890a786a1e9db498" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Sort_File.AddField("LINE_NUMBER", line_number, hslInteger); Sort_File.AddField("LAB1", lab1, hslString, 255); Sort_File.AddField("POS1", pos1, hslString, 255); Sort_File.AddField("LAB2", not_used, hslString, 255); Sort_File.AddField("POS2", not_used, hslString, 255); Sort_File.AddField("VAL1", val1, hslString, 255); Sort_File.AddField("VAL2", val2, hslString, 255); Sort_File.AddField("X1", x1, hslFloat); Sort_File.AddField("Y1", y1, hslFloat); Sort_File.AddField("X2", not_used, hslString, 255); Sort_File.AddField("Y2", not_used, hslString, 255); Sort_File.AddField("STATUS", status, hslString, 255); if( 0 == Sort_File.Open(sort_file + " " + "SORT", hslRead, filter_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 649 1 0 "c031bc0b_a179_4961_ac760c5f5946e812" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { file_index = 0; while ( (Sort_File.Eof() == 0) ) { file_index = file_index + 1; // }} "" // {{ 650 1 0 "a126e1b0_4415_4144_8080e54989aad5a1" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Sort_File.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 651 1 0 "0f59b9cb_2f52_4fb9_99949e1b24b5c58a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Sort_for_Channel_Raster == 0) { // }} "" // {{ 652 1 0 "01d9ef52_6f7e_4f47_a3ec6d1735764973" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 653 1 0 "0f59b9cb_2f52_4fb9_99949e1b24b5c58a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 654 1 0 "f39db529_5de1_4125_aee5d24d559b8c0e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (x1 != prev_x_coord) { // }} "" // {{ 655 1 0 "41447ce1_9eb3_46af_84053a6fa0fa83ca" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 656 1 0 "f39db529_5de1_4125_aee5d24d559b8c0e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 657 1 0 "6056913d_e22f_4e59_85cc74a6e8c56ae1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (y1 <= prev_y_coord) { // }} "" // {{ 658 1 0 "65fb5b25_8fcb_44f9_abe59692efc1ba89" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 659 1 0 "6056913d_e22f_4e59_85cc74a6e8c56ae1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 660 1 0 "c031bc0b_a179_4961_ac760c5f5946e812" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 661 1 0 "023d982f_a3af_47c0_aab3e201509c96e2" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Sort_File.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Sort_File.RemoveFields(); // }} "" // This converts the array values back to their original state if(val_type1 == 1) val1 = FVal(val1); else if(val_type1 == 2) val1 = IVal(val1); if(val_type2 == 1) val2 = FVal(val2); else if(val_type2 == 2) val2 = IVal(val2); // {{{ 663 1 0 "d6fc3bca_32f7_4570_be4ddc20a24f2e48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_Sorted_Sequence, lab1, pos1); // }} "" // {{{ 664 1 0 "78d6bc38_adaa_4050_91e59d1bd2313637" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, channel_number, 1); // }} "" // {{ 665 1 0 "193341f5_c547_4bcf_9fef2913bb9b5fb3" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_Sorted_Array.SetAt(channel_number-1, val1); // }} "" // {{ 666 1 0 "1064866d_97d2_4cd9_8a37c78815ff32ae" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_Sorted_Array2.SetAt(channel_number-1, val2); // }} "" // {{ 667 1 0 "b44bedac_ae84_4061_a0148b3316f63b59" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_line_numbers.AddAsLast(line_number); // }} "" // {{ 668 1 0 "d15053b7_e804_4b0b_acfbf02ad2cdf9a0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_x_coord = x1; // }} "" // {{ 669 1 0 "ff861218_98ff_41fb_9113fd2dd34b4066" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_y_coord = y1; // }} "" // {{ 670 1 0 "a593c055_4329_42a7_81de29bc66e4bee4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 671 1 0 "4b0ff222_be5f_4fd8_8fe5ec9389c9ee1b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" val1 = Translate("0"); // }} "" // {{ 672 1 0 "f89f3278_c0c1_4d93_9a2340e10046c634" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" val2 = Translate("0"); // }} "" // This converts the array values back to their original state if(val_type1 == 1) val1 = FVal(val1); else if(val_type1 == 2) val1 = IVal(val1); if(val_type2 == 1) val2 = FVal(val2); else if(val_type2 == 2) val2 = IVal(val2); // {{ 674 1 0 "6ec6e16b_5aee_4ff8_90ddd62ecf32955c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_Sorted_Array.SetAt(channel_number-1, val1); // }} "" // {{ 675 1 0 "8adb17aa_5cea_4f94_aa627a1af3aea7c3" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_Sorted_Array2.SetAt(channel_number-1, val2); // }} "" // {{ 676 1 0 "a593c055_4329_42a7_81de29bc66e4bee4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 677 1 0 "0e8200f0_cb10_409b_b33aa9c7bef7e2a4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 678 1 0 "2408af48_9e2f_4a34_9620d119811f70c2" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_Sorted_Sequence.SetCurrentPosition(1); // }} "" // {{ 679 1 0 "6a2f641d_a9e1_4659_a126ef5558409667" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 680 1 0 "66bd359f_6b8e_4739_a5c3e742c67ee2ab" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" num_used=arr_line_numbers.GetSize(); // }} "" // {{ 681 1 0 "0c413658_8a74_4aba_b409fa607e1bb9ce" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" ret_Number_Remaining = num_to_sort - num_used; // }} "" // {{ 682 1 0 "7c212616_7a75_4eba_b39dd91f48fb7c67" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (num_used == 0) { // }} "" // {{{ 683 1 0 "b45dd088_b48a_4ba4_87c2eb037078de73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("********************************** The remaining positions are out of reach for the selected channels!!!!"), Translate("")); // }} "" // {{{ 684 1 0 "8acf957f_8199_471d_aed754fb80b4d24b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("The remaining positions are out of reach for all the selected channels!!!!")); // }} "" // {{ 685 1 0 "7c212616_7a75_4eba_b39dd91f48fb7c67" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 686 1 0 "e45c4c71_8256_4888_a8d9ce2113de8d15" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(Translate("LINE_NUMBER IN("), Translate("")); // }} "" // {{ 687 1 0 "9804db64_3a65_4674_a2abc63f2ab67d68" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(in_index = 0; in_index < num_used;) { in_index = in_index + 1; // }} "" // {{ 688 1 0 "0442fa8a_b68b_43e7_bf4da84667f95855" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" line_number=arr_line_numbers.GetAt(in_index-1); // }} "" // {{ 689 1 0 "2f540f0e_0f29_4db9_bc2f91fdd3c13b20" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (in_index != 1) { // }} "" // {{{ 690 1 0 "9f5f7cee_e618_40a4_82d6b990b3767429" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(in_group, Translate(", ")); // }} "" // {{ 691 1 0 "2f540f0e_0f29_4db9_bc2f91fdd3c13b20" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 692 1 0 "a1ca5ce1_a156_4b4d_ac466aa9e32f0c26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(in_group, line_number); // }} "" // {{ 693 1 0 "9804db64_3a65_4674_a2abc63f2ab67d68" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 694 1 0 "cb9793aa_157c_48cd_8fc75b742ac8d144" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(in_group, Translate(")")); // }} "" // {{{ 695 1 0 "ba6bbb5e_bf20_4b17_adad03cac884ec39" "{C1F3C015-47B3-4514-9407-AC2E65043419}" update_sql = StrConcat4(Translate("UPDATE SORT SET STATUS = 'DONE' WHERE "), in_group, Translate(""), Translate("")); // }} "" // {{ 696 1 0 "52fc2921_035c_469f_8b4b009a1381b3f6" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Update_FIle.Open(sort_file + " " + "SORT", hslRead, update_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 697 1 0 "7058df4e_04d2_4951_955d073d6fed4d66" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Update_FIle.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Update_FIle.RemoveFields(); // }} "" // {{ 698 1 0 "e69c3cae_941b_4704_84f18489b64a30b8" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 699 1 0 "1f1ab101_416d_42ad_b105f29f2e80e3ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" count_sql = StrConcat2(Translate("SELECT COUNT(*) AS N FROM SORT WHERE STATUS = 'NOT_DONE'"), Translate("")); // }} "" // {{ 700 1 0 "0b1e503e_fb8a_4690_bfb2fb6a297cea08" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Count_Available.AddField("N", count_value, hslInteger); if( 0 == Count_Available.Open(sort_file + " " + "SORT", hslRead, count_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 701 1 0 "6b106eed_a12a_4220_9a8be1344d2d9e17" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Count_Available.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 702 1 0 "1b66442e_b6b6_4073_9749add78ee57902" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Count_Available.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Count_Available.RemoveFields(); // }} "" // {{ 703 1 0 "c8f5284a_c4c2_49de_bac7261914229c9d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_Number_Remaining = count_value; // }} "" // {{ 704 1 0 "0f29b6a2_3ead_4727_87d4f6992b3a5df8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (count_value == 0) { // }} "" // {{{ 705 1 0 "773b1ee3_8d1d_42c0_b933c32c30a7618f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(io_Sequence_to_Sort); // }} "" // {{ 706 1 0 "76c501c8_c205_4167_93f0b08d793c1fda" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" io_Array_of_Variables.SetSize(0); // }} "" // {{ 707 1 0 "9dedfee4_257e_4f83_a716f6c70cb5291c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" io_Array_of_Variables2.SetSize(0); // }} "" // {{ 708 1 0 "0f29b6a2_3ead_4727_87d4f6992b3a5df8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 709 1 0 "962f485d_144b_4072_9e912f5d5b105b7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" filter_sql = StrConcat2(Translate("SELECT * FROM SORT WHERE STATUS = 'NOT_DONE' ORDER BY LINE_NUMBER ASC"), Translate("")); // }} "" // {{{ 710 1 0 "194f50dd_2455_46cd_af820377a7a3e237" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(temp_seq1); // }} "" // {{ 711 1 0 "0f3e6e06_29cb_4ab2_917cb28f7f323224" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_temp_array1.SetSize(0); // }} "" // {{ 712 1 0 "51aacaba_076c_4ba3_982f69d81c66db97" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_temp_array2.SetSize(0); // }} "" // {{ 713 1 0 "baef4e50_532a_4fd0_898f82276f56c203" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Sort_File.AddField("LINE_NUMBER", line_number, hslInteger); Sort_File.AddField("LAB1", lab1, hslString, 255); Sort_File.AddField("POS1", pos1, hslString, 255); Sort_File.AddField("LAB2", not_used, hslString, 255); Sort_File.AddField("POS2", not_used, hslString, 255); Sort_File.AddField("VAL1", val1, hslString, 255); Sort_File.AddField("VAL2", val2, hslString, 255); Sort_File.AddField("X1", x1, hslFloat); Sort_File.AddField("Y1", y1, hslFloat); Sort_File.AddField("X2", not_used, hslString, 255); Sort_File.AddField("Y2", not_used, hslString, 255); Sort_File.AddField("STATUS", status, hslString, 255); if( 0 == Sort_File.Open(sort_file + " " + "SORT", hslRead, filter_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 714 1 0 "9be0ffc5_acaf_4ad5_bff935a5d177cea7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while ( (Sort_File.Eof() == 0) ) { // }} "" // {{ 715 1 0 "69edf095_77ee_429a_9e38823221c13310" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Sort_File.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // This converts the array values back to their original state if(val_type1 == 1) val1 = FVal(val1); else if(val_type1 == 2) val1 = IVal(val1); if(val_type2 == 1) val2 = FVal(val2); else if(val_type2 == 2) val2 = IVal(val2); // {{ 717 1 0 "ba0c6dc8_e603_48aa_abfd961ccac7b0a4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_temp_array1.AddAsLast(val1); // }} "" // {{ 718 1 0 "621a8818_739e_4349_a2929676376f706b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_temp_array2.AddAsLast(val2); // }} "" // {{{ 719 1 0 "ff824449_7774_4403_b7bb19cb86df7eba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(temp_seq1, lab1, pos1); // }} "" // {{ 720 1 0 "9be0ffc5_acaf_4ad5_bff935a5d177cea7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 721 1 0 "1f74037a_3f44_4874_9a3463e0e83e07e8" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Sort_File.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Sort_File.RemoveFields(); // }} "" // {{ 722 1 0 "ba880904_76a8_42cc_850dd57a926cbd75" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" temp_seq1.SetCurrentPosition(1); // }} "" // {{{ 723 1 0 "cf616d79_c09a_4eb3_9fd3799835b8e6ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(io_Sequence_to_Sort, temp_seq1); // }} "" // {{ 724 1 0 "a41d5add_2967_4d98_a703cb2cce36153f" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" io_Array_of_Variables=arr_temp_array1; // }} "" // {{ 725 1 0 "892a25fc_a536_41cd_8423258fb814099e" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" io_Array_of_Variables2=arr_temp_array2; // }} "" // {{ 726 1 0 "0f29b6a2_3ead_4727_87d4f6992b3a5df8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 727 1 0 "db3b2161_6abf_434d_88291363ab3d3388" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 729 1 0 "db3b2161_6abf_434d_88291363ab3d3388" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 730 1 0 "53234bf3_5273_4351_a2ae7e869a0adfd3" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_Number_Remaining); // }} "" // {{{ 5 "CHAN_ACCESS_Sort1Sequence2Arrays" "End" } // }} "" // {{{ 5 "CHAN_ACCESS_Sort2Sequences" "Begin" function CHAN_ACCESS_Sort2Sequences( device & ML_STAR, sequence & io_Sequence_to_Sort, sequence & io_Sequence_to_Sort2, variable i_Channel_Type, variable i_Sort_by_Labware, variable i_Sort_by_XY, variable i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence & o_Sorted_Sequence, sequence & o_Sorted_Sequence2, variable & o_Channel_Pattern ) variable { // }} "" private variable channel_raster; private variable status; private variable used_exclusion; private variable num_to_sort; private variable in_group; private variable pos1; private variable pos2; private variable num_used; private variable restriction_raster; private variable in_index; private variable y_min; private variable num_to_sort2; private variable update_sql; private variable y_max; private variable ret_Number_Remaining; private variable value_equal; private variable num_labhand_channels; private variable total_channels; private variable sequence_name2; private variable file_index; private variable restriction1; private variable null; private variable not_used; private variable restriction2; private variable lab1; private variable sort_file; private variable lab2; private variable prev_x_coord; private variable num_1mL_channels; private variable filter_sql; private variable prev_y_coord; private variable count_sql; private variable order_by; private variable num_5mL_channels; private variable channel_number; private variable y1; private variable count_value; private variable y2; private variable x1; private variable x2; private variable line_number; private variable sequence_name; private sequence temp_seq1; private sequence temp_seq2; private file Count_Available; private file Update_FIle; private file Sort_File; private variable arr_Y_Min[]; private variable arr_Y_Max[]; private variable arr_line_numbers[]; private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable bool_FileExists; private variable int_Count; // {{ 5 "CHAN_ACCESS_Sort2Sequences" "InitLocals" { sequence __temp; o_Sorted_Sequence = __temp; } { sequence __temp; o_Sorted_Sequence2 = __temp; } o_Channel_Pattern = 0; // }} "" // {{ 732 1 0 "56048c9f_01f6_4299_80b85888fb7157dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 733 1 0 "6a02fc8a_d94c_4849_97a835b68b2776ed" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 735 1 0 "44188243_f9d4_440b_992eeb9923e3253e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 736 1 0 "b45d35ae_0637_4b96_899780ad539d9305" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 737 1 0 "409413e0_08c6_4259_94352885e394ff65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 738 1 0 "2eedec2e_716f_424b_838cf160d1de27fa" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 739 1 0 "e0e89933_5283_4e8d_b5a82389e2ae2820" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 741 1 0 "56048c9f_01f6_4299_80b85888fb7157dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 742 1 0 "cfd4a7cf_de37_4582_af31669db49fac7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 743 1 0 "c53f0541_8f64_4eec_8a3a188f148b713f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 744 1 0 "ef64f7cc_b6bd_4cd5_acf4564bf8816311" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 745 1 0 "cf89696d_bf02_4edb_bc4c72789e535700" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{{ 746 1 0 "ab995c26_f9cf_4722_9d205d94bfed1043" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_5mL_channels = DevGetCfgValueWithKey(ML_STAR, 43); // }} "" // {{{ 747 1 0 "c4ca04bf_3795_4d20_ad0453f712f05f96" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_labhand_channels = DevGetCfgValueWithKey(ML_STAR, 47); // }} "" // {{{ 748 1 0 "3025841d_eb9f_450f_a2bad133a89d629d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Channel_Type = StrConcat2(i_Channel_Type, Translate("")); // }} "" // {{{ 749 1 0 "4b3e3142_1245_4c67_83842ab2d9bf2b2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Channel_Type = StrIVal(i_Channel_Type); // }} "" // {{ 750 1 0 "4c0991d1_fc00_4889_8c2bc80f9f4c9d95" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type < 0) { // }} "" // {{{ 751 1 0 "ee99e0c7_1979_4ebc_ae068df2d8a134b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace4(Translate("*************** Channel type of "), i_Channel_Type, Translate(" is not recognized by this library!!!!"), Translate("")); // }} "" // {{ 752 1 0 "d5ec531a_72ce_4613_adf3df6d177e1529" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = 0; // }} "" // {{ 753 1 0 "4c0991d1_fc00_4889_8c2bc80f9f4c9d95" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 754 1 0 "bc1356dc_0a8e_46b2_9a54cb72817a8970" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type > 2) { // }} "" // {{{ 755 1 0 "3e5f2709_9b70_4c3b_a28105f8eb9ea02a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace4(Translate("*************** Channel type of "), i_Channel_Type, Translate(" is not recognized by this library!!!!"), Translate("")); // }} "" // {{ 756 1 0 "be3e9c00_6338_4a7b_a34e14ec7e414add" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = 0; // }} "" // {{ 757 1 0 "bc1356dc_0a8e_46b2_9a54cb72817a8970" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 758 1 0 "ae448151_f498_4161_9e9900070732c07a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 0) { // }} "" // {{ 759 1 0 "bfada038_80d5_44cb_a80999599ac404ab" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = num_1mL_channels; // }} "" // {{ 760 1 0 "ae448151_f498_4161_9e9900070732c07a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 761 1 0 "b3ef8a2b_9bdc_456b_ac222eb46a41b149" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 1) { // }} "" // {{ 762 1 0 "d6791503_4d25_4f92_adafbb43ff57061d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = num_5mL_channels; // }} "" // {{ 763 1 0 "b3ef8a2b_9bdc_456b_ac222eb46a41b149" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 764 1 0 "b12db044_46c4_469b_a4943d945bc5fedc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 2) { // }} "" // {{ 765 1 0 "62030388_d4c0_4b9f_b943ff362d0dafae" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = num_labhand_channels; // }} "" // {{ 766 1 0 "b12db044_46c4_469b_a4943d945bc5fedc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 767 1 0 "c53f0541_8f64_4eec_8a3a188f148b713f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 768 1 0 "ec61b074_68a6_4a72_825dd5c319a947eb" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 769 1 0 "73e6d3c0_95b6_45d3_a7f905237d0a5186" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_Channel_Pattern = Translate(""); // }} "" // {{ 770 1 0 "ff1b3919_8499_4d5c_95895738dfecf4f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (total_channels == 0) { // }} "" // {{ 771 1 0 "b140c42c_44dc_472a_9d4c08f6cb352fdb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 0) { // }} "" // {{{ 772 1 0 "11f2c63b_5b0f_490b_8966766c3f990e2d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** There are no 1 mL channels installed!"), Translate("")); // }} "" // {{{ 773 1 0 "d6ceb756_e01d_491b_af9bf76ab171eacd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("No 1 mL channels installed!!")); // }} "" // {{ 774 1 0 "b140c42c_44dc_472a_9d4c08f6cb352fdb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 775 1 0 "0288d38d_293b_42d2_bfbcf4a586ee844f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 1) { // }} "" // {{{ 776 1 0 "04daef15_0559_45b5_85104bdb06402b75" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** There are no 5 mL channels installed!"), Translate("")); // }} "" // {{{ 777 1 0 "96cbc5da_5e73_4b8b_98dbe17643aba2dd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("No 5 mL channels installed!!")); // }} "" // {{ 778 1 0 "0288d38d_293b_42d2_bfbcf4a586ee844f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 779 1 0 "f6c13aed_323b_45ef_9f8261b6817bd15e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 2) { // }} "" // {{{ 780 1 0 "ffd18b04_f6da_41fc_be2c9c72bf69018f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** There are no Lab Handler channels installed!"), Translate("")); // }} "" // {{{ 781 1 0 "b78ab301_fc6f_4690_8a14ef0866241b25" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("No Lab Handler channels installed!!")); // }} "" // {{ 782 1 0 "f6c13aed_323b_45ef_9f8261b6817bd15e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 783 1 0 "ff1b3919_8499_4d5c_95895738dfecf4f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 784 1 0 "bf5058b5_7da4_4ba3_9ffbf9f1614ddc72" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, io_Sequence_to_Sort); // }} "" // {{{ 785 1 0 "ee4db105_d58a_4330_b27b86c75adffb4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, io_Sequence_to_Sort2); // }} "" // {{{ 786 1 0 "a3a29f43_48dd_469d_be3a236947001e4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, total_channels, 0); // }} "" // {{{ 787 1 0 "953929a3_7d9f_467b_a7ab2fb3609dc86b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Max_Channel = StrConcat2(i_Max_Channel, Translate("")); // }} "" // {{{ 788 1 0 "85cc649a_ad10_46a9_ad87a17d97810789" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Max_Channel = StrIVal(i_Max_Channel); // }} "" // {{ 789 1 0 "d9326954_22a4_4113_aa18ab195ef6bd32" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Max_Channel <= 0) { // }} "" // {{ 790 1 0 "e5e6e5b1_fa3d_424c_a19f1aa05f9fbb55" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" i_Max_Channel = total_channels; // }} "" // {{ 791 1 0 "d9326954_22a4_4113_aa18ab195ef6bd32" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 792 1 0 "f2e7bf54_9c8b_4a67_a66388c3cb48b30a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Max_Channel > total_channels) { // }} "" // {{ 793 1 0 "46723988_2183_480b_9a6763a9d007e276" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" i_Max_Channel = total_channels; // }} "" // {{ 794 1 0 "f2e7bf54_9c8b_4a67_a66388c3cb48b30a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 795 1 0 "2b88fe7e_bfc6_4f6f_9106b29f1058771a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_Number_Remaining = 0; // }} "" // {{{ 796 1 0 "b1649732_fb6d_4644_9395930717ed1b25" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_Sorted_Sequence); // }} "" // {{{ 797 1 0 "61ba12e1_7f51_418e_b3e5f832dce6cea9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_Sorted_Sequence2); // }} "" // {{ 798 1 0 "237663b0_493b_4416_9cd4c979fade6905" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 0) { // }} "" // {{ 799 1 0 "6f057986_7b25_4574_9e7596c7313ab4bf" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Max=G_ARR_FW_PIP_COM_YMax; // }} "" // {{ 800 1 0 "2da33b9a_336c_437c_ac2dbc7ba70bcb7c" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Min=G_ARR_FW_PIP_COM_YMin; // }} "" // {{ 801 1 0 "0d576b93_ade1_4ef7_8a5fab477fb0fa4e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" channel_raster = G_FW_PIP_COM_Raster; // }} "" // {{ 802 1 0 "237663b0_493b_4416_9cd4c979fade6905" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 803 1 0 "a253cd6c_163f_44f1_931a7fa163b58bf4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 1) { // }} "" // {{ 804 1 0 "a739e638_5029_490a_82a7859b2305f966" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Max=G_ARR_FW_XL_COM_YMax; // }} "" // {{ 805 1 0 "a1efdf23_e333_4172_acaff19513a82779" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Min=G_ARR_FW_XL_COM_YMin; // }} "" // {{ 806 1 0 "db364570_5d8f_41f0_b6c3e7f12af839a6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" channel_raster = G_FW_XL_COM_Raster; // }} "" // {{ 807 1 0 "a253cd6c_163f_44f1_931a7fa163b58bf4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 808 1 0 "80db1fce_3e50_463e_a5106763820ffc89" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 2) { // }} "" // {{{ 809 1 0 "ed5c1da8_e54d_45fb_9cb45208f0034c60" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetChannelLimits(ML_STAR, i_Channel_Type, arr_Y_Max, arr_Y_Min, channel_raster); // }} "" // {{ 810 1 0 "80db1fce_3e50_463e_a5106763820ffc89" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 811 1 0 "9d1b3e1a_3627_4d72_a6d81d3cd1f2c702" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 812 1 0 "d9472adb_776b_43ba_bff0607d78490256" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTempSortingFilePath(sort_file); // }} "" // {{{ 813 1 0 "f0849845_44e3_42ac_9cad180b0560d8f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(sort_file); // }} "" // {{ 814 1 0 "cc94b1ff_0ab8_40d3_b678e578f6ffea7a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 1) { // }} "" // {{{ 815 1 0 "60a71f28_1856_4264_a3cd535715b05abb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(sort_file); // }} "" // {{ 816 1 0 "cc94b1ff_0ab8_40d3_b678e578f6ffea7a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 817 1 0 "5283a301_5b6d_4278_ba33fe69acba4370" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_to_sort = SeqGetTotal(io_Sequence_to_Sort); // }} "" // {{{ 818 1 0 "1cf51280_19c7_4394_9418ced0373aaf0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_to_sort2 = SeqGetTotal(io_Sequence_to_Sort2); // }} "" // {{{ 819 1 0 "7b6db7c2_6053_46ce_aad1554d43fb3a4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" sequence_name = SeqGetName(io_Sequence_to_Sort); // }} "" // {{{ 820 1 0 "e34a9939_070b_404e_a696270d4c2da8ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" sequence_name2 = SeqGetName(io_Sequence_to_Sort2); // }} "" // {{ 821 1 0 "3d315e3f_71c1_4da2_ab259a183234f61d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" value_equal = 0; // }} "" if(num_to_sort == num_to_sort2) value_equal = 1; // {{ 823 1 0 "3a27ce8f_1abd_4c1e_95527347ffc4ab4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (num_to_sort == 0) { // }} "" // {{{ 824 1 0 "4b875c86_3002_47a6_94ee31a5b349c45a" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_Number_Remaining); // }} "" // {{ 825 1 0 "3a27ce8f_1abd_4c1e_95527347ffc4ab4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 826 1 0 "f23af82c_fcae_48f1_b258ce7401cfb1b0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (value_equal == 0) { // }} "" // {{{ 827 1 0 "3983cf81_e75a_4e1c_9250886b11386593" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("############## SEQUENCES DO NOT HAVE THE SAME NUMBER OF POSITIONS."), Translate("")); // }} "" // {{{ 828 1 0 "286df1c2_8da9_4f3a_ba6113ba0ca861ab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Sequences do not have the same number of positions.")); // }} "" // {{{ 829 1 0 "02fbb52d_f04d_4afa_929abb493eb4835f" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_Number_Remaining); // }} "" // {{ 830 1 0 "f23af82c_fcae_48f1_b258ce7401cfb1b0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 831 1 0 "5243c674_7b61_4f15_99049d8c8a0e1780" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("________________________________________________________"), Translate("")); // }} "" // {{{ 832 1 0 "c8361870_0779_41a1_bdee59f839be71a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(""), Translate("")); // }} "" // {{{ 833 1 0 "450b9dd3_f2b6_4cba_958aa8312120dd2d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace4(Translate(" Sequence to Sort: "), sequence_name, Translate(" Second Sequence to Sort: "), sequence_name2); // }} "" // {{{ 834 1 0 "3028dd69_9093_432f_a885ded31df56d2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Number of Positions in Sequence: "), num_to_sort); // }} "" // {{{ 835 1 0 "bbcec75c_f514_4173_a88be21d3aa023e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Sort by Labware: "), i_Sort_by_Labware); // }} "" // {{{ 836 1 0 "12b44670_986a_4b96_9205a484673519ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Sort by XY: "), i_Sort_by_XY); // }} "" // {{{ 837 1 0 "98f08005_202e_4503_a7cc86b65ba4c7aa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Sort for Channel Raster: "), i_Sort_for_Channel_Raster); // }} "" // {{{ 838 1 0 "3a62351c_833d_425e_b1910659693ff8cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Channel Raster: "), channel_raster); // }} "" // {{{ 839 1 0 "219e2a93_ed79_4e9a_ada43ff6b5d25647" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Maximum Channel: "), i_Max_Channel); // }} "" if(i_Channel_Type == 0) Trace(" Channel Type: 1 mL"); else if(i_Channel_Type == 1) Trace(" Channel Type: 5 mL"); else if(i_Channel_Type == 2) Trace(" Channel Type: Labware Handler"); // {{{ 841 1 0 "125582c8_203f_4b2d_9ad674bc077b0745" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("________________________________________________________"), Translate("")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 842 1 0 "485e1c78_e818_4693_9b01f3e5b0fe043f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 843 1 0 "b4e41c1d_6147_4b10_90b45cb63852b6b3" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Sort_File.AddField("LINE_NUMBER", line_number, hslInteger); Sort_File.AddField("LAB1", lab1, hslString, 255); Sort_File.AddField("POS1", pos1, hslString, 255); Sort_File.AddField("LAB2", lab2, hslString, 255); Sort_File.AddField("POS2", pos2, hslString, 255); Sort_File.AddField("VAL1", not_used, hslString, 255); Sort_File.AddField("VAL2", not_used, hslString, 255); Sort_File.AddField("X1", x1, hslFloat); Sort_File.AddField("Y1", y1, hslFloat); Sort_File.AddField("X2", x2, hslFloat); Sort_File.AddField("Y2", y2, hslFloat); Sort_File.AddField("STATUS", status, hslString, 255); if( 0 == Sort_File.Open(sort_file + " " + "SORT", hslWrite) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 844 1 0 "eee3e7da_e7bd_4a7b_85801ebff6e1677f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" not_used = Translate("-----"); // }} "" // {{ 845 1 0 "e62fe0ed_a277_4a5a_ad7fef1d3518d395" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" status = Translate("NOT_DONE"); // }} "" // {{ 846 1 0 "e24c9df0_d448_49ae_b91d361b8a29f7c4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(line_number = 0; line_number < num_to_sort;) { line_number = line_number + 1; // }} "" // {{ 847 1 0 "5db078db_10ff_4df5_a03443e5363e6904" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_Sequence_to_Sort.SetCurrentPosition(line_number); // }} "" // {{ 848 1 0 "d3d86169_31dc_4c7c_9752338b3bd18d16" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_Sequence_to_Sort2.SetCurrentPosition(line_number); // }} "" // {{{ 849 1 0 "e381f20f_0bbb_4428_9c945432bd84362c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" lab1 = SeqGetLabwareId(io_Sequence_to_Sort); // }} "" // {{{ 850 1 0 "3de066c7_dbfe_4f46_99db5a468ea50e7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pos1 = SeqGetPositionId(io_Sequence_to_Sort); // }} "" // {{{ 851 1 0 "742aecec_a7c8_49d4_8d11c00e86826630" "{C1F3C015-47B3-4514-9407-AC2E65043419}" lab2 = SeqGetLabwareId(io_Sequence_to_Sort2); // }} "" // {{{ 852 1 0 "c2cb4905_e00b_4310_94dcdfa33ab3213c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pos2 = SeqGetPositionId(io_Sequence_to_Sort2); // }} "" // {{{ 853 1 0 "bf0c14b3_fee5_45d9_b31cc5fd35f7b280" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, lab1, pos1, x1, y1, null, null); // }} "" // {{{ 854 1 0 "e33276f8_9403_40a4_ae86353ec28f0cd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, lab2, pos2, x2, y2, null, null); // }} "" // {{ 855 1 0 "9941f41e_60cd_4064_a8541fd412fc6c62" "{B31F3537-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Sort_File.WriteRecord() ) { MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 856 1 0 "e24c9df0_d448_49ae_b91d361b8a29f7c4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 857 1 0 "281adab9_e115_4156_9e78e820f3a712fd" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Sort_File.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Sort_File.RemoveFields(); // }} "" // {{ 858 1 0 "daf8c216_f99d_4de1_b474674aa853dfaf" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_line_numbers.SetSize(0); // }} "" // {{ 859 1 0 "05de3679_46dd_45b4_a42067fb3e7e898a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_x_coord = 0.0; // }} "" // {{ 860 1 0 "46fe52a3_60fc_4b3d_8fd71c7a3584809c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_y_coord = 999.0; // }} "" // {{ 861 1 0 "5c42a6e6_e283_4d2d_9e054ab57c49e47a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(channel_number = 0; channel_number < i_Max_Channel;) { channel_number = channel_number + 1; // }} "" // {{ 862 1 0 "434646d9_5e9c_4012_acfdb0855167d090" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" prev_y_coord = prev_y_coord - channel_raster; // }} "" // {{{ 863 1 0 "ce7730ca_44bf_45a1_867679d7b6271383" "{C1F3C015-47B3-4514-9407-AC2E65043419}" restriction_raster = StrConcat8(Translate("AND (X1"), Translate(" = "), prev_x_coord, Translate(" AND "), Translate("Y1"), Translate(" <= "), prev_y_coord, Translate(")")); // }} "" // {{ 864 1 0 "1c47f5ed_bf1c_46bd_a7ef41f68719ec42" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 865 1 0 "5678448b_2486_48d5_aa8b021c9f3e45ea" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" y_max=arr_Y_Max.GetAt(channel_number-1); // }} "" // {{ 866 1 0 "7ef78f8d_3ef5_416e_af47a0e91c2cfe39" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" y_min=arr_Y_Min.GetAt(channel_number-1); // }} "" // {{{ 867 1 0 "40062975_148f_469f_ba996c0fef3fa09a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" restriction1 = StrConcat8(Translate("(Y1 "), Translate(">= "), y_min, Translate(" AND "), Translate("Y1 "), Translate("<= "), y_max, Translate(")")); // }} "" // {{{ 868 1 0 "d0dc22af_609e_4560_b7e6bda5abae8cd3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" restriction2 = StrConcat8(Translate("(Y2 "), Translate(">= "), y_min, Translate(" AND "), Translate("Y2 "), Translate("<= "), y_max, Translate(")")); // }} "" // {{ 869 1 0 "c0c6055d_95c0_4cdc_b78180a863aaf000" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 870 1 0 "76b61d70_07ad_4561_833e31697f72b997" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" num_used=arr_line_numbers.GetSize(); // }} "" // {{ 871 1 0 "dfef20b3_1a1c_4aa7_92f655ce841cae69" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (num_used == 0) { // }} "" // {{ 872 1 0 "d9d91472_b53d_4b31_ae8d17954ccdc0ed" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" used_exclusion = Translate(""); // }} "" // {{ 873 1 0 "dfef20b3_1a1c_4aa7_92f655ce841cae69" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 874 1 0 "0b292a8e_49df_494d_8327008c82ba339d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(Translate("AND LINE_NUMBER NOT IN("), Translate("")); // }} "" // {{ 875 1 0 "1d80629a_f902_4927_8f2b37e79fd920cc" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(in_index = 0; in_index < num_used;) { in_index = in_index + 1; // }} "" // {{ 876 1 0 "4d97fb86_88d4_4740_97df085419560071" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" line_number=arr_line_numbers.GetAt(in_index-1); // }} "" // {{ 877 1 0 "468b3e54_8c75_44ab_8a12b9166e6b1ea5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (in_index != 1) { // }} "" // {{{ 878 1 0 "393744ae_1c31_4097_b3709b0393096c88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(used_exclusion, Translate(", ")); // }} "" // {{ 879 1 0 "468b3e54_8c75_44ab_8a12b9166e6b1ea5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 880 1 0 "43c8c5e7_04ea_4380_ae0a543792960c7c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(used_exclusion, line_number); // }} "" // {{ 881 1 0 "1d80629a_f902_4927_8f2b37e79fd920cc" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 882 1 0 "9583371c_0da8_48da_8b9b4d4c8017521a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(used_exclusion, Translate(")")); // }} "" // {{ 883 1 0 "dfef20b3_1a1c_4aa7_92f655ce841cae69" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 884 1 0 "71303df3_c8e0_4784_8881b56d2a7dfed2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 885 1 0 "d861cbb3_973d_48e9_9f86833d66f20f7d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" order_by = Translate(""); // }} "" if(i_Sort_by_Labware == 1 && i_Sort_by_XY == 1) { order_by = "ORDER BY LAB1 ASC, X1 ASC, Y1 DESC"; } else if(i_Sort_by_Labware == 1 && i_Sort_by_XY == 0) { order_by = "ORDER BY LAB1 ASC, LINE_NUMBER ASC"; } else if(i_Sort_by_Labware == 0 && i_Sort_by_XY == 1) { order_by = "ORDER BY X1 ASC, Y1 DESC"; } else { order_by = "ORDER BY LINE_NUMBER ASC"; } // {{ 887 1 0 "22179ca2_8c47_4fcb_8b6d5dca5de81edc" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 888 1 0 "9f1b6a2d_ecf4_4ab1_8e3190f6af3e096b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" count_sql = StrConcat12(Translate("SELECT COUNT(*) AS N FROM SORT WHERE "), restriction1, Translate(" AND "), restriction2, Translate(" "), used_exclusion, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), restriction_raster); // }} "" // {{ 889 1 0 "c4b6bb90_9fba_4cca_8b57f79cb9264f77" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Count_Available.AddField("N", count_value, hslInteger); if( 0 == Count_Available.Open(sort_file + " " + "SORT", hslRead, count_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 890 1 0 "f7708e97_4eef_4e75_accd19eb14a366ef" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Count_Available.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 891 1 0 "fbf101f1_367b_46fd_b1ba42936234131f" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Count_Available.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Count_Available.RemoveFields(); // }} "" // {{ 892 1 0 "08f0304c_a90f_4e9d_948acf938ed47565" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (count_value == 0) { // }} "" // {{ 893 1 0 "05a9472b_1a52_420e_93729578bd797d30" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_x_coord = 0.0; // }} "" // {{ 894 1 0 "08f0304c_a90f_4e9d_948acf938ed47565" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 895 1 0 "3e34ae34_79b5_4e60_abee0f97115cf38d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 896 1 0 "f876479a_4fd8_43bc_83d3cc28450b31f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" count_sql = StrConcat12(Translate("SELECT COUNT(*) AS N FROM SORT WHERE "), restriction1, Translate(" AND "), restriction2, Translate(" "), used_exclusion, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{ 897 1 0 "129a7091_7819_4747_a4ba71964d6ad18f" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Count_Available.AddField("N", count_value, hslInteger); if( 0 == Count_Available.Open(sort_file + " " + "SORT", hslRead, count_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 898 1 0 "fcaf3ce3_04d8_47fd_a70bdfda4550a0a7" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Count_Available.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 899 1 0 "f0e58c0c_6ddd_42cf_a499eb574dec95eb" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Count_Available.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Count_Available.RemoveFields(); // }} "" // {{ 900 1 0 "f48cdf1b_2596_4821_8d6b2dac858511cb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (count_value > 0) { // }} "" // {{ 901 1 0 "b9fdf0f3_9c53_414d_a6ed39e2694ed5a5" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 902 1 0 "02aa6d6f_9e86_4b94_889dabd5a39f5815" "{C1F3C015-47B3-4514-9407-AC2E65043419}" filter_sql = StrConcat12(Translate("SELECT * FROM SORT WHERE "), restriction1, Translate(" AND "), restriction2, Translate(""), Translate(""), Translate(""), Translate(""), Translate(" "), used_exclusion, Translate(" "), order_by); // }} "" // {{ 903 1 0 "c2aa44f2_d009_4a9e_83647b9b3d6b2979" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Sort_File.AddField("LINE_NUMBER", line_number, hslInteger); Sort_File.AddField("LAB1", lab1, hslString, 255); Sort_File.AddField("POS1", pos1, hslString, 255); Sort_File.AddField("LAB2", lab2, hslString, 255); Sort_File.AddField("POS2", pos2, hslString, 255); Sort_File.AddField("VAL1", not_used, hslString, 255); Sort_File.AddField("VAL2", not_used, hslString, 255); Sort_File.AddField("X1", x1, hslFloat); Sort_File.AddField("Y1", y1, hslFloat); Sort_File.AddField("X2", x2, hslFloat); Sort_File.AddField("Y2", y2, hslFloat); Sort_File.AddField("STATUS", status, hslString, 255); if( 0 == Sort_File.Open(sort_file + " " + "SORT", hslRead, filter_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 904 1 0 "7882f0d9_65eb_426d_8bafb856a5be1281" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { file_index = 0; while ( (Sort_File.Eof() == 0) ) { file_index = file_index + 1; // }} "" // {{ 905 1 0 "6e42a157_6498_48a9_a8049d1f23806164" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Sort_File.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 906 1 0 "e30d9310_2685_4d99_b26957ec25ad2b0e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Sort_for_Channel_Raster == 0) { // }} "" // {{ 907 1 0 "6ee94b1e_0502_4138_a3410d879b4e428d" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 908 1 0 "e30d9310_2685_4d99_b26957ec25ad2b0e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 909 1 0 "a7f8232d_cc00_4880_a7ea622e37c85978" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (x1 != prev_x_coord) { // }} "" // {{ 910 1 0 "73c27af6_bcc7_4403_a18ac4716710dd3d" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 911 1 0 "a7f8232d_cc00_4880_a7ea622e37c85978" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 912 1 0 "62353529_271c_4f69_8aba96546b67d1f6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (y1 <= prev_y_coord) { // }} "" // {{ 913 1 0 "1c98b0a1_2d3f_4a07_a747087fa699bd4a" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 914 1 0 "62353529_271c_4f69_8aba96546b67d1f6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 915 1 0 "7882f0d9_65eb_426d_8bafb856a5be1281" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 916 1 0 "080927be_dbae_47c1_b2642ee113a69626" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Sort_File.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Sort_File.RemoveFields(); // }} "" // {{{ 917 1 0 "4e8a4b35_1859_413c_a797ff35980c2387" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_Sorted_Sequence, lab1, pos1); // }} "" // {{{ 918 1 0 "bfa0a541_cda3_47d5_8964cd88f209ab75" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_Sorted_Sequence2, lab2, pos2); // }} "" // {{{ 919 1 0 "9ed7647c_f9d4_43e9_ae4c17f8938949dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, channel_number, 1); // }} "" // {{ 920 1 0 "f756f0f5_8f2f_46f7_80d365d2979c35b4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_line_numbers.AddAsLast(line_number); // }} "" // {{ 921 1 0 "32c7489b_2f40_4e36_918a15b7a4ada438" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_x_coord = x1; // }} "" // {{ 922 1 0 "0771a0b9_6c0b_496d_a0fc09b50e8bf012" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_y_coord = y1; // }} "" // {{ 923 1 0 "f48cdf1b_2596_4821_8d6b2dac858511cb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 924 1 0 "5c42a6e6_e283_4d2d_9e054ab57c49e47a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 925 1 0 "c70d40c7_806b_4858_ada3ea1a5efc8115" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_Sorted_Sequence.SetCurrentPosition(1); // }} "" // {{ 926 1 0 "d443a023_5368_4a3b_9d17cd43874d5a0a" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_Sorted_Sequence2.SetCurrentPosition(1); // }} "" // {{ 927 1 0 "139a899b_8ade_403a_93413f5f49136638" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 928 1 0 "06449385_c8f9_4caa_bc88eae3109c1f90" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" num_used=arr_line_numbers.GetSize(); // }} "" // {{ 929 1 0 "b4a587a3_736a_4521_a328a1b9b64df56d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" ret_Number_Remaining = num_to_sort - num_used; // }} "" // {{ 930 1 0 "e19b530c_0dff_48ac_80a29641d5ff410c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (num_used == 0) { // }} "" // {{{ 931 1 0 "5ab60e0c_6869_45cf_b02244dd5707a750" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("********************************** The remaining positions are out of reach for the selected channels!!!!"), Translate("")); // }} "" // {{{ 932 1 0 "d5f0d531_48a2_4af0_b8c2b65a13e3017c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("The remaining positions are out of reach for all the selected channels!!!!")); // }} "" // {{ 933 1 0 "e19b530c_0dff_48ac_80a29641d5ff410c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 934 1 0 "1d0cb76d_6c82_4501_8658c19a48b78eb5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(Translate("LINE_NUMBER IN("), Translate("")); // }} "" // {{ 935 1 0 "1db7edb5_0fde_4b4c_ae47de6749089c2e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(in_index = 0; in_index < num_used;) { in_index = in_index + 1; // }} "" // {{ 936 1 0 "0baef3ce_613b_4e9f_bc02fafcafc79174" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" line_number=arr_line_numbers.GetAt(in_index-1); // }} "" // {{ 937 1 0 "3f5cfec8_eab3_459d_9e806ce5be144253" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (in_index != 1) { // }} "" // {{{ 938 1 0 "78819e75_2a58_457d_b316bba2b18965d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(in_group, Translate(", ")); // }} "" // {{ 939 1 0 "3f5cfec8_eab3_459d_9e806ce5be144253" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 940 1 0 "06ff7f60_9f54_4692_ac7c0936aeee842f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(in_group, line_number); // }} "" // {{ 941 1 0 "1db7edb5_0fde_4b4c_ae47de6749089c2e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 942 1 0 "ba2af7bd_c106_45d1_8eaa64d342fabe9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(in_group, Translate(")")); // }} "" // {{{ 943 1 0 "ec6a7777_6ee5_4504_80e9d9b58b2e0cb3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" update_sql = StrConcat4(Translate("UPDATE SORT SET STATUS = 'DONE' WHERE "), in_group, Translate(""), Translate("")); // }} "" // {{ 944 1 0 "b0c3de17_47a5_42a2_b1253d2c74cf889d" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Update_FIle.Open(sort_file + " " + "SORT", hslRead, update_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 945 1 0 "38a000f2_2766_4f2a_82c1922b52a9cdcd" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Update_FIle.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Update_FIle.RemoveFields(); // }} "" // {{ 946 1 0 "45d05b03_c09e_492e_97fe1ad88673a39d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 947 1 0 "79666003_dcc1_4d1a_88c9eea028435b91" "{C1F3C015-47B3-4514-9407-AC2E65043419}" count_sql = StrConcat2(Translate("SELECT COUNT(*) AS N FROM SORT WHERE STATUS = 'NOT_DONE'"), Translate("")); // }} "" // {{ 948 1 0 "e44f2e10_ed93_4e8f_90f3aa8b28b5dafd" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Count_Available.AddField("N", count_value, hslInteger); if( 0 == Count_Available.Open(sort_file + " " + "SORT", hslRead, count_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 949 1 0 "fca869a0_fee8_4a34_91f2aace06a7e8c3" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Count_Available.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 950 1 0 "b3ef8df1_3fdb_4d64_a09fed108180cff1" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Count_Available.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Count_Available.RemoveFields(); // }} "" // {{ 951 1 0 "a5d64f4e_7a05_485e_87429d7740d1afd6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_Number_Remaining = count_value; // }} "" // {{ 952 1 0 "4c16932b_ffdc_42f7_aa20300afe712db7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (count_value == 0) { // }} "" // {{{ 953 1 0 "93ceeb6e_4c35_4f75_9936a678540eac38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(io_Sequence_to_Sort); // }} "" // {{{ 954 1 0 "4ca9684a_49cb_41d7_b0b6c88f668a0604" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(io_Sequence_to_Sort2); // }} "" // {{ 955 1 0 "4c16932b_ffdc_42f7_aa20300afe712db7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 956 1 0 "27bf09be_052b_4a38_8dba9123d02757b6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" filter_sql = StrConcat2(Translate("SELECT * FROM SORT WHERE STATUS = 'NOT_DONE' ORDER BY LINE_NUMBER ASC"), Translate("")); // }} "" // {{{ 957 1 0 "9b6514ed_0b64_450e_96b0f2850b4a958f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(temp_seq1); // }} "" // {{{ 958 1 0 "e051ac8e_c6d6_41b9_a95ac3d891f001cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(temp_seq2); // }} "" // {{ 959 1 0 "ab7b762e_bccb_411f_9c6fb636eeea5724" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Sort_File.AddField("LINE_NUMBER", line_number, hslInteger); Sort_File.AddField("LAB1", lab1, hslString, 255); Sort_File.AddField("POS1", pos1, hslString, 255); Sort_File.AddField("LAB2", lab2, hslString, 255); Sort_File.AddField("POS2", pos2, hslString, 255); Sort_File.AddField("VAL1", not_used, hslString, 255); Sort_File.AddField("VAL2", not_used, hslString, 255); Sort_File.AddField("X1", x1, hslFloat); Sort_File.AddField("Y1", y1, hslFloat); Sort_File.AddField("X2", x2, hslFloat); Sort_File.AddField("Y2", y2, hslFloat); Sort_File.AddField("STATUS", status, hslString, 255); if( 0 == Sort_File.Open(sort_file + " " + "SORT", hslRead, filter_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 960 1 0 "405b0654_32ed_4c34_8a6eb2505cde9ab5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while ( (Sort_File.Eof() == 0) ) { // }} "" // {{ 961 1 0 "56556423_1bc0_4aed_827fe9a770951ef5" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Sort_File.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 962 1 0 "152cdf71_b24d_40da_82a10a8e523f629b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(temp_seq1, lab1, pos1); // }} "" // {{{ 963 1 0 "369d6c27_127e_4fe8_91ef4365f759554c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(temp_seq2, lab2, pos2); // }} "" // {{ 964 1 0 "405b0654_32ed_4c34_8a6eb2505cde9ab5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 965 1 0 "05408058_ffa2_4b6b_8ca2b4f94e19be5e" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Sort_File.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Sort_File.RemoveFields(); // }} "" // {{ 966 1 0 "d9b0502f_ddba_4815_a8032d210ff32315" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" temp_seq1.SetCurrentPosition(1); // }} "" // {{ 967 1 0 "383a52cb_9ea9_4c62_b137018566581b3a" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" temp_seq2.SetCurrentPosition(1); // }} "" // {{{ 968 1 0 "3cb79c03_075d_41aa_b1242a9ecfd2222d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(io_Sequence_to_Sort, temp_seq1); // }} "" // {{{ 969 1 0 "c899d938_1474_4a27_8f3c1201ebcb6403" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(io_Sequence_to_Sort2, temp_seq2); // }} "" // {{ 970 1 0 "4c16932b_ffdc_42f7_aa20300afe712db7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 971 1 0 "63a09525_d512_444e_bfac0374d0426505" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 973 1 0 "63a09525_d512_444e_bfac0374d0426505" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 974 1 0 "76a45130_0459_4ce3_b574ad612bff03c0" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_Number_Remaining); // }} "" // {{{ 5 "CHAN_ACCESS_Sort2Sequences" "End" } // }} "" // {{{ 5 "CHAN_ACCESS_Sort2Sequences1Array" "Begin" function CHAN_ACCESS_Sort2Sequences1Array( device & ML_STAR, sequence & io_Sequence_to_Sort, sequence & io_Sequence_to_Sort2, variable & io_Array_of_Variables[], variable i_Channel_Type, variable i_Sort_by_Labware, variable i_Sort_by_XY, variable i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence & o_Sorted_Sequence, sequence & o_Sorted_Sequence2, variable & o_Sorted_Array[], variable & o_Channel_Pattern ) variable { // }} "" private variable channel_raster; private variable status; private variable used_exclusion; private variable pos1; private variable in_group; private variable num_to_sort; private variable restriction_raster; private variable num_used; private variable pos2; private variable in_index; private variable y_min; private variable num_to_sort2; private variable update_sql; private variable y_max; private variable val1; private variable ret_Number_Remaining; private variable num_in_array; private variable value_equal; private variable num_labhand_channels; private variable sequence_name2; private variable total_channels; private variable file_index; private variable restriction1; private variable null; private variable restriction2; private variable not_used; private variable lab1; private variable sort_file; private variable lab2; private variable filter_sql; private variable count_sql; private variable num_1mL_channels; private variable prev_y_coord; private variable prev_x_coord; private variable order_by; private variable num_5mL_channels; private variable is_string; private variable count_value; private variable val_type1; private variable y1; private variable channel_number; private variable y2; private variable x1; private variable is_integer; private variable x2; private variable line_number; private variable sequence_name; private variable is_float; private sequence temp_seq1; private sequence temp_seq2; private file Count_Available; private file Update_FIle; private file Sort_File; private variable arr_temp_array1[]; private variable arr_Y_Min[]; private variable arr_Y_Max[]; private variable arr_line_numbers[]; private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable bool_FileExists; private variable int_Count; // {{ 5 "CHAN_ACCESS_Sort2Sequences1Array" "InitLocals" { sequence __temp; o_Sorted_Sequence = __temp; } { sequence __temp; o_Sorted_Sequence2 = __temp; } o_Sorted_Array.SetSize( 0); o_Channel_Pattern = 0; // }} "" // {{ 976 1 0 "f57f6b31_4cf8_4660_b3a9f4f217f4c7f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 977 1 0 "8ccf9d2d_0c7b_4782_887f0b0673d43f11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 979 1 0 "61b75823_8cc2_4314_80fdf86abcca1cb9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 980 1 0 "8101c6fe_0b67_4dc6_b05df5b3e7af826c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 981 1 0 "6db86073_be00_43c1_bf17eb37bfb21fd0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 982 1 0 "c96420be_f013_47c0_9b2667eace8f2b45" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 983 1 0 "8e099521_accf_47a4_82d9f837b2ecd744" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 985 1 0 "f57f6b31_4cf8_4660_b3a9f4f217f4c7f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 986 1 0 "bc0b6ddf_91b4_4a82_80e3b20c790372b7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 987 1 0 "f36c0800_6cb7_43c9_a775cc090ccedbf5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 988 1 0 "ad046114_8c7c_4921_b6e66859558124c4" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 989 1 0 "37522b27_0c7e_4afa_a3ca5eb9e393240e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{{ 990 1 0 "aee83e04_a03c_4ee0_a68adda93506e214" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_5mL_channels = DevGetCfgValueWithKey(ML_STAR, 43); // }} "" // {{{ 991 1 0 "6ce15483_4ad1_4afb_862e848f194defa4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_labhand_channels = DevGetCfgValueWithKey(ML_STAR, 47); // }} "" // {{{ 992 1 0 "9bfee936_b18c_42b1_83f35ad816fe1e7c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Channel_Type = StrConcat2(i_Channel_Type, Translate("")); // }} "" // {{{ 993 1 0 "e2732a65_d62e_439c_81ab39b155eeaad2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Channel_Type = StrIVal(i_Channel_Type); // }} "" // {{ 994 1 0 "b957161a_4d81_482c_830e37bca6160800" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type < 0) { // }} "" // {{{ 995 1 0 "9248f8c6_9fb0_415c_bcc31dfea9af7f25" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace4(Translate("*************** Channel type of "), i_Channel_Type, Translate(" is not recognized by this library!!!!"), Translate("")); // }} "" // {{ 996 1 0 "d82a236d_27a0_4a2b_bd41db25cf30d776" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = 0; // }} "" // {{ 997 1 0 "b957161a_4d81_482c_830e37bca6160800" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 998 1 0 "8870bd98_7508_49c3_8ef41d118b597e01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type > 2) { // }} "" // {{{ 999 1 0 "5ab92afb_9bfe_4cc0_b38f716fec86e080" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace4(Translate("*************** Channel type of "), i_Channel_Type, Translate(" is not recognized by this library!!!!"), Translate("")); // }} "" // {{ 1000 1 0 "6e2e67c9_e9f1_4aa5_929c3705b71b0886" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = 0; // }} "" // {{ 1001 1 0 "8870bd98_7508_49c3_8ef41d118b597e01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1002 1 0 "d00caa78_053a_494a_841736e358456e3f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 0) { // }} "" // {{ 1003 1 0 "29662209_7e0c_41d5_833c85cd2ca8ab94" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = num_1mL_channels; // }} "" // {{ 1004 1 0 "d00caa78_053a_494a_841736e358456e3f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1005 1 0 "be1009fb_f32f_4c5a_bdc89e0894596fe3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 1) { // }} "" // {{ 1006 1 0 "30020bc0_8916_4df2_87d9b078a6d57599" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = num_5mL_channels; // }} "" // {{ 1007 1 0 "be1009fb_f32f_4c5a_bdc89e0894596fe3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1008 1 0 "fb078e4a_c14b_4fa7_b59e248cd2ccf461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 2) { // }} "" // {{ 1009 1 0 "ccbb948f_6918_4cde_906fb9ef7958498c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = num_labhand_channels; // }} "" // {{ 1010 1 0 "fb078e4a_c14b_4fa7_b59e248cd2ccf461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1011 1 0 "f36c0800_6cb7_43c9_a775cc090ccedbf5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1012 1 0 "6c1db780_9bb9_41cf_b6e9382d0b24eac0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1013 1 0 "6d483b25_96d3_4f77_a40d871d69df925d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_Channel_Pattern = Translate(""); // }} "" // {{ 1014 1 0 "79b3af70_ff6c_4a35_b95b1d962b0374bf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (total_channels == 0) { // }} "" // {{ 1015 1 0 "9774c213_b406_42cb_831ae3351da10c17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 0) { // }} "" // {{{ 1016 1 0 "29c9affe_4139_4474_85537a234985d18c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** There are no 1 mL channels installed!"), Translate("")); // }} "" // {{{ 1017 1 0 "80512fbe_fbab_4268_b89c43e058ab2e3b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("No 1 mL channels installed!!")); // }} "" // {{ 1018 1 0 "9774c213_b406_42cb_831ae3351da10c17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1019 1 0 "fc0b4b49_3725_4f62_b1d9ec7d95e63bf2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 1) { // }} "" // {{{ 1020 1 0 "fe6837c9_e6fe_4196_853021ee6715970f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** There are no 5 mL channels installed!"), Translate("")); // }} "" // {{{ 1021 1 0 "fd5ab874_8fd6_443c_a7e393e4185f14ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("No 5 mL channels installed!!")); // }} "" // {{ 1022 1 0 "fc0b4b49_3725_4f62_b1d9ec7d95e63bf2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1023 1 0 "dccf0cab_4669_4eaa_a31e792b83cdbe98" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 2) { // }} "" // {{{ 1024 1 0 "19fb8ce7_3f67_41e0_87a19258f3cf2735" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** There are no Lab Handler channels installed!"), Translate("")); // }} "" // {{{ 1025 1 0 "29bcef8c_37dd_4414_af67cf7d9a8bb420" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("No Lab Handler channels installed!!")); // }} "" // {{ 1026 1 0 "dccf0cab_4669_4eaa_a31e792b83cdbe98" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1027 1 0 "79b3af70_ff6c_4a35_b95b1d962b0374bf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1028 1 0 "91975aa4_f7ee_46f3_8e9de4e2956265f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, io_Sequence_to_Sort); // }} "" // {{{ 1029 1 0 "c1bddf1d_eb88_4969_b533ab2c7c7f70ff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, io_Sequence_to_Sort2); // }} "" // {{{ 1030 1 0 "9fff71ca_3068_4ab7_8a314d82950ff383" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, total_channels, 0); // }} "" // {{{ 1031 1 0 "f0c7fb1a_4ce3_48b5_913ea902d65941d6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Max_Channel = StrConcat2(i_Max_Channel, Translate("")); // }} "" // {{{ 1032 1 0 "ef1fe6b7_9a7d_4043_8d937f8aef3f270d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Max_Channel = StrIVal(i_Max_Channel); // }} "" // {{ 1033 1 0 "746bf271_50aa_44f3_bf12efac41ed774b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Max_Channel <= 0) { // }} "" // {{ 1034 1 0 "5bc82123_b2dd_49a5_996ce7862512549c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" i_Max_Channel = total_channels; // }} "" // {{ 1035 1 0 "746bf271_50aa_44f3_bf12efac41ed774b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1036 1 0 "d50b50aa_f4d4_487f_8e969ee46180ce6b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Max_Channel > total_channels) { // }} "" // {{ 1037 1 0 "7c04686a_a90a_4aea_ba23781212daac62" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" i_Max_Channel = total_channels; // }} "" // {{ 1038 1 0 "d50b50aa_f4d4_487f_8e969ee46180ce6b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1039 1 0 "f4345204_7811_40bc_b99f695313f6be8d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_Number_Remaining = 0; // }} "" // {{{ 1040 1 0 "783c974b_994f_4f7c_8ff36ad39f646d31" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_Sorted_Sequence); // }} "" // {{{ 1041 1 0 "e3a5442f_6e8c_4ad6_b7eac6aaa29c9100" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_Sorted_Sequence2); // }} "" // {{ 1042 1 0 "80a9b4f6_abb2_46fe_bbcb62b966540ede" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_Sorted_Array.SetSize(i_Max_Channel); // }} "" // {{ 1043 1 0 "de156c02_b9fa_4f11_904f43f62d6142e7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 0) { // }} "" // {{ 1044 1 0 "f031d828_3180_478f_a85f082f28108146" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Max=G_ARR_FW_PIP_COM_YMax; // }} "" // {{ 1045 1 0 "1a18de02_05f6_4c58_9e096ead22a5a37e" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Min=G_ARR_FW_PIP_COM_YMin; // }} "" // {{ 1046 1 0 "1d6711fb_be21_4b87_af7f93c14454d1b3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" channel_raster = G_FW_PIP_COM_Raster; // }} "" // {{ 1047 1 0 "de156c02_b9fa_4f11_904f43f62d6142e7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1048 1 0 "ef854889_3110_4fbc_96eb2cc4a18b477d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 1) { // }} "" // {{ 1049 1 0 "cd565ed0_ca84_4eb7_8be3caca7ab2baed" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Max=G_ARR_FW_XL_COM_YMax; // }} "" // {{ 1050 1 0 "3850d160_3717_4eed_825efee0154e5a02" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Min=G_ARR_FW_XL_COM_YMin; // }} "" // {{ 1051 1 0 "c27e8ad1_3582_4cee_a65d1af0a1ad60a1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" channel_raster = G_FW_XL_COM_Raster; // }} "" // {{ 1052 1 0 "ef854889_3110_4fbc_96eb2cc4a18b477d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1053 1 0 "605f6f90_47b0_4615_9415021bdecad78e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 2) { // }} "" // {{{ 1054 1 0 "d083b56d_c4ff_48f3_902a7553e8e83837" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetChannelLimits(ML_STAR, i_Channel_Type, arr_Y_Max, arr_Y_Min, channel_raster); // }} "" // {{ 1055 1 0 "605f6f90_47b0_4615_9415021bdecad78e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1056 1 0 "ea235d98_077a_4fc3_aab1ed1b7902dc5a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1057 1 0 "797c23fa_96f5_4d8e_9e7a3e9d775851b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTempSortingFilePath(sort_file); // }} "" // {{{ 1058 1 0 "e743c719_883d_4b9f_bb887c05a8cbb8fe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(sort_file); // }} "" // {{ 1059 1 0 "ea723d9b_553f_48e0_b5dc81ad8a91b033" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 1) { // }} "" // {{{ 1060 1 0 "b663953c_d341_46e9_9040bf15a8df1ca3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(sort_file); // }} "" // {{ 1061 1 0 "ea723d9b_553f_48e0_b5dc81ad8a91b033" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1062 1 0 "993d10ce_e5cc_4dc6_93877a5e04a7d27a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_to_sort = SeqGetTotal(io_Sequence_to_Sort); // }} "" // {{{ 1063 1 0 "e2107629_642f_4166_82fc758f4ec7b86a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_to_sort2 = SeqGetTotal(io_Sequence_to_Sort2); // }} "" // {{{ 1064 1 0 "7e52bea4_c7f5_4ef4_9f9c7a5a7f3ce319" "{C1F3C015-47B3-4514-9407-AC2E65043419}" sequence_name = SeqGetName(io_Sequence_to_Sort); // }} "" // {{{ 1065 1 0 "70804ea4_688d_4e7b_80985cd5bc34d517" "{C1F3C015-47B3-4514-9407-AC2E65043419}" sequence_name2 = SeqGetName(io_Sequence_to_Sort2); // }} "" // {{ 1066 1 0 "fec33be9_2744_4384_9913594099197eb4" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" num_in_array=io_Array_of_Variables.GetSize(); // }} "" // {{ 1067 1 0 "e41e1f02_a263_47cf_b906096fa3fe7845" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" value_equal = 0; // }} "" if(num_to_sort == num_in_array && num_to_sort == num_to_sort2) value_equal = 1; // {{ 1069 1 0 "649119e1_d67a_4035_b780cb3a0cfea38b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (num_to_sort == 0) { // }} "" // {{{ 1070 1 0 "1b2684f4_fa7e_4f06_b687020d1382c182" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_Number_Remaining); // }} "" // {{ 1071 1 0 "649119e1_d67a_4035_b780cb3a0cfea38b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1072 1 0 "9699c3d3_67ca_432d_8966c8706ccce7d3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (value_equal == 0) { // }} "" // {{{ 1073 1 0 "17db9f18_4ff4_4914_a0a9aec304c9f69d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("############## SEQUENCES AND ARRAY DO NOT HAVE THE SAME NUMBER OF POSITIONS."), Translate("")); // }} "" // {{{ 1074 1 0 "b454fcf6_6eb4_4442_85829c0ae8fae98c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Sequences and array do not have the same number of positions.")); // }} "" // {{ 1075 1 0 "9699c3d3_67ca_432d_8966c8706ccce7d3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1076 1 0 "3dbad4fc_4ebb_4ee6_bcc7b43ef0d3b84e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("________________________________________________________"), Translate("")); // }} "" // {{{ 1077 1 0 "b0356b45_7966_43ed_8c285d072df548c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(""), Translate("")); // }} "" // {{{ 1078 1 0 "b4ccc780_e053_451e_947a07c6a9c922de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace4(Translate(" Sequence to Sort: "), sequence_name, Translate(" Second Sequence to Sort: "), sequence_name2); // }} "" // {{{ 1079 1 0 "bda287cb_2c1a_44dd_b9a51458ebec8431" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Number of Positions in Sequence: "), num_to_sort); // }} "" // {{{ 1080 1 0 "b2d4e5a5_9cac_444d_aef8f6f1bf0dea79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Sort by Labware: "), i_Sort_by_Labware); // }} "" // {{{ 1081 1 0 "dc76577f_c9b1_4d64_a033becc2cf8e850" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Sort by XY: "), i_Sort_by_XY); // }} "" // {{{ 1082 1 0 "dc496c7d_acd5_4518_9e9f4ed82791f59a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Sort for Channel Raster: "), i_Sort_for_Channel_Raster); // }} "" // {{{ 1083 1 0 "02263a9b_0855_488e_bf4e44ee06eb2d50" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Channel Raster: "), channel_raster); // }} "" // {{{ 1084 1 0 "7886f9cb_e03a_47cc_b93043450d139dbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Maximum Channel: "), i_Max_Channel); // }} "" if(i_Channel_Type == 0) Trace(" Channel Type: 1 mL"); else if(i_Channel_Type == 1) Trace(" Channel Type: 5 mL"); else if(i_Channel_Type == 2) Trace(" Channel Type: Labware Handler"); // {{{ 1086 1 0 "936560ac_818a_428d_a61274092d626c7d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("________________________________________________________"), Translate("")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1087 1 0 "ab5f49a1_3a30_4920_b4153a3170916996" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1088 1 0 "af35687a_c6e6_4bad_876c8e27daa9531d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" is_float = HSLExtensions::Array::IsFloatArray(io_Array_of_Variables); // }} "" // {{{ 1089 1 0 "64bb9744_df9c_4f83_b8ad452cbaafd03b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" is_integer = HSLExtensions::Array::IsIntegerArray(io_Array_of_Variables); // }} "" // {{{ 1090 1 0 "7a1f1fbf_22a2_4d9e_945369f7727d8c13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" is_string = HSLExtensions::Array::IsStringArray(io_Array_of_Variables); // }} "" // {{ 1091 1 0 "2695c76b_1e23_4b18_a4ab83851de72e17" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" val_type1 = 0; // }} "" if(is_float == 1) val_type1 = 1; else if(is_integer == 1) val_type1 = 2; // {{ 1093 1 0 "8bb6ae81_09e8_4a0d_8bf5fb84255aad30" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1094 1 0 "a82d841a_ae30_4d06_a1b8af558edf9f64" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Sort_File.AddField("LINE_NUMBER", line_number, hslInteger); Sort_File.AddField("LAB1", lab1, hslString, 255); Sort_File.AddField("POS1", pos1, hslString, 255); Sort_File.AddField("LAB2", lab2, hslString, 255); Sort_File.AddField("POS2", pos2, hslString, 255); Sort_File.AddField("VAL1", val1, hslString, 255); Sort_File.AddField("VAL2", not_used, hslString, 255); Sort_File.AddField("X1", x1, hslFloat); Sort_File.AddField("Y1", y1, hslFloat); Sort_File.AddField("X2", x2, hslFloat); Sort_File.AddField("Y2", y2, hslFloat); Sort_File.AddField("STATUS", status, hslString, 255); if( 0 == Sort_File.Open(sort_file + " " + "SORT", hslWrite) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 1095 1 0 "20606247_e15f_482b_aa62fa1407aa5f9c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" not_used = Translate("-----"); // }} "" // {{ 1096 1 0 "e3e0bf49_7365_4e09_a936ee8c3200127f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" status = Translate("NOT_DONE"); // }} "" // {{ 1097 1 0 "eb3931c8_f944_4c14_af01bb3a38ebdf06" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(line_number = 0; line_number < num_to_sort;) { line_number = line_number + 1; // }} "" // {{ 1098 1 0 "1f42d01f_2f71_42fb_b1c4191a3a27816f" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_Sequence_to_Sort.SetCurrentPosition(line_number); // }} "" // {{ 1099 1 0 "48976863_8161_477b_bda77f3b50d939e7" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_Sequence_to_Sort2.SetCurrentPosition(line_number); // }} "" // {{{ 1100 1 0 "67926329_6b70_4063_a5eea28f906a3637" "{C1F3C015-47B3-4514-9407-AC2E65043419}" lab1 = SeqGetLabwareId(io_Sequence_to_Sort); // }} "" // {{{ 1101 1 0 "8aef6f58_ca96_4b11_b5a773eb3c3898c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pos1 = SeqGetPositionId(io_Sequence_to_Sort); // }} "" // {{{ 1102 1 0 "43e2eb4c_016d_460b_a88a3e3c85ce4baf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" lab2 = SeqGetLabwareId(io_Sequence_to_Sort2); // }} "" // {{{ 1103 1 0 "e0268ee4_c01e_4abc_9d9c9bd7f2ba2056" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pos2 = SeqGetPositionId(io_Sequence_to_Sort2); // }} "" // {{{ 1104 1 0 "b51bc0f1_8ef0_4736_80ba136a56b077dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, lab1, pos1, x1, y1, null, null); // }} "" // {{{ 1105 1 0 "34270127_ae23_432a_b080b67b349063a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, lab2, pos2, x2, y2, null, null); // }} "" // {{ 1106 1 0 "cbd086ec_dafd_44bb_9cb2a6794a2f9826" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" val1=io_Array_of_Variables.GetAt(line_number-1); // }} "" // {{ 1107 1 0 "ad0797ba_9782_46d7_b27b6442e3dd8807" "{B31F3537-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Sort_File.WriteRecord() ) { MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1108 1 0 "eb3931c8_f944_4c14_af01bb3a38ebdf06" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1109 1 0 "3677170f_fa76_4692_89db41f1eb2a4810" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Sort_File.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Sort_File.RemoveFields(); // }} "" // {{ 1110 1 0 "1d45bfab_7ea2_4428_8e2ab86d420e4a50" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_line_numbers.SetSize(0); // }} "" // {{ 1111 1 0 "9845a95a_a032_4aec_96d86da26f174bb2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_x_coord = 0.0; // }} "" // {{ 1112 1 0 "2858cbd1_92af_4f99_bd14d6ed66bdffb5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_y_coord = 999.0; // }} "" // {{ 1113 1 0 "8aae9017_7ee1_4446_88a24b3229905d0a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(channel_number = 0; channel_number < i_Max_Channel;) { channel_number = channel_number + 1; // }} "" // {{ 1114 1 0 "2d2819e3_42b1_494a_a1dd3972f710a006" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" prev_y_coord = prev_y_coord - channel_raster; // }} "" // {{{ 1115 1 0 "63151a2b_c4f8_4616_9a50d0480ec72039" "{C1F3C015-47B3-4514-9407-AC2E65043419}" restriction_raster = StrConcat8(Translate("AND (X1"), Translate(" = "), prev_x_coord, Translate(" AND "), Translate("Y1"), Translate(" <= "), prev_y_coord, Translate(")")); // }} "" // {{ 1116 1 0 "95857976_fe14_465f_bc14c96ab35268a1" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1117 1 0 "07a12e40_432b_4b83_91edbd14cb075546" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" y_max=arr_Y_Max.GetAt(channel_number-1); // }} "" // {{ 1118 1 0 "f9894c0b_29a8_46dc_a7e28624ce018607" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" y_min=arr_Y_Min.GetAt(channel_number-1); // }} "" // {{{ 1119 1 0 "3843383f_1b60_4420_b4ba3b79f2ca6ba2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" restriction1 = StrConcat8(Translate("(Y1 "), Translate(">= "), y_min, Translate(" AND "), Translate("Y1 "), Translate("<= "), y_max, Translate(")")); // }} "" // {{{ 1120 1 0 "ccda9ff6_ddb6_4365_869810ff0da994b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" restriction2 = StrConcat8(Translate("(Y2 "), Translate(">= "), y_min, Translate(" AND "), Translate("Y2 "), Translate("<= "), y_max, Translate(")")); // }} "" // {{ 1121 1 0 "11a39da5_afee_4c12_99d36721c09eae65" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1122 1 0 "2cca8815_9832_47a6_9dd130d9741e739f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" num_used=arr_line_numbers.GetSize(); // }} "" // {{ 1123 1 0 "a43607f9_d55f_426e_89b21428fda5d741" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (num_used == 0) { // }} "" // {{ 1124 1 0 "5f64db6a_0c04_4ccb_a8fee1e2a8894cae" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" used_exclusion = Translate(""); // }} "" // {{ 1125 1 0 "a43607f9_d55f_426e_89b21428fda5d741" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1126 1 0 "500b08c2_3aca_46b1_a9d86dfd13302234" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(Translate("AND LINE_NUMBER NOT IN("), Translate("")); // }} "" // {{ 1127 1 0 "10098597_070e_4d54_8e4fb9800f940454" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(in_index = 0; in_index < num_used;) { in_index = in_index + 1; // }} "" // {{ 1128 1 0 "1a0da0d8_47b2_472e_a461896098f0393a" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" line_number=arr_line_numbers.GetAt(in_index-1); // }} "" // {{ 1129 1 0 "d9bb8e5e_0a9e_41c3_84efb7f95fe4af06" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (in_index != 1) { // }} "" // {{{ 1130 1 0 "736870cf_d443_42dc_ba33c5ace6367f12" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(used_exclusion, Translate(", ")); // }} "" // {{ 1131 1 0 "d9bb8e5e_0a9e_41c3_84efb7f95fe4af06" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1132 1 0 "a49e7669_125c_4784_9935c1c7b9ebfc30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(used_exclusion, line_number); // }} "" // {{ 1133 1 0 "10098597_070e_4d54_8e4fb9800f940454" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1134 1 0 "02984ed6_3a15_40e9_85f55cfcdc0c6b31" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(used_exclusion, Translate(")")); // }} "" // {{ 1135 1 0 "a43607f9_d55f_426e_89b21428fda5d741" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1136 1 0 "190d4729_71ad_4e8d_aa41d51043871b92" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1137 1 0 "05c8042e_7d47_4ec4_ad58f480f293899e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" order_by = Translate(""); // }} "" if(i_Sort_by_Labware == 1 && i_Sort_by_XY == 1) { order_by = "ORDER BY LAB1 ASC, X1 ASC, Y1 DESC"; } else if(i_Sort_by_Labware == 1 && i_Sort_by_XY == 0) { order_by = "ORDER BY LAB1 ASC, LINE_NUMBER ASC"; } else if(i_Sort_by_Labware == 0 && i_Sort_by_XY == 1) { order_by = "ORDER BY X1 ASC, Y1 DESC"; } else { order_by = "ORDER BY LINE_NUMBER ASC"; } // {{ 1139 1 0 "0a3203ff_7671_4787_947171c246a5644e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1140 1 0 "bed9b525_8107_495c_8dc16f64da4af833" "{C1F3C015-47B3-4514-9407-AC2E65043419}" count_sql = StrConcat12(Translate("SELECT COUNT(*) AS N FROM SORT WHERE "), restriction1, Translate(" AND "), restriction2, Translate(" "), used_exclusion, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), restriction_raster); // }} "" // {{ 1141 1 0 "77216d38_e07d_4f2e_a253311960e0a457" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Count_Available.AddField("N", count_value, hslInteger); if( 0 == Count_Available.Open(sort_file + " " + "SORT", hslRead, count_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 1142 1 0 "aeee44f5_3952_4c66_abadc274c1ad4ad6" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Count_Available.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1143 1 0 "5f1e9a76_1a9a_4424_a65798d22e96196f" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Count_Available.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Count_Available.RemoveFields(); // }} "" // {{ 1144 1 0 "1e8eb8bf_205a_42ae_bb5a13e8760375a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (count_value == 0) { // }} "" // {{ 1145 1 0 "c46a332f_6d5c_4ed0_a7cf4a6780a8fe3b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_x_coord = 0.0; // }} "" // {{ 1146 1 0 "1e8eb8bf_205a_42ae_bb5a13e8760375a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1147 1 0 "ba0a183e_225b_4f57_823b50ab4f876b8d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1148 1 0 "bb44259e_ca5d_4193_81de0459339be8f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" count_sql = StrConcat12(Translate("SELECT COUNT(*) AS N FROM SORT WHERE "), restriction1, Translate(" AND "), restriction2, Translate(" "), used_exclusion, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{ 1149 1 0 "8fa018aa_4e3c_40cc_a6f7f31d6ad82e74" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Count_Available.AddField("N", count_value, hslInteger); if( 0 == Count_Available.Open(sort_file + " " + "SORT", hslRead, count_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 1150 1 0 "bb271a19_1be6_432c_aee269712acbbcb6" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Count_Available.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1151 1 0 "3a4fe840_2053_4f8d_8b9c3d77229d3a5f" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Count_Available.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Count_Available.RemoveFields(); // }} "" // {{ 1152 1 0 "eff287c4_8ea6_4697_97842ac97c7d7d5a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (count_value > 0) { // }} "" // {{ 1153 1 0 "495d0cd0_c158_44d5_af6e90d036d64e87" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1154 1 0 "5d2b77d3_d85a_47cd_89fdc7b9fba72771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" filter_sql = StrConcat12(Translate("SELECT * FROM SORT WHERE "), restriction1, Translate(" AND "), restriction2, Translate(""), Translate(""), Translate(""), Translate(""), Translate(" "), used_exclusion, Translate(" "), order_by); // }} "" // {{ 1155 1 0 "a530d9b2_9222_43c0_9b442475efbffbfd" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Sort_File.AddField("LINE_NUMBER", line_number, hslInteger); Sort_File.AddField("LAB1", lab1, hslString, 255); Sort_File.AddField("POS1", pos1, hslString, 255); Sort_File.AddField("LAB2", lab2, hslString, 255); Sort_File.AddField("POS2", pos2, hslString, 255); Sort_File.AddField("VAL1", val1, hslString, 255); Sort_File.AddField("VAL2", not_used, hslString, 255); Sort_File.AddField("X1", x1, hslFloat); Sort_File.AddField("Y1", y1, hslFloat); Sort_File.AddField("X2", x2, hslFloat); Sort_File.AddField("Y2", y2, hslFloat); Sort_File.AddField("STATUS", status, hslString, 255); if( 0 == Sort_File.Open(sort_file + " " + "SORT", hslRead, filter_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 1156 1 0 "1bffb287_eed2_4fd7_be0cffce97fe5c78" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { file_index = 0; while ( (Sort_File.Eof() == 0) ) { file_index = file_index + 1; // }} "" // {{ 1157 1 0 "bf90f2d3_6262_4d2b_b8660f527e24d783" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Sort_File.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1158 1 0 "464589a5_5089_4cbf_8b5979ba70c64925" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Sort_for_Channel_Raster == 0) { // }} "" // {{ 1159 1 0 "f4829396_4697_43a6_a347474316c4b43a" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1160 1 0 "464589a5_5089_4cbf_8b5979ba70c64925" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1161 1 0 "3d1cb9ed_cd3f_42e3_9926f160b489aae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (x1 != prev_x_coord) { // }} "" // {{ 1162 1 0 "2ddffe87_e7cf_4cb7_8321a73ec8793aba" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1163 1 0 "3d1cb9ed_cd3f_42e3_9926f160b489aae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1164 1 0 "e8d80961_6e0f_4b6d_a24958b2f51d6df0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (y1 <= prev_y_coord) { // }} "" // {{ 1165 1 0 "d1c73e95_81f8_4c04_80b721853d2904bf" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1166 1 0 "e8d80961_6e0f_4b6d_a24958b2f51d6df0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1167 1 0 "1bffb287_eed2_4fd7_be0cffce97fe5c78" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1168 1 0 "76a2d5d0_e9a9_4044_9499be6f4e907119" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Sort_File.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Sort_File.RemoveFields(); // }} "" // This converts the array values back to their original state if(val_type1 == 1) val1 = FVal(val1); else if(val_type1 == 2) val1 = IVal(val1); // {{{ 1170 1 0 "1a4088a4_69dc_4b0e_b94110a042ccd0ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_Sorted_Sequence, lab1, pos1); // }} "" // {{{ 1171 1 0 "18fecddc_f635_4e9a_b10edc45161087b6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_Sorted_Sequence2, lab2, pos2); // }} "" // {{{ 1172 1 0 "50fc6fcc_c00b_4200_bd1d10f02dcca2ba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, channel_number, 1); // }} "" // {{ 1173 1 0 "5ca9da10_9f52_42a3_96d1fba13ed021c7" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_Sorted_Array.SetAt(channel_number-1, val1); // }} "" // {{ 1174 1 0 "31061999_1ca7_4550_a356ada0c9aba99f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_line_numbers.AddAsLast(line_number); // }} "" // {{ 1175 1 0 "bfebd84b_458b_45a1_9da0e5bd4119375b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_x_coord = x1; // }} "" // {{ 1176 1 0 "466c1041_f5c7_40dd_acf056ac1f574acf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_y_coord = y1; // }} "" // {{ 1177 1 0 "eff287c4_8ea6_4697_97842ac97c7d7d5a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1178 1 0 "cdde6572_0894_4934_b4291dfe56d963dc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" val1 = Translate("0"); // }} "" // This converts the array values back to their original state if(val_type1 == 1) val1 = FVal(val1); else if(val_type1 == 2) val1 = IVal(val1); // {{ 1180 1 0 "e5f822b0_207c_42d4_bdfe82946f1e5e76" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_Sorted_Array.SetAt(channel_number-1, val1); // }} "" // {{ 1181 1 0 "eff287c4_8ea6_4697_97842ac97c7d7d5a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1182 1 0 "8aae9017_7ee1_4446_88a24b3229905d0a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1183 1 0 "0d4eebd5_64d9_4e6c_a2749989a33af625" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_Sorted_Sequence.SetCurrentPosition(1); // }} "" // {{ 1184 1 0 "3cfde14f_c4fc_40bd_bb51f692b9da7ed5" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_Sorted_Sequence2.SetCurrentPosition(1); // }} "" // {{ 1185 1 0 "f0266df3_530a_4a78_b146b56635aa5450" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1186 1 0 "142f8e16_3187_4cf5_bfc768432accdaf0" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" num_used=arr_line_numbers.GetSize(); // }} "" // {{ 1187 1 0 "cf1df8c3_2f2c_4a8f_bc34d348eae22250" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" ret_Number_Remaining = num_to_sort - num_used; // }} "" // {{ 1188 1 0 "b0463a8d_5165_42cf_b01971f96aacbb5b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (num_used == 0) { // }} "" // {{{ 1189 1 0 "47f37ef9_b0fd_485b_a4491252ac560833" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("********************************** The remaining positions are out of reach for the selected channels!!!!"), Translate("")); // }} "" // {{{ 1190 1 0 "1747499c_cec7_4e16_804760cdea0999f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("The remaining positions are out of reach for all the selected channels!!!!")); // }} "" // {{ 1191 1 0 "b0463a8d_5165_42cf_b01971f96aacbb5b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1192 1 0 "0c08e170_2fdc_4366_8d1b4ab3ff663b8d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(Translate("LINE_NUMBER IN("), Translate("")); // }} "" // {{ 1193 1 0 "673ef581_0d5e_4a82_8d1b0d5895f08332" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(in_index = 0; in_index < num_used;) { in_index = in_index + 1; // }} "" // {{ 1194 1 0 "cc7c042b_a4fd_49ba_b290770e3eb9b02d" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" line_number=arr_line_numbers.GetAt(in_index-1); // }} "" // {{ 1195 1 0 "7c7f9600_e425_4f1d_a2c835f29e568af4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (in_index != 1) { // }} "" // {{{ 1196 1 0 "3399a1df_2722_4021_abae3ab2678fe8c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(in_group, Translate(", ")); // }} "" // {{ 1197 1 0 "7c7f9600_e425_4f1d_a2c835f29e568af4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1198 1 0 "f0b1fdf0_1ed7_4be8_942db1ea8ef49bb4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(in_group, line_number); // }} "" // {{ 1199 1 0 "673ef581_0d5e_4a82_8d1b0d5895f08332" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1200 1 0 "3273e2f8_6949_4393_875a8b98f4fc3a6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(in_group, Translate(")")); // }} "" // {{{ 1201 1 0 "94d85f56_92b8_4123_8a846947cac96234" "{C1F3C015-47B3-4514-9407-AC2E65043419}" update_sql = StrConcat4(Translate("UPDATE SORT SET STATUS = 'DONE' WHERE "), in_group, Translate(""), Translate("")); // }} "" // {{ 1202 1 0 "43626c63_9aca_4778_b606ced7a781c16e" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Update_FIle.Open(sort_file + " " + "SORT", hslRead, update_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 1203 1 0 "3c2e2f74_579b_4410_bd602e16cd923e6a" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Update_FIle.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Update_FIle.RemoveFields(); // }} "" // {{ 1204 1 0 "700f1df4_d185_4f7a_9056e1a9323f289e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1205 1 0 "a8dc546f_928f_4a7e_92c3ad4596333c08" "{C1F3C015-47B3-4514-9407-AC2E65043419}" count_sql = StrConcat2(Translate("SELECT COUNT(*) AS N FROM SORT WHERE STATUS = 'NOT_DONE'"), Translate("")); // }} "" // {{ 1206 1 0 "111d9bc3_2de2_43bc_9ac2f89e97609023" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Count_Available.AddField("N", count_value, hslInteger); if( 0 == Count_Available.Open(sort_file + " " + "SORT", hslRead, count_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 1207 1 0 "c779716a_c35b_4679_9a8ea2fe38d2a623" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Count_Available.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1208 1 0 "e56d75bd_5382_427d_bb0533208e6d948b" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Count_Available.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Count_Available.RemoveFields(); // }} "" // {{ 1209 1 0 "40eb4133_ae76_48da_86dfdd6f877ba443" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_Number_Remaining = count_value; // }} "" // {{ 1210 1 0 "3eb2eac6_13fc_446a_b52dd5fc88dabeb9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (count_value == 0) { // }} "" // {{{ 1211 1 0 "54810d6f_5a92_41c5_acfbbae37f9209f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(io_Sequence_to_Sort); // }} "" // {{{ 1212 1 0 "d694f333_c021_49a8_bb97f776c06e38c7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(io_Sequence_to_Sort2); // }} "" // {{ 1213 1 0 "4705342e_571b_42f7_aa6f93ea327872f3" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" io_Array_of_Variables.SetSize(0); // }} "" // {{ 1214 1 0 "3eb2eac6_13fc_446a_b52dd5fc88dabeb9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1215 1 0 "74202f87_3711_43da_803b616b9a5cc078" "{C1F3C015-47B3-4514-9407-AC2E65043419}" filter_sql = StrConcat2(Translate("SELECT * FROM SORT WHERE STATUS = 'NOT_DONE' ORDER BY LINE_NUMBER ASC"), Translate("")); // }} "" // {{{ 1216 1 0 "bc4043c7_87ac_491f_801fdde44c537503" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(temp_seq1); // }} "" // {{{ 1217 1 0 "abcdf94f_00db_45ad_800004c0e838a962" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(temp_seq2); // }} "" // {{ 1218 1 0 "ab657f87_5b95_422d_99220227544b62b9" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_temp_array1.SetSize(0); // }} "" // {{ 1219 1 0 "8024356f_ca57_4011_a11e67cfabec3646" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Sort_File.AddField("LINE_NUMBER", line_number, hslInteger); Sort_File.AddField("LAB1", lab1, hslString, 255); Sort_File.AddField("POS1", pos1, hslString, 255); Sort_File.AddField("LAB2", lab2, hslString, 255); Sort_File.AddField("POS2", pos2, hslString, 255); Sort_File.AddField("VAL1", val1, hslString, 255); Sort_File.AddField("VAL2", not_used, hslString, 255); Sort_File.AddField("X1", x1, hslFloat); Sort_File.AddField("Y1", y1, hslFloat); Sort_File.AddField("X2", x2, hslFloat); Sort_File.AddField("Y2", y2, hslFloat); Sort_File.AddField("STATUS", status, hslString, 255); if( 0 == Sort_File.Open(sort_file + " " + "SORT", hslRead, filter_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 1220 1 0 "4d57f00e_9efc_4bb5_b3035fc6d8e02c88" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while ( (Sort_File.Eof() == 0) ) { // }} "" // {{ 1221 1 0 "7f05889b_afe3_4174_98be8e4223f6c151" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Sort_File.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // This converts the array values back to their original state if(val_type1 == 1) val1 = FVal(val1); else if(val_type1 == 2) val1 = IVal(val1); // {{ 1223 1 0 "bb73039f_e5f7_4bd9_9b0b05e3f9bad9e1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_temp_array1.AddAsLast(val1); // }} "" // {{{ 1224 1 0 "836e368a_47a2_4230_9f8653656e75cf37" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(temp_seq1, lab1, pos1); // }} "" // {{{ 1225 1 0 "679a0e07_10c6_48a2_9a59ce7df39a77de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(temp_seq2, lab2, pos2); // }} "" // {{ 1226 1 0 "4d57f00e_9efc_4bb5_b3035fc6d8e02c88" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1227 1 0 "41ec2a34_a5d5_47e9_9b48058d0b6cb094" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Sort_File.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Sort_File.RemoveFields(); // }} "" // {{ 1228 1 0 "b024b7b1_5571_477d_90db2a7d8fef0b59" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" temp_seq1.SetCurrentPosition(1); // }} "" // {{ 1229 1 0 "b5cd384b_45be_4302_a5f50680736c287b" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" temp_seq2.SetCurrentPosition(1); // }} "" // {{{ 1230 1 0 "13632985_705b_4410_b73c41dd3da9d689" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(io_Sequence_to_Sort, temp_seq1); // }} "" // {{{ 1231 1 0 "6899547e_995a_49e5_a523b2171732c5e8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(io_Sequence_to_Sort2, temp_seq2); // }} "" // {{ 1232 1 0 "d3dbe404_fa38_4e88_9e08be84889f09d5" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" io_Array_of_Variables=arr_temp_array1; // }} "" // {{ 1233 1 0 "3eb2eac6_13fc_446a_b52dd5fc88dabeb9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1234 1 0 "225cb460_269d_4b0c_b9a6a09bdf1d9d34" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 1236 1 0 "225cb460_269d_4b0c_b9a6a09bdf1d9d34" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1237 1 0 "5adfaaf4_cb83_4b9c_9ae7fabdba049ee3" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_Number_Remaining); // }} "" // {{{ 5 "CHAN_ACCESS_Sort2Sequences1Array" "End" } // }} "" // {{{ 5 "CHAN_ACCESS_Sort2Sequences2Arrays" "Begin" function CHAN_ACCESS_Sort2Sequences2Arrays( device & ML_STAR, sequence & io_Sequence_to_Sort, sequence & io_Sequence_to_Sort2, variable & io_Array_of_Variables[], variable & io_Array_of_Variables2[], variable i_Channel_Type, variable i_Sort_by_Labware, variable i_Sort_by_XY, variable i_Sort_for_Channel_Raster, variable i_Max_Channel, sequence & o_Sorted_Sequence, sequence & o_Sorted_Sequence2, variable & o_Sorted_Array[], variable & o_Sorted_Array2[], variable & o_Channel_Pattern ) variable { // }} "" private variable status; private variable channel_raster; private variable used_exclusion; private variable num_in_array2; private variable in_group; private variable num_to_sort; private variable pos1; private variable is_string2; private variable pos2; private variable restriction_raster; private variable num_used; private variable in_index; private variable num_to_sort2; private variable update_sql; private variable y_min; private variable is_float2; private variable val1; private variable ret_Number_Remaining; private variable y_max; private variable value_equal; private variable sequence_name2; private variable total_channels; private variable num_in_array; private variable num_labhand_channels; private variable val2; private variable file_index; private variable null; private variable restriction1; private variable not_used; private variable sort_file; private variable restriction2; private variable lab1; private variable lab2; private variable is_integer2; private variable prev_y_coord; private variable filter_sql; private variable num_1mL_channels; private variable prev_x_coord; private variable count_sql; private variable order_by; private variable num_5mL_channels; private variable val_type1; private variable is_string; private variable y1; private variable count_value; private variable channel_number; private variable val_type2; private variable y2; private variable x1; private variable is_integer; private variable x2; private variable line_number; private variable is_float; private variable sequence_name; private sequence temp_seq1; private sequence temp_seq2; private file Count_Available; private file Update_FIle; private file Sort_File; private variable arr_temp_array1[]; private variable arr_temp_array2[]; private variable arr_Y_Min[]; private variable arr_Y_Max[]; private variable arr_line_numbers[]; private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable bool_FileExists; private variable int_Count; // {{ 5 "CHAN_ACCESS_Sort2Sequences2Arrays" "InitLocals" { sequence __temp; o_Sorted_Sequence = __temp; } { sequence __temp; o_Sorted_Sequence2 = __temp; } o_Sorted_Array.SetSize( 0); o_Sorted_Array2.SetSize( 0); o_Channel_Pattern = 0; // }} "" // {{ 1239 1 0 "8e64663d_3a12_41ec_b8d5bad22487df1e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1240 1 0 "ea78c2fe_ec36_49c1_95c8e5410d3f6972" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1242 1 0 "19560468_8386_4b5a_b16746f005871328" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 1243 1 0 "0bff90ce_5236_4835_a65adcba7686d8dd" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1244 1 0 "e66bab0d_4ece_4775_b12daf6bd0bfb4d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 1245 1 0 "955f2883_91b6_4e2c_ae223ea2d35bf74c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1246 1 0 "28e69e63_6426_4c24_9914b6c0d07d242a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 1248 1 0 "8e64663d_3a12_41ec_b8d5bad22487df1e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1249 1 0 "4ad4108e_613d_48e1_b037f781ff2cfc3d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 1250 1 0 "6e2bb588_f5bd_408c_a79076470b18099e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1251 1 0 "bec2fdfd_bd08_4d98_b19fcd98aa0a2f98" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1252 1 0 "a3e20884_340d_4b99_b572da80fa3fa967" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{{ 1253 1 0 "5d5df72a_b3d7_40f6_b2cb92f1bbd3571f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_5mL_channels = DevGetCfgValueWithKey(ML_STAR, 43); // }} "" // {{{ 1254 1 0 "3250a0cd_34c8_444b_9784649949a2dd79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_labhand_channels = DevGetCfgValueWithKey(ML_STAR, 47); // }} "" // {{{ 1255 1 0 "85f16578_663c_42fd_bbdede83ca7c697e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Channel_Type = StrConcat2(i_Channel_Type, Translate("")); // }} "" // {{{ 1256 1 0 "12b1c7b8_7b05_4ceb_a3572bbf963d69b7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Channel_Type = StrIVal(i_Channel_Type); // }} "" // {{ 1257 1 0 "703c9f19_61f8_46e1_ae8d4db0f1bcc93a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type < 0) { // }} "" // {{{ 1258 1 0 "83998bb5_67e9_4bbf_bce1ac048ff25073" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace4(Translate("*************** Channel type of "), i_Channel_Type, Translate(" is not recognized by this library!!!!"), Translate("")); // }} "" // {{ 1259 1 0 "a4804f8f_2819_4e3c_940090586ed430a1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = 0; // }} "" // {{ 1260 1 0 "703c9f19_61f8_46e1_ae8d4db0f1bcc93a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1261 1 0 "b014d099_dde1_4e82_8205b83923be9af7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type > 2) { // }} "" // {{{ 1262 1 0 "ebc4b6d3_343e_464d_92607a297e3bfde0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace4(Translate("*************** Channel type of "), i_Channel_Type, Translate(" is not recognized by this library!!!!"), Translate("")); // }} "" // {{ 1263 1 0 "29aac073_7dd2_4599_846d1a82d044aa1f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = 0; // }} "" // {{ 1264 1 0 "b014d099_dde1_4e82_8205b83923be9af7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1265 1 0 "bbf885cf_8ed6_4219_8d8ed570190509b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 0) { // }} "" // {{ 1266 1 0 "9a26e26b_7660_4795_b39b83056806ef92" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = num_1mL_channels; // }} "" // {{ 1267 1 0 "bbf885cf_8ed6_4219_8d8ed570190509b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1268 1 0 "df5284ab_dff6_4ea0_a31875bc92311584" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 1) { // }} "" // {{ 1269 1 0 "99bfb87f_4a58_4f6e_966aef017a8fb839" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = num_5mL_channels; // }} "" // {{ 1270 1 0 "df5284ab_dff6_4ea0_a31875bc92311584" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1271 1 0 "7448d39f_bc68_4ec6_89a20ec3be57525c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 2) { // }} "" // {{ 1272 1 0 "800343da_d1a5_4b20_a6614ed3119bacab" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" total_channels = num_labhand_channels; // }} "" // {{ 1273 1 0 "7448d39f_bc68_4ec6_89a20ec3be57525c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1274 1 0 "6e2bb588_f5bd_408c_a79076470b18099e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1275 1 0 "fd41469c_fe50_4acc_b8c02d7916c563e9" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1276 1 0 "430ba026_5d5c_4f6c_a8e2a96dbb76749c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_Channel_Pattern = Translate(""); // }} "" // {{ 1277 1 0 "f0186af0_1b39_4767_b6c71b63804891e5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (total_channels == 0) { // }} "" // {{ 1278 1 0 "566820af_6088_49b5_8214fb0fa64f8009" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 0) { // }} "" // {{{ 1279 1 0 "cd469db9_08f4_4581_8f933201b4b2dbdf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** There are no 1 mL channels installed!"), Translate("")); // }} "" // {{{ 1280 1 0 "7b47b8e9_beb8_4f94_845ba1947ec71a41" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("No 1 mL channels installed!!")); // }} "" // {{ 1281 1 0 "566820af_6088_49b5_8214fb0fa64f8009" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1282 1 0 "9469a7c2_83d7_40ec_a3ac7238beb24832" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 1) { // }} "" // {{{ 1283 1 0 "fee41faa_9283_4193_a185db7b2dba9ab4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** There are no 5 mL channels installed!"), Translate("")); // }} "" // {{{ 1284 1 0 "ae526001_4144_4783_becc5aaad0f6176d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("No 5 mL channels installed!!")); // }} "" // {{ 1285 1 0 "9469a7c2_83d7_40ec_a3ac7238beb24832" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1286 1 0 "43f5ddf4_b8f2_4de2_9b18eca1a0de0374" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 2) { // }} "" // {{{ 1287 1 0 "373744ab_fa89_48b3_9bacd63e0743485e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** There are no Lab Handler channels installed!"), Translate("")); // }} "" // {{{ 1288 1 0 "fab6c08e_71cc_468f_a5d29891585c02a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("No Lab Handler channels installed!!")); // }} "" // {{ 1289 1 0 "43f5ddf4_b8f2_4de2_9b18eca1a0de0374" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1290 1 0 "f0186af0_1b39_4767_b6c71b63804891e5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1291 1 0 "58726945_c8e4_4098_bf59f14e7207abe7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, io_Sequence_to_Sort); // }} "" // {{{ 1292 1 0 "bb1078e8_4135_4051_b9d84b939b04af10" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, io_Sequence_to_Sort2); // }} "" // {{{ 1293 1 0 "8b844b7f_13db_4d92_8b8981e64741eef3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, total_channels, 0); // }} "" // {{{ 1294 1 0 "8da5bb6c_4a7a_49d1_b2b8cb206ca2a4c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Max_Channel = StrConcat2(i_Max_Channel, Translate("")); // }} "" // {{{ 1295 1 0 "d1fbb1b9_0e01_4e8b_9c2ac0eaca7682b7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_Max_Channel = StrIVal(i_Max_Channel); // }} "" // {{ 1296 1 0 "8cfe9eac_5d67_4ea6_b5dbb6329092f2a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Max_Channel <= 0) { // }} "" // {{ 1297 1 0 "637be79f_4731_4c81_8f05d35dc6f5512e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" i_Max_Channel = total_channels; // }} "" // {{ 1298 1 0 "8cfe9eac_5d67_4ea6_b5dbb6329092f2a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1299 1 0 "a0c65768_240c_41ac_974b1161ee99dc8b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Max_Channel > total_channels) { // }} "" // {{ 1300 1 0 "11041a58_4788_4ca7_ac91e051c993ea46" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" i_Max_Channel = total_channels; // }} "" // {{ 1301 1 0 "a0c65768_240c_41ac_974b1161ee99dc8b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1302 1 0 "46255588_aa8e_4f84_ba54b3e60ad05fb6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_Number_Remaining = 0; // }} "" // {{{ 1303 1 0 "30ab6711_2419_4fdc_bfd6a75c0f2fed87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_Sorted_Sequence); // }} "" // {{{ 1304 1 0 "a14bdf8f_5893_41af_ab830ab35e34f807" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_Sorted_Sequence2); // }} "" // {{ 1305 1 0 "37634588_2215_4a47_811122e602da1b1c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_Sorted_Array.SetSize(i_Max_Channel); // }} "" // {{ 1306 1 0 "96954cb1_b7a1_41f8_8ed2ccfb63f0ba4b" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_Sorted_Array2.SetSize(i_Max_Channel); // }} "" // {{ 1307 1 0 "891bc6f2_44d1_4d27_a20265d956200988" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 0) { // }} "" // {{ 1308 1 0 "f134e264_5541_42ea_90685d2fdc053633" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Max=G_ARR_FW_PIP_COM_YMax; // }} "" // {{ 1309 1 0 "d6271242_21cb_4ee6_bbfe976791b6f305" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Min=G_ARR_FW_PIP_COM_YMin; // }} "" // {{ 1310 1 0 "9e2a014b_44ef_470a_96ed1cb7148d8f94" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" channel_raster = G_FW_PIP_COM_Raster; // }} "" // {{ 1311 1 0 "891bc6f2_44d1_4d27_a20265d956200988" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1312 1 0 "ea6e8b57_1de5_4be7_9ebc3e82d2eb0bed" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 1) { // }} "" // {{ 1313 1 0 "b4de3d7e_9b11_4776_b615db6759177ad4" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Max=G_ARR_FW_XL_COM_YMax; // }} "" // {{ 1314 1 0 "23661192_b49a_4939_980a305fb311e79e" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" arr_Y_Min=G_ARR_FW_XL_COM_YMin; // }} "" // {{ 1315 1 0 "a425a701_ad3c_4d30_8c2befe0270b44b0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" channel_raster = G_FW_XL_COM_Raster; // }} "" // {{ 1316 1 0 "ea6e8b57_1de5_4be7_9ebc3e82d2eb0bed" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1317 1 0 "119810d2_a079_448e_a3c26c99217b5f94" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Channel_Type == 2) { // }} "" // {{{ 1318 1 0 "6ee6bae3_f7ed_4283_a4cc4d7b68a57ef6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetChannelLimits(ML_STAR, i_Channel_Type, arr_Y_Max, arr_Y_Min, channel_raster); // }} "" // {{ 1319 1 0 "119810d2_a079_448e_a3c26c99217b5f94" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1320 1 0 "a16e3a3b_1fff_4ece_a734c2795859a1c4" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1321 1 0 "01466f15_045b_4012_ad60c7a7f9d1c16c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTempSortingFilePath(sort_file); // }} "" // {{{ 1322 1 0 "b666188b_02f7_460c_88f7c5f359175588" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(sort_file); // }} "" // {{ 1323 1 0 "3dd374c9_613c_4a88_93c1c2ee88a8f35b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 1) { // }} "" // {{{ 1324 1 0 "08109037_9256_4884_b06e3820d65a91b2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(sort_file); // }} "" // {{ 1325 1 0 "3dd374c9_613c_4a88_93c1c2ee88a8f35b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1326 1 0 "8876c9fb_6ac1_462b_95bc0e3ec2b1ddd4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_to_sort = SeqGetTotal(io_Sequence_to_Sort); // }} "" // {{{ 1327 1 0 "68bf6699_1f52_4291_9a55635b06f7260f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_to_sort2 = SeqGetTotal(io_Sequence_to_Sort2); // }} "" // {{{ 1328 1 0 "cbf06196_ad27_485f_a19e44e52957e9ba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" sequence_name = SeqGetName(io_Sequence_to_Sort); // }} "" // {{{ 1329 1 0 "dccd5ed1_48db_428f_8a0ddabd429872de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" sequence_name2 = SeqGetName(io_Sequence_to_Sort2); // }} "" // {{ 1330 1 0 "6c5ae403_6300_4e25_85349450110f8bdb" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" num_in_array=io_Array_of_Variables.GetSize(); // }} "" // {{ 1331 1 0 "d9566ca2_84d6_46d7_91a24162844be0c3" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" num_in_array2=io_Array_of_Variables2.GetSize(); // }} "" // {{ 1332 1 0 "cbc8a930_9018_4407_ae16624e048b8cf4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" value_equal = 0; // }} "" if(num_to_sort == num_in_array && num_to_sort == num_in_array2 && num_to_sort == num_to_sort2) value_equal = 1; // {{ 1334 1 0 "a0654358_c0e2_4c70_96f61ccb182cc402" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (num_to_sort == 0) { // }} "" // {{{ 1335 1 0 "3cc8a056_2083_4fbe_8e7e674c9f896b6c" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_Number_Remaining); // }} "" // {{ 1336 1 0 "a0654358_c0e2_4c70_96f61ccb182cc402" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1337 1 0 "9c24d28e_a308_4555_84b08d2c1a69aae7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (value_equal == 0) { // }} "" // {{{ 1338 1 0 "51ba0509_9932_415b_a4823acf319d4d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("############## SEQUENCES AND ARRAYS DO NOT HAVE THE SAME NUMBER OF POSITIONS."), Translate("")); // }} "" // {{{ 1339 1 0 "1f5fecb5_8b68_4878_9f3d9138796b5b90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Sequences and arrays do not have the same number of positions.")); // }} "" // {{ 1340 1 0 "9c24d28e_a308_4555_84b08d2c1a69aae7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1341 1 0 "9c1d5724_c4af_4da6_903d8163e0601aae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("________________________________________________________"), Translate("")); // }} "" // {{{ 1342 1 0 "e10a8375_e823_4596_97bbe897814cba0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(""), Translate("")); // }} "" // {{{ 1343 1 0 "60a93b23_e55e_4e16_b854c6265f8c78c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace4(Translate(" Sequence to Sort: "), sequence_name, Translate(" Second Sequence to Sort: "), sequence_name2); // }} "" // {{{ 1344 1 0 "329264d0_2a39_4f01_b7a7a1148ed094d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Number of Positions in Sequence: "), num_to_sort); // }} "" // {{{ 1345 1 0 "8ff20552_33cb_448b_860c63c527b9fbfe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Sort by Labware: "), i_Sort_by_Labware); // }} "" // {{{ 1346 1 0 "49d5d6db_b4f0_4849_bbf9ec3aac7116ca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Sort by XY: "), i_Sort_by_XY); // }} "" // {{{ 1347 1 0 "6cb6815f_5026_4d68_99fb775a41ce2f01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Sort for Channel Raster: "), i_Sort_for_Channel_Raster); // }} "" // {{{ 1348 1 0 "d5cfdbfd_7630_4835_9aaa606bda9b4bc1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Channel Raster: "), channel_raster); // }} "" // {{{ 1349 1 0 "0cb8931b_69c5_4935_a6e0df0ec2d5fff1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate(" Maximum Channel: "), i_Max_Channel); // }} "" if(i_Channel_Type == 0) Trace(" Channel Type: 1 mL"); else if(i_Channel_Type == 1) Trace(" Channel Type: 5 mL"); else if(i_Channel_Type == 2) Trace(" Channel Type: Labware Handler"); // {{{ 1351 1 0 "c84e4052_253d_411b_9c190cfe31a359c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("________________________________________________________"), Translate("")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1352 1 0 "e4b29af2_80f2_4519_8a4af06690e49c90" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1353 1 0 "28e600a5_726f_41a9_a0d1837f87b79e2f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" is_float = HSLExtensions::Array::IsFloatArray(io_Array_of_Variables); // }} "" // {{{ 1354 1 0 "9fe34c61_8962_47fd_bc17a159b5a1afd6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" is_integer = HSLExtensions::Array::IsIntegerArray(io_Array_of_Variables); // }} "" // {{{ 1355 1 0 "767d5aa9_ed7d_4678_91e41cd36572ddbe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" is_string = HSLExtensions::Array::IsStringArray(io_Array_of_Variables); // }} "" // {{{ 1356 1 0 "edc2e8f1_6bd8_42ac_9adb0cb84acd2613" "{C1F3C015-47B3-4514-9407-AC2E65043419}" is_float2 = HSLExtensions::Array::IsFloatArray(io_Array_of_Variables2); // }} "" // {{{ 1357 1 0 "3e2973e7_df8b_41d6_8a5200fc85404499" "{C1F3C015-47B3-4514-9407-AC2E65043419}" is_integer2 = HSLExtensions::Array::IsIntegerArray(io_Array_of_Variables2); // }} "" // {{{ 1358 1 0 "aeb68d89_9056_4163_9ca89f26a2c7b93b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" is_string2 = HSLExtensions::Array::IsStringArray(io_Array_of_Variables2); // }} "" // {{ 1359 1 0 "34f0a73f_c599_4695_af4b6a1f11753967" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" val_type1 = 0; // }} "" // {{ 1360 1 0 "54a64584_cb80_43ee_9719278a3c2bf1dc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" val_type2 = 0; // }} "" if(is_float == 1) val_type1 = 1; else if(is_integer == 1) val_type1 = 2; if(is_float2 == 1) val_type2 = 1; else if(is_integer2 == 1) val_type2 = 2; // {{ 1362 1 0 "869e598c_7182_4d58_b094b37d6672b252" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1363 1 0 "4ffa4a46_e7b3_4e4d_aac5bd257f91e04a" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Sort_File.AddField("LINE_NUMBER", line_number, hslInteger); Sort_File.AddField("LAB1", lab1, hslString, 255); Sort_File.AddField("POS1", pos1, hslString, 255); Sort_File.AddField("LAB2", lab2, hslString, 255); Sort_File.AddField("POS2", pos2, hslString, 255); Sort_File.AddField("VAL1", val1, hslString, 255); Sort_File.AddField("VAL2", val2, hslString, 255); Sort_File.AddField("X1", x1, hslFloat); Sort_File.AddField("Y1", y1, hslFloat); Sort_File.AddField("X2", x2, hslFloat); Sort_File.AddField("Y2", y2, hslFloat); Sort_File.AddField("STATUS", status, hslString, 255); if( 0 == Sort_File.Open(sort_file + " " + "SORT", hslWrite) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 1364 1 0 "4662172e_cd5f_4151_ab2b594c27ea1599" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" not_used = Translate("-----"); // }} "" // {{ 1365 1 0 "dd6293fb_7c03_4ed4_869e8ee77bccf5a2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" status = Translate("NOT_DONE"); // }} "" // {{ 1366 1 0 "a8bddbd5_b7a5_407e_8e7fbcc9e719aa86" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(line_number = 0; line_number < num_to_sort;) { line_number = line_number + 1; // }} "" // {{ 1367 1 0 "73f4ed07_9b87_4f6d_99ece4ce9a8d5b3a" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_Sequence_to_Sort.SetCurrentPosition(line_number); // }} "" // {{ 1368 1 0 "535a2841_b06e_4619_8f164815a6ca71ba" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_Sequence_to_Sort2.SetCurrentPosition(line_number); // }} "" // {{{ 1369 1 0 "272d1d0f_2ece_4110_bd399ced9aed037a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" lab1 = SeqGetLabwareId(io_Sequence_to_Sort); // }} "" // {{{ 1370 1 0 "f5fd6206_74b7_4d20_a41f4ed3e03f587a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pos1 = SeqGetPositionId(io_Sequence_to_Sort); // }} "" // {{{ 1371 1 0 "1a6f95e1_b9a2_4524_81d09fcc23b723e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" lab2 = SeqGetLabwareId(io_Sequence_to_Sort2); // }} "" // {{{ 1372 1 0 "40cb07d9_4029_46dc_8e21cf8f9a3ab5b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pos2 = SeqGetPositionId(io_Sequence_to_Sort2); // }} "" // {{{ 1373 1 0 "47ca805a_80cc_4942_b6417ec44d3ab2ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, lab1, pos1, x1, y1, null, null); // }} "" // {{{ 1374 1 0 "1ca82882_2785_4101_a3e3e378e2715720" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, lab2, pos2, x2, y2, null, null); // }} "" // {{ 1375 1 0 "4941ec47_24be_459a_a7dba58726bea274" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" val1=io_Array_of_Variables.GetAt(line_number-1); // }} "" // {{ 1376 1 0 "83c045de_11c2_41fe_896ea6ffe6c8930e" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" val2=io_Array_of_Variables2.GetAt(line_number-1); // }} "" // {{ 1377 1 0 "74789bb3_bdab_4101_8da9b78f833b08aa" "{B31F3537-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Sort_File.WriteRecord() ) { MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1378 1 0 "a8bddbd5_b7a5_407e_8e7fbcc9e719aa86" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1379 1 0 "e077479e_4cdd_4ae7_a3a6f26252bb1e18" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Sort_File.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Sort_File.RemoveFields(); // }} "" // {{ 1380 1 0 "59dcc6ff_3946_4f3f_a6ad52b95eda61a9" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_line_numbers.SetSize(0); // }} "" // {{ 1381 1 0 "9cd23aee_303e_44c4_8ce9ccd40eaf6de8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_x_coord = 0.0; // }} "" // {{ 1382 1 0 "72d63116_19ad_4ea2_a693a2854ae2d138" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_y_coord = 999.0; // }} "" // {{ 1383 1 0 "5547d174_8230_4b26_8118b8baab684e59" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(channel_number = 0; channel_number < i_Max_Channel;) { channel_number = channel_number + 1; // }} "" // {{ 1384 1 0 "541a6a9b_fe6d_4cbf_98fc43e88e4d8652" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" prev_y_coord = prev_y_coord - channel_raster; // }} "" // {{{ 1385 1 0 "c879ed7f_79e7_486d_95c229e6465d0414" "{C1F3C015-47B3-4514-9407-AC2E65043419}" restriction_raster = StrConcat8(Translate("AND (X1"), Translate(" = "), prev_x_coord, Translate(" AND "), Translate("Y1"), Translate(" <= "), prev_y_coord, Translate(")")); // }} "" // {{ 1386 1 0 "90b96ed0_dc7b_42cb_8c36e65781e1da5b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1387 1 0 "bce833bd_ca25_46c5_922978f6c0e3d575" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" y_max=arr_Y_Max.GetAt(channel_number-1); // }} "" // {{ 1388 1 0 "06226992_ad86_47ce_93b1e437f45d9e83" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" y_min=arr_Y_Min.GetAt(channel_number-1); // }} "" // {{{ 1389 1 0 "c8d7e09d_544b_431a_933a829a34caa5e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" restriction1 = StrConcat8(Translate("(Y1 "), Translate(">= "), y_min, Translate(" AND "), Translate("Y1 "), Translate("<= "), y_max, Translate(")")); // }} "" // {{{ 1390 1 0 "0920d297_7168_494d_8cbfa223f7cd9c6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" restriction2 = StrConcat8(Translate("(Y2 "), Translate(">= "), y_min, Translate(" AND "), Translate("Y2 "), Translate("<= "), y_max, Translate(")")); // }} "" // {{ 1391 1 0 "e207e1a7_c4a9_4e43_b6cccc35601bafeb" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1392 1 0 "afa30a28_3e2f_4085_bbddf49dae406386" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" num_used=arr_line_numbers.GetSize(); // }} "" // {{ 1393 1 0 "b2b9d489_13ca_40c3_9d038a8942f710c1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (num_used == 0) { // }} "" // {{ 1394 1 0 "2beb1f38_2264_4a3f_89ccaf77d4441d65" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" used_exclusion = Translate(""); // }} "" // {{ 1395 1 0 "b2b9d489_13ca_40c3_9d038a8942f710c1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1396 1 0 "76601d6f_6041_44b3_a8131cc72f99ddf7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(Translate("AND LINE_NUMBER NOT IN("), Translate("")); // }} "" // {{ 1397 1 0 "ec0ed496_e9e4_41a7_b32c7480433ab956" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(in_index = 0; in_index < num_used;) { in_index = in_index + 1; // }} "" // {{ 1398 1 0 "488a43e3_9dc5_4b50_ac5d9a4527f2da21" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" line_number=arr_line_numbers.GetAt(in_index-1); // }} "" // {{ 1399 1 0 "c480ec6f_df15_4e14_a4822a54ebb6fdc0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (in_index != 1) { // }} "" // {{{ 1400 1 0 "b07d7bf5_fc6b_4a2f_927bd1670034d218" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(used_exclusion, Translate(", ")); // }} "" // {{ 1401 1 0 "c480ec6f_df15_4e14_a4822a54ebb6fdc0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1402 1 0 "b8f001e0_83fb_479f_a494e23371ab153e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(used_exclusion, line_number); // }} "" // {{ 1403 1 0 "ec0ed496_e9e4_41a7_b32c7480433ab956" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1404 1 0 "31ae1aa1_795d_45b0_bab295122b90caa0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" used_exclusion = StrConcat2(used_exclusion, Translate(")")); // }} "" // {{ 1405 1 0 "b2b9d489_13ca_40c3_9d038a8942f710c1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1406 1 0 "119a9c72_4f32_406b_b2149e020f7637bb" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1407 1 0 "501e5f7a_c22b_4495_99da22ff2c4e3983" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" order_by = Translate(""); // }} "" if(i_Sort_by_Labware == 1 && i_Sort_by_XY == 1) { order_by = "ORDER BY LAB1 ASC, X1 ASC, Y1 DESC"; } else if(i_Sort_by_Labware == 1 && i_Sort_by_XY == 0) { order_by = "ORDER BY LAB1 ASC, LINE_NUMBER ASC"; } else if(i_Sort_by_Labware == 0 && i_Sort_by_XY == 1) { order_by = "ORDER BY X1 ASC, Y1 DESC"; } else { order_by = "ORDER BY LINE_NUMBER ASC"; } // {{ 1409 1 0 "5eff79c5_2f18_4fa9_8d96b78be2c76536" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1410 1 0 "82055f9e_077b_470a_a13f43d7260215c7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" count_sql = StrConcat12(Translate("SELECT COUNT(*) AS N FROM SORT WHERE "), restriction1, Translate(" AND "), restriction2, Translate(" "), used_exclusion, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), restriction_raster); // }} "" // {{ 1411 1 0 "b29bb188_e89a_4538_9a8f0c132566de07" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Count_Available.AddField("N", count_value, hslInteger); if( 0 == Count_Available.Open(sort_file + " " + "SORT", hslRead, count_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 1412 1 0 "494a689b_edc6_4d45_93d65c467694ecc3" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Count_Available.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1413 1 0 "a0c742c2_61cf_4cf2_a0a6030ef7f7cf2d" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Count_Available.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Count_Available.RemoveFields(); // }} "" // {{ 1414 1 0 "522db406_6e3e_40a8_b2c4a70d4022a1d9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (count_value == 0) { // }} "" // {{ 1415 1 0 "7e1b1508_36bd_479f_a247c8cb6fe9e7fd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_x_coord = 0.0; // }} "" // {{ 1416 1 0 "522db406_6e3e_40a8_b2c4a70d4022a1d9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1417 1 0 "5c9b8bc7_5410_4190_adec5c528278f7ce" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1418 1 0 "ebf4819f_5ddf_4bba_bc4dd71405d26e25" "{C1F3C015-47B3-4514-9407-AC2E65043419}" count_sql = StrConcat12(Translate("SELECT COUNT(*) AS N FROM SORT WHERE "), restriction1, Translate(" AND "), restriction2, Translate(" "), used_exclusion, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{ 1419 1 0 "6439096f_6011_4d7c_b209362292c546d7" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Count_Available.AddField("N", count_value, hslInteger); if( 0 == Count_Available.Open(sort_file + " " + "SORT", hslRead, count_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 1420 1 0 "26b24db6_03fc_4046_bb0d0dd5f1cb0120" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Count_Available.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1421 1 0 "a70b3f06_c363_4f6b_90c011df8e39f102" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Count_Available.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Count_Available.RemoveFields(); // }} "" // {{ 1422 1 0 "33910428_3def_47ee_8aa7c37d7a569cbb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (count_value > 0) { // }} "" // {{ 1423 1 0 "1bd6eec8_3061_4f09_b48172b7e97e33e9" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1424 1 0 "005ba677_1bd0_4abb_8b4605796453c802" "{C1F3C015-47B3-4514-9407-AC2E65043419}" filter_sql = StrConcat12(Translate("SELECT * FROM SORT WHERE "), restriction1, Translate(" AND "), restriction2, Translate(""), Translate(""), Translate(""), Translate(""), Translate(" "), used_exclusion, Translate(" "), order_by); // }} "" // {{ 1425 1 0 "21a473ba_6e8a_411f_bfb3a76a3620d990" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Sort_File.AddField("LINE_NUMBER", line_number, hslInteger); Sort_File.AddField("LAB1", lab1, hslString, 255); Sort_File.AddField("POS1", pos1, hslString, 255); Sort_File.AddField("LAB2", lab2, hslString, 255); Sort_File.AddField("POS2", pos2, hslString, 255); Sort_File.AddField("VAL1", val1, hslString, 255); Sort_File.AddField("VAL2", val2, hslString, 255); Sort_File.AddField("X1", x1, hslFloat); Sort_File.AddField("Y1", y1, hslFloat); Sort_File.AddField("X2", x2, hslFloat); Sort_File.AddField("Y2", y2, hslFloat); Sort_File.AddField("STATUS", status, hslString, 255); if( 0 == Sort_File.Open(sort_file + " " + "SORT", hslRead, filter_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 1426 1 0 "b9247005_4c63_41ad_bc30f8d7eec195ba" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { file_index = 0; while ( (Sort_File.Eof() == 0) ) { file_index = file_index + 1; // }} "" // {{ 1427 1 0 "c9caa5bf_af96_4f7d_b7a3e4e78cd74e9c" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Sort_File.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1428 1 0 "be3d3cf0_09cb_48b6_a07b59cd47afa3dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_Sort_for_Channel_Raster == 0) { // }} "" // {{ 1429 1 0 "2a5367a4_edfe_4a4e_aaffc404d0ae02fb" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1430 1 0 "be3d3cf0_09cb_48b6_a07b59cd47afa3dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1431 1 0 "3e50c5a9_531a_4ba8_85961556439e6989" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (x1 != prev_x_coord) { // }} "" // {{ 1432 1 0 "5178f29a_a887_4d3e_88a24ec1dd70deff" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1433 1 0 "3e50c5a9_531a_4ba8_85961556439e6989" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1434 1 0 "351c04ac_5d59_4a66_b6a48c47e74bd045" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (y1 <= prev_y_coord) { // }} "" // {{ 1435 1 0 "3ddc35ff_67cd_4e0f_ae24b890ae5a8095" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1436 1 0 "351c04ac_5d59_4a66_b6a48c47e74bd045" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1437 1 0 "b9247005_4c63_41ad_bc30f8d7eec195ba" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1438 1 0 "98319eb3_e2c4_4925_96ba278376148a70" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Sort_File.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Sort_File.RemoveFields(); // }} "" // This converts the array values back to their original state if(val_type1 == 1) val1 = FVal(val1); else if(val_type1 == 2) val1 = IVal(val1); if(val_type2 == 1) val2 = FVal(val2); else if(val_type2 == 2) val2 = IVal(val2); // {{{ 1440 1 0 "b071f251_d9e7_4caa_9b9c9118edbc914c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_Sorted_Sequence, lab1, pos1); // }} "" // {{{ 1441 1 0 "56abc579_d539_49a0_9ee092c4d0db9722" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_Sorted_Sequence2, lab2, pos2); // }} "" // {{{ 1442 1 0 "5135156b_aa5c_4419_9529102c07a7e6fc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::Set_Channel_Pattern(o_Channel_Pattern, channel_number, 1); // }} "" // {{ 1443 1 0 "3d8bc82a_710e_4f07_969bc22c714a59e2" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_Sorted_Array.SetAt(channel_number-1, val1); // }} "" // {{ 1444 1 0 "c0785354_9cdb_4a92_82b0692c4de82cc4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_Sorted_Array2.SetAt(channel_number-1, val2); // }} "" // {{ 1445 1 0 "15b296fd_6940_4c2e_81d303e614f4526f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_line_numbers.AddAsLast(line_number); // }} "" // {{ 1446 1 0 "44a776ab_c062_43ec_a9efe6c828e83d35" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_x_coord = x1; // }} "" // {{ 1447 1 0 "3d9550b8_99a4_42db_b2ca49fea1377ebe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" prev_y_coord = y1; // }} "" // {{ 1448 1 0 "33910428_3def_47ee_8aa7c37d7a569cbb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1449 1 0 "f6224fd5_a1d3_495e_a292089dee1cfbc5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" val1 = Translate("0"); // }} "" // {{ 1450 1 0 "9a36909b_d308_4b93_9ecc56d18556ee0c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" val2 = Translate("0"); // }} "" // This converts the array values back to their original state if(val_type1 == 1) val1 = FVal(val1); else if(val_type1 == 2) val1 = IVal(val1); if(val_type2 == 1) val2 = FVal(val2); else if(val_type2 == 2) val2 = IVal(val2); // {{ 1452 1 0 "1326456a_c6d6_4767_999a7c960f5510da" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_Sorted_Array.SetAt(channel_number-1, val1); // }} "" // {{ 1453 1 0 "c550ec3a_94f7_4752_bae87a253339ec42" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_Sorted_Array2.SetAt(channel_number-1, val2); // }} "" // {{ 1454 1 0 "33910428_3def_47ee_8aa7c37d7a569cbb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1455 1 0 "5547d174_8230_4b26_8118b8baab684e59" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1456 1 0 "c08df4a1_d0eb_46db_8e9f4da0ab635376" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_Sorted_Sequence.SetCurrentPosition(1); // }} "" // {{ 1457 1 0 "cbdabc11_57e0_4105_a4d302d1d94eb8dc" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_Sorted_Sequence2.SetCurrentPosition(1); // }} "" // {{ 1458 1 0 "4f882251_53f5_4f39_893b69abccf851d5" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1459 1 0 "ca2ecbfe_233f_462d_894aa33141d7140f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" num_used=arr_line_numbers.GetSize(); // }} "" // {{ 1460 1 0 "133afc40_89c3_493c_a97614f0b68b360c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" ret_Number_Remaining = num_to_sort - num_used; // }} "" // {{ 1461 1 0 "05713312_e98b_4da9_b0e3c4508d7c2133" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (num_used == 0) { // }} "" // {{{ 1462 1 0 "925c2c0a_7f66_452d_8234689ce4338ec3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("********************************** The remaining positions are out of reach for the selected channels!!!!"), Translate("")); // }} "" // {{{ 1463 1 0 "faf017e8_c733_4b23_b705350390dfdd72" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("The remaining positions are out of reach for all the selected channels!!!!")); // }} "" // {{ 1464 1 0 "05713312_e98b_4da9_b0e3c4508d7c2133" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1465 1 0 "3e407516_d1aa_40ae_b318b95f2c7bba18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(Translate("LINE_NUMBER IN("), Translate("")); // }} "" // {{ 1466 1 0 "bb88fc1f_057a_463e_9606b431f2af9ec1" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(in_index = 0; in_index < num_used;) { in_index = in_index + 1; // }} "" // {{ 1467 1 0 "dc6f3266_9f3c_48c8_9b90239e7f2672a8" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" line_number=arr_line_numbers.GetAt(in_index-1); // }} "" // {{ 1468 1 0 "f99c2a83_aa50_4af0_b1dc4071417c1817" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (in_index != 1) { // }} "" // {{{ 1469 1 0 "3ae4aeea_c3bf_4237_a6d35d601f74e0f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(in_group, Translate(", ")); // }} "" // {{ 1470 1 0 "f99c2a83_aa50_4af0_b1dc4071417c1817" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1471 1 0 "44bc1347_122c_4cb7_b4b6aaad212a91f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(in_group, line_number); // }} "" // {{ 1472 1 0 "bb88fc1f_057a_463e_9606b431f2af9ec1" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1473 1 0 "77b415e5_e3b6_42a4_aa21cad6a8c2fb4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" in_group = StrConcat2(in_group, Translate(")")); // }} "" // {{{ 1474 1 0 "653481af_9996_498f_8bf9a57aea1d4f16" "{C1F3C015-47B3-4514-9407-AC2E65043419}" update_sql = StrConcat4(Translate("UPDATE SORT SET STATUS = 'DONE' WHERE "), in_group, Translate(""), Translate("")); // }} "" // {{ 1475 1 0 "29a61488_1d93_422d_a7d2d22a73c0bf25" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Update_FIle.Open(sort_file + " " + "SORT", hslRead, update_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 1476 1 0 "9245d259_a4e9_4b50_87223c2330ad146f" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Update_FIle.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Update_FIle.RemoveFields(); // }} "" // {{ 1477 1 0 "f4ea0571_0c41_4200_a82ab8ae420182e2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1478 1 0 "68125a50_991e_4e43_89015f148f480b2f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" count_sql = StrConcat2(Translate("SELECT COUNT(*) AS N FROM SORT WHERE STATUS = 'NOT_DONE'"), Translate("")); // }} "" // {{ 1479 1 0 "607a45aa_dc01_402f_b1594db59d0e214f" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Count_Available.AddField("N", count_value, hslInteger); if( 0 == Count_Available.Open(sort_file + " " + "SORT", hslRead, count_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 1480 1 0 "534b07c1_c77e_4179_bff9e6ed62270be8" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Count_Available.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1481 1 0 "b3fc62f3_acd0_4c5e_a0571fcc58346d89" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Count_Available.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Count_Available.RemoveFields(); // }} "" // {{ 1482 1 0 "7e26b349_d014_42a5_a485929344bb1ce7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_Number_Remaining = count_value; // }} "" // {{ 1483 1 0 "cd023051_7937_4914_9513249618124e15" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (count_value == 0) { // }} "" // {{{ 1484 1 0 "d2a9e660_4bf5_40d0_b6e3da7ac4faec96" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(io_Sequence_to_Sort); // }} "" // {{{ 1485 1 0 "c4a22bcc_e66c_4124_80c8e278e4b5e7d8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(io_Sequence_to_Sort2); // }} "" // {{ 1486 1 0 "29d5955c_ab63_4d8d_9facd0b6862b6a91" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" io_Array_of_Variables.SetSize(0); // }} "" // {{ 1487 1 0 "e50ed0a7_4ab1_48cb_bf042be5885705ee" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" io_Array_of_Variables2.SetSize(0); // }} "" // {{ 1488 1 0 "cd023051_7937_4914_9513249618124e15" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1489 1 0 "45a701cb_c9b3_4a23_b426f510994400c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" filter_sql = StrConcat2(Translate("SELECT * FROM SORT WHERE STATUS = 'NOT_DONE' ORDER BY LINE_NUMBER ASC"), Translate("")); // }} "" // {{{ 1490 1 0 "76d48976_d57d_4f07_9b199dfe6ee8218d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(temp_seq1); // }} "" // {{{ 1491 1 0 "bed6f154_6eef_43e3_9ac635b059885242" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(temp_seq2); // }} "" // {{ 1492 1 0 "73026b2f_f42b_4f0d_b7daec049e2f0c7a" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_temp_array1.SetSize(0); // }} "" // {{ 1493 1 0 "b0bf7652_a388_4d44_9c2f696ee9befdf1" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_temp_array2.SetSize(0); // }} "" // {{ 1494 1 0 "c3273d5b_73e1_4eab_92b304fd1d677327" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" Sort_File.AddField("LINE_NUMBER", line_number, hslInteger); Sort_File.AddField("LAB1", lab1, hslString, 255); Sort_File.AddField("POS1", pos1, hslString, 255); Sort_File.AddField("LAB2", lab2, hslString, 255); Sort_File.AddField("POS2", pos2, hslString, 255); Sort_File.AddField("VAL1", val1, hslString, 255); Sort_File.AddField("VAL2", val2, hslString, 255); Sort_File.AddField("X1", x1, hslFloat); Sort_File.AddField("Y1", y1, hslFloat); Sort_File.AddField("X2", x2, hslFloat); Sort_File.AddField("Y2", y2, hslFloat); Sort_File.AddField("STATUS", status, hslString, 255); if( 0 == Sort_File.Open(sort_file + " " + "SORT", hslRead, filter_sql) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, sort_file, "HxMetEdCompCmd"); } // }} "" // {{ 1495 1 0 "1509e5e3_3654_4066_a66e644d4d9b4402" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while ( (Sort_File.Eof() == 0) ) { // }} "" // {{ 1496 1 0 "85b4b232_d86c_4bf7_99c3d971101d1e60" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == Sort_File.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // This converts the array values back to their original state if(val_type1 == 1) val1 = FVal(val1); else if(val_type1 == 2) val1 = IVal(val1); if(val_type2 == 1) val2 = FVal(val2); else if(val_type2 == 2) val2 = IVal(val2); // {{ 1498 1 0 "02218d0a_a63b_4fde_846f197afa3eca14" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_temp_array1.AddAsLast(val1); // }} "" // {{ 1499 1 0 "9f5b9ad5_fe60_4066_a7580511049f0d7c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_temp_array2.AddAsLast(val2); // }} "" // {{{ 1500 1 0 "e9682f55_0196_4479_b74ca04282cfbca4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(temp_seq1, lab1, pos1); // }} "" // {{{ 1501 1 0 "c5f153f7_5c2a_4519_a7b25d82cd991832" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(temp_seq2, lab2, pos2); // }} "" // {{ 1502 1 0 "1509e5e3_3654_4066_a66e644d4d9b4402" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1503 1 0 "fbb8df3b_f29d_4bc1_8353ba7c35774934" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != Sort_File.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } Sort_File.RemoveFields(); // }} "" // {{ 1504 1 0 "160eb761_a6f4_4dd9_a0c3dfe04214c2f8" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" temp_seq1.SetCurrentPosition(1); // }} "" // {{ 1505 1 0 "b1a2a763_cc81_46ac_b254de4c7c9a4c97" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" temp_seq2.SetCurrentPosition(1); // }} "" // {{{ 1506 1 0 "f729cbeb_0fd8_4163_bf71da891ae913d8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(io_Sequence_to_Sort, temp_seq1); // }} "" // {{{ 1507 1 0 "1a5f47b4_fe9b_422b_9f4d3751ef00299f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(io_Sequence_to_Sort2, temp_seq2); // }} "" // {{ 1508 1 0 "1282fe00_14d1_4ccc_b7e3ec87dbf4153a" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" io_Array_of_Variables=arr_temp_array1; // }} "" // {{ 1509 1 0 "76ad685f_5795_407b_92557593042945ec" "{DB5A2B39-67F2-4a78-A78F-DAF3FB056366}" io_Array_of_Variables2=arr_temp_array2; // }} "" // {{ 1510 1 0 "cd023051_7937_4914_9513249618124e15" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1511 1 0 "be296dcc_7640_4015_bdc3a549488186c3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 1513 1 0 "be296dcc_7640_4015_bdc3a549488186c3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1514 1 0 "5c6666bb_f508_42a8_a7ca3857c253fe6b" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_Number_Remaining); // }} "" // {{{ 5 "CHAN_ACCESS_Sort2Sequences2Arrays" "End" } // }} "" // {{{ 5 "TRAVEL_LANES_MoveChannelsWithTravelLanes" "Begin" function TRAVEL_LANES_MoveChannelsWithTravelLanes( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable str_LabID; private variable bool_SequenceValid; private variable str_PosID; private variable flt_X_Origin; private variable flt_NotUsed; private variable flt_StartLocation; // {{ 5 "TRAVEL_LANES_MoveChannelsWithTravelLanes" "InitLocals" // }} "" // {{ 2404 1 0 "bf4ddb1c_a293_42e0_95cb90c8ac169433" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2405 1 0 "8b3fdca2_48dd_4f8d_b3fcc426305a3adf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 2407 1 0 "cb6c3374_d1e9_43b5_ab3186ca0a13739a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 2408 1 0 "135389ad_e810_4148_a38ce5a5ca2e83c2" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 2409 1 0 "534e71ac_abe8_4cda_8d3902f667e84e25" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 2410 1 0 "7f2d5c0e_9626_4b23_882e36bcee38d551" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 2411 1 0 "72d489fc_e0b4_401b_b4543e4447d3ca9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 2413 1 0 "bf4ddb1c_a293_42e0_95cb90c8ac169433" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2414 1 0 "244b25ab_abad_47da_996e66c237b1e4ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 2415 1 0 "ce476cc4_c4fd_47b5_bd2a0ce616ead4f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2416 1 0 "e563f5ea_8350_48f5_ae3cb5aab6d56d1e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 2418 1 0 "846cb307_b45a_48a4_94bd8810d0c38cb8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(ML_STAR, i_seq_TargetSequence, str_LabID, str_PosID); // }} "" // {{ 2419 1 0 "522f5b02_0ee4_459d_b6abf77178cff1b3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 2420 1 0 "7111678b_e5c1_4221_86a413021a8f1cce" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 2421 1 0 "522f5b02_0ee4_459d_b6abf77178cff1b3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2422 1 0 "ce476cc4_c4fd_47b5_bd2a0ce616ead4f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2423 1 0 "5eda256a_fe0b_4c9a_a86410c4f04ef44a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2424 1 0 "4dcee46f_a67b_4079_b61a3c78b9cd2b4e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TRAVEL_LANES::MoveChannelsToTravelLanes(ML_STAR); // }} "" // {{ 2425 1 0 "4d993f30_bac7_4c58_972ff3b143ad2798" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2426 1 0 "7fe0857b_60e3_4b68_84c444a5ee8eee09" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetLabwareOrigin(ML_STAR, str_LabID, flt_X_Origin, flt_NotUsed, flt_NotUsed); // }} "" // {{ 2427 1 0 "460c6ecc_6329_49ea_86f3ba493489b927" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_StartLocation = flt_X_Origin + i_flt_XOffsetFromOrigin; // }} "" // {{ 2428 1 0 "b45e1913_9e87_421a_be30448ebec5c7af" "ML_STAR:{81DA4252-3BA9-11d4-AE21-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._81DA4252_3BA9_11d4_AE21_0004ACB1DCB2("b45e1913_9e87_421a_be30448ebec5c7af"); // MoveToPosition } // }} "" // {{ 2429 1 0 "695c426f_0f33_4815_9d39270592f5495f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2430 1 0 "efde072d_df7c_4c3b_a284df36d20057d8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TRAVEL_LANES::MoveChannelsToSequencePosition(ML_STAR, i_seq_TargetSequence); // }} "" // {{ 2431 1 0 "d0057c50_76b8_4593_8b601f1a3eecabce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 2433 1 0 "d0057c50_76b8_4593_8b601f1a3eecabce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TRAVEL_LANES_MoveChannelsWithTravelLanes" "End" } // }} "" // {{{ 5 "_FunctionError" "Begin" private function _FunctionError( variable i_str_FunctionName, variable i_str_ErrorDescription ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable str_ErrorDescription; private variable strFunctionName; private variable int_Count; // {{ 5 "_FunctionError" "InitLocals" // }} "" // {{{ 2498 1 0 "4f1f4204_fa0f_4836_852c13ab74fd4ac3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(i_str_FunctionName, Translate(":")); // }} "" // {{ 2499 1 0 "ddcaeb51_ff64_4582_9ad14fc284d8b9ab" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 2500 1 0 "fec2f6d1_c945_4b45_b892b44989105008" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(i_str_FunctionName); // }} "" // {{ 2501 1 0 "dc668a2e_0ee3_46fe_bd3a121e591187b0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 2502 1 0 "5d098416_aa31_4411_95a586acfa8fbe76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName = StrMid(i_str_FunctionName, int_Count, int_CutNum); // }} "" // {{{ 2503 1 0 "55e7b209_1529_4065_b2c49b584d33a85b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorDescription = StrConcat8(strFunctionName, Translate("\n\n"), i_str_ErrorDescription, Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{{ 2504 1 0 "e94b7eb2_e816_409a_a59584104b658f96" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, str_ErrorDescription); // }} "" // {{{ 5 "_FunctionError" "End" } // }} "" // {{{ 5 "_GetSequencePosition" "Begin" private function _GetSequencePosition( device & Instrument, sequence i_seq_LabwareSequence, variable & o_str_LabID, variable & o_str_PosID ) variable { // }} "" private variable bool_SequenceValid; // {{ 5 "_GetSequencePosition" "InitLocals" o_str_LabID = 0; o_str_PosID = 0; // }} "" // {{ 2506 1 0 "c09074ad_c581_4c0c_8a7417467584b19d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_SequenceValid = 1; // }} "" // {{ 2507 1 0 "df0ca6e0_acf2_4736_9dd18e05e4fb2a9a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LabID = Translate(""); // }} "" // {{ 2508 1 0 "84858757_be4b_480e_84e134f939fbe72f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_PosID = Translate(""); // }} "" // {{ 2509 1 0 "3864929d_a041_4ba5_bbc35adda5dc5f4c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8D69442271644f4385C6843541353BFB ; err.Clear(); // }} "" // {{{ 2510 1 0 "ae3ca308_a91e_4be0_9e564f41095d9f36" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_LabID = SeqGetLabwareId(i_seq_LabwareSequence); // }} "" // {{{ 2511 1 0 "afa15363_acb6_4c59_a0e2ed6f1c8a0601" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_PosID = SeqGetPositionId(i_seq_LabwareSequence); // }} "" // {{ 2512 1 0 "a7ed179b_13c8_45d4_95ed96b0908b2578" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (o_str_LabID == "") { // }} "" // {{ 2513 1 0 "3df2ed9f_4e16_4ce3_ad1f6062e09f4a74" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_SequenceValid = 0; // }} "" // {{ 2514 1 0 "a7ed179b_13c8_45d4_95ed96b0908b2578" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2515 1 0 "3864929d_a041_4ba5_bbc35adda5dc5f4c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8D69442271644f4385C6843541353BFB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2516 1 0 "945969a2_4636_47a4_b9125299d6e4abc9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_SequenceValid = 0; // }} "" // {{ 2517 1 0 "3864929d_a041_4ba5_bbc35adda5dc5f4c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2518 1 0 "36ed66b9_0ea5_4647_b95f80410a552359" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (bool_SequenceValid); // }} "" // {{{ 5 "_GetSequencePosition" "End" } // }} "" // {{{ 5 "TRAVEL_LANES_MoveChannelsToTravelLanes" "Begin" function TRAVEL_LANES_MoveChannelsToTravelLanes( device & ML_STAR ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; // {{ 5 "TRAVEL_LANES_MoveChannelsToTravelLanes" "InitLocals" // }} "" // {{ 2312 1 0 "e0db3e76_d835_4bb2_ad0889ffdc25b57b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2313 1 0 "6ad1e181_c756_4697_a33ca88706afc479" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 2315 1 0 "90911ddc_85fd_4e02_91a457567d25f25a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 2316 1 0 "4fdf90bb_3070_4ae1_95d4d699344147ec" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 2317 1 0 "65c33834_8481_4e44_9875bf56bfa0d371" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 2318 1 0 "4515826d_f24e_4d5d_bb01f8974ad8cf0d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 2319 1 0 "86723a23_a7bb_42cb_b08bc8481468a6d6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 2321 1 0 "e0db3e76_d835_4bb2_ad0889ffdc25b57b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2322 1 0 "fa57a0d5_c2a5_43ae_9c80b575198fb356" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 2323 1 0 "c2124bf2_ebf8_47c3_bb8fbe16305cbe80" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2324 1 0 "37002039_ba32_435c_874f2d9bf6a6a485" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TRAVEL_LANES::MoveChannelsToTravelLanes(ML_STAR); // }} "" // {{ 2325 1 0 "f1e8f90f_e461_4c3b_a708bf7718d1afad" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 2327 1 0 "f1e8f90f_e461_4c3b_a708bf7718d1afad" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TRAVEL_LANES_MoveChannelsToTravelLanes" "End" } // }} "" // {{{ 5 "TRAVEL_LANES_SingleSource_ChannelDisplacement" "Begin" function TRAVEL_LANES_SingleSource_ChannelDisplacement( device & ML_STAR, variable i_strStepReturn ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; // {{ 5 "TRAVEL_LANES_SingleSource_ChannelDisplacement" "InitLocals" // }} "" // {{ 2466 1 0 "476875ee_fa36_450e_bb4cb2a730d0cf9c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2467 1 0 "f9fc1ef3_e820_4e49_8fd1db6249210d16" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 2469 1 0 "1da74f45_397a_40fc_8c95e1a969720e17" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 2470 1 0 "7d1b0598_5932_4d68_ae490495d24e8087" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 2471 1 0 "fdfd19ee_68f6_4512_a3c127016f6ba8c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 2472 1 0 "53d41a14_1764_4b03_aa895200da844956" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 2473 1 0 "c044d1df_8788_41f5_951c2cd4f700db8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 2475 1 0 "476875ee_fa36_450e_bb4cb2a730d0cf9c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2476 1 0 "9bb212d3_a1a4_4dff_904f57a21e2d0bea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{{ 2477 1 0 "015ece5e_cc9f_42d9_b226bdcb72b6362c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TRAVEL_LANES::MoveUsedChannel(ML_STAR, i_strStepReturn); // }} "" // {{ 2478 1 0 "8f12ad1b_a0a6_41bd_a93edfa7b6f59d04" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 2480 1 0 "8f12ad1b_a0a6_41bd_a93edfa7b6f59d04" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TRAVEL_LANES_SingleSource_ChannelDisplacement" "End" } // }} "" // {{{ 5 "LIQUID_LEVEL_ReturnVolumesFromLiquidLevel" "Begin" function LIQUID_LEVEL_ReturnVolumesFromLiquidLevel( device & ML_STAR, variable i_str_PipettingReturn, variable i_str_LiquidLevelReturn, variable i_bool_ConvertTouL, variable & o_arr_VolumesMeasured[] ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable int_Total1mLChannels; private variable int_Channel; private variable str_LabID; private variable flt_LiquidHeight; private variable flt_Volume; private variable str_PosID; private variable stringPos; private sequence seq_Temp; // {{ 5 "LIQUID_LEVEL_ReturnVolumesFromLiquidLevel" "InitLocals" o_arr_VolumesMeasured.SetSize( 0); // }} "" // {{ 1568 1 0 "5d8c49e2_629a_4c59_b88d2a749c32d7a8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1569 1 0 "cbc44d4f_8b36_43ca_a4f0b3adf1447e87" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1571 1 0 "75f68a0a_c74c_4a36_a3bfa8bbfcef67f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 1572 1 0 "5b84d377_8b6a_497e_a229aa03630c31ba" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1573 1 0 "ab00b6c1_4fff_4fa5_a25a7f083768d8fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 1574 1 0 "9314a499_1174_4843_bca848c123586603" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1575 1 0 "a572640a_36db_42bc_bc9a05dbeb4d55bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 1577 1 0 "5d8c49e2_629a_4c59_b88d2a749c32d7a8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1578 1 0 "52da0230_79b5_4df6_b99326e9b3602b5a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 1579 1 0 "12a11a3f_fd76_44b0_9d921440d2b607a8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1580 1 0 "1a44948e_4f44_485c_8d7df456a77e3671" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1581 1 0 "54365205_3052_4237_bbd700dcb6468e6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Total1mLChannels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" Trace(" ","Total Channels: ",int_Total1mLChannels); // {{ 1583 1 0 "1f759726_990d_4640_a2b30be6fabde8d1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Total1mLChannels == 0) { // }} "" // {{ 1584 1 0 "dacae122_4729_4dea_91efe5147dd3b319" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=========================================\n\nNO 1mL CHANNELS ARE LOADED ON THE SYSTEM!\n\n=========================================")); // }} "" // {{ 1585 1 0 "6cc4ec6c_5e1a_46fc_b7168036c1fb3dc7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 1587 1 0 "6cc4ec6c_5e1a_46fc_b7168036c1fb3dc7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1588 1 0 "fa31f0f3_a1cd_4f47_9085200eaa4560ac" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 1589 1 0 "1f759726_990d_4640_a2b30be6fabde8d1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1590 1 0 "12a11a3f_fd76_44b0_9d921440d2b607a8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1591 1 0 "680166e5_7283_4969_8c5f3f950f811c2a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1592 1 0 "81b5c21d_9c55_4643_b54a7e7762471436" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_VolumesMeasured.SetSize(0); // }} "" // {{ 1593 1 0 "0f0a9fec_2e32_493d_a66cd159dfce3ff1" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_Channel = 0; int_Channel < int_Total1mLChannels;) { int_Channel = int_Channel + 1; // }} "" // {{ 1594 1 0 "daaf08ce_d656_452b_9624b3368cc8947a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_VolumesMeasured.AddAsLast(0.0); // }} "" // {{ 1595 1 0 "0f0a9fec_2e32_493d_a66cd159dfce3ff1" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1596 1 0 "b09bca09_6e86_4012_bbcddb8d9f32c557" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_Channel = 0; int_Channel < int_Total1mLChannels;) { int_Channel = int_Channel + 1; // }} "" // {{{ 1597 1 0 "6e8bb6a1_7b51_4acf_84b66aa2eed16a33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" stringPos = StepReturn::GetPositionFromNum(int_Channel, i_str_PipettingReturn); // }} "" // {{{ 1598 1 0 "939d1013_4451_46e0_a7ff6c0d7790ffee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = StepReturn::GetLabwareId(stringPos, i_str_PipettingReturn); // }} "" // {{{ 1599 1 0 "216f5377_b1aa_4d9a_acee856aea25997c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = StepReturn::GetPositionId(stringPos, i_str_PipettingReturn); // }} "" // {{{ 1600 1 0 "2e21edef_ae0f_4f27_96ca6114482c47ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(str_LabID); // }} "" // {{ 1601 1 0 "98f03a7b_50df_4ebc_abf24b16fd7e24f6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Length > 0) { // }} "" // {{{ 1602 1 0 "1e216a92_f4bf_49c4_8afd0988f3ee3d80" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_Temp); // }} "" // {{{ 1603 1 0 "bf849a0d_a41c_4282_85e73f7d228c56a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(seq_Temp, str_LabID, str_PosID); // }} "" // {{ 1604 1 0 "abe74597_41a7_49cc_b143085a9a520ddb" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Temp.SetCurrentPosition(1); // }} "" // {{{ 1605 1 0 "7ae82dcc_c57a_4317_a487e3c66604493d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LIQUID_LEVEL_CHECK::FindLiquidHeight(ML_STAR, i_str_LiquidLevelReturn, seq_Temp, int_Channel, flt_LiquidHeight); // }} "" // {{{ 1606 1 0 "8f717acb_f81d_4da8_a31a4d29cae3cdd2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Volume = DevComputeContainerVolume2(ML_STAR, str_LabID, str_PosID, flt_LiquidHeight, 0, 0); // }} "" // {{ 1607 1 0 "d1862b21_4c77_40e1_985d370a475950c6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bool_ConvertTouL == 1) { // }} "" // {{ 1608 1 0 "b955d6e7_02da_4438_96c53a1ee8389a62" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Volume = flt_Volume * 1000.0; // }} "" Trace("**************",str_LabID," - ",str_PosID,": ",flt_Volume," uL"); // {{ 1610 1 0 "d1862b21_4c77_40e1_985d370a475950c6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" Trace("**************",str_LabID," - ",str_PosID,": ",flt_Volume," mL"); // {{ 1612 1 0 "d1862b21_4c77_40e1_985d370a475950c6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1613 1 0 "7d722da5_d4f3_4c45_ba9389c2a9dc9b5c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Volume > 0.0) { // }} "" // {{ 1614 1 0 "ffeaa817_4b9f_41e3_9fd9e5e13635ba19" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_VolumesMeasured.SetAt(int_Channel-1, flt_Volume); // }} "" // {{ 1615 1 0 "7d722da5_d4f3_4c45_ba9389c2a9dc9b5c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1616 1 0 "98f03a7b_50df_4ebc_abf24b16fd7e24f6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1617 1 0 "b09bca09_6e86_4012_bbcddb8d9f32c557" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1618 1 0 "0bf5181d_f091_459e_bc0a80fe7c169a7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Volumes detected"), o_arr_VolumesMeasured); // }} "" // {{ 1619 1 0 "6656d704_cffc_48a5_8c99df1ffb9b0257" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 1621 1 0 "6656d704_cffc_48a5_8c99df1ffb9b0257" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "LIQUID_LEVEL_ReturnVolumesFromLiquidLevel" "End" } // }} "" // {{{ 5 "TRAVEL_LANES_MoveChannelsToTravelLanes_5mL" "Begin" function TRAVEL_LANES_MoveChannelsToTravelLanes_5mL( device & ML_STAR ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; // {{ 5 "TRAVEL_LANES_MoveChannelsToTravelLanes_5mL" "InitLocals" // }} "" // {{ 2329 1 0 "1c8e731f_ed6c_4d02_8231f4883d0440ac" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2330 1 0 "c4613bbc_4081_4202_abf2d0b0034d0758" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 2332 1 0 "7517399c_e5da_42a7_a8330da301655d63" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 2333 1 0 "25e6c906_df83_4a00_911c57aad5cd4a3a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 2334 1 0 "16b67053_449a_42c2_b4decdd19d4bdebd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 2335 1 0 "9c9b411c_ccba_4733_877ccd0935e6a7b5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 2336 1 0 "dee8e34b_a267_4af1_b67f5f2176581804" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 2338 1 0 "1c8e731f_ed6c_4d02_8231f4883d0440ac" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2339 1 0 "dd1120aa_95ca_4c9a_b547a902506c654f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 2340 1 0 "5d72ba88_a305_4397_87ef4de30d18d072" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2341 1 0 "38638aa3_173f_4344_a850d5a6673d0da8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TRAVEL_LANES::MoveChannelsToTravelLanes_5mL(ML_STAR); // }} "" // {{ 2342 1 0 "b1971a97_28f6_41d8_85d3a857e77d8be7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 2344 1 0 "b1971a97_28f6_41d8_85d3a857e77d8be7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TRAVEL_LANES_MoveChannelsToTravelLanes_5mL" "End" } // }} "" // {{{ 5 "TRAVEL_LANES_MoveChannelsWithTravelLanes_5mL" "Begin" function TRAVEL_LANES_MoveChannelsWithTravelLanes_5mL( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void { // }} "" private variable flt_X_Origin; private variable int_CutNum; private variable int_Length; private variable flt_NotUsed; private variable strFunctionName; private variable strFunctionName_Cut; private variable str_LabID; private variable int_Count; private variable bool_SequenceValid; private variable str_PosID; private variable flt_StartLocation; // {{ 5 "TRAVEL_LANES_MoveChannelsWithTravelLanes_5mL" "InitLocals" // }} "" // {{ 2435 1 0 "9905122d_99c1_446d_9555d07406841f84" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2436 1 0 "ec87f470_b2d3_40ef_be897bea3a875f69" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 2438 1 0 "8cd1b679_3401_4aba_a74dcd4cdedf376e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 2439 1 0 "ffd59b8a_75b7_44d3_8b83d2fa71f771e4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 2440 1 0 "b4a728cc_24ad_4f4c_aec09a88cd7bdd9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 2441 1 0 "2fdea5c8_f1d9_472e_b3c4b5d6d6e8aba5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 2442 1 0 "4ff3d8b8_94d9_4e51_9644eec627a35a09" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 2444 1 0 "9905122d_99c1_446d_9555d07406841f84" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2445 1 0 "26d924f0_a37c_487f_9d70d384f916a72c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 2446 1 0 "85727115_88b5_449f_ac6be1b0ba31e1a9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2447 1 0 "a3b0ca0e_7f8c_4fd2_b2736a6bd820f5ba" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 2449 1 0 "bda87633_a7a2_4979_b211dfe85ebcaa40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(ML_STAR, i_seq_TargetSequence, str_LabID, str_PosID); // }} "" // {{ 2450 1 0 "571b0649_4846_448e_88b38b07121018c1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 2451 1 0 "7b216f99_31b2_4caf_8461fcf4a4642e4c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 2452 1 0 "571b0649_4846_448e_88b38b07121018c1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2453 1 0 "85727115_88b5_449f_ac6be1b0ba31e1a9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2454 1 0 "146e542c_ac45_49f0_932761aa8ff7a220" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2455 1 0 "73ff85cf_c297_4ed3_bae226a5583cf9e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TRAVEL_LANES::MoveChannelsToTravelLanes_5mL(ML_STAR); // }} "" // {{ 2456 1 0 "82a943b7_0178_419c_91550ef4da7540a1" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2457 1 0 "42052c9a_06f0_4335_93e710bb133dceaa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetLabwareOrigin(ML_STAR, str_LabID, flt_X_Origin, flt_NotUsed, flt_NotUsed); // }} "" // {{ 2458 1 0 "48a43e0f_432c_4306_afd2e46a99850f01" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_StartLocation = flt_X_Origin + i_flt_XOffsetFromOrigin; // }} "" // {{ 2459 1 0 "9ae5fdd2_4548_4ff7_adea4c534f02c9c3" "ML_STAR:{55AA8CFA-FB6C-4691-8C8C-8D410E2123FD}" { variable arrRetValues[]; arrRetValues = ML_STAR._55AA8CFA_FB6C_4691_8C8C_8D410E2123FD("9ae5fdd2_4548_4ff7_adea4c534f02c9c3"); // XLMoveToPosition } // }} "" // {{ 2460 1 0 "13ea8db0_fa95_4b82_8b41a2065be7bf9e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2461 1 0 "c8dba057_71fc_4fa7_b061557a278aa4d6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TRAVEL_LANES::MoveChannelsToSequencePosition_5mL(ML_STAR, i_seq_TargetSequence); // }} "" // {{ 2462 1 0 "cb02c00d_dd07_47d6_965b326a407f5a84" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 2464 1 0 "cb02c00d_dd07_47d6_965b326a407f5a84" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TRAVEL_LANES_MoveChannelsWithTravelLanes_5mL" "End" } // }} "" // {{{ 5 "TRAVEL_LANES_SingleSource_ChannelDisplacement_5mL" "Begin" function TRAVEL_LANES_SingleSource_ChannelDisplacement_5mL( device & ML_STAR, variable i_strStepReturn ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; // {{ 5 "TRAVEL_LANES_SingleSource_ChannelDisplacement_5mL" "InitLocals" // }} "" // {{ 2482 1 0 "1997dfed_338e_4835_be62e8df12d601c6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2483 1 0 "c9f2d50a_7c05_46d6_a7c26cded779b080" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 2485 1 0 "55a3887f_f5cf_48e3_adce2126b073ea81" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 2486 1 0 "12b61462_102f_43d0_819b1dfa57a945a9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 2487 1 0 "076fd5bb_955c_4921_b710b0dc3598d6ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 2488 1 0 "ce89aaa2_1f27_40a5_a9857a033e85c453" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 2489 1 0 "ee4b7088_740f_403b_b7be623f5deb6661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 2491 1 0 "1997dfed_338e_4835_be62e8df12d601c6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2492 1 0 "ea353674_7f93_41f1_86efcc100af8bea9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{{ 2493 1 0 "5bec3981_8de0_41c8_bed0ec0b874d5d92" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TRAVEL_LANES::MoveUsedChannel_5mL(ML_STAR, i_strStepReturn); // }} "" // {{ 2494 1 0 "fb533517_b192_471c_aed38e1461e19086" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 2496 1 0 "fb533517_b192_471c_aed38e1461e19086" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TRAVEL_LANES_SingleSource_ChannelDisplacement_5mL" "End" } // }} "" // {{{ 5 "QUERY_GetChannelPosition" "Begin" function QUERY_GetChannelPosition( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_XCoord, variable & o_flt_YCoord, variable & o_flt_ZCoord ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable o_flt_Zcoord; // {{ 5 "QUERY_GetChannelPosition" "InitLocals" o_flt_XCoord = 0; o_flt_YCoord = 0; o_flt_ZCoord = 0; // }} "" // {{ 2026 1 0 "72722324_df01_4fbb_9a5e7339234ec121" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2027 1 0 "0b965eb8_11a4_4c20_893fdf46498b8af7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 2029 1 0 "f5c61f92_e288_4116_8ee6d09170c0cbe4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 2030 1 0 "6a83cbd7_53dc_4f36_ae0f9c25c6b8a171" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 2031 1 0 "4880a01f_c88b_45b9_83e1813f90f3bd4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 2032 1 0 "17622dc7_c425_4d61_b6cf115767f1d68b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 2033 1 0 "d68915e2_5f30_4561_91c3a99d982f106c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 2035 1 0 "72722324_df01_4fbb_9a5e7339234ec121" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2036 1 0 "9c406e26_ffe0_4139_94891bcb9ada6184" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 2037 1 0 "39743ecc_4198_4cd6_b1e1a4c277d4698e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_InstrumentType <= 2) { // }} "" // {{{ 2038 1 0 "db6dc089_6dd9_4a2d_b2985a4001fc42f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_MOVEMENT_TOOLS::Get_Channel_Position_1mL(ML_STAR, i_int_ChNumber, o_flt_XCoord, o_flt_YCoord, o_flt_ZCoord); // }} "" // {{ 2039 1 0 "39743ecc_4198_4cd6_b1e1a4c277d4698e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 2040 1 0 "e8f3d2d8_77e1_46ac_806cc1696e8e5cbb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" VANTAGE_CHANNEL_MOVEMENT_TOOLS::Get_Channel_Position(ML_STAR, i_int_ChNumber, o_flt_XCoord, o_flt_YCoord, o_flt_Zcoord); // }} "" // {{ 2041 1 0 "39743ecc_4198_4cd6_b1e1a4c277d4698e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2042 1 0 "9b16f8f8_d8d4_46ef_850b157590032a00" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 2044 1 0 "9b16f8f8_d8d4_46ef_850b157590032a00" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "QUERY_GetChannelPosition" "End" } // }} "" // {{{ 5 "QUERY_GetChannelPosition_5mL" "Begin" function QUERY_GetChannelPosition_5mL( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_XCoord, variable & o_flt_YCoord, variable & o_flt_ZCoord ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; // {{ 5 "QUERY_GetChannelPosition_5mL" "InitLocals" o_flt_XCoord = 0; o_flt_YCoord = 0; o_flt_ZCoord = 0; // }} "" // {{ 2046 1 0 "9d392352_ad2d_49d5_a32eca074e3c5bbe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2047 1 0 "6601c893_583f_4d2c_a6ed455f740d4578" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 2049 1 0 "34fbc5df_b10b_409e_adb51397dce46d2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 2050 1 0 "3cd1c59d_93e9_4fcc_882398b4eb45b1a6" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 2051 1 0 "a804ed53_86f5_4d56_8a9d2574891b5f41" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 2052 1 0 "e397751f_950f_4261_9fb1bcc92b88ea01" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 2053 1 0 "78f88e58_aff6_443a_b8444f2adfc581ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 2055 1 0 "9d392352_ad2d_49d5_a32eca074e3c5bbe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2056 1 0 "e42ee1ff_99ed_4602_8cb912728fc9458e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 2057 1 0 "2fca23b1_5599_4958_9b64c4c9688a55db" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_InstrumentType <= 2) { // }} "" // {{{ 2058 1 0 "4be6a263_3ac2_4603_9a5ea322df818d22" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_MOVEMENT_TOOLS::Get_Channel_Position_5mL(ML_STAR, i_int_ChNumber, o_flt_XCoord, o_flt_YCoord, o_flt_ZCoord); // }} "" // {{ 2059 1 0 "2fca23b1_5599_4958_9b64c4c9688a55db" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 2060 1 0 "d5b846ad_3bce_44a7_b4f594aecac73574" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" VANTAGE_CHANNEL_MOVEMENT_TOOLS::Get_Channel_Position_5mL(ML_STAR, i_int_ChNumber, o_flt_XCoord, o_flt_YCoord, o_flt_ZCoord); // }} "" // {{ 2061 1 0 "2fca23b1_5599_4958_9b64c4c9688a55db" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2062 1 0 "50448636_540d_4bef_9cda906a0064e630" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 2064 1 0 "50448636_540d_4bef_9cda906a0064e630" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "QUERY_GetChannelPosition_5mL" "End" } // }} "" // {{{ 5 "QUERY_GetTipVolume" "Begin" function QUERY_GetTipVolume( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_MaxVolume, variable & o_flt_CurrentChannelVolume ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; // {{ 5 "QUERY_GetTipVolume" "InitLocals" o_flt_MaxVolume = 0; o_flt_CurrentChannelVolume = 0; // }} "" // {{ 2106 1 0 "167f8bc4_aa65_47d9_a33ffc5d74d1bc6f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2107 1 0 "82abed3e_d8be_41e6_9e31ee9f13366808" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 2109 1 0 "ea9354c1_880a_4aad_81decef55c0482d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 2110 1 0 "35675577_b9d1_43a4_86a75c1300262073" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 2111 1 0 "ce832223_d451_4f9d_876d78a508733246" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 2112 1 0 "ad5f5f94_3458_4970_8d35c1c2b701603c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 2113 1 0 "0c974540_97c9_43f1_bf81536ceed66cbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 2115 1 0 "167f8bc4_aa65_47d9_a33ffc5d74d1bc6f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2116 1 0 "5abc886b_3cc0_4b9e_b621985fbd5d8060" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 2117 1 0 "19b4a863_3ca9_43ff_b614c248949e5c97" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_InstrumentType <= 2) { // }} "" // {{{ 2118 1 0 "521be414_3797_4e9e_aa7f765da0005b1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Volume_1mL(ML_STAR, i_int_ChNumber, o_flt_MaxVolume, o_flt_CurrentChannelVolume); // }} "" // {{ 2119 1 0 "19b4a863_3ca9_43ff_b614c248949e5c97" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 2120 1 0 "ded09f28_1c06_489d_a2aadf24f98c71e0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" VANTAGE_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Volume_1mL(ML_STAR, i_int_ChNumber, o_flt_MaxVolume, o_flt_CurrentChannelVolume); // }} "" // {{ 2121 1 0 "19b4a863_3ca9_43ff_b614c248949e5c97" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2122 1 0 "a83a3d7b_7531_4460_8d85a0741683bc78" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 2124 1 0 "a83a3d7b_7531_4460_8d85a0741683bc78" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "QUERY_GetTipVolume" "End" } // }} "" // {{{ 5 "QUERY_GetTipVolume_5mL" "Begin" function QUERY_GetTipVolume_5mL( device & ML_STAR, variable i_int_ChNumber, variable & o_flt_MaxVolume, variable & o_flt_CurrentChannelVolume ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; // {{ 5 "QUERY_GetTipVolume_5mL" "InitLocals" o_flt_MaxVolume = 0; o_flt_CurrentChannelVolume = 0; // }} "" // {{ 2126 1 0 "7c3933d3_8813_4c06_9c222e0bf4b56ca9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2127 1 0 "d0d259b1_0e07_40a1_b1b6a17d828a740a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 2129 1 0 "9cf35723_3f7b_4321_a70ae43db4d261e8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 2130 1 0 "e18bdcd2_90c1_499d_8a2bd34d185e3309" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 2131 1 0 "4c44995b_b38c_45de_951a4d3e42842da3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 2132 1 0 "6242026b_115d_47d8_8429709fcf63d316" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 2133 1 0 "b2249dad_81bc_4eae_a9a10603f549d4fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 2135 1 0 "7c3933d3_8813_4c06_9c222e0bf4b56ca9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2136 1 0 "e28823ee_054e_4d64_91c089ee2861cff0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 2137 1 0 "cc306e8c_93b3_4fd4_aae27ea8dd3d59a1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_InstrumentType <= 2) { // }} "" // {{{ 2138 1 0 "85b4a486_d7c1_47c1_9f9100fab1a2ea4f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Volume_5mL(ML_STAR, i_int_ChNumber, o_flt_MaxVolume, o_flt_CurrentChannelVolume); // }} "" // {{ 2139 1 0 "cc306e8c_93b3_4fd4_aae27ea8dd3d59a1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 2140 1 0 "47645d5b_9349_4013_809523db83d991bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" VANTAGE_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Volume_5mL(ML_STAR, i_int_ChNumber, o_flt_MaxVolume, o_flt_CurrentChannelVolume); // }} "" // {{ 2141 1 0 "cc306e8c_93b3_4fd4_aae27ea8dd3d59a1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2142 1 0 "dd62cd02_9b61_4e82_a9ed271918b2d709" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 2144 1 0 "dd62cd02_9b61_4e82_a9ed271918b2d709" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "QUERY_GetTipVolume_5mL" "End" } // }} "" // {{{ 5 "QUERY_GetTipPresentState" "Begin" function QUERY_GetTipPresentState( device & ML_STAR, variable i_int_ChNumber, variable & o_bln_TipPresent ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; // {{ 5 "QUERY_GetTipPresentState" "InitLocals" o_bln_TipPresent = 0; // }} "" // {{ 2066 1 0 "ff9e33bf_39d3_4598_b730452b6d07c356" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2067 1 0 "0583602a_a0d5_4fb8_bb6b34ff0dd823f1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 2069 1 0 "abef674f_42d8_427d_8c41e7594334fa1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 2070 1 0 "8e15d31b_c925_48a2_8396d368b51499a1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 2071 1 0 "5fcdc589_ea69_48a0_9275de70f65bb898" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 2072 1 0 "d018fdcc_bbc4_4db5_b2635eb886d551b1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 2073 1 0 "ba2f6192_ef79_4aac_8eb97cdd47565d2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 2075 1 0 "ff9e33bf_39d3_4598_b730452b6d07c356" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2076 1 0 "94926528_e639_465a_a1ae149ab4ef6e7a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 2077 1 0 "9ecf898c_4cae_461c_a5b9fe76a04c6386" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_InstrumentType <= 2) { // }} "" // {{{ 2078 1 0 "53d2ad4b_007d_4ffa_94ff968b0af18a3a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Present_1mL(ML_STAR, i_int_ChNumber, o_bln_TipPresent); // }} "" // {{ 2079 1 0 "9ecf898c_4cae_461c_a5b9fe76a04c6386" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 2080 1 0 "1a009cee_4e14_4779_aa70319c96c07857" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" VANTAGE_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Present_1mL(ML_STAR, i_int_ChNumber, o_bln_TipPresent); // }} "" // {{ 2081 1 0 "9ecf898c_4cae_461c_a5b9fe76a04c6386" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2082 1 0 "d31cced9_2755_4393_ae1f3fe391c351d5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 2084 1 0 "d31cced9_2755_4393_ae1f3fe391c351d5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "QUERY_GetTipPresentState" "End" } // }} "" // {{{ 5 "QUERY_GetTipPresentState_5mL" "Begin" function QUERY_GetTipPresentState_5mL( device & ML_STAR, variable i_int_ChNumber, variable & o_bln_TipPresent ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; // {{ 5 "QUERY_GetTipPresentState_5mL" "InitLocals" o_bln_TipPresent = 0; // }} "" // {{ 2086 1 0 "5aaeea72_c66c_4521_81c54f3c24f9557b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2087 1 0 "726cb224_3b62_4426_b3353fa676973475" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 2089 1 0 "b38fe88f_ee59_47d0_ae7c15fd490355a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 2090 1 0 "6f80ee81_0321_4d29_b47389b9ffd804cc" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 2091 1 0 "f15087f3_a0bb_4438_8648a44235a97fe7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 2092 1 0 "ee3a6cd3_fdf7_4c2f_ab89d2b2f5da041b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 2093 1 0 "d8d509e4_aa2e_44f5_a812f44a6a71d524" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 2095 1 0 "5aaeea72_c66c_4521_81c54f3c24f9557b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2096 1 0 "b9c5bfde_60b1_4d54_a990274421304bb1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 2097 1 0 "d01f9470_bd09_4471_b675eaab2085ff93" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_InstrumentType <= 2) { // }} "" // {{{ 2098 1 0 "2f88c98d_8497_4c32_8c559c9b35c656bf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Present_5mL(ML_STAR, i_int_ChNumber, o_bln_TipPresent); // }} "" // {{ 2099 1 0 "d01f9470_bd09_4471_b675eaab2085ff93" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 2100 1 0 "61b4e2ab_01c1_448e_a51800745ae8b00e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" VANTAGE_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Present_5mL(ML_STAR, i_int_ChNumber, o_bln_TipPresent); // }} "" // {{ 2101 1 0 "d01f9470_bd09_4471_b675eaab2085ff93" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2102 1 0 "3e47cfd4_823d_4c65_8486595bfc94109c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 2104 1 0 "3e47cfd4_823d_4c65_8486595bfc94109c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "QUERY_GetTipPresentState_5mL" "End" } // }} "" // {{{ 5 "MOVE_InitDispenseDrive" "Begin" function MOVE_InitDispenseDrive( device & ML_STAR, variable i_int_ChNumber ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; // {{ 5 "MOVE_InitDispenseDrive" "InitLocals" // }} "" // {{ 1910 1 0 "8442783a_6ff8_4a68_82caecc5258e13da" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1911 1 0 "7afce8ff_cebb_4cb8_b85690e40cc610b7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1913 1 0 "14d6bd6e_f5a8_42b9_b9db726248c00885" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 1914 1 0 "2449c0fc_6551_4729_bcf198b2c321999e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1915 1 0 "f73fc0f3_ccd7_4687_992990225d0215e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 1916 1 0 "aeb9d229_2268_4e49_8cece5210cf66038" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1917 1 0 "e6db9cba_5fe8_448b_a83c6b5c15e78b4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 1919 1 0 "8442783a_6ff8_4a68_82caecc5258e13da" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1920 1 0 "1fff5c50_a7a4_45df_be58f4e7b317c6ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 1921 1 0 "0b014b11_c777_420a_95ccf6f25e10eb99" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_InstrumentType <= 2) { // }} "" // {{{ 1922 1 0 "71b54651_31cc_4217_853ca69d71bcca71" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_MOVEMENT_TOOLS::InitializeDispenseDrive_1mL(ML_STAR, i_int_ChNumber); // }} "" // {{ 1923 1 0 "0b014b11_c777_420a_95ccf6f25e10eb99" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1924 1 0 "d5c2858d_f903_46c2_ab48b5689876efe5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" VANTAGE_CHANNEL_MOVEMENT_TOOLS::InitializeDispenseDrive_1mL(ML_STAR, i_int_ChNumber); // }} "" // {{ 1925 1 0 "0b014b11_c777_420a_95ccf6f25e10eb99" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1926 1 0 "c4065a1f_4a90_415c_8a0a5ab462579bf6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 1928 1 0 "c4065a1f_4a90_415c_8a0a5ab462579bf6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "MOVE_InitDispenseDrive" "End" } // }} "" // {{{ 5 "MOVE_InitDispenseDrive_5mL" "Begin" function MOVE_InitDispenseDrive_5mL( device & ML_STAR, variable i_int_ChNumber ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; // {{ 5 "MOVE_InitDispenseDrive_5mL" "InitLocals" // }} "" // {{ 1930 1 0 "3a063988_5943_4537_bd2696022c61173d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1931 1 0 "44b8134b_fc67_48e7_a1d37186f6e1e83c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1933 1 0 "4fc7d04c_b70c_4e2f_9716911916acb3d1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 1934 1 0 "ef27ae45_e951_487e_ba4139a3b7eb6b87" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1935 1 0 "5546710b_1432_4953_be755a9d042c48ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 1936 1 0 "139b58fb_f23c_4264_b960db65afd927d2" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1937 1 0 "253636b2_1205_49fa_9d6e09209ee0eb2d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 1939 1 0 "3a063988_5943_4537_bd2696022c61173d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1940 1 0 "6a23f7e8_6a30_48d4_918f0094b1b4a8dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 1941 1 0 "50012eb3_7934_431c_9fe42213f00e4e4d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_InstrumentType <= 2) { // }} "" // {{{ 1942 1 0 "d44f4c47_6df3_4aba_9520dc759ad3dbf1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_MOVEMENT_TOOLS::InitializeDispenseDrive_5mL(ML_STAR, i_int_ChNumber); // }} "" // {{ 1943 1 0 "50012eb3_7934_431c_9fe42213f00e4e4d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1944 1 0 "ef2a9dd3_6dea_471b_9b417cae0e1f6c4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" VANTAGE_CHANNEL_MOVEMENT_TOOLS::InitializeDispenseDrive_5mL(ML_STAR, i_int_ChNumber); // }} "" // {{ 1945 1 0 "50012eb3_7934_431c_9fe42213f00e4e4d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1946 1 0 "7c2ddbe4_1ebb_4c3b_b5e3fb8cfeb31bc6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 1948 1 0 "7c2ddbe4_1ebb_4c3b_b5e3fb8cfeb31bc6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "MOVE_InitDispenseDrive_5mL" "End" } // }} "" // {{{ 5 "MOVE_CheckPlateWithTwoChannels" "Begin" function MOVE_CheckPlateWithTwoChannels( device & ML_STAR, variable i_int_FrontMostChannel, sequence i_seq_PlateToCheck, variable i_flt_TapWidth ) variable { // }} "" private variable ret_PlateExists; private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable num_1mL_channels; private variable str_LabID; private variable int_BackChannel; private variable bln_TipPresentBack; private variable bln_TipPresentFront; private variable str_ReturnValue; private variable str_FWParameter; private variable flt_ZSpeed; private variable str_FWCommand; private variable flt_SearchSpeed; private variable flt_ZIncremenToMM; private variable int_ZSpeed; private variable str_ZV; private variable str_ZSpeed; private variable flt_NotUsed; private variable flt_ZBottom; private variable flt_RackClearance; private variable flt_RackHeight; private variable flt_MinimumSearchHeight; private variable flt_XCenter; private variable flt_YCenter; private variable bln_PlateFound; private variable arr_ChPattern[]; private variable arr_YPosition[]; private variable arr_ZPosition[]; private variable int_ChIndex; private variable flt_BackChannel_X; private variable flt_BackChannel_Y; private variable flt_BackChannel_Z; private variable flt_FrontChannel_X; private variable flt_FrontChannel_Y; private variable flt_FrontChannel_Z; private variable str_ChPattern; private variable arr_XPosition[]; private variable flt_FrontChannel_YCenter; private variable flt_BackChannel_YCenter; private variable bln_SimMode; private variable flt_YOffset; // {{ 5 "MOVE_CheckPlateWithTwoChannels" "InitLocals" // }} "" // {{ 1735 1 0 "f8128114_7776_45c6_a5b34d02922ce2ed" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_PlateExists = 0; // }} "" // {{ 1736 1 0 "3c407e65_755c_44c4_baa793f614b76054" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1737 1 0 "49a0d5f6_12cb_4960_b1141548956c41ae" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1739 1 0 "0f031814_6d1c_4ea7_bb4e38c57a85bf0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 1740 1 0 "77e77e3f_3868_480a_918e25f1c9aae386" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1741 1 0 "15fc934b_228c_40e9_b868a60d393f309e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 1742 1 0 "6c1c7195_6b25_4114_a15a1074ed258d3e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1743 1 0 "289c2da6_38f3_450f_834da9d24a465419" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 1745 1 0 "3c407e65_755c_44c4_baa793f614b76054" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1746 1 0 "f789843d_0585_42d0_bf79bf0d50eeaed5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{{ 1747 1 0 "174b16ab_b0a1_4454_950275c50c22a850" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_SimMode = Util::GetSimulationMode(); // }} "" // {{ 1748 1 0 "77778bbe_57f2_4c3e_bfb8659e18910fc2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_flt_TapWidth < 9.0) { // }} "" // {{ 1749 1 0 "482e7814_e91d_4360_a764a81a1ab1faaf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" i_flt_TapWidth = 9.0; // }} "" // {{ 1750 1 0 "77778bbe_57f2_4c3e_bfb8659e18910fc2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1751 1 0 "aab23d9c_4940_47c0_a01037bf4b72d1b1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_flt_TapWidth > 128.0) { // }} "" // {{ 1752 1 0 "778211c4_3e84_47ae_bc59457ff9a64d28" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" i_flt_TapWidth = 128.0; // }} "" // {{ 1753 1 0 "aab23d9c_4940_47c0_a01037bf4b72d1b1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1754 1 0 "11a4de8d_793c_4165_ad2f02126240a483" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_ZIncremenToMM = 0.01072765; // }} "" // {{ 1755 1 0 "b6cb2e4b_d6fa_41b7_8c00e3b7b29e66d9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_SearchSpeed = 45.0; // }} "" // {{ 1756 1 0 "b3122941_5027_4aad_833c9f488e725116" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1757 1 0 "cc6355e3_ab1f_46cb_bd40d0fa15cf79aa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{{ 1758 1 0 "84ad6767_c59e_4a7e_bcdac9a760889cdb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_PlateToCheck); // }} "" // {{{ 1759 1 0 "33ab6396_0e3c_4c9f_96658c3c8c3a5308" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(str_LabID); // }} "" // {{ 1760 1 0 "5cfe5832_7859_489e_9356eba9b3f3bd99" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (num_1mL_channels == 0) { // }} "" // {{{ 1761 1 0 "a905c17d_9773_41e6_baca14f4d5bd9688" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** There are no 1 mL channels installed!"), Translate("")); // }} "" // {{{ 1762 1 0 "d2d137ed_3f5f_4166_81b48e6d8990f2bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("No 1 mL channels installed!!")); // }} "" // {{ 1763 1 0 "5cfe5832_7859_489e_9356eba9b3f3bd99" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1764 1 0 "3e575a94_4051_4465_83a96c5cb6ebc2dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_FrontMostChannel < 2) { // }} "" // {{{ 1765 1 0 "f2846092_4dfe_41c9_b9b7d8b7560b68ab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** Front channel is less than 2!"), Translate("")); // }} "" // {{{ 1766 1 0 "54af4e57_7fb2_4835_b6467e7f12356a5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Front channel is less than 2!")); // }} "" // {{ 1767 1 0 "3e575a94_4051_4465_83a96c5cb6ebc2dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1768 1 0 "eef9b580_55b8_4d04_bea05178b3e38901" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_FrontMostChannel > num_1mL_channels) { // }} "" // {{{ 1769 1 0 "5e464b80_55ec_4611_80d7e741068f2654" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** Front channel is greater than the number of channels loaded!"), Translate("")); // }} "" // {{{ 1770 1 0 "d2e6754b_80f7_4001_a0151332e591f649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Front channel is greater than the number of channels loaded!")); // }} "" // {{ 1771 1 0 "eef9b580_55b8_4d04_bea05178b3e38901" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1772 1 0 "edcd67cc_bf7f_49e9_bf3f5a95cc4b8c99" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Length == 0) { // }} "" // {{{ 1773 1 0 "6fd5b7ec_4457_40f4_8d7e6a0f8106644e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** Sequence position does not have a labware!"), Translate("")); // }} "" // {{{ 1774 1 0 "43599c05_8738_4379_a0ed5f8ef8c7fee5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Sequence position does not have a labware!")); // }} "" // {{ 1775 1 0 "edcd67cc_bf7f_49e9_bf3f5a95cc4b8c99" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1776 1 0 "10536c51_944e_4cc7_9051cb3fee6a9f52" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_BackChannel = i_int_FrontMostChannel - 1; // }} "" // {{ 1777 1 0 "9a8df886_e468_4769_b17854fb5fcb7027" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_SimMode == 0) { // }} "" // {{ 1778 1 0 "14157106_d897_4294_83f62c2d0b9a524d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_InstrumentType > 2) { // }} "" // {{{ 1779 1 0 "c9a47bbb_b55b_4ef0_b4436b0f1d629e12" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" VANTAGE_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Present_1mL(ML_STAR, int_BackChannel, bln_TipPresentBack); // }} "" // {{{ 1780 1 0 "199f2311_0ff5_4dfa_8cc47a09cc969e13" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" VANTAGE_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Present_1mL(ML_STAR, i_int_FrontMostChannel, bln_TipPresentFront); // }} "" // {{ 1781 1 0 "14157106_d897_4294_83f62c2d0b9a524d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1782 1 0 "03ad3d52_5c36_4257_806a8ab0bdefd3a8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Present_1mL(ML_STAR, int_BackChannel, bln_TipPresentBack); // }} "" // {{{ 1783 1 0 "2525b4a3_29de_4559_99006aeb2f388488" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_MOVEMENT_TOOLS::Get_Tip_Present_1mL(ML_STAR, i_int_FrontMostChannel, bln_TipPresentFront); // }} "" // {{ 1784 1 0 "14157106_d897_4294_83f62c2d0b9a524d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1785 1 0 "9a8df886_e468_4769_b17854fb5fcb7027" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1786 1 0 "fb6e2c3e_2239_492c_a0c3b7f5cabbc313" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_TipPresentBack = 1; // }} "" // {{ 1787 1 0 "69b82740_1826_4673_be6e4fb276e590e8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_TipPresentFront = 1; // }} "" // {{ 1788 1 0 "9a8df886_e468_4769_b17854fb5fcb7027" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace("Back channel present: ",bln_TipPresentBack); Trace("Front channel present: ",bln_TipPresentFront); // {{ 1790 1 0 "9cdd36d1_d974_43b3_ac52f17c3242a349" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_TipPresentBack == 0) { // }} "" // {{{ 1791 1 0 "f9385ae4_c948_4e56_a88b94b57e986b3b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** Channel does not have a tip or tool!"), Translate("")); // }} "" // {{{ 1792 1 0 "3b9031ec_2753_4edc_8fa0aca20dc59948" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Channels do not have a tip or tool loaded!")); // }} "" // {{ 1793 1 0 "9cdd36d1_d974_43b3_ac52f17c3242a349" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1794 1 0 "2a9621ff_4a5e_4df4_87b5066e60236ee8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_TipPresentFront == 0) { // }} "" // {{{ 1795 1 0 "c3275a38_ce5f_4096_9c31b884be9a558f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** Channel does not have a tip or tool!"), Translate("")); // }} "" // {{{ 1796 1 0 "b69b0a17_809e_497c_a81c5654c0f3ef38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("Channels do not have a tip or tool loaded!")); // }} "" // {{ 1797 1 0 "2a9621ff_4a5e_4df4_87b5066e60236ee8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1798 1 0 "b3122941_5027_4aad_833c9f488e725116" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1799 1 0 "be15a4fb_7237_440f_87e22544b58f42a3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::LABWARE_GetLabwareOrigin(ML_STAR, i_seq_PlateToCheck, flt_NotUsed, flt_NotUsed, flt_ZBottom); // }} "" // {{{ 1800 1 0 "de3b1c39_263b_49c5_92c0dd5d5381b938" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::LABWARE_GetRackHeight(ML_STAR, i_seq_PlateToCheck, 1, flt_RackHeight, flt_RackClearance); // }} "" // {{{ 1801 1 0 "2896f3f2_b888_455a_a30417a30af1e98b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::LABWARE_GetLabwareCenter(ML_STAR, i_seq_PlateToCheck, flt_XCenter, flt_YCenter); // }} "" // {{ 1802 1 0 "7a5d5380_60f8_4fea_8c2ef6436458eb30" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_MinimumSearchHeight = flt_RackHeight - flt_ZBottom; // }} "" // {{ 1803 1 0 "70757766_3bdc_40d9_94bd3de19988389e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_MinimumSearchHeight = flt_MinimumSearchHeight / (2 * 1.0); // }} "" // {{ 1804 1 0 "280b0f8b_0a79_4ed0_999c6f35b38711c5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_MinimumSearchHeight = flt_MinimumSearchHeight + flt_ZBottom; // }} "" // {{ 1805 1 0 "135e6304_7c0e_44b9_b9b2dbd1f1d39def" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_InstrumentType > 2) { // }} "" // {{{ 1806 1 0 "19498956_820b_4c64_b819663cb4a38bf6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_PlateFound = VANTAGE_CHANNEL_MOVEMENT_TOOLS::CheckPlateWithTwoChannels(ML_STAR, flt_XCenter, flt_YCenter, flt_MinimumSearchHeight, flt_SearchSpeed, i_flt_TapWidth, 245.0, 245.0, int_BackChannel, i_int_FrontMostChannel, flt_ZBottom); // }} "" // {{ 1807 1 0 "450d97e0_084b_45f1_a6c6091bf2dbae25" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 1809 1 0 "450d97e0_084b_45f1_a6c6091bf2dbae25" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" if(bln_PlateFound == 1) ret_PlateExists = hslTrue; if(bln_PlateFound == 0) ret_PlateExists = hslFalse; // {{{ 1811 1 0 "c30c2a8b_9013_4288_85d005853128f56f" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_PlateExists); // }} "" // {{ 1812 1 0 "135e6304_7c0e_44b9_b9b2dbd1f1d39def" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1813 1 0 "a79175b7_8143_4d8f_b01f627d392d88fa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1814 1 0 "fef91437_2d02_4a3f_ba873b35c770c8b8" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChPattern.SetSize(0); // }} "" // {{ 1815 1 0 "ff5764e4_5385_4cb4_8503da005c665523" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_XPosition.SetSize(0); // }} "" // {{ 1816 1 0 "3c0e72ef_b7f6_4a7f_830a9f78aec691af" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_YPosition.SetSize(0); // }} "" // {{ 1817 1 0 "4223c9a4_b2ff_4057_bf0f5681fc1b1bd2" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ZPosition.SetSize(0); // }} "" // {{ 1818 1 0 "d20faef7_95b6_4e71_970d86321fa75207" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < num_1mL_channels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 1819 1 0 "bee2ac36_ac85_4189_9f0085104e63c616" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.AddAsLast(0); // }} "" // {{ 1820 1 0 "89a47f34_8f54_4b53_bd3776a5f5ad2c5d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_XPosition.AddAsLast(flt_XCenter); // }} "" // {{ 1821 1 0 "f62bda15_f8ec_4e31_92f971fd41d12a43" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_YPosition.AddAsLast(0.0); // }} "" // {{ 1822 1 0 "5918befe_42ca_4bba_bc0690f51f129b2a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ZPosition.AddAsLast(245.0); // }} "" // {{ 1823 1 0 "d20faef7_95b6_4e71_970d86321fa75207" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1824 1 0 "7d7878c3_0534_4714_90c01772bcc2ac6b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_YOffset = i_flt_TapWidth / (2.0 * 1.0); // }} "" // {{ 1825 1 0 "7603e11d_cbc3_41ea_8fc1444f887ef007" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_YOffset = flt_YOffset + 4.5; // }} "" // {{ 1826 1 0 "8279df88_a687_4978_b45d62e8c2973e4a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_FrontChannel_YCenter = flt_YCenter - flt_YOffset; // }} "" // {{ 1827 1 0 "d87dc555_2345_4bf3_9208f361805ea745" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_BackChannel_YCenter = flt_YCenter + flt_YOffset; // }} "" // {{ 1828 1 0 "0a316aea_eb1e_45d2_a2b0c5a20f99d785" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.SetAt(i_int_FrontMostChannel-1, 1); // }} "" // {{ 1829 1 0 "94ce9386_573c_4c39_88d5a626203999d0" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.SetAt(int_BackChannel-1, 1); // }} "" // {{ 1830 1 0 "b06be25e_38e3_4cd0_94255fdc7c4476ba" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_YPosition.SetAt(i_int_FrontMostChannel-1, flt_FrontChannel_YCenter); // }} "" // {{ 1831 1 0 "9abfceb4_136c_4621_b34d39e71b059da9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_YPosition.SetAt(int_BackChannel-1, flt_BackChannel_YCenter); // }} "" // {{ 1832 1 0 "f78f523c_c95f_4458_949581b76878fea3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ChPattern = Translate(""); // }} "" // {{ 1833 1 0 "8e6805be_98d0_4715_9e2b4f6cd7d87864" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < num_1mL_channels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 1834 1 0 "5b428939_3b10_4008_ad0046b61432e0a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrConcat2(str_ChPattern, arr_ChPattern.ElementAt( int_ChIndex -1)); // }} "" // {{ 1835 1 0 "8e6805be_98d0_4715_9e2b4f6cd7d87864" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1836 1 0 "c1999267_95e2_4d44_ae73ab9beac689c0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_MOVEMENT_TOOLS::Move_Channels_To_Absolute_Position_1mL(ML_STAR, str_ChPattern, 245.0, arr_XPosition, arr_YPosition, arr_ZPosition); // }} "" // {{ 1837 1 0 "a79175b7_8143_4d8f_b01f627d392d88fa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1838 1 0 "a64f5d99_5871_47f2_a8fcc4a9f5bbecfe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1839 1 0 "22449654_6170_4eef_ab9ba4910f9f1e12" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChPattern.SetSize(0); // }} "" // {{ 1840 1 0 "340f6ee9_11ae_40e1_a407a2dfe6c26dab" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_XPosition.SetSize(0); // }} "" // {{ 1841 1 0 "a8bd92b2_5731_40ef_8843e67c8bb903bc" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_YPosition.SetSize(0); // }} "" // {{ 1842 1 0 "acbea1e5_b7c1_4840_a54fdf16ee978b40" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ZPosition.SetSize(0); // }} "" // {{ 1843 1 0 "bfb735f0_cf4a_45ea_ad2a1133c26f5720" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < num_1mL_channels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 1844 1 0 "7ab7e3c3_f3e5_4e4f_bfc6f3def078883b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.AddAsLast(0); // }} "" // {{ 1845 1 0 "44e4438d_8945_4241_b193a5a6d7f1c609" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_XPosition.AddAsLast(flt_XCenter); // }} "" // {{ 1846 1 0 "d3fdc539_4c47_4ee0_829e1002ffb0b65b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_YPosition.AddAsLast(0.0); // }} "" // {{ 1847 1 0 "2bec60a3_bdd1_40b8_b3a67d4517af0d37" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ZPosition.AddAsLast(245.0); // }} "" // {{ 1848 1 0 "bfb735f0_cf4a_45ea_ad2a1133c26f5720" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1849 1 0 "0d860b4b_4db6_4d07_ba3c4fc949d9c92b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_YOffset = i_flt_TapWidth / (2.0 * 1.0); // }} "" // {{ 1850 1 0 "758c8e6c_3928_49e3_b41c8226c79fcd78" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_FrontChannel_YCenter = flt_YCenter - flt_YOffset; // }} "" // {{ 1851 1 0 "900c7906_792e_4ed3_84fd31f47022c844" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_BackChannel_YCenter = flt_YCenter + flt_YOffset; // }} "" // {{ 1852 1 0 "619625e8_223b_4ab2_ae14ce0b42e4c9f8" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.SetAt(i_int_FrontMostChannel-1, 1); // }} "" // {{ 1853 1 0 "5a7ebbd8_4ce8_45d4_9bc55ea8c7be9318" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.SetAt(int_BackChannel-1, 1); // }} "" // {{ 1854 1 0 "d24f6245_2a3b_48ce_aa7d0ef494243b75" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_YPosition.SetAt(i_int_FrontMostChannel-1, flt_FrontChannel_YCenter); // }} "" // {{ 1855 1 0 "aefb55a1_9fad_429c_a637e406b9650a05" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_YPosition.SetAt(int_BackChannel-1, flt_BackChannel_YCenter); // }} "" // {{ 1856 1 0 "821869f6_879a_4841_88a15c56bd462a18" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ChPattern = Translate(""); // }} "" // {{ 1857 1 0 "0d6e8bc4_6ca4_4238_844a4bcd8be16110" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < num_1mL_channels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 1858 1 0 "25c11394_e6a6_4ea6_8c9466c16855151f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrConcat2(str_ChPattern, arr_ChPattern.ElementAt( int_ChIndex -1)); // }} "" // {{ 1859 1 0 "0d6e8bc4_6ca4_4238_844a4bcd8be16110" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1860 1 0 "f1cfdd5a_524e_481e_a0b2c3dd9fe16844" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_MOVEMENT_TOOLS::Move_Channels_To_Absolute_Position_1mL(ML_STAR, str_ChPattern, 245.0, arr_XPosition, arr_YPosition, arr_ZPosition); // }} "" // {{ 1861 1 0 "a64f5d99_5871_47f2_a8fcc4a9f5bbecfe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1862 1 0 "1b727554_531f_4e9f_b9f0ace25a28f9ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1863 1 0 "381057a9_5831_4de4_868ae4d0a69a3fbf" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("Change Z speed and sensitivity")); // }} "" // {{ 1864 1 0 "73827788_e70c_415a_a4156def7f7cf82c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ZSpeed = flt_SearchSpeed / (flt_ZIncremenToMM * 1.0); // }} "" // {{{ 1865 1 0 "e15c54db_e986_4c4d_aca69ab8588d11a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ZSpeed = MthCeiling(flt_ZSpeed); // }} "" // {{{ 1866 1 0 "7cabf264_edfe_46e3_9f8c2517507e2eee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZSpeed = StrConcat2(int_ZSpeed, Translate("")); // }} "" // {{{ 1867 1 0 "b6b8f20b_b2d9_4dbc_90559324e87dc7e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZSpeed = StrFillLeft(str_ZSpeed, Translate("0"), 5); // }} "" // {{{ 1868 1 0 "0433168d_463c_427e_a689a588645692d1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ZV = StrConcat4(Translate("zv"), str_ZSpeed, Translate(""), Translate("")); // }} "" // {{ 1869 1 0 "517ca6a3_f7c0_442f_894b6aae1e5e615b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FWCommand = Translate("PXAA"); // }} "" // {{{ 1870 1 0 "680fb508_cfee_4a34_b3845b76c8f8f09f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FWParameter = StrConcat8(Translate("zr005zw1"), str_ZV, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" Trace("FW Command: ",str_FWCommand," : ",str_FWParameter); // {{ 1872 1 0 "ef3e7bb8_57d4_4430_afa6ed39d4d0c578" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("ef3e7bb8_57d4_4430_afa6ed39d4d0c578"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 1873 1 0 "1b727554_531f_4e9f_b9f0ace25a28f9ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1874 1 0 "be321fbc_c0c6_4033_ad37c7c7eb1cdb60" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1875 1 0 "1e3c7be9_6183_457b_9953ea61e9f07afc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_PlateFound = STAR_CHANNEL_MOVEMENT_TOOLS::CheckPlateWithTwoChannels(ML_STAR, flt_XCenter, flt_YCenter, flt_MinimumSearchHeight, flt_SearchSpeed, i_flt_TapWidth, 245.0, flt_MinimumSearchHeight, int_BackChannel, i_int_FrontMostChannel); // }} "" // {{ 1876 1 0 "be321fbc_c0c6_4033_ad37c7c7eb1cdb60" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1877 1 0 "fa35a50b_f227_44af_a7c54a8a8e50064b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1878 1 0 "75168aa0_06d1_400e_ac2f1b41de131df6" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("Reset the speed back to normal")); // }} "" // {{ 1879 1 0 "2b2884b1_9684_4448_80cdb31c25dd30fb" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("2b2884b1_9684_4448_80cdb31c25dd30fb"); // FirmwareCommand str_ReturnValue = arrRetValues[3]; } // }} "" // {{ 1880 1 0 "fa35a50b_f227_44af_a7c54a8a8e50064b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1881 1 0 "155bbd3f_33f9_43e5_aba49a4c2aa78e3e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1882 1 0 "290a2aae_695c_4b08_a11682c45086aaa8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_MOVEMENT_TOOLS::Get_Channel_Position_1mL(ML_STAR, int_BackChannel, flt_BackChannel_X, flt_BackChannel_Y, flt_BackChannel_Z); // }} "" // {{{ 1883 1 0 "83b8f0ee_ac0b_469e_b831f30d60c1188b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_MOVEMENT_TOOLS::Get_Channel_Position_1mL(ML_STAR, i_int_FrontMostChannel, flt_FrontChannel_X, flt_FrontChannel_Y, flt_FrontChannel_Z); // }} "" // {{ 1884 1 0 "d2e73038_8a5e_48c0_9bc4cb208b498383" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChPattern.SetSize(0); // }} "" // {{ 1885 1 0 "24a58a8c_96aa_440e_b88c631e8bd575fb" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_XPosition.SetSize(0); // }} "" // {{ 1886 1 0 "d6a2a54a_769b_41de_990926359f5d67b0" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_YPosition.SetSize(0); // }} "" // {{ 1887 1 0 "ed10c26e_ef4b_4d50_a5addfb8312b0c8d" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ZPosition.SetSize(0); // }} "" // {{ 1888 1 0 "87edf40d_590f_4a98_a6f1009aba7b0769" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < num_1mL_channels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 1889 1 0 "fe1a2a24_d162_4cda_a3ce84af5842373e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.AddAsLast(0); // }} "" // {{ 1890 1 0 "14123640_c2cf_48b9_a1fad4ffb411127c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_XPosition.AddAsLast(flt_XCenter); // }} "" // {{ 1891 1 0 "9c9cfb23_19c1_49a7_95dbdcf2c9eed248" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_YPosition.AddAsLast(0.0); // }} "" // {{ 1892 1 0 "7979331a_4448_4f7b_aaaf4dae9b06fc34" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ZPosition.AddAsLast(245.0); // }} "" // {{ 1893 1 0 "87edf40d_590f_4a98_a6f1009aba7b0769" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1894 1 0 "bce6ddc1_fbfc_4684_a6c1b1614581462e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.SetAt(i_int_FrontMostChannel-1, 1); // }} "" // {{ 1895 1 0 "9907d217_8c8a_4359_abbc2d8f6c17ac71" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.SetAt(int_BackChannel-1, 1); // }} "" // {{ 1896 1 0 "d001c647_e5bf_45d1_a65ba9323dc1228a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_YPosition.SetAt(i_int_FrontMostChannel-1, flt_FrontChannel_Y); // }} "" // {{ 1897 1 0 "9c34b7e7_062a_4699_9710a045057d0a67" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_YPosition.SetAt(int_BackChannel-1, flt_BackChannel_Y); // }} "" // {{ 1898 1 0 "8ab9fd08_ae4f_4f40_b8c3f341f9c2f52a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ChPattern = Translate(""); // }} "" // {{ 1899 1 0 "7cf534d4_bf05_4e5a_aaf131d3e64a747c" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < num_1mL_channels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 1900 1 0 "f13a0add_17e3_4e32_86428b91300f9e90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrConcat2(str_ChPattern, arr_ChPattern.ElementAt( int_ChIndex -1)); // }} "" // {{ 1901 1 0 "7cf534d4_bf05_4e5a_aaf131d3e64a747c" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1902 1 0 "18d50fd5_5a74_49ab_a602cbb96a14d991" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_MOVEMENT_TOOLS::Move_Channels_To_Absolute_Position_1mL(ML_STAR, str_ChPattern, 245.0, arr_XPosition, arr_YPosition, arr_ZPosition); // }} "" // {{ 1903 1 0 "155bbd3f_33f9_43e5_aba49a4c2aa78e3e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1904 1 0 "7834c191_5d0c_4128_a27f59f7f6b43faa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 1906 1 0 "7834c191_5d0c_4128_a27f59f7f6b43faa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" if(bln_PlateFound == 1) ret_PlateExists = hslTrue; if(bln_PlateFound == 0) ret_PlateExists = hslFalse; // {{{ 1908 1 0 "963aee20_df15_406c_a08adeac4fe315db" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_PlateExists); // }} "" // {{{ 5 "MOVE_CheckPlateWithTwoChannels" "End" } // }} "" // {{{ 5 "MOVE_ChannelsToSequencePosition" "Begin" function MOVE_ChannelsToSequencePosition( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_Positions, variable i_flt_ZHeight ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable num_1mL_channels; private variable arr_XCoord[]; private variable arr_ChPattern[]; private variable arr_YCoord[]; private variable arr_ZCoord[]; private variable int_ChIndex; private variable str_Left; private variable str_Value; private variable flt_ZCoord; private variable flt_YCoord; private variable flt_XCoord; private variable str_LabID; private variable int_Value; private variable str_ChPattern; // {{ 5 "MOVE_ChannelsToSequencePosition" "InitLocals" // }} "" // {{ 1623 1 0 "31304d52_a026_4718_be61dcbcb7e70d8e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1624 1 0 "88249d15_8ec9_47c4_b57608c0984b738a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1626 1 0 "daac1dec_2efc_460c_9cb812ffcb62b563" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 1627 1 0 "c266a97f_2f5c_4f1f_8052e2c552a9a819" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1628 1 0 "c2dedc14_3396_4230_884cd78a4b5fe075" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 1629 1 0 "58071302_fdbe_4b8b_9fe11351c7b0d568" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1630 1 0 "a9469aa2_eadb_4fae_bc93812995e6a5b7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 1632 1 0 "31304d52_a026_4718_be61dcbcb7e70d8e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1633 1 0 "6934bfa8_0b29_41d8_8a78c50ab71f7d28" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 1634 1 0 "b5345ed4_41c5_4eaa_bfd301e29939428a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1635 1 0 "57b47262_2c7c_4c6b_8ddcbe22be034d1e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{ 1636 1 0 "de402e80_5ee1_4f8c_9e39fdd204ad8e23" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (num_1mL_channels == 0) { // }} "" // {{{ 1637 1 0 "9187c32b_293f_4c47_8cdf69a798defb4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** There are no 1 mL channels installed!"), Translate("")); // }} "" // {{{ 1638 1 0 "ad12c7c6_9344_48e3_bdbd35aa4ef37613" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("No 1 mL channels installed!!")); // }} "" // {{ 1639 1 0 "de402e80_5ee1_4f8c_9e39fdd204ad8e23" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1640 1 0 "b5345ed4_41c5_4eaa_bfd301e29939428a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1641 1 0 "eae85b05_567a_49f0_889a194dd593dde1" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChPattern.SetSize(0); // }} "" // {{ 1642 1 0 "6242f190_81a7_4232_8b746f19f76fa22f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_XCoord.SetSize(0); // }} "" // {{ 1643 1 0 "17f28be2_753e_4284_8e0568ce79744c9e" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_YCoord.SetSize(0); // }} "" // {{ 1644 1 0 "d416ae74_b874_4d37_bceef17b61da4c04" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ZCoord.SetSize(0); // }} "" // {{{ 1645 1 0 "bf351f45_44dd_4acc_be528ca1be947002" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChPattern = StrFillRight(i_str_ChPattern, Translate("0"), num_1mL_channels); // }} "" // {{ 1646 1 0 "aab491cc_c353_438f_82541921a5326622" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < num_1mL_channels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 1647 1 0 "adc1e872_5404_4c21_ab22d2c63e1686d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Left = StrLeft(i_str_ChPattern, int_ChIndex); // }} "" // {{{ 1648 1 0 "ef3f330e_f76d_4d65_90318ff3f6ae6f00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrRight(str_Left, 1); // }} "" // {{{ 1649 1 0 "6049adef_1af2_4c23_931643e81424254f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrIVal(str_Value); // }} "" // {{{ 1650 1 0 "d8cf5121_cd12_466c_87e2d8043c12730f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_Positions); // }} "" // {{{ 1651 1 0 "7297fe0c_a66e_4ed1_bfeb472b8cc6837d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(str_LabID); // }} "" // {{ 1652 1 0 "4b495ffa_9b9d_4d06_a0e1a890e2c22dca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Length > 0) { // }} "" // {{{ 1653 1 0 "658712da_f3db_4aea_ac6a23815835aee2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::LABWARE_GetCurrentPosition(ML_STAR, i_seq_Positions, flt_XCoord, flt_YCoord, flt_ZCoord); // }} "" // {{ 1654 1 0 "4b495ffa_9b9d_4d06_a0e1a890e2c22dca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1655 1 0 "9670aa61_2ae5_400d_8389c9e828f0d0a0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Value = 0; // }} "" // {{ 1656 1 0 "0141b5c3_aa6c_4fc6_8da8232c8c8ece76" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_XCoord = 0.0; // }} "" // {{ 1657 1 0 "e716396e_d207_47da_8618e6c39f72bd9e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_YCoord = 0.0; // }} "" // {{ 1658 1 0 "bc2f7c24_ea24_4473_bb6ac932ab23e16e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_ZCoord = 0.0; // }} "" // {{ 1659 1 0 "4b495ffa_9b9d_4d06_a0e1a890e2c22dca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1660 1 0 "5dfa1a78_9027_4677_b5f4b9c69a83c5be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(i_seq_Positions, 1); // }} "" // {{ 1661 1 0 "63dba962_e9eb_4fdd_8ffa3dee42661402" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.AddAsLast(int_Value); // }} "" // {{ 1662 1 0 "c3b11d87_8c57_4249_9d4d287075074a15" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_XCoord.AddAsLast(flt_XCoord); // }} "" // {{ 1663 1 0 "217d83e0_bf96_432e_a046862bd2810124" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_YCoord.AddAsLast(flt_YCoord); // }} "" // {{ 1664 1 0 "636b0004_da2e_4ceb_a1b669b450416f96" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ZCoord.AddAsLast(i_flt_ZHeight); // }} "" // {{ 1665 1 0 "aab491cc_c353_438f_82541921a5326622" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1666 1 0 "6943138f_8470_4169_a33ac0d707809f0f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ChPattern = Translate(""); // }} "" // {{ 1667 1 0 "764ab6b0_bfd2_4b8e_80d755c000b3c624" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < num_1mL_channels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 1668 1 0 "610d91be_694d_4f30_8798673436589cd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrConcat2(str_ChPattern, arr_ChPattern.ElementAt( int_ChIndex -1)); // }} "" // {{ 1669 1 0 "764ab6b0_bfd2_4b8e_80d755c000b3c624" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1670 1 0 "aebe89aa_a262_4407_99525d3f464e6963" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_InstrumentType <= 2) { // }} "" // {{{ 1671 1 0 "ad02be1a_329a_4a34_97895a5e0588f054" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_MOVEMENT_TOOLS::Move_Channels_To_Absolute_Position_1mL(ML_STAR, str_ChPattern, 245.0, arr_XCoord, arr_YCoord, arr_ZCoord); // }} "" // {{ 1672 1 0 "aebe89aa_a262_4407_99525d3f464e6963" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1673 1 0 "6c2121e1_abcc_4baf_9d8a94b72cee5564" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" VANTAGE_CHANNEL_MOVEMENT_TOOLS::Move_Channels_To_Absolute_Position_1mL(ML_STAR, str_ChPattern, 245.0, arr_XCoord, arr_YCoord, arr_ZCoord); // }} "" // {{ 1674 1 0 "aebe89aa_a262_4407_99525d3f464e6963" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1675 1 0 "f95272cf_c497_461e_899a6c752ab5546d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 1677 1 0 "f95272cf_c497_461e_899a6c752ab5546d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "MOVE_ChannelsToSequencePosition" "End" } // }} "" // {{{ 5 "MOVE_ChannelsToSequencePosition_5mL" "Begin" function MOVE_ChannelsToSequencePosition_5mL( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_Positions, variable i_flt_ZHeight ) void { // }} "" private variable str_Left; private variable int_CutNum; private variable int_Length; private variable flt_ZCoord; private variable flt_YCoord; private variable strFunctionName; private variable flt_XCoord; private variable str_LabID; private variable strFunctionName_Cut; private variable num_1mL_channels; private variable int_Count; private variable int_Value; private variable str_Value; private variable int_ChIndex; private variable str_ChPattern; private variable arr_ChPattern[]; private variable arr_ZCoord[]; private variable arr_YCoord[]; private variable arr_XCoord[]; // {{ 5 "MOVE_ChannelsToSequencePosition_5mL" "InitLocals" // }} "" // {{ 1679 1 0 "8de78841_d47a_44e2_80da7eb4bc554659" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1680 1 0 "e904eb74_811c_45f2_91435a76b5ee72cc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1682 1 0 "95622491_28c1_45cc_916150064ed83559" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 1683 1 0 "1df0357c_08a8_49ab_9a17dd9fe7510d5b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1684 1 0 "d2a6dcd3_8c97_4df7_83f84d0e1e159901" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 1685 1 0 "808f366e_a5a9_401c_9857753fc05f440c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1686 1 0 "cb07a334_9c10_4760_b309fba1f0eb8068" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 1688 1 0 "8de78841_d47a_44e2_80da7eb4bc554659" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1689 1 0 "c090efc2_d952_4e26_a6a92cb2c6dd74f9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 1690 1 0 "a817b917_3a35_4965_8c764ab10ae0f2bf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1691 1 0 "291b88f5_bca3_4269_8fe8ca48586b8caa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" num_1mL_channels = DevGetCfgValueWithKey(ML_STAR, 43); // }} "" // {{ 1692 1 0 "f9efc355_ef27_4282_9fefebb386506b6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (num_1mL_channels == 0) { // }} "" // {{{ 1693 1 0 "c430eef5_e60e_422f_8216d53348880909" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("**************************** There are no 1 mL channels installed!"), Translate("")); // }} "" // {{{ 1694 1 0 "44256567_0cbc_4ce3_99f6e774bb94bbad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("No 1 mL channels installed!!")); // }} "" // {{ 1695 1 0 "f9efc355_ef27_4282_9fefebb386506b6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1696 1 0 "a817b917_3a35_4965_8c764ab10ae0f2bf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1697 1 0 "6f4d5ac2_a87a_469a_99bce261f2feb166" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChPattern.SetSize(0); // }} "" // {{ 1698 1 0 "27662369_ada4_46fa_a33bd194d7aa0acd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_XCoord.SetSize(0); // }} "" // {{ 1699 1 0 "65d429be_ffcc_4241_912d3ac267ff38eb" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_YCoord.SetSize(0); // }} "" // {{ 1700 1 0 "45421200_1eb4_4016_9e3eedaf5c21c4fb" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ZCoord.SetSize(0); // }} "" // {{{ 1701 1 0 "ea3284ae_3936_40a6_8e176652663d22df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChPattern = StrFillRight(i_str_ChPattern, Translate("0"), num_1mL_channels); // }} "" // {{ 1702 1 0 "d17bab88_2fbd_4174_8f521f50eca01ed5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < num_1mL_channels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 1703 1 0 "bc6e9c12_4a3e_4678_88e2cd44f82a6be5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Left = StrLeft(i_str_ChPattern, int_ChIndex); // }} "" // {{{ 1704 1 0 "eb0ccc62_2102_43c2_b1d212aa56e87a85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrRight(str_Left, 1); // }} "" // {{{ 1705 1 0 "5442ac48_8d5d_4872_82a8ef2beac010fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Value = StrIVal(str_Value); // }} "" // {{{ 1706 1 0 "cea0888b_e5c6_4a39_994614c19c896a1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_Positions); // }} "" // {{{ 1707 1 0 "48378fa0_4efc_470a_bfcf2e7a1dd5ada6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(str_LabID); // }} "" // {{ 1708 1 0 "5271c792_0f90_4313_b9ee80baddccb754" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Length > 0) { // }} "" // {{{ 1709 1 0 "da4a5b93_eaf8_4fd1_885a68a7e8ca18df" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::LABWARE_GetCurrentPosition(ML_STAR, i_seq_Positions, flt_XCoord, flt_YCoord, flt_ZCoord); // }} "" // {{ 1710 1 0 "5271c792_0f90_4313_b9ee80baddccb754" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1711 1 0 "ba313086_4375_49f6_abd41ca13a4af42a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Value = 0; // }} "" // {{ 1712 1 0 "36a94f41_c977_4f12_813350e7e8152da4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_XCoord = 0.0; // }} "" // {{ 1713 1 0 "ffdb4130_6264_4f51_b1f4d27f68299dfd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_YCoord = 0.0; // }} "" // {{ 1714 1 0 "401d3a9e_2bb4_4fd6_bbea004914a9660a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_ZCoord = 0.0; // }} "" // {{ 1715 1 0 "5271c792_0f90_4313_b9ee80baddccb754" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1716 1 0 "49d6074f_a2ca_4d93_bda9e2f1c665dc62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(i_seq_Positions, 1); // }} "" // {{ 1717 1 0 "cb8b071e_65a4_4d25_be661f68221bff19" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChPattern.AddAsLast(int_Value); // }} "" // {{ 1718 1 0 "21c9e01d_c8dc_4434_8f8a916f1dea22ca" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_XCoord.AddAsLast(flt_XCoord); // }} "" // {{ 1719 1 0 "3c96631d_be07_4409_8aab142150f3a892" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_YCoord.AddAsLast(flt_YCoord); // }} "" // {{ 1720 1 0 "f5754da9_aa9e_40dd_bfc66e9e4605195b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ZCoord.AddAsLast(i_flt_ZHeight); // }} "" // {{ 1721 1 0 "d17bab88_2fbd_4174_8f521f50eca01ed5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1722 1 0 "bc3248d4_fcfd_4839_9bc70ddc16074dc4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ChPattern = Translate(""); // }} "" // {{ 1723 1 0 "fb480bf5_9422_41ad_bf580a332f7c3fb6" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < num_1mL_channels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 1724 1 0 "0169852a_daf0_458d_89a0c96c106a84cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrConcat2(str_ChPattern, arr_ChPattern.ElementAt( int_ChIndex -1)); // }} "" // {{ 1725 1 0 "fb480bf5_9422_41ad_bf580a332f7c3fb6" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1726 1 0 "cf763692_554d_4c78_b810860624d8ee94" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_InstrumentType <= 2) { // }} "" // {{{ 1727 1 0 "d9a08ca2_ee99_4bc2_9f01f87d3bb051f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_MOVEMENT_TOOLS::Move_Channels_To_Absolute_Position_5mL(ML_STAR, str_ChPattern, 245.0, arr_XCoord, arr_YCoord, arr_ZCoord); // }} "" // {{ 1728 1 0 "cf763692_554d_4c78_b810860624d8ee94" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1729 1 0 "20681df0_f77b_4b27_8c8e4dcb2ea02521" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" VANTAGE_CHANNEL_MOVEMENT_TOOLS::Move_Channels_To_Absolute_Position_5mL(ML_STAR, str_ChPattern, 245.0, arr_XCoord, arr_YCoord, arr_ZCoord); // }} "" // {{ 1730 1 0 "cf763692_554d_4c78_b810860624d8ee94" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1731 1 0 "757fcdca_aa6e_480d_94ef90166fff1412" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 1733 1 0 "757fcdca_aa6e_480d_94ef90166fff1412" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "MOVE_ChannelsToSequencePosition_5mL" "End" } // }} "" // {{{ 5 "TRAVEL_LANES_MoveChannelsToYPosition" "Begin" function TRAVEL_LANES_MoveChannelsToYPosition( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void { // }} "" private variable int_CutNum; private variable flt_X_Origin; private variable int_Length; private variable flt_NotUsed; private variable strFunctionName; private variable str_LabID; private variable strFunctionName_Cut; private variable int_Count; private variable str_PosID; private variable bool_SequenceValid; private variable flt_StartLocation; // {{ 5 "TRAVEL_LANES_MoveChannelsToYPosition" "InitLocals" // }} "" // {{ 2346 1 0 "fed39cb3_2a41_4b9a_a9e4e6c236680025" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2347 1 0 "b1f8a408_3269_4d5e_ab2e97f0c8631e27" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 2349 1 0 "9e9ca11b_956a_4a40_8f3cf60fa60facc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 2350 1 0 "e5de5c58_7f02_41a1_95bf73ab49270ec0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 2351 1 0 "29bb0f72_2259_4145_9e9e81c4d62364fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 2352 1 0 "98492b2d_94a5_4319_a85b076ba025e9b4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 2353 1 0 "38a6d658_3421_4bad_94b2665b7d0f3a12" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 2355 1 0 "fed39cb3_2a41_4b9a_a9e4e6c236680025" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2356 1 0 "082dcee1_295e_435d_ae5670db3d32ca3f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 2357 1 0 "8c839f90_9751_4b29_a5c35aadd4f765a9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2358 1 0 "452bdd5b_1c52_4e18_b39529d92cf19f45" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 2360 1 0 "59a00f0f_9c26_4e5d_aa90fa7299e9f2d7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(ML_STAR, i_seq_TargetSequence, str_LabID, str_PosID); // }} "" // {{ 2361 1 0 "ee831eec_df8e_49b2_a24e7498103a4cdc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 2362 1 0 "d689f2b8_d714_4992_842e75ac343c35b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 2363 1 0 "ee831eec_df8e_49b2_a24e7498103a4cdc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2364 1 0 "8c839f90_9751_4b29_a5c35aadd4f765a9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2365 1 0 "ae7dc69c_e9fa_443e_a7608eae4f204890" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2366 1 0 "d27f7652_0254_4fc2_925d23508dc4ddd0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetLabwareOrigin(ML_STAR, str_LabID, flt_X_Origin, flt_NotUsed, flt_NotUsed); // }} "" // {{ 2367 1 0 "fecd41a2_48a2_4964_9244b97a962667b7" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_StartLocation = flt_X_Origin + i_flt_XOffsetFromOrigin; // }} "" // {{ 2368 1 0 "b41e5ae3_fb15_41f0_a047ee194710b0d1" "ML_STAR:{81DA4252-3BA9-11d4-AE21-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._81DA4252_3BA9_11d4_AE21_0004ACB1DCB2("b41e5ae3_fb15_41f0_a047ee194710b0d1"); // MoveToPosition } // }} "" // {{ 2369 1 0 "3e3a9091_3db7_434f_a9b75033462b69ba" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2370 1 0 "4f585735_c1ef_44ba_b606135f63a37398" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TRAVEL_LANES::MoveChannelsToSequencePosition(ML_STAR, i_seq_TargetSequence); // }} "" // {{ 2371 1 0 "6bd02ad1_2a0e_4ff3_b566673bbdb21624" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 2373 1 0 "6bd02ad1_2a0e_4ff3_b566673bbdb21624" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TRAVEL_LANES_MoveChannelsToYPosition" "End" } // }} "" // {{{ 5 "TRAVEL_LANES_MoveChannelsToYPosition_5mL" "Begin" function TRAVEL_LANES_MoveChannelsToYPosition_5mL( device & ML_STAR, sequence i_seq_TargetSequence, variable i_flt_XOffsetFromOrigin ) void { // }} "" private variable flt_X_Origin; private variable int_CutNum; private variable flt_NotUsed; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable str_LabID; private variable int_Count; private variable str_PosID; private variable bool_SequenceValid; private variable flt_StartLocation; // {{ 5 "TRAVEL_LANES_MoveChannelsToYPosition_5mL" "InitLocals" // }} "" // {{ 2375 1 0 "5cf16b95_c957_49c5_a203b15154150c58" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2376 1 0 "4af1e2b6_ab86_4727_9955953029727dd0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 2378 1 0 "6af72947_dbf8_4317_934b8004839de63a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 2379 1 0 "efb06cde_3389_412f_ab12ddfc678f9cc2" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 2380 1 0 "0caec0a7_b358_4257_b8ea85d7b4565979" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 2381 1 0 "972bb93e_be9d_467a_aba7bf5ceca3dc28" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 2382 1 0 "23e57db2_66b0_480a_af3ca4bec5ac4a59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 2384 1 0 "5cf16b95_c957_49c5_a203b15154150c58" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2385 1 0 "cf30c36f_5218_46f6_a7e6fbcb1ef8723c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 2386 1 0 "2336afa9_3aa1_4221_b3d6f0f8f12e28da" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2387 1 0 "2b415533_3ceb_4dd5_b6217cffbc680a2a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 2389 1 0 "fc29c95e_8d4c_4eb2_b932a885a8f7777a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(ML_STAR, i_seq_TargetSequence, str_LabID, str_PosID); // }} "" // {{ 2390 1 0 "c5e32cea_9e14_4caf_a39f68efe4094027" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_SequenceValid == 0) { // }} "" // {{{ 2391 1 0 "1e293959_f133_460b_96e9951c49f222c0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _FunctionError(strFunctionName, Translate("No more sequence positions!")); // }} "" // {{ 2392 1 0 "c5e32cea_9e14_4caf_a39f68efe4094027" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2393 1 0 "2336afa9_3aa1_4221_b3d6f0f8f12e28da" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2394 1 0 "e06fb03b_67e3_4615_b7ce2e6dcd94ce18" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2395 1 0 "1b727ac6_3e26_4560_823be74692eec0a4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetLabwareOrigin(ML_STAR, str_LabID, flt_X_Origin, flt_NotUsed, flt_NotUsed); // }} "" // {{ 2396 1 0 "648ccba9_0abd_4813_a34e288bd7f688aa" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_StartLocation = flt_X_Origin + i_flt_XOffsetFromOrigin; // }} "" // {{ 2397 1 0 "c3ae49b3_b48a_4e9d_93689c8b7f76643a" "ML_STAR:{55AA8CFA-FB6C-4691-8C8C-8D410E2123FD}" { variable arrRetValues[]; arrRetValues = ML_STAR._55AA8CFA_FB6C_4691_8C8C_8D410E2123FD("c3ae49b3_b48a_4e9d_93689c8b7f76643a"); // XLMoveToPosition } // }} "" // {{ 2398 1 0 "085d08f9_f5f0_47b4_b4aac0703ce04859" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2399 1 0 "23766495_e37b_4719_adc8d795d912c3d0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TRAVEL_LANES::MoveChannelsToSequencePosition_5mL(ML_STAR, i_seq_TargetSequence); // }} "" // {{ 2400 1 0 "cacc1d98_f665_4c7d_a03f70d8db17d145" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 2402 1 0 "cacc1d98_f665_4c7d_a03f70d8db17d145" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TRAVEL_LANES_MoveChannelsToYPosition_5mL" "End" } // }} "" // {{{ 5 "Abstract" "Begin" private function Abstract( ) void { // }} "" // {{ 5 "Abstract" "InitLocals" // }} "" // {{ 1 1 0 "31e944e8_7392_4694_9fd14bcb4377f746" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 5 "Abstract" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=Bare_B$$valid=0$$time=2021-12-13 11:05$$checksum=4c2560a5$$length=085$$ ================================================ FILE: pyhamilton/library/STAR Tools/STAR MPH96 Tools.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 9/28/2021 1:31:16 PM #pragma once #ifndef HSL_RUNTIME namespace STAR_MPH96_TOOLS { function _InitLibrary() { } function _ExitLibrary() { } function MOVE_MPH96ToBack( device & ML_STAR ) void { } function TIP_OFFSET_CleanUpTips_Column( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void { } function TIP_OFFSET_CleanUpTips_Column2( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void { } function TIP_OFFSET_CleanUpTips_Rows( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void { } function TIP_OFFSET_CleanUpTips_Rows2( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void { } function TIP_OFFSET_PickUpTips_Column( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_int_ColumnsNeeded, variable i_str_TipCounter, variable i_bln_UseLeftSide ) variable { return (0); } function TIP_OFFSET_PickUpTips_Rows( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_int_RowsNeeded, variable i_str_TipCounter, variable i_bool_UseTop ) variable { return (0); } function TOOL_ChangePickUpMode( device & ML_STAR, sequence i_seq_TipPositionToAdjust, variable i_int_PickUpMode ) void { } function TOOL_GetLiquidLevelHeight( device & ML_STAR, variable i_str_ReturnValue3FromTipPickUp, variable i_str_ReturnValue3FromPipetting, variable & o_flt_LiquidLevelHeight ) void { } function TOOL_GetTipPresence( device & ML_STAR, variable & o_bln_TipLoaded ) void { } function TOOL_PickUpNextMPH96Tips( device & ML_STAR, sequence & io_seq_SourceTips, variable i_str_TipCounter ) variable { return (0); } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=Bare_B$$valid=0$$time=2021-09-28 13:31$$checksum=3443695f$$length=083$$ ================================================ FILE: pyhamilton/library/STAR Tools/STAR MPH96 Tools.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "HSLStrLib.hsl" #include "STAR Tools\\STAR Tip Tools.hs_" #include "HSLSeqLib.hsl" #include "STAR Tools\\Resources\\SubMethods\\TIP_OFFSET_GLOBAL.hsl" #include "HSLDevLib.hsl" #include "Labware Properties\\Labware_Property_Query.hs_" #include "HSLExtensions\\File.hsl" #include "HSLExtensions\\Sequence.hsl" #include "HSLDeckVisualize.hsl" #include "HSLMlStarStepReturnLib.hsl" #include "HSLUtilLib.hsl" #include "HSL_MethodHelper.hsl" #include "HSLUtilLib2.hsl" #include "Alpha Numeric Conversion\\Alpha Numeric Conversion.hs_" #include "STAR Tools\\Resources\\SubMethods\\FW_HelperLibrary.hs_" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" #include "HSLPTLLib.hsl" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace STAR_MPH96_TOOLS { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" private function ABSTRACT( ) void ; function MOVE_MPH96ToBack( device & ML_STAR ) void ; function TIP_OFFSET_CleanUpTips_Column( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void ; function TIP_OFFSET_CleanUpTips_Column2( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void ; function TIP_OFFSET_CleanUpTips_Rows( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void ; function TIP_OFFSET_CleanUpTips_Rows2( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void ; function TIP_OFFSET_PickUpTips_Column( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_int_ColumnsNeeded, variable i_str_TipCounter, variable i_bln_UseLeftSide ) variable ; function TIP_OFFSET_PickUpTips_Rows( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_int_RowsNeeded, variable i_str_TipCounter, variable i_bool_UseTop ) variable ; function TOOL_ChangePickUpMode( device & ML_STAR, sequence i_seq_TipPositionToAdjust, variable i_int_PickUpMode ) void ; function TOOL_GetLiquidLevelHeight( device & ML_STAR, variable i_str_ReturnValue3FromTipPickUp, variable i_str_ReturnValue3FromPipetting, variable & o_flt_LiquidLevelHeight ) void ; function TOOL_GetTipPresence( device & ML_STAR, variable & o_bln_TipLoaded ) void ; function TOOL_PickUpNextMPH96Tips( device & ML_STAR, sequence & io_seq_SourceTips, variable i_str_TipCounter ) variable ; private function _AddRemainderTipsToCurrentSequence( device & Instrument, sequence & io_seq_TargetSequence, sequence i_seq_RemainderSequence, sequence i_seq_ReturnPositionSequence ) void ; private function _AppendRemainderTipsToCurrentSequence( device & Instrument, sequence & io_seq_TargetSequence, sequence i_seq_RemainderSequence, sequence i_seq_ReturnPositionSequence ) void ; private function _ConvertToFloat( variable & io_Value ) void ; private function _ConvertToInteger( variable & io_Value ) void ; private function _ConvertToString( variable & io_Value ) void ; private function _GetConsecutiveSequencePositions( device & ML_STAR, sequence i_seq_SourcePositions, variable i_int_TotalPositionsNeeded, variable i_bool_RightToLeft, sequence & o_seq_ConsecutivePositions ) void ; private function _GetConsecutiveSequencePositions2( device & ML_STAR, sequence i_seq_SourcePositions, variable i_int_TotalPositionsNeeded, variable i_bool_BottomToFront, sequence & o_seq_ConsecutivePositions ) void ; private function _GetFullSequenceCopy( device & Instrument, sequence i_seq_SequenceToCopy, sequence & o_seq_CopiedSequence ) void ; private function _GetNextTipPickUpPosition( sequence io_seq_Source, sequence & o_seq_TipPickUpPosition ) void ; private function _GetNextTipPickUpPosition_Partial( device & Instrument, sequence i_seq_Source, sequence & o_seq_TipPickUpPosition, variable i_int_TipsNeeded ) void ; private function _GetNextTipPickUpPosition_Partial2( device & Instrument, sequence i_seq_Source, sequence & o_seq_TipPickUpPosition, variable i_int_TipsNeeded ) void ; private function _InitializeLibrary( ) void ; private function _LocalPickUpNextMPH96Tips( device & ML_STAR, sequence & io_seq_SourceTips, variable i_str_TipCounter ) variable ; private function _MoveTipsToOffset( device & ML_STAR ) void ; private function _PickUpTips( device & ML_STAR, variable i_int_TipsNeeded, variable i_bool_PickUpLeft, variable & o_str_ChPattern, variable & o_str_PickUpReturn ) void ; private function _PickUpTips2( device & ML_STAR, variable i_int_TipsNeeded, variable i_bool_PickUpTop, variable o_str_PickUpReturn ) void ; private function _RemoveSequencePositions( sequence & io_seq_SourceSequence, sequence i_seq_PositionsToRemove ) void ; private function _RemoveTruncatedSequencePositions( sequence & io_Sequence ) void ; private function _ReturnTipsToPickUp( device & ML_STAR, variable i_bool_PickUpLeft ) void ; private function _ReturnTipsToPickUp2( device & ML_STAR, variable i_bool_PickUpTop ) void ; private function _SetEmptyPositions( device & ML_STAR, sequence i_seq_SourceTips ) void ; private function _TipCheckMPH96( device & Instrument, sequence & io_seq_Tips, variable i_str_TipCounter ) void ; private function _UpdateTipSequence( sequence & io_SourceTipSequence ) void ; private function __GetSortFilePath( variable & o_str_SortFilePath ) void ; private function __SortSequence( device & Instrument, sequence & io_SequenceToSort, variable i_bool_SortRightToLeft ) void ; private function __SortSequence2( device & Instrument, sequence & io_SequenceToSort, variable i_bool_SortBottomToFront ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" PTL::SetWashingStateDefault("RinseTime1", 5); PTL::SetWashingStateDefault("SoakTime1", 5); PTL::SetWashingStateDefault("FlowRate1", 11); PTL::SetWashingStateDefault("RinseTime2", 0); PTL::SetWashingStateDefault("SoakTime2", 0); PTL::SetWashingStateDefault("FlowRate2", 11); PTL::SetWashingStateDefault("DrainingTime", 10); PTL::SetWashingStateDefault("StartWashLiquid", 0); PTL::SetLoadingStateDefault("RecoveryOptionContinue", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionExclude", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionDefault", 0); PTL::SetLoadingStateDefault("KitLotCheckEnabled", hslFalse); STAR_TIP_TOOLS::_InitLibrary(); LPQ::_InitLibrary(); ANC::_InitLibrary(); FW_HELPERLIBRARY::_InitLibrary(); // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" STAR_TIP_TOOLS::_ExitLibrary(); LPQ::_ExitLibrary(); ANC::_ExitLibrary(); FW_HELPERLIBRARY::_ExitLibrary(); // }} "" } // {{{ 5 "TIP_OFFSET_PickUpTips_Column" "Begin" function TIP_OFFSET_PickUpTips_Column( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_int_ColumnsNeeded, variable i_str_TipCounter, variable i_bln_UseLeftSide ) variable { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable int_TipType; private variable int_TipsNeeded; private variable int_TipOffset_TipType; private variable int_PositionsSet; private variable str_TipLabID; private variable int_TotalEmpty; private variable int_TotalPositions; private variable i; private variable str_LabID; private variable str_PosID; private sequence seq_EjectSequence; private variable o_str_ChannelPattern; private variable ret_str_TipPickUp; private variable bln_ValueFound; private variable str_TipOffsetLabID; private variable int_TotalLabwareSet; private sequence seq_Temp; // {{ 5 "TIP_OFFSET_PickUpTips_Column" "InitLocals" // }} "" // {{ 350 1 0 "ce5c1c34_356a_41c0_b4b4806340f5ae0b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 351 1 0 "e0c47921_12d6_4c68_a3b085c847a1fd98" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 353 1 0 "abb03204_b5cb_40bf_aa5cf0d02c8c0560" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 354 1 0 "d4b15b63_59e0_4498_8f01dc14c5f29f13" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 355 1 0 "07efca4c_e30d_4a9b_8e1f086f3923c9b0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 356 1 0 "0c73957f_1efb_42eb_92878dd65beae9f3" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 357 1 0 "dd7d0464_b8a9_4dfe_87dbbb88f3e90265" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 359 1 0 "ce5c1c34_356a_41c0_b4b4806340f5ae0b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 360 1 0 "6114a867_3a93_4c79_9664b5bebaf479f9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_str_TipPickUp = Translate(""); // }} "" // {{{ 361 1 0 "779bd566_c7d7_4d42_850d72269cdba75f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _InitializeLibrary(); // }} "" // {{ 362 1 0 "1eb62eb1_5cfb_49b0_99ce85922f72aaa5" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 363 1 0 "277d7bcd_ea44_4005_ab3420e2a4f7a2d3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(i_bln_UseLeftSide); // }} "" // {{{ 364 1 0 "35abe8af_0cb0_4153_a79719bcc1080ead" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToInteger(i_int_ColumnsNeeded); // }} "" // {{{ 365 1 0 "9d25b2df_c0af_4d3b_ab3182a58b237d67" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToString(i_str_TipCounter); // }} "" // {{ 366 1 0 "ab700288_575f_423c_9fc8ba274cc3df14" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 367 1 0 "b7a62f8f_31f0_464d_908847991f13f9fd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::GetTipType(ML_STAR, io_seq_SourceTips, int_TipType); // }} "" // {{ 368 1 0 "1a4bbca4_4b6b_45a7_801b61e6b2d454fc" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 369 1 0 "51befcfc_a22f_469f_9ff44fd49b851065" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_TipsNeeded = i_int_ColumnsNeeded * 8; // }} "" // {{ 370 1 0 "27261e16_e2d4_45f6_8d3d1dd2671bd8af" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ColumnsNeeded == 12) { // }} "" // {{{ 371 1 0 "db0a5b22_ce88_49b4_86b2e246039390ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ret_str_TipPickUp = _LocalPickUpNextMPH96Tips(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{{ 372 1 0 "075d20fa_3ec4_4e77_b55a638e0972d537" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{ 373 1 0 "7250f54e_9b02_449c_b73543f64bfe37a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 375 1 0 "7250f54e_9b02_449c_b73543f64bfe37a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 376 1 0 "acace2f0_b332_416b_ab453fae3ee70baf" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_str_TipPickUp); // }} "" // {{ 377 1 0 "27261e16_e2d4_45f6_8d3d1dd2671bd8af" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 378 1 0 "41e38d1b_8588_40b3_8a5c67fd96bc2a3e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(io_seq_SourceTips); // }} "" // {{ 379 1 0 "97c1e183_3f51_49f0_84683b83832edd24" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 380 1 0 "10422613_eb4a_4198_87752a7f3fce2603" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 381 1 0 "05cf2591_0394_4411_a63c03a59ea63382" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetFullSequenceCopy(ML_STAR, i_seq_TipOffset, seq_Temp); // }} "" // {{{ 382 1 0 "a78e6927_5dac_417a_b32416e2d27ee559" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipOffsetLabID = SeqGetLabwareId(seq_Temp); // }} "" // {{{ 383 1 0 "d723fc8d_9fee_4252_953cb72d55e5919e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 384 1 0 "fe91003c_278e_4f31_a13cf15ee9051495" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalLabwareSet=TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.GetSize(); // }} "" // {{ 385 1 0 "5fcd8d69_ea44_4159_9b5ca0c964fae329" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalLabwareSet > 0) { // }} "" // {{{ 386 1 0 "311111e0_e7bc_4548_950b4d6db7a0ac13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_ValueFound = Util::Lookup(TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, str_TipOffsetLabID, TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX); // }} "" // {{ 387 1 0 "4503a7ef_5939_4dc4_acfe15c9a2c43ecf" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX + 1; // }} "" // {{ 388 1 0 "cdbca996_3d27_4d18_b34e4671d669f7e9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::FALSE) { // }} "" // {{ 389 1 0 "e562bbae_b34f_4696_af2d8ef1cd9159a8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1; // }} "" // {{ 390 1 0 "bf8e8f9a_d900_4fee_9c48293fbb4eb385" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0; // }} "" // {{ 391 1 0 "4c82347c_885f_4e6f_88d54914edd10f02" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID); // }} "" // {{ 392 1 0 "f8e50885_acb0_47fe_81e2c6d5994f3422" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 393 1 0 "362e9d62_4b21_4efc_a41d689f384aa2f2" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 394 1 0 "12375f7e_f552_44da_a4b9c023c798bf61" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.AddAsLast(seq_Temp); // }} "" // {{ 395 1 0 "cdbca996_3d27_4d18_b34e4671d669f7e9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 396 1 0 "01e45b7a_e9b3_4cd6_87b8b6233c0308b3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED=TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1); // }} "" // {{ 397 1 0 "5de933e5_12ca_4829_861a4beb096eeb7f" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP=TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1); // }} "" // {{ 398 1 0 "211b468f_505b_4bf0_b3ac025897eafc12" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT=TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1); // }} "" // {{ 399 1 0 "cdbca996_3d27_4d18_b34e4671d669f7e9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 400 1 0 "5fcd8d69_ea44_4159_9b5ca0c964fae329" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 401 1 0 "9dfc29db_8d3a_4a3a_a8e312a8dec82ffb" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1; // }} "" // {{ 402 1 0 "396bf7c3_c77f_4dca_86ecd65c9629c033" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0; // }} "" // {{ 403 1 0 "418a0108_16a9_49d7_9db1c0cc202a65a6" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID); // }} "" // {{ 404 1 0 "9f434972_9d81_4a6f_be229e6ca0ad7f96" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 405 1 0 "39814575_02f3_4890_86e94015849d4547" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 406 1 0 "6cedc4c2_5351_4e07_a3545a18e62423a4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.AddAsLast(seq_Temp); // }} "" // {{ 407 1 0 "5fcd8d69_ea44_4159_9b5ca0c964fae329" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 408 1 0 "e34277b5_855d_430e_81dc0001f5431723" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_2(Translate("Labware Count"), TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED); // }} "" // {{{ 409 1 0 "7b0b8cc4_08f2_4b6e_a421d427eed8bd4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Current Index: "), TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX); // }} "" // {{{ 410 1 0 "3dffa043_0418_4c45_976da07871ef54d8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Current Labware: "), str_TipOffsetLabID); // }} "" // {{{ 411 1 0 "1242426d_dcdb_4eec_87a50c5ba9dd07cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Current Tip Count "), TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 412 1 0 "97c1e183_3f51_49f0_84683b83832edd24" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 413 1 0 "30009288_d7db_47c2_86b5db408f2cf7f9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 414 1 0 "0b28110c_f423_4530_bd9ea89b74d9b3cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipsNeeded < 8) { // }} "" Trace("****************** Column request of ",i_int_ColumnsNeeded," is not achievable because it is less than 8 tips!"); // {{ 416 1 0 "a250ac3d_5a60_416a_b72fb1c57a062857" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 418 1 0 "a250ac3d_5a60_416a_b72fb1c57a062857" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 419 1 0 "9b723ed5_2ea2_44de_98d58169a159f3da" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_str_TipPickUp); // }} "" // {{ 420 1 0 "0b28110c_f423_4530_bd9ea89b74d9b3cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 421 1 0 "6022350b_a6fb_47a5_9afe4fa4f267a53f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipsNeeded > 96) { // }} "" Trace("****************** Column request of ",i_int_ColumnsNeeded," is not achievable because it will exceed 96 tips!"); // {{ 423 1 0 "ef271efa_b858_45be_a33f8305bff5de4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 425 1 0 "ef271efa_b858_45be_a33f8305bff5de4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 426 1 0 "9830c2a3_3651_408f_a7309b79c152a187" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_str_TipPickUp); // }} "" // {{ 427 1 0 "6022350b_a6fb_47a5_9afe4fa4f267a53f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 428 1 0 "30009288_d7db_47c2_86b5db408f2cf7f9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 429 1 0 "8a3c40c0_50f9_4b6a_927b132febbe7216" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ColumnsNeeded < 12) { // }} "" // {{ 430 1 0 "e8ac6986_9552_451d_ad8899520f867601" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (1 == 1) { // }} "" // {{ 431 1 0 "c1a3d487_adeb_49f8_a15d6c169bb4918e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 432 1 0 "3bf6f8c5_450a_45cf_b1ab4d9df5034e69" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 433 1 0 "10a282e2_7302_43d6_9bff7bef3d4b7873" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::GetTipType(ML_STAR, i_seq_TipOffset, int_TipOffset_TipType); // }} "" // {{ 434 1 0 "028f4319_362a_4ffb_a211faa6cd9dbca2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 435 1 0 "aff33c97_6aef_474b_b6bafda5cd71620b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType != int_TipOffset_TipType) { // }} "" // {{ 436 1 0 "5bb4c74c_23aa_4902_a6d13dba12b5364e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipOffset_TipType == -1) { // }} "" // {{ 437 1 0 "c14f36f4_a1b9_4a75_82e11bfb28867df4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 438 1 0 "e9b6002d_ea9b_4f44_a9832d3dd7667e68" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (1 == 1) { // }} "" // {{ 439 1 0 "a361be27_a635_4888_89b4bb734a22edfc" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("===========================================\nCheck for partial rack of tips\n===========================================")); // }} "" // {{{ 440 1 0 "42e6c62f_81a5_4c10_83b856f98b6889c1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition_Partial(ML_STAR, io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH, int_TipsNeeded); // }} "" // {{{ 441 1 0 "2673b4ac_df76_4a2a_998b48aea49f91d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" // {{ 442 1 0 "5b4f71cf_ac6b_45ac_9aa218139e17b2d8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsSet == 0) { // }} "" // {{ 443 1 0 "893d02dc_27d0_42f7_acb660f7851a2dec" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("===========================================\nCheck for full rack of tips\n===========================================")); // }} "" // {{{ 444 1 0 "8528ef26_80ba_44dc_96792899396458fc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" // {{{ 445 1 0 "e99416c3_05e7_48cb_9b3eb92059a4fd2f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" Trace("Full rack check loaded: ",int_PositionsSet); // {{ 447 1 0 "5b4f71cf_ac6b_45ac_9aa218139e17b2d8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" Trace("Partial rack check loaded: ",int_PositionsSet); // {{ 449 1 0 "5b4f71cf_ac6b_45ac_9aa218139e17b2d8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 450 1 0 "90b68604_e757_4d01_b499cae31f3eab91" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsSet == 0) { // }} "" // {{ 451 1 0 "1a6ce72f_6787_4f36_b37d41dab28630a3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("===========================================\nMore tips are needed\n===========================================")); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 452 1 0 "af87957b_0cb0_4fbb_8a312dcb8dd017cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 453 1 0 "02c48498_fd18_430c_8acf9cd07a764d9f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{ 454 1 0 "90b68604_e757_4d01_b499cae31f3eab91" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 455 1 0 "cbfd2ff9_b652_4e04_980416bd41561fc5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsSet > 1) { // }} "" // {{ 456 1 0 "432e5a5b_16d0_4405_bb6536f2ce5a6624" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 457 1 0 "cbfd2ff9_b652_4e04_980416bd41561fc5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 458 1 0 "e9b6002d_ea9b_4f44_a9832d3dd7667e68" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 459 1 0 "2b8af687_a204_498b_aed87630e1edd19e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" // {{{ 460 1 0 "d22ddf1f_11ec_4042_8e710ee598d92233" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP); // }} "" // {{{ 461 1 0 "a90e1c57_8046_4f33_a1f1e0c0a4acb51a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _UpdateTipSequence(io_seq_SourceTips); // }} "" // {{{ 462 1 0 "1acf219d_d41d_4978_a058d08dee1bab0f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipLabID = SeqGetLabwareId(i_seq_TipOffset); // }} "" // {{{ 463 1 0 "a8fabe4b_f198_47eb_baeeabe9f6ffcf8d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{{ 464 1 0 "70b997e3_2a36_438e_b4a429c7954d5af2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _MoveTipsToOffset(ML_STAR); // }} "" // {{ 465 1 0 "c14f36f4_a1b9_4a75_82e11bfb28867df4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 466 1 0 "5bb4c74c_23aa_4902_a6d13dba12b5364e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 467 1 0 "a455ea1c_cc9a_4a94_847db4281a4abdc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED > 0) { // }} "" // {{ 468 1 0 "34e0ad8c_b7b1_4bd2_bf0b5e1119ad44a0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 469 1 0 "aa5f39e3_3a69_4d71_bcd8f7c32ec76c86" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _AddRemainderTipsToCurrentSequence(ML_STAR, io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 470 1 0 "3d25a067_deed_4d34_928540e7e411af22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{{ 471 1 0 "67269557_e423_45f7_bc53a940714421c6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition_Partial(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, seq_EjectSequence, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 472 1 0 "8f2440ae_b0fb_48ce_99c4bedde412aaba" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalEmpty == 0) { // }} "" // {{{ 473 1 0 "1643e4fa_0e10_4982_8f310112c801524d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalEmpty = SeqGetTotal(seq_EjectSequence); // }} "" // {{{ 474 1 0 "4538720b_ca11_4310_afe274fbc0dbd93b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetConsecutiveSequencePositions(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED, 1, seq_EjectSequence); // }} "" // {{{ 475 1 0 "24335787_e6f5_473c_916fbc68c2285e33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalEmpty = SeqGetTotal(seq_EjectSequence); // }} "" // {{ 476 1 0 "7e6fc093_c8fd_4382_8a1055e1fdab2d5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalEmpty > 0) { // }} "" // {{{ 477 1 0 "7fe6dc5c_56e1_487b_b16dde36cdaff68b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, seq_EjectSequence); // }} "" // {{ 478 1 0 "7e6fc093_c8fd_4382_8a1055e1fdab2d5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 479 1 0 "8f2440ae_b0fb_48ce_99c4bedde412aaba" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 480 1 0 "7747a710_81d4_428c_982173b7977da3c4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, seq_EjectSequence); // }} "" // {{ 481 1 0 "8f2440ae_b0fb_48ce_99c4bedde412aaba" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 482 1 0 "03ce5a15_ac81_42d4_b4684940b90bfa8d" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(1); // }} "" // {{{ 483 1 0 "2be63aa1_bdff_4f3c_a40605a9d65ed463" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 1); // }} "" // {{{ 484 1 0 "34d0dd19_316e_4b9c_bf4ee02dc3490b3b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ReturnTipsToPickUp(ML_STAR, i_bln_UseLeftSide); // }} "" // {{ 485 1 0 "a455ea1c_cc9a_4a94_847db4281a4abdc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 486 1 0 "3cc42431_bf93_45cc_b2e20e71d8ad100c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 487 1 0 "af2f9a61_b745_4ba0_baf24fefc883fb10" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (1 == 1) { // }} "" // {{ 488 1 0 "f0479fc8_2d80_4b55_b69572baa2268bce" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("===========================================\nCheck for partial rack of tips\n===========================================")); // }} "" // {{{ 489 1 0 "dd35cdd5_57b4_4d1e_8bc53c02ecef8eaf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition_Partial(ML_STAR, io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH, int_TipsNeeded); // }} "" // {{{ 490 1 0 "d22d1672_b5f6_46d3_ab404cbc131b73a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" // {{ 491 1 0 "2f493850_4a11_4552_9804fdfb9d87d72e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsSet == 0) { // }} "" // {{ 492 1 0 "fbf2a17e_deff_4978_ab6de7709a7a165a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("===========================================\nCheck for full rack of tips\n===========================================")); // }} "" // {{{ 493 1 0 "12b51a04_5692_4dba_953b63590cbf8aee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" // {{{ 494 1 0 "94a4d4ba_9270_4039_a834d4fe2b766040" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" Trace("Full rack check loaded: ",int_PositionsSet); // {{ 496 1 0 "2f493850_4a11_4552_9804fdfb9d87d72e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" Trace("Partial rack check loaded: ",int_PositionsSet); // {{ 498 1 0 "2f493850_4a11_4552_9804fdfb9d87d72e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 499 1 0 "8f18c5ac_bc06_493a_888f0a47ebb97bfe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsSet == 0) { // }} "" // {{ 500 1 0 "47c7fbd0_296d_459c_a0f333cdfd3e088f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("===========================================\nMore tips are needed\n===========================================")); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 501 1 0 "d283599d_cf68_4418_ba70b9114f6c9d74" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 502 1 0 "06fcda5d_5857_40c6_878e8e4c115b694c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{ 503 1 0 "8f18c5ac_bc06_493a_888f0a47ebb97bfe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 504 1 0 "607ef0f3_2293_458a_a5341a1fc1f632ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsSet > 1) { // }} "" // {{ 505 1 0 "18a6fb97_69ac_4daa_beac9a5edace490b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 506 1 0 "607ef0f3_2293_458a_a5341a1fc1f632ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 507 1 0 "af2f9a61_b745_4ba0_baf24fefc883fb10" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 508 1 0 "7c47b153_44c3_4258_af0dc17f761f458b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" // {{{ 509 1 0 "f7c42a7c_2449_4d63_ab673482e48962fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP); // }} "" // {{{ 510 1 0 "d04b074c_6899_460b_978a69b95eea3d10" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _UpdateTipSequence(io_seq_SourceTips); // }} "" // {{{ 511 1 0 "b3b8bd7d_a34b_4997_b06d9df31a60a7fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipLabID = SeqGetLabwareId(i_seq_TipOffset); // }} "" // {{{ 512 1 0 "132177cb_89b7_4f7b_8cbe1e5a9f0cce23" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{{ 513 1 0 "6ed70740_a923_451d_97dcaff4ead1c0e0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _MoveTipsToOffset(ML_STAR); // }} "" // {{ 514 1 0 "3cc42431_bf93_45cc_b2e20e71d8ad100c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 515 1 0 "5bb4c74c_23aa_4902_a6d13dba12b5364e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 516 1 0 "aff33c97_6aef_474b_b6bafda5cd71620b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 517 1 0 "028f4319_362a_4ffb_a211faa6cd9dbca2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 518 1 0 "3bf6f8c5_450a_45cf_b1ab4d9df5034e69" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 519 1 0 "49f3d3fb_f971_4fea_b183fc180f42b4f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _SetEmptyPositions(ML_STAR, io_seq_SourceTips); // }} "" // {{ 520 1 0 "59d343a3_ed5a_42a8_80a7edac94e602d6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 521 1 0 "87aea14d_330a_4fca_9ba6e5df02636974" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED > 0) { // }} "" // {{ 522 1 0 "171d0e37_e6da_4cd6_8b6ec2700588911f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED < int_TipsNeeded) { // }} "" // {{ 523 1 0 "2b1a9911_c2b3_4e96_9af5ef94f4ffc132" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 524 1 0 "70a0c737_13d1_4c9d_acfd5f50ddbb4728" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{{ 525 1 0 "fa17ca2f_4988_4c27_845a3fcbc62c6d5e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition_Partial(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, seq_EjectSequence, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{{ 526 1 0 "a6961e31_ef33_4761_8ae8e5ec64feacb9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalEmpty = SeqGetTotal(seq_EjectSequence); // }} "" // {{ 527 1 0 "ec79662b_fa45_438a_8b4ecd0811f94b8a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalEmpty == 0) { // }} "" // {{{ 528 1 0 "c6a0f427_7094_4f32_acecbdd283c1c7ff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetConsecutiveSequencePositions(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED, 1, seq_EjectSequence); // }} "" // {{{ 529 1 0 "e2e4f511_bf9b_4190_9bf6ba655a590a22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalEmpty = SeqGetTotal(seq_EjectSequence); // }} "" Trace("Total Empty: ",int_TotalEmpty); // {{ 531 1 0 "9a67ade1_1343_474c_9743860bcb9d19f9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalEmpty > 0) { // }} "" // {{{ 532 1 0 "ccf262e6_1156_4576_882443c685849c69" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, seq_EjectSequence); // }} "" // {{ 533 1 0 "9a67ade1_1343_474c_9743860bcb9d19f9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 534 1 0 "ec79662b_fa45_438a_8b4ecd0811f94b8a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 535 1 0 "0b2eb27c_8605_4e83_b9a5024776207b6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, seq_EjectSequence); // }} "" // {{ 536 1 0 "ec79662b_fa45_438a_8b4ecd0811f94b8a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 537 1 0 "f7caaf20_e278_4b03_ae3285ad5de0c048" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 1); // }} "" // {{ 538 1 0 "064d3e56_4d55_40a5_9a37b82d614afb35" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < TIP_OFFSET_GLOBAL::INT::TIPS_LOADED;) { i = i + 1; // }} "" // {{ 539 1 0 "3a00ee56_dcf7_4928_8ef2cf790023019d" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(i); // }} "" // {{{ 540 1 0 "ee063318_ba1c_46ec_a4713c945395d2ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{{ 541 1 0 "b2683662_cb51_4d4e_aa7a929b1443d29b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{{ 542 1 0 "3fcf0bda_b319_486e_b8e37ce528c5a040" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(io_seq_SourceTips, str_LabID, str_PosID); // }} "" // {{ 543 1 0 "064d3e56_4d55_40a5_9a37b82d614afb35" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 544 1 0 "9e9f324b_53e0_486c_b371405edb842234" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(1); // }} "" // {{ 545 1 0 "e5974c41_222c_45b3_bf1784e8da042d6d" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_seq_SourceTips.SetCurrentPosition(1); // }} "" // {{{ 546 1 0 "7ad37697_9926_4f49_844c904c5ad45711" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ReturnTipsToPickUp(ML_STAR, i_bln_UseLeftSide); // }} "" // {{{ 547 1 0 "9a14f0aa_fac3_47af_a77e2312b127f48a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, io_seq_SourceTips, 0); // }} "" // {{{ 548 1 0 "4a5f2ab8_ff5b_4329_b2332881d6fe1c0a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{{ 549 1 0 "f75c35da_a70b_404b_8efdcd06fe0f8133" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate("")); // }} "" // {{ 550 1 0 "171d0e37_e6da_4cd6_8b6ec2700588911f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 551 1 0 "87aea14d_330a_4fca_9ba6e5df02636974" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 552 1 0 "e57d2a4d_9de9_49d4_b3aef00b390ff27b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 553 1 0 "35ca4568_aa7f_4f30_a7d7bbb1dfbfd59c" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (1 == 1) { // }} "" // {{ 554 1 0 "59f1e435_bb8d_4b4a_95671070d7551b4b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("===========================================\nCheck for partial rack of tips\n===========================================")); // }} "" // {{{ 555 1 0 "486f779d_1127_4812_9c9c45d3d0148df6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition_Partial(ML_STAR, io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH, int_TipsNeeded); // }} "" // {{{ 556 1 0 "daa06dec_b347_4589_af413ae70caa6dcf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" // {{ 557 1 0 "9abd73d4_2420_445e_801eecef9d692539" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsSet == 0) { // }} "" // {{ 558 1 0 "6fbcbca0_7127_40c9_a48a1a3881e2346d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("===========================================\nCheck for full rack of tips\n===========================================")); // }} "" // {{{ 559 1 0 "dba846d3_50d6_4f70_be8b0ca01355f2df" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" // {{{ 560 1 0 "e1a898b1_7cf2_4023_85a58c693f7919ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" Trace("Full rack check loaded: ",int_PositionsSet); // {{ 562 1 0 "9abd73d4_2420_445e_801eecef9d692539" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" Trace("Partial rack check loaded: ",int_PositionsSet); // {{ 564 1 0 "9abd73d4_2420_445e_801eecef9d692539" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 565 1 0 "deda604d_09d4_41c3_bdfc1baf6c943366" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsSet == 0) { // }} "" // {{ 566 1 0 "a5aae345_2864_43e3_982276983eec44c3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("===========================================\nMore tips are needed\n===========================================")); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 567 1 0 "adf4693c_8033_4202_beba1aaae44d2ed7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 568 1 0 "50ceada0_46af_4d03_a171d42e742d56e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{{ 569 1 0 "526314bc_28b3_4b93_9dd5ffa7037f1028" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate("")); // }} "" // {{ 570 1 0 "deda604d_09d4_41c3_bdfc1baf6c943366" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 571 1 0 "90e5ff2e_5479_4c3e_8d41a23665831978" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsSet > 0) { // }} "" // {{ 572 1 0 "56a989bf_6d26_4172_917a8b136c9ba152" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 573 1 0 "90e5ff2e_5479_4c3e_8d41a23665831978" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 574 1 0 "35ca4568_aa7f_4f30_a7d7bbb1dfbfd59c" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 575 1 0 "61c50ab9_b1e1_47ff_84153f17acaa1956" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" // {{{ 576 1 0 "8d73363c_bf4e_4031_a88cae1f08ae088f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP); // }} "" // {{{ 577 1 0 "cd6d1bce_b534_4588_bda49965e8e3ce6b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _UpdateTipSequence(io_seq_SourceTips); // }} "" // {{{ 578 1 0 "1f12bb93_3bfb_4bb3_abc24e6f0d4f58e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipLabID = SeqGetLabwareId(i_seq_TipOffset); // }} "" // {{{ 579 1 0 "2a8026c7_26b0_40ea_af55ff55908fdcb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{{ 580 1 0 "f4d558d0_4036_4c6a_9219057f1cb8846b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _MoveTipsToOffset(ML_STAR); // }} "" // {{ 581 1 0 "e57d2a4d_9de9_49d4_b3aef00b390ff27b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 582 1 0 "87aea14d_330a_4fca_9ba6e5df02636974" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 583 1 0 "59d343a3_ed5a_42a8_80a7edac94e602d6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 584 1 0 "2e3b5bae_5ae0_4aad_b23bc9287da862b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace("Tips loaded: ",TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // {{ 586 1 0 "91dfa591_f32c_4ba9_a2c79c7d088092f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED > 0) { // }} "" // {{{ 587 1 0 "a53b2772_0802_4817_86971e8216196dc1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _PickUpTips(ML_STAR, int_TipsNeeded, i_bln_UseLeftSide, o_str_ChannelPattern, ret_str_TipPickUp); // }} "" // {{ 588 1 0 "d24729a4_866e_472f_9308cfafb6178358" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 589 1 0 "91dfa591_f32c_4ba9_a2c79c7d088092f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 590 1 0 "2e3b5bae_5ae0_4aad_b23bc9287da862b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 591 1 0 "e8ac6986_9552_451d_ad8899520f867601" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 592 1 0 "8a3c40c0_50f9_4b6a_927b132febbe7216" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 593 1 0 "14fcae38_360c_4855_983a97b107c44902" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("====================================================================\nPick up full rack of tips\n====================================================================")); // }} "" // {{ 594 1 0 "91d362a7_39ba_4c73_9ac79926a0a0a4aa" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (1 == 1) { // }} "" // {{{ 595 1 0 "0ea71de7_2843_4a6a_9948358b8c8f32e3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP); // }} "" // {{{ 596 1 0 "a7427faf_ffe4_4803_94e7652d0b44523f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP); // }} "" // {{ 597 1 0 "fb59abdf_10b9_44b5_9931cd2a91371ca2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalPositions != 96) { // }} "" // {{{ 598 1 0 "de2c851d_458e_4b68_b9a8b7a358e9cd29" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{ 599 1 0 "fb59abdf_10b9_44b5_9931cd2a91371ca2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 600 1 0 "04d61552_7868_4f4e_bd3b1c5cbf907f53" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 601 1 0 "fb59abdf_10b9_44b5_9931cd2a91371ca2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 602 1 0 "91d362a7_39ba_4c73_9ac79926a0a0a4aa" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 603 1 0 "fe66ae2d_9524_4eac_88ab280f7aad22fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_ChannelPattern = StrFillRight(o_str_ChannelPattern, Translate("1"), 96); // }} "" // {{{ 604 1 0 "70eea0d0_42a5_43cf_a700d322fdc78a39" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveSequencePositions(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP); // }} "" // {{ 605 1 0 "e3eaea72_9856_48fc_a05d8ad66c3c28b6" "ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}" { variable arrRetValues[]; arrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B("e3eaea72_9856_48fc_a05d8ad66c3c28b6"); // Head96TipPickUp } // }} "" // {{ 606 1 0 "8a3c40c0_50f9_4b6a_927b132febbe7216" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 607 1 0 "5d55e608_6285_4bb3_88ea4bc471104553" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(io_seq_SourceTips); // }} "" // {{{ 608 1 0 "f4619230_0cf4_422a_885f964ecd7f2c8f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, io_seq_SourceTips, 0); // }} "" // {{{ 609 1 0 "26923782_51aa_4b83_9885b1cf5af149ac" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{ 610 1 0 "c6eb64a8_b815_41a3_877ba1335f2f6416" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.SetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 611 1 0 "c4175a83_ea38_4cfa_b5d157359a270d92" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.SetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{{ 612 1 0 "cf0d8701_043b_4bad_99984d8aaa29e8de" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{ 613 1 0 "c642eda8_5bb7_49ce_aebeff1531874a36" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.SetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{{ 614 1 0 "11684f8f_fb1c_451d_a712eb16bf1b3d39" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate("")); // }} "" // {{ 615 1 0 "623b3308_f030_495c_93841a5c260b0af5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 617 1 0 "623b3308_f030_495c_93841a5c260b0af5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 618 1 0 "2bba4322_d98f_4170_b1a3e9a05de6284c" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_str_TipPickUp); // }} "" // {{{ 5 "TIP_OFFSET_PickUpTips_Column" "End" } // }} "" // {{{ 5 "_ConvertToInteger" "Begin" private function _ConvertToInteger( variable & io_Value ) void { // }} "" // {{ 5 "_ConvertToInteger" "InitLocals" // }} "" // {{{ 1004 1 0 "0f4e5b2c_07aa_4b83_a8490475e678bbe6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_Value = StrConcat2(io_Value, Translate("")); // }} "" // {{{ 1005 1 0 "63683344_24b9_40e5_bb9211bc2ea69d36" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_Value = StrIVal(io_Value); // }} "" // {{{ 5 "_ConvertToInteger" "End" } // }} "" // {{{ 5 "_ConvertToString" "Begin" private function _ConvertToString( variable & io_Value ) void { // }} "" // {{ 5 "_ConvertToString" "InitLocals" // }} "" // {{{ 1007 1 0 "3f07a3ae_c7de_4c01_9700cfc952861fed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_Value = StrConcat2(io_Value, Translate("")); // }} "" // {{{ 5 "_ConvertToString" "End" } // }} "" // {{{ 5 "_ConvertToFloat" "Begin" private function _ConvertToFloat( variable & io_Value ) void { // }} "" // {{ 5 "_ConvertToFloat" "InitLocals" // }} "" // {{{ 1001 1 0 "64f127f8_36ef_488e_84f8a2689ede1b34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_Value = StrConcat2(io_Value, Translate("")); // }} "" // {{{ 1002 1 0 "29d525a6_c3fb_4c51_8dce385140f891a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_Value = StrFVal(io_Value); // }} "" // {{{ 5 "_ConvertToFloat" "End" } // }} "" // {{{ 5 "_InitializeLibrary" "Begin" private function _InitializeLibrary( ) void { // }} "" // {{ 5 "_InitializeLibrary" "InitLocals" // }} "" // {{{ 1334 1 0 "5ca82ef0_a9fd_4130_b52b46bc6948da23" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_OFFSET_GLOBAL::INIT::InitializeVariables(); // }} "" // {{ 1335 1 0 "866dec1f_b6ea_4c2e_8ba5f9e50492dd70" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (TIP_OFFSET_GLOBAL::BOOL::LIBRARY_INITIALIZED == 0) { // }} "" // {{{ 1336 1 0 "4903bd5a_b665_4b45_af569d7155a04a70" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP); // }} "" // {{{ 1337 1 0 "7c6a98fb_92c8_4361_909576062c764779" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::TIP_REFRESH); // }} "" // {{{ 1338 1 0 "813398d8_4d95_4e3e_b843d4855651a8d8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{{ 1339 1 0 "c1f56ff1_5273_4e77_8e02747aa68b7700" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{{ 1340 1 0 "d4c6dbd7_8307_4da3_ba0eee7d68c32ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" // {{{ 1341 1 0 "faa7c48c_33c3_4e4c_b8b1a404e98c618b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS); // }} "" // {{ 1342 1 0 "3a0b33c0_f148_4ff2_9690e3a4c6dae444" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::BOOL::LIBRARY_INITIALIZED = 1; // }} "" // {{ 1343 1 0 "99e0d552_cc82_44b8_896fad1bdac53ec5" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.SetSize(0); // }} "" // {{ 1344 1 0 "ca6ae92c_5321_4ce0_8819c137a3632afa" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.SetSize(0); // }} "" // {{ 1345 1 0 "ae157ecc_5322_4ce8_b2c66726c5959de7" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.SetSize(0); // }} "" // {{ 1346 1 0 "c7bae597_086c_4ff0_8b1bbc16cfb5757f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.SetSize(0); // }} "" // {{ 1347 1 0 "866dec1f_b6ea_4c2e_8ba5f9e50492dd70" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "_InitializeLibrary" "End" } // }} "" // {{{ 5 "_SetEmptyPositions" "Begin" private function _SetEmptyPositions( device & ML_STAR, sequence i_seq_SourceTips ) void { // }} "" private variable int_PositionFound; private variable i; private variable int_LoopNum; private variable str_LabID; private variable str_PosID; private sequence seq_Temp; // {{ 5 "_SetEmptyPositions" "InitLocals" // }} "" // {{{ 1612 1 0 "bec39be5_e1ce_49ee_99a3b2e2fc79f35b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS); // }} "" // {{{ 1613 1 0 "373f8295_491c_4609_85a0e592fe4b9772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_Temp); // }} "" // {{{ 1614 1 0 "b19e71b5_739f_433b_a9954594533aca26" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetFullSequenceCopy(ML_STAR, i_seq_SourceTips, seq_Temp); // }} "" // {{{ 1615 1 0 "7e72c16e_41bb_42f7_8cc2b10b97383b55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_LoopNum = SeqGetTotal(seq_Temp); // }} "" // {{ 1616 1 0 "33ade1ee_f397_400e_a2c8e34238e04643" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_LoopNum;) { i = i + 1; // }} "" // {{ 1617 1 0 "8eb5d13a_2b7a_4f9c_a70b9bcc5eb00f4f" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Temp.SetCurrentPosition(i); // }} "" // {{{ 1618 1 0 "0e986024_f3fa_44ab_bff7e8539b65c60c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_Temp); // }} "" // {{{ 1619 1 0 "d8cf47d0_a9af_4382_910cc1d7e73cdb2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(seq_Temp); // }} "" // {{{ 1620 1 0 "b059ff28_718d_40f0_b8eecbd102594217" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_PositionFound = SeqLookupPosition(i_seq_SourceTips, str_LabID, str_PosID, 1, 1); // }} "" // {{ 1621 1 0 "64a3e231_da5a_4150_92f057180b4e90c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionFound == 0) { // }} "" // {{{ 1622 1 0 "3a5eb766_5ff6_4674_8dc481eff121de94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, str_LabID, str_PosID); // }} "" // {{ 1623 1 0 "64a3e231_da5a_4150_92f057180b4e90c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1624 1 0 "33ade1ee_f397_400e_a2c8e34238e04643" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1625 1 0 "0a8f1d42_5845_45de_88eb10ca42c17070" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS.SetCurrentPosition(1); // }} "" // {{{ 1626 1 0 "618413be_92fe_4890_a1d956157ba21890" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, 0); // }} "" // {{{ 5 "_SetEmptyPositions" "End" } // }} "" // {{{ 5 "_GetFullSequenceCopy" "Begin" private function _GetFullSequenceCopy( device & Instrument, sequence i_seq_SequenceToCopy, sequence & o_seq_CopiedSequence ) void { // }} "" // {{ 5 "_GetFullSequenceCopy" "InitLocals" { sequence __temp; o_seq_CopiedSequence = __temp; } // }} "" // {{{ 1153 1 0 "76f24ba0_d9bb_44cb_907313946cfafbb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_CopiedSequence); // }} "" { Instrument.CopyResetSequence(i_seq_SequenceToCopy.GetName(),o_seq_CopiedSequence); } // {{{ 5 "_GetFullSequenceCopy" "End" } // }} "" // {{{ 5 "__SortSequence" "Begin" private function __SortSequence( device & Instrument, sequence & io_SequenceToSort, variable i_bool_SortRightToLeft ) void { // }} "" private variable flt_X_Coord; private variable flt_NotUsed; private variable flt_Y_Coord; private variable i; private variable str_LabID; private variable str_Sort; private variable bool_FileExists; private variable str_PosID; private variable str_TempSortFile; private variable int_TotalPositions; private file SortFile; // {{ 5 "__SortSequence" "InitLocals" // }} "" // {{{ 1685 1 0 "c7250728_500d_443b_99efe18f5cf6f7ac" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __GetSortFilePath(str_TempSortFile); // }} "" // {{{ 1686 1 0 "07b21c06_fe73_47dd_811bc3c37037385f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(str_TempSortFile); // }} "" // {{ 1687 1 0 "8080b267_14f4_416d_8f61a839ed8d59ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 1) { // }} "" // {{{ 1688 1 0 "7f844e27_7583_4360_8ec958cd4e3b71e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(str_TempSortFile); // }} "" // {{ 1689 1 0 "8080b267_14f4_416d_8f61a839ed8d59ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1690 1 0 "4709b717_6db6_4513_b824ba76105e8328" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(io_SequenceToSort); // }} "" // {{{ 1691 1 0 "f897205d_781a_427c_b7deb67afcda2169" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(io_SequenceToSort); // }} "" // {{ 1692 1 0 "ab16f8cb_27b7_46aa_bf65a2fc62404977" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("POS_ID", str_PosID, hslString, 255); SortFile.AddField("X_COORD", flt_X_Coord, hslFloat); SortFile.AddField("Y_COORD", flt_Y_Coord, hslFloat); if( 0 == SortFile.Open(str_TempSortFile + " " + "SORT_FILE", hslWrite) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_TempSortFile, "HxMetEdCompCmd"); } // }} "" // {{ 1693 1 0 "b3990bb1_1006_4f79_93bad835ceff159d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalPositions;) { i = i + 1; // }} "" // {{ 1694 1 0 "d48fbe3e_d26f_4503_8e730a8b0839858a" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_SequenceToSort.SetCurrentPosition(i); // }} "" // {{{ 1695 1 0 "4e209772_49da_424c_af843e783e53d2e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(io_SequenceToSort); // }} "" // {{{ 1696 1 0 "117b5c85_5a7b_4d39_b7a321b501a1ae32" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(io_SequenceToSort); // }} "" // {{{ 1697 1 0 "77056d3d_c625_4860_89a2a893782d5b21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(Instrument, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_NotUsed, flt_NotUsed); // }} "" // {{ 1698 1 0 "37c05529_b559_49fe_b7c73f1d6855751b" "{B31F3537-5D80-11d4-A5EB-0050DA737D89}" if( 0 == SortFile.WriteRecord() ) { MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1699 1 0 "b3990bb1_1006_4f79_93bad835ceff159d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1700 1 0 "28fc4f58_0a9e_4ae5_aefa86f1c347579f" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != SortFile.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } SortFile.RemoveFields(); // }} "" // {{ 1701 1 0 "f8105c71_4115_40de_88fcf56fd8193bab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bool_SortRightToLeft == 1) { // }} "" // {{{ 1702 1 0 "790328eb_f1ba_499f_b172c6f59a2f3127" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Sort = StrConcat2(Translate("SELECT * FROM SORT_FILE ORDER BY LAB_ID ASC, X_COORD DESC, Y_COORD DESC"), Translate("")); // }} "" // {{ 1703 1 0 "f8105c71_4115_40de_88fcf56fd8193bab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1704 1 0 "d19b186e_d6d3_4506_ae534daa78bc87c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Sort = StrConcat2(Translate("SELECT * FROM SORT_FILE ORDER BY LAB_ID ASC, X_COORD ASC, Y_COORD DESC"), Translate("")); // }} "" // {{ 1705 1 0 "f8105c71_4115_40de_88fcf56fd8193bab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1706 1 0 "62c8b0c0_b700_4258_96828ccc79691886" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("POS_ID", str_PosID, hslString, 255); SortFile.AddField("X_COORD", flt_X_Coord, hslFloat); SortFile.AddField("Y_COORD", flt_Y_Coord, hslFloat); if( 0 == SortFile.Open(str_TempSortFile + " " + "SORT_FILE", hslRead, str_Sort) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_TempSortFile, "HxMetEdCompCmd"); } // }} "" // {{{ 1707 1 0 "d3557743_d66e_4d00_81e2ebbc3d425d6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(io_SequenceToSort); // }} "" // {{ 1708 1 0 "f58bd002_2a41_44bb_96263491416bc0e4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while ( (SortFile.Eof() == 0) ) { // }} "" // {{ 1709 1 0 "37ee64fc_c25b_46c4_bed73e3caca58200" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == SortFile.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 1710 1 0 "07a5419c_d9e4_46d1_9686df9c9841b994" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(io_SequenceToSort, str_LabID, str_PosID); // }} "" // {{ 1711 1 0 "f58bd002_2a41_44bb_96263491416bc0e4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1712 1 0 "ec947c43_287b_42a9_a8d57153cd8c93a1" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != SortFile.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } SortFile.RemoveFields(); // }} "" // {{ 1713 1 0 "69b8007e_4a36_43fc_8f7cc2ec813e5c2f" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_SequenceToSort.SetCurrentPosition(1); // }} "" // {{{ 5 "__SortSequence" "End" } // }} "" // {{{ 5 "__GetSortFilePath" "Begin" private function __GetSortFilePath( variable & o_str_SortFilePath ) void { // }} "" private variable str_FilePath; private variable str_FileName; // {{ 5 "__GetSortFilePath" "InitLocals" o_str_SortFilePath = 0; // }} "" // {{ 1675 1 0 "f45c3f3d_a669_4d27_985a94c9c7223498" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_SortFilePath = Translate(""); // }} "" // {{ 1676 1 0 "21c8585e_456c_473d_9e3bd920ddc823a2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_FilePath = Translate(""); // }} "" str_FilePath = GetFileName(); // {{{ 1678 1 0 "8c10f6d9_deef_41ac_8e1d4c76b9bb543d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FileName = HSLExtensions::File::GetFileName(str_FilePath); // }} "" // {{{ 1679 1 0 "5328d9e7_a8fa_427c_971ba6d643bf1f71" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(str_FilePath, str_FileName, Translate("")); // }} "" // {{{ 1680 1 0 "ace2decf_01c0_4906_bacc924e4fedc14a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FilePath = StrConcat8(str_FilePath, Translate(""), Translate("Resources"), Translate("\\"), Translate("TEMP_SORT_FILE"), Translate(".xls"), Translate(""), Translate("")); // }} "" // {{{ 1681 1 0 "c75a5479_3215_4507_a19182a600dacb22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(str_FilePath, Translate("\\"), Translate("\\\\")); // }} "" // {{ 1682 1 0 "a1eeddc6_1066_41ac_ad57e73ef40fd73a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_SortFilePath = str_FilePath; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Sort File Path: ",o_str_SortFilePath); /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 5 "__GetSortFilePath" "End" } // }} "" // {{{ 5 "_RemoveTruncatedSequencePositions" "Begin" private function _RemoveTruncatedSequencePositions( sequence & io_Sequence ) void { // }} "" private variable int_CurrentPosition; private variable i; private variable int_TotalSequencePositions; private variable str_LabID; private variable str_PosID; private sequence seq_AdjustedSequence; // {{ 5 "_RemoveTruncatedSequencePositions" "InitLocals" // }} "" // {{ 1488 1 0 "f0576766_99ca_40f6_a70238ea7138a611" "{B31F353B-5D80-11d4-A5EB-0050DA737D89}" int_CurrentPosition = io_Sequence.GetCurrentPosition(); // }} "" // {{{ 1489 1 0 "15b8b90b_b1ec_46ed_a39717391260a3e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_AdjustedSequence); // }} "" // {{{ 1490 1 0 "84d97774_daee_4328_9fe936caa6c377cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq_AdjustedSequence, io_Sequence); // }} "" // {{{ 1491 1 0 "494b182e_7379_4f8b_a303322ad407fc66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalSequencePositions = SeqGetTotal(seq_AdjustedSequence); // }} "" // {{{ 1492 1 0 "d3bf6f04_8ce9_42a1_9aa68f6f8323edc5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(io_Sequence); // }} "" // {{ 1493 1 0 "c497bd36_a602_4715_aaa7662bb925da21" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_AdjustedSequence.SetCurrentPosition(int_CurrentPosition); // }} "" // {{ 1494 1 0 "429ef5df_b380_4aec_a24a87aa59c2f07f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalSequencePositions;) { i = i + 1; // }} "" // {{{ 1495 1 0 "ec6b4405_125d_4f25_b2429fdde70793c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_AdjustedSequence); // }} "" // {{{ 1496 1 0 "64043f13_1c2c_4233_97778b1480b3e1a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(seq_AdjustedSequence); // }} "" // {{{ 1497 1 0 "d0ee8035_5573_4bfc_aa85ab1bfaa03f1c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(seq_AdjustedSequence, 1); // }} "" // {{ 1498 1 0 "e0387ec0_27d7_4f9c_907cb5a4eb02c231" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_LabID != "") { // }} "" // {{ 1499 1 0 "bbc135f3_8747_43dd_ad2eb82abde8708d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_PosID != "") { // }} "" // {{{ 1500 1 0 "cd96277e_fccd_4b2c_9a04da129ffc06ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(io_Sequence, str_LabID, str_PosID); // }} "" // {{ 1501 1 0 "bbc135f3_8747_43dd_ad2eb82abde8708d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1502 1 0 "e0387ec0_27d7_4f9c_907cb5a4eb02c231" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1503 1 0 "429ef5df_b380_4aec_a24a87aa59c2f07f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1504 1 0 "2d7aafb2_8548_4cde_9aa8a49fa987515b" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_Sequence.SetCurrentPosition(1); // }} "" // {{{ 5 "_RemoveTruncatedSequencePositions" "End" } // }} "" // {{{ 5 "_GetNextTipPickUpPosition" "Begin" private function _GetNextTipPickUpPosition( sequence io_seq_Source, sequence & o_seq_TipPickUpPosition ) void { // }} "" private variable i; private variable str_LabID_ToRemove; private variable str_LabID; private variable int_TotalTipLabware; private variable a; private variable int_PositionCount; private variable str_PosID; private variable arr_LabIDs[]; // {{ 5 "_GetNextTipPickUpPosition" "InitLocals" { sequence __temp; o_seq_TipPickUpPosition = __temp; } // }} "" // {{{ 1156 1 0 "98ae9201_e8b4_4ccf_86d53afd9d52de9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_TipPickUpPosition); // }} "" // {{{ 1157 1 0 "b1a658eb_abef_4659_ad15c4322dfb946a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(io_seq_Source); // }} "" // {{{ 1158 1 0 "e4b579a9_2a07_4dbf_8b39c8e7deade51d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqGetLabwareIds(io_seq_Source, arr_LabIDs); // }} "" // {{ 1159 1 0 "b2739bcf_c67a_4939_82265643dd596615" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalTipLabware=arr_LabIDs.GetSize(); // }} "" // {{ 1160 1 0 "9a0c2924_265d_4e20_bb571862e24a9889" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_LabID_ToRemove = Translate(""); // }} "" // {{ 1161 1 0 "2f4965f0_e4a9_4cf6_a2d593993ee50d58" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalTipLabware;) { i = i + 1; // }} "" // {{ 1162 1 0 "21a68115_fe85_40c3_9e3435a497816054" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_LabID=arr_LabIDs.GetAt(i-1); // }} "" // {{{ 1163 1 0 "7d4090ba_e3a9_4408_88d3860d08fe0690" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_PositionCount = SeqGetPositionCountForCurrLabware(io_seq_Source); // }} "" // {{ 1164 1 0 "90e85aad_cfcc_4db2_acf78bef40baf345" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionCount == 96) { // }} "" // {{ 1165 1 0 "0a29c342_3e71_448f_a4be48b959874f0d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_LabID_ToRemove = str_LabID; // }} "" // {{ 1166 1 0 "b253177b_736c_490f_a7646c111d8e5bd9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(a = 0; a < 96;) { a = a + 1; // }} "" // {{{ 1167 1 0 "7d94ecd2_5105_4cbb_a39ce789d6f1e5f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(io_seq_Source); // }} "" // {{{ 1168 1 0 "9d726b8a_1b1d_4552_a44460313021f9bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq_TipPickUpPosition, str_LabID, str_PosID); // }} "" // {{{ 1169 1 0 "7f1110a1_da96_45ff_acd2af09bf1195d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(io_seq_Source, 1); // }} "" // {{ 1170 1 0 "b253177b_736c_490f_a7646c111d8e5bd9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1171 1 0 "02f8f841_5ab9_4bf5_bd288ca001371733" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq_TipPickUpPosition.SetCurrentPosition(1); // }} "" // {{ 1172 1 0 "aa6b20b0_42ff_403b_b36d3e08b6eb56c8" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1173 1 0 "90e85aad_cfcc_4db2_acf78bef40baf345" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1174 1 0 "d0657ace_e7cc_4c2e_a0cacca31f07ee1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(io_seq_Source, int_PositionCount); // }} "" // {{ 1175 1 0 "90e85aad_cfcc_4db2_acf78bef40baf345" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1176 1 0 "2f4965f0_e4a9_4cf6_a2d593993ee50d58" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "_GetNextTipPickUpPosition" "End" } // }} "" // {{{ 5 "_GetNextTipPickUpPosition_Partial" "Begin" private function _GetNextTipPickUpPosition_Partial( device & Instrument, sequence i_seq_Source, sequence & o_seq_TipPickUpPosition, variable i_int_TipsNeeded ) void { // }} "" private variable int_CurrentPosition; private variable int_Column; private variable int_Remainder; private variable bool_FullColumns; private variable i; private variable int_RowCount; private variable str_CurrentColumn; private variable str_LabID_ToRemove; private variable str_LabID; private variable int_Position; private variable int_TotalTipLabware; private variable a; private variable str_CurrentRow; private variable int_PositionCount; private variable str_PosID; private variable int_TotalPositions; private variable str_Column; private sequence seq_Temp; private sequence seq_Temp2; private variable arr_LabIDs[]; private variable int_Index; // {{ 5 "_GetNextTipPickUpPosition_Partial" "InitLocals" { sequence __temp; o_seq_TipPickUpPosition = __temp; } // }} "" // {{{ 1178 1 0 "c2378780_b55e_498c_98b1dfae4dfaaa35" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_TipPickUpPosition); // }} "" // {{{ 1179 1 0 "5eb538b3_959c_48f1_83357513cfd6a66f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(i_seq_Source); // }} "" // {{{ 1180 1 0 "373632f7_ccb2_488e_b57691cd254aeb45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqGetLabwareIds(i_seq_Source, arr_LabIDs); // }} "" // {{ 1181 1 0 "93027012_ff52_45f1_b5f52f326b4778bc" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalTipLabware=arr_LabIDs.GetSize(); // }} "" // {{ 1182 1 0 "9a4f69db_d05d_4904_9388b632cdcdda6c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_LabID_ToRemove = Translate(""); // }} "" // {{ 1183 1 0 "9279fc7b_82f8_4a82_821d234a77303054" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalTipLabware;) { i = i + 1; // }} "" // {{ 1184 1 0 "ea655f70_c16a_4343_8f3ae06c27c7610a" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_LabID=arr_LabIDs.GetAt(i-1); // }} "" // {{{ 1185 1 0 "5e12e920_4eed_4277_ac544aa75bddb4d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_PositionCount = SeqGetPositionCountForCurrLabware(i_seq_Source); // }} "" // {{ 1186 1 0 "7e7464f7_08a3_4a22_b6e477a461f15141" "{B31F353B-5D80-11d4-A5EB-0050DA737D89}" int_CurrentPosition = i_seq_Source.GetCurrentPosition(); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Source sequence position count: ",int_PositionCount," Current Position: ",int_CurrentPosition," LabID: ",str_LabID); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1188 1 0 "607457a9_a57e_4c6e_90633f4ce2ca07a4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionCount >= i_int_TipsNeeded) { // }} "" // {{ 1189 1 0 "2233b272_1be2_4e01_b5ed7d91be6a66e5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_LabID_ToRemove = str_LabID; // }} "" // {{ 1190 1 0 "4a55cd2f_63c7_49ee_894936ef28b1ea8b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(a = 0; a < int_PositionCount;) { a = a + 1; // }} "" // {{{ 1191 1 0 "2312b5b3_d285_42ad_86e80f1a1e902c48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_Source); // }} "" // {{{ 1192 1 0 "95c677de_1eee_409b_91544f7ee5c7a76b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq_TipPickUpPosition, str_LabID, str_PosID); // }} "" // {{{ 1193 1 0 "df24065f_f5b5_4d78_93e1e4275779f169" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(i_seq_Source, 1); // }} "" // {{ 1194 1 0 "4a55cd2f_63c7_49ee_894936ef28b1ea8b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1195 1 0 "891e887e_05ce_4d7b_80bbd3baf0041e41" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq_TipPickUpPosition.SetCurrentPosition(1); // }} "" // {{ 1196 1 0 "dd445157_f4ee_4c25_b7ed907fe94eba51" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1197 1 0 "b0078c8a_b15a_48a7_909fdaef764c8763" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(Instrument, o_seq_TipPickUpPosition, 0); // }} "" // {{{ 1198 1 0 "8cc99e9a_df17_4000_8994e6cfa504a442" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(o_seq_TipPickUpPosition); // }} "" // {{ 1199 1 0 "3f49da44_8647_4849_91a1a338204de971" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_CurrentRow = Translate(""); // }} "" // {{ 1200 1 0 "bf9029e2_dd7c_43cf_a8a254ce85f9a94a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_CurrentColumn = Translate(""); // }} "" // {{{ 1201 1 0 "d5be5c6f_033d_4009_a4fcc111c397f55a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_Temp); // }} "" // {{{ 1202 1 0 "8f0e995a_eba4_419c_852b0de3985c02f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_Temp2); // }} "" // {{ 1203 1 0 "edfd1991_acb4_4500_adfc90f139981c19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_RowCount = 0; // }} "" // {{{ 1204 1 0 "662baa77_ba3b_45dd_93cf5c09caf1c5a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(o_seq_TipPickUpPosition); // }} "" // {{ 1205 1 0 "06d59268_90f1_40c9_99b8b34d6e13ecf8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_FullColumns = 1; // }} "" // {{ 1206 1 0 "dbe94fcc_60c5_442f_8f1bc1b2cd847c69" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_Index = 0; int_Index < int_TotalPositions;) { int_Index = int_Index + 1; // }} "" // {{ 1207 1 0 "d178aee2_5f4b_47f7_9992b42ad563222b" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq_TipPickUpPosition.SetCurrentPosition(int_Index); // }} "" // {{{ 1208 1 0 "ca908e21_1870_491a_8ff8e2d490fc5470" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(o_seq_TipPickUpPosition); // }} "" // {{{ 1209 1 0 "8afd885c_2db7_47dd_8a907e2f5bcb390e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Position = StrIVal(str_PosID); // }} "" // {{ 1210 1 0 "94a42ba0_7654_4d73_92407c9e98129206" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Column = int_Position / 8; // }} "" // {{ 1211 1 0 "71a172d8_5f65_46ca_bcc311f0b9ec288e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Remainder = int_Position % 8; // }} "" // {{ 1212 1 0 "a38179c2_7f08_4267_bafcd12c42c0d216" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Remainder > 0) { // }} "" // {{ 1213 1 0 "7671e316_a7d7_4a15_b11f2940caea07b4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Column = int_Column + 1; // }} "" // {{ 1214 1 0 "a38179c2_7f08_4267_bafcd12c42c0d216" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1215 1 0 "e6c23a0f_32d0_44b7_8e4b4db8ec974077" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Column = StrConcat2(int_Column, Translate("")); // }} "" // {{ 1216 1 0 "632bd101_d5fe_4fa6_a87b9e8079930e83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Column != str_CurrentColumn) { // }} "" // {{ 1217 1 0 "6404ff21_78c8_4137_b80a2a8369773aed" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_RowCount > 0) { // }} "" // {{ 1218 1 0 "4db7c97c_98b7_4779_a8f90c11a31afd00" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_RowCount == 8) { // }} "" // {{ 1219 1 0 "cafaaa22_2b69_4e7a_85508938a8d1318f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1220 1 0 "4db7c97c_98b7_4779_a8f90c11a31afd00" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1221 1 0 "df68b0d8_543c_4e3b_9e8d9a5eaf87a2ab" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1222 1 0 "cad462af_5ce5_44bb_9af97ac9493fd3f4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_FullColumns = 0; // }} "" // {{{ 1223 1 0 "fa0d2c25_1715_4142_b1e6d07455f1cc54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_TipPickUpPosition); // }} "" // {{ 1224 1 0 "430698e3_1991_42f1_bb56775e710bd080" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1225 1 0 "4db7c97c_98b7_4779_a8f90c11a31afd00" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1226 1 0 "6404ff21_78c8_4137_b80a2a8369773aed" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1227 1 0 "68674af7_d197_4c63_af278b5be70e724f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_RowCount = 0; // }} "" // {{ 1228 1 0 "c2223076_a7d9_4bbb_a08aa4e538250871" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_CurrentColumn = str_Column; // }} "" // {{{ 1229 1 0 "ba3d36a4_5abc_4d37_a51b4c4e5b7c582b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(seq_Temp, str_LabID, str_PosID); // }} "" // {{ 1230 1 0 "98f7baa4_583c_4ca7_8ee484a170541019" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_RowCount = int_RowCount + 1; // }} "" // {{ 1231 1 0 "632bd101_d5fe_4fa6_a87b9e8079930e83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1232 1 0 "a717ac9a_a885_4aa9_8b53ae94f85384c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(seq_Temp, str_LabID, str_PosID); // }} "" // {{ 1233 1 0 "80e4ff87_84a3_4ba7_a51faeacdeeb1083" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_RowCount = int_RowCount + 1; // }} "" // {{ 1234 1 0 "632bd101_d5fe_4fa6_a87b9e8079930e83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Row Count: ",int_RowCount," Current Column: ",str_Column," Target Column: ",str_CurrentColumn); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1236 1 0 "d07958ca_280b_4bbd_836bb96dd3f50376" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index == int_TotalPositions) { // }} "" // {{ 1237 1 0 "d95f3783_8936_4fbc_830ae4eea06326c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_RowCount == 8) { // }} "" // {{ 1238 1 0 "d95f3783_8936_4fbc_830ae4eea06326c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1239 1 0 "05632cf6_90be_4280_8efcfba7b58d3080" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1240 1 0 "51f4ff29_b80c_4a03_964bdab213260880" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_FullColumns = 0; // }} "" // {{{ 1241 1 0 "99fbcfd0_382a_41ce_9594615de34b1a7c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_TipPickUpPosition); // }} "" // {{ 1242 1 0 "c54660c7_ea30_4aee_96d2e77662262242" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1243 1 0 "d95f3783_8936_4fbc_830ae4eea06326c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1244 1 0 "d07958ca_280b_4bbd_836bb96dd3f50376" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1245 1 0 "dbe94fcc_60c5_442f_8f1bc1b2cd847c69" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Full Column: ",bool_FullColumns); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1247 1 0 "db3d8504_5490_45c8_84c62c53021488f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FullColumns == 1) { // }} "" // {{ 1248 1 0 "6739c50f_f178_45ef_bd21e5de645cf1b9" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Temp.SetCurrentPosition(1); // }} "" // {{{ 1249 1 0 "569acf15_ea9d_420c_93bc2c23ad859794" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(o_seq_TipPickUpPosition, seq_Temp); // }} "" // {{ 1250 1 0 "010cf31e_d71c_4871_b6738641209406f7" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1251 1 0 "db3d8504_5490_45c8_84c62c53021488f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1252 1 0 "607457a9_a57e_4c6e_90633f4ce2ca07a4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1253 1 0 "10165eb8_2d6a_4364_846c2835528fa4a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(i_seq_Source, int_PositionCount); // }} "" // {{ 1254 1 0 "607457a9_a57e_4c6e_90633f4ce2ca07a4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1255 1 0 "9279fc7b_82f8_4a82_821d234a77303054" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "_GetNextTipPickUpPosition_Partial" "End" } // }} "" // {{{ 5 "_UpdateTipSequence" "Begin" private function _UpdateTipSequence( sequence & io_SourceTipSequence ) void { // }} "" private variable i; private variable str_UsedLabware; private variable str_LabID; private variable int_TotalPosition; private variable str_PosID; private sequence seq_Temp; // {{ 5 "_UpdateTipSequence" "InitLocals" // }} "" // {{{ 1660 1 0 "2a1d46a5_c213_40e4_9127cb5c695929be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_UsedLabware = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP); // }} "" // {{{ 1661 1 0 "a91182af_1d74_4250_a566c30dea9db43e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(io_SourceTipSequence); // }} "" // {{{ 1662 1 0 "c86f51a7_5529_479b_a54ddba18c782d77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq_Temp, io_SourceTipSequence); // }} "" // {{{ 1663 1 0 "4d9e20af_c03e_40f1_8171326d5df6fe8e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPosition = SeqGetTotal(seq_Temp); // }} "" // {{{ 1664 1 0 "6f34e872_31c8_4235_b1ab2b48905186a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(io_SourceTipSequence); // }} "" // {{ 1665 1 0 "4d017c97_330b_499f_844678c2cfdb9b7b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalPosition;) { i = i + 1; // }} "" // {{ 1666 1 0 "adbdc9e2_1e6d_42b7_87aa2b2c13f7d468" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Temp.SetCurrentPosition(i); // }} "" // {{{ 1667 1 0 "386664e2_b1d5_4dad_bf2dd0f9f934fe28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_Temp); // }} "" // {{{ 1668 1 0 "81069196_3873_417b_8781a5acc0f0cf1b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(seq_Temp); // }} "" // {{ 1669 1 0 "40c18064_2738_4842_a1f71ccd6c23d388" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_LabID != str_UsedLabware) { // }} "" // {{{ 1670 1 0 "29097b98_2cab_4b08_a78f26c55ab7b608" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(io_SourceTipSequence, str_LabID, str_PosID); // }} "" // {{ 1671 1 0 "40c18064_2738_4842_a1f71ccd6c23d388" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1672 1 0 "4d017c97_330b_499f_844678c2cfdb9b7b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1673 1 0 "c3ba9515_d839_4815_a8b3ecaeced2781a" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_SourceTipSequence.SetCurrentPosition(1); // }} "" // {{{ 5 "_UpdateTipSequence" "End" } // }} "" // {{{ 5 "_MoveTipsToOffset" "Begin" private function _MoveTipsToOffset( device & ML_STAR ) void { // }} "" private variable flt_NewContainerBaseOffset; private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable flt_SourceContainerBaseOffset; private variable str_NewContainer; private variable strFunctionName_Cut; private variable str_ContainerFile; private variable str_TipOffsetLabID; private variable int_Count; private variable int_TipType; private variable str_Well; private variable int_Well; private variable str_TipSourceLabID; private variable int_TotalOnOffset; // {{ 5 "_MoveTipsToOffset" "InitLocals" // }} "" // {{ 1368 1 0 "f6d8309a_d27c_4179_b84634c25af5df03" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1369 1 0 "59be78cf_b66c_4c8b_ac669ff1852ba704" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1371 1 0 "6cd52fe7_6614_44e2_bacd48e24c4cd474" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 1372 1 0 "9cffcf45_ba42_420a_b1b62e6d599c3f7c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1373 1 0 "430f4b91_c35f_412d_be2a1a9936daaf23" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 1374 1 0 "751e0525_be15_4461_baa97e938e071e59" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1375 1 0 "74e25e8d_03e3_4cbd_92dfc6a497292088" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("*********************************"); Trace(strFunctionName_Cut," - START"); // {{ 1377 1 0 "f6d8309a_d27c_4179_b84634c25af5df03" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1378 1 0 "9da20223_be97_4f7a_919537a045ca43c3" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP.SetCurrentPosition(1); // }} "" // {{ 1379 1 0 "ea58d0fb_712b_4cc5_b87b3e3c82995e34" "{B31F353C-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP.SetCount(96); // }} "" // {{ 1380 1 0 "564edb87_fe29_46da_9be80dca51e6dfb8" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT.SetCurrentPosition(1); // }} "" // {{ 1381 1 0 "4ad26ad6_4c5c_4b1e_90fbe57cdb9373eb" "{B31F353C-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT.SetCount(96); // }} "" // {{{ 1382 1 0 "bdd1cc7a_1ee2_4055_89dc8c251f7846da" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::GetTipType(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP, int_TipType); // }} "" // {{{ 1383 1 0 "c56ba754_150d_4bb6_966e6d1566c769d4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::LABWARE_GetContainerBaseOffset(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP, flt_SourceContainerBaseOffset); // }} "" // {{ 1384 1 0 "7a157ee2_8434_4207_b97c6cf048653627" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_NewContainerBaseOffset = flt_SourceContainerBaseOffset + TIP_OFFSET_GLOBAL::FLT::CONTAINER_OFFSET; // }} "" // {{{ 1385 1 0 "d011eafd_5be0_44f9_97cd107d659283cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::CONT_GetConfigFile(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP, str_ContainerFile); // }} "" // {{{ 1386 1 0 "dd596df6_b0cc_4362_b304c887a5211001" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_NewContainer = HSLExtensions::File::GetFileNameWithoutExtension(str_ContainerFile); // }} "" // {{{ 1387 1 0 "df526a6f_d78c_4e74_8265002eaa305f3b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipOffsetLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{{ 1388 1 0 "2514e3eb_b786_48b6_9d566aa1b4c4c7bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, str_TipOffsetLabID, Translate("MlStarTipRack"), int_TipType); // }} "" // {{{ 1389 1 0 "68917d9c_ab49_4d10_ac7e0a8e7c489de6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, str_TipOffsetLabID, Translate("MlStarCore96TipRack"), int_TipType); // }} "" Trace("Tip Offset LabID: ",str_TipOffsetLabID); Trace("Tip Container File: ",str_NewContainer); Trace("Tip Container Base Offset: ",flt_NewContainerBaseOffset); Trace("Tip Type: ",int_TipType); /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 1391 1 0 "28d91123_83c3_4803_90832fe87ed05690" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_Well = 0; int_Well < 96;) { int_Well = int_Well + 1; // }} "" // {{ 1392 1 0 "9b329a04_1614_4f3a_9f502651ee9d14c0" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT.SetCurrentPosition(int_Well); // }} "" // {{{ 1393 1 0 "0b2e5eae_04a8_4198_ac3b890599eeddd2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Well = SeqGetPositionId(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{{ 1394 1 0 "6951477e_6df8_4d97_b51811fdc461bc91" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevAddContainerToRack(ML_STAR, str_TipOffsetLabID, str_Well, str_ContainerFile, 0.0, 0.0, flt_NewContainerBaseOffset); // }} "" // {{ 1395 1 0 "28d91123_83c3_4803_90832fe87ed05690" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1396 1 0 "6430dacb_bdab_4cec_9c2c5dcfc279a45a" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT.SetCurrentPosition(1); // }} "" // {{ 1397 1 0 "9218972d_eaaf_4df4_9bc15abcdbc444dc" "ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}" { variable arrRetValues[]; arrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B("9218972d_eaaf_4df4_9bc15abcdbc444dc"); // Head96TipPickUp } // }} "" // {{ 1398 1 0 "e92a3d7f_1b30_48ec_84ea84f6c849efa8" "ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}" { variable arrRetValues[]; arrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C("e92a3d7f_1b30_48ec_84ea84f6c849efa8"); // Head96TipEject } // }} "" // {{{ 1399 1 0 "bed6db37_d9a3_4284_9bbf580c9a31aedf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP); // }} "" // {{{ 1400 1 0 "399bd4d1_101b_4580_855235f76efdeb54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalOnOffset = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" // {{{ 1401 1 0 "7e3804df_cb89_4b98_9081220839b18d29" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipOffsetLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{{ 1402 1 0 "f44dadbc_ad4c_4626_b6d669efb899baa7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipSourceLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP); // }} "" // {{{ 1403 1 0 "5940c2cb_df59_4966_8f48acae2a8fd29f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" // {{{ 1404 1 0 "da361bb2_3b0c_4558_b421ee97fb5bae58" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT = HSLExtensions::Sequence::ReplaceLabwareIdentifier(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, str_TipSourceLabID, str_TipOffsetLabID); // }} "" // {{ 1405 1 0 "f647bdb7_5e1c_4d27_90151571939dd78c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = int_TotalOnOffset; // }} "" // {{{ 1406 1 0 "82652520_cb52_4de4_a2f49463cb3dcd7c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, 0, Translate("Highlight the tips on offset")); // }} "" // {{ 1407 1 0 "baffd0cb_e786_421f_b8afbcd6d74851d3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(strFunctionName_Cut," - FINISH"); Trace("*********************************"); // {{ 1409 1 0 "baffd0cb_e786_421f_b8afbcd6d74851d3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "_MoveTipsToOffset" "End" } // }} "" // {{{ 5 "_ReturnTipsToPickUp" "Begin" private function _ReturnTipsToPickUp( device & ML_STAR, variable i_bool_PickUpLeft ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable str_ChPattern; private variable int_TotalLabwareSet; private variable bln_ValueFound; private variable str_TipOffsetLabID; private sequence seq_Temp; private variable int_Index; // {{ 5 "_ReturnTipsToPickUp" "InitLocals" // }} "" // {{ 1506 1 0 "1a812dcd_0a83_4683_8ae9634cfa23d871" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1507 1 0 "77c5207c_0a1f_44c3_9c5020bac650d8b0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1509 1 0 "f2df2078_4a0b_41f1_9675f8155f3529de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 1510 1 0 "0a3a83e8_8cfb_449b_b1b182f95e2dcb26" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1511 1 0 "51c8cd0a_da63_4bba_9a47b59ed5618c11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 1512 1 0 "7501b126_a7a2_4f2e_acfb939cbc7bad62" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1513 1 0 "bbcfd2b1_b5f4_46a9_9359e45653e47e73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("*********************************"); Trace(strFunctionName_Cut," - START"); // {{ 1515 1 0 "1a812dcd_0a83_4683_8ae9634cfa23d871" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1516 1 0 "bda454c6_9747_4a85_b6556dfdcefac3f8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ChPattern = Translate(""); // }} "" // {{{ 1517 1 0 "5ed15479_b250_421d_8d12432fe0d60c5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrFillLeft(str_ChPattern, Translate("1"), TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 1518 1 0 "0d0434af_9b15_4966_a848b0716bb016e2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bool_PickUpLeft == 1) { // }} "" // {{{ 1519 1 0 "7da0e116_c19b_4397_a36615892e5e6cba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrFillRight(str_ChPattern, Translate("0"), 96); // }} "" // {{{ 1520 1 0 "cf7e30f3_c7a2_47ae_928bfe8fe259423e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, 1); // }} "" // {{{ 1521 1 0 "96849dc5_7ada_4c07_8a6b5a751ad6ce90" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 1); // }} "" // {{ 1522 1 0 "0d0434af_9b15_4966_a848b0716bb016e2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1523 1 0 "16c0f335_c377_4377_86a94c5dadf3887d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrFillLeft(str_ChPattern, Translate("0"), 96); // }} "" // {{{ 1524 1 0 "8baccbb5_cb19_4ab4_b91a4eb8b35431a5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, 0); // }} "" // {{{ 1525 1 0 "54cf519d_04d1_43d4_936f05885617e10b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 1); // }} "" // {{ 1526 1 0 "0d0434af_9b15_4966_a848b0716bb016e2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace("Channel Pattern: ",str_ChPattern); /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1528 1 0 "8519ab97_77c5_40a6_8fcafada083ad3d5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::ADJUST_SetRelativePosition(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 0.0, 0.0, 2.0, 0.0); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1529 1 0 "b5efcc44_31ab_4efb_bfffa5c506d888e9" "ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}" { variable arrRetValues[]; arrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B("b5efcc44_31ab_4efb_bfffa5c506d888e9"); // Head96TipPickUp } // }} "" // {{ 1530 1 0 "9c5ebe5c_5d82_428b_884ddb9985b8e5ec" "ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}" { variable arrRetValues[]; arrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C("9c5ebe5c_5d82_428b_884ddb9985b8e5ec"); // Head96TipEject } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1531 1 0 "17a01c5b_dac2_4414_91b2221063a38091" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::ADJUST_SetRelativePosition(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 0.0, 0.0, -2.0, 0.0); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1532 1 0 "83e502b7_31b8_40e9_95da79988a9a4053" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0; // }} "" // {{ 1533 1 0 "55a94d20_6fa7_40a0_82f1885ac482cd6a" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalLabwareSet=TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.GetSize(); // }} "" // {{{ 1534 1 0 "60946b3b_854b_4f41_a9997c532bed1c56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipOffsetLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{{ 1535 1 0 "75cecf1c_3371_4567_82c22dfd62224abb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 1536 1 0 "ad422e3e_3cf0_49b8_ba4889ff5633f1db" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalLabwareSet > 0) { // }} "" // {{{ 1537 1 0 "092f5ce2_0a27_4c68_9f0d349841dbe62f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_ValueFound = Util::Lookup(TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, str_TipOffsetLabID, int_Index); // }} "" // {{ 1538 1 0 "54d6a78d_ca83_4145_bd44dc9cbd8c56d3" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Index = int_Index + 1; // }} "" // {{ 1539 1 0 "c387a32a_6c0a_4732_bbcd8cea776a2c06" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::TRUE) { // }} "" // {{ 1540 1 0 "dbeafe4b_d63a_42ae_92226e5f6c010035" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.SetAt(int_Index-1, str_TipOffsetLabID); // }} "" // {{ 1541 1 0 "a1f50258_a853_48fa_b4fce9b8e246740e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.SetAt(int_Index-1, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 1542 1 0 "f0271828_ed79_47c1_8cf98c6f00596b02" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.SetAt(int_Index-1, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 1543 1 0 "c387a32a_6c0a_4732_bbcd8cea776a2c06" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1544 1 0 "ad422e3e_3cf0_49b8_ba4889ff5633f1db" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1545 1 0 "436cacf2_f4af_4cdc_a6af32d72fe0cdd7" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1; // }} "" // {{ 1546 1 0 "5364a29b_618d_4a35_af45153cbb54955e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID); // }} "" // {{ 1547 1 0 "82c081ae_5de9_4144_89bc2c61a432b17c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 1548 1 0 "ca91df62_1765_4e9a_bf3ab73dff0b6c8f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 1549 1 0 "4a2fb782_8e83_454a_a81c25ff427d559d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.AddAsLast(seq_Temp); // }} "" // {{ 1550 1 0 "ad422e3e_3cf0_49b8_ba4889ff5633f1db" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1551 1 0 "d7ddcf68_1f8b_44f3_90e0e872603b0662" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(strFunctionName_Cut," - FINISH"); Trace("*********************************"); // {{ 1553 1 0 "d7ddcf68_1f8b_44f3_90e0e872603b0662" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "_ReturnTipsToPickUp" "End" } // }} "" // {{{ 5 "_AppendRemainderTipsToCurrentSequence" "Begin" private function _AppendRemainderTipsToCurrentSequence( device & Instrument, sequence & io_seq_TargetSequence, sequence i_seq_RemainderSequence, sequence i_seq_ReturnPositionSequence ) void { // }} "" private variable i; private variable str_TargetLabID; private variable str_LabID; private variable str_PosID; private variable int_TotalInSequence; // {{ 5 "_AppendRemainderTipsToCurrentSequence" "InitLocals" // }} "" // {{{ 988 1 0 "7fb2c6c4_05c5_448e_aaa83bcb689eeed7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(i_seq_RemainderSequence); // }} "" // {{{ 989 1 0 "b07875bf_1ec0_4be1_96ec35d586147427" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(io_seq_TargetSequence); // }} "" // {{{ 990 1 0 "de90ec2f_e8eb_4c61_9a437ba76b65ad62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TargetLabID = SeqGetLabwareId(i_seq_ReturnPositionSequence); // }} "" // {{{ 991 1 0 "d4fa84a5_fc1d_481e_a04b57c4d69b3a65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalInSequence = SeqGetTotal(i_seq_RemainderSequence); // }} "" // {{ 992 1 0 "c25398c4_39e0_431c_8a33ca7b12d62e20" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalInSequence;) { i = i + 1; // }} "" // {{ 993 1 0 "dadb478d_a2e7_462b_abd115f180cce166" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_ReturnPositionSequence.SetCurrentPosition(i); // }} "" // {{{ 994 1 0 "ac0b72da_0bb6_430e_b860657542645f6c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_ReturnPositionSequence); // }} "" // {{{ 995 1 0 "fac4967d_d524_4cee_8408986d95cede85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_ReturnPositionSequence); // }} "" // {{{ 996 1 0 "b5c03681_c767_4457_af994da33e2c2db3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(io_seq_TargetSequence, str_LabID, str_PosID); // }} "" // {{ 997 1 0 "c25398c4_39e0_431c_8a33ca7b12d62e20" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 998 1 0 "21fe98e0_19dd_4c65_92cf53054c17d9c7" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_seq_TargetSequence.SetCurrentPosition(1); // }} "" // {{{ 999 1 0 "8c819698_ffb1_4de5_b52a0dc920664865" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(Instrument, io_seq_TargetSequence, 1); // }} "" // {{{ 5 "_AppendRemainderTipsToCurrentSequence" "End" } // }} "" // {{{ 5 "_AddRemainderTipsToCurrentSequence" "Begin" private function _AddRemainderTipsToCurrentSequence( device & Instrument, sequence & io_seq_TargetSequence, sequence i_seq_RemainderSequence, sequence i_seq_ReturnPositionSequence ) void { // }} "" private variable i; private variable str_TargetLabID; private variable str_PosID; private variable int_TotalInSequence; // {{ 5 "_AddRemainderTipsToCurrentSequence" "InitLocals" // }} "" // {{{ 974 1 0 "de8c9545_c2e0_440f_8609144b506dd055" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(i_seq_RemainderSequence); // }} "" // {{{ 975 1 0 "4b72e60e_c126_4b79_b91b813f81a4fe47" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(i_seq_ReturnPositionSequence); // }} "" // {{{ 976 1 0 "e669f0dd_659b_4a03_ba39b2802417efd5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(io_seq_TargetSequence); // }} "" // {{{ 977 1 0 "676a98d2_9609_432b_82bfde305f80b4cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TargetLabID = SeqGetLabwareId(i_seq_ReturnPositionSequence); // }} "" // {{{ 978 1 0 "019e5fa0_91c0_402f_85c45df2c6ce96d1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalInSequence = SeqGetTotal(i_seq_RemainderSequence); // }} "" // {{ 979 1 0 "1eb9efbc_83c7_4854_ae626ca49522739c" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalInSequence;) { i = i + 1; // }} "" // {{ 980 1 0 "9fd7053f_79b8_47b5_99b8d498b4c01503" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_RemainderSequence.SetCurrentPosition(i); // }} "" // {{{ 981 1 0 "31208896_9b1b_4ab7_9db15bae582b4391" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_RemainderSequence); // }} "" Trace("Lab ID: ",str_TargetLabID," Pos ID: ",str_PosID); // {{{ 983 1 0 "65f8858a_9067_4365_8d2862f44338a1f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(io_seq_TargetSequence, str_TargetLabID, str_PosID); // }} "" // {{ 984 1 0 "1eb9efbc_83c7_4854_ae626ca49522739c" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 985 1 0 "17eed9fa_a5f4_4f56_a439af86d978577b" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_seq_TargetSequence.SetCurrentPosition(1); // }} "" // {{{ 986 1 0 "89502117_9b7d_4036_a14c1f09d97f1161" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(Instrument, io_seq_TargetSequence, 1); // }} "" // {{{ 5 "_AddRemainderTipsToCurrentSequence" "End" } // }} "" // {{{ 5 "_PickUpTips" "Begin" private function _PickUpTips( device & ML_STAR, variable i_int_TipsNeeded, variable i_bool_PickUpLeft, variable & o_str_ChPattern, variable & o_str_PickUpReturn ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable str_ChPattern; // {{ 5 "_PickUpTips" "InitLocals" o_str_ChPattern = 0; o_str_PickUpReturn = 0; // }} "" // {{ 1411 1 0 "8d08cd80_981e_434f_900d1b2975a4a32b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1412 1 0 "0a9f5b7d_30ac_4171_82cb4737fa48de75" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1414 1 0 "24f35c68_7654_43cf_9db76460aadc07f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 1415 1 0 "c4ec3fbd_e39b_4994_a921da6f9430b94b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1416 1 0 "81ff2a66_55ae_44ab_9ed80397c8b6f9af" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 1417 1 0 "c2cbf17f_a7f1_40be_b8be92c3aa5572ae" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1418 1 0 "3180cf5b_6ecc_4489_84f01fc9309b6e7f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("*********************************"); Trace(strFunctionName_Cut," - START"); // {{ 1420 1 0 "8d08cd80_981e_434f_900d1b2975a4a32b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1421 1 0 "ed487eee_7c9d_4be9_be6ff26335f33565" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ChPattern = Translate(""); // }} "" // {{ 1422 1 0 "319a1420_7242_49c0_b251f6934cfc8add" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_PickUpReturn = Translate(""); // }} "" // {{{ 1423 1 0 "3cf0424a_d3ac_411d_90ce31c627310dcd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrFillLeft(str_ChPattern, Translate("1"), i_int_TipsNeeded); // }} "" // {{ 1424 1 0 "538f8c9a_078d_4428_841c5ae8bc3f31e9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bool_PickUpLeft == 1) { // }} "" // {{{ 1425 1 0 "c0bbcc55_9bcb_4ca5_b4e2cc712bc3fd9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrFillRight(str_ChPattern, Translate("0"), 96); // }} "" // {{ 1426 1 0 "538f8c9a_078d_4428_841c5ae8bc3f31e9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1427 1 0 "b61396ae_df91_4218_bc92c67c7f90265b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrFillLeft(str_ChPattern, Translate("0"), 96); // }} "" // {{ 1428 1 0 "538f8c9a_078d_4428_841c5ae8bc3f31e9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace("Channel Pattern: ",str_ChPattern); // {{{ 1430 1 0 "b21a6124_d973_4749_95681cb270a611bf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, i_bool_PickUpLeft); // }} "" // {{ 1431 1 0 "13519ba7_e3ef_4794_8e749ee67908b019" "ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}" { variable arrRetValues[]; arrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B("13519ba7_e3ef_4794_8e749ee67908b019"); // Head96TipPickUp o_str_PickUpReturn = arrRetValues[2]; } // }} "" // {{{ 1432 1 0 "9da60233_2f50_4871_8278f6f2568971ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, i_int_TipsNeeded); // }} "" // {{{ 1433 1 0 "19ce126d_6584_4916_b4ac0124deda59d5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{{ 1434 1 0 "1f761394_1a33_42fb_a8368c7066ee4867" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{ 1435 1 0 "3cf34de9_3659_4bd4_a50861e64888cc67" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChPattern = str_ChPattern; // }} "" // {{ 1436 1 0 "1483e7fb_35e0_44d4_ad963d0d059d52fc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(strFunctionName_Cut," - FINISH"); Trace("*********************************"); // {{ 1438 1 0 "1483e7fb_35e0_44d4_ad963d0d059d52fc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "_PickUpTips" "End" } // }} "" // {{{ 5 "_RemoveSequencePositions" "Begin" private function _RemoveSequencePositions( sequence & io_seq_SourceSequence, sequence i_seq_PositionsToRemove ) void { // }} "" private sequence seq_Temp; private variable int_TotalPositions; private variable i; private variable str_LabID; private variable str_PosID; private variable int_PositionFound; // {{ 5 "_RemoveSequencePositions" "InitLocals" // }} "" // {{{ 1473 1 0 "99d90879_9bb7_4913_abe1bcf8080c96ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(io_seq_SourceSequence); // }} "" // {{{ 1474 1 0 "de9d2a38_2f41_412b_940b5f1c5aca4735" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(io_seq_SourceSequence); // }} "" // {{{ 1475 1 0 "8a917201_33bc_4d23_992198cc03e3a6a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq_Temp, io_seq_SourceSequence); // }} "" // {{{ 1476 1 0 "a9f0033b_2bd4_4c6e_ab4686e9fea3d40c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(io_seq_SourceSequence); // }} "" // {{ 1477 1 0 "602a5bbe_2a7a_4a9b_88743024eb2dfdef" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalPositions;) { i = i + 1; // }} "" // {{{ 1478 1 0 "3363d666_73ff_4542_80b248145dcb470e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_Temp); // }} "" // {{{ 1479 1 0 "a1266ad0_c893_4a0d_81e9dd81eb0a0eed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(seq_Temp); // }} "" // {{{ 1480 1 0 "bba77c1d_98eb_4c9f_9babaeb3023fcc09" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(seq_Temp, 1); // }} "" // {{{ 1481 1 0 "f2551e25_1b3f_491f_8a0b8a07aa55cab3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_PositionFound = SeqLookupPosition(i_seq_PositionsToRemove, str_LabID, str_PosID, 1, 1); // }} "" // {{ 1482 1 0 "d8ebb259_8c97_4ef4_bd2c3bd8bbd2b0fb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionFound == 0) { // }} "" // {{{ 1483 1 0 "3b008676_2196_4230_97cada5591337ed6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(io_seq_SourceSequence, str_LabID, str_PosID); // }} "" // {{ 1484 1 0 "d8ebb259_8c97_4ef4_bd2c3bd8bbd2b0fb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1485 1 0 "602a5bbe_2a7a_4a9b_88743024eb2dfdef" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1486 1 0 "cfaf7aa8_2710_48aa_94d36dae4c27d35d" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_seq_SourceSequence.SetCurrentPosition(1); // }} "" // {{{ 5 "_RemoveSequencePositions" "End" } // }} "" // {{{ 5 "TIP_OFFSET_CleanUpTips_Column" "Begin" function TIP_OFFSET_CleanUpTips_Column( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable str_TipOffsetLabID; private sequence seq_EjectSequence; private variable i; private variable str_LabID; private variable str_PosID; private variable int_TotalLabwareSet; private variable bln_ValueFound; private sequence seq_Temp; private variable int_TotalEmpty; private sequence seq_EmptyPosition; // {{ 5 "TIP_OFFSET_CleanUpTips_Column" "InitLocals" // }} "" // {{ 10 1 0 "9c977fce_4ce8_4bcd_bf0677d01ef8c4db" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 11 1 0 "4c88c288_2411_4bc2_8fb49335e4195e08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 13 1 0 "4e2ff1df_abb8_40a1_b1428985767f1536" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 14 1 0 "db5ceb45_1535_4c00_bf505b5fc7d4fd63" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 15 1 0 "089dce6d_aefc_4497_aa0ff3d1d60f4563" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 16 1 0 "c9c9957a_6f22_4865_b13319e09d0446ee" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 17 1 0 "abc3851b_2e11_4e7a_a174e99611ae6403" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 19 1 0 "9c977fce_4ce8_4bcd_bf0677d01ef8c4db" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 20 1 0 "13031173_b1e1_4da0_bcb37a1afa9e490d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 21 1 0 "72903d07_7f6d_4fe6_98a0fc32a0219dac" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 22 1 0 "973e69f4_cc5a_4e7d_aa95eb1b56321c0c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetFullSequenceCopy(ML_STAR, i_seq_TipOffset, seq_Temp); // }} "" // {{{ 23 1 0 "9de27161_3a27_44e7_baa5fad03917f24f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipOffsetLabID = SeqGetLabwareId(seq_Temp); // }} "" // {{{ 24 1 0 "f80e0db7_737f_467f_af0d0b03fed6539f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 25 1 0 "d8f14485_5af2_4536_bfc8aee34d981a8a" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalLabwareSet=TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.GetSize(); // }} "" // {{ 26 1 0 "8160b2dd_7f14_4ff2_890843047c2b6c8a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalLabwareSet > 0) { // }} "" // {{{ 27 1 0 "c0800483_2768_4d78_a6ba2e182474aac7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_ValueFound = Util::Lookup(TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, str_TipOffsetLabID, TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX); // }} "" // {{ 28 1 0 "f47875f7_7ed0_4c22_bc117184b10bf679" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX + 1; // }} "" // {{ 29 1 0 "6c5263dd_0d65_4780_82a7a5b120e4daeb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::FALSE) { // }} "" // {{ 30 1 0 "79fe33aa_f8a7_44a6_9abf9233e1fd8f68" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1; // }} "" // {{ 31 1 0 "0c757a45_93d1_4d7a_811282b5b3265a00" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0; // }} "" // {{ 32 1 0 "3bbcb1ea_6bbf_4cac_ab35cae30c7add29" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID); // }} "" // {{ 33 1 0 "42f515ef_8fd5_44b5_9618182e02cf0907" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 34 1 0 "4553098b_9dab_4c53_bb57580b9c25fd56" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 35 1 0 "6c5263dd_0d65_4780_82a7a5b120e4daeb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 36 1 0 "8a946914_9883_4cd6_a5989813bbcd6318" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED=TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1); // }} "" // {{ 37 1 0 "ff9420a9_bdb3_4f4f_9dde8937f5faaf7d" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP=TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1); // }} "" // {{ 38 1 0 "6fcc982e_bb1f_4933_9574b3993db199a2" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT=TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1); // }} "" // {{ 39 1 0 "6c5263dd_0d65_4780_82a7a5b120e4daeb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 40 1 0 "8160b2dd_7f14_4ff2_890843047c2b6c8a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 41 1 0 "5b9993e0_0699_4a4c_a152b832d3e9a22a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1; // }} "" // {{ 42 1 0 "73bad431_afe6_4792_a150db44252d2277" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0; // }} "" // {{ 43 1 0 "8d671348_7725_4f18_a35b6da4a0e8c6a5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID); // }} "" // {{ 44 1 0 "ecab34cf_84fd_4826_98d8d8297f1ef3fc" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 45 1 0 "2f386c44_23d6_4560_8bb4978c71ceb7c2" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 46 1 0 "4525ea89_1ceb_4513_a4dc14a6c445415c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.AddAsLast(seq_Temp); // }} "" // {{ 47 1 0 "8160b2dd_7f14_4ff2_890843047c2b6c8a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 48 1 0 "7708bfd1_14c2_4ad8_bdbb879a69de10c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_2(Translate("Labware Count"), TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED); // }} "" // {{{ 49 1 0 "0b20b846_8659_462d_af766c2b252880a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Current Index: "), TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX); // }} "" // {{{ 50 1 0 "a6313c24_d5e0_4b9a_9c5f37873d0fb084" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Current Labware: "), str_TipOffsetLabID); // }} "" // {{{ 51 1 0 "8f626e7a_23fe_4fc2_83d9d9a4b8ff87fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Current Tip Count "), TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 52 1 0 "13031173_b1e1_4da0_bcb37a1afa9e490d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 53 1 0 "bebe07e9_2e2a_4853_9a668bd705a362a4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED > 0) { // }} "" // {{{ 54 1 0 "989d5d31_d36f_41ec_964e40dacdd39304" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _InitializeLibrary(); // }} "" // {{ 55 1 0 "126dcfac_007c_4873_92226e3e0604b44e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 56 1 0 "b2f49f6d_9523_4637_bc61abc1bac18cd6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToString(i_str_TipCounter); // }} "" // {{ 57 1 0 "c2e9e942_df77_42f4_8b1f1c072c38e48f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 58 1 0 "17a6d022_d77f_4d69_9c8ec14562b8a746" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(io_seq_SourceTips); // }} "" // {{{ 59 1 0 "91277d31_59db_47f6_935b00ae5a44b52c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _SetEmptyPositions(ML_STAR, io_seq_SourceTips); // }} "" // {{{ 60 1 0 "6b8342c0_0d50_4b6f_b6dad5de0f21c58e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 61 1 0 "2c8fd748_1b91_4d73_b7ea246cc56a5972" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetConsecutiveSequencePositions(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED, 1, seq_EjectSequence); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 62 1 0 "afe3992a_f985_40b5_973850a500a54b07" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition_Partial(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, seq_EmptyPosition, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{{ 63 1 0 "71edf0dc_0e20_4203_a2d3f0420d3d6c0a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalEmpty = SeqGetTotal(seq_EmptyPosition); // }} "" // {{ 64 1 0 "ca0876c0_6a6a_46e4_a531e50d6bef54bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalEmpty > 0) { // }} "" // {{{ 65 1 0 "5baf06a7_1f38_4899_9f5a9917f318367c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, seq_EmptyPosition); // }} "" // {{ 66 1 0 "ca0876c0_6a6a_46e4_a531e50d6bef54bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 67 1 0 "24ce36de_4426_4620_a5a6e420ecf73fa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 1); // }} "" // {{ 68 1 0 "4d8bd23d_4c09_4d47_8ef2d2975370d3e3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < TIP_OFFSET_GLOBAL::INT::TIPS_LOADED;) { i = i + 1; // }} "" // {{ 69 1 0 "39c15c23_517e_4f1d_bc788cbadcc0903b" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(i); // }} "" // {{{ 70 1 0 "ca316ec2_7407_4751_8baf979e03a865ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{{ 71 1 0 "7ba2ce21_5215_4bb1_917ada2a30f86182" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{{ 72 1 0 "e6e2b33c_1d40_4ebd_a89e4758f8adffd4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(io_seq_SourceTips, str_LabID, str_PosID); // }} "" // {{ 73 1 0 "4d8bd23d_4c09_4d47_8ef2d2975370d3e3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 74 1 0 "f17c3be1_a5fa_4682_bcdcfe87f330155f" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(1); // }} "" // {{ 75 1 0 "252683b7_168c_4641_896b4e9321fcd155" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_seq_SourceTips.SetCurrentPosition(1); // }} "" // {{{ 76 1 0 "86cd9873_6723_4728_923acbc54ca0aa34" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 1); // }} "" // {{{ 77 1 0 "c8700c95_9c63_4c21_abcf7001d897045a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ReturnTipsToPickUp(ML_STAR, BOOLEON::TRUE); // }} "" // {{{ 78 1 0 "98f7cf9e_1dd1_4dd5_9774a5ec5557061c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipOffsetLabID = SeqGetLabwareId(i_seq_TipOffset); // }} "" // {{{ 79 1 0 "7379c716_e918_4776_bf3a677a6d7c618e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, str_TipOffsetLabID, Translate("MlStarTipRack"), -1); // }} "" // {{{ 80 1 0 "5490931a_a31c_45a6_abb21987654ed8e7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, str_TipOffsetLabID, Translate("MlStarCore96TipRack"), -1); // }} "" // {{{ 81 1 0 "f8a9f969_d65a_48ec_a16ba26f1ad42a00" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(io_seq_SourceTips); // }} "" // {{{ 82 1 0 "1f4ccd71_e044_4a7c_8420bf765c65b7a5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, io_seq_SourceTips, 0); // }} "" // {{{ 83 1 0 "473ac956_a72d_4ec5_94d114fb5dc8cd16" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{ 84 1 0 "6057d0b0_3efe_447c_b2b0a5d21ab39b5f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.SetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{{ 85 1 0 "70fa1886_7440_410b_9dcb3b7ae75eda9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate("")); // }} "" // {{ 86 1 0 "bebe07e9_2e2a_4853_9a668bd705a362a4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 87 1 0 "f76f5d60_3214_4dab_9287dd527e8b70e6" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("====================================================================\nNo tips to clean up\n====================================================================")); // }} "" // {{ 88 1 0 "bebe07e9_2e2a_4853_9a668bd705a362a4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 89 1 0 "35ecc0f7_cb84_4aee_81d4b5b633d42cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate("")); // }} "" // {{ 90 1 0 "80809c32_7cee_49c5_afd282413a42b67d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 92 1 0 "80809c32_7cee_49c5_afd282413a42b67d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TIP_OFFSET_CleanUpTips_Column" "End" } // }} "" // {{{ 5 "_GetConsecutiveSequencePositions" "Begin" private function _GetConsecutiveSequencePositions( device & ML_STAR, sequence i_seq_SourcePositions, variable i_int_TotalPositionsNeeded, variable i_bool_RightToLeft, sequence & o_seq_ConsecutivePositions ) void { // }} "" private variable int_TotalPositions; private variable i; private variable str_CurrentLabID; private sequence seq_FullSequence; private variable str_CurrentPosID; private variable int_CurrentColumn; private variable int_Position; private variable int_Column; private variable int_Remainder; private variable int_ColumnCheck; private variable int_RowCount; private variable int_PositionsAdded; private variable str_LabID; // {{ 5 "_GetConsecutiveSequencePositions" "InitLocals" // }} "" // {{{ 1009 1 0 "45f61a40_5813_445d_a1b25caa5ddb4322" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_ConsecutivePositions); // }} "" // {{{ 1010 1 0 "624facd2_7d8d_4709_8640ca722ed523c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, seq_FullSequence, i_bool_RightToLeft); // }} "" // {{{ 1011 1 0 "895b7379_4dc1_40b9_b3673dd0e5350756" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(i_seq_SourcePositions); // }} "" // {{{ 1012 1 0 "20516072_1030_45ab_a3b6653ed3f9f013" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, i_seq_SourcePositions, i_bool_RightToLeft); // }} "" // {{ 1013 1 0 "42c24216_9814_450d_9354f0bf3354b587" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_CurrentColumn = 0; // }} "" // {{ 1014 1 0 "697137fa_76e2_4d7c_96b2c75ef89e4bd3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_RowCount = 0; // }} "" // {{ 1015 1 0 "45bb8043_4010_46ae_b08c6336efc30b89" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PositionsAdded = 0; // }} "" // {{ 1016 1 0 "d5f17626_ba7d_4665_94a36d4663bb3cc8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_LabID = Translate(""); // }} "" // {{ 1017 1 0 "7d1872b9_d14d_4c21_af948a925517dfdb" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalPositions;) { i = i + 1; // }} "" // {{ 1018 1 0 "8ed35f32_d6ce_405e_b9ba98078b613662" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_SourcePositions.SetCurrentPosition(i); // }} "" // {{{ 1019 1 0 "8e50cdaa_499f_4058_b49583924f70deff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentLabID = SeqGetLabwareId(i_seq_SourcePositions); // }} "" // {{{ 1020 1 0 "9f608509_5ffc_43e6_ad41f5153e6f9cc3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentPosID = SeqGetPositionId(i_seq_SourcePositions); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Current Lab: ",str_CurrentLabID," Current Pos ID: ",str_CurrentPosID," Current Column: ",int_CurrentColumn," Column: ",int_Column); /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 1022 1 0 "faac5995_741b_4b99_884b123c438fb849" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Position = StrIVal(str_CurrentPosID); // }} "" // {{ 1023 1 0 "2f0e30ea_dc16_40f3_906cc39df93d62bd" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Column = int_Position / 8; // }} "" // {{ 1024 1 0 "be2a4cd5_39ed_453d_bdb713fe01b91d33" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Remainder = int_Position % 8; // }} "" // {{ 1025 1 0 "cc8462b0_fefe_4770_89743f112f793252" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Remainder > 0) { // }} "" // {{ 1026 1 0 "d2ae610c_f0cd_4725_b43449d0927d1181" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Column = int_Column + 1; // }} "" // {{ 1027 1 0 "cc8462b0_fefe_4770_89743f112f793252" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1028 1 0 "ef9e9c41_abc4_42c0_a1c722917060084c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_CurrentLabID != str_LabID) { // }} "" // {{ 1029 1 0 "c50395ce_5140_4dc1_9f85da9e76833f28" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1030 1 0 "5786d3a7_fca2_41d9_812986d62fddcd3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_ConsecutivePositions); // }} "" // {{ 1031 1 0 "f5082b25_207e_417c_b5d1f2ea7e9be29d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_RowCount = 0; // }} "" // {{ 1032 1 0 "fe3e5f8a_6d76_40cd_80f0afd0ade4fcff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_CurrentColumn = int_Column; // }} "" // {{ 1033 1 0 "8c53421e_accc_48ab_be357fbdefeb43eb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PositionsAdded = 0; // }} "" // {{ 1034 1 0 "17d13438_a1e8_42ca_8cb8cb137a5ad4af" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_LabID = str_CurrentLabID; // }} "" // {{ 1035 1 0 "ef9e9c41_abc4_42c0_a1c722917060084c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1036 1 0 "d0f4493e_f484_4996_9f5440bd98207a2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Column != int_CurrentColumn) { // }} "" // {{ 1037 1 0 "be1ce2fb_14f5_4819_8220782bb5f8af71" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bool_RightToLeft == 1) { // }} "" // {{ 1038 1 0 "d8605043_d4bc_40d2_af4b65a182fd23a5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ColumnCheck = int_CurrentColumn - int_Column; // }} "" // {{ 1039 1 0 "be1ce2fb_14f5_4819_8220782bb5f8af71" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1040 1 0 "7e485116_185d_44b6_b08019114c26c751" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ColumnCheck = int_Column - int_CurrentColumn; // }} "" // {{ 1041 1 0 "be1ce2fb_14f5_4819_8220782bb5f8af71" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Column Check: ",int_ColumnCheck); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1043 1 0 "44d13b99_3351_474f_9f3a62edf3b74415" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_RowCount != 8) { // }} "" // {{ 1044 1 0 "023a5894_2e10_4d92_84f2cedaa5416445" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1045 1 0 "816f5f29_09d2_43e8_acc44f8b7a163fac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_ConsecutivePositions); // }} "" // {{ 1046 1 0 "651c1915_1b09_4bef_96cb634f476cf22c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_RowCount = 0; // }} "" // {{ 1047 1 0 "a68cc52d_e4cc_48b6_ad635b0f343c5076" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_CurrentColumn = int_Column; // }} "" // {{ 1048 1 0 "1631a58f_7907_4c3e_9c24d65244d338f8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PositionsAdded = 0; // }} "" // {{ 1049 1 0 "44d13b99_3351_474f_9f3a62edf3b74415" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1050 1 0 "8aa75262_51a2_4aa2_bfca3c88c4a8f54c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ColumnCheck != 1) { // }} "" // {{ 1051 1 0 "718d65eb_0f7b_40f2_886fdf4ae1e0dfbf" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1052 1 0 "63fd6f69_2a44_4647_be1ebff446f1588a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_ConsecutivePositions); // }} "" // {{ 1053 1 0 "d0ebbe5d_2854_4191_a5552d45c341eff9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_RowCount = 0; // }} "" // {{ 1054 1 0 "db4162a3_2fdb_46ab_b31116f822b03802" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_CurrentColumn = int_Column; // }} "" // {{ 1055 1 0 "7bbd9a28_a4f5_4b7e_8c53fa24e82bbb4f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PositionsAdded = 0; // }} "" // {{ 1056 1 0 "8aa75262_51a2_4aa2_bfca3c88c4a8f54c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1057 1 0 "c25301a5_f020_4807_9d2eb6e4628b12c6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_RowCount = 0; // }} "" // {{ 1058 1 0 "9519636f_0911_4964_99129511b658b254" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bool_RightToLeft == 1) { // }} "" // {{ 1059 1 0 "261a6c5b_c4c9_432a_a078bb44e5e49349" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CurrentColumn = int_CurrentColumn - 1; // }} "" // {{ 1060 1 0 "9519636f_0911_4964_99129511b658b254" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1061 1 0 "17881d98_da34_41c2_99d102b37e87413d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CurrentColumn = int_CurrentColumn + 1; // }} "" // {{ 1062 1 0 "9519636f_0911_4964_99129511b658b254" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1063 1 0 "8aa75262_51a2_4aa2_bfca3c88c4a8f54c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1064 1 0 "44d13b99_3351_474f_9f3a62edf3b74415" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1065 1 0 "d0f4493e_f484_4996_9f5440bd98207a2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1066 1 0 "edd54921_4b60_490e_911918856bea4d2d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_RowCount = int_RowCount + 1; // }} "" // {{ 1067 1 0 "8d4353b1_da39_4912_b8503fe3fa6d0874" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_PositionsAdded = int_PositionsAdded + 1; // }} "" // {{{ 1068 1 0 "dec7c412_5544_4d1f_94ac15c15945aa31" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq_ConsecutivePositions, str_CurrentLabID, str_CurrentPosID); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Current Row count: ",int_RowCount," Positions added: ",int_PositionsAdded); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1070 1 0 "dfeda4b2_68e9_4330_84f9535ad6322b51" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsAdded == i_int_TotalPositionsNeeded) { // }} "" // {{ 1071 1 0 "00e95285_757f_423a_b49eaf8646fdc5d8" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1072 1 0 "dfeda4b2_68e9_4330_84f9535ad6322b51" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1073 1 0 "7d1872b9_d14d_4c21_af948a925517dfdb" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1074 1 0 "cc57a3c5_c0d8_4314_b04ff304b0f43e88" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq_ConsecutivePositions.SetCurrentPosition(1); // }} "" // {{{ 1075 1 0 "7ba1b522_9f36_4295_921dde974d73efaf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(o_seq_ConsecutivePositions); // }} "" // {{ 1076 1 0 "e5ffc43b_6ed4_4433_ba917cd9910d1904" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalPositions < i_int_TotalPositionsNeeded) { // }} "" // {{ 1077 1 0 "a0baa724_65cf_4853_9f2ee0c9cff8c0e2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1078 1 0 "c8c70182_32ca_423b_b453c363f1ed7020" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_ConsecutivePositions); // }} "" // {{ 1079 1 0 "e5ffc43b_6ed4_4433_ba917cd9910d1904" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "_GetConsecutiveSequencePositions" "End" } // }} "" // {{{ 5 "__SortSequence2" "Begin" private function __SortSequence2( device & Instrument, sequence & io_SequenceToSort, variable i_bool_SortBottomToFront ) void { // }} "" private variable flt_X_Coord; private variable flt_NotUsed; private variable flt_Y_Coord; private variable i; private variable str_LabID; private variable str_Sort; private variable bool_FileExists; private variable str_PosID; private variable str_TempSortFile; private variable int_TotalPositions; private file SortFile; // {{ 5 "__SortSequence2" "InitLocals" // }} "" // {{{ 1715 1 0 "d8c19210_d0c0_46b0_8064624178867ede" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __GetSortFilePath(str_TempSortFile); // }} "" // {{{ 1716 1 0 "281e1aa3_4502_44d7_91e0b73485220c84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(str_TempSortFile); // }} "" // {{ 1717 1 0 "80dfa7b6_3e7c_4ccd_8166a60de630f7c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 1) { // }} "" // {{{ 1718 1 0 "f13dada9_78e8_4566_add9569f819f8385" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(str_TempSortFile); // }} "" // {{ 1719 1 0 "80dfa7b6_3e7c_4ccd_8166a60de630f7c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1720 1 0 "079b7915_167b_4834_bc0f98fb63b329c5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(io_SequenceToSort); // }} "" // {{{ 1721 1 0 "58f71307_375d_405b_9505485f7f9ad019" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(io_SequenceToSort); // }} "" // {{ 1722 1 0 "406cf51d_1a46_47f4_afdf832f94195f51" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("POS_ID", str_PosID, hslString, 255); SortFile.AddField("X_COORD", flt_X_Coord, hslFloat); SortFile.AddField("Y_COORD", flt_Y_Coord, hslFloat); if( 0 == SortFile.Open(str_TempSortFile + " " + "SORT_FILE", hslWrite) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_TempSortFile, "HxMetEdCompCmd"); } // }} "" // {{ 1723 1 0 "939182db_db95_4016_b264964b78628150" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalPositions;) { i = i + 1; // }} "" // {{ 1724 1 0 "3a307212_7a62_410e_9af39672653e648e" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_SequenceToSort.SetCurrentPosition(i); // }} "" // {{{ 1725 1 0 "a9c3d161_f529_4033_8e099253fe4b562f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(io_SequenceToSort); // }} "" // {{{ 1726 1 0 "f9fe6bb8_45d8_428a_990789dab96ebd7f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(io_SequenceToSort); // }} "" // {{{ 1727 1 0 "afdc00b2_1b32_4030_8ee4bb06d978911c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(Instrument, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_NotUsed, flt_NotUsed); // }} "" // {{ 1728 1 0 "2485bd3b_7ee5_453c_b606235c9e2ea4a1" "{B31F3537-5D80-11d4-A5EB-0050DA737D89}" if( 0 == SortFile.WriteRecord() ) { MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1729 1 0 "939182db_db95_4016_b264964b78628150" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1730 1 0 "3520ba6d_e894_4dd4_9b026dc95d0ce171" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != SortFile.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } SortFile.RemoveFields(); // }} "" // {{ 1731 1 0 "754e2367_768a_40ab_b65c6571e3d47b76" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bool_SortBottomToFront == 1) { // }} "" // {{{ 1732 1 0 "d1b78f06_d9c2_4980_be6e5b61c670ca4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Sort = StrConcat2(Translate("SELECT * FROM SORT_FILE ORDER BY LAB_ID ASC, Y_COORD ASC, X_COORD ASC"), Translate("")); // }} "" // {{ 1733 1 0 "754e2367_768a_40ab_b65c6571e3d47b76" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1734 1 0 "09fc4a26_d15b_4c75_9aee08c0383ec967" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Sort = StrConcat2(Translate("SELECT * FROM SORT_FILE ORDER BY LAB_ID ASC, Y_COORD DESC, X_COORD ASC"), Translate("")); // }} "" // {{ 1735 1 0 "754e2367_768a_40ab_b65c6571e3d47b76" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1736 1 0 "a027b655_eb98_475c_87ff5b9e27123531" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("POS_ID", str_PosID, hslString, 255); SortFile.AddField("X_COORD", flt_X_Coord, hslFloat); SortFile.AddField("Y_COORD", flt_Y_Coord, hslFloat); if( 0 == SortFile.Open(str_TempSortFile + " " + "SORT_FILE", hslRead, str_Sort) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, str_TempSortFile, "HxMetEdCompCmd"); } // }} "" // {{{ 1737 1 0 "667a43dc_f14d_4044_b740ba4b7a7148b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(io_SequenceToSort); // }} "" // {{ 1738 1 0 "1bd5266f_8497_45dd_b575d0d28197ba15" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while ( (SortFile.Eof() == 0) ) { // }} "" // {{ 1739 1 0 "e10def12_36c5_49d7_9e9a5cf4c9c3294d" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == SortFile.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 1740 1 0 "1d7d00f3_cdbb_4a18_b37f3c5bcbf453b6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(io_SequenceToSort, str_LabID, str_PosID); // }} "" // {{ 1741 1 0 "1bd5266f_8497_45dd_b575d0d28197ba15" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1742 1 0 "4a28d788_1dbb_4173_982b57a488949def" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != SortFile.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } SortFile.RemoveFields(); // }} "" // {{ 1743 1 0 "a9e34a1f_014e_408f_8cee1f8d34c3541a" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_SequenceToSort.SetCurrentPosition(1); // }} "" // {{{ 5 "__SortSequence2" "End" } // }} "" // {{{ 5 "_ReturnTipsToPickUp2" "Begin" private function _ReturnTipsToPickUp2( device & ML_STAR, variable i_bool_PickUpTop ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable i; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable str_ChPatternTemp; private variable int_TotalRows; private variable str_ChPattern; private variable int_TotalLabwareSet; private variable bln_ValueFound; private variable str_TipOffsetLabID; private sequence seq_Temp; private variable int_Index; // {{ 5 "_ReturnTipsToPickUp2" "InitLocals" // }} "" // {{ 1555 1 0 "5e7b9665_89cc_420c_927d759e49c95ace" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1556 1 0 "c0b8195c_5500_43d5_bbae46b129445f4d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1558 1 0 "ceb660a4_1e09_495a_af9d437ab9a5a99d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 1559 1 0 "52067d96_ab00_4020_97a598500b667a23" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1560 1 0 "916c2639_28ba_4900_9a2895e3291bf591" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 1561 1 0 "646c7aa8_9dd6_4439_b7504a95ee9d3c01" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1562 1 0 "49c255c6_86df_4c7b_80215ff52479d5d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("*********************************"); Trace(strFunctionName_Cut," - START"); // {{ 1564 1 0 "5e7b9665_89cc_420c_927d759e49c95ace" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1565 1 0 "72bb38cd_027c_4832_8312ffe1c3594af5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ChPattern = Translate(""); // }} "" // {{ 1566 1 0 "90f01e5f_01f3_4a05_a86e0c5bd41f862b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ChPatternTemp = Translate(""); // }} "" // {{ 1567 1 0 "ee561b68_5b00_44cf_a9aff06d0de4e234" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_TotalRows = TIP_OFFSET_GLOBAL::INT::TIPS_LOADED / 12; // }} "" // {{{ 1568 1 0 "1aedee24_286e_4109_8daa5ea5437e23a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPatternTemp = StrFillLeft(str_ChPatternTemp, Translate("1"), int_TotalRows); // }} "" // {{ 1569 1 0 "c074e2db_9e7a_4f31_a480ca10d1880403" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bool_PickUpTop == 1) { // }} "" // {{{ 1570 1 0 "0572eff4_fc20_41e5_8001191d7aa263e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPatternTemp = StrFillRight(str_ChPatternTemp, Translate("0"), 8); // }} "" // {{ 1571 1 0 "c074e2db_9e7a_4f31_a480ca10d1880403" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1572 1 0 "39029307_ce3f_44fd_a7e50fa77f398c18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPatternTemp = StrFillLeft(str_ChPatternTemp, Translate("0"), 8); // }} "" // {{ 1573 1 0 "c074e2db_9e7a_4f31_a480ca10d1880403" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1574 1 0 "9946f923_9d7d_46ba_98536441e82fef0d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < 12;) { i = i + 1; // }} "" // {{{ 1575 1 0 "53b87832_9585_4a67_a3bd361d9d500c33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrConcat2(str_ChPattern, str_ChPatternTemp); // }} "" // {{ 1576 1 0 "9946f923_9d7d_46ba_98536441e82fef0d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" Trace("Channel Pattern: ",str_ChPattern); // {{ 1578 1 0 "cf95699e_2130_4713_a703c513a2833919" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bool_PickUpTop == 1) { // }} "" // {{{ 1579 1 0 "1c0f1249_261c_4d73_842a7a3683906746" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, 1); // }} "" // {{{ 1580 1 0 "1f84deff_8b65_411c_b3c892a03f0159d8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 0); // }} "" // {{ 1581 1 0 "cf95699e_2130_4713_a703c513a2833919" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1582 1 0 "428e1167_853c_49c1_9dc8216948775837" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, 0); // }} "" // {{{ 1583 1 0 "96341af2_98a9_47a6_bc2e93f438a91b38" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 1); // }} "" // {{ 1584 1 0 "cf95699e_2130_4713_a703c513a2833919" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1585 1 0 "168eeb82_4bc8_4bfc_97c8ee6989c0255a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::ADJUST_SetRelativePosition(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 0.0, 0.0, 2.0, 0.0); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1586 1 0 "b0061d06_0aac_470a_a8d3b39f550fe89a" "ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}" { variable arrRetValues[]; arrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B("b0061d06_0aac_470a_a8d3b39f550fe89a"); // Head96TipPickUp } // }} "" // {{ 1587 1 0 "4ac4e0ca_92f5_433d_b3b2fa5c50142366" "ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}" { variable arrRetValues[]; arrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C("4ac4e0ca_92f5_433d_b3b2fa5c50142366"); // Head96TipEject } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1588 1 0 "545bfcce_2a28_4daa_b46ce4f1c0b45aa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::ADJUST_SetRelativePosition(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 0.0, 0.0, -2.0, 0.0); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1589 1 0 "da979805_5c1d_44bf_a9274461d9e6bd04" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0; // }} "" // {{ 1590 1 0 "5a719109_effb_4add_a92fd2e96ccdc6c9" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalLabwareSet=TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.GetSize(); // }} "" // {{{ 1591 1 0 "fb626070_4e01_4a0d_940779388601f709" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipOffsetLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{{ 1592 1 0 "1337c81f_1b62_4732_af6b0a7b1f50f25c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 1593 1 0 "94dc6917_dc50_4d0d_9d95c4be38a73b84" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalLabwareSet > 0) { // }} "" // {{{ 1594 1 0 "abad11c3_7e1a_4427_83c6441e98320a8f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_ValueFound = Util::Lookup(TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, str_TipOffsetLabID, int_Index); // }} "" // {{ 1595 1 0 "fca5a990_a121_4b98_b9d37e41816f5697" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Index = int_Index + 1; // }} "" // {{ 1596 1 0 "6178c13c_2e72_4d99_a1f0642c5d6171d3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::TRUE) { // }} "" // {{ 1597 1 0 "20ca52c0_6205_47e0_84812b7ce71a5b37" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.SetAt(int_Index-1, str_TipOffsetLabID); // }} "" // {{ 1598 1 0 "8c5493ea_54c6_4065_8ac58793f645cfa0" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.SetAt(int_Index-1, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 1599 1 0 "2775ad44_3e72_401a_bded6d8cca933000" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.SetAt(int_Index-1, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 1600 1 0 "6178c13c_2e72_4d99_a1f0642c5d6171d3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1601 1 0 "94dc6917_dc50_4d0d_9d95c4be38a73b84" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1602 1 0 "d1cc4e56_eb6b_416c_8ef27270b720562e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1; // }} "" // {{ 1603 1 0 "0bf442e5_06a6_4d90_82007779eefb5692" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID); // }} "" // {{ 1604 1 0 "d1e4eadd_80e2_47e2_a2360516db308b8e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 1605 1 0 "75e628a1_4048_4afe_b50198804e3deab1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 1606 1 0 "630de213_e2ac_4c50_b7f0aa3d91888e3e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.AddAsLast(seq_Temp); // }} "" // {{ 1607 1 0 "94dc6917_dc50_4d0d_9d95c4be38a73b84" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1608 1 0 "c9b29730_ed18_41f8_bd1b048669683c56" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(strFunctionName_Cut," - FINISH"); Trace("*********************************"); // {{ 1610 1 0 "c9b29730_ed18_41f8_bd1b048669683c56" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "_ReturnTipsToPickUp2" "End" } // }} "" // {{{ 5 "_PickUpTips2" "Begin" private function _PickUpTips2( device & ML_STAR, variable i_int_TipsNeeded, variable i_bool_PickUpTop, variable o_str_PickUpReturn ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable i; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable str_ChPatternTemp; private variable int_TotalRows; private variable str_ChPattern; // {{ 5 "_PickUpTips2" "InitLocals" // }} "" // {{ 1440 1 0 "cf26c423_bf0c_47d3_b87ed90cf8773359" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1441 1 0 "cd256d14_237b_4a66_b655a9a50d22c66d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 1443 1 0 "c7cc2b1e_881d_4048_81d7b992372a275b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 1444 1 0 "cc99fa59_3632_468d_8bbaaed182c1e18c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 1445 1 0 "f1bce90a_27dc_4e86_a7d1ec8c82e48997" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 1446 1 0 "ad1b6110_fcce_4a59_9b69c06c29dc5cfd" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 1447 1 0 "536a62cd_5e40_4aec_a3bc07d026e55f0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("*********************************"); Trace(strFunctionName_Cut," - START"); // {{ 1449 1 0 "cf26c423_bf0c_47d3_b87ed90cf8773359" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1450 1 0 "0a53f549_dd05_4b34_ba335dcb824d707c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ChPattern = Translate(""); // }} "" // {{ 1451 1 0 "bfff7eb7_8be2_47b7_957a8a7f3b5612cd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_PickUpReturn = Translate(""); // }} "" // {{ 1452 1 0 "ccaeb071_e63b_418f_aa1862d86686ba31" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ChPatternTemp = Translate(""); // }} "" // {{ 1453 1 0 "79b745a3_a86c_4466_8c173bc31bdd23ae" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_TotalRows = i_int_TipsNeeded / 12; // }} "" // {{{ 1454 1 0 "1b8ee93b_cf1b_4c29_ad63308f22d814d8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPatternTemp = StrFillLeft(str_ChPatternTemp, Translate("1"), int_TotalRows); // }} "" // {{ 1455 1 0 "5fd54fac_9d02_46f2_a06097c100fd8a0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bool_PickUpTop == 1) { // }} "" // {{{ 1456 1 0 "277ff593_2c58_42a5_8d77bede67cab8fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPatternTemp = StrFillRight(str_ChPatternTemp, Translate("0"), 8); // }} "" // {{ 1457 1 0 "5fd54fac_9d02_46f2_a06097c100fd8a0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1458 1 0 "a2e7474c_10d5_41ca_ac39c2f120bc56e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPatternTemp = StrFillLeft(str_ChPatternTemp, Translate("0"), 8); // }} "" // {{ 1459 1 0 "5fd54fac_9d02_46f2_a06097c100fd8a0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1460 1 0 "c027254b_9923_4483_859c459ffc1c8f62" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < 12;) { i = i + 1; // }} "" // {{{ 1461 1 0 "57b44a36_931f_4c77_aae6d198ff294d3a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrConcat2(str_ChPattern, str_ChPatternTemp); // }} "" // {{ 1462 1 0 "c027254b_9923_4483_859c459ffc1c8f62" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" Trace("Channel Pattern: ",str_ChPattern); // {{{ 1464 1 0 "0fbd4717_f507_4d02_9ef2c35e4f5e5eb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, i_bool_PickUpTop); // }} "" // {{ 1465 1 0 "fbc26394_d289_44a3_b1f8ded9a070bb07" "ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}" { variable arrRetValues[]; arrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B("fbc26394_d289_44a3_b1f8ded9a070bb07"); // Head96TipPickUp o_str_PickUpReturn = arrRetValues[2]; } // }} "" // {{{ 1466 1 0 "2fcd3c63_0a49_4c8d_a0b9fbd10c740187" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, i_int_TipsNeeded); // }} "" // {{{ 1467 1 0 "a488ce9f_9a77_47b7_9cada75be459a1ec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{{ 1468 1 0 "218cd90e_6287_4d58_8724554f0affc4eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{ 1469 1 0 "cf9ebaa6_4f38_422d_89e60901bc30718b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(strFunctionName_Cut," - FINISH"); Trace("*********************************"); // {{ 1471 1 0 "cf9ebaa6_4f38_422d_89e60901bc30718b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "_PickUpTips2" "End" } // }} "" // {{{ 5 "_GetNextTipPickUpPosition_Partial2" "Begin" private function _GetNextTipPickUpPosition_Partial2( device & Instrument, sequence i_seq_Source, sequence & o_seq_TipPickUpPosition, variable i_int_TipsNeeded ) void { // }} "" private variable int_Remainder; private variable int_CurrentPosition; private variable i; private variable str_Row; private variable str_LabID_ToRemove; private variable int_Row; private variable str_LabID; private variable int_Position; private variable int_TotalTipLabware; private variable int_ColumnCount; private variable str_CurrentRow; private variable a; private variable int_PositionCount; private variable bool_FullRows; private variable str_PosID; private variable int_TotalPositions; private sequence seq_Temp; private sequence seq_Temp2; private variable arr_LabIDs[]; private variable str_PosID_AN; private variable int_Index; // {{ 5 "_GetNextTipPickUpPosition_Partial2" "InitLocals" { sequence __temp; o_seq_TipPickUpPosition = __temp; } // }} "" // {{{ 1257 1 0 "ec49e911_0114_462d_bc3b3ea411038c76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_TipPickUpPosition); // }} "" // {{{ 1258 1 0 "ed6887b5_8112_4302_8e4c1fb33d9369e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(i_seq_Source); // }} "" // {{{ 1259 1 0 "c7928306_8c1e_4a26_a46cc4541c9ac001" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqGetLabwareIds(i_seq_Source, arr_LabIDs); // }} "" // {{ 1260 1 0 "f0555ad5_a565_4418_b0726701ccd106ee" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalTipLabware=arr_LabIDs.GetSize(); // }} "" // {{ 1261 1 0 "d7550f95_d35a_4a3b_bc43380a38397235" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_LabID_ToRemove = Translate(""); // }} "" // {{ 1262 1 0 "88114e42_197e_4cc3_adb23ca0f1f47c6a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalTipLabware;) { i = i + 1; // }} "" // {{ 1263 1 0 "3468ac8a_fc52_48f1_b56d5e6fa258f188" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_LabID=arr_LabIDs.GetAt(i-1); // }} "" // {{{ 1264 1 0 "6041c4a5_1e78_4730_b5d1ae70bb3b5a64" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_PositionCount = SeqGetPositionCountForCurrLabware(i_seq_Source); // }} "" // {{ 1265 1 0 "ef9c605b_8911_460e_ae26f60623822575" "{B31F353B-5D80-11d4-A5EB-0050DA737D89}" int_CurrentPosition = i_seq_Source.GetCurrentPosition(); // }} "" // {{ 1266 1 0 "123b8921_7f54_4fe7_845bca1f8c7066d0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionCount >= i_int_TipsNeeded) { // }} "" // {{ 1267 1 0 "758180bc_b700_4f05_9b7167bcf64f0f01" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_LabID_ToRemove = str_LabID; // }} "" // {{ 1268 1 0 "5dfa1d30_e54b_479f_84201c34f5da3c18" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(a = 0; a < int_PositionCount;) { a = a + 1; // }} "" // {{{ 1269 1 0 "80101af6_c585_45e7_94cfe9a126e17942" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_Source); // }} "" // {{{ 1270 1 0 "aed3745b_e2bd_400b_b8ba56e5dd64e540" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq_TipPickUpPosition, str_LabID, str_PosID); // }} "" // {{{ 1271 1 0 "9853e992_e8d1_4b5c_8e1ead86d036db37" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(i_seq_Source, 1); // }} "" // {{ 1272 1 0 "5dfa1d30_e54b_479f_84201c34f5da3c18" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1273 1 0 "d5fbfd6f_c796_4ac5_8f1b6154fd90366a" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq_TipPickUpPosition.SetCurrentPosition(1); // }} "" // {{ 1274 1 0 "7fa969a8_8b1d_4671_a0bf03abfa150dd8" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("Check to make sure the sequence contains full rows")); // }} "" // {{{ 1275 1 0 "10863247_9d70_4b61_a23daa5d95386e3a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence2(Instrument, o_seq_TipPickUpPosition, 0); // }} "" // {{{ 1276 1 0 "1fa5c074_32da_4811_a07b7c7e0f0b571b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(o_seq_TipPickUpPosition); // }} "" // {{ 1277 1 0 "1e3fae55_9769_43f7_b77d1a50b45998e2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_CurrentRow = Translate(""); // }} "" // {{{ 1278 1 0 "316f6833_ed87_43a2_95f307e2f633da0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_Temp); // }} "" // {{{ 1279 1 0 "350c3450_1a0e_48ce_a9a67e5f58cadb99" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_Temp2); // }} "" // {{ 1280 1 0 "48284ecc_0be5_4f60_9d17f04d3eb1f7c9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ColumnCount = 0; // }} "" // {{{ 1281 1 0 "60cee4e6_24b3_4ed4_946cdb5bbddfe714" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(o_seq_TipPickUpPosition); // }} "" // {{ 1282 1 0 "7f436bc8_e327_4601_9258f82ab8669573" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_FullRows = 1; // }} "" // {{ 1283 1 0 "24dad927_e0d9_43a4_b81e39162e845a5a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_Index = 0; int_Index < int_TotalPositions;) { int_Index = int_Index + 1; // }} "" // {{ 1284 1 0 "7d7e7c6a_ed6d_4806_be20c817e37bfe02" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq_TipPickUpPosition.SetCurrentPosition(int_Index); // }} "" // {{{ 1285 1 0 "b1ed9436_7674_4131_96aa90fa54cded23" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(o_seq_TipPickUpPosition); // }} "" // {{{ 1286 1 0 "c1c9c043_ec96_43c6_9956065b0d51e126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Position = StrIVal(str_PosID); // }} "" // {{{ 1287 1 0 "89d24bfe_dee3_418e_9efb6caa2bdbc031" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ANC::Convert_Numbers_to_Alpha_Numeric(1, int_Position, 8, 12, str_PosID_AN); // }} "" // {{{ 1288 1 0 "359a5ec3_2cb4_4bcc_b91c28ddb3a15a03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Row = StrLeft(str_PosID_AN, 1); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 1289 1 0 "3a601155_1c1e_4ff6_acffdf9d6c95dc26" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Row = int_Position / 12; // }} "" // {{ 1290 1 0 "c7f29158_519e_4d19_9e9d3a6d3daf6805" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Remainder = int_Position % 12; // }} "" // {{ 1291 1 0 "e689ccf3_b636_409a_b41977a231fef52d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Remainder > 0) { // }} "" // {{ 1292 1 0 "4468848d_e225_48e4_8db761b1507fd568" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Row = int_Row + 1; // }} "" // {{ 1293 1 0 "e689ccf3_b636_409a_b41977a231fef52d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1294 1 0 "553d1226_ee88_47f8_81e75627769517d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Row = StrConcat2(int_Row, Translate("")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1295 1 0 "9b31452f_96f9_4074_bf42c9d8d69d1d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_Row != str_CurrentRow) { // }} "" // {{ 1296 1 0 "0957065f_43c1_491c_b7fd714be509ebec" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ColumnCount > 0) { // }} "" // {{ 1297 1 0 "524f969e_45bf_4c5d_80cf4384457ccf42" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ColumnCount == 12) { // }} "" // {{ 1298 1 0 "6b94eedf_1355_4e64_93f92676a7f16175" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1299 1 0 "524f969e_45bf_4c5d_80cf4384457ccf42" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1300 1 0 "a5c9a11d_b909_4216_b9e07c5076f742e0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1301 1 0 "7f50af4b_bb79_4fc7_867e30e27ba2cbd5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_FullRows = 0; // }} "" // {{{ 1302 1 0 "b1ae8e24_9a11_433e_becb766ffacd1c14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_TipPickUpPosition); // }} "" // {{ 1303 1 0 "ca314fb7_0ac2_49e5_b996f0fa98cf7bbb" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1304 1 0 "524f969e_45bf_4c5d_80cf4384457ccf42" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1305 1 0 "0957065f_43c1_491c_b7fd714be509ebec" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1306 1 0 "01f344ef_0edf_4199_a9001f31efba9035" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ColumnCount = 0; // }} "" // {{ 1307 1 0 "8ea849b5_cada_4a5f_9935eb23dfe45b65" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_CurrentRow = str_Row; // }} "" // {{{ 1308 1 0 "841e04bc_596a_4622_94fb1ece02b154d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(seq_Temp, str_LabID, str_PosID); // }} "" // {{ 1309 1 0 "05f4c48e_3ca3_45e7_94cc083989da7669" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ColumnCount = int_ColumnCount + 1; // }} "" // {{ 1310 1 0 "9b31452f_96f9_4074_bf42c9d8d69d1d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1311 1 0 "f5b75ac7_6975_494e_b06d850e55407977" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(seq_Temp, str_LabID, str_PosID); // }} "" // {{ 1312 1 0 "a157c1c9_eb05_4834_b7dfc5f065cc29ad" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ColumnCount = int_ColumnCount + 1; // }} "" // {{ 1313 1 0 "9b31452f_96f9_4074_bf42c9d8d69d1d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1314 1 0 "9dbc4c6c_ed0b_4548_8fa4919f79f984e9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index == int_TotalPositions) { // }} "" // {{ 1315 1 0 "ed17d90b_76cd_4959_b9788d007fd73d45" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ColumnCount == 12) { // }} "" // {{ 1316 1 0 "ed17d90b_76cd_4959_b9788d007fd73d45" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1317 1 0 "e6d00d68_873c_408c_94b0e29af30ad496" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1318 1 0 "8f92e77e_ebf1_4c4c_a3fd3f9e5179863b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_FullRows = 0; // }} "" // {{{ 1319 1 0 "c4e6f2fa_ed73_4e61_97e8dd4efedeadb2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_TipPickUpPosition); // }} "" // {{ 1320 1 0 "587bc09f_a1e1_4a1c_810acbc414c15107" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1321 1 0 "ed17d90b_76cd_4959_b9788d007fd73d45" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1322 1 0 "9dbc4c6c_ed0b_4548_8fa4919f79f984e9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1323 1 0 "24dad927_e0d9_43a4_b81e39162e845a5a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1324 1 0 "57c12ed5_7b1b_4a51_baf981867ee31486" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FullRows == 1) { // }} "" // {{{ 1325 1 0 "342758fa_5408_43c1_867c3763ce017b71" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(o_seq_TipPickUpPosition, seq_Temp); // }} "" // {{ 1326 1 0 "77ba68c1_21e6_48a0_83b347f7e3524a58" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq_TipPickUpPosition.SetCurrentPosition(1); // }} "" // {{ 1327 1 0 "b711d5e5_9bfa_4f14_83dc34749c3e1c1c" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1328 1 0 "57c12ed5_7b1b_4a51_baf981867ee31486" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1329 1 0 "123b8921_7f54_4fe7_845bca1f8c7066d0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1330 1 0 "b5809850_1032_4e10_837a60f170ca86d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(i_seq_Source, int_PositionCount); // }} "" // {{ 1331 1 0 "123b8921_7f54_4fe7_845bca1f8c7066d0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1332 1 0 "88114e42_197e_4cc3_adb23ca0f1f47c6a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "_GetNextTipPickUpPosition_Partial2" "End" } // }} "" // {{{ 5 "TIP_OFFSET_PickUpTips_Rows" "Begin" function TIP_OFFSET_PickUpTips_Rows( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_int_RowsNeeded, variable i_str_TipCounter, variable i_bool_UseTop ) variable { // }} "" private variable int_CutNum; private variable str_SequenceName; private variable int_Length; private variable int_TotalEmpty; private variable strFunctionName; private variable int_PositionsSet; private variable int_SourceTip_TipType; private variable strFunctionName_Cut; private variable str_TotalRows; private variable int_Count; private variable int_TipOffset_TipType; private variable int_TipsNeeded; private variable str_TipLabID; private sequence seq_EmptyPosition; private variable ret_str_TipPickUp; private variable int_TotalLabwareSet; private variable bln_ValueFound; private variable str_TipOffsetLabID; private sequence seq_Temp; // {{ 5 "TIP_OFFSET_PickUpTips_Rows" "InitLocals" // }} "" // {{ 620 1 0 "a3425028_9e99_47e8_8ae43b8b53947f58" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 621 1 0 "604336ae_b855_4b74_af933da80e46d64f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 623 1 0 "ede8e63c_2604_48a8_a24a0959933b72e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 624 1 0 "594e48b4_0ba4_424d_bfcdfb779f376581" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 625 1 0 "13d7e1bf_bcdd_4008_b5bd5ea9fc92d263" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 626 1 0 "f4a8bd2f_1361_468a_bfbf46720b8e36e6" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 627 1 0 "12908eae_16d0_4acd_a196d8401b4dc3d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 629 1 0 "a3425028_9e99_47e8_8ae43b8b53947f58" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 630 1 0 "bb819cdd_54a9_4d15_932cdf7dc6c2b594" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_str_TipPickUp = Translate(""); // }} "" // {{ 631 1 0 "cb5fce90_a82a_464d_944367bf3aed7e50" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 632 1 0 "d07efbc9_7bc6_4d77_9e783b3eb74f6bd8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TotalRows = StrConcat2(i_int_RowsNeeded, Translate("")); // }} "" // {{{ 633 1 0 "6032d1df_87e6_4eb6_ab740cab6b52f709" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_int_RowsNeeded = StrIVal(str_TotalRows); // }} "" // {{{ 634 1 0 "e1e2fbc4_3e1e_4326_ac1f35b204936063" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _InitializeLibrary(); // }} "" // {{ 635 1 0 "fcd12b22_4983_4539_b86d28db456d63cc" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 636 1 0 "e4644fe6_ac4e_4346_a203ed087abeb069" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::GetTipType(ML_STAR, io_seq_SourceTips, int_SourceTip_TipType); // }} "" // {{ 637 1 0 "d84786fb_8dcb_4737_97e7ce490e7b84ac" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 638 1 0 "27b03201_df40_4250_93bb4727f141bb01" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_TipsNeeded = i_int_RowsNeeded * 12; // }} "" // {{ 639 1 0 "adf5d747_fd7e_45f0_9d4972910238e45f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_RowsNeeded == 8) { // }} "" // {{{ 640 1 0 "41a56ecd_4884_47c7_a97af2c80729c5be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ret_str_TipPickUp = _LocalPickUpNextMPH96Tips(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{{ 641 1 0 "cd37b52e_35ee_454e_a0c6648174eb4fa8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{ 642 1 0 "0556b89f_623c_4db8_ba2040d8c55e5042" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 644 1 0 "0556b89f_623c_4db8_ba2040d8c55e5042" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 645 1 0 "f65f9f58_1001_4038_b6301ba2bb09c2f5" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_str_TipPickUp); // }} "" // {{ 646 1 0 "adf5d747_fd7e_45f0_9d4972910238e45f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 647 1 0 "0fd2eaec_e4e8_473d_ae08e3582dbc8e60" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(io_seq_SourceTips); // }} "" // {{ 648 1 0 "aeca59ab_2547_47a5_b0cde8f7b9ff0033" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 649 1 0 "081f8f13_e07c_47af_931159de68efe14b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 650 1 0 "bb87e489_dc38_4217_88cb567f1cffe1e1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetFullSequenceCopy(ML_STAR, i_seq_TipOffset, seq_Temp); // }} "" // {{{ 651 1 0 "021d8eeb_bf42_49b1_8ae97a1d4134f273" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipOffsetLabID = SeqGetLabwareId(seq_Temp); // }} "" // {{{ 652 1 0 "21efa13b_f4f9_481a_b33073045005ea30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 653 1 0 "6f5c9355_749e_4b0c_9f330db910d0aeb4" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalLabwareSet=TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.GetSize(); // }} "" // {{ 654 1 0 "d55fdca7_80b2_43c0_87f3252e0e1367e3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalLabwareSet > 0) { // }} "" // {{{ 655 1 0 "af64c833_c9f4_49f7_82bc32008330cafa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_ValueFound = Util::Lookup(TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, str_TipOffsetLabID, TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX); // }} "" // {{ 656 1 0 "abc9e6e0_de7f_4190_a6ae109d87d298ea" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX + 1; // }} "" // {{ 657 1 0 "d0c372b0_624a_4684_b5128c67f13f5b5c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::FALSE) { // }} "" // {{ 658 1 0 "da308556_074f_4e49_88f2ddfb12285514" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1; // }} "" // {{ 659 1 0 "97d3ce64_de46_41dc_847d3cf67fcf9566" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0; // }} "" // {{ 660 1 0 "2e489b29_ba50_4c7a_9ef51dc3c2bc5173" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID); // }} "" // {{ 661 1 0 "eb4d77c8_4837_498d_9def206f548aa724" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 662 1 0 "63bbd247_bfc2_4057_a5b6b49f55d7526a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 663 1 0 "3e6e8d60_3f96_424b_bac47917227831ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.AddAsLast(seq_Temp); // }} "" // {{ 664 1 0 "d0c372b0_624a_4684_b5128c67f13f5b5c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 665 1 0 "af6ceb9a_0cfe_4b34_82d765f741c1703a" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED=TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1); // }} "" // {{ 666 1 0 "04da90c2_96ff_43a5_967208f413b76e25" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP=TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1); // }} "" // {{ 667 1 0 "4f90f3da_854c_4b3c_8eb0d95105afa345" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT=TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1); // }} "" // {{ 668 1 0 "d0c372b0_624a_4684_b5128c67f13f5b5c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 669 1 0 "d55fdca7_80b2_43c0_87f3252e0e1367e3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 670 1 0 "fc616318_7b95_4098_bb4cd9694fb29d7d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1; // }} "" // {{ 671 1 0 "25159f68_53ec_4204_86505dae142e6ca1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0; // }} "" // {{ 672 1 0 "8b9881ee_d810_4713_bce33ad1a11e68dc" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID); // }} "" // {{ 673 1 0 "f11368e7_b8d5_491a_8f32f31522a6fa58" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 674 1 0 "af3f9aa1_ec3f_4ada_b04d69932580f51c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 675 1 0 "20c02025_3bfa_41b5_bc3a8ba898e7022b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.AddAsLast(seq_Temp); // }} "" // {{ 676 1 0 "d55fdca7_80b2_43c0_87f3252e0e1367e3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 677 1 0 "2d00674c_05bb_4a8a_aa0946be3ee8910b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_2(Translate("Labware Count"), TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED); // }} "" // {{{ 678 1 0 "86b93906_dea8_42b5_837a3478e9bbd07a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Current Index: "), TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX); // }} "" // {{{ 679 1 0 "12a65b82_4f36_4f57_bd902b5234e82acb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Current Labware: "), str_TipOffsetLabID); // }} "" // {{{ 680 1 0 "4a21a063_5839_4990_9d1a6a2f91e2f016" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Current Tip Count "), TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 681 1 0 "aeca59ab_2547_47a5_b0cde8f7b9ff0033" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 682 1 0 "2ac591fd_3b31_4a5e_8bab74a26e302e7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipsNeeded < 12) { // }} "" Trace("****************** Column request of ",i_int_RowsNeeded," is not achievable because it is less than 12 tips!"); // {{ 684 1 0 "63f580af_2dee_4eba_a00bb3138b93ade4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 686 1 0 "63f580af_2dee_4eba_a00bb3138b93ade4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 687 1 0 "4d1d235a_d6f6_4ed4_bef8313520e7aecc" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_str_TipPickUp); // }} "" // {{ 688 1 0 "2ac591fd_3b31_4a5e_8bab74a26e302e7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 689 1 0 "c03be649_41c9_4874_bb2659de8843d540" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipsNeeded > 96) { // }} "" Trace("****************** Column request of ",i_int_RowsNeeded," is not achievable because it will exceed 96 tips!"); // {{ 691 1 0 "0260f1a2_6ab9_4ecd_aadc16577cb8a672" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 693 1 0 "0260f1a2_6ab9_4ecd_aadc16577cb8a672" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 694 1 0 "415b3c7a_08f9_4b5e_846ea60f41d7bb54" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_str_TipPickUp); // }} "" // {{ 695 1 0 "c03be649_41c9_4874_bb2659de8843d540" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 696 1 0 "1592b6f6_7836_4b3f_b1a660aca2b422d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SequenceName = SeqGetName(io_seq_SourceTips); // }} "" Trace("Sequence Name: ",str_SequenceName); Trace("Tips loaded: ",TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // {{{ 698 1 0 "66595d96_1ece_47ba_834b990ae32c8407" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{ 699 1 0 "bcde8b83_1518_424b_9fc5103449001a6e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (1 == 1) { // }} "" // {{{ 700 1 0 "0d99959c_47d9_4b63_891ef77ac2ec0e1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _SetEmptyPositions(ML_STAR, io_seq_SourceTips); // }} "" // {{ 701 1 0 "ddcaa649_8664_4d17_bcc01407a230ceb3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 702 1 0 "cc0810ec_ecb5_4899_9750f879d8870f3c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 703 1 0 "4b6235cc_3dc3_4899_84e86d1b24ed816c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::GetTipType(ML_STAR, i_seq_TipOffset, int_TipOffset_TipType); // }} "" // {{ 704 1 0 "28bb7faa_ba7c_4d71_b9303c9526704130" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 705 1 0 "397d5627_841c_4d7c_ace4d48d78bbf296" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_SourceTip_TipType != int_TipOffset_TipType) { // }} "" // {{ 706 1 0 "71d08c5e_432b_4c44_951baa0fec26f60b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipOffset_TipType == -1) { // }} "" // {{ 707 1 0 "01c7291f_b044_4f16_8eb65bf5b1404174" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 708 1 0 "e493723b_8a62_461d_b2e96295d8f42b58" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (1 == 1) { // }} "" // {{ 709 1 0 "601f9a2b_b6fe_4318_825d82e14e166902" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("===========================================\nCheck for partial rack of tips\n===========================================")); // }} "" // {{{ 710 1 0 "d42fba26_fc51_465f_85c5388d7e8d9991" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition_Partial2(ML_STAR, io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH, int_TipsNeeded); // }} "" // {{{ 711 1 0 "0f065ece_eb88_4295_925393e369f56464" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" // {{ 712 1 0 "0391850c_4ace_42c6_936f4354ad8e0c10" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsSet == 0) { // }} "" // {{ 713 1 0 "8a8169b8_aa7a_4fef_ba3cca2804369adf" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("===========================================\nCheck for full rack of tips\n===========================================")); // }} "" // {{{ 714 1 0 "201e23ba_77dc_4a47_82c9548fe30419bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" // {{{ 715 1 0 "f9838801_8648_46f9_9e964aedd6e51399" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" Trace("Full rack check loaded: ",int_PositionsSet); // {{ 717 1 0 "0391850c_4ace_42c6_936f4354ad8e0c10" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" Trace("Partial rack check loaded: ",int_PositionsSet); // {{ 719 1 0 "0391850c_4ace_42c6_936f4354ad8e0c10" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 720 1 0 "2f879caa_810d_423d_a3356abdf667a15e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsSet == 0) { // }} "" // {{ 721 1 0 "8cab3fc2_dd7c_4d64_a90aeb07b70c6927" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("===========================================\nMore tips are needed\n===========================================")); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 722 1 0 "68240f9e_cd9a_4775_b0e495c4fc278e14" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 723 1 0 "20589d29_ed95_4a08_a7a74cb47aecd2d6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{ 724 1 0 "2f879caa_810d_423d_a3356abdf667a15e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 725 1 0 "751961ab_868a_403c_91c57fc339e482fa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsSet > 1) { // }} "" // {{ 726 1 0 "8dff9023_6869_4665_aeb2b3f715b3cfa2" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 727 1 0 "751961ab_868a_403c_91c57fc339e482fa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 728 1 0 "e493723b_8a62_461d_b2e96295d8f42b58" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 729 1 0 "06abf195_7eb8_47d8_bc704e099973dcd7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" // {{{ 730 1 0 "9446c301_0e97_43fe_985790593fb7ca76" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP); // }} "" // {{{ 731 1 0 "bc3900f3_3387_476f_95508bc44a9cdf4f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _UpdateTipSequence(io_seq_SourceTips); // }} "" // {{{ 732 1 0 "7a9fdf9e_037c_4e4c_be5b0cbc4d15042f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipLabID = SeqGetLabwareId(i_seq_TipOffset); // }} "" // {{{ 733 1 0 "bd5f56c2_14c9_4ee6_82558d0168908ad7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{{ 734 1 0 "9b31a3cc_2713_4470_b1eff58f1b98b3ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _MoveTipsToOffset(ML_STAR); // }} "" // {{ 735 1 0 "01c7291f_b044_4f16_8eb65bf5b1404174" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 736 1 0 "71d08c5e_432b_4c44_951baa0fec26f60b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 737 1 0 "35f80d54_3f6d_4932_abbd3c225bd3a969" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED > 0) { // }} "" // {{ 738 1 0 "8d36b34d_2698_4672_b9977e74a1547057" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 739 1 0 "fcc45eff_81a1_4c1d_897a1a0027a0632f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ReturnTipsToPickUp2(ML_STAR, i_bool_UseTop); // }} "" // {{ 740 1 0 "35f80d54_3f6d_4932_abbd3c225bd3a969" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 741 1 0 "1fbbf6d7_0652_401b_aba665d607f24cd7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 742 1 0 "e58742c7_5fb5_4bea_82d9e82dc1c5abde" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (1 == 1) { // }} "" // {{ 743 1 0 "76d8b6fb_ff2d_4f5e_aedcbfcea73ba2df" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("===========================================\nCheck for partial rack of tips\n===========================================")); // }} "" // {{{ 744 1 0 "1540208e_4a75_414b_9c872e40464687bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition_Partial2(ML_STAR, io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH, int_TipsNeeded); // }} "" // {{{ 745 1 0 "f70aa2a8_2cd4_40e8_ae075a25fcb44101" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" // {{ 746 1 0 "da8dff5d_7c00_40b1_a6b0d8087f9bc7b4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsSet == 0) { // }} "" // {{ 747 1 0 "2f7fd220_ee82_41dd_906db1af3a8631ab" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("===========================================\nCheck for full rack of tips\n===========================================")); // }} "" // {{{ 748 1 0 "95e69f17_b9a9_46f4_99fe8dd2a8759233" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" // {{{ 749 1 0 "1eb6a19f_050f_4616_b64d710d530fc9ca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" Trace("Full rack check loaded: ",int_PositionsSet); // {{ 751 1 0 "da8dff5d_7c00_40b1_a6b0d8087f9bc7b4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" Trace("Partial rack check loaded: ",int_PositionsSet); // {{ 753 1 0 "da8dff5d_7c00_40b1_a6b0d8087f9bc7b4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 754 1 0 "9366efcb_cbee_435a_b796d02b2a37e473" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsSet == 0) { // }} "" // {{ 755 1 0 "5d40711a_4c70_45b7_aa5dec23b055a375" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("===========================================\nMore tips are needed\n===========================================")); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 756 1 0 "ae0e9535_3fcc_478f_b35238be31a185a4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 757 1 0 "cf0b1ac2_5d1e_4464_8d421a77a39bce40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{ 758 1 0 "9366efcb_cbee_435a_b796d02b2a37e473" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 759 1 0 "a08515f6_dd2e_44ed_9a8f46356cf76c57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsSet > 1) { // }} "" // {{ 760 1 0 "5dd46ded_8453_4491_80f826e05cfb8b7b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 761 1 0 "a08515f6_dd2e_44ed_9a8f46356cf76c57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 762 1 0 "e58742c7_5fb5_4bea_82d9e82dc1c5abde" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 763 1 0 "56acffba_0bdc_4789_a91684215ee04205" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" // {{{ 764 1 0 "835f3f33_afb0_41ee_8b3297a1cd38d50b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP); // }} "" // {{{ 765 1 0 "38f91902_677e_432b_aa3382774da6b8a8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _UpdateTipSequence(io_seq_SourceTips); // }} "" // {{{ 766 1 0 "aa96df94_0c3d_4246_89eb892c4c82c55e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipLabID = SeqGetLabwareId(i_seq_TipOffset); // }} "" // {{{ 767 1 0 "b14b4530_626e_48f3_aa39f968a9e2573e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{{ 768 1 0 "e6aab532_43c8_471d_85bed50a4ea3f86e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _MoveTipsToOffset(ML_STAR); // }} "" // {{ 769 1 0 "1fbbf6d7_0652_401b_aba665d607f24cd7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 770 1 0 "71d08c5e_432b_4c44_951baa0fec26f60b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 771 1 0 "397d5627_841c_4d7c_ace4d48d78bbf296" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 772 1 0 "ddcaa649_8664_4d17_bcc01407a230ceb3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 773 1 0 "7242b8d6_9ed4_4ba8_8dccb54db985c6e3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 774 1 0 "3203298d_4e2b_416c_9090d649d2b4dbf1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED > 0) { // }} "" // {{ 775 1 0 "9076bb0c_e290_48c8_9177327e9454a218" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED < int_TipsNeeded) { // }} "" // {{ 776 1 0 "85cf5004_ac60_4915_a763bb025461f874" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 777 1 0 "735cd9e5_ac5c_4eeb_90133e34e9594c10" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition_Partial2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, seq_EmptyPosition, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{{ 778 1 0 "3c527d75_1f69_4e2b_908602c9ee94ca3a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalEmpty = SeqGetTotal(seq_EmptyPosition); // }} "" // {{ 779 1 0 "e2ca2f6e_1597_4213_bb4aca8eaa0297b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalEmpty > 0) { // }} "" // {{{ 780 1 0 "4af207b2_6bfe_4a61_a3cc9099a0c8e801" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, seq_EmptyPosition); // }} "" // {{{ 781 1 0 "ab6aeb08_3103_4a30_97ba982563783630" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _AppendRemainderTipsToCurrentSequence(ML_STAR, io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 782 1 0 "e2ca2f6e_1597_4213_bb4aca8eaa0297b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 783 1 0 "1a6b2682_2cd4_497e_bcb3f58d08020da8" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 784 1 0 "cc5776f9_360d_49b1_bdc729603a9b0f23" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _AddRemainderTipsToCurrentSequence(ML_STAR, io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 785 1 0 "e2ca2f6e_1597_4213_bb4aca8eaa0297b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 786 1 0 "ba720558_b31d_4132_97079eb2100a586d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ReturnTipsToPickUp2(ML_STAR, i_bool_UseTop); // }} "" // {{{ 787 1 0 "e57fc5e2_7591_4d41_897e0f5724e5b1ec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, io_seq_SourceTips, 0); // }} "" // {{{ 788 1 0 "ef55e7ee_292e_4a55_8bf6876ece0dd339" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{{ 789 1 0 "fd329e8e_5f82_43ae_9b44a2a28451a4e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate("")); // }} "" // {{ 790 1 0 "9076bb0c_e290_48c8_9177327e9454a218" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 791 1 0 "3203298d_4e2b_416c_9090d649d2b4dbf1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 792 1 0 "69b70ad4_7bec_4eef_8ee3f9d0221dda20" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 793 1 0 "2ca62988_b6b9_435b_8bcc559ec1a90669" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (1 == 1) { // }} "" // {{ 794 1 0 "d54fade6_086a_4c76_b7a562b178193563" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("===========================================\nCheck for partial rack of tips\n===========================================")); // }} "" // {{{ 795 1 0 "4fc5acc5_4a3b_41e5_bb9b19f2c2fd1c68" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition_Partial2(ML_STAR, io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH, int_TipsNeeded); // }} "" // {{{ 796 1 0 "9b0438fc_628c_4b69_b6f6e20a396d7305" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" // {{ 797 1 0 "fe993fdb_692e_4ac4_bde7067a4db829cf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsSet == 0) { // }} "" // {{ 798 1 0 "7c47dd82_e21b_4a96_9a2afa115b8c36c3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("===========================================\nCheck for full rack of tips\n===========================================")); // }} "" // {{{ 799 1 0 "b5e731ee_3aec_4460_bb4571b8d3dc0e4c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" // {{{ 800 1 0 "7e1dbddd_adf7_4187_9341a132a718e01e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_PositionsSet = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" Trace("Full rack check loaded: ",int_PositionsSet); // {{ 802 1 0 "fe993fdb_692e_4ac4_bde7067a4db829cf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" Trace("Partial rack check loaded: ",int_PositionsSet); // {{ 804 1 0 "fe993fdb_692e_4ac4_bde7067a4db829cf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 805 1 0 "6ba51876_b94b_41a7_b3f8451d855022fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsSet == 0) { // }} "" // {{ 806 1 0 "b6c58cf1_8c4c_4efb_b780f203bb6e533a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("===========================================\nMore tips are needed\n===========================================")); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 807 1 0 "b7eb279c_cc8a_4b8f_808157b18bad8bb2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 808 1 0 "43ecb04a_14b6_44fd_835ad4788985b017" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{ 809 1 0 "6ba51876_b94b_41a7_b3f8451d855022fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 810 1 0 "ead7ff2f_b7da_4b47_9f56bea29a64011a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsSet > 1) { // }} "" // {{ 811 1 0 "7b2b1278_7e72_473d_9702679b32cc8c5b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 812 1 0 "ead7ff2f_b7da_4b47_9f56bea29a64011a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 813 1 0 "2ca62988_b6b9_435b_8bcc559ec1a90669" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 814 1 0 "d1c54d54_3194_444a_a62192d0ae532d0f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipLabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::SOURCE_TIP_REFRESH); // }} "" // {{{ 815 1 0 "fab0a8c7_f307_4a07_bb20172a8e8a5300" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP); // }} "" // {{{ 816 1 0 "76449e37_f04e_4e24_ad5d7505e56a28ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _UpdateTipSequence(io_seq_SourceTips); // }} "" // {{{ 817 1 0 "a574eff8_5968_4981_9bdb668fa4e340b6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipLabID = SeqGetLabwareId(i_seq_TipOffset); // }} "" // {{{ 818 1 0 "4a37c6c2_6446_4f92_a6f9cda72336d7d3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::SEQ_GetDefaultSequence(ML_STAR, str_TipLabID, 1, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{{ 819 1 0 "6be47314_9646_47b8_b27c03e55fa66753" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _MoveTipsToOffset(ML_STAR); // }} "" // {{ 820 1 0 "69b70ad4_7bec_4eef_8ee3f9d0221dda20" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 821 1 0 "3203298d_4e2b_416c_9090d649d2b4dbf1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 822 1 0 "7242b8d6_9ed4_4ba8_8dccb54db985c6e3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 823 1 0 "c5ae35bd_49d8_4cad_bf133eb089547348" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace("Tips loaded: ",TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // {{ 825 1 0 "84c8c737_700c_40d7_b9a4685d43ca996d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED > 0) { // }} "" // {{{ 826 1 0 "32fc0a1a_9e93_453e_99c8de254cd4390b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _PickUpTips2(ML_STAR, int_TipsNeeded, i_bool_UseTop, ret_str_TipPickUp); // }} "" // {{ 827 1 0 "c89afed1_541f_4989_b230d9db3aa0e659" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 828 1 0 "84c8c737_700c_40d7_b9a4685d43ca996d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 829 1 0 "c5ae35bd_49d8_4cad_bf133eb089547348" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 830 1 0 "bcde8b83_1518_424b_9fc5103449001a6e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 831 1 0 "7ae1f186_cbcc_44a1_bf50aaf2f033eb50" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(io_seq_SourceTips); // }} "" // {{{ 832 1 0 "3a38656f_8dd8_463c_a01ffaebf3121e92" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, io_seq_SourceTips, 0); // }} "" // {{{ 833 1 0 "eff36819_6174_4964_832430b492ee76b5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{ 834 1 0 "f02ba8c6_250a_4f11_a16865b0f1f67fe6" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.SetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 835 1 0 "25a52351_e800_43fa_a457071610343dbf" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.SetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{{ 836 1 0 "af62b477_fdbf_4e34_b65e5cb1e23cbc04" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{ 837 1 0 "f9fb26ce_8d77_461f_9c9641f04c75580e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.SetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1, TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{{ 838 1 0 "c4f5152f_1de6_4d65_90be5312aeb86e0f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate("")); // }} "" // {{ 839 1 0 "48858ccb_6e2f_419b_8fe91b3124912400" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 841 1 0 "48858ccb_6e2f_419b_8fe91b3124912400" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 842 1 0 "fe900986_e488_4f3d_9e92c84e11c21b04" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_str_TipPickUp); // }} "" // {{{ 5 "TIP_OFFSET_PickUpTips_Rows" "End" } // }} "" // {{{ 5 "TIP_OFFSET_CleanUpTips_Rows" "Begin" function TIP_OFFSET_CleanUpTips_Rows( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable i; private variable strFunctionName; private variable strFunctionName_Cut; private variable str_LabID; private variable str_TipOffsetLabID; private variable int_Count; private variable str_PosID; private sequence seq_EjectSequence; private variable int_TotalLabwareSet; private variable bln_ValueFound; private sequence seq_Temp; private variable str_LabIDReturn; private variable int_TotalEmpty; private sequence seq_EmptyPosition; // {{ 5 "TIP_OFFSET_CleanUpTips_Rows" "InitLocals" // }} "" // {{ 178 1 0 "4cbdd5b4_fc6a_41c1_a5878688d445f0d3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 179 1 0 "7b49a36b_dde1_4176_9bd58708961b0c14" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 181 1 0 "dc904e82_7458_40cc_8d8be30047cfa2ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 182 1 0 "64431090_e432_4e6a_8471f406a56a7471" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 183 1 0 "e4deb70e_185d_4e69_92dd72ee378af201" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 184 1 0 "0f29d452_626a_4d14_9220a9d4ad1f5227" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 185 1 0 "6c429a8d_dfac_498b_94be663ebef1aeb6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 187 1 0 "4cbdd5b4_fc6a_41c1_a5878688d445f0d3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 188 1 0 "b0bf791b_ee3d_46db_a2ebf8d71abb78af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(io_seq_SourceTips); // }} "" // {{ 189 1 0 "d1f4e495_bfa3_40df_9cecb7b4361ddf0a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 190 1 0 "da97ca07_c8a8_4c46_bda17b439c0bb454" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 191 1 0 "0d58ab6b_b10d_4685_a8b3f3fe0a80b4ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetFullSequenceCopy(ML_STAR, i_seq_TipOffset, seq_Temp); // }} "" // {{{ 192 1 0 "d75eacb2_470a_4b68_a1319cbc21b86552" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipOffsetLabID = SeqGetLabwareId(seq_Temp); // }} "" // {{{ 193 1 0 "5c339f72_8ee3_470b_8fe1726e490e9a3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 194 1 0 "cde254bc_dbf3_47a4_88de8afbbe49b357" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalLabwareSet=TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.GetSize(); // }} "" // {{ 195 1 0 "efe94757_93d3_4b8a_a1a9d46796be5bcd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalLabwareSet > 0) { // }} "" // {{{ 196 1 0 "59a0dfaa_dd0b_4090_8e9872aaa67f01a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_ValueFound = Util::Lookup(TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, str_TipOffsetLabID, TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX); // }} "" // {{ 197 1 0 "7eee9678_d785_48a5_a6ea888a71e7a50f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX + 1; // }} "" // {{ 198 1 0 "402ab25f_63f3_4bef_9b995477cb3a7587" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::FALSE) { // }} "" // {{ 199 1 0 "9e933c62_7601_407c_8518dcd3169c649f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1; // }} "" // {{ 200 1 0 "69537310_c6ee_43aa_a3229237a807b133" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0; // }} "" // {{ 201 1 0 "719ea875_53b9_4261_9498fab5261c1b25" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID); // }} "" // {{ 202 1 0 "53fba099_d541_4603_9c6df499858e827d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 203 1 0 "30894db1_bf05_4b29_8e61686405065ea3" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 204 1 0 "402ab25f_63f3_4bef_9b995477cb3a7587" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 205 1 0 "b1223e48_55f7_4e2a_b185c15206222002" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED=TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1); // }} "" // {{ 206 1 0 "b73de609_596c_4088_ab407912ed9871f6" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP=TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1); // }} "" // {{ 207 1 0 "c82eb353_8dec_415f_a028e687f0fed912" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT=TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1); // }} "" // {{ 208 1 0 "402ab25f_63f3_4bef_9b995477cb3a7587" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 209 1 0 "efe94757_93d3_4b8a_a1a9d46796be5bcd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 210 1 0 "875bffa9_70f5_4056_bd3389472ae6433f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1; // }} "" // {{ 211 1 0 "a2d0a841_7a18_4b0f_9ca59a626f02c0a0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0; // }} "" // {{ 212 1 0 "46186312_3b63_4445_947e5b238fffe489" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID); // }} "" // {{ 213 1 0 "4d253717_00a5_48e4_8f6b67eb655a503f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 214 1 0 "58369d8d_a6ab_43cc_8bf0b2e60e662003" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 215 1 0 "316f2f63_7a28_46f9_83686c5c3c4e8c53" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.AddAsLast(seq_Temp); // }} "" // {{ 216 1 0 "efe94757_93d3_4b8a_a1a9d46796be5bcd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 217 1 0 "ac9bbb9f_9059_4019_b8353d5a24ade9c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_2(Translate("Labware Count"), TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED); // }} "" // {{{ 218 1 0 "45904a18_0a2f_43c4_837fb8000a3d7e7c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabIDReturn = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{{ 219 1 0 "a5e6eaea_b5eb_428e_9dcd4cfb16b8253c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Current Index: "), TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX); // }} "" // {{{ 220 1 0 "33e4d42c_a23e_4cf0_bfd741432b11df55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Return Labware: "), str_LabIDReturn); // }} "" // {{{ 221 1 0 "381f19b3_d676_4e2f_aa01bd4508cc7e0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Current Tip Count "), TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 222 1 0 "d1f4e495_bfa3_40df_9cecb7b4361ddf0a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 223 1 0 "1f54937b_142e_437f_b4d21e9cb3d3a816" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED > 0) { // }} "" // {{{ 224 1 0 "8dd98a6e_1aa0_4d94_b32849114e5faff9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _InitializeLibrary(); // }} "" // {{ 225 1 0 "b4eebc6c_68cf_4c50_bd87f85848fda873" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 226 1 0 "249154e0_ff7f_4b38_b53f4357694523dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToString(i_str_TipCounter); // }} "" // {{ 227 1 0 "b25cd423_ee3f_4de8_b36a3c5b62903ba8" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 228 1 0 "6918f949_50c9_4eff_a1e182457289632d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(io_seq_SourceTips); // }} "" // {{{ 229 1 0 "0cbbb13b_c6c1_475b_9aced1ac4546ea05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _SetEmptyPositions(ML_STAR, io_seq_SourceTips); // }} "" // {{{ 230 1 0 "a39d9cd8_7805_45d4_bf039dcfc13d2b8d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{{ 231 1 0 "2ba95c80_92c6_4299_863c5d2f3b10fc53" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition_Partial2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, seq_EmptyPosition, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{{ 232 1 0 "847fe205_294b_46cd_88b05fe938f248fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalEmpty = SeqGetTotal(seq_EmptyPosition); // }} "" // {{ 233 1 0 "1e1f8fa5_9d74_44ed_8f5f8e7660ded1a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalEmpty > 0) { // }} "" // {{{ 234 1 0 "a19f5d46_d509_44f7_bbef0e4e9fe30440" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, seq_EmptyPosition); // }} "" // {{ 235 1 0 "1e1f8fa5_9d74_44ed_8f5f8e7660ded1a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 236 1 0 "96b1f879_a816_427e_80759d5bc220357f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetConsecutiveSequencePositions2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED, 1, seq_EjectSequence); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 237 1 0 "2a6dec9f_9fb4_4c6c_ba3217c9ec7103d2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 0); // }} "" // {{ 238 1 0 "0bbac20e_484d_440f_b95c05b5862357f3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < TIP_OFFSET_GLOBAL::INT::TIPS_LOADED;) { i = i + 1; // }} "" // {{ 239 1 0 "dd5a46de_0b73_4f3c_83c8425ea141a60c" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(i); // }} "" // {{{ 240 1 0 "5ca32bd1_f516_4b0a_a79e297c4b959d48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{{ 241 1 0 "d8953d40_1362_45a3_8e69f55f911d3198" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{{ 242 1 0 "e91ccd6e_0e6d_40b7_b7734d3804d697cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(io_seq_SourceTips, str_LabID, str_PosID); // }} "" // {{ 243 1 0 "0bbac20e_484d_440f_b95c05b5862357f3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 244 1 0 "96e87713_7679_485a_a92f2400a5eac24d" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(1); // }} "" // {{ 245 1 0 "492a107b_9c68_46e9_99b12523df0416fe" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_seq_SourceTips.SetCurrentPosition(1); // }} "" // {{{ 246 1 0 "bebe34c0_b88f_4672_9e771211ab4ab680" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 0); // }} "" // {{{ 247 1 0 "ce712fe9_b1b6_41db_9ba266dbef042b07" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ReturnTipsToPickUp2(ML_STAR, BOOLEON::TRUE); // }} "" // {{{ 248 1 0 "530fed3f_a425_4c7f_a0faf3cab238d3b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipOffsetLabID = SeqGetLabwareId(i_seq_TipOffset); // }} "" // {{{ 249 1 0 "2f0a36aa_6913_4c4d_a3bef90da165855b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, str_TipOffsetLabID, Translate("MlStarTipRack"), -1); // }} "" // {{{ 250 1 0 "cf139b00_8f91_470e_a6fe68d630b3e5ba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, str_TipOffsetLabID, Translate("MlStarCore96TipRack"), -1); // }} "" // {{{ 251 1 0 "8317281d_945f_449d_a6d8640b7a927f3a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(io_seq_SourceTips); // }} "" // {{{ 252 1 0 "d3a99e27_8d25_42da_9fa4e7de72be915f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, io_seq_SourceTips, 0); // }} "" // {{{ 253 1 0 "27bf8f38_4027_45d1_a3daf8dccb41388d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{ 254 1 0 "19ee0f92_37e7_40e7_a1015ee99dda07f6" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.SetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{{ 255 1 0 "a5bbaf3d_920b_4b70_85c8ab4400c5aa64" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate("")); // }} "" // {{ 256 1 0 "1f54937b_142e_437f_b4d21e9cb3d3a816" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 257 1 0 "38d65c74_7e76_4a6d_97cca650e546eb37" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("====================================================================\nNo tips to clean up\n====================================================================")); // }} "" // {{ 258 1 0 "1f54937b_142e_437f_b4d21e9cb3d3a816" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 259 1 0 "183f0796_7ad8_49a6_93107882c5036f0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate("")); // }} "" // {{ 260 1 0 "cde193eb_27c7_48e1_86ac0577f9174960" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 262 1 0 "cde193eb_27c7_48e1_86ac0577f9174960" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TIP_OFFSET_CleanUpTips_Rows" "End" } // }} "" // {{{ 5 "TOOL_GetLiquidLevelHeight" "Begin" function TOOL_GetLiquidLevelHeight( device & ML_STAR, variable i_str_ReturnValue3FromTipPickUp, variable i_str_ReturnValue3FromPipetting, variable & o_flt_LiquidLevelHeight ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable z_LLD_height; private variable strFW_return; private variable steps_to_mm; private variable strFW_digits; private variable str_LabIDTipPickUp; private variable str_LabIDTipPipetting; private sequence seq_TempTipPickUp; private sequence seq_TempPipetting; private variable int_TipType; private variable flt_TipLength; private variable flt_NotUsed; private variable flt_ZBottom; private variable bln_SimMode; // {{ 5 "TOOL_GetLiquidLevelHeight" "InitLocals" o_flt_LiquidLevelHeight = 0; // }} "" // {{ 867 1 0 "2a0a39f1_f080_4622_a530f18072dbd9d8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 868 1 0 "39175f98_c05f_4a17_ad4ccec56b381ada" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 870 1 0 "3167b785_316b_4ce8_a402943cb85faad0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 871 1 0 "b55935f7_7384_46aa_a666b89c7ba7ace8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 872 1 0 "769ca445_f618_4f96_a65b1f0f85fbc3dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 873 1 0 "12495c15_3663_4af4_a1868c130b20bf9f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 874 1 0 "f0a24637_9e92_4916_951a7f998f5fb2d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 876 1 0 "2a0a39f1_f080_4622_a530f18072dbd9d8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 877 1 0 "ffad8800_39ae_4f5f_baaf23c31270bba8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{{ 878 1 0 "c925b744_c6fd_41d2_88468ab59af1b2f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_SimMode = Util::GetSimulationMode(); // }} "" // {{{ 879 1 0 "d9bdfa2a_cf5f_486a_ac441141a7079438" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabIDTipPickUp = StepReturn::GetLabwareId(1, i_str_ReturnValue3FromTipPickUp); // }} "" // {{{ 880 1 0 "0b322cfd_1d8b_49d6_b263ed1c4850bc75" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabIDTipPipetting = StepReturn::GetLabwareId(1, i_str_ReturnValue3FromPipetting); // }} "" // {{{ 881 1 0 "b6ab12de_765f_4156_89ea520d5577bafe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::SEQ_GetDefaultSequence(ML_STAR, str_LabIDTipPickUp, 1, seq_TempTipPickUp); // }} "" // {{{ 882 1 0 "cee4545e_3716_4e4b_a2218bab13d0a94e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::SEQ_GetDefaultSequence(ML_STAR, str_LabIDTipPipetting, 1, seq_TempPipetting); // }} "" // {{{ 883 1 0 "12d1cfa8_fded_4036_9c1572707f38fcc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::LABWARE_GetCurrentPosition(ML_STAR, seq_TempPipetting, flt_NotUsed, flt_NotUsed, flt_ZBottom); // }} "" // {{{ 884 1 0 "d3cbd4c2_f47e_4727_8fc730368f52667f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::GetTipType(ML_STAR, seq_TempTipPickUp, int_TipType); // }} "" // {{{ 885 1 0 "d7e1bed4_c88b_499c_b4bfabbf3aa94ea2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipTypeLength_Get(int_TipType, flt_TipLength); // }} "" // {{ 886 1 0 "7f13d5ff_d84c_4d46_96a5b50c2ba02064" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_SimMode == 0) { // }} "" // {{ 887 1 0 "b7f35b0f_5b90_48d7_ba5af658c3026cac" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_InstrumentType <= 2) { // }} "" // {{ 888 1 0 "08b040ab_ab6e_4470_99ca330a92143a37" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("08b040ab_ab6e_4470_99ca330a92143a37"); // FirmwareCommand strFW_return = arrRetValues[3]; } // }} "" // {{{ 889 1 0 "3324a760_bec6_4742_bf18d76dbc77ba89" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFW_digits = StrRight(strFW_return, 5); // }} "" // {{{ 890 1 0 "8142bbe8_4338_4bec_a53a9d37f947e725" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFW_digits = StrIVal(strFW_digits); // }} "" // {{ 891 1 0 "4806f821_820f_4f0b_98200a094472a0bd" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" steps_to_mm = 0.005 * strFW_digits; // }} "" // {{ 892 1 0 "0df431c7_1352_47ec_8c7b046957f876bd" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" z_LLD_height = steps_to_mm - flt_TipLength; // }} "" // {{ 893 1 0 "b7f35b0f_5b90_48d7_ba5af658c3026cac" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 894 1 0 "61b9323c_b1a2_4612_9fa16f62da954a8a" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("61b9323c_b1a2_4612_9fa16f62da954a8a"); // FirmwareCommand strFW_return = arrRetValues[3]; } // }} "" // {{{ 895 1 0 "ebef1d88_b752_47f6_bbe55403755bc8a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFW_digits = StrRight(strFW_return, 5); // }} "" // {{{ 896 1 0 "1e245f3d_398f_4b9e_b00d7e14ac300407" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFW_digits = StrIVal(strFW_digits); // }} "" // {{ 897 1 0 "b6b074f9_ba23_4333_bfad776017e1cdf4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" steps_to_mm = 0.005 * strFW_digits; // }} "" // {{ 898 1 0 "172d29f5_27ed_4737_ab901c7767b18410" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" z_LLD_height = steps_to_mm - flt_TipLength; // }} "" // {{ 899 1 0 "b7f35b0f_5b90_48d7_ba5af658c3026cac" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 900 1 0 "7f13d5ff_d84c_4d46_96a5b50c2ba02064" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 901 1 0 "cc6f15fc_f291_4828_aadc565ad22dd46b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" z_LLD_height = flt_ZBottom + 10.0; // }} "" // {{ 902 1 0 "7f13d5ff_d84c_4d46_96a5b50c2ba02064" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 903 1 0 "461edcfc_ec11_4654_bd9dcd30dee70b25" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_LiquidLevelHeight = z_LLD_height - flt_ZBottom; // }} "" // {{{ 904 1 0 "de00fd7a_350d_4550_98fceeaaf395b680" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate(" ----- Pipetting Lab ID: "), str_LabIDTipPipetting); // }} "" // {{{ 905 1 0 "f50c49fb_0158_4b3f_b3c9a1a60eaa7cfb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate(" ----- Tip Pick Up Lab ID: "), str_LabIDTipPickUp); // }} "" // {{{ 906 1 0 "45a56213_a034_4074_92926c9bbfe56318" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate(" ----- Tip Length: "), flt_TipLength); // }} "" // {{{ 907 1 0 "4002a28f_4665_4640_bb3f9aa38926537b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate(" ----- Liquid Level Height Measured: "), o_flt_LiquidLevelHeight); // }} "" // {{ 908 1 0 "b19c2715_028c_4a15_9c8dfcd33bf90070" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 910 1 0 "b19c2715_028c_4a15_9c8dfcd33bf90070" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TOOL_GetLiquidLevelHeight" "End" } // }} "" // {{{ 5 "MOVE_MPH96ToBack" "Begin" function MOVE_MPH96ToBack( device & ML_STAR ) void { // }} "" private variable bol_MPH96_Available; // {{ 5 "MOVE_MPH96ToBack" "InitLocals" // }} "" // {{ 3 1 0 "c1dd53ce_3c8c_45c4_a9a3d37260367049" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 4 1 0 "a9b00ab5_5328_451a_a5efed19a90be6c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bol_MPH96_Available = DevGetCfgValueWithKey(ML_STAR, 24); // }} "" // {{ 5 1 0 "def1eb48_6833_4f3f_91532499aa4d3e6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bol_MPH96_Available == 1) { // }} "" // {{ 6 1 0 "8adafca5_46b1_4fe3_87bb53d164414e5b" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("8adafca5_46b1_4fe3_87bb53d164414e5b"); // FirmwareCommand } // }} "" // {{ 7 1 0 "c87237e1_006f_42eb_ad968b2e0c8f3c8f" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("c87237e1_006f_42eb_ad968b2e0c8f3c8f"); // FirmwareCommand } // }} "" // {{ 8 1 0 "def1eb48_6833_4f3f_91532499aa4d3e6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "MOVE_MPH96ToBack" "End" } // }} "" // {{{ 5 "_GetConsecutiveSequencePositions2" "Begin" private function _GetConsecutiveSequencePositions2( device & ML_STAR, sequence i_seq_SourcePositions, variable i_int_TotalPositionsNeeded, variable i_bool_BottomToFront, sequence & o_seq_ConsecutivePositions ) void { // }} "" private variable int_Remainder; private variable int_Column; private variable i; private variable int_RowCount; private variable int_CurrentColumn; private variable str_CurrentPosID; private variable str_LabID; private variable int_Position; private variable int_PositionsAdded; private variable str_CurrentLabID; private variable int_TotalPositions; private sequence seq_FullSequence; private variable int_ColumnCount; private variable int_Row; private variable int_CurrentRow; private variable int_RowCheck; // {{ 5 "_GetConsecutiveSequencePositions2" "InitLocals" // }} "" // {{{ 1081 1 0 "b98af491_a34e_4af7_89d61e30bd3b7ca7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_ConsecutivePositions); // }} "" // {{{ 1082 1 0 "d164d53a_4f91_4640_baa86fe4bbae5e64" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence2(ML_STAR, seq_FullSequence, i_bool_BottomToFront); // }} "" // {{{ 1083 1 0 "7f824a07_1321_49b4_b4b523a7f3f71124" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(i_seq_SourcePositions); // }} "" // {{{ 1084 1 0 "be6b1508_a4b4_4364_93d60ae854ead5b5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence2(ML_STAR, i_seq_SourcePositions, i_bool_BottomToFront); // }} "" // {{ 1085 1 0 "456801a2_aaa4_4fd3_ae1f01beb08b3407" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_CurrentRow = 0; // }} "" // {{ 1086 1 0 "5b141dbc_a42e_41d3_bf995fbb5ea5afd0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ColumnCount = 0; // }} "" // {{ 1087 1 0 "912563f0_b258_4daa_89e3dec065c4d4c1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PositionsAdded = 0; // }} "" // {{ 1088 1 0 "ad525435_4531_4820_b3b92bc420884475" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_LabID = Translate(""); // }} "" // {{ 1089 1 0 "6864512a_e41b_4a0b_b4b9cd10938781dd" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalPositions;) { i = i + 1; // }} "" // {{ 1090 1 0 "209da240_5152_4ed4_b46fd1b0ad9e3cf5" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_SourcePositions.SetCurrentPosition(i); // }} "" // {{{ 1091 1 0 "e6892e3a_893f_46e6_97458606a8e469bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentLabID = SeqGetLabwareId(i_seq_SourcePositions); // }} "" // {{{ 1092 1 0 "4834f5c6_cefd_4b8a_ae22b966f8192a00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentPosID = SeqGetPositionId(i_seq_SourcePositions); // }} "" // {{{ 1093 1 0 "70c45dda_5def_4def_a40d544b9997d52c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Position = StrIVal(str_CurrentPosID); // }} "" // {{ 1094 1 0 "00e4b5eb_692a_4c6e_a6f146c61e820dec" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Row = int_Position / 12; // }} "" // {{ 1095 1 0 "584cc271_c007_4669_a4ea49b2c749ebf5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Remainder = int_Position % 12; // }} "" // {{ 1096 1 0 "a46b0b8d_39aa_4945_a2a2d0ec996d19ad" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Remainder > 0) { // }} "" // {{ 1097 1 0 "dc014a1e_f8f6_4aea_b337329e06086e20" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Row = int_Row + 1; // }} "" // {{ 1098 1 0 "a46b0b8d_39aa_4945_a2a2d0ec996d19ad" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1099 1 0 "f4d5b9b8_812f_4921_88cb8de855e5ccde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_CurrentLabID != str_LabID) { // }} "" // {{ 1100 1 0 "6e5c995a_dc31_4a8d_88dfc71f7883bb82" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1101 1 0 "e4aab149_b414_4a6d_ac279988b91d3e4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_ConsecutivePositions); // }} "" // {{ 1102 1 0 "f519f095_e625_4c4a_9ea01cbed73e40bb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ColumnCount = 0; // }} "" // {{ 1103 1 0 "6e33a8ef_5a55_4d60_8e0a5141017fbe66" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_CurrentRow = int_Row; // }} "" // {{ 1104 1 0 "7c627dc6_fe79_474c_87109e5c8d82c190" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PositionsAdded = 0; // }} "" // {{ 1105 1 0 "678d8fd2_2217_457d_ba268e0e3b52c3c3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_LabID = str_CurrentLabID; // }} "" // {{ 1106 1 0 "f4d5b9b8_812f_4921_88cb8de855e5ccde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1107 1 0 "c8f4286b_d575_4d49_9c305715056b274a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Column != int_CurrentColumn) { // }} "" // {{ 1108 1 0 "3a7c5204_9d40_467c_9a6697e5b95c5886" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bool_BottomToFront == 1) { // }} "" // {{ 1109 1 0 "b63abcf2_79a3_4c63_87c8547885651699" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_RowCheck = int_CurrentRow - int_Row; // }} "" // {{ 1110 1 0 "3a7c5204_9d40_467c_9a6697e5b95c5886" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1111 1 0 "dc9ff278_c730_44aa_8a040765338816d6" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_RowCheck = int_Row - int_CurrentRow; // }} "" // {{ 1112 1 0 "3a7c5204_9d40_467c_9a6697e5b95c5886" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1113 1 0 "32cdb415_e4a5_462c_b7d62dcc17b9e0ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_RowCheck != 12) { // }} "" // {{ 1114 1 0 "92c0bc41_271c_4362_a405ffaceaaca4df" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1115 1 0 "a6dc0894_8d4e_48c4_9bf8399e417ac113" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_ConsecutivePositions); // }} "" // {{ 1116 1 0 "0abf4a02_5115_4008_a3ffbe5b45529a2f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ColumnCount = 0; // }} "" // {{ 1117 1 0 "8de55f0c_ed85_42b5_a653fda580fa50f3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_CurrentRow = int_Row; // }} "" // {{ 1118 1 0 "bc2053ac_33ce_46a7_abf5ac3a56e6b246" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PositionsAdded = 0; // }} "" // {{ 1119 1 0 "e852b18b_2c84_4fe7_b6203fc139e80b8c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_LabID = str_CurrentLabID; // }} "" // {{ 1120 1 0 "32cdb415_e4a5_462c_b7d62dcc17b9e0ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1121 1 0 "61742f2a_94dd_4c14_9942c12800a15de6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_RowCheck != 1) { // }} "" // {{ 1122 1 0 "d2835bb1_7d35_4975_aa6efe0d7333708b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1123 1 0 "ef4f19ed_6e39_4bba_b65fe7e2ad923fae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_ConsecutivePositions); // }} "" // {{ 1124 1 0 "38ce2dd3_bf0d_4a1e_8f889551bf974d01" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ColumnCount = 0; // }} "" // {{ 1125 1 0 "6747f308_ed90_4cb0_b41e540d80710baf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_CurrentRow = int_Row; // }} "" // {{ 1126 1 0 "09c7c736_b550_4d0c_8f945f66fcfa34e1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PositionsAdded = 0; // }} "" // {{ 1127 1 0 "730d9b5d_127d_4aff_96bc85ea0fa1d526" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_LabID = str_CurrentLabID; // }} "" // {{ 1128 1 0 "61742f2a_94dd_4c14_9942c12800a15de6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1129 1 0 "d2fcc7d8_eee7_4f9a_8da5787e9ff238ec" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ColumnCount = 0; // }} "" // {{ 1130 1 0 "48154240_358d_4a0d_927d48adbeb17b64" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bool_BottomToFront == 1) { // }} "" // {{ 1131 1 0 "13666e51_97fb_491c_a2d61f3caf91e4f5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CurrentRow = int_CurrentRow - 1; // }} "" // {{ 1132 1 0 "48154240_358d_4a0d_927d48adbeb17b64" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1133 1 0 "77e6187b_a748_47a7_9475274a9ce7d5ae" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CurrentRow = int_CurrentRow + 1; // }} "" // {{ 1134 1 0 "48154240_358d_4a0d_927d48adbeb17b64" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1135 1 0 "61742f2a_94dd_4c14_9942c12800a15de6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1136 1 0 "32cdb415_e4a5_462c_b7d62dcc17b9e0ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1137 1 0 "c8f4286b_d575_4d49_9c305715056b274a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1138 1 0 "00b1a6ae_b7b9_467b_bdb60f78725bd7e4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ColumnCount = int_ColumnCount + 1; // }} "" // {{ 1139 1 0 "61be8602_9cbf_4a16_92fac8c1da893bd9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_PositionsAdded = int_PositionsAdded + 1; // }} "" // {{{ 1140 1 0 "0941aa99_2093_4075_aa17d7b811331f20" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq_ConsecutivePositions, str_CurrentLabID, str_CurrentPosID); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Current Row count: ",int_RowCount," Positions added: ",int_PositionsAdded); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1142 1 0 "a6522c99_ab4b_49f0_a4898a7eb631d0a5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsAdded == i_int_TotalPositionsNeeded) { // }} "" // {{ 1143 1 0 "e48e0973_8d40_42d6_a2ec7a2cfb0f60f3" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1144 1 0 "a6522c99_ab4b_49f0_a4898a7eb631d0a5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1145 1 0 "6864512a_e41b_4a0b_b4b9cd10938781dd" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1146 1 0 "cffa2c4e_c1f2_46e4_a0b9f4a9572332a7" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq_ConsecutivePositions.SetCurrentPosition(1); // }} "" // {{{ 1147 1 0 "f5967b76_a289_4034_b8cc8493098d329a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(o_seq_ConsecutivePositions); // }} "" // {{ 1148 1 0 "f83ef526_f420_4f73_95d221364ba809ac" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalPositions < i_int_TotalPositionsNeeded) { // }} "" // {{ 1149 1 0 "b96618d2_5381_4f16_af8589f0114463cd" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1150 1 0 "ded80413_9083_4d91_a47d7a40a2a2a2da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_ConsecutivePositions); // }} "" // {{ 1151 1 0 "f83ef526_f420_4f73_95d221364ba809ac" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "_GetConsecutiveSequencePositions2" "End" } // }} "" // {{{ 5 "TOOL_ChangePickUpMode" "Begin" function TOOL_ChangePickUpMode( device & ML_STAR, sequence i_seq_TipPositionToAdjust, variable i_int_PickUpMode ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable int_PickUpMode; private variable str_Parameter; // {{ 5 "TOOL_ChangePickUpMode" "InitLocals" // }} "" // {{ 844 1 0 "cba45b61_f72c_473b_b636eca802e8b700" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 845 1 0 "8d071aa5_e70d_4a98_af3a25f5ac8b4f92" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 847 1 0 "cc17befd_7fea_4e37_8c06087f96822cbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 848 1 0 "432ab5b0_a2f2_4c23_a7745571230480f9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 849 1 0 "b13ffdf0_878c_4194_a68365e683fbf1df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 850 1 0 "5c344687_de8c_4dbc_9dba6c80c2de5253" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 851 1 0 "70343bd4_5d7d_4878_9a5044e03b4dc072" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 853 1 0 "cba45b61_f72c_473b_b636eca802e8b700" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 854 1 0 "ac7fd8be_cbc6_421a_88ddcdb24a5dccc6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Parameter = Translate("MlStarIsCoreHeadSpecialTipPickup"); // }} "" // {{ 855 1 0 "215ac6c5_05f0_4670_9e845c96168856da" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PickUpMode = 0; // }} "" // {{ 856 1 0 "71525942_16bc_459c_a7517c882a10b362" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_PickUpMode == 1) { // }} "" // {{ 857 1 0 "3e79ebff_dbdc_417b_9ca7821e8b3f110c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PickUpMode = 1; // }} "" // {{ 858 1 0 "71525942_16bc_459c_a7517c882a10b362" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 859 1 0 "f3e132a9_26ad_4473_ad6679452dd91356" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_PickUpMode == 2) { // }} "" // {{ 860 1 0 "456f2fad_da65_47a4_9ed49e8b399a2674" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PickUpMode = 2; // }} "" // {{ 861 1 0 "f3e132a9_26ad_4473_ad6679452dd91356" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 862 1 0 "8f861c57_4828_41c2_af2d10216d1ecf01" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::ADJUST_SetProperties(ML_STAR, i_seq_TipPositionToAdjust, str_Parameter, int_PickUpMode); // }} "" // {{ 863 1 0 "e91db0dc_64e2_46fc_9bf66a7187005c9b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 865 1 0 "e91db0dc_64e2_46fc_9bf66a7187005c9b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TOOL_ChangePickUpMode" "End" } // }} "" // {{{ 5 "TOOL_PickUpNextMPH96Tips" "Begin" function TOOL_PickUpNextMPH96Tips( device & ML_STAR, sequence & io_seq_SourceTips, variable i_str_TipCounter ) variable { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable int_TotalPositions; private variable ret_str_ReturnValue; // {{ 5 "TOOL_PickUpNextMPH96Tips" "InitLocals" // }} "" // {{ 942 1 0 "c0008cc2_e827_41bb_a2adc607fffaccc8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 943 1 0 "05677134_0f94_4f9b_abab358e7ed60fed" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 945 1 0 "aebbe0b8_29b1_453b_bcbef0779c9f7eb1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 946 1 0 "7bd0a87d_515a_4eed_955671c9d4d63998" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 947 1 0 "8d82dc1c_1210_498d_878c6192ba79c6ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 948 1 0 "f4f91156_96b7_4d15_971579dc8c389152" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 949 1 0 "5fde70e0_dcf1_4d65_984f7513cbe74259" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 951 1 0 "c0008cc2_e827_41bb_a2adc607fffaccc8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 952 1 0 "bbc8984b_c26c_4b79_81d6211ed302e52a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_str_ReturnValue = Translate(""); // }} "" // {{{ 953 1 0 "0a5a8236_7e25_426b_97a20f93852a717a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _InitializeLibrary(); // }} "" // {{ 954 1 0 "7c540229_f49b_4877_9bd80ca258d3b5f1" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 955 1 0 "fffb8a12_14d3_4534_8813d7f838229f80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToString(i_str_TipCounter); // }} "" // {{ 956 1 0 "71957da5_1e30_4a26_878bdcaa1e633b16" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("====================================================================\nPick up full rack of tips\n====================================================================")); // }} "" // {{ 957 1 0 "feb098ff_0fb6_422a_a43f8296f6fd5108" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (1 == 1) { // }} "" // {{{ 958 1 0 "1001ce62_7e56_4083_b074a9758f710e07" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP); // }} "" // {{{ 959 1 0 "fc204175_697d_468d_bd0eee833da04140" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP); // }} "" // {{ 960 1 0 "1e5ffd09_fbda_4a07_862dd7dccdec2939" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalPositions != 96) { // }} "" // {{{ 961 1 0 "0cff8f4b_141b_423c_85454043765001b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{ 962 1 0 "1e5ffd09_fbda_4a07_862dd7dccdec2939" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 963 1 0 "65aa888a_bad6_4b5d_a23e8a33a18eda8e" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 964 1 0 "1e5ffd09_fbda_4a07_862dd7dccdec2939" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 965 1 0 "feb098ff_0fb6_422a_a43f8296f6fd5108" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 966 1 0 "80ab2029_47ea_41a9_83ca4f0a00d3621b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveSequencePositions(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP); // }} "" // {{ 967 1 0 "f487218d_05ba_45bc_83752eae9d492cc8" "ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}" { variable arrRetValues[]; arrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B("f487218d_05ba_45bc_83752eae9d492cc8"); // Head96TipPickUp ret_str_ReturnValue = arrRetValues[2]; } // }} "" // {{{ 968 1 0 "4a3a52e1_5c04_47fb_beb10fecbf58513c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{ 969 1 0 "23de525b_396a_4ca4_91a8fa92d6693b05" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 971 1 0 "23de525b_396a_4ca4_91a8fa92d6693b05" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 972 1 0 "e7d38aec_2eda_4ed0_847fb7a0b672bbe9" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_str_ReturnValue); // }} "" // {{{ 5 "TOOL_PickUpNextMPH96Tips" "End" } // }} "" // {{{ 5 "TOOL_GetTipPresence" "Begin" function TOOL_GetTipPresence( device & ML_STAR, variable & o_bln_TipLoaded ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable strFunctionName; private variable strFunctionName_Cut; private variable int_Count; private variable strFW_return; private variable strFW_digits; // {{ 5 "TOOL_GetTipPresence" "InitLocals" o_bln_TipLoaded = 0; // }} "" // {{ 912 1 0 "ec320042_3cb7_4264_a87af936a0535b18" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 913 1 0 "a61badc0_255e_41b0_b24ebcc0a247539b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 915 1 0 "4061f72a_a542_4440_9628be8e5af18bc2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 916 1 0 "de317b11_89fd_4d43_99c8c5037b97e001" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 917 1 0 "4ffe78ac_3901_4a1e_aabae21f890d2f06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 918 1 0 "ec7fe23c_c969_4760_a561c4717ca9e9ba" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 919 1 0 "4fad253d_31c0_4138_b000065ab8220c36" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 921 1 0 "ec320042_3cb7_4264_a87af936a0535b18" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 922 1 0 "532f8ebd_aa54_4022_ba999c1a1b7c1a3b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 923 1 0 "44ad0ded_06a1_4c03_827c87ba17e0a7a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_InstrumentType <= 2) { // }} "" // {{ 924 1 0 "b5e6a594_657c_4ccb_8cdcb340c6199715" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bln_TipLoaded = 0; // }} "" // {{ 925 1 0 "74d48d21_73d2_4190_bf104a5e5e0b6287" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("74d48d21_73d2_4190_bf104a5e5e0b6287"); // FirmwareCommand strFW_return = arrRetValues[3]; } // }} "" // {{{ 926 1 0 "632de6af_5d8d_43b7_ba2cb06013e6cb26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFW_digits = StrRight(strFW_return, 1); // }} "" // {{{ 927 1 0 "03c87d72_54b6_43db_bccc38b829b9e427" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFW_digits = StrIVal(strFW_digits); // }} "" // {{ 928 1 0 "0bb0e339_9fda_496d_925316ce703b05e1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bln_TipLoaded = strFW_digits; // }} "" // {{ 929 1 0 "44ad0ded_06a1_4c03_827c87ba17e0a7a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 930 1 0 "9e66e511_67f5_40bc_a3e8a1ef88843c9d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bln_TipLoaded = 0; // }} "" // {{ 931 1 0 "94cafe14_6bad_4067_93af11bcb430dbfe" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("94cafe14_6bad_4067_93af11bcb430dbfe"); // FirmwareCommand strFW_return = arrRetValues[3]; } // }} "" // {{{ 932 1 0 "2927012c_faff_4508_b39dbe0ba1e75280" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFW_digits = StrRight(strFW_return, 1); // }} "" // {{{ 933 1 0 "378b40ea_8e6f_47d8_8d5ad5f67e83f44b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFW_digits = StrIVal(strFW_digits); // }} "" // {{ 934 1 0 "83efe3ce_a188_4be7_8f210780df215dd7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_bln_TipLoaded = strFW_digits; // }} "" // {{ 935 1 0 "44ad0ded_06a1_4c03_827c87ba17e0a7a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" if(o_bln_TipLoaded == 1)o_bln_TipLoaded = hslTrue; if(o_bln_TipLoaded == 0)o_bln_TipLoaded = hslFalse; // {{{ 937 1 0 "3ea02f98_99a9_4f46_bf6a4e662a20ff56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate(" MPH96 Tip Loaded: "), o_bln_TipLoaded); // }} "" // {{ 938 1 0 "8164181e_7286_448a_9196aa8af6e1871b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 940 1 0 "8164181e_7286_448a_9196aa8af6e1871b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TOOL_GetTipPresence" "End" } // }} "" // {{{ 5 "_LocalPickUpNextMPH96Tips" "Begin" private function _LocalPickUpNextMPH96Tips( device & ML_STAR, sequence & io_seq_SourceTips, variable i_str_TipCounter ) variable { // }} "" private variable ret_str_ReturnValue; private variable int_TotalPositions; // {{ 5 "_LocalPickUpNextMPH96Tips" "InitLocals" // }} "" // {{ 1349 1 0 "7376e2ae_9a41_43f8_95d37cd018de968d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_str_ReturnValue = Translate(""); // }} "" // {{{ 1350 1 0 "19fa9c2a_c799_4c54_9f5ebc09fa6b70ba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _InitializeLibrary(); // }} "" // {{ 1351 1 0 "bea68433_c44c_485b_a01e5084771a8fff" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1352 1 0 "94a9d812_5fbb_45a7_96549e7290d5b193" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToString(i_str_TipCounter); // }} "" // {{ 1353 1 0 "798be98c_d929_4a90_aaabad0febaad003" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("====================================================================\nPick up full rack of tips\n====================================================================")); // }} "" // {{ 1354 1 0 "2be40e96_5c2a_4ae9_8eb2100865f1ffe0" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (1 == 1) { // }} "" // {{{ 1355 1 0 "d6f044e1_6dda_41ee_9d04c694ad13d0c0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP); // }} "" // {{{ 1356 1 0 "34cdeaeb_cbea_4d4d_b7c0098a9fbd0018" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP); // }} "" // {{ 1357 1 0 "d6800b87_1a3c_4a0a_8a2385a98b380a32" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalPositions != 96) { // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1358 1 0 "12c045d7_9f8e_4d17_b14cb59990998d65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 1359 1 0 "20e4c105_6fa2_4268_b8d3ce7d9c43f53a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _TipCheckMPH96(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{ 1360 1 0 "d6800b87_1a3c_4a0a_8a2385a98b380a32" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1361 1 0 "452e9b55_ef4b_45f0_87bd8102d6c60a59" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1362 1 0 "d6800b87_1a3c_4a0a_8a2385a98b380a32" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1363 1 0 "2be40e96_5c2a_4ae9_8eb2100865f1ffe0" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1364 1 0 "42dbc789_ef76_4af5_83b99da8e55a3817" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveSequencePositions(io_seq_SourceTips, TIP_OFFSET_GLOBAL::SEQ::TIP_PICK_UP); // }} "" // {{ 1365 1 0 "482416d3_b9dd_4acd_8044029eb7136076" "ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}" { variable arrRetValues[]; arrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B("482416d3_b9dd_4acd_8044029eb7136076"); // Head96TipPickUp ret_str_ReturnValue = arrRetValues[2]; } // }} "" // {{{ 1366 1 0 "9d7ca387_8c6b_451a_83899b980d35e230" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_str_ReturnValue); // }} "" // {{{ 5 "_LocalPickUpNextMPH96Tips" "End" } // }} "" // {{{ 5 "TIP_OFFSET_CleanUpTips_Rows2" "Begin" function TIP_OFFSET_CleanUpTips_Rows2( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable i; private variable int_TotalEmpty; private variable strFunctionName; private variable strFunctionName_Cut; private variable str_LabID; private variable str_LabIDReturn; private variable int_TotalLabwareSet; private variable bln_ValueFound; private variable int_Count; private variable str_TipOffsetLabID; private variable str_PosID; private sequence seq_EjectSequence; private sequence seq_Temp; private sequence seq_EmptyPosition; // {{ 5 "TIP_OFFSET_CleanUpTips_Rows2" "InitLocals" // }} "" // {{ 264 1 0 "48d9c42e_e9e7_40f2_a76b036117caecad" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 265 1 0 "9ebfe0bb_017e_4a3e_9d76528508ae70fb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 267 1 0 "19d842e6_9879_4bb4_b9a0dee080e420c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 268 1 0 "ce3032ad_61a5_4e3e_b5c1c940d028d5ae" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 269 1 0 "03e2abdc_5b82_4523_bed58c78068083a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 270 1 0 "46d2ded4_ccc2_4357_a7623647e69c3631" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 271 1 0 "7af005e9_a0a1_49fa_aa8c5229f6284d7b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 273 1 0 "48d9c42e_e9e7_40f2_a76b036117caecad" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 274 1 0 "a1a6701c_2504_479c_960cc96eaaf1e762" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(io_seq_SourceTips); // }} "" // {{ 275 1 0 "5ffb0d9c_c32a_4758_bc5aa33170877bcb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 276 1 0 "ae7222a1_3b2e_424a_a733e4ce047d6352" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 277 1 0 "ba42c936_4a66_4178_b602b66d0f6f37f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetFullSequenceCopy(ML_STAR, i_seq_TipOffset, seq_Temp); // }} "" // {{{ 278 1 0 "0bc41678_b89b_48e2_b714a0000dd3f0e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipOffsetLabID = SeqGetLabwareId(seq_Temp); // }} "" // {{{ 279 1 0 "0ee68fe1_31f9_45f7_91290452b7c3d3a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 280 1 0 "24f96121_1ca6_4a9c_9c7a1c9b42b166b1" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalLabwareSet=TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.GetSize(); // }} "" // {{ 281 1 0 "e5e80bca_8a7a_455b_9404162ea41a3f11" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalLabwareSet > 0) { // }} "" // {{{ 282 1 0 "085838f7_e033_433f_a0c7088bb0e05acc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_ValueFound = Util::Lookup(TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, str_TipOffsetLabID, TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX); // }} "" // {{ 283 1 0 "b9c1a60a_b595_45b8_843e862f072a75e9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX + 1; // }} "" // {{ 284 1 0 "d0170f59_d9b1_47cb_b5fba8458f05d8f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::FALSE) { // }} "" // {{ 285 1 0 "4681a4a7_9350_4f20_88f5531bd9314440" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1; // }} "" // {{ 286 1 0 "7e1f8e48_e5dd_40bb_9625b6b8b8e1bf5b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0; // }} "" // {{ 287 1 0 "b495a88c_9138_43db_8498404eeaf3a93c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID); // }} "" // {{ 288 1 0 "7f79c741_a217_41fa_af51c059e0b08db7" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 289 1 0 "c81575bd_da48_4f12_884c017fd2ee43dd" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 290 1 0 "d0170f59_d9b1_47cb_b5fba8458f05d8f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 291 1 0 "43a9fb17_d96a_4419_a8255aaeedde55fc" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED=TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1); // }} "" // {{ 292 1 0 "3501e22f_3271_4ce3_9d8e0187ffbbee56" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP=TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1); // }} "" // {{ 293 1 0 "1a804c65_b4d6_4abb_837647c692d2e30d" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT=TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1); // }} "" // {{ 294 1 0 "d0170f59_d9b1_47cb_b5fba8458f05d8f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 295 1 0 "e5e80bca_8a7a_455b_9404162ea41a3f11" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 296 1 0 "9f3aedc9_b7dc_4bee_b989ca206d54821c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1; // }} "" // {{ 297 1 0 "62823ccc_1f10_4c14_918b35dd86fdb8e5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0; // }} "" // {{ 298 1 0 "ea7aa92c_1787_4017_bd377c8543cd4f04" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID); // }} "" // {{ 299 1 0 "a9750982_b9ca_44e3_bb50d576515ca997" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 300 1 0 "a2fa7f03_5785_4743_bc5a131f7b1ee95e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 301 1 0 "39aaf7ff_a89b_4a3b_a285047a8d81f407" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.AddAsLast(seq_Temp); // }} "" // {{ 302 1 0 "e5e80bca_8a7a_455b_9404162ea41a3f11" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 303 1 0 "b2a2f993_7763_4955_9d14158098e960f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_2(Translate("Labware Count"), TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED); // }} "" // {{{ 304 1 0 "954b2bb9_b729_4fc5_858a5072a1892f9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabIDReturn = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{{ 305 1 0 "7a7dde42_bed4_40fa_92066eedc95a2844" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Current Index: "), TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX); // }} "" // {{{ 306 1 0 "edc0c453_5596_4543_a3aa21e6175c65b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Return Labware: "), str_LabIDReturn); // }} "" // {{{ 307 1 0 "39b7fe4b_afec_4546_858a15c68b61da57" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Current Tip Count "), TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 308 1 0 "5ffb0d9c_c32a_4758_bc5aa33170877bcb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 309 1 0 "39c426ca_0bcf_4d74_93e504ef3576efca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED > 0) { // }} "" // {{{ 310 1 0 "971fccc9_6a7a_4842_8f63006483dcc07b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _InitializeLibrary(); // }} "" // {{ 311 1 0 "ccd2e619_b1e4_4a5a_9c7bfaf627a7deab" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 312 1 0 "99f72003_5bab_487d_9ac69fae8d560557" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToString(i_str_TipCounter); // }} "" // {{ 313 1 0 "b2db97ad_62f2_47c9_884aeb7490c68298" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 314 1 0 "863ae491_f87c_41bc_86a23275bd9a2071" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(io_seq_SourceTips); // }} "" // {{{ 315 1 0 "45cca6b2_4dd7_4f53_8c4891954dc6f617" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _SetEmptyPositions(ML_STAR, io_seq_SourceTips); // }} "" // {{{ 316 1 0 "6d014637_4b9b_429d_8529847c65a614ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" // {{{ 317 1 0 "c78b03ec_f4e0_42ae_a1e0035f2d779322" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition_Partial2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, seq_EmptyPosition, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{{ 318 1 0 "5cdc3d29_c8b5_4d7a_9f497175c5493cc7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalEmpty = SeqGetTotal(seq_EmptyPosition); // }} "" // {{ 319 1 0 "ac673e0d_4817_4df5_900e5fb9ebb58b3a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalEmpty > 0) { // }} "" // {{{ 320 1 0 "880d95f8_398d_4efe_bcfedfff7344d3dd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, seq_EmptyPosition); // }} "" // {{ 321 1 0 "ac673e0d_4817_4df5_900e5fb9ebb58b3a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 322 1 0 "be624ea6_d83f_4f05_b8310456ed2a4b0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetConsecutiveSequencePositions2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED, 1, seq_EjectSequence); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 323 1 0 "42cd6888_5eae_40a7_a6fe7f5ed3a0f9fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 1); // }} "" // {{ 324 1 0 "d8e87189_0060_4670_a5034c0051adf669" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < TIP_OFFSET_GLOBAL::INT::TIPS_LOADED;) { i = i + 1; // }} "" // {{ 325 1 0 "555e3a94_dbd4_4c84_bb0af842dd2cd453" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(i); // }} "" // {{{ 326 1 0 "5c130de6_99ca_48fb_aa463696e68dd12d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{{ 327 1 0 "5290f101_b758_470a_a250a7f71a0e377f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{{ 328 1 0 "5bfa993e_3c2c_4c42_9b0a88f90e96206a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(io_seq_SourceTips, str_LabID, str_PosID); // }} "" // {{ 329 1 0 "d8e87189_0060_4670_a5034c0051adf669" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 330 1 0 "637900d5_4639_4c49_94be26bb5f777156" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(1); // }} "" // {{ 331 1 0 "5de41b5d_71d2_4ff5_9eeba3ecfd5a279d" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_seq_SourceTips.SetCurrentPosition(1); // }} "" // {{{ 332 1 0 "9b1282ff_159d_44a0_906c927ff867a824" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence2(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 0); // }} "" // {{{ 333 1 0 "50248d20_fede_4f7b_ad1c6266839d4ddc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ReturnTipsToPickUp2(ML_STAR, BOOLEON::FALSE); // }} "" // {{{ 334 1 0 "6646ac8a_62ac_40b6_931f824cf1eb5dd6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipOffsetLabID = SeqGetLabwareId(i_seq_TipOffset); // }} "" // {{{ 335 1 0 "c3ccbcb7_613d_41c0_afa4ad9043895271" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, str_TipOffsetLabID, Translate("MlStarTipRack"), -1); // }} "" // {{{ 336 1 0 "7f2480a5_bc94_4a24_9eb08a84239f15ce" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, str_TipOffsetLabID, Translate("MlStarCore96TipRack"), -1); // }} "" // {{{ 337 1 0 "2926a22f_4d00_4a0b_bf88154e1761f858" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(io_seq_SourceTips); // }} "" // {{{ 338 1 0 "91252972_749f_4f1b_86ccb9786ca05012" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, io_seq_SourceTips, 0); // }} "" // {{{ 339 1 0 "485d007f_8ff6_4760_9520b358d102e604" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{ 340 1 0 "b0b2f82a_362c_4672_84623563f1bef09b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.SetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{{ 341 1 0 "9c1d93aa_b3d1_4425_bbdf3e7f8f83b452" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate("")); // }} "" // {{ 342 1 0 "39c426ca_0bcf_4d74_93e504ef3576efca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 343 1 0 "23179b82_cf61_4959_a1660abaede0d323" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("====================================================================\nNo tips to clean up\n====================================================================")); // }} "" // {{ 344 1 0 "39c426ca_0bcf_4d74_93e504ef3576efca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 345 1 0 "d239036b_8836_4f67_a6ab4b6f1e7b62b0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate("")); // }} "" // {{ 346 1 0 "d88b99d1_3215_41d7_8cf580bc1bb2ac2e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 348 1 0 "d88b99d1_3215_41d7_8cf580bc1bb2ac2e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TIP_OFFSET_CleanUpTips_Rows2" "End" } // }} "" // {{{ 5 "TIP_OFFSET_CleanUpTips_Column2" "Begin" function TIP_OFFSET_CleanUpTips_Column2( device & ML_STAR, sequence & io_seq_SourceTips, sequence i_seq_TipOffset, variable i_str_TipCounter ) void { // }} "" private variable int_CutNum; private variable int_Length; private variable i; private variable int_TotalEmpty; private variable strFunctionName; private variable strFunctionName_Cut; private variable str_LabID; private variable int_TotalLabwareSet; private variable bln_ValueFound; private variable int_Count; private variable str_TipOffsetLabID; private variable str_PosID; private sequence seq_EjectSequence; private sequence seq_Temp; private sequence seq_EmptyPosition; // {{ 5 "TIP_OFFSET_CleanUpTips_Column2" "InitLocals" // }} "" // {{ 94 1 0 "63dc34d7_ca55_4d41_a7422d7f3ad27916" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 95 1 0 "17a3fe18_be26_4c48_944f318bcfa613de" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strFunctionName = Translate(""); // }} "" strFunctionName = GetFunctionName(); // {{{ 97 1 0 "eebbdf4b_216b_4c06_a6e19c486e700da9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Count = StrReverseFind(strFunctionName, Translate(":")); // }} "" // {{ 98 1 0 "bd19fadf_244f_4443_ba39e8ec3f2292b1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Count = int_Count + 1; // }} "" // {{{ 99 1 0 "812874c4_7b85_455b_93f33caa6e5f3deb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(strFunctionName); // }} "" // {{ 100 1 0 "badfecea_f6eb_4518_b61ddef156206c79" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CutNum = int_Length - int_Count; // }} "" // {{{ 101 1 0 "4024dd02_b534_45ed_bc3e9ed8fdf2da52" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFunctionName_Cut = StrMid(strFunctionName, int_Count, int_CutNum); // }} "" Trace("==========================================================================="); Trace(strFunctionName_Cut," - START"); Trace(""); // {{ 103 1 0 "63dc34d7_ca55_4d41_a7422d7f3ad27916" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 104 1 0 "8998d4ac_e8ab_4ffc_b9b3248efed7feda" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 105 1 0 "bfdc4703_7160_431a_b16018362a0a0a5b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 106 1 0 "d50ecee0_428e_4908_9d74ba7ae0ac89c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetFullSequenceCopy(ML_STAR, i_seq_TipOffset, seq_Temp); // }} "" // {{{ 107 1 0 "4f6fe351_53a3_4d9f_a3658815eed4b071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipOffsetLabID = SeqGetLabwareId(seq_Temp); // }} "" // {{{ 108 1 0 "fbfea5a4_aab5_4029_8b09638d6e612b76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 109 1 0 "99fa200b_f3eb_4de5_86ad7de231dfa107" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalLabwareSet=TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.GetSize(); // }} "" // {{ 110 1 0 "82c80d37_d891_4be1_82084e3ba6a3c998" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalLabwareSet > 0) { // }} "" // {{{ 111 1 0 "b6297169_1b70_4e7a_9f58688351431955" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_ValueFound = Util::Lookup(TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, str_TipOffsetLabID, TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX); // }} "" // {{ 112 1 0 "abce3337_572b_42ec_85a9001ffd875fe9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX + 1; // }} "" // {{ 113 1 0 "2b22cb00_9ef5_48c5_89bc1ce45a1a2222" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::FALSE) { // }} "" // {{ 114 1 0 "58bc1604_da51_4bef_8a89574b21ce7719" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1; // }} "" // {{ 115 1 0 "4cc76c50_2121_44b3_86adac42c21fe8cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0; // }} "" // {{ 116 1 0 "9a9f9b6f_5e0d_4634_87424d8ba6c45a41" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID); // }} "" // {{ 117 1 0 "f2e39304_9b92_4fcf_985274c6c7a0b214" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 118 1 0 "19a169eb_a32d_44c6_9dfb4edd0f7ea707" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 119 1 0 "2b22cb00_9ef5_48c5_89bc1ce45a1a2222" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 120 1 0 "6fd2fcac_619f_4962_b1c0e76921ab5671" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED=TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1); // }} "" // {{ 121 1 0 "b77f9851_cc63_48fa_8bf0ef60d594deaa" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP=TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1); // }} "" // {{ 122 1 0 "e694bff3_32db_40bc_bd38d45cb548cc69" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT=TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.GetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1); // }} "" // {{ 123 1 0 "2b22cb00_9ef5_48c5_89bc1ce45a1a2222" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 124 1 0 "82c80d37_d891_4be1_82084e3ba6a3c998" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 125 1 0 "82dd9292_7de0_4876_b46499f0f2793f46" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX = int_TotalLabwareSet + 1; // }} "" // {{ 126 1 0 "bd86f1b4_fab8_470c_b6f5968096d1931c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = 0; // }} "" // {{ 127 1 0 "ea28475f_98db_4663_8ac08e26c448792a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID.AddAsLast(str_TipOffsetLabID); // }} "" // {{ 128 1 0 "224fcefe_1276_4812_a489c3200a07396f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.AddAsLast(TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 129 1 0 "9be9ee7f_4f67_4e44_b6a26158541aa2e7" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_RETURN_POSITION.AddAsLast(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{ 130 1 0 "d53b2f9d_f15d_4f95_a7ab99ee039fc37f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_OFFSET_CURRENT.AddAsLast(seq_Temp); // }} "" // {{ 131 1 0 "82c80d37_d891_4be1_82084e3ba6a3c998" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 132 1 0 "f51c3cdb_a3bb_4771_a5f008e85fc6d129" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_2(Translate("Labware Count"), TIP_OFFSET_GLOBAL::ARR::TIP_OFFSET_LAB_ID, TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED); // }} "" // {{{ 133 1 0 "25d685ff_5cfd_461d_b40e9a0b6dd91a20" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Current Index: "), TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX); // }} "" // {{{ 134 1 0 "fc9437d8_8141_45d1_96eb9d51badb3b10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Current Labware: "), str_TipOffsetLabID); // }} "" // {{{ 135 1 0 "c6601d50_e2c7_4c04_b7670d1bc72c4130" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Current Tip Count "), TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{ 136 1 0 "8998d4ac_e8ab_4ffc_b9b3248efed7feda" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 137 1 0 "cf0ce7c8_e3ec_40a4_a498e404a3b58421" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (TIP_OFFSET_GLOBAL::INT::TIPS_LOADED > 0) { // }} "" // {{{ 138 1 0 "4151d6ee_1b08_4b6e_ab6ee7fe8d3a6bed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _InitializeLibrary(); // }} "" // {{ 139 1 0 "fed14df0_d8ce_4a1b_b2cc86844d0efb97" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 140 1 0 "0588cce9_b7d0_43a8_bd05af5eaa03d21f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ConvertToString(i_str_TipCounter); // }} "" // {{ 141 1 0 "08e9768e_9b25_4339_a28536e77b876a16" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 142 1 0 "9f3d61d9_dd0f_4191_892610723087f43f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(io_seq_SourceTips); // }} "" // {{{ 143 1 0 "2133fa36_7972_4128_927786b768a2173f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _SetEmptyPositions(ML_STAR, io_seq_SourceTips); // }} "" // {{{ 144 1 0 "be1952a8_0c3b_4ae4_ac96a389278dfef5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_OFFSET_GLOBAL::INT::TIPS_LOADED = SeqGetTotal(TIP_OFFSET_GLOBAL::SEQ::TIP_OFFSET_CURRENT); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 145 1 0 "036c6fea_e9f7_4484_909d4fff279d494b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetConsecutiveSequencePositions(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED, 1, seq_EjectSequence); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 146 1 0 "2d21c5b1_e3c1_4be8_ba8aa70784c14ed7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition_Partial(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::EMPTY_POSITIONS, seq_EmptyPosition, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{{ 147 1 0 "142d3181_bbc2_43c3_bd5f64cc007dd5a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalEmpty = SeqGetTotal(seq_EmptyPosition); // }} "" // {{ 148 1 0 "ca0405b7_0990_453b_9de622bfdabaee4f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalEmpty > 0) { // }} "" // {{{ 149 1 0 "6ae98fea_1bb7_445b_acc151c9e4a7bedf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, seq_EmptyPosition); // }} "" // {{ 150 1 0 "ca0405b7_0990_453b_9de622bfdabaee4f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 151 1 0 "cf33f0c6_8eff_4188_a0b84a094a1a51b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 1); // }} "" // {{ 152 1 0 "3c80eacd_98ed_49ad_8a3256aace552c1c" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < TIP_OFFSET_GLOBAL::INT::TIPS_LOADED;) { i = i + 1; // }} "" // {{ 153 1 0 "ffea83dd_0201_4ed1_938f30e7e7838cc2" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(i); // }} "" // {{{ 154 1 0 "4034dc5f_4b60_49d4_84473e095918e46c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{{ 155 1 0 "dfb83c3a_8334_4c93_a087e8d0fc915010" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP); // }} "" // {{{ 156 1 0 "ba20b8a6_5222_477c_bf1866d56c025781" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(io_seq_SourceTips, str_LabID, str_PosID); // }} "" // {{ 157 1 0 "3c80eacd_98ed_49ad_8a3256aace552c1c" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 158 1 0 "4483b260_2fef_4a66_853c664506e66c64" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP.SetCurrentPosition(1); // }} "" // {{ 159 1 0 "087eb752_639d_47ee_a3ed5ca62fd72e83" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_seq_SourceTips.SetCurrentPosition(1); // }} "" // {{{ 160 1 0 "99c1480c_4827_4618_b64065e3df2ace24" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, TIP_OFFSET_GLOBAL::SEQ::RETURN_TO_PICKUP, 0); // }} "" // {{{ 161 1 0 "59d3264a_f7d5_4c0f_b18db13132e922b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ReturnTipsToPickUp(ML_STAR, BOOLEON::FALSE); // }} "" // {{{ 162 1 0 "ea20e001_eafa_40c2_a5368a9675f06ac1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipOffsetLabID = SeqGetLabwareId(i_seq_TipOffset); // }} "" // {{{ 163 1 0 "2ae074da_006f_4a6e_8f9ba528a1ebc224" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, str_TipOffsetLabID, Translate("MlStarTipRack"), -1); // }} "" // {{{ 164 1 0 "b3a25d6b_e0c0_4dc7_94089a41cb2faf42" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, str_TipOffsetLabID, Translate("MlStarCore96TipRack"), -1); // }} "" // {{{ 165 1 0 "ccd357cb_d0de_4546_a5d1a33ee1e15705" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveTruncatedSequencePositions(io_seq_SourceTips); // }} "" // {{{ 166 1 0 "ba33fa71_c2ab_4a34_a1751d39551e6d7d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __SortSequence(ML_STAR, io_seq_SourceTips, 0); // }} "" // {{{ 167 1 0 "4258bd1a_a208_4fba_9c262743dcfc5ee1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Write(ML_STAR, io_seq_SourceTips, i_str_TipCounter); // }} "" // {{ 168 1 0 "18babf92_5cf9_418b_bab710570e98557d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TIP_OFFSET_GLOBAL::ARR::TIPS_LOADED.SetAt(TIP_OFFSET_GLOBAL::INT::OFFSET_INDEX-1, TIP_OFFSET_GLOBAL::INT::TIPS_LOADED); // }} "" // {{{ 169 1 0 "24ffd9c8_6f63_49d5_863be1a0a7a93b35" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate("")); // }} "" // {{ 170 1 0 "cf0ce7c8_e3ec_40a4_a498e404a3b58421" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 171 1 0 "18985f11_52e3_4616_89370f7bf215ba70" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("====================================================================\nNo tips to clean up\n====================================================================")); // }} "" // {{ 172 1 0 "cf0ce7c8_e3ec_40a4_a498e404a3b58421" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 173 1 0 "996cc2b5_3be5_4085_9d794bfe0fa8e69b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_SourceTips, 5, Translate("")); // }} "" // {{ 174 1 0 "1b3872f0_ba57_42cd_86535adb75e20f87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" Trace(""); Trace(strFunctionName_Cut," - FINISH"); Trace("==========================================================================="); // {{ 176 1 0 "1b3872f0_ba57_42cd_86535adb75e20f87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TIP_OFFSET_CleanUpTips_Column2" "End" } // }} "" // {{{ 5 "_TipCheckMPH96" "Begin" private function _TipCheckMPH96( device & Instrument, sequence & io_seq_Tips, variable i_str_TipCounter ) void { // }} "" private dialog customDialogCABC9EF299A843979B1ED6F5189DE8FB; private variable int_CurrentPosition; private variable flt_TipCapacity; private variable str_TipMessage; private variable int_EndPosition; private variable int_PositionsRemaining; private variable int_TipsNeeded; private variable str_TipName; private sequence seq_PickUpPosition; // {{ 5 "_TipCheckMPH96" "InitLocals" // }} "" // {{ 1628 1 0 "b2340643_cd08_4492_bad43f2bc6118b01" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("========= Check tip sequence")); // }} "" // {{{ 1629 1 0 "78cd6a37_5af4_40eb_80e8b84b2018a4d5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCapacityCheck(Instrument, io_seq_Tips, flt_TipCapacity); // }} "" // {{ 1630 1 0 "925c2856_f4e0_44bb_af0370b07607f3d6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_TipCapacity == 0.0) { // }} "" // {{ 1631 1 0 "20c24675_7204_4137_b4eb1ecd1bb894bc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TipCapacity = Translate("Unknown"); // }} "" // {{ 1632 1 0 "925c2856_f4e0_44bb_af0370b07607f3d6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1633 1 0 "eb37cac1_d725_4be3_a5a9649e50b16e8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipName = StrConcat4(flt_TipCapacity, Translate(" uL Tips"), Translate(""), Translate("")); // }} "" // {{{ 1634 1 0 "9c76a9ce_791d_4157_8580e6c9dfc76bc6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipMessage = StrConcat4(Translate("Please load more "), str_TipName, Translate(" on to the deck."), Translate("")); // }} "" // {{ 1635 1 0 "79ae2900_b55f_4bc6_82dc289283b35630" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TipsNeeded = 96; // }} "" // {{ 1636 1 0 "2bf567ae_2378_467d_974c050b810a352f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (1 == 1) { // }} "" // {{{ 1637 1 0 "5cf8be50_6bd0_4cfc_bd6417df0642ee92" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextTipPickUpPosition(io_seq_Tips, seq_PickUpPosition); // }} "" // {{ 1638 1 0 "daa8d86a_35cd_4413_bc2c43824797800d" "{B31F353B-5D80-11d4-A5EB-0050DA737D89}" int_CurrentPosition = seq_PickUpPosition.GetCurrentPosition(); // }} "" // {{ 1639 1 0 "9660fb98_ecfd_495e_ac6c67d2bca04948" "{B31F353D-5D80-11d4-A5EB-0050DA737D89}" int_EndPosition = seq_PickUpPosition.GetCount(); // }} "" // {{ 1640 1 0 "444156cf_9a4b_48a7_b3da5b894e046a33" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_CurrentPosition == 0) { // }} "" // {{ 1641 1 0 "7463cfa0_7b41_46f4_932191aba96d2e50" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CurrentPosition = int_EndPosition + 1; // }} "" // {{ 1642 1 0 "444156cf_9a4b_48a7_b3da5b894e046a33" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1643 1 0 "f8647ab9_2e25_4101_9ce3a95db3107879" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_PositionsRemaining = int_EndPosition - int_CurrentPosition; // }} "" // {{ 1644 1 0 "ef08c527_5eb8_49f6_94503af0fbd59bf9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_PositionsRemaining = int_PositionsRemaining + 1; // }} "" // {{ 1645 1 0 "526a0209_d134_429b_bd297f1518916405" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsRemaining > 0) { // }} "" // {{{ 1646 1 0 "e0e2d928_a1b8_4a12_97d40e39400b2490" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_PositionsRemaining = SeqGetPositionCountForCurrLabware(seq_PickUpPosition); // }} "" // {{ 1647 1 0 "526a0209_d134_429b_bd297f1518916405" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace(" ","Positions Remaining: ",int_PositionsRemaining," Tips Needed: ",int_TipsNeeded); // {{ 1649 1 0 "15b17a9f_68c7_4ec8_b4c4216a7f1b5c9e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsRemaining >= int_TipsNeeded) { // }} "" // {{ 1650 1 0 "084b5a96_8fd9_49e9_b32815c603507221" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("------------------ Sufficient tips found")); // }} "" // {{ 1651 1 0 "8977e10f_89f3_4296_b59ca87ddfd02bc5" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1652 1 0 "15b17a9f_68c7_4ec8_b4c4216a7f1b5c9e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1653 1 0 "2eac090a_d0cf_4c90_bff695fce43c55fa" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("------------------ Insufficient tips found")); // }} "" // {{ 1654 1 0 "055b2c42_1e9b_45b0_ac7c2293b289ed19" "{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}" customDialogCABC9EF299A843979B1ED6F5189DE8FB.InitCustomDialog( "055b2c42_1e9b_45b0_ac7c2293b289ed19" ); customDialogCABC9EF299A843979B1ED6F5189DE8FB.SetCustomDialogProperty( "textBlock2.Text", str_TipMessage ); customDialogCABC9EF299A843979B1ED6F5189DE8FB.ShowCustomDialog(); // }} "" // {{ 1655 1 0 "42b5ab54_ea37_4f82_956bc51506e469ad" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1656 1 0 "0c3fd0d9_f008_4ab0_965df7f45246a02f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::ResetInputSequence(Instrument, io_seq_Tips); // }} "" // {{{ 1657 1 0 "9a3bbd59_f3ea_425b_b186a7e3e916dc7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Edit(Instrument, io_seq_Tips, i_str_TipCounter, 99999); // }} "" // {{ 1658 1 0 "2bf567ae_2378_467d_974c050b810a352f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "_TipCheckMPH96" "End" } // }} "" // {{{ 5 "ABSTRACT" "Begin" private function ABSTRACT( ) void { // }} "" // {{ 5 "ABSTRACT" "InitLocals" // }} "" // {{ 1 1 0 "031cb140_1b32_48b7_bd54a1b83a10b0e6" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 5 "ABSTRACT" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=Bare_B$$valid=0$$time=2021-09-28 13:31$$checksum=164e45c8$$length=085$$ ================================================ FILE: pyhamilton/library/STAR Tools/STAR Pipetting Tools.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 12/9/2021 11:07:24 AM #pragma once #ifndef HSL_RUNTIME namespace SPT { function _InitLibrary() { } function _ExitLibrary() { } function MPH_AspirateFromFixedHeight( device & ML_STAR, sequence i_seq_AspirationPositions, variable i_flt_AspHeight, variable i_int_End_Position, variable i_bln_UseLiquidFollowing, variable i_str_LiquidClass, variable i_flt_AspirationVolume, variable i_flt_PullOutDistance ) void { } function MPH_DispenseToFixedHeight( device & ML_STAR, sequence i_seq_DispensePositions, variable i_flt_DispenseHeight, variable i_int_End_Position, variable i_bln_UseLiquidFollowing, variable i_flt_DispenseVolume, variable i_flt_PullOutDistance ) void { } function PIP_AspirateFromFixedHeight( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_AspirationPositions, variable & i_arr_FixedHeights[], variable i_int_End_Position, variable i_bln_UseLiquidFollowing, variable i_str_LiquidClass, variable i_flt_AspirationVolume, variable i_flt_PullOutDistance ) void { } function PIP_BuildChannelPatternFromSequence( device & ML_STAR, sequence i_seq_ControllingSequence, variable & o_str_ChPattern ) void { } function PIP_DispenseToFixedHeight( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_DispensePositions, variable & i_arr_FixedHeights[], variable i_int_End_Position, variable i_bln_UseLiquidFollowing, variable i_flt_DispenseVolume, variable i_flt_PullOutDistance ) void { } function PIP_FindLiquidLevel( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_PositionsToCheck, variable i_int_End_Position, variable i_bln_UseCLLD, variable & o_arr_LiquidHeightsFound[] ) void { } function PIP_MixFromFixedHeight( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_MixPositions, variable & i_arr_FixedHeights[], variable i_int_End_Position, variable i_bln_UseLiquidFollowing, variable i_str_LiquidClass, variable i_flt_MixVolume, variable i_int_MixCycles ) void { } function PIP_PhaseAspiration( device & ML_STAR, variable & io_str_ChPattern, variable i_bln_ResetChPattern, variable i_str_LiquidClass, sequence i_seq_AspirationPosition, sequence i_seq_DispensePosition, variable i_bln_UseCLLD, variable i_flt_AspirationVolume, variable i_flt_DispenseBackVolume, variable i_flt_SubmergeDepth, variable i_flt_MaxVolumeToRemove, variable i_bln_DisableTADMFirst ) variable { return (0); } function PIP_PhaseAspirationParseReturnValue( variable i_strReturnFromPhaseAspiration, variable & o_arrAspirationReturns[], variable & o_arrDispenseReturns[] ) void { } function PIP_PhaseAspirationRemainder( device & ML_STAR, variable i_str_ChPattern, variable i_str_LiquidClass, sequence i_seq_AspirationPosition, sequence i_seq_DispensePosition, variable i_bln_UseCLLD, variable i_flt_SafeHeightAbovePhase, variable i_flt_AdditionalAspirationVolume, variable i_flt_SubmergeHeight ) variable { return (0); } function PIP_PhaseAspirationSmallLayer( device & ML_STAR, variable i_str_ChPattern, variable i_str_LiquidClass, sequence i_seq_AspirationPosition, sequence i_seq_DispensePosition, variable i_flt_AdditionalAspirationVolume, variable i_flt_OffsetBelowSecondPhase, variable i_int_TotalAspirationRounds, variable i_flt_DispenseHeight ) variable { return (0); } function PIP_PhaseAspirationWasteRemainder( device & ML_STAR, variable i_str_ChPattern, variable i_str_LiquidClass, sequence i_seq_AspirationPosition, sequence i_seq_DispensePosition, variable i_bln_UseCLLD, variable i_flt_SafeHeightAbovePhase, variable i_flt_AdditionalAspirationVolume, variable i_flt_DispenseHeight ) void { } function PIP_ProgressSequenceFromChannelPattern( variable i_str_ChPattern, variable i_bln_ProgressByUsedChannels, sequence & io_seq_SequenceToProgress ) void { } function TOOL_BuildArrayForChannels( device & ML_STAR, variable i_flt_ValueToSet, variable & o_arr_Values[] ) void { } function TOOL_CalculateHeightForVolume( device & ML_STAR, sequence i_seq_LabwareForCalculation, variable i_flt_VolumeInLabware, variable & o_flt_HeightOfVolume ) void { } function TOOL_CalculateVolumeForHeight( device & ML_STAR, sequence i_seq_LabwareForCalculation, variable i_flt_HeightOfVolume, variable & o_flt_Volume ) void { } function TOOL_OffsetArrayForChannels( device & ML_STAR, variable i_flt_ValueToOffset, variable & io_arr_Values[] ) void { } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=Bare_B$$valid=0$$time=2021-12-09 11:07$$checksum=6e910ad1$$length=083$$ ================================================ FILE: pyhamilton/library/STAR Tools/STAR Pipetting Tools.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "HSLStrLib.hsl" #include "HSLSeqLib.hsl" #include "STAR Tools\\Resources\\SubMethods\\Firmware Pipetting Commands.hs_" #include "HSL_MethodHelper.hsl" #include "HSLDeckVisualize.hsl" #include "HSLUtilLib2.hsl" #include "STAR Tools\\Resources\\SubMethods\\HelperLibrary.hs_" #include "HSLUtilLib.hsl" #include "HSLMthLib.hsl" #include "SMT\\MLSTARLiquidClassLib.hsl" #include "HSLStatistics.hsl" #include "HSLErrLib.hsl" #include "HSLMlStarStepReturnLib.hsl" #include "HSLDevLib.hsl" #include "STAR Tools\\Resources\\SubMethods\\Liquid Level Check.hs_" #include "STAR Tools\\Resources\\SubMethods\\FW_HelperLibrary.hs_" #include "HSLLabwareStateLib.hsl" #include "HSLExtensions\\String.hsl" #include "STAR Tools\\Resources\\SubMethods\\STAR Channel Movement Tools.hs_" #include "STAR Tools\\Resources\\SubMethods\\VANTAGE Channel Movement Tools.hs_" #include "HSLVectorDbTracking.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace SPT { // }} "" variable T_PIP_TOOLS_LIQUID_CLASS_INIT; variable T_PIP_TOOLS_LIQUID_CLASS; variable T_PIP_TOOLS_ASP_CLOT_RETRACT; variable T_PIP_TOOLS_ASP_AIR_TRANSPORT; variable T_PIP_TOOLS_DISP_SETTLING; variable T_PIP_TOOLS_DISP_AIR_TRANSPORT; variable T_PIP_TOOLS_DISP_STOP_FLOW; variable T_PIP_TOOLS_ASP_BLOWOUT; variable T_PIP_TOOLS_DISP_BLOWOUT; variable T_PIP_TOOLS_DISP_SWAP; variable T_PIP_TOOLS_ASP_MIX_FLOW_RATE; variable T_PIP_TOOLS_ASP_FLOW_RATE; variable T_PIP_TOOLS_DISP_MIX_FLOW_RATE; variable T_PIP_TOOLS_ASP_OVERASPIRATE; variable T_PIP_TOOLS_DISP_STOP_BACK; variable T_PIP_TOOLS_ASP_SWAP; variable T_PIP_TOOLS_DISP_FLOW_RATE; variable T_PIP_TOOLS_ASP_SETTLING; variable T_PIP_TOOLS_MAX_VOLUME; variable T_PIP_TOOLS_ARR_CORRECTION_X[]; variable T_PIP_TOOLS_ARR_CORRECTION_Y[]; variable T_PIP_TOOLS_DISPENSE_MODE; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function MPH_AspirateFromFixedHeight( device & ML_STAR, sequence i_seq_AspirationPositions, variable i_flt_AspHeight, variable i_int_End_Position, variable i_bln_UseLiquidFollowing, variable i_str_LiquidClass, variable i_flt_AspirationVolume, variable i_flt_PullOutDistance ) void ; function MPH_DispenseToFixedHeight( device & ML_STAR, sequence i_seq_DispensePositions, variable i_flt_DispenseHeight, variable i_int_End_Position, variable i_bln_UseLiquidFollowing, variable i_flt_DispenseVolume, variable i_flt_PullOutDistance ) void ; function PIP_AspirateFromFixedHeight( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_AspirationPositions, variable & i_arr_FixedHeights[], variable i_int_End_Position, variable i_bln_UseLiquidFollowing, variable i_str_LiquidClass, variable i_flt_AspirationVolume, variable i_flt_PullOutDistance ) void ; function PIP_BuildChannelPatternFromSequence( device & ML_STAR, sequence i_seq_ControllingSequence, variable & o_str_ChPattern ) void ; function PIP_DispenseToFixedHeight( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_DispensePositions, variable & i_arr_FixedHeights[], variable i_int_End_Position, variable i_bln_UseLiquidFollowing, variable i_flt_DispenseVolume, variable i_flt_PullOutDistance ) void ; function PIP_FindLiquidLevel( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_PositionsToCheck, variable i_int_End_Position, variable i_bln_UseCLLD, variable & o_arr_LiquidHeightsFound[] ) void ; function PIP_MixFromFixedHeight( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_MixPositions, variable & i_arr_FixedHeights[], variable i_int_End_Position, variable i_bln_UseLiquidFollowing, variable i_str_LiquidClass, variable i_flt_MixVolume, variable i_int_MixCycles ) void ; function PIP_PhaseAspiration( device & ML_STAR, variable & io_str_ChPattern, variable i_bln_ResetChPattern, variable i_str_LiquidClass, sequence i_seq_AspirationPosition, sequence i_seq_DispensePosition, variable i_bln_UseCLLD, variable i_flt_AspirationVolume, variable i_flt_DispenseBackVolume, variable i_flt_SubmergeDepth, variable i_flt_MaxVolumeToRemove, variable i_bln_DisableTADMFirst ) variable ; function PIP_PhaseAspirationParseReturnValue( variable i_strReturnFromPhaseAspiration, variable & o_arrAspirationReturns[], variable & o_arrDispenseReturns[] ) void ; function PIP_PhaseAspirationRemainder( device & ML_STAR, variable i_str_ChPattern, variable i_str_LiquidClass, sequence i_seq_AspirationPosition, sequence i_seq_DispensePosition, variable i_bln_UseCLLD, variable i_flt_SafeHeightAbovePhase, variable i_flt_AdditionalAspirationVolume, variable i_flt_SubmergeHeight ) variable ; function PIP_PhaseAspirationSmallLayer( device & ML_STAR, variable i_str_ChPattern, variable i_str_LiquidClass, sequence i_seq_AspirationPosition, sequence i_seq_DispensePosition, variable i_flt_AdditionalAspirationVolume, variable i_flt_OffsetBelowSecondPhase, variable i_int_TotalAspirationRounds, variable i_flt_DispenseHeight ) variable ; function PIP_PhaseAspirationWasteRemainder( device & ML_STAR, variable i_str_ChPattern, variable i_str_LiquidClass, sequence i_seq_AspirationPosition, sequence i_seq_DispensePosition, variable i_bln_UseCLLD, variable i_flt_SafeHeightAbovePhase, variable i_flt_AdditionalAspirationVolume, variable i_flt_DispenseHeight ) void ; function PIP_ProgressSequenceFromChannelPattern( variable i_str_ChPattern, variable i_bln_ProgressByUsedChannels, sequence & io_seq_SequenceToProgress ) void ; function TOOL_BuildArrayForChannels( device & ML_STAR, variable i_flt_ValueToSet, variable & o_arr_Values[] ) void ; function TOOL_CalculateHeightForVolume( device & ML_STAR, sequence i_seq_LabwareForCalculation, variable i_flt_VolumeInLabware, variable & o_flt_HeightOfVolume ) void ; function TOOL_CalculateVolumeForHeight( device & ML_STAR, sequence i_seq_LabwareForCalculation, variable i_flt_HeightOfVolume, variable & o_flt_Volume ) void ; function TOOL_OffsetArrayForChannels( device & ML_STAR, variable i_flt_ValueToOffset, variable & io_arr_Values[] ) void ; private function _ApplyOffsetToArrayofValues( variable & i_arr_Values[], variable i_flt_Offset, variable & o_arr_AdjustedValues[] ) void ; private function _CalculateLiquidFollowDistance( device & ML_STAR, variable i_str_LabID, variable i_str_PosID, variable i_flt_StartHeight, variable i_flt_VolumeToRemove, variable i_bln_AspirateMode, variable & o_flt_FollowDistance ) void ; private function _CheckForPressureErrors( device & ML_STAR, variable i_str_AspirationReturnValue, variable i_str_LiquidReturnValue, variable i_flt_DispenseBackVolume, variable i_str_LiquidClassDispenseBack, variable & o_str_NoErrorChPattern ) void ; private function _DetermineStartZHeight( device & ML_STAR, variable i_str_ChPattern, variable i_str_LabID, variable & i_arr_XCoords[], variable & i_arr_YCoords[], variable i_flt_ZMinimumCoord, variable i_flt_ZClearanceHeight, variable & o_flt_StartZHeight ) variable ; private function _DetermineStartZHeightMPH96( device & ML_STAR, variable i_flt_XCoord, variable i_flt_YCoord, variable i_flt_ZMinimumCoord, variable & o_flt_StartZHeight ) variable ; private function _EnsureTipsAreLoaded( device & ML_STAR, variable i_str_ChannelPattern ) variable ; private function _GetChannelPatternValue( variable i_str_ChannelPattern, variable i_int_ChannelNumber, variable & o_int_Value ) void ; private function _GetCorrectedValueForVolume( variable i_flt_VolumeToConvert, variable & i_arr_CorrectionX[], variable & i_arr_CorrectionY[], variable & o_flt_CorrectedVolume ) void ; private function _GetHeightBasedOnVolume( variable i_str_ContainerFilePath, variable i_flt_VolumeToCalculate, variable & o_flt_HeightWithVolume ) void ; private function _GetHeightInfoFromLabware( device & ML_STAR, variable i_blnUpperHeights, sequence i_seqPositions, variable & o_arrHeights[] ) void ; private function _GetLabwareCoordinates( device & ML_STAR, sequence i_seq_Positions, variable i_str_ChPattern, variable & o_arr_XCoord[], variable & o_arr_YCoord[], variable & o_flt_ZBottom, variable & o_flt_ZMinimumHeight, variable & o_flt_ZMaximumHeight, variable & o_flt_ZClearanceHeight ) void ; private function _GetLabwareCoordinatesMPH96( device & ML_STAR, sequence i_seq_Positions, variable & o_flt_XCoord, variable & o_flt_YCoord, variable & o_flt_ZBottom, variable & o_flt_ZMinimumHeight, variable & o_flt_ZMaximumHeight, variable & o_flt_ZClearanceHeight ) void ; private function _GetLabwareLimits( device & ML_STAR, variable i_str_LabID, variable & o_flt_XMin, variable & o_flt_XMax, variable & o_flt_YMin, variable & o_flt_YMax ) void ; private function _GetLiquidClassParams( variable i_str_LiquidClass, variable i_bln_Asp, variable & o_flt_FlowRate, variable & o_flt_MixFlowRate, variable & o_flt_AirTransportVolume, variable & o_flt_BlowoutVolume, variable & o_flt_SwapSpeed, variable & o_int_SettlingTime, variable & o_flt_OverAspVolume, variable & o_flt_ClotRetractHeight, variable & o_flt_StopFlowRate, variable & o_flt_StopBackVolume, variable & o_flt_MaxVolume, variable & o_int_DispenseMode, variable & o_arr_CorrectionCurveX[], variable & o_arr_CorrectionCurveY[] ) void ; private function _GetLiquidFollowingForAllChannels( device & ML_STAR, variable & i_arr_FixedHeights[], sequence i_seq_PositionsToCalculate, variable i_bln_LiquidFollowingEnabled, variable i_bln_Aspirate, variable i_flt_VolumeToUse, variable i_str_ChPattern, variable & o_arr_LiquidFollowingDistance[] ) void ; private function _GetLiquidFollowingForMPH96( device & ML_STAR, variable i_flt_FixedHeights, sequence i_seq_PositionsToCalculate, variable i_bln_LiquidFollowingEnabled, variable i_bln_Aspirate, variable i_flt_VolumeToUse, variable & o_flt_LiquidFollowingDistance ) void ; private function _GetNextSequenceSet( sequence i_seq_Source, variable i_str_ChannelPattern, sequence & o_seq_TempSequence ) void ; private function _GetPartialChannelPatternForRepeatingPositions( device & ML_STAR, variable i_strChPattern, sequence i_seqPositions, variable & o_intLoopNumber, variable & o_arrChannelPatterns[] ) void ; private function _GetVolumeBasedOnHeight( variable i_str_ContainerFilePath, variable i_flt_HeightToCalculate, variable & o_flt_VolumeFromHeight ) void ; private function _GetVolumesInPositions( device & ML_STAR, sequence i_seqPositionsToGetVolume, variable & o_arrCurrentVolumes[] ) void ; private function _InitLiquidClassStorage( ) void ; private function _ProbabilityCheck( device & ML_STAR, sequence i_seq_PositionsToCheck, variable i_str_ChannelPatternToCheck ) variable ; private function _ProbabilityCheckMPH96( device & ML_STAR, sequence i_seq_PositionsToCheck, variable i_str_ChannelPatternToCheck ) variable ; private function _SetHeightInfoToLabware( device & ML_STAR, variable i_blnUpperHeights, sequence i_seqPositions, variable & i_arrHeights[] ) void ; private function _SetPropertiesForLabwareID( device & Instrument, variable i_strLabwareID, variable i_strPropertyKey, variable i_strProperyValue ) void ; private function __GetVolumeForSegmentHeight( variable i_int_ShapeNumber, variable i_flt_DiameterTop, variable i_flt_DiameterBottom, variable i_flt_Height, variable & o_flt_CurrentVolume ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" FIRMWARE_PIPETTING_COMMANDS::_InitLibrary(); HELPERLIBRARY::_InitLibrary(); LIQUID_LEVEL_CHECK::_InitLibrary(); FW_HELPERLIBRARY::_InitLibrary(); STAR_CHANNEL_MOVEMENT_TOOLS::_InitLibrary(); VANTAGE_CHANNEL_MOVEMENT_TOOLS::_InitLibrary(); // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" FIRMWARE_PIPETTING_COMMANDS::_ExitLibrary(); HELPERLIBRARY::_ExitLibrary(); LIQUID_LEVEL_CHECK::_ExitLibrary(); FW_HELPERLIBRARY::_ExitLibrary(); STAR_CHANNEL_MOVEMENT_TOOLS::_ExitLibrary(); VANTAGE_CHANNEL_MOVEMENT_TOOLS::_ExitLibrary(); // }} "" } // {{{ 5 "PIP_FindLiquidLevel" "Begin" function PIP_FindLiquidLevel( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_PositionsToCheck, variable i_int_End_Position, variable i_bln_UseCLLD, variable & o_arr_LiquidHeightsFound[] ) void { // }} "" private sequence seq_Temp; private variable int_TotalChannels; private variable _strFunctionName; private variable bln_ProbabilityPassed; private variable flt_ZMaximumHeight; private variable flt_ZClearanceHeight; private variable flt_ZMinimumHeight; private variable arr_YCoord[]; private variable arr_XCoord[]; private variable bln_TipsLoaded; private variable int_ChannelIndex; private variable flt_AdjustedCoordinates; private variable str_LabID; private variable str_PosID; private variable flt_ZCoord; private variable flt_NotUsed; private variable bln_SimulationMode; private variable bln_LabwareValid; private variable flt_ZBottom; private variable bln_ChannelsAtCoordinates; private variable flt_ZStartHeight; private variable flt_MovementEndHeight; // {{ 5 "PIP_FindLiquidLevel" "InitLocals" o_arr_LiquidHeightsFound.SetSize( 0); // }} "" // {{ 369 1 0 "a739dfee_f808_4351_a442935755750613" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 370 1 0 "036f5374_1705_4d72_a31b03fbba8ddd94" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 372 1 0 "0ea174da_7b55_4a23_8fce76905392fcf3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 373 1 0 "a739dfee_f808_4351_a442935755750613" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 374 1 0 "1b271011_88d8_4307_912569d514cf0719" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_SimulationMode = Util::GetSimulationMode(); // }} "" // {{{ 375 1 0 "818b4640_b2d5_4fae_966ac8a02f23f51b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::GetChannelNumber1mL(ML_STAR, int_TotalChannels); // }} "" // {{{ 376 1 0 "3a690260_f1ad_486c_84d93bd1008960f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChPattern = StrConcat2(i_str_ChPattern, Translate("")); // }} "" // {{{ 377 1 0 "87df24d4_9609_4e4c_b8442564045a3033" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChPattern = StrFillRight(i_str_ChPattern, Translate("0"), int_TotalChannels); // }} "" // {{{ 378 1 0 "483ef603_19b4_4c46_8f00ec120605deda" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextSequenceSet(i_seq_PositionsToCheck, i_str_ChPattern, seq_Temp); // }} "" // {{{ 379 1 0 "8af1f303_7d1a_459a_bd89719f9243f063" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_Temp, i_str_ChPattern); // }} "" // {{ 380 1 0 "ca418a92_b890_41b7_a91dbaf0dcd29261" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ProbabilityPassed == BOOLEON::FALSE) { // }} "" // {{ 381 1 0 "3d44a18d_3129_433e_81cc18019601d0e9" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("SEQUENCE IS NOT SORTED CORRECTLY FOR THE USE OF THIS FUNCITON!\nSEQUENCE MUST BE SUCH THAT THE CHANNEL PATTERN USED CAN BE DONE AT ONE TIME WITHOUT NEEDING TO MOVE CHANNELS OUT OF THE WAY!")); // }} "" // {{ 382 1 0 "43d9c3d9_7954_4888_b721b0c1425ada3a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 383 1 0 "048acf36_a560_4df5_b59935955c04559a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 384 1 0 "43d9c3d9_7954_4888_b721b0c1425ada3a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 385 1 0 "c93ea96d_e8e2_471d_b0f22673c193dda1" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 386 1 0 "ca418a92_b890_41b7_a91dbaf0dcd29261" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 387 1 0 "efc5564c_e456_4a58_a54a8aa8e8d6a998" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_TipsLoaded = _EnsureTipsAreLoaded(ML_STAR, i_str_ChPattern); // }} "" // {{ 388 1 0 "4496d173_1a95_4900_8f9091730b321099" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_TipsLoaded == BOOLEON::FALSE) { // }} "" // {{ 389 1 0 "8341ea2a_5236_4782_8f48e12c41698073" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("TIPS PICKED UP DO NOT MATCH THE CHANNEL PATTERN!")); // }} "" // {{ 390 1 0 "22e1a45d_1cd7_4a56_92bb708b98ab7f8c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 391 1 0 "91d41e91_a82b_4992_881466d6f41ceb41" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 392 1 0 "22e1a45d_1cd7_4a56_92bb708b98ab7f8c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 393 1 0 "b5d2936f_c903_4da6_b43f720142211ca3" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 394 1 0 "4496d173_1a95_4900_8f9091730b321099" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 395 1 0 "d19e9b9d_45f8_4e6d_ad11cf702c9b30a8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLabwareCoordinates(ML_STAR, seq_Temp, i_str_ChPattern, arr_XCoord, arr_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight); // }} "" // {{ 396 1 0 "f473788a_bd81_4ff7_9662128e7a8a96b4" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_LiquidHeightsFound.SetSize(0); // }} "" // {{{ 397 1 0 "8ea6c2f5_11f1_4e13_a76dec2026e4b747" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 6, Translate("Processing")); // }} "" // {{ 398 1 0 "a58ad773_bc06_4f50_bfdf88886b943225" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 399 1 0 "7577037f_adab_4099_a9cb28daaf07ba4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_Temp); // }} "" // {{{ 400 1 0 "4acbb120_0d60_4ced_9cf7836727d60610" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ChannelsAtCoordinates = _DetermineStartZHeight(ML_STAR, i_str_ChPattern, str_LabID, arr_XCoord, arr_YCoord, flt_ZMinimumHeight, flt_ZClearanceHeight, flt_ZStartHeight); // }} "" // {{ 401 1 0 "6487f642_cb30_42dc_abc6c0d5e1511177" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = 245.0; // }} "" // {{ 402 1 0 "a306b602_145a_4ce8_a7ce72f4acce7888" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_End_Position == 1) { // }} "" // {{ 403 1 0 "09bfbd77_9426_42f0_9642bd8928f0bb20" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_ZClearanceHeight; // }} "" // {{ 404 1 0 "a306b602_145a_4ce8_a7ce72f4acce7888" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 405 1 0 "2ede3fe7_73b3_4882_b5fcec9994d4962e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_End_Position == 2) { // }} "" // {{ 406 1 0 "58618bbb_870f_4e9d_84d1b291edf14914" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_ZMaximumHeight; // }} "" // {{ 407 1 0 "2ede3fe7_73b3_4882_b5fcec9994d4962e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 408 1 0 "900b2d47_9fc9_4252_b1c9b9237517450a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::PIPFindLiquidLevel(ML_STAR, i_str_ChPattern, arr_XCoord, arr_YCoord, flt_ZStartHeight, flt_MovementEndHeight, flt_ZClearanceHeight, flt_ZMinimumHeight, i_bln_UseCLLD, o_arr_LiquidHeightsFound); // }} "" // {{ 409 1 0 "1bbf6840_7111_4275_b87367fb46a1957d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{ 410 1 0 "e29eaded_7e49_4110_97229d81836d0eab" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Temp.SetCurrentPosition(int_ChannelIndex); // }} "" // {{{ 411 1 0 "673a388d_bd6e_483c_bf4bd61ed2ed26c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_Temp); // }} "" // {{{ 412 1 0 "d86c13d4_af21_49f0_984652f2c56a9c59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(seq_Temp); // }} "" // {{{ 413 1 0 "8d68da56_a0a0_473d_a2d2ba2d7eaa1bfd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_LabwareValid = DevIsValidLabwareForCurrentDeckLayout(ML_STAR, str_LabID); // }} "" // {{ 414 1 0 "799a0897_0756_442c_ba731e0c3ab8deb6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_LabwareValid == BOOLEON::TRUE) { // }} "" // {{{ 415 1 0 "9698eac9_8da0_44fd_a1deb7205b2506a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_NotUsed, flt_NotUsed, flt_ZCoord, flt_NotUsed); // }} "" // {{ 416 1 0 "799a0897_0756_442c_ba731e0c3ab8deb6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 417 1 0 "9a71e809_b905_40e2_aff5322348e4fa85" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_ZCoord = 0.0; // }} "" // {{ 418 1 0 "799a0897_0756_442c_ba731e0c3ab8deb6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 419 1 0 "6ccd02ca_66e4_4e54_97110ef55925b53d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_AdjustedCoordinates = o_arr_LiquidHeightsFound.ElementAt( int_ChannelIndex -1) - flt_ZCoord; // }} "" // {{ 420 1 0 "5155b8c4_6988_4cc9_b170381ffe3b7cd2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_AdjustedCoordinates < 0.0) { // }} "" // {{ 421 1 0 "0c0870fb_6c6b_4257_82fd71e99a283e59" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_AdjustedCoordinates = 0.0; // }} "" // {{ 422 1 0 "5155b8c4_6988_4cc9_b170381ffe3b7cd2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 423 1 0 "4b2faad6_3235_40c6_b0d0728b65a72b21" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_SimulationMode == BOOLEON::TRUE) { // }} "" // {{ 424 1 0 "6a060f03_e094_4c3f_b02022f7dcd32b21" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_AdjustedCoordinates = 20.0; // }} "" // {{ 425 1 0 "4b2faad6_3235_40c6_b0d0728b65a72b21" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 426 1 0 "40466f0f_806d_4131_9c0fbeeca049ed09" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_LiquidHeightsFound.SetAt(int_ChannelIndex-1, flt_AdjustedCoordinates); // }} "" // {{ 427 1 0 "1bbf6840_7111_4275_b87367fb46a1957d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 428 1 0 "50f7728c_9cd0_4e3d_9e9d27d484c6ade3" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Temp.SetCurrentPosition(1); // }} "" // {{{ 429 1 0 "f53f5630_a97b_42fe_a36553a669b47339" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 4, Translate("Processed")); // }} "" // {{{ 430 1 0 "622fde7c_6c7b_4341_92cb317a42683a63" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Liquid Level Heights"), o_arr_LiquidHeightsFound); // }} "" // {{ 431 1 0 "07f9cf38_e7aa_4709_ae600d905e4ee1dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 432 1 0 "f12669ab_2a27_4a3e_8b8c9f590fc207e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 433 1 0 "07f9cf38_e7aa_4709_ae600d905e4ee1dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "PIP_FindLiquidLevel" "End" } // }} "" // {{{ 5 "_ProbabilityCheck" "Begin" private function _ProbabilityCheck( device & ML_STAR, sequence i_seq_PositionsToCheck, variable i_str_ChannelPatternToCheck ) variable { // }} "" private variable int_TotalChannels; private variable int_TotalPositionsInSeq; private variable int_ChannelIndex; private variable int_ChannelValue; private variable str_LabID; private variable str_PosID; private variable flt_NotUsed; private variable flt_ZCoord; private variable flt_YCoord; private variable flt_XCoord; private variable bln_ProbabilityPass; private variable bln_FirstPositionFound; private variable flt_CurrentX; private variable flt_CurrentY; private variable flt_ChannelRaster; private variable int_Position; // {{ 5 "_ProbabilityCheck" "InitLocals" // }} "" // {{{ 2598 1 0 "caf324e7_7452_4e1f_8f6ccdc15584d3b5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::GetChannelRaster1mL(ML_STAR, flt_ChannelRaster); // }} "" // {{{ 2599 1 0 "f3e7de5e_c742_4168_826185f16355a516" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalChannels = StrGetLength(i_str_ChannelPatternToCheck); // }} "" // {{{ 2600 1 0 "75b9cf98_d7b4_421d_8de16e1bd7a2e508" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositionsInSeq = SeqGetTotal(i_seq_PositionsToCheck); // }} "" // {{ 2601 1 0 "20abd9d9_e4b3_49f3_8b43bf7b965dc1fa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_FirstPositionFound = BOOLEON::FALSE; // }} "" // {{ 2602 1 0 "431e5e65_bd6d_4765_80f833365db36c90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ProbabilityPass = BOOLEON::TRUE; // }} "" // {{ 2603 1 0 "fe5c2b6a_a2a2_4817_933e0875831d792f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentX = 0.0; // }} "" // {{ 2604 1 0 "dd27b53f_fe18_460d_bb314a583b2b9a2e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentY = 0.0; // }} "" // {{ 2605 1 0 "73e46771_76a2_4bd4_81c5039e29631666" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Position = 1; // }} "" // {{ 2606 1 0 "3c63e098_58fb_4737_b4e755d47bc95063" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{ 2607 1 0 "8f9f79de_d112_4265_a42b39a6d5e97897" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelIndex > int_TotalPositionsInSeq) { // }} "" // {{ 2608 1 0 "c4403ba9_1933_4ec9_98bae64c79d86eac" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2609 1 0 "8f9f79de_d112_4265_a42b39a6d5e97897" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2610 1 0 "6b6db874_8977_4271_bee471d6bffe6143" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_PositionsToCheck.SetCurrentPosition(int_ChannelIndex); // }} "" // {{{ 2611 1 0 "c8077b4e_8210_4575_93396f32f61519a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_PositionsToCheck); // }} "" // {{{ 2612 1 0 "844b74d6_3f80_43ed_b34a1c96614c2929" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_PositionsToCheck); // }} "" // {{{ 2613 1 0 "a27088e1_720f_4de6_b7346d1c20d57fe7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(i_str_ChannelPatternToCheck, int_ChannelIndex, int_ChannelValue); // }} "" // {{ 2614 1 0 "48434cc0_37f6_42ca_a5696e1e1deba6f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelValue == 1) { // }} "" // {{{ 2615 1 0 "90205c1b_eadc_4743_bfc9705f38033856" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_XCoord, flt_YCoord, flt_ZCoord, flt_NotUsed); // }} "" // {{ 2616 1 0 "510457a6_8dd0_4095_a46d5ed71c7f68b3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_YCoord > G_ARR_FW_PIP_COM_YMax.ElementAt( int_ChannelIndex -1)) { // }} "" // {{ 2617 1 0 "fefb299e_e0f4_44ba_8eb837291c53d008" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ProbabilityPass = BOOLEON::FALSE; // }} "" // {{{ 2618 1 0 "cacd0cf1_b803_4cc2_af9ea3d529897bcc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE12(str_LabID, Translate(" - "), str_PosID, Translate(" - "), Translate("Channel Number : "), int_ChannelIndex, Translate(" : "), Translate("Out of range for function! Y coordinate ["), flt_YCoord, Translate("] is outside the maximum of "), G_ARR_FW_PIP_COM_YMax.ElementAt( int_ChannelIndex -1), Translate("")); // }} "" // {{ 2619 1 0 "510457a6_8dd0_4095_a46d5ed71c7f68b3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2620 1 0 "6a038c97_fc02_46f7_8e9d87d35e1a4fb6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_YCoord < G_ARR_FW_PIP_COM_YMin.ElementAt( int_ChannelIndex -1)) { // }} "" // {{ 2621 1 0 "52afadd5_2e48_4b6a_b6c5a46d39bcc002" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ProbabilityPass = BOOLEON::FALSE; // }} "" // {{{ 2622 1 0 "221552c4_13b0_47ab_a67b37b780ee1bdc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE12(str_LabID, Translate(" - "), str_PosID, Translate(" - "), Translate("Channel Number : "), int_ChannelIndex, Translate(" : "), Translate("Out of range for function! Y coordinate ["), flt_YCoord, Translate("] is outside the minimum of "), G_ARR_FW_PIP_COM_YMin.ElementAt( int_ChannelIndex -1), Translate("")); // }} "" // {{ 2623 1 0 "6a038c97_fc02_46f7_8e9d87d35e1a4fb6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2624 1 0 "9f9ca49e_159f_4715_9a1147838f18d768" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_FirstPositionFound == BOOLEON::FALSE) { // }} "" // {{ 2625 1 0 "7a270091_fb97_431f_8ef84fd6210048d5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentX = flt_XCoord; // }} "" // {{ 2626 1 0 "96c12526_754c_4268_b611f75f0bbd0790" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentY = flt_YCoord; // }} "" // {{ 2627 1 0 "03dd8c81_9e5b_4afd_a9446f8ce1d04a67" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_FirstPositionFound = BOOLEON::TRUE; // }} "" // {{ 2628 1 0 "9f9ca49e_159f_4715_9a1147838f18d768" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2629 1 0 "d69231ce_af8c_47e7_b210a263f9d97b05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_XCoord != flt_CurrentX) { // }} "" // {{ 2630 1 0 "39e92b23_3435_42c7_a3ae6586c3eac072" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ProbabilityPass = BOOLEON::FALSE; // }} "" // {{{ 2631 1 0 "d04849b2_351f_4a01_88812141d8cceea4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE12(str_LabID, Translate(" - "), str_PosID, Translate(" - "), Translate("Channel Number : "), int_ChannelIndex, Translate(" : "), Translate(""), Translate(""), Translate(""), Translate(""), Translate("Out of range for function! Positions MUST share the same X coord and have enough room for the raster of the channels.")); // }} "" // {{ 2632 1 0 "d69231ce_af8c_47e7_b210a263f9d97b05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2633 1 0 "bcb4edc6_3ca2_494a_ae3b8ef007108954" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentY = flt_CurrentY - flt_ChannelRaster; // }} "" // {{ 2634 1 0 "411fd131_623f_4892_a2020daad2590327" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_YCoord > flt_CurrentY) { // }} "" // {{ 2635 1 0 "4f313860_67fd_48b4_991f83d06300f2d0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ProbabilityPass = BOOLEON::FALSE; // }} "" // {{{ 2636 1 0 "1c2c9ebe_5c4e_41d0_8d517856799875f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE12(str_LabID, Translate(" - "), str_PosID, Translate(" - "), Translate("Channel Number : "), int_ChannelIndex, Translate(" : "), Translate(""), Translate(""), Translate(""), Translate(""), Translate("Out of range for function! Positions MUST share the same X coord and have enough room for the raster of the channels.")); // }} "" // {{ 2637 1 0 "411fd131_623f_4892_a2020daad2590327" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2638 1 0 "abd7daff_c523_420f_a3feb365c3f5195c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentY = flt_YCoord; // }} "" // {{ 2639 1 0 "411fd131_623f_4892_a2020daad2590327" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2640 1 0 "9f9ca49e_159f_4715_9a1147838f18d768" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2641 1 0 "5b4204b6_0eaa_4d8a_ba183abba42527ff" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Position = int_Position + 1; // }} "" // {{ 2642 1 0 "48434cc0_37f6_42ca_a5696e1e1deba6f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2643 1 0 "f94f4663_1e79_43f8_858d8800e3ccf494" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentY = flt_CurrentY - flt_ChannelRaster; // }} "" // {{ 2644 1 0 "48434cc0_37f6_42ca_a5696e1e1deba6f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2645 1 0 "3c63e098_58fb_4737_b4e755d47bc95063" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2646 1 0 "659f0870_3604_4925_994d212f27c935ce" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (bln_ProbabilityPass); // }} "" // {{{ 5 "_ProbabilityCheck" "End" } // }} "" // {{{ 5 "_GetChannelPatternValue" "Begin" private function _GetChannelPatternValue( variable i_str_ChannelPattern, variable i_int_ChannelNumber, variable & o_int_Value ) void { // }} "" private variable str_Value; // {{ 5 "_GetChannelPatternValue" "InitLocals" o_int_Value = 0; // }} "" // {{{ 1940 1 0 "e3bc5a75_7d39_4415_8c4748cacd774f23" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrLeft(i_str_ChannelPattern, i_int_ChannelNumber); // }} "" // {{{ 1941 1 0 "68c17ea4_84cf_4cbd_8f0a2a2791be06de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrRight(str_Value, 1); // }} "" // {{{ 1942 1 0 "9e69d224_31dd_4e5b_bb7e4950a03aa06e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_int_Value = StrIVal(str_Value); // }} "" // {{{ 5 "_GetChannelPatternValue" "End" } // }} "" // {{{ 5 "_GetNextSequenceSet" "Begin" private function _GetNextSequenceSet( sequence i_seq_Source, variable i_str_ChannelPattern, sequence & o_seq_TempSequence ) void { // }} "" private variable i; private variable str_LabID; private variable str_PosID; private variable int_Length; private variable int_TotalPositions; private variable int_Value; // {{ 5 "_GetNextSequenceSet" "InitLocals" { sequence __temp; o_seq_TempSequence = __temp; } // }} "" // {{{ 2350 1 0 "f5f7bc86_e91f_4957_bcfa6cc702697e59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_TempSequence); // }} "" // {{{ 2351 1 0 "eb875c27_a5d4_4a92_ab6c555400fc825f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = StrGetLength(i_str_ChannelPattern); // }} "" // {{ 2352 1 0 "164219c0_d628_4e5d_ba00c6f79139e7ac" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalPositions;) { i = i + 1; // }} "" // {{{ 2353 1 0 "7d85a41d_002f_418c_b6526a5d02229a27" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_Source); // }} "" // {{{ 2354 1 0 "43e704f3_e30d_4edc_9eff3fac4eaa96b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_Source); // }} "" // {{{ 2355 1 0 "2a0bbbd1_769f_4226_b7362ce089193723" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(str_LabID); // }} "" // {{ 2356 1 0 "8923552e_fa31_429d_8e93414c90266b2d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Length == 0) { // }} "" // {{ 2357 1 0 "624b6621_fa84_46c6_86bac6eee190e2cf" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2358 1 0 "8923552e_fa31_429d_8e93414c90266b2d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2359 1 0 "463c0e50_c9ef_420b_9db300f60958c9f1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(i_str_ChannelPattern, i, int_Value); // }} "" // {{ 2360 1 0 "83934884_716b_4e0a_a70b6dbf4179e004" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{{ 2361 1 0 "80e6c5bd_f3ac_41dc_917043bbb651a970" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq_TempSequence, str_LabID, str_PosID); // }} "" // {{ 2362 1 0 "83934884_716b_4e0a_a70b6dbf4179e004" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 2363 1 0 "92bf6225_d2fa_46f6_b9649c6827f68ebe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq_TempSequence, str_LabID, Translate("")); // }} "" // {{ 2364 1 0 "83934884_716b_4e0a_a70b6dbf4179e004" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2365 1 0 "6eeb0a12_a84d_4a3b_bd4a59bfc410df8e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(i_seq_Source, 1); // }} "" // {{ 2366 1 0 "164219c0_d628_4e5d_ba00c6f79139e7ac" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2367 1 0 "ff788d8e_f81f_45da_9fec38648d8cdfa1" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq_TempSequence.SetCurrentPosition(1); // }} "" // {{{ 5 "_GetNextSequenceSet" "End" } // }} "" // {{{ 5 "_GetLabwareCoordinates" "Begin" private function _GetLabwareCoordinates( device & ML_STAR, sequence i_seq_Positions, variable i_str_ChPattern, variable & o_arr_XCoord[], variable & o_arr_YCoord[], variable & o_flt_ZBottom, variable & o_flt_ZMinimumHeight, variable & o_flt_ZMaximumHeight, variable & o_flt_ZClearanceHeight ) void { // }} "" private variable int_TotalChannels; private variable int_ChannelIndex; private variable str_LabID; private variable int_TotalPositions; private variable str_PosID; private variable flt_NotUsed; private variable flt_ZCoord; private variable flt_YCoord; private variable flt_XCoord; private variable str_ContainerConfig; private variable bln_ValueExists; private variable str_Value; private variable flt_MinimumPipHeight; private variable int_Value; private variable flt_ContainerClearance; private variable flt_ContainerDepth; // {{ 5 "_GetLabwareCoordinates" "InitLocals" o_arr_XCoord.SetSize( 0); o_arr_YCoord.SetSize( 0); o_flt_ZBottom = 0; o_flt_ZMinimumHeight = 0; o_flt_ZMaximumHeight = 0; o_flt_ZClearanceHeight = 0; // }} "" // {{{ 2140 1 0 "86430f4f_36ee_47bf_a87cba43186d51c7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::GetChannelNumber1mL(ML_STAR, int_TotalChannels); // }} "" // {{ 2141 1 0 "4a9c0df2_f1c2_4450_85d478b96f428e69" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_XCoord.SetSize(0); // }} "" // {{ 2142 1 0 "20579137_8997_4b0b_a5a877a4184fb05b" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_YCoord.SetSize(0); // }} "" // {{ 2143 1 0 "2539a83c_ab73_45ee_bd58278d54c866ac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_ZClearanceHeight = 0.0; // }} "" // {{ 2144 1 0 "107aac4d_db9e_4588_a9d257846fd49b56" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_ZMaximumHeight = 0.0; // }} "" // {{ 2145 1 0 "ef4115eb_6a74_4f19_928886e4dd23b0c9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_ZMinimumHeight = 0.0; // }} "" // {{ 2146 1 0 "e150286a_b695_498b_bac6bb565f6496ea" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{ 2147 1 0 "067ba1e6_8cb7_47ab_accea69c351241e2" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_XCoord.AddAsLast(0.0); // }} "" // {{ 2148 1 0 "a661142f_1d3f_42ea_96b9208fffaa3033" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_YCoord.AddAsLast(0.0); // }} "" // {{ 2149 1 0 "e150286a_b695_498b_bac6bb565f6496ea" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2150 1 0 "3a5cde33_1722_4159_b39156efa5053ffc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(i_seq_Positions); // }} "" // {{ 2151 1 0 "9ab671b3_b41e_46e1_a1966b1f7635f3ca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalPositions == 0) { // }} "" // {{{ 2152 1 0 "ea9e9a84_43cd_483b_8c2ed68431c3e993" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 2153 1 0 "9ab671b3_b41e_46e1_a1966b1f7635f3ca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2154 1 0 "1ce8af5b_b734_4608_9349eb1db89010f5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{{ 2155 1 0 "bd008cad_17c6_418a_a4f50dac7fd397eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(i_str_ChPattern, int_ChannelIndex, int_Value); // }} "" // {{ 2156 1 0 "a9839cdd_c032_4d99_9e4c8e2d4e693e62" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{ 2157 1 0 "f4834be5_c095_4de2_b15653c5fcc1f53f" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_Positions.SetCurrentPosition(int_ChannelIndex); // }} "" // {{{ 2158 1 0 "2d4a9242_492a_49f4_932221946f9be9b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_Positions); // }} "" // {{{ 2159 1 0 "30057330_8454_43e9_a555dd2425108c8e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_Positions); // }} "" // {{ 2160 1 0 "70472c85_2427_4581_aff2a6c3dc49e03a" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2161 1 0 "a9839cdd_c032_4d99_9e4c8e2d4e693e62" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2162 1 0 "1ce8af5b_b734_4608_9349eb1db89010f5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2163 1 0 "20a38eb6_4a55_4153_b4aacf27895c12ab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_NotUsed, flt_NotUsed, flt_ZCoord, flt_NotUsed); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 2164 1 0 "e5b070a4_0636_42e2_af275b3b462a5130" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetRackHeight(ML_STAR, str_LabID, o_flt_ZMaximumHeight, o_flt_ZClearanceHeight); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 2165 1 0 "64d5b956_d14d_4290_9579de94195b93d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetContainerDepth(ML_STAR, str_LabID, str_PosID, flt_ContainerDepth, flt_ContainerClearance); // }} "" // {{ 2166 1 0 "3b47e17f_58ef_471d_a85ba90e6d4e67c0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_ZMaximumHeight = flt_ContainerDepth + flt_ZCoord; // }} "" // {{ 2167 1 0 "7bfab045_05ea_4fc4_82c3aa3d6a7f03da" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_ZClearanceHeight = flt_ContainerClearance + flt_ZCoord; // }} "" // {{{ 2168 1 0 "8dd1a030_400d_44ac_95aabb0b956e7a6a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_LabID, str_PosID, str_ContainerConfig); // }} "" // {{{ 2169 1 0 "8a88b0b3_5daa_4cb4_bd6a279c7cdd1243" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ValueExists = HELPERLIBRARY::GetDefinitionFileValue(str_ContainerConfig, Translate("MaxDepth"), str_Value); // }} "" // {{ 2170 1 0 "438aa1ad_fa7d_4a13_964f18c9fabbbcb0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MinimumPipHeight = 0.0; // }} "" // {{ 2171 1 0 "421acc9d_9f78_4b85_a805cecc555bc1a2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueExists == BOOLEON::TRUE) { // }} "" // {{{ 2172 1 0 "ae211c13_0c7a_4d6b_867450e0377105f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_MinimumPipHeight = StrFVal(str_Value); // }} "" // {{ 2173 1 0 "421acc9d_9f78_4b85_a805cecc555bc1a2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2174 1 0 "da3ac80c_4b20_46e3_9e1c98c714a6950b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_ZMinimumHeight = flt_ZCoord + flt_MinimumPipHeight; // }} "" // {{ 2175 1 0 "c0518d5f_8acf_4a73_beb0c9577d720129" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_ZBottom = flt_ZCoord; // }} "" // {{ 2176 1 0 "6e79b8e1_927b_4cfb_a391585766dc1288" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{ 2177 1 0 "ceb6877f_fbe7_460f_b5d9baf86122de23" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_XCoord = 0.0; // }} "" // {{ 2178 1 0 "5df64a14_93a2_4061_a87308bf31a4a8e0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_YCoord = 0.0; // }} "" // {{ 2179 1 0 "7ad83427_4694_4ddc_94f00ef994f15fd4" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_Positions.SetCurrentPosition(int_ChannelIndex); // }} "" // {{ 2180 1 0 "71b4ef52_cb27_4bba_a9037b46f67f154e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelIndex > int_TotalPositions) { // }} "" // {{ 2181 1 0 "98fc0e09_f286_492f_8736861837435dee" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2182 1 0 "71b4ef52_cb27_4bba_a9037b46f67f154e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2183 1 0 "c95a9a73_da17_4622_b91f1ec80cc2b64d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(i_str_ChPattern, int_ChannelIndex, int_Value); // }} "" // {{ 2184 1 0 "85b438d6_7613_4709_a25ca87a637ff3c5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{{ 2185 1 0 "c6f03390_f951_4b11_a8c464dd84e6a0c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_Positions); // }} "" // {{{ 2186 1 0 "d250755b_a399_40df_bbc085b5d6f8437d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_XCoord, flt_YCoord, flt_NotUsed, flt_NotUsed); // }} "" // {{{ 2187 1 0 "8306cea9_e125_4757_87768869f23e972c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_XCoord = MthRound(flt_XCoord, 1); // }} "" // {{{ 2188 1 0 "81f022a3_eba0_47b3_8dc92490bf04b23c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_YCoord = MthRound(flt_YCoord, 1); // }} "" // {{ 2189 1 0 "85b438d6_7613_4709_a25ca87a637ff3c5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2190 1 0 "ac7b74b5_077d_4045_a5cc145454d96b4f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_XCoord.SetAt(int_ChannelIndex-1, flt_XCoord); // }} "" // {{ 2191 1 0 "4840fb14_48ca_43a3_ae90b6a28ac9ea1b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_YCoord.SetAt(int_ChannelIndex-1, flt_YCoord); // }} "" // {{ 2192 1 0 "6e79b8e1_927b_4cfb_a391585766dc1288" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2193 1 0 "a735c0cd_778b_475f_a3df24d31e0a2b4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Clearance Height: "), o_flt_ZClearanceHeight); // }} "" // {{{ 2194 1 0 "e87ab05e_78a2_4cae_88126db7f4de4743" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Top Of Plate Height: "), o_flt_ZMaximumHeight); // }} "" // {{{ 2195 1 0 "1ffec940_b92c_4511_bf3c4323b32690e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Minimum Height: "), o_flt_ZMinimumHeight); // }} "" // {{{ 2196 1 0 "f9abd9f1_431a_4ed0_b84f29e9d4cd0223" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Z Bottom: "), o_flt_ZBottom); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 2197 1 0 "c215a1bd_840f_42e7_a44c5af5ccf77a09" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_2(Translate("X Coordinates Y Coordinates"), o_arr_XCoord, o_arr_YCoord); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 5 "_GetLabwareCoordinates" "End" } // }} "" // {{{ 5 "_EnsureTipsAreLoaded" "Begin" private function _EnsureTipsAreLoaded( device & ML_STAR, variable i_str_ChannelPattern ) variable { // }} "" private variable bln_TipsMatch; private variable int_TotalToCheck; private variable int_ChannelIndex; private variable int_ChanValueNeeded; private variable str_TipsLoadedPattern; private variable bln_SimulationMode; private variable int_ChanValueLoaded; // {{ 5 "_EnsureTipsAreLoaded" "InitLocals" // }} "" // {{{ 1919 1 0 "0a14b71a_7c0a_48e2_8829c7760a745120" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_SimulationMode = Util::GetSimulationMode(); // }} "" // {{ 1920 1 0 "d9dcb2f0_91e2_400c_98b659e0ed033164" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_TipsMatch = BOOLEON::TRUE; // }} "" // {{{ 1921 1 0 "5d584506_c604_494d_8c062f17db1a2c5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalToCheck = StrGetLength(i_str_ChannelPattern); // }} "" // {{{ 1922 1 0 "c102eb7f_9ee9_4436_86061f20ee342291" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::GetChannelPatternWithTips(ML_STAR, BOOLEON::TRUE, str_TipsLoadedPattern); // }} "" // {{ 1923 1 0 "53d5a8d3_3aff_44eb_83a4fab6f7fa0211" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_SimulationMode == BOOLEON::TRUE) { // }} "" // {{ 1924 1 0 "25ab2d2f_e83e_4bea_b0f4c237e3a5ef5d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TipsLoadedPattern = i_str_ChannelPattern; // }} "" // {{ 1925 1 0 "53d5a8d3_3aff_44eb_83a4fab6f7fa0211" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1926 1 0 "11932b8e_d428_440c_8f33bb759d905247" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalToCheck;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{{ 1927 1 0 "35ac512f_8dae_4be5_9b9726be0050d2f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(i_str_ChannelPattern, int_ChannelIndex, int_ChanValueNeeded); // }} "" // {{ 1928 1 0 "9bc1410a_2cca_4e45_b0a06c9668e9863e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChanValueNeeded == 1) { // }} "" // {{{ 1929 1 0 "bea82a9d_4566_4385_aa990f04e64ba375" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(str_TipsLoadedPattern, int_ChannelIndex, int_ChanValueLoaded); // }} "" // {{ 1930 1 0 "2baa889d_630b_4888_9645ff08739ef96d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChanValueLoaded == 0) { // }} "" // {{ 1931 1 0 "1e066d07_ce4f_407e_893604fda57a7920" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_TipsMatch = BOOLEON::FALSE; // }} "" // {{ 1932 1 0 "2baa889d_630b_4888_9645ff08739ef96d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1933 1 0 "9bc1410a_2cca_4e45_b0a06c9668e9863e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1934 1 0 "11932b8e_d428_440c_8f33bb759d905247" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1935 1 0 "4c6ceaba_008b_4705_b5d6c8757b7b3082" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Channel Pattern: "), i_str_ChannelPattern); // }} "" // {{{ 1936 1 0 "e75359b9_17cd_4765_a1153e38497cf470" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Tips Loaded: "), str_TipsLoadedPattern); // }} "" // {{{ 1937 1 0 "f7be2880_18b4_4dd1_9ffcf2e46e613c72" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Necessary Tips On Channels: "), bln_TipsMatch); // }} "" // {{{ 1938 1 0 "aef61dfa_18c6_4c00_b2bc55354d8c6079" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (bln_TipsMatch); // }} "" // {{{ 5 "_EnsureTipsAreLoaded" "End" } // }} "" // {{{ 5 "TOOL_BuildArrayForChannels" "Begin" function TOOL_BuildArrayForChannels( device & ML_STAR, variable i_flt_ValueToSet, variable & o_arr_Values[] ) void { // }} "" private variable i; // {{ 5 "TOOL_BuildArrayForChannels" "InitLocals" o_arr_Values.SetSize( 0); // }} "" // {{{ 1623 1 0 "32bfcd82_62ca_47c8_8355a19a55aa47b9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 1624 1 0 "debf5b32_b074_4ca0_aba52f412d41b898" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_Values.SetSize(0); // }} "" // {{ 1625 1 0 "6d692328_cc96_475c_a0307e8e35d1c7c8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < G_FW_PIP_COM_TotalChannels;) { i = i + 1; // }} "" // {{ 1626 1 0 "8962fa3d_1fb4_4789_87443af347c60718" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_Values.AddAsLast(i_flt_ValueToSet); // }} "" // {{ 1627 1 0 "6d692328_cc96_475c_a0307e8e35d1c7c8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "TOOL_BuildArrayForChannels" "End" } // }} "" // {{{ 5 "PIP_AspirateFromFixedHeight" "Begin" function PIP_AspirateFromFixedHeight( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_AspirationPositions, variable & i_arr_FixedHeights[], variable i_int_End_Position, variable i_bln_UseLiquidFollowing, variable i_str_LiquidClass, variable i_flt_AspirationVolume, variable i_flt_PullOutDistance ) void { // }} "" private variable _strFunctionName; private variable bln_SimulationMode; private variable bln_TipsLoaded; private variable bln_ProbabilityPassed; private variable flt_ZMaximumHeight; private variable flt_ZClearanceHeight; private variable int_TotalChannels; private variable flt_ZMinimumHeight; private sequence seq_Temp; private variable arr_YCoord[]; private variable arr_XCoord[]; private variable flt_ZStartHeight; private variable arr_LiquidFollowingDistance[]; private variable arr_AspirationHeights[]; private variable flt_NotUsed; private variable flt_AspirationVolume; private variable flt_MovementStartHeight; private variable flt_MovementEndHeight; private variable bln_ChannelsAtCoordinates; private variable flt_ZBottom; private variable flt_ContainerDepth; private variable flt_DispenseHeight; private variable str_LabID; // {{ 5 "PIP_AspirateFromFixedHeight" "InitLocals" // }} "" // {{ 171 1 0 "33014310_06fd_401f_9b45b43e6afb26d0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 172 1 0 "3bd91dde_b6a5_427a_9337e00ea2f78214" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 174 1 0 "ac3db5d2_3ebe_4f58_87edbd11433d26f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 175 1 0 "33014310_06fd_401f_9b45b43e6afb26d0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 176 1 0 "d1f841d3_021d_4e31_b2a7ca36aa49017e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 177 1 0 "bdd0db0f_069d_4abf_8d8dbc7f714b7c3f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _InitLiquidClassStorage(); // }} "" // {{{ 178 1 0 "7520a536_39e9_4498_8c5f05ae9e436f4f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 179 1 0 "6e5b2366_a4ed_4f54_b4836a0ddac50005" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_SimulationMode = G_FW_PIP_COM_SimulationMode; // }} "" // {{ 180 1 0 "dad5e84a_9fc8_4b49_94ee832d25274671" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TotalChannels = G_FW_PIP_COM_TotalChannels; // }} "" // {{ 181 1 0 "c5452b49_7b50_4f8e_8f937ba3e7bf9356" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 182 1 0 "0f404ffd_8421_40a0_b2cc67b55297afe4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChPattern = StrConcat2(i_str_ChPattern, Translate("")); // }} "" // {{{ 183 1 0 "a81cc233_8f7f_4198_a5609e79e1a0eedf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChPattern = StrFillRight(i_str_ChPattern, Translate("0"), int_TotalChannels); // }} "" // {{ 184 1 0 "ce7e9e28_c879_428f_b7766d603c11e44b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 185 1 0 "e0e385a0_02d5_48dc_b9ea27575a43460b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextSequenceSet(i_seq_AspirationPositions, i_str_ChPattern, seq_Temp); // }} "" // {{ 186 1 0 "ffb739bb_51a0_4303_b245fd500370e118" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 187 1 0 "aa659cd4_480e_4eb8_9be1b81047651991" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_Temp, i_str_ChPattern); // }} "" // {{ 188 1 0 "3579e91d_54ad_40f9_83cada3d123f90a7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ProbabilityPassed == BOOLEON::FALSE) { // }} "" // {{ 189 1 0 "e7f0ba70_01e5_47bd_b45bfd04f56d0045" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("SEQUENCE IS NOT SORTED CORRECTLY FOR THE USE OF THIS FUNCITON!\nSEQUENCE MUST BE SUCH THAT THE CHANNEL PATTERN USED CAN BE DONE AT ONE TIME WITHOUT NEEDING TO MOVE CHANNELS OUT OF THE WAY!")); // }} "" // {{ 190 1 0 "56be25ee_0101_461b_9c0319f7f7423ccb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 191 1 0 "f013c31b_8bd1_40b2_82e6570bfd7ce519" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 192 1 0 "56be25ee_0101_461b_9c0319f7f7423ccb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 193 1 0 "dfdec4c0_75cf_4306_828cc50c858b63ae" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 194 1 0 "3579e91d_54ad_40f9_83cada3d123f90a7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 195 1 0 "046cf5cc_44b3_4f92_9ae1b33f59e3f937" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 196 1 0 "18b55239_60dc_4743_8c7c4cc4aadd8b12" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_TipsLoaded = _EnsureTipsAreLoaded(ML_STAR, i_str_ChPattern); // }} "" // {{ 197 1 0 "a1115008_8f38_4096_99bc087717625aea" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_TipsLoaded == BOOLEON::FALSE) { // }} "" // {{ 198 1 0 "74ec2245_15ee_427b_883a8b4879cbcc7b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("TIPS PICKED UP DO NOT MATCH THE CHANNEL PATTERN!")); // }} "" // {{ 199 1 0 "9eb854b1_4426_48d4_9f0135458647b1e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 200 1 0 "9b7cfacf_34e9_4942_8a80f3e48d7c9057" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 201 1 0 "9eb854b1_4426_48d4_9f0135458647b1e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 202 1 0 "8add20f5_fa5e_49b5_8b161205314ceac5" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 203 1 0 "a1115008_8f38_4096_99bc087717625aea" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 204 1 0 "c3bad33e_937c_401c_bd4013d606d00f4e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 205 1 0 "35b22d06_79c6_4558_b2269a2ba5830c68" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLabwareCoordinates(ML_STAR, seq_Temp, i_str_ChPattern, arr_XCoord, arr_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight); // }} "" // {{ 206 1 0 "0edbbfbd_fb8f_4be3_b3d7099aadb1e906" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ContainerDepth = flt_ZMaximumHeight - flt_ZMinimumHeight; // }} "" // {{ 207 1 0 "f5a693cf_9feb_4b7c_97e20f80e7218768" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 208 1 0 "d72a11ce_42ff_492d_90daaea777e7c5c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_Temp); // }} "" // {{{ 209 1 0 "6f5559fb_e589_407e_8da20f63657a7d72" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ChannelsAtCoordinates = _DetermineStartZHeight(ML_STAR, i_str_ChPattern, str_LabID, arr_XCoord, arr_YCoord, flt_ZMinimumHeight, flt_ZClearanceHeight, flt_ZStartHeight); // }} "" // {{ 210 1 0 "164318e0_e1e9_4754_9e999a0c8694ad05" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 211 1 0 "3f50954c_c081_4446_9534e2de918810de" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ApplyOffsetToArrayofValues(i_arr_FixedHeights, flt_ZBottom, arr_AspirationHeights); // }} "" // {{ 212 1 0 "5ee74dfc_c671_4a42_aa1ea37529250097" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 213 1 0 "4e345eb7_b22a_477d_a731c5a1a8060c31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidClassParams(i_str_LiquidClass, BOOLEON::TRUE, T_PIP_TOOLS_ASP_FLOW_RATE, T_PIP_TOOLS_ASP_MIX_FLOW_RATE, T_PIP_TOOLS_ASP_AIR_TRANSPORT, T_PIP_TOOLS_ASP_BLOWOUT, T_PIP_TOOLS_ASP_SWAP, T_PIP_TOOLS_ASP_SETTLING, T_PIP_TOOLS_ASP_OVERASPIRATE, T_PIP_TOOLS_ASP_CLOT_RETRACT, flt_NotUsed, flt_NotUsed, T_PIP_TOOLS_MAX_VOLUME, T_PIP_TOOLS_DISPENSE_MODE, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y); // }} "" // {{{ 214 1 0 "d20026c1_3b35_4e78_84acc9a9c379e89d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidClassParams(i_str_LiquidClass, BOOLEON::FALSE, T_PIP_TOOLS_DISP_FLOW_RATE, T_PIP_TOOLS_DISP_MIX_FLOW_RATE, T_PIP_TOOLS_DISP_AIR_TRANSPORT, T_PIP_TOOLS_DISP_BLOWOUT, T_PIP_TOOLS_DISP_SWAP, T_PIP_TOOLS_DISP_SETTLING, flt_NotUsed, flt_NotUsed, T_PIP_TOOLS_DISP_STOP_FLOW, T_PIP_TOOLS_DISP_STOP_BACK, T_PIP_TOOLS_MAX_VOLUME, T_PIP_TOOLS_DISPENSE_MODE, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y); // }} "" // {{ 215 1 0 "21b8b393_9d3c_44b7_8d0f6915ff320e43" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 216 1 0 "3c67050f_1537_4c5c_9a7786086ec9e4c9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetCorrectedValueForVolume(i_flt_AspirationVolume, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y, flt_AspirationVolume); // }} "" // {{{ 217 1 0 "6b7e117a_730a_415c_8e087714e91fa8f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate("Aspiration Volume: "), i_flt_AspirationVolume, Translate(" Corrected Volume for Liquid Class: "), flt_AspirationVolume); // }} "" // {{ 218 1 0 "20f60280_c411_44b3_b3a772c51cb6f6b3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 219 1 0 "857eb19b_0b7a_473a_972988ca1340ff98" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidFollowingForAllChannels(ML_STAR, i_arr_FixedHeights, seq_Temp, i_bln_UseLiquidFollowing, BOOLEON::TRUE, flt_AspirationVolume, i_str_ChPattern, arr_LiquidFollowingDistance); // }} "" // {{{ 220 1 0 "ec5df3c9_777b_4974_aa84e230ab9f6e97" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 0, Translate("Processing")); // }} "" // {{ 221 1 0 "9e5361b4_2c4f_4b1f_9c7bfe5f8dae63ea" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementStartHeight = flt_ZStartHeight; // }} "" // {{ 222 1 0 "d348e866_dc49_49bd_b390a08821212df2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = 245.0; // }} "" // {{ 223 1 0 "76d61a02_73ae_4c56_aa49485013599d30" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_End_Position == 1) { // }} "" // {{ 224 1 0 "7c8c12f2_611f_4220_b5501da49ad0eab7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_ZClearanceHeight; // }} "" // {{ 225 1 0 "76d61a02_73ae_4c56_aa49485013599d30" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 226 1 0 "8f530f0e_5dd8_49dd_98745a961a30cc4c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_End_Position == 2) { // }} "" // {{ 227 1 0 "d36bcbde_9759_4232_8fc08462d65cb394" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_ZMaximumHeight; // }} "" // {{ 228 1 0 "8f530f0e_5dd8_49dd_98745a961a30cc4c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 229 1 0 "5a7653a8_4361_489b_881a4c372bb59469" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_End_Position == 3) { // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 230 1 0 "fa431fb6_7515_4d0c_88d907364ff3c684" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_ZMinimumHeight; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 231 1 0 "f939ec8f_f22a_4bb4_b429c3574d9a7f0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_DispenseHeight = HSLStatisitics::Stat_Max(i_arr_FixedHeights); // }} "" // {{ 232 1 0 "db059d9d_652c_4c5b_8130b98c178a4ab7" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_DispenseHeight + flt_ZBottom; // }} "" // {{ 233 1 0 "e4d5c98a_2ecc_49b1_bdbd8324cd431427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_MovementEndHeight < flt_ZMinimumHeight) { // }} "" // {{ 234 1 0 "cb0362a7_5609_4207_9561ee4896813569" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_ZMinimumHeight; // }} "" // {{ 235 1 0 "e4d5c98a_2ecc_49b1_bdbd8324cd431427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 236 1 0 "5a7653a8_4361_489b_881a4c372bb59469" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 237 1 0 "bc3135fd_77bf_4415_b47c0405c580a8d7" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 238 1 0 "7fc1fa08_b056_42d4_a50f6cf91faaa721" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::PIPAspirateFromFixedHeight(ML_STAR, i_str_ChPattern, arr_XCoord, arr_YCoord, arr_AspirationHeights, arr_LiquidFollowingDistance, flt_MovementStartHeight, flt_MovementEndHeight, flt_ZMinimumHeight, flt_ZBottom, flt_ContainerDepth, flt_AspirationVolume, T_PIP_TOOLS_ASP_FLOW_RATE, T_PIP_TOOLS_ASP_AIR_TRANSPORT, T_PIP_TOOLS_DISP_BLOWOUT, T_PIP_TOOLS_ASP_SETTLING, T_PIP_TOOLS_ASP_SWAP, i_flt_PullOutDistance); // }} "" // {{{ 239 1 0 "095befe8_f758_4758_80a0e54fd42694cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 4, Translate("Processed")); // }} "" // {{ 240 1 0 "df0088d9_34b2_47b9_89dcf28aec1a5f9a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 241 1 0 "2b666c20_3b85_4e3b_9d0257b9f58b729e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 242 1 0 "df0088d9_34b2_47b9_89dcf28aec1a5f9a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "PIP_AspirateFromFixedHeight" "End" } // }} "" // {{{ 5 "_DetermineStartZHeight" "Begin" private function _DetermineStartZHeight( device & ML_STAR, variable i_str_ChPattern, variable i_str_LabID, variable & i_arr_XCoords[], variable & i_arr_YCoords[], variable i_flt_ZMinimumCoord, variable i_flt_ZClearanceHeight, variable & o_flt_StartZHeight ) variable { // }} "" private variable int_TotalCoords; private variable bln_ChannelsAtCoordinate; private variable flt_CurrentXCoord; private variable arr_CurrentYCoord[]; private variable i; private variable bln_SimulationMode; private variable int_Value; private variable flt_YMaxNeeded; private variable flt_XMinNeeded; private variable flt_YMin; private variable flt_YMax; private variable flt_XMin; private variable flt_XMax; private variable flt_YMinNeeded; private variable flt_XMaxNeeded; private variable int_TotalX; private variable int_TotalY; private variable arr_AdjustedX[]; private variable arr_AdjustedY[]; private variable flt_YMinCurrent; private variable flt_YMaxCurrent; private variable arr_RelevantCurrentY[]; private variable str_Coord1; private variable str_Coord2; private variable int_Coord1; private variable int_Coord2; private variable flt_Coord1; private variable flt_Coord2; // {{ 5 "_DetermineStartZHeight" "InitLocals" o_flt_StartZHeight = 0; // }} "" // {{{ 1780 1 0 "899e1ca1_3ffa_4197_a07e6d0321d1d47a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_SimulationMode = Util::GetSimulationMode(); // }} "" // {{ 1781 1 0 "2def5b0d_163a_4da1_829c500389804025" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_StartZHeight = 0.0; // }} "" // {{ 1782 1 0 "5bd01ee5_318b_4f7c_ab96801375aaaa71" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ChannelsAtCoordinate = BOOLEON::TRUE; // }} "" // {{{ 1783 1 0 "7dcd898b_40e3_40b6_b555076b2e9312d3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::GetChannelXCoordinate(ML_STAR, flt_CurrentXCoord); // }} "" // {{{ 1784 1 0 "40cc254d_b2c6_429d_b6d2d8fb6cc59af6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::GetChannelYCoordinates(ML_STAR, BOOLEON::TRUE, arr_CurrentYCoord); // }} "" // {{ 1785 1 0 "0ee60df0_497d_4c2c_855cabcf3f5610bf" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_AdjustedX.SetSize(0); // }} "" // {{ 1786 1 0 "8e808a07_9b7c_4bbc_9de80afa204c64e9" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_AdjustedY.SetSize(0); // }} "" // {{ 1787 1 0 "1a59871b_be1a_4f44_b0f7a4050b107daf" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_RelevantCurrentY.SetSize(0); // }} "" // {{ 1788 1 0 "642b8294_96cd_4b44_aad8b858fe54af68" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalX=i_arr_XCoords.GetSize(); // }} "" // {{ 1789 1 0 "f2ef9f19_69f6_4d22_9b4685916e8168e3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalX;) { i = i + 1; // }} "" // {{ 1790 1 0 "9a5b4d8b_b3da_47e2_b03a9a61f375c29c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_arr_XCoords.ElementAt( i -1) > 0.0) { // }} "" // {{ 1791 1 0 "a46b3d8e_1db5_43e3_b593d3b66afea9d9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_AdjustedX.AddAsLast(i_arr_XCoords.ElementAt( i -1)); // }} "" // {{ 1792 1 0 "9a5b4d8b_b3da_47e2_b03a9a61f375c29c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1793 1 0 "f2ef9f19_69f6_4d22_9b4685916e8168e3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1794 1 0 "3f52e4d5_a22e_4457_a7fe1cdfb829f74d" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalY=i_arr_YCoords.GetSize(); // }} "" // {{ 1795 1 0 "6cc1d50e_7f0d_4d39_953a2c111bb6cfa6" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalY;) { i = i + 1; // }} "" // {{ 1796 1 0 "a6998405_4250_49ef_981a0b54a9ed0fe4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_arr_YCoords.ElementAt( i -1) > 0.0) { // }} "" // {{ 1797 1 0 "99dfcf76_42a8_41de_a1b7f8c29d12c280" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_AdjustedY.AddAsLast(i_arr_YCoords.ElementAt( i -1)); // }} "" // {{ 1798 1 0 "c0c3831a_d795_4a39_9a8d2ac5846c4ad1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_RelevantCurrentY.AddAsLast(arr_CurrentYCoord.ElementAt( i -1)); // }} "" // {{ 1799 1 0 "a6998405_4250_49ef_981a0b54a9ed0fe4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1800 1 0 "6cc1d50e_7f0d_4d39_953a2c111bb6cfa6" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1801 1 0 "62ef1ecc_4f79_4542_a88c2d672cfe6b1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Current Y Coords"), arr_CurrentYCoord); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1802 1 0 "43222455_17be_478c_8c8cc7bc11b689e9" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalCoords=i_arr_XCoords.GetSize(); // }} "" // {{ 1803 1 0 "1ee55112_1b24_4600_8bafaff8d28fdfc1" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalCoords;) { i = i + 1; // }} "" // {{{ 1804 1 0 "7257b88e_840c_4d3d_a7edcd549d2bbbce" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(i_str_ChPattern, i, int_Value); // }} "" // {{ 1805 1 0 "ffde5fa6_7d64_45cf_b890da1eb0210e7a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{ 1806 1 0 "4de80988_8c8b_4a53_976d0debe61348d0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Coord1 = i_arr_XCoords.ElementAt( i -1) * 10; // }} "" // {{{ 1807 1 0 "66724b81_2589_4479_83934714a90774af" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Coord1 = StrConcat2(flt_Coord1, Translate("")); // }} "" // {{{ 1808 1 0 "49b47750_bb23_4626_b400c3629a433442" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Coord1 = StrIVal(str_Coord1); // }} "" // {{ 1809 1 0 "f295ac5e_8760_46e8_9a1fddf29a47d8dc" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Coord2 = flt_CurrentXCoord * 10; // }} "" // {{{ 1810 1 0 "65efc66d_252b_4c4f_8e40a7cad40c9f42" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Coord2 = StrConcat2(flt_Coord2, Translate("")); // }} "" // {{{ 1811 1 0 "cf4f919e_87f5_48e9_9cb5d705f1f346c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Coord2 = StrIVal(str_Coord2); // }} "" // {{ 1812 1 0 "ca5d0460_5ebd_4e75_8526a3610ac29e45" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Coord1 != int_Coord2) { // }} "" // {{ 1813 1 0 "e37f47c1_e7cf_4f64_bedd37528de61e24" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ChannelsAtCoordinate = BOOLEON::FALSE; // }} "" // {{ 1814 1 0 "ca5d0460_5ebd_4e75_8526a3610ac29e45" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1815 1 0 "9a714829_1cee_42e2_b10c6464903918da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE08(Translate("Needed X: "), i_arr_XCoords.ElementAt( i -1), Translate(" Current X: "), flt_CurrentXCoord, Translate(" Valid: "), bln_ChannelsAtCoordinate, Translate(""), Translate("")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1816 1 0 "ffde5fa6_7d64_45cf_b890da1eb0210e7a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1817 1 0 "1ee55112_1b24_4600_8bafaff8d28fdfc1" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1818 1 0 "75688711_397d_4e35_9bc28ad93c922fd0" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalCoords=i_arr_YCoords.GetSize(); // }} "" // {{ 1819 1 0 "a51a6489_44be_4e62_b268fcbacdfe4df9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalCoords;) { i = i + 1; // }} "" // {{{ 1820 1 0 "6b16fb39_d8fe_493e_a44b750cc06c552c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(i_str_ChPattern, i, int_Value); // }} "" // {{ 1821 1 0 "4a80e9e3_0598_4817_9e513b39678f64d7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{ 1822 1 0 "85d7b774_b168_44ab_98881618f9ac003e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Coord1 = i_arr_YCoords.ElementAt( i -1) * 10; // }} "" // {{{ 1823 1 0 "df904206_09f8_421b_a0b72a85e91a9924" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Coord1 = StrConcat2(flt_Coord1, Translate("")); // }} "" // {{{ 1824 1 0 "ee8f1708_97bb_463f_84c5ea5083d21d3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Coord1 = StrIVal(str_Coord1); // }} "" // {{ 1825 1 0 "5918f407_8bed_464f_83c589eef6e5009a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Coord2 = arr_CurrentYCoord.ElementAt( i -1) * 10; // }} "" // {{{ 1826 1 0 "ca55b6b0_b2ff_408d_89aebbc6bcee9e3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Coord2 = StrConcat2(flt_Coord2, Translate("")); // }} "" // {{{ 1827 1 0 "cae4f24c_125b_4e4e_bc05a4424086c5cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Coord2 = StrIVal(str_Coord2); // }} "" // {{ 1828 1 0 "6eb4aa91_1d52_45f4_b7b515f243c60204" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Coord1 != int_Coord2) { // }} "" // {{ 1829 1 0 "3225323c_d024_46df_893dff168f31f319" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ChannelsAtCoordinate = BOOLEON::FALSE; // }} "" // {{ 1830 1 0 "6eb4aa91_1d52_45f4_b7b515f243c60204" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1831 1 0 "8c907b47_a917_4d50_b41cdcb12caee380" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE08(Translate("Needed Y: "), str_Coord1, Translate(" Current Y: "), str_Coord2, Translate(" Valid: "), bln_ChannelsAtCoordinate, Translate(""), Translate("")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1832 1 0 "4a80e9e3_0598_4817_9e513b39678f64d7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1833 1 0 "a51a6489_44be_4e62_b268fcbacdfe4df9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1834 1 0 "65b51c2b_87fd_4ed9_af677a80fdb3a5f4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_SimulationMode == BOOLEON::TRUE) { // }} "" // {{ 1835 1 0 "dfeaed28_1d2a_4d77_85a5a651ad23ac97" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ChannelsAtCoordinate = BOOLEON::TRUE; // }} "" // {{ 1836 1 0 "65b51c2b_87fd_4ed9_af677a80fdb3a5f4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1837 1 0 "7a403be2_dda6_4363_8cf59a0c05ebcf3d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ChannelsAtCoordinate == BOOLEON::TRUE) { // }} "" // {{ 1838 1 0 "0db73d34_c19b_4a0d_8e824b366549c9b5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_StartZHeight = i_flt_ZMinimumCoord; // }} "" // {{ 1839 1 0 "7a403be2_dda6_4363_8cf59a0c05ebcf3d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1840 1 0 "934a4dd0_e292_453f_9f4cd9a309dd262a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLabwareLimits(ML_STAR, i_str_LabID, flt_XMin, flt_XMax, flt_YMin, flt_YMax); // }} "" // {{{ 1841 1 0 "e886a50e_d347_438d_91e31e4c6899ea55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_XMaxNeeded = HSLStatisitics::Stat_Max(arr_AdjustedX); // }} "" // {{{ 1842 1 0 "3655910a_058c_4423_853466bc177d659d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_XMinNeeded = HSLStatisitics::Stat_Min(arr_AdjustedX); // }} "" // {{{ 1843 1 0 "00c277bb_b1c7_4dc5_91c635321aa63f79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_YMaxNeeded = HSLStatisitics::Stat_Max(arr_AdjustedY); // }} "" // {{{ 1844 1 0 "01a6ec1e_b58d_4a7e_8bd28f127e5ae5f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_YMinNeeded = HSLStatisitics::Stat_Min(arr_AdjustedY); // }} "" // {{{ 1845 1 0 "0f8a3e0e_11fd_4b6a_853f940430892591" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_YMaxCurrent = HSLStatisitics::Stat_Max(arr_RelevantCurrentY); // }} "" // {{{ 1846 1 0 "df40c4e9_b43d_4fba_8e62439a137eb2f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_YMinCurrent = HSLStatisitics::Stat_Min(arr_RelevantCurrentY); // }} "" // {{ 1847 1 0 "a79ce81f_cbf7_4b0d_867d764bd151a18f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_StartZHeight = 245.0; // }} "" // {{ 1848 1 0 "cd9184c8_c92d_4627_883513d7ee00b491" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < 1;) { i = i + 1; // }} "" // {{ 1849 1 0 "41e1724d_7cbd_4679_9bef32090b6f9183" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentXCoord > flt_XMax) { // }} "" // {{ 1850 1 0 "a1c43692_20e3_4395_93696257c0eff0ca" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1851 1 0 "41e1724d_7cbd_4679_9bef32090b6f9183" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1852 1 0 "ea779269_2d7f_40b6_a7f50c82feada529" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentXCoord < flt_XMin) { // }} "" // {{ 1853 1 0 "da1fb434_5cb3_4304_bde3dc56bdead128" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1854 1 0 "ea779269_2d7f_40b6_a7f50c82feada529" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1855 1 0 "123dbe31_064d_441a_af6508724b198703" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_YMaxCurrent > flt_YMax) { // }} "" // {{ 1856 1 0 "a8aa8ac5_2bac_467a_81068f190d4a3331" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1857 1 0 "123dbe31_064d_441a_af6508724b198703" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1858 1 0 "8de6fb87_1824_48cc_ae64af6e359bf7fb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_YMinCurrent < flt_YMin) { // }} "" // {{ 1859 1 0 "dad77d8b_b448_43d3_8abd1f17669eea03" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1860 1 0 "8de6fb87_1824_48cc_ae64af6e359bf7fb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1861 1 0 "45a3ae75_b135_4501_883b0ef0b0da918d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate("X Max Needed: "), flt_XMaxNeeded, Translate(" X Max Limit: "), flt_XMax); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1862 1 0 "0f97ffc0_0872_4695_816fafc104667066" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_XMaxNeeded <= flt_XMax) { // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1863 1 0 "87e177b7_8b74_4b55_bbd9b1a95313f7f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate("X Min Needed: "), flt_XMinNeeded, Translate(" X Min Limit: "), flt_XMin); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1864 1 0 "e2adc4f5_7170_4bbc_80fd0db885595867" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_XMinNeeded >= flt_XMin) { // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1865 1 0 "355d78cc_0e47_4466_a8875b25e9b29e74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate("Y Max Needed: "), flt_YMaxNeeded, Translate(" Y Max Limit: "), flt_YMax); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1866 1 0 "f47c3ed0_694d_472c_b8a6ed647fc8c944" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_YMaxNeeded <= flt_YMax) { // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1867 1 0 "3ee84421_1694_4502_8cd6b70eb2bcf637" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate("Y Min Needed: "), flt_YMinNeeded, Translate(" Y Min Limit: "), flt_YMin); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1868 1 0 "b8da1a23_c2fa_4584_80c67cc12fa74f21" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_YMinNeeded >= flt_YMin) { // }} "" // {{ 1869 1 0 "03040b67_89fb_47f5_8942bc014976ac70" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_StartZHeight = i_flt_ZClearanceHeight; // }} "" // {{ 1870 1 0 "b8da1a23_c2fa_4584_80c67cc12fa74f21" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1871 1 0 "f47c3ed0_694d_472c_b8a6ed647fc8c944" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1872 1 0 "e2adc4f5_7170_4bbc_80fd0db885595867" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1873 1 0 "0f97ffc0_0872_4695_816fafc104667066" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1874 1 0 "cd9184c8_c92d_4627_883513d7ee00b491" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1875 1 0 "7a403be2_dda6_4363_8cf59a0c05ebcf3d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1876 1 0 "c06aef10_7fb7_46f5_91416e12adf8b41e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Z Start Height: "), o_flt_StartZHeight, Translate("")); // }} "" // {{{ 1877 1 0 "33d6606e_6745_41a6_b2ba92beeaecbb62" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (bln_ChannelsAtCoordinate); // }} "" // {{{ 5 "_DetermineStartZHeight" "End" } // }} "" // {{{ 5 "__GetVolumeForSegmentHeight" "Begin" private function __GetVolumeForSegmentHeight( variable i_int_ShapeNumber, variable i_flt_DiameterTop, variable i_flt_DiameterBottom, variable i_flt_Height, variable & o_flt_CurrentVolume ) void { // }} "" private variable w; private variable l; private variable m; private variable n; private variable flt_Pi; private variable r; private variable R; // {{ 5 "__GetVolumeForSegmentHeight" "InitLocals" o_flt_CurrentVolume = 0; // }} "" // {{ 2706 1 0 "2962f39d_652f_4b84_b56fe00ca2a7957c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Pi = 3.14159265359; // }} "" // {{ 2707 1 0 "bc317783_091f_48c3_8123ffc8c75d440b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentVolume = 0.0; // }} "" // {{ 2708 1 0 "f18bf410_1c23_4985_beea6104966d5224" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" m = 0; // }} "" // {{ 2709 1 0 "5804c468_fb56_4c50_9a4f885850a50248" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" n = 0; // }} "" // {{ 2710 1 0 "3d6942b4_cf96_4ed0_8ca4e0b206bd8bb7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" r = 0; // }} "" // {{ 2711 1 0 "e3f575b1_9e68_4890_87bffbc9a2cf27d4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" R = 0; // }} "" // {{ 2712 1 0 "8f6978c3_8415_40f7_ab56ed2dbb508ea3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" l = 0; // }} "" // {{ 2713 1 0 "fe9906be_4756_4a1b_89b030d069b91b6c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" w = 0; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Shape number: ",i_int_ShapeNumber," Top Diameter: ",i_flt_DiameterTop," Bottom Diameter: ",i_flt_DiameterBottom," Height: ",i_flt_Height); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 2715 1 0 "d688156f_be69_4736_bf9a303d653dfa82" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ShapeNumber == 0) { // }} "" // {{ 2716 1 0 "e53f7b44_243f_490a_918eb6aa86584d58" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2717 1 0 "8c61585e_a525_4783_a33ee8c9f867f89d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" r = i_flt_DiameterTop / (2 * 1.0); // }} "" m = r * r * flt_Pi; // {{ 2719 1 0 "d1c6b5b4_20fa_4184_afd2bfe637990c0b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentVolume = m * i_flt_Height; // }} "" // {{{ 2720 1 0 "ae7d37b5_35bd_4a5a_9c66b70a85f63cdc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_CurrentVolume = MthRound(o_flt_CurrentVolume, 1); // }} "" // {{ 2721 1 0 "d688156f_be69_4736_bf9a303d653dfa82" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2722 1 0 "710e1284_bd28_4ad3_bf948544d316d2b4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ShapeNumber == 1) { // }} "" // {{ 2723 1 0 "e30a4264_2716_4d7a_bd8876cc71b7b1d2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2724 1 0 "a42c0cf1_eb65_4c37_9991f06b4be7e2fa" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" m = i_flt_DiameterTop * i_flt_DiameterBottom; // }} "" // {{ 2725 1 0 "463477b5_8ee9_44e7_a8aa5a676279e9ee" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentVolume = m * i_flt_Height; // }} "" // {{{ 2726 1 0 "a2df9707_493d_4ea7_82f0458d32b90d9a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_CurrentVolume = MthRound(o_flt_CurrentVolume, 1); // }} "" // {{ 2727 1 0 "710e1284_bd28_4ad3_bf948544d316d2b4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2728 1 0 "dfd3e006_0b28_492d_b22fe9ada4a3c218" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ShapeNumber == 2) { // }} "" // {{ 2729 1 0 "2521ce24_0563_4892_9787715d62aae493" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2730 1 0 "4982ba4e_8f6f_44bd_95d0857f5abc860e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" r = i_flt_DiameterBottom / (2 * 1.0); // }} "" // {{ 2731 1 0 "3faaeafa_9dc6_4716_b4703a22b7d454f8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" R = i_flt_DiameterTop / (2 * 1.0); // }} "" m = (flt_Pi/3) * (R*R + r*r + R*r); // {{ 2733 1 0 "c5897afd_f9bd_4b85_99bd0285d2f274c2" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentVolume = m * i_flt_Height; // }} "" // {{{ 2734 1 0 "227f442f_0cde_4dce_a5bf9113cc600f52" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_CurrentVolume = MthRound(o_flt_CurrentVolume, 1); // }} "" // {{ 2735 1 0 "dfd3e006_0b28_492d_b22fe9ada4a3c218" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2736 1 0 "262aa4d3_2f11_4c5e_8628f6b5bd09490e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ShapeNumber == 3) { // }} "" // {{ 2737 1 0 "82782dfb_a831_4acf_b942e17317dd9372" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2738 1 0 "65bbd063_44c0_4e08_b8224295adbaac98" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" R = i_flt_DiameterTop / (2 * 1.0); // }} "" // {{ 2739 1 0 "6385a5e0_0064_4b6e_abae5ed3259215e1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" r = i_flt_DiameterBottom / (2 * 1.0); // }} "" m = (flt_Pi/3) * (R*R + r*r + R*r); // {{ 2741 1 0 "ec6e7361_59f6_4d52_958732f0c83c5c40" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentVolume = m * i_flt_Height; // }} "" // {{{ 2742 1 0 "47b1e2ef_a5fb_4d4f_b430e2f59999f91b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_CurrentVolume = MthRound(o_flt_CurrentVolume, 4); // }} "" // {{ 2743 1 0 "262aa4d3_2f11_4c5e_8628f6b5bd09490e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2744 1 0 "556c6da7_acb1_406e_bfc186a67c248cd4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ShapeNumber == 4) { // }} "" // {{ 2745 1 0 "6df034c5_c48d_457e_8b767f36ea901614" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2746 1 0 "7090477e_7903_4364_be2d82e6667c0ca0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" r = i_flt_DiameterTop; // }} "" m = (flt_Pi*r)/2; n = (flt_Pi/3); o_flt_CurrentVolume = i_flt_Height * i_flt_Height * m - n * i_flt_Height; // {{{ 2748 1 0 "32c8a8d8_aecc_41d4_8efe7059369aca16" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_CurrentVolume = MthRound(o_flt_CurrentVolume, 1); // }} "" // {{ 2749 1 0 "556c6da7_acb1_406e_bfc186a67c248cd4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2750 1 0 "905367cc_eefc_4603_bea1afc98bf6da1c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_ShapeNumber == 5) { // }} "" // {{ 2751 1 0 "dec5c24e_4f7c_4e77_acc6d2a8c5d2394c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2752 1 0 "09fd4e04_0bc1_4edb_86059a1caa2d8436" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" r = i_flt_DiameterTop / (2 * 1.0); // }} "" m = (flt_Pi * r * r) / 3; // {{ 2754 1 0 "eeb365a1_55c3_4a89_8640c2dc1ec8c71b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_CurrentVolume = m * i_flt_Height; // }} "" // {{{ 2755 1 0 "680faad8_5fb0_4c4d_b472c586af53b9c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_CurrentVolume = MthRound(o_flt_CurrentVolume, 1); // }} "" // {{ 2756 1 0 "905367cc_eefc_4603_bea1afc98bf6da1c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2757 1 0 "0d018350_f0ad_4f72_b42e275cf640b485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_CurrentVolume = MthRound(o_flt_CurrentVolume, 1); // }} "" // {{{ 5 "__GetVolumeForSegmentHeight" "End" } // }} "" // {{{ 5 "_GetHeightBasedOnVolume" "Begin" private function _GetHeightBasedOnVolume( variable i_str_ContainerFilePath, variable i_flt_VolumeToCalculate, variable & o_flt_HeightWithVolume ) void { // }} "" private variable str_SearchValueMax; private variable flt_CurrentVolume; private variable flt_CheckHeight; private variable str_SearchValueShape; private variable i; private variable flt_Dx; private variable flt_Dy; private variable flt_MinimumVolume; private variable flt_TopDiameter; private variable flt_Dz; private variable int_SegmentNumber; private variable flt_BottomDiameter; private variable str_SearchValue1; private variable int_TotalSegments; private variable str_SearchValue2; private variable flt_CurrentMax; private variable str_SearchValue3; private variable bln_ValueFound; private variable a; private variable flt_CurrentHeight; private variable flt_Volume; private variable flt_Min; private variable flt_Max; private variable str_SearchValueMin; private variable str_Value; private variable int_Shape; private variable arr_BottomDiameter[]; private variable arr_MinHeight[]; private variable arr_TopDiameter[]; private variable arr_MaxHeight[]; private variable arr_Shape[]; // {{ 5 "_GetHeightBasedOnVolume" "InitLocals" o_flt_HeightWithVolume = 0; // }} "" // {{ 2004 1 0 "3b7f07fa_aecb_41e3_bfc42a5886b77c7c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_HeightWithVolume = 0.0; // }} "" // {{ 2005 1 0 "433165f0_f811_4bfb_89f3eb38cad508f9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TotalSegments = 0; // }} "" // {{ 2006 1 0 "13695eb2_d39b_40ef_8f9ada6805580a7d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Value = Translate(""); // }} "" // {{{ 2007 1 0 "fc8e66c1_3259_4c8e_a53134bec9575ce8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, Translate("Segments"), str_Value); // }} "" // {{ 2008 1 0 "d86ab83b_ea84_4447_a05551b75aa2d94c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::TRUE) { // }} "" // {{{ 2009 1 0 "5afd8918_07ab_4861_89ce6afeb6350751" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalSegments = StrIVal(str_Value); // }} "" // {{ 2010 1 0 "d86ab83b_ea84_4447_a05551b75aa2d94c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2011 1 0 "1b6b6a83_a311_44cd_9c943319934ffe63" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_TopDiameter.SetSize(0); // }} "" // {{ 2012 1 0 "eb6e5f3b_30a5_44a2_bf76189b1f793190" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_BottomDiameter.SetSize(0); // }} "" // {{ 2013 1 0 "0b7f03c5_7142_474b_b53e659d96fb38f3" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Shape.SetSize(0); // }} "" // {{ 2014 1 0 "9d225040_a15b_49cd_89bfbb8cd5ba7f5a" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_MinHeight.SetSize(0); // }} "" // {{ 2015 1 0 "042478c5_86f5_4a62_a831921ac59e6c0b" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_MaxHeight.SetSize(0); // }} "" // {{ 2016 1 0 "9f6967a5_789b_42f8_aaf23da223360f17" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" i = int_TotalSegments; // }} "" // {{ 2017 1 0 "040c577c_b585_459e_b915a6ac6e54cbdc" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(a = 0; a < int_TotalSegments;) { a = a + 1; // }} "" // {{ 2018 1 0 "410af040_7c49_4577_9c6fd762677e421d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Shape = -1; // }} "" // {{ 2019 1 0 "c6688bd9_763c_40fa_ab1d6733e0b9e204" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Min = 0.0; // }} "" // {{ 2020 1 0 "0e99cdd8_1272_4601_9bd3d9d4ee135107" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Max = 0.0; // }} "" // {{ 2021 1 0 "a6ca21a2_59f0_40b3_abc25cf75b6cc9d3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Dx = 0.0; // }} "" // {{ 2022 1 0 "b5bf2f6b_e3d6_44da_b8061d2f68910df0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Dy = 0.0; // }} "" // {{ 2023 1 0 "059c9c6f_5160_4d79_89d654cb4f28ae5c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Dz = 0.0; // }} "" // {{ 2024 1 0 "375fcabd_ff72_4596_bd3355f296e74ea4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TopDiameter = 0.0; // }} "" // {{ 2025 1 0 "0dce5836_6b3f_4596_aa67ad22a4bfb868" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BottomDiameter = 0.0; // }} "" // {{{ 2026 1 0 "e9b634b4_0797_454a_a54ac52c0151fbeb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValueShape = StrConcat2(i, Translate(".Shape")); // }} "" // {{{ 2027 1 0 "5bb977ae_6c87_46e3_b2e747a6d12e6332" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValueMin = StrConcat2(i, Translate(".Min")); // }} "" // {{{ 2028 1 0 "772bfbfe_c38a_4b49_b7ba211ae1aca7b7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValueMax = StrConcat2(i, Translate(".Max")); // }} "" // {{{ 2029 1 0 "2f29d0a1_f2e6_4c29_bd6b40f3dbce8583" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue1 = StrConcat2(i, Translate(".DX")); // }} "" // {{{ 2030 1 0 "a4bbda0c_9663_485b_a4c0fa828693dc41" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue2 = StrConcat2(i, Translate(".DY")); // }} "" // {{{ 2031 1 0 "881ef103_cc64_4454_be98c39413ad7de6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue3 = StrConcat2(i, Translate(".DZ")); // }} "" // {{ 2032 1 0 "ea8bdf65_91b1_4936_b07341a2d42e23b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2033 1 0 "d80710f8_68d6_4f81_827b52e0aaaf1a55" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValueShape, str_Value); // }} "" // {{ 2034 1 0 "a8e48435_4e36_4c63_9a4788735835b6af" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::TRUE) { // }} "" // {{{ 2035 1 0 "ee2713c1_ed07_4067_90267e0791dd80a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Shape = StrIVal(str_Value); // }} "" // {{ 2036 1 0 "a8e48435_4e36_4c63_9a4788735835b6af" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2037 1 0 "b3b6d1b4_4a21_4079_952953769bea0a12" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Shape >= 0) { // }} "" // {{{ 2038 1 0 "5143facf_157a_4f8c_8d4fef6d1506aba6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValueMin, str_Value); // }} "" // {{ 2039 1 0 "dd214668_777e_41cb_aa7889bae6a9c766" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::TRUE) { // }} "" // {{{ 2040 1 0 "792b433e_9838_4eef_abe0b0c12fc81488" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Min = StrFVal(str_Value); // }} "" // {{ 2041 1 0 "dd214668_777e_41cb_aa7889bae6a9c766" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2042 1 0 "804467c3_e372_493e_a7bd601b6a204bf8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValueMax, str_Value); // }} "" // {{ 2043 1 0 "93f59648_73ee_4de6_b74afbb9e743036c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::TRUE) { // }} "" // {{{ 2044 1 0 "c8f84e3b_aa17_467a_b69006b18e5db976" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Max = StrFVal(str_Value); // }} "" // {{ 2045 1 0 "93f59648_73ee_4de6_b74afbb9e743036c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2046 1 0 "ea154c5c_18dc_485e_9af7228dedf785ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValue1, str_Value); // }} "" // {{ 2047 1 0 "e0e16b60_df10_41aa_a58aa4e89c49390b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::TRUE) { // }} "" // {{{ 2048 1 0 "e0d0a99d_0eac_40ef_9b86bd2d638555ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Dx = StrFVal(str_Value); // }} "" // {{ 2049 1 0 "e0e16b60_df10_41aa_a58aa4e89c49390b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2050 1 0 "31103819_3077_4035_83da7d217c12fa7f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValue2, str_Value); // }} "" // {{ 2051 1 0 "06e58e16_70db_4fe6_b9d4849063714590" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::TRUE) { // }} "" // {{{ 2052 1 0 "4b20bdf8_5ee3_472f_94261b21a614ee3e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Dy = StrFVal(str_Value); // }} "" // {{ 2053 1 0 "06e58e16_70db_4fe6_b9d4849063714590" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2054 1 0 "cc7f3270_8c1c_479d_b2490d2e0469a794" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValue3, str_Value); // }} "" // {{ 2055 1 0 "2406334c_5e18_4c6c_9a6836673087e72b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::TRUE) { // }} "" // {{{ 2056 1 0 "19401050_e3d1_4745_a29abdbc8143fc1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Dz = StrFVal(str_Value); // }} "" // {{ 2057 1 0 "2406334c_5e18_4c6c_9a6836673087e72b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2058 1 0 "b3b6d1b4_4a21_4079_952953769bea0a12" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2059 1 0 "ea8bdf65_91b1_4936_b07341a2d42e23b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2060 1 0 "9a8ab989_65e8_4700_a01f3950bb4f48b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Shape == 0) { // }} "" // {{ 2061 1 0 "0d40dd32_6e28_4e01_8a292e0489a0be91" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TopDiameter = flt_Dz; // }} "" // {{ 2062 1 0 "9a8ab989_65e8_4700_a01f3950bb4f48b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2063 1 0 "21421675_bad7_48ec_845e795d97cb2d58" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Shape == 1) { // }} "" // {{ 2064 1 0 "89678cef_4b97_4602_aac87b09d61e4d1a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TopDiameter = flt_Dx; // }} "" // {{ 2065 1 0 "2d66bdc5_8a1c_4f65_be96cd9fd1ff7c62" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BottomDiameter = flt_Dy; // }} "" // {{ 2066 1 0 "21421675_bad7_48ec_845e795d97cb2d58" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2067 1 0 "58ea1f66_9d76_4816_83a6b7b990c1be20" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Shape == 2) { // }} "" // {{ 2068 1 0 "1bb37925_9bd6_4d29_9f6371f80d1b6009" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TopDiameter = flt_Dx; // }} "" // {{ 2069 1 0 "6faa45c4_70f1_422a_a64b7d888c82f293" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BottomDiameter = flt_Dy; // }} "" // {{ 2070 1 0 "58ea1f66_9d76_4816_83a6b7b990c1be20" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2071 1 0 "0d0e396a_d69c_4690_a14b544507efef98" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Shape == 3) { // }} "" // {{ 2072 1 0 "53f7b3e5_9aa0_4ccc_adf1c5e5b7c806bc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TopDiameter = flt_Dx; // }} "" // {{ 2073 1 0 "9fb79bf9_d1b7_4e8e_b26b3baa2fb0b60f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BottomDiameter = flt_Dy; // }} "" // {{ 2074 1 0 "0d0e396a_d69c_4690_a14b544507efef98" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2075 1 0 "d6085439_daee_4cc4_9e4229cf1ea73357" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Shape == 4) { // }} "" // {{ 2076 1 0 "6572cc4b_de12_4cbd_903365dc76a94e32" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TopDiameter = flt_Dz; // }} "" // {{ 2077 1 0 "d6085439_daee_4cc4_9e4229cf1ea73357" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2078 1 0 "80c42f24_61ff_4781_a99ccc5703d52e15" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Shape == 5) { // }} "" // {{ 2079 1 0 "4c6a08b5_eac0_49f0_abfda615b2a3564c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TopDiameter = flt_Dz; // }} "" // {{ 2080 1 0 "80c42f24_61ff_4781_a99ccc5703d52e15" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2081 1 0 "f3ad7bfe_71cd_4ec3_930ec09725529657" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Shape.AddAsLast(int_Shape); // }} "" // {{ 2082 1 0 "9fc92ea1_9f5d_484e_b64a6d4a74181a59" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_MinHeight.AddAsLast(flt_Min); // }} "" // {{ 2083 1 0 "2869dafd_faa1_4fdb_adc41d79c806040d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_MaxHeight.AddAsLast(flt_Max); // }} "" // {{ 2084 1 0 "98919c76_9b96_4c18_8e2158856e65a147" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_TopDiameter.AddAsLast(flt_TopDiameter); // }} "" // {{ 2085 1 0 "0e0768c4_4784_4624_be3c9b2d2859a2ee" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_BottomDiameter.AddAsLast(flt_BottomDiameter); // }} "" // {{ 2086 1 0 "0e7c85bb_a298_42cc_97ae1cd863f9e6e0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" i = i - 1; // }} "" // {{ 2087 1 0 "040c577c_b585_459e_b915a6ac6e54cbdc" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2088 1 0 "f07e39b3_85b7_420d_849192894e7e4b1f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentVolume = 0.0; // }} "" // {{ 2089 1 0 "abf9c185_47b3_4f72_8473c91841ddaa74" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MinimumVolume = 0.0; // }} "" // {{ 2090 1 0 "8bdd1bc0_86e3_46cb_8537a0c97514766b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentHeight = 0.0; // }} "" // {{ 2091 1 0 "0b780a70_1a6b_4ad2_b52079959dab43d5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_SegmentNumber = 0; // }} "" // {{ 2092 1 0 "79adef7e_f0a3_4686_ba47b55767e07ee6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentMax = 0.0; // }} "" // {{ 2093 1 0 "458e99be_543b_4b32_951fcdec636cdcc4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (BOOLEON::TRUE == BOOLEON::TRUE) { // }} "" // {{ 2094 1 0 "7fc71712_5e4f_4ed1_a1234027fc5bb9e8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentVolume >= i_flt_VolumeToCalculate) { // }} "" // {{ 2095 1 0 "7da8d9ea_1bc9_4257_b6b73f9b27b9617c" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2096 1 0 "7fc71712_5e4f_4ed1_a1234027fc5bb9e8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2097 1 0 "0643bab3_9336_4954_b2260bce382515ee" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentHeight = flt_CurrentHeight + 0.1; // }} "" // {{ 2098 1 0 "5afc4395_5f14_4ced_bae3ec0f547efad9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentHeight > flt_CurrentMax) { // }} "" // {{ 2099 1 0 "2e1d9f37_c932_458d_989acde272a1ab68" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_SegmentNumber = int_SegmentNumber + 1; // }} "" // {{ 2100 1 0 "baecae3a_03f5_4056_965895546e28350b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MinimumVolume = flt_CurrentVolume; // }} "" // {{ 2101 1 0 "685c5cab_0a27_41c1_babdd0d969ae51ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_SegmentNumber > int_TotalSegments) { // }} "" // {{ 2102 1 0 "7aabc365_fbea_4d3e_a10fc88df75f425a" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2103 1 0 "685c5cab_0a27_41c1_babdd0d969ae51ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2104 1 0 "5afc4395_5f14_4ced_bae3ec0f547efad9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2105 1 0 "08112fd1_4478_496d_b952f7423ab2eeab" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_CurrentMax=arr_MaxHeight.GetAt(int_SegmentNumber-1); // }} "" // {{ 2106 1 0 "c34558be_4878_4808_bed2359dd342ff17" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_CheckHeight = flt_CurrentHeight - arr_MinHeight.ElementAt( int_SegmentNumber -1); // }} "" // {{{ 2107 1 0 "d4dae74f_3360_4d89_a79f21444f15867b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __GetVolumeForSegmentHeight(arr_Shape.ElementAt( int_SegmentNumber -1), arr_TopDiameter.ElementAt( int_SegmentNumber -1), arr_BottomDiameter.ElementAt( int_SegmentNumber -1), flt_CheckHeight, flt_Volume); // }} "" // {{ 2108 1 0 "615c958a_bde3_47b5_97a2a5bf76338a7c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentVolume = flt_MinimumVolume + flt_Volume; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Current Height: ",flt_CurrentHeight," Current Volume: ",flt_CurrentVolume); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 2110 1 0 "458e99be_543b_4b32_951fcdec636cdcc4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2111 1 0 "c90bcfb4_40de_4125_a42c989f5f38b12e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_HeightWithVolume = flt_CurrentHeight; // }} "" // {{{ 2112 1 0 "8b41bb0f_4f13_454b_8ecc31c7fd9d2115" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_HeightWithVolume = MthRound(o_flt_HeightWithVolume, 1); // }} "" // {{{ 5 "_GetHeightBasedOnVolume" "End" } // }} "" // {{{ 5 "_CalculateLiquidFollowDistance" "Begin" private function _CalculateLiquidFollowDistance( device & ML_STAR, variable i_str_LabID, variable i_str_PosID, variable i_flt_StartHeight, variable i_flt_VolumeToRemove, variable i_bln_AspirateMode, variable & o_flt_FollowDistance ) void { // }} "" private variable flt_StartVolume; private variable flt_VolumeRemaining; private variable flt_EndHeight; private variable str_ConfigFile; // {{ 5 "_CalculateLiquidFollowDistance" "InitLocals" o_flt_FollowDistance = 0; // }} "" // {{{ 1674 1 0 "cee8dade_30c2_4bcf_8ac390a962aec585" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, i_str_LabID, i_str_PosID, str_ConfigFile); // }} "" // {{ 1675 1 0 "8257cf5e_fc7d_4dbd_9096f898f0f34ac3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_FollowDistance = 0.0; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 1676 1 0 "d885204d_46d4_46d3_a4055a1d615d3a9d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_StartVolume = flt_StartVolume * 1000.0; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1677 1 0 "1a667183_45cd_4cbc_afb5855418e55d58" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_AspirateMode == BOOLEON::TRUE) { // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1678 1 0 "e0f1306a_8287_4bb2_b2e6af2110a06412" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_StartVolume = DevComputeContainerVolume(ML_STAR, i_str_LabID, i_str_PosID, i_flt_StartHeight, BOOLEON::FALSE); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 1679 1 0 "9f02fb65_2b86_4b12_b4d39a8c29169ec3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetVolumeBasedOnHeight(str_ConfigFile, i_flt_StartHeight, flt_StartVolume); // }} "" // {{ 1680 1 0 "270c4e98_1419_40d7_979cc404f038da5c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_flt_VolumeToRemove > flt_StartVolume) { // }} "" // {{ 1681 1 0 "2e6e4ab7_92bb_459c_9ee515cf0e01de68" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_FollowDistance = i_flt_StartHeight; // }} "" // {{{ 1682 1 0 "47925c34_d875_4d12_9dac8ba9b03f983d" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 1683 1 0 "270c4e98_1419_40d7_979cc404f038da5c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1684 1 0 "d8e8e9d3_e0ab_4cff_acf3c4257785c060" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeRemaining = flt_StartVolume + i_flt_VolumeToRemove; // }} "" // {{{ 1685 1 0 "2169d61c_8b57_4cd5_a55fb1e39c44d498" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetHeightBasedOnVolume(str_ConfigFile, flt_VolumeRemaining, flt_EndHeight); // }} "" // {{ 1686 1 0 "c06c73cf_3eb5_47e4_99576fdc065edfc4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_FollowDistance = i_flt_StartHeight - flt_EndHeight; // }} "" // {{ 1687 1 0 "1a667183_45cd_4cbc_afb5855418e55d58" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1688 1 0 "5883c907_31c1_4678_92c9671529754960" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_StartVolume = DevComputeContainerVolume(ML_STAR, i_str_LabID, i_str_PosID, i_flt_StartHeight, BOOLEON::FALSE); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 1689 1 0 "82f80289_1645_4b99_80577db03febba19" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetVolumeBasedOnHeight(str_ConfigFile, i_flt_StartHeight, flt_StartVolume); // }} "" // {{ 1690 1 0 "4a16f55f_b185_470f_9230a45c9e35a166" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeRemaining = flt_StartVolume + i_flt_VolumeToRemove; // }} "" // {{{ 1691 1 0 "80af49a1_a6a0_4c6b_87e2780a16395de4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetHeightBasedOnVolume(str_ConfigFile, flt_VolumeRemaining, flt_EndHeight); // }} "" // {{ 1692 1 0 "4691eb21_b7f6_403d_9db2a63e4d7dfe60" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_FollowDistance = flt_EndHeight - i_flt_StartHeight; // }} "" // {{ 1693 1 0 "1a667183_45cd_4cbc_afb5855418e55d58" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1694 1 0 "01cccdf8_b767_4295_8558bd2b30383d13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Start Volume: "), flt_StartVolume, Translate(" uL")); // }} "" // {{{ 1695 1 0 "2e493943_add7_433c_aac78d75181aaf22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Start Height: "), i_flt_StartHeight, Translate(" mm")); // }} "" // {{{ 1696 1 0 "da5fe0a8_0444_4d0d_b5999618d8af7f6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("End Volume: "), flt_VolumeRemaining, Translate(" uL")); // }} "" // {{{ 1697 1 0 "826a0fec_b0fe_4dfc_97a511e19bf3a2ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("End Height: "), flt_EndHeight, Translate(" mm")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1698 1 0 "01e5fea5_8cae_437b_a24bf618878519d4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (o_flt_FollowDistance < 0.0) { // }} "" // {{ 1699 1 0 "f992bc1a_3ff4_48db_9422a41352c7a5aa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_FollowDistance = 0.0; // }} "" // {{ 1700 1 0 "01e5fea5_8cae_437b_a24bf618878519d4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1701 1 0 "5371ad89_5bfd_4a12_8d7e682819414475" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Follow distance: "), o_flt_FollowDistance, Translate(" mm")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 5 "_CalculateLiquidFollowDistance" "End" } // }} "" // {{{ 5 "_GetVolumeBasedOnHeight" "Begin" private function _GetVolumeBasedOnHeight( variable i_str_ContainerFilePath, variable i_flt_HeightToCalculate, variable & o_flt_VolumeFromHeight ) void { // }} "" private variable str_SearchValueMax; private variable flt_CurrentVolume; private variable flt_CheckHeight; private variable str_SearchValueShape; private variable flt_Dx; private variable i; private variable flt_Dy; private variable flt_TopDiameter; private variable flt_MinimumVolume; private variable flt_Dz; private variable flt_BottomDiameter; private variable int_SegmentNumber; private variable str_SearchValue1; private variable int_TotalSegments; private variable str_SearchValue2; private variable flt_CurrentMax; private variable str_SearchValue3; private variable a; private variable bln_ValueFound; private variable flt_CurrentHeight; private variable flt_Volume; private variable flt_Min; private variable str_SearchValueMin; private variable flt_Max; private variable int_Shape; private variable str_Value; private variable arr_BottomDiameter[]; private variable arr_MinHeight[]; private variable arr_TopDiameter[]; private variable arr_MaxHeight[]; private variable arr_Shape[]; // {{ 5 "_GetVolumeBasedOnHeight" "InitLocals" o_flt_VolumeFromHeight = 0; // }} "" // {{ 2434 1 0 "310877a0_a056_42a4_a03f31cfc1a2bfd5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_VolumeFromHeight = 0.0; // }} "" // {{ 2435 1 0 "ca0a636c_8697_4abd_ade6693c74cf11e8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TotalSegments = 0; // }} "" // {{ 2436 1 0 "3dc577bc_61c3_46bb_88f3ebc5bb23d996" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Value = Translate(""); // }} "" // {{{ 2437 1 0 "d4031cac_0cce_45e5_99d61b535382c413" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, Translate("Segments"), str_Value); // }} "" // {{ 2438 1 0 "d68df31a_4c69_4364_a2a82100b9759a28" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::TRUE) { // }} "" // {{{ 2439 1 0 "70a535cc_b6f9_44ee_b6fc6abc22be7453" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalSegments = StrIVal(str_Value); // }} "" // {{ 2440 1 0 "d68df31a_4c69_4364_a2a82100b9759a28" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2441 1 0 "eaf29d03_394f_4448_8643ed400315a948" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_TopDiameter.SetSize(0); // }} "" // {{ 2442 1 0 "e8037ae1_a025_4df3_b2ca9b7abbab6324" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_BottomDiameter.SetSize(0); // }} "" // {{ 2443 1 0 "f74fa1d3_209b_42ee_8541e13050d79b28" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Shape.SetSize(0); // }} "" // {{ 2444 1 0 "5080a430_ef59_4bf2_95f1a164de8e05df" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_MinHeight.SetSize(0); // }} "" // {{ 2445 1 0 "4100f791_f1e7_4c82_8533a770cf83137d" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_MaxHeight.SetSize(0); // }} "" // {{ 2446 1 0 "83895b5e_0a37_40a9_b7f1169b44ef62bd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" i = int_TotalSegments; // }} "" // {{ 2447 1 0 "3ba77a87_98b6_4b48_a132ab4db2a20f20" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(a = 0; a < int_TotalSegments;) { a = a + 1; // }} "" // {{ 2448 1 0 "a6e8fb4c_c9a8_4d00_a46e31a4f299ce6d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Shape = -1; // }} "" // {{ 2449 1 0 "6304dc2c_0cd3_430b_a0ed04f2594576c7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Min = 0.0; // }} "" // {{ 2450 1 0 "a7e456cc_f749_4ec6_bec9c46c73bdd581" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Max = 0.0; // }} "" // {{ 2451 1 0 "5dd6fbf6_3fcd_4ee8_900dfba5ac5f3f28" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Dx = 0.0; // }} "" // {{ 2452 1 0 "4be7a2a8_5673_455f_adede9ab672b8e23" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Dy = 0.0; // }} "" // {{ 2453 1 0 "1ebf424c_4e98_4410_b8931381c601d649" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Dz = 0.0; // }} "" // {{ 2454 1 0 "c41f4fba_30fb_4f0f_a8460a7dfdd9ecba" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TopDiameter = 0.0; // }} "" // {{ 2455 1 0 "514bd6ac_cc03_4957_ba1ce8980a5f445c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BottomDiameter = 0.0; // }} "" // {{{ 2456 1 0 "8e72dc8b_9c15_422a_a5876dfbeda3219d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValueShape = StrConcat2(i, Translate(".Shape")); // }} "" // {{{ 2457 1 0 "68e469b2_d452_4ce2_81cbac993d092eb2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValueMin = StrConcat2(i, Translate(".Min")); // }} "" // {{{ 2458 1 0 "cdfa6d68_311e_48ec_8619f376268a9989" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValueMax = StrConcat2(i, Translate(".Max")); // }} "" // {{{ 2459 1 0 "d03c6375_8f2a_4269_b08339e694e08d1e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue1 = StrConcat2(i, Translate(".DX")); // }} "" // {{{ 2460 1 0 "a0c9c464_2526_4582_b14ccddbe25f4463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue2 = StrConcat2(i, Translate(".DY")); // }} "" // {{{ 2461 1 0 "157d6ccc_2c92_460c_b4ad8226cedb3f38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SearchValue3 = StrConcat2(i, Translate(".DZ")); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Search Values: ",str_SearchValue1," ",str_SearchValue2," ",str_SearchValue3); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 2463 1 0 "6c126f74_b332_4772_88b1cec590cb5c4d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2464 1 0 "3196b0f4_62b0_4947_b6e2f5eba826ceff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValueShape, str_Value); // }} "" // {{ 2465 1 0 "6e0b8b53_d60d_44be_aa8dbf322b1c4bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::TRUE) { // }} "" // {{{ 2466 1 0 "02b7659f_b446_4a9b_aceaa7b2136fe538" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Shape = StrIVal(str_Value); // }} "" // {{ 2467 1 0 "6e0b8b53_d60d_44be_aa8dbf322b1c4bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2468 1 0 "67579271_f747_4379_b0f551034fc25d90" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Shape >= 0) { // }} "" // {{{ 2469 1 0 "31c6b2a1_19c9_4894_908ad3633fcda125" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValueMin, str_Value); // }} "" // {{ 2470 1 0 "33bc8d7a_4aec_4330_93b3b814b9e46aa0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::TRUE) { // }} "" // {{{ 2471 1 0 "b1da4824_0c40_4728_b611701336936fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Min = StrFVal(str_Value); // }} "" // {{ 2472 1 0 "33bc8d7a_4aec_4330_93b3b814b9e46aa0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2473 1 0 "d7ed71b8_f18f_4877_8bae144ca3654d27" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValueMax, str_Value); // }} "" // {{ 2474 1 0 "e33babe2_d295_48df_a9d69a9968414c88" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::TRUE) { // }} "" // {{{ 2475 1 0 "f8ed1c12_d844_43f2_89a74ffc62b21258" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Max = StrFVal(str_Value); // }} "" // {{ 2476 1 0 "e33babe2_d295_48df_a9d69a9968414c88" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2477 1 0 "32f25600_08d2_4a3f_9891b8ed5080033e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValue1, str_Value); // }} "" // {{ 2478 1 0 "524b252c_a76d_4edc_8e2e64c31868bd14" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::TRUE) { // }} "" // {{{ 2479 1 0 "c6a7a030_624f_4ca8_adb920dec8964e6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Dx = StrFVal(str_Value); // }} "" // {{ 2480 1 0 "524b252c_a76d_4edc_8e2e64c31868bd14" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2481 1 0 "9a7d2a8f_a00e_4778_a589cf5e0d15ad3e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValue2, str_Value); // }} "" // {{ 2482 1 0 "1f235323_da72_4c85_9562057e560fe30c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::TRUE) { // }} "" // {{{ 2483 1 0 "85bd18d6_c28a_49e6_a4f3b5ae7cf6b92e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Dy = StrFVal(str_Value); // }} "" // {{ 2484 1 0 "1f235323_da72_4c85_9562057e560fe30c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2485 1 0 "9518eded_a356_4b5b_9bb57b3a197949c9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ValueFound = HELPERLIBRARY::GetDefinitionFileValue(i_str_ContainerFilePath, str_SearchValue3, str_Value); // }} "" // {{ 2486 1 0 "b01502d1_1e2c_4aaa_89700648f88b9045" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::TRUE) { // }} "" // {{{ 2487 1 0 "5deffef5_df91_4a69_bb7c0eb17ce36f45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Dz = StrFVal(str_Value); // }} "" // {{ 2488 1 0 "b01502d1_1e2c_4aaa_89700648f88b9045" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2489 1 0 "67579271_f747_4379_b0f551034fc25d90" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2490 1 0 "6c126f74_b332_4772_88b1cec590cb5c4d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2491 1 0 "6d1d91ce_d097_4867_9c7f821ad2d3b113" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Shape == 0) { // }} "" // {{ 2492 1 0 "beabb169_44e3_4d54_906357e570bb5561" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TopDiameter = flt_Dz; // }} "" // {{ 2493 1 0 "6d1d91ce_d097_4867_9c7f821ad2d3b113" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2494 1 0 "dcf574fd_314e_4d0e_94d133f822f4f958" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Shape == 1) { // }} "" // {{ 2495 1 0 "7d00510c_f2ca_448c_ac0d03d033b929f2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TopDiameter = flt_Dx; // }} "" // {{ 2496 1 0 "a7aa9122_030e_4dd0_9dcd91bc1a1d899d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BottomDiameter = flt_Dy; // }} "" // {{ 2497 1 0 "dcf574fd_314e_4d0e_94d133f822f4f958" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2498 1 0 "96fc0c13_af61_406e_bb0c9eaf81f826f0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Shape == 2) { // }} "" // {{ 2499 1 0 "b077ed05_f713_4cee_a227287b5999dc21" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TopDiameter = flt_Dx; // }} "" // {{ 2500 1 0 "3cf6f45a_1403_4a3f_87977560506ea4e5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BottomDiameter = flt_Dy; // }} "" // {{ 2501 1 0 "96fc0c13_af61_406e_bb0c9eaf81f826f0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2502 1 0 "3170b54d_f0ab_4afe_86e5c6c91d6232cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Shape == 3) { // }} "" // {{ 2503 1 0 "9a04824e_f8c1_4531_adf88586b6ad8cdc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TopDiameter = flt_Dx; // }} "" // {{ 2504 1 0 "e15550f2_c94d_4c18_9e79ea06baccb122" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BottomDiameter = flt_Dy; // }} "" // {{ 2505 1 0 "3170b54d_f0ab_4afe_86e5c6c91d6232cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2506 1 0 "9672a3b3_d367_45b9_beee7751f1e26213" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Shape == 4) { // }} "" // {{ 2507 1 0 "b3d17f48_6521_4723_8c85329bde1b8bac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TopDiameter = flt_Dz; // }} "" // {{ 2508 1 0 "9672a3b3_d367_45b9_beee7751f1e26213" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2509 1 0 "05f8fe9d_511b_4130_a5001384a915303e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Shape == 5) { // }} "" // {{ 2510 1 0 "93d84481_c231_4235_96b33454598ba0a7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TopDiameter = flt_Dz; // }} "" // {{ 2511 1 0 "05f8fe9d_511b_4130_a5001384a915303e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2512 1 0 "ca71c6d0_0762_42f3_b43f2e726a98903e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Shape.AddAsLast(int_Shape); // }} "" // {{ 2513 1 0 "455d3478_c0f3_4800_8d9853b80b122ba8" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_MinHeight.AddAsLast(flt_Min); // }} "" // {{ 2514 1 0 "21eaec6f_638b_425f_8823d6fe85f09385" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_MaxHeight.AddAsLast(flt_Max); // }} "" // {{ 2515 1 0 "3f80e9cf_f2ec_4cc3_ace175b5bf1e3574" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_TopDiameter.AddAsLast(flt_TopDiameter); // }} "" // {{ 2516 1 0 "e0e49af4_ece2_4849_966f7b4f836b7aeb" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_BottomDiameter.AddAsLast(flt_BottomDiameter); // }} "" // {{ 2517 1 0 "7e179a9a_2bc2_41d8_84ef0c885540da70" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" i = i - 1; // }} "" // {{ 2518 1 0 "3ba77a87_98b6_4b48_a132ab4db2a20f20" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2519 1 0 "550dd227_b2f5_412d_b2faaad16bb31c04" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentVolume = 0.0; // }} "" // {{ 2520 1 0 "0819498f_bbb9_4f50_9bd9174a477f7e31" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MinimumVolume = 0.0; // }} "" // {{ 2521 1 0 "a64310f1_6901_4281_ac1b96c9d8fcc7e6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentHeight = 0.0; // }} "" // {{ 2522 1 0 "0f532515_145d_4b84_a37b440ee80ddd2b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_SegmentNumber = 0; // }} "" // {{ 2523 1 0 "48105dc0_0f21_4089_99b58f53010260c0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentMax = 0.0; // }} "" // {{ 2524 1 0 "efd67301_d17b_47ee_94956e69a49fc9a7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (BOOLEON::TRUE == BOOLEON::TRUE) { // }} "" // {{ 2525 1 0 "97dc4464_6e0d_4a23_b26369cf3771f795" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentHeight >= i_flt_HeightToCalculate) { // }} "" // {{ 2526 1 0 "b6dab12c_7038_4538_acc880baec3da876" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2527 1 0 "97dc4464_6e0d_4a23_b26369cf3771f795" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2528 1 0 "f0edea11_e722_4a58_a5fc58fb4c16f82a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentHeight = flt_CurrentHeight + 0.1; // }} "" // {{ 2529 1 0 "06a2aba7_5e7e_43c5_b9f725def4f81a59" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentHeight > flt_CurrentMax) { // }} "" // {{ 2530 1 0 "bd6cd05c_234c_4c59_92544f43d41c058c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_SegmentNumber = int_SegmentNumber + 1; // }} "" // {{ 2531 1 0 "6bd01fce_2bcf_4f36_b22af91f532bf598" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MinimumVolume = flt_CurrentVolume; // }} "" // {{ 2532 1 0 "c4c6b25d_9953_4f25_964b3bcd3193fe07" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_SegmentNumber > int_TotalSegments) { // }} "" // {{ 2533 1 0 "efb17e1e_b635_4949_b89c2617e533b5c6" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2534 1 0 "c4c6b25d_9953_4f25_964b3bcd3193fe07" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2535 1 0 "06a2aba7_5e7e_43c5_b9f725def4f81a59" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2536 1 0 "7c6c3e8a_7116_4a69_a46e3cd8354a510e" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_CurrentMax=arr_MaxHeight.GetAt(int_SegmentNumber-1); // }} "" // {{ 2537 1 0 "846c9ee1_dbc9_4406_a47e969c130c168b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_CheckHeight = flt_CurrentHeight - arr_MinHeight.ElementAt( int_SegmentNumber -1); // }} "" // {{{ 2538 1 0 "24c1010c_d383_4a6e_98554fbe62af83b5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" __GetVolumeForSegmentHeight(arr_Shape.ElementAt( int_SegmentNumber -1), arr_TopDiameter.ElementAt( int_SegmentNumber -1), arr_BottomDiameter.ElementAt( int_SegmentNumber -1), flt_CheckHeight, flt_Volume); // }} "" // {{ 2539 1 0 "217182e5_b91f_4193_b99377499cf8efdb" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentVolume = flt_MinimumVolume + flt_Volume; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Current Height: ",flt_CurrentHeight," Current Volume: ",flt_CurrentVolume); /* {{ 1 "" "1" */ } /* }} "" */ // {{ 2541 1 0 "efd67301_d17b_47ee_94956e69a49fc9a7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2542 1 0 "fa383c86_bb2b_4ca7_95b944e8024b3dee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_VolumeFromHeight = flt_CurrentVolume; // }} "" // {{{ 2543 1 0 "e7184a20_7917_48c5_af2a271adda81d7d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_VolumeFromHeight = MthRound(o_flt_VolumeFromHeight, 1); // }} "" // {{{ 5 "_GetVolumeBasedOnHeight" "End" } // }} "" // {{{ 5 "_GetLiquidFollowingForAllChannels" "Begin" private function _GetLiquidFollowingForAllChannels( device & ML_STAR, variable & i_arr_FixedHeights[], sequence i_seq_PositionsToCalculate, variable i_bln_LiquidFollowingEnabled, variable i_bln_Aspirate, variable i_flt_VolumeToUse, variable i_str_ChPattern, variable & o_arr_LiquidFollowingDistance[] ) void { // }} "" private variable flt_LiquidFollow; private variable str_LabID; private variable int_TotalChannels; private variable int_ChannelIndex; private variable str_PosID; private variable int_TotalInSeq; private variable int_Value; // {{ 5 "_GetLiquidFollowingForAllChannels" "InitLocals" o_arr_LiquidFollowingDistance.SetSize( 0); // }} "" // {{{ 2309 1 0 "94063077_2a57_45a5_9dea7d40cfd2db13" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::GetChannelNumber1mL(ML_STAR, int_TotalChannels); // }} "" // {{ 2310 1 0 "6825d597_1532_4c4b_ba34d8fb8c2e4eb7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_Aspirate == BOOLEON::TRUE) { // }} "" // {{ 2311 1 0 "cfcac569_afa0_4ccc_b2f6ffe074120afe" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" i_flt_VolumeToUse = i_flt_VolumeToUse * -1; // }} "" // {{ 2312 1 0 "6825d597_1532_4c4b_ba34d8fb8c2e4eb7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2313 1 0 "60abee57_c8c1_4fbe_825b8f18de7eeed4" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_LiquidFollowingDistance.SetSize(0); // }} "" // {{{ 2314 1 0 "dcc3b4c2_09af_4966_9718440494a15869" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalInSeq = SeqGetTotal(i_seq_PositionsToCalculate); // }} "" // {{ 2315 1 0 "9e7ec2d0_c501_4b21_a28ba2e39618c507" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{ 2316 1 0 "36650e1d_5e33_4a6f_8cafc41bc5bdb75c" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_PositionsToCalculate.SetCurrentPosition(int_ChannelIndex); // }} "" // {{{ 2317 1 0 "0b9f364a_444e_4e36_965a0caa2256bed5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(i_str_ChPattern, int_ChannelIndex, int_Value); // }} "" // {{ 2318 1 0 "c6b65f00_7100_48a7_8ba502046afabe40" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{ 2319 1 0 "567fecfc_be74_4e86_8268e15cb7ab6b4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelIndex <= int_TotalInSeq) { // }} "" // {{{ 2320 1 0 "1a7bff4d_9f79_4e50_b2fdce70d8eba802" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_PositionsToCalculate); // }} "" // {{{ 2321 1 0 "1c7184b3_88c7_42c9_8f6034cea7dd5644" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_PositionsToCalculate); // }} "" // {{ 2322 1 0 "bf559173_4f7d_4c9a_918d83a77e262dd2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_LiquidFollowingEnabled == BOOLEON::TRUE) { // }} "" // {{{ 2323 1 0 "35abdc8f_43cb_48ac_8771f1dafb65aedd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _CalculateLiquidFollowDistance(ML_STAR, str_LabID, str_PosID, i_arr_FixedHeights.ElementAt( int_ChannelIndex -1), i_flt_VolumeToUse, i_bln_Aspirate, flt_LiquidFollow); // }} "" // {{ 2324 1 0 "bf559173_4f7d_4c9a_918d83a77e262dd2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2325 1 0 "d5ecd557_7b9d_4caa_9f387d6d9f116094" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollow = 0.0; // }} "" // {{ 2326 1 0 "bf559173_4f7d_4c9a_918d83a77e262dd2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2327 1 0 "567fecfc_be74_4e86_8268e15cb7ab6b4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2328 1 0 "d66a0a1c_93f1_4e78_b280464d82bb6bee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollow = 0.0; // }} "" // {{ 2329 1 0 "567fecfc_be74_4e86_8268e15cb7ab6b4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2330 1 0 "f744c73a_93df_41d0_94ab0f745aa885eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_LiquidFollow = MthRound(flt_LiquidFollow, 1); // }} "" // {{ 2331 1 0 "c6b65f00_7100_48a7_8ba502046afabe40" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2332 1 0 "ba294a26_1e03_4263_a55e0336b1fc63d7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollow = 0.0; // }} "" // {{ 2333 1 0 "c6b65f00_7100_48a7_8ba502046afabe40" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2334 1 0 "d142b0ed_e515_4b48_939b602e3201705c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_LiquidFollowingDistance.AddAsLast(flt_LiquidFollow); // }} "" // {{ 2335 1 0 "9e7ec2d0_c501_4b21_a28ba2e39618c507" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "_GetLiquidFollowingForAllChannels" "End" } // }} "" // {{{ 5 "_ApplyOffsetToArrayofValues" "Begin" private function _ApplyOffsetToArrayofValues( variable & i_arr_Values[], variable i_flt_Offset, variable & o_arr_AdjustedValues[] ) void { // }} "" private variable int_TotalChannels; private variable int_ChannelIndex; private variable flt_NewValue; // {{ 5 "_ApplyOffsetToArrayofValues" "InitLocals" o_arr_AdjustedValues.SetSize( 0); // }} "" // {{ 1667 1 0 "0bae8f1b_f66f_4b55_870dbe5d15216391" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_AdjustedValues.SetSize(0); // }} "" // {{ 1668 1 0 "474376b2_e405_46b7_9493f83a471b3869" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalChannels=i_arr_Values.GetSize(); // }} "" // {{ 1669 1 0 "5534d8c3_421a_47f5_a1dbb1da81adc6f0" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{ 1670 1 0 "13b571c6_6f1f_4233_afa10add353fb6ea" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_NewValue = i_arr_Values.ElementAt( int_ChannelIndex -1) + i_flt_Offset; // }} "" // {{ 1671 1 0 "ac912414_9e42_442d_b5792c9a1a18c5ff" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_AdjustedValues.AddAsLast(flt_NewValue); // }} "" // {{ 1672 1 0 "5534d8c3_421a_47f5_a1dbb1da81adc6f0" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "_ApplyOffsetToArrayofValues" "End" } // }} "" // {{{ 5 "_GetLiquidClassParams" "Begin" private function _GetLiquidClassParams( variable i_str_LiquidClass, variable i_bln_Asp, variable & o_flt_FlowRate, variable & o_flt_MixFlowRate, variable & o_flt_AirTransportVolume, variable & o_flt_BlowoutVolume, variable & o_flt_SwapSpeed, variable & o_int_SettlingTime, variable & o_flt_OverAspVolume, variable & o_flt_ClotRetractHeight, variable & o_flt_StopFlowRate, variable & o_flt_StopBackVolume, variable & o_flt_MaxVolume, variable & o_int_DispenseMode, variable & o_arr_CorrectionCurveX[], variable & o_arr_CorrectionCurveY[] ) void { // }} "" private variable str_LiquidName; private variable int_TipType; private variable str_DispenseMode; // {{ 5 "_GetLiquidClassParams" "InitLocals" o_flt_FlowRate = 0; o_flt_MixFlowRate = 0; o_flt_AirTransportVolume = 0; o_flt_BlowoutVolume = 0; o_flt_SwapSpeed = 0; o_int_SettlingTime = 0; o_flt_OverAspVolume = 0; o_flt_ClotRetractHeight = 0; o_flt_StopFlowRate = 0; o_flt_StopBackVolume = 0; o_flt_MaxVolume = 0; o_int_DispenseMode = 0; o_arr_CorrectionCurveX.SetSize( 0); o_arr_CorrectionCurveY.SetSize( 0); // }} "" // {{ 2262 1 0 "2453ebcf_bd9c_47cf_988faa25fe0e1763" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_AirTransportVolume = 0.0; // }} "" // {{ 2263 1 0 "964832dc_255b_47d0_95b0182dd023cae9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_BlowoutVolume = 0.0; // }} "" // {{ 2264 1 0 "cdfdf9b0_df3d_4894_bf6d53de491b8d2c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_ClotRetractHeight = 0.0; // }} "" // {{{ 2265 1 0 "37d5cd05_4581_4e75_8793accda87e9a59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Liquid Class: "), i_str_LiquidClass); // }} "" // {{ 2266 1 0 "440b3194_eaa0_4abb_af67e7974bb44257" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_FlowRate = 0.0; // }} "" // {{ 2267 1 0 "1d26e89f_dd0b_4c85_acb570ccd6222e9e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_MixFlowRate = 0.0; // }} "" // {{ 2268 1 0 "fa99a00e_91c4_4c7f_b6b18ceeb3a008fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_OverAspVolume = 0.0; // }} "" // {{ 2269 1 0 "5de256cd_2dcb_4f65_8fda97e48204617f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_StopBackVolume = 0.0; // }} "" // {{ 2270 1 0 "2c32f5ab_a37f_40c8_a953422592285f40" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_StopFlowRate = 0.0; // }} "" // {{ 2271 1 0 "f3abfae8_4dad_4554_b881e24e8b148933" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_SwapSpeed = 0.0; // }} "" // {{ 2272 1 0 "47b63014_adce_441a_ac38ffb898c4d50b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_SettlingTime = 0; // }} "" // {{ 2273 1 0 "3a5cce18_39f6_47cd_bb1d920005264b08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_MaxVolume = 0.0; // }} "" // {{ 2274 1 0 "9dc93cbf_17f2_4c65_b0761fdb14591344" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_CorrectionCurveX.SetSize(0); // }} "" // {{ 2275 1 0 "562eb4f5_2fdd_4e73_ae4ec5120ea1a095" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_CorrectionCurveY.SetSize(0); // }} "" // {{{ 2276 1 0 "ad491e2c_620e_4f59_957994df76d90b87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MLSTAR_LIQUIDCLASSLib::Initialize(BOOLEON::TRUE); // }} "" // {{{ 2277 1 0 "eac32921_0d3f_4591_a403f53cfc7b6cd3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MLSTAR_LIQUIDCLASSLib::SelectLiquidClass(i_str_LiquidClass); // }} "" // {{{ 2278 1 0 "a2907b51_776c_4ecb_b0abfd381b4723f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MLSTAR_LIQUIDCLASSLib::GetCorrectionCurve(o_arr_CorrectionCurveX, o_arr_CorrectionCurveY); // }} "" // {{{ 2279 1 0 "51181bca_30d4_49c5_967dab11a7344251" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_MaxVolume = MLSTAR_LIQUIDCLASSLib::GetLiquidClassParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS::MaxAspirateVolume); // }} "" // {{{ 2280 1 0 "b809532c_8463_4c53_8bd07e69abfe6667" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LiquidName = MLSTAR_LIQUIDCLASSLib::GetLiquidClassParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS::LiquidName); // }} "" // {{{ 2281 1 0 "45303782_9445_47c3_94a902203fedce14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TipType = MLSTAR_LIQUIDCLASSLib::GetLiquidClassParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS::TipType); // }} "" // {{{ 2282 1 0 "c6cde118_e451_4b0e_9faf7042ca503b9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_DispenseMode = MLSTAR_LIQUIDCLASSLib::GetLiquidClassParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS::DispenseMode); // }} "" // {{{ 2283 1 0 "54ca59a6_8b69_47e7_b069940645c3e88e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::ConvertToInteger(str_DispenseMode, o_int_DispenseMode); // }} "" // {{ 2284 1 0 "bb2c02ba_a34f_4e4a_8a23ad07b3a01565" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_Asp == BOOLEON::TRUE) { // }} "" // {{{ 2285 1 0 "2e1de501_3213_4015_99a4364ffbf27ba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Max volume for tip: "), o_flt_MaxVolume); // }} "" // {{{ 2286 1 0 "080d09ec_b590_4d39_b854fde7494f1367" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Liquid Name: "), str_LiquidName); // }} "" // {{{ 2287 1 0 "94bd4c35_f1e6_4897_8291a347912d3410" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Tip Type: "), int_TipType); // }} "" // {{{ 2288 1 0 "82edc29e_bcc7_4092_a5566f0a3051635d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Dispense Mode: "), str_DispenseMode); // }} "" // {{{ 2289 1 0 "383a9a34_e24a_4466_9477c56322411d72" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_AirTransportVolume = MLSTAR_LIQUIDCLASSLib::GetLiquidClassAspirateParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_ASP::AirTransportVolume); // }} "" // {{{ 2290 1 0 "64e3587e_2d72_4e55_9522c4a518a4cb81" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_BlowoutVolume = MLSTAR_LIQUIDCLASSLib::GetLiquidClassAspirateParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_ASP::BlowOutVolume); // }} "" // {{{ 2291 1 0 "63d70743_c2ef_47cc_a8ce83a74e33fe03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_ClotRetractHeight = MLSTAR_LIQUIDCLASSLib::GetLiquidClassAspirateParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_ASP::ClotRetractHeight); // }} "" // {{{ 2292 1 0 "99b73645_d473_471f_a45b7aed0bc8bfc7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_FlowRate = MLSTAR_LIQUIDCLASSLib::GetLiquidClassAspirateParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_ASP::FlowRate); // }} "" // {{{ 2293 1 0 "a5e9c794_5ee5_444e_842f67aa3684b275" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_MixFlowRate = MLSTAR_LIQUIDCLASSLib::GetLiquidClassAspirateParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_ASP::MixFlowRate); // }} "" // {{{ 2294 1 0 "ef106bf3_351c_4800_a8c4bbcc76c0cd15" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_OverAspVolume = MLSTAR_LIQUIDCLASSLib::GetLiquidClassAspirateParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_ASP::OverAspirateVolume); // }} "" // {{{ 2295 1 0 "b364f999_63dc_4b61_ba08af119ae8bce1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_SwapSpeed = MLSTAR_LIQUIDCLASSLib::GetLiquidClassAspirateParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_ASP::SwapSpeed); // }} "" // {{{ 2296 1 0 "c76761dd_3354_4838_80c8c5db4757a67a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_int_SettlingTime = MLSTAR_LIQUIDCLASSLib::GetLiquidClassAspirateParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_ASP::SettlingTime); // }} "" // {{ 2297 1 0 "bb2c02ba_a34f_4e4a_8a23ad07b3a01565" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 2298 1 0 "3779238b_931b_4b23_b5be068e1c77e2c7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_AirTransportVolume = MLSTAR_LIQUIDCLASSLib::GetLiquidClassDispenseParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_DISP::AirTransportVolume); // }} "" // {{{ 2299 1 0 "0d508bc4_b17e_4f7f_82a0bab4eb3574ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_BlowoutVolume = MLSTAR_LIQUIDCLASSLib::GetLiquidClassDispenseParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_DISP::BlowOutVolume); // }} "" // {{{ 2300 1 0 "8a8621a4_9935_4bca_9c5858420bc6c628" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_FlowRate = MLSTAR_LIQUIDCLASSLib::GetLiquidClassDispenseParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_DISP::FlowRate); // }} "" // {{{ 2301 1 0 "85ff1a94_5506_42a8_8062dd3a769357fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_MixFlowRate = MLSTAR_LIQUIDCLASSLib::GetLiquidClassDispenseParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_DISP::MixFlowRate); // }} "" // {{{ 2302 1 0 "0dcf0bcf_e4dc_49d9_a1e42d01a78e8117" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_int_SettlingTime = MLSTAR_LIQUIDCLASSLib::GetLiquidClassDispenseParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_DISP::SettlingTime); // }} "" // {{{ 2303 1 0 "be79080a_a46f_40bc_8caba486b8ba99e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_StopBackVolume = MLSTAR_LIQUIDCLASSLib::GetLiquidClassDispenseParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_DISP::StopBackVolume); // }} "" // {{{ 2304 1 0 "c7c1181c_5c1f_4712_a73f9f5bdd0be130" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_StopFlowRate = MLSTAR_LIQUIDCLASSLib::GetLiquidClassDispenseParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_DISP::StopFlowRate); // }} "" // {{{ 2305 1 0 "f775bbc4_eca3_435a_81adb06d7d411860" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_SwapSpeed = MLSTAR_LIQUIDCLASSLib::GetLiquidClassDispenseParameter(MLSTAR_LIQUIDCLASSLib::LIQUIDCLASS_PARAMS_DISP::SwapSpeed); // }} "" // {{ 2306 1 0 "bb2c02ba_a34f_4e4a_8a23ad07b3a01565" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2307 1 0 "9083957d_151b_4d89_a844afad23cc5adf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" T_PIP_TOOLS_LIQUID_CLASS = i_str_LiquidClass; // }} "" // {{{ 5 "_GetLiquidClassParams" "End" } // }} "" // {{{ 5 "_InitLiquidClassStorage" "Begin" private function _InitLiquidClassStorage( ) void { // }} "" // {{ 5 "_InitLiquidClassStorage" "InitLocals" // }} "" // {{ 2573 1 0 "2ea11d12_6f32_4117_adc3b6bbf45c7b65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (T_PIP_TOOLS_LIQUID_CLASS_INIT == BOOLEON::FALSE) { // }} "" // {{ 2574 1 0 "aa5ccff2_ae2d_4f0c_9e817ae19a68973d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" T_PIP_TOOLS_LIQUID_CLASS_INIT = BOOLEON::TRUE; // }} "" // {{ 2575 1 0 "93ba6e1e_05ca_4527_ae5466ce0192cac5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" T_PIP_TOOLS_LIQUID_CLASS = Translate(""); // }} "" // {{ 2576 1 0 "33ab5e85_7607_4f01_b238e8e578428a32" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" T_PIP_TOOLS_ASP_FLOW_RATE = 0.0; // }} "" // {{ 2577 1 0 "9d10541c_2312_454e_9d840cf291ce0395" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" T_PIP_TOOLS_ASP_MIX_FLOW_RATE = 0.0; // }} "" // {{ 2578 1 0 "fab017f2_d5cd_4362_a06682310ec92807" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" T_PIP_TOOLS_ASP_AIR_TRANSPORT = 0.0; // }} "" // {{ 2579 1 0 "92f38e5f_122f_445a_97da414fbab30cc3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" T_PIP_TOOLS_ASP_BLOWOUT = 0.0; // }} "" // {{ 2580 1 0 "c789b979_65e4_4996_8d7474c945d13f42" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" T_PIP_TOOLS_ASP_SWAP = 0.0; // }} "" // {{ 2581 1 0 "a2ecf107_0882_4079_840f8395dfc20123" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" T_PIP_TOOLS_ASP_SETTLING = 0.0; // }} "" // {{ 2582 1 0 "f3bb0ea8_b6f8_416b_850574e71f441364" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" T_PIP_TOOLS_ASP_OVERASPIRATE = 0.0; // }} "" // {{ 2583 1 0 "0eda17cc_5735_48cc_85c7930542bafc14" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" T_PIP_TOOLS_ASP_CLOT_RETRACT = 0.0; // }} "" // {{ 2584 1 0 "623668a3_91a7_47d4_835a2fdcbadfe80c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" T_PIP_TOOLS_DISP_FLOW_RATE = 0.0; // }} "" // {{ 2585 1 0 "eeb214ed_f2c1_4f74_a12960756ec33811" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" T_PIP_TOOLS_DISP_MIX_FLOW_RATE = 0.0; // }} "" // {{ 2586 1 0 "de50f03c_8c24_43aa_b3f5de8c20ec0fb8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" T_PIP_TOOLS_DISP_AIR_TRANSPORT = 0.0; // }} "" // {{ 2587 1 0 "e808f5d3_a610_41ec_890013f49cbd5d16" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" T_PIP_TOOLS_DISP_BLOWOUT = 0.0; // }} "" // {{ 2588 1 0 "46c6bbd6_d189_4374_8768302dc8c42eef" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" T_PIP_TOOLS_DISP_SWAP = 0.0; // }} "" // {{ 2589 1 0 "315ec1ab_e691_46f4_97aa53e44d5e6b00" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" T_PIP_TOOLS_DISP_SETTLING = 0.0; // }} "" // {{ 2590 1 0 "bbb6eedc_7632_40c0_a85c8e494924f455" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" T_PIP_TOOLS_DISP_STOP_FLOW = 0.0; // }} "" // {{ 2591 1 0 "a711830d_f47e_46b4_b7bc36af6668256b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" T_PIP_TOOLS_DISP_STOP_BACK = 0.0; // }} "" // {{ 2592 1 0 "df7fcad4_6e0c_481b_89cc1a8a043063da" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" T_PIP_TOOLS_MAX_VOLUME = 0.0; // }} "" // {{ 2593 1 0 "443cd5de_4f98_43c9_b05a138241b34194" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" T_PIP_TOOLS_DISPENSE_MODE = -1; // }} "" // {{ 2594 1 0 "add94a74_e794_4465_a63a8b1ac958314b" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" T_PIP_TOOLS_ARR_CORRECTION_X.SetSize(0); // }} "" // {{ 2595 1 0 "09e6e3fa_57e5_4a74_b9cde0912d2dee1c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" T_PIP_TOOLS_ARR_CORRECTION_Y.SetSize(0); // }} "" // {{ 2596 1 0 "2ea11d12_6f32_4117_adc3b6bbf45c7b65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "_InitLiquidClassStorage" "End" } // }} "" // {{{ 5 "_GetCorrectedValueForVolume" "Begin" private function _GetCorrectedValueForVolume( variable i_flt_VolumeToConvert, variable & i_arr_CorrectionX[], variable & i_arr_CorrectionY[], variable & o_flt_CorrectedVolume ) void { // }} "" private variable arr_TempX[]; private variable arr_TempY[]; private variable int_TotalCorrectionPoints; private variable i; private variable int_Index; private variable flt_Slope; private variable flt_Check; private variable flt_Intercept; // {{ 5 "_GetCorrectedValueForVolume" "InitLocals" o_flt_CorrectedVolume = 0; // }} "" // {{{ 1944 1 0 "eddc73a2_20cc_45f1_be141cb0456571f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_flt_VolumeToConvert = MthRound(i_flt_VolumeToConvert, 1); // }} "" // {{ 1945 1 0 "00b5cbaf_2483_429f_aa0022e409114a7b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CorrectedVolume = i_flt_VolumeToConvert; // }} "" // {{ 1946 1 0 "46eb004f_d4d7_4b88_91d2e83a566a5522" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_TempX.SetSize(0); // }} "" // {{ 1947 1 0 "01495092_cb3e_45c9_a8048ac70dae955b" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_TempY.SetSize(0); // }} "" // {{ 1948 1 0 "0c7cdddd_d51a_4c9a_992bc853916b4558" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1949 1 0 "3f7b8ab5_593a_448f_968eaaf804cb1091" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalCorrectionPoints=i_arr_CorrectionX.GetSize(); // }} "" // {{ 1950 1 0 "8768e382_5be4_4295_a0477da10ab10bda" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Check = 0.0; // }} "" // {{ 1951 1 0 "3b9591d0_e586_4e59_ad81b23067ed19bb" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalCorrectionPoints;) { i = i + 1; // }} "" // {{ 1952 1 0 "231c0858_484d_4fc6_8776ec89a9d367be" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Index = int_TotalCorrectionPoints + 1; // }} "" // {{ 1953 1 0 "7c3871c5_3cc1_41ad_b4125e1b3ce57e87" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Index = int_Index - i; // }} "" // {{ 1954 1 0 "651d3dc3_7dde_4a7e_b08f925643481fbe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_arr_CorrectionX.ElementAt( int_Index -1) == i_flt_VolumeToConvert) { // }} "" // {{ 1955 1 0 "c17f87c5_4812_4594_8fc74240aa67ab69" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_TempX.AddAsLast(i_arr_CorrectionX.ElementAt( int_Index -1)); // }} "" // {{ 1956 1 0 "ffc022ca_3a5b_4a07_b5fb44f8346da6f1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_TempY.AddAsLast(i_arr_CorrectionY.ElementAt( int_Index -1)); // }} "" // {{ 1957 1 0 "e724fb29_59eb_4c0b_8d5cde7deb021946" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Check = i_arr_CorrectionY.ElementAt( int_Index -1); // }} "" // {{ 1958 1 0 "4877b425_7fab_4b84_9ee66f7e02bdcd1b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1959 1 0 "651d3dc3_7dde_4a7e_b08f925643481fbe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1960 1 0 "a882cc62_1504_4424_9b43970291464bdb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_arr_CorrectionX.ElementAt( int_Index -1) < i_flt_VolumeToConvert) { // }} "" // {{ 1961 1 0 "0ff54e5b_0038_4b91_aea42181ffa6358c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_TempX.AddAsLast(i_arr_CorrectionX.ElementAt( int_Index -1)); // }} "" // {{ 1962 1 0 "793824b7_e7e8_4881_925f7b039cf72b50" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_TempY.AddAsLast(i_arr_CorrectionY.ElementAt( int_Index -1)); // }} "" // {{ 1963 1 0 "1ea686ac_3511_480b_8f9751bfc3204faf" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1964 1 0 "a882cc62_1504_4424_9b43970291464bdb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1965 1 0 "651d3dc3_7dde_4a7e_b08f925643481fbe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1966 1 0 "6108f4b1_f3fb_45fe_9039e209d648804b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i == int_TotalCorrectionPoints) { // }} "" // {{ 1967 1 0 "9393ce4f_e9d5_4832_8c145024152d01d5" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("TARGET VOLUME IS BELOW THE CORRECTION CURVE FOR THE LIQUID CLASS!")); // }} "" // {{{ 1968 1 0 "be8d6f2d_5ae0_487d_93a6e8c2d5f6aa06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Minimum correction value: "), i_arr_CorrectionX.ElementAt( int_Index -1)); // }} "" // {{{ 1969 1 0 "a82ef2b7_c0b5_406f_b46d22569ffbf555" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Required Volume: "), i_flt_VolumeToConvert); // }} "" // {{{ 1970 1 0 "5804e8db_c6b0_4056_b558533516dea303" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("TARGET VOLUME IS BELOW THE CORRECTION CURVE FOR THE LIQUID CLASS!")); // }} "" // {{ 1971 1 0 "6108f4b1_f3fb_45fe_9039e209d648804b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1972 1 0 "3b9591d0_e586_4e59_ad81b23067ed19bb" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1973 1 0 "3337ea6e_8411_489b_8018a9a2cc404ee3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1974 1 0 "ffa7f68e_81c0_4469_a74d3cde766bb9f8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_Index = 0; int_Index < int_TotalCorrectionPoints;) { int_Index = int_Index + 1; // }} "" // {{ 1975 1 0 "8337e166_7ff3_402a_b839e1a49ff3ec0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_arr_CorrectionX.ElementAt( int_Index -1) == i_flt_VolumeToConvert) { // }} "" // {{ 1976 1 0 "7518977e_32c2_4212_b7eab4413de41952" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_TempX.AddAsLast(i_arr_CorrectionX.ElementAt( int_Index -1)); // }} "" // {{ 1977 1 0 "776ee4d1_6e08_402e_8c0d0495d3dc7170" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_TempY.AddAsLast(i_arr_CorrectionY.ElementAt( int_Index -1)); // }} "" // {{ 1978 1 0 "50b3a5e4_a3b1_4813_aee0d57efaa6dae9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Check = i_arr_CorrectionY.ElementAt( int_Index -1); // }} "" // {{ 1979 1 0 "6ef85c40_6ebd_4cac_8662b95dfd7a6a4c" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1980 1 0 "8337e166_7ff3_402a_b839e1a49ff3ec0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1981 1 0 "114b8df1_cd78_4ad8_b980a965a7501049" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_arr_CorrectionX.ElementAt( int_Index -1) > i_flt_VolumeToConvert) { // }} "" // {{ 1982 1 0 "331ffbf2_544b_490d_ba55d705277b279d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_TempX.AddAsLast(i_arr_CorrectionX.ElementAt( int_Index -1)); // }} "" // {{ 1983 1 0 "07c53200_6541_47db_bc1df56181b8ab19" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_TempY.AddAsLast(i_arr_CorrectionY.ElementAt( int_Index -1)); // }} "" // {{ 1984 1 0 "2faccc67_9301_4bdb_ba8e1084580d5161" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1985 1 0 "114b8df1_cd78_4ad8_b980a965a7501049" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1986 1 0 "8337e166_7ff3_402a_b839e1a49ff3ec0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1987 1 0 "4d20416a_ed2f_4851_a5862c778e54c275" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index == int_TotalCorrectionPoints) { // }} "" // {{ 1988 1 0 "00080fbe_8fbc_497b_b57d140d30f60c94" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("TARGET VOLUME IS ABOVE THE CORRECTION CURVE FOR THE LIQUID CLASS!")); // }} "" // {{{ 1989 1 0 "15746c39_fa55_4ebb_9ad69cd2d1139c7b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Maximum correction value: "), i_arr_CorrectionX.ElementAt( int_Index -1)); // }} "" // {{{ 1990 1 0 "e4c66252_fbfb_4b6f_98e9e3271c787650" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Required Volume: "), i_flt_VolumeToConvert); // }} "" // {{{ 1991 1 0 "c5ca4b15_30d5_4690_80d0fdb873ea4872" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, Translate("TARGET VOLUME IS ABOVE THE CORRECTION CURVE FOR THE LIQUID CLASS!")); // }} "" // {{ 1992 1 0 "4d20416a_ed2f_4851_a5862c778e54c275" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1993 1 0 "ffa7f68e_81c0_4469_a74d3cde766bb9f8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1994 1 0 "33995903_e7b4_4f89_883ac282449d816c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Check == 0.0) { // }} "" // {{{ 1995 1 0 "851142b4_8de3_455f_bd95ed0b0437918d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Slope = HSLStatisitics::Stat_Slope(arr_TempX, arr_TempY); // }} "" // {{{ 1996 1 0 "600d0b8f_8758_4a81_8012e6a6499dd60d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Intercept = HSLStatisitics::Stat_Intercept(arr_TempX, arr_TempY); // }} "" // {{ 1997 1 0 "338f7966_7a3c_488f_883c8be90738169a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_CorrectedVolume = i_flt_VolumeToConvert * flt_Slope; // }} "" // {{ 1998 1 0 "93901b14_ce17_46be_9f72a69672b18b3f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_CorrectedVolume = o_flt_CorrectedVolume + flt_Intercept; // }} "" // {{ 1999 1 0 "33995903_e7b4_4f89_883ac282449d816c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2000 1 0 "d1073b52_dfb6_4be4_aec332b961ad8fd5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CorrectedVolume = flt_Check; // }} "" // {{ 2001 1 0 "33995903_e7b4_4f89_883ac282449d816c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2002 1 0 "57ba0d79_c7b6_47c7_8d806618053d78df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_CorrectedVolume = MthRound(o_flt_CorrectedVolume, 1); // }} "" // {{{ 5 "_GetCorrectedValueForVolume" "End" } // }} "" // {{{ 5 "TOOL_CalculateHeightForVolume" "Begin" function TOOL_CalculateHeightForVolume( device & ML_STAR, sequence i_seq_LabwareForCalculation, variable i_flt_VolumeInLabware, variable & o_flt_HeightOfVolume ) void { // }} "" private variable _strFunctionName; private variable str_LabID; private variable str_PosID; private variable str_ConfigFile; // {{ 5 "TOOL_CalculateHeightForVolume" "InitLocals" o_flt_HeightOfVolume = 0; // }} "" // {{ 1629 1 0 "446f46e1_e3b8_4142_a9c1991c881c0b1e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1630 1 0 "1aaf080b_b35e_4b37_99edef9cc4442249" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 1632 1 0 "7f98e0d0_23be_4ce3_b64c8958efcea932" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 1633 1 0 "446f46e1_e3b8_4142_a9c1991c881c0b1e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1634 1 0 "44055d69_b295_4dda_83173824f261f5dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_LabwareForCalculation); // }} "" // {{{ 1635 1 0 "df01cd49_4573_4d38_bd0e5639fc2fba99" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_LabwareForCalculation); // }} "" // {{{ 1636 1 0 "c7caea72_b763_4a2a_a48d8bbe0f73c071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" LabID: "), str_LabID, Translate(" Position ID: "), str_PosID); // }} "" // {{{ 1637 1 0 "b8d1558c_d05d_4022_beb140ec8d143b65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_LabID, str_PosID, str_ConfigFile); // }} "" // {{{ 1638 1 0 "4a533c30_5e8a_4724_ae631a0d8ce5748a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetHeightBasedOnVolume(str_ConfigFile, i_flt_VolumeInLabware, o_flt_HeightOfVolume); // }} "" // {{{ 1639 1 0 "f2481650_a64c_4050_946676ad7820f40e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" Volume: "), i_flt_VolumeInLabware, Translate(" Height: "), o_flt_HeightOfVolume); // }} "" // {{ 1640 1 0 "8f070cd4_b3cc_4fe3_ac63cf2de31a1ba3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1641 1 0 "ef2e565e_3b3d_40ba_a4a457c06516ff36" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 1642 1 0 "8f070cd4_b3cc_4fe3_ac63cf2de31a1ba3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TOOL_CalculateHeightForVolume" "End" } // }} "" // {{{ 5 "PIP_ProgressSequenceFromChannelPattern" "Begin" function PIP_ProgressSequenceFromChannelPattern( variable i_str_ChPattern, variable i_bln_ProgressByUsedChannels, sequence & io_seq_SequenceToProgress ) void { // }} "" private variable _strFunctionName; private variable int_Length; private variable int_TotalProgression; // {{ 5 "PIP_ProgressSequenceFromChannelPattern" "InitLocals" // }} "" // {{ 1605 1 0 "9c9f49c3_93e3_4df3_a8f9fc8192d186d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1606 1 0 "e4f79115_2f84_400d_a3ac050c987632f0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 1608 1 0 "5676e078_7982_4862_b25c20922653ec2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 1609 1 0 "9c9f49c3_93e3_4df3_a8f9fc8192d186d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1610 1 0 "9161e7aa_09a8_4aac_b184a94d4813af21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Channel Pattern: "), i_str_ChPattern, Translate("")); // }} "" // {{ 1611 1 0 "307b3155_677a_46b5_a4f024ed2a0a0cc1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_ProgressByUsedChannels == BOOLEON::TRUE) { // }} "" // {{{ 1612 1 0 "a4f9c95f_6e40_46ff_a46f30bc6e08a8b2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalProgression = StrReplace(i_str_ChPattern, Translate("1"), Translate("1")); // }} "" // {{ 1613 1 0 "307b3155_677a_46b5_a4f024ed2a0a0cc1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1614 1 0 "83cc381c_04ed_46f1_a21a6c3123060151" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Length = StrGetLength(i_str_ChPattern); // }} "" // {{ 1615 1 0 "e86aa86c_fc9e_4cd7_8e1b376b6d68b518" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TotalProgression = int_Length; // }} "" // {{ 1616 1 0 "307b3155_677a_46b5_a4f024ed2a0a0cc1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1617 1 0 "5b279636_db46_4296_9db60bbf39605b10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Sequence progress number: "), int_TotalProgression, Translate("")); // }} "" // {{{ 1618 1 0 "504e3c43_179f_40ac_a5867f9acc387298" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(io_seq_SequenceToProgress, int_TotalProgression); // }} "" // {{ 1619 1 0 "a0382bc2_201b_4552_a011bb4a5e7b4b7b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1620 1 0 "a6353cd6_6b6c_47b2_8ba381e9cd159336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 1621 1 0 "a0382bc2_201b_4552_a011bb4a5e7b4b7b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "PIP_ProgressSequenceFromChannelPattern" "End" } // }} "" // {{{ 5 "PIP_BuildChannelPatternFromSequence" "Begin" function PIP_BuildChannelPatternFromSequence( device & ML_STAR, sequence i_seq_ControllingSequence, variable & o_str_ChPattern ) void { // }} "" private variable _strFunctionName; private variable int_TotalPositions; private variable i; private variable str_LabID; private variable str_PosID; private variable flt_NotUsed; private variable flt_YCoord; private variable flt_XCoord; private variable flt_CurrentX; private variable int_TotalChannels; private variable flt_ChannelRaster; private variable flt_CurrentY; // {{ 5 "PIP_BuildChannelPatternFromSequence" "InitLocals" o_str_ChPattern = 0; // }} "" // {{ 244 1 0 "c3678733_2859_450f_a3b99f4629c823bd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 245 1 0 "a8721f70_239e_4d00_af263d83c5b2f23c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 247 1 0 "dd40c047_af24_4878_8bcc427569864ad3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 248 1 0 "c3678733_2859_450f_a3b99f4629c823bd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 249 1 0 "df85c2cd_87c1_4ac2_90dc83ea404855f1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 250 1 0 "6ca46251_2232_415f_91053927cbedcc2e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChPattern = Translate(""); // }} "" // {{ 251 1 0 "d0be4305_a75b_4f4c_a40d81429471de51" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TotalChannels = G_FW_PIP_COM_TotalChannels; // }} "" // {{ 252 1 0 "71aa23c7_3ccf_45be_b09b3e6f014e536f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_ChannelRaster = G_FW_PIP_COM_Raster; // }} "" // {{{ 253 1 0 "909f0628_e4e8_490e_b8b3e96f240d92db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, i_seq_ControllingSequence); // }} "" // {{{ 254 1 0 "944401b6_da95_44c2_b8b2965ee569c523" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(i_seq_ControllingSequence); // }} "" // {{ 255 1 0 "eae58dc4_fff9_424a_bc8e991d86cba3b6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentX = 0.0; // }} "" // {{ 256 1 0 "e0f0d159_4e2e_4c84_a54a40cd55c02873" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentY = 0.0; // }} "" // {{ 257 1 0 "4411c179_d008_43a9_8f8a23f26692639a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalPositions;) { i = i + 1; // }} "" // {{ 258 1 0 "e2822b77_883c_4bad_8819a5ea7ad8a0fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i > int_TotalChannels) { // }} "" // {{ 259 1 0 "f166ee7c_6005_469e_88554852f8fc2170" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 260 1 0 "e2822b77_883c_4bad_8819a5ea7ad8a0fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 261 1 0 "766f96d3_2224_4d2e_88636cabce2ceace" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_ControllingSequence.SetCurrentPosition(i); // }} "" // {{{ 262 1 0 "f9503bf3_3628_4c71_9cd888855fadf37b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_ControllingSequence); // }} "" // {{{ 263 1 0 "5ca770f0_0b55_423f_b3d145a11f037cff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_ControllingSequence); // }} "" // {{{ 264 1 0 "957fee9f_2348_46d7_933a55a48ba132a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_XCoord, flt_YCoord, flt_NotUsed, flt_NotUsed); // }} "" // {{ 265 1 0 "adb68b50_44fb_4ab5_b19d3ccd53c7596f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i == 1) { // }} "" // {{ 266 1 0 "ab855ced_084f_4c30_9139d8b6760ae011" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentX = flt_XCoord; // }} "" // {{ 267 1 0 "57d83c85_26a6_447f_b1a906b9f2149825" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentY = flt_YCoord; // }} "" // {{{ 268 1 0 "69e4979e_4514_45cf_b6fdaa0c18466c84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_ChPattern = StrConcat2(o_str_ChPattern, Translate("1")); // }} "" // {{ 269 1 0 "adb68b50_44fb_4ab5_b19d3ccd53c7596f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 270 1 0 "bb7beb06_5c20_41e1_b96338ae9bf76c8b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_XCoord != flt_CurrentX) { // }} "" // {{ 271 1 0 "162bcdce_0e5f_4c20_828d83310a1ca1f9" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 272 1 0 "bb7beb06_5c20_41e1_b96338ae9bf76c8b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 273 1 0 "23bd6183_c175_4765_93fa5b23059ef9aa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_YCoord > flt_CurrentY) { // }} "" // {{ 274 1 0 "ac0f0198_34f1_4da9_ac20d84477f3d52d" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 275 1 0 "23bd6183_c175_4765_93fa5b23059ef9aa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 276 1 0 "39f700d1_1a75_4f5c_b5f26b81d87d734b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_YCoord > G_ARR_FW_PIP_COM_YMax.ElementAt( i -1)) { // }} "" // {{ 277 1 0 "fca0eefb_2f01_4997_8d739c1321318a42" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 278 1 0 "39f700d1_1a75_4f5c_b5f26b81d87d734b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 279 1 0 "e50b95bb_418d_4104_a800234f5c2927a5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_YCoord < G_ARR_FW_PIP_COM_YMin.ElementAt( i -1)) { // }} "" // {{ 280 1 0 "726a84c3_6f02_4389_89b4efbc5d9506b5" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 281 1 0 "e50b95bb_418d_4104_a800234f5c2927a5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 282 1 0 "50387282_383d_49cd_8c12b49b60e43d4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_ChPattern = StrConcat2(o_str_ChPattern, Translate("1")); // }} "" // {{ 283 1 0 "adb68b50_44fb_4ab5_b19d3ccd53c7596f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 284 1 0 "39973618_6bb3_4fe2_a355130a7d52211b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentY = flt_CurrentY - flt_ChannelRaster; // }} "" // {{ 285 1 0 "4411c179_d008_43a9_8f8a23f26692639a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 286 1 0 "160c8ad9_5add_4e95_a9eb29a59d435fe4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_ChPattern = StrFillRight(o_str_ChPattern, Translate("0"), int_TotalChannels); // }} "" // {{{ 287 1 0 "94a1c969_8f0b_4f8d_8b0bfa7b118fb362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Channel Pattern: "), o_str_ChPattern, Translate("")); // }} "" // {{ 288 1 0 "fffc6860_dcb1_41fe_a95764c50fcd4bbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 289 1 0 "f0020278_abd0_4d3f_8b9374c51f0f21a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 290 1 0 "fffc6860_dcb1_41fe_a95764c50fcd4bbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "PIP_BuildChannelPatternFromSequence" "End" } // }} "" // {{{ 5 "PIP_DispenseToFixedHeight" "Begin" function PIP_DispenseToFixedHeight( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_DispensePositions, variable & i_arr_FixedHeights[], variable i_int_End_Position, variable i_bln_UseLiquidFollowing, variable i_flt_DispenseVolume, variable i_flt_PullOutDistance ) void { // }} "" private variable bln_SimulationMode; private variable bln_ProbabilityPassed; private variable bln_TipsLoaded; private variable flt_MovementStartHeight; private variable flt_ZBottom; private variable flt_ZMaximumHeight; private variable bln_ChannelsAtCoordinates; private variable _strFunctionName; private variable flt_ZStartHeight; private variable flt_ZClearanceHeight; private variable int_TotalChannels; private variable flt_ZMinimumHeight; private variable flt_MovementEndHeight; private sequence seq_Temp; private variable arr_LiquidFollowingDistance[]; private variable arr_YCoord[]; private variable arr_XCoord[]; private variable flt_DispenseVolume; private variable flt_DispenseHeight; private variable str_LabID; private variable arr_DispenseHeights[]; // {{ 5 "PIP_DispenseToFixedHeight" "InitLocals" // }} "" // {{ 292 1 0 "cf0eda5c_c404_4127_8681a8f562d0c8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 293 1 0 "18754cee_a4fb_456b_8bb8ba6b966e9d1c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 295 1 0 "340a683f_fed3_4b80_adff7b6dcb2c5530" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 296 1 0 "cf0eda5c_c404_4127_8681a8f562d0c8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 297 1 0 "c1ce14a4_3800_4de3_9763b3cdeb7b87c5" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 298 1 0 "9c2de99e_7322_4668_a1613cfdae2414f4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _InitLiquidClassStorage(); // }} "" // {{{ 299 1 0 "8731cd4a_6eb9_48af_93c434b82d8c9920" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 300 1 0 "68cff407_7673_44ae_945667a9913864c9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_SimulationMode = G_FW_PIP_COM_SimulationMode; // }} "" // {{ 301 1 0 "ecd9c70c_090b_41f9_8f5250b6c079a4a1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TotalChannels = G_FW_PIP_COM_TotalChannels; // }} "" // {{ 302 1 0 "7b4b3e77_b969_442e_9b9f7c6aa9f49454" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 303 1 0 "08c69548_4f2f_4c49_86b9d1f78120e51a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChPattern = StrConcat2(i_str_ChPattern, Translate("")); // }} "" // {{{ 304 1 0 "bd0775be_9a94_4eb9_8f40e19bd8702899" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChPattern = StrFillRight(i_str_ChPattern, Translate("0"), int_TotalChannels); // }} "" // {{ 305 1 0 "acfb7c25_9750_4c70_b58e3c080aad58f4" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 306 1 0 "71947c1b_40db_452a_84fcdd678a63dd89" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextSequenceSet(i_seq_DispensePositions, i_str_ChPattern, seq_Temp); // }} "" // {{ 307 1 0 "0233389c_a778_4fe6_8417eb9a48618900" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 308 1 0 "2d102058_8a1c_4f22_8ef946701fad3c4c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_Temp, i_str_ChPattern); // }} "" // {{ 309 1 0 "c8bc7dc9_b3d6_4c96_a1798a11f0f87797" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ProbabilityPassed == BOOLEON::FALSE) { // }} "" // {{ 310 1 0 "d5e8cee5_a9f5_4e98_b5c520aa4fa19798" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("SEQUENCE IS NOT SORTED CORRECTLY FOR THE USE OF THIS FUNCITON!\nSEQUENCE MUST BE SUCH THAT THE CHANNEL PATTERN USED CAN BE DONE AT ONE TIME WITHOUT NEEDING TO MOVE CHANNELS OUT OF THE WAY!")); // }} "" // {{ 311 1 0 "dede0368_8589_4fe2_b417e02e4c871385" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 312 1 0 "fd3e9f67_ff6c_483e_9eb1e9582eb244c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 313 1 0 "dede0368_8589_4fe2_b417e02e4c871385" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 314 1 0 "ba2e2783_80ba_4d43_a68c57fe9f11d80b" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 315 1 0 "c8bc7dc9_b3d6_4c96_a1798a11f0f87797" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 316 1 0 "5ee6b372_4dca_4824_9c77151dff02730e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 317 1 0 "d3e7943b_5065_460e_b9229e54bfa8c450" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_TipsLoaded = _EnsureTipsAreLoaded(ML_STAR, i_str_ChPattern); // }} "" // {{ 318 1 0 "a98111a5_4885_4be5_82d40149c7f44aad" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_TipsLoaded == BOOLEON::FALSE) { // }} "" // {{ 319 1 0 "5030c2f8_a95c_4a4e_a8c0ee371ac21fa7" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("TIPS PICKED UP DO NOT MATCH THE CHANNEL PATTERN!")); // }} "" // {{ 320 1 0 "eb6c6c11_50ae_4390_9f86b89883aaeb12" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 321 1 0 "90397455_2293_478f_9c242c0461a583c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 322 1 0 "eb6c6c11_50ae_4390_9f86b89883aaeb12" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 323 1 0 "67b80ba3_27f7_4ce8_98defc2e2f981500" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 324 1 0 "a98111a5_4885_4be5_82d40149c7f44aad" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 325 1 0 "c56eaba0_27ca_4eec_ac9fac91509d0e8b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 326 1 0 "d5880458_3d08_469c_aabd4e77de848f09" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLabwareCoordinates(ML_STAR, seq_Temp, i_str_ChPattern, arr_XCoord, arr_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight); // }} "" // {{ 327 1 0 "2ad9a6ce_5935_45a1_bc4f1f31d10d1783" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 328 1 0 "8cce2569_ce80_4ff8_b95460c61e085316" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_Temp); // }} "" // {{{ 329 1 0 "86b39e29_a430_42d6_a972395915bcb545" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ChannelsAtCoordinates = _DetermineStartZHeight(ML_STAR, i_str_ChPattern, str_LabID, arr_XCoord, arr_YCoord, flt_ZMinimumHeight, flt_ZClearanceHeight, flt_ZStartHeight); // }} "" // {{ 330 1 0 "23b92880_36d3_433a_9371fd825cadae8d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 331 1 0 "e4adb0f1_e936_4205_95482fa7048022af" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (T_PIP_TOOLS_LIQUID_CLASS == "") { // }} "" // {{ 332 1 0 "8d2f6db4_429c_41bf_bc8fd6996cd80b1f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("LIQUID CLASS IS NOT SET! ASPIRATE COMMAND MUST BE SET PRIOR TO DISPENSE!")); // }} "" // {{ 333 1 0 "489f5897_96fc_48c9_a238564485b72d88" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 334 1 0 "698ea32e_3a41_49ed_b96384ed954ddcf3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 335 1 0 "489f5897_96fc_48c9_a238564485b72d88" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 336 1 0 "da5c2e26_963c_459b_aa941c750929c11d" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 337 1 0 "e4adb0f1_e936_4205_95482fa7048022af" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 338 1 0 "34029388_f18c_41d0_b400eb0de57ac37c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 339 1 0 "ad807e61_8b92_4060_ad02ecff539f1c26" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetCorrectedValueForVolume(i_flt_DispenseVolume, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y, flt_DispenseVolume); // }} "" // {{{ 340 1 0 "06b2d677_6b66_4887_ac93044fb8411af4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate("Dispense Volume: "), i_flt_DispenseVolume, Translate(" Corrected Volume for Liquid Class: "), flt_DispenseVolume); // }} "" // {{ 341 1 0 "9de1e467_610e_4258_91696628484231be" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 342 1 0 "8ab60469_f054_4dc8_8b4acbdd2bed81cc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ApplyOffsetToArrayofValues(i_arr_FixedHeights, flt_ZBottom, arr_DispenseHeights); // }} "" // {{ 343 1 0 "6c163b9f_4cfa_4a93_a1d586fb5cde8d5b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 344 1 0 "7915a2cd_a818_43a7_a4a3f066dd4d7b89" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidFollowingForAllChannels(ML_STAR, i_arr_FixedHeights, seq_Temp, i_bln_UseLiquidFollowing, BOOLEON::FALSE, flt_DispenseVolume, i_str_ChPattern, arr_LiquidFollowingDistance); // }} "" // {{{ 345 1 0 "3ec22819_81a8_4943_9c9375242f3d593a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 0, Translate("Processing")); // }} "" // {{ 346 1 0 "936d6fd2_4e74_4bf1_aac27b45670ec012" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementStartHeight = flt_ZStartHeight; // }} "" // {{ 347 1 0 "aca77896_da0e_41b1_b5d8f50a999ac6c3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = 245.0; // }} "" // {{ 348 1 0 "7c7922a9_5f45_4cb7_b142f4f274d2b21a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_End_Position == 1) { // }} "" // {{ 349 1 0 "2ccc6c78_627f_4d22_890a59877fd157c3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_ZClearanceHeight; // }} "" // {{ 350 1 0 "7c7922a9_5f45_4cb7_b142f4f274d2b21a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 351 1 0 "2739b2b3_b60c_4a02_afb30852e51f22bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_End_Position == 2) { // }} "" // {{ 352 1 0 "12ce519e_89a0_40e2_9521fc0f70f33abd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_ZMaximumHeight; // }} "" // {{ 353 1 0 "2739b2b3_b60c_4a02_afb30852e51f22bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 354 1 0 "521fb74b_818d_47f1_8257db5c5f68ee0e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_End_Position == 3) { // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 355 1 0 "1be90833_cf18_4635_8179afd21dc26532" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_ZMinimumHeight; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 356 1 0 "cd11aa5b_5b6a_47d5_a12a6c64d41de250" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_DispenseHeight = HSLStatisitics::Stat_Max(i_arr_FixedHeights); // }} "" // {{ 357 1 0 "163db0c3_0eb8_4bf5_807bf52848761b66" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_DispenseHeight + flt_ZBottom; // }} "" // {{ 358 1 0 "fb16386d_0f06_4a8f_a27ee17fb5d7fddd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_MovementEndHeight < flt_ZMinimumHeight) { // }} "" // {{ 359 1 0 "36e82dfa_4618_412a_88f6779fda0d9ff6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_ZMinimumHeight; // }} "" // {{ 360 1 0 "fb16386d_0f06_4a8f_a27ee17fb5d7fddd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 361 1 0 "521fb74b_818d_47f1_8257db5c5f68ee0e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 362 1 0 "73a6fd11_54aa_4601_89f465ad165ed30e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 363 1 0 "ba9995b2_bf15_4348_9b4bbda84f0914c6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::PIPDispenseFromFixedHeight(ML_STAR, i_str_ChPattern, T_PIP_TOOLS_DISPENSE_MODE, arr_XCoord, arr_YCoord, arr_DispenseHeights, arr_LiquidFollowingDistance, flt_MovementStartHeight, flt_MovementEndHeight, flt_ZMinimumHeight, flt_ZBottom, flt_DispenseVolume, T_PIP_TOOLS_DISP_FLOW_RATE, T_PIP_TOOLS_DISP_STOP_FLOW, T_PIP_TOOLS_DISP_STOP_BACK, T_PIP_TOOLS_DISP_AIR_TRANSPORT, T_PIP_TOOLS_DISP_BLOWOUT, T_PIP_TOOLS_DISP_SETTLING, T_PIP_TOOLS_DISP_SWAP, i_flt_PullOutDistance, flt_ZMaximumHeight); // }} "" // {{{ 364 1 0 "cb035a97_4a6b_43be_b6f63502de1abf2f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 4, Translate("Processed")); // }} "" // {{ 365 1 0 "f2958ce7_33d8_4483_8d37c03a73f8f914" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 366 1 0 "469662be_8841_4a70_9be707a9eb865af0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 367 1 0 "f2958ce7_33d8_4483_8d37c03a73f8f914" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "PIP_DispenseToFixedHeight" "End" } // }} "" // {{{ 5 "MPH_AspirateFromFixedHeight" "Begin" function MPH_AspirateFromFixedHeight( device & ML_STAR, sequence i_seq_AspirationPositions, variable i_flt_AspHeight, variable i_int_End_Position, variable i_bln_UseLiquidFollowing, variable i_str_LiquidClass, variable i_flt_AspirationVolume, variable i_flt_PullOutDistance ) void { // }} "" private variable bln_SimulationMode; private variable _strFunctionName; private variable int_MPHExists; private variable str_TempChPattern; private sequence seq_Temp; private variable bln_ProbabilityPassed; private variable bln_TipsLoaded; private variable flt_ZBottom; private variable flt_ZMaximumHeight; private variable flt_ZClearanceHeight; private variable flt_ZMinimumHeight; private variable flt_YCoord; private variable flt_XCoord; private variable flt_ZStartHeight; private variable bln_MPH96AtCoordinates; private variable flt_NotUsed; private variable flt_AspirationVolume; private variable flt_LiquidFollowingDistance; private variable flt_MovementStartHeight; private variable flt_MovementEndHeight; private variable flt_EndHeight; // {{ 5 "MPH_AspirateFromFixedHeight" "InitLocals" // }} "" // {{ 1 1 0 "36ef965e_53ce_444e_bb638c9aafbc6ab1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2 1 0 "2b2d9b5d_55f8_4057_9395dccc3949e5ce" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 4 1 0 "f824901b_5723_4763_93afb5ea44a14df8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 5 1 0 "36ef965e_53ce_444e_bb638c9aafbc6ab1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 6 1 0 "33781d18_f399_4df1_b94d48ea28a44262" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 7 1 0 "3f6c5c63_8e13_4d63_a8961c4e4435ddc8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _InitLiquidClassStorage(); // }} "" // {{{ 8 1 0 "db8d7249_a3e7_4470_9d640ff7709aa1a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_SimulationMode = Util::GetSimulationMode(); // }} "" // {{ 9 1 0 "8cde8a63_e0f9_4c82_b9d33d9921c1128f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 10 1 0 "5d451d16_bf09_4553_a103e21ad2af9f51" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::GetMPHExist(ML_STAR, int_MPHExists); // }} "" // {{ 11 1 0 "e55e2ff6_39a8_438a_8b64334d7ac4f66a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_MPHExists == 0) { // }} "" // {{ 12 1 0 "98a2d663_cead_40ff_a4d05d48864f636a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("MPH96 IS NOT LOADED IN THE CONFIGURATION OF THIS INSTRUMENT!")); // }} "" // {{ 13 1 0 "83d2befc_caf8_4154_8731546bb06354f1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 14 1 0 "54f161e9_64cb_44c2_a8493d6ca8ecacfe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 15 1 0 "83d2befc_caf8_4154_8731546bb06354f1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 16 1 0 "b3c2592c_a9b5_4195_b17d92e7a06e994e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 17 1 0 "e55e2ff6_39a8_438a_8b64334d7ac4f66a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 18 1 0 "66336974_fa1d_4cd1_a2419455024d21af" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 19 1 0 "2b8ce7bc_a8d6_4f01_965778880a1229fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TempChPattern = Translate(""); // }} "" // {{{ 20 1 0 "ff0b42b2_d9fb_48e4_819383d5b8ed6ca8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TempChPattern = StrFillRight(str_TempChPattern, Translate("1"), 96); // }} "" // {{{ 21 1 0 "0e993d05_1329_4407_a05f492e410e4eee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextSequenceSet(i_seq_AspirationPositions, str_TempChPattern, seq_Temp); // }} "" // {{ 22 1 0 "2ef80e77_6cca_4e19_ad283b573636fcad" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 23 1 0 "44b9bcd0_eb86_49bc_854a912819a73c91" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ProbabilityPassed = _ProbabilityCheckMPH96(ML_STAR, seq_Temp, str_TempChPattern); // }} "" // {{ 24 1 0 "90c78c8d_33ef_4919_a95889d87e8bdc37" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ProbabilityPassed == BOOLEON::FALSE) { // }} "" // {{ 25 1 0 "d485bb9d_fce5_42d2_8d1e3400c9bea070" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("SEQUENCE IS NOT SORTED CORRECTLY FOR THE USE OF THIS FUNCITON!")); // }} "" // {{ 26 1 0 "2a5226e9_bc05_4cd5_97d030e4828a03c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 27 1 0 "ff8ce99b_744c_48b8_9e932fdd40ca8dc2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 28 1 0 "2a5226e9_bc05_4cd5_97d030e4828a03c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 29 1 0 "23293255_623c_4e0d_971b201787675aa9" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 30 1 0 "90c78c8d_33ef_4919_a95889d87e8bdc37" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 31 1 0 "11b35afd_25a9_41a5_afbad4d4d8132027" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 32 1 0 "10f4020d_48ad_4aac_a19a8804e0667783" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::MPH96GetTipPresence(ML_STAR, bln_TipsLoaded); // }} "" // {{ 33 1 0 "e46df121_8add_428f_977efff4766aa576" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_SimulationMode == BOOLEON::TRUE) { // }} "" // {{ 34 1 0 "12764170_242d_4a97_b65a8fd10160d526" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_TipsLoaded = BOOLEON::TRUE; // }} "" // {{ 35 1 0 "e46df121_8add_428f_977efff4766aa576" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 36 1 0 "7e5b2881_b318_4f85_be60b21e4543ee7d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_TipsLoaded == BOOLEON::FALSE) { // }} "" // {{ 37 1 0 "7cc0835f_c370_454a_aa843dd39914b260" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("TIPS NOT PICKED UP!")); // }} "" // {{ 38 1 0 "e334fa22_38b4_40a8_8d68032be0019aa8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 39 1 0 "9d426a5b_d4f1_43bf_a030e4d58feffd11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 40 1 0 "e334fa22_38b4_40a8_8d68032be0019aa8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 41 1 0 "d9b2efa7_7b65_43ac_bbd20b15eb509172" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 42 1 0 "7e5b2881_b318_4f85_be60b21e4543ee7d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 43 1 0 "de3e578c_9592_4459_ad6356ded0b26fdc" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 44 1 0 "0eb786a2_9083_4b3e_be385ca81640ac8e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLabwareCoordinatesMPH96(ML_STAR, seq_Temp, flt_XCoord, flt_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight); // }} "" // {{ 45 1 0 "5b4d8ede_641b_4daf_b03b0b80b0e6818e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 46 1 0 "643dca63_ee0d_46a2_9a786cadf0dd629d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_MPH96AtCoordinates = _DetermineStartZHeightMPH96(ML_STAR, flt_XCoord, flt_YCoord, flt_ZMinimumHeight, flt_ZStartHeight); // }} "" // {{ 47 1 0 "2d3e0f06_68f3_4f65_bc4ad94b5b913f24" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 48 1 0 "9e02d6e0_8c07_44a6_9a158c3c4faef66f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidClassParams(i_str_LiquidClass, BOOLEON::TRUE, T_PIP_TOOLS_ASP_FLOW_RATE, T_PIP_TOOLS_ASP_MIX_FLOW_RATE, T_PIP_TOOLS_ASP_AIR_TRANSPORT, T_PIP_TOOLS_ASP_BLOWOUT, T_PIP_TOOLS_ASP_SWAP, T_PIP_TOOLS_ASP_SETTLING, T_PIP_TOOLS_ASP_OVERASPIRATE, T_PIP_TOOLS_ASP_CLOT_RETRACT, flt_NotUsed, flt_NotUsed, T_PIP_TOOLS_MAX_VOLUME, T_PIP_TOOLS_DISPENSE_MODE, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y); // }} "" // {{{ 49 1 0 "477d0997_65bd_4c0b_b815171a10fac58a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidClassParams(i_str_LiquidClass, BOOLEON::FALSE, T_PIP_TOOLS_DISP_FLOW_RATE, T_PIP_TOOLS_DISP_MIX_FLOW_RATE, T_PIP_TOOLS_DISP_AIR_TRANSPORT, T_PIP_TOOLS_DISP_BLOWOUT, T_PIP_TOOLS_DISP_SWAP, T_PIP_TOOLS_DISP_SETTLING, flt_NotUsed, flt_NotUsed, T_PIP_TOOLS_DISP_STOP_FLOW, T_PIP_TOOLS_DISP_STOP_BACK, T_PIP_TOOLS_MAX_VOLUME, T_PIP_TOOLS_DISPENSE_MODE, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y); // }} "" // {{ 50 1 0 "ca401083_d116_4609_a5461563a049112f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 51 1 0 "75c5797e_e5df_44fd_b5d14c32a8faab83" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetCorrectedValueForVolume(i_flt_AspirationVolume, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y, flt_AspirationVolume); // }} "" // {{{ 52 1 0 "00af58ea_b18a_4110_904d65006c71cec6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate("Aspiration Volume: "), i_flt_AspirationVolume, Translate(" Corrected Volume for Liquid Class: "), flt_AspirationVolume); // }} "" // {{{ 53 1 0 "be718aad_3a9f_4a4f_800bdd9b15090d0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate("Aspiration Height: "), i_flt_AspHeight, Translate(""), Translate("")); // }} "" // {{ 54 1 0 "47399927_3969_4275_8ecc56cf898149d0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_flt_AspirationVolume > T_PIP_TOOLS_MAX_VOLUME) { // }} "" // {{{ 55 1 0 "4de5c2c7_e0e0_46bf_98f4b463775f3513" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Max Volume: "), T_PIP_TOOLS_MAX_VOLUME, Translate(" uL")); // }} "" // {{ 56 1 0 "d7d113b0_76c4_4c90_bc7ecab41fbf5f8d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("REQUESTED VOLUME IS HIGHER THAN THE LIQUID CLASS MAX VOLUME")); // }} "" // {{ 57 1 0 "36acb374_d893_4ae1_bd5f35fef39c16c4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 58 1 0 "fb916584_b8fd_4754_8daa4c1324461df2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 59 1 0 "36acb374_d893_4ae1_bd5f35fef39c16c4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 60 1 0 "4ad98862_d803_431c_99e8dc9badad0430" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 61 1 0 "47399927_3969_4275_8ecc56cf898149d0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 62 1 0 "09658291_015b_4cc6_950a7ecd99752b22" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 63 1 0 "12028594_4a24_4b8e_b1a3138b904ff040" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidFollowingForMPH96(ML_STAR, i_flt_AspHeight, seq_Temp, i_bln_UseLiquidFollowing, BOOLEON::TRUE, i_flt_AspirationVolume, flt_LiquidFollowingDistance); // }} "" // {{{ 64 1 0 "cf520160_947c_4809_9af027c77061d1d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 0, Translate("Processing")); // }} "" // {{ 65 1 0 "45321a2e_e7bd_43aa_b68552fa04c0b410" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementStartHeight = flt_ZStartHeight; // }} "" // {{ 66 1 0 "3ccffeba_0c00_44a5_a1e8827408772466" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = 245.0; // }} "" // {{ 67 1 0 "b9339b5a_c094_4c7e_a48934aa2cc37d91" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_End_Position == 1) { // }} "" // {{ 68 1 0 "6ae332df_196a_49e5_bf7c189fe28351f3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_ZClearanceHeight; // }} "" // {{ 69 1 0 "b9339b5a_c094_4c7e_a48934aa2cc37d91" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 70 1 0 "b854f68a_566d_474f_9e32c62df46b242d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_End_Position == 2) { // }} "" // {{ 71 1 0 "c799c776_a644_4234_928747ab062ca892" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_ZMaximumHeight; // }} "" // {{ 72 1 0 "b854f68a_566d_474f_9e32c62df46b242d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 73 1 0 "1f6a0285_47b1_4627_a589b6cc0b8da45e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_End_Position == 3) { // }} "" // {{ 74 1 0 "a5d7549b_d770_4043_95300f94014b7904" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndHeight = i_flt_AspHeight - flt_LiquidFollowingDistance; // }} "" // {{ 75 1 0 "2958bc51_faab_46b6_b1e654a0e6f0bff7" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndHeight = flt_EndHeight + flt_ZBottom; // }} "" // {{ 76 1 0 "a20a80ce_d6c3_47c1_bd85a590a1273213" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_EndHeight; // }} "" // {{ 77 1 0 "eb810ae2_8a9b_416a_b73098f6cd79b29c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_MovementEndHeight < flt_ZMinimumHeight) { // }} "" // {{ 78 1 0 "ebe906ae_e4d7_49e6_8c8cf2b1a5d9eb1b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_ZMinimumHeight; // }} "" // {{ 79 1 0 "eb810ae2_8a9b_416a_b73098f6cd79b29c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 80 1 0 "1f6a0285_47b1_4627_a589b6cc0b8da45e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 81 1 0 "a818354a_0e5a_4637_b58c4f1ddb247b3f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 82 1 0 "c0261f31_66b5_4b73_9a64778bfa6d1e90" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::MPH96AspirateFromFixedHeight(ML_STAR, flt_XCoord, flt_YCoord, i_flt_AspHeight, flt_LiquidFollowingDistance, flt_MovementStartHeight, flt_MovementEndHeight, flt_ZMinimumHeight, flt_ZBottom, 0.0, flt_AspirationVolume, T_PIP_TOOLS_ASP_FLOW_RATE, T_PIP_TOOLS_ASP_AIR_TRANSPORT, T_PIP_TOOLS_ASP_BLOWOUT, T_PIP_TOOLS_ASP_SETTLING, T_PIP_TOOLS_ASP_SWAP, i_flt_PullOutDistance); // }} "" // {{{ 83 1 0 "acc41bcf_4b9d_439b_b0dec58d5a270e84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 4, Translate("Processed")); // }} "" // {{ 84 1 0 "a2459763_2be0_48a5_a0adfa7f70a64356" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 85 1 0 "2512cef6_216a_454d_a5d71332c85d14e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 86 1 0 "a2459763_2be0_48a5_a0adfa7f70a64356" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "MPH_AspirateFromFixedHeight" "End" } // }} "" // {{{ 5 "_ProbabilityCheckMPH96" "Begin" private function _ProbabilityCheckMPH96( device & ML_STAR, sequence i_seq_PositionsToCheck, variable i_str_ChannelPatternToCheck ) variable { // }} "" private variable bln_ProbabilityPass; private variable int_TotalTipsToUse; private variable int_TotalChannels; private variable int_TotalPositions; private variable int_RemainingPositionsForLabware; private sequence seq_TempCompare; private variable str_PosIDSort; private variable str_PosIDOriginal; // {{ 5 "_ProbabilityCheckMPH96" "InitLocals" // }} "" // {{ 2648 1 0 "05448be4_faeb_496c_ba61214a8b96a48d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ProbabilityPass = BOOLEON::TRUE; // }} "" // {{{ 2649 1 0 "724b2c06_16a2_49a6_b9f9cd0d02bdf2a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalChannels = StrGetLength(i_str_ChannelPatternToCheck); // }} "" // {{{ 2650 1 0 "3ecddf2d_4e6c_4d3f_90e72bb635b92ed7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalTipsToUse = StrReplace(i_str_ChannelPatternToCheck, Translate("1"), Translate("1")); // }} "" // {{{ 2651 1 0 "57348320_78a8_4057_81a021d8e551e3b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(i_seq_PositionsToCheck); // }} "" // {{ 2652 1 0 "a371cb50_1f5b_4e81_9dfe458feeb80d51" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalPositions != int_TotalTipsToUse) { // }} "" // {{ 2653 1 0 "816a6c82_f0bd_4066_ae0531da9f2f8ae5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ProbabilityPass = BOOLEON::FALSE; // }} "" // {{ 2654 1 0 "b1a8136a_9d6b_44e0_a5074fb22056d898" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("SEQUENCE POSITIONS DO NOT MATCH TIP CHANNEL PATTERN")); // }} "" // {{{ 2655 1 0 "8c04cb15_b4c1_4e25_812f93087f4bbc6f" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (bln_ProbabilityPass); // }} "" // {{ 2656 1 0 "a371cb50_1f5b_4e81_9dfe458feeb80d51" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2657 1 0 "ca8414b3_e030_4b03_b443f8bfdc5897bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_RemainingPositionsForLabware = SeqGetPositionCountForCurrLabware(i_seq_PositionsToCheck); // }} "" // {{ 2658 1 0 "cde18d85_3282_4351_a83ebc2398b7bfa3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_RemainingPositionsForLabware != int_TotalTipsToUse) { // }} "" // {{ 2659 1 0 "e6c9f9ea_70be_4875_a0ba4401492fb953" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ProbabilityPass = BOOLEON::FALSE; // }} "" // {{ 2660 1 0 "f10462b5_0632_47ac_9f3c103b1d8e9b96" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("SEQUENCE POSITIONS ARE NOT FOR THE SAME LABWARE! MPH96 CANNOT SPLIT THE SEQUENCE OVER MULTIPLE LABWARE!")); // }} "" // {{{ 2661 1 0 "d252d3f6_f472_4a53_98f241a7c3d01146" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (bln_ProbabilityPass); // }} "" // {{ 2662 1 0 "cde18d85_3282_4351_a83ebc2398b7bfa3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2663 1 0 "a437cc26_57b0_4fac_bf47a6d6acba2acb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq_TempCompare, i_seq_PositionsToCheck); // }} "" // {{{ 2664 1 0 "3c727d75_42d2_4a1a_bbfe61b51a733bde" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::SortSequence(ML_STAR, seq_TempCompare, BOOLEON::FALSE); // }} "" // {{ 2665 1 0 "1e2a087a_914a_4fee_a2c344d2f8bfb6cc" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TempCompare.SetCurrentPosition(1); // }} "" // {{ 2666 1 0 "8c3372d9_3d9c_45e9_a36a899d46ff0923" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_PositionsToCheck.SetCurrentPosition(1); // }} "" // {{{ 2667 1 0 "282669d6_5720_4a25_a38374afd8fa089e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosIDOriginal = SeqGetPositionId(i_seq_PositionsToCheck); // }} "" // {{{ 2668 1 0 "37fb21c6_1a88_4a5f_a39906d5dcedbcac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosIDSort = SeqGetPositionId(seq_TempCompare); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 2669 1 0 "f4787cf6_6680_4907_bd346c749d696d92" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" Original: "), str_PosIDOriginal, Translate(" Sorted: "), str_PosIDSort); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 2670 1 0 "20cb8cda_711c_401d_8cde7e6b2e46a1d2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_PosIDOriginal != str_PosIDSort) { // }} "" // {{ 2671 1 0 "26cbece7_d200_47da_866f6e39d348d287" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ProbabilityPass = BOOLEON::FALSE; // }} "" // {{ 2672 1 0 "46ea6364_7dd9_408d_9af56b5862684243" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("SEQUENCE IS NOT SORTED FOR THE MPH96")); // }} "" // {{ 2673 1 0 "20cb8cda_711c_401d_8cde7e6b2e46a1d2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2674 1 0 "35d4e988_a27b_450d_a33c1ed2a89167a4" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (bln_ProbabilityPass); // }} "" // {{{ 5 "_ProbabilityCheckMPH96" "End" } // }} "" // {{{ 5 "_GetLabwareCoordinatesMPH96" "Begin" private function _GetLabwareCoordinatesMPH96( device & ML_STAR, sequence i_seq_Positions, variable & o_flt_XCoord, variable & o_flt_YCoord, variable & o_flt_ZBottom, variable & o_flt_ZMinimumHeight, variable & o_flt_ZMaximumHeight, variable & o_flt_ZClearanceHeight ) void { // }} "" private variable flt_NotUsed; private variable flt_ZCoord; private variable flt_YCoord; private variable flt_MinimumPipHeight; private variable flt_XCoord; private variable str_ContainerConfig; private variable str_LabID; private variable bln_ValueExists; private variable str_PosID; private variable int_TotalPositions; private variable str_Value; // {{ 5 "_GetLabwareCoordinatesMPH96" "InitLocals" o_flt_XCoord = 0; o_flt_YCoord = 0; o_flt_ZBottom = 0; o_flt_ZMinimumHeight = 0; o_flt_ZMaximumHeight = 0; o_flt_ZClearanceHeight = 0; // }} "" // {{ 2199 1 0 "7240ddd1_320c_44bf_b80c1e02bfd0a888" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_ZClearanceHeight = 0.0; // }} "" // {{ 2200 1 0 "3757d776_218c_43a1_bf23343f3e155327" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_ZMaximumHeight = 0.0; // }} "" // {{ 2201 1 0 "0a7345f4_9019_41fc_af65761d4806e7ef" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_ZMinimumHeight = 0.0; // }} "" // {{{ 2202 1 0 "44d9d924_b098_414c_b45070ffe08f1ce7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(i_seq_Positions); // }} "" // {{ 2203 1 0 "6688cddd_dcb9_44ea_8a4acc2dc8ac5d2c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalPositions == 0) { // }} "" // {{{ 2204 1 0 "b666e4c9_e6fa_433b_8bc41f737fd2f6a2" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 2205 1 0 "6688cddd_dcb9_44ea_8a4acc2dc8ac5d2c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2206 1 0 "fd3b01a6_f2d5_42e8_b2c49a029a6e91cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_Positions); // }} "" // {{{ 2207 1 0 "173046d3_5b91_48ca_8330af778dc0c13d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_Positions); // }} "" // {{{ 2208 1 0 "e1f13360_03c4_4002_9829f8dc2f8db451" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_NotUsed, flt_NotUsed, flt_ZCoord, flt_NotUsed); // }} "" // {{{ 2209 1 0 "0cbe82fb_5a3f_4e4b_8c8f2646fb6da171" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetRackHeight(ML_STAR, str_LabID, o_flt_ZMaximumHeight, o_flt_ZClearanceHeight); // }} "" // {{{ 2210 1 0 "dbc46421_9a15_43ea_ad5e84175ac5a5d5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_LabID, str_PosID, str_ContainerConfig); // }} "" // {{{ 2211 1 0 "be8c9adb_dfee_4056_a3857d2cae0189e4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ValueExists = HELPERLIBRARY::GetDefinitionFileValue(str_ContainerConfig, Translate("MaxDepth"), str_Value); // }} "" // {{ 2212 1 0 "f016248e_7ccd_4e5e_81b63e043a84e0b5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MinimumPipHeight = 0.0; // }} "" // {{ 2213 1 0 "aafddfde_b0ec_4d06_9a1d03769241cf5c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueExists == BOOLEON::TRUE) { // }} "" // {{{ 2214 1 0 "2732bc68_2804_41e3_aa419ef87e254435" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_MinimumPipHeight = StrFVal(str_Value); // }} "" // {{ 2215 1 0 "aafddfde_b0ec_4d06_9a1d03769241cf5c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2216 1 0 "aec10be2_f620_4a90_9956a46244951e57" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_ZMinimumHeight = flt_ZCoord + flt_MinimumPipHeight; // }} "" // {{ 2217 1 0 "2c0f30e0_b90c_4963_bac1c56a2b54a884" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_ZBottom = flt_ZCoord; // }} "" // {{{ 2218 1 0 "899b763f_6a49_4fff_9b1d025987317aa8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_Positions); // }} "" // {{{ 2219 1 0 "a3fdf2f1_afe7_46f0_ad79649cc354f01c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_XCoord, flt_YCoord, flt_NotUsed, flt_NotUsed); // }} "" // {{{ 2220 1 0 "2ed48b9c_6778_4c20_95fb7b3e5728874d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_XCoord = MthRound(flt_XCoord, 1); // }} "" // {{{ 2221 1 0 "96f83595_d343_43f5_bc36cd2119387c18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_YCoord = MthRound(flt_YCoord, 1); // }} "" // {{{ 2222 1 0 "59295438_3f53_4a8f_b4a6c9c616e04838" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Clearance Height: "), o_flt_ZClearanceHeight); // }} "" // {{{ 2223 1 0 "71677673_b1cc_4ca6_9780a72c1df1f8fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Top Of Plate Height: "), o_flt_ZMaximumHeight); // }} "" // {{{ 2224 1 0 "7f00b6e9_e8e4_4011_ba624e1693a29fe9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Minimum Height: "), o_flt_ZMinimumHeight); // }} "" // {{{ 2225 1 0 "7461d35d_1e61_4664_b887263a30473097" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("X Coordinate: "), o_flt_XCoord); // }} "" // {{{ 2226 1 0 "2b047e6a_8c4c_4c06_82b0ca015a186c90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Y Coordinate: "), o_flt_YCoord); // }} "" // {{{ 2227 1 0 "bc59a3f7_3966_44ad_8e9903801885191b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Z Bottom: "), o_flt_ZBottom); // }} "" // {{{ 5 "_GetLabwareCoordinatesMPH96" "End" } // }} "" // {{{ 5 "_DetermineStartZHeightMPH96" "Begin" private function _DetermineStartZHeightMPH96( device & ML_STAR, variable i_flt_XCoord, variable i_flt_YCoord, variable i_flt_ZMinimumCoord, variable & o_flt_StartZHeight ) variable { // }} "" private variable bln_SimulationMode; private variable flt_CurrentXCoord; private variable flt_CurrentZCoord; private variable flt_CurrentYCoord; private variable bln_MPHAtCoordinate; private variable flt_XDifference; private variable flt_YDifference; // {{ 5 "_DetermineStartZHeightMPH96" "InitLocals" o_flt_StartZHeight = 0; // }} "" // {{{ 1879 1 0 "c83fd845_6417_4ade_b371cad14178563f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_SimulationMode = Util::GetSimulationMode(); // }} "" // {{ 1880 1 0 "45318ae4_6505_4682_a1aa80f7c4ba5f66" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_StartZHeight = 0.0; // }} "" // {{ 1881 1 0 "8229a3fb_6390_44ea_ad4fe7cd3ba3005d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_MPHAtCoordinate = BOOLEON::TRUE; // }} "" // {{{ 1882 1 0 "ff95b86c_772e_4309_80d9d84ea8c2cc9a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::MPH96GetCoordinates(ML_STAR, flt_CurrentXCoord, flt_CurrentYCoord, flt_CurrentZCoord); // }} "" // {{ 1883 1 0 "2716a643_1a7b_4838_90b4bbfaed291659" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" i_flt_XCoord = i_flt_XCoord * 10; // }} "" // {{ 1884 1 0 "b6c7e838_dcfb_4c99_a0385a4e313ce3ed" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" i_flt_YCoord = i_flt_YCoord * 10; // }} "" // {{{ 1885 1 0 "045f79b1_abe4_4b78_b490f286f9880626" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_flt_XCoord = MthFloor(i_flt_XCoord); // }} "" // {{{ 1886 1 0 "dadc0e98_c422_490f_ad6a336b91af667c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_flt_YCoord = MthFloor(i_flt_YCoord); // }} "" // {{ 1887 1 0 "7d0c85f4_3ccc_48ef_b3519e3093005bf1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentXCoord = flt_CurrentXCoord * 10; // }} "" // {{ 1888 1 0 "3fa4fb43_9c68_481b_9a64c518424280a5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentYCoord = flt_CurrentYCoord * 10; // }} "" // {{{ 1889 1 0 "a6a9762d_b135_45d6_9ec55064b1502475" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_CurrentXCoord = MthFloor(flt_CurrentXCoord); // }} "" // {{{ 1890 1 0 "9842fb98_94f7_43ae_97e5d13563421deb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_CurrentYCoord = MthFloor(flt_CurrentYCoord); // }} "" // {{ 1891 1 0 "fe983557_afe6_4b5e_8025e291100e62ff" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_XDifference = flt_CurrentXCoord - i_flt_XCoord; // }} "" // {{ 1892 1 0 "345d2fac_86eb_429c_ae3c48ce488bd4c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_XDifference < 0.0) { // }} "" // {{ 1893 1 0 "93abaf37_2884_48de_a3d1cb7205da2da4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_XDifference = flt_XDifference * -1; // }} "" // {{ 1894 1 0 "345d2fac_86eb_429c_ae3c48ce488bd4c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1895 1 0 "5bf88e6c_afab_46cf_8a1b72e629697abb" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_YDifference = flt_CurrentYCoord - i_flt_YCoord; // }} "" // {{ 1896 1 0 "9f784417_0c1c_4249_bd88126173e18d3e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_YDifference < 0.0) { // }} "" // {{ 1897 1 0 "058d0e01_712d_4877_9f6c9177a31071ef" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_YDifference = flt_YDifference * -1; // }} "" // {{ 1898 1 0 "9f784417_0c1c_4249_bd88126173e18d3e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1899 1 0 "023f9a30_8665_4a8a_aea977d9dde200ec" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_XDifference > 1) { // }} "" // {{ 1900 1 0 "623e1fd9_1f0c_4f75_98cf62dccb68a711" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_MPHAtCoordinate = BOOLEON::FALSE; // }} "" // {{{ 1901 1 0 "f2128c84_505c_40e3_a582f582f563653a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(i_flt_XCoord, Translate(" IS NOT EQUAL TO "), flt_CurrentXCoord, Translate("")); // }} "" // {{ 1902 1 0 "023f9a30_8665_4a8a_aea977d9dde200ec" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1903 1 0 "92cfaaa0_2ce9_441e_829f5cd5fd3d52ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_YDifference > 1) { // }} "" // {{ 1904 1 0 "4e84b0e4_8c54_4c61_89c3bd41686272ed" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_MPHAtCoordinate = BOOLEON::FALSE; // }} "" // {{{ 1905 1 0 "a173c094_7c38_4cf5_96c3d0b2aef5d14e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(i_flt_YCoord, Translate(" IS NOT EQUAL TO "), flt_CurrentYCoord, Translate("")); // }} "" // {{ 1906 1 0 "92cfaaa0_2ce9_441e_829f5cd5fd3d52ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1907 1 0 "7848a39a_9aaa_4f27_a03457a33bace1b0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_SimulationMode == BOOLEON::TRUE) { // }} "" // {{ 1908 1 0 "c50b3acc_965f_4b2f_bc895317b803b26b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_MPHAtCoordinate = BOOLEON::TRUE; // }} "" // {{ 1909 1 0 "7848a39a_9aaa_4f27_a03457a33bace1b0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1910 1 0 "d05b1618_5de7_4b6a_b101358d92d71204" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_MPHAtCoordinate == BOOLEON::TRUE) { // }} "" // {{ 1911 1 0 "c4fa00c6_8813_47d0_90a01df4d6ce0770" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_StartZHeight = i_flt_ZMinimumCoord; // }} "" // {{ 1912 1 0 "d05b1618_5de7_4b6a_b101358d92d71204" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1913 1 0 "977bbd22_7a69_4ce0_8a36d82805b03268" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_StartZHeight = 245.0; // }} "" // {{ 1914 1 0 "282ef985_04b4_4bec_83d9c4ef62271653" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("NOT AT CORRECT COORDINATES!")); // }} "" // {{ 1915 1 0 "d05b1618_5de7_4b6a_b101358d92d71204" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1916 1 0 "13fc6406_2ebc_4bde_ab963a4939a59ad9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Z Start height: "), o_flt_StartZHeight, Translate("")); // }} "" // {{{ 1917 1 0 "8eb75d78_ef93_47f4_8427428fe4ab8ddf" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (bln_MPHAtCoordinate); // }} "" // {{{ 5 "_DetermineStartZHeightMPH96" "End" } // }} "" // {{{ 5 "_GetLiquidFollowingForMPH96" "Begin" private function _GetLiquidFollowingForMPH96( device & ML_STAR, variable i_flt_FixedHeights, sequence i_seq_PositionsToCalculate, variable i_bln_LiquidFollowingEnabled, variable i_bln_Aspirate, variable i_flt_VolumeToUse, variable & o_flt_LiquidFollowingDistance ) void { // }} "" private variable flt_LiquidFollow; private variable str_LabID; private variable str_PosID; // {{ 5 "_GetLiquidFollowingForMPH96" "InitLocals" o_flt_LiquidFollowingDistance = 0; // }} "" // {{ 2337 1 0 "00d33a8a_7b08_4ead_8c6557357d7e26bf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_Aspirate == BOOLEON::TRUE) { // }} "" // {{ 2338 1 0 "7f53500a_ab3b_4bf8_82501c9874b482a9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" i_flt_VolumeToUse = i_flt_VolumeToUse * -1; // }} "" // {{ 2339 1 0 "00d33a8a_7b08_4ead_8c6557357d7e26bf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2340 1 0 "8cbebec6_d753_43a0_9cdf3a359151f040" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_LiquidFollowingDistance = 0.0; // }} "" // {{{ 2341 1 0 "6f1158eb_0514_4ecb_81d0f78f9c166e7c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_PositionsToCalculate); // }} "" // {{{ 2342 1 0 "0667da06_459c_4064_bce119d316c48a0f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_PositionsToCalculate); // }} "" // {{ 2343 1 0 "fae18252_f907_4120_8a9d5f1b972bdb56" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_LiquidFollowingEnabled == BOOLEON::TRUE) { // }} "" // {{{ 2344 1 0 "2d85b46b_7657_4a03_a3a34065a8dbfc5b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _CalculateLiquidFollowDistance(ML_STAR, str_LabID, str_PosID, i_flt_FixedHeights, i_flt_VolumeToUse, i_bln_Aspirate, flt_LiquidFollow); // }} "" // {{ 2345 1 0 "fae18252_f907_4120_8a9d5f1b972bdb56" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2346 1 0 "ac7b0295_4043_450a_a5fc9b924e6432ff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollow = 0.0; // }} "" // {{ 2347 1 0 "fae18252_f907_4120_8a9d5f1b972bdb56" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2348 1 0 "87553761_891a_4f21_a8b2b93051b36f24" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_flt_LiquidFollowingDistance = MthRound(flt_LiquidFollow, 1); // }} "" // {{{ 5 "_GetLiquidFollowingForMPH96" "End" } // }} "" // {{{ 5 "MPH_DispenseToFixedHeight" "Begin" function MPH_DispenseToFixedHeight( device & ML_STAR, sequence i_seq_DispensePositions, variable i_flt_DispenseHeight, variable i_int_End_Position, variable i_bln_UseLiquidFollowing, variable i_flt_DispenseVolume, variable i_flt_PullOutDistance ) void { // }} "" private variable bln_SimulationMode; private variable _strFunctionName; private variable bln_ProbabilityPassed; private variable bln_TipsLoaded; private variable flt_DispenseVolume; private variable flt_ZBottom; private variable flt_YCoord; private variable flt_ZMaximumHeight; private variable flt_XCoord; private variable flt_ZStartHeight; private variable flt_ZClearanceHeight; private variable str_TempChPattern; private variable flt_ZMinimumHeight; private variable bln_MPH96AtCoordinates; private variable int_MPHExists; private sequence seq_Temp; private variable flt_LiquidFollowingDistance; private variable flt_MovementStartHeight; private variable flt_MovementEndHeight; private variable flt_EndHeight; // {{ 5 "MPH_DispenseToFixedHeight" "InitLocals" // }} "" // {{ 88 1 0 "856fd6f2_44ae_40b7_a4bc0bc9d604e472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 89 1 0 "7f92fab9_72f0_4909_8a54a747f92dfd7f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 91 1 0 "327b4abe_dc39_427f_b9841d57b06575af" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 92 1 0 "856fd6f2_44ae_40b7_a4bc0bc9d604e472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 93 1 0 "0aaa2022_7130_41da_bb51628719313db8" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 94 1 0 "1ad59e94_9641_4608_87503bb1c6cb6ec6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _InitLiquidClassStorage(); // }} "" // {{{ 95 1 0 "5227a1d3_d2e1_4ccb_8b43c64e76e61336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_SimulationMode = Util::GetSimulationMode(); // }} "" // {{ 96 1 0 "c340e8f5_ae08_44b3_a57d96b96c1771ac" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 97 1 0 "ca7f6989_3a3f_4842_b88c01ce2bf0290a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::GetMPHExist(ML_STAR, int_MPHExists); // }} "" // {{ 98 1 0 "1e8574ca_af5d_418c_98e87b94bed30250" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_MPHExists == 0) { // }} "" // {{ 99 1 0 "62b07a33_fbeb_4039_b181692514cbdea2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("MPH96 IS NOT LOADED IN THE CONFIGURATION OF THIS INSTRUMENT!")); // }} "" // {{ 100 1 0 "75053de7_d610_42fd_85c784b494f2fac4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 101 1 0 "4f98007a_5575_4371_b674ac741adb14a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 102 1 0 "75053de7_d610_42fd_85c784b494f2fac4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 103 1 0 "076b5c62_cf24_4541_b6d52093843e3ef5" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 104 1 0 "1e8574ca_af5d_418c_98e87b94bed30250" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 105 1 0 "09243164_fc51_4cf9_a312ea805644a68a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 106 1 0 "9c75b280_c768_4b20_add335bb966324fa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TempChPattern = Translate(""); // }} "" // {{{ 107 1 0 "b2577ab6_a6e5_4e8e_80f075034f33f55f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TempChPattern = StrFillRight(str_TempChPattern, Translate("1"), 96); // }} "" // {{{ 108 1 0 "eae91407_ab97_4b1c_801dbed2e6510a43" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextSequenceSet(i_seq_DispensePositions, str_TempChPattern, seq_Temp); // }} "" // {{ 109 1 0 "084dbaec_7634_40a4_bb3fae2b8f3dcbbe" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 110 1 0 "4c0a01ec_a227_472b_b3b5ab563a63242f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ProbabilityPassed = _ProbabilityCheckMPH96(ML_STAR, seq_Temp, str_TempChPattern); // }} "" // {{ 111 1 0 "4af4361a_45b3_4869_adff7a848fb57c6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ProbabilityPassed == BOOLEON::FALSE) { // }} "" // {{ 112 1 0 "05588c22_2000_49dc_b413c247bbd26370" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("SEQUENCE IS NOT SORTED CORRECTLY FOR THE USE OF THIS FUNCITON!")); // }} "" // {{ 113 1 0 "0bab1631_9dee_4903_aac98cfffec44b9b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 114 1 0 "954ac070_4da4_41fe_a2f54ef17b0afc78" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 115 1 0 "0bab1631_9dee_4903_aac98cfffec44b9b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 116 1 0 "654c4858_8df9_424a_a521cb0b290fca12" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 117 1 0 "4af4361a_45b3_4869_adff7a848fb57c6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 118 1 0 "30444594_4634_47d7_b5b1711aa79600f2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 119 1 0 "d91614bd_22e6_4c46_80a4f11024f80a54" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::MPH96GetTipPresence(ML_STAR, bln_TipsLoaded); // }} "" // {{ 120 1 0 "39a1a712_406c_4b45_b0f12c7cfbf45ce8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_SimulationMode == BOOLEON::TRUE) { // }} "" // {{ 121 1 0 "aac4f907_68cc_4822_99a95b2b742e98b3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_TipsLoaded = BOOLEON::TRUE; // }} "" // {{ 122 1 0 "39a1a712_406c_4b45_b0f12c7cfbf45ce8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 123 1 0 "ac94b279_67c2_4f0a_b8040e4aedec38a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_TipsLoaded == BOOLEON::FALSE) { // }} "" // {{ 124 1 0 "e545c868_bcf9_42f7_8785a943dfda096e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("TIPS NOT PICKED UP!")); // }} "" // {{ 125 1 0 "7f09c032_5f92_4c73_bf16b41ff4118cd1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 126 1 0 "7da5d47e_3314_419c_a14b5e4b05d7019d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 127 1 0 "7f09c032_5f92_4c73_bf16b41ff4118cd1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 128 1 0 "72d97802_d110_4c86_9d10331ac0d27d78" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 129 1 0 "ac94b279_67c2_4f0a_b8040e4aedec38a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 130 1 0 "9d27fb64_d783_40cc_a5a78769047bffb9" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 131 1 0 "b30a7f48_08a0_41c6_8332f4f92ce07e4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLabwareCoordinatesMPH96(ML_STAR, seq_Temp, flt_XCoord, flt_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight); // }} "" // {{ 132 1 0 "63a2f5dd_8c7f_493c_a6df17eab64ce8e8" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 133 1 0 "2539e7a4_9609_44bf_b5484ed65e2f1945" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_MPH96AtCoordinates = _DetermineStartZHeightMPH96(ML_STAR, flt_XCoord, flt_YCoord, flt_ZMinimumHeight, flt_ZStartHeight); // }} "" // {{ 134 1 0 "dc222e01_56ab_45bc_84301fbc4b33abdb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (T_PIP_TOOLS_LIQUID_CLASS == "") { // }} "" // {{ 135 1 0 "0c29cce1_eb4c_49b4_a3868fcc37703770" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("LIQUID CLASS IS NOT SET! ASPIRATE COMMAND MUST BE SET PRIOR TO DISPENSE!")); // }} "" // {{ 136 1 0 "ee43b63a_1982_4f0a_9d2fb6d02dec4b5b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 137 1 0 "583ba071_fe9e_4708_946fa8ad4d5a88b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 138 1 0 "ee43b63a_1982_4f0a_9d2fb6d02dec4b5b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 139 1 0 "6ee74921_9832_48bd_b4caad6c8f589c67" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 140 1 0 "dc222e01_56ab_45bc_84301fbc4b33abdb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 141 1 0 "de4c25d2_80bd_4cf3_bd9630f44647e4a6" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 142 1 0 "f64af878_2b91_4536_8226831e46a65a30" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetCorrectedValueForVolume(i_flt_DispenseVolume, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y, flt_DispenseVolume); // }} "" // {{{ 143 1 0 "3f7cd488_050f_4c04_a145dd63de2c2018" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate("Dispense Volume: "), i_flt_DispenseVolume, Translate(" Corrected Volume for Liquid Class: "), flt_DispenseVolume); // }} "" // {{{ 144 1 0 "26ebfd5b_3144_460d_8bc5f894f9ca7286" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate("Dispense Height: "), i_flt_DispenseHeight, Translate(""), Translate("")); // }} "" // {{ 145 1 0 "757d2bd5_38c0_4ee1_aaf7d05124c6c93c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 146 1 0 "ea2fda89_0933_4fe5_bc595af76d2319c7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidFollowingForMPH96(ML_STAR, i_flt_DispenseHeight, seq_Temp, i_bln_UseLiquidFollowing, BOOLEON::FALSE, i_flt_DispenseVolume, flt_LiquidFollowingDistance); // }} "" // {{{ 147 1 0 "05fad318_a702_41ea_bdbee0e773972592" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 0, Translate("Processing")); // }} "" // {{ 148 1 0 "e48fb309_9484_46fa_a654d7108c230c8a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementStartHeight = flt_ZStartHeight; // }} "" // {{ 149 1 0 "64755a16_fa32_4f62_aa1d5b037a770de0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = 245.0; // }} "" // {{ 150 1 0 "108e224f_b6ce_438d_86348f1050c29c2e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_End_Position == 1) { // }} "" // {{ 151 1 0 "3413e386_f4dd_4e0e_ab07d169f177c472" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_ZClearanceHeight; // }} "" // {{ 152 1 0 "108e224f_b6ce_438d_86348f1050c29c2e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 153 1 0 "15ef3377_8ea5_464b_900f535302eb8624" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_End_Position == 2) { // }} "" // {{ 154 1 0 "ae1cc3cb_9989_494c_814aeaf905a02ebd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_ZMaximumHeight; // }} "" // {{ 155 1 0 "15ef3377_8ea5_464b_900f535302eb8624" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 156 1 0 "60e38117_a8ef_463a_af1e107cfc57d781" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_End_Position == 3) { // }} "" // {{ 157 1 0 "8bd4ae9e_d56e_4222_8b599fabe008b34b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndHeight = i_flt_DispenseHeight + flt_LiquidFollowingDistance; // }} "" // {{ 158 1 0 "97586f4c_62c5_4b24_bcfec86ce61356e9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_EndHeight = flt_EndHeight + flt_ZBottom; // }} "" // {{ 159 1 0 "7494472a_ab66_4024_b36505aeb7c0a64a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_EndHeight; // }} "" // {{ 160 1 0 "b48a9c79_08df_4fe3_b86be87bee71ea98" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_MovementEndHeight < flt_ZMinimumHeight) { // }} "" // {{ 161 1 0 "f75790a3_4fcd_4668_a714099b4ebb98b0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_ZMinimumHeight; // }} "" // {{ 162 1 0 "b48a9c79_08df_4fe3_b86be87bee71ea98" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 163 1 0 "60e38117_a8ef_463a_af1e107cfc57d781" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 164 1 0 "c3cdbbf8_75db_4424_898f543662f54aac" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 165 1 0 "fa48b9ab_11a1_4c73_8a6e6afc9d20e5ca" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::MPH96DispenseFromFixedHeight(ML_STAR, T_PIP_TOOLS_DISPENSE_MODE, flt_XCoord, flt_YCoord, i_flt_DispenseHeight, flt_LiquidFollowingDistance, flt_MovementStartHeight, flt_MovementEndHeight, flt_ZMinimumHeight, flt_ZBottom, 0.0, flt_DispenseVolume, T_PIP_TOOLS_DISP_FLOW_RATE, T_PIP_TOOLS_DISP_STOP_FLOW, T_PIP_TOOLS_DISP_STOP_BACK, T_PIP_TOOLS_DISP_AIR_TRANSPORT, T_PIP_TOOLS_DISP_BLOWOUT, T_PIP_TOOLS_DISP_SETTLING, T_PIP_TOOLS_DISP_SWAP, i_flt_PullOutDistance); // }} "" // {{{ 166 1 0 "356227c4_11f3_449c_b0857c909b70c4e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 4, Translate("Processed")); // }} "" // {{ 167 1 0 "6128552c_bc78_4a8f_b1f6ec4b01cee6f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 168 1 0 "9b1c9615_5def_4bc0_ad082442d555270d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 169 1 0 "6128552c_bc78_4a8f_b1f6ec4b01cee6f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "MPH_DispenseToFixedHeight" "End" } // }} "" // {{{ 5 "_CheckForPressureErrors" "Begin" private function _CheckForPressureErrors( device & ML_STAR, variable i_str_AspirationReturnValue, variable i_str_LiquidReturnValue, variable i_flt_DispenseBackVolume, variable i_str_LiquidClassDispenseBack, variable & o_str_NoErrorChPattern ) void { // }} "" private variable int_TotalReturnValues; private variable int_Pos; private variable flt_NotUsed; private variable flt_ZBottom; private variable i; private variable int_Recovery; private variable flt_LiquidLevelHeight; private variable int_ChannelUsed; private variable str_ReturnValueLiquidLevel; private variable str_LabID; private variable int_DispenseCount; private variable int_TotalErrorChannels; private variable int_TotalChannels; private variable int_ChannelIndex; private variable str_PosID; private variable flt_DispenseHeight; private variable str_ChPattern; private sequence seq_Dispense; private variable arr_DispenseHeights[]; private variable arr_ChannelPattern[]; private variable arr_ChannelPatternNoError[]; // {{ 5 "_CheckForPressureErrors" "InitLocals" o_str_NoErrorChPattern = 0; // }} "" // {{ 1703 1 0 "e782db96_81f7_4a41_998e536994c93c66" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_AspirationReturnValue == "") { // }} "" // {{{ 1704 1 0 "2b082cda_bd4c_481b_bd5fa8d885bbc148" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 1705 1 0 "e782db96_81f7_4a41_998e536994c93c66" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1706 1 0 "87237b65_843e_4e32_8b2677c0518917d6" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("-----------------------------------------CheckForTADMErrors - START")); // }} "" // {{{ 1707 1 0 "42979d42_5730_4e78_bfd29bbbc4eb09ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalChannels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{ 1708 1 0 "c17dfb6c_1ab5_4c9e_bf3d6540b85cb56b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1709 1 0 "28a4c387_25cf_4877_824095348abc6032" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChannelPattern.SetSize(0); // }} "" // {{ 1710 1 0 "be386bdb_21ba_40f9_bbf17d735d54e8db" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChannelPatternNoError.SetSize(0); // }} "" // {{ 1711 1 0 "ce8204e2_313e_4827_bf069f3b4f8e5dd5" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_DispenseHeights.SetSize(0); // }} "" // {{ 1712 1 0 "6029a1b4_7c12_4745_9550f1cb4e5aa71b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{ 1713 1 0 "50e3f34a_6bb7_4007_a1885db451912819" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_DispenseHeights.AddAsLast(0.0); // }} "" // {{ 1714 1 0 "5dda57c5_3750_41a4_82190a0a2e5edb13" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChannelPattern.AddAsLast(0); // }} "" // {{ 1715 1 0 "2d312cc1_858a_4851_ab62614f33bc0965" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChannelPatternNoError.AddAsLast(0); // }} "" // {{ 1716 1 0 "6029a1b4_7c12_4745_9550f1cb4e5aa71b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1717 1 0 "18a1a33a_30ab_47ae_8e9d23357a270628" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_Dispense); // }} "" // {{ 1718 1 0 "99e5ebc0_6221_45c2_92ceba4a7c88c07a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1719 1 0 "bf06b94e_9dde_486d_ba9fc3a37c15404d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ReturnValueLiquidLevel = i_str_LiquidReturnValue; // }} "" // {{{ 1720 1 0 "48c547a1_b691_4aeb_b0728806f6fd2e6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalReturnValues = StepReturn::GetNumberOfPositions(i_str_AspirationReturnValue); // }} "" Trace(i_str_AspirationReturnValue); // {{ 1722 1 0 "e36fe486_c4e0_4f40_89216fb90ee25a9c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_DispenseCount = 1; // }} "" // {{ 1723 1 0 "2277d6cf_6250_4cd8_ab2f6dc5f37e88ba" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalReturnValues;) { i = i + 1; // }} "" // {{ 1724 1 0 "a83829bc_1051_4ab1_931b1a8cb5f721e6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_ZBottom = 0.0; // }} "" // {{{ 1725 1 0 "f48e8257_26ac_4282_acd801d594bfd846" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Pos = StepReturn::GetPositionFromNum(i, i_str_AspirationReturnValue); // }} "" // {{ 1726 1 0 "aabba532_1801_49a1_96b59ca897230a7c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1727 1 0 "10fb9c2a_bffd_4d25_81104d361f2dade6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = StepReturn::GetLabwareId(int_Pos, i_str_AspirationReturnValue); // }} "" // {{{ 1728 1 0 "945e6487_fe29_4293_b9de0ed36c7245a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = StepReturn::GetPositionId(int_Pos, i_str_AspirationReturnValue); // }} "" // {{ 1729 1 0 "3c7ba13f_1dd5_486e_a737d58184e4a5ca" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1730 1 0 "ab71d958_b7e6_46eb_b478c3f1ba22fb7b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Recovery = StepReturn::GetRecoveryButton(int_Pos, i_str_AspirationReturnValue); // }} "" // {{ 1731 1 0 "2c3f4ded_cb33_425f_9c8a480884e12628" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1732 1 0 "65fc3c3d_718c_461a_8b137db6217f9c11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ChannelUsed = StepReturn::GetPosition(int_Pos, i_str_AspirationReturnValue); // }} "" // {{ 1733 1 0 "94829a4e_edda_4956_aa796a45f63cc941" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1734 1 0 "d82bb162_dc10_427f_97f8aac8805f0080" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_LiquidLevelHeight = StepReturn::GetLastLiquidLevel(int_ChannelUsed, str_ReturnValueLiquidLevel); // }} "" // {{ 1735 1 0 "33ee4633_0d2e_4f0f_a77d0f6acb96b4ce" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1736 1 0 "ed3c35d3_bd92_4620_93581bfb87fba700" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Recovery == 9) { // }} "" // {{ 1737 1 0 "5482308a_bb0e_4896_90a395391479d5d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_LabID != "") { // }} "" // {{ 1738 1 0 "8f13d2f1_bd5f_4527_97cce3ce0aa29892" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_PosID != "") { // }} "" // {{{ 1739 1 0 "97a85001_f674_4df5_99cce7b89db3914a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_NotUsed, flt_NotUsed, flt_ZBottom, flt_NotUsed); // }} "" // {{ 1740 1 0 "8f13d2f1_bd5f_4527_97cce3ce0aa29892" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1741 1 0 "5482308a_bb0e_4896_90a395391479d5d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1742 1 0 "76e33a7d_eac3_4d3b_8a8b34c82ec10cf0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1743 1 0 "bdd84df7_3539_47e8_ab625034100123ec" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_DispenseHeight = flt_LiquidLevelHeight - flt_ZBottom; // }} "" // {{ 1744 1 0 "7da92bc5_0044_4f54_ae1265f142cffd21" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_DispenseHeight < 5.0) { // }} "" // {{ 1745 1 0 "85b46f89_a1f7_42e4_a3e74e348a152dba" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_DispenseHeight = 5.0; // }} "" // {{ 1746 1 0 "7da92bc5_0044_4f54_ae1265f142cffd21" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1747 1 0 "d699688a_28fb_44b0_8e94c9207f4766d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(seq_Dispense, str_LabID, str_PosID); // }} "" // {{ 1748 1 0 "ea978b45_90e9_436e_9f07b94df9f7282d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChannelPattern.SetAt(int_ChannelUsed-1, 1); // }} "" // {{ 1749 1 0 "b1a3caa4_b2ff_4b71_850040f0adc6204e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_DispenseHeights.SetAt(int_ChannelUsed-1, flt_DispenseHeight); // }} "" // {{ 1750 1 0 "ed3c35d3_bd92_4620_93581bfb87fba700" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1751 1 0 "b65821a7_c371_4d7b_b129c12c33e523e7" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChannelPatternNoError.SetAt(int_ChannelUsed-1, 1); // }} "" // {{ 1752 1 0 "ed3c35d3_bd92_4620_93581bfb87fba700" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1753 1 0 "2277d6cf_6250_4cd8_ab2f6dc5f37e88ba" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1754 1 0 "fd376040_f5f3_4d81_9d45158199a2b185" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Dispense.SetCurrentPosition(1); // }} "" // {{ 1755 1 0 "cacaaa67_4a2e_47b3_bcf13c700d7b3c46" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1756 1 0 "305ca67a_4f53_4e52_896911b8c736e929" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ChPattern = Translate(""); // }} "" // {{ 1757 1 0 "3d7bf2af_373e_4d75_88ac59a583e05b63" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_NoErrorChPattern = Translate(""); // }} "" // {{ 1758 1 0 "08fbf65e_d74b_4255_a2b2a70ea809ae36" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{{ 1759 1 0 "eeef0bb4_1a93_4eb9_b6ad457fb8d1d137" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChPattern = StrConcat2(str_ChPattern, arr_ChannelPattern.ElementAt( int_ChannelIndex -1)); // }} "" // {{{ 1760 1 0 "9405d05d_3319_4184_841e26b9d0448d88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_NoErrorChPattern = StrConcat2(o_str_NoErrorChPattern, arr_ChannelPatternNoError.ElementAt( int_ChannelIndex -1)); // }} "" // {{ 1761 1 0 "08fbf65e_d74b_4255_a2b2a70ea809ae36" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" Trace("Channel Pattern no error: ",o_str_NoErrorChPattern); // {{{ 1763 1 0 "2cb74f4c_d9f3_4d77_8e850aab761b91a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalErrorChannels = StrReplace(str_ChPattern, Translate("1"), Translate("1")); // }} "" // {{ 1764 1 0 "715e73b5_fad5_4c43_aa3a9469ba2c16e0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalErrorChannels == 0) { // }} "" // {{ 1765 1 0 "06c1f7cb_1c41_459c_9700d5c5a4bafec4" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("======================================================================\nNO PRESSURE ERRORS\n======================================================================")); // }} "" // {{ 1766 1 0 "715e73b5_fad5_4c43_aa3a9469ba2c16e0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1767 1 0 "5b062f27_a24e_4bdc_a2c3d7f5972b6e89" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_LiquidClassDispenseBack != "") { // }} "" // {{ 1768 1 0 "eb2ad94c_dd6e_4dd6_84b061ae405750b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_flt_DispenseBackVolume > 0.0) { // }} "" // {{ 1769 1 0 "ef3fdedf_fab7_46c4_8b88cb79c20e85cb" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("================================================================\nSAMPLE DISPENSE BACK TO SOURCE REQUIRED!\n")); // }} "" Trace("Channel Pattern of channels that need to dispense back to source: ",str_ChPattern); // {{{ 1771 1 0 "7dea5406_3e49_47e5_a1282f64ca374d18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceSequence(seq_Dispense); // }} "" // {{{ 1772 1 0 "162b5432_4079_4f3d_8cebda63c50ae959" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Dispense Heights"), arr_DispenseHeights); // }} "" // {{ 1773 1 0 "9e42f1da_34fb_438e_b04e3e97fbf7deb5" "ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2("9e42f1da_34fb_438e_b04e3e97fbf7deb5"); // Dispense } // }} "" // {{ 1774 1 0 "08796230_6ad4_42fa_90396f5f4545ae63" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("\n================================================================")); // }} "" // {{ 1775 1 0 "eb2ad94c_dd6e_4dd6_84b061ae405750b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1776 1 0 "5b062f27_a24e_4bdc_a2c3d7f5972b6e89" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1777 1 0 "715e73b5_fad5_4c43_aa3a9469ba2c16e0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1778 1 0 "acb00700_80cf_44a2_8bf7827873855c58" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("-----------------------------------------CheckForTADMErrors - END")); // }} "" // {{{ 5 "_CheckForPressureErrors" "End" } // }} "" // {{{ 5 "TOOL_CalculateVolumeForHeight" "Begin" function TOOL_CalculateVolumeForHeight( device & ML_STAR, sequence i_seq_LabwareForCalculation, variable i_flt_HeightOfVolume, variable & o_flt_Volume ) void { // }} "" private variable _strFunctionName; private variable str_LabID; private variable str_ConfigFile; private variable str_PosID; // {{ 5 "TOOL_CalculateVolumeForHeight" "InitLocals" o_flt_Volume = 0; // }} "" // {{ 1644 1 0 "5d320976_b6b6_4a36_aff000b78d2d0d37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1645 1 0 "c86b2074_1484_4b4a_aec9b964ec7088e8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 1647 1 0 "a867c267_264e_44a9_abaacde24b31de64" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 1648 1 0 "5d320976_b6b6_4a36_aff000b78d2d0d37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1649 1 0 "4dae6cce_9144_4eb8_90318ab5fb77ae38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_LabwareForCalculation); // }} "" // {{{ 1650 1 0 "7b3fba34_520b_4276_85fb9eb7545de8b6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seq_LabwareForCalculation); // }} "" // {{{ 1651 1 0 "79d77517_f4e2_4299_af1afba4ff5c97eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" LabID: "), str_LabID, Translate(" Position ID: "), str_PosID); // }} "" // {{{ 1652 1 0 "2afad708_5009_4b67_b43ced40eda97746" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_LabID, str_PosID, str_ConfigFile); // }} "" // {{{ 1653 1 0 "593d0247_b82c_4542_8f86ae8f574ca7b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetVolumeBasedOnHeight(str_ConfigFile, i_flt_HeightOfVolume, o_flt_Volume); // }} "" // {{{ 1654 1 0 "5b9ae5ee_83ad_460c_940b4f406d6a8cde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" Height: "), i_flt_HeightOfVolume, Translate(" Volume: "), o_flt_Volume); // }} "" // {{ 1655 1 0 "60b42f20_dcfd_4e75_bd00573c4c078357" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1656 1 0 "4e2e0e7c_a054_4c52_a4d4730623c6e3e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 1657 1 0 "60b42f20_dcfd_4e75_bd00573c4c078357" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TOOL_CalculateVolumeForHeight" "End" } // }} "" // {{{ 5 "_GetLabwareLimits" "Begin" private function _GetLabwareLimits( device & ML_STAR, variable i_str_LabID, variable & o_flt_XMin, variable & o_flt_XMax, variable & o_flt_YMin, variable & o_flt_YMax ) void { // }} "" private variable flt_Angle; private variable flt_NotUsed; private variable flt_LabwareYDim; private variable flt_LabwareXDim; private variable flt_OriginX; private variable flt_OriginY; private variable flt_OriginZ; private variable i; // {{ 5 "_GetLabwareLimits" "InitLocals" o_flt_XMin = 0; o_flt_XMax = 0; o_flt_YMin = 0; o_flt_YMax = 0; // }} "" // {{{ 2229 1 0 "59a9d321_c287_4537_9578b9a0d093710e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePosition(ML_STAR, i_str_LabID, flt_NotUsed, flt_NotUsed, flt_NotUsed, flt_Angle); // }} "" // {{{ 2230 1 0 "ae2b547f_77b8_4d39_9905409e5eacac44" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetLabwareOrigin(ML_STAR, i_str_LabID, flt_OriginX, flt_OriginY, flt_OriginZ); // }} "" // {{{ 2231 1 0 "3c7cec60_7b08_4a88_896edb5c147f9cb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetLabwareLW(ML_STAR, i_str_LabID, flt_LabwareYDim, flt_LabwareXDim); // }} "" // {{ 2232 1 0 "f95f4bb9_015b_4242_a299167abbecea97" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < 1;) { i = i + 1; // }} "" // {{ 2233 1 0 "a70b0249_a7b8_4c22_91362a019a902887" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_XMin = flt_OriginX; // }} "" // {{ 2234 1 0 "96053a6e_ff26_44a1_8275a580079b6f13" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_YMin = flt_OriginY; // }} "" // {{ 2235 1 0 "02a4417a_d0a3_4dab_8bf0a7a74fff89c8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_XMax = flt_OriginX + flt_LabwareXDim; // }} "" // {{ 2236 1 0 "fe097457_a60d_4a87_82abcf27fc9b8e45" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_YMax = flt_OriginY + flt_LabwareYDim; // }} "" // {{ 2237 1 0 "e6991c87_b4e1_44a0_b8e82e9b0f98bbfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Angle == 90) { // }} "" // {{ 2238 1 0 "a3b19ae7_82f8_451c_a2060a6b93d175db" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_XMin = flt_OriginX; // }} "" // {{ 2239 1 0 "9e7e40cc_06d6_48d8_8441c4c1cc2becb5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_YMax = flt_OriginY; // }} "" // {{ 2240 1 0 "d7d0016c_019a_4eb1_8ef7e07ed9da25d5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_XMax = flt_OriginX + flt_LabwareYDim; // }} "" // {{ 2241 1 0 "baf7a761_2fc1_4012_ab7cb6d0db8931fb" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_YMin = flt_OriginY - flt_LabwareXDim; // }} "" // {{ 2242 1 0 "611d5b7c_d2e6_48f3_977429a86acd80eb" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2243 1 0 "e6991c87_b4e1_44a0_b8e82e9b0f98bbfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2244 1 0 "5a9093c8_9f4e_4a01_958ece676a05d173" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Angle == 180) { // }} "" // {{ 2245 1 0 "ca07bc3a_6d65_4cea_8e0a133c109fdf59" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_XMax = flt_OriginX; // }} "" // {{ 2246 1 0 "3533b504_78f5_4cad_a0a09e2b04d68846" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_YMax = flt_OriginY; // }} "" // {{ 2247 1 0 "58544be5_7bd1_4174_9d46ccfe656a9ec4" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_XMin = flt_OriginX - flt_LabwareXDim; // }} "" // {{ 2248 1 0 "1e420591_f535_4238_8a31dbadf45ba94c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_YMin = flt_OriginY - flt_LabwareYDim; // }} "" // {{ 2249 1 0 "3700c789_0c48_46bf_ab4aad158204ccaa" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2250 1 0 "5a9093c8_9f4e_4a01_958ece676a05d173" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2251 1 0 "69943145_ff55_40d3_9d92bfa15462dfdd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_Angle == 270) { // }} "" // {{ 2252 1 0 "46dd0980_ba3e_4d66_be4900440f227e6b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_XMax = flt_OriginX; // }} "" // {{ 2253 1 0 "009579ae_ffaf_4bad_ae7928fcfeaf5fd7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_YMin = flt_OriginY; // }} "" // {{ 2254 1 0 "b4fd3c78_b31f_498c_b4de0d90365d3b99" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_XMin = flt_OriginX - flt_LabwareYDim; // }} "" // {{ 2255 1 0 "6f023a87_16c3_4a33_bd0b7a1635ff3e31" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_YMax = flt_OriginY + flt_LabwareXDim; // }} "" // {{ 2256 1 0 "1d3dab8a_e7e3_4aeb_a0646a1b137fc48b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2257 1 0 "69943145_ff55_40d3_9d92bfa15462dfdd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2258 1 0 "f95f4bb9_015b_4242_a299167abbecea97" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2259 1 0 "2daf8299_0a3b_44de_86d144abce8c5054" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE08(Translate(" "), Translate("X Min: "), o_flt_XMin, Translate(" X Max: "), o_flt_XMax, Translate(""), Translate(""), Translate("")); // }} "" // {{{ 2260 1 0 "d666895a_b3a5_4a87_bb57178a3826acbc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE08(Translate(" "), Translate("Y Min: "), o_flt_YMin, Translate(" Y Max: "), o_flt_YMax, Translate(""), Translate(""), Translate("")); // }} "" // {{{ 5 "_GetLabwareLimits" "End" } // }} "" // {{{ 5 "PIP_MixFromFixedHeight" "Begin" function PIP_MixFromFixedHeight( device & ML_STAR, variable i_str_ChPattern, sequence i_seq_MixPositions, variable & i_arr_FixedHeights[], variable i_int_End_Position, variable i_bln_UseLiquidFollowing, variable i_str_LiquidClass, variable i_flt_MixVolume, variable i_int_MixCycles ) void { // }} "" private variable bln_SimulationMode; private variable bln_ProbabilityPassed; private variable bln_TipsLoaded; private variable flt_NotUsed; private variable flt_ContainerDepth; private variable flt_MovementStartHeight; private variable flt_ZBottom; private variable flt_ZMaximumHeight; private variable bln_ChannelsAtCoordinates; private variable _strFunctionName; private variable str_LabID; private variable flt_ZStartHeight; private variable flt_ZClearanceHeight; private variable flt_AspirationVolume; private variable int_TotalChannels; private variable flt_ZMinimumHeight; private variable flt_DispenseHeight; private variable flt_MovementEndHeight; private sequence seq_Temp; private variable arr_LiquidFollowingDistance[]; private variable arr_YCoord[]; private variable arr_XCoord[]; private variable arr_AspirationHeights[]; private variable flt_MixVolume; // {{ 5 "PIP_MixFromFixedHeight" "InitLocals" // }} "" // {{ 435 1 0 "709f2224_f785_4533_b8e6fff0956538d1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 436 1 0 "15850733_0dfb_49b4_b9f417303886bd19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 438 1 0 "d73c76eb_d51a_478d_8ecf347029585755" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 439 1 0 "709f2224_f785_4533_b8e6fff0956538d1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 440 1 0 "b02fdb69_4dab_4c7c_91c03eb43edc0f95" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 441 1 0 "7fe739eb_29cc_4904_a2d912ebb41e4a9a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _InitLiquidClassStorage(); // }} "" // {{{ 442 1 0 "8741ceb1_0342_41f6_b335c2d3f9b3790f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_SimulationMode = Util::GetSimulationMode(); // }} "" // {{ 443 1 0 "ef73a351_f4a6_46a8_b832d5b10a349978" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 444 1 0 "4fc65373_0651_47f0_b18f856060f5331e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::GetChannelNumber1mL(ML_STAR, int_TotalChannels); // }} "" // {{ 445 1 0 "e2ee4f12_6130_4632_911a5784eff12472" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 446 1 0 "354b23d4_5cf2_4eb5_aad92ad9375dd89b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChPattern = StrConcat2(i_str_ChPattern, Translate("")); // }} "" // {{{ 447 1 0 "3d7c76f6_1a69_4a14_b56608cfc52cc60d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChPattern = StrFillRight(i_str_ChPattern, Translate("0"), int_TotalChannels); // }} "" // {{ 448 1 0 "07c539ed_1c1c_4f5e_8e1a618084436d52" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 449 1 0 "f5af5bce_2b44_449e_b2a8c60820a7ba31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextSequenceSet(i_seq_MixPositions, i_str_ChPattern, seq_Temp); // }} "" // {{ 450 1 0 "26f9028b_16f0_4b9b_824c30b48bb40c52" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 451 1 0 "f2512d83_4b70_4aed_a06bdbcda4031905" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_Temp, i_str_ChPattern); // }} "" // {{ 452 1 0 "01f97a90_0caa_4d85_bffc452c7d486036" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ProbabilityPassed == BOOLEON::FALSE) { // }} "" // {{ 453 1 0 "8b6f2811_69f4_4fcb_ac16ee9fb69e3494" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("SEQUENCE IS NOT SORTED CORRECTLY FOR THE USE OF THIS FUNCITON!\nSEQUENCE MUST BE SUCH THAT THE CHANNEL PATTERN USED CAN BE DONE AT ONE TIME WITHOUT NEEDING TO MOVE CHANNELS OUT OF THE WAY!")); // }} "" // {{ 454 1 0 "1ee5ba5b_f8ac_4b75_a899dfbefc4fc471" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 455 1 0 "f4eed0d6_ede8_4031_b0ad4fe9f263e3e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 456 1 0 "1ee5ba5b_f8ac_4b75_a899dfbefc4fc471" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 457 1 0 "edd9e761_085d_4f4f_90746336c5527523" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 458 1 0 "01f97a90_0caa_4d85_bffc452c7d486036" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 459 1 0 "d43695b4_7f8b_400b_9e62c17a15dadfab" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 460 1 0 "86bad04b_8b94_4879_ad43a83045e32a5c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_TipsLoaded = _EnsureTipsAreLoaded(ML_STAR, i_str_ChPattern); // }} "" // {{ 461 1 0 "c2a3c880_e468_4581_b6418fa1b608fc6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_TipsLoaded == BOOLEON::FALSE) { // }} "" // {{ 462 1 0 "49839430_3708_4dea_8dfcde3a0fee9d01" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("TIPS PICKED UP DO NOT MATCH THE CHANNEL PATTERN!")); // }} "" // {{ 463 1 0 "4f55bd18_62fa_46d1_a6299632d3acc117" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 464 1 0 "e8329f6d_73f5_47a3_9e14daa797e7c486" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 465 1 0 "4f55bd18_62fa_46d1_a6299632d3acc117" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 466 1 0 "584e67d8_7194_47a4_aac91697d126322e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 467 1 0 "c2a3c880_e468_4581_b6418fa1b608fc6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 468 1 0 "a712be01_221a_49c1_b648724e456097c1" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 469 1 0 "8567fe7d_6af9_4b17_9861ff65d16ff712" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLabwareCoordinates(ML_STAR, seq_Temp, i_str_ChPattern, arr_XCoord, arr_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight); // }} "" // {{ 470 1 0 "a759d21a_be3d_43ff_b790dd3c1dd78d8c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ContainerDepth = flt_ZMaximumHeight - flt_ZMinimumHeight; // }} "" // {{ 471 1 0 "7c05bfe4_7d97_485c_92c6fb2434e288b3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 472 1 0 "4e17ac2a_855d_4d89_ab267438969a6275" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_Temp); // }} "" // {{{ 473 1 0 "42fa07a7_71b5_47b8_a17367022f393d60" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ChannelsAtCoordinates = _DetermineStartZHeight(ML_STAR, i_str_ChPattern, str_LabID, arr_XCoord, arr_YCoord, flt_ZMinimumHeight, flt_ZClearanceHeight, flt_ZStartHeight); // }} "" // {{ 474 1 0 "c8e027b1_ba13_407c_afe6fb2c57b6fe8c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 475 1 0 "ed8d2b66_6750_4770_a53aeff5a5b4f3ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ApplyOffsetToArrayofValues(i_arr_FixedHeights, flt_ZBottom, arr_AspirationHeights); // }} "" // {{ 476 1 0 "65546bc4_ba3d_4892_9d3df54d132f2f23" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 477 1 0 "867ed115_f540_489b_b57ef27f3dae8900" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidClassParams(i_str_LiquidClass, BOOLEON::TRUE, T_PIP_TOOLS_ASP_FLOW_RATE, T_PIP_TOOLS_ASP_MIX_FLOW_RATE, T_PIP_TOOLS_ASP_AIR_TRANSPORT, T_PIP_TOOLS_ASP_BLOWOUT, T_PIP_TOOLS_ASP_SWAP, T_PIP_TOOLS_ASP_SETTLING, T_PIP_TOOLS_ASP_OVERASPIRATE, T_PIP_TOOLS_ASP_CLOT_RETRACT, flt_NotUsed, flt_NotUsed, T_PIP_TOOLS_MAX_VOLUME, T_PIP_TOOLS_DISPENSE_MODE, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y); // }} "" // {{{ 478 1 0 "57749e8a_30e7_41bc_a2e0d1f12a7cf1fc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidClassParams(i_str_LiquidClass, BOOLEON::FALSE, T_PIP_TOOLS_DISP_FLOW_RATE, T_PIP_TOOLS_DISP_MIX_FLOW_RATE, T_PIP_TOOLS_DISP_AIR_TRANSPORT, T_PIP_TOOLS_DISP_BLOWOUT, T_PIP_TOOLS_DISP_SWAP, T_PIP_TOOLS_DISP_SETTLING, flt_NotUsed, flt_NotUsed, T_PIP_TOOLS_DISP_STOP_FLOW, T_PIP_TOOLS_DISP_STOP_BACK, T_PIP_TOOLS_MAX_VOLUME, T_PIP_TOOLS_DISPENSE_MODE, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y); // }} "" // {{ 479 1 0 "56d60f98_2e08_43d6_886ae38ccbded5bb" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 480 1 0 "5b53a3a8_53e3_410d_990a4bdeb4b397af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetCorrectedValueForVolume(i_flt_MixVolume, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y, flt_MixVolume); // }} "" // {{{ 481 1 0 "c49834cd_6f9a_41d0_9a5243c205145826" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate("Mix Volume: "), i_flt_MixVolume, Translate(" Corrected Volume for Liquid Class: "), flt_MixVolume); // }} "" // {{ 482 1 0 "cda3cb5c_e361_48da_940f7bb80e7ce1b2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 483 1 0 "50cd3239_9108_46e8_995be7cb777e3b49" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidFollowingForAllChannels(ML_STAR, i_arr_FixedHeights, seq_Temp, i_bln_UseLiquidFollowing, BOOLEON::TRUE, flt_AspirationVolume, i_str_ChPattern, arr_LiquidFollowingDistance); // }} "" // {{{ 484 1 0 "610cd7f6_8101_4774_b0b19b47acc89b13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 0, Translate("Processing")); // }} "" // {{ 485 1 0 "2c40f5f0_fdb7_4183_bde357cc6f5d4a15" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementStartHeight = flt_ZStartHeight; // }} "" // {{ 486 1 0 "80af149d_caf0_4583_be7299b557ac8147" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = 245.0; // }} "" // {{ 487 1 0 "1c1951ce_5a24_43d0_be7d52a95380d1d1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_End_Position == 1) { // }} "" // {{ 488 1 0 "5e773e48_842b_4d60_8b24fd613626f940" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_ZClearanceHeight; // }} "" // {{ 489 1 0 "1c1951ce_5a24_43d0_be7d52a95380d1d1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 490 1 0 "5f0ec7f8_6692_4e2b_930ce8ec668ba806" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_End_Position == 2) { // }} "" // {{ 491 1 0 "73abcc32_8911_48e8_95f318801fe87b2a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_ZMaximumHeight; // }} "" // {{ 492 1 0 "5f0ec7f8_6692_4e2b_930ce8ec668ba806" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 493 1 0 "4e472715_daff_496f_95795d401ec9fe2f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_End_Position == 3) { // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 494 1 0 "adbd6f8f_0e9b_4d8a_a23d5286ddb48a02" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_ZMinimumHeight; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 495 1 0 "a6f6b40d_dd56_4897_8614cada0b241ba9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_DispenseHeight = HSLStatisitics::Stat_Max(i_arr_FixedHeights); // }} "" // {{ 496 1 0 "388be725_e048_4d8b_ae887a710d99297f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_DispenseHeight + flt_ZBottom; // }} "" // {{ 497 1 0 "48ff1540_09f2_4ad8_a4f6af9e46564aea" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_MovementEndHeight < flt_ZMinimumHeight) { // }} "" // {{ 498 1 0 "41a350a0_639a_4632_85ad62efed67d0a6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MovementEndHeight = flt_ZMinimumHeight; // }} "" // {{ 499 1 0 "48ff1540_09f2_4ad8_a4f6af9e46564aea" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 500 1 0 "4e472715_daff_496f_95795d401ec9fe2f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 501 1 0 "d48aac06_9147_47bb_9df66596f51cab74" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 502 1 0 "415f4b01_92ac_4bfd_a75db86ba42025c5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::PIPMixFromFixedHeight(ML_STAR, i_str_ChPattern, arr_XCoord, arr_YCoord, arr_AspirationHeights, arr_LiquidFollowingDistance, flt_MovementStartHeight, flt_MovementEndHeight, flt_ZMinimumHeight, flt_ZBottom, i_int_MixCycles, flt_MixVolume, T_PIP_TOOLS_ASP_MIX_FLOW_RATE); // }} "" // {{{ 503 1 0 "e4100e74_741a_492b_b8e2ec9a6219df29" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 4, Translate("Processed")); // }} "" // {{ 504 1 0 "f2f34f43_1f39_489f_b8a4a2ae6a574452" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 505 1 0 "798c2f0e_0607_41f3_88f679c813ff5929" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 506 1 0 "f2f34f43_1f39_489f_b8a4a2ae6a574452" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "PIP_MixFromFixedHeight" "End" } // }} "" // {{{ 5 "PIP_PhaseAspirationWasteRemainder" "Begin" function PIP_PhaseAspirationWasteRemainder( device & ML_STAR, variable i_str_ChPattern, variable i_str_LiquidClass, sequence i_seq_AspirationPosition, sequence i_seq_DispensePosition, variable i_bln_UseCLLD, variable i_flt_SafeHeightAbovePhase, variable i_flt_AdditionalAspirationVolume, variable i_flt_DispenseHeight ) void { // }} "" private variable bln_SimulationMode; private variable _strFunctionName; private variable int_TotalChannels; private variable int_PLLD; private variable flt_ZBottomDispesne; private variable bln_TipsLoaded; private variable bln_ProbabilityPassed; private variable flt_NotUsed; private variable flt_ZBottom; private variable flt_ZClearanceHeightDispense; private variable flt_ZMaximumHeight; private variable flt_ZMinimumHeightDispense; private variable flt_ZClearanceHeight; private variable flt_ZMaximumHeightDispense; private variable flt_ZMinimumHeight; private variable int_CLLD; private variable int_Value; private variable str_ReturnChPattern; private variable flt_MaxTipVolume; private variable int_ChIndex; private sequence seq_Temp; private sequence seq_TempDispense; private variable arr_MaxVolumes[]; private variable arr_XCoordDispense[]; private variable arr_YCoordDispense[]; private variable arr_YCoord[]; private variable arr_XCoord[]; private variable arr_LiquidLevelHeights[]; private variable flt_VolumeToAspirate; private variable flt_ContainerDepth; private variable str_ContainerConfig; private variable flt_TopHeight; private variable flt_BottomHeight; private variable str_LabID; private variable flt_BottomVolume; private variable flt_TopVolume; private variable flt_LiquidFollowingDistance; private variable str_PosID; private variable arr_LiquidFollowingDistances[]; private variable arr_AspirationVolumes[]; private variable arr_AspirationHeights[]; private variable str_PosIDDisp; private variable str_LabIDDisp; private variable str_ContainerConfigDisp; private variable arr_DispenseHeights[]; private variable arr_LiquidFollowingDistancesDisp[]; private variable flt_TopHeightContainer; private variable flt_BottomHeightContainer; private variable flt_AspirationHeight; private variable flt_DispenseHeight; private variable int_TotalActiveChannels; private variable arr_TopPhaseHeight[]; private variable arr_SecondPhaseHeights[]; // {{ 5 "PIP_PhaseAspirationWasteRemainder" "InitLocals" // }} "" // {{ 1445 1 0 "0c4ea4a7_4915_4687_853b574330f48333" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1446 1 0 "0f9bd729_6a1a_4975_a6c49440df868930" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 1448 1 0 "455fbeac_7af5_44a7_8c4fce4ff8cbc2f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 1449 1 0 "0c4ea4a7_4915_4687_853b574330f48333" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1450 1 0 "fd499c3a_6207_4001_b1fbb90762df5fd2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1451 1 0 "fefe8d48_c412_488d_a0085aefe7939f68" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _InitLiquidClassStorage(); // }} "" // {{{ 1452 1 0 "85ba0389_b651_435b_aacebfac034b11d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_SimulationMode = Util::GetSimulationMode(); // }} "" // {{ 1453 1 0 "67329df4_0ab9_4451_99589e7ce533c04a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1454 1 0 "11beae7e_66c9_46f0_abc5ec400290e6aa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::GetChannelNumber1mL(ML_STAR, int_TotalChannels); // }} "" // {{ 1455 1 0 "cb983161_1c71_4790_a65ff4dcfba21f34" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_TopPhaseHeight.SetSize(0); // }} "" // {{ 1456 1 0 "bc145ce5_ec9a_4239_b75f365769c322fd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ReturnChPattern = Translate(""); // }} "" // {{{ 1457 1 0 "05613ce4_b9b7_4968_a021df8289063b70" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ReturnChPattern = StrFillRight(str_ReturnChPattern, Translate("0"), int_TotalChannels); // }} "" // {{ 1458 1 0 "db92caf3_9ed9_4c92_af8f26c8281f545c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1459 1 0 "0cd28ebf_2181_4263_a47b402820ffb2c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChPattern = StrConcat2(i_str_ChPattern, Translate("")); // }} "" // {{{ 1460 1 0 "c200803d_2481_457e_8cf8708453009505" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChPattern = StrFillRight(i_str_ChPattern, Translate("0"), int_TotalChannels); // }} "" // {{{ 1461 1 0 "6d81aa6a_db3f_47b8_b1a0f44ffc9d05e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalActiveChannels = StrReplace(i_str_ChPattern, Translate("1"), Translate("1")); // }} "" // {{ 1462 1 0 "df0c77c4_04d2_4d6f_9fcb7dc9c2ac9205" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalActiveChannels == 0) { // }} "" // {{ 1463 1 0 "d99f86b4_e6db_4d12_a225e6e3268ac530" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("CHANNEL PATTERN CONTAINS NO ACTIVE CHANNELS!")); // }} "" // {{ 1464 1 0 "eb0bc9bc_efcc_47cf_bb1a4327a959bd85" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1465 1 0 "f78795a4_1cbe_4b7e_a66d2f66e3f8bc41" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 1466 1 0 "eb0bc9bc_efcc_47cf_bb1a4327a959bd85" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1467 1 0 "94ec42dc_69ea_43bb_b319f76e0331a373" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 1468 1 0 "df0c77c4_04d2_4d6f_9fcb7dc9c2ac9205" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1469 1 0 "470270b9_e44a_44ae_9a41b882bdf58938" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1470 1 0 "d1268d78_f1c5_4c0a_89de01ad6ac070c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextSequenceSet(i_seq_AspirationPosition, i_str_ChPattern, seq_Temp); // }} "" // {{ 1471 1 0 "ef82fa0d_5f76_4817_a4a04c2be1d0379e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1472 1 0 "a8778bc9_4492_45c9_b384d6b48b793e6a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_Temp, i_str_ChPattern); // }} "" // {{ 1473 1 0 "cc11c555_576e_4b3d_b638dea3f81f58bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ProbabilityPassed == BOOLEON::FALSE) { // }} "" // {{ 1474 1 0 "a73addf5_659d_419e_8a38308a0a5b7c23" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("ASPIRATE SEQUENCE IS NOT SORTED CORRECTLY FOR THE USE OF THIS FUNCITON!\nSEQUENCE MUST BE SUCH THAT THE CHANNEL PATTERN USED CAN BE DONE AT ONE TIME WITHOUT NEEDING TO MOVE CHANNELS OUT OF THE WAY!")); // }} "" // {{ 1475 1 0 "0021afc5_911e_48f6_8731565183a6aefc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1476 1 0 "16009541_ba77_4d82_bdee2238a6152121" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 1477 1 0 "0021afc5_911e_48f6_8731565183a6aefc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1478 1 0 "93c20786_4090_4e7e_aa992d4f4dbf8cdc" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 1479 1 0 "cc11c555_576e_4b3d_b638dea3f81f58bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1480 1 0 "31fd4c44_ad17_4575_b181ba5d0bf0d2b3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1481 1 0 "c4d46276_0391_431e_91da24aaf5e4f6c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextSequenceSet(i_seq_DispensePosition, i_str_ChPattern, seq_TempDispense); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 1482 1 0 "b98475c5_d177_4f01_ab439bcc6e71c4f7" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1483 1 0 "682625fc_cbd0_491c_b57519da79f3bec9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_TempDispense, i_str_ChPattern); // }} "" // {{ 1484 1 0 "522c8f59_3d82_47d8_aadd4e01bff35523" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ProbabilityPassed == BOOLEON::FALSE) { // }} "" // {{ 1485 1 0 "23e0bd2c_288d_4c4f_a93797caf4d8c9d6" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("DISPENSE SEQUENCE IS NOT SORTED CORRECTLY FOR THE USE OF THIS FUNCITON!\nSEQUENCE MUST BE SUCH THAT THE CHANNEL PATTERN USED CAN BE DONE AT ONE TIME WITHOUT NEEDING TO MOVE CHANNELS OUT OF THE WAY!")); // }} "" // {{ 1486 1 0 "5bebc339_1aa6_4297_9589f75b82b8fb00" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1487 1 0 "bdedebe2_6508_4655_b8283ca3eaeaece9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 1488 1 0 "5bebc339_1aa6_4297_9589f75b82b8fb00" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1489 1 0 "0408357d_0749_4d8f_bf6a612a84a8a6cc" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 1490 1 0 "522c8f59_3d82_47d8_aadd4e01bff35523" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1491 1 0 "1bf54e5c_5c2c_4c1b_bbae2e1a45698dcd" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1492 1 0 "45309945_631f_4584_b04b053d40f18669" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_TipsLoaded = _EnsureTipsAreLoaded(ML_STAR, i_str_ChPattern); // }} "" // {{ 1493 1 0 "bde0fa04_e46e_4632_8c16985881591b96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_TipsLoaded == BOOLEON::FALSE) { // }} "" // {{ 1494 1 0 "138fc1f0_2270_4e58_a1abbb95fbf56fca" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("TIPS PICKED UP DO NOT MATCH THE CHANNEL PATTERN!")); // }} "" // {{ 1495 1 0 "af1e747c_09da_48cb_838c33407dbc205c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1496 1 0 "9f555ef9_0eb3_49c8_b6a66029b2d842ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 1497 1 0 "af1e747c_09da_48cb_838c33407dbc205c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1498 1 0 "4115fdcb_852e_47f8_af8e5997dca21dc1" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 1499 1 0 "bde0fa04_e46e_4632_8c16985881591b96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1500 1 0 "f82425d4_14a8_43ac_822e3a13a557ea85" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetHeightInfoFromLabware(ML_STAR, BOOLEON::FALSE, seq_Temp, arr_SecondPhaseHeights); // }} "" // {{{ 1501 1 0 "f89c0ec6_168e_4875_a5ebc1accfcd8251" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetHeightInfoFromLabware(ML_STAR, BOOLEON::TRUE, seq_Temp, arr_TopPhaseHeight); // }} "" // {{ 1502 1 0 "3c6ed590_2c5e_4105_8d320988d9b28320" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1503 1 0 "796b2fd2_751f_4df9_9255314593821483" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLabwareCoordinates(ML_STAR, seq_Temp, i_str_ChPattern, arr_XCoord, arr_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight); // }} "" // {{{ 1504 1 0 "66950d31_4ff7_4f44_889b34bc0c93a491" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLabwareCoordinates(ML_STAR, seq_TempDispense, i_str_ChPattern, arr_XCoordDispense, arr_YCoordDispense, flt_ZBottomDispesne, flt_ZMinimumHeightDispense, flt_ZMaximumHeightDispense, flt_ZClearanceHeightDispense); // }} "" // {{ 1505 1 0 "c53ec153_20c5_4eb8_8c55f8dc09b46628" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ContainerDepth = flt_ZMaximumHeight - flt_ZMinimumHeight; // }} "" // {{ 1506 1 0 "bca66b0e_9df2_400b_a2f77af5a6140b5a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1507 1 0 "54b3e6f4_c053_4990_bcf12c805d6f534a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_UseCLLD == BOOLEON::TRUE) { // }} "" // {{ 1508 1 0 "86cd45fd_502f_4a49_8672369009cfa27a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_CLLD = 1; // }} "" // {{ 1509 1 0 "f79a4c66_7c90_4a57_8087a2d1b9ed65bc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PLLD = 0; // }} "" // {{ 1510 1 0 "54b3e6f4_c053_4990_bcf12c805d6f534a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1511 1 0 "2c1fff0d_fe33_483a_a58f5bac0fc1ddc0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_CLLD = 0; // }} "" // {{ 1512 1 0 "9d880e85_0184_4148_9a0f1f4923995dcc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PLLD = 1; // }} "" // {{ 1513 1 0 "54b3e6f4_c053_4990_bcf12c805d6f534a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1514 1 0 "a47e7a2f_dd31_40ac_9ee509eb92fec68b" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_MaxVolumes.SetSize(0); // }} "" // {{ 1515 1 0 "c4514c71_0fea_4c46_806820716af488c5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 1516 1 0 "e6f6b21a_9003_486e_956859c39184178e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(i_str_ChPattern, int_ChIndex, int_Value); // }} "" // {{ 1517 1 0 "91c8b8ec_95bc_47d0_8cf2b0675d6ea279" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{{ 1518 1 0 "6678511f_ed7f_41e9_a2db557d8fb5caed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::Get_Tip_Volume_1mL(ML_STAR, int_ChIndex, flt_MaxTipVolume, flt_NotUsed); // }} "" // {{ 1519 1 0 "41a5dcdc_84e7_44a3_9c7e2a6ed220f109" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_MaxVolumes.AddAsLast(flt_MaxTipVolume); // }} "" // {{ 1520 1 0 "91c8b8ec_95bc_47d0_8cf2b0675d6ea279" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1521 1 0 "a9e189f3_fa17_4867_a083355668ba7600" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_MaxVolumes.AddAsLast(0.0); // }} "" // {{ 1522 1 0 "91c8b8ec_95bc_47d0_8cf2b0675d6ea279" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1523 1 0 "c4514c71_0fea_4c46_806820716af488c5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1524 1 0 "44767dc5_eda8_42c1_b360a62f7c8455bd" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1525 1 0 "8d311609_4eb0_4053_88755feb25c13e5e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::PIPFindLiquidLevel(ML_STAR, i_str_ChPattern, arr_XCoord, arr_YCoord, 245.0, flt_ZMaximumHeight, flt_ZClearanceHeight, flt_ZMinimumHeight, i_bln_UseCLLD, arr_LiquidLevelHeights); // }} "" // {{ 1526 1 0 "edb6af0d_7cc7_4013_8d3be01a4208c15a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1527 1 0 "1887e881_e656_4cdc_88f77d4494c2f516" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidClassParams(i_str_LiquidClass, BOOLEON::TRUE, T_PIP_TOOLS_ASP_FLOW_RATE, T_PIP_TOOLS_ASP_MIX_FLOW_RATE, T_PIP_TOOLS_ASP_AIR_TRANSPORT, T_PIP_TOOLS_ASP_BLOWOUT, T_PIP_TOOLS_ASP_SWAP, T_PIP_TOOLS_ASP_SETTLING, T_PIP_TOOLS_ASP_OVERASPIRATE, T_PIP_TOOLS_ASP_CLOT_RETRACT, flt_NotUsed, flt_NotUsed, T_PIP_TOOLS_MAX_VOLUME, T_PIP_TOOLS_DISPENSE_MODE, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y); // }} "" // {{{ 1528 1 0 "32d4eadd_35e2_45f3_a79eeec665377a18" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidClassParams(i_str_LiquidClass, BOOLEON::FALSE, T_PIP_TOOLS_DISP_FLOW_RATE, T_PIP_TOOLS_DISP_MIX_FLOW_RATE, T_PIP_TOOLS_DISP_AIR_TRANSPORT, T_PIP_TOOLS_DISP_BLOWOUT, T_PIP_TOOLS_DISP_SWAP, T_PIP_TOOLS_DISP_SETTLING, flt_NotUsed, flt_NotUsed, T_PIP_TOOLS_DISP_STOP_FLOW, T_PIP_TOOLS_DISP_STOP_BACK, T_PIP_TOOLS_MAX_VOLUME, T_PIP_TOOLS_DISPENSE_MODE, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y); // }} "" // {{ 1529 1 0 "52153e0b_6907_4733_8b90a20ef1edc904" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1530 1 0 "c75297b4_d1a1_4f53_a5218eb5ee2c6682" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_AspirationVolumes.SetSize(0); // }} "" // {{ 1531 1 0 "27785211_d457_4da8_be3bc81035b516ad" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_LiquidFollowingDistances.SetSize(0); // }} "" // {{ 1532 1 0 "a7ee51bc_50ef_4241_b3fd59d2f3f3784b" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_DispenseHeights.SetSize(0); // }} "" // {{ 1533 1 0 "40ba0cd2_45dd_481d_aa56da82db04586e" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_LiquidFollowingDistancesDisp.SetSize(0); // }} "" // {{ 1534 1 0 "91203a2d_59e9_4708_bb6255a2adda8b67" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_AspirationHeights.SetSize(0); // }} "" // {{ 1535 1 0 "7a6c7913_eb6c_4f07_9690f049367bb2a3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 1536 1 0 "a3d298fd_2167_40b5_bab3e46a96703d9a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(i_str_ChPattern, int_ChIndex, int_Value); // }} "" // {{ 1537 1 0 "fbff2220_bfa6_4456_8ee6c3b9a5a0db2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{ 1538 1 0 "dbce7db9_2541_46bf_969d51660a127e3d" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Temp.SetCurrentPosition(int_ChIndex); // }} "" // {{ 1539 1 0 "d9f2274d_3aba_497c_bdcb828ea8f23b22" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TempDispense.SetCurrentPosition(int_ChIndex); // }} "" // {{{ 1540 1 0 "7390cfa4_129f_47e0_9661f301b585e946" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_Temp); // }} "" // {{{ 1541 1 0 "2e471e44_9575_492f_8f556c1df8b1e0c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(seq_Temp); // }} "" // {{{ 1542 1 0 "2313952a_9f5e_4207_8afa52b3f1bc8718" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabIDDisp = SeqGetLabwareId(seq_TempDispense); // }} "" // {{{ 1543 1 0 "380bc8c9_906b_47b3_84f6969c4264116d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosIDDisp = SeqGetPositionId(seq_TempDispense); // }} "" // {{{ 1544 1 0 "f34f6a36_fc80_409f_90923c92e3fdc533" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_LabID, str_PosID, str_ContainerConfig); // }} "" // {{{ 1545 1 0 "e5bf1ab7_c7ab_4ca3_923ead27a853e5c5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_LabIDDisp, str_PosIDDisp, str_ContainerConfigDisp); // }} "" // {{ 1546 1 0 "073d76ee_3e69_4aa3_af09c416ee9a5858" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_TopHeight=arr_LiquidLevelHeights.GetAt(int_ChIndex-1); // }} "" // {{ 1547 1 0 "43d2a8f6_5f67_4887_bc956ffb87d45478" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_BottomHeightContainer=arr_SecondPhaseHeights.GetAt(int_ChIndex-1); // }} "" // {{ 1548 1 0 "209f4f46_bb03_452d_b05bf1964ff7b61e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_BottomHeightContainer = flt_BottomHeightContainer + i_flt_SafeHeightAbovePhase; // }} "" // {{ 1549 1 0 "91db4090_a62c_487f_a367d61b8ab4b333" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_AspirationHeight = flt_BottomHeightContainer; // }} "" // {{ 1550 1 0 "ab88242d_5b9c_4bc2_a7a16a81b6deb412" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_TopPhaseHeight.SetAt(int_ChIndex-1, flt_AspirationHeight); // }} "" // {{ 1551 1 0 "d2da1100_063d_4c8f_9641ca244b8487f3" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_BottomHeight = flt_BottomHeightContainer + flt_ZBottom; // }} "" // {{ 1552 1 0 "3498b23e_df4a_4b6b_ad823662758db067" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_TopHeightContainer = flt_TopHeight - flt_ZBottom; // }} "" // {{ 1553 1 0 "79a62c7d_c41d_4da6_88d1ee67b51fcd8d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollowingDistance = flt_TopHeight - flt_BottomHeight; // }} "" // {{ 1554 1 0 "3c19618f_12c9_4cc3_b1d9d80d7f44059f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_LiquidFollowingDistance > 0.0) { // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 1555 1 0 "b230daee_a80e_4ccf_9886fbf397752ee6" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollowingDistance = flt_LiquidFollowingDistance + 1.0; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 1556 1 0 "80656410_4e31_4639_83d1616b59d75d88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE12(Translate(" "), Translate("Top Height: "), flt_TopHeightContainer, Translate(" Bottom Height: "), flt_BottomHeightContainer, Translate(" Liquid Following Distance: "), flt_LiquidFollowingDistance, Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{{ 1557 1 0 "bec82822_da27_456e_ab008a739c2bca4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetVolumeBasedOnHeight(str_ContainerConfig, flt_TopHeightContainer, flt_TopVolume); // }} "" // {{{ 1558 1 0 "c5f19935_fcad_4e6a_903e019d2ddb1980" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetVolumeBasedOnHeight(str_ContainerConfig, flt_BottomHeightContainer, flt_BottomVolume); // }} "" // {{ 1559 1 0 "4ae6bc11_b140_4a69_8476478d87b21e2f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeToAspirate = flt_TopVolume - flt_BottomVolume; // }} "" // {{ 1560 1 0 "d5bfd237_0482_4d9c_996620069871ca46" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeToAspirate = flt_VolumeToAspirate + i_flt_AdditionalAspirationVolume; // }} "" // {{ 1561 1 0 "3c5f5412_676c_49dc_b8cacde33e4e6d0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_VolumeToAspirate > T_PIP_TOOLS_MAX_VOLUME) { // }} "" // {{ 1562 1 0 "6a51275a_7dd2_48ec_881438fdb515e3e4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeToAspirate = T_PIP_TOOLS_MAX_VOLUME; // }} "" // {{ 1563 1 0 "3c5f5412_676c_49dc_b8cacde33e4e6d0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1564 1 0 "53855068_ffa3_4f36_90b7f543065ba248" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_VolumeToAspirate < 0.0) { // }} "" // {{ 1565 1 0 "7f747698_b68f_49aa_94088fac419c9f35" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeToAspirate = 0.0; // }} "" // {{ 1566 1 0 "53855068_ffa3_4f36_90b7f543065ba248" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1567 1 0 "e890e276_0c1c_4dee_8a7fccca7950ba55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE12(Translate(" "), Translate("Top Volume: "), flt_TopVolume, Translate(" Bottom Volume: "), flt_BottomVolume, Translate(" Aspiration Volume: "), flt_VolumeToAspirate, Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1568 1 0 "4e668072_2d51_474f_9d8ef61a2935b11e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetCorrectedValueForVolume(flt_VolumeToAspirate, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y, flt_VolumeToAspirate); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1569 1 0 "24dc0fda_e7eb_4527_a34da5cce3ee2c27" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_VolumeToAspirate > T_PIP_TOOLS_MAX_VOLUME) { // }} "" // {{ 1570 1 0 "70fac355_ad5c_477f_88bd479024849f78" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeToAspirate = T_PIP_TOOLS_MAX_VOLUME; // }} "" // {{ 1571 1 0 "24dc0fda_e7eb_4527_a34da5cce3ee2c27" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1572 1 0 "5cf230a8_7c61_4fc9_962516e43ce5e068" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_AspirationVolumes.AddAsLast(flt_VolumeToAspirate); // }} "" // {{ 1573 1 0 "3c19618f_12c9_4cc3_b1d9d80d7f44059f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1574 1 0 "7f6229f9_346f_4dd9_96115ff88e5d237b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_AspirationVolumes.AddAsLast(0.0); // }} "" // {{ 1575 1 0 "3c19618f_12c9_4cc3_b1d9d80d7f44059f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1576 1 0 "d7936b2f_f1b1_40ff_85e98053678d8b4e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_BottomHeightContainer < 0.0) { // }} "" // {{ 1577 1 0 "b1e61437_077d_446f_b18f85e8a75e7a9c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BottomHeightContainer = 0.0; // }} "" // {{ 1578 1 0 "d7936b2f_f1b1_40ff_85e98053678d8b4e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1579 1 0 "2885a132_5301_47ff_b88d30e19fccf2ce" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_AspirationHeights.AddAsLast(flt_BottomHeightContainer); // }} "" // {{ 1580 1 0 "fbff2220_bfa6_4456_8ee6c3b9a5a0db2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1581 1 0 "d79801f6_d045_4612_930877d81ced363f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_AspirationVolumes.AddAsLast(0.0); // }} "" // {{ 1582 1 0 "0b08e5f1_0fcd_45c9_b08de95a5b6022e6" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_AspirationHeights.AddAsLast(0.0); // }} "" // {{ 1583 1 0 "fbff2220_bfa6_4456_8ee6c3b9a5a0db2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1584 1 0 "e700d1ab_6b67_4402_9ca47a4614c86b1c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_LiquidFollowingDistances.AddAsLast(0.0); // }} "" // {{ 1585 1 0 "c0997286_4db0_4a6f_8deeb5b8ab050bf7" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_DispenseHeight = i_flt_DispenseHeight + flt_ZBottomDispesne; // }} "" // {{ 1586 1 0 "d7b64b05_3af9_4cf5_85839638cabc1cd0" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_DispenseHeights.AddAsLast(flt_DispenseHeight); // }} "" // {{ 1587 1 0 "71dbaa11_6669_4fbf_aeeeb1df3299e9bc" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_LiquidFollowingDistancesDisp.AddAsLast(0.0); // }} "" // {{ 1588 1 0 "7a6c7913_eb6c_4f07_9690f049367bb2a3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1589 1 0 "d206f41a_ce27_450f_9a44ebd22ac3df13" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Temp.SetCurrentPosition(1); // }} "" // {{ 1590 1 0 "d691e43e_fae7_44b8_898635eb6da94e37" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TempDispense.SetCurrentPosition(1); // }} "" // {{{ 1591 1 0 "0bc35184_ed14_4941_bd324b76396a98dd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Aspiration Volumes"), arr_AspirationVolumes); // }} "" // {{{ 1592 1 0 "612e0c41_7493_4de3_a5b2c1b6fb080489" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Aspiration Heights"), arr_AspirationHeights); // }} "" // {{{ 1593 1 0 "0d3e8388_2992_477a_93f579a4f6bc9e4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 1, Translate("")); // }} "" // {{ 1594 1 0 "1a09b42f_7e8a_4267_88184d8448e3a2b6" "ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2("1a09b42f_7e8a_4267_88184d8448e3a2b6"); // Aspirate } // }} "" // {{{ 1595 1 0 "1312e976_249c_4b24_b5cc0779717e7ea7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 4, Translate("")); // }} "" // {{{ 1596 1 0 "af2d8a0c_1895_4f90_a3563a221b295d1e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_TempDispense, 1, Translate("")); // }} "" // {{ 1597 1 0 "d5aca47d_02a0_4c8a_b47ba5ad8f6fc462" "ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2("d5aca47d_02a0_4c8a_b47ba5ad8f6fc462"); // Dispense } // }} "" // {{{ 1598 1 0 "43922065_60db_4b70_857ca0af32225955" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_TempDispense, 4, Translate("")); // }} "" // {{{ 1599 1 0 "5dec4862_6501_4197_9f86ab54b3f9d86e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Top Phase Liquid Levels"), arr_TopPhaseHeight); // }} "" // {{{ 1600 1 0 "65bf2c13_072e_40b2_ab2ad9846faae410" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _SetHeightInfoToLabware(ML_STAR, BOOLEON::TRUE, seq_Temp, arr_TopPhaseHeight); // }} "" // {{ 1601 1 0 "7a5b02b6_8b66_4178_84a18811923a8b99" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1602 1 0 "6be8e0f8_a808_4a94_afe2aaf4ab3c0092" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 1603 1 0 "7a5b02b6_8b66_4178_84a18811923a8b99" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "PIP_PhaseAspirationWasteRemainder" "End" } // }} "" // {{{ 5 "PIP_PhaseAspirationSmallLayer" "Begin" function PIP_PhaseAspirationSmallLayer( device & ML_STAR, variable i_str_ChPattern, variable i_str_LiquidClass, sequence i_seq_AspirationPosition, sequence i_seq_DispensePosition, variable i_flt_AdditionalAspirationVolume, variable i_flt_OffsetBelowSecondPhase, variable i_int_TotalAspirationRounds, variable i_flt_DispenseHeight ) variable { // }} "" private variable bln_SimulationMode; private variable flt_Angle; private variable flt_ZBottomDispesne; private variable bln_TipsLoaded; private variable bln_ProbabilityPassed; private variable flt_NotUsed; private variable flt_ContainerDepth; private variable flt_ZClearanceHeightDispense; private variable flt_ZBottom; private variable flt_ZMaximumHeight; private variable str_LabIDAsp; private variable flt_ZMinimumHeightDispense; private variable flt_TopHeight; private variable _strFunctionName; private variable flt_LiquidFollowDistance; private variable int_LoopIndex; private variable flt_ZClearanceHeight; private variable flt_ZMaximumHeightDispense; private variable int_TotalChannels; private variable flt_ContainerDiameter; private variable flt_AngleProgression; private variable flt_ZMinimumHeight; private variable int_Value; private variable str_ReturnChPattern; private variable flt_OffsetDiameter; private variable flt_MaxTipVolume; private variable int_ChIndex; private sequence seq_Temp; private sequence seq_TempDispense; private variable arr_DispenseHeights[]; private variable arr_OffsetCalculationAngle[]; private variable arr_LiquidFollowingDistancesDisp[]; private variable arr_MaxVolumes[]; private variable arr_XCoordDispense[]; private variable arr_LiquidFollowingDistances[]; private variable arr_AspirationVolumes[]; private variable arr_YCoordDispense[]; private variable arr_YCoord[]; private variable arr_XCoord[]; private variable arr_AspirationHeights[]; private variable flt_VolumeTop; private variable str_PosIDAsp; private variable flt_VolumeAspirate; private variable str_ContainerFile; private variable flt_VolumeBottom; private variable flt_TopHeightContainer; private variable flt_BottomHeightContainer; private variable flt_CoordR; private variable flt_CoordX; private variable flt_CoordY; private variable flt_CoordZ; private variable str_ContainerFileDsp; private variable str_PosIDDsp; private variable str_LabIDDsp; private variable flt_VolumeAspirateTotal; private variable flt_DispenseHeight; private variable flt_DeltaX; private variable flt_DeltaY; private variable flt_CurrentAngle; private variable arr_DispenseVolumes[]; private variable flt_BlowoutVolume; private variable flt_TransportAirGap; private variable flt_MaxHeight; private variable flt_MaxHeightEnd; private variable int_TotalActiveChannels; private variable ret_strAllPipettingReturn; private variable str_AspReturn; private variable str_DispReturn; private variable arr_TopPhaseHeights[]; private variable arr_SecondPhaseHeights[]; private variable flt_CurrentVolume; private variable i_flt_SubmergeHeight; private variable flt_VolumeAspirated; private variable str_LabID; private variable str_CurrentDispChPattern; private variable flt_NewVolume; private variable int_DispenseCount; private variable int_DispenseLoops; private variable flt_CurrentHeight; private variable str_PosID; private sequence seq_VolumeUpdateSequence; private variable arr_CurrentDestVolumes[]; private variable arr_DispenseChPatterns[]; private variable arr_TotalAspirationVolumes[]; // {{ 5 "PIP_PhaseAspirationSmallLayer" "InitLocals" // }} "" // {{ 1200 1 0 "249198e8_bc62_48e3_934403c2b14edc03" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1201 1 0 "eaeb3195_6d12_430b_9059b028607e3489" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 1203 1 0 "6c4a8b94_d112_4905_a2c794036b3289a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 1204 1 0 "249198e8_bc62_48e3_934403c2b14edc03" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1205 1 0 "563291dd_adbf_4add_970c921a662357ed" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_strAllPipettingReturn = Translate(""); // }} "" // {{ 1206 1 0 "137f1e39_bad2_46e6_9cb641e3a2e0155d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1207 1 0 "6b133603_d951_4b13_8d356090a49d05aa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _InitLiquidClassStorage(); // }} "" // {{{ 1208 1 0 "41f1c0e8_058a_4dea_8d96638b2603d31f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_SimulationMode = Util::GetSimulationMode(); // }} "" // {{ 1209 1 0 "148950f0_8662_4791_b3c7843f17f5e262" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1210 1 0 "70cf08ad_f4a3_4ad6_911bb6da178ec02b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::GetChannelNumber1mL(ML_STAR, int_TotalChannels); // }} "" // {{ 1211 1 0 "27419d51_2a49_44ad_a701d47081af791a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ReturnChPattern = Translate(""); // }} "" // {{{ 1212 1 0 "8f6cdb32_46f2_42ab_897e23b2fa5c00dd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ReturnChPattern = StrFillRight(str_ReturnChPattern, Translate("0"), int_TotalChannels); // }} "" // {{ 1213 1 0 "daff0fc7_a632_4e13_834c367388fdae3a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1214 1 0 "7cb2880f_db57_46e5_baccb98739f81d83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChPattern = StrConcat2(i_str_ChPattern, Translate("")); // }} "" // {{{ 1215 1 0 "9692bdbb_d8b5_4cdc_9646d94a211dd8f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChPattern = StrFillRight(i_str_ChPattern, Translate("0"), int_TotalChannels); // }} "" // {{{ 1216 1 0 "6f0ddee2_a4f0_4999_8c4ba6843be9f77a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalActiveChannels = StrReplace(i_str_ChPattern, Translate("1"), Translate("1")); // }} "" // {{ 1217 1 0 "1698f539_4cde_40c0_a2c17dcf3a8798a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalActiveChannels == 0) { // }} "" // {{ 1218 1 0 "65f8ae0a_884c_4bf8_bdcf91c58588a8f0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("CHANNEL PATTERN CONTAINS NO ACTIVE CHANNELS!")); // }} "" // {{ 1219 1 0 "89a202a6_ef40_46ef_ad2b1495f6bcb3a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1220 1 0 "a1c34773_91d2_49b3_88fd47d95053207c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 1221 1 0 "89a202a6_ef40_46ef_ad2b1495f6bcb3a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1222 1 0 "a33ecc9c_f318_4858_9bd3bb57e4cada16" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_strAllPipettingReturn); // }} "" // {{ 1223 1 0 "1698f539_4cde_40c0_a2c17dcf3a8798a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1224 1 0 "d26d3cff_394c_4b9f_b0e5a7cdc391e7f7" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1225 1 0 "aebe0811_d75e_494e_82fe671d8ccdb36e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextSequenceSet(i_seq_AspirationPosition, i_str_ChPattern, seq_Temp); // }} "" // {{ 1226 1 0 "0283f706_8f0a_4e31_9774c1fb18495965" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1227 1 0 "e5f44ef3_8e6f_40b5_8ca64dce71b09ef0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_Temp, i_str_ChPattern); // }} "" // {{ 1228 1 0 "d5b3f634_599a_4d4c_9d2bbb87cd0f2df6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ProbabilityPassed == BOOLEON::FALSE) { // }} "" // {{ 1229 1 0 "d1b530ce_7de0_4a17_a6488100bcc6ae28" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("ASPIRATE SEQUENCE IS NOT SORTED CORRECTLY FOR THE USE OF THIS FUNCITON!\nSEQUENCE MUST BE SUCH THAT THE CHANNEL PATTERN USED CAN BE DONE AT ONE TIME WITHOUT NEEDING TO MOVE CHANNELS OUT OF THE WAY!")); // }} "" // {{ 1230 1 0 "5bb26c0a_048a_4475_8254c78ad9121bf1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1231 1 0 "28f2a1ae_f93e_4316_bb7b06b362d0017d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 1232 1 0 "5bb26c0a_048a_4475_8254c78ad9121bf1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1233 1 0 "411f3c06_d2ca_4e81_95672a9bdb8ef7a4" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_strAllPipettingReturn); // }} "" // {{ 1234 1 0 "d5b3f634_599a_4d4c_9d2bbb87cd0f2df6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1235 1 0 "2e8e4cfe_1f5a_4a1c_af5a9bd1e8afbbaf" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1236 1 0 "67ab20cc_d20b_419e_9dbbd396553c12dc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextSequenceSet(i_seq_DispensePosition, i_str_ChPattern, seq_TempDispense); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 1237 1 0 "346cdb39_1226_40ad_bd921847ab1f3247" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1238 1 0 "7df49529_5616_495d_9aa80cb49f417d31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_TempDispense, i_str_ChPattern); // }} "" // {{ 1239 1 0 "65de4f6c_2a07_4e07_84be8cde9e9051f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ProbabilityPassed == BOOLEON::FALSE) { // }} "" // {{ 1240 1 0 "96bc1a3d_52be_4f6e_951e94d473e0521e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("DISPENSE SEQUENCE IS NOT SORTED CORRECTLY FOR THE USE OF THIS FUNCITON!\nSEQUENCE MUST BE SUCH THAT THE CHANNEL PATTERN USED CAN BE DONE AT ONE TIME WITHOUT NEEDING TO MOVE CHANNELS OUT OF THE WAY!")); // }} "" // {{ 1241 1 0 "b3fd0c31_ff02_4c5c_bf5915aa8721f7a8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1242 1 0 "0666f7a0_0b77_4bbd_a8b1907ffe32edee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 1243 1 0 "b3fd0c31_ff02_4c5c_bf5915aa8721f7a8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1244 1 0 "47c38c24_92c1_4895_a97e20aaeb04022b" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_strAllPipettingReturn); // }} "" // {{ 1245 1 0 "65de4f6c_2a07_4e07_84be8cde9e9051f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1246 1 0 "86e5aa63_7da5_4258_815127c699b21b26" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1247 1 0 "c5f616e4_ca4e_4528_86ccc16489c51aa4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_TipsLoaded = _EnsureTipsAreLoaded(ML_STAR, i_str_ChPattern); // }} "" // {{ 1248 1 0 "fb5d8064_6511_4d04_97cbf65a9ddd3cdc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_TipsLoaded == BOOLEON::FALSE) { // }} "" // {{ 1249 1 0 "191e9a18_215d_45af_8f82e5b15f6aaff2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("TIPS PICKED UP DO NOT MATCH THE CHANNEL PATTERN!")); // }} "" // {{ 1250 1 0 "2cd27fd7_81a3_4581_9831c696811adfa7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1251 1 0 "52531b66_1666_4728_9412cd02aceef413" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 1252 1 0 "2cd27fd7_81a3_4581_9831c696811adfa7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1253 1 0 "1e513345_b8bf_42ce_ba52fca7a047d6ec" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_strAllPipettingReturn); // }} "" // {{ 1254 1 0 "fb5d8064_6511_4d04_97cbf65a9ddd3cdc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1255 1 0 "d663d840_460f_4ec3_91a795e759930a50" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetHeightInfoFromLabware(ML_STAR, BOOLEON::TRUE, seq_Temp, arr_TopPhaseHeights); // }} "" // {{{ 1256 1 0 "fdd98a87_3b2a_43fd_8bf98eb9c36ce782" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetHeightInfoFromLabware(ML_STAR, BOOLEON::FALSE, seq_Temp, arr_SecondPhaseHeights); // }} "" // {{ 1257 1 0 "9f0d002c_ba4a_4b81_bdedefe08edfdde7" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1258 1 0 "505e996c_aed9_4387_a91e296daf527930" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLabwareCoordinates(ML_STAR, seq_Temp, i_str_ChPattern, arr_XCoord, arr_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight); // }} "" // {{{ 1259 1 0 "248abcee_e5e6_4abe_b007b5ca843dfa9c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLabwareCoordinates(ML_STAR, seq_TempDispense, i_str_ChPattern, arr_XCoordDispense, arr_YCoordDispense, flt_ZBottomDispesne, flt_ZMinimumHeightDispense, flt_ZMaximumHeightDispense, flt_ZClearanceHeightDispense); // }} "" // {{ 1260 1 0 "53b8087a_49c5_44f2_ac7c88088c6bd987" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ContainerDepth = flt_ZMaximumHeight - flt_ZMinimumHeight; // }} "" // {{ 1261 1 0 "143163d8_ee02_4180_80c7041914a7c2b2" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_MaxVolumes.SetSize(0); // }} "" // {{ 1262 1 0 "13e2190f_3539_4f6a_a840cd3d2aae7690" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 1263 1 0 "e8d338f7_ed73_4a23_8e6c70eee68d7a0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(i_str_ChPattern, int_ChIndex, int_Value); // }} "" // {{ 1264 1 0 "44ef6943_ad1e_4c5a_add81d0a75fac56c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{{ 1265 1 0 "05c1e336_bfd5_433c_bcc7241593720143" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::Get_Tip_Volume_1mL(ML_STAR, int_ChIndex, flt_MaxTipVolume, flt_NotUsed); // }} "" // {{ 1266 1 0 "e2ce6a81_240f_4728_8f32bfafd8c8a55c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_MaxVolumes.AddAsLast(flt_MaxTipVolume); // }} "" // {{ 1267 1 0 "44ef6943_ad1e_4c5a_add81d0a75fac56c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1268 1 0 "d5857905_0e91_45be_933936437f4332f9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_MaxVolumes.AddAsLast(0.0); // }} "" // {{ 1269 1 0 "44ef6943_ad1e_4c5a_add81d0a75fac56c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1270 1 0 "13e2190f_3539_4f6a_a840cd3d2aae7690" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1271 1 0 "cf7493d6_091e_4551_a6827bf7b309e225" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1272 1 0 "cdbde850_115e_417e_9d236e34e9d26806" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidClassParams(i_str_LiquidClass, BOOLEON::TRUE, T_PIP_TOOLS_ASP_FLOW_RATE, T_PIP_TOOLS_ASP_MIX_FLOW_RATE, T_PIP_TOOLS_ASP_AIR_TRANSPORT, T_PIP_TOOLS_ASP_BLOWOUT, T_PIP_TOOLS_ASP_SWAP, T_PIP_TOOLS_ASP_SETTLING, T_PIP_TOOLS_ASP_OVERASPIRATE, T_PIP_TOOLS_ASP_CLOT_RETRACT, flt_NotUsed, flt_NotUsed, T_PIP_TOOLS_MAX_VOLUME, T_PIP_TOOLS_DISPENSE_MODE, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y); // }} "" // {{{ 1273 1 0 "f61f221f_f5eb_4f15_a5b5b81bd245e097" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidClassParams(i_str_LiquidClass, BOOLEON::FALSE, T_PIP_TOOLS_DISP_FLOW_RATE, T_PIP_TOOLS_DISP_MIX_FLOW_RATE, T_PIP_TOOLS_DISP_AIR_TRANSPORT, T_PIP_TOOLS_DISP_BLOWOUT, T_PIP_TOOLS_DISP_SWAP, T_PIP_TOOLS_DISP_SETTLING, flt_NotUsed, flt_NotUsed, T_PIP_TOOLS_DISP_STOP_FLOW, T_PIP_TOOLS_DISP_STOP_BACK, T_PIP_TOOLS_MAX_VOLUME, T_PIP_TOOLS_DISPENSE_MODE, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y); // }} "" // {{ 1274 1 0 "dd8a1dbe_f87e_440f_87987bf979062f8b" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_OffsetCalculationAngle.SetSize(0); // }} "" // {{ 1275 1 0 "1b6bf6ce_d407_4afc_99caa82408bf5630" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_AngleProgression = 360.0 / (i_int_TotalAspirationRounds * 1.0); // }} "" // {{ 1276 1 0 "f93ea379_99fa_404a_abe82b27b13aae27" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_LoopIndex = 0; int_LoopIndex < i_int_TotalAspirationRounds;) { int_LoopIndex = int_LoopIndex + 1; // }} "" // {{ 1277 1 0 "59d4aa4e_78be_4c28_a4625fe04837a75a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_LoopIndex == 1) { // }} "" // {{ 1278 1 0 "c33fc878_b634_4f88_889cbfe58911dbb7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Angle = 0.0; // }} "" // {{ 1279 1 0 "59d4aa4e_78be_4c28_a4625fe04837a75a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1280 1 0 "18d7e4ff_e389_43cf_912ca3c883767998" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Angle = flt_Angle + flt_AngleProgression; // }} "" // {{ 1281 1 0 "59d4aa4e_78be_4c28_a4625fe04837a75a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1282 1 0 "412d66aa_53f0_4568_821dbe2ccdd71a96" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_OffsetCalculationAngle.AddAsLast(flt_Angle); // }} "" // {{ 1283 1 0 "f93ea379_99fa_404a_abe82b27b13aae27" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1284 1 0 "233ca47e_95f4_4dd6_864f5224a64a0f3b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1285 1 0 "bb7fee67_e14d_46e4_96947669c7e2e4a8" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_AspirationVolumes.SetSize(0); // }} "" // {{ 1286 1 0 "c62a5795_5b26_4a2e_865b2fdda1685073" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_DispenseVolumes.SetSize(0); // }} "" // {{ 1287 1 0 "8aa03792_d18b_49c4_805a0922e1c8a44f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_LiquidFollowingDistances.SetSize(0); // }} "" // {{ 1288 1 0 "e595127d_1a0b_4d62_973c3473731b7f9b" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_DispenseHeights.SetSize(0); // }} "" // {{ 1289 1 0 "fa1a3b23_7358_45ab_a5d4a5eabe074df3" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_LiquidFollowingDistancesDisp.SetSize(0); // }} "" // {{ 1290 1 0 "4cfce63f_25be_490d_817d12121fff5a76" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_AspirationHeights.SetSize(0); // }} "" // {{ 1291 1 0 "8b831000_f5ba_494f_84534bb668cdb2bd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_TotalAspirationVolumes.SetSize(0); // }} "" // {{ 1292 1 0 "97c8a94a_01dc_4b68_adc9eb0a2aeb68d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 1293 1 0 "361b50bb_4374_4819_bef6666ef664640f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(i_str_ChPattern, int_ChIndex, int_Value); // }} "" // {{ 1294 1 0 "db68e922_e83b_4ddb_a3d6d087defd00c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{ 1295 1 0 "fd830ac1_a5d9_41d6_adb6e16e0f6b7eae" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1296 1 0 "249219b9_8b9d_4357_927833b616fb3f54" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Temp.SetCurrentPosition(int_ChIndex); // }} "" // {{{ 1297 1 0 "2c24ebab_5fd5_4a96_992d03545ec64d5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabIDAsp = SeqGetLabwareId(seq_Temp); // }} "" // {{{ 1298 1 0 "4af16fb4_6b4c_4528_bc3fe7477e4aadd2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosIDAsp = SeqGetPositionId(seq_Temp); // }} "" // {{{ 1299 1 0 "a92ceacd_a3a1_44a1_965b5c2d9a9c3cb4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, str_LabIDAsp, str_PosIDAsp, flt_CoordX, flt_CoordY, flt_CoordZ, flt_CoordR); // }} "" // {{{ 1300 1 0 "97a29a5d_f43e_4eb2_91fa8e1e1a545a2b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_LabIDAsp, str_PosIDAsp, str_ContainerFile); // }} "" // {{ 1301 1 0 "182cd3b9_0acc_491e_aefeabc49cdb8b9a" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TempDispense.SetCurrentPosition(int_ChIndex); // }} "" // {{{ 1302 1 0 "003775be_cdbb_428f_8a6c852b999deba5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabIDDsp = SeqGetLabwareId(seq_TempDispense); // }} "" // {{{ 1303 1 0 "87db7024_e2fd_40b2_83d22cc0b167fec9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosIDDsp = SeqGetPositionId(seq_TempDispense); // }} "" // {{{ 1304 1 0 "cd286c6e_6894_4fdb_8e893bf250412db0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_LabIDDsp, str_PosIDDsp, str_ContainerFileDsp); // }} "" // {{ 1305 1 0 "a24699ec_8990_4f0a_84d9842c32f6179c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1306 1 0 "4db78183_c215_48d0_8f7aec3b6913476a" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_TopHeightContainer=arr_TopPhaseHeights.GetAt(int_ChIndex-1); // }} "" // {{ 1307 1 0 "944f478f_0ab4_4b47_8a53a36065d95d98" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_BottomHeightContainer=arr_SecondPhaseHeights.GetAt(int_ChIndex-1); // }} "" // {{ 1308 1 0 "81d036e5_78f5_49cb_a7e5199553c23849" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_BottomHeightContainer = flt_BottomHeightContainer - i_flt_OffsetBelowSecondPhase; // }} "" // {{ 1309 1 0 "8f74aabf_8ef5_42d0_8f8a454ec36db767" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollowDistance = flt_TopHeightContainer - flt_BottomHeightContainer; // }} "" // {{{ 1310 1 0 "54a9292d_2c35_4dbf_828ea2b3a14d273b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE12(Translate(" "), Translate("Top Height: "), flt_TopHeightContainer, Translate(" Bottom Height: "), flt_BottomHeightContainer, Translate(" Liquid Following Distance: "), flt_LiquidFollowDistance, Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{ 1311 1 0 "02d0ac1e_6236_4b97_972b0e6ecd40c0c8" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1312 1 0 "16b2a762_6cb0_4c14_9f71a41aee37c858" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetVolumeBasedOnHeight(str_ContainerFile, flt_TopHeightContainer, flt_VolumeTop); // }} "" // {{{ 1313 1 0 "975b8f1a_561e_4556_97e43028b5b8c18e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetVolumeBasedOnHeight(str_ContainerFile, flt_BottomHeightContainer, flt_VolumeBottom); // }} "" // {{ 1314 1 0 "b65b5940_d6f7_4084_99f78ac2b2886c3b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirateTotal = flt_VolumeTop - flt_VolumeBottom; // }} "" // {{ 1315 1 0 "69d74e36_e397_44f5_91ad93c744196ab0" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_TotalAspirationVolumes.AddAsLast(flt_VolumeAspirateTotal); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 1316 1 0 "aa3064f6_74e7_4db8_aa495e887da282a3" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirateTotal = flt_VolumeAspirate + i_flt_AdditionalAspirationVolume; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1317 1 0 "5cbab378_0a19_4607_a76a1c66581d3527" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirate = flt_VolumeAspirateTotal / (i_int_TotalAspirationRounds * 1.0); // }} "" // {{ 1318 1 0 "b17b66b9_803f_4415_8424a46fa04e55fd" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirate = flt_VolumeAspirate + i_flt_AdditionalAspirationVolume; // }} "" // {{{ 1319 1 0 "53290389_0735_41a4_a509e0d13a0eeb3f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetHeightBasedOnVolume(str_ContainerFileDsp, flt_VolumeAspirateTotal, flt_DispenseHeight); // }} "" // {{ 1320 1 0 "62f3cd1f_8bc1_4d9b_987f85f188834890" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_DispenseHeight = flt_DispenseHeight - 2.0; // }} "" // {{ 1321 1 0 "1fc2057b_3deb_4690_a0780020edfb9542" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_DispenseHeight < 0.0) { // }} "" // {{ 1322 1 0 "b1515bfd_5b44_498f_a28e09be18e738ae" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_DispenseHeight = flt_DispenseHeight + 2.0; // }} "" // {{ 1323 1 0 "1fc2057b_3deb_4690_a0780020edfb9542" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1324 1 0 "9852af3a_8884_411d_82027048c1568139" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_LiquidFollowDistance < 0.0) { // }} "" // {{ 1325 1 0 "bd106e66_225e_4dfd_b6de6a2042fbd5d8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirate = 0.0; // }} "" // {{ 1326 1 0 "9852af3a_8884_411d_82027048c1568139" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1327 1 0 "ee5834df_2b84_4f66_b1d7c9987a4e7eab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE12(Translate(" "), Translate("Top Volume: "), flt_VolumeTop, Translate(" Bottom Volume: "), flt_VolumeBottom, Translate(" Aspiration Volume: "), flt_VolumeAspirate, Translate(" X "), i_int_TotalAspirationRounds, Translate(" Dispense Height: "), flt_DispenseHeight, Translate("")); // }} "" // {{ 1328 1 0 "fd830ac1_a5d9_41d6_adb6e16e0f6b7eae" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1329 1 0 "536454f3_3cac_4d48_af0541deb7ba81c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_VolumeAspirate > 0.0) { // }} "" // {{ 1330 1 0 "b8e808b4_d53e_4584_89b3b2b5bb513c58" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_TopHeight = flt_TopHeightContainer + flt_ZBottom; // }} "" // {{ 1331 1 0 "ce92b6ef_3bb3_4b3e_b4c681b20cccdfe1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_AspirationVolumes.AddAsLast(flt_VolumeAspirate); // }} "" // {{ 1332 1 0 "2d37c18e_e894_4943_a9a8383dfd45b1f3" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_AspirationHeights.AddAsLast(flt_TopHeight); // }} "" // {{ 1333 1 0 "fe879d77_e1a8_45fd_947d423f1fcb16de" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_LiquidFollowingDistances.AddAsLast(flt_LiquidFollowDistance); // }} "" // {{ 1334 1 0 "bb67e62f_5313_4864_ae4f04b22e759ce4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_DispenseVolumes.AddAsLast(flt_VolumeAspirateTotal); // }} "" // {{ 1335 1 0 "536454f3_3cac_4d48_af0541deb7ba81c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1336 1 0 "f5ec3468_696c_4e46_804ba420619513fb" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_AspirationVolumes.AddAsLast(0.0); // }} "" // {{ 1337 1 0 "e0e989cf_c74f_40ec_85e670445eac6489" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_AspirationHeights.AddAsLast(0.0); // }} "" // {{ 1338 1 0 "aa5facb9_5395_4ee5_a16cc228c15000ff" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_LiquidFollowingDistances.AddAsLast(0.0); // }} "" // {{ 1339 1 0 "b16356da_c879_428a_9b6fbd4f131e8528" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_DispenseVolumes.AddAsLast(0.0); // }} "" // {{ 1340 1 0 "536454f3_3cac_4d48_af0541deb7ba81c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1341 1 0 "db68e922_e83b_4ddb_a3d6d087defd00c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1342 1 0 "2c6be867_6f32_4128_9c2a8a49e1fc70a4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_AspirationVolumes.AddAsLast(0.0); // }} "" // {{ 1343 1 0 "7b2efecd_8e02_46df_947f715a4b557eba" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_AspirationHeights.AddAsLast(0.0); // }} "" // {{ 1344 1 0 "5c7c9417_0aad_449c_94ff5b800e145513" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_LiquidFollowingDistances.AddAsLast(0.0); // }} "" // {{ 1345 1 0 "5f3cb94d_77a1_436b_be091e7afc31305a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_DispenseVolumes.AddAsLast(0.0); // }} "" // {{ 1346 1 0 "db68e922_e83b_4ddb_a3d6d087defd00c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 1347 1 0 "1bec273b_33f4_43bd_a339c1f0749ab301" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_DispenseHeight = i_flt_DispenseHeight + flt_ZBottomDispesne; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1348 1 0 "4425a413_02ea_48fc_adf78c71a8fae6fc" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_DispenseHeights.AddAsLast(flt_DispenseHeight); // }} "" // {{ 1349 1 0 "6202c800_5131_4769_a6a3435c8ffa25da" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_LiquidFollowingDistancesDisp.AddAsLast(0.0); // }} "" // {{ 1350 1 0 "9714c6a4_a052_458c_90aeb883637e81c1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_TotalAspirationVolumes.AddAsLast(0.0); // }} "" // {{ 1351 1 0 "97c8a94a_01dc_4b68_adc9eb0a2aeb68d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1352 1 0 "77fc0393_a52b_4a99_bfb53e8184ea4e0d" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Temp.SetCurrentPosition(1); // }} "" // {{ 1353 1 0 "eebf4329_fe1c_48b8_96db9b1e2ba70d46" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TempDispense.SetCurrentPosition(1); // }} "" // {{ 1354 1 0 "ffbfab8b_381e_49eb_b2aa341d9a1cf964" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 1355 1 0 "6c574977_9841_424b_96174bf338cb4825" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(i_str_ChPattern, int_ChIndex, int_Value); // }} "" // {{ 1356 1 0 "df9ede81_4c05_4e8e_95b0212038af263e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{ 1357 1 0 "dd5639a4_59b0_4e45_8e44c7efd20f5b86" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Temp.SetCurrentPosition(int_ChIndex); // }} "" // {{{ 1358 1 0 "41ed752a_96e4_45b9_a641a25d1054c5d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabIDAsp = SeqGetLabwareId(seq_Temp); // }} "" // {{ 1359 1 0 "534d9990_8053_495d_ad469dd974f6f533" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1360 1 0 "df9ede81_4c05_4e8e_95b0212038af263e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1361 1 0 "ffbfab8b_381e_49eb_b2aa341d9a1cf964" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1362 1 0 "2c1615a3_a347_497c_87b0680720ed9359" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Temp.SetCurrentPosition(1); // }} "" // {{{ 1363 1 0 "380899d9_2751_406c_abe31e0ab2961543" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetContainerWidth(ML_STAR, str_LabIDAsp, flt_ContainerDiameter); // }} "" // {{ 1364 1 0 "e50c46e7_44e4_4930_ac7c16f688c80b12" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_OffsetDiameter = flt_ContainerDiameter / (4.0 * 1.0); // }} "" // {{ 1365 1 0 "95f8bf0d_0dd4_4933_832e54a77e63c786" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TotalAspirationRounds == 1) { // }} "" // {{ 1366 1 0 "046ba197_6bb4_4007_9cd776b1f72d5031" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_OffsetDiameter = 0.0; // }} "" // {{ 1367 1 0 "95f8bf0d_0dd4_4933_832e54a77e63c786" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1368 1 0 "a2af51a9_8633_4c97_b61d6241554733cc" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_LoopIndex = 0; int_LoopIndex < i_int_TotalAspirationRounds;) { int_LoopIndex = int_LoopIndex + 1; // }} "" // {{ 1369 1 0 "be7dd6f2_248d_4a5f_a4198a6c05d77abb" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_CurrentAngle=arr_OffsetCalculationAngle.GetAt(int_LoopIndex-1); // }} "" // {{{ 1370 1 0 "5dc5cfd0_0ed7_4895_a513535b51fc6d60" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::CalculateXYFromDiameterAndAngle(flt_OffsetDiameter, flt_CurrentAngle, flt_DeltaX, flt_DeltaY); // }} "" // {{{ 1371 1 0 "fd6baa79_42bc_4c30_ac446b990b2c4a16" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::Set_Relative_Position_for_LabwareID(ML_STAR, str_LabIDAsp, flt_DeltaX, flt_DeltaY, 0.0, 0.0); // }} "" // {{ 1372 1 0 "0ad2c2c8_1972_422f_8a768eacc68b4304" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1373 1 0 "dd4edb68_e744_4cb1_a2390bce2e0bb867" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLabwareCoordinates(ML_STAR, seq_Temp, i_str_ChPattern, arr_XCoord, arr_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight); // }} "" // {{{ 1374 1 0 "ca5c76b5_ff73_47ad_9b8563ff8ccc2fab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLabwareCoordinates(ML_STAR, seq_TempDispense, i_str_ChPattern, arr_XCoordDispense, arr_YCoordDispense, flt_ZBottomDispesne, flt_ZMinimumHeightDispense, flt_ZMaximumHeightDispense, flt_ZClearanceHeightDispense); // }} "" // {{{ 1375 1 0 "92aaf2dd_7a9d_46e2_a4b4a74be80cde70" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Aspiration Volumes"), arr_AspirationVolumes); // }} "" // {{{ 1376 1 0 "21ca695e_41c7_4df5_83361ba8ed030582" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Aspiration Heights"), arr_AspirationHeights); // }} "" // {{ 1377 1 0 "6a03df4c_9b27_4aa6_82845ef7d8b3aed0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_LoopIndex == i_int_TotalAspirationRounds) { // }} "" // {{ 1378 1 0 "043dfeb8_dbe7_4c0e_b9232b35e6f39cea" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TransportAirGap = T_PIP_TOOLS_ASP_AIR_TRANSPORT; // }} "" // {{ 1379 1 0 "ad115879_a63e_4b1d_900f83913c6c1462" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MaxHeightEnd = 245.0; // }} "" // {{ 1380 1 0 "6a03df4c_9b27_4aa6_82845ef7d8b3aed0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1381 1 0 "74ffd281_3fed_430e_9498d890c2c6cfbe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TransportAirGap = 0.0; // }} "" // {{ 1382 1 0 "4098f2e3_a0e9_481d_b442efe176b7f853" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MaxHeightEnd = flt_ZMaximumHeight; // }} "" // {{ 1383 1 0 "6a03df4c_9b27_4aa6_82845ef7d8b3aed0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1384 1 0 "62b63f99_506b_4a3b_89406325e09d8eea" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_LoopIndex == 1) { // }} "" // {{ 1385 1 0 "bbddd7f1_72c7_4b15_a1a29bd64838c7d6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BlowoutVolume = T_PIP_TOOLS_ASP_BLOWOUT; // }} "" // {{ 1386 1 0 "7293e771_0a6d_4f1e_b879c7ba0298038b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MaxHeight = 245.0; // }} "" // {{ 1387 1 0 "62b63f99_506b_4a3b_89406325e09d8eea" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1388 1 0 "41f7350f_5050_453c_bc3abaac67dfd15e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BlowoutVolume = 0.0; // }} "" // {{ 1389 1 0 "ea9964bc_1abb_44ca_9b648c8b5a61478c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_MaxHeight = flt_ZMaximumHeight; // }} "" // {{ 1390 1 0 "62b63f99_506b_4a3b_89406325e09d8eea" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1391 1 0 "9a61fd8d_5f77_45cb_9058d68af81cb4ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 1, Translate("")); // }} "" // {{{ 1392 1 0 "8169ef12_44eb_4f3e_b1525f7ed9ba3f9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::PIPAspirateFromFixedHeight_ArrayVolumes(ML_STAR, i_str_ChPattern, arr_XCoord, arr_YCoord, arr_AspirationHeights, arr_LiquidFollowingDistances, flt_MaxHeight, flt_MaxHeightEnd, flt_ZMinimumHeight, flt_ZBottom, flt_ContainerDepth, arr_AspirationVolumes, T_PIP_TOOLS_ASP_FLOW_RATE, flt_TransportAirGap, flt_BlowoutVolume, T_PIP_TOOLS_ASP_SETTLING, T_PIP_TOOLS_ASP_SWAP, 5.0); // }} "" // {{{ 1393 1 0 "b9b7167a_ceda_46a8_a230b7a0c022a95f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 4, Translate("")); // }} "" // {{ 1394 1 0 "b78de438_d834_4ca7_b52857e92161aed7" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_DeltaX = flt_DeltaX * -1; // }} "" // {{ 1395 1 0 "9537a912_5ee3_4814_9fe74286b0ba2560" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_DeltaY = flt_DeltaY * -1; // }} "" // {{{ 1396 1 0 "ea9c2b42_58db_48b5_9e37c2d166904723" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::Set_Relative_Position_for_LabwareID(ML_STAR, str_LabIDAsp, flt_DeltaX, flt_DeltaY, 0.0, 0.0); // }} "" // {{ 1397 1 0 "a2af51a9_8633_4c97_b61d6241554733cc" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1398 1 0 "d398436d_b3a4_40b1_8cd713ffa971f000" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_AspReturn = Translate(""); // }} "" // {{{ 1399 1 0 "760b03fd_df99_44d2_b2e33b840f51b093" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_TempDispense, 1, Translate("")); // }} "" // {{{ 1400 1 0 "e7aa1a69_7b3d_483a_9e580915a5557b74" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetPartialChannelPatternForRepeatingPositions(ML_STAR, i_str_ChPattern, seq_TempDispense, int_DispenseLoops, arr_DispenseChPatterns); // }} "" // {{ 1401 1 0 "2261c355_f81a_4fe3_acfc84b1955f8650" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_DispenseCount = 0; int_DispenseCount < int_DispenseLoops;) { int_DispenseCount = int_DispenseCount + 1; // }} "" // {{{ 1402 1 0 "3303490e_cc1b_41ab_8189e63b491e87f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetVolumesInPositions(ML_STAR, seq_TempDispense, arr_CurrentDestVolumes); // }} "" // {{ 1403 1 0 "09a173e9_5a55_4724_b58d69bade27801a" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_DispenseHeights.SetSize(0); // }} "" // {{ 1404 1 0 "eca0f408_0acb_4d02_a6ec031e3c89dfa7" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_CurrentDispChPattern=arr_DispenseChPatterns.GetAt(int_DispenseCount-1); // }} "" // {{{ 1405 1 0 "23ce18ab_6904_4320_95d3417006eae6ab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(str_CurrentDispChPattern, Translate("")); // }} "" // {{ 1406 1 0 "5136e817_1c06_4ec8_80df0371a3dc3e52" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < G_FW_PIP_COM_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 1407 1 0 "edbcda5d_5b29_4947_a5d2b35307b02751" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(str_CurrentDispChPattern, int_ChIndex, int_Value); // }} "" // {{ 1408 1 0 "c2a44c5c_0a5a_4e36_a925a44c06211362" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{ 1409 1 0 "c32cc5c3_f689_4db7_ae4ad6aad908e85c" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TempDispense.SetCurrentPosition(int_ChIndex); // }} "" // {{ 1410 1 0 "bfb9d934_4f29_4da9_8cc639d96dc1390f" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_CurrentVolume=arr_CurrentDestVolumes.GetAt(int_ChIndex-1); // }} "" // {{ 1411 1 0 "9a77b5c9_cf87_449e_85a6cdec821e11ea" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_VolumeAspirated=arr_TotalAspirationVolumes.GetAt(int_ChIndex-1); // }} "" // {{ 1412 1 0 "26dcf1c9_42e1_4c35_843a5d961438a4d7" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_NewVolume = flt_CurrentVolume + flt_VolumeAspirated; // }} "" // {{ 1413 1 0 "ff5d209f_ee04_47f9_9105502e68a15b99" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_NewVolume < 0.0) { // }} "" // {{ 1414 1 0 "9ab8d158_6414_45df_8353c30a4c24bbc6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_NewVolume = 0.0; // }} "" // {{ 1415 1 0 "ff5d209f_ee04_47f9_9105502e68a15b99" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1416 1 0 "32db8f9c_574f_41b0_b409c6fe84ada26d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE08(Translate(" "), Translate("Current Volume in well: "), flt_CurrentVolume, Translate(" Volume aspirated: "), flt_VolumeAspirated, Translate(" Added Volume: "), flt_NewVolume, Translate("")); // }} "" // {{{ 1417 1 0 "75007903_1a9d_4df1_b43a81096c9bf2da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_TempDispense); // }} "" // {{{ 1418 1 0 "8c8ad044_7de5_45b7_b653cb1b0f6de701" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(seq_TempDispense); // }} "" // {{{ 1419 1 0 "3b329b75_6a3d_4722_8acd7a889f6ddf0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" VectorDb_Labware::LoadLabware(ML_STAR, str_LabID, str_PosID); // }} "" // {{{ 1420 1 0 "9fe65c52_2ab1_4bed_993e7825db814fa7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_VolumeUpdateSequence); // }} "" // {{{ 1421 1 0 "74a0f137_398a_45ef_a2f4e6d0cff58a2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(seq_VolumeUpdateSequence, str_LabID, str_PosID); // }} "" // {{ 1422 1 0 "1ad4722f_0741_4937_bf2569844224689f" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_VolumeUpdateSequence.SetCurrentPosition(1); // }} "" // {{{ 1423 1 0 "48f6862f_8e57_412a_a738b1f6ed624f00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLLabwState::SetLabwareVolume(ML_STAR, seq_VolumeUpdateSequence, flt_NewVolume); // }} "" // {{{ 1424 1 0 "69d92345_85f2_4b49_877aee615a4b614a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetHeightBasedOnVolume(str_ContainerFileDsp, flt_CurrentVolume, flt_CurrentHeight); // }} "" // {{ 1425 1 0 "258d85e6_bebe_4e95_98de03fdc56d333f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_DispenseHeight = flt_CurrentHeight - i_flt_SubmergeHeight; // }} "" // {{ 1426 1 0 "1f8e549b_58b5_4a1b_90dc0c212b73fc15" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_DispenseHeight <= 0.0) { // }} "" // {{ 1427 1 0 "62ab4fcf_2b53_40f6_8df0820c4b713a7a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_DispenseHeight = 2.0; // }} "" // {{ 1428 1 0 "1f8e549b_58b5_4a1b_90dc0c212b73fc15" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1429 1 0 "0eed2a3c_fb03_455d_9ae30b5bb63d5b7f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_DispenseHeights.AddAsLast(flt_DispenseHeight); // }} "" // {{ 1430 1 0 "c2a44c5c_0a5a_4e36_a925a44c06211362" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1431 1 0 "3e8885ff_61a7_4930_8c843efd2aa9f6de" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_DispenseHeights.AddAsLast(0.0); // }} "" // {{ 1432 1 0 "c2a44c5c_0a5a_4e36_a925a44c06211362" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1433 1 0 "5136e817_1c06_4ec8_80df0371a3dc3e52" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1434 1 0 "fd064b9c_4896_4c44_81f1f584b99c8b84" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TempDispense.SetCurrentPosition(1); // }} "" // {{{ 1435 1 0 "00d2fedc_453a_4eb7_a2b0ebc58bb728e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Dispense Heights"), arr_DispenseHeights); // }} "" // {{ 1436 1 0 "750f3759_2819_4c85_92ff353579410442" "ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2("750f3759_2819_4c85_92ff353579410442"); // Dispense } // }} "" // {{ 1437 1 0 "2261c355_f81a_4fe3_acfc84b1955f8650" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1438 1 0 "68ec062d_2b27_4afc_b1fe95ddd378c22a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_TempDispense, 4, Translate("")); // }} "" // {{{ 1439 1 0 "42e6fa49_d733_4f1f_b8c56ac69df74b45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ret_strAllPipettingReturn = StrConcat4(ret_strAllPipettingReturn, str_AspReturn, Translate("&"), str_DispReturn); // }} "" // {{ 1440 1 0 "9f9c94e3_b5c4_4b6a_b8c60545f1f384f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1441 1 0 "ed6f0925_2e89_48bd_860d03a14fb038a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 1442 1 0 "9f9c94e3_b5c4_4b6a_b8c60545f1f384f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1443 1 0 "899db1ae_d189_43b1_a936b6d84bf9ce99" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_strAllPipettingReturn); // }} "" // {{{ 5 "PIP_PhaseAspirationSmallLayer" "End" } // }} "" // {{{ 5 "PIP_PhaseAspirationParseReturnValue" "Begin" function PIP_PhaseAspirationParseReturnValue( variable i_strReturnFromPhaseAspiration, variable & o_arrAspirationReturns[], variable & o_arrDispenseReturns[] ) void { // }} "" private variable _strFunctionName; private variable l_intTotalRounds; private variable l_intRoundIndex; private variable l_arrAspDispReturns[]; private variable l_arrRoundReturns[]; // {{ 5 "PIP_PhaseAspirationParseReturnValue" "InitLocals" o_arrAspirationReturns.SetSize( 0); o_arrDispenseReturns.SetSize( 0); // }} "" // {{ 977 1 0 "dd3ca57e_4fe7_4d36_b44e79d291d8da96" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 978 1 0 "b86926d4_4190_45d2_b9792377c964b310" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 980 1 0 "81802ebf_d563_4c43_93088e59b28ad157" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 981 1 0 "dd3ca57e_4fe7_4d36_b44e79d291d8da96" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 982 1 0 "f662f989_5852_4c9d_bfa7c0f4002fa30f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrAspirationReturns.SetSize(0); // }} "" // {{ 983 1 0 "47ef9dcb_2ad3_4471_8101972f53807b9e" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrDispenseReturns.SetSize(0); // }} "" // {{ 984 1 0 "2c0837a3_3bad_490a_8d1011ec5bdc0b89" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_BD97F20DFCA74048B44FE4F1B0A9045B ; err.Clear(); // }} "" // {{{ 985 1 0 "64453b4f_f543_469f_b1690c9e61c06196" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_arrRoundReturns = HSLExtensions::String::Split(i_strReturnFromPhaseAspiration, Translate("*"), 1); // }} "" // {{ 986 1 0 "85c852eb_3af2_4ff0_9105f2fe750d27de" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" l_intTotalRounds=l_arrRoundReturns.GetSize(); // }} "" // {{ 987 1 0 "801b77a1_ad5d_41c4_80f9df23fabbacc7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(l_intRoundIndex = 0; l_intRoundIndex < l_intTotalRounds;) { l_intRoundIndex = l_intRoundIndex + 1; // }} "" // {{{ 988 1 0 "236f1ecf_7f15_4b3d_a0f29f2faf7052dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_arrAspDispReturns = HSLExtensions::String::Split(l_arrRoundReturns.ElementAt( l_intRoundIndex -1), Translate("&"), 1); // }} "" // {{ 989 1 0 "48ed2152_be69_43e8_89fa3aae160d3c28" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrAspirationReturns.AddAsLast(l_arrAspDispReturns.ElementAt( 1 -1)); // }} "" // {{ 990 1 0 "0de1799e_3585_4318_a0546351f248f1d0" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrDispenseReturns.AddAsLast(l_arrAspDispReturns.ElementAt( 2 -1)); // }} "" // {{ 991 1 0 "801b77a1_ad5d_41c4_80f9df23fabbacc7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 992 1 0 "2c0837a3_3bad_490a_8d1011ec5bdc0b89" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_BD97F20DFCA74048B44FE4F1B0A9045B : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 993 1 0 "2c0837a3_3bad_490a_8d1011ec5bdc0b89" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 994 1 0 "e91d5ee1_5f05_4f73_aba8af49d6ac7b06" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 995 1 0 "386c09f0_1943_4399_8cf8896cde6bf46e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 996 1 0 "e91d5ee1_5f05_4f73_aba8af49d6ac7b06" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "PIP_PhaseAspirationParseReturnValue" "End" } // }} "" // {{{ 5 "PIP_PhaseAspiration" "Begin" function PIP_PhaseAspiration( device & ML_STAR, variable & io_str_ChPattern, variable i_bln_ResetChPattern, variable i_str_LiquidClass, sequence i_seq_AspirationPosition, sequence i_seq_DispensePosition, variable i_bln_UseCLLD, variable i_flt_AspirationVolume, variable i_flt_DispenseBackVolume, variable i_flt_SubmergeDepth, variable i_flt_MaxVolumeToRemove, variable i_bln_DisableTADMFirst ) variable { // }} "" private variable bln_SimulationMode; private variable flt_CurrentVolume; private variable str_ErrorReturn; private variable flt_ZBottomDispesne; private variable bln_TipsLoaded; private variable ret_strAllPipettingReturn; private variable bln_ProbabilityPassed; private variable str_LiquidReturn; private variable int_PLLD; private variable flt_CorrectedDispenseBack; private variable flt_CorrectedBlowout; private variable flt_NotUsed; private variable flt_DispenseVolume; private variable flt_ZClearanceHeightDispense; private variable int_TotalActiveChannels; private variable int_RemainingChannels; private variable int_MaxLoop; private variable flt_ZBottom; private variable i; private variable int_DispenseCheck; private variable flt_ZMaximumHeight; private variable flt_TotalAirGap; private variable flt_VolumeAspirated; private variable flt_ZMinimumHeightDispense; private variable str_Volume; private variable flt_Offset; private variable str_DispenseLabID; private variable flt_CorrectedAirGap; private variable flt_MaxVolume; private variable _strFunctionName; private variable str_LabID; private variable flt_LiquidFollowDistance; private variable str_ContainerConfigFile; private variable int_DispenseBackCheck; private variable flt_ZClearanceHeight; private variable int_Position; private variable str_DispenseChPattern; private variable flt_ZMaximumHeightDispense; private variable str_StartingChannelPattern; private variable str_DispenseLocation; private variable flt_LiquidHeight; private variable str_AspReturn; private variable str_DispReturn; private variable str_NewChPattern; private variable int_TotalChannels; private variable str_DispensePosID; private variable flt_ZMinimumHeight; private variable flt_CurrentHeight; private variable str_PosID; private variable bln_UseLLD; private variable int_CLLD; private variable str_ReturnChPattern; private variable flt_DispenseHeight; private variable int_Value; private variable int_TotalPositions; private variable int_ReturnErrorCode; private variable int_ChIndex; private sequence seq_Temp; private sequence seq_TempDispense; private variable arr_DispenseHeights[]; private variable arr_VolumesAspirated[]; private variable arr_LiquidFollowingDistance[]; private variable arr_XCoordDispense[]; private variable arr_YCoordDispense[]; private variable arr_LiquidHeights[]; private variable arr_DispenseVolumes[]; private variable arr_YCoord[]; private variable arr_LiquidFollowingDispense[]; private variable arr_XCoord[]; private variable int_AspirationMode; private variable arr_SecondPhaseHeights[]; private variable arr_ZTravelHeight[]; private variable int_DispenseCount; private variable int_DispenseLoops; private variable arr_CurrentDestVolumes[]; private variable arr_DispenseChPatterns[]; private variable str_CurrentDispChPattern; private variable flt_NewVolume; private sequence seq_VolumeUpdateSequence; // {{ 5 "PIP_PhaseAspiration" "InitLocals" // }} "" // {{ 508 1 0 "c98f0d29_586c_4cb4_8b0f7f3daab3fcc1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 509 1 0 "2f2aa768_428a_4c9c_bf73c2d267787efe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 511 1 0 "4026017f_224f_482c_9ba0aac961156761" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 512 1 0 "c98f0d29_586c_4cb4_8b0f7f3daab3fcc1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 513 1 0 "f9ee75ac_acf1_4581_943d92c59b0d46f8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_strAllPipettingReturn = Translate(""); // }} "" // {{ 514 1 0 "1b82cdd1_d197_4235_85a78f8890ba2436" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 515 1 0 "b5eb3e7a_02d9_4b1a_a53f37e5bfac0432" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _InitLiquidClassStorage(); // }} "" // {{{ 516 1 0 "d45812bd_5ae5_4a33_b9b0d1c50ca77c2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_SimulationMode = Util::GetSimulationMode(); // }} "" // {{ 517 1 0 "f841bc87_a589_4987_9e8240f8ddbc4235" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 518 1 0 "c04e88d4_e066_4fac_88002893d721238e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::GetChannelNumber1mL(ML_STAR, int_TotalChannels); // }} "" // {{ 519 1 0 "591efe3e_7e79_463d_bd3e948dc3086a8c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_SecondPhaseHeights.SetSize(0); // }} "" // {{ 520 1 0 "0b2d2428_98c3_4c6d_b53f1634627bae14" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_VolumesAspirated.SetSize(0); // }} "" // {{ 521 1 0 "cafe0bce_20df_4c7d_a18f09cefe5abc9f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ZTravelHeight.SetSize(0); // }} "" // {{ 522 1 0 "749742b8_d3fe_4f8e_933731f64c6f16a7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 523 1 0 "296bb3c6_3806_439f_972878a8c3904f2e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ZTravelHeight.AddAsLast(245.0); // }} "" // {{ 524 1 0 "749742b8_d3fe_4f8e_933731f64c6f16a7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 525 1 0 "755828d4_289d_4d85_b86402fbc754df46" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ReturnChPattern = Translate(""); // }} "" // {{{ 526 1 0 "e8944a23_1251_4622_8a0f43e5e6139f31" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ReturnChPattern = StrFillRight(str_ReturnChPattern, Translate("0"), int_TotalChannels); // }} "" // {{ 527 1 0 "dd5a9741_3bd1_4456_b5f1051b6203e810" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 528 1 0 "8dcde973_5e69_4971_ab1596fb4eae0f80" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_str_ChPattern = StrConcat2(io_str_ChPattern, Translate("")); // }} "" // {{{ 529 1 0 "5c40f682_dfca_4087_a40b4e79ab8c0139" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_str_ChPattern = StrFillRight(io_str_ChPattern, Translate("0"), int_TotalChannels); // }} "" // {{{ 530 1 0 "bc090a05_b912_4cc2_ac211f43ae210404" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalActiveChannels = StrReplace(io_str_ChPattern, Translate("1"), Translate("1")); // }} "" // {{ 531 1 0 "6f2d2c5c_3de4_4036_b44c2332cb4168c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalActiveChannels == 0) { // }} "" // {{ 532 1 0 "19afc80e_46cd_4887_a2c15a97947dd5ee" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("CHANNEL PATTERN CONTAINS NO ACTIVE CHANNELS!")); // }} "" // {{ 533 1 0 "d9c5b013_caaa_4a7f_931b304cc0c2b5c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 534 1 0 "b9b4513f_526c_42f0_bdd0e6e28450db56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 535 1 0 "d9c5b013_caaa_4a7f_931b304cc0c2b5c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 536 1 0 "cf5822fd_16f6_47c9_b74286a2dcd665e0" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_strAllPipettingReturn); // }} "" // {{ 537 1 0 "6f2d2c5c_3de4_4036_b44c2332cb4168c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 538 1 0 "e56fa06e_d70a_48f9_8b8726c3fd58fd55" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 539 1 0 "705223e5_2ab2_4119_8f456818c3da5781" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextSequenceSet(i_seq_AspirationPosition, io_str_ChPattern, seq_Temp); // }} "" // {{ 540 1 0 "885723fc_eb98_4008_8f6296eef6fda427" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 541 1 0 "28309ba1_744c_4ebf_a2e931f0be01a54f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_Temp, io_str_ChPattern); // }} "" // {{ 542 1 0 "aac905ef_9fd3_4215_a8b0c60e0a824464" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ProbabilityPassed == BOOLEON::FALSE) { // }} "" // {{ 543 1 0 "75c27f21_98a5_4e11_ad50cc932998761e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("ASPIRATE SEQUENCE IS NOT SORTED CORRECTLY FOR THE USE OF THIS FUNCITON!\nSEQUENCE MUST BE SUCH THAT THE CHANNEL PATTERN USED CAN BE DONE AT ONE TIME WITHOUT NEEDING TO MOVE CHANNELS OUT OF THE WAY!")); // }} "" // {{ 544 1 0 "09af1937_cd5d_4d2b_bdcf94a8077c1df4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 545 1 0 "c5977f73_247c_43eb_b48b244e9e820755" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 546 1 0 "09af1937_cd5d_4d2b_bdcf94a8077c1df4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 547 1 0 "3805520a_3f76_4dbc_af3818778bbbe318" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_strAllPipettingReturn); // }} "" // {{ 548 1 0 "aac905ef_9fd3_4215_a8b0c60e0a824464" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 549 1 0 "34445a00_dbc0_41f6_9314f262a61f736f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 550 1 0 "ace11e4d_0e05_4ebd_b82244b0f7748396" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextSequenceSet(i_seq_DispensePosition, io_str_ChPattern, seq_TempDispense); // }} "" // {{ 551 1 0 "c7d5097b_4629_407f_9b68df09d4d1e694" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 552 1 0 "847c5018_2b5f_43f1_9a9976ef8e4b119d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_TipsLoaded = _EnsureTipsAreLoaded(ML_STAR, io_str_ChPattern); // }} "" // {{ 553 1 0 "e038e4b9_e826_4d18_817fb22573bbdf77" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_TipsLoaded == BOOLEON::FALSE) { // }} "" // {{ 554 1 0 "f0d30a4d_1beb_4ba5_8547a4ceb2432afe" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("TIPS PICKED UP DO NOT MATCH THE CHANNEL PATTERN!")); // }} "" // {{ 555 1 0 "f416065e_a281_488c_83f0b301d6fe28d0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 556 1 0 "b9e2846f_98d9_4fac_aaef47b0f99c3c93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 557 1 0 "f416065e_a281_488c_83f0b301d6fe28d0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 558 1 0 "48a015c8_993c_4e54_b0299f3f65fe02f5" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_strAllPipettingReturn); // }} "" // {{ 559 1 0 "e038e4b9_e826_4d18_817fb22573bbdf77" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 560 1 0 "ab80790c_eede_4564_a14e463aba88db31" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 561 1 0 "8e08dfd9_6ac6_47fa_898661455ba9eedf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetHeightInfoFromLabware(ML_STAR, BOOLEON::FALSE, seq_Temp, arr_SecondPhaseHeights); // }} "" // {{ 562 1 0 "93960aab_29dd_49c8_98c8238a8c19016e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 563 1 0 "89d8700c_45d5_4659_95282280ce1b79c7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLabwareCoordinates(ML_STAR, seq_Temp, io_str_ChPattern, arr_XCoord, arr_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight); // }} "" // {{{ 564 1 0 "26b76595_aed5_4eff_9dac44058c1f3d84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLabwareCoordinates(ML_STAR, seq_TempDispense, io_str_ChPattern, arr_XCoordDispense, arr_YCoordDispense, flt_ZBottomDispesne, flt_ZMinimumHeightDispense, flt_ZMaximumHeightDispense, flt_ZClearanceHeightDispense); // }} "" // {{ 565 1 0 "263f27c7_742e_46e8_a9b6daafb4e4b8fb" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 566 1 0 "648dbb7f_c726_40ee_b8448e91f567ac0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidClassParams(i_str_LiquidClass, BOOLEON::TRUE, T_PIP_TOOLS_ASP_FLOW_RATE, T_PIP_TOOLS_ASP_MIX_FLOW_RATE, T_PIP_TOOLS_ASP_AIR_TRANSPORT, T_PIP_TOOLS_ASP_BLOWOUT, T_PIP_TOOLS_ASP_SWAP, T_PIP_TOOLS_ASP_SETTLING, T_PIP_TOOLS_ASP_OVERASPIRATE, T_PIP_TOOLS_ASP_CLOT_RETRACT, flt_NotUsed, flt_NotUsed, T_PIP_TOOLS_MAX_VOLUME, T_PIP_TOOLS_DISPENSE_MODE, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y); // }} "" // {{{ 567 1 0 "6cc6b55c_3904_41f4_814764e631a7dc25" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidClassParams(i_str_LiquidClass, BOOLEON::FALSE, T_PIP_TOOLS_DISP_FLOW_RATE, T_PIP_TOOLS_DISP_MIX_FLOW_RATE, T_PIP_TOOLS_DISP_AIR_TRANSPORT, T_PIP_TOOLS_DISP_BLOWOUT, T_PIP_TOOLS_DISP_SWAP, T_PIP_TOOLS_DISP_SETTLING, flt_NotUsed, flt_NotUsed, T_PIP_TOOLS_DISP_STOP_FLOW, T_PIP_TOOLS_DISP_STOP_BACK, T_PIP_TOOLS_MAX_VOLUME, T_PIP_TOOLS_DISPENSE_MODE, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y); // }} "" // {{ 568 1 0 "2072bab6_717f_4c2f_952a6c67e6c87ab5" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 569 1 0 "f5504680_3e56_4cd9_91ff9fa20802383d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetCorrectedValueForVolume(i_flt_DispenseBackVolume, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y, flt_CorrectedDispenseBack); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 570 1 0 "9f6a6849_e705_443e_b97979b24f343f9a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalChannels = StrReplace(io_str_ChPattern, Translate("1"), Translate("1")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 571 1 0 "156dda4c_ca95_4877_8977b0a04daafce7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_UseCLLD == BOOLEON::TRUE) { // }} "" // {{ 572 1 0 "fac68826_fa96_46ee_82db34cea38c1adf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_CLLD = 1; // }} "" // {{ 573 1 0 "c511f321_6f3d_49b1_b10bb43d9b615269" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PLLD = 0; // }} "" // {{ 574 1 0 "156dda4c_ca95_4877_8977b0a04daafce7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 575 1 0 "b93174b7_bda9_44d2_b3fc00ffa0e44cf9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_CLLD = 0; // }} "" // {{ 576 1 0 "15ee29fb_54b5_4061_83a1ddc556df55b1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PLLD = 1; // }} "" // {{ 577 1 0 "156dda4c_ca95_4877_8977b0a04daafce7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 578 1 0 "b7b79063_8cc2_4f44_8a80c3094d5c0bd3" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_LiquidHeights.SetSize(0); // }} "" // {{ 579 1 0 "5fd8bf9f_e5c5_405b_9f94ba189eeee127" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_VolumesAspirated.SetSize(0); // }} "" // {{ 580 1 0 "73515f7e_e524_478a_8a58cedd9637e749" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 581 1 0 "dc871879_de6e_4d08_a6fb44ec20440824" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_MaxLoop = i_flt_MaxVolumeToRemove / (i_flt_AspirationVolume * 1.0); // }} "" // {{{ 582 1 0 "41738e96_1a61_4aeb_97a6a516fe625c62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_MaxLoop = MthCeiling(int_MaxLoop); // }} "" // {{ 583 1 0 "6e64a7c7_7522_462a_89bab0b7942ed897" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Temp.SetCurrentPosition(1); // }} "" // {{ 584 1 0 "512016f4_6f42_4af5_ba789f60b3037414" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 585 1 0 "03afca63_9626_492c_b2e45c577f3116f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(io_str_ChPattern, int_ChIndex, int_Value); // }} "" // {{ 586 1 0 "7f031682_e097_4267_864c687e4896cb26" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{ 587 1 0 "3a51c773_6c69_4c3d_bbb1d76532b68065" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TempDispense.SetCurrentPosition(int_ChIndex); // }} "" // {{{ 588 1 0 "64305a3b_a57f_4e8c_898623b523148ed3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_DispenseLabID = SeqGetLabwareId(seq_TempDispense); // }} "" // {{{ 589 1 0 "b844ab3a_76e4_4d3d_8511178dd6fa4daa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_DispensePosID = SeqGetPositionId(seq_TempDispense); // }} "" // {{ 590 1 0 "2ef361fc_8675_4620_a791523e22137946" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 591 1 0 "7f031682_e097_4267_864c687e4896cb26" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 592 1 0 "512016f4_6f42_4af5_ba789f60b3037414" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 593 1 0 "8f39de55_f27d_49bb_8ced7a02b22cb896" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TempDispense.SetCurrentPosition(1); // }} "" // {{{ 594 1 0 "d6d11811_d720_40f9_98751909c8196b10" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_DispenseLabID, str_DispensePosID, str_ContainerConfigFile); // }} "" // {{ 595 1 0 "e18cd14a_041a_4a51_b243b0921e456d34" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_UseLLD = BOOLEON::TRUE; // }} "" // {{ 596 1 0 "8143f465_06e7_4028_b1f2b2dbec291141" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_StartingChannelPattern = io_str_ChPattern; // }} "" // {{ 597 1 0 "abe9b0c1_bcc9_4451_955b6c603e199a55" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { i = 0; while (int_TotalChannels > 0) { i = i + 1; // }} "" // {{{ 598 1 0 "f362d926_162e_459e_94b87ed76d433a13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_RemainingChannels = StrReplace(io_str_ChPattern, Translate("1"), Translate("1")); // }} "" // {{ 599 1 0 "9c569061_d42b_4ecb_921746c3884b86c1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_RemainingChannels == 0) { // }} "" // {{ 600 1 0 "4a3576cf_c8b6_41f6_b7d4ab25af413669" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 601 1 0 "9c569061_d42b_4ecb_921746c3884b86c1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 602 1 0 "0c22e9fd_c8d6_4e43_ad71b08955863362" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i > int_MaxLoop) { // }} "" // {{ 603 1 0 "f0c1d88f_0507_47db_969e44a678228677" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("MAX VOLUME REMOVED!")); // }} "" // {{ 604 1 0 "02937868_2d61_4364_83dd0977971b5044" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 605 1 0 "0c22e9fd_c8d6_4e43_ad71b08955863362" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 606 1 0 "8ac170e0_4bdd_4eef_8f247643dc22ff79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_SimulationMode == BOOLEON::TRUE) { // }} "" // {{ 607 1 0 "6c5070df_fee5_42aa_8250b195f77d3a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i == 3) { // }} "" // {{ 608 1 0 "275d092b_d3b2_4e68_9c9e4995f5f1244a" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 609 1 0 "6c5070df_fee5_42aa_8250b195f77d3a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 610 1 0 "8ac170e0_4bdd_4eef_8f247643dc22ff79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 611 1 0 "3e5996c7_4a90_42ec_ade4b36d48855d1f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_UseCLLD == BOOLEON::FALSE) { // }} "" // {{ 612 1 0 "c214a8db_b8e0_4f70_a79a2486d4514d42" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i > 1) { // }} "" // {{ 613 1 0 "45254042_0e64_4538_9cddf62d11bf61ec" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_UseLLD = BOOLEON::FALSE; // }} "" // {{ 614 1 0 "c214a8db_b8e0_4f70_a79a2486d4514d42" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 615 1 0 "3e5996c7_4a90_42ec_ade4b36d48855d1f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 616 1 0 "7923f47b_a57e_4640_9ed7ef8c8c2302fa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_AspirationMode = 0; // }} "" // {{ 617 1 0 "9ff524f0_d459_4bdc_9616146536b8b5fa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_DisableTADMFirst == BOOLEON::TRUE) { // }} "" // {{ 618 1 0 "dc88362c_195d_48c5_b2c8aec19ee65aaf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i == 1) { // }} "" // {{ 619 1 0 "416019da_930c_4d58_9e457f5137fae363" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_AspirationMode = 2; // }} "" // {{ 620 1 0 "dc88362c_195d_48c5_b2c8aec19ee65aaf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 621 1 0 "9ff524f0_d459_4bdc_9616146536b8b5fa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 622 1 0 "b86b9ded_a95f_46c5_a9a6abf8619982e0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i > 1) { // }} "" // {{ 623 1 0 "41e148e3_44ef_4b87_81bc7230d336a1ff" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 624 1 0 "85706105_45bf_42dd_9fac6a8849630823" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_InstrumentType <= 2) { // }} "" // {{{ 625 1 0 "6d6627e3_09d1_4aa4_b336ad619572c9ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_MOVEMENT_TOOLS::Move_Channels_To_Absolute_Position_1mL(ML_STAR, str_StartingChannelPattern, 245.0, arr_XCoord, arr_YCoord, arr_ZTravelHeight); // }} "" // {{ 626 1 0 "85706105_45bf_42dd_9fac6a8849630823" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 627 1 0 "cb03ffb3_d1d6_4890_ac0c36441689a21d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" VANTAGE_CHANNEL_MOVEMENT_TOOLS::Move_Channels_To_Absolute_Position_1mL(ML_STAR, str_StartingChannelPattern, 245.0, arr_XCoord, arr_YCoord, arr_ZTravelHeight); // }} "" // {{ 628 1 0 "85706105_45bf_42dd_9fac6a8849630823" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 629 1 0 "b86b9ded_a95f_46c5_a9a6abf8619982e0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 630 1 0 "bf08fbb2_33c2_43a3_83808f176b9cd964" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_UseLLD == BOOLEON::TRUE) { // }} "" // {{ 631 1 0 "c9ae6500_b5d1_4477_a223613843f63ca6" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C5F95C8F9E654de5948C18A25DDCED25 ; err.Clear(); // }} "" // {{ 632 1 0 "01fe469b_4274_43ed_bf9242e8f026a02d" "ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2("01fe469b_4274_43ed_bf9242e8f026a02d"); // Aspirate str_AspReturn = arrRetValues[2]; } // }} "" // {{ 633 1 0 "701edfb3_990c_4c1b_bedc28252711ee79" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorReturn = Translate(""); // }} "" // {{ 634 1 0 "c9ae6500_b5d1_4477_a223613843f63ca6" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C5F95C8F9E654de5948C18A25DDCED25 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 635 1 0 "ff68417a_c631_4446_9806f35dcd906d1e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorReturn = ErrGetDataAt(3); // }} "" // {{ 636 1 0 "94c030fe_80a2_4f92_b3f6398bb4de0a8d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_AspReturn = str_ErrorReturn; // }} "" // {{ 637 1 0 "c9ae6500_b5d1_4477_a223613843f63ca6" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 638 1 0 "d4cb59ab_f466_4c93_a6c14323be726409" "ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}" { variable arrRetValues[]; arrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C("d4cb59ab_f466_4c93_a6c14323be726409"); // GetLastLiquidLevel str_LiquidReturn = arrRetValues[2]; } // }} "" // {{ 639 1 0 "6c454965_143f_4988_a52b397933b8424a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 640 1 0 "c9bfcf14_aef2_461a_b58cd83257c695bd" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 641 1 0 "f742a43b_9530_4cfd_b258b03e6570a658" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentHeight = 0.0; // }} "" // {{ 642 1 0 "9139c912_bc68_4019_b300ce2a85b1662d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirated = 0.0; // }} "" // {{ 643 1 0 "64966e50_2fdd_45f0_8638ae33c2a8c100" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Temp.SetCurrentPosition(int_ChIndex); // }} "" // {{{ 644 1 0 "99a05cc8_4c91_4e8f_8af0152b01f0ffce" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(io_str_ChPattern, int_ChIndex, int_Value); // }} "" // {{ 645 1 0 "622467f4_0897_4aa3_acb5f7fed1136df4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{ 646 1 0 "4b2e4a96_f178_4613_80bda8956dea72d2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_ErrorReturn != "") { // }} "" // {{{ 647 1 0 "e25c0793_4732_4c19_886bbfc79105b958" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Position = StepReturn::GetPositionFromNum(int_ChIndex, str_ErrorReturn); // }} "" // {{{ 648 1 0 "fec343b1_ce8f_4724_80636c401244140c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ReturnErrorCode = StepReturn::GetSlaveError(int_Position, str_ErrorReturn); // }} "" // {{ 649 1 0 "4b2e4a96_f178_4613_80bda8956dea72d2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 650 1 0 "8997fb37_48b6_4bc3_aedf483366696db6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ReturnErrorCode = 0; // }} "" // {{ 651 1 0 "4b2e4a96_f178_4613_80bda8956dea72d2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 652 1 0 "aa294da8_31f5_4eec_84fc99f62f3c92c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_Temp); // }} "" // {{{ 653 1 0 "9b680ed5_17c9_443e_a5d17bcd20a3b6db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(seq_Temp); // }} "" // {{{ 654 1 0 "87f89c1b_4427_4b93_8d0c2ec85f35ebb9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LIQUID_LEVEL_CHECK::FindLiquidHeight(ML_STAR, str_LiquidReturn, seq_Temp, int_ChIndex, flt_LiquidHeight); // }} "" // {{{ 655 1 0 "9069418d_e49c_4e26_85eeb26028dcadba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::Get_Tip_Volume_1mL(ML_STAR, int_ChIndex, flt_MaxVolume, flt_CurrentVolume); // }} "" // {{ 656 1 0 "58be1779_4edd_49be_929085a29dab5980" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 657 1 0 "79c76753_3c6f_477b_830640987b27965e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_SimulationMode == BOOLEON::TRUE) { // }} "" // {{ 658 1 0 "38020480_c48a_4136_bb0053ddef9b6f48" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentVolume = i_flt_AspirationVolume; // }} "" // {{ 659 1 0 "79c76753_3c6f_477b_830640987b27965e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 660 1 0 "58be1779_4edd_49be_929085a29dab5980" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 661 1 0 "11bb03f8_d0d2_4d83_bed8e59152c95375" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (T_PIP_TOOLS_ASP_BLOWOUT > 0.0) { // }} "" // {{ 662 1 0 "913b2a59_c950_4e33_ac5bdd95fe418d2b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CorrectedBlowout = T_PIP_TOOLS_ASP_BLOWOUT; // }} "" // {{ 663 1 0 "11bb03f8_d0d2_4d83_bed8e59152c95375" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 664 1 0 "0cbf3be3_f584_4968_99f383674d07c271" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CorrectedBlowout = 0.0; // }} "" // {{ 665 1 0 "11bb03f8_d0d2_4d83_bed8e59152c95375" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 666 1 0 "321a835d_efe8_45a2_b6c6f8a991b52e58" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ReturnErrorCode == 0) { // }} "" // {{ 667 1 0 "a8965122_47e4_4537_ac349fb3a18c78c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (T_PIP_TOOLS_ASP_AIR_TRANSPORT > 0.0) { // }} "" // {{ 668 1 0 "53c9f80c_5c98_418b_b35ebd3667c0d392" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CorrectedAirGap = T_PIP_TOOLS_ASP_AIR_TRANSPORT; // }} "" // {{ 669 1 0 "a8965122_47e4_4537_ac349fb3a18c78c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 670 1 0 "bf071407_23c7_4307_89fc454fc5dd8894" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CorrectedAirGap = 0.0; // }} "" // {{ 671 1 0 "a8965122_47e4_4537_ac349fb3a18c78c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 672 1 0 "321a835d_efe8_45a2_b6c6f8a991b52e58" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 673 1 0 "3362931e_6e54_4513_be361f43eca70d78" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("ASPIRATION STOPPED EARLY!")); // }} "" // {{ 674 1 0 "8cb6b4a7_eab5_43b3_9a6d3fc5724df40c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CorrectedAirGap = 0.0; // }} "" // {{ 675 1 0 "321a835d_efe8_45a2_b6c6f8a991b52e58" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 676 1 0 "5ec02639_96a9_4b89_ae14223988e270b5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_TotalAirGap = flt_CorrectedBlowout + flt_CorrectedAirGap; // }} "" // {{ 677 1 0 "ae46bddb_93d9_4a3a_8ef97076889fd331" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirated = flt_CurrentVolume - flt_TotalAirGap; // }} "" // {{{ 678 1 0 "75fc396c_79de_4bec_b416d80210eb85c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Total Air Gap: "), flt_TotalAirGap, Translate(" uL")); // }} "" // {{{ 679 1 0 "7353601c_388d_4aad_a0bc76b2a7a2904f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Volume Aspirated Adjusted: "), flt_VolumeAspirated, Translate(" uL")); // }} "" // {{ 680 1 0 "669b72a1_1f53_4657_ab99db3a297ff820" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_VolumeAspirated < 0.0) { // }} "" // {{ 681 1 0 "b66f1b89_ee4f_437a_81a143c7e25a4555" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirated = 0.0; // }} "" // {{ 682 1 0 "669b72a1_1f53_4657_ab99db3a297ff820" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 683 1 0 "d62f6978_2c3a_4d13_98cc788a029dc361" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetCorrectedValueForVolume(flt_VolumeAspirated, T_PIP_TOOLS_ARR_CORRECTION_Y, T_PIP_TOOLS_ARR_CORRECTION_X, flt_VolumeAspirated); // }} "" // {{ 684 1 0 "669b72a1_1f53_4657_ab99db3a297ff820" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 685 1 0 "5eda7fc8_1880_4782_8d2f3e9d97d6f3aa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Volume Aspirated: "), flt_VolumeAspirated, Translate(" uL")); // }} "" // {{{ 686 1 0 "52ca64fa_e481_4b94_9c989cecff862e41" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Liquid Level Start : "), flt_LiquidHeight, Translate(" mm")); // }} "" // {{ 687 1 0 "b591bace_e17e_482b_9f63a0831b507fe3" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirated = flt_VolumeAspirated * -1; // }} "" // {{{ 688 1 0 "6c76bb6e_928f_4175_90f6f8d970209b8e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _CalculateLiquidFollowDistance(ML_STAR, str_LabID, str_PosID, flt_LiquidHeight, flt_VolumeAspirated, BOOLEON::TRUE, flt_LiquidFollowDistance); // }} "" // {{ 689 1 0 "a691b616_1d81_4bb9_bbb0c55e7eac037a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirated = flt_VolumeAspirated * -1; // }} "" // {{ 690 1 0 "ee5daac4_ddab_49cb_89d82ebadd8bbe8a" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentHeight = flt_LiquidHeight - flt_LiquidFollowDistance; // }} "" // {{ 691 1 0 "aa34f00c_8c76_4a60_b39d1f26b4285022" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentHeight < 0.0) { // }} "" // {{ 692 1 0 "65873774_54e0_42ce_8ce5018a47dda2d6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentHeight = 0.0; // }} "" // {{ 693 1 0 "aa34f00c_8c76_4a60_b39d1f26b4285022" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 694 1 0 "b459a2e7_8b67_4a4c_8839c80221ec8ceb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::TRUE) { // }} "" // {{ 695 1 0 "bd708f31_0bd4_4dcc_bc251ac03b2f4813" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentHeight = 25.0; // }} "" // {{ 696 1 0 "b459a2e7_8b67_4a4c_8839c80221ec8ceb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 697 1 0 "5b428709_5b1a_4d4c_bf97c01ff333ae23" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Liquid Level End : "), flt_CurrentHeight, Translate(" mm")); // }} "" // {{ 698 1 0 "622467f4_0897_4aa3_acb5f7fed1136df4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 699 1 0 "e359871e_2d38_43f8_a380b7232befea01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i == 1) { // }} "" // {{ 700 1 0 "65b232e8_e0f3_4e26_91a1c9cb59d51630" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_LiquidHeights.AddAsLast(flt_CurrentHeight); // }} "" // {{ 701 1 0 "056ceda5_8d75_47bb_87c0b3027ec9494c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_VolumesAspirated.AddAsLast(flt_VolumeAspirated); // }} "" // {{ 702 1 0 "e359871e_2d38_43f8_a380b7232befea01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 703 1 0 "b9facf05_9e69_42ea_953b261a760855a4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_LiquidHeights.SetAt(int_ChIndex-1, flt_CurrentHeight); // }} "" // {{ 704 1 0 "ec06ede3_cbae_4bb2_b8134077a764350f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_VolumesAspirated.SetAt(int_ChIndex-1, flt_VolumeAspirated); // }} "" // {{ 705 1 0 "e359871e_2d38_43f8_a380b7232befea01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 706 1 0 "c9bfcf14_aef2_461a_b58cd83257c695bd" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 707 1 0 "7b00d4fd_2795_4308_952aaae821eed301" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Temp.SetCurrentPosition(1); // }} "" // {{ 708 1 0 "6c454965_143f_4988_a52b397933b8424a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 709 1 0 "bf08fbb2_33c2_43a3_83808f176b9cd964" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 710 1 0 "561f9901_7d5e_4818_86cef754fd762f96" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_448E92A110B74ccdAF87B89FEFEB9A0A ; err.Clear(); // }} "" // {{ 711 1 0 "b468e8f1_82e4_4845_b1998a5beb10be0c" "ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2("b468e8f1_82e4_4845_b1998a5beb10be0c"); // Aspirate str_AspReturn = arrRetValues[2]; } // }} "" // {{ 712 1 0 "01fc08d1_c86f_4e01_9e78e6ac0ae19aba" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ErrorReturn = Translate(""); // }} "" // {{ 713 1 0 "561f9901_7d5e_4818_86cef754fd762f96" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_448E92A110B74ccdAF87B89FEFEB9A0A : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 714 1 0 "9893c613_fc99_4c77_ba1b2e661a8ba2e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ErrorReturn = ErrGetDataAt(3); // }} "" // {{ 715 1 0 "aa5e1f48_c0d9_4e08_b6b3613408f9b5be" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_AspReturn = str_ErrorReturn; // }} "" // {{ 716 1 0 "561f9901_7d5e_4818_86cef754fd762f96" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 717 1 0 "732b2123_d5b9_4b3f_91b9f0083066e6ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 718 1 0 "d06cf1e9_2252_44bf_ae188ab8375f2693" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 719 1 0 "6c59a17f_f92d_43b8_8d84a8321e1383f4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentHeight = 0.0; // }} "" // {{ 720 1 0 "aad54511_4e3a_46ff_8a2df15d0b20cc09" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirated = 0.0; // }} "" // {{ 721 1 0 "906f8f79_c9ee_40fd_835dc54cd0998e1f" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Temp.SetCurrentPosition(int_ChIndex); // }} "" // {{{ 722 1 0 "966eba6c_e8f5_4819_b2e9255119db5c6a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(io_str_ChPattern, int_ChIndex, int_Value); // }} "" // {{ 723 1 0 "2bf0c1cc_312f_4900_aaf2762dd7acf33c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{ 724 1 0 "f9454c79_83b0_46c4_889552986fb1c004" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_ErrorReturn != "") { // }} "" // {{{ 725 1 0 "c76d5f4a_2315_47fd_a665c156c5631393" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Position = StepReturn::GetPositionFromNum(int_ChIndex, str_ErrorReturn); // }} "" // {{{ 726 1 0 "63507b2f_a5a1_4d2f_b450770d1a6b7603" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ReturnErrorCode = StepReturn::GetSlaveError(int_Position, str_ErrorReturn); // }} "" // {{ 727 1 0 "f9454c79_83b0_46c4_889552986fb1c004" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 728 1 0 "bb5cf922_1456_4f4d_8c507d8f5c580a2f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ReturnErrorCode = 0; // }} "" // {{ 729 1 0 "f9454c79_83b0_46c4_889552986fb1c004" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 730 1 0 "134afa56_49b8_4807_9d513c1a50a685c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_Temp); // }} "" // {{{ 731 1 0 "f831cb1c_c260_4162_ae36fd0d91b15a73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(seq_Temp); // }} "" // {{ 732 1 0 "5b95941c_52c5_47d5_b58ccfdaa2555e14" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_LiquidHeight=arr_LiquidHeights.GetAt(int_ChIndex-1); // }} "" // {{{ 733 1 0 "d1817f5f_d4dc_4da1_9d3741c33e7a0a26" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::Get_Tip_Volume_1mL(ML_STAR, int_ChIndex, flt_MaxVolume, flt_CurrentVolume); // }} "" // {{ 734 1 0 "7e44597a_0f1a_41dc_82bf20a16397e3a1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 735 1 0 "daddb01d_2e44_4dde_92bc919b3eb03054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_SimulationMode == BOOLEON::TRUE) { // }} "" // {{ 736 1 0 "f5d16664_5ae8_4f02_8075b9271e454c40" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentVolume = i_flt_AspirationVolume; // }} "" // {{ 737 1 0 "daddb01d_2e44_4dde_92bc919b3eb03054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 738 1 0 "7e44597a_0f1a_41dc_82bf20a16397e3a1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 739 1 0 "59758ce1_6412_4757_867b3c822476a9b7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (T_PIP_TOOLS_ASP_BLOWOUT > 0.0) { // }} "" // {{ 740 1 0 "5d9874a9_2969_4737_beff127abe27bafc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CorrectedBlowout = T_PIP_TOOLS_ASP_BLOWOUT; // }} "" // {{ 741 1 0 "59758ce1_6412_4757_867b3c822476a9b7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 742 1 0 "33d56fee_a73e_4a41_bbd71d671c7b1471" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CorrectedBlowout = 0.0; // }} "" // {{ 743 1 0 "59758ce1_6412_4757_867b3c822476a9b7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 744 1 0 "b30390f6_1553_4848_b4aad7ab747c83c8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ReturnErrorCode == 0) { // }} "" // {{ 745 1 0 "d8afc0d4_b8de_4999_9864a81e5aed4ee3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (T_PIP_TOOLS_ASP_AIR_TRANSPORT > 0.0) { // }} "" // {{ 746 1 0 "258c17b6_cf39_4a32_bcbbcf50d10a3072" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CorrectedAirGap = T_PIP_TOOLS_ASP_AIR_TRANSPORT; // }} "" // {{ 747 1 0 "d8afc0d4_b8de_4999_9864a81e5aed4ee3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 748 1 0 "033dd162_38fb_44b6_80203fc6982c553f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CorrectedAirGap = 0.0; // }} "" // {{ 749 1 0 "d8afc0d4_b8de_4999_9864a81e5aed4ee3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 750 1 0 "b30390f6_1553_4848_b4aad7ab747c83c8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 751 1 0 "ef583f37_c319_4246_90fe7de74f350c9b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("ASPIRATION STOPPED EARLY!")); // }} "" // {{ 752 1 0 "1aba71ab_9bb8_43eb_a5778981c19818da" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CorrectedAirGap = 0.0; // }} "" // {{ 753 1 0 "b30390f6_1553_4848_b4aad7ab747c83c8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 754 1 0 "751fd6e4_b3a4_4841_b54db699f14370ac" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_TotalAirGap = flt_CorrectedBlowout + flt_CorrectedAirGap; // }} "" // {{ 755 1 0 "1ede1fd5_84e7_47e8_9f713eef0d0156df" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirated = flt_CurrentVolume - flt_TotalAirGap; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 756 1 0 "87ddd759_4f31_40d8_93e22c5a5b10c1c1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirated = flt_CurrentVolume; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 757 1 0 "e590aff6_ad61_4b00_90da7460cf735a6c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Total Air Gap: "), flt_TotalAirGap, Translate(" uL")); // }} "" // {{{ 758 1 0 "99eacef1_9baa_4c1f_8b1ca80e8028503f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Volume Aspirated Adjusted: "), flt_VolumeAspirated, Translate(" uL")); // }} "" // {{ 759 1 0 "67bb31ae_9bcf_4b4c_ab338793f0f338db" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_VolumeAspirated < 0.0) { // }} "" // {{ 760 1 0 "b2be93ef_1212_4c4b_a5c7e50c0003eb5e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirated = 0.0; // }} "" // {{ 761 1 0 "67bb31ae_9bcf_4b4c_ab338793f0f338db" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 762 1 0 "712275b4_6fd0_4b6a_8bfb5c70452c8ac3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetCorrectedValueForVolume(flt_VolumeAspirated, T_PIP_TOOLS_ARR_CORRECTION_Y, T_PIP_TOOLS_ARR_CORRECTION_X, flt_VolumeAspirated); // }} "" // {{ 763 1 0 "67bb31ae_9bcf_4b4c_ab338793f0f338db" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 764 1 0 "e8829853_4fb7_4440_943811f68a2ed2b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Volume Aspirated : "), flt_VolumeAspirated, Translate(" uL")); // }} "" // {{{ 765 1 0 "fab4eba5_d677_4164_8afe589b98c60e13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Liquid Level Start : "), flt_LiquidHeight, Translate(" mm")); // }} "" // {{ 766 1 0 "8fe1098d_4077_4155_a79d6b13a3ed42c6" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirated = flt_VolumeAspirated * -1; // }} "" // {{{ 767 1 0 "de9434cc_4c99_4ff8_9317226ed47090b2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _CalculateLiquidFollowDistance(ML_STAR, str_LabID, str_PosID, flt_LiquidHeight, flt_VolumeAspirated, BOOLEON::TRUE, flt_LiquidFollowDistance); // }} "" // {{ 768 1 0 "bbf4b28c_16a8_48d0_ae59be2a01c9d472" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollowDistance = flt_LiquidFollowDistance + i_flt_SubmergeDepth; // }} "" // {{ 769 1 0 "45543d0d_04c6_4642_b8865b47b58341b5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirated = flt_VolumeAspirated * -1; // }} "" // {{ 770 1 0 "1aef9b4e_ab87_470c_8080eec225467ed2" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentHeight = flt_LiquidHeight - flt_LiquidFollowDistance; // }} "" // {{ 771 1 0 "7c3438a0_989c_4492_91c88c1520e4dedb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentHeight < 0.0) { // }} "" // {{ 772 1 0 "768bde28_c264_401d_93e1d1d3606e1154" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentHeight = 0.0; // }} "" // {{ 773 1 0 "7c3438a0_989c_4492_91c88c1520e4dedb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 774 1 0 "e5e30769_7257_4015_bd9824fcbbbc7ffa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::TRUE) { // }} "" // {{ 775 1 0 "b513ece4_3a10_4ad3_9548e1bd15c59b95" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentHeight = 25.0; // }} "" // {{ 776 1 0 "e5e30769_7257_4015_bd9824fcbbbc7ffa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 777 1 0 "3bef5d06_2cc2_460d_8a41bd7a9e8a35dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Liquid Level End : "), flt_CurrentHeight, Translate(" mm")); // }} "" // {{ 778 1 0 "2bf0c1cc_312f_4900_aaf2762dd7acf33c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 779 1 0 "3904fff4_9d0b_4d19_94ebd694a2b164d9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_LiquidHeights.SetAt(int_ChIndex-1, flt_CurrentHeight); // }} "" // {{ 780 1 0 "efd550f7_edd3_4ad5_b6f6416edebb3d66" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_VolumesAspirated.SetAt(int_ChIndex-1, flt_VolumeAspirated); // }} "" // {{ 781 1 0 "d06cf1e9_2252_44bf_ae188ab8375f2693" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 782 1 0 "c394793a_01a8_48ed_a9d70756394ce92b" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Temp.SetCurrentPosition(1); // }} "" // {{ 783 1 0 "732b2123_d5b9_4b3f_91b9f0083066e6ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 784 1 0 "bf08fbb2_33c2_43a3_83808f176b9cd964" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 785 1 0 "1b932678_fbdd_40fe_b7798f8e1723a9c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_2(Translate("Current Liquid Heights Volumes Aspirated"), arr_LiquidHeights, arr_VolumesAspirated); // }} "" // {{ 786 1 0 "8b2d25c7_2980_45c1_a7fb6228da1aaf7e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 787 1 0 "06e83eed_1178_49d4_959f06f0f9abad5b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_ErrorReturn != "") { // }} "" // {{{ 788 1 0 "65259c29_55a8_44b5_817e88f2453b7662" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Error Return Value: "), str_ErrorReturn, Translate("")); // }} "" // {{ 789 1 0 "2588a21c_c33e_4862_9a5831d49f60f78b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_DispenseChPattern = Translate(""); // }} "" // {{{ 790 1 0 "fc628844_4aa9_4baf_bd0333b92d766ae6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = StepReturn::GetNumberOfPositions(str_ErrorReturn); // }} "" // {{ 791 1 0 "e222f01b_3223_41b0_a18a38a868179d37" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_LiquidFollowingDistance.SetSize(0); // }} "" // {{ 792 1 0 "d47e9a41_3e27_43f2_91056cbb1fe461a4" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_DispenseVolumes.SetSize(0); // }} "" // {{{ 793 1 0 "d6c9339a_90b1_4896_938f79602518c4b7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidFollowingForAllChannels(ML_STAR, arr_LiquidHeights, seq_Temp, BOOLEON::TRUE, BOOLEON::FALSE, i_flt_DispenseBackVolume, io_str_ChPattern, arr_LiquidFollowingDistance); // }} "" // {{ 794 1 0 "18e000d9_ced3_4969_9c1793c6c7a4bb78" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalPositions;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 795 1 0 "e926097a_8821_4962_bd7ec04b0e8f1f97" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Position = StepReturn::GetPositionFromNum(int_ChIndex, str_ErrorReturn); // }} "" // {{{ 796 1 0 "b900fc58_1622_4f11_9a5ca738da6ba983" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ReturnErrorCode = StepReturn::GetSlaveError(int_Position, str_ErrorReturn); // }} "" // {{ 797 1 0 "de987974_b0dc_4bf4_8554d5aaea02608d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ReturnErrorCode == 0) { // }} "" // {{{ 798 1 0 "d67a56f6_b163_41ac_856184d4d8113462" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_DispenseChPattern = StrConcat2(str_DispenseChPattern, Translate("0")); // }} "" // {{ 799 1 0 "5eea53a0_ab0f_4262_95824a3e59ae1e07" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_DispenseVolumes.AddAsLast(0.0); // }} "" // {{ 800 1 0 "de987974_b0dc_4bf4_8554d5aaea02608d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 801 1 0 "413ba4da_4b17_4380_a4474b427737e26a" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_CurrentHeight=arr_LiquidHeights.GetAt(int_ChIndex-1); // }} "" // {{ 802 1 0 "7aedc866_5b91_476c_8b6da2b58088d372" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_SecondPhaseHeights.SetAt(int_ChIndex-1, flt_CurrentHeight); // }} "" // {{{ 803 1 0 "14e0e33c_ea5c_4ca9_8937ca89aede554a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::Get_Tip_Volume_1mL(ML_STAR, int_ChIndex, flt_MaxVolume, flt_CurrentVolume); // }} "" // {{ 804 1 0 "c86f9e42_40dd_49d3_92288ae49f161a3c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (T_PIP_TOOLS_ASP_BLOWOUT > 0.0) { // }} "" // {{ 805 1 0 "eeb3c4ac_59f0_43a8_957f06f6c36c4ecc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CorrectedBlowout = T_PIP_TOOLS_ASP_BLOWOUT; // }} "" // {{ 806 1 0 "c86f9e42_40dd_49d3_92288ae49f161a3c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 807 1 0 "79c5731a_c39e_4e7f_bc1a0783b49f8364" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CorrectedBlowout = 0.0; // }} "" // {{ 808 1 0 "c86f9e42_40dd_49d3_92288ae49f161a3c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 809 1 0 "0e2f4ee5_6c82_4687_b1c2a67994632b15" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirated = flt_CurrentVolume - flt_CorrectedBlowout; // }} "" // {{ 810 1 0 "d202b601_f05b_4c49_aa26653e0d265265" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_VolumeAspirated < 0.0) { // }} "" // {{ 811 1 0 "8b51c074_e336_4462_b2ce6691a1645dc8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirated = 0.0; // }} "" // {{ 812 1 0 "d202b601_f05b_4c49_aa26653e0d265265" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 813 1 0 "d62385c8_9950_4a4a_ad9999b2a4936bd0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetCorrectedValueForVolume(flt_VolumeAspirated, T_PIP_TOOLS_ARR_CORRECTION_Y, T_PIP_TOOLS_ARR_CORRECTION_X, flt_VolumeAspirated); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 814 1 0 "d202b601_f05b_4c49_aa26653e0d265265" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 815 1 0 "fa21df3e_416e_4892_adf3fa29046ec27c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(int_ChIndex, Translate(" Volume currently in channel: "), flt_VolumeAspirated, Translate("")); // }} "" // {{ 816 1 0 "96ebbf0d_2de1_4e59_a6b20ea6dbdffe62" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_DispenseVolume = i_flt_DispenseBackVolume; // }} "" // {{ 817 1 0 "b9595f45_9895_4b0f_a6c1ddc9dc8a849a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_VolumeAspirated < i_flt_DispenseBackVolume) { // }} "" // {{ 818 1 0 "eff021df_e28b_4279_bb8a68187d45bd58" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_DispenseVolume = flt_VolumeAspirated; // }} "" // {{ 819 1 0 "769aecb7_bb7b_4084_a5787c6850a5da32" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 820 1 0 "54706dac_dae4_45b7_af591a2c6739944f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirated = 0.0; // }} "" // {{ 821 1 0 "2fe3286d_42d1_4547_9f14b19ff02fa4f6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_DispenseVolume < 0.0) { // }} "" // {{ 822 1 0 "9847b893_9c33_41b1_89ce8f7f8e4e95d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_DispenseVolume = 0.0; // }} "" // {{ 823 1 0 "2fe3286d_42d1_4547_9f14b19ff02fa4f6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 824 1 0 "b9595f45_9895_4b0f_a6c1ddc9dc8a849a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 825 1 0 "62c1f8e6_d65f_46d4_a7d5452c9e86f8c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_DispenseVolume < 0.0) { // }} "" // {{ 826 1 0 "25422e4a_ec6d_465d_99506cf1a5cf1f0a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_DispenseVolume = 0.0; // }} "" // {{ 827 1 0 "62c1f8e6_d65f_46d4_a7d5452c9e86f8c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 828 1 0 "e90a7a0d_f77d_45d6_aa363dd7a9269202" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_VolumeAspirated < 0.0) { // }} "" // {{ 829 1 0 "70c8bd07_a24d_4aa3_95805d6eb108923e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirated = 0.0; // }} "" // {{ 830 1 0 "e90a7a0d_f77d_45d6_aa363dd7a9269202" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 831 1 0 "e210d053_0aad_412f_8ced9ec6445295ed" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirated = flt_VolumeAspirated - flt_DispenseVolume; // }} "" // {{ 832 1 0 "b9595f45_9895_4b0f_a6c1ddc9dc8a849a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 833 1 0 "f2772797_f1c7_4a33_9a24218cc51020de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Volume dispensed in channel: "), flt_DispenseVolume, Translate("")); // }} "" // {{ 834 1 0 "1c57021a_13cc_4b06_b5970aac41bf0533" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_DispenseVolumes.AddAsLast(flt_DispenseVolume); // }} "" // {{ 835 1 0 "f068711c_302c_462f_9f7733f151d0df66" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_VolumeAspirated <= 0.0) { // }} "" // {{ 836 1 0 "653075c7_f7dd_47e6_8b83069c46160b64" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeAspirated = 0.0; // }} "" // {{ 837 1 0 "f068711c_302c_462f_9f7733f151d0df66" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 838 1 0 "7192df1a_5ec0_48cd_8899e195f5f96e2e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetCorrectedValueForVolume(flt_VolumeAspirated, T_PIP_TOOLS_ARR_CORRECTION_Y, T_PIP_TOOLS_ARR_CORRECTION_X, flt_VolumeAspirated); // }} "" // {{ 839 1 0 "f068711c_302c_462f_9f7733f151d0df66" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 840 1 0 "a8f99053_ca55_440e_aebdc833e528c576" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Remaining volume in channel: "), flt_VolumeAspirated, Translate("")); // }} "" // {{ 841 1 0 "41bb2796_c027_4c67_82e520f90db0febe" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_VolumesAspirated.SetAt(int_ChIndex-1, flt_VolumeAspirated); // }} "" // {{ 842 1 0 "3cdf2067_590f_40d2_a30e96ea5b075421" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_DispenseVolume > 0.0) { // }} "" // {{{ 843 1 0 "440855a3_6daa_40f2_b5c1e3f6b90ff540" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_DispenseChPattern = StrConcat2(str_DispenseChPattern, Translate("1")); // }} "" // {{ 844 1 0 "3cdf2067_590f_40d2_a30e96ea5b075421" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 845 1 0 "05208409_70b6_41a4_adee6054f939c230" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_DispenseChPattern = StrConcat2(str_DispenseChPattern, Translate("0")); // }} "" // {{ 846 1 0 "3cdf2067_590f_40d2_a30e96ea5b075421" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 847 1 0 "de987974_b0dc_4bf4_8554d5aaea02608d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 848 1 0 "18e000d9_ced3_4969_9c1793c6c7a4bb78" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 849 1 0 "0c61b957_6550_4676_bd277acca204d3e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Dispense Back Channel Pattern: "), str_DispenseChPattern, Translate("")); // }} "" // {{ 850 1 0 "2d4984b8_8a34_46de_8fe612a53a08daab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_flt_DispenseBackVolume > 0.0) { // }} "" // {{{ 851 1 0 "142e4920_8321_4c9f_b5fd8ee2465693ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_DispenseBackCheck = StrReplace(str_DispenseChPattern, Translate("1"), Translate("1")); // }} "" // {{ 852 1 0 "26f853e2_d9a0_419f_9682f7fbc826d864" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_DispenseBackCheck > 0) { // }} "" // {{{ 853 1 0 "e5de9938_78db_408b_a7c9501761cf7b2a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Dispense Back Volumes"), arr_DispenseVolumes); // }} "" // {{ 854 1 0 "047530a8_24e3_4082_ae77116e37f01edc" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_Offset = flt_ZBottom - 1.0; // }} "" // {{{ 855 1 0 "8bb043ef_eb9e_40c5_991a2171d4e18c78" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _ApplyOffsetToArrayofValues(arr_LiquidHeights, flt_Offset, arr_DispenseHeights); // }} "" // {{{ 856 1 0 "5c10acbf_30b3_410d_a7747be1deb4e5b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::PIPDispenseFromFixedHeight_ArrayVolumes(ML_STAR, str_DispenseChPattern, 4, arr_XCoord, arr_YCoord, arr_DispenseHeights, arr_LiquidFollowingDistance, 245.0, 245.0, flt_ZMinimumHeight, flt_ZBottom, arr_DispenseVolumes, 40.0, 40.0, 0.0, T_PIP_TOOLS_DISP_AIR_TRANSPORT, 0.0, T_PIP_TOOLS_DISP_SETTLING, T_PIP_TOOLS_DISP_SWAP, 5.0, flt_ZMaximumHeight); // }} "" // {{ 857 1 0 "26f853e2_d9a0_419f_9682f7fbc826d864" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 858 1 0 "2d4984b8_8a34_46de_8fe612a53a08daab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 859 1 0 "06e83eed_1178_49d4_959f06f0f9abad5b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 860 1 0 "8b2d25c7_2980_45c1_a7fb6228da1aaf7e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 861 1 0 "e4efec32_3c7b_4026_ad4227f90d5d3c5a" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_DispenseHeights.SetSize(0); // }} "" // {{ 862 1 0 "498bb0f7_3843_4ecc_bc0fc084ad478d7a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_DispenseLocation = Translate(""); // }} "" // {{ 863 1 0 "5ade1ecc_2dfb_4004_b2446aaad7d6150a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_DispenseChPattern = Translate(""); // }} "" // {{ 864 1 0 "c64f6ba6_5721_48af_91f2c0da9db5c594" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 865 1 0 "cc5588b5_4661_4efa_afaff5deb32e40ed" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Volume = Translate(""); // }} "" // {{ 866 1 0 "f238de0e_da85_463f_9742657099aabcd6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_DispenseLabID = Translate(""); // }} "" // {{ 867 1 0 "faf092cc_6db1_45f7_8c4a4b5e0d76376c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_DispensePosID = Translate(""); // }} "" // {{ 868 1 0 "6c616aef_3a1f_4f50_bd9ea5c8ec8a5a86" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TempDispense.SetCurrentPosition(int_ChIndex); // }} "" // {{ 869 1 0 "d3d91a57_3d55_4f7d_8b479f76923dfdcc" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_CurrentVolume=arr_VolumesAspirated.GetAt(int_ChIndex-1); // }} "" // {{{ 870 1 0 "20bcd3aa_6368_4aa9_b2e92d4399eec065" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(io_str_ChPattern, int_ChIndex, int_Value); // }} "" // {{ 871 1 0 "397307bf_e586_4f05_be3958dbc616598c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{ 872 1 0 "428af9ab_bc87_48d2_a164c983eb8d8c52" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentVolume > 0.0) { // }} "" // {{{ 873 1 0 "f7485159_65b9_4f3a_95a583fe4b743cb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_DispenseLabID = SeqGetLabwareId(seq_TempDispense); // }} "" // {{{ 874 1 0 "ac8bf98b_3a64_44fd_b1de5a29aeeb7750" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_DispensePosID = SeqGetPositionId(seq_TempDispense); // }} "" // {{{ 875 1 0 "3ca455b7_3e3b_416e_90fb2d29533faad4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_DispenseLocation = StrConcat12(str_DispenseLocation, Translate("> "), Translate("channel "), int_ChIndex, Translate(": "), str_DispenseLabID, Translate(", "), str_DispensePosID, Translate(", "), flt_CurrentVolume, Translate(" uL"), Translate("")); // }} "" // {{{ 876 1 0 "c7d22e41_425c_4fc2_b10694581fee4faf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_DispenseChPattern = StrConcat2(str_DispenseChPattern, Translate("1")); // }} "" // {{ 877 1 0 "428af9ab_bc87_48d2_a164c983eb8d8c52" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 878 1 0 "50ea52ed_f0f3_43f7_92903eea19bafdcd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_DispenseChPattern = StrConcat2(str_DispenseChPattern, Translate("0")); // }} "" // {{ 879 1 0 "428af9ab_bc87_48d2_a164c983eb8d8c52" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 880 1 0 "397307bf_e586_4f05_be3958dbc616598c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 881 1 0 "9a835fbd_5abc_4dd3_806c9ebf3acd10be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_DispenseChPattern = StrConcat2(str_DispenseChPattern, Translate("0")); // }} "" // {{ 882 1 0 "397307bf_e586_4f05_be3958dbc616598c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 883 1 0 "c64f6ba6_5721_48af_91f2c0da9db5c594" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 884 1 0 "cc173dfb_01f7_4443_b8f193db3b904474" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TempDispense.SetCurrentPosition(1); // }} "" // {{{ 885 1 0 "69e954e2_d438_4f62_80dc6f68a4c8c53d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), str_DispenseLocation, Translate(""), Translate("")); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 886 1 0 "0bb3ab97_7e8d_4dfe_afc7b4c08f8e2b56" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidFollowingForAllChannels(ML_STAR, arr_DispenseHeights, seq_TempDispense, BOOLEON::TRUE, BOOLEON::FALSE, i_flt_AspirationVolume, io_str_ChPattern, arr_LiquidFollowingDispense); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 887 1 0 "a3f08315_590f_4c42_9023e335176561fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_DispenseCheck = StrReplace(str_DispenseChPattern, Translate("1"), Translate("1")); // }} "" // {{ 888 1 0 "e3117107_a600_4c7b_af090ef8fc0b794a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_DispenseCheck > 0) { // }} "" // {{{ 889 1 0 "177ec00c_80e9_48f7_9c1b55632bf5e5ba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetPartialChannelPatternForRepeatingPositions(ML_STAR, str_DispenseChPattern, seq_TempDispense, int_DispenseLoops, arr_DispenseChPatterns); // }} "" // {{ 890 1 0 "23d311ef_1388_4e83_acba41524e5ef7b0" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_DispenseCount = 0; int_DispenseCount < int_DispenseLoops;) { int_DispenseCount = int_DispenseCount + 1; // }} "" // {{{ 891 1 0 "4efcdaa7_b3b5_4974_89c4ef007b4fc14f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetVolumesInPositions(ML_STAR, seq_TempDispense, arr_CurrentDestVolumes); // }} "" // {{ 892 1 0 "74634c06_fbec_44dc_af6594ee79143b86" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_DispenseHeights.SetSize(0); // }} "" // {{ 893 1 0 "6b364c4e_104c_4efa_bd1f5e7be354378e" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_CurrentDispChPattern=arr_DispenseChPatterns.GetAt(int_DispenseCount-1); // }} "" // {{{ 894 1 0 "ce0a19e8_da0a_41eb_84259a65c56b571f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(str_CurrentDispChPattern, Translate("")); // }} "" // {{ 895 1 0 "14263018_92be_4c77_a87b83ff01da0394" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < G_FW_PIP_COM_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 896 1 0 "12ecbdd7_113a_49b7_b8396724b005a118" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(str_CurrentDispChPattern, int_ChIndex, int_Value); // }} "" // {{ 897 1 0 "4781c46c_d9fb_446f_b88f94d8dd0cf43b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{ 898 1 0 "c40934dc_2a94_4170_8588a6067715e30f" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TempDispense.SetCurrentPosition(int_ChIndex); // }} "" // {{ 899 1 0 "e6be073d_5e4c_4fcc_ae3e54d415ccb8e5" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_CurrentVolume=arr_CurrentDestVolumes.GetAt(int_ChIndex-1); // }} "" // {{ 900 1 0 "0e07ac76_1247_4a31_8f365a32f1990e90" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_VolumeAspirated=arr_VolumesAspirated.GetAt(int_ChIndex-1); // }} "" // {{ 901 1 0 "98bd5216_5234_4c06_971962fb4583fb49" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_NewVolume = flt_CurrentVolume + flt_VolumeAspirated; // }} "" // {{{ 902 1 0 "fcb9f0be_c779_407d_903f26f44705f8be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE08(Translate(" "), Translate("Current Volume in well: "), flt_CurrentVolume, Translate(" Volume aspirated: "), flt_VolumeAspirated, Translate(" Added Volume"), flt_NewVolume, Translate("")); // }} "" // {{{ 903 1 0 "77ef0c00_b4d3_41d4_9c60f9b39af187b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_TempDispense); // }} "" // {{{ 904 1 0 "0792e3a6_ebaf_4921_876c73736cddc757" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(seq_TempDispense); // }} "" // {{{ 905 1 0 "930ff5e0_829d_43e1_a9b1df34fb80e70a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_VolumeUpdateSequence); // }} "" // {{{ 906 1 0 "f03bd0ec_a2af_478f_998da838e441a78c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(seq_VolumeUpdateSequence, str_LabID, str_PosID); // }} "" // {{ 907 1 0 "77769afd_4c9f_40ec_b5a2bac8e6475167" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_VolumeUpdateSequence.SetCurrentPosition(1); // }} "" // {{{ 908 1 0 "7b3b0cb8_db56_457f_97c9a842731cea09" "{C1F3C015-47B3-4514-9407-AC2E65043419}" VectorDb_Labware::LoadLabware(ML_STAR, str_LabID, str_PosID); // }} "" // {{{ 909 1 0 "62c4a0db_86b9_4d69_9959b14097a73c1e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLLabwState::SetLabwareVolume(ML_STAR, seq_VolumeUpdateSequence, flt_NewVolume); // }} "" // {{{ 910 1 0 "65f1dc4f_9b59_46fa_a50eeceb5aad5a4d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetHeightBasedOnVolume(str_ContainerConfigFile, flt_CurrentVolume, flt_CurrentHeight); // }} "" // {{ 911 1 0 "b53411f7_a83b_4a46_af492c6dc6599f57" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_DispenseHeight = flt_CurrentHeight - i_flt_SubmergeDepth; // }} "" // {{ 912 1 0 "b4758dad_e292_4e29_8cdee54653d21b3a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_DispenseHeight <= 0.0) { // }} "" // {{ 913 1 0 "8f61fd80_7f80_4a79_acddefde6d14f21e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_DispenseHeight = 2.0; // }} "" // {{ 914 1 0 "b4758dad_e292_4e29_8cdee54653d21b3a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 915 1 0 "f184dd47_5c75_4093_bc07bcb43f11817d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_DispenseHeights.AddAsLast(flt_DispenseHeight); // }} "" // {{ 916 1 0 "4781c46c_d9fb_446f_b88f94d8dd0cf43b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 917 1 0 "a52b69ed_f484_4829_930a22aadb72e694" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_DispenseHeights.AddAsLast(0.0); // }} "" // {{ 918 1 0 "4781c46c_d9fb_446f_b88f94d8dd0cf43b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 919 1 0 "14263018_92be_4c77_a87b83ff01da0394" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 920 1 0 "443ed7a8_d7ae_42da_82c8431c3aaa038c" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TempDispense.SetCurrentPosition(1); // }} "" // {{{ 921 1 0 "c3c892e0_1463_4fe8_bf6bf8484ac89fe0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Dispense Heights"), arr_DispenseHeights); // }} "" // {{ 922 1 0 "87fda7d3_3a1d_4198_a6720d5182a05b8c" "ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2("87fda7d3_3a1d_4198_a6720d5182a05b8c"); // Dispense str_DispReturn = arrRetValues[2]; } // }} "" // {{ 923 1 0 "1bcd2467_2b43_4bac_946211df96f2b955" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ret_strAllPipettingReturn != "") { // }} "" // {{{ 924 1 0 "39db1fe2_a6e2_4524_a4f9677dcaeaa1ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ret_strAllPipettingReturn = StrConcat2(ret_strAllPipettingReturn, Translate("*")); // }} "" // {{ 925 1 0 "1bcd2467_2b43_4bac_946211df96f2b955" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 926 1 0 "e289866a_8f3e_4232_9ecc5931912b1e29" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ret_strAllPipettingReturn = StrConcat4(ret_strAllPipettingReturn, str_AspReturn, Translate("&"), str_DispReturn); // }} "" // {{ 927 1 0 "23d311ef_1388_4e83_acba41524e5ef7b0" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 928 1 0 "e3117107_a600_4c7b_af090ef8fc0b794a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 929 1 0 "64b488a9_6d53_48e9_ab2e1092399b099d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_DispReturn = Translate(""); // }} "" // {{ 930 1 0 "e3117107_a600_4c7b_af090ef8fc0b794a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 931 1 0 "636312a3_b1c2_4044_b01faf10f22899f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_TempDispense, 1, Translate("")); // }} "" // {{{ 932 1 0 "9fbb1870_07db_4a75_a5b02da3aea6ad2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_TempDispense, 4, Translate("")); // }} "" // {{ 933 1 0 "2c42f698_dd56_4e18_a76aaa9af9a46c2f" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TempDispense.SetCurrentPosition(1); // }} "" // {{ 934 1 0 "3eb66c79_e7ba_4a69_b35c380eb33d2162" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 935 1 0 "85effdf5_aabf_4f90_9427af0769f8c9d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_ErrorReturn != "") { // }} "" // {{{ 936 1 0 "0193aa6a_d013_43e8_97dc03c354b97d5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Error Return Value: "), str_ErrorReturn, Translate("")); // }} "" // {{ 937 1 0 "4586b6c1_4d4d_4fb0_98dafbd66e010e0a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_NewChPattern = Translate(""); // }} "" // {{{ 938 1 0 "b054930a_0513_4d6b_b6a3fb3820d92bea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = StepReturn::GetNumberOfPositions(str_ErrorReturn); // }} "" // {{ 939 1 0 "c340091a_425e_4078_be6a80e0c439bdb7" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_LiquidFollowingDistance.SetSize(0); // }} "" // {{{ 940 1 0 "0aeac13b_abbe_44bc_bfaa1bc7c4db0058" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidFollowingForAllChannels(ML_STAR, arr_LiquidHeights, seq_Temp, BOOLEON::TRUE, BOOLEON::FALSE, i_flt_DispenseBackVolume, io_str_ChPattern, arr_LiquidFollowingDistance); // }} "" // {{ 941 1 0 "c8079862_f995_47be_b3f6af48b996d772" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalPositions;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 942 1 0 "cc8cffb5_b175_4729_9b61713c65f235ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Position = StepReturn::GetPositionFromNum(int_ChIndex, str_ErrorReturn); // }} "" // {{{ 943 1 0 "868b8b89_08cf_45d9_b0a39767b260333b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ReturnErrorCode = StepReturn::GetSlaveError(int_Position, str_ErrorReturn); // }} "" // {{{ 944 1 0 "0382715d_2aee_4a61_86b520ba1a6e959f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(io_str_ChPattern, int_ChIndex, int_Value); // }} "" // {{ 945 1 0 "f9602fa6_f2ff_4085_875eb98e862b0178" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{ 946 1 0 "e8048465_d918_4594_9e31bc554840a97a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ReturnErrorCode == 0) { // }} "" // {{{ 947 1 0 "93fc62bf_13f8_4d28_81f00ecc830638f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_NewChPattern = StrConcat2(str_NewChPattern, Translate("1")); // }} "" // {{ 948 1 0 "e8048465_d918_4594_9e31bc554840a97a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 949 1 0 "8bf807f1_72f9_4069_81f7767e297c86d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_NewChPattern = StrConcat2(str_NewChPattern, Translate("0")); // }} "" // {{ 950 1 0 "e8048465_d918_4594_9e31bc554840a97a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 951 1 0 "f9602fa6_f2ff_4085_875eb98e862b0178" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 952 1 0 "960a1c0e_f346_4e6d_94683fc0b22d1f5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_NewChPattern = StrConcat2(str_NewChPattern, Translate("0")); // }} "" // {{ 953 1 0 "f9602fa6_f2ff_4085_875eb98e862b0178" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 954 1 0 "c8079862_f995_47be_b3f6af48b996d772" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 955 1 0 "b421ee24_8b22_4a1d_90a4fbea8e9723bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("New Channel Pattern: "), str_NewChPattern, Translate("")); // }} "" // {{ 956 1 0 "68d734c5_c4bd_4962_8eacf7a1c90ed44f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" io_str_ChPattern = str_NewChPattern; // }} "" // {{ 957 1 0 "85effdf5_aabf_4f90_9427af0769f8c9d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 958 1 0 "3eb66c79_e7ba_4a69_b35c380eb33d2162" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 959 1 0 "abe9b0c1_bcc9_4451_955b6c603e199a55" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 960 1 0 "9931d8c2_8eeb_4957_9b3235191ec556a7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::TRUE) { // }} "" // {{ 961 1 0 "149edfe2_6ff5_47c5_9e385748d93a33e4" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_SecondPhaseHeights.SetSize(0); // }} "" // {{ 962 1 0 "193b59f9_f738_4aed_bfbdfad4d91ef0c7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < G_FW_PIP_COM_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 963 1 0 "a1f48321_2253_4fde_a0a197f8ef874701" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_SecondPhaseHeights.AddAsLast(25.0); // }} "" // {{ 964 1 0 "193b59f9_f738_4aed_bfbdfad4d91ef0c7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 965 1 0 "9931d8c2_8eeb_4957_9b3235191ec556a7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 966 1 0 "6be318c8_12a3_45e5_8a73f5243cfc5d82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Volumes Transferred"), arr_VolumesAspirated); // }} "" // {{{ 967 1 0 "c4f29127_fc92_4614_9e5cfed670dd45ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Second Phase Heights"), arr_SecondPhaseHeights); // }} "" // {{{ 968 1 0 "21402f9f_7016_4e8d_b76093680dd4d781" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _SetHeightInfoToLabware(ML_STAR, BOOLEON::FALSE, seq_Temp, arr_SecondPhaseHeights); // }} "" // {{ 969 1 0 "347af0ad_bd88_42f2_a60ec6223e82f2c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_ResetChPattern == BOOLEON::TRUE) { // }} "" // {{ 970 1 0 "987d51c7_b5cd_4290_8d9dbe4c933b6ef0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" io_str_ChPattern = str_StartingChannelPattern; // }} "" // {{ 971 1 0 "347af0ad_bd88_42f2_a60ec6223e82f2c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 972 1 0 "7c55a578_d9c1_4f03_a3fd587b1d307a48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 973 1 0 "368d56b3_295b_44c7_9a304e3a8a611907" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 974 1 0 "7c55a578_d9c1_4f03_a3fd587b1d307a48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 975 1 0 "70750af5_e01f_4962_893263a7ca761726" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_strAllPipettingReturn); // }} "" // {{{ 5 "PIP_PhaseAspiration" "End" } // }} "" // {{{ 5 "_SetHeightInfoToLabware" "Begin" private function _SetHeightInfoToLabware( device & ML_STAR, variable i_blnUpperHeights, sequence i_seqPositions, variable & i_arrHeights[] ) void { // }} "" private variable i; private variable int_TotalPositions; private variable bln_LabwareValid; private variable str_PropertyReplace; private variable str_Property; private variable str_LabID; private variable flt_Height; private variable str_PosID; private variable int_TotalArray; // {{ 5 "_SetHeightInfoToLabware" "InitLocals" // }} "" // {{{ 2676 1 0 "96157d18_9762_457d_8b4b4b12fcbecbd1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(i_seqPositions); // }} "" // {{ 2677 1 0 "18c0ea00_c375_4ab5_a4ced5d748bc2f79" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalArray=i_arrHeights.GetSize(); // }} "" // {{ 2678 1 0 "6730ebe6_3a45_4e16_8faa1774f018e519" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_blnUpperHeights == BOOLEON::TRUE) { // }} "" // {{ 2679 1 0 "12b9eb13_128d_491d_8b5ac09d99c8196a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Property = Translate("HEIGHT_TOP_#"); // }} "" // {{ 2680 1 0 "6730ebe6_3a45_4e16_8faa1774f018e519" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2681 1 0 "2fd08897_d79a_46f9_a5fde59b4e5cdafd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Property = Translate("HEIGHT_BOTTOM_#"); // }} "" // {{ 2682 1 0 "6730ebe6_3a45_4e16_8faa1774f018e519" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2683 1 0 "32bc83df_890f_4105_bdf90a8520893608" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalPositions;) { i = i + 1; // }} "" // {{ 2684 1 0 "e4c233bd_6182_4d85_86a71e7f5e5f082b" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seqPositions.SetCurrentPosition(i); // }} "" // {{ 2685 1 0 "ec820b22_08e0_43a1_bfa5fef698541f30" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i > int_TotalArray) { // }} "" // {{ 2686 1 0 "68b79fa7_753f_4df7_8915ca4237ba42a4" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2687 1 0 "ec820b22_08e0_43a1_bfa5fef698541f30" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2688 1 0 "f45acbc5_5da9_46a4_963565112649e5b2" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_Height=i_arrHeights.GetAt(i-1); // }} "" // {{{ 2689 1 0 "bdab040e_8b5b_4edc_9d62641a54ffeabf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seqPositions); // }} "" // {{{ 2690 1 0 "64d1b4a2_5922_48b4_8630a3cf18c751f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_LabwareValid = DevIsValidLabwareForCurrentDeckLayout(ML_STAR, str_LabID); // }} "" // {{ 2691 1 0 "8fc73a4a_6e4f_489b_8f62deb032dceb4c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_LabwareValid == BOOLEON::TRUE) { // }} "" // {{{ 2692 1 0 "fe17facb_803f_4200_8f0fa25e01c9dd10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seqPositions); // }} "" // {{ 2693 1 0 "dd894d52_6292_407b_a5ad697fcffb2105" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_PropertyReplace = str_Property; // }} "" // {{{ 2694 1 0 "95fc12be_96f2_4d4d_8592532483f9ab8e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(str_PropertyReplace, Translate("#"), str_PosID); // }} "" // {{{ 2695 1 0 "f743bb6e_873d_49df_9bd704159074a631" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _SetPropertiesForLabwareID(ML_STAR, str_LabID, str_PropertyReplace, flt_Height); // }} "" // {{ 2696 1 0 "8fc73a4a_6e4f_489b_8f62deb032dceb4c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2697 1 0 "32bc83df_890f_4105_bdf90a8520893608" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "_SetHeightInfoToLabware" "End" } // }} "" // {{{ 5 "_SetPropertiesForLabwareID" "Begin" private function _SetPropertiesForLabwareID( device & Instrument, variable i_strLabwareID, variable i_strPropertyKey, variable i_strProperyValue ) void { // }} "" private variable strLabwareID; private variable strProperyValue; private variable strPropertyKey; // {{ 5 "_SetPropertiesForLabwareID" "InitLocals" // }} "" // {{{ 2699 1 0 "5e5d9144_103a_4ba1_8e9c5eed0c87bae8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strPropertyKey = StrConcat2(i_strPropertyKey, Translate("")); // }} "" // {{{ 2700 1 0 "27258292_4975_47d2_b92d870876021797" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strProperyValue = StrConcat2(i_strProperyValue, Translate("")); // }} "" // {{{ 2701 1 0 "c39d99d8_e738_4275_8fddf3205018fa27" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strLabwareID = StrConcat2(i_strLabwareID, Translate("")); // }} "" Trace("Lab ID: ",i_strLabwareID," Property Key: ",strPropertyKey," Property Value: ",strProperyValue); // {{ 2703 1 0 "f9024c49_af60_42fd_8dca2f6fde4350e1" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" { object objDecklayout; variable str_PropertyValue; str_PropertyValue = strProperyValue; //variable strFunctionName(""); //strFunctionName = ExtractFunctionName(GetFunctionName()); // check input variables //if (!CheckString(i_strPropertyValue, "i_strPropertyValue", strFunctionName)) return(hslFalse); //if (!CheckString(i_strPropertyKey, "i_strPropertyKey", strFunctionName)) return(hslFalse); //if (!CheckString(i_strLabwareID, "i_strLabwareID", strFunctionName)) return(hslFalse); //StatusTrace(CMD_START, TRACE_LEVEL_DEBUG, "i_strLabwareID = " + i_strLabwareID + ", i_strPropertyKey = " + i_strPropertyKey + ", i_strPropertyValue = " + i_strPropertyValue, strFunctionName); //EnterSemaphore(); objDecklayout = Instrument.GetDeckLayoutObject(); //LeaveSemaphore(); if (!objDecklayout.IsNull()) { object objLabware; onerror goto HandleLabwareError; objLabware = objDecklayout.Labware(i_strLabwareID); onerror goto 0; err.Clear(); if (!objLabware.IsNull()) { object objEditLabware5; object objPropertyParameters; objLabware.GetObject("IEditLabware5", objEditLabware5); // prepare a new Pars object for the labware properties objPropertyParameters.CreateObject("HXPARAMSLib.HxPars"); objPropertyParameters.Add(str_PropertyValue, strPropertyKey); // check data from the decklayout objEditLabware5.SetLabwrProperties(objPropertyParameters); str_PropertyValue = objPropertyParameters.Item1(strPropertyKey); objPropertyParameters.ReleaseObject(); objEditLabware5.ReleaseObject(); objDecklayout.ReleaseObject(); objLabware.ReleaseObject(); //StatusTrace(CMD_COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName); //return(hslTrue); } else { //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find labware.", strFunctionName); objDecklayout.ReleaseObject(); //return(hslFalse); } } else { //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Could not find decklayout.", strFunctionName); //return(hslFalse); } // runtime error handling HandleLabwareError : { variable errorID; errorID=err.GetId(); err.Clear(); if (errorID==-1574764487) { //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "LabwareID is unknown.", strFunctionName); //return(hslFalse); } else { //StatusTrace(CMD_ERRCOMPLETE, TRACE_LEVEL_RELEASE, "Unknown error occured.", strFunctionName); //return(hslFalse); } } } // {{{ 5 "_SetPropertiesForLabwareID" "End" } // }} "" // {{{ 5 "_GetHeightInfoFromLabware" "Begin" private function _GetHeightInfoFromLabware( device & ML_STAR, variable i_blnUpperHeights, sequence i_seqPositions, variable & o_arrHeights[] ) void { // }} "" private variable bln_LabwareValid; private variable str_PropertyReplace; private variable i; private variable str_Property; private variable str_LabID; private variable str_PosID; private variable int_TotalPositions; private variable flt_Value; private variable str_Value; private variable int_ChIndex; // {{ 5 "_GetHeightInfoFromLabware" "InitLocals" o_arrHeights.SetSize( 0); // }} "" // {{{ 2114 1 0 "4e7cb626_c627_4d63_aa0c70ff32262eb6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(i_seqPositions); // }} "" // {{ 2115 1 0 "baac2398_481d_4ec7_b09ba3255d6b2f83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_blnUpperHeights == BOOLEON::TRUE) { // }} "" // {{ 2116 1 0 "000e7edf_b98a_47eb_a581b364d14f81d6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Property = Translate("HEIGHT_TOP_#"); // }} "" // {{ 2117 1 0 "baac2398_481d_4ec7_b09ba3255d6b2f83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2118 1 0 "c2c08542_9951_47ea_805d80481a554813" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_Property = Translate("HEIGHT_BOTTOM_#"); // }} "" // {{ 2119 1 0 "baac2398_481d_4ec7_b09ba3255d6b2f83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2120 1 0 "932950ad_7964_47d9_a1d2b2902bd3373c" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < G_FW_PIP_COM_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 2121 1 0 "a330e42a_2ad4_4168_9fe08917f9059b05" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrHeights.AddAsLast(0.0); // }} "" // {{ 2122 1 0 "932950ad_7964_47d9_a1d2b2902bd3373c" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2123 1 0 "27968d7f_1a7f_442f_9ffa3a2e0d70329a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalPositions;) { i = i + 1; // }} "" // {{ 2124 1 0 "f01fbbf4_0838_4464_b97b73c464d0e507" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seqPositions.SetCurrentPosition(i); // }} "" // {{ 2125 1 0 "72ad901e_e774_49c3_a2e037a14e00dcd6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i > G_FW_PIP_COM_TotalChannels) { // }} "" // {{ 2126 1 0 "39e8d3ae_4708_4b18_a6df7afc9fb0faf1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2127 1 0 "72ad901e_e774_49c3_a2e037a14e00dcd6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2128 1 0 "1e02c247_5ea8_4fcf_ab4ad06936af7cc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seqPositions); // }} "" // {{{ 2129 1 0 "93266117_9854_4ddd_b34e8923022d44f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_LabwareValid = DevIsValidLabwareForCurrentDeckLayout(ML_STAR, str_LabID); // }} "" // {{ 2130 1 0 "a716dc95_100c_4a4a_a9ac7e7f23625251" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_LabwareValid == BOOLEON::TRUE) { // }} "" // {{{ 2131 1 0 "bb844ef9_8677_4374_b7e645ae9a2a5d61" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seqPositions); // }} "" // {{ 2132 1 0 "8c94379d_0c33_4cad_943517033f2814d1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_PropertyReplace = str_Property; // }} "" // {{{ 2133 1 0 "46cf5411_631b_4d2c_bf2fd0c3293c8bb3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(str_PropertyReplace, Translate("#"), str_PosID); // }} "" // {{{ 2134 1 0 "d151e49a_6d95_40ac_94aca352cda8eb0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = DevGetLabwareData(ML_STAR, str_LabID, str_PropertyReplace); // }} "" // {{{ 2135 1 0 "4e151042_2927_4078_839231288518f889" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Value = StrFVal(str_Value); // }} "" // {{ 2136 1 0 "5c123636_360a_4e78_be59592fa1c58aea" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrHeights.SetAt(i-1, flt_Value); // }} "" // {{ 2137 1 0 "a716dc95_100c_4a4a_a9ac7e7f23625251" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2138 1 0 "27968d7f_1a7f_442f_9ffa3a2e0d70329a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "_GetHeightInfoFromLabware" "End" } // }} "" // {{{ 5 "PIP_PhaseAspirationRemainder" "Begin" function PIP_PhaseAspirationRemainder( device & ML_STAR, variable i_str_ChPattern, variable i_str_LiquidClass, sequence i_seq_AspirationPosition, sequence i_seq_DispensePosition, variable i_bln_UseCLLD, variable i_flt_SafeHeightAbovePhase, variable i_flt_AdditionalAspirationVolume, variable i_flt_SubmergeHeight ) variable { // }} "" private variable str_PosIDDisp; private variable bln_SimulationMode; private variable flt_VolumeToAspirate; private variable ret_strAllPipettingReturn; private variable int_PLLD; private variable flt_ZBottomDispesne; private variable bln_TipsLoaded; private variable bln_ProbabilityPassed; private variable str_LabIDDisp; private variable flt_ContainerDepth; private variable flt_NotUsed; private variable flt_ZClearanceHeightDispense; private variable int_TotalActiveChannels; private variable flt_ZBottom; private variable flt_ZMaximumHeight; private variable flt_ZMinimumHeightDispense; private variable str_ContainerConfig; private variable flt_TopHeightContainer; private variable flt_BottomHeight; private variable flt_TopHeight; private variable _strFunctionName; private variable str_LabID; private variable flt_AspirationHeight; private variable flt_BottomHeightContainer; private variable flt_ZClearanceHeight; private variable flt_ZMaximumHeightDispense; private variable flt_TopVolume; private variable flt_BottomVolume; private variable str_AspReturn; private variable str_DispReturn; private variable int_TotalChannels; private variable str_ContainerConfigDisp; private variable flt_ZMinimumHeight; private variable str_PosID; private variable flt_LiquidFollowingDistance; private variable int_CLLD; private variable str_ReturnChPattern; private variable flt_DispenseHeight; private variable int_Value; private variable flt_MaxTipVolume; private variable int_ChIndex; private sequence seq_Temp; private sequence seq_TempDispense; private variable arr_DispenseHeights[]; private variable arr_XCoordDispense[]; private variable arr_LiquidFollowingDistancesDisp[]; private variable arr_MaxVolumes[]; private variable arr_YCoordDispense[]; private variable arr_LiquidFollowingDistances[]; private variable arr_LiquidLevelHeights[]; private variable arr_AspirationVolumes[]; private variable arr_YCoord[]; private variable arr_XCoord[]; private variable arr_AspirationHeights[]; private variable arr_TopPhaseHeight[]; private variable arr_SecondPhaseHeight[]; private variable flt_CurrentVolume; private variable flt_VolumeAspirated; private variable str_CurrentDispChPattern; private variable flt_NewVolume; private variable int_DispenseCount; private variable int_DispenseLoops; private variable flt_CurrentHeight; private sequence seq_VolumeUpdateSequence; private variable arr_CurrentDestVolumes[]; private variable arr_DispenseChPatterns[]; // {{ 5 "PIP_PhaseAspirationRemainder" "InitLocals" // }} "" // {{ 998 1 0 "39b578e4_39d7_4be6_884361eda56d8e42" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 999 1 0 "e1a59900_4441_46e7_9e9eb9c452b7f1a8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 1001 1 0 "6138e083_7880_40ec_be5cd4e80b6f804b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 1002 1 0 "39b578e4_39d7_4be6_884361eda56d8e42" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1003 1 0 "02880c64_006f_4cd4_b9ebc08909516f71" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_strAllPipettingReturn = Translate(""); // }} "" // {{ 1004 1 0 "f962762a_7d2b_486a_b6a975523dc11a75" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1005 1 0 "73f50e39_45de_4061_86b4c6444d81b226" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _InitLiquidClassStorage(); // }} "" // {{{ 1006 1 0 "cf5fc30a_728c_44c8_8eecda5af93ec029" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_SimulationMode = Util::GetSimulationMode(); // }} "" // {{ 1007 1 0 "2cffde13_6bd0_49e0_a42c140ec46e2e7e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1008 1 0 "71da4bbf_de6f_45ce_8344334171ef2837" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::GetChannelNumber1mL(ML_STAR, int_TotalChannels); // }} "" // {{ 1009 1 0 "a18d4bb6_ce4a_4d13_a5274f637a29d8d5" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_TopPhaseHeight.SetSize(0); // }} "" // {{ 1010 1 0 "35cda396_5701_4610_b3ecf990a645dfc3" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_SecondPhaseHeight.SetSize(0); // }} "" // {{ 1011 1 0 "c680d009_bbf9_4a55_9ffcbab7a661606e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ReturnChPattern = Translate(""); // }} "" // {{{ 1012 1 0 "c6b3307c_6e8c_40b9_bd9f72d195495bce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ReturnChPattern = StrFillRight(str_ReturnChPattern, Translate("0"), int_TotalChannels); // }} "" // {{ 1013 1 0 "e28d4137_66a8_49cc_8c027503f2f8e344" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1014 1 0 "3f54f5a2_bcff_493a_b2df8c5a89921628" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChPattern = StrConcat2(i_str_ChPattern, Translate("")); // }} "" // {{{ 1015 1 0 "9aae7f24_fa62_4a89_8c03d63b1ad6470a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChPattern = StrFillRight(i_str_ChPattern, Translate("0"), int_TotalChannels); // }} "" // {{{ 1016 1 0 "7584c9ee_235c_4fd4_a19db29a0812b50f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalActiveChannels = StrReplace(i_str_ChPattern, Translate("1"), Translate("1")); // }} "" // {{ 1017 1 0 "5ec671f4_f065_42f0_99670bcf2789803a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalActiveChannels == 0) { // }} "" // {{ 1018 1 0 "4bceac6f_3ac7_4895_b2070eb64f054a23" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("CHANNEL PATTERN CONTAINS NO ACTIVE CHANNELS!")); // }} "" // {{ 1019 1 0 "c66809e5_c47e_48a5_8c5fba09e5593501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1020 1 0 "e9548a7c_624e_4696_af0404f8ec8caf2d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 1021 1 0 "c66809e5_c47e_48a5_8c5fba09e5593501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1022 1 0 "93b2fb80_2e89_4876_b416741223a7ba58" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_strAllPipettingReturn); // }} "" // {{ 1023 1 0 "5ec671f4_f065_42f0_99670bcf2789803a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1024 1 0 "b0501d19_2a49_4cd5_81a3ef7dda4be406" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1025 1 0 "a456c338_56f3_4a97_ab5f107d5a305c5e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextSequenceSet(i_seq_AspirationPosition, i_str_ChPattern, seq_Temp); // }} "" // {{ 1026 1 0 "d52d296e_3270_4f21_bd5fc83f1d57a254" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1027 1 0 "652e9178_e019_448a_8c9a8e47804128cd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_Temp, i_str_ChPattern); // }} "" // {{ 1028 1 0 "2c2c0185_2140_4b4e_b69c8a89977738ef" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ProbabilityPassed == BOOLEON::FALSE) { // }} "" // {{ 1029 1 0 "b79b6bed_2393_4ce4_a403416260d19b23" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("ASPIRATE SEQUENCE IS NOT SORTED CORRECTLY FOR THE USE OF THIS FUNCITON!\nSEQUENCE MUST BE SUCH THAT THE CHANNEL PATTERN USED CAN BE DONE AT ONE TIME WITHOUT NEEDING TO MOVE CHANNELS OUT OF THE WAY!")); // }} "" // {{ 1030 1 0 "c2505aed_1bbf_4071_a142d76ade3524aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1031 1 0 "91c682eb_437b_4276_a5b8379a5b0ea959" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 1032 1 0 "c2505aed_1bbf_4071_a142d76ade3524aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1033 1 0 "703d5e46_0e53_4b04_9e13642ade6fde8a" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_strAllPipettingReturn); // }} "" // {{ 1034 1 0 "2c2c0185_2140_4b4e_b69c8a89977738ef" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1035 1 0 "d860e51a_6e02_4335_9fa87ce95090a4d2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1036 1 0 "7fdc14ad_2555_462c_9c3ac5beebf30944" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetNextSequenceSet(i_seq_DispensePosition, i_str_ChPattern, seq_TempDispense); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 1037 1 0 "a794a664_a7f4_455a_962642928fd31f83" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1038 1 0 "6c7a9eb2_21e4_40d2_8ccad8902240ff40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_ProbabilityPassed = _ProbabilityCheck(ML_STAR, seq_TempDispense, i_str_ChPattern); // }} "" // {{ 1039 1 0 "a1bce8fa_69d7_42bb_84a2ca7c2756e8ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ProbabilityPassed == BOOLEON::FALSE) { // }} "" // {{ 1040 1 0 "1df5af96_1242_432b_b38db8bfd3ac2534" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("DISPENSE SEQUENCE IS NOT SORTED CORRECTLY FOR THE USE OF THIS FUNCITON!\nSEQUENCE MUST BE SUCH THAT THE CHANNEL PATTERN USED CAN BE DONE AT ONE TIME WITHOUT NEEDING TO MOVE CHANNELS OUT OF THE WAY!")); // }} "" // {{ 1041 1 0 "8cf4deea_1bf7_40e2_a4f3434f20713afb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1042 1 0 "69589096_876a_4b3a_9097f0bcfd87d7a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 1043 1 0 "8cf4deea_1bf7_40e2_a4f3434f20713afb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1044 1 0 "ca361824_6573_4fb6_88b97f3e7fb4af97" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_strAllPipettingReturn); // }} "" // {{ 1045 1 0 "a1bce8fa_69d7_42bb_84a2ca7c2756e8ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1046 1 0 "3f0d2eeb_179d_49b2_83e0479d32a63c38" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1047 1 0 "c0cc9858_b72d_4b12_a4ba09009ab9a3f5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_TipsLoaded = _EnsureTipsAreLoaded(ML_STAR, i_str_ChPattern); // }} "" // {{ 1048 1 0 "cd5c6fe7_7c20_4abb_a006627c28880453" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_TipsLoaded == BOOLEON::FALSE) { // }} "" // {{ 1049 1 0 "5068af2c_4574_4cfa_8beb4eca4b1eac29" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("TIPS PICKED UP DO NOT MATCH THE CHANNEL PATTERN!")); // }} "" // {{ 1050 1 0 "7e7cb150_a73d_4394_888c57a16d948f3d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1051 1 0 "84271d12_87c6_4c6b_92b02ee6ea3af516" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::FALSE); // }} "" // {{ 1052 1 0 "7e7cb150_a73d_4394_888c57a16d948f3d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1053 1 0 "90387a5b_36bd_441f_9ada86b79d847a80" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_strAllPipettingReturn); // }} "" // {{ 1054 1 0 "cd5c6fe7_7c20_4abb_a006627c28880453" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1055 1 0 "bd1fcfc1_e4ad_4c1b_8dca48695bf135f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetHeightInfoFromLabware(ML_STAR, BOOLEON::FALSE, seq_Temp, arr_SecondPhaseHeight); // }} "" // {{{ 1056 1 0 "536eb437_8fee_40ad_9eaeb8811e1d0716" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetHeightInfoFromLabware(ML_STAR, BOOLEON::TRUE, seq_Temp, arr_TopPhaseHeight); // }} "" // {{ 1057 1 0 "80bb5a69_762f_444b_8184cde1500e05a9" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1058 1 0 "760f0f07_9a8a_45a0_ab749ee23a48c0f1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLabwareCoordinates(ML_STAR, seq_Temp, i_str_ChPattern, arr_XCoord, arr_YCoord, flt_ZBottom, flt_ZMinimumHeight, flt_ZMaximumHeight, flt_ZClearanceHeight); // }} "" // {{{ 1059 1 0 "fbe75e67_d32a_4c40_ab7a3c3d0388d5f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLabwareCoordinates(ML_STAR, seq_TempDispense, i_str_ChPattern, arr_XCoordDispense, arr_YCoordDispense, flt_ZBottomDispesne, flt_ZMinimumHeightDispense, flt_ZMaximumHeightDispense, flt_ZClearanceHeightDispense); // }} "" // {{ 1060 1 0 "d5386fbf_4693_4fdc_96ef3d40f0afb277" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ContainerDepth = flt_ZMaximumHeight - flt_ZMinimumHeight; // }} "" // {{ 1061 1 0 "619e28cf_f5e5_4334_b165d207315482ec" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1062 1 0 "56ce4873_9396_4630_a64178a99aa06ab5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_bln_UseCLLD == BOOLEON::TRUE) { // }} "" // {{ 1063 1 0 "7d52706e_0eab_4fe6_be4448c36ddc38d0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_CLLD = 1; // }} "" // {{ 1064 1 0 "ec92d067_3040_4c2f_a085629ad0e962e7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PLLD = 0; // }} "" // {{ 1065 1 0 "56ce4873_9396_4630_a64178a99aa06ab5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1066 1 0 "548ab735_ec75_4739_9ba4b92c54559c9d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_CLLD = 0; // }} "" // {{ 1067 1 0 "3e7bf18f_2fc8_48ef_af4f6f90c292b74d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_PLLD = 1; // }} "" // {{ 1068 1 0 "56ce4873_9396_4630_a64178a99aa06ab5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1069 1 0 "fa0976f3_8309_4bd9_a838a2e511bb1783" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_MaxVolumes.SetSize(0); // }} "" // {{ 1070 1 0 "b0d6f5ad_a681_4b28_8516f779a42c7489" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 1071 1 0 "319af6de_5342_4542_a2538f7053aa7090" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(i_str_ChPattern, int_ChIndex, int_Value); // }} "" // {{ 1072 1 0 "226e2895_ffac_4848_b7c54255f7f78653" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{{ 1073 1 0 "7c6cb074_3540_4251_a90620b247d23410" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::Get_Tip_Volume_1mL(ML_STAR, int_ChIndex, flt_MaxTipVolume, flt_NotUsed); // }} "" // {{ 1074 1 0 "60f0edbc_e793_4745_aadb876f9f137df1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_MaxVolumes.AddAsLast(flt_MaxTipVolume); // }} "" // {{ 1075 1 0 "226e2895_ffac_4848_b7c54255f7f78653" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1076 1 0 "d3bee796_8c3b_4b8d_b9bd86f7c2f42f75" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_MaxVolumes.AddAsLast(0.0); // }} "" // {{ 1077 1 0 "226e2895_ffac_4848_b7c54255f7f78653" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1078 1 0 "b0d6f5ad_a681_4b28_8516f779a42c7489" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1079 1 0 "13b47da9_fe26_4e04_a3ed9ebb3f90dc3d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1080 1 0 "07375292_9a47_4145_a625bf2d7245670a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FIRMWARE_PIPETTING_COMMANDS::PIPFindLiquidLevel(ML_STAR, i_str_ChPattern, arr_XCoord, arr_YCoord, 245.0, flt_ZMaximumHeight, flt_ZClearanceHeight, flt_ZMinimumHeight, i_bln_UseCLLD, arr_LiquidLevelHeights); // }} "" // {{ 1081 1 0 "8ef65cfe_f26f_47c5_ae357b27c0030cae" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1082 1 0 "9ba11ae3_265e_4106_8f96476cf1005713" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidClassParams(i_str_LiquidClass, BOOLEON::TRUE, T_PIP_TOOLS_ASP_FLOW_RATE, T_PIP_TOOLS_ASP_MIX_FLOW_RATE, T_PIP_TOOLS_ASP_AIR_TRANSPORT, T_PIP_TOOLS_ASP_BLOWOUT, T_PIP_TOOLS_ASP_SWAP, T_PIP_TOOLS_ASP_SETTLING, T_PIP_TOOLS_ASP_OVERASPIRATE, T_PIP_TOOLS_ASP_CLOT_RETRACT, flt_NotUsed, flt_NotUsed, T_PIP_TOOLS_MAX_VOLUME, T_PIP_TOOLS_DISPENSE_MODE, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y); // }} "" // {{{ 1083 1 0 "2dfbafcd_c28d_4171_92aa589d15d5d7a6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetLiquidClassParams(i_str_LiquidClass, BOOLEON::FALSE, T_PIP_TOOLS_DISP_FLOW_RATE, T_PIP_TOOLS_DISP_MIX_FLOW_RATE, T_PIP_TOOLS_DISP_AIR_TRANSPORT, T_PIP_TOOLS_DISP_BLOWOUT, T_PIP_TOOLS_DISP_SWAP, T_PIP_TOOLS_DISP_SETTLING, flt_NotUsed, flt_NotUsed, T_PIP_TOOLS_DISP_STOP_FLOW, T_PIP_TOOLS_DISP_STOP_BACK, T_PIP_TOOLS_MAX_VOLUME, T_PIP_TOOLS_DISPENSE_MODE, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y); // }} "" // {{ 1084 1 0 "b43824eb_d62a_4e20_aa73ff7136f899bf" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1085 1 0 "5e2ed3f3_ecae_49a7_8c23b475c8da21ed" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_AspirationVolumes.SetSize(0); // }} "" // {{ 1086 1 0 "4d06e0c0_2c97_4e54_8a4b0764b1827e5e" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_LiquidFollowingDistances.SetSize(0); // }} "" // {{ 1087 1 0 "e0ec6d06_77a6_4776_828c5c956c11eddd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_DispenseHeights.SetSize(0); // }} "" // {{ 1088 1 0 "402c32a6_be16_4ee6_a0df60838392eee8" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_LiquidFollowingDistancesDisp.SetSize(0); // }} "" // {{ 1089 1 0 "1ea9f94d_2fd2_47a6_a8348367c141f387" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_AspirationHeights.SetSize(0); // }} "" // {{ 1090 1 0 "812ec586_5dbb_4427_902078f4408f567d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < int_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 1091 1 0 "c5018422_a1f9_404a_b9581c4f4b70159c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(i_str_ChPattern, int_ChIndex, int_Value); // }} "" // {{ 1092 1 0 "f1ef507b_813f_4b8d_ab71e6e024ff7e2c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{ 1093 1 0 "a2fca254_6346_44ad_bdf604bcb481c11a" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Temp.SetCurrentPosition(int_ChIndex); // }} "" // {{ 1094 1 0 "448c3bc9_dd51_4747_b4ae317836cf2dcb" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TempDispense.SetCurrentPosition(int_ChIndex); // }} "" // {{{ 1095 1 0 "1f9f999f_a9c7_4e1e_a435f7af1421e085" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_Temp); // }} "" // {{{ 1096 1 0 "36282668_0eea_4b95_84be1dd84dc45aec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(seq_Temp); // }} "" // {{{ 1097 1 0 "6562c884_cfde_4cb4_85a55bdabced0e6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabIDDisp = SeqGetLabwareId(seq_TempDispense); // }} "" // {{{ 1098 1 0 "fd772bad_5c14_4e7d_a01b9dd922668832" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosIDDisp = SeqGetPositionId(seq_TempDispense); // }} "" // {{{ 1099 1 0 "4ba6a28f_4b89_4ed6_ab43c8950e4fff76" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_LabID, str_PosID, str_ContainerConfig); // }} "" // {{{ 1100 1 0 "19983a84_9e69_4905_a2ce7f54132c4bc1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetContainerConfigurationFile(ML_STAR, str_LabIDDisp, str_PosIDDisp, str_ContainerConfigDisp); // }} "" // {{ 1101 1 0 "e4f27577_91fa_4dda_b9f7a9681a40bf64" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_TopHeight=arr_LiquidLevelHeights.GetAt(int_ChIndex-1); // }} "" // {{ 1102 1 0 "cd0d03bf_6135_40b1_b0e4604757067b99" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_BottomHeightContainer=arr_SecondPhaseHeight.GetAt(int_ChIndex-1); // }} "" // {{ 1103 1 0 "1da46b70_9717_4ce7_b0e33478f89e77b5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_BottomHeightContainer = flt_BottomHeightContainer + i_flt_SafeHeightAbovePhase; // }} "" // {{ 1104 1 0 "46bc02f7_d332_45e1_85a57984b8f4d24a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_AspirationHeight = flt_BottomHeightContainer; // }} "" // {{ 1105 1 0 "850e3fd1_b77a_47e1_988d2e06848a9b36" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_TopPhaseHeight.SetAt(int_ChIndex-1, flt_AspirationHeight); // }} "" // {{ 1106 1 0 "e288b86f_f328_42e9_9900a4dbea67d7fa" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_BottomHeight = flt_BottomHeightContainer + flt_ZBottom; // }} "" // {{ 1107 1 0 "5892b01a_20b6_4861_be9e3ff4c5d111ff" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_TopHeightContainer = flt_TopHeight - flt_ZBottom; // }} "" // {{ 1108 1 0 "86289320_7e54_4ff6_bea19d384dd7c25b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (G_FW_PIP_COM_SimulationMode == BOOLEON::TRUE) { // }} "" // {{ 1109 1 0 "e0513fe2_02de_4914_95c4221f78b5a684" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_TopHeight = flt_BottomHeight + 3.0; // }} "" // {{ 1110 1 0 "8de39c59_9464_4cfa_806e5a5cdad2b2b1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_TopHeightContainer = flt_TopHeight - flt_ZBottom; // }} "" // {{ 1111 1 0 "86289320_7e54_4ff6_bea19d384dd7c25b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1112 1 0 "577674e7_82f6_4547_a28d2bb478c2f7a9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollowingDistance = flt_TopHeight - flt_BottomHeight; // }} "" // {{{ 1113 1 0 "7e9b4011_4b9c_409d_87cffbce34008684" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE12(Translate(" "), Translate("Top Height: "), flt_TopHeightContainer, Translate(" Bottom Height: "), flt_BottomHeightContainer, Translate(" Liquid Following Distance: "), flt_LiquidFollowingDistance, Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{ 1114 1 0 "e69b8e0a_dc61_4bdf_8a645673a8aea8ed" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_LiquidFollowingDistance > 0.0) { // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 1115 1 0 "3ba92ff0_4aa1_4e9e_9470701fe7077d39" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_LiquidFollowingDistance = flt_LiquidFollowingDistance + 1.0; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 1116 1 0 "e419fed7_8c68_4f61_afd76a84218a6244" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetVolumeBasedOnHeight(str_ContainerConfig, flt_TopHeightContainer, flt_TopVolume); // }} "" // {{{ 1117 1 0 "53e14b64_26a9_4376_a16a0f982f352abd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetVolumeBasedOnHeight(str_ContainerConfig, flt_BottomHeightContainer, flt_BottomVolume); // }} "" // {{ 1118 1 0 "8c8a685a_d460_429f_aabc7c603c1739dc" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeToAspirate = flt_TopVolume - flt_BottomVolume; // }} "" // {{ 1119 1 0 "4ab94a94_2747_416a_b40d3dcfd20a5d7d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeToAspirate = flt_VolumeToAspirate + i_flt_AdditionalAspirationVolume; // }} "" // {{ 1120 1 0 "939cda3e_45ad_4afc_bf9175045e85405b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_VolumeToAspirate > T_PIP_TOOLS_MAX_VOLUME) { // }} "" // {{ 1121 1 0 "98ce8b77_eb6b_41dc_92df499d1a433545" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeToAspirate = T_PIP_TOOLS_MAX_VOLUME; // }} "" // {{ 1122 1 0 "939cda3e_45ad_4afc_bf9175045e85405b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1123 1 0 "e540660d_560e_4db9_b6cf48bbcf22b96b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_VolumeToAspirate < 0.0) { // }} "" // {{ 1124 1 0 "b58c5cac_bc8f_41ce_a08f6245d81aaa90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeToAspirate = 0.0; // }} "" // {{ 1125 1 0 "e540660d_560e_4db9_b6cf48bbcf22b96b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1126 1 0 "d6b2e009_aad0_447e_9046009991e4e62e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE12(Translate(" "), Translate("Top Volume: "), flt_TopVolume, Translate(" Bottom Volume: "), flt_BottomVolume, Translate(" Aspiration Volume: "), flt_VolumeToAspirate, Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1127 1 0 "3442ac4a_c11e_47f8_893b34d90ae6087f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetCorrectedValueForVolume(flt_VolumeToAspirate, T_PIP_TOOLS_ARR_CORRECTION_X, T_PIP_TOOLS_ARR_CORRECTION_Y, flt_VolumeToAspirate); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1128 1 0 "ef398f92_202b_4532_b2e78c2236065a5b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_VolumeToAspirate > T_PIP_TOOLS_MAX_VOLUME) { // }} "" // {{ 1129 1 0 "d89376ac_323d_49ab_bd8df80e6b52b46c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_VolumeToAspirate = T_PIP_TOOLS_MAX_VOLUME; // }} "" // {{ 1130 1 0 "ef398f92_202b_4532_b2e78c2236065a5b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1131 1 0 "8bfcfa92_c2d1_4720_841599cf70656764" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_AspirationVolumes.AddAsLast(flt_VolumeToAspirate); // }} "" // {{ 1132 1 0 "e69b8e0a_dc61_4bdf_8a645673a8aea8ed" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1133 1 0 "35662893_25b8_4217_ad84c8dd16f81407" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_AspirationVolumes.AddAsLast(0.0); // }} "" // {{ 1134 1 0 "e69b8e0a_dc61_4bdf_8a645673a8aea8ed" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1135 1 0 "4f0b47a1_8ae9_4e00_a5a9e373646482b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_BottomHeightContainer < 0.0) { // }} "" // {{ 1136 1 0 "3d67e97f_767f_4b34_8a413cfa5993a296" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_BottomHeightContainer = 0.0; // }} "" // {{ 1137 1 0 "4f0b47a1_8ae9_4e00_a5a9e373646482b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1138 1 0 "0d01424c_ac75_4ab6_8f7f3ef7895c232b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_AspirationHeights.AddAsLast(flt_BottomHeightContainer); // }} "" // {{ 1139 1 0 "f1ef507b_813f_4b8d_ab71e6e024ff7e2c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1140 1 0 "9a0e61b0_c154_4738_be9bf00b0408d39b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_AspirationVolumes.AddAsLast(0.0); // }} "" // {{ 1141 1 0 "1b0f4857_796a_43f4_91251ce563c39673" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_AspirationHeights.AddAsLast(0.0); // }} "" // {{ 1142 1 0 "f1ef507b_813f_4b8d_ab71e6e024ff7e2c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1143 1 0 "2b5bbf17_e032_44e6_9fece51aa27c3d47" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_LiquidFollowingDistances.AddAsLast(0.0); // }} "" // {{ 1144 1 0 "543eb39e_d230_43fc_aae91d22e31d1886" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_LiquidFollowingDistancesDisp.AddAsLast(0.0); // }} "" // {{ 1145 1 0 "812ec586_5dbb_4427_902078f4408f567d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1146 1 0 "24da894a_ed11_4f22_bc079c85f4f82960" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Temp.SetCurrentPosition(1); // }} "" // {{ 1147 1 0 "1706e8ae_6592_42c0_a183707c3d4eb0ce" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TempDispense.SetCurrentPosition(1); // }} "" // {{{ 1148 1 0 "66e1be32_c9d8_470c_8741c06d84ddb67d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Aspiration Volumes"), arr_AspirationVolumes); // }} "" // {{{ 1149 1 0 "ed7d3927_df1d_4944_92ac2976518cbec2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Aspiration Heights"), arr_AspirationHeights); // }} "" // {{{ 1150 1 0 "f7f3c0f9_d137_40b1_a651adb78b6e8346" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 1, Translate("")); // }} "" // {{ 1151 1 0 "e95f6a40_4967_4e15_8d06a6ea257efe3b" "ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2("e95f6a40_4967_4e15_8d06a6ea257efe3b"); // Aspirate str_AspReturn = arrRetValues[2]; } // }} "" // {{{ 1152 1 0 "0b0f7bf7_1f43_46ae_915fedce9dc7401f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_Temp, 4, Translate("")); // }} "" // {{{ 1153 1 0 "613d575f_3d42_41c1_b96b00801eba7bac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_TempDispense, 1, Translate("")); // }} "" // {{{ 1154 1 0 "97851070_26c7_48e7_b6c00ac355bc2b4d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetPartialChannelPatternForRepeatingPositions(ML_STAR, i_str_ChPattern, seq_TempDispense, int_DispenseLoops, arr_DispenseChPatterns); // }} "" // {{ 1155 1 0 "48ae2c95_4f0a_476b_97e7bedddde38e5f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_DispenseCount = 0; int_DispenseCount < int_DispenseLoops;) { int_DispenseCount = int_DispenseCount + 1; // }} "" // {{{ 1156 1 0 "3f2890e1_2913_48c4_83ee706f5aaa29f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetVolumesInPositions(ML_STAR, seq_TempDispense, arr_CurrentDestVolumes); // }} "" // {{ 1157 1 0 "6c41ca03_6ed1_4b0c_be8468d961ee9418" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_DispenseHeights.SetSize(0); // }} "" // {{ 1158 1 0 "a58e905f_c9f9_4c28_902de3a823654a50" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_CurrentDispChPattern=arr_DispenseChPatterns.GetAt(int_DispenseCount-1); // }} "" // {{{ 1159 1 0 "d8665bbb_584f_4521_9545616213b27a81" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(str_CurrentDispChPattern, Translate("")); // }} "" // {{ 1160 1 0 "3155438d_2bfb_4752_a7b799d35df4d04b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < G_FW_PIP_COM_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 1161 1 0 "7c3c072f_9ba0_4a90_ac3213a77fc4b23d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(str_CurrentDispChPattern, int_ChIndex, int_Value); // }} "" // {{ 1162 1 0 "29b24462_21d2_4e11_924214c035cc2f1b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{ 1163 1 0 "c314b609_813a_4b3c_b2217e4fe489af03" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TempDispense.SetCurrentPosition(int_ChIndex); // }} "" // {{ 1164 1 0 "6f4b43ec_2c49_4c0f_8dbceb27c60ce9b1" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_CurrentVolume=arr_CurrentDestVolumes.GetAt(int_ChIndex-1); // }} "" // {{ 1165 1 0 "afa09de3_afb9_4841_9fbd60fe96b34ddd" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_VolumeAspirated=arr_AspirationVolumes.GetAt(int_ChIndex-1); // }} "" // {{ 1166 1 0 "ee0f0a26_5bfc_42ee_956e727e456b2c52" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_NewVolume = flt_CurrentVolume + flt_VolumeAspirated; // }} "" // {{{ 1167 1 0 "9f4741c1_eb2b_45de_be201a4bc7f948c4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE08(Translate(" "), Translate("Current Volume in well: "), flt_CurrentVolume, Translate(" Volume aspirated: "), flt_VolumeAspirated, Translate(" Added Volume"), flt_NewVolume, Translate("")); // }} "" // {{{ 1168 1 0 "869b05b8_dd7e_4109_b67d1423e25e42ca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_TempDispense); // }} "" // {{{ 1169 1 0 "49e46001_d2c3_433c_a138974c8c6bdfab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(seq_TempDispense); // }} "" // {{{ 1170 1 0 "f61c8fef_b332_4a6a_b567fe91be7b7ab5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_VolumeUpdateSequence); // }} "" // {{{ 1171 1 0 "0f6d6133_4b29_4d40_8261dad0aa555f4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(seq_VolumeUpdateSequence, str_LabID, str_PosID); // }} "" // {{ 1172 1 0 "c23e284f_3807_4500_be75c2f7eb31f7fd" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_VolumeUpdateSequence.SetCurrentPosition(1); // }} "" // {{{ 1173 1 0 "7eaea50f_0dcc_4dd7_a2f11cacd9cd7b28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLLabwState::SetLabwareVolume(ML_STAR, seq_VolumeUpdateSequence, flt_NewVolume); // }} "" // {{{ 1174 1 0 "54988835_c38d_43f4_95ce41ce589b75a4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetHeightBasedOnVolume(str_ContainerConfigDisp, flt_CurrentVolume, flt_CurrentHeight); // }} "" // {{ 1175 1 0 "ebc7817c_ec82_49ad_9b2228281f01dc4f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_DispenseHeight = flt_CurrentHeight - i_flt_SubmergeHeight; // }} "" // {{ 1176 1 0 "b23600cb_6887_46a0_93722e410cc46c67" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_DispenseHeight <= 0.0) { // }} "" // {{ 1177 1 0 "9abf5c37_919a_4c5b_866424bb7458b329" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_DispenseHeight = 2.0; // }} "" // {{ 1178 1 0 "b23600cb_6887_46a0_93722e410cc46c67" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1179 1 0 "ceac566f_833f_4da8_be0005be42af8092" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_DispenseHeights.AddAsLast(flt_DispenseHeight); // }} "" // {{ 1180 1 0 "29b24462_21d2_4e11_924214c035cc2f1b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1181 1 0 "73780b74_5776_4f9b_bb8e89c5b8273a55" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_DispenseHeights.AddAsLast(0.0); // }} "" // {{ 1182 1 0 "29b24462_21d2_4e11_924214c035cc2f1b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1183 1 0 "3155438d_2bfb_4752_a7b799d35df4d04b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1184 1 0 "19a0df95_85db_42d2_bac59bd65150507a" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TempDispense.SetCurrentPosition(1); // }} "" // {{{ 1185 1 0 "5ddf81a3_53dd_4140_915319c207d5caef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Dispense Heights"), arr_DispenseHeights); // }} "" // {{ 1186 1 0 "6cac4653_4169_4fed_b638d2a58446569c" "ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2("6cac4653_4169_4fed_b638d2a58446569c"); // Dispense str_DispReturn = arrRetValues[2]; } // }} "" // {{ 1187 1 0 "927121f6_67d5_43a9_b190916df04eb8e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (ret_strAllPipettingReturn != "") { // }} "" // {{{ 1188 1 0 "9d01cffa_fe85_47ad_91f2d8cbfe84149a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ret_strAllPipettingReturn = StrConcat2(ret_strAllPipettingReturn, Translate("*")); // }} "" // {{ 1189 1 0 "927121f6_67d5_43a9_b190916df04eb8e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1190 1 0 "6818edd4_94bb_455d_95507691e69bc63a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ret_strAllPipettingReturn = StrConcat4(ret_strAllPipettingReturn, str_AspReturn, Translate("&"), str_DispReturn); // }} "" // {{ 1191 1 0 "48ae2c95_4f0a_476b_97e7bedddde38e5f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1192 1 0 "8266ab9a_32ea_4e49_9d8ac320c874d307" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_TempDispense, 4, Translate("")); // }} "" // {{{ 1193 1 0 "28fe1bb7_caf2_4e20_b0782c4b769e1f46" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Top Phase Liquid Levels"), arr_TopPhaseHeight); // }} "" // {{{ 1194 1 0 "87ac8d1b_3cee_4304_9a15551ba58bf38c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _SetHeightInfoToLabware(ML_STAR, BOOLEON::TRUE, seq_Temp, arr_TopPhaseHeight); // }} "" // {{ 1195 1 0 "df30807a_ac75_41a8_9a8c8d997462a794" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1196 1 0 "70edd322_4dcd_4cb1_acd01d906fa65a4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 1197 1 0 "df30807a_ac75_41a8_9a8c8d997462a794" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1198 1 0 "b753e03d_43b0_42c2_b391458fafd03da0" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_strAllPipettingReturn); // }} "" // {{{ 5 "PIP_PhaseAspirationRemainder" "End" } // }} "" // {{{ 5 "_GetVolumesInPositions" "Begin" private function _GetVolumesInPositions( device & ML_STAR, sequence i_seqPositionsToGetVolume, variable & o_arrCurrentVolumes[] ) void { // }} "" private variable int_PosIndex; private variable int_TotalPositions; private variable int_ChIndex; private variable bln_LabwareValid; private variable str_LabID; private variable flt_Volume; private variable int_LabwareID; private variable int_DeckID; // {{ 5 "_GetVolumesInPositions" "InitLocals" o_arrCurrentVolumes.SetSize( 0); // }} "" // {{ 2545 1 0 "f90323d9_89de_40e0_af7ce986f9f62713" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrCurrentVolumes.SetSize(0); // }} "" // {{ 2546 1 0 "4136b4ca_8ae3_41f6_8249a31a87c80b36" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < G_FW_PIP_COM_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{ 2547 1 0 "048cceac_758b_4c31_b43ab2cd4c926bda" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrCurrentVolumes.AddAsLast(0.0); // }} "" // {{ 2548 1 0 "4136b4ca_8ae3_41f6_8249a31a87c80b36" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2549 1 0 "5ed97117_df04_442e_8f008b9ede52e79d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = SeqGetTotal(i_seqPositionsToGetVolume); // }} "" // {{ 2550 1 0 "4b74256d_b924_4d19_9091f31dc26ef70f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_PosIndex = 0; int_PosIndex < int_TotalPositions;) { int_PosIndex = int_PosIndex + 1; // }} "" // {{ 2551 1 0 "e981d768_a89e_4a45_8e1ae79947da03bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PosIndex > G_FW_PIP_COM_TotalChannels) { // }} "" // {{ 2552 1 0 "0f583c2f_26e0_4e95_ab5d8a02ed928276" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2553 1 0 "e981d768_a89e_4a45_8e1ae79947da03bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2554 1 0 "503d04bb_6eff_4b9d_947420b8eb72dd1e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Volume = 0.0; // }} "" // {{{ 2555 1 0 "2a565417_e237_42a7_bd8b69b5eb6b0eb3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seqPositionsToGetVolume); // }} "" // {{{ 2556 1 0 "6d062f8c_a7aa_4747_b1921cc19e882fea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_LabwareValid = DevIsValidLabwareForCurrentDeckLayout(ML_STAR, str_LabID); // }} "" // {{ 2557 1 0 "1bda88f4_a2a5_44bf_8209407ead3af5d2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_LabwareValid == BOOLEON::TRUE) { // }} "" // {{{ 2558 1 0 "724b1f06_b659_4fde_9d734cb56553175f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_DeckID = VectorDb_Deck::GetDeckID2(ML_STAR); // }} "" // {{{ 2559 1 0 "80ed6cc4_793b_418f_a0809572e6de2e76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_LabwareID = VectorDb_Labware::IsLabwareLoadedByLabwareId(int_DeckID, str_LabID); // }} "" // {{ 2560 1 0 "d3240b73_e030_4595_b543fb95d9e6e656" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_LabwareID == 0) { // }} "" // {{{ 2561 1 0 "ad712407_23b8_4d6d_839f1be77afd40d6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" VectorDb_Labware::LoadLabware(ML_STAR, str_LabID, Translate("")); // }} "" // {{ 2562 1 0 "d3240b73_e030_4595_b543fb95d9e6e656" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2563 1 0 "550b9924_2690_48d8_8b18b8d98947049a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_1548B09395E14b06998631567F25A1CB ; err.Clear(); // }} "" // {{{ 2564 1 0 "1f10e65b_ab73_45fb_8708023e99352199" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_Volume = HSLLabwState::GetLabwareVolume(ML_STAR, i_seqPositionsToGetVolume); // }} "" // {{ 2565 1 0 "550b9924_2690_48d8_8b18b8d98947049a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_1548B09395E14b06998631567F25A1CB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2566 1 0 "52aa6c27_d52d_4769_adf4b48216a63096" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_Volume = 0.0; // }} "" // {{ 2567 1 0 "550b9924_2690_48d8_8b18b8d98947049a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 2568 1 0 "1bda88f4_a2a5_44bf_8209407ead3af5d2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2569 1 0 "89628961_e0dd_44da_bd90dc629f90454d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrCurrentVolumes.SetAt(int_PosIndex-1, flt_Volume); // }} "" // {{{ 2570 1 0 "02b254c4_2b7c_4552_9e4dd08afa08349d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(i_seqPositionsToGetVolume, 1); // }} "" // {{ 2571 1 0 "4b74256d_b924_4d19_9091f31dc26ef70f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "_GetVolumesInPositions" "End" } // }} "" // {{{ 5 "_GetPartialChannelPatternForRepeatingPositions" "Begin" private function _GetPartialChannelPatternForRepeatingPositions( device & ML_STAR, variable i_strChPattern, sequence i_seqPositions, variable & o_intLoopNumber, variable & o_arrChannelPatterns[] ) void { // }} "" private variable flt_CurrentX; private variable flt_CurrentY; private variable flt_PositionA; private variable str_LabID; private variable str_CurrentChPattern; private variable flt_PositionX; private variable flt_PositionY; private variable flt_PositionZ; private variable str_PosID; private variable int_Value; private variable int_ChIndex; private variable flt_YOffsetDistance; private variable int_BackFill; private variable bln_LabwareValid; // {{ 5 "_GetPartialChannelPatternForRepeatingPositions" "InitLocals" o_intLoopNumber = 0; o_arrChannelPatterns.SetSize( 0); // }} "" // {{ 2369 1 0 "8525493e_1eb2_492e_964a9341e1282a88" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_intLoopNumber = 0; // }} "" // {{ 2370 1 0 "46ce8513_1420_4e7a_acec02dc9512cc5c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrChannelPatterns.SetSize(0); // }} "" // {{{ 2371 1 0 "025b4083_2d3e_435a_b2de73f6bf42f3e8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_strChPattern = StrFillRight(i_strChPattern, Translate("0"), G_FW_PIP_COM_TotalChannels); // }} "" // {{ 2372 1 0 "7e99c21a_d10d_4eed_94ad1951ce6137be" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentX = 0.0; // }} "" // {{ 2373 1 0 "8f3f5a26_facd_4e49_8d80a2b50a328898" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentY = 99999.9; // }} "" // {{ 2374 1 0 "e8549661_937f_4839_a0545b0744f6bb66" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_CurrentChPattern = Translate(""); // }} "" // {{ 2375 1 0 "ec608ab8_3898_4a6a_a85b6e3fb81e7fbe" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChIndex = 0; int_ChIndex < G_FW_PIP_COM_TotalChannels;) { int_ChIndex = int_ChIndex + 1; // }} "" // {{{ 2376 1 0 "a5de3155_bfae_4c65_96eecc2ebba4b213" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seqPositions); // }} "" // {{{ 2377 1 0 "6342a1a1_0a6b_42a7_8fabb59b743d0da8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(i_seqPositions); // }} "" // {{{ 2378 1 0 "2b87bcf5_d7b0_4a3c_b603ff0d357da58b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(i_seqPositions, 1); // }} "" // {{{ 2379 1 0 "89ad8ae7_00b1_41e8_9706888a9223f5c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_LabwareValid = DevIsValidLabwareForCurrentDeckLayout(ML_STAR, str_LabID); // }} "" // {{ 2380 1 0 "b3b0e993_cf76_4b31_83357c4fb7ffc752" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_LabwareValid == BOOLEON::TRUE) { // }} "" // {{{ 2381 1 0 "f7bf59b5_f4bb_4821_8b7e82d111b7ca40" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_PositionX, flt_PositionY, flt_PositionZ, flt_PositionA); // }} "" // {{{ 2382 1 0 "2df15a23_a47f_4a6f_91558f7e394e9315" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetChannelPatternValue(i_strChPattern, int_ChIndex, int_Value); // }} "" // {{ 2383 1 0 "b3b0e993_cf76_4b31_83357c4fb7ffc752" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2384 1 0 "18abe16e_0423_42e5_a85543325d98bd0c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Value = 0; // }} "" // {{ 2385 1 0 "b3b0e993_cf76_4b31_83357c4fb7ffc752" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2386 1 0 "8cd48754_8a8f_444c_87dc8b76c548e132" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentX == 0.0) { // }} "" // {{ 2387 1 0 "b4911283_9b04_42c3_a2ea46e6d9c60749" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{ 2388 1 0 "b5e10ebb_fc66_4eed_bdc7794b6b4d8cfa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentX = flt_PositionX; // }} "" // {{ 2389 1 0 "676c91cd_e185_491c_b0ec7f5235759329" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentY = flt_PositionY; // }} "" // {{ 2390 1 0 "b4911283_9b04_42c3_a2ea46e6d9c60749" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2391 1 0 "84a814f7_5e53_4ede_ae301a384ef471bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChPattern = StrConcat2(str_CurrentChPattern, int_Value); // }} "" // {{{ 2392 1 0 "45f48d9b_28ac_4fb1_978ef709b1010b62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Ch pattern Set 1: "), str_CurrentChPattern); // }} "" // {{ 2393 1 0 "8cd48754_8a8f_444c_87dc8b76c548e132" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2394 1 0 "2c5bcd9b_926d_4448_9d3d9b778c89df3c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Value == 1) { // }} "" // {{ 2395 1 0 "9a52dacd_105f_4c2c_b6a2c10e2ceda205" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_PositionX != flt_CurrentX) { // }} "" // {{{ 2396 1 0 "22844b98_a48a_4fe6_a9777d3c802116c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChPattern = StrFillRight(str_CurrentChPattern, Translate("0"), G_FW_PIP_COM_TotalChannels); // }} "" // {{ 2397 1 0 "d6e3e487_03c4_48d9_a1b39c258d13dc62" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrChannelPatterns.AddAsLast(str_CurrentChPattern); // }} "" // {{ 2398 1 0 "8ccf1b6a_bd4e_4ee0_8ca621129b442e40" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentX = flt_PositionX; // }} "" // {{ 2399 1 0 "d56cbdd3_bdc0_4272_8a2540c7808f0a24" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_CurrentChPattern = Translate(""); // }} "" // {{ 2400 1 0 "842d5431_b6e1_4ce3_858732bc60fa9562" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_BackFill = int_ChIndex - 1; // }} "" // {{ 2401 1 0 "59e2151f_71a0_417a_a4beb9b96a0b4432" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_BackFill > 0) { // }} "" // {{{ 2402 1 0 "ba88e90c_c953_48ab_bd7009963fd9d3b2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChPattern = StrFillRight(str_CurrentChPattern, Translate("0"), int_BackFill); // }} "" // {{ 2403 1 0 "59e2151f_71a0_417a_a4beb9b96a0b4432" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2404 1 0 "88747fea_0bb3_419b_aa507595f9a3a0b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChPattern = StrConcat2(str_CurrentChPattern, int_Value); // }} "" // {{ 2405 1 0 "9a52dacd_105f_4c2c_b6a2c10e2ceda205" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2406 1 0 "0c243dab_bf78_436a_867acfb1d42e5898" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_YOffsetDistance = flt_CurrentY - flt_PositionY; // }} "" // {{ 2407 1 0 "732ecf4d_5905_42ad_87aa34e36157e7cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_YOffsetDistance < G_FW_PIP_COM_Raster) { // }} "" // {{{ 2408 1 0 "b864f6a8_3e3b_4e43_beb0522c04928700" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChPattern = StrFillRight(str_CurrentChPattern, Translate("0"), G_FW_PIP_COM_TotalChannels); // }} "" // {{ 2409 1 0 "cc446f2e_999e_4b0d_8c0b8c3b41a637bc" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrChannelPatterns.AddAsLast(str_CurrentChPattern); // }} "" // {{ 2410 1 0 "0d5d0b59_15e2_40c5_999cbe0c4de6dc2d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentY = flt_PositionY; // }} "" // {{ 2411 1 0 "c79dbf26_be54_441f_991b148eeb05dafd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_CurrentChPattern = Translate(""); // }} "" // {{ 2412 1 0 "f23b7136_0cd6_4dfb_882dd87655ba3571" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_BackFill = int_ChIndex - 1; // }} "" // {{ 2413 1 0 "cacc7333_c959_42fe_9bb4b9a16a440e70" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_BackFill > 0) { // }} "" // {{{ 2414 1 0 "ed03dbf8_07e2_4b21_90b7580a7540705f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChPattern = StrFillRight(str_CurrentChPattern, Translate("0"), int_BackFill); // }} "" // {{ 2415 1 0 "cacc7333_c959_42fe_9bb4b9a16a440e70" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2416 1 0 "729ee505_4927_41ab_a19ddb4513f66306" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChPattern = StrConcat2(str_CurrentChPattern, int_Value); // }} "" // {{ 2417 1 0 "732ecf4d_5905_42ad_87aa34e36157e7cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2418 1 0 "7eaf7e41_67bb_4338_afaf5790de631c9f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentY = flt_PositionY; // }} "" // {{{ 2419 1 0 "26fba6a3_f8da_45d0_a0140943d20cb872" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChPattern = StrConcat2(str_CurrentChPattern, int_Value); // }} "" // {{ 2420 1 0 "732ecf4d_5905_42ad_87aa34e36157e7cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2421 1 0 "9a52dacd_105f_4c2c_b6a2c10e2ceda205" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2422 1 0 "2c5bcd9b_926d_4448_9d3d9b778c89df3c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2423 1 0 "88c1fba5_17d1_4b54_889dd2af25c0525b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_CurrentY = flt_CurrentY - G_FW_PIP_COM_Raster; // }} "" // {{{ 2424 1 0 "a839b91a_4efe_43e2_a9b3646fd6c44f57" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentChPattern = StrConcat2(str_CurrentChPattern, int_Value); // }} "" // {{ 2425 1 0 "2c5bcd9b_926d_4448_9d3d9b778c89df3c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2426 1 0 "8cd48754_8a8f_444c_87dc8b76c548e132" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2427 1 0 "fce15511_6593_4149_a9e33d8050c163ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChIndex == G_FW_PIP_COM_TotalChannels) { // }} "" // {{ 2428 1 0 "e7600dc0_fb51_464a_9a82caf58ad914dd" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrChannelPatterns.AddAsLast(str_CurrentChPattern); // }} "" // {{ 2429 1 0 "fce15511_6593_4149_a9e33d8050c163ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2430 1 0 "ec608ab8_3898_4a6a_a85b6e3fb81e7fbe" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2431 1 0 "49453f5f_0406_4657_b59de8995e7af79d" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" o_intLoopNumber=o_arrChannelPatterns.GetSize(); // }} "" // {{{ 2432 1 0 "b4c292e7_99b1_43d0_bf6a9588399d8eed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Channel Patterns"), o_arrChannelPatterns); // }} "" // {{{ 5 "_GetPartialChannelPatternForRepeatingPositions" "End" } // }} "" // {{{ 5 "TOOL_OffsetArrayForChannels" "Begin" function TOOL_OffsetArrayForChannels( device & ML_STAR, variable i_flt_ValueToOffset, variable & io_arr_Values[] ) void { // }} "" private variable i; private variable flt_AdjustedValue; private variable flt_CurrentValue; private variable int_TotalPositions; // {{ 5 "TOOL_OffsetArrayForChannels" "InitLocals" // }} "" // {{{ 1659 1 0 "1052edf1_bd96_4699_8e36db19cd50edcf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" FW_HELPERLIBRARY::InitFunction(ML_STAR); // }} "" // {{ 1660 1 0 "77a8dbe4_4cae_4c00_bd462384b00f7cf4" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalPositions=io_arr_Values.GetSize(); // }} "" // {{ 1661 1 0 "a1c4d860_0219_4dcb_b5ad8c5d9eab3e28" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalPositions;) { i = i + 1; // }} "" // {{ 1662 1 0 "ebd4b858_d527_4760_ad1abea49c969ff0" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_CurrentValue=io_arr_Values.GetAt(i-1); // }} "" // {{ 1663 1 0 "9967f604_baca_45c0_ac0ad33a984a5a29" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_AdjustedValue = flt_CurrentValue + i_flt_ValueToOffset; // }} "" // {{ 1664 1 0 "b1b8acb1_003a_46b3_b799213c46a4b3a4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" io_arr_Values.SetAt(i-1, flt_AdjustedValue); // }} "" // {{ 1665 1 0 "a1c4d860_0219_4dcb_b5ad8c5d9eab3e28" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "TOOL_OffsetArrayForChannels" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=Bare_B$$valid=0$$time=2021-12-09 11:07$$checksum=353a0a66$$length=085$$ ================================================ FILE: pyhamilton/library/STAR Tools/STAR Tip Tools.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 4/21/2022 2:36:43 PM #pragma once #ifndef HSL_RUNTIME namespace STAR_TIP_TOOLS { function _InitLibrary() { } function _ExitLibrary() { } function BuildChannelPattern( variable i_int_NumActiveChannels, variable i_int_TotalChannels, variable & o_str_ChPattern ) void { } function DefragTipRacks1mL( device & ML_STAR, sequence & io_seq_Tips ) void { } function DefragTipRacks5mL( device & ML_STAR, sequence & io_seq_Tips ) void { } function Get1mLChannelCount( device & ML_STAR, variable & o_int_Total1mLChannels ) void { } function Get5mLChannelCount( device & ML_STAR, variable & o_int_Total5mLChannels ) void { } function GetTipCounter( device & ML_STAR, sequence & io_seqTips, variable & o_strTipCounter ) void { } function GetTipType( device & Instrument, sequence i_seq_Tips, variable & o_int_TipType ) void { } function Optimized1mLTipPickup( device & ML_STAR, sequence & io_seq_TipSequence, sequence i_seq_ControlSequence, variable i_str_TipCounter, variable & o_str_ChannelPattern ) void { } function Optimized1mLTipPickup2( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter, variable i_str_ChannelPattern ) void { } function Optimized5mLTipPickup( device & ML_STAR, sequence & io_seq_TipSequence, sequence i_seq_ControlSequence, variable i_str_TipCounter, variable & o_str_ChannelPattern ) void { } function Optimized5mLTipPickup2( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter, variable i_str_ChannelPattern ) void { } function ResetInputSequence( device & Instrument, sequence & io_seq_SequenceToReset ) void { } function TipCapacityCheck( device & Instrument, sequence i_seq_TipsToCheck, variable & o_flt_TipCapacity ) void { } function TipCheck( device & Instrument, sequence & io_seq_Tips, variable i_str_TipCounter, variable i_int_TipsNeeded ) void { } function TipCheck2( device & Instrument, sequence & io_seq_Tips, sequence & i_seq_ControlSequence, variable i_str_TipCounter ) void { } function TipCheckMPH96( device & Instrument, sequence & io_seq_Tips, variable i_str_TipCounter ) void { } function TipCountNeeded_Add( variable i_str_TipCounter, variable i_int_NumberOfTips ) void { } function TipCountNeeded_Get( variable i_str_TipCounter, variable & o_int_NumberOfTips ) void { } function TipCountNeeded_Reset( variable i_str_TipCounter ) void { } function TipCounter_Edit( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter, variable i_int_TimeOut ) void { } function TipCounter_Read( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter ) void { } function TipCounter_SetShow( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter, variable i_int_TimeOut, variable i_int_StartPosition, variable i_int_EndPosition ) void { } function TipCounter_Write( device & ML_STAR, sequence i_seq_TipSequence, variable i_str_TipCounter ) void { } function TipTypeCheck1mL( device & ML_STAR, variable i_str_ReturnFromTipPickUp, sequence & o_seq_IncorrectTipReturn, variable & o_str_IncorrectChannels ) variable { return (0); } function TipTypeLength_Get( variable i_int_TipType, variable & o_flt_TipLength ) void { } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=Bare_B$$valid=0$$time=2022-04-21 14:36$$checksum=7f92e416$$length=083$$ ================================================ FILE: pyhamilton/library/STAR Tools/STAR Tip Tools.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "HSLSeqLib.hsl" #include "HSLStrLib.hsl" #include "HSLDevLib.hsl" #include "HSLUtilLib.hsl" #include "HSLUtilLib2.hsl" #include "HSLExtensions\\File.hsl" #include "HSLDeckVisualize.hsl" #include "HSLExtensions\\Directory.hsl" #include "STAR Tools\\Resources\\SubMethods\\HelperLibrary.hs_" #include "HSL_MethodHelper.hsl" #include "Firmware Libraries\\Channel_Query_1mL.hs_" #include "HSLMlStarStepReturnLib.hsl" #include "HSLFilLib.hsl" #include "HSLExtensions\\Venus.hsl" #include "STAR Tools\\Resources\\SubMethods\\Tip Tool Global Variables.hsl" #include "STAR Tools\\Resources\\SubMethods\\TIP_OFFSET_GLOBAL.hsl" #include "STAR Tools\\Resources\\SubMethods\\TipCounterGlobal.hsl" #include "HSLErrLib.hsl" #include "HSLExtensions\\Core.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" #include "HSLPTLLib.hsl" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace STAR_TIP_TOOLS { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" private function ABSTRACT( ) void ; function BuildChannelPattern( variable i_int_NumActiveChannels, variable i_int_TotalChannels, variable & o_str_ChPattern ) void ; function DefragTipRacks1mL( device & ML_STAR, sequence & io_seq_Tips ) void ; function DefragTipRacks5mL( device & ML_STAR, sequence & io_seq_Tips ) void ; function Get1mLChannelCount( device & ML_STAR, variable & o_int_Total1mLChannels ) void ; function Get5mLChannelCount( device & ML_STAR, variable & o_int_Total5mLChannels ) void ; function GetTipCounter( device & ML_STAR, sequence & io_seqTips, variable & o_strTipCounter ) void ; function GetTipType( device & Instrument, sequence i_seq_Tips, variable & o_int_TipType ) void ; function Optimized1mLTipPickup( device & ML_STAR, sequence & io_seq_TipSequence, sequence i_seq_ControlSequence, variable i_str_TipCounter, variable & o_str_ChannelPattern ) void ; function Optimized1mLTipPickup2( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter, variable i_str_ChannelPattern ) void ; function Optimized5mLTipPickup( device & ML_STAR, sequence & io_seq_TipSequence, sequence i_seq_ControlSequence, variable i_str_TipCounter, variable & o_str_ChannelPattern ) void ; function Optimized5mLTipPickup2( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter, variable i_str_ChannelPattern ) void ; function ResetInputSequence( device & Instrument, sequence & io_seq_SequenceToReset ) void ; function TipCapacityCheck( device & Instrument, sequence i_seq_TipsToCheck, variable & o_flt_TipCapacity ) void ; function TipCheck( device & Instrument, sequence & io_seq_Tips, variable i_str_TipCounter, variable i_int_TipsNeeded ) void ; function TipCheck2( device & Instrument, sequence & io_seq_Tips, sequence & i_seq_ControlSequence, variable i_str_TipCounter ) void ; function TipCheckMPH96( device & Instrument, sequence & io_seq_Tips, variable i_str_TipCounter ) void ; function TipCountNeeded_Add( variable i_str_TipCounter, variable i_int_NumberOfTips ) void ; function TipCountNeeded_Get( variable i_str_TipCounter, variable & o_int_NumberOfTips ) void ; function TipCountNeeded_Reset( variable i_str_TipCounter ) void ; function TipCounter_Edit( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter, variable i_int_TimeOut ) void ; function TipCounter_Read( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter ) void ; function TipCounter_SetShow( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter, variable i_int_TimeOut, variable i_int_StartPosition, variable i_int_EndPosition ) void ; function TipCounter_Write( device & ML_STAR, sequence i_seq_TipSequence, variable i_str_TipCounter ) void ; function TipTypeCheck1mL( device & ML_STAR, variable i_str_ReturnFromTipPickUp, sequence & o_seq_IncorrectTipReturn, variable & o_str_IncorrectChannels ) variable ; function TipTypeLength_Get( variable i_int_TipType, variable & o_flt_TipLength ) void ; private function _ConvertChannelPatternToArray( variable i_str_ChannelPattern, variable & o_arr_ChannelPatternArray[] ) void ; private function _ConvertToInteger( variable & io_Value ) void ; private function _DetermineTipCheckLC( variable i_int_TipType, variable & o_str_LiquidClass, variable & o_flt_CheckVolume ) void ; private function _GetCurrentPosition( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void ; private function _GetSequenceName( device & Instrument, sequence i_seq_SequenceToCheck, variable & o_strSequenceName, variable & o_intTotalPositions ) void ; private function _GetSequencePosition( device & Instrument, sequence i_seq_LabwareSequence, variable & o_str_LabID, variable & o_str_PosID ) variable ; private function _GetTipCounterFolderPath( variable & o_str_TipCounterFolder ) void ; private function _GetTipCounterName( variable i_strInstrumentClass, variable i_intTipType, variable & o_strTipCounterName ) variable ; private function _GetTipType( device & Instrument, variable i_str_LabwareID, variable & o_int_TipType ) void ; private function _LocalTipCounterRead( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter ) void ; private function _Lookup( variable & array[], variable item ) variable ; private function _RemoveInvalidCharacters( variable & io_str_Value ) void ; private function _SortSequenceLabIDXY( device & Instrument, sequence & io_Sequence ) void ; private function _SortSequenceYPriority( device & Instrument, sequence & io_Sequence ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" PTL::SetWashingStateDefault("RinseTime1", 5); PTL::SetWashingStateDefault("SoakTime1", 5); PTL::SetWashingStateDefault("FlowRate1", 11); PTL::SetWashingStateDefault("RinseTime2", 0); PTL::SetWashingStateDefault("SoakTime2", 0); PTL::SetWashingStateDefault("FlowRate2", 11); PTL::SetWashingStateDefault("DrainingTime", 10); PTL::SetWashingStateDefault("StartWashLiquid", 0); PTL::SetLoadingStateDefault("RecoveryOptionContinue", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionExclude", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionDefault", 0); PTL::SetLoadingStateDefault("KitLotCheckEnabled", hslFalse); HELPERLIBRARY::_InitLibrary(); CHANNEL_QUERY_1ML::_InitLibrary(); // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" HELPERLIBRARY::_ExitLibrary(); CHANNEL_QUERY_1ML::_ExitLibrary(); // }} "" } // {{{ 5 "TipCheck" "Begin" function TipCheck( device & Instrument, sequence & io_seq_Tips, variable i_str_TipCounter, variable i_int_TipsNeeded ) void { // }} "" private dialog customDialog744B3B2C09884d30895B6C1E10766D83; private variable int_CurrentPosition; private variable flt_TipCapacity; private variable str_TipMessage; private variable int_EndPosition; private variable int_PositionsRemaining; private variable str_TipName; // {{ 5 "TipCheck" "InitLocals" // }} "" // {{ 894 1 0 "20d37af7_42c5_48c0_9b1eb8cb1c1a2f59" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("========= Check tip sequence")); // }} "" // {{{ 895 1 0 "63e247f5_0586_4d9d_a36642a258643532" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TipCapacityCheck(Instrument, io_seq_Tips, flt_TipCapacity); // }} "" // {{ 896 1 0 "2b82175b_83a7_405c_b65a34b9e46e1f7a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_TipCapacity == 0.0) { // }} "" // {{ 897 1 0 "97c669f0_8796_4282_aa21d0c8886c6ff8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TipCapacity = Translate("Unknown"); // }} "" // {{ 898 1 0 "2b82175b_83a7_405c_b65a34b9e46e1f7a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 899 1 0 "a4d9de3d_e1fa_4433_9711e4672f229117" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipName = StrConcat4(flt_TipCapacity, Translate(" uL Tips"), Translate(""), Translate("")); // }} "" // {{{ 900 1 0 "f1e6b1d8_ad4a_414c_9d2828c43525b7c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipMessage = StrConcat4(Translate("Please load more "), str_TipName, Translate(" on to the deck."), Translate("")); // }} "" // {{ 901 1 0 "4f61a638_dc22_415e_90249e60c9404ebc" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (1 == 1) { // }} "" // {{ 902 1 0 "bedb9fca_3f54_424f_9beb5aa63d090b89" "{B31F353B-5D80-11d4-A5EB-0050DA737D89}" int_CurrentPosition = io_seq_Tips.GetCurrentPosition(); // }} "" // {{ 903 1 0 "577ff63b_1195_4960_8add66ffd1685d64" "{B31F353D-5D80-11d4-A5EB-0050DA737D89}" int_EndPosition = io_seq_Tips.GetCount(); // }} "" // {{ 904 1 0 "9e95efd9_a298_485e_94ce963cebf5590d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_CurrentPosition == 0) { // }} "" // {{ 905 1 0 "7be0ed57_06b1_4154_810e771cec107ef0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CurrentPosition = int_EndPosition + 1; // }} "" // {{ 906 1 0 "9e95efd9_a298_485e_94ce963cebf5590d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 907 1 0 "390dc4f6_5aba_4b6c_b5160d53bb1b367e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_PositionsRemaining = int_EndPosition - int_CurrentPosition; // }} "" // {{ 908 1 0 "6dec19df_5a08_4ebf_b461f0944afd0f6c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_PositionsRemaining = int_PositionsRemaining + 1; // }} "" Trace(" ","Positions Remaining: ",int_PositionsRemaining," Tips Needed: ",i_int_TipsNeeded); // {{ 910 1 0 "7afdb781_322b_4b3d_97a69d64f7288f41" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsRemaining >= i_int_TipsNeeded) { // }} "" // {{ 911 1 0 "ca4a590d_1794_49ff_ab921d0335ea1632" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("------------------ Sufficient tips found")); // }} "" // {{ 912 1 0 "90bd48f4_6428_4e24_8aee6ffc6a4f080d" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 913 1 0 "7afdb781_322b_4b3d_97a69d64f7288f41" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 914 1 0 "6e5eb41e_94d9_4526_bb1d3eae47ceefab" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("------------------ Insufficient tips found")); // }} "" // {{ 915 1 0 "0c2c9630_1875_4875_b86fdd57f5b7d89c" "{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}" customDialog744B3B2C09884d30895B6C1E10766D83.InitCustomDialog( "0c2c9630_1875_4875_b86fdd57f5b7d89c" ); customDialog744B3B2C09884d30895B6C1E10766D83.SetCustomDialogProperty( "textBlock2.Text", str_TipMessage ); customDialog744B3B2C09884d30895B6C1E10766D83.ShowCustomDialog(); // }} "" // {{ 916 1 0 "1f4a57a0_cacd_41df_bdc4b6ea0bf34b8c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 917 1 0 "f6a95e2b_32b5_4661_ad84020c5f275a15" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ResetInputSequence(Instrument, io_seq_Tips); // }} "" // {{{ 918 1 0 "ab819147_6041_403b_9a5582b2ec5c45b9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TipCounter_Edit(Instrument, io_seq_Tips, i_str_TipCounter, 99999); // }} "" // {{ 919 1 0 "4f61a638_dc22_415e_90249e60c9404ebc" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "TipCheck" "End" } // }} "" // {{{ 5 "TipCapacityCheck" "Begin" function TipCapacityCheck( device & Instrument, sequence i_seq_TipsToCheck, variable & o_flt_TipCapacity ) void { // }} "" private variable int_TipType; // {{ 5 "TipCapacityCheck" "InitLocals" o_flt_TipCapacity = 0; // }} "" // {{{ 834 1 0 "5acd7023_0bc7_4818_a40d7eee380ae8fb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" GetTipType(Instrument, i_seq_TipsToCheck, int_TipType); // }} "" // {{ 835 1 0 "37df6113_b1bb_4b34_98674dde094046e2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 0.0; // }} "" // {{ 836 1 0 "724c9f85_2cca_4894_8cce089cf2a93cdc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 0) { // }} "" // {{ 837 1 0 "8408eb6a_f7f6_4568_8ab27c31bfd4ecc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 300; // }} "" // {{ 838 1 0 "724c9f85_2cca_4894_8cce089cf2a93cdc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 839 1 0 "1dac2fb5_ead3_4171_bd8fe83671f7b0e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 1) { // }} "" // {{ 840 1 0 "eaf49332_c626_4ceb_abc2be7cc5fdaa7b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 300; // }} "" // {{ 841 1 0 "1dac2fb5_ead3_4171_bd8fe83671f7b0e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 842 1 0 "7ddcede3_2194_4d3e_a0af4fccd289f5b1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 2) { // }} "" // {{ 843 1 0 "727368dc_e86f_49eb_b112f5f419cb9068" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 10; // }} "" // {{ 844 1 0 "7ddcede3_2194_4d3e_a0af4fccd289f5b1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 845 1 0 "31f0cab2_97cb_4606_b745604b1f0ee009" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 3) { // }} "" // {{ 846 1 0 "f7fe5c37_0cee_499c_88d2128f371c3017" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 10; // }} "" // {{ 847 1 0 "31f0cab2_97cb_4606_b745604b1f0ee009" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 848 1 0 "08de228d_2737_433d_8c932fc0e355e4f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 4) { // }} "" // {{ 849 1 0 "6dbf9b76_76a1_459f_aae8e57f05aa6295" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 1000; // }} "" // {{ 850 1 0 "08de228d_2737_433d_8c932fc0e355e4f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 851 1 0 "6c5b9b89_199f_46dc_81db24f9799e403a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 5) { // }} "" // {{ 852 1 0 "0be9e9f8_719f_4af2_945ba2962af931b3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 1000; // }} "" // {{ 853 1 0 "6c5b9b89_199f_46dc_81db24f9799e403a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 854 1 0 "43a56000_861c_4a8e_9aebcd2ef238b710" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 25) { // }} "" // {{ 855 1 0 "67c8a424_42ad_4c34_8d7732b8950d6ff6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 5000; // }} "" // {{ 856 1 0 "43a56000_861c_4a8e_9aebcd2ef238b710" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 857 1 0 "348f5714_4a67_43a7_99537d603cd64168" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 20) { // }} "" // {{ 858 1 0 "5a0d6660_968b_46d4_a5177a28e06729b2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 50; // }} "" // {{ 859 1 0 "348f5714_4a67_43a7_99537d603cd64168" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 860 1 0 "869425a9_fd1c_45a8_ad838092abf4c1c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 22) { // }} "" // {{ 861 1 0 "3b42329e_767a_41ae_85e86cf971d71c6b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 50; // }} "" // {{ 862 1 0 "869425a9_fd1c_45a8_ad838092abf4c1c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 863 1 0 "b13534c9_52f0_428d_bb048803ae5c1413" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 23) { // }} "" // {{ 864 1 0 "6ddbcac7_6a8a_44d1_80db1aec63ad9c50" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 50; // }} "" // {{ 865 1 0 "b13534c9_52f0_428d_bb048803ae5c1413" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 866 1 0 "0c6b1023_f259_466a_acf8bc85bb57b18d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 28) { // }} "" // {{ 867 1 0 "2b0a806f_1243_41c1_a570191f55d33c4d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 300; // }} "" // {{ 868 1 0 "0c6b1023_f259_466a_acf8bc85bb57b18d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 869 1 0 "442b682a_875c_4b80_8a92043330ba6a19" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 29) { // }} "" // {{ 870 1 0 "1e696872_ed22_4e82_b4e8fe64209d3780" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 4000; // }} "" // {{ 871 1 0 "442b682a_875c_4b80_8a92043330ba6a19" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 872 1 0 "c664b7fd_b641_4157_a175988142334859" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 30) { // }} "" // {{ 873 1 0 "6a559380_270a_463f_a4c9ffffbd3aac55" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 300; // }} "" // {{ 874 1 0 "c664b7fd_b641_4157_a175988142334859" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 875 1 0 "81e5aaad_5b17_42dd_82c0aa96f359bb6b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 31) { // }} "" // {{ 876 1 0 "e9e6cde7_2966_498b_a40e4102e29a8f9b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 50; // }} "" // {{ 877 1 0 "81e5aaad_5b17_42dd_82c0aa96f359bb6b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 878 1 0 "d6b2320f_a55d_4119_b661b7a6694547c0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 32) { // }} "" // {{ 879 1 0 "cfb248a3_ef4f_4893_aa23e8316f7f3df9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 10; // }} "" // {{ 880 1 0 "d6b2320f_a55d_4119_b661b7a6694547c0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 881 1 0 "a3f2a355_5919_461d_b35612d57a875ad2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 33) { // }} "" // {{ 882 1 0 "41cbb26e_0dea_4756_89fa27da92edaf93" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 50; // }} "" // {{ 883 1 0 "a3f2a355_5919_461d_b35612d57a875ad2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 884 1 0 "66ce6902_021f_4ed5_b7c68dcee1321ef9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 37) { // }} "" // {{ 885 1 0 "a1364e46_b2f5_44df_aeb2979d9cfb2373" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 50; // }} "" // {{ 886 1 0 "66ce6902_021f_4ed5_b7c68dcee1321ef9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 887 1 0 "62447ab4_a62c_43f0_8f887f9487e1d044" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 54) { // }} "" // {{ 888 1 0 "5f273041_192d_4578_abf220be5035a7bf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 50; // }} "" // {{ 889 1 0 "62447ab4_a62c_43f0_8f887f9487e1d044" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 890 1 0 "d2f4c43d_25ea_49f9_a20daa15a34fea3b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipType == 55) { // }} "" // {{ 891 1 0 "48a7c3cd_0410_4191_b95b13185027b7f0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipCapacity = 50; // }} "" // {{ 892 1 0 "d2f4c43d_25ea_49f9_a20daa15a34fea3b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "TipCapacityCheck" "End" } // }} "" // {{{ 5 "ResetInputSequence" "Begin" function ResetInputSequence( device & Instrument, sequence & io_seq_SequenceToReset ) void { // }} "" // {{ 5 "ResetInputSequence" "InitLocals" // }} "" { Instrument.CopyResetSequence(io_seq_SequenceToReset.GetName(),io_seq_SequenceToReset); } // {{{ 5 "ResetInputSequence" "End" } // }} "" // {{{ 5 "_GetTipType" "Begin" private function _GetTipType( device & Instrument, variable i_str_LabwareID, variable & o_int_TipType ) void { // }} "" private variable str_TipType; private variable l_blnLabwareValid; // {{ 5 "_GetTipType" "InitLocals" o_int_TipType = 0; // }} "" // {{ 1505 1 0 "1a62786f_584f_4f26_bc4065d566fd5dc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_TipType = Translate(""); // }} "" // {{{ 1506 1 0 "bc306722_b1e3_432a_b658f38829d79187" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_blnLabwareValid = DevIsValidLabwareForCurrentDeckLayout(Instrument, i_str_LabwareID); // }} "" // {{ 1507 1 0 "82438236_d020_4d53_95dd022cad4935e5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (l_blnLabwareValid == BOOLEON::FALSE) { // }} "" // {{ 1508 1 0 "f024f1e9_464d_46ed_95d53b187d6f838e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_TipType = -1; // }} "" // {{{ 1509 1 0 "1500461c_2a44_48af_a1694bfdaf4b3ad8" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 1510 1 0 "82438236_d020_4d53_95dd022cad4935e5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1511 1 0 "4068be5b_0aae_4eda_a54f5aa22e6cdb02" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_249D904FC42842d08D85570423A0E5BA ; err.Clear(); // }} "" // {{{ 1512 1 0 "4b95e849_d3be_426d_9f1f42456398debf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipType = DevGetLabwareData(Instrument, i_str_LabwareID, Translate("MlStarTipRack")); // }} "" // {{ 1513 1 0 "4068be5b_0aae_4eda_a54f5aa22e6cdb02" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_249D904FC42842d08D85570423A0E5BA : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1514 1 0 "4068be5b_0aae_4eda_a54f5aa22e6cdb02" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 1515 1 0 "11116cbc_4610_436d_86e9b81132d467db" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_TipType == "") { // }} "" // {{ 1516 1 0 "656fb1d7_8840_431f_83859534bbac8c8c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_D141C798D15C4da1BB545B0D45A22EA9 ; err.Clear(); // }} "" // {{{ 1517 1 0 "9d205585_76a4_4de6_9da35d7ca9aada09" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipType = DevGetLabwareData(Instrument, i_str_LabwareID, Translate("MlStarXLTipRack")); // }} "" // {{ 1518 1 0 "656fb1d7_8840_431f_83859534bbac8c8c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_D141C798D15C4da1BB545B0D45A22EA9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1519 1 0 "656fb1d7_8840_431f_83859534bbac8c8c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 1520 1 0 "11116cbc_4610_436d_86e9b81132d467db" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1521 1 0 "f381c6f2_d3ed_4d7d_8e91422dbecea2c8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_TipType == "") { // }} "" // {{ 1522 1 0 "d2c01c5e_8c79_47c5_995b443342752764" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_TipType = Translate("-1"); // }} "" // {{ 1523 1 0 "f381c6f2_d3ed_4d7d_8e91422dbecea2c8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1524 1 0 "47b74f62_3bdc_49b1_93c1c75427714546" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_int_TipType = StrIVal(str_TipType); // }} "" // {{{ 5 "_GetTipType" "End" } // }} "" // {{{ 5 "TipCheck2" "Begin" function TipCheck2( device & Instrument, sequence & io_seq_Tips, sequence & i_seq_ControlSequence, variable i_str_TipCounter ) void { // }} "" private dialog customDialogC77B630404D944d48FC1D9E60E9120AE; private variable int_CurrentPosition; private variable flt_TipCapacity; private variable str_TipMessage; private variable int_EndPosition; private variable int_PositionsRemaining; private variable str_TipName; private variable int_TipsNeeded; // {{ 5 "TipCheck2" "InitLocals" // }} "" // {{ 921 1 0 "4736cee6_e877_4bd3_9dab579c996cd4c9" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("========= Check tip sequence")); // }} "" // {{{ 922 1 0 "33703ccc_8702_4a1f_8224a143d99a0d4e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TipCapacityCheck(Instrument, io_seq_Tips, flt_TipCapacity); // }} "" // {{{ 923 1 0 "22eb11e1_681f_43b6_8421142de2b98378" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::RemoveTruncatedSequencePositions(Instrument, i_seq_ControlSequence); // }} "" // {{{ 924 1 0 "bf1ffab2_f375_4cc3_a5cf98832a6901a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TipsNeeded = SeqGetTotal(i_seq_ControlSequence); // }} "" // {{ 925 1 0 "576f3a55_a08d_4eed_add6b834981efa2e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_TipCapacity == 0.0) { // }} "" // {{ 926 1 0 "016dea6a_3902_4c64_b523dcaa413a22e3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TipCapacity = Translate("Unknown"); // }} "" // {{ 927 1 0 "576f3a55_a08d_4eed_add6b834981efa2e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 928 1 0 "cb9fbc97_cf2f_460c_9ece6b7f33304065" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipName = StrConcat4(flt_TipCapacity, Translate(" uL Tips"), Translate(""), Translate("")); // }} "" // {{{ 929 1 0 "e3dec0ce_3629_4018_b7751a308318793d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipMessage = StrConcat4(Translate("Please load more "), str_TipName, Translate(" on to the deck."), Translate("")); // }} "" // {{ 930 1 0 "f82fd335_b558_48a7_97cf2a3bb688add1" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (1 == 1) { // }} "" // {{ 931 1 0 "96a9a49f_bc5e_4a94_89197d407b8c6616" "{B31F353B-5D80-11d4-A5EB-0050DA737D89}" int_CurrentPosition = io_seq_Tips.GetCurrentPosition(); // }} "" // {{ 932 1 0 "c47e33a2_9ca3_4182_87fb1c1bd734c23f" "{B31F353D-5D80-11d4-A5EB-0050DA737D89}" int_EndPosition = io_seq_Tips.GetCount(); // }} "" // {{ 933 1 0 "ab5c1ebd_39b1_425b_82dfb88ab28f038b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_CurrentPosition == 0) { // }} "" // {{ 934 1 0 "a4dab5a2_9cb3_4d18_b661bd9c85c6f4f6" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CurrentPosition = int_EndPosition + 1; // }} "" // {{ 935 1 0 "ab5c1ebd_39b1_425b_82dfb88ab28f038b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 936 1 0 "155d00a8_ea31_4c0a_bb5ff6e4e869ad6c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_PositionsRemaining = int_EndPosition - int_CurrentPosition; // }} "" // {{ 937 1 0 "bbe4b0ae_bb9e_4357_b695588d2526ca0b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_PositionsRemaining = int_PositionsRemaining + 1; // }} "" Trace(" ","Positions Remaining: ",int_PositionsRemaining," Tips Needed: ",int_TipsNeeded); // {{ 939 1 0 "8b02d45b_8c78_4d75_97fa5483577a55b5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsRemaining >= int_TipsNeeded) { // }} "" // {{ 940 1 0 "10618e24_5bac_4198_a70bbe9df1b5a27b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("------------------ Sufficient tips found")); // }} "" // {{ 941 1 0 "617073f9_b4fc_4cc9_8b3f6c207326161d" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 942 1 0 "8b02d45b_8c78_4d75_97fa5483577a55b5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 943 1 0 "91677878_bede_4129_a82bf7e848502029" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("------------------ Insufficient tips found")); // }} "" // {{ 944 1 0 "19498ec0_f9c5_4ff4_9cc05772164c8178" "{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}" customDialogC77B630404D944d48FC1D9E60E9120AE.InitCustomDialog( "19498ec0_f9c5_4ff4_9cc05772164c8178" ); customDialogC77B630404D944d48FC1D9E60E9120AE.SetCustomDialogProperty( "textBlock2.Text", str_TipMessage ); customDialogC77B630404D944d48FC1D9E60E9120AE.ShowCustomDialog(); // }} "" // {{ 945 1 0 "7dea5860_6031_4660_85e364c9dbee12d6" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 946 1 0 "8ae5f50d_72aa_4f79_a637a7612e918fcd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ResetInputSequence(Instrument, io_seq_Tips); // }} "" // {{{ 947 1 0 "16538be0_8312_4d59_9ad21593ca89a7c7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TipCounter_Edit(Instrument, io_seq_Tips, i_str_TipCounter, 99999); // }} "" // {{ 948 1 0 "f82fd335_b558_48a7_97cf2a3bb688add1" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "TipCheck2" "End" } // }} "" // {{{ 5 "_GetSequencePosition" "Begin" private function _GetSequencePosition( device & Instrument, sequence i_seq_LabwareSequence, variable & o_str_LabID, variable & o_str_PosID ) variable { // }} "" private variable bool_SequenceValid; // {{ 5 "_GetSequencePosition" "InitLocals" o_str_LabID = 0; o_str_PosID = 0; // }} "" // {{ 1464 1 0 "0249bdb6_b139_41cb_b2354a27f1af9e08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_SequenceValid = 1; // }} "" // {{ 1465 1 0 "be7c9f6e_511b_4b3b_927db8e1b6b7c988" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LabID = Translate(""); // }} "" // {{ 1466 1 0 "9519998c_8f23_4ebe_a5c4eabad32bdee9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_PosID = Translate(""); // }} "" // {{ 1467 1 0 "d6eba368_eae1_40a7_b6c5bf2155532bbc" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C92BECA6FC3E4dd1A039451E8CBA8702 ; err.Clear(); // }} "" // {{{ 1468 1 0 "ed639d40_4467_449e_8c1965227cc90d90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_LabID = SeqGetLabwareId(i_seq_LabwareSequence); // }} "" // {{{ 1469 1 0 "3a779886_b181_4f86_b281e0015d5a8887" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_PosID = SeqGetPositionId(i_seq_LabwareSequence); // }} "" // {{ 1470 1 0 "700d58a9_2c2d_4489_90baf6f1d2d2c315" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (o_str_LabID == "") { // }} "" // {{ 1471 1 0 "832a1752_998e_4f49_b857e0996e0a52a6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_SequenceValid = 0; // }} "" // {{ 1472 1 0 "700d58a9_2c2d_4489_90baf6f1d2d2c315" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1473 1 0 "d6eba368_eae1_40a7_b6c5bf2155532bbc" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C92BECA6FC3E4dd1A039451E8CBA8702 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1474 1 0 "05939dc1_2f24_494c_ac724dd879d8829d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bool_SequenceValid = 0; // }} "" // {{ 1475 1 0 "d6eba368_eae1_40a7_b6c5bf2155532bbc" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1476 1 0 "c6bd0d6f_3f6c_45e5_82a0cfed313836ec" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (bool_SequenceValid); // }} "" // {{{ 5 "_GetSequencePosition" "End" } // }} "" // {{{ 5 "_Lookup" "Begin" private function _Lookup( variable & array[], variable item ) variable { // }} "" private variable index; private variable lookupreturn; // {{ 5 "_Lookup" "InitLocals" // }} "" // {{{ 1544 1 0 "129b6c75_8a30_4682_891d77ee018a8969" "{C1F3C015-47B3-4514-9407-AC2E65043419}" lookupreturn = Util::Lookup(array, item, index); // }} "" // {{ 1545 1 0 "09b67dfd_0ac1_4981_94acbe252ef1c89a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lookupreturn > 0) { // }} "" // {{ 1546 1 0 "0792c953_6291_43b9_b3e04048cc84bda3" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" index = index + 1; // }} "" // {{{ 1547 1 0 "54f7927e_06fa_4cbc_a833d020c1a302b0" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (index); // }} "" // {{ 1548 1 0 "09b67dfd_0ac1_4981_94acbe252ef1c89a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1549 1 0 "a9b6bd42_a2f2_4a14_997e6d861f6512e6" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (0); // }} "" // {{ 1550 1 0 "09b67dfd_0ac1_4981_94acbe252ef1c89a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "_Lookup" "End" } // }} "" // {{{ 5 "Get1mLChannelCount" "Begin" function Get1mLChannelCount( device & ML_STAR, variable & o_int_Total1mLChannels ) void { // }} "" // {{ 5 "Get1mLChannelCount" "InitLocals" o_int_Total1mLChannels = 0; // }} "" // {{ 334 1 0 "f1adfa2b_bfab_48fc_9b2b3743d272cb59" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_Total1mLChannels = 0; // }} "" // {{{ 335 1 0 "c462871e_4083_4a4a_8378cfa7b56dc0c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_int_Total1mLChannels = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{{ 5 "Get1mLChannelCount" "End" } // }} "" // {{{ 5 "Get5mLChannelCount" "Begin" function Get5mLChannelCount( device & ML_STAR, variable & o_int_Total5mLChannels ) void { // }} "" // {{ 5 "Get5mLChannelCount" "InitLocals" o_int_Total5mLChannels = 0; // }} "" // {{ 337 1 0 "0d81e43a_6414_4bc8_ad29c300dd89c06f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_Total5mLChannels = 0; // }} "" // {{{ 338 1 0 "0d3a874c_ede8_4602_aca172efcb0ce4fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_int_Total5mLChannels = DevGetCfgValueWithKey(ML_STAR, 43); // }} "" // {{{ 5 "Get5mLChannelCount" "End" } // }} "" // {{{ 5 "BuildChannelPattern" "Begin" function BuildChannelPattern( variable i_int_NumActiveChannels, variable i_int_TotalChannels, variable & o_str_ChPattern ) void { // }} "" // {{ 5 "BuildChannelPattern" "InitLocals" o_str_ChPattern = 0; // }} "" // {{ 3 1 0 "442a541c_055c_4e82_b21b38f292913dae" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChPattern = Translate(""); // }} "" // {{{ 4 1 0 "45fca93e_eaf0_4dff_9a1504f672d39516" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_ChPattern = StrFillLeft(o_str_ChPattern, Translate("1"), i_int_NumActiveChannels); // }} "" // {{{ 5 1 0 "4d3d06fe_ee44_452a_b5145e7af635479a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_ChPattern = StrFillRight(o_str_ChPattern, Translate("0"), i_int_TotalChannels); // }} "" // {{{ 6 1 0 "dc336566_fb85_43d1_b6c4a860e4677917" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_ChPattern = StrLeft(o_str_ChPattern, i_int_TotalChannels); // }} "" // {{{ 5 "BuildChannelPattern" "End" } // }} "" // {{{ 5 "_GetCurrentPosition" "Begin" private function _GetCurrentPosition( device & Instrument, sequence i_seq_Labware, variable & o_flt_X_Coord, variable & o_flt_Y_Coord, variable & o_flt_Z_Coord ) void { // }} "" private variable flt_NotUsed; private variable str_LabID; private variable bool_SequenceValid; private variable str_PosID; // {{ 5 "_GetCurrentPosition" "InitLocals" o_flt_X_Coord = 0; o_flt_Y_Coord = 0; o_flt_Z_Coord = 0; // }} "" // {{{ 1454 1 0 "5aa4ba6d_f9b3_4e88_8a0c5ccfc77d66f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bool_SequenceValid = _GetSequencePosition(Instrument, i_seq_Labware, str_LabID, str_PosID); // }} "" // {{ 1455 1 0 "799ecc9e_7a16_4a47_813bd0db1910a670" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_X_Coord = 0.0; // }} "" // {{ 1456 1 0 "5e11b1c1_141d_418f_88d64f1b5cb19b95" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Y_Coord = 0.0; // }} "" // {{ 1457 1 0 "67ec7b16_2230_402e_8a5ab9f70f1a9855" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_Z_Coord = 0.0; // }} "" // {{{ 1458 1 0 "6a8c5ab9_e14f_4879_98fe65f7f0c53726" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(Instrument, str_LabID, str_PosID, o_flt_X_Coord, o_flt_Y_Coord, o_flt_Z_Coord, flt_NotUsed); // }} "" // {{{ 5 "_GetCurrentPosition" "End" } // }} "" // {{{ 5 "_ConvertChannelPatternToArray" "Begin" private function _ConvertChannelPatternToArray( variable i_str_ChannelPattern, variable & o_arr_ChannelPatternArray[] ) void { // }} "" private variable int_NumChannels; private variable i; private variable str_CurrentValue; private variable a; // {{ 5 "_ConvertChannelPatternToArray" "InitLocals" o_arr_ChannelPatternArray.SetSize( 0); // }} "" // {{{ 1404 1 0 "06b2f1a7_0b1f_4d1d_a1aeae59c574c897" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_NumChannels = StrGetLength(i_str_ChannelPattern); // }} "" // {{ 1405 1 0 "6ac43b49_c568_46bf_83f054a8bd1bba22" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arr_ChannelPatternArray.SetSize(int_NumChannels); // }} "" // {{ 1406 1 0 "bd3240ad_3177_4f85_a8b8a3083c93e7e7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_NumChannels;) { i = i + 1; // }} "" // {{ 1407 1 0 "fdc2ba4a_66c3_49c2_8ecc79882c713937" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" a = i - 1; // }} "" // {{{ 1408 1 0 "a405cdf6_c7ad_4e71_af8ee101dc14539d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CurrentValue = StrMid(i_str_ChannelPattern, a, 1); // }} "" // {{ 1409 1 0 "d2b4e568_34eb_45b8_9bbb48165db274cf" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arr_ChannelPatternArray.SetAt(i-1, str_CurrentValue); // }} "" // {{ 1410 1 0 "bd3240ad_3177_4f85_a8b8a3083c93e7e7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "_ConvertChannelPatternToArray" "End" } // }} "" // {{{ 5 "TipCounter_Read" "Begin" function TipCounter_Read( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter ) void { // }} "" private variable _strFunctionName; private variable l_strSequenceName; private variable l_intTotalPositions; private variable l_intAvailable; private variable l_strError; private variable l_strInstrumentClass; private variable l_intTipType; private variable l_strLabID; private variable l_intEmptyCheck; // {{ 5 "TipCounter_Read" "InitLocals" // }} "" // {{ 1080 1 0 "6117d2c7_9d78_4ed0_b367fe38cce076fe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1081 1 0 "0ed1b0a9_4cc9_4bfd_862bd4b5f712346f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 1083 1 0 "355f8269_db9a_452a_b1e8760e7dabfead" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 1084 1 0 "6117d2c7_9d78_4ed0_b367fe38cce076fe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1085 1 0 "53837490_2f1f_401f_a9cc15c489052470" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_OFFSET_GLOBAL::INIT::InitializeVariables(); // }} "" // {{{ 1086 1 0 "c01f5a4f_1fa5_4baa_8872152538320f96" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::InitTipCountingLibrary(); // }} "" // {{{ 1087 1 0 "71f58ffa_fa1c_430d_b30d954c9dddc95b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_TipCounter = StrConcat2(i_str_TipCounter, Translate("")); // }} "" // {{ 1088 1 0 "eebba49d_5c03_4e96_b039eabe3397576c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_TipCounter == "") { // }} "" // {{{ 1089 1 0 "d33584ba_f81d_431e_99b8e85339d54452" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_strError = StrConcat4(Translate("Tip counter '"), i_str_TipCounter, Translate("' is invalid!"), Translate("")); // }} "" // {{{ 1090 1 0 "1640eb03_b351_4c45_812694e5e1add217" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, l_strError); // }} "" // {{ 1091 1 0 "eebba49d_5c03_4e96_b039eabe3397576c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1092 1 0 "a0032f9c_f15d_4d7b_94aebc13d05c60ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_strLabID = SeqGetLabwareId(io_seq_TipSequence); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1093 1 0 "21128557_40e2_4386_ad4e2c3b10f8da13" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" l_strLabID = Translate(""); // }} "" // {{ 1094 1 0 "f2f910f6_dacd_432d_809d8ccfa157dfe9" "{B31F353B-5D80-11d4-A5EB-0050DA737D89}" l_intEmptyCheck = io_seq_TipSequence.GetCurrentPosition(); // }} "" { sequence sequenceObj; ML_STAR.CopyResetSequence(io_seq_TipSequence.GetName(), sequenceObj); l_strLabID = sequenceObj.GetLabwareId(); //if(l_intEmptyCheck == 0) ML_STAR.CopyResetSequence(io_seq_TipSequence.GetName(), io_seq_TipSequence); } // {{{ 1096 1 0 "0d20fe9a_9419_4d9c_a92eb674a2e0084e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetSequenceName(ML_STAR, io_seq_TipSequence, l_strSequenceName, l_intTotalPositions); // }} "" // {{{ 1097 1 0 "63d8bc89_903e_4479_be6bd3964142cad4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetTipType(ML_STAR, l_strLabID, l_intTipType); // }} "" // {{ 1098 1 0 "5795afa1_b0d2_4c24_a57fbd05f1563135" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (l_intTipType != -1) { // }} "" // {{{ 1099 1 0 "e1e16609_cdf1_4d3e_a370fbdf42c04031" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_strInstrumentClass = DevGetInstrumentName(ML_STAR); // }} "" // {{{ 1100 1 0 "89ff3037_39d2_47f6_9579049e418d2af9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::CheckTipCounterName(i_str_TipCounter); // }} "" // {{{ 1101 1 0 "7effbb23_b214_4c00_addd965d3373a886" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Read tip counter: "), i_str_TipCounter); // }} "" // {{{ 1102 1 0 "cd3bedc5_c20e_4d93_8bfadb78b972c9d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::ReadFromHxElementCounter(ML_STAR, io_seq_TipSequence, l_intTipType, i_str_TipCounter, l_strInstrumentClass); // }} "" // {{{ 1103 1 0 "7fdfc934_1dbc_492e_99b201a00a1a2b46" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_intAvailable = SeqGetTotal(io_seq_TipSequence); // }} "" // {{{ 1104 1 0 "90284beb_b4e9_49ff_a50e5593845f2a17" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE08(l_strSequenceName, Translate(" :: "), l_intAvailable, Translate(" / "), l_intTotalPositions, Translate(""), Translate(""), Translate("")); // }} "" // {{{ 1105 1 0 "3a8669ae_40cf_4b29_ba3198964b65e4e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_TipSequence, 5, Translate("")); // }} "" // {{ 1106 1 0 "5795afa1_b0d2_4c24_a57fbd05f1563135" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1107 1 0 "51e7c6c3_e38b_4019_bbda42a12e3d766c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("COULD NOT DETERMINE TIP TYPE!")); // }} "" // {{ 1108 1 0 "5795afa1_b0d2_4c24_a57fbd05f1563135" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1109 1 0 "87f8cf68_441d_40a9_b1c2b470b62a48e7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1110 1 0 "09610392_7d07_4759_b0de8ab27f87e492" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 1111 1 0 "87f8cf68_441d_40a9_b1c2b470b62a48e7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TipCounter_Read" "End" } // }} "" // {{{ 5 "TipCounter_Write" "Begin" function TipCounter_Write( device & ML_STAR, sequence i_seq_TipSequence, variable i_str_TipCounter ) void { // }} "" private variable _strFunctionName; private variable l_strSequenceName; private variable l_intTotalPositions; private variable l_intAvailable; private variable l_strError; private variable l_strInstrumentClass; private variable l_intTipType; private variable l_strLabID; private variable l_intEmptyCheck; private sequence l_seqTemp; private variable l_strName; // {{ 5 "TipCounter_Write" "InitLocals" // }} "" // {{ 1150 1 0 "fec747c3_faef_4a21_90b6a4a208c00a87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1151 1 0 "3f464d5d_89ea_49c0_88835d3e8dd9a361" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 1153 1 0 "bfad08e1_9041_4224_a0b458c7738c9a4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 1154 1 0 "fec747c3_faef_4a21_90b6a4a208c00a87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1155 1 0 "167741a1_0111_4e10_b93a75f0487a79a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::InitTipCountingLibrary(); // }} "" // {{{ 1156 1 0 "2f70b95c_7d18_44a1_89bb72cabec4d109" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_TipCounter = StrConcat2(i_str_TipCounter, Translate("")); // }} "" // {{ 1157 1 0 "a939d8c0_303b_48dc_813a30dd841b8bc5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_TipCounter == "") { // }} "" // {{{ 1158 1 0 "a1ef771b_c6ce_4bd2_a7cdc6e7f3315510" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_strError = StrConcat4(Translate("Tip counter '"), i_str_TipCounter, Translate("' is invalid!"), Translate("")); // }} "" // {{{ 1159 1 0 "9fd10ae0_4d16_497a_b0ae6976c8081f7f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, l_strError); // }} "" // {{ 1160 1 0 "a939d8c0_303b_48dc_813a30dd841b8bc5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1161 1 0 "ab969e6b_5ee0_4805_b7c1b313c6c24505" "{B31F353B-5D80-11d4-A5EB-0050DA737D89}" l_intEmptyCheck = i_seq_TipSequence.GetCurrentPosition(); // }} "" // {{ 1162 1 0 "a06d3952_b183_4f7e_bf87997201cf5d16" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (l_intEmptyCheck == 0) { // }} "" // {{{ 1163 1 0 "459e0ee3_5bce_4373_ad7396220af154a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_strName = SeqGetName(i_seq_TipSequence); // }} "" // {{ 1164 1 0 "885a00f5_47b0_4162_b2f781b368aae648" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (l_strName == "seq_Temp") { // }} "" // {{ 1165 1 0 "2cca1468_5ea0_4754_913b28029ebc8d92" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_TipSequence.SetCurrentPosition(1); // }} "" // {{{ 1166 1 0 "29831b8c_d095_4f26_9d7c9a90e1d8f224" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_strLabID = SeqGetLabwareId(i_seq_TipSequence); // }} "" // {{ 1167 1 0 "e1119b16_91e4_40b6_b50c17bca9b36c4c" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" i_seq_TipSequence.SetCurrentPosition(0); // }} "" // {{ 1168 1 0 "885a00f5_47b0_4162_b2f781b368aae648" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1169 1 0 "b7f8f92f_034a_42c7_bc238cc3e15dd6e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(l_seqTemp); // }} "" ML_STAR.CopyResetSequence(i_seq_TipSequence.GetName(), l_seqTemp); // {{{ 1171 1 0 "f9bad9ac_773b_4e53_9854a691cbc91b39" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_strLabID = SeqGetLabwareId(l_seqTemp); // }} "" // {{ 1172 1 0 "885a00f5_47b0_4162_b2f781b368aae648" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1173 1 0 "15c97361_a84f_4d01_9d1d39bc4357fe2f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::RemoveUsedPositions(ML_STAR, i_seq_TipSequence); // }} "" // {{ 1174 1 0 "a06d3952_b183_4f7e_bf87997201cf5d16" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1175 1 0 "ad0d4e16_dc64_4044_92bffd692f80de64" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::RemoveUsedPositions(ML_STAR, i_seq_TipSequence); // }} "" // {{{ 1176 1 0 "3009a105_d684_4924_88d3f48156e41df9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_strLabID = SeqGetLabwareId(i_seq_TipSequence); // }} "" // {{ 1177 1 0 "a06d3952_b183_4f7e_bf87997201cf5d16" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1178 1 0 "c27cd0a8_f09e_4322_8cfce011d8b6b2c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetSequenceName(ML_STAR, i_seq_TipSequence, l_strSequenceName, l_intTotalPositions); // }} "" // {{{ 1179 1 0 "f02c1b7d_1e5f_41c0_886939edf81582e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetTipType(ML_STAR, l_strLabID, l_intTipType); // }} "" // {{ 1180 1 0 "670d6f87_c8e2_4125_ae2de7ff382bcd6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (l_intTipType != -1) { // }} "" // {{{ 1181 1 0 "d218d1e7_e9d8_422f_97d39177ddb93835" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_strInstrumentClass = DevGetInstrumentName(ML_STAR); // }} "" // {{{ 1182 1 0 "793c6ebb_910a_4489_aa21c1ebc17c18fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::CheckTipCounterName(i_str_TipCounter); // }} "" // {{{ 1183 1 0 "75aca573_0231_409d_9e248bfcd5ccd80d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Read tip counter: "), i_str_TipCounter); // }} "" // {{{ 1184 1 0 "096aaa63_3b23_45e5_bcdbc9f50bc21f7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _SortSequenceLabIDXY(ML_STAR, i_seq_TipSequence); // }} "" // {{{ 1185 1 0 "3d5ad483_19c1_4b3c_873cd10d97232158" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::CreateNewHxElementCounter(i_seq_TipSequence, l_intTipType, i_str_TipCounter, l_strInstrumentClass); // }} "" // {{{ 1186 1 0 "621256a3_de73_4ec3_bc80d1dcbd9d6573" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::WriteHxElementCounter(i_seq_TipSequence, l_intTipType, i_str_TipCounter, l_strInstrumentClass); // }} "" // {{{ 1187 1 0 "1e091ae4_cd73_4cc9_888d64739220c130" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_intAvailable = SeqGetTotal(i_seq_TipSequence); // }} "" // {{{ 1188 1 0 "952c4eee_dae1_4d6e_b390cc6e97769b9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE08(l_strSequenceName, Translate(" :: "), l_intAvailable, Translate(" / "), l_intTotalPositions, Translate(""), Translate(""), Translate("")); // }} "" // {{ 1189 1 0 "670d6f87_c8e2_4125_ae2de7ff382bcd6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1190 1 0 "4898c18b_c2bb_4c39_845a7009758fe72a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("COULD NOT DETERMINE TIP TYPE!")); // }} "" // {{ 1191 1 0 "670d6f87_c8e2_4125_ae2de7ff382bcd6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1192 1 0 "9695c773_7904_4f7c_aee8d8f25dda0e4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1193 1 0 "48854ae1_2d4e_430f_a3158df30f108a64" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 1194 1 0 "9695c773_7904_4f7c_aee8d8f25dda0e4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TipCounter_Write" "End" } // }} "" // {{{ 5 "TipCounter_Edit" "Begin" function TipCounter_Edit( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter, variable i_int_TimeOut ) void { // }} "" private variable _strFunctionName; private variable l_strSequenceName; private variable l_intTotalPositions; private variable l_intAvailable; private variable l_strError; private variable l_intTipType; private variable l_strInstrumentClass; private variable l_strLabID; private variable l_intEmptyCheck; // {{ 5 "TipCounter_Edit" "InitLocals" // }} "" // {{ 1042 1 0 "5d4f2ecd_cce3_4645_84cd61c9af23eb43" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1043 1 0 "cc28f8a7_6875_4c9a_88c7705e8b6e1047" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 1045 1 0 "fdd649b0_f87f_4a07_987b00c6c13d568a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 1046 1 0 "5d4f2ecd_cce3_4645_84cd61c9af23eb43" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1047 1 0 "ee834717_cc00_44e1_911b9b9f54f94a34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_OFFSET_GLOBAL::INIT::InitializeVariables(); // }} "" // {{{ 1048 1 0 "fb9a44f3_3431_45a4_999c38c47fe1abaa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::InitTipCountingLibrary(); // }} "" // {{{ 1049 1 0 "5ab33cd2_adec_4a68_a6bc21cb7d286d03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_TipCounter = StrConcat2(i_str_TipCounter, Translate("")); // }} "" // {{ 1050 1 0 "4665d479_18dc_4e07_87988e57c91e0c00" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_TipCounter == "") { // }} "" // {{{ 1051 1 0 "e2b20421_ffed_4b77_8504d4af5730cf2d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_strError = StrConcat4(Translate("Tip counter '"), i_str_TipCounter, Translate("' is invalid!"), Translate("")); // }} "" // {{{ 1052 1 0 "87aac4ea_28d1_49a2_a56755fe79862f96" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, l_strError); // }} "" // {{ 1053 1 0 "4665d479_18dc_4e07_87988e57c91e0c00" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1054 1 0 "5fadcde7_447e_4235_b8171941c768446c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" l_strLabID = Translate(""); // }} "" // {{ 1055 1 0 "630e94af_3026_4f8e_818dd941298045dc" "{B31F353B-5D80-11d4-A5EB-0050DA737D89}" l_intEmptyCheck = io_seq_TipSequence.GetCurrentPosition(); // }} "" { sequence sequenceObj; ML_STAR.CopyResetSequence(io_seq_TipSequence.GetName(), sequenceObj); l_strLabID = sequenceObj.GetLabwareId(); //if(l_intEmptyCheck == 0) ML_STAR.CopyResetSequence(io_seq_TipSequence.GetName(), io_seq_TipSequence); } /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1057 1 0 "dbf660f7_c909_4039_993198d1c25e8238" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_strLabID = SeqGetLabwareId(io_seq_TipSequence); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 1058 1 0 "220c6440_58de_4a3f_868822b42d597fb0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetSequenceName(ML_STAR, io_seq_TipSequence, l_strSequenceName, l_intTotalPositions); // }} "" // {{{ 1059 1 0 "3cf61fdd_0f5e_4292_8983e97e0a43311b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetTipType(ML_STAR, l_strLabID, l_intTipType); // }} "" // {{ 1060 1 0 "4512ee8f_76d7_4237_bea5c356e06b16bf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (l_intTipType != -1) { // }} "" // {{{ 1061 1 0 "0d0c9784_ce96_45ca_a861eef0442b617c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_strInstrumentClass = DevGetInstrumentName(ML_STAR); // }} "" // {{{ 1062 1 0 "6d5b02b8_f668_4966_9a0b900f757c4383" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::CheckTipCounterName(i_str_TipCounter); // }} "" // {{{ 1063 1 0 "04ccf350_98aa_44e6_81dbe31a272dd891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Read tip counter: "), i_str_TipCounter); // }} "" // {{{ 1064 1 0 "92ef9a83_72b5_4cdc_8687073a59085311" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::CreateNewHxElementCounter(io_seq_TipSequence, l_intTipType, i_str_TipCounter, l_strInstrumentClass); // }} "" // {{{ 1065 1 0 "61644db6_a2e2_466f_b1125e910a196249" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::ReadFromHxElementCounter(ML_STAR, io_seq_TipSequence, l_intTipType, i_str_TipCounter, l_strInstrumentClass); // }} "" // {{{ 1066 1 0 "e40ba698_540c_4294_b3b174eb434b882e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::RemoveUsedPositions(ML_STAR, io_seq_TipSequence); // }} "" // {{{ 1067 1 0 "8e95e599_2006_496b_81fe651702bc7640" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::EditSequence(ML_STAR, io_seq_TipSequence, BOOLEON::TRUE, i_int_TimeOut); // }} "" // {{{ 1068 1 0 "3cb60390_447d_41b9_a218eb71434170b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _SortSequenceLabIDXY(ML_STAR, io_seq_TipSequence); // }} "" // {{{ 1069 1 0 "e1dafdfc_b293_4647_84b08ec5d7ec85cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::WriteHxElementCounter(io_seq_TipSequence, l_intTipType, i_str_TipCounter, l_strInstrumentClass); // }} "" // {{{ 1070 1 0 "9c161379_d014_4bb4_b427ac8e1ec7fe1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_intAvailable = SeqGetTotal(io_seq_TipSequence); // }} "" // {{{ 1071 1 0 "f35ae057_8ad2_48df_8d16e0d3634c52a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE08(l_strSequenceName, Translate(" :: "), l_intAvailable, Translate(" / "), l_intTotalPositions, Translate(""), Translate(""), Translate("")); // }} "" // {{{ 1072 1 0 "4c11d504_9fdb_40e3_b16f6832e61329e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_TipSequence, 5, Translate("")); // }} "" // {{ 1073 1 0 "4512ee8f_76d7_4237_bea5c356e06b16bf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1074 1 0 "a1ec7d18_ec8d_48a9_8486b40762a850cf" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("COULD NOT DETERMINE TIP TYPE!")); // }} "" // {{ 1075 1 0 "4512ee8f_76d7_4237_bea5c356e06b16bf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1076 1 0 "4be8ea44_3057_4a43_ba7d13e5201732c6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1077 1 0 "dbb96dfb_97e8_45ff_be1fad5514d9e063" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 1078 1 0 "4be8ea44_3057_4a43_ba7d13e5201732c6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TipCounter_Edit" "End" } // }} "" // {{{ 5 "_GetTipCounterFolderPath" "Begin" private function _GetTipCounterFolderPath( variable & o_str_TipCounterFolder ) void { // }} "" private variable str_FileName; private variable str_SubFileName; // {{ 5 "_GetTipCounterFolderPath" "InitLocals" o_str_TipCounterFolder = 0; // }} "" // {{ 1478 1 0 "2b06dc86_4bb8_46ee_b5970a1f7c27ba60" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_TipCounterFolder = Translate(""); // }} "" // {{ 1479 1 0 "16adaf2f_023c_48d8_ad5b0c635de6357a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_SubFileName = Translate(""); // }} "" str_SubFileName = GetFileName(); // {{{ 1481 1 0 "39f859cc_4597_49de_b143af932b069fb2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FileName = HSLExtensions::File::GetFileName(str_SubFileName); // }} "" // {{{ 1482 1 0 "507f0293_4e4b_46ba_af66a9f4af51c12b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(str_SubFileName, str_FileName, Translate("")); // }} "" // {{{ 1483 1 0 "2681f1eb_6bb4_4267_94638129989cb8e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str_TipCounterFolder = StrConcat8(str_SubFileName, Translate("\\"), Translate("Resources"), Translate("\\"), Translate("TipCounters"), Translate("\\"), Translate(""), Translate("")); // }} "" // {{{ 1484 1 0 "aecf018e_8deb_42d6_9d19a7b778551de3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(o_str_TipCounterFolder, Translate("\\"), Translate("\\\\")); // }} "" // {{{ 1485 1 0 "38b4ebc0_520e_4d88_b35c378bc7b782c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::Directory::Create(o_str_TipCounterFolder); // }} "" // {{{ 5 "_GetTipCounterFolderPath" "End" } // }} "" // {{{ 5 "_RemoveInvalidCharacters" "Begin" private function _RemoveInvalidCharacters( variable & io_str_Value ) void { // }} "" // {{ 5 "_RemoveInvalidCharacters" "InitLocals" // }} "" // {{{ 1552 1 0 "0c288e1c_8ff8_42db_b7aede6bf8822bb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(io_str_Value, Translate(" "), Translate("_")); // }} "" // {{{ 1553 1 0 "dd5a9374_f426_4bc2_9e1d186c1064b8c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(io_str_Value, Translate("."), Translate("_")); // }} "" // {{{ 1554 1 0 "e9cb4757_60a6_4bf1_b3216a135debeda3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(io_str_Value, Translate("-"), Translate("_")); // }} "" // {{{ 1555 1 0 "0fcd2931_e831_46e3_bf2ebc49d5789ada" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(io_str_Value, Translate("+"), Translate("_")); // }} "" // {{{ 1556 1 0 "30fc4303_49ab_4163_a11bb0203c555a0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(io_str_Value, Translate("@"), Translate("_")); // }} "" // {{{ 1557 1 0 "9e76b03b_e058_46a4_925c7db021a80734" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(io_str_Value, Translate("!"), Translate("_")); // }} "" // {{{ 1558 1 0 "593f059e_e4b1_419b_8d49283698ffe238" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(io_str_Value, Translate("#"), Translate("_")); // }} "" // {{{ 1559 1 0 "f9e7db57_ec42_4fb5_a07f2930f0cda1b0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(io_str_Value, Translate("$"), Translate("_")); // }} "" // {{{ 1560 1 0 "8cab63ac_3e01_4138_aebd3571db44f3a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(io_str_Value, Translate("%"), Translate("_")); // }} "" // {{{ 1561 1 0 "ae1621bf_0945_4059_96511e9f4d9694da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(io_str_Value, Translate("^"), Translate("_")); // }} "" // {{{ 1562 1 0 "7be9e888_54cc_43a1_bb433be10ad2a925" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(io_str_Value, Translate("&"), Translate("_")); // }} "" // {{{ 1563 1 0 "ae817bea_7ebb_458e_bd7d34f3c8b4158a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(io_str_Value, Translate("*"), Translate("_")); // }} "" // {{{ 1564 1 0 "d3054bfb_bbcb_4268_a218bda709c29331" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(io_str_Value, Translate("("), Translate("_")); // }} "" // {{{ 1565 1 0 "38b914d0_5acc_4dae_8be315534185e9ba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(io_str_Value, Translate(")"), Translate("_")); // }} "" // {{{ 1566 1 0 "61ef0255_1b56_4440_a9a47df0976443a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(io_str_Value, Translate("="), Translate("_")); // }} "" // {{{ 5 "_RemoveInvalidCharacters" "End" } // }} "" // {{{ 5 "TipTypeCheck1mL" "Begin" function TipTypeCheck1mL( device & ML_STAR, variable i_str_ReturnFromTipPickUp, sequence & o_seq_IncorrectTipReturn, variable & o_str_IncorrectChannels ) variable { // }} "" private variable _strFunctionName; private variable int_Total1mLChannels; private variable int_TotalPositions; private variable int_CurrentAspirationMode; private variable str_LibraryFolderPath; private variable str_CenterSpotFilePath; private variable int_Position; private variable str_LabwareID; private variable arr_LabwareIDs[]; private variable arr_PositionIDs[]; private variable arr_TipTypes[]; private variable int_ChannelIndex; private variable arr_Channel[]; private variable str_PositionID; private variable int_TipType; private variable flt_ChCoord_Y; private variable flt_ChCoord_Z; private variable flt_ChCoord_X; private variable arr_TempLabware[]; private variable str_TempLabwareID; private sequence seq_TempAspPosition; private variable int_TotalTempLabware; private variable str_ChannelPattern; private variable bln_SimulationMode; private variable flt_NotUsed; private variable str_LiquidClass; private variable str_ReturnAsp; private variable int_Recovery; private variable arr_TipCorrect[]; private variable str_ChannelPattern_Return; private variable int_NumChanReturns; private variable int_RetryCheck; private sequence seq_TempReturnPositions; private variable bln_LabwareExists; private variable i; private variable ret_int_AllGood; private variable int_TADM_Mode; private variable flt_AspVolume; private variable arr_LiquidClasses[]; private variable arr_AspVolumes[]; // {{ 5 "TipTypeCheck1mL" "InitLocals" { sequence __temp; o_seq_IncorrectTipReturn = __temp; } o_str_IncorrectChannels = 0; // }} "" // {{ 1196 1 0 "c197a365_652a_4711_bc8e2e213294d9cd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1197 1 0 "d1938873_b69f_4c69_98b078f15d3ee78e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 1199 1 0 "a187b8e6_1d78_4927_ab4cc39f0318f69c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 1200 1 0 "c197a365_652a_4711_bc8e2e213294d9cd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1201 1 0 "83e7a2e2_8707_4eaa_a66deaba012db3a1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_int_AllGood = -1; // }} "" // {{ 1202 1 0 "b84b1b1b_aabc_49b1_8fe427b0dc06ddf6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_IncorrectChannels = Translate(""); // }} "" // {{{ 1203 1 0 "d534fd0a_d777_4c5e_86a145a7a16f7740" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq_IncorrectTipReturn); // }} "" // {{{ 1204 1 0 "cc6fd535_2e9c_4e83_b23dbd179f66dee9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_SimulationMode = Util::GetSimulationMode(); // }} "" // {{{ 1205 1 0 "78a85b00_1fbe_41c5_b94b89cf25dbc487" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LibraryFolderPath = FilGetLibraryPath(); // }} "" // {{{ 1206 1 0 "ea828ab9_9542_4073_b06551978e5c501e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_CenterSpotFilePath = StrConcat4(str_LibraryFolderPath, Translate("\\STAR Tools\\Resources\\SubMethods\\"), Translate("CenterSpot"), Translate(".rck")); // }} "" // {{{ 1207 1 0 "0e180322_5d6d_47a2_b5582b8285320f93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" CHANNEL_QUERY_1ML::RequestAspirationMonitoringMode(ML_STAR, int_CurrentAspirationMode); // }} "" // {{ 1208 1 0 "517dcc68_a376_4dcc_8b1d6e4ddca2879b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_CurrentAspirationMode == 0) { // }} "" // {{ 1209 1 0 "18ed8ac2_2e13_43e9_8cd8550b9ac480d6" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=========================================\nASPIRATION MONITORING IS MAD\n=========================================")); // }} "" // {{ 1210 1 0 "517dcc68_a376_4dcc_8b1d6e4ddca2879b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1211 1 0 "ec2c4197_058a_4d4e_9fc523239ba447cf" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=========================================\nASPIRATION MONITORING IS TADM\n=========================================")); // }} "" // {{ 1212 1 0 "517dcc68_a376_4dcc_8b1d6e4ddca2879b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1213 1 0 "21ccb402_e87e_4c52_968744f861f6f288" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TADM_Mode = HSLExtensions::Venus::GetTadmMode(ML_STAR); // }} "" // {{ 1214 1 0 "fc87d37d_e101_49c3_98107d7b7b0a840e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TADM_Mode == 1) { // }} "" // {{ 1215 1 0 "76e71649_8e93_4fe5_963e97c0739ac1d0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=========================================\nTADM IS IN RECORDING MODE\n=========================================")); // }} "" // {{ 1216 1 0 "fc87d37d_e101_49c3_98107d7b7b0a840e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1217 1 0 "49606005_8e26_46dc_8cc883b87a7ae18c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TADM_Mode == 2) { // }} "" // {{ 1218 1 0 "d904edb9_af4e_4841_b57c56dd7704c21e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=========================================\nTADM IS IN MONITORING MODE\n=========================================")); // }} "" // {{ 1219 1 0 "49606005_8e26_46dc_8cc883b87a7ae18c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1220 1 0 "b3e8640a_12f6_48bf_be9923e28da5de37" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" Get1mLChannelCount(ML_STAR, int_Total1mLChannels); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 1221 1 0 "04f958bf_119a_41a8_b997dd06b1c0ac62" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_LiquidClass == "") { // }} "" // {{ 1222 1 0 "20b81a37_1c32_4acb_8fb27603f306f9aa" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("==========================================================\nTIP TYPE NOT COMPATIBLE WITH CHECK\n==========================================================")); // }} "" // {{ 1223 1 0 "05fba4f2_c2a3_4b2b_b0c1a9d7c049aae0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1224 1 0 "9263d8f6_8560_45ec_8320b40843dd390f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 1225 1 0 "05fba4f2_c2a3_4b2b_b0c1a9d7c049aae0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1226 1 0 "45910900_a966_42f2_a5898068f2751db0" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_int_AllGood); // }} "" // {{ 1227 1 0 "04f958bf_119a_41a8_b997dd06b1c0ac62" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1228 1 0 "7c9cef53_4c25_4f3d_967ea334c255f222" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_TempLabware.SetSize(0); // }} "" // {{ 1229 1 0 "dafd9fcc_6593_47fd_8934e06e19a2765b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_RetryCheck = 0; int_RetryCheck < 1;) { int_RetryCheck = int_RetryCheck + 1; // }} "" // {{ 1230 1 0 "922ac80c_37e1_456e_a8305e9faa2a9d31" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1231 1 0 "8180eb7e_b178_4a3e_8391fb8c8136c823" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_Channel.SetSize(int_Total1mLChannels); // }} "" // {{ 1232 1 0 "3e882a31_1d37_482c_9c4b0b1240c5d48e" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_LabwareIDs.SetSize(int_Total1mLChannels); // }} "" // {{ 1233 1 0 "6185ff1f_15fd_41e6_9d9f76e86d0c9053" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_PositionIDs.SetSize(int_Total1mLChannels); // }} "" // {{ 1234 1 0 "5a1b6778_86bb_4ed1_92e0fc4921b0e48c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_TipTypes.SetSize(int_Total1mLChannels); // }} "" // {{ 1235 1 0 "f0af711c_4d52_4cab_8b697d9decb4392e" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_LiquidClasses.SetSize(int_Total1mLChannels); // }} "" // {{ 1236 1 0 "a3eb9f68_a387_423a_b1431cb911f9916b" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_AspVolumes.SetSize(int_Total1mLChannels); // }} "" // {{ 1237 1 0 "b0fd0d17_0538_44b1_b2a59ce0e53990c2" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_TipCorrect.SetSize(int_Total1mLChannels); // }} "" // {{{ 1238 1 0 "2e95bd1c_2c44_40f4_ba491b25b0d6534d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_TempAspPosition); // }} "" // {{ 1239 1 0 "fbc9c6f5_ba72_42fb_ac5c85aa746f1db7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_Total1mLChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{ 1240 1 0 "59afd2ea_a5b4_4b99_a2bd00644ac88810" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_Channel.SetAt(int_ChannelIndex-1, int_ChannelIndex); // }} "" // {{ 1241 1 0 "450a7b01_5bcf_4610_aba5736c0fb0f74a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_LabwareIDs.SetAt(int_ChannelIndex-1, Translate("")); // }} "" // {{ 1242 1 0 "62b57256_bf32_4807_aab7199590927b06" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_PositionIDs.SetAt(int_ChannelIndex-1, Translate("")); // }} "" // {{ 1243 1 0 "ffcc8b0c_a7e1_4afc_864e3e891a75049c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_LiquidClasses.SetAt(int_ChannelIndex-1, Translate("")); // }} "" // {{ 1244 1 0 "46ece4db_6456_4398_bafcf1827f13a8df" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_TipTypes.SetAt(int_ChannelIndex-1, -1); // }} "" // {{ 1245 1 0 "5564149e_c466_4ea1_88f39fc5b767e133" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_TipCorrect.SetAt(int_ChannelIndex-1, 0); // }} "" // {{ 1246 1 0 "5e44a6fb_ce85_479c_b80f7bae1f4dfdf3" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_AspVolumes.SetAt(int_ChannelIndex-1, 0); // }} "" // {{ 1247 1 0 "fbc9c6f5_ba72_42fb_ac5c85aa746f1db7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1248 1 0 "c61a2058_b490_4709_8abffb8af3e5dcf5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ChannelPattern = Translate(""); // }} "" // {{ 1249 1 0 "922ac80c_37e1_456e_a8305e9faa2a9d31" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1250 1 0 "f46259f9_839a_475d_95191190f191a3e0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1251 1 0 "c08d8f18_1b7c_4789_8cb09e5a15c216b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositions = StepReturn::GetNumberOfPositions(i_str_ReturnFromTipPickUp); // }} "" // {{ 1252 1 0 "06b5bb00_8927_4b2d_b43b9dc0706d067f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_Total1mLChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{{ 1253 1 0 "7ce3d53c_193e_4de7_8712e4a9c0c32adf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Position = StepReturn::GetPositionFromNum(int_ChannelIndex, i_str_ReturnFromTipPickUp); // }} "" // {{{ 1254 1 0 "be1ca465_e0ad_48ac_bca45940395761d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabwareID = StepReturn::GetLabwareId(int_Position, i_str_ReturnFromTipPickUp); // }} "" // {{{ 1255 1 0 "fbc8e0e7_fdf5_46a9_a05ec1b587a4729b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PositionID = StepReturn::GetPositionId(int_Position, i_str_ReturnFromTipPickUp); // }} "" // {{ 1256 1 0 "248f3641_6715_460b_a6ab9f6795e980ac" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (str_LabwareID != "") { // }} "" // {{{ 1257 1 0 "58371f21_ca6e_472e_84c99bcae73b796d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetTipType(ML_STAR, str_LabwareID, int_TipType); // }} "" // {{ 1258 1 0 "e280ce4f_d329_4a0f_aede4cf0d2d3f34d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_LabwareIDs.SetAt(int_ChannelIndex-1, str_LabwareID); // }} "" // {{ 1259 1 0 "1c229233_cb95_49d3_869a0d62a730558e" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_PositionIDs.SetAt(int_ChannelIndex-1, str_PositionID); // }} "" // {{ 1260 1 0 "d4220e64_1b2d_408f_a2a22470a36ce42c" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_TipTypes.SetAt(int_ChannelIndex-1, int_TipType); // }} "" // {{{ 1261 1 0 "8f94afeb_70a8_40be_a78945e77ff8fcd4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _DetermineTipCheckLC(int_TipType, str_LiquidClass, flt_AspVolume); // }} "" // {{ 1262 1 0 "bdb91223_c3f9_492e_a874a53b71d1b4f6" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_LiquidClasses.SetAt(int_ChannelIndex-1, str_LiquidClass); // }} "" // {{ 1263 1 0 "8d470313_fb82_48bd_b3b7f76bd6052f58" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_AspVolumes.SetAt(int_ChannelIndex-1, flt_AspVolume); // }} "" // {{ 1264 1 0 "4f5e7b15_6cfc_4d36_b875e52afce252cc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_SimulationMode == BOOLEON::FALSE) { // }} "" // {{{ 1265 1 0 "c582a9d3_48fa_4e6f_b7c41dcb69f64ca5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" CHANNEL_QUERY_1ML::Get_Channel_Position(ML_STAR, int_ChannelIndex, flt_ChCoord_X, flt_ChCoord_Y, flt_ChCoord_Z); // }} "" // {{ 1266 1 0 "4f5e7b15_6cfc_4d36_b875e52afce252cc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1267 1 0 "61b2c8fc_61c5_47ed_bc26f49a720f631c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, str_LabwareID, str_PositionID, flt_ChCoord_X, flt_ChCoord_Y, flt_NotUsed, flt_NotUsed); // }} "" // {{ 1268 1 0 "2976dbe5_b9d6_4954_a5371c393f942221" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_ChCoord_Z = 245.0; // }} "" // {{ 1269 1 0 "4f5e7b15_6cfc_4d36_b875e52afce252cc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 1270 1 0 "80433dee_11bd_4c71_8b867665b3741796" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_ChCoord_Z = flt_ChCoord_Z - 1.0; // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 1271 1 0 "7342ca41_62c1_43ca_bc5037292c7f0383" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TempLabwareID = StrConcat12(int_ChannelIndex, Translate("_"), str_LabwareID, Translate("_"), str_PositionID, Translate("_"), int_TipType, Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{ 1272 1 0 "9d4bf1da_2fe6_4803_b67c27c05f28a1f0" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_TempLabware.AddAsLast(str_TempLabwareID); // }} "" // {{{ 1273 1 0 "2205e385_b421_4209_aea2ea4eb71b7886" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_LabwareExists = DevIsValidLabwareForCurrentDeckLayout(ML_STAR, str_TempLabwareID); // }} "" // {{ 1274 1 0 "f91e5773_d9ed_4b64_b56b2446a30b8968" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_LabwareExists == BOOLEON::TRUE) { // }} "" // {{{ 1275 1 0 "7edff0a3_0cdf_43ae_bceeaec5502988fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevRemoveLabware(ML_STAR, str_TempLabwareID); // }} "" // {{ 1276 1 0 "f91e5773_d9ed_4b64_b56b2446a30b8968" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1277 1 0 "1b37d023_7d80_4592_893ae7d5826fc6c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevAddLabware(ML_STAR, str_TempLabwareID, str_CenterSpotFilePath, flt_ChCoord_X, flt_ChCoord_Y, flt_ChCoord_Z, 0.0); // }} "" // {{{ 1278 1 0 "62bc4fb9_ed22_4597_9425a1eb7df6070e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelPattern = StrConcat2(str_ChannelPattern, Translate("1")); // }} "" // {{{ 1279 1 0 "0b9030f5_e4f5_41f2_a71371a55de701a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(seq_TempAspPosition, str_TempLabwareID, Translate("1")); // }} "" // {{ 1280 1 0 "248f3641_6715_460b_a6ab9f6795e980ac" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1281 1 0 "8ae1e577_d55a_46ae_a973ac9f45d17174" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelPattern = StrConcat2(str_ChannelPattern, Translate("0")); // }} "" // {{ 1282 1 0 "248f3641_6715_460b_a6ab9f6795e980ac" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1283 1 0 "06b5bb00_8927_4b2d_b43b9dc0706d067f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1284 1 0 "f973ee25_d547_42e7_9604da92dd228c9f" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TempAspPosition.SetCurrentPosition(1); // }} "" // {{{ 1285 1 0 "0fc938e5_6f2d_47a6_a3dbd75b3d51c739" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Channel Pattern to check: "), str_ChannelPattern); // }} "" // {{{ 1286 1 0 "dcadf68d_414a_4dd2_a0fe371c90229e72" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_4(Translate("Channel Tip Type Labware ID Position ID"), arr_Channel, arr_TipTypes, arr_LabwareIDs, arr_PositionIDs); // }} "" // {{ 1287 1 0 "3f8acc35_08fe_48e6_bc7575af4472e9ba" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalTempLabware=arr_TempLabware.GetSize(); // }} "" // {{ 1288 1 0 "9fa0f677_b97a_4f4d_8d2f5199dfe2f860" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalTempLabware == 0) { // }} "" // {{ 1289 1 0 "0449715c_88b6_4af7_b86b9554f6708033" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("==========================================================\nNO TIPS TO CHECK\n==========================================================")); // }} "" // {{ 1290 1 0 "02e5af70_5413_4545_8d3b15cf959677b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1291 1 0 "6e250af5_025b_4042_a03b27bbd4e6076b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 1292 1 0 "02e5af70_5413_4545_8d3b15cf959677b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1293 1 0 "fbd1dab6_c526_42cb_b25a5d41d1acbc9e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_int_AllGood); // }} "" // {{ 1294 1 0 "9fa0f677_b97a_4f4d_8d2f5199dfe2f860" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1295 1 0 "f46259f9_839a_475d_95191190f191a3e0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1296 1 0 "6c82ae62_7962_4a56_9252fec95f94a116" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=========================================\nSET MODE TO TADM\n=========================================")); // }} "" // {{{ 1297 1 0 "909e9559_d8e2_4b74_8dfed42f0633ff7d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" CHANNEL_QUERY_1ML::SetAspirationMonitoringMode(ML_STAR, 1); // }} "" // {{ 1298 1 0 "cdfafa82_ef09_4f58_b317dfe9b1c34c6f" "ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2("cdfafa82_ef09_4f58_b317dfe9b1c34c6f"); // Aspirate str_ReturnAsp = arrRetValues[2]; } // }} "" // {{ 1299 1 0 "9056cfd0_c24a_42c7_a2b32c95be2629e4" "ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2("9056cfd0_c24a_42c7_a2b32c95be2629e4"); // Dispense } // }} "" // {{ 1300 1 0 "e7c1812c_48a8_45b0_93adcbeb8e3342f3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("=========================================\nSET MODE BACK TO INITIAL SETTING\n=========================================")); // }} "" // {{{ 1301 1 0 "2e754af7_afa8_4ba2_a3417ff5e5f780ea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" CHANNEL_QUERY_1ML::SetAspirationMonitoringMode(ML_STAR, int_CurrentAspirationMode); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 1302 1 0 "7bb47b2f_6b13_41e2_adc58af9757fcdc9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1303 1 0 "9c3a1936_ef46_4968_8c510a5804d61506" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_Total1mLChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{ 1304 1 0 "dcb9d387_e5d6_45f7_8161858fc7e0d7bf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arr_LabwareIDs.ElementAt( int_ChannelIndex -1) != "") { // }} "" // {{{ 1305 1 0 "a545d0ae_6b79_4541_a4a83c394051b24a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" CHANNEL_QUERY_1ML::InitializeDispenseDrive(ML_STAR, int_ChannelIndex); // }} "" // {{ 1306 1 0 "dcb9d387_e5d6_45f7_8161858fc7e0d7bf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1307 1 0 "9c3a1936_ef46_4968_8c510a5804d61506" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1308 1 0 "7bb47b2f_6b13_41e2_adc58af9757fcdc9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1309 1 0 "7e93e943_ac1e_4a1d_bb90976cb3163b4d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1310 1 0 "b167cada_75d6_40e6_aa0f6df4be3e5025" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_TempReturnPositions); // }} "" // {{ 1311 1 0 "8ff5abbb_1ed3_4170_b6bc724cee7f2e84" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ChannelPattern_Return = Translate(""); // }} "" // {{ 1312 1 0 "3d6e0f20_cb3d_46dc_8dc375f29a39779f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_Total1mLChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{{ 1313 1 0 "0cf7e6c8_3237_44fd_88145007eedf4143" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Position = StepReturn::GetPositionFromNum(int_ChannelIndex, str_ReturnAsp); // }} "" // {{ 1314 1 0 "332dd716_c8b8_42d2_b28eae0d8b0421ee" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1315 1 0 "8ea4d45d_ae67_4402_8c9826c0329bf511" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Recovery = StepReturn::GetRecoveryButton(int_Position, str_ReturnAsp); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 1316 1 0 "c7d010a0_aa65_437f_945f2e77758a5bf0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_SimulationMode == BOOLEON::TRUE) { // }} "" // {{ 1317 1 0 "2bc2d9d4_0054_4f8a_992bee0b09fd1f0f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelIndex == 2) { // }} "" // {{ 1318 1 0 "e911c42f_99e6_46ae_aeafa2cb66e2c44c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_Recovery = 9; // }} "" // {{ 1319 1 0 "2bc2d9d4_0054_4f8a_992bee0b09fd1f0f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1320 1 0 "c7d010a0_aa65_437f_945f2e77758a5bf0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1321 1 0 "5d9a91bf_c869_4d92_857f848557c6502d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arr_LabwareIDs.ElementAt( int_ChannelIndex -1) != "") { // }} "" // {{ 1322 1 0 "8beb0111_d6dc_41fd_9a6a0b14f8637118" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Recovery != 9) { // }} "" // {{ 1323 1 0 "8943ac95_90b4_40ad_a61d79e8c409c162" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_TipCorrect.SetAt(int_ChannelIndex-1, 1); // }} "" // {{{ 1324 1 0 "f8fde6e4_bac5_4338_9e986c25e7cddf5d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelPattern_Return = StrConcat2(str_ChannelPattern_Return, Translate("0")); // }} "" // {{ 1325 1 0 "8beb0111_d6dc_41fd_9a6a0b14f8637118" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1326 1 0 "c9508edb_cb51_458b_9d11163f9e3bd232" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelPattern_Return = StrConcat2(str_ChannelPattern_Return, Translate("1")); // }} "" // {{{ 1327 1 0 "58618165_591f_4826_980718bd7cb5a8e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq_IncorrectTipReturn, arr_LabwareIDs.ElementAt( int_ChannelIndex -1), arr_PositionIDs.ElementAt( int_ChannelIndex -1)); // }} "" // {{ 1328 1 0 "8beb0111_d6dc_41fd_9a6a0b14f8637118" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1329 1 0 "5d9a91bf_c869_4d92_857f848557c6502d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1330 1 0 "c44ae60b_3b66_4839_aa4c70c049fa9ab3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelPattern_Return = StrConcat2(str_ChannelPattern_Return, Translate("0")); // }} "" // {{ 1331 1 0 "5d9a91bf_c869_4d92_857f848557c6502d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1332 1 0 "3d6e0f20_cb3d_46dc_8dc375f29a39779f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1333 1 0 "3e16a6b2_790d_4ee2_ad9f45aeafa3070a" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq_IncorrectTipReturn.SetCurrentPosition(1); // }} "" // {{ 1334 1 0 "7e93e943_ac1e_4a1d_bb90976cb3163b4d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1335 1 0 "ac203bec_9375_4d37_bd08ed9c4be164eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_NumChanReturns = StrReplace(str_ChannelPattern_Return, Translate("1"), Translate("1")); // }} "" // {{ 1336 1 0 "cb67b4d3_1f7e_452b_b0864cb5504d5abb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_IncorrectChannels = str_ChannelPattern_Return; // }} "" // {{ 1337 1 0 "d40ce8b4_7236_44a7_992ef1bdd10ee45e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_NumChanReturns == 0) { // }} "" // {{ 1338 1 0 "b78ff777_1b1c_4a04_b74b3646125008a8" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("--------------------------- TIPS CORRECT")); // }} "" // {{ 1339 1 0 "ff813b08_a672_47d3_b26eea4086ce28ce" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_int_AllGood = 1; // }} "" // {{ 1340 1 0 "4c226991_d35d_4f14_951b60faf886b3c9" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1341 1 0 "d40ce8b4_7236_44a7_992ef1bdd10ee45e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1342 1 0 "ce326c4f_1f53_4180_9f1d8888f1ba4978" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" ret_int_AllGood = 0; // }} "" // {{ 1343 1 0 "1e65999b_7f65_4bbd_8ac97d8e4bbe1bb7" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("--------------------------- WRONG TIPS DETECTED")); // }} "" // {{{ 1344 1 0 "339edff5_4f39_47b6_98d07ea3b1660f7c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Wrong channels detected: "), o_str_IncorrectChannels); // }} "" // {{{ 1345 1 0 "254b7cc0_e054_4493_aa843db18bbb3134" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceSequence(o_seq_IncorrectTipReturn); // }} "" // {{{ 1346 1 0 "9b027dd2_5083_4670_a602631f9a15ce6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, o_seq_IncorrectTipReturn, 6, Translate("Make positions flash")); // }} "" // {{ 1347 1 0 "dafd9fcc_6593_47fd_8934e06e19a2765b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1348 1 0 "76793e63_129b_4a5a_b5ba4757c55c2797" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1349 1 0 "1571c21e_8b54_4abb_95375415f780d60a" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalTempLabware=arr_TempLabware.GetSize(); // }} "" // {{ 1350 1 0 "42552639_d644_4c97_a5b3d6d1c78f9105" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_TotalTempLabware;) { i = i + 1; // }} "" // {{{ 1351 1 0 "7d89928a_cbe0_4733_ad1737a6e68ab4c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevRemoveLabware(ML_STAR, arr_TempLabware.ElementAt( i -1)); // }} "" // {{ 1352 1 0 "42552639_d644_4c97_a5b3d6d1c78f9105" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1353 1 0 "76793e63_129b_4a5a_b5ba4757c55c2797" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1354 1 0 "bde491a6_7223_4742_a0b63af96376c7c0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1355 1 0 "150f84a2_8b0a_4ad7_8f4da942ffba5693" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 1356 1 0 "bde491a6_7223_4742_a0b63af96376c7c0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1357 1 0 "921a5bca_141d_4b12_8c2a6e25103050ca" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ret_int_AllGood); // }} "" // {{{ 5 "TipTypeCheck1mL" "End" } // }} "" // {{{ 5 "_DetermineTipCheckLC" "Begin" private function _DetermineTipCheckLC( variable i_int_TipType, variable & o_str_LiquidClass, variable & o_flt_CheckVolume ) void { // }} "" // {{ 5 "_DetermineTipCheckLC" "InitLocals" o_str_LiquidClass = 0; o_flt_CheckVolume = 0; // }} "" // {{ 1415 1 0 "3c6cc16b_6c09_4208_b3ca4e9561a32e66" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LiquidClass = Translate(""); // }} "" // {{ 1416 1 0 "d8360e8e_3f6a_4d24_945013a59b561291" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CheckVolume = 0.0; // }} "" // {{ 1417 1 0 "6073460d_a770_40f0_b13901669dd817dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 0) { // }} "" // {{ 1418 1 0 "0bc59d4f_41b7_4248_8f293d18faee6409" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LiquidClass = Translate("TipCheck_300"); // }} "" // {{ 1419 1 0 "9fee1ba1_b033_49f2_bf8c9ed585adbde3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CheckVolume = 50.0; // }} "" // {{ 1420 1 0 "6073460d_a770_40f0_b13901669dd817dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1421 1 0 "18f888ff_735e_47c4_be74f4beb3a47a24" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 1) { // }} "" // {{ 1422 1 0 "83cecb4d_2b9f_4ea1_923eac5dfe09dc6d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LiquidClass = Translate("TipCheck_300F"); // }} "" // {{ 1423 1 0 "0f98b07a_b368_44af_8125b6b4f768d1d7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CheckVolume = 50.0; // }} "" // {{ 1424 1 0 "18f888ff_735e_47c4_be74f4beb3a47a24" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1425 1 0 "515fc94e_04b6_4085_a877bf3b3531fd18" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 4) { // }} "" // {{ 1426 1 0 "2f3ed17e_d92f_4a54_84baefa29fec4086" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LiquidClass = Translate("TipCheck_1000"); // }} "" // {{ 1427 1 0 "3b802ffd_eb01_46d5_b1102095f2a956de" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CheckVolume = 100.0; // }} "" // {{ 1428 1 0 "515fc94e_04b6_4085_a877bf3b3531fd18" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1429 1 0 "95cd2950_531b_4830_8e1030d0788a0c1a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 5) { // }} "" // {{ 1430 1 0 "e99a5e31_95d4_4a25_a2a982e53ac02bc8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LiquidClass = Translate("TipCheck_1000F"); // }} "" // {{ 1431 1 0 "2ce759d7_8d36_4265_9ae6a49b35a69950" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CheckVolume = 100.0; // }} "" // {{ 1432 1 0 "95cd2950_531b_4830_8e1030d0788a0c1a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1433 1 0 "0fa95a42_ed6c_4ed8_94c9b2f476501cd1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 22) { // }} "" // {{ 1434 1 0 "23293b94_c8ed_4284_8bc54389f63edae2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LiquidClass = Translate("TipCheck_50"); // }} "" // {{ 1435 1 0 "afb1cbdb_e318_4ae4_8ca6fadb5f67a53f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CheckVolume = 50.0; // }} "" // {{ 1436 1 0 "0fa95a42_ed6c_4ed8_94c9b2f476501cd1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1437 1 0 "0cbb9ab1_b95e_4717_b4f767ab685c70fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 23) { // }} "" // {{ 1438 1 0 "5537415c_5378_4ab0_9bdb6e40f5538086" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LiquidClass = Translate("TipCheck_50F"); // }} "" // {{ 1439 1 0 "bb02449e_aa84_4a18_8738bafdc33763fd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CheckVolume = 50.0; // }} "" // {{ 1440 1 0 "0cbb9ab1_b95e_4717_b4f767ab685c70fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1441 1 0 "6d62beec_090a_4f66_b8a01619759a288b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 23) { // }} "" // {{ 1442 1 0 "1d864239_2340_4ad6_b25d61046b2622ba" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LiquidClass = Translate("TipCheck_50F"); // }} "" // {{ 1443 1 0 "e67e4d58_939f_41af_ad229cfd726dafc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CheckVolume = 50.0; // }} "" // {{ 1444 1 0 "6d62beec_090a_4f66_b8a01619759a288b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1445 1 0 "a85a8339_304b_4b50_8c0919c28812615d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 36) { // }} "" // {{ 1446 1 0 "ce4152aa_4497_493a_8eefa2d3b3037568" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LiquidClass = Translate("TipCheck_300Slim"); // }} "" // {{ 1447 1 0 "a2d2b096_d3ce_4bdb_ba9689ae9febd97f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CheckVolume = 100.0; // }} "" // {{ 1448 1 0 "a85a8339_304b_4b50_8c0919c28812615d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1449 1 0 "8984b254_f072_4e3a_858e9346b1820f50" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 45) { // }} "" // {{ 1450 1 0 "8686c57e_e218_4a45_a561993e37a8f35e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_LiquidClass = Translate("TipCheck_300SlimF"); // }} "" // {{ 1451 1 0 "54dc2a3e_cb04_4374_8c5c982fcf1ca3de" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_CheckVolume = 100.0; // }} "" // {{ 1452 1 0 "8984b254_f072_4e3a_858e9346b1820f50" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "_DetermineTipCheckLC" "End" } // }} "" // {{{ 5 "GetTipType" "Begin" function GetTipType( device & Instrument, sequence i_seq_Tips, variable & o_int_TipType ) void { // }} "" private variable str_LabID; private variable bln_LabwareValid; // {{ 5 "GetTipType" "InitLocals" o_int_TipType = 0; // }} "" // {{ 363 1 0 "c122f1a0_3179_4fad_aa020c1aa31558a5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_TipType = -1; // }} "" // {{{ 364 1 0 "f12bbb2d_b804_4824_8037bb3b41a36a22" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ResetInputSequence(Instrument, i_seq_Tips); // }} "" // {{{ 365 1 0 "4207203d_8c77_4985_8e764dacb1537101" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(i_seq_Tips); // }} "" // {{{ 366 1 0 "94f70d03_3d04_4b32_84b74067987fede5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_LabwareValid = DevIsValidLabwareForCurrentDeckLayout(Instrument, str_LabID); // }} "" // {{ 367 1 0 "d026cfc1_011a_45d3_91500913e1ffd82a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_LabwareValid == BOOLEON::TRUE) { // }} "" // {{{ 368 1 0 "3d638c8e_678c_4b02_bc44348f5cff3075" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetTipType(Instrument, str_LabID, o_int_TipType); // }} "" // {{ 369 1 0 "d026cfc1_011a_45d3_91500913e1ffd82a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "GetTipType" "End" } // }} "" // {{{ 5 "TipCountNeeded_Add" "Begin" function TipCountNeeded_Add( variable i_str_TipCounter, variable i_int_NumberOfTips ) void { // }} "" private variable int_Index; private variable int_ExistingTipCount; private variable int_NewTipCountNeeded; // {{ 5 "TipCountNeeded_Add" "InitLocals" // }} "" // {{ 981 1 0 "ce14fb1a_d26a_434c_a3082c1fc107ba46" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (TT_GLOBAL_VARIABLES::TIP_COUNT::LIBRARY_INITIALIZED == BOOLEON::FALSE) { // }} "" // {{{ 982 1 0 "54d1c37f_7859_4565_9e776a4eebca3b0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TT_GLOBAL_VARIABLES::TIP_COUNT::InitializeVariables(); // }} "" // {{ 983 1 0 "3d825e6f_4902_4d91_a6b290beb5a29103" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNT_NEEDED.SetSize(0); // }} "" // {{ 984 1 0 "1715ee1c_09f6_47b2_9af574d60f4a446f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNTER.SetSize(0); // }} "" // {{ 985 1 0 "2aa69005_b253_4600_8222a5f156c84e20" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" TT_GLOBAL_VARIABLES::TIP_COUNT::LIBRARY_INITIALIZED = BOOLEON::TRUE; // }} "" // {{ 986 1 0 "ce14fb1a_d26a_434c_a3082c1fc107ba46" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 987 1 0 "31897509_654f_4820_8853391c568a0f56" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" int_Index = _Lookup(TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNTER, i_str_TipCounter); // }} "" // {{ 988 1 0 "a392c5dc_2ef7_4642_84a14905b3c26d10" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index == 0) { // }} "" // {{ 989 1 0 "f5128674_afd1_45af_93aa8c5c1fafccca" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 990 1 0 "addcf9d1_5101_4102_ba001bfe51e079d4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNTER.AddAsLast(i_str_TipCounter); // }} "" // {{ 991 1 0 "f3447a19_3bbd_474e_840639a593e05208" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNT_NEEDED.AddAsLast(i_int_NumberOfTips); // }} "" // {{ 992 1 0 "a392c5dc_2ef7_4642_84a14905b3c26d10" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 993 1 0 "9b2dc097_8a55_4501_b1aaa4a1f515ff7e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 994 1 0 "e61cbf70_414e_4a8f_bc168f271030b052" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" int_ExistingTipCount=TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNT_NEEDED.GetAt(int_Index-1); // }} "" // {{ 995 1 0 "09cdd327_7c4b_47e3_8299a3f06a12ee60" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_NewTipCountNeeded = int_ExistingTipCount + i_int_NumberOfTips; // }} "" // {{ 996 1 0 "c77445ad_ab12_411d_87c2d8861504eaa4" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNT_NEEDED.SetAt(int_Index-1, int_NewTipCountNeeded); // }} "" // {{ 997 1 0 "a392c5dc_2ef7_4642_84a14905b3c26d10" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "TipCountNeeded_Add" "End" } // }} "" // {{{ 5 "TipCountNeeded_Get" "Begin" function TipCountNeeded_Get( variable i_str_TipCounter, variable & o_int_NumberOfTips ) void { // }} "" private variable int_Index; private variable _strFunctionName; private variable l_blnSuccess; // {{ 5 "TipCountNeeded_Get" "InitLocals" o_int_NumberOfTips = 0; // }} "" // {{ 999 1 0 "fe51a147_cf1e_41cd_9e8925815115d043" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1000 1 0 "53fa9dda_eefb_4d81_8cf59518d4ea8433" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 1002 1 0 "ae419cc8_c1f7_468e_9fb8103e60f99c54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 1003 1 0 "fe51a147_cf1e_41cd_9e8925815115d043" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1004 1 0 "22e66bfe_5701_49c9_ace477e40e4a0a3c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (TT_GLOBAL_VARIABLES::TIP_COUNT::LIBRARY_INITIALIZED == BOOLEON::FALSE) { // }} "" // {{{ 1005 1 0 "67d38e73_e2d6_4990_86a70b75dc81a248" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TT_GLOBAL_VARIABLES::TIP_COUNT::InitializeVariables(); // }} "" // {{ 1006 1 0 "dfaa6cd1_9c45_4aa9_a5723c61fa1437b6" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNT_NEEDED.SetSize(0); // }} "" // {{ 1007 1 0 "2a8d2f1f_045a_4c98_a0931b9b38cece60" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNTER.SetSize(0); // }} "" // {{ 1008 1 0 "2a92794d_2fda_4045_bf3e1948e145ebc7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" TT_GLOBAL_VARIABLES::TIP_COUNT::LIBRARY_INITIALIZED = BOOLEON::TRUE; // }} "" // {{ 1009 1 0 "22e66bfe_5701_49c9_ace477e40e4a0a3c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1010 1 0 "6d18b751_791f_45a5_aade04f7f944f635" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" int_Index = _Lookup(TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNTER, i_str_TipCounter); // }} "" // {{ 1011 1 0 "acb2c48d_8ae7_4a29_a8097e14ef5bcf02" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_int_NumberOfTips = 0; // }} "" // {{ 1012 1 0 "248099f1_fb51_4840_b9400439a39481f8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index == 0) { // }} "" // {{ 1013 1 0 "6c88a6af_7e1a_4077_8e0653901ab8ac3b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1014 1 0 "8318c148_2374_4bbd_b75666881797fb32" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNTER.AddAsLast(i_str_TipCounter); // }} "" // {{ 1015 1 0 "71e3f35d_b18b_413d_90e2e1d6cfbe2876" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNT_NEEDED.AddAsLast(o_int_NumberOfTips); // }} "" // {{ 1016 1 0 "248099f1_fb51_4840_b9400439a39481f8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1017 1 0 "c6e0f767_5345_4d5e_bdce2339860c617e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1018 1 0 "34e40e7a_08a1_43f0_88071e50e077116a" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" o_int_NumberOfTips=TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNT_NEEDED.GetAt(int_Index-1); // }} "" // {{ 1019 1 0 "248099f1_fb51_4840_b9400439a39481f8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1020 1 0 "9dac6ab6_b012_4400_86020573db704d76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_int_NumberOfTips = HSLExtensions::Core::ConvertToInteger(o_int_NumberOfTips, l_blnSuccess); // }} "" // {{{ 1021 1 0 "84ff38df_c360_4444_a51a421df1e42707" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate("Tip Counter: "), i_str_TipCounter, Translate(" -- Current Tips Needed: "), o_int_NumberOfTips); // }} "" // {{ 1022 1 0 "7d3f95fa_dda8_4d43_92f29a96b82a42bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1023 1 0 "93425d71_7939_4287_be64db60633b6cb4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 1024 1 0 "7d3f95fa_dda8_4d43_92f29a96b82a42bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TipCountNeeded_Get" "End" } // }} "" // {{{ 5 "TipTypeLength_Get" "Begin" function TipTypeLength_Get( variable i_int_TipType, variable & o_flt_TipLength ) void { // }} "" private variable bln_LengthFound; // {{ 5 "TipTypeLength_Get" "InitLocals" o_flt_TipLength = 0; // }} "" // {{ 1359 1 0 "fe589990_6870_43df_bfd1e9faf86e803f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_LengthFound = 0; // }} "" // {{ 1360 1 0 "1ed7caad_a128_43bb_82ce06b4c3131169" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipLength = 0.0; // }} "" // {{ 1361 1 0 "a0651279_e5b6_4b52_8e6c7dbb0bd447de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 0) { // }} "" // {{ 1362 1 0 "f9aa172b_e330_4d6f_a14f6c513eaf93d4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipLength = 51.9; // }} "" // {{ 1363 1 0 "a0651279_e5b6_4b52_8e6c7dbb0bd447de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1364 1 0 "9cc6b7cb_e219_4d23_b031252b150c9f16" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 1) { // }} "" // {{ 1365 1 0 "6e516f62_716f_48bf_9c1e6e7a81c4452c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipLength = 51.9; // }} "" // {{ 1366 1 0 "9cc6b7cb_e219_4d23_b031252b150c9f16" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1367 1 0 "5076c5e0_c6bb_4dc3_89b32db8f08b84d4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 30) { // }} "" // {{ 1368 1 0 "2131c885_eefe_476b_9b59803057796d9e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipLength = 51.9; // }} "" // {{ 1369 1 0 "5076c5e0_c6bb_4dc3_89b32db8f08b84d4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1370 1 0 "4639b2ac_4068_49fb_bc0c6e9d216bed26" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 2) { // }} "" // {{ 1371 1 0 "84e599c1_dbe9_4021_aa01e7741d261f1e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipLength = 21.9; // }} "" // {{ 1372 1 0 "4639b2ac_4068_49fb_bc0c6e9d216bed26" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1373 1 0 "cb13f7c0_d1d9_4382_a4cb4b79565a9091" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 3) { // }} "" // {{ 1374 1 0 "c60099b6_2368_45dc_9352fb97d6444a46" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipLength = 21.9; // }} "" // {{ 1375 1 0 "cb13f7c0_d1d9_4382_a4cb4b79565a9091" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1376 1 0 "12672466_9f69_4109_92a6d77ef2da3205" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 32) { // }} "" // {{ 1377 1 0 "6548c5ee_71f8_4df6_9426d0bc3df655e0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipLength = 21.9; // }} "" // {{ 1378 1 0 "12672466_9f69_4109_92a6d77ef2da3205" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1379 1 0 "bb33bab1_31e0_4a68_8ae9592ce3a1536f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 4) { // }} "" // {{ 1380 1 0 "c53f0fbb_6514_467a_bc7bf3f45ce273e9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipLength = 87.1; // }} "" // {{ 1381 1 0 "bb33bab1_31e0_4a68_8ae9592ce3a1536f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1382 1 0 "a3b5aad0_b81e_4410_97305964a024f900" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 5) { // }} "" // {{ 1383 1 0 "cc87d368_3eba_488e_a8c8d9defbc76f7f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipLength = 87.1; // }} "" // {{ 1384 1 0 "a3b5aad0_b81e_4410_97305964a024f900" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1385 1 0 "048e1037_760f_41fe_8b704da0de9e401a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 10) { // }} "" // {{ 1386 1 0 "7b325932_78c2_42a5_9ae7491ae62ab6fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipLength = 51.9; // }} "" // {{ 1387 1 0 "048e1037_760f_41fe_8b704da0de9e401a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1388 1 0 "0eb0a3ba_9edf_49d2_a448d059974a02c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 22) { // }} "" // {{ 1389 1 0 "dfcb2ad6_f97f_4b23_a2f729fda6d27107" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipLength = 42.4; // }} "" // {{ 1390 1 0 "0eb0a3ba_9edf_49d2_a448d059974a02c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1391 1 0 "52de7a1e_2aa5_4f27_8e3ae45aa981c1cb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 23) { // }} "" // {{ 1392 1 0 "55667f2f_2149_4b87_913e3369132c06ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipLength = 42.4; // }} "" // {{ 1393 1 0 "52de7a1e_2aa5_4f27_8e3ae45aa981c1cb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1394 1 0 "0fe34872_bffe_43ab_8e4836e3f18f48bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 31) { // }} "" // {{ 1395 1 0 "1ca28080_2208_430a_a9fc6e67e8dcf0eb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipLength = 42.4; // }} "" // {{ 1396 1 0 "0fe34872_bffe_43ab_8e4836e3f18f48bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1397 1 0 "32716e2b_815f_4e12_b59354f8043552de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 36) { // }} "" // {{ 1398 1 0 "c169b895_ade8_44c7_b47795bf114db758" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipLength = 87.0; // }} "" // {{ 1399 1 0 "32716e2b_815f_4e12_b59354f8043552de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1400 1 0 "65cf7499_952e_48d1_9771094b5a32118c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_int_TipType == 45) { // }} "" // {{ 1401 1 0 "4334f250_387c_41da_a5fc235e0012acd8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_flt_TipLength = 87.0; // }} "" // {{ 1402 1 0 "65cf7499_952e_48d1_9771094b5a32118c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "TipTypeLength_Get" "End" } // }} "" // {{{ 5 "TipCheckMPH96" "Begin" function TipCheckMPH96( device & Instrument, sequence & io_seq_Tips, variable i_str_TipCounter ) void { // }} "" private dialog customDialogD43E7E782FE34cdaA671A8701DC07C7B; private variable int_CurrentPosition; private variable flt_TipCapacity; private variable str_TipMessage; private variable int_EndPosition; private variable int_PositionsRemaining; private variable str_TipName; private variable int_TipsNeeded; // {{ 5 "TipCheckMPH96" "InitLocals" // }} "" // {{ 950 1 0 "7fceda9a_1390_4d11_b04ce80259e13a0a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("========= Check tip sequence")); // }} "" // {{{ 951 1 0 "a94b6eab_b7b8_41df_a17e24e356efb5e0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TipCapacityCheck(Instrument, io_seq_Tips, flt_TipCapacity); // }} "" // {{ 952 1 0 "ccb4fef8_4bb4_4607_8330134e81ac792c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_TipCapacity == 0.0) { // }} "" // {{ 953 1 0 "0ddf6a85_217b_40b8_92b0c770711a227e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TipCapacity = Translate("Unknown"); // }} "" // {{ 954 1 0 "ccb4fef8_4bb4_4607_8330134e81ac792c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 955 1 0 "9cf7e486_a614_4589_8731b4e125b8a5ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipName = StrConcat4(flt_TipCapacity, Translate(" uL Tips"), Translate(""), Translate("")); // }} "" // {{{ 956 1 0 "a9b6a77a_7ca9_4e74_ad74041d87a8c2c4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipMessage = StrConcat4(Translate("Please load more "), str_TipName, Translate(" on to the deck."), Translate("")); // }} "" // {{ 957 1 0 "2aca5e0f_584f_4584_b1b7b559bbf2be10" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TipsNeeded = 96; // }} "" // {{ 958 1 0 "c055fdb8_c847_4b26_86ec1462966260e3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (1 == 1) { // }} "" // {{ 959 1 0 "da6b2b50_0180_4b4b_82ce31b8ea8ec6fb" "{B31F353B-5D80-11d4-A5EB-0050DA737D89}" int_CurrentPosition = io_seq_Tips.GetCurrentPosition(); // }} "" // {{ 960 1 0 "d0c66ddd_21af_4ab4_b9ab7b6dab5e2c24" "{B31F353D-5D80-11d4-A5EB-0050DA737D89}" int_EndPosition = io_seq_Tips.GetCount(); // }} "" // {{ 961 1 0 "661bfaaa_426f_4084_88afb86a2c14d8f5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_CurrentPosition == 0) { // }} "" // {{ 962 1 0 "3cd2488b_6e27_4a4b_a7c403f717af2537" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_CurrentPosition = int_EndPosition + 1; // }} "" // {{ 963 1 0 "661bfaaa_426f_4084_88afb86a2c14d8f5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 964 1 0 "3921ea91_0697_4547_8df43da55dab8db7" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_PositionsRemaining = int_EndPosition - int_CurrentPosition; // }} "" // {{ 965 1 0 "d75a8109_d99f_465d_bc11296389bc857b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_PositionsRemaining = int_PositionsRemaining + 1; // }} "" // {{ 966 1 0 "6c1f1188_67c0_4dcb_8f401015521d1da9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsRemaining > 0) { // }} "" // {{{ 967 1 0 "a5029a33_09a5_4619_b48aacaf609829a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_PositionsRemaining = SeqGetPositionCountForCurrLabware(io_seq_Tips); // }} "" // {{ 968 1 0 "6c1f1188_67c0_4dcb_8f401015521d1da9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" Trace(" ","Positions Remaining: ",int_PositionsRemaining," Tips Needed: ",int_TipsNeeded); // {{ 970 1 0 "46efc6b4_8501_4bb1_ac16bd625ccb9049" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_PositionsRemaining >= int_TipsNeeded) { // }} "" // {{ 971 1 0 "1049c334_689e_4c66_82fb21acb84d412f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("------------------ Sufficient tips found")); // }} "" // {{ 972 1 0 "48d95800_42b4_4221_8bdf7833727fefb4" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 973 1 0 "46efc6b4_8501_4bb1_ac16bd625ccb9049" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 974 1 0 "cff4e35a_66a9_47d4_ac2f416a3927314d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("------------------ Insufficient tips found")); // }} "" // {{ 975 1 0 "8e6a0a2d_5251_4cf4_a0d3fd1351563c78" "{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}" customDialogD43E7E782FE34cdaA671A8701DC07C7B.InitCustomDialog( "8e6a0a2d_5251_4cf4_a0d3fd1351563c78" ); customDialogD43E7E782FE34cdaA671A8701DC07C7B.SetCustomDialogProperty( "textBlock2.Text", str_TipMessage ); customDialogD43E7E782FE34cdaA671A8701DC07C7B.ShowCustomDialog(); // }} "" // {{ 976 1 0 "5676a1da_d935_4dd4_bfce5ac45d9afeb9" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 977 1 0 "62d1393d_580f_4ccf_9b08320fb031cfb7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ResetInputSequence(Instrument, io_seq_Tips); // }} "" // {{{ 978 1 0 "d6232f6f_c1a1_4617_a97c647bbd0d544d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TipCounter_Edit(Instrument, io_seq_Tips, i_str_TipCounter, 99999); // }} "" // {{ 979 1 0 "c055fdb8_c847_4b26_86ec1462966260e3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "TipCheckMPH96" "End" } // }} "" // {{{ 5 "_LocalTipCounterRead" "Begin" private function _LocalTipCounterRead( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter ) void { // }} "" private variable bln_SimMode; private variable bln_FileExists; private variable str_TipCounterFolder; private variable str_TipCounter; // {{ 5 "_LocalTipCounterRead" "InitLocals" // }} "" // {{{ 1526 1 0 "b9013fa9_68ec_4009_8771bb61250267dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Read tip counter: "), i_str_TipCounter); // }} "" // {{{ 1527 1 0 "72dc9b1f_2f28_454b_a2d0aa11bd98b46b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_SimMode = Util::GetSimulationMode(); // }} "" // {{ 1528 1 0 "c3cf1b55_05e4_44fa_a39bdaf9104394be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_SimMode == 1) { // }} "" // {{{ 1529 1 0 "554bc948_5b89_436a_92753a6d9a9bb46e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_TipCounter = StrConcat2(Translate("SIM_"), i_str_TipCounter); // }} "" // {{ 1530 1 0 "c3cf1b55_05e4_44fa_a39bdaf9104394be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1531 1 0 "dec3f95c_ad18_4ca9_a6f5a5a0e550ae3e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetTipCounterFolderPath(str_TipCounterFolder); // }} "" // {{{ 1532 1 0 "1108cfb8_e4cc_4017_b58ddbcda30e1c32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _RemoveInvalidCharacters(i_str_TipCounter); // }} "" // {{{ 1533 1 0 "6c52abc9_9d85_4d73_87685444aff598ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipCounter = StrConcat4(str_TipCounterFolder, i_str_TipCounter, Translate(".txt"), Translate("")); // }} "" // {{{ 1534 1 0 "9a0c8423_5564_4a99_9e7693253baf2bbe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bln_FileExists = HSLExtensions::File::Exists(str_TipCounter); // }} "" // {{ 1535 1 0 "de9e5522_bd6b_4945_b9f7749e2f18ec01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_FileExists == 0) { // }} "" // {{{ 1536 1 0 "377a78ea_d5ab_46c4_865644e325c976c7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ResetInputSequence(ML_STAR, io_seq_TipSequence); // }} "" // {{{ 1537 1 0 "be8da422_246d_4d8e_a2fa0e7c9286e908" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Now creating tip counter: "), i_str_TipCounter); // }} "" // {{ 1538 1 0 "de9e5522_bd6b_4945_b9f7749e2f18ec01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1539 1 0 "c759dad7_6e02_4a25_af47283de2295495" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(io_seq_TipSequence); // }} "" // {{{ 1540 1 0 "40fa33f3_c6cc_4e09_807853b2ed2af18f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Now reading tip counter: "), i_str_TipCounter); // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition; string str_Temp; file ReadTipCounter; ReadTipCounter.RemoveFields(); ReadTipCounter.AddField("LAB_ID",str_LabID,hslString); ReadTipCounter.AddField("POS_ID",str_PosID,hslString); ReadTipCounter.SetExtendedProperties("HDR=YES"); ReadTipCounter.SetExtendedProperties("Text"); ReadTipCounter.SetDelimiter(hslTabDelimited); ReadTipCounter.Open(str_TipCounter, hslAppend); while(ReadTipCounter.Eof() == 0) { ReadTipCounter.ReadRecord(); if(ML_STAR.IsValidLabwareForCurrentDeckLayout(str_LabID)) { io_seq_TipSequence.Add(str_LabID,str_PosID); } } ReadTipCounter.Close(); ReadTipCounter.RemoveFields(); io_seq_TipSequence.SetCurrentPosition(1); } // {{ 1542 1 0 "de9e5522_bd6b_4945_b9f7749e2f18ec01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "_LocalTipCounterRead" "End" } // }} "" // {{{ 5 "TipCounter_SetShow" "Begin" function TipCounter_SetShow( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter, variable i_int_TimeOut, variable i_int_StartPosition, variable i_int_EndPosition ) void { // }} "" private variable _strFunctionName; private variable l_strSequenceName; private variable l_intTotalPositions; private variable l_intAvailable; private variable l_strError; private variable l_intTipType; private variable l_strInstrumentClass; private variable l_strLabID; private variable l_intEmptyCheck; // {{ 5 "TipCounter_SetShow" "InitLocals" // }} "" // {{ 1113 1 0 "fb2b9e71_e930_469b_8caa9819b65a26a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1114 1 0 "ecb55238_39ef_4e6a_aaafa9e0c567cb59" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 1116 1 0 "0da5c76a_5b94_4b2d_9d63978914846608" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 1117 1 0 "fb2b9e71_e930_469b_8caa9819b65a26a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1118 1 0 "75e91eaa_6fca_4365_aa00667af6b6c93e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_OFFSET_GLOBAL::INIT::InitializeVariables(); // }} "" // {{{ 1119 1 0 "c33027d9_1dc3_401a_846a9f725b7a9c9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::InitTipCountingLibrary(); // }} "" // {{{ 1120 1 0 "3cf8fd64_ff07_4c3a_8ed9b83b2a3b6240" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_TipCounter = StrConcat2(i_str_TipCounter, Translate("")); // }} "" // {{ 1121 1 0 "c98e22ba_44a2_44cb_8028c70655e3ed9d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_str_TipCounter == "") { // }} "" // {{{ 1122 1 0 "109ad012_a1b6_4bff_a4c38558217e6c49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_strError = StrConcat4(Translate("Tip counter '"), i_str_TipCounter, Translate("' is invalid!"), Translate("")); // }} "" // {{{ 1123 1 0 "e359a53c_a8d7_4a59_b671559248057664" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ErrRaise(101, l_strError); // }} "" // {{ 1124 1 0 "c98e22ba_44a2_44cb_8028c70655e3ed9d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 1125 1 0 "e68a2085_603c_4576_b07c37a717414937" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_strLabID = SeqGetLabwareId(io_seq_TipSequence); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 1126 1 0 "efe02e4f_9fba_4bf1_94f731a6f59fca55" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" l_strLabID = Translate(""); // }} "" // {{ 1127 1 0 "2b42ec5a_d8d9_4c44_bc7e9d023cbc42f9" "{B31F353B-5D80-11d4-A5EB-0050DA737D89}" l_intEmptyCheck = io_seq_TipSequence.GetCurrentPosition(); // }} "" { sequence sequenceObj; ML_STAR.CopyResetSequence(io_seq_TipSequence.GetName(), sequenceObj); l_strLabID = sequenceObj.GetLabwareId(); if(l_intEmptyCheck == 0) ML_STAR.CopyResetSequence(io_seq_TipSequence.GetName(), io_seq_TipSequence); } // {{{ 1129 1 0 "ec09b446_e5cb_46ea_b34d7c7943ff2404" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetSequenceName(ML_STAR, io_seq_TipSequence, l_strSequenceName, l_intTotalPositions); // }} "" // {{{ 1130 1 0 "4d425b7a_a8b2_4df3_af75c5ebd4f4c637" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetTipType(ML_STAR, l_strLabID, l_intTipType); // }} "" // {{ 1131 1 0 "f81b6d9d_3eaa_4028_ae599aeb9562ba85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (l_intTipType != -1) { // }} "" // {{{ 1132 1 0 "d538d340_b634_4801_967b85458cb58604" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" Start and End position :: "), i_int_StartPosition, Translate(" - "), i_int_EndPosition); // }} "" // {{{ 1133 1 0 "f8f3c273_9ac5_41cf_92c98e0ef10456e7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_strInstrumentClass = DevGetInstrumentName(ML_STAR); // }} "" // {{{ 1134 1 0 "7c72e7ac_b6e5_4b49_a0765312cc53642f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::CheckTipCounterName(i_str_TipCounter); // }} "" // {{{ 1135 1 0 "24c4b78a_1114_408a_8db2fbb6d1cab259" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Read tip counter: "), i_str_TipCounter); // }} "" // {{{ 1136 1 0 "016644af_a5cc_4629_ba9278ee030a9e43" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::CreateNewHxElementCounter(io_seq_TipSequence, l_intTipType, i_str_TipCounter, l_strInstrumentClass); // }} "" // {{{ 1137 1 0 "cdd3df33_c314_4f82_b9421936524c9c45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::ReadFromHxElementCounter(ML_STAR, io_seq_TipSequence, l_intTipType, i_str_TipCounter, l_strInstrumentClass); // }} "" // {{{ 1138 1 0 "90a184be_8010_4e33_81b10715add3ba5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::EditSequence2(ML_STAR, io_seq_TipSequence, BOOLEON::FALSE, i_int_StartPosition, i_int_EndPosition, i_int_TimeOut); // }} "" // {{{ 1139 1 0 "7df6a44b_52e9_48ec_bfecdba09e565cb3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::WriteHxElementCounter(io_seq_TipSequence, l_intTipType, i_str_TipCounter, l_strInstrumentClass); // }} "" // {{{ 1140 1 0 "55d5e758_d461_425a_886d5e45286ea4b6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_intAvailable = SeqGetTotal(io_seq_TipSequence); // }} "" // {{{ 1141 1 0 "342d79c8_ae66_421a_8e4197088f614e0f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE08(l_strSequenceName, Translate(" :: "), l_intAvailable, Translate(" / "), l_intTotalPositions, Translate(""), Translate(""), Translate("")); // }} "" // {{{ 1142 1 0 "901e4536_b168_4be3_bcc395a7a25a56f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_TipSequence, 5, Translate("")); // }} "" // {{ 1143 1 0 "f81b6d9d_3eaa_4028_ae599aeb9562ba85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1144 1 0 "0a523a60_8738_4272_887e95578cd7f542" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("COULD NOT DETERMINE TIP TYPE!")); // }} "" // {{ 1145 1 0 "f81b6d9d_3eaa_4028_ae599aeb9562ba85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1146 1 0 "0792faca_5c5f_4269_aee80f0afaf068be" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1147 1 0 "417e245f_6270_4b86_912c2f860d16f40f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 1148 1 0 "0792faca_5c5f_4269_aee80f0afaf068be" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "TipCounter_SetShow" "End" } // }} "" // {{{ 5 "_ConvertToInteger" "Begin" private function _ConvertToInteger( variable & io_Value ) void { // }} "" // {{ 5 "_ConvertToInteger" "InitLocals" // }} "" // {{{ 1412 1 0 "28c4ea7b_48bb_4b10_b72ed76d4a8739d8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_Value = StrConcat2(io_Value, Translate("")); // }} "" // {{{ 1413 1 0 "fdd205cd_aef4_4e23_864df13ce8ffdad8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" io_Value = StrIVal(io_Value); // }} "" // {{{ 5 "_ConvertToInteger" "End" } // }} "" // {{{ 5 "Optimized1mLTipPickup" "Begin" function Optimized1mLTipPickup( device & ML_STAR, sequence & io_seq_TipSequence, sequence i_seq_ControlSequence, variable i_str_TipCounter, variable & o_str_ChannelPattern ) void { // }} "" private variable _strFunctionName; private variable flt_YRaster; private variable int_TotalPositionsRemaining; private variable bool_FileExists; private variable str_TempSortingFilePath; private variable int_TotalChannels; private variable int_TipsNeeded; private sequence seq_RemainingSequence; private variable arr_YMin[]; private variable arr_YMax[]; private file WriteFile; private variable bln_Used; private file SortFile; private variable arr_GroupedLabID[]; private variable arr_GroupedXCoords[]; private variable arr_GroupedCounts[]; private variable int_TotalOptions; private file UpdateFile; private variable arr_GroupNumber[]; private variable int_SeqIndex; private variable str_LabID; private variable str_PosID; private variable flt_NotUsed; private variable flt_CurrentX; private variable flt_CurrentY; private variable flt_TargetX; private variable flt_PreviousY; private variable bln_OptimizationNeeded; private variable bln_EnoughTipsLoaded; private dialog customDialog7F76208478B54fc8976FBA49C9208278; private variable str_TipMessage; private variable flt_TipCapacity; private variable str_TipName; // {{ 5 "Optimized1mLTipPickup" "InitLocals" o_str_ChannelPattern = 0; // }} "" // {{ 371 1 0 "cf769fd9_4d98_4f21_a2b9368ec5cfa97d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 372 1 0 "ff8050e6_b88e_4228_a60ff028c843a5e1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 374 1 0 "1bfca4ff_1962_47a7_b7c1ddf1ddc030b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 375 1 0 "cf769fd9_4d98_4f21_a2b9368ec5cfa97d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 376 1 0 "b9d758ba_677a_4b5e_92b90e3685e20ad2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChannelPattern = Translate(""); // }} "" // {{{ 377 1 0 "156754fb_8da1_43d2_825b4c4dffaa029e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" Get1mLChannelCount(ML_STAR, int_TotalChannels); // }} "" // {{{ 378 1 0 "5afb9412_01d6_4879_8c743dc9df5bdc73" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetChannelLimits(ML_STAR, 0, arr_YMax, arr_YMin, flt_YRaster); // }} "" // {{{ 379 1 0 "45220874_539f_468b_9f7a55a957b1d600" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, i_seq_ControlSequence); // }} "" // {{{ 380 1 0 "1005b078_4044_4658_8981b4fffa21c769" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositionsRemaining = SeqGetTotal(i_seq_ControlSequence); // }} "" // {{ 381 1 0 "5f76d4f9_92b7_4969_b55f32145837dbc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TipsNeeded = int_TotalPositionsRemaining; // }} "" // {{ 382 1 0 "4a665744_325a_4e7a_aa31b3655ac0e9b3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipsNeeded > int_TotalChannels) { // }} "" // {{ 383 1 0 "c2cb78a6_52c6_4141_924a59525840fea7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TipsNeeded = int_TotalChannels; // }} "" // {{ 384 1 0 "4a665744_325a_4e7a_aa31b3655ac0e9b3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 385 1 0 "17cf1abe_7b93_43ee_81a508eb844a2143" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipsNeeded == 0) { // }} "" // {{ 386 1 0 "63439744_55f2_49ab_b217da8e54088a74" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 387 1 0 "3315c365_3ae1_4327_9d31c3693f828e44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 388 1 0 "63439744_55f2_49ab_b217da8e54088a74" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 389 1 0 "86aed8e3_27e5_467b_b310446b10d182d4" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 390 1 0 "17cf1abe_7b93_43ee_81a508eb844a2143" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 391 1 0 "ae6b6124_40fe_46bd_809f9670a8c06b08" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (BOOLEON::TRUE == BOOLEON::TRUE) { // }} "" // {{{ 392 1 0 "6944e0f4_6f68_4b06_85c4fb84577a019d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TipCheck(ML_STAR, io_seq_TipSequence, i_str_TipCounter, int_TipsNeeded); // }} "" // {{{ 393 1 0 "1dd2f6b0_ab60_461f_ae83822e28dd8398" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq_RemainingSequence, io_seq_TipSequence); // }} "" // {{{ 394 1 0 "617ab7cc_9e9c_458d_98aa0f5dec9cc6c8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, seq_RemainingSequence); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 395 1 0 "94190447_1bdf_448e_9df45e9d72e50462" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _SortSequenceYPriority(ML_STAR, seq_RemainingSequence); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 396 1 0 "47330eff_16bd_4b9e_bdf343b61c9051e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTempSortingFilePath(str_TempSortingFilePath); // }} "" // {{{ 397 1 0 "e78cd55d_95d2_48cf_8db3d599cc5b7400" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(str_TempSortingFilePath); // }} "" // {{ 398 1 0 "0aec118a_dea6_4574_b6a2c8fdb684bc28" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 1) { // }} "" // {{{ 399 1 0 "d1f23c98_04ec_42b5_bea7f08d4100d537" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(str_TempSortingFilePath); // }} "" // {{ 400 1 0 "0aec118a_dea6_4574_b6a2c8fdb684bc28" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 401 1 0 "8e38af26_704f_4815_89f1a86387cb40eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildChannelPattern(int_TipsNeeded, int_TotalChannels, o_str_ChannelPattern); // }} "" // {{ 402 1 0 "749c8882_11da_4bd4_894f906d8a80947d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 403 1 0 "c3ff48b9_a775_4329_a37e794b8cf8430f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_OptimizationNeeded = BOOLEON::FALSE; // }} "" // {{ 404 1 0 "dad70b1d_09df_42e6_b8ec46aae962a94a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_SeqIndex = 0; int_SeqIndex < int_TipsNeeded;) { int_SeqIndex = int_SeqIndex + 1; // }} "" // {{{ 405 1 0 "2b6551e2_bdf7_48a0_852307ef9f81754a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_RemainingSequence); // }} "" // {{{ 406 1 0 "35ec9408_8796_4326_b46a77a6a9ad0e27" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(seq_RemainingSequence); // }} "" // {{{ 407 1 0 "61ee662c_376c_4e3e_965d07ff027cc318" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(seq_RemainingSequence, 1); // }} "" // {{{ 408 1 0 "ce4264d4_1bdf_4d89_aab5c8c450008a72" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_CurrentX, flt_CurrentY, flt_NotUsed, flt_NotUsed); // }} "" // {{ 409 1 0 "79637ec8_74a6_49d5_9045d6fcd7e556a9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentY <= arr_YMax.ElementAt( int_SeqIndex -1)) { // }} "" // {{ 410 1 0 "33523935_7b56_45f3_b9026b7df89b012d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentY >= arr_YMin.ElementAt( int_SeqIndex -1)) { // }} "" // {{ 411 1 0 "8cb3784d_5c2d_4cf7_bb5f00482b9a3399" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_SeqIndex == 1) { // }} "" // {{ 412 1 0 "96538746_c20a_433f_ac2a6dc03ee4ba8d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TargetX = flt_CurrentX; // }} "" // {{ 413 1 0 "b03df9f7_83fe_4cb1_8e398f6257747414" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_PreviousY = flt_CurrentY; // }} "" // {{ 414 1 0 "8cb3784d_5c2d_4cf7_bb5f00482b9a3399" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 415 1 0 "c8c14864_7529_4468_bd4b29ce78871f53" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentX != flt_TargetX) { // }} "" // {{ 416 1 0 "90650163_913a_4d98_b1b6f04390cd2cbb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_OptimizationNeeded = BOOLEON::TRUE; // }} "" // {{ 417 1 0 "1b6a59ae_e5e8_492d_9ac76d982f927c2e" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 418 1 0 "c8c14864_7529_4468_bd4b29ce78871f53" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 419 1 0 "05930ba5_d41c_4739_bb01300f043a71e5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentY > flt_PreviousY) { // }} "" // {{ 420 1 0 "8d9062f3_3aa0_4fe2_977f5c49b7b4db34" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_OptimizationNeeded = BOOLEON::TRUE; // }} "" // {{ 421 1 0 "7975ce62_8579_4363_9a4c4e683e032fc6" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 422 1 0 "05930ba5_d41c_4739_bb01300f043a71e5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 423 1 0 "69887eb8_174b_4fdf_a72c4ad2d66d5065" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_PreviousY = flt_CurrentY; // }} "" // {{ 424 1 0 "8cb3784d_5c2d_4cf7_bb5f00482b9a3399" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 425 1 0 "33523935_7b56_45f3_b9026b7df89b012d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 426 1 0 "36ba7e44_9265_4924_b0f688c96af2cc5e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_OptimizationNeeded = BOOLEON::TRUE; // }} "" // {{ 427 1 0 "9d903474_f5f6_420a_81bb265ef0e4f237" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 428 1 0 "33523935_7b56_45f3_b9026b7df89b012d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 429 1 0 "79637ec8_74a6_49d5_9045d6fcd7e556a9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 430 1 0 "3a0c7e50_9b3d_485e_bbf918d5fd692d31" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_OptimizationNeeded = BOOLEON::TRUE; // }} "" // {{ 431 1 0 "67b48904_c3c2_4713_aa445d42ce5c5d2c" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 432 1 0 "79637ec8_74a6_49d5_9045d6fcd7e556a9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 433 1 0 "dc610b9b_bbfc_41e1_bc7be416ce52850c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_PreviousY = flt_PreviousY - flt_YRaster; // }} "" // {{ 434 1 0 "dad70b1d_09df_42e6_b8ec46aae962a94a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 435 1 0 "10b42ed3_8589_467b_a0869326693f1e11" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_RemainingSequence.SetCurrentPosition(1); // }} "" // {{ 436 1 0 "749c8882_11da_4bd4_894f906d8a80947d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 437 1 0 "f51a2f33_2ef9_42fb_97fe75ace8133887" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_OptimizationNeeded == BOOLEON::TRUE) { // }} "" // {{{ 438 1 0 "1d18bd64_4344_4c3b_b260debc70c5039d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(str_TempSortingFilePath); // }} "" // {{ 439 1 0 "90fdc995_df18_4438_9c5f2ae004ed0bda" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 1) { // }} "" // {{{ 440 1 0 "c7cce388_17ea_474b_8ed176e1bbc3cdb1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(str_TempSortingFilePath); // }} "" // {{ 441 1 0 "90fdc995_df18_4438_9c5f2ae004ed0bda" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 442 1 0 "fbfbd48b_efd7_4555_bea9746d989d85e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::SortSequence(ML_STAR, seq_RemainingSequence, BOOLEON::FALSE); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 443 1 0 "bc37981f_03fe_4815_856ee700ccccb605" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::SortSequenceRaster(ML_STAR, seq_RemainingSequence, BOOLEON::FALSE, flt_YRaster); // }} "" // {{ 444 1 0 "dc1954a1_445f_44c1_84c2549e0da10194" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Group, int_ChannelIndex, flt_CurrentX; WriteFile.RemoveFields(); WriteFile.AddField("INDEX", int_PositionCount, hslInteger); WriteFile.AddField("USED", bln_Used, hslInteger); WriteFile.AddField("LAB_ID", str_LabID, hslString, 255); WriteFile.AddField("POS_ID", str_PosID, hslString, 255); WriteFile.AddField("X_COORD", flt_X_Coord, hslFloat); WriteFile.AddField("Y_COORD", flt_Y_Coord, hslFloat); WriteFile.AddField("Z_COORD", flt_Z_Coord, hslFloat); WriteFile.AddField("GROUP",int_Group,hslInteger); int_TotalValues = seq_RemainingSequence.GetTotal(); WriteFile.SetExtendedProperties("HDR=YES"); WriteFile.Open(str_TempSortingFilePath + " " + "SORT", hslWrite); int_PositionCount = 1; int_Group = 0; flt_CurrentX = -100.0; for(i = 0; i < int_TotalValues;) { i = i + 1; int_ChannelIndex = int_ChannelIndex + 1; seq_RemainingSequence.SetCurrentPosition(i); str_LabID = seq_RemainingSequence.GetLabwareId(); str_PosID = seq_RemainingSequence.GetPositionId(); DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_NotUsed); if(flt_CurrentX != flt_X_Coord) { flt_CurrentX = flt_X_Coord; int_Group = int_Group + 1; int_ChannelIndex = 1; } if(int_ChannelIndex > int_TotalChannels) { int_ChannelIndex = 1; flt_CurrentX = flt_X_Coord; int_Group = int_Group + 1; } WriteFile.WriteRecord(); int_PositionCount = int_PositionCount + 1; } WriteFile.Close(); WriteFile.RemoveFields(); } // {{ 446 1 0 "ed0b5112_55e4_4635_997daa9456cb2658" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 447 1 0 "1f202f8e_a990_441f_b6f545ad0450e1e3" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_GroupedLabID.SetSize(0); // }} "" // {{ 448 1 0 "907f4b7f_9e51_40d2_a2e46ca8010f4791" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_GroupedXCoords.SetSize(0); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 449 1 0 "e73b9a24_949f_43dc_84ffcc0f9a64ce1c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_GroupNumber.SetSize(0); // }} "" // {{ 450 1 0 "8507f2f7_3be3_459c_a1b5a42fc6b401ea" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_GroupedCounts.SetSize(0); // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, int_Group; SortFile.RemoveFields(); //str_SQL = "SELECT [GROUP], Y_COORD, COUNT(*) AS N FROM (SELECT * FROM SORT ORDER BY Y_COORD DESC, X_COORD ASC) GROUP BY [GROUP], Y_COORD ORDER BY Y_COORD DESC"; str_SQL = "SELECT [GROUP], N FROM (SELECT [GROUP], COUNT(*) AS N FROM SORT GROUP BY [GROUP]) ORDER BY [GROUP] ASC"; //SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("GROUP", int_Group, hslFloat); SortFile.AddField("N", int_Count, hslInteger); int_TotalValues = seq_RemainingSequence.GetTotal(); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); str_LabID = ""; flt_Y_Coord = 0.0; while(SortFile.Eof() == 0) { SortFile.ReadRecord(); arr_GroupNumber.AddAsLast(int_Group); arr_GroupedCounts.AddAsLast(int_Count); } SortFile.Close(); SortFile.RemoveFields(); } // {{ 452 1 0 "584ea2f0_d870_443c_94dd6ed0d13e5d68" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 453 1 0 "64f2fc95_b796_4657_87124cdadf71ae30" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalOptions=arr_GroupedCounts.GetSize(); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 454 1 0 "68443eba_7a48_4dc1_b0f3684344378a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_2(Translate("Counts Group"), arr_GroupedCounts, arr_GroupNumber); // }} "" // {{{ 455 1 0 "535f0b9e_b6aa_490a_bf8dfaf9d5761b76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_3(Translate("Counts Lab X"), arr_GroupedCounts, arr_GroupedLabID, arr_GroupedXCoords); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 456 1 0 "422bb0dd_c8d3_4465_9229dc15d5b2c97a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, bln_UseOptimization, int_Index, str_InValue, flt_XCoord, int_Group, a, int_ChannelCount, int_UpdateCount; bln_UseOptimization = hslFalse; SortFile.RemoveFields(); SortFile.AddField("INDEX", int_Index, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("X_COORD", flt_X_Coord, hslFloat); SortFile.AddField("Y_COORD", flt_X_Coord, hslFloat); SortFile.AddField("GROUP", int_Group, hslInteger); str_SQL = "SELECT INDEX, LAB_ID, X_COORD, Y_COORD, [GROUP] FROM SORT ORDER BY LAB_ID ASC, Y_COORD DESC, X_COORD ASC"; SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); while(SortFile.Eof() == 0) { SortFile.ReadRecord(); //Util::Lookup(arr_GroupedCounts,int_Group,a); //Trace("Group: ", int_Group," Count: ",arr_GroupedCounts.GetAt(int_Group-1)," Tips needed: ",int_TipsNeeded); if(arr_GroupedCounts.GetAt(int_Group-1) >= int_TipsNeeded) { int_Group = StrConcat2(int_Group,""); bln_UseOptimization = hslTrue; break; } } //int_Index = StrConcat2(int_Index,""); SortFile.Close(); SortFile.RemoveFields(); //Trace("Lab ID: ",str_LabID," X Coord: ",flt_XCoord); //Trace("Group: ",int_Group); //Trace("Use Optimization: ",bln_UseOptimization); if(bln_UseOptimization == hslTrue) { str_SQL = "SELECT INDEX, LAB_ID, POS_ID, X_COORD, Y_COORD, [GROUP] FROM SORT WHERE [GROUP] = " + int_Group + " ORDER BY X_COORD ASC, Y_COORD DESC"; SortFile.RemoveFields(); SortFile.AddField("INDEX", int_Index, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("X_COORD", flt_X_Coord, hslFloat); SortFile.AddField("Y_COORD", flt_X_Coord, hslFloat); SortFile.AddField("GROUP",int_Group, hslInteger); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); i = 0; str_InValue = "("; while(SortFile.Eof() == 0) { i = i + 1; if(i > int_TipsNeeded) break; SortFile.ReadRecord(); if(i > 1) str_InValue = str_InValue + ", "; str_InValue = StrConcat2(str_InValue , int_Index); } str_InValue = str_InValue + ")"; SortFile.Close(); SortFile.RemoveFields(); UpdateFile.RemoveFields(); str_SQL = "UPDATE SORT SET USED = 2 WHERE INDEX IN" + str_InValue; //Trace(str_SQL); UpdateFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); UpdateFile.Close(); UpdateFile.RemoveFields(); } else { str_SQL = "SELECT INDEX, LAB_ID, POS_ID, X_COORD, Y_COORD FROM SORT ORDER BY X_COORD ASC, Y_COORD DESC"; SortFile.RemoveFields(); SortFile.AddField("INDEX", int_Index, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("X_COORD", flt_X_Coord, hslFloat); SortFile.AddField("Y_COORD", flt_Y_Coord, hslFloat); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); i = 0; str_InValue = "("; int_ChannelCount = 1; int_UpdateCount = 0; while(SortFile.Eof() == 0) { SortFile.ReadRecord(); i = i + 1; if(int_ChannelCount > int_TipsNeeded) break; if(flt_Y_Coord <= arr_YMax.GetAt(int_ChannelCount-1)) { if(flt_Y_Coord >= arr_YMin.GetAt(int_ChannelCount-1)) { if(int_ChannelCount > 1) str_InValue = str_InValue + ", "; str_InValue = StrConcat2(str_InValue , int_Index); int_ChannelCount = int_ChannelCount + 1; int_UpdateCount = int_UpdateCount + 1; } } } str_InValue = str_InValue + ")"; SortFile.Close(); SortFile.RemoveFields(); if(int_UpdateCount>0) { UpdateFile.RemoveFields(); str_SQL = "UPDATE SORT SET USED = 2 WHERE INDEX IN" + str_InValue; UpdateFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); UpdateFile.Close(); UpdateFile.RemoveFields(); } } } // {{ 458 1 0 "79ca8ef7_0859_4630_9edbcfc4a7206bb0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 459 1 0 "8aa6a639_609a_4ac9_90b1aeeee2dbc418" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(io_seq_TipSequence); // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL; SortFile.RemoveFields(); str_SQL = "SELECT USED, LAB_ID, POS_ID FROM SORT ORDER BY USED DESC, LAB_ID ASC, X_COORD ASC, Y_COORD DESC"; SortFile.AddField("USED", bln_Used, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("POS_ID", str_PosID, hslString, 255); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); while(SortFile.Eof() == 0) { SortFile.ReadRecord(); SeqAdd(io_seq_TipSequence, Translate(str_LabID), Translate(str_PosID)); } SortFile.Close(); SortFile.RemoveFields(); } // {{ 461 1 0 "aa643804_178c_4baf_84594dbef4d47f6c" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_seq_TipSequence.SetCurrentPosition(1); // }} "" // {{ 462 1 0 "603f136b_cea4_408a_89602343754e6caa" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_EnoughTipsLoaded = BOOLEON::TRUE; // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL; SortFile.RemoveFields(); str_SQL = "SELECT COUNT(*) AS N FROM SORT WHERE USED = 2"; SortFile.AddField("N", int_Count, hslInteger); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); SortFile.ReadRecord(); SortFile.Close(); SortFile.RemoveFields(); if(int_Count < int_TipsNeeded) bln_EnoughTipsLoaded = hslFalse; } // {{ 464 1 0 "2d293935_3f70_4483_81a5583e1cb4ffb9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_EnoughTipsLoaded == BOOLEON::FALSE) { // }} "" // {{ 465 1 0 "45ce0a0b_c565_49a7_856bcda016d43338" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("------------------ Insufficient tips found")); // }} "" // {{{ 466 1 0 "27043be1_606e_480d_934ba065d7f07b19" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TipCapacityCheck(ML_STAR, io_seq_TipSequence, flt_TipCapacity); // }} "" // {{ 467 1 0 "d42dfe54_4b07_4e2b_baae65c3945b678f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_TipCapacity == 0.0) { // }} "" // {{ 468 1 0 "052611b9_47dc_4c48_870452e835113684" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TipCapacity = Translate("Unknown"); // }} "" // {{ 469 1 0 "d42dfe54_4b07_4e2b_baae65c3945b678f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 470 1 0 "67df56f1_3c0c_427a_abd0c4c16332cad9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipName = StrConcat4(flt_TipCapacity, Translate(" uL Tips"), Translate(""), Translate("")); // }} "" // {{{ 471 1 0 "78154304_1a25_4eae_8b9b75d22d615ece" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipMessage = StrConcat4(Translate("Please load more "), str_TipName, Translate(" on to the deck."), Translate("")); // }} "" // {{ 472 1 0 "4a741716_8aee_4a29_9872c9785017bc55" "{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}" customDialog7F76208478B54fc8976FBA49C9208278.InitCustomDialog( "4a741716_8aee_4a29_9872c9785017bc55" ); customDialog7F76208478B54fc8976FBA49C9208278.SetCustomDialogProperty( "textBlock2.Text", str_TipMessage ); customDialog7F76208478B54fc8976FBA49C9208278.ShowCustomDialog(); // }} "" // {{{ 473 1 0 "c75a23cc_72d8_41ff_a89e6be443eecb3c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ResetInputSequence(ML_STAR, io_seq_TipSequence); // }} "" // {{{ 474 1 0 "78888d10_3cd1_4681_864a8b09d8e4fd05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TipCounter_Edit(ML_STAR, io_seq_TipSequence, i_str_TipCounter, 99999); // }} "" // {{ 475 1 0 "2d293935_3f70_4483_81a5583e1cb4ffb9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 476 1 0 "46cd72e6_d4cd_43a9_b9b3050e93669a9b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 477 1 0 "2d293935_3f70_4483_81a5583e1cb4ffb9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 478 1 0 "dc1954a1_445f_44c1_84c2549e0da10194" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 479 1 0 "f51a2f33_2ef9_42fb_97fe75ace8133887" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 480 1 0 "6edd3fab_47cf_4d12_8c1c0dc9e7ffb4ca" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 481 1 0 "f51a2f33_2ef9_42fb_97fe75ace8133887" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 482 1 0 "ae6b6124_40fe_46bd_809f9670a8c06b08" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 483 1 0 "1a0e64cf_770c_4136_a06f09b7186be979" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 484 1 0 "e1697e79_74b0_462b_8fe1066a5eb13603" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 485 1 0 "1a0e64cf_770c_4136_a06f09b7186be979" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "Optimized1mLTipPickup" "End" } // }} "" // {{{ 5 "_SortSequenceYPriority" "Begin" private function _SortSequenceYPriority( device & Instrument, sequence & io_Sequence ) void { // }} "" private variable str_TempSortingFilePath; private variable str_SQL_Sort; // {{ 5 "_SortSequenceYPriority" "InitLocals" // }} "" // {{{ 1572 1 0 "803725d1_f690_4985_96c7c2207e9a9e1b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTempSortingFilePath(str_TempSortingFilePath); // }} "" // {{{ 1573 1 0 "7c7872d1_05ae_4674_a2ab5208f42f12c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Sort = StrConcat4(Translate("SELECT * FROM SORT ORDER BY Y_COORD DESC, X_COORD ASC"), Translate(""), Translate(""), Translate("")); // }} "" { variable int_CurrentPosition; variable int_TotalSequencePositions; sequence seq_AdjustedSequence; variable i; file WriteFile; file ReadFile; variable str_LabID; variable str_PosID; variable flt_X; variable flt_Y; variable arr_Coordinates[]; int_CurrentPosition = io_Sequence.GetCurrentPosition(); seq_AdjustedSequence.CopySequence(io_Sequence); int_TotalSequencePositions = io_Sequence.GetTotal(); SeqRemoveAll(io_Sequence); WriteFile.RemoveFields(); WriteFile.AddField("LAB_ID", str_LabID, hslString, 255); WriteFile.AddField("POS_ID", str_PosID, hslString, 255); WriteFile.AddField("X_COORD", flt_X, hslFloat); WriteFile.AddField("Y_COORD", flt_Y, hslFloat); if(WriteFile.Open(str_TempSortingFilePath + " " + "SORT", hslWrite)) { for(i = int_CurrentPosition; i <= int_TotalSequencePositions;) { if(int_CurrentPosition == 0) break; seq_AdjustedSequence.SetCurrentPosition(i); if(seq_AdjustedSequence.GetLabwareId() != "" && seq_AdjustedSequence.GetPositionId() != "") { str_LabID = seq_AdjustedSequence.GetLabwareId(); str_PosID = seq_AdjustedSequence.GetPositionId(); Instrument.GetLabwarePosition(str_LabID, arr_Coordinates, str_PosID); flt_X = arr_Coordinates[0]; flt_Y = arr_Coordinates[1]; WriteFile.WriteRecord(); } i = i + 1; } } WriteFile.Close(); WriteFile.RemoveFields(); ReadFile.RemoveFields(); ReadFile.AddField("LAB_ID", str_LabID, hslString, 255); ReadFile.AddField("POS_ID", str_PosID, hslString, 255); ReadFile.AddField("X_COORD", flt_X, hslFloat); ReadFile.AddField("Y_COORD", flt_Y, hslFloat); if(ReadFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead, str_SQL_Sort)) { while(ReadFile.Eof() == 0) { ReadFile.ReadRecord(); io_Sequence.Add(str_LabID,str_PosID); } } else { Trace("ERROR OCCURRED DURING SORT"); io_Sequence.CopySequence(seq_AdjustedSequence); } ReadFile.Close(); ReadFile.RemoveFields(); io_Sequence.SetCurrentPosition(1); } // {{{ 5 "_SortSequenceYPriority" "End" } // }} "" // {{{ 5 "Optimized1mLTipPickup2" "Begin" function Optimized1mLTipPickup2( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter, variable i_str_ChannelPattern ) void { // }} "" private dialog customDialog658827E8DE2440068F918232E0BE9E71; private variable flt_NotUsed; private variable flt_CurrentX; private variable flt_TipCapacity; private variable flt_CurrentY; private variable int_TotalOptions; private variable flt_YRaster; private variable _strFunctionName; private variable bln_OptimizationNeeded; private variable str_LabID; private variable bool_FileExists; private variable str_TipMessage; private variable flt_PreviousY; private variable str_TempSortingFilePath; private variable flt_TargetX; private variable int_TotalChannels; private variable str_PosID; private variable int_TipsNeeded; private variable bln_EnoughTipsLoaded; private variable str_TipName; private sequence seq_RemainingSequence; private variable arr_GroupedXCoords[]; private variable arr_GroupNumber[]; private variable arr_YMin[]; private variable arr_YMax[]; private variable arr_GroupedCounts[]; private variable arr_GroupedLabID[]; private file WriteFile; private file SortFile; private file UpdateFile; private variable int_ChannelIndex; private variable str_Value; private variable int_ChannelValue; private variable arr_ChannelPattern[]; private variable int_ChannelSet; private variable int_ChannelActive; // {{ 5 "Optimized1mLTipPickup2" "InitLocals" // }} "" // {{ 487 1 0 "cdb3c4ca_9b54_47f5_8feb9ee5138801a5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 488 1 0 "563544f0_c56d_41a9_ae612efa8687d6ba" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 490 1 0 "57f52d1a_e3e0_4d3f_88801a288e9a007e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 491 1 0 "cdb3c4ca_9b54_47f5_8feb9ee5138801a5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 492 1 0 "0b616dbb_f6d9_4a6e_8a847cf550c9f32c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" Get1mLChannelCount(ML_STAR, int_TotalChannels); // }} "" // {{{ 493 1 0 "fdfd3c55_9d35_4122_8eb48505668df95c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetChannelLimits(ML_STAR, 0, arr_YMax, arr_YMin, flt_YRaster); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ Trace("Y Raster: ",flt_YRaster); /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 495 1 0 "b71cc68f_c409_42a2_a87bd97686458802" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TipsNeeded = StrReplace(i_str_ChannelPattern, Translate("1"), Translate("1")); // }} "" // {{{ 496 1 0 "9f511a89_db68_4569_924f290ffa33c6f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChannelPattern = StrFillRight(i_str_ChannelPattern, Translate("0"), int_TotalChannels); // }} "" // {{ 497 1 0 "7d355a12_b981_4e61_942ad4f394952877" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChannelPattern.SetSize(0); // }} "" // {{ 498 1 0 "43d5b84f_b786_415d_94e5b3e189af5df2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{{ 499 1 0 "7c53d8de_7150_4c56_886bb4e3a7acfa56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrLeft(i_str_ChannelPattern, int_ChannelIndex); // }} "" // {{{ 500 1 0 "92a4b972_e06a_4bd4_9e1c4ae28970ac5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrRight(str_Value, 1); // }} "" // {{{ 501 1 0 "804fc4e8_cc19_4cb7_aa5008874601b56e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ChannelValue = StrIVal(str_Value); // }} "" // {{ 502 1 0 "3027a339_f53d_4aaa_ad5a52c45eab3b17" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChannelPattern.AddAsLast(int_ChannelValue); // }} "" // {{ 503 1 0 "43d5b84f_b786_415d_94e5b3e189af5df2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 504 1 0 "9174e60b_e94f_4834_85f8ebfd5abf27cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipsNeeded == 0) { // }} "" // {{ 505 1 0 "88109134_74b2_48db_a529dcd83f51010e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 506 1 0 "a89bd446_2d40_4d22_842d0c12b7e768aa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 507 1 0 "88109134_74b2_48db_a529dcd83f51010e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 508 1 0 "16788fd8_b828_4959_bc393f013cf3aea5" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 509 1 0 "9174e60b_e94f_4834_85f8ebfd5abf27cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 510 1 0 "03cef2d1_bc58_485c_b41d56df5f8075ca" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (BOOLEON::TRUE == BOOLEON::TRUE) { // }} "" // {{{ 511 1 0 "cbc03f36_02a2_4bfc_9a8e292f350e3df3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TipCheck(ML_STAR, io_seq_TipSequence, i_str_TipCounter, int_TipsNeeded); // }} "" // {{{ 512 1 0 "405313dd_38c6_4c4b_9049d089880bffd3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq_RemainingSequence, io_seq_TipSequence); // }} "" // {{{ 513 1 0 "0bc40078_74b5_4256_9f9eb59ff667330f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, seq_RemainingSequence); // }} "" // {{{ 514 1 0 "57c4edf1_7690_490e_a107753e3aadd57b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTempSortingFilePath(str_TempSortingFilePath); // }} "" // {{{ 515 1 0 "3bcb2dbf_903a_4368_8d34ee2b12c83270" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(str_TempSortingFilePath); // }} "" // {{ 516 1 0 "5488d803_904f_42ca_848237e69f0339ca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 1) { // }} "" // {{{ 517 1 0 "84db3794_ee40_4eaa_a607bc8ddef2777a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(str_TempSortingFilePath); // }} "" // {{ 518 1 0 "5488d803_904f_42ca_848237e69f0339ca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 519 1 0 "2495df25_cdf2_474f_a3e90193fe859802" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 520 1 0 "65aa762f_7f53_4a51_8560476952f46705" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_OptimizationNeeded = BOOLEON::FALSE; // }} "" // {{ 521 1 0 "264d727b_f2fe_492e_a4d74ef8dfe9a1c0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ChannelSet = 1; // }} "" // {{ 522 1 0 "ee4a3e84_216c_4268_a4f011fedb2d6bbc" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{ 523 1 0 "b7b70f16_e7f4_4f90_b4524775b39d1bee" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" int_ChannelActive=arr_ChannelPattern.GetAt(int_ChannelIndex-1); // }} "" // {{ 524 1 0 "373e70b8_f96e_4b53_804b0b01d33db2de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelActive == 1) { // }} "" // {{{ 525 1 0 "655bf6d1_4845_4f5b_af3052422def5756" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_RemainingSequence); // }} "" // {{{ 526 1 0 "47fc717d_aa65_48e7_9fecd85d5c8072ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(seq_RemainingSequence); // }} "" // {{{ 527 1 0 "b0fda1e6_3695_4890_83a0f0d8269b6a32" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(seq_RemainingSequence, 1); // }} "" // {{{ 528 1 0 "4fe8a834_700c_49bd_b8d217ce06571b6c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_CurrentX, flt_CurrentY, flt_NotUsed, flt_NotUsed); // }} "" // {{ 529 1 0 "2fbd8bd9_5cc1_4cd5_a1e24ada492706b1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentY <= arr_YMax.ElementAt( int_ChannelIndex -1)) { // }} "" // {{ 530 1 0 "e0e015c6_9934_4e9e_be95f00476885623" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentY >= arr_YMin.ElementAt( int_ChannelIndex -1)) { // }} "" // {{ 531 1 0 "1f2f21bb_3d73_4b40_85741cfb63f33fbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelSet == 1) { // }} "" // {{ 532 1 0 "bb3dc4c6_647f_4965_89b35f0858521806" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TargetX = flt_CurrentX; // }} "" // {{ 533 1 0 "790f828b_4132_4a49_a34422ef962470b1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_PreviousY = flt_CurrentY; // }} "" // {{ 534 1 0 "f87cba77_faa5_48ee_9f66f2d860b8abc8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ChannelSet = int_ChannelSet + 1; // }} "" // {{ 535 1 0 "1f2f21bb_3d73_4b40_85741cfb63f33fbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 536 1 0 "717b86b5_baf7_4b49_9bdd289fa38df516" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentX != flt_TargetX) { // }} "" // {{ 537 1 0 "d198ae37_4647_42ec_b69a190baa337b8f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_OptimizationNeeded = BOOLEON::TRUE; // }} "" // {{ 538 1 0 "55a05b80_a0ee_47ed_b05896f26575d6c8" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 539 1 0 "717b86b5_baf7_4b49_9bdd289fa38df516" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 540 1 0 "93548fbc_f579_4768_b4eb213caea83f9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentY > flt_PreviousY) { // }} "" // {{ 541 1 0 "1b3c45dc_b1d6_4deb_8a32ee870a7bde20" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_OptimizationNeeded = BOOLEON::TRUE; // }} "" // {{ 542 1 0 "41af9497_1a2d_4b2a_b7933d0d1cee67fa" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 543 1 0 "93548fbc_f579_4768_b4eb213caea83f9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 544 1 0 "dbb78f91_d9a1_42ab_b070697f4ffd350f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ChannelSet = int_ChannelSet + 1; // }} "" // {{ 545 1 0 "1f2f21bb_3d73_4b40_85741cfb63f33fbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 546 1 0 "e0e015c6_9934_4e9e_be95f00476885623" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 547 1 0 "8ea9e78e_83ce_4064_85a1f87eec789d70" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_OptimizationNeeded = BOOLEON::TRUE; // }} "" // {{ 548 1 0 "792e2fe3_eba4_44c6_825ce7ee92c9df9d" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 549 1 0 "e0e015c6_9934_4e9e_be95f00476885623" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 550 1 0 "2fbd8bd9_5cc1_4cd5_a1e24ada492706b1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 551 1 0 "820f6f77_3af9_43ce_90a75bb8e40edd7c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_OptimizationNeeded = BOOLEON::TRUE; // }} "" // {{ 552 1 0 "573b243d_7294_4c50_bf97c0fced02ac60" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 553 1 0 "2fbd8bd9_5cc1_4cd5_a1e24ada492706b1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 554 1 0 "373e70b8_f96e_4b53_804b0b01d33db2de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 555 1 0 "e5e4792d_a4b2_4abb_99380ff2ee4f5bf9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE06(Translate("Channel Active: "), int_ChannelActive, Translate(" Previous Y: "), flt_PreviousY, Translate(" Current X: "), flt_CurrentX); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 556 1 0 "f2d63b90_86ec_4553_9047a5e3cef33e61" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_PreviousY = flt_PreviousY - flt_YRaster; // }} "" // {{ 557 1 0 "ee4a3e84_216c_4268_a4f011fedb2d6bbc" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 558 1 0 "08e74d1e_3c7e_4200_8cbb8a8deca650b7" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_RemainingSequence.SetCurrentPosition(1); // }} "" // {{ 559 1 0 "2495df25_cdf2_474f_a3e90193fe859802" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 560 1 0 "7854e589_4fdd_43de_84fb880873e27a69" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_OptimizationNeeded == BOOLEON::TRUE) { // }} "" // {{ 561 1 0 "098ed406_17ab_4912_8f2fb1e8cd51c6cc" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("OPTIMIZE NEEDED!")); // }} "" // {{{ 562 1 0 "d8d859ee_660e_43da_84699fd605d64dff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(str_TempSortingFilePath); // }} "" // {{ 563 1 0 "aee86a20_71d6_4bb2_8504a889e69fa2b8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 1) { // }} "" // {{{ 564 1 0 "60751214_c59d_4322_98994bf85951b0fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(str_TempSortingFilePath); // }} "" // {{ 565 1 0 "aee86a20_71d6_4bb2_8504a889e69fa2b8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 566 1 0 "808ac042_a174_4a1f_b6645fab91c5de1a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::SortSequence(ML_STAR, seq_RemainingSequence, BOOLEON::FALSE); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 567 1 0 "f3cafa71_06b7_448d_990d51b13c774fc9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::SortSequenceRaster(ML_STAR, seq_RemainingSequence, BOOLEON::FALSE, flt_YRaster); // }} "" // {{ 568 1 0 "6a0710f2_f8b0_4fa9_8928e4a77eb178d3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Group, int_ChannelIndex, flt_CurrentX, bln_Used; WriteFile.RemoveFields(); WriteFile.AddField("INDEX", int_PositionCount, hslInteger); WriteFile.AddField("USED", bln_Used, hslInteger); WriteFile.AddField("LAB_ID", str_LabID, hslString, 255); WriteFile.AddField("POS_ID", str_PosID, hslString, 255); WriteFile.AddField("X_COORD", flt_X_Coord, hslFloat); WriteFile.AddField("Y_COORD", flt_Y_Coord, hslFloat); WriteFile.AddField("Z_COORD", flt_Z_Coord, hslFloat); WriteFile.AddField("GROUP",int_Group,hslInteger); int_TotalValues = seq_RemainingSequence.GetTotal(); WriteFile.SetExtendedProperties("HDR=YES"); WriteFile.Open(str_TempSortingFilePath + " " + "SORT", hslWrite); int_PositionCount = 1; int_Group = 0; flt_CurrentX = -100.0; for(i = 0; i < int_TotalValues;) { i = i + 1; int_ChannelIndex = int_ChannelIndex + 1; seq_RemainingSequence.SetCurrentPosition(i); str_LabID = seq_RemainingSequence.GetLabwareId(); str_PosID = seq_RemainingSequence.GetPositionId(); DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_NotUsed); if(flt_CurrentX != flt_X_Coord) { flt_CurrentX = flt_X_Coord; int_Group = int_Group + 1; int_ChannelIndex = 1; } if(int_ChannelIndex > int_TotalChannels) { int_ChannelIndex = 1; flt_CurrentX = flt_X_Coord; int_Group = int_Group + 1; } WriteFile.WriteRecord(); int_PositionCount = int_PositionCount + 1; } WriteFile.Close(); WriteFile.RemoveFields(); } // {{ 570 1 0 "80f8aff9_1680_41ed_bebe9481bdbfbaee" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 571 1 0 "10fd002c_f9a1_478a_868cafe5c805156e" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_GroupedLabID.SetSize(0); // }} "" // {{ 572 1 0 "4586008a_a09d_4747_8a1f23bd449dfb3b" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_GroupedXCoords.SetSize(0); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 573 1 0 "6a263613_f8d4_4865_960763ccf6b2b0a0" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_GroupNumber.SetSize(0); // }} "" // {{ 574 1 0 "609c2f57_99d8_4160_96fb4d1b1973f533" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_GroupedCounts.SetSize(0); // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, int_Group; SortFile.RemoveFields(); //str_SQL = "SELECT [GROUP], Y_COORD, COUNT(*) AS N FROM (SELECT * FROM SORT ORDER BY Y_COORD DESC, X_COORD ASC) GROUP BY [GROUP], Y_COORD ORDER BY Y_COORD DESC"; str_SQL = "SELECT [GROUP], N FROM (SELECT [GROUP], COUNT(*) AS N FROM SORT GROUP BY [GROUP]) ORDER BY [GROUP] ASC"; //SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("GROUP", int_Group, hslFloat); SortFile.AddField("N", int_Count, hslInteger); int_TotalValues = seq_RemainingSequence.GetTotal(); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); str_LabID = ""; flt_Y_Coord = 0.0; while(SortFile.Eof() == 0) { SortFile.ReadRecord(); arr_GroupNumber.AddAsLast(int_Group); arr_GroupedCounts.AddAsLast(int_Count); } SortFile.Close(); SortFile.RemoveFields(); } // {{ 576 1 0 "2cab2f9f_eeba_4ae9_b5e1bd6e2e73a6cf" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 577 1 0 "548470ae_b18c_4bbf_89fc273c28443be8" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalOptions=arr_GroupedCounts.GetSize(); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 578 1 0 "e910ba33_5e56_41f2_86fbf3bba64c765a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_2(Translate("Counts Group"), arr_GroupedCounts, arr_GroupNumber); // }} "" // {{{ 579 1 0 "eb0124f9_2cb7_4b57_81d752cafeb41399" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_3(Translate("Counts Lab X"), arr_GroupedCounts, arr_GroupedLabID, arr_GroupedXCoords); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 580 1 0 "b68e66e1_2733_430e_ae9e1f3d5aa9c256" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, bln_UseOptimization, int_Index, str_InValue, flt_XCoord, int_Group, a, int_ChannelCount, int_UpdateCount, int_ChannelIndex; variable flt_PreviousY; bln_UseOptimization = hslFalse; SortFile.RemoveFields(); SortFile.AddField("INDEX", int_Index, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("X_COORD", flt_X_Coord, hslFloat); SortFile.AddField("Y_COORD", flt_X_Coord, hslFloat); SortFile.AddField("GROUP", int_Group, hslInteger); str_SQL = "SELECT INDEX, LAB_ID, X_COORD, Y_COORD, [GROUP] FROM SORT ORDER BY LAB_ID ASC, Y_COORD DESC, X_COORD ASC"; SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); while(SortFile.Eof() == 0) { SortFile.ReadRecord(); //Util::Lookup(arr_GroupedCounts,int_Group,a); //Trace("Group: ", int_Group," Count: ",arr_GroupedCounts.GetAt(int_Group-1)," Tips needed: ",int_TipsNeeded); if(arr_GroupedCounts.GetAt(int_Group-1) >= int_TipsNeeded) { int_Group = StrConcat2(int_Group,""); bln_UseOptimization = hslTrue; break; } } //int_Index = StrConcat2(int_Index,""); SortFile.Close(); SortFile.RemoveFields(); //Trace("Lab ID: ",str_LabID," X Coord: ",flt_X_Coord); //Trace("Group: ",int_Group); //Trace("Use Optimization: ",bln_UseOptimization); if(bln_UseOptimization == hslTrue) { str_SQL = "SELECT INDEX, LAB_ID, POS_ID, X_COORD, Y_COORD, [GROUP] FROM SORT WHERE [GROUP] = " + int_Group + " ORDER BY X_COORD ASC, Y_COORD DESC"; SortFile.RemoveFields(); SortFile.AddField("INDEX", int_Index, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("X_COORD", flt_X_Coord, hslFloat); SortFile.AddField("Y_COORD", flt_Y_Coord, hslFloat); SortFile.AddField("GROUP",int_Group, hslInteger); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); i = 0; int_ChannelIndex = 1; str_InValue = "("; flt_PreviousY = 9999.9; while(SortFile.Eof() == 0) { if(i > int_TipsNeeded) break; SortFile.ReadRecord(); if(arr_ChannelPattern.GetAt(int_ChannelIndex-1)==1) { if(i==0) flt_PreviousY = flt_Y_Coord + flt_YRaster; if(flt_Y_Coord <= flt_PreviousY - flt_YRaster) { i = i + 1; if(i > 1) str_InValue = str_InValue + ", "; str_InValue = StrConcat2(str_InValue , int_Index); int_ChannelIndex = int_ChannelIndex + 1; } } else { int_ChannelIndex = int_ChannelIndex + 1; } } str_InValue = str_InValue + ")"; SortFile.Close(); SortFile.RemoveFields(); UpdateFile.RemoveFields(); str_SQL = "UPDATE SORT SET USED = 2 WHERE INDEX IN" + str_InValue; //Trace(str_SQL); UpdateFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); UpdateFile.Close(); UpdateFile.RemoveFields(); } else { str_SQL = "SELECT INDEX, LAB_ID, POS_ID, X_COORD, Y_COORD FROM SORT ORDER BY X_COORD ASC, Y_COORD DESC"; SortFile.RemoveFields(); SortFile.AddField("INDEX", int_Index, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("X_COORD", flt_X_Coord, hslFloat); SortFile.AddField("Y_COORD", flt_Y_Coord, hslFloat); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); i = 0; str_InValue = "("; int_ChannelCount = 1; int_UpdateCount = 0; int_ChannelIndex = 1; while(SortFile.Eof() == 0) { //loop(int_TotalChannels) //{ //if(int_ChannelIndex > int_TotalChannels) break; //if(arr_ChannelPattern.GetAt(int_ChannelIndex)==1) //{ //break; //} //int_ChannelIndex = int_ChannelIndex + 1; //} if(int_ChannelIndex > int_TotalChannels) break; SortFile.ReadRecord(); i = i + 1; if(int_ChannelCount > int_TipsNeeded) break; //Trace(flt_Y_Coord," <= ",arr_YMax.GetAt(int_ChannelIndex-1)); //Trace(flt_Y_Coord," >= ",arr_YMin.GetAt(int_ChannelIndex-1)); if(flt_Y_Coord <= arr_YMax.GetAt(int_ChannelIndex-1)) { if(flt_Y_Coord >= arr_YMin.GetAt(int_ChannelIndex-1)) { if(int_ChannelCount > 1) str_InValue = str_InValue + ", "; str_InValue = StrConcat2(str_InValue , int_Index); int_ChannelCount = int_ChannelCount + 1; int_UpdateCount = int_UpdateCount + 1; int_ChannelIndex = int_ChannelIndex + 1; } } } str_InValue = str_InValue + ")"; SortFile.Close(); SortFile.RemoveFields(); if(int_UpdateCount>0) { UpdateFile.RemoveFields(); str_SQL = "UPDATE SORT SET USED = 2 WHERE INDEX IN" + str_InValue; UpdateFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); UpdateFile.Close(); UpdateFile.RemoveFields(); } } } // {{ 582 1 0 "b976ae82_e2ef_466e_903b9e5fe3855d7a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 583 1 0 "75adf795_ed7e_44f5_9cde833b75a5554e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(io_seq_TipSequence); // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, bln_Used; SortFile.RemoveFields(); str_SQL = "SELECT USED, LAB_ID, POS_ID FROM SORT ORDER BY USED DESC, LAB_ID ASC, X_COORD ASC, Y_COORD DESC"; SortFile.AddField("USED", bln_Used, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("POS_ID", str_PosID, hslString, 255); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); while(SortFile.Eof() == 0) { SortFile.ReadRecord(); SeqAdd(io_seq_TipSequence, Translate(str_LabID), Translate(str_PosID)); } SortFile.Close(); SortFile.RemoveFields(); } // {{ 585 1 0 "4b2f3034_1a2f_44c5_83786a54370344c9" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_seq_TipSequence.SetCurrentPosition(1); // }} "" // {{ 586 1 0 "63297389_5f1f_46c7_aa98ad06e79d7182" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_EnoughTipsLoaded = BOOLEON::TRUE; // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL; SortFile.RemoveFields(); str_SQL = "SELECT COUNT(*) AS N FROM SORT WHERE USED = 2"; SortFile.AddField("N", int_Count, hslInteger); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); SortFile.ReadRecord(); SortFile.Close(); SortFile.RemoveFields(); if(int_Count < int_TipsNeeded) bln_EnoughTipsLoaded = hslFalse; } // {{ 588 1 0 "18c0b053_e0d6_4199_93cce7d4942f651e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_EnoughTipsLoaded == BOOLEON::FALSE) { // }} "" // {{ 589 1 0 "d3e34f56_86d1_40e5_ad11ab7018ee241c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("------------------ Insufficient tips found")); // }} "" // {{{ 590 1 0 "fdc18aaa_0d09_4ae8_87653b7e6178016c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TipCapacityCheck(ML_STAR, io_seq_TipSequence, flt_TipCapacity); // }} "" // {{ 591 1 0 "b96623d3_e3ba_47ef_8d6e732718f6e43f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_TipCapacity == 0.0) { // }} "" // {{ 592 1 0 "8533f1cf_d148_4381_bf5ee1460e9064d0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TipCapacity = Translate("Unknown"); // }} "" // {{ 593 1 0 "b96623d3_e3ba_47ef_8d6e732718f6e43f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 594 1 0 "3ae4d71f_7a3d_4aab_b7edaace45dff159" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipName = StrConcat4(flt_TipCapacity, Translate(" uL Tips"), Translate(""), Translate("")); // }} "" // {{{ 595 1 0 "21edea81_604d_4e6f_ae5aae7f5681cb3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipMessage = StrConcat4(Translate("Please load more "), str_TipName, Translate(" on to the deck."), Translate("")); // }} "" // {{ 596 1 0 "a41a6d9e_88e5_4b6c_b3c5f24c0807ae2c" "{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}" customDialog658827E8DE2440068F918232E0BE9E71.InitCustomDialog( "a41a6d9e_88e5_4b6c_b3c5f24c0807ae2c" ); customDialog658827E8DE2440068F918232E0BE9E71.SetCustomDialogProperty( "textBlock2.Text", str_TipMessage ); customDialog658827E8DE2440068F918232E0BE9E71.ShowCustomDialog(); // }} "" // {{{ 597 1 0 "71d91bd6_7f17_42a6_aa68f619895fc8d7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ResetInputSequence(ML_STAR, io_seq_TipSequence); // }} "" // {{{ 598 1 0 "0ad23c4d_b42f_4f0a_b0d6a222081c3b05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TipCounter_Edit(ML_STAR, io_seq_TipSequence, i_str_TipCounter, 99999); // }} "" // {{ 599 1 0 "18c0b053_e0d6_4199_93cce7d4942f651e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 600 1 0 "d2ef1cbb_ecd0_45ff_aa919933c7e6c6d0" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 601 1 0 "18c0b053_e0d6_4199_93cce7d4942f651e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 602 1 0 "6a0710f2_f8b0_4fa9_8928e4a77eb178d3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 603 1 0 "7854e589_4fdd_43de_84fb880873e27a69" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 604 1 0 "3b4a7163_735a_492e_b46667a639fb058a" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 605 1 0 "7854e589_4fdd_43de_84fb880873e27a69" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 606 1 0 "03cef2d1_bc58_485c_b41d56df5f8075ca" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 607 1 0 "050a82a9_18cd_4697_9d045659ccf23341" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 608 1 0 "7741a637_31fc_4cd8_8ac87d2a9dd08fe3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 609 1 0 "050a82a9_18cd_4697_9d045659ccf23341" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "Optimized1mLTipPickup2" "End" } // }} "" // {{{ 5 "Optimized5mLTipPickup" "Begin" function Optimized5mLTipPickup( device & ML_STAR, sequence & io_seq_TipSequence, sequence i_seq_ControlSequence, variable i_str_TipCounter, variable & o_str_ChannelPattern ) void { // }} "" private dialog customDialog1E713D506B7B49588AC668FAFBEF1C52; private variable flt_NotUsed; private variable flt_CurrentX; private variable flt_TipCapacity; private variable flt_CurrentY; private variable flt_YRaster; private variable int_TotalOptions; private variable bln_OptimizationNeeded; private variable _strFunctionName; private variable int_TotalPositionsRemaining; private variable str_LabID; private variable bool_FileExists; private variable str_TipMessage; private variable flt_PreviousY; private variable str_TempSortingFilePath; private variable flt_TargetX; private variable int_SeqIndex; private variable int_TotalChannels; private variable str_PosID; private variable int_TipsNeeded; private variable bln_EnoughTipsLoaded; private variable str_TipName; private sequence seq_RemainingSequence; private variable arr_GroupedXCoords[]; private variable arr_GroupNumber[]; private variable arr_YMin[]; private variable arr_YMax[]; private variable arr_GroupedCounts[]; private variable arr_GroupedLabID[]; private file SortFile; private file UpdateFile; private file WriteFile; private variable bln_Used; // {{ 5 "Optimized5mLTipPickup" "InitLocals" o_str_ChannelPattern = 0; // }} "" // {{ 611 1 0 "81227204_1229_454f_aff2a7559ca862b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 612 1 0 "c419db86_0f77_4e53_bee258c18052c0e2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 614 1 0 "cd2061c9_cf0d_4672_b9d9cfec69d3b69e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 615 1 0 "81227204_1229_454f_aff2a7559ca862b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 616 1 0 "79558700_b2a9_42d8_9adab93c5c4eea5c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str_ChannelPattern = Translate(""); // }} "" // {{{ 617 1 0 "d42ff746_a3da_47d8_b4d62df67ecf6c83" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" Get5mLChannelCount(ML_STAR, int_TotalChannels); // }} "" // {{{ 618 1 0 "3b966059_e21f_4b65_9752cbec5dee9e47" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetChannelLimits(ML_STAR, 1, arr_YMax, arr_YMin, flt_YRaster); // }} "" // {{{ 619 1 0 "bf47843b_c941_4e5c_865dad7d9ef707e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, i_seq_ControlSequence); // }} "" // {{{ 620 1 0 "2bc367f3_bdeb_4f2c_89c9adb60c1a6d67" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TotalPositionsRemaining = SeqGetTotal(i_seq_ControlSequence); // }} "" // {{ 621 1 0 "6201ed1b_06ee_4afc_ba887c363e469720" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TipsNeeded = int_TotalPositionsRemaining; // }} "" // {{ 622 1 0 "9413cc48_692f_49a3_81b88124b877d143" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipsNeeded > int_TotalChannels) { // }} "" // {{ 623 1 0 "a532ee10_1c66_44e7_8e90a34004ff1488" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TipsNeeded = int_TotalChannels; // }} "" // {{ 624 1 0 "9413cc48_692f_49a3_81b88124b877d143" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 625 1 0 "1cfe24db_003c_4464_a32c602e728eb354" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipsNeeded == 0) { // }} "" // {{ 626 1 0 "c423331e_0891_4dec_a83a4b12b6aecf76" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 627 1 0 "17f667cc_7997_42fb_972748312f394213" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 628 1 0 "c423331e_0891_4dec_a83a4b12b6aecf76" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 629 1 0 "e664d1f4_a200_49ec_8f6518012f426e60" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 630 1 0 "1cfe24db_003c_4464_a32c602e728eb354" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 631 1 0 "e405a64e_09ba_4dc6_9e3bea0f3a0a70b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_Used = 0; // }} "" // {{ 632 1 0 "0e8d2cd5_8312_4e5f_b3608e8ee30e87b6" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (BOOLEON::TRUE == BOOLEON::TRUE) { // }} "" // {{{ 633 1 0 "8a5f61bc_b4ef_4627_8050829f1648d89b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TipCheck(ML_STAR, io_seq_TipSequence, i_str_TipCounter, int_TipsNeeded); // }} "" // {{{ 634 1 0 "91ee650a_d59d_4eb2_8a269965017b4c5e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq_RemainingSequence, io_seq_TipSequence); // }} "" // {{{ 635 1 0 "b0aff417_e40b_4903_b726f96169297671" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, seq_RemainingSequence); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 636 1 0 "46fb52fd_8855_4505_a29f943efba905d7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _SortSequenceYPriority(ML_STAR, seq_RemainingSequence); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 637 1 0 "6656a50c_5bea_42c2_b15c0332872f8f3f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTempSortingFilePath(str_TempSortingFilePath); // }} "" // {{{ 638 1 0 "f15b98fe_2302_4c77_aac91bd6c70ce1e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(str_TempSortingFilePath); // }} "" // {{ 639 1 0 "302ee04c_6026_448e_a9e980c7578be133" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 1) { // }} "" // {{{ 640 1 0 "a86b6301_3447_40c5_8b8315efe972ec48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(str_TempSortingFilePath); // }} "" // {{ 641 1 0 "302ee04c_6026_448e_a9e980c7578be133" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 642 1 0 "feec5c10_21ad_453e_bb5e9dfc110b70ab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildChannelPattern(int_TipsNeeded, int_TotalChannels, o_str_ChannelPattern); // }} "" // {{ 643 1 0 "69ec4e8a_b4ad_467f_afc9b493cabcf686" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 644 1 0 "eb66c58b_0dd2_4da6_a960bbd3e04fed31" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_OptimizationNeeded = BOOLEON::FALSE; // }} "" // {{ 645 1 0 "6256bd18_c4c7_41ed_ab7d7d6006bfd848" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_SeqIndex = 0; int_SeqIndex < int_TipsNeeded;) { int_SeqIndex = int_SeqIndex + 1; // }} "" // {{{ 646 1 0 "425fcf04_d590_47fd_8b0deb8dc8a1f5b6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_RemainingSequence); // }} "" // {{{ 647 1 0 "58acd061_c305_4e72_9d74311e84c9cdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(seq_RemainingSequence); // }} "" // {{{ 648 1 0 "953360ee_289b_45a1_ab09d036e0936046" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(seq_RemainingSequence, 1); // }} "" // {{{ 649 1 0 "30a33945_e176_4034_bec6d22bba61e4c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_CurrentX, flt_CurrentY, flt_NotUsed, flt_NotUsed); // }} "" // {{ 650 1 0 "8ec86416_84cb_4a82_b2f9eb2de6927692" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_SeqIndex == 1) { // }} "" // {{ 651 1 0 "3dc4efd4_9c68_470c_8f564df88246a9f8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TargetX = flt_CurrentX; // }} "" // {{ 652 1 0 "0ce7b2e4_698f_4f4a_aa44ff98bd70baf2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_PreviousY = flt_CurrentY; // }} "" // {{ 653 1 0 "8ec86416_84cb_4a82_b2f9eb2de6927692" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 654 1 0 "2ae83690_355a_46ab_8bd395ed6711ddaf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentX != flt_TargetX) { // }} "" // {{ 655 1 0 "bb3d5baf_babe_4333_b36b83092e1a4830" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_OptimizationNeeded = BOOLEON::TRUE; // }} "" // {{ 656 1 0 "7dfa5307_4c35_4a4a_9708ca12d2a0a70d" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 657 1 0 "2ae83690_355a_46ab_8bd395ed6711ddaf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 658 1 0 "77184d01_be1a_4566_ae7aea74adcbc336" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentY > flt_PreviousY) { // }} "" // {{ 659 1 0 "06ade6e0_9ea3_415d_997cd31bba6b2a80" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_OptimizationNeeded = BOOLEON::TRUE; // }} "" // {{ 660 1 0 "cd229ec2_cab4_4781_83f5f1569628a7a7" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 661 1 0 "77184d01_be1a_4566_ae7aea74adcbc336" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 662 1 0 "9c6f54dc_112e_40d2_93d25640817a1b23" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_PreviousY = flt_CurrentY; // }} "" // {{ 663 1 0 "8ec86416_84cb_4a82_b2f9eb2de6927692" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 664 1 0 "acdb2a96_f55b_4f72_a784f1de2f7c1d7c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_PreviousY = flt_PreviousY - flt_YRaster; // }} "" // {{ 665 1 0 "6256bd18_c4c7_41ed_ab7d7d6006bfd848" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 666 1 0 "608cdbfb_7f85_421b_bb1842e53bed6bc0" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_RemainingSequence.SetCurrentPosition(1); // }} "" // {{ 667 1 0 "69ec4e8a_b4ad_467f_afc9b493cabcf686" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 668 1 0 "36a71cd3_4521_4ae3_9bab2783dc4e9442" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_OptimizationNeeded == BOOLEON::TRUE) { // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 669 1 0 "7816e576_69f2_4b58_a9ee001468cb4653" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::SortSequence(ML_STAR, seq_RemainingSequence, BOOLEON::FALSE); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 670 1 0 "ca0039e1_d751_4125_968e43b3f38b47d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::SortSequenceRaster(ML_STAR, seq_RemainingSequence, BOOLEON::FALSE, flt_YRaster); // }} "" // {{ 671 1 0 "728066be_b08d_4a76_af138a50280c9c4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Group, int_ChannelIndex, flt_CurrentX; WriteFile.RemoveFields(); WriteFile.AddField("INDEX", int_PositionCount, hslInteger); WriteFile.AddField("USED", bln_Used, hslInteger); WriteFile.AddField("LAB_ID", str_LabID, hslString, 255); WriteFile.AddField("POS_ID", str_PosID, hslString, 255); WriteFile.AddField("X_COORD", flt_X_Coord, hslFloat); WriteFile.AddField("Y_COORD", flt_Y_Coord, hslFloat); WriteFile.AddField("Z_COORD", flt_Z_Coord, hslFloat); WriteFile.AddField("GROUP",int_Group,hslInteger); int_TotalValues = seq_RemainingSequence.GetTotal(); WriteFile.SetExtendedProperties("HDR=YES"); WriteFile.Open(str_TempSortingFilePath + " " + "SORT", hslWrite); int_PositionCount = 1; int_Group = 0; flt_CurrentX = -100.0; for(i = 0; i < int_TotalValues;) { i = i + 1; int_ChannelIndex = int_ChannelIndex + 1; seq_RemainingSequence.SetCurrentPosition(i); str_LabID = seq_RemainingSequence.GetLabwareId(); str_PosID = seq_RemainingSequence.GetPositionId(); DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_NotUsed); if(flt_CurrentX != flt_X_Coord) { flt_CurrentX = flt_X_Coord; int_Group = int_Group + 1; int_ChannelIndex = 1; } if(int_ChannelIndex > int_TotalChannels) { int_ChannelIndex = 1; flt_CurrentX = flt_X_Coord; int_Group = int_Group + 1; } WriteFile.WriteRecord(); int_PositionCount = int_PositionCount + 1; } WriteFile.Close(); WriteFile.RemoveFields(); } // {{ 673 1 0 "44874661_3057_42ad_8ee4bcf17d7ea056" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 674 1 0 "bd47444d_65ee_4b48_9a73dd4f4431251d" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_GroupedLabID.SetSize(0); // }} "" // {{ 675 1 0 "70514244_2892_437c_9b3ad7be20572bf2" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_GroupedXCoords.SetSize(0); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 676 1 0 "db2e03b1_9a4c_46b3_92c8bc3a84947e86" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_GroupNumber.SetSize(0); // }} "" // {{ 677 1 0 "05b87f22_9cd7_4f9e_806cf7d6d44c2258" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_GroupedCounts.SetSize(0); // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, int_Group; SortFile.RemoveFields(); //str_SQL = "SELECT [GROUP], Y_COORD, COUNT(*) AS N FROM (SELECT * FROM SORT ORDER BY Y_COORD DESC, X_COORD ASC) GROUP BY [GROUP], Y_COORD ORDER BY Y_COORD DESC"; str_SQL = "SELECT [GROUP], N FROM (SELECT [GROUP], COUNT(*) AS N FROM SORT GROUP BY [GROUP]) ORDER BY [GROUP] ASC"; //SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("GROUP", int_Group, hslFloat); SortFile.AddField("N", int_Count, hslInteger); int_TotalValues = seq_RemainingSequence.GetTotal(); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); str_LabID = ""; flt_Y_Coord = 0.0; while(SortFile.Eof() == 0) { SortFile.ReadRecord(); arr_GroupNumber.AddAsLast(int_Group); arr_GroupedCounts.AddAsLast(int_Count); } SortFile.Close(); SortFile.RemoveFields(); } // {{ 679 1 0 "0f4e381a_4f78_4de2_87a621682b61848a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 680 1 0 "879b54d2_f4cd_4c14_a33e6613503ffdba" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalOptions=arr_GroupedCounts.GetSize(); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 681 1 0 "7d83b81b_6cd7_4612_aed30673d2f27357" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_2(Translate("Counts Group"), arr_GroupedCounts, arr_GroupNumber); // }} "" // {{{ 682 1 0 "a5b12a53_9a27_47be_81ee38358baa3abd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_3(Translate("Counts Lab X"), arr_GroupedCounts, arr_GroupedLabID, arr_GroupedXCoords); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 683 1 0 "e9ce2f09_c300_427e_963b7548177035d1" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, bln_UseOptimization, int_Index, str_InValue, flt_XCoord, int_Group, a, int_ChannelCount, int_UpdateCount; bln_UseOptimization = hslFalse; SortFile.RemoveFields(); SortFile.AddField("INDEX", int_Index, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("X_COORD", flt_X_Coord, hslFloat); SortFile.AddField("Y_COORD", flt_X_Coord, hslFloat); SortFile.AddField("GROUP", int_Group, hslInteger); str_SQL = "SELECT INDEX, LAB_ID, X_COORD, Y_COORD, [GROUP] FROM SORT ORDER BY LAB_ID ASC, Y_COORD DESC, X_COORD ASC"; SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); while(SortFile.Eof() == 0) { SortFile.ReadRecord(); //Util::Lookup(arr_GroupedCounts,int_Group,a); //Trace("Group: ", int_Group," Count: ",arr_GroupedCounts.GetAt(int_Group-1)," Tips needed: ",int_TipsNeeded); if(arr_GroupedCounts.GetAt(int_Group-1) >= int_TipsNeeded) { int_Group = StrConcat2(int_Group,""); bln_UseOptimization = hslTrue; break; } } //int_Index = StrConcat2(int_Index,""); SortFile.Close(); SortFile.RemoveFields(); //Trace("Lab ID: ",str_LabID," X Coord: ",flt_XCoord); //Trace("Group: ",int_Group); //Trace("Use Optimization: ",bln_UseOptimization); if(bln_UseOptimization == hslTrue) { str_SQL = "SELECT INDEX, LAB_ID, POS_ID, X_COORD, Y_COORD, [GROUP] FROM SORT WHERE [GROUP] = " + int_Group + " ORDER BY X_COORD ASC, Y_COORD DESC"; SortFile.RemoveFields(); SortFile.AddField("INDEX", int_Index, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("X_COORD", flt_X_Coord, hslFloat); SortFile.AddField("Y_COORD", flt_X_Coord, hslFloat); SortFile.AddField("GROUP",int_Group, hslInteger); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); i = 0; str_InValue = "("; while(SortFile.Eof() == 0) { i = i + 1; if(i > int_TipsNeeded) break; SortFile.ReadRecord(); if(i > 1) str_InValue = str_InValue + ", "; str_InValue = StrConcat2(str_InValue , int_Index); } str_InValue = str_InValue + ")"; SortFile.Close(); SortFile.RemoveFields(); UpdateFile.RemoveFields(); str_SQL = "UPDATE SORT SET USED = 2 WHERE INDEX IN" + str_InValue; //Trace(str_SQL); UpdateFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); UpdateFile.Close(); UpdateFile.RemoveFields(); } else { str_SQL = "SELECT INDEX, LAB_ID, POS_ID, X_COORD, Y_COORD FROM SORT ORDER BY X_COORD ASC, Y_COORD DESC"; SortFile.RemoveFields(); SortFile.AddField("INDEX", int_Index, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("X_COORD", flt_X_Coord, hslFloat); SortFile.AddField("Y_COORD", flt_Y_Coord, hslFloat); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); i = 0; str_InValue = "("; int_ChannelCount = 1; int_UpdateCount = 0; while(SortFile.Eof() == 0) { SortFile.ReadRecord(); i = i + 1; if(int_ChannelCount > int_TipsNeeded) break; if(flt_Y_Coord <= arr_YMax.GetAt(int_ChannelCount-1)) { if(flt_Y_Coord >= arr_YMin.GetAt(int_ChannelCount-1)) { if(int_ChannelCount > 1) str_InValue = str_InValue + ", "; str_InValue = StrConcat2(str_InValue , int_Index); int_ChannelCount = int_ChannelCount + 1; int_UpdateCount = int_UpdateCount + 1; } } } str_InValue = str_InValue + ")"; SortFile.Close(); SortFile.RemoveFields(); if(int_UpdateCount>0) { UpdateFile.RemoveFields(); str_SQL = "UPDATE SORT SET USED = 2 WHERE INDEX IN" + str_InValue; UpdateFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); UpdateFile.Close(); UpdateFile.RemoveFields(); } } } // {{ 685 1 0 "7c3696e4_adf3_4717_b55164fce00a4bb6" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 686 1 0 "4bb57610_25dc_445d_bd201a01ee739345" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(io_seq_TipSequence); // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL; SortFile.RemoveFields(); str_SQL = "SELECT USED, LAB_ID, POS_ID FROM SORT ORDER BY USED DESC, LAB_ID ASC, X_COORD ASC, Y_COORD DESC"; SortFile.AddField("USED", bln_Used, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("POS_ID", str_PosID, hslString, 255); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); while(SortFile.Eof() == 0) { SortFile.ReadRecord(); SeqAdd(io_seq_TipSequence, Translate(str_LabID), Translate(str_PosID)); } SortFile.Close(); SortFile.RemoveFields(); } // {{ 688 1 0 "c0b07f18_4e9c_4e0c_a68e42525457a476" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_seq_TipSequence.SetCurrentPosition(1); // }} "" // {{ 689 1 0 "9d43c71f_c5da_4730_b763ffa6c487b769" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_EnoughTipsLoaded = BOOLEON::TRUE; // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL; SortFile.RemoveFields(); str_SQL = "SELECT COUNT(*) AS N FROM SORT WHERE USED = 2"; SortFile.AddField("N", int_Count, hslInteger); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); SortFile.ReadRecord(); SortFile.Close(); SortFile.RemoveFields(); if(int_Count < int_TipsNeeded) bln_EnoughTipsLoaded = hslFalse; } // {{ 691 1 0 "89920c34_bfb3_4586_9464ec6aa07b0230" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_EnoughTipsLoaded == BOOLEON::FALSE) { // }} "" // {{ 692 1 0 "94173776_caf2_4321_aeea6f0f792d7ea1" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("------------------ Insufficient tips found")); // }} "" // {{{ 693 1 0 "1dec8f3f_b362_485d_abd3b8ae1e4272df" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TipCapacityCheck(ML_STAR, io_seq_TipSequence, flt_TipCapacity); // }} "" // {{ 694 1 0 "1c11c7c5_5aa0_4dc1_b2f85d50e62ce4d2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_TipCapacity == 0.0) { // }} "" // {{ 695 1 0 "0bf86617_42c7_4285_94e1577425e812e7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TipCapacity = Translate("Unknown"); // }} "" // {{ 696 1 0 "1c11c7c5_5aa0_4dc1_b2f85d50e62ce4d2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 697 1 0 "58a38c4b_92a6_42a7_a47dcf3c36a271b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipName = StrConcat4(flt_TipCapacity, Translate(" uL Tips"), Translate(""), Translate("")); // }} "" // {{{ 698 1 0 "1b137450_161c_4f6b_9bd20fec8f57fe9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipMessage = StrConcat4(Translate("Please load more "), str_TipName, Translate(" on to the deck."), Translate("")); // }} "" // {{ 699 1 0 "da7de0ca_2bef_4fc4_8589ca882ee7f96e" "{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}" customDialog1E713D506B7B49588AC668FAFBEF1C52.InitCustomDialog( "da7de0ca_2bef_4fc4_8589ca882ee7f96e" ); customDialog1E713D506B7B49588AC668FAFBEF1C52.SetCustomDialogProperty( "textBlock2.Text", str_TipMessage ); customDialog1E713D506B7B49588AC668FAFBEF1C52.ShowCustomDialog(); // }} "" // {{{ 700 1 0 "b5c484ee_b08d_423d_873ee7719b679440" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ResetInputSequence(ML_STAR, io_seq_TipSequence); // }} "" // {{{ 701 1 0 "c4fb84ed_90dc_47da_b22019a3eef9ae44" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TipCounter_Edit(ML_STAR, io_seq_TipSequence, i_str_TipCounter, 99999); // }} "" // {{ 702 1 0 "89920c34_bfb3_4586_9464ec6aa07b0230" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 703 1 0 "c7e438f8_d0f4_4231_a81e2242716722ef" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 704 1 0 "89920c34_bfb3_4586_9464ec6aa07b0230" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 705 1 0 "728066be_b08d_4a76_af138a50280c9c4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 706 1 0 "36a71cd3_4521_4ae3_9bab2783dc4e9442" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 707 1 0 "e7b6a0bd_1d3a_429d_83254849cb88942b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 708 1 0 "36a71cd3_4521_4ae3_9bab2783dc4e9442" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 709 1 0 "0e8d2cd5_8312_4e5f_b3608e8ee30e87b6" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 710 1 0 "78c26513_64e9_47e4_88225fcf24008900" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 711 1 0 "4ee94b00_c0fc_4d63_9013be008ff1f35a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 712 1 0 "78c26513_64e9_47e4_88225fcf24008900" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "Optimized5mLTipPickup" "End" } // }} "" // {{{ 5 "DefragTipRacks1mL" "Begin" function DefragTipRacks1mL( device & ML_STAR, sequence & io_seq_Tips ) void { // }} "" private variable _strFunctionName; private sequence seq_TipsEmpty; private sequence seq_TipsRemaining; private variable arr_LabIDs[]; private variable int_RemainingLabIDs; private variable int_Index; private variable str_LabID; private sequence seq_Temp; private variable int_NumInSeq; private variable i; private variable int_Position; private variable str_PosID; private file WriteFile; private variable bool_FileExists; private variable str_TempSortingFilePath; private variable arr_PartialLabID[]; private variable arr_PartialCount[]; private file SortFile; private variable flt_YRaster; private variable int_TotalChannels; private variable arr_YMin[]; private variable arr_YMax[]; private variable int_TotalPartial; private sequence seq_TipsPickUp; private variable int_ChannelIndex; private variable int_LabIndex; private variable flt_YMax; private variable flt_YMin; private variable int_ChannelsSet; private variable arr_ChannelPattern[]; private variable str_CurrentLabID; private variable bln_ValueFound; private variable arr_PickUpIndex[]; private variable int_TotalSet; private variable int_ChannelEnabled; private sequence seq_TipsPutDown; private variable str_ChannelPattern; private variable int_TotalUpdates; private variable arr_PutDownIndex[]; private variable arr_UsedIndex[]; private variable arr_PickUpLabware[]; // {{ 5 "DefragTipRacks1mL" "InitLocals" // }} "" // {{ 8 1 0 "82ac5c0b_e232_409f_8485a846dd506e07" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "0417947e_1b01_4b14_9ccccf59a1fb6d6b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 11 1 0 "b3940cc0_caaa_4573_b383125dee48d123" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 12 1 0 "82ac5c0b_e232_409f_8485a846dd506e07" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 13 1 0 "e7884955_1425_4cb4_b1bf078bd0d01929" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" Get1mLChannelCount(ML_STAR, int_TotalChannels); // }} "" // {{{ 14 1 0 "a621c8f1_99f7_478c_a195843ba77ed1cc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetChannelLimits(ML_STAR, 0, arr_YMax, arr_YMin, flt_YRaster); // }} "" // {{{ 15 1 0 "24d41d46_c4e2_4cb9_95dac332bbb3154a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_TipsRemaining); // }} "" // {{{ 16 1 0 "ccc19882_1dfb_457f_89bae2051f5990de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq_TipsRemaining, io_seq_Tips); // }} "" // {{{ 17 1 0 "163b6df4_d097_4300_9d56ed151bbba33a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, seq_TipsRemaining); // }} "" // {{{ 18 1 0 "05a19cd3_0ed8_4cbe_97557908beefdb69" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTempSortingFilePath(str_TempSortingFilePath); // }} "" // {{{ 19 1 0 "6985a598_7362_4490_b4647702c97b5d52" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(str_TempSortingFilePath, Translate("TEMP_SORT_FILE"), Translate("TEMP_DEFRAG_FILE")); // }} "" Trace(str_TempSortingFilePath); // {{{ 21 1 0 "a63eefeb_d453_4ce1_82f6a75ddd92efe4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(str_TempSortingFilePath); // }} "" // {{ 22 1 0 "61035017_203d_41bd_8b0a4a64d8b3b846" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 1) { // }} "" // {{{ 23 1 0 "d9730cd0_a0ac_4d2d_802199f3e2f98167" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(str_TempSortingFilePath); // }} "" // {{ 24 1 0 "61035017_203d_41bd_8b0a4a64d8b3b846" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 25 1 0 "8cc2b861_4a30_4b25_8ab703a2ae74e28f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 26 1 0 "b30f4632_7fa5_4449_9fd66715d8c1c328" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqGetLabwareIds(seq_TipsRemaining, arr_LabIDs); // }} "" // {{ 27 1 0 "9abfe334_f238_49a4_9f8653d0ea539ff9" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_RemainingLabIDs=arr_LabIDs.GetSize(); // }} "" // {{ 28 1 0 "a32e8c83_1c14_4481_b4159e58398945fb" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_Index = 0; int_Index < int_RemainingLabIDs;) { int_Index = int_Index + 1; // }} "" // {{ 29 1 0 "bedf85ca_064c_4014_824f324c2cf3307c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_LabID=arr_LabIDs.GetAt(int_Index-1); // }} "" // {{{ 30 1 0 "46b56233_0bf4_4454_9f2b4a0a70743f52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetDefaultSequence(ML_STAR, str_LabID, 1, seq_Temp); // }} "" // {{{ 31 1 0 "6048e11a_5592_42ef_baa131b16e1e79f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_NumInSeq = SeqGetTotal(seq_Temp); // }} "" // {{ 32 1 0 "6725ab43_1a56_410e_81af7fa0b9205564" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_NumInSeq;) { i = i + 1; // }} "" // {{ 33 1 0 "139be0bf_db3d_416f_aa769709c16b4171" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Temp.SetCurrentPosition(i); // }} "" // {{{ 34 1 0 "1c741253_cfeb_4074_8c0fae78c325aa2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_Temp); // }} "" // {{{ 35 1 0 "181d801f_1ccb_40d6_9d725f57e5f412dd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(seq_Temp); // }} "" // {{{ 36 1 0 "0e6d111d_ac49_456b_97f659df4a680bfe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Position = SeqLookupPosition(seq_TipsRemaining, str_LabID, str_PosID, 1, 1); // }} "" // {{ 37 1 0 "6520b8bc_9b23_4b18_a61dea27050fb0e8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Position == 0) { // }} "" // {{{ 38 1 0 "73f37f11_ed21_4b3b_8e51a2a45e0b05e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(seq_TipsEmpty, str_LabID, str_PosID); // }} "" // {{ 39 1 0 "6520b8bc_9b23_4b18_a61dea27050fb0e8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 40 1 0 "6725ab43_1a56_410e_81af7fa0b9205564" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 41 1 0 "a32e8c83_1c14_4481_b4159e58398945fb" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 42 1 0 "a117943b_d83f_4eb6_96d650148f86a31a" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TipsEmpty.SetCurrentPosition(1); // }} "" // {{ 43 1 0 "c437962b_4d0c_47b6_9ba78e6c740dce61" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 44 1 0 "02be81e3_92f7_4657_a8580f20513ff18e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Group, int_ChannelIndex, flt_CurrentX, bln_Used; WriteFile.RemoveFields(); WriteFile.AddField("INDEX", int_PositionCount, hslInteger); WriteFile.AddField("USED", bln_Used, hslInteger); WriteFile.AddField("LAB_ID", str_LabID, hslString, 255); WriteFile.AddField("POS_ID", str_PosID, hslString, 255); WriteFile.AddField("X_COORD", flt_X_Coord, hslFloat); WriteFile.AddField("Y_COORD", flt_Y_Coord, hslFloat); WriteFile.AddField("Z_COORD", flt_Z_Coord, hslFloat); WriteFile.AddField("GROUP",int_Group,hslInteger); int_TotalValues = seq_TipsRemaining.GetTotal(); WriteFile.SetExtendedProperties("HDR=YES"); WriteFile.Open(str_TempSortingFilePath + " " + "SORT", hslWrite); int_PositionCount = 1; int_Group = 0; bln_Used = 1; for(i = 0; i < int_TotalValues;) { i = i + 1; int_ChannelIndex = int_ChannelIndex + 1; seq_TipsRemaining.SetCurrentPosition(i); str_LabID = seq_TipsRemaining.GetLabwareId(); str_PosID = seq_TipsRemaining.GetPositionId(); DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_NotUsed); WriteFile.WriteRecord(); int_PositionCount = int_PositionCount + 1; } int_TotalValues = seq_TipsEmpty.GetTotal(); bln_Used = 0; for(i = 0; i < int_TotalValues;) { i = i + 1; int_ChannelIndex = int_ChannelIndex + 1; seq_TipsEmpty.SetCurrentPosition(i); str_LabID = seq_TipsEmpty.GetLabwareId(); str_PosID = seq_TipsEmpty.GetPositionId(); DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_NotUsed); WriteFile.WriteRecord(); int_PositionCount = int_PositionCount + 1; } WriteFile.Close(); WriteFile.RemoveFields(); } // {{ 46 1 0 "02be81e3_92f7_4657_a8580f20513ff18e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 47 1 0 "bcd0fc00_dc63_4b8e_bbc89c072daded5b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (BOOLEON::TRUE == BOOLEON::TRUE) { // }} "" // {{ 48 1 0 "2b53981a_47c8_424c_9301b18bd3ba2202" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 49 1 0 "264b750a_1530_437c_acc90d906a5e20ab" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChannelPattern.SetSize(0); // }} "" // {{ 50 1 0 "9a4c4c53_6b3b_4076_a5affe15dc0e7e28" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_PartialLabID.SetSize(0); // }} "" // {{ 51 1 0 "561cee02_6208_46b3_b328844659382709" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_PartialCount.SetSize(0); // }} "" // {{ 52 1 0 "2618c78f_149e_4fe2_a0c277f0469c1a18" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 53 1 0 "75f43671_ac76_41b5_ad7e0fc8fe54cbdb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_TipsEmpty); // }} "" // {{{ 54 1 0 "b642a966_d681_4516_9f271e63dd59e876" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_TipsPickUp); // }} "" // {{{ 55 1 0 "be87ee20_e2ee_49a7_b5d90ad6f6b6d967" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_TipsPutDown); // }} "" // {{ 56 1 0 "46e15b6d_544e_4fb4_bfffaec39ea9535d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, bln_Used; SortFile.RemoveFields(); str_SQL = "SELECT LAB_ID, COUNT(*) AS N FROM SORT WHERE USED = 1 GROUP BY LAB_ID ORDER BY COUNT(*) ASC"; SortFile.AddField("N", int_Count, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); while(SortFile.Eof() == 0) { SortFile.ReadRecord(); if(int_Count < 96) { arr_PartialLabID.AddAsLast(str_LabID); arr_PartialCount.AddAsLast(int_Count); } } SortFile.Close(); SortFile.RemoveFields(); } // {{ 58 1 0 "46e15b6d_544e_4fb4_bfffaec39ea9535d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 59 1 0 "504a2d8b_27d9_4eeb_ac60373c952591a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_2(Translate("Partial Racks Count"), arr_PartialLabID, arr_PartialCount); // }} "" // {{ 60 1 0 "70c3c442_ca97_4d08_b7614f18a905105e" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalPartial=arr_PartialCount.GetSize(); // }} "" // {{ 61 1 0 "68e999b0_ce10_49ea_99ad425cd690ca30" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_TotalPartial = int_TotalPartial - 1; // }} "" // {{ 62 1 0 "0a416d97_c85c_493f_a67f717302e6b3af" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalPartial <= 0) { // }} "" // {{ 63 1 0 "bcb5b16e_34c2_4d5b_8191b361261124df" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 64 1 0 "0a416d97_c85c_493f_a67f717302e6b3af" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 65 1 0 "6304ecd1_bfb2_4d8b_b42e51c2533ba657" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ChannelsSet = 0; // }} "" // {{ 66 1 0 "e84b9b5d_0d5f_4e3b_9291c67fb33bdf9f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_PickUpIndex.SetSize(0); // }} "" // {{ 67 1 0 "6f96e507_0192_4a4d_982a72662260bf1a" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_PutDownIndex.SetSize(0); // }} "" // {{ 68 1 0 "a46644d8_9c18_4ed9_b9bd153e83f018f5" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_UsedIndex.SetSize(0); // }} "" // {{ 69 1 0 "a305b781_3a08_441f_a7c3afa28b30bcf1" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_PickUpLabware.SetSize(0); // }} "" // {{ 70 1 0 "f080e335_80e9_4b1d_81ac2fcde90afcf4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{ 71 1 0 "a9a0dd4d_af05_46a5_b90fb44e2f029e3b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ValueFound = BOOLEON::FALSE; // }} "" // {{ 72 1 0 "91e03bbe_d9ae_407a_9263e799e10a1118" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_YMax=arr_YMax.GetAt(int_ChannelIndex-1); // }} "" // {{ 73 1 0 "85c448fc_15c6_4b2b_877fb65aa727b74e" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_YMin=arr_YMin.GetAt(int_ChannelIndex-1); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 74 1 0 "7424863f_c227_47d2_944b7767d13a1eb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_YMax = StrConcat2(flt_YMax, Translate("")); // }} "" // {{{ 75 1 0 "230ae61e_da67_4254_af2bb98d4e47329e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_YMin = StrConcat2(flt_YMin, Translate("")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 76 1 0 "7d98a8d3_32e4_4990_8565a02f4d9cbff5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_LabIndex = 0; int_LabIndex < int_TotalPartial;) { int_LabIndex = int_LabIndex + 1; // }} "" // {{ 77 1 0 "346edca1_4416_4798_b03ccb6dc328dacb" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_CurrentLabID=arr_PartialLabID.GetAt(int_LabIndex-1); // }} "" // {{ 78 1 0 "6dd2541c_ef0d_43bc_af834ed3fb141be0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, bln_Used, int_Index, a; SortFile.RemoveFields(); SortFile.AddField("N", int_Count, hslInteger); flt_YMax = StrConcat2(flt_YMax, ""); flt_YMin = StrConcat2(flt_YMin, ""); str_SQL = "SELECT COUNT(*) AS N FROM SORT WHERE LAB_ID = '" + str_CurrentLabID + "' AND USED = 1 AND Y_COORD <= " + flt_YMax + " AND Y_COORD >= "+ flt_YMin; SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); SortFile.ReadRecord(); SortFile.Close(); SortFile.RemoveFields(); if(int_Count > 0) { SortFile.AddField("INDEX", int_Index, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("POS_ID", str_PosID, hslString, 255); str_SQL = "SELECT INDEX, LAB_ID, POS_ID FROM SORT WHERE LAB_ID = '" + str_CurrentLabID + "' AND USED = 1 AND Y_COORD <= " + flt_YMax + " AND Y_COORD >= "+ flt_YMin + " ORDER BY X_COORD ASC, Y_COORD DESC"; //Trace(str_SQL); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); while(SortFile.Eof() == 0) { SortFile.ReadRecord(); if(!Util::Lookup(arr_UsedIndex,int_Index,a)) { SeqAdd(seq_TipsPickUp, Translate(str_LabID), Translate(str_PosID)); int_ChannelsSet = int_ChannelsSet + 1; arr_ChannelPattern.AddAsLast(1); arr_PickUpIndex.AddAsLast(int_Index); arr_UsedIndex.AddAsLast(int_Index); arr_PickUpLabware.AddAsLast(str_LabID); bln_ValueFound = hslTrue; break; } } SortFile.Close(); SortFile.RemoveFields(); } } // {{ 80 1 0 "6dd2541c_ef0d_43bc_af834ed3fb141be0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 81 1 0 "b4b3f25b_3623_4c06_8c8583643d1bf90c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelsSet == int_TotalChannels) { // }} "" // {{ 82 1 0 "915f8589_98f5_49fa_b80b05b24fc27b75" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 83 1 0 "b4b3f25b_3623_4c06_8c8583643d1bf90c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 84 1 0 "2fdd4062_9165_4534_aa6be3619c997b57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::TRUE) { // }} "" // {{ 85 1 0 "691a09ba_d1f1_4737_9b288b414f227d0d" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 86 1 0 "2fdd4062_9165_4534_aa6be3619c997b57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 87 1 0 "7d98a8d3_32e4_4990_8565a02f4d9cbff5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 88 1 0 "e1791715_0bc5_4e10_8afb8861ba529720" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::FALSE) { // }} "" // {{ 89 1 0 "693eac53_1423_4e89_b5edcdc30c4de4c1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChannelPattern.AddAsLast(0); // }} "" // {{ 90 1 0 "e1791715_0bc5_4e10_8afb8861ba529720" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 91 1 0 "ba6519af_6c15_439a_a450b189f858d6ef" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelsSet == int_TotalChannels) { // }} "" // {{ 92 1 0 "92bfc96a_e6af_4c12_b1fe092c24a756ce" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 93 1 0 "ba6519af_6c15_439a_a450b189f858d6ef" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 94 1 0 "f080e335_80e9_4b1d_81ac2fcde90afcf4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 95 1 0 "79910aa8_0a72_4ef2_9ab5b0bcab486e88" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TipsPickUp.SetCurrentPosition(1); // }} "" // {{ 96 1 0 "61ab4f51_de92_4e58_8cd8e27e2c1e6e37" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalSet=arr_ChannelPattern.GetSize(); // }} "" // {{ 97 1 0 "c2e9404e_c829_4f46_a808a5f80e951b99" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{ 98 1 0 "2c91d11e_c2fe_45bb_b3f449998c367a8d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelIndex > int_TotalSet) { // }} "" // {{ 99 1 0 "d1cf4ff7_fd7a_481d_a5205a60f5c61f89" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChannelPattern.AddAsLast(0); // }} "" // {{ 100 1 0 "2c91d11e_c2fe_45bb_b3f449998c367a8d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 101 1 0 "c2e9404e_c829_4f46_a808a5f80e951b99" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 102 1 0 "87cb5d1e_d310_41ee_b62ac0da1dea0001" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 103 1 0 "f8f5c817_2fd8_45b5_9516f0c9ecf31d9c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_PartialLabID.SetSize(0); // }} "" // {{ 104 1 0 "0621fd72_449e_44cc_b55644f2053719e3" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_PartialCount.SetSize(0); // }} "" // {{ 105 1 0 "ad2f5d13_201f_439c_998d01cebb814900" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, bln_Used; SortFile.RemoveFields(); str_SQL = "SELECT LAB_ID, COUNT(*) AS N FROM SORT WHERE USED = 0 GROUP BY LAB_ID ORDER BY COUNT(*) ASC"; SortFile.AddField("N", int_Count, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); while(SortFile.Eof() == 0) { SortFile.ReadRecord(); if(int_Count < 96) { arr_PartialLabID.AddAsLast(str_LabID); arr_PartialCount.AddAsLast(int_Count); } } SortFile.Close(); SortFile.RemoveFields(); } // {{ 107 1 0 "ad2f5d13_201f_439c_998d01cebb814900" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 108 1 0 "4fa8c471_82dc_499e_8e2380224e8993a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_2(Translate("Partial Racks Count"), arr_PartialLabID, arr_PartialCount); // }} "" // {{ 109 1 0 "7e0a0780_e774_4d46_a48efd38a4b59981" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalPartial=arr_PartialCount.GetSize(); // }} "" // {{ 110 1 0 "19fc9c68_5a39_4457_9919096773cdea24" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_TotalPartial = int_TotalPartial - 1; // }} "" // {{ 111 1 0 "594442dd_b661_4419_aad3b2c2bdc695c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalPartial <= 0) { // }} "" // {{ 112 1 0 "3894c497_daae_411d_b259bd59007957b7" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 113 1 0 "594442dd_b661_4419_aad3b2c2bdc695c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 114 1 0 "6265782a_e810_42e6_991b6d5cb8633f1c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ChannelsSet = 0; // }} "" // {{ 115 1 0 "bc805cd6_4ada_4c2e_9b4040c540e82ed5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{ 116 1 0 "446300dd_24d0_4c4d_96470659a0bed927" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" int_ChannelEnabled=arr_ChannelPattern.GetAt(int_ChannelIndex-1); // }} "" // {{ 117 1 0 "9404ff2c_3b13_4cd2_8f440013b9bd734e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelEnabled == 1) { // }} "" // {{ 118 1 0 "c9e131ae_0500_4cb6_b544874a3d5bdaf7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ValueFound = BOOLEON::FALSE; // }} "" // {{ 119 1 0 "d08cea0a_14c8_497f_a7c577dc159d2f6a" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_YMax=arr_YMax.GetAt(int_ChannelIndex-1); // }} "" // {{ 120 1 0 "68f113a3_3471_47e6_ba192a3ab51cb5dc" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_YMin=arr_YMin.GetAt(int_ChannelIndex-1); // }} "" // {{ 121 1 0 "6359b0d2_bbf9_45c7_b295a4b996b436a7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_LabIndex = 0; int_LabIndex < int_TotalPartial;) { int_LabIndex = int_LabIndex + 1; // }} "" // {{ 122 1 0 "080ed07d_9615_485d_98f399712b68d765" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_CurrentLabID=arr_PartialLabID.GetAt(int_LabIndex-1); // }} "" // {{ 123 1 0 "44d52496_3bae_4713_8b9e441f64d82cbf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, bln_Used, int_Index, a; SortFile.RemoveFields(); SortFile.AddField("N", int_Count, hslInteger); flt_YMax = StrConcat2(flt_YMax, ""); flt_YMin = StrConcat2(flt_YMin, ""); str_SQL = "SELECT COUNT(*) AS N FROM SORT WHERE LAB_ID = '" + str_CurrentLabID + "' AND USED = 0 AND Y_COORD <= " + flt_YMax + " AND Y_COORD >= "+ flt_YMin; SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); SortFile.ReadRecord(); SortFile.Close(); SortFile.RemoveFields(); //Trace("Count: ",int_Count); if(int_Count > 0) { SortFile.AddField("INDEX", int_Index, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("POS_ID", str_PosID, hslString, 255); str_SQL = "SELECT INDEX, LAB_ID, POS_ID FROM SORT WHERE LAB_ID = '" + str_CurrentLabID + "' AND USED = 0 AND Y_COORD <= " + flt_YMax + " AND Y_COORD >= "+ flt_YMin + " ORDER BY X_COORD DESC, Y_COORD DESC"; //Trace(str_SQL); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); while(SortFile.Eof() == 0) { SortFile.ReadRecord(); if(!Util::Lookup(arr_UsedIndex,int_Index,a)) { SeqAdd(seq_TipsPutDown, Translate(str_LabID), Translate(str_PosID)); int_ChannelsSet = int_ChannelsSet + 1; arr_PutDownIndex.AddAsLast(int_Index); arr_UsedIndex.AddAsLast(int_Index); bln_ValueFound = hslTrue; //Trace("Add position: ",str_PosID); break; //Trace("Lab ID: ",str_LabID," Channel pickup Lab: ",arr_PickUpLabware.GetAt(int_ChannelsSet)); //if(arr_PickUpLabware.GetAt(int_ChannelsSet)!= str_CurrentLabID) //{ //SeqAdd(seq_TipsPutDown, Translate(str_LabID), Translate(str_PosID)); //int_ChannelsSet = int_ChannelsSet + 1; //arr_PutDownIndex.AddAsLast(int_Index); //arr_UsedIndex.AddAsLast(int_Index); //bln_ValueFound = hslTrue; //break; //} //else //{ //arr_ChannelPattern.SetAt(int_ChannelIndex-1,0); //break; //} } } SortFile.Close(); SortFile.RemoveFields(); } } // {{ 125 1 0 "44d52496_3bae_4713_8b9e441f64d82cbf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 126 1 0 "8e4c72b6_f87b_4853_8963156ad409109f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::FALSE) { // }} "" // {{ 127 1 0 "1e4c6712_30ce_4f41_93644c887ce6e21d" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChannelPattern.SetAt(int_ChannelIndex-1, 0); // }} "" // {{ 128 1 0 "8e4c72b6_f87b_4853_8963156ad409109f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 129 1 0 "05c4a168_1ff8_44dd_a6f113cac237c6f8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelsSet == int_TotalChannels) { // }} "" // {{ 130 1 0 "3eadc9c5_001b_448f_83ec29b8078196ce" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 131 1 0 "05c4a168_1ff8_44dd_a6f113cac237c6f8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 132 1 0 "34dfa80b_625e_4899_bfcc2e7ac00b7eb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::TRUE) { // }} "" // {{ 133 1 0 "cd0d7e1e_7475_40dd_8743fc6bcb6c27b0" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 134 1 0 "34dfa80b_625e_4899_bfcc2e7ac00b7eb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 135 1 0 "6359b0d2_bbf9_45c7_b295a4b996b436a7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 136 1 0 "9404ff2c_3b13_4cd2_8f440013b9bd734e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 137 1 0 "bc805cd6_4ada_4c2e_9b4040c540e82ed5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 138 1 0 "2907c2cd_b97f_4239_ba758f8299dd0edf" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TipsPutDown.SetCurrentPosition(1); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 139 1 0 "c69b1d73_3a6a_463d_bce9eb1498bf87ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceSequence(seq_TipsPickUp); // }} "" // {{{ 140 1 0 "313ae523_e88e_413f_b84648d1ab2fab31" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceSequence(seq_TipsPutDown); // }} "" // {{{ 141 1 0 "c692832c_eb7f_4e63_acf81a57d37dee77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Channel Active"), arr_ChannelPattern); // }} "" // {{{ 142 1 0 "f516251d_08bd_41b8_a1d4cbcf171d70fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Pick up Index"), arr_PickUpIndex); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 143 1 0 "b8cd58b6_5cf7_422f_a1634c89f489d801" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ChannelPattern = Translate(""); // }} "" // {{ 144 1 0 "eb101996_05f3_4b97_bfceb1c094a4ee09" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{{ 145 1 0 "d4efa251_4b43_4be9_8580dba065761fbb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelPattern = StrConcat4(str_ChannelPattern, arr_ChannelPattern.ElementAt( int_ChannelIndex -1), Translate(""), Translate("")); // }} "" // {{ 146 1 0 "eb101996_05f3_4b97_bfceb1c094a4ee09" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 147 1 0 "9d7ae1f0_7bb1_4c22_8505886774f2aaa3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Channel Pattern: "), str_ChannelPattern); // }} "" // {{ 148 1 0 "b83e9be6_d630_44eb_a491f530f6362e79" "ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2("b83e9be6_d630_44eb_a491f530f6362e79"); // TipPickUp } // }} "" // {{ 149 1 0 "cd58fb8a_b0ce_4174_b40c8257faa3d377" "ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2("cd58fb8a_b0ce_4174_b40c8257faa3d377"); // TipEject } // }} "" // {{ 150 1 0 "9b46c20c_45bc_400b_9a25a5e40476af19" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalUpdates=arr_PickUpIndex.GetSize(); // }} "" // {{ 151 1 0 "c6778974_fa7a_45fa_84be277b9465c358" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, bln_UseOptimization, int_Index, str_InValue, flt_XCoord, int_Group, a, int_ChannelCount, int_UpdateCount; file UpdateFile; UpdateFile.RemoveFields(); str_InValue = "("; int_UpdateCount = 0; for(i=0;i 0) str_InValue = str_InValue + ", "; str_InValue = StrConcat2(str_InValue , int_Index); int_ChannelCount = int_ChannelCount + 1; int_UpdateCount = int_UpdateCount + 1; if(int_UpdateCount>int_TotalUpdates) break; } } str_InValue = str_InValue + ")"; if(int_UpdateCount > 0) { str_SQL = "UPDATE SORT SET USED = -1 WHERE INDEX IN" + str_InValue; //Trace(str_SQL); UpdateFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); UpdateFile.Close(); UpdateFile.RemoveFields(); } } // {{ 153 1 0 "c6778974_fa7a_45fa_84be277b9465c358" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 154 1 0 "a557f854_5c3a_484e_9a8b35fe94226963" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalUpdates=arr_PutDownIndex.GetSize(); // }} "" // {{ 155 1 0 "f27812b0_2b97_47a0_94bf892f0c9ccc14" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, bln_UseOptimization, int_Index, str_InValue, flt_XCoord, int_Group, a, int_ChannelCount, int_UpdateCount; file UpdateFile; UpdateFile.RemoveFields(); str_InValue = "("; int_UpdateCount = 0; for(i=0;i 0) str_InValue = str_InValue + ", "; str_InValue = StrConcat2(str_InValue , int_Index); int_ChannelCount = int_ChannelCount + 1; int_UpdateCount = int_UpdateCount + 1; if(int_UpdateCount>int_TotalUpdates) break; } } str_InValue = str_InValue + ")"; if(int_UpdateCount > 0) { str_SQL = "UPDATE SORT SET USED = 2 WHERE INDEX IN" + str_InValue; //Trace(str_SQL); UpdateFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); UpdateFile.Close(); UpdateFile.RemoveFields(); } } // {{ 157 1 0 "f27812b0_2b97_47a0_94bf892f0c9ccc14" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 158 1 0 "bcd0fc00_dc63_4b8e_bbc89c072daded5b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 159 1 0 "0f79010c_947a_42e0_b72121f20be34d8c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 160 1 0 "2b5fd35d_b21b_4912_9d6b436776fd1452" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(io_seq_Tips); // }} "" // {{{ 161 1 0 "d34d628a_4f2d_4754_a14bed5ed84ac313" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_TipsEmpty); // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Group, int_ChannelIndex, flt_CurrentX, bln_Used; file ReadFile; ReadFile.RemoveFields(); ReadFile.AddField("INDEX", int_PositionCount, hslInteger); ReadFile.AddField("USED", bln_Used, hslInteger); ReadFile.AddField("LAB_ID", str_LabID, hslString, 255); ReadFile.AddField("POS_ID", str_PosID, hslString, 255); ReadFile.AddField("X_COORD", flt_X_Coord, hslFloat); ReadFile.AddField("Y_COORD", flt_Y_Coord, hslFloat); ReadFile.AddField("Z_COORD", flt_Z_Coord, hslFloat); ReadFile.AddField("GROUP",int_Group,hslInteger); int_TotalValues = seq_TipsRemaining.GetTotal(); ReadFile.SetExtendedProperties("HDR=YES"); ReadFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead); int_PositionCount = 1; int_Group = 0; bln_Used = 1; while(ReadFile.Eof() == 0) { ReadFile.ReadRecord(); if(bln_Used > 0) { SeqAdd(io_seq_Tips, Translate(str_LabID), Translate(str_PosID)); } else { SeqAdd(seq_TipsEmpty, Translate(str_LabID), Translate(str_PosID)); } } ReadFile.Close(); ReadFile.RemoveFields(); } // {{ 163 1 0 "df596191_eb8b_4f57_825eaa977076f242" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_seq_Tips.SetCurrentPosition(1); // }} "" // {{{ 164 1 0 "25cce0f0_2d6d_45b4_b570a1d732284edc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_Tips, 5, Translate("With Tips")); // }} "" // {{{ 165 1 0 "e8aac9a4_8a66_45c2_b979e011c5f1542c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_TipsEmpty, 4, Translate("No Tips")); // }} "" // {{ 166 1 0 "0f79010c_947a_42e0_b72121f20be34d8c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 167 1 0 "6bffd842_42a6_4ff6_915e3aae07c5f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 168 1 0 "495fdce1_dccf_48cc_85a0070d57f7503b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 169 1 0 "6bffd842_42a6_4ff6_915e3aae07c5f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "DefragTipRacks1mL" "End" } // }} "" // {{{ 5 "DefragTipRacks5mL" "Begin" function DefragTipRacks5mL( device & ML_STAR, sequence & io_seq_Tips ) void { // }} "" private variable int_ChannelEnabled; private variable str_ChannelPattern; private variable i; private variable flt_YMin; private variable flt_YRaster; private variable flt_YMax; private variable int_NumInSeq; private variable int_RemainingLabIDs; private variable _strFunctionName; private variable str_LabID; private variable int_TotalPartial; private variable int_Position; private variable bool_FileExists; private variable int_TotalSet; private variable str_TempSortingFilePath; private variable int_ChannelsSet; private variable bln_ValueFound; private variable int_TotalChannels; private variable int_ChannelIndex; private variable str_PosID; private variable int_TotalUpdates; private variable int_LabIndex; private variable str_CurrentLabID; private variable int_Index; private sequence seq_TipsEmpty; private sequence seq_Temp; private sequence seq_TipsRemaining; private sequence seq_TipsPickUp; private sequence seq_TipsPutDown; private variable arr_PutDownIndex[]; private variable arr_PartialCount[]; private variable arr_LabIDs[]; private variable arr_UsedIndex[]; private variable arr_PickUpIndex[]; private variable arr_ChannelPattern[]; private variable arr_PickUpLabware[]; private variable arr_YMin[]; private variable arr_YMax[]; private variable arr_PartialLabID[]; // {{ 5 "DefragTipRacks5mL" "InitLocals" // }} "" // {{ 171 1 0 "1146ff82_6bac_48a7_8800a3dca8b07b52" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 172 1 0 "bfd40927_28fd_4a8d_928e323df422c24a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 174 1 0 "8c768196_1b81_4818_879edb456c726e38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 175 1 0 "1146ff82_6bac_48a7_8800a3dca8b07b52" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 176 1 0 "d1a0b7e6_77b9_4d37_90f6d295f1eaedd2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" Get5mLChannelCount(ML_STAR, int_TotalChannels); // }} "" // {{{ 177 1 0 "7d00a056_2c2c_4519_a43fadb24b88f418" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetChannelLimits(ML_STAR, 1, arr_YMax, arr_YMin, flt_YRaster); // }} "" // {{{ 178 1 0 "838213a9_e572_42d5_91ec15b312144760" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_TipsRemaining); // }} "" // {{{ 179 1 0 "2e6f3065_f833_4541_bba008bc845256e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq_TipsRemaining, io_seq_Tips); // }} "" // {{{ 180 1 0 "d5736cca_6519_4c37_b4b3a1bae2a3a415" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, seq_TipsRemaining); // }} "" // {{{ 181 1 0 "7fb2acb0_4d90_4fd7_9799f4acb687f87c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTempSortingFilePath(str_TempSortingFilePath); // }} "" // {{{ 182 1 0 "d35e7f49_9b8c_41af_96187e52e0e96255" "{C1F3C015-47B3-4514-9407-AC2E65043419}" StrReplace(str_TempSortingFilePath, Translate("TEMP_SORT_FILE"), Translate("TEMP_DEFRAG_FILE")); // }} "" Trace(str_TempSortingFilePath); // {{{ 184 1 0 "c50671a9_62d3_4653_bd5f0dd58d1744f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(str_TempSortingFilePath); // }} "" // {{ 185 1 0 "04a637c6_b13a_4131_901001ae2886a749" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 1) { // }} "" // {{{ 186 1 0 "14701cc1_8390_455a_b474ca3a4847fd62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(str_TempSortingFilePath); // }} "" // {{ 187 1 0 "04a637c6_b13a_4131_901001ae2886a749" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 188 1 0 "08ae7509_b74f_437e_a319cf80b8c110a7" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 189 1 0 "86afd601_7f55_4b4b_ae99d76b476c480f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqGetLabwareIds(seq_TipsRemaining, arr_LabIDs); // }} "" // {{ 190 1 0 "a97a707a_e58e_4265_a5679c1afe2a2819" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_RemainingLabIDs=arr_LabIDs.GetSize(); // }} "" // {{ 191 1 0 "f119a988_ffb3_4109_bff582c24f20db1a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_Index = 0; int_Index < int_RemainingLabIDs;) { int_Index = int_Index + 1; // }} "" // {{ 192 1 0 "669a611b_8b96_4734_bbb001fa3cedb2b7" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_LabID=arr_LabIDs.GetAt(int_Index-1); // }} "" // {{{ 193 1 0 "17c899e3_1a31_4531_a9b830e9e3b7a81e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetDefaultSequence(ML_STAR, str_LabID, 1, seq_Temp); // }} "" // {{{ 194 1 0 "d13e2ca5_e80c_4ffe_8bbca3a4cd449456" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_NumInSeq = SeqGetTotal(seq_Temp); // }} "" // {{ 195 1 0 "05868a67_3d49_4717_a8157b1666305879" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(i = 0; i < int_NumInSeq;) { i = i + 1; // }} "" // {{ 196 1 0 "44c2c0ff_e55f_4b53_9649220d9fff4f28" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_Temp.SetCurrentPosition(i); // }} "" // {{{ 197 1 0 "a868e59e_832a_42cf_b6aec08c3288b781" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_Temp); // }} "" // {{{ 198 1 0 "082251b8_50e1_4571_866985c4d588dd2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(seq_Temp); // }} "" // {{{ 199 1 0 "c2f6870c_d951_43e2_83770c80e4186df1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_Position = SeqLookupPosition(seq_TipsRemaining, str_LabID, str_PosID, 1, 1); // }} "" // {{ 200 1 0 "37bce94a_08f5_41dc_a754b8ab34bdac72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Position == 0) { // }} "" // {{{ 201 1 0 "83d1081b_f54b_43d5_a259a7d3bfafade9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(seq_TipsEmpty, str_LabID, str_PosID); // }} "" // {{ 202 1 0 "37bce94a_08f5_41dc_a754b8ab34bdac72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 203 1 0 "05868a67_3d49_4717_a8157b1666305879" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 204 1 0 "f119a988_ffb3_4109_bff582c24f20db1a" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 205 1 0 "92a11ed4_f700_49d2_89eb8faea0ba558f" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TipsEmpty.SetCurrentPosition(1); // }} "" // {{ 206 1 0 "da4bbcbc_6407_4ebd_b344c706411d2667" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 207 1 0 "bc345184_104c_445a_ae08028ece365c8a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Group, int_ChannelIndex, flt_CurrentX, bln_Used; file WriteFile; WriteFile.RemoveFields(); WriteFile.AddField("INDEX", int_PositionCount, hslInteger); WriteFile.AddField("USED", bln_Used, hslInteger); WriteFile.AddField("LAB_ID", str_LabID, hslString, 255); WriteFile.AddField("POS_ID", str_PosID, hslString, 255); WriteFile.AddField("X_COORD", flt_X_Coord, hslFloat); WriteFile.AddField("Y_COORD", flt_Y_Coord, hslFloat); WriteFile.AddField("Z_COORD", flt_Z_Coord, hslFloat); WriteFile.AddField("GROUP",int_Group,hslInteger); int_TotalValues = seq_TipsRemaining.GetTotal(); WriteFile.SetExtendedProperties("HDR=YES"); WriteFile.Open(str_TempSortingFilePath + " " + "SORT", hslWrite); int_PositionCount = 1; int_Group = 0; bln_Used = 1; for(i = 0; i < int_TotalValues;) { i = i + 1; int_ChannelIndex = int_ChannelIndex + 1; seq_TipsRemaining.SetCurrentPosition(i); str_LabID = seq_TipsRemaining.GetLabwareId(); str_PosID = seq_TipsRemaining.GetPositionId(); DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_NotUsed); WriteFile.WriteRecord(); int_PositionCount = int_PositionCount + 1; } int_TotalValues = seq_TipsEmpty.GetTotal(); bln_Used = 0; for(i = 0; i < int_TotalValues;) { i = i + 1; int_ChannelIndex = int_ChannelIndex + 1; seq_TipsEmpty.SetCurrentPosition(i); str_LabID = seq_TipsEmpty.GetLabwareId(); str_PosID = seq_TipsEmpty.GetPositionId(); DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_NotUsed); WriteFile.WriteRecord(); int_PositionCount = int_PositionCount + 1; } WriteFile.Close(); WriteFile.RemoveFields(); } // {{ 209 1 0 "bc345184_104c_445a_ae08028ece365c8a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 210 1 0 "30394ad0_d105_4d52_b03d25bb3d7b58bc" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (BOOLEON::TRUE == BOOLEON::TRUE) { // }} "" // {{ 211 1 0 "661b4da3_1559_4562_ac12bb3e8098414e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 212 1 0 "2c538ce3_261a_4b6f_b629d9814533c2f9" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChannelPattern.SetSize(0); // }} "" // {{ 213 1 0 "87fbe777_b062_4ac8_a4e52a97a414b24f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_PartialLabID.SetSize(0); // }} "" // {{ 214 1 0 "d339514f_0972_4694_9ff668cb76e5dfd8" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_PartialCount.SetSize(0); // }} "" // {{ 215 1 0 "3f18207e_9056_4a55_ac0560556ceb8ccc" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 216 1 0 "d5c68273_c25e_4520_88451847540aab2d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_TipsEmpty); // }} "" // {{{ 217 1 0 "26f7876a_046f_429d_beba442f759ed8d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_TipsPickUp); // }} "" // {{{ 218 1 0 "a32339db_d892_434c_876c4afb3795c33f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_TipsPutDown); // }} "" // {{ 219 1 0 "13532881_39cc_4b80_989852d0c70baa76" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, bln_Used; file SortFile; SortFile.RemoveFields(); str_SQL = "SELECT LAB_ID, COUNT(*) AS N FROM SORT WHERE USED = 1 GROUP BY LAB_ID ORDER BY COUNT(*) ASC"; SortFile.AddField("N", int_Count, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); while(SortFile.Eof() == 0) { SortFile.ReadRecord(); if(int_Count < 96) { arr_PartialLabID.AddAsLast(str_LabID); arr_PartialCount.AddAsLast(int_Count); } } SortFile.Close(); SortFile.RemoveFields(); } // {{ 221 1 0 "13532881_39cc_4b80_989852d0c70baa76" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 222 1 0 "5a210ffc_8ad0_489b_ab3f1729598d3cdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_2(Translate("Partial Racks Count"), arr_PartialLabID, arr_PartialCount); // }} "" // {{ 223 1 0 "0c496107_7eb3_42aa_a26f443157c01622" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalPartial=arr_PartialCount.GetSize(); // }} "" // {{ 224 1 0 "92c0b003_0123_4bac_a8e3cc72e732de65" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_TotalPartial = int_TotalPartial - 1; // }} "" // {{ 225 1 0 "525ada1d_545f_4b8e_a5f6096a326a09f4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalPartial <= 0) { // }} "" // {{ 226 1 0 "9aa6e6e0_895a_43fd_b70dd4550b6592be" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 227 1 0 "525ada1d_545f_4b8e_a5f6096a326a09f4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 228 1 0 "3f2d8a37_c7ab_4c60_a3c46f0d2bd58e25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ChannelsSet = 0; // }} "" // {{ 229 1 0 "b0ec7482_d032_49d1_ac2bd6fcb8304c13" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_PickUpIndex.SetSize(0); // }} "" // {{ 230 1 0 "9e90e365_35e6_4269_b3dddd742eb192fe" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_PutDownIndex.SetSize(0); // }} "" // {{ 231 1 0 "5bd4833b_1468_4f53_9c7e59d900809cc2" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_UsedIndex.SetSize(0); // }} "" // {{ 232 1 0 "d718517a_866b_4b4c_91d9d8cd01c79cc9" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_PickUpLabware.SetSize(0); // }} "" // {{ 233 1 0 "342873d6_9866_467b_a8aa1a30b9dc8480" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{ 234 1 0 "2b914764_f551_437c_807e1b0f20383d38" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ValueFound = BOOLEON::FALSE; // }} "" // {{ 235 1 0 "15be03e6_4adf_4a3f_90857e708313552b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_YMax=arr_YMax.GetAt(int_ChannelIndex-1); // }} "" // {{ 236 1 0 "dbd69943_50df_4cb4_bc22efec00534d44" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_YMin=arr_YMin.GetAt(int_ChannelIndex-1); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 237 1 0 "6f0a301b_01bc_44f0_ba3f3599e0ed6ac8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_YMax = StrConcat2(flt_YMax, Translate("")); // }} "" // {{{ 238 1 0 "6edd03bb_7acd_427b_bb531deff0e6f4b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" flt_YMin = StrConcat2(flt_YMin, Translate("")); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 239 1 0 "60a16d48_ce29_445f_9a9cf46c49867abb" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_LabIndex = 0; int_LabIndex < int_TotalPartial;) { int_LabIndex = int_LabIndex + 1; // }} "" // {{ 240 1 0 "3f457565_e51f_453c_b59661220551bc83" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_CurrentLabID=arr_PartialLabID.GetAt(int_LabIndex-1); // }} "" // {{ 241 1 0 "03e4e997_6db8_4b89_81b7626fc384414b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, bln_Used, int_Index, a; file SortFile; SortFile.RemoveFields(); SortFile.AddField("N", int_Count, hslInteger); flt_YMax = StrConcat2(flt_YMax, ""); flt_YMin = StrConcat2(flt_YMin, ""); str_SQL = "SELECT COUNT(*) AS N FROM SORT WHERE LAB_ID = '" + str_CurrentLabID + "' AND USED = 1 AND Y_COORD <= " + flt_YMax + " AND Y_COORD >= "+ flt_YMin; SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); SortFile.ReadRecord(); SortFile.Close(); SortFile.RemoveFields(); if(int_Count > 0) { SortFile.AddField("INDEX", int_Index, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("POS_ID", str_PosID, hslString, 255); str_SQL = "SELECT INDEX, LAB_ID, POS_ID FROM SORT WHERE LAB_ID = '" + str_CurrentLabID + "' AND USED = 1 AND Y_COORD <= " + flt_YMax + " AND Y_COORD >= "+ flt_YMin + " ORDER BY X_COORD ASC, Y_COORD DESC"; //Trace(str_SQL); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); while(SortFile.Eof() == 0) { SortFile.ReadRecord(); if(!Util::Lookup(arr_UsedIndex,int_Index,a)) { SeqAdd(seq_TipsPickUp, Translate(str_LabID), Translate(str_PosID)); int_ChannelsSet = int_ChannelsSet + 1; arr_ChannelPattern.AddAsLast(1); arr_PickUpIndex.AddAsLast(int_Index); arr_UsedIndex.AddAsLast(int_Index); arr_PickUpLabware.AddAsLast(str_LabID); bln_ValueFound = hslTrue; break; } } SortFile.Close(); SortFile.RemoveFields(); } } // {{ 243 1 0 "03e4e997_6db8_4b89_81b7626fc384414b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 244 1 0 "f34fc3c5_ddac_4fe5_b89dc5cae395b778" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelsSet == int_TotalChannels) { // }} "" // {{ 245 1 0 "fc5ba594_0ded_4080_8929084a4e7916e1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 246 1 0 "f34fc3c5_ddac_4fe5_b89dc5cae395b778" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 247 1 0 "9616560d_2d52_45d8_824c9187e0ce97ca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::TRUE) { // }} "" // {{ 248 1 0 "fccdef14_cfe7_431a_ab783957e03fa50f" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 249 1 0 "9616560d_2d52_45d8_824c9187e0ce97ca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 250 1 0 "60a16d48_ce29_445f_9a9cf46c49867abb" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 251 1 0 "4402dd3c_aa15_47b3_b84363db2b4e0c0f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::FALSE) { // }} "" // {{ 252 1 0 "8171262a_78f8_46fe_8f26935c31fd5087" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChannelPattern.AddAsLast(0); // }} "" // {{ 253 1 0 "4402dd3c_aa15_47b3_b84363db2b4e0c0f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 254 1 0 "b227142b_f2a9_4fdf_b478418a1b8a74fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelsSet == int_TotalChannels) { // }} "" // {{ 255 1 0 "2cbf7c16_2a5b_4aee_81b39ff7043910aa" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 256 1 0 "b227142b_f2a9_4fdf_b478418a1b8a74fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 257 1 0 "342873d6_9866_467b_a8aa1a30b9dc8480" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 258 1 0 "eb07a9ee_eb19_43ff_9c1ff1a61bd91aed" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TipsPickUp.SetCurrentPosition(1); // }} "" // {{ 259 1 0 "1ee6513b_953e_4af0_8f254d90bbf2b66a" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalSet=arr_ChannelPattern.GetSize(); // }} "" // {{ 260 1 0 "5d9773cf_b749_411a_b311da1f1fd081de" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{ 261 1 0 "f2fad619_fec9_4708_ba683c5acec56048" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelIndex > int_TotalSet) { // }} "" // {{ 262 1 0 "2a055ff0_77a7_4a2f_9fb4de4de500a64b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChannelPattern.AddAsLast(0); // }} "" // {{ 263 1 0 "f2fad619_fec9_4708_ba683c5acec56048" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 264 1 0 "5d9773cf_b749_411a_b311da1f1fd081de" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 265 1 0 "122df66b_0ca3_42a4_89d88c28c547dea9" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 266 1 0 "c1693d0c_6b52_447e_ba87fd39beb0224c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_PartialLabID.SetSize(0); // }} "" // {{ 267 1 0 "d9a0a5b2_9a49_4e6a_83eb6ad190a3c921" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_PartialCount.SetSize(0); // }} "" // {{ 268 1 0 "bf251e5a_07f2_4987_bf3f871b504bd15f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, bln_Used; file SortFile; SortFile.RemoveFields(); str_SQL = "SELECT LAB_ID, COUNT(*) AS N FROM SORT WHERE USED = 0 GROUP BY LAB_ID ORDER BY COUNT(*) ASC"; SortFile.AddField("N", int_Count, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); while(SortFile.Eof() == 0) { SortFile.ReadRecord(); if(int_Count < 96) { arr_PartialLabID.AddAsLast(str_LabID); arr_PartialCount.AddAsLast(int_Count); } } SortFile.Close(); SortFile.RemoveFields(); } // {{ 270 1 0 "bf251e5a_07f2_4987_bf3f871b504bd15f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 271 1 0 "4d589e1d_5495_4d42_8205da39f83bccbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_2(Translate("Partial Racks Count"), arr_PartialLabID, arr_PartialCount); // }} "" // {{ 272 1 0 "fcfcb534_044f_4a41_aa57497aecc0f543" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalPartial=arr_PartialCount.GetSize(); // }} "" // {{ 273 1 0 "e2793c7e_118f_4d0d_92c7271474c2bc25" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_TotalPartial = int_TotalPartial - 1; // }} "" // {{ 274 1 0 "62ff2218_ed6a_4688_b708014e01841c78" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TotalPartial <= 0) { // }} "" // {{ 275 1 0 "5b3b9fef_1ad7_479a_a1f8619cd4c7e7bf" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 276 1 0 "62ff2218_ed6a_4688_b708014e01841c78" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 277 1 0 "c8c65a59_2beb_42e9_a12a874e3524cdca" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ChannelsSet = 0; // }} "" // {{ 278 1 0 "27e00e40_edca_4cce_a9f0774c9117f8c3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{ 279 1 0 "66fe9258_bf1d_4f91_bc6dd658787c4e04" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" int_ChannelEnabled=arr_ChannelPattern.GetAt(int_ChannelIndex-1); // }} "" // {{ 280 1 0 "166c40df_aa1f_4d13_9d394cd0a4102ac2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelEnabled == 1) { // }} "" // {{ 281 1 0 "55b1b11e_dbe3_4338_bc5bb3abec57886e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_ValueFound = BOOLEON::FALSE; // }} "" // {{ 282 1 0 "24e1052a_3e4d_469e_b955a31e36ea9580" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_YMax=arr_YMax.GetAt(int_ChannelIndex-1); // }} "" // {{ 283 1 0 "33551843_06bc_4921_907eb35179e77273" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" flt_YMin=arr_YMin.GetAt(int_ChannelIndex-1); // }} "" // {{ 284 1 0 "1904157b_781f_44b6_a1c71dbfdf3373c4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_LabIndex = 0; int_LabIndex < int_TotalPartial;) { int_LabIndex = int_LabIndex + 1; // }} "" // {{ 285 1 0 "531ece5b_9730_444a_967f9d67ab971e48" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" str_CurrentLabID=arr_PartialLabID.GetAt(int_LabIndex-1); // }} "" // {{ 286 1 0 "25c79887_7fdd_4218_97f4d227d74be16d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, bln_Used, int_Index, a; file SortFile; SortFile.RemoveFields(); SortFile.AddField("N", int_Count, hslInteger); flt_YMax = StrConcat2(flt_YMax, ""); flt_YMin = StrConcat2(flt_YMin, ""); str_SQL = "SELECT COUNT(*) AS N FROM SORT WHERE LAB_ID = '" + str_CurrentLabID + "' AND USED = 0 AND Y_COORD <= " + flt_YMax + " AND Y_COORD >= "+ flt_YMin; SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); SortFile.ReadRecord(); SortFile.Close(); SortFile.RemoveFields(); //Trace("Count: ",int_Count); if(int_Count > 0) { SortFile.AddField("INDEX", int_Index, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("POS_ID", str_PosID, hslString, 255); str_SQL = "SELECT INDEX, LAB_ID, POS_ID FROM SORT WHERE LAB_ID = '" + str_CurrentLabID + "' AND USED = 0 AND Y_COORD <= " + flt_YMax + " AND Y_COORD >= "+ flt_YMin + " ORDER BY X_COORD DESC, Y_COORD DESC"; //Trace(str_SQL); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); while(SortFile.Eof() == 0) { SortFile.ReadRecord(); if(!Util::Lookup(arr_UsedIndex,int_Index,a)) { SeqAdd(seq_TipsPutDown, Translate(str_LabID), Translate(str_PosID)); int_ChannelsSet = int_ChannelsSet + 1; arr_PutDownIndex.AddAsLast(int_Index); arr_UsedIndex.AddAsLast(int_Index); bln_ValueFound = hslTrue; //Trace("Add position: ",str_PosID); break; //Trace("Lab ID: ",str_LabID," Channel pickup Lab: ",arr_PickUpLabware.GetAt(int_ChannelsSet)); //if(arr_PickUpLabware.GetAt(int_ChannelsSet)!= str_CurrentLabID) //{ //SeqAdd(seq_TipsPutDown, Translate(str_LabID), Translate(str_PosID)); //int_ChannelsSet = int_ChannelsSet + 1; //arr_PutDownIndex.AddAsLast(int_Index); //arr_UsedIndex.AddAsLast(int_Index); //bln_ValueFound = hslTrue; //break; //} //else //{ //arr_ChannelPattern.SetAt(int_ChannelIndex-1,0); //break; //} } } SortFile.Close(); SortFile.RemoveFields(); } } // {{ 288 1 0 "25c79887_7fdd_4218_97f4d227d74be16d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 289 1 0 "1fa65b4a_c2ad_4ac7_bdfb768814347978" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::FALSE) { // }} "" // {{ 290 1 0 "a9c5d6f0_0c6c_47a6_b24d79a09e241827" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChannelPattern.SetAt(int_ChannelIndex-1, 0); // }} "" // {{ 291 1 0 "1fa65b4a_c2ad_4ac7_bdfb768814347978" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 292 1 0 "3cb178b5_95b4_4cbb_a04377cb2908a478" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelsSet == int_TotalChannels) { // }} "" // {{ 293 1 0 "f30313a3_79f3_4a70_ad43869b8526a46e" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 294 1 0 "3cb178b5_95b4_4cbb_a04377cb2908a478" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 295 1 0 "a688deb6_95fb_4beb_a378f67fb0e07760" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_ValueFound == BOOLEON::TRUE) { // }} "" // {{ 296 1 0 "68a00408_e390_40e3_94a95de6072947ce" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 297 1 0 "a688deb6_95fb_4beb_a378f67fb0e07760" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 298 1 0 "1904157b_781f_44b6_a1c71dbfdf3373c4" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 299 1 0 "166c40df_aa1f_4d13_9d394cd0a4102ac2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 300 1 0 "27e00e40_edca_4cce_a9f0774c9117f8c3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 301 1 0 "b8ccc1a1_5af2_474a_8d1768957e6a81fa" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_TipsPutDown.SetCurrentPosition(1); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 302 1 0 "81a9c1a6_2899_4d66_aedfe2f4d360ea8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceSequence(seq_TipsPickUp); // }} "" // {{{ 303 1 0 "7672f7d1_511a_4ef5_a9749485566f3a05" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceSequence(seq_TipsPutDown); // }} "" // {{{ 304 1 0 "d5f7bbd6_7f0f_4114_b82d631ff6bbfdfe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Channel Active"), arr_ChannelPattern); // }} "" // {{{ 305 1 0 "fa5dcf75_836c_4b10_bb3b3e9c67cd56d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("Pick up Index"), arr_PickUpIndex); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 306 1 0 "e9938fcb_3861_4257_83d8c6af117edbb3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ChannelPattern = Translate(""); // }} "" // {{ 307 1 0 "a26fac44_de43_4c9b_b8cfc164ad99bf94" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{{ 308 1 0 "a22dd98b_facb_4a22_9ed23162dd82dd75" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_ChannelPattern = StrConcat4(str_ChannelPattern, arr_ChannelPattern.ElementAt( int_ChannelIndex -1), Translate(""), Translate("")); // }} "" // {{ 309 1 0 "a26fac44_de43_4c9b_b8cfc164ad99bf94" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 310 1 0 "11567802_dea6_4364_869802634c56e2ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Channel Pattern: "), str_ChannelPattern); // }} "" // {{ 311 1 0 "92bd7a52_620d_4b33_8cecf0309009da37" "ML_STAR:{AFA41E7B-21AC-4a24-804E-41716114FEC3}" { variable arrRetValues[]; arrRetValues = ML_STAR._AFA41E7B_21AC_4a24_804E_41716114FEC3("92bd7a52_620d_4b33_8cecf0309009da37"); // XLTipPickUp } // }} "" // {{ 312 1 0 "30183972_a0b0_4195_a293839433f4a960" "ML_STAR:{7F970BA7-528E-4283-807A-325DED0C065A}" { variable arrRetValues[]; arrRetValues = ML_STAR._7F970BA7_528E_4283_807A_325DED0C065A("30183972_a0b0_4195_a293839433f4a960"); // XLTipEject } // }} "" // {{ 313 1 0 "a3a8df75_ac2b_4dce_b9cd41b8b06b5918" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalUpdates=arr_PickUpIndex.GetSize(); // }} "" // {{ 314 1 0 "d0df8add_0b3e_46a5_ab815cbe30de2d24" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, bln_UseOptimization, int_Index, str_InValue, flt_XCoord, int_Group, a, int_ChannelCount, int_UpdateCount; file UpdateFile; UpdateFile.RemoveFields(); str_InValue = "("; int_UpdateCount = 0; for(i=0;i 0) str_InValue = str_InValue + ", "; str_InValue = StrConcat2(str_InValue , int_Index); int_ChannelCount = int_ChannelCount + 1; int_UpdateCount = int_UpdateCount + 1; if(int_UpdateCount>int_TotalUpdates) break; } } str_InValue = str_InValue + ")"; if(int_UpdateCount > 0) { str_SQL = "UPDATE SORT SET USED = -1 WHERE INDEX IN" + str_InValue; //Trace(str_SQL); UpdateFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); UpdateFile.Close(); UpdateFile.RemoveFields(); } } // {{ 316 1 0 "d0df8add_0b3e_46a5_ab815cbe30de2d24" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 317 1 0 "6ad9c6e9_63a7_4741_b83cd1d5039cc665" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalUpdates=arr_PutDownIndex.GetSize(); // }} "" // {{ 318 1 0 "4695ae77_fba0_4d56_af0ede6bd9978b63" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, bln_UseOptimization, int_Index, str_InValue, flt_XCoord, int_Group, a, int_ChannelCount, int_UpdateCount; file UpdateFile; UpdateFile.RemoveFields(); str_InValue = "("; int_UpdateCount = 0; for(i=0;i 0) str_InValue = str_InValue + ", "; str_InValue = StrConcat2(str_InValue , int_Index); int_ChannelCount = int_ChannelCount + 1; int_UpdateCount = int_UpdateCount + 1; if(int_UpdateCount>int_TotalUpdates) break; } } str_InValue = str_InValue + ")"; if(int_UpdateCount > 0) { str_SQL = "UPDATE SORT SET USED = 2 WHERE INDEX IN" + str_InValue; //Trace(str_SQL); UpdateFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); UpdateFile.Close(); UpdateFile.RemoveFields(); } } // {{ 320 1 0 "4695ae77_fba0_4d56_af0ede6bd9978b63" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 321 1 0 "30394ad0_d105_4d52_b03d25bb3d7b58bc" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 322 1 0 "351305e6_d4dc_4ac5_90901332eb584cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 323 1 0 "247abfa1_508f_4a5c_b3f98afd392e1931" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(io_seq_Tips); // }} "" // {{{ 324 1 0 "b3650eea_b182_4707_b1b18d3bd4a929a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(seq_TipsEmpty); // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Group, int_ChannelIndex, flt_CurrentX, bln_Used; file ReadFile; ReadFile.RemoveFields(); ReadFile.AddField("INDEX", int_PositionCount, hslInteger); ReadFile.AddField("USED", bln_Used, hslInteger); ReadFile.AddField("LAB_ID", str_LabID, hslString, 255); ReadFile.AddField("POS_ID", str_PosID, hslString, 255); ReadFile.AddField("X_COORD", flt_X_Coord, hslFloat); ReadFile.AddField("Y_COORD", flt_Y_Coord, hslFloat); ReadFile.AddField("Z_COORD", flt_Z_Coord, hslFloat); ReadFile.AddField("GROUP",int_Group,hslInteger); int_TotalValues = seq_TipsRemaining.GetTotal(); ReadFile.SetExtendedProperties("HDR=YES"); ReadFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead); int_PositionCount = 1; int_Group = 0; bln_Used = 1; while(ReadFile.Eof() == 0) { ReadFile.ReadRecord(); if(bln_Used > 0) { SeqAdd(io_seq_Tips, Translate(str_LabID), Translate(str_PosID)); } else { SeqAdd(seq_TipsEmpty, Translate(str_LabID), Translate(str_PosID)); } } ReadFile.Close(); ReadFile.RemoveFields(); } // {{ 326 1 0 "1bc1a5af_867c_489f_ade7740f2fcd5601" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_seq_Tips.SetCurrentPosition(1); // }} "" // {{{ 327 1 0 "4226b44e_0f2d_4e11_b6f24b1a917e7025" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, io_seq_Tips, 5, Translate("With Tips")); // }} "" // {{{ 328 1 0 "98de9c99_d096_44da_a43b17dd265e2ce0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeckVisualize::UpdateUsedPositions(ML_STAR, seq_TipsEmpty, 4, Translate("No Tips")); // }} "" // {{ 329 1 0 "351305e6_d4dc_4ac5_90901332eb584cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 330 1 0 "d3d93bf2_7358_4104_97caaae9491cbeaf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 331 1 0 "6ad71463_9136_498b_883a3072a555fe8a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 332 1 0 "d3d93bf2_7358_4104_97caaae9491cbeaf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "DefragTipRacks5mL" "End" } // }} "" // {{{ 5 "Optimized5mLTipPickup2" "Begin" function Optimized5mLTipPickup2( device & ML_STAR, sequence & io_seq_TipSequence, variable i_str_TipCounter, variable i_str_ChannelPattern ) void { // }} "" private dialog customDialogD6E91AF203E543c7804E065769839332; private variable int_ChannelSet; private variable flt_NotUsed; private variable flt_CurrentX; private variable flt_CurrentY; private variable flt_TipCapacity; private variable flt_YRaster; private variable int_TotalOptions; private variable _strFunctionName; private variable bln_OptimizationNeeded; private variable str_LabID; private variable bool_FileExists; private variable flt_PreviousY; private variable str_TipMessage; private variable flt_TargetX; private variable str_TempSortingFilePath; private variable int_ChannelActive; private variable int_TotalChannels; private variable int_ChannelValue; private variable int_ChannelIndex; private variable int_TipsNeeded; private variable bln_EnoughTipsLoaded; private variable str_PosID; private variable str_Value; private variable str_TipName; private sequence seq_RemainingSequence; private variable arr_GroupedXCoords[]; private variable arr_GroupNumber[]; private variable arr_ChannelPattern[]; private variable arr_YMin[]; private variable arr_YMax[]; private variable arr_GroupedCounts[]; private variable arr_GroupedLabID[]; // {{ 5 "Optimized5mLTipPickup2" "InitLocals" // }} "" // {{ 714 1 0 "87fac8de_eb41_437c_9d54ac067e1414d0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 715 1 0 "bd04db41_859b_4d6d_b6fc631ae437ee1d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 717 1 0 "de5e993e_e70e_418d_bfef3d37284a4d0a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 718 1 0 "87fac8de_eb41_437c_9d54ac067e1414d0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 719 1 0 "4829ea73_449c_4d89_b959c8a72ba41a4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" Get5mLChannelCount(ML_STAR, int_TotalChannels); // }} "" // {{{ 720 1 0 "15ced722_ce0d_4885_ad64198917ec2408" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetChannelLimits(ML_STAR, 1, arr_YMax, arr_YMin, flt_YRaster); // }} "" // {{{ 721 1 0 "aff02788_116e_4cd7_95a58816d96f0c0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_TipsNeeded = StrReplace(i_str_ChannelPattern, Translate("1"), Translate("1")); // }} "" // {{{ 722 1 0 "244ea944_17f3_49b0_8b533bf27f24197c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" i_str_ChannelPattern = StrFillRight(i_str_ChannelPattern, Translate("0"), int_TotalChannels); // }} "" // {{ 723 1 0 "ee35b2e3_d22a_4950_b68825bfecd9db32" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_ChannelPattern.SetSize(0); // }} "" // {{ 724 1 0 "8ec59276_1a70_4ab4_a3729421d1c688a1" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{{ 725 1 0 "88ee7f36_4b73_4be0_a81e232579f752c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrLeft(i_str_ChannelPattern, int_ChannelIndex); // }} "" // {{{ 726 1 0 "8b1fd738_6bcb_4b02_943a9480ca256ba4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_Value = StrRight(str_Value, 1); // }} "" // {{{ 727 1 0 "03f35a53_a324_4d8d_b267b9b2969fb139" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_ChannelValue = StrIVal(str_Value); // }} "" // {{ 728 1 0 "6d21d8e3_b318_48b1_bf20dccb62a046f6" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_ChannelPattern.AddAsLast(int_ChannelValue); // }} "" // {{ 729 1 0 "8ec59276_1a70_4ab4_a3729421d1c688a1" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 730 1 0 "29efdf4f_456c_4b73_a8b2fe99c3865a05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_TipsNeeded == 0) { // }} "" // {{ 731 1 0 "01226fab_1c70_47b8_bd9aa678c03764f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 732 1 0 "790ee152_e566_40a3_82c5893715262b18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 733 1 0 "01226fab_1c70_47b8_bd9aa678c03764f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 734 1 0 "25b12484_a8ec_4cc1_a95f57ca4a498186" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 735 1 0 "29efdf4f_456c_4b73_a8b2fe99c3865a05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 736 1 0 "29fa761c_e3d9_468d_9c101062787f26a8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (BOOLEON::TRUE == BOOLEON::TRUE) { // }} "" // {{{ 737 1 0 "9f0ac349_9daf_40fd_b27d5bfd9f6d5ae6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TipCheck(ML_STAR, io_seq_TipSequence, i_str_TipCounter, int_TipsNeeded); // }} "" // {{{ 738 1 0 "1e9b9567_8535_4fdc_8da381e5eeb945b7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq_RemainingSequence, io_seq_TipSequence); // }} "" // {{{ 739 1 0 "23873598_d72f_41dc_b5ddb1f786d28880" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::RemoveTruncatedSequencePositions(ML_STAR, seq_RemainingSequence); // }} "" // {{{ 740 1 0 "0fec3806_f601_42b6_9ee50f5e9534d908" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTempSortingFilePath(str_TempSortingFilePath); // }} "" // {{{ 741 1 0 "9ed69bc7_7cde_4dfb_8b22f2c2ae928cfe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" bool_FileExists = HSLExtensions::File::Exists(str_TempSortingFilePath); // }} "" // {{ 742 1 0 "6debfd39_1031_454c_89baff5f0d55e7f5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bool_FileExists == 1) { // }} "" // {{{ 743 1 0 "7791d9c4_47c2_48b0_97e139c13973d930" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLExtensions::File::Delete(str_TempSortingFilePath); // }} "" // {{ 744 1 0 "6debfd39_1031_454c_89baff5f0d55e7f5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 745 1 0 "6757b6e1_fe0e_48ad_b9283f59b1a69603" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 746 1 0 "eb851f30_c750_406f_bef1624d9396755a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_OptimizationNeeded = BOOLEON::FALSE; // }} "" // {{ 747 1 0 "56d7646f_2d56_4d56_9c92d0da744d7777" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_ChannelSet = 1; // }} "" // {{ 748 1 0 "9c42db09_491b_4067_b41f98955d984b5b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(int_ChannelIndex = 0; int_ChannelIndex < int_TotalChannels;) { int_ChannelIndex = int_ChannelIndex + 1; // }} "" // {{ 749 1 0 "9c862401_589b_4405_b6aa9f68e1e964f1" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" int_ChannelActive=arr_ChannelPattern.GetAt(int_ChannelIndex-1); // }} "" // {{ 750 1 0 "6e991536_e480_4e2a_b4ee22ec09bcb70e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelActive == 1) { // }} "" // {{{ 751 1 0 "8b960903_20f6_4d75_abc2a4e91ce380b6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_LabID = SeqGetLabwareId(seq_RemainingSequence); // }} "" // {{{ 752 1 0 "9da95cf1_dbeb_4bf4_81ade911bff75b94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_PosID = SeqGetPositionId(seq_RemainingSequence); // }} "" // {{{ 753 1 0 "1a6b43ae_0c85_4060_871f2d719dd99036" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqIncrement(seq_RemainingSequence, 1); // }} "" // {{{ 754 1 0 "6f2a327a_e380_4f0b_812177b24b090105" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_CurrentX, flt_CurrentY, flt_NotUsed, flt_NotUsed); // }} "" // {{ 755 1 0 "b4750ac9_ca16_4df3_ad85f55626fb792d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentY <= arr_YMax.ElementAt( int_ChannelIndex -1)) { // }} "" // {{ 756 1 0 "494e7ef7_f44b_4a19_be7c02ecd4501b7b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentY >= arr_YMin.ElementAt( int_ChannelIndex -1)) { // }} "" // {{ 757 1 0 "1b19a1f5_95c9_4527_a7149174ac9c5efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_ChannelSet == 1) { // }} "" // {{ 758 1 0 "1c751fe7_dc09_4565_99d76a77153aa80c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TargetX = flt_CurrentX; // }} "" // {{ 759 1 0 "176d1f49_ae6f_4bdf_8525fe1a0c4ad7f1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_PreviousY = flt_CurrentY; // }} "" // {{ 760 1 0 "1d51aa1d_451b_42a3_8f8f357f7e53abff" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ChannelSet = int_ChannelSet + 1; // }} "" // {{ 761 1 0 "1b19a1f5_95c9_4527_a7149174ac9c5efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 762 1 0 "48afd576_6870_4a33_b08653db21db06e1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentX != flt_TargetX) { // }} "" // {{ 763 1 0 "6ccd1a02_c966_4aae_93933f75323677b6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_OptimizationNeeded = BOOLEON::TRUE; // }} "" // {{ 764 1 0 "ba1589bf_bdb9_4985_a22f5035d66cffd0" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 765 1 0 "48afd576_6870_4a33_b08653db21db06e1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 766 1 0 "b1c46388_b048_403a_a28be1d16786a16a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_CurrentY > flt_PreviousY) { // }} "" // {{ 767 1 0 "18e3c61c_a281_4b48_a56b776f5c7194ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_OptimizationNeeded = BOOLEON::TRUE; // }} "" // {{ 768 1 0 "28f0bd2a_2dd4_4190_ac7d769a5ade3784" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 769 1 0 "b1c46388_b048_403a_a28be1d16786a16a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 770 1 0 "6ed35aa5_6cb3_4e53_b98506697635de8e" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_ChannelSet = int_ChannelSet + 1; // }} "" // {{ 771 1 0 "1b19a1f5_95c9_4527_a7149174ac9c5efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 772 1 0 "494e7ef7_f44b_4a19_be7c02ecd4501b7b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 773 1 0 "b810b5fe_3e27_4fee_9b3d70ec67b66f31" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_OptimizationNeeded = BOOLEON::TRUE; // }} "" // {{ 774 1 0 "9872bf4d_0481_43cb_9dfdb95901f695fa" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 775 1 0 "494e7ef7_f44b_4a19_be7c02ecd4501b7b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 776 1 0 "b4750ac9_ca16_4df3_ad85f55626fb792d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 777 1 0 "f6572189_f56d_45f2_aa6382b1a19a4e63" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_OptimizationNeeded = BOOLEON::TRUE; // }} "" // {{ 778 1 0 "b7e04722_0b4f_40e0_8d5b84b19d343cec" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 779 1 0 "b4750ac9_ca16_4df3_ad85f55626fb792d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 780 1 0 "6e991536_e480_4e2a_b4ee22ec09bcb70e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 781 1 0 "97bd1161_af43_43c9_b24a69f258246851" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_PreviousY = flt_PreviousY - flt_YRaster; // }} "" // {{ 782 1 0 "9c42db09_491b_4067_b41f98955d984b5b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 783 1 0 "0482e0c0_7433_4d29_a4f92981bb47ee67" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" seq_RemainingSequence.SetCurrentPosition(1); // }} "" // {{ 784 1 0 "6757b6e1_fe0e_48ad_b9283f59b1a69603" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 785 1 0 "fbbe2532_e550_4fde_8264ba76f0d6e650" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_OptimizationNeeded == BOOLEON::TRUE) { // }} "" // {{ 786 1 0 "6ca31729_f13e_41b2_92d511a618dc2caf" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("OPTIMIZE NEEDED!")); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 787 1 0 "f886175d_69a4_49db_8cb42ec58ebbc954" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::SortSequence(ML_STAR, seq_RemainingSequence, BOOLEON::FALSE); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 788 1 0 "83325d82_66fd_4547_9c6db08b914cbd54" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::SortSequenceRaster(ML_STAR, seq_RemainingSequence, BOOLEON::FALSE, flt_YRaster); // }} "" // {{ 789 1 0 "859f3e13_f5c4_42f8_a6f1bfae40c14bf6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Group, int_ChannelIndex, flt_CurrentX, bln_Used; file WriteFile; WriteFile.RemoveFields(); WriteFile.AddField("INDEX", int_PositionCount, hslInteger); WriteFile.AddField("USED", bln_Used, hslInteger); WriteFile.AddField("LAB_ID", str_LabID, hslString, 255); WriteFile.AddField("POS_ID", str_PosID, hslString, 255); WriteFile.AddField("X_COORD", flt_X_Coord, hslFloat); WriteFile.AddField("Y_COORD", flt_Y_Coord, hslFloat); WriteFile.AddField("Z_COORD", flt_Z_Coord, hslFloat); WriteFile.AddField("GROUP",int_Group,hslInteger); int_TotalValues = seq_RemainingSequence.GetTotal(); WriteFile.SetExtendedProperties("HDR=YES"); WriteFile.Open(str_TempSortingFilePath + " " + "SORT", hslWrite); int_PositionCount = 1; int_Group = 0; flt_CurrentX = -100.0; for(i = 0; i < int_TotalValues;) { i = i + 1; int_ChannelIndex = int_ChannelIndex + 1; seq_RemainingSequence.SetCurrentPosition(i); str_LabID = seq_RemainingSequence.GetLabwareId(); str_PosID = seq_RemainingSequence.GetPositionId(); DevGetLabwarePositionEx(ML_STAR, str_LabID, str_PosID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_NotUsed); if(flt_CurrentX != flt_X_Coord) { flt_CurrentX = flt_X_Coord; int_Group = int_Group + 1; int_ChannelIndex = 1; } if(int_ChannelIndex > int_TotalChannels) { int_ChannelIndex = 1; flt_CurrentX = flt_X_Coord; int_Group = int_Group + 1; } WriteFile.WriteRecord(); int_PositionCount = int_PositionCount + 1; } WriteFile.Close(); WriteFile.RemoveFields(); } // {{ 791 1 0 "c8f768d4_2c95_4069_b2a1f0ef902350b0" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{ 792 1 0 "8cedafac_d69d_4d17_84bcaff9f102b7b6" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_GroupedLabID.SetSize(0); // }} "" // {{ 793 1 0 "ac37feb6_febb_460b_8ade1a224961c8c7" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_GroupedXCoords.SetSize(0); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 794 1 0 "c3405760_2bd3_4b76_b43baaeea9ea980f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_GroupNumber.SetSize(0); // }} "" // {{ 795 1 0 "9e863f3c_c20d_40dd_a8bdc0f83ea13c8d" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_GroupedCounts.SetSize(0); // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, int_Group; file SortFile; SortFile.RemoveFields(); //str_SQL = "SELECT [GROUP], Y_COORD, COUNT(*) AS N FROM (SELECT * FROM SORT ORDER BY Y_COORD DESC, X_COORD ASC) GROUP BY [GROUP], Y_COORD ORDER BY Y_COORD DESC"; str_SQL = "SELECT [GROUP], N FROM (SELECT [GROUP], COUNT(*) AS N FROM SORT GROUP BY [GROUP]) ORDER BY [GROUP] ASC"; //SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("GROUP", int_Group, hslFloat); SortFile.AddField("N", int_Count, hslInteger); int_TotalValues = seq_RemainingSequence.GetTotal(); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); str_LabID = ""; flt_Y_Coord = 0.0; while(SortFile.Eof() == 0) { SortFile.ReadRecord(); arr_GroupNumber.AddAsLast(int_Group); arr_GroupedCounts.AddAsLast(int_Count); } SortFile.Close(); SortFile.RemoveFields(); } // {{ 797 1 0 "48293e9c_6e04_405a_84309b9738de92d3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 798 1 0 "a6cfbefc_9ba3_4103_85a07f2d56b3bc63" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" int_TotalOptions=arr_GroupedCounts.GetSize(); // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 799 1 0 "ce0dd410_a196_44cb_9e57d900b9a96d53" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_2(Translate("Counts Group"), arr_GroupedCounts, arr_GroupNumber); // }} "" // {{{ 800 1 0 "8c69dcdb_71fd_4dd7_b7f48089ec2bf416" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_3(Translate("Counts Lab X"), arr_GroupedCounts, arr_GroupedLabID, arr_GroupedXCoords); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{ 801 1 0 "9be4a4c2_bf8b_48ad_8ca5e9a188d7f226" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, bln_UseOptimization, int_Index, str_InValue, flt_XCoord, int_Group, a, int_ChannelCount, int_UpdateCount, int_ChannelIndex; variable flt_PreviousY; file SortFile, UpdateFile; bln_UseOptimization = hslFalse; SortFile.RemoveFields(); SortFile.AddField("INDEX", int_Index, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("X_COORD", flt_X_Coord, hslFloat); SortFile.AddField("Y_COORD", flt_X_Coord, hslFloat); SortFile.AddField("GROUP", int_Group, hslInteger); str_SQL = "SELECT INDEX, LAB_ID, X_COORD, Y_COORD, [GROUP] FROM SORT ORDER BY LAB_ID ASC, Y_COORD DESC, X_COORD ASC"; SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); while(SortFile.Eof() == 0) { SortFile.ReadRecord(); //Util::Lookup(arr_GroupedCounts,int_Group,a); //Trace("Group: ", int_Group," Count: ",arr_GroupedCounts.GetAt(int_Group-1)," Tips needed: ",int_TipsNeeded); if(arr_GroupedCounts.GetAt(int_Group-1) >= int_TipsNeeded) { int_Group = StrConcat2(int_Group,""); bln_UseOptimization = hslTrue; break; } } //int_Index = StrConcat2(int_Index,""); SortFile.Close(); SortFile.RemoveFields(); //Trace("Lab ID: ",str_LabID," X Coord: ",flt_XCoord); //Trace("Group: ",int_Group); //Trace("Use Optimization: ",bln_UseOptimization); if(bln_UseOptimization == hslTrue) { str_SQL = "SELECT INDEX, LAB_ID, POS_ID, X_COORD, Y_COORD, [GROUP] FROM SORT WHERE [GROUP] = " + int_Group + " ORDER BY X_COORD ASC, Y_COORD DESC"; SortFile.RemoveFields(); SortFile.AddField("INDEX", int_Index, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("X_COORD", flt_X_Coord, hslFloat); SortFile.AddField("Y_COORD", flt_Y_Coord, hslFloat); SortFile.AddField("GROUP",int_Group, hslInteger); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); i = 0; int_ChannelIndex = 1; str_InValue = "("; flt_PreviousY = 9999.9; while(SortFile.Eof() == 0) { if(i > int_TipsNeeded) break; SortFile.ReadRecord(); if(arr_ChannelPattern.GetAt(int_ChannelIndex-1)==1) { if(i==0) flt_PreviousY = flt_Y_Coord + flt_YRaster; if(flt_Y_Coord <= flt_PreviousY - flt_YRaster) { i = i + 1; if(i > 1) str_InValue = str_InValue + ", "; str_InValue = StrConcat2(str_InValue , int_Index); int_ChannelIndex = int_ChannelIndex + 1; } } else { int_ChannelIndex = int_ChannelIndex + 1; } } str_InValue = str_InValue + ")"; SortFile.Close(); SortFile.RemoveFields(); UpdateFile.RemoveFields(); str_SQL = "UPDATE SORT SET USED = 2 WHERE INDEX IN" + str_InValue; //Trace(str_SQL); UpdateFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); UpdateFile.Close(); UpdateFile.RemoveFields(); } else { str_SQL = "SELECT INDEX, LAB_ID, POS_ID, X_COORD, Y_COORD FROM SORT ORDER BY X_COORD ASC, Y_COORD DESC"; SortFile.RemoveFields(); SortFile.AddField("INDEX", int_Index, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("X_COORD", flt_X_Coord, hslFloat); SortFile.AddField("Y_COORD", flt_Y_Coord, hslFloat); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); i = 0; str_InValue = "("; int_ChannelCount = 1; int_UpdateCount = 0; int_ChannelIndex = 1; while(SortFile.Eof() == 0) { //loop(int_TotalChannels) //{ //if(int_ChannelIndex > int_TotalChannels) break; //if(arr_ChannelPattern.GetAt(int_ChannelIndex)==1) //{ //break; //} //int_ChannelIndex = int_ChannelIndex + 1; //} if(int_ChannelIndex > int_TotalChannels) break; SortFile.ReadRecord(); i = i + 1; if(int_ChannelCount > int_TipsNeeded) break; if(flt_Y_Coord <= arr_YMax.GetAt(int_ChannelIndex-1)) { if(flt_Y_Coord >= arr_YMin.GetAt(int_ChannelIndex-1)) { if(int_ChannelCount > 1) str_InValue = str_InValue + ", "; str_InValue = StrConcat2(str_InValue , int_Index); int_ChannelCount = int_ChannelCount + 1; int_UpdateCount = int_UpdateCount + 1; int_ChannelIndex = int_ChannelIndex + 1; } } } str_InValue = str_InValue + ")"; SortFile.Close(); SortFile.RemoveFields(); if(int_UpdateCount>0) { UpdateFile.RemoveFields(); str_SQL = "UPDATE SORT SET USED = 2 WHERE INDEX IN" + str_InValue; UpdateFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); UpdateFile.Close(); UpdateFile.RemoveFields(); } } } // {{ 803 1 0 "3bece2a4_9dd6_4778_bd06c7599f1d3ace" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 804 1 0 "3a977b08_3564_45df_91c33f05457dcb33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(io_seq_TipSequence); // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL, bln_Used; file SortFile; SortFile.RemoveFields(); str_SQL = "SELECT USED, LAB_ID, POS_ID FROM SORT ORDER BY USED DESC, LAB_ID ASC, X_COORD ASC, Y_COORD DESC"; SortFile.AddField("USED", bln_Used, hslInteger); SortFile.AddField("LAB_ID", str_LabID, hslString, 255); SortFile.AddField("POS_ID", str_PosID, hslString, 255); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); while(SortFile.Eof() == 0) { SortFile.ReadRecord(); SeqAdd(io_seq_TipSequence, Translate(str_LabID), Translate(str_PosID)); } SortFile.Close(); SortFile.RemoveFields(); } // {{ 806 1 0 "5bf28083_bb1c_43d2_b8c0fc216a22e92b" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" io_seq_TipSequence.SetCurrentPosition(1); // }} "" // {{ 807 1 0 "eaacfa85_3d66_4a6d_b7d870d3bf843ae6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" bln_EnoughTipsLoaded = BOOLEON::TRUE; // }} "" { variable int_TotalValues, i,str_LabID,str_PosID,int_CurrentPosition,int_FilledLocation,int_Position,flt_X_Coord,flt_Y_Coord,flt_Z_Coord,flt_NotUsed; variable int_PositionCount, int_Count, str_SQL; file SortFile; SortFile.RemoveFields(); str_SQL = "SELECT COUNT(*) AS N FROM SORT WHERE USED = 2"; SortFile.AddField("N", int_Count, hslInteger); SortFile.SetExtendedProperties("HDR=YES"); SortFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead,str_SQL); SortFile.ReadRecord(); SortFile.Close(); SortFile.RemoveFields(); if(int_Count < int_TipsNeeded) bln_EnoughTipsLoaded = hslFalse; } // {{ 809 1 0 "ef12485d_bb0b_4181_a22816499d498bbc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_EnoughTipsLoaded == BOOLEON::FALSE) { // }} "" // {{ 810 1 0 "039a177b_40cb_4bb3_af57978991eda899" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("------------------ Insufficient tips found")); // }} "" // {{{ 811 1 0 "1883f8ae_29e5_4db6_8417b79391d42d05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TipCapacityCheck(ML_STAR, io_seq_TipSequence, flt_TipCapacity); // }} "" // {{ 812 1 0 "294e0dc4_ca45_4c83_ba87d6bcec1be239" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (flt_TipCapacity == 0.0) { // }} "" // {{ 813 1 0 "4e463bb2_7e4d_4b19_a55e4e2d4959d7cc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_TipCapacity = Translate("Unknown"); // }} "" // {{ 814 1 0 "294e0dc4_ca45_4c83_ba87d6bcec1be239" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 815 1 0 "fac49442_6e4a_4c6b_8a4a08b46f751654" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipName = StrConcat4(flt_TipCapacity, Translate(" uL Tips"), Translate(""), Translate("")); // }} "" // {{{ 816 1 0 "a5111bb6_067d_4858_91184d48301f3d88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_TipMessage = StrConcat4(Translate("Please load more "), str_TipName, Translate(" on to the deck."), Translate("")); // }} "" // {{ 817 1 0 "b6e7b665_c03d_40fc_960a1862f829d164" "{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}" customDialogD6E91AF203E543c7804E065769839332.InitCustomDialog( "b6e7b665_c03d_40fc_960a1862f829d164" ); customDialogD6E91AF203E543c7804E065769839332.SetCustomDialogProperty( "textBlock2.Text", str_TipMessage ); customDialogD6E91AF203E543c7804E065769839332.ShowCustomDialog(); // }} "" // {{{ 818 1 0 "bc501567_2ef5_4b26_914e17dd7bf7efaa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ResetInputSequence(ML_STAR, io_seq_TipSequence); // }} "" // {{{ 819 1 0 "3468e5af_7036_4391_b63abae4629966d2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" TipCounter_Edit(ML_STAR, io_seq_TipSequence, i_str_TipCounter, 99999); // }} "" // {{ 820 1 0 "ef12485d_bb0b_4181_a22816499d498bbc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 821 1 0 "ad529414_3513_43ce_9c83ac1ef00a14d2" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 822 1 0 "ef12485d_bb0b_4181_a22816499d498bbc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 823 1 0 "859f3e13_f5c4_42f8_a6f1bfae40c14bf6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 824 1 0 "fbbe2532_e550_4fde_8264ba76f0d6e650" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 825 1 0 "f16907cf_2348_4f67_ba32b1ead8fef794" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 826 1 0 "fbbe2532_e550_4fde_8264ba76f0d6e650" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 827 1 0 "29fa761c_e3d9_468d_9c101062787f26a8" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 828 1 0 "19000815_ff51_4949_bda38d8c1eb83ef3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 829 1 0 "f86f5175_4abf_4e88_bb4fa99ba8c49986" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 830 1 0 "19000815_ff51_4949_bda38d8c1eb83ef3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "Optimized5mLTipPickup2" "End" } // }} "" // {{{ 5 "TipCountNeeded_Reset" "Begin" function TipCountNeeded_Reset( variable i_str_TipCounter ) void { // }} "" private variable int_Index; // {{ 5 "TipCountNeeded_Reset" "InitLocals" // }} "" // {{ 1026 1 0 "634bac04_5879_48d9_b4394193206ce30d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (TT_GLOBAL_VARIABLES::TIP_COUNT::LIBRARY_INITIALIZED == BOOLEON::FALSE) { // }} "" // {{{ 1027 1 0 "41edd52c_27de_4d5f_b2bee2989d6267f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TT_GLOBAL_VARIABLES::TIP_COUNT::InitializeVariables(); // }} "" // {{ 1028 1 0 "080fd8d0_2090_4b46_b4b411c33a291e77" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNT_NEEDED.SetSize(0); // }} "" // {{ 1029 1 0 "6dd37ae8_3441_4a1a_a2de464247c25641" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNTER.SetSize(0); // }} "" // {{ 1030 1 0 "9a63a05f_3e00_4cd3_b55c6d9a5957ea84" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" TT_GLOBAL_VARIABLES::TIP_COUNT::LIBRARY_INITIALIZED = BOOLEON::TRUE; // }} "" // {{ 1031 1 0 "634bac04_5879_48d9_b4394193206ce30d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1032 1 0 "4a4f7bbf_b9ef_4890_b5116d7d8ae6c1ce" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" int_Index = _Lookup(TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNTER, i_str_TipCounter); // }} "" // {{ 1033 1 0 "1cc3be18_65d7_427a_9345d0fb5437bdef" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Index == 0) { // }} "" // {{ 1034 1 0 "e48a9c97_4254_457f_be01cc0c85bc67f5" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1035 1 0 "e5b80bf9_2d66_44e7_b2c8876480f77397" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNTER.AddAsLast(i_str_TipCounter); // }} "" // {{ 1036 1 0 "bfa86bc1_e72b_48a1_a8043e23a80f8964" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNT_NEEDED.AddAsLast(0); // }} "" // {{ 1037 1 0 "1cc3be18_65d7_427a_9345d0fb5437bdef" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1038 1 0 "cac50ff8_9da4_43aa_b796636119ff8ced" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1039 1 0 "f6a5f903_43ac_4982_aa6494e01709c561" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" TT_GLOBAL_VARIABLES::TIP_COUNT::TIP_COUNT_NEEDED.SetAt(int_Index-1, 0); // }} "" // {{ 1040 1 0 "1cc3be18_65d7_427a_9345d0fb5437bdef" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "TipCountNeeded_Reset" "End" } // }} "" // {{{ 5 "ABSTRACT" "Begin" private function ABSTRACT( ) void { // }} "" // {{ 5 "ABSTRACT" "InitLocals" // }} "" // {{ 1 1 0 "57867926_0890_4408_8f082f9db5647dc1" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 5 "ABSTRACT" "End" } // }} "" // {{{ 5 "_GetSequenceName" "Begin" private function _GetSequenceName( device & Instrument, sequence i_seq_SequenceToCheck, variable & o_strSequenceName, variable & o_intTotalPositions ) void { // }} "" // {{ 5 "_GetSequenceName" "InitLocals" o_strSequenceName = 0; o_intTotalPositions = 0; // }} "" // {{ 1460 1 0 "28fc9610_cc2c_42d7_bbd6ab2dad5fb555" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_intTotalPositions = 0; // }} "" // {{ 1461 1 0 "efa23306_d3c8_4d16_ad333351b08821e5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_strSequenceName = 0; // }} "" { Instrument.CopyResetSequence(i_seq_SequenceToCheck.GetName(),i_seq_SequenceToCheck); o_strSequenceName = i_seq_SequenceToCheck.GetName(); o_intTotalPositions = i_seq_SequenceToCheck.GetCount(); } // {{{ 5 "_GetSequenceName" "End" } // }} "" // {{{ 5 "GetTipCounter" "Begin" function GetTipCounter( device & ML_STAR, sequence & io_seqTips, variable & o_strTipCounter ) void { // }} "" private variable l_strSequenceName; private variable l_intTotalPositions; private variable l_blnLiquidClassExists; private variable _strFunctionName; private variable l_intTipType; private variable l_strInstrumentClass; private variable l_arrListOfTipCounters[]; private variable l_strLabID; // {{ 5 "GetTipCounter" "InitLocals" o_strTipCounter = 0; // }} "" // {{ 340 1 0 "844ae7d3_ea89_4e60_acedc07ec3a79f82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 341 1 0 "677eb5d4_158d_4704_9f58a9f6200b794d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strFunctionName = Translate(""); // }} "" _strFunctionName = GetFunctionName(); // {{{ 343 1 0 "7fe9af90_02e2_4ba5_b13d088fae177014" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::TRUE, BOOLEON::TRUE); // }} "" // {{ 344 1 0 "844ae7d3_ea89_4e60_acedc07ec3a79f82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 345 1 0 "2c77ad10_79a5_4efd_a767213def5b1150" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_strTipCounter = Translate(""); // }} "" // {{ 346 1 0 "f893709d_45d9_4a19_bf7b9c675b5f24e6" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" l_arrListOfTipCounters.SetSize(0); // }} "" // {{{ 347 1 0 "6496c8c1_cfd3_4560_96a190fa02b4b336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TIP_COUNTER::InitTipCountingLibrary(); // }} "" // {{{ 348 1 0 "cd174bd2_acf6_4846_80f6fb30766270be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetSequenceName(ML_STAR, io_seqTips, l_strSequenceName, l_intTotalPositions); // }} "" // {{ 349 1 0 "fc60b013_6647_4b7b_8d12ae96a4d65ae7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_strTipCounter = l_strSequenceName; // }} "" // {{{ 350 1 0 "09a5c948_509c_46d5_a279cc9752bb88f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE08(Translate(" Sequence: "), l_strSequenceName, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate("")); // }} "" // {{{ 351 1 0 "a1d7d518_ddb8_4e9d_959f3016af083086" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_strLabID = SeqGetLabwareId(io_seqTips); // }} "" // {{{ 352 1 0 "117c8f21_1919_4338_af6b7635c05c3032" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" _GetTipType(ML_STAR, l_strLabID, l_intTipType); // }} "" // {{{ 353 1 0 "79a58f67_177a_48b8_aae60cbdad2b79cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_strInstrumentClass = DevGetInstrumentName(ML_STAR); // }} "" // {{{ 354 1 0 "f0db91b4_0b03_48f7_be002c776154f550" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" l_blnLiquidClassExists = _GetTipCounterName(l_strInstrumentClass, l_intTipType, o_strTipCounter); // }} "" // {{ 355 1 0 "8e14cfb5_100a_435e_a174296cd17fc585" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (l_blnLiquidClassExists == BOOLEON::FALSE) { // }} "" // {{ 356 1 0 "725e5ebe_27b1_4695_bd08ce57b8f55949" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_strTipCounter = l_strSequenceName; // }} "" // {{ 357 1 0 "8e14cfb5_100a_435e_a174296cd17fc585" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 358 1 0 "a3fd4db0_a250_44b2_9e968937463af8c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE04(Translate(" "), Translate("Selected Tip Counter: "), o_strTipCounter, Translate("")); // }} "" // {{ 359 1 0 "cbdd7c3b_8f61_48c8_b210e8414b19459c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 360 1 0 "f871da57_1051_42ed_8c2664e1d5741e6c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::SUBMETHOD_BLOCK(_strFunctionName, BOOLEON::FALSE, BOOLEON::TRUE); // }} "" // {{ 361 1 0 "cbdd7c3b_8f61_48c8_b210e8414b19459c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "GetTipCounter" "End" } // }} "" // {{{ 5 "_GetTipCounterName" "Begin" private function _GetTipCounterName( variable i_strInstrumentClass, variable i_intTipType, variable & o_strTipCounterName ) variable { // }} "" private variable l_strModified; private variable l_intID; private variable l_intNum; private variable l_strLabwareType; private variable l_strSystemFolder; private variable l_strName; private variable l_strSQL; private variable l_strTipCounterDatabase; private variable l_strSimulationModified; private variable l_strInstrumentClass; private file l_hdlFile; // {{ 5 "_GetTipCounterName" "InitLocals" o_strTipCounterName = 0; // }} "" // {{ 1487 1 0 "0858a27e_1423_4e2a_88b209f48af7f5fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_strTipCounterName = Translate(""); // }} "" // {{{ 1488 1 0 "29336ebd_c831_426d_8445e5a9ac21224c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_strSystemFolder = FilGetSystemPath(); // }} "" // {{{ 1489 1 0 "a401704e_f4ca_4323_bf38a9f0c0726713" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_strTipCounterDatabase = StrConcat4(l_strSystemFolder, Translate("\\"), Translate("HxElementCounter"), Translate(".mdb")); // }} "" // {{{ 1490 1 0 "f773270a_02c8_419f_87a50e9a85b68e27" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_strSQL = StrConcat8(Translate("SELECT COUNT(*) AS N FROM [ElementCounters] WHERE [InstrumentClass]= '"), i_strInstrumentClass, Translate("' AND [LabwareType] = '"), i_intTipType, Translate("'"), Translate(""), Translate(""), Translate("")); // }} "" // {{{ 1491 1 0 "2fc6b5fd_7947_4ad6_8b5334078bd2b0a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACE::TRACE02(Translate("Database: "), l_strTipCounterDatabase); // }} "" // {{ 1492 1 0 "e0f23421_6132_412d_991b47a4f5659095" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" l_hdlFile.AddField("N", l_intNum, hslInteger); if( 0 == l_hdlFile.Open(l_strTipCounterDatabase + " " + "ElementCounters", hslRead, l_strSQL) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, l_strTipCounterDatabase, "HxMetEdCompCmd"); } // }} "" // {{ 1493 1 0 "bc92d284_bd18_4f37_a054c84e02c3d1e5" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == l_hdlFile.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1494 1 0 "207055c2_0c18_4864_a9a4a31993940ff2" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != l_hdlFile.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } l_hdlFile.RemoveFields(); // }} "" // {{ 1495 1 0 "0e984316_c27f_4765_9eeafd0085f855f5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (l_intNum == 0) { // }} "" // {{{ 1496 1 0 "3124b0d6_6232_4ca0_9d1304bfac90bec9" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (BOOLEON::FALSE); // }} "" // {{ 1497 1 0 "0e984316_c27f_4765_9eeafd0085f855f5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1498 1 0 "7a9a2385_1f12_41fd_b3fcb548dc13093f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" l_strSQL = StrConcat8(Translate("SELECT * FROM [ElementCounters] WHERE [InstrumentClass]= '"), i_strInstrumentClass, Translate("' AND [LabwareType] = '"), i_intTipType, Translate("' ORDER BY [ID] ASC"), Translate(""), Translate(""), Translate("")); // }} "" // {{ 1499 1 0 "3862bb82_6403_4ab3_972b5aee340931c2" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" l_hdlFile.AddField("ID", l_intID, hslInteger); l_hdlFile.AddField("Name", l_strName, hslString, 255); l_hdlFile.AddField("InstrumentClass", l_strInstrumentClass, hslString, 50); l_hdlFile.AddField("LabwareType", l_strLabwareType, hslString, 50); l_hdlFile.AddField("Modified", l_strModified, hslInteger); l_hdlFile.AddField("SimulationModified", l_strSimulationModified, hslInteger); if( 0 == l_hdlFile.Open(l_strTipCounterDatabase + " " + "ElementCounters", hslRead, l_strSQL) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, l_strTipCounterDatabase, "HxMetEdCompCmd"); } // }} "" // {{ 1500 1 0 "97e743ac_4563_46e7_872bd1f697e249c2" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == l_hdlFile.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1501 1 0 "a74d3212_5bf6_433d_9c0e48679f083b89" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != l_hdlFile.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } l_hdlFile.RemoveFields(); // }} "" // {{ 1502 1 0 "7ff846f6_bbcb_4248_b1f2d168e850ece2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_strTipCounterName = l_strName; // }} "" // {{{ 1503 1 0 "4811a841_5e0e_4117_ac13fe2766115adb" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (BOOLEON::TRUE); // }} "" // {{{ 5 "_GetTipCounterName" "End" } // }} "" // {{{ 5 "_SortSequenceLabIDXY" "Begin" private function _SortSequenceLabIDXY( device & Instrument, sequence & io_Sequence ) void { // }} "" private variable str_TempSortingFilePath; private variable str_SQL_Sort; // {{ 5 "_SortSequenceLabIDXY" "InitLocals" // }} "" // {{{ 1568 1 0 "8abd8950_d2f1_4e16_b70ee979a90dbb33" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HELPERLIBRARY::GetTempSortingFilePath(str_TempSortingFilePath); // }} "" // {{{ 1569 1 0 "7e15759e_80c0_4634_b4e2d2946f5d5f30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_SQL_Sort = StrConcat4(Translate("SELECT * FROM SORT ORDER BY LAB_ID ASC, X_COORD ASC, Y_COORD DESC"), Translate(""), Translate(""), Translate("")); // }} "" { variable int_CurrentPosition; variable int_TotalSequencePositions; sequence seq_AdjustedSequence; variable i; file WriteFile; file ReadFile; variable str_LabID; variable str_PosID; variable flt_X; variable flt_Y; variable arr_Coordinates[]; int_CurrentPosition = io_Sequence.GetCurrentPosition(); seq_AdjustedSequence.CopySequence(io_Sequence); int_TotalSequencePositions = io_Sequence.GetTotal(); SeqRemoveAll(io_Sequence); WriteFile.RemoveFields(); WriteFile.AddField("LAB_ID", str_LabID, hslString, 255); WriteFile.AddField("POS_ID", str_PosID, hslString, 255); WriteFile.AddField("X_COORD", flt_X, hslFloat); WriteFile.AddField("Y_COORD", flt_Y, hslFloat); if(WriteFile.Open(str_TempSortingFilePath + " " + "SORT", hslWrite)) { for(i = int_CurrentPosition; i <= int_TotalSequencePositions;) { if(int_CurrentPosition == 0) break; seq_AdjustedSequence.SetCurrentPosition(i); if(seq_AdjustedSequence.GetLabwareId() != "" && seq_AdjustedSequence.GetPositionId() != "") { str_LabID = seq_AdjustedSequence.GetLabwareId(); str_PosID = seq_AdjustedSequence.GetPositionId(); Instrument.GetLabwarePosition(str_LabID, arr_Coordinates, str_PosID); flt_X = arr_Coordinates[0]; flt_Y = arr_Coordinates[1]; WriteFile.WriteRecord(); } i = i + 1; } } WriteFile.Close(); WriteFile.RemoveFields(); ReadFile.RemoveFields(); ReadFile.AddField("LAB_ID", str_LabID, hslString, 255); ReadFile.AddField("POS_ID", str_PosID, hslString, 255); ReadFile.AddField("X_COORD", flt_X, hslFloat); ReadFile.AddField("Y_COORD", flt_Y, hslFloat); if(ReadFile.Open(str_TempSortingFilePath + " " + "SORT", hslRead, str_SQL_Sort)) { while(ReadFile.Eof() == 0) { ReadFile.ReadRecord(); io_Sequence.Add(str_LabID,str_PosID); } } else { Trace("ERROR OCCURRED DURING SORT"); io_Sequence.CopySequence(seq_AdjustedSequence); } ReadFile.Close(); ReadFile.RemoveFields(); io_Sequence.SetCurrentPosition(1); } // {{{ 5 "_SortSequenceLabIDXY" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=Bare_B$$valid=0$$time=2022-04-21 14:36$$checksum=d5e9c462$$length=083$$ ================================================ FILE: pyhamilton/library/STAR Tools/STAR Tools Demo.hsl ================================================ namespace _Method { #include "STAR Tools\\STAR Tip Tools.hs_" } namespace _Method { #include "STAR Tools\\STAR MPH96 Tools.hs_" } namespace _Method { #include "STAR Tools\\STAR Channel Tools.hs_" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "STAR Tools\\STAR Pipetting Tools.hs_" } namespace _Method { #include "HSLUtilLib2.hsl" } #include "STAR Tools\\Channel Tools Test.res" /* {{ 2 "LibraryInsertLine" "" */ // }} "" variable int_TotalSamples; variable int_RemainingSamples; variable str_ChPattern; sequence seq_SortedPositions; variable str_TipCounter; variable int_TotalColumns; variable int_Remainder; variable bln_TipLoaded; sequence arr_seq_Reservoirs[]; variable arr_VolumesMeasured[]; variable flt_MeasuredVolume; variable str_AspReturn; variable str_LiquidReturn; variable bln_LabwareFound; sequence seq_ReagentTarget; variable str_TipPickUpReturn; variable str_IncorrectChannels; variable bln_TipsRightType; sequence seq_IncorrectPositions; variable str_ChannelPattern; variable str_TipCounter1000; variable str_TipCounter300; variable loopCounter1; variable arr_DispenseHeights[]; variable arr_MixHeights[]; variable arr_AspirationHeights[]; variable str_ReturnValues; variable arr_AspReturns[]; variable arr_DispReturns[]; variable arr_LiquidLevelHeights[]; global device ML_STAR ("STAR Tools\\Channel Tools Test.lay", "ML_STAR", hslTrue); /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" STAR_TIP_TOOLS::_InitLibrary(); STAR_MPH96_TOOLS::_InitLibrary(); STAR_CHANNEL_TOOLS::_InitLibrary(); SPT::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{ 1 1 0 "8d794176_1ade_4ed5_aeb03eec85a389bf" "ML_STAR:{1C0C0CB0-7C87-11D3-AD83-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1C0C0CB0_7C87_11D3_AD83_0004ACB1DCB2("8d794176_1ade_4ed5_aeb03eec85a389bf"); // Initialize } // }} "" // {{ 2 1 0 "40509f62_f0a5_4021_a545baf5ffdf9308" "ML_STAR:{EA251BFB-66DE-48D1-83E5-6884B4DD8D11}" { variable arrRetValues[]; arrRetValues = ML_STAR._EA251BFB_66DE_48D1_83E5_6884B4DD8D11("40509f62_f0a5_4021_a545baf5ffdf9308"); // MoveAutoLoad } // }} "" // {{ 3 1 0 "d1156590_011d_4c18_b8b4e9671900badd" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 4 1 0 "18a77d48_0134_497b_81382d705e62877d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_MPH96_TOOLS::MOVE_MPH96ToBack(ML_STAR); // }} "" // {{ 5 1 0 "37b89d75_a2a9_42d9_9ebecbf1fa832448" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_TotalSamples = 71; // }} "" // {{{ 6 1 0 "b68dbec0_3636_4b51_92ef4891e66e0393" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::GetTipCounter(ML_STAR, ML_STAR.MlStar50ulTipWithFilter, str_TipCounter); // }} "" // {{{ 7 1 0 "146c6ac4_6310_4dc2_9718b398b649c4f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::GetTipCounter(ML_STAR, ML_STAR.MlStar300ulStandardVolumeTipWithFilter, str_TipCounter300); // }} "" // {{{ 8 1 0 "2b4c50c2_c4fa_4e59_9a9d1d1a9a104754" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::GetTipCounter(ML_STAR, ML_STAR.MlStar1000ulHighVolumeTip, str_TipCounter1000); // }} "" // {{ 9 1 0 "a3d8e366_a476_4540_bea59c2f92a6f7fb" "{B31F353C-5D80-11d4-A5EB-0050DA737D89}" ML_STAR.seq_SourceTubes.SetCount(int_TotalSamples); // }} "" // {{ 10 1 0 "64372387_3487_4cbf_a3d5397d5deca664" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 11 1 0 "2f012e6b_23ad_4df6_841201f19f80ee87" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Edit(ML_STAR, ML_STAR.MlStar50ulTipWithFilter, str_TipCounter, -1); // }} "" // {{{ 12 1 0 "5dc848ca_78ff_48a3_b8f8d9e9ec800647" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Edit(ML_STAR, ML_STAR.MlStar300ulStandardVolumeTipWithFilter, str_TipCounter300, -1); // }} "" // {{{ 13 1 0 "2134365b_86b3_4f2f_b3dccafca58f0c0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Edit(ML_STAR, ML_STAR.MlStar1000ulHighVolumeTip, str_TipCounter1000, -1); // }} "" // {{ 14 1 0 "d1c01525_97d6_4932_83008c9a99d2c9d2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 15 1 0 "aed8446b_06a8_4d97_a4da3ee67cdd2ed4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq_ReagentTarget, ML_STAR.Cos_96_DW_1mL_0001); // }} "" // {{ 16 1 0 "a50d2b28_d7c8_491d_a31e94d734122772" "{B31F353C-5D80-11d4-A5EB-0050DA737D89}" seq_ReagentTarget.SetCount(int_TotalSamples); // }} "" // {{ 17 1 0 "f2b963d3_2b82_4dd8_bf26308227a69a88" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while ( (seq_ReagentTarget.GetCurrentPosition() > 0) ) { AlignSequences(hslTrue, ML_STAR.rgt_cont_60ml_BC_A00_0001, 1, seq_ReagentTarget, 1); // }} "" // {{{ 18 1 0 "fbf90cb4_5b1b_42fe_9c766d935edf367e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::Optimized1mLTipPickup(ML_STAR, ML_STAR.MlStar50ulTipWithFilter, seq_ReagentTarget, str_TipCounter, str_ChPattern); // }} "" // {{ 19 1 0 "cfd761b0_c8dc_4dd1_ad08f946bfd2e6b0" "ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2("cfd761b0_c8dc_4dd1_ad08f946bfd2e6b0"); // TipPickUp } // }} "" // {{ 20 1 0 "1df4158f_8e1a_47e3_99eea44fd02820c0" "ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2("1df4158f_8e1a_47e3_99eea44fd02820c0"); // Aspirate } // }} "" // {{ 21 1 0 "fe2f044c_7545_45c1_a2fe350bcd00fe28" "ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2("fe2f044c_7545_45c1_a2fe350bcd00fe28"); // Dispense } // }} "" // {{ 22 1 0 "868a95f6_78e5_42e0_be77f4577936b08c" "ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2("868a95f6_78e5_42e0_be77f4577936b08c"); // TipEject } // }} "" // {{ 23 1 0 "f2b963d3_2b82_4dd8_bf26308227a69a88" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" if ( (seq_ReagentTarget.GetCurrentPosition() > 0 && seq_ReagentTarget.GetMax() == 0 ) ) { MECC::EndlessSequenceLoopWarning(GetFileName()); } } ML_STAR.rgt_cont_60ml_BC_A00_0001.SetMax(ML_STAR.rgt_cont_60ml_BC_A00_0001.GetTotal()); seq_ReagentTarget.SetMax(seq_ReagentTarget.GetTotal()); ML_STAR.rgt_cont_60ml_BC_A00_0001.SetCurrentPosition(1); seq_ReagentTarget.SetCurrentPosition(1); } // }} "" // {{ 24 1 0 "d1c01525_97d6_4932_83008c9a99d2c9d2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 25 1 0 "3bc75303_2934_4588_826f338e14f106c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 26 1 0 "df52d43e_5142_4501_8d2e5e2959835ffc" "ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2("df52d43e_5142_4501_8d2e5e2959835ffc"); // TipPickUp } // }} "" // {{{ 27 1 0 "3ccaab9e_28d0_4726_86be617fc0df820b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_LabwareFound = STAR_CHANNEL_TOOLS::MOVE_CheckPlateWithTwoChannels(ML_STAR, 8, ML_STAR.Cos_96_DW_1mL_0001, 71.0); // }} "" // {{ 28 1 0 "dac4660b_0352_46b3_8884224a0532d678" "ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2("dac4660b_0352_46b3_8884224a0532d678"); // TipEject } // }} "" // {{ 29 1 0 "3bc75303_2934_4588_826f338e14f106c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 30 1 0 "daa02f5e_1f4c_4066_8e6d22c866c2b265" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 31 1 0 "ed267a8f_3776_42aa_914951434dabf070" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arr_seq_Reservoirs.SetSize(0); // }} "" // {{ 32 1 0 "423095fb_a33c_4418_8f3d4fc9d104e958" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_seq_Reservoirs.AddAsLast(ML_STAR.rgt_cont_60ml_BC_A00_0001); // }} "" // {{ 33 1 0 "b067d7df_aa53_4855_af331e72a9c47747" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_seq_Reservoirs.AddAsLast(ML_STAR.rgt_cont_60ml_BC_A00_0002); // }} "" // {{ 34 1 0 "5855f8f4_5a9b_45c6_838921fa21fff94f" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_seq_Reservoirs.AddAsLast(ML_STAR.rgt_cont_60ml_BC_A00_0003); // }} "" // {{ 35 1 0 "31e31776_a047_4849_822e8e9486db2f9a" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_seq_Reservoirs.AddAsLast(ML_STAR.rgt_cont_60ml_BC_A00_0004); // }} "" // {{ 36 1 0 "36d32ca3_c1be_4cc6_91b4d9d063fdb6c9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" arr_seq_Reservoirs.AddAsLast(ML_STAR.rgt_cont_60ml_BC_A00_0005); // }} "" // {{{ 37 1 0 "14117c34_aba4_4ba8_b57b0fadc33ba991" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_TOOLS::LIQUID_LEVEL_MeasureLiquidMulti(ML_STAR, arr_seq_Reservoirs, ML_STAR.MlStar50ulTipWithFilter, ML_STAR.Waste, Translate(""), 1, 1, arr_VolumesMeasured); // }} "" // {{ 38 1 0 "daa02f5e_1f4c_4066_8e6d22c866c2b265" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 39 1 0 "4be6b4ea_0fce_4685_a20fbd6de9308f5c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 40 1 0 "dff22406_7668_4bee_8315921aca6f981d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_TOOLS::LIQUID_LEVEL_MeasureLiquidSingle(ML_STAR, ML_STAR.rgt_cont_60ml_BC_A00_0003, ML_STAR.MlStar50ulTipWithFilter, ML_STAR.MlStar50ulTipWithFilter, Translate(""), 0, 1, 1, flt_MeasuredVolume); // }} "" // {{ 41 1 0 "4be6b4ea_0fce_4685_a20fbd6de9308f5c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 42 1 0 "46e35cf4_7171_4193_b038813960a77884" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 43 1 0 "9df6b5c6_1c11_42b7_a100624dde444dba" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" int_RemainingSamples = int_TotalSamples; // }} "" // {{ 44 1 0 "27ecc53b_3e3e_4285_af0e163709a99cd9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (int_RemainingSamples > 0) { // }} "" // {{ 45 1 0 "4affc6d0_4242_4381_ac1caa2192798d16" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 46 1 0 "86d9e0fb_4a86_41d1_8a95e19347bf12f4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" int_RemainingSamples = STAR_CHANNEL_TOOLS::CHAN_ACCESS_Sort1Sequence(ML_STAR, ML_STAR.seq_SourceTubes, 0, 0, 1, 1, 0, seq_SortedPositions, str_ChPattern); // }} "" // {{ 47 1 0 "fa62aafe_f091_4bee_b267119c0151bb0a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 48 1 0 "6c8c70f3_c6d4_45a4_85925add217aed65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::Optimized1mLTipPickup2(ML_STAR, ML_STAR.MlStar50ulTipWithFilter, str_TipCounter, str_ChPattern); // }} "" // {{ 49 1 0 "59cf12b2_f4e6_43d4_87586cae3ef8249f" "ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2("59cf12b2_f4e6_43d4_87586cae3ef8249f"); // TipPickUp str_TipPickUpReturn = arrRetValues[2]; } // }} "" // {{{ 50 1 0 "b95de159_54de_4c76_a5330159af9825a2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_TipsRightType = STAR_TIP_TOOLS::TipTypeCheck1mL(ML_STAR, str_TipPickUpReturn, seq_IncorrectPositions, str_IncorrectChannels); // }} "" // {{ 51 1 0 "3647a1c9_63fc_4574_aad4135859687006" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (bln_TipsRightType == 0) { // }} "" // {{ 52 1 0 "9fe09d49_7585_4132_8cbda6a2df05913e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 53 1 0 "589cc40b_e114_4998_a440bfdc90879811" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { while (bln_TipsRightType == 0) { // }} "" // {{ 54 1 0 "7b87a680_c1a9_47d3_a6b523b28e7631e5" "{F07B0071-8EFC-11d4-A3BA-002035848439}" MECC::TraceComment(Translate("WRONG TIPS PICKED UP!")); // }} "" Trace("Incorrect Channel Pattern: ",str_IncorrectChannels); // {{ 56 1 0 "ff15d1a4_49e8_4050_846fabe9df394755" "ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2("ff15d1a4_49e8_4050_846fabe9df394755"); // TipEject } // }} "" // {{{ 57 1 0 "1991558f_c765_45ef_88404ac15f9acac6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::Optimized1mLTipPickup2(ML_STAR, ML_STAR.MlStar50ulTipWithFilter, str_TipCounter, str_IncorrectChannels); // }} "" // {{ 58 1 0 "7ae95306_ad9f_4443_b555f7d2a216961d" "ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2("7ae95306_ad9f_4443_b555f7d2a216961d"); // TipPickUp str_TipPickUpReturn = arrRetValues[2]; } // }} "" // {{{ 59 1 0 "3ec45b81_04fc_4ca9_9332c417d8fee36b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" bln_TipsRightType = STAR_TIP_TOOLS::TipTypeCheck1mL(ML_STAR, str_TipPickUpReturn, seq_IncorrectPositions, str_IncorrectChannels); // }} "" // {{ 60 1 0 "589cc40b_e114_4998_a440bfdc90879811" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 61 1 0 "3647a1c9_63fc_4574_aad4135859687006" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 62 1 0 "9ce8717c_67a6_448c_ad49d3f293ded57f" "ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2("9ce8717c_67a6_448c_ad49d3f293ded57f"); // Aspirate str_AspReturn = arrRetValues[2]; } // }} "" // {{ 63 1 0 "52940ca3_6835_4869_ab1f040d3235a4cd" "ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2("52940ca3_6835_4869_ab1f040d3235a4cd"); // Dispense } // }} "" // {{ 64 1 0 "f486c95d_301e_4c13_941b18e829935491" "ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2("f486c95d_301e_4c13_941b18e829935491"); // TipEject } // }} "" // {{ 65 1 0 "f8ee2f5f_81cb_484f_9feb88a7e04ea000" "ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}" { variable arrRetValues[]; arrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C("f8ee2f5f_81cb_484f_9feb88a7e04ea000"); // GetLastLiquidLevel str_LiquidReturn = arrRetValues[2]; } // }} "" // {{{ 66 1 0 "8dc9baee_744a_44b1_a7626d842a89a55c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_CHANNEL_TOOLS::LIQUID_LEVEL_ReturnVolumesFromLiquidLevel(ML_STAR, str_AspReturn, str_LiquidReturn, 1, arr_VolumesMeasured); // }} "" // {{ 67 1 0 "27ecc53b_3e3e_4285_af0e163709a99cd9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 68 1 0 "3f8d0a02_9fdb_4a23_9efed86daad77096" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" ML_STAR.Cos_96_DW_1mL_0001.SetCurrentPosition(1); // }} "" // {{ 69 1 0 "6ec66e4f_53df_49b7_8dfa4f574ae0e488" "{B31F353C-5D80-11d4-A5EB-0050DA737D89}" ML_STAR.Cos_96_DW_1mL_0001.SetCount(96); // }} "" // {{ 70 1 0 "46e35cf4_7171_4193_b038813960a77884" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 71 1 0 "14dec017_21e7_4748_b0cd514f7c33da9d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 72 1 0 "41da0f1f_8dd0_4230_8f4bb076c41b828b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 73 1 0 "dd607556_a1f3_4486_85fe52d89c2c1f89" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_MPH96_TOOLS::TOOL_PickUpNextMPH96Tips(ML_STAR, ML_STAR.MlStar50ulTipWithFilter, str_TipCounter); // }} "" // {{{ 74 1 0 "02633566_d8db_4144_acb605068227f087" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_MPH96_TOOLS::TOOL_GetTipPresence(ML_STAR, bln_TipLoaded); // }} "" // {{ 75 1 0 "e0a6e86c_36e2_42c9_9f024dc318920add" "ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}" { variable arrRetValues[]; arrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C("e0a6e86c_36e2_42c9_9f024dc318920add"); // Head96TipEject } // }} "" // {{ 76 1 0 "14dec017_21e7_4748_b0cd514f7c33da9d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 77 1 0 "1550f3dc_121b_4249_b90f3f03301eb293" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 78 1 0 "5f1de842_b118_4437_ad23110017c323f1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_TotalColumns = int_TotalSamples / 8; // }} "" // {{ 79 1 0 "93672d97_fb74_47f7_878cec7b37b2a9d8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Remainder = int_TotalSamples % 8; // }} "" // {{ 80 1 0 "9c202c5f_f85c_4ebe_9fc111ff830188bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (int_Remainder > 0) { // }} "" // {{ 81 1 0 "9945ebca_4c01_4c5f_9cd962f5c01d0f0c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_TotalColumns = int_TotalColumns + 1; // }} "" // {{ 82 1 0 "9c202c5f_f85c_4ebe_9fc111ff830188bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 83 1 0 "7343f29b_f380_4876_ac637b56d2f9c7ad" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 84 1 0 "0fafb01d_15bb_40cf_8883f7a324c3a600" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_MPH96_TOOLS::TIP_OFFSET_PickUpTips_Column(ML_STAR, ML_STAR.MlStar50ulTipWithFilter, ML_STAR.TipSupport_0001, int_TotalColumns, str_TipCounter, 1); // }} "" // {{ 85 1 0 "ee70abbf_f4ae_4258_919d03476301884c" "ML_STAR:{827392A0-B7E8-4472-9ED3-B45B71B5D27A}" { variable arrRetValues[]; arrRetValues = ML_STAR._827392A0_B7E8_4472_9ED3_B45B71B5D27A("ee70abbf_f4ae_4258_919d03476301884c"); // Head96Aspirate } // }} "" // {{ 86 1 0 "5f02e755_d6e9_4a9f_916b0d7a155c7e30" "ML_STAR:{A48573A5-62ED-4951-9EF9-03207EFE34FB}" { variable arrRetValues[]; arrRetValues = ML_STAR._A48573A5_62ED_4951_9EF9_03207EFE34FB("5f02e755_d6e9_4a9f_916b0d7a155c7e30"); // Head96Dispense } // }} "" // {{ 87 1 0 "c4fb845f_8234_4bed_bbbcd656e1c1dc63" "ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}" { variable arrRetValues[]; arrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C("c4fb845f_8234_4bed_bbbcd656e1c1dc63"); // Head96TipEject } // }} "" // {{ 88 1 0 "1550f3dc_121b_4249_b90f3f03301eb293" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 89 1 0 "cbb80027_c30b_452e_83ad6ad21971f7c0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 90 1 0 "9b5b0026_f214_4720_803790576f70c7ac" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::Optimized1mLTipPickup(ML_STAR, ML_STAR.MlStar1000ulHighVolumeTip, ML_STAR.rgt_cont_60ml_BC_A00_0001, str_TipCounter1000, str_ChannelPattern); // }} "" // {{ 91 1 0 "d7976072_8605_45e3_aab7c41c3e0a29d4" "ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2("d7976072_8605_45e3_aab7c41c3e0a29d4"); // TipPickUp } // }} "" // {{{ 92 1 0 "01fd763d_a747_4b74_b538a257d51448ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Write(ML_STAR, ML_STAR.MlStar1000ulHighVolumeTip, str_TipCounter1000); // }} "" // {{ 93 1 0 "92811ceb_ff49_4bf0_9ddb9bab22f0282e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 94 1 0 "60763f9e_3e19_4f23_9ee66e5040c83ab1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPT::PIP_FindLiquidLevel(ML_STAR, str_ChannelPattern, ML_STAR.rgt_cont_60ml_BC_A00_0001, 2, 1, arr_LiquidLevelHeights); // }} "" // {{ 95 1 0 "312f6ebd_d95a_4cec_af4bd0f8ae1c3729" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 96 1 0 "108ab00e_d5a9_4e9e_9c8fc0739fcc9a27" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPT::TOOL_OffsetArrayForChannels(ML_STAR, -2.0, arr_LiquidLevelHeights); // }} "" // {{{ 97 1 0 "12ac4a8a_a8cc_4f29_8e0f302e63350646" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPT::TOOL_BuildArrayForChannels(ML_STAR, 2.0, arr_MixHeights); // }} "" // {{ 98 1 0 "074db49e_8f6e_4743_88a9fd2f6f5e2a61" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 99 1 0 "949e47a7_ee4e_429a_847b500cea25f3c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPT::PIP_AspirateFromFixedHeight(ML_STAR, str_ChannelPattern, ML_STAR.rgt_cont_60ml_BC_A00_0001, arr_MixHeights, 3, 0, Translate("HighVolume_Water_DispenseSurface_Empty"), 1000.0, 0.0); // }} "" // {{ 100 1 0 "54b3f4f9_964f_4909_b8bf57532cb28bc2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 101 1 0 "cfc68296_5777_43d3_81985d1572c9aca4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPT::PIP_AspirateFromFixedHeight(ML_STAR, str_ChannelPattern, ML_STAR.rgt_cont_60ml_BC_A00_0001, arr_LiquidLevelHeights, 0, 1, Translate("HighVolume_Water_DispenseSurface_Empty"), 1000.0, 0.0); // }} "" // {{ 102 1 0 "4b4ecf47_b903_447e_871158d3fad8aecc" "ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2("4b4ecf47_b903_447e_871158d3fad8aecc"); // TipEject } // }} "" // {{ 103 1 0 "cbb80027_c30b_452e_83ad6ad21971f7c0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 104 1 0 "2509ba29_ff03_494b_95921cc066464e32" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 105 1 0 "7c379659_4905_4a0e_b6f194a62fbebe80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::Optimized1mLTipPickup(ML_STAR, ML_STAR.MlStar300ulStandardVolumeTipWithFilter, ML_STAR.Cos_96_DW_1mL_0001, str_TipCounter300, str_ChannelPattern); // }} "" // {{ 106 1 0 "18c674c5_1513_4b23_be78083e562056d9" "ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2("18c674c5_1513_4b23_be78083e562056d9"); // TipPickUp } // }} "" // {{{ 107 1 0 "00b521f6_ffba_4a06_b3c770b32f616f89" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Write(ML_STAR, ML_STAR.MlStar300ulStandardVolumeTipWithFilter, str_TipCounter300); // }} "" // {{{ 108 1 0 "3eabc28a_e7ec_4858_a0a297ddab352768" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPT::TOOL_BuildArrayForChannels(ML_STAR, 1.0, arr_AspirationHeights); // }} "" // {{{ 109 1 0 "c7a59079_b416_4937_9de400d4335cf012" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPT::TOOL_BuildArrayForChannels(ML_STAR, 5.0, arr_DispenseHeights); // }} "" // {{{ 110 1 0 "f404b7cd_414f_4a7b_9cd1190838067c24" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPT::TOOL_BuildArrayForChannels(ML_STAR, 1.0, arr_MixHeights); // }} "" // {{ 111 1 0 "2a5c262e_dd87_417a_a0c20d8021c7500b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < 11;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 112 1 0 "ee35f784_0515_42c2_847b08721eca644f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPT::PIP_AspirateFromFixedHeight(ML_STAR, str_ChannelPattern, ML_STAR.Cos_96_DW_1mL_0001, arr_AspirationHeights, 1, 0, Translate("StandardVolumeFilter_Water_DispenseSurface_Empty"), 100.0, 15.0); // }} "" // {{{ 113 1 0 "fc8fa201_9095_4aff_a59d518f922168aa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPT::PIP_ProgressSequenceFromChannelPattern(str_ChannelPattern, 0, ML_STAR.Cos_96_DW_1mL_0001); // }} "" // {{{ 114 1 0 "f3ed6388_4851_4d40_91d906434181d643" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPT::PIP_DispenseToFixedHeight(ML_STAR, str_ChannelPattern, ML_STAR.Cos_96_DW_1mL_0001, arr_DispenseHeights, 3, 1, 100.0, 5.0); // }} "" // {{{ 115 1 0 "4235dcff_f0fd_4b55_8d2d7755d65603ab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPT::PIP_MixFromFixedHeight(ML_STAR, str_ChannelPattern, ML_STAR.Cos_96_DW_1mL_0001, arr_MixHeights, 3, 0, Translate("StandardVolumeFilter_Water_DispenseSurface_Empty"), 100.0, 3); // }} "" // {{ 116 1 0 "2a5c262e_dd87_417a_a0c20d8021c7500b" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 117 1 0 "e329552a_f49b_4659_8e91d8e89ac2c5ca" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPT::PIP_AspirateFromFixedHeight(ML_STAR, str_ChannelPattern, ML_STAR.Cos_96_DW_1mL_0001, arr_AspirationHeights, 0, 0, Translate("StandardVolumeFilter_Water_DispenseSurface_Empty"), 100.0, 15.0); // }} "" // {{ 118 1 0 "3980b7da_2334_42e2_9393270c8b4a04ea" "ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2("3980b7da_2334_42e2_9393270c8b4a04ea"); // TipEject } // }} "" // {{ 119 1 0 "a5def3d1_b7eb_40b4_b936ba042dffb7fe" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" ML_STAR.Cos_96_DW_1mL_0001.SetCurrentPosition(1); // }} "" // {{ 120 1 0 "2509ba29_ff03_494b_95921cc066464e32" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 121 1 0 "e6c091aa_acb6_4d27_91e6a945ec0bd782" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 122 1 0 "215f446b_5ff9_42e7_b23c094760261b90" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" ML_STAR.SMP_CAR_32_12x100_A00_0001.SetCurrentPosition(1); // }} "" // {{ 123 1 0 "0bb3d326_3751_49a3_a70c859a05af259c" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" ML_STAR.SMP_CAR_32_12x100_A00_0002.SetCurrentPosition(1); // }} "" // {{ 124 1 0 "e23c772d_070d_487b_9c18afd7345e8d72" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" ML_STAR.SMP_CAR_32_12x100_A00_0003.SetCurrentPosition(1); // }} "" // {{{ 125 1 0 "2d70d37a_5de2_4077_813a217c95939499" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::Optimized1mLTipPickup(ML_STAR, ML_STAR.MlStar1000ulHighVolumeTip, ML_STAR.SMP_CAR_32_12x100_A00_0001, str_TipCounter1000, str_ChannelPattern); // }} "" // {{ 126 1 0 "0596545a_d535_4d4d_96bdce9ef0a176fc" "ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2("0596545a_d535_4d4d_96bdce9ef0a176fc"); // TipPickUp } // }} "" // {{{ 127 1 0 "78c796ae_a735_447c_b8c48b909156623a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Write(ML_STAR, ML_STAR.MlStar1000ulHighVolumeTip, str_TipCounter1000); // }} "" // {{ 128 1 0 "bc2ed584_1479_42e7_87bb74dcde1678fa" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 129 1 0 "1ec28257_92cd_4035_becce5087b1ce9f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" str_ReturnValues = SPT::PIP_PhaseAspiration(ML_STAR, str_ChannelPattern, 1, Translate("PipettingTools_PhaseAspiration_HighVolume_Serum_DispenseSurface_Empty_PoolingPlasma_TADM"), ML_STAR.SMP_CAR_32_12x100_A00_0001, ML_STAR.SMP_CAR_32_12x100_A00_0002, 1, 1000.0, 100.0, 2.0, 5000.0, 1); // }} "" // {{{ 130 1 0 "827de719_23c2_4920_a629096abb4eb49c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPT::PIP_PhaseAspirationParseReturnValue(str_ReturnValues, arr_AspReturns, arr_DispReturns); // }} "" // {{{ 131 1 0 "e4e61211_6bd8_4666_a892bec91638415d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray_2(Translate("Returns from first Phase Aspiration"), arr_AspReturns, arr_DispReturns); // }} "" // {{ 132 1 0 "86adf3d2_87e6_4f59_b4b25d58396c5228" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 133 1 0 "dc9e7447_da6f_41de_9eb08fc1160739ec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPT::PIP_PhaseAspirationRemainder(ML_STAR, str_ChannelPattern, Translate("PipettingTools_PhaseAspiration_HighVolume_Serum_DispenseSurface_Empty_LastStep"), ML_STAR.SMP_CAR_32_12x100_A00_0001, ML_STAR.SMP_CAR_32_12x100_A00_0002, 1, -0.5, 200.0, 2.0); // }} "" // {{ 134 1 0 "3f7d3ecf_27b6_4954_ab2b719792264dc2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 135 1 0 "5c81ccfc_af8e_471b_81addb41d73fc1a8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPT::PIP_PhaseAspirationSmallLayer(ML_STAR, str_ChannelPattern, Translate("PipettingTools_PhaseAspiration_HighVolume_BuffyCoat_DispenseSurface_Empty"), ML_STAR.SMP_CAR_32_12x100_A00_0001, ML_STAR.SMP_CAR_32_12x100_A00_0003, 100.0, 4.0, 3, 5.0); // }} "" // {{{ 136 1 0 "da260d95_318f_4092_bc0b2250d6da716c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPT::PIP_ProgressSequenceFromChannelPattern(str_ChannelPattern, 1, ML_STAR.SMP_CAR_32_12x100_A00_0001); // }} "" // {{{ 137 1 0 "ff7ef161_dec0_4915_8ddfcc8c93abf932" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPT::PIP_ProgressSequenceFromChannelPattern(str_ChannelPattern, 1, ML_STAR.SMP_CAR_32_12x100_A00_0002); // }} "" // {{{ 138 1 0 "9d0470ca_0ff6_49f2_81c34005c5e979fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SPT::PIP_ProgressSequenceFromChannelPattern(str_ChannelPattern, 1, ML_STAR.SMP_CAR_32_12x100_A00_0003); // }} "" // {{ 139 1 0 "3b77f8f7_8bc8_428d_a8305924852249c4" "ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2("3b77f8f7_8bc8_428d_a8305924852249c4"); // TipEject } // }} "" // {{ 140 1 0 "e6c091aa_acb6_4d27_91e6a945ec0bd782" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 141 1 0 "dee02af8_0110_4fff_9c8c7a1c485953b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 142 1 0 "eeac54a8_f773_48e1_acd0a6275b173efa" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 143 1 0 "d2c527e4_9547_4ae1_bc3957c98cf2c55e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_MPH96_TOOLS::TIP_OFFSET_CleanUpTips_Column(ML_STAR, ML_STAR.MlStar50ulTipWithFilter, ML_STAR.TipSupport_0001, str_TipCounter); // }} "" // {{{ 144 1 0 "a3713bea_db46_476e_9b6bdf5ba1e9318b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_MPH96_TOOLS::MOVE_MPH96ToBack(ML_STAR); // }} "" // {{ 145 1 0 "9926aeea_70c2_40aa_b52a5e0299b224c1" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 146 1 0 "4eec1a06_e75c_45e8_a1de3d3b42c1e826" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::DefragTipRacks1mL(ML_STAR, ML_STAR.MlStar50ulTipWithFilter); // }} "" // {{{ 147 1 0 "25945e42_b9d4_475f_bb0fd836d86b95a0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_TIP_TOOLS::TipCounter_Write(ML_STAR, ML_STAR.MlStar50ulTipWithFilter, str_TipCounter); // }} "" // {{ 148 1 0 "dee02af8_0110_4fff_9c8c7a1c485953b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2 "AutoExitBlock" "" STAR_TIP_TOOLS::_ExitLibrary(); STAR_MPH96_TOOLS::_ExitLibrary(); STAR_CHANNEL_TOOLS::_ExitLibrary(); SPT::_ExitLibrary(); // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=stefa$$valid=0$$time=2022-09-07 23:30$$checksum=7f926568$$length=084$$ ================================================ FILE: pyhamilton/library/STAR Tools/STAR Tools Demo.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 5 "OnAbort" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=Bare_B$$valid=0$$time=2022-04-20 16:54$$checksum=889c5702$$length=085$$ ================================================ FILE: pyhamilton/library/STAR Tools/TipSupport.x ================================================ xof 0303txt 0032 Frame Root { FrameTransformMatrix { 1.000000, 0.000000, 0.000000, 0.000000, 0.000000,-0.000000, 1.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000;; } Frame co_nim1 { FrameTransformMatrix { 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000004, 0.000008, 0.000000, 1.000000;; } Mesh { // co_nim1 mesh 2138; 53.038242;-31.410812;-11.086174;, 52.229343;-29.051315;-11.086166;, 53.038242;-22.410812;-11.086143;, 52.418442;-24.533112;-11.086151;, 52.229343;-20.051315;-11.086128;, 53.038242;-13.410812;-11.086105;, 52.418442;-15.533112;-11.086113;, 52.229343;-11.051315;-11.086098;, 53.038242;-4.410812;-11.086075;, 52.418442;-6.533134;-11.086082;, 52.229343;-2.051323;-11.086067;, 53.038242; 4.589188;-11.086044;, 52.418442; 2.466858;-11.086052;, 52.229343; 6.948669;-11.086037;, 53.038242;13.589188;-11.086014;, 52.418442;11.466888;-11.086021;, 52.229343;15.948685;-11.086006;, 53.038242;22.589188;-11.085976;, 52.418442;20.466888;-11.085983;, 52.229343;24.948685;-11.085968;, 53.038242;31.589188;-11.085945;, 52.418442;29.466888;-11.085953;, 52.463242;-36.860817;-11.086189;, 52.418442;-33.533112;-11.086182;, 57.463242;32.039188;-11.085945;, 57.463242;-31.860817;-11.086174;, 52.229343;33.948685;-11.085938;, 52.463242;37.039188;-11.085930;, 50.298538;-27.974510;-11.086159;, 50.298538;-25.847115;-11.086151;, 50.298538;-18.974510;-11.086128;, 50.298538;-16.847115;-11.086121;, 50.298538;-9.974510;-11.086098;, 50.298538;-7.847130;-11.086090;, 50.298538;-0.974480;-11.086060;, 50.298538; 1.152855;-11.086060;, 50.298538; 8.025509;-11.086029;, 50.298538;10.152889;-11.086021;, 50.298538;17.025490;-11.085999;, 50.298538;19.152885;-11.085991;, 50.298538;26.025490;-11.085968;, 50.298538;28.152885;-11.085960;, 48.727943;-27.974510;-11.086159;, 48.727943;-25.847115;-11.086151;, 48.727943;-18.974510;-11.086128;, 48.727943;-16.847115;-11.086121;, 48.727943;-9.974510;-11.086098;, 48.727943;-7.847130;-11.086090;, 48.727943;-0.974480;-11.086060;, 48.727943; 1.152855;-11.086060;, 48.727943; 8.025509;-11.086029;, 48.727943;10.152889;-11.086021;, 48.727943;17.025490;-11.085999;, 48.727943;19.152885;-11.085991;, 48.727943;26.025490;-11.085968;, 48.727943;28.152885;-11.085960;, 46.608040;-29.288513;-11.086166;, 46.797142;-24.770309;-11.086151;, 46.608040;-20.288513;-11.086136;, 46.797142;-15.770309;-11.086113;, 46.608040;-11.288513;-11.086098;, 46.797142;-6.770294;-11.086082;, 46.608040;-2.288483;-11.086067;, 46.797142; 2.229698;-11.086052;, 46.608040; 6.711510;-11.086037;, 46.797142;11.229687;-11.086021;, 46.608040;15.711487;-11.086006;, 46.797142;20.229691;-11.085991;, 46.608040;24.711487;-11.085968;, 46.797142;29.229691;-11.085953;, 45.988239;-31.410812;-11.086174;, 45.988239;-22.410812;-11.086143;, 45.988239;-13.410812;-11.086105;, 45.988239;-4.410812;-11.086075;, 45.988239; 4.589188;-11.086044;, 45.988239;13.589188;-11.086014;, 45.988239;22.589188;-11.085976;, 45.988239;31.589188;-11.085945;, 44.038242;-31.410812;-11.086174;, 43.229343;-29.051315;-11.086166;, 44.038242;-22.410812;-11.086143;, 43.418442;-24.533112;-11.086151;, 43.229343;-20.051315;-11.086128;, 44.038242;-13.410812;-11.086105;, 43.418442;-15.533112;-11.086113;, 43.229343;-11.051315;-11.086098;, 44.038242;-4.410812;-11.086075;, 43.418442;-6.533134;-11.086082;, 43.229343;-2.051323;-11.086067;, 44.038242; 4.589188;-11.086044;, 43.418442; 2.466858;-11.086052;, 43.229343; 6.948669;-11.086037;, 44.038242;13.589188;-11.086014;, 43.418442;11.466888;-11.086021;, 43.229343;15.948685;-11.086006;, 44.038242;22.589188;-11.085976;, 43.418442;20.466888;-11.085983;, 43.229343;24.948685;-11.085968;, 44.038242;31.589188;-11.085945;, 43.418442;29.466888;-11.085953;, 41.298538;-27.974510;-11.086159;, 41.298538;-25.847115;-11.086151;, 41.298538;-18.974510;-11.086128;, 41.298538;-16.847115;-11.086121;, 41.298538;-9.974510;-11.086098;, 41.298538;-7.847130;-11.086090;, 41.298538;-0.974480;-11.086060;, 41.298538; 1.152855;-11.086060;, 41.298538; 8.025509;-11.086029;, 41.298538;10.152889;-11.086021;, 41.298538;17.025490;-11.085999;, 41.298538;19.152885;-11.085991;, 41.298538;26.025490;-11.085968;, 41.298538;28.152885;-11.085960;, 39.727943;-27.974510;-11.086159;, 39.727943;-25.847115;-11.086151;, 39.727943;-18.974510;-11.086128;, 39.727943;-16.847115;-11.086121;, 39.727943;-9.974510;-11.086098;, 39.727943;-7.847130;-11.086090;, 39.727943;-0.974480;-11.086060;, 39.727943; 1.152855;-11.086060;, 39.727943; 8.025509;-11.086029;, 39.727943;10.152889;-11.086021;, 39.727943;17.025490;-11.085999;, 39.727943;19.152885;-11.085991;, 39.727943;26.025490;-11.085968;, 39.727943;28.152885;-11.085960;, 37.608040;-29.288513;-11.086166;, 37.797138;-24.770309;-11.086151;, 37.608040;-20.288513;-11.086136;, 37.797138;-15.770309;-11.086113;, 37.608040;-11.288513;-11.086098;, 37.797138;-6.770294;-11.086082;, 37.608040;-2.288483;-11.086067;, 37.797138; 2.229698;-11.086052;, 37.608040; 6.711510;-11.086037;, 37.797138;11.229687;-11.086021;, 37.608040;15.711487;-11.086006;, 37.797138;20.229691;-11.085991;, 37.608040;24.711487;-11.085968;, 37.797138;29.229691;-11.085953;, 36.988239;-31.410812;-11.086174;, 36.988239;-22.410812;-11.086143;, 36.988239;-13.410812;-11.086105;, 36.988239;-4.410812;-11.086075;, 36.988239; 4.589188;-11.086044;, 36.988239;13.589188;-11.086014;, 36.988239;22.589188;-11.085976;, 36.988239;31.589188;-11.085945;, 35.038242;-31.410812;-11.086174;, 34.229340;-29.051315;-11.086166;, 35.038242;-22.410812;-11.086143;, 34.418442;-24.533112;-11.086151;, 34.229340;-20.051315;-11.086128;, 35.038242;-13.410812;-11.086105;, 34.418442;-15.533112;-11.086113;, 34.229340;-11.051315;-11.086098;, 35.038242;-4.410812;-11.086075;, 34.418442;-6.533134;-11.086082;, 34.229340;-2.051323;-11.086067;, 35.038242; 4.589188;-11.086044;, 34.418442; 2.466866;-11.086052;, 34.229340; 6.948669;-11.086037;, 35.038242;13.589188;-11.086014;, 34.418442;11.466888;-11.086021;, 34.229340;15.948685;-11.086006;, 35.038242;22.589188;-11.085976;, 34.418442;20.466888;-11.085983;, 34.229340;24.948685;-11.085968;, 35.038242;31.589188;-11.085945;, 34.418442;29.466888;-11.085953;, 32.298538;-27.974510;-11.086159;, 32.298538;-25.847115;-11.086151;, 32.298538;-18.974510;-11.086128;, 32.298538;-16.847115;-11.086121;, 32.298538;-9.974510;-11.086098;, 32.298538;-7.847130;-11.086090;, 32.298538;-0.974480;-11.086060;, 32.298538; 1.152855;-11.086060;, 32.298538; 8.025509;-11.086029;, 32.298538;10.152889;-11.086021;, 32.298538;17.025490;-11.085999;, 32.298538;19.152885;-11.085991;, 32.298538;26.025490;-11.085968;, 32.298538;28.152885;-11.085960;, 30.727942;-27.974510;-11.086159;, 30.727942;-25.847115;-11.086151;, 30.727942;-18.974510;-11.086128;, 30.727942;-16.847115;-11.086121;, 30.727942;-9.974510;-11.086098;, 30.727942;-7.847130;-11.086090;, 30.727942;-0.974480;-11.086060;, 30.727942; 1.152855;-11.086060;, 30.727942; 8.025509;-11.086029;, 30.727942;10.152889;-11.086021;, 30.727942;17.025490;-11.085999;, 30.727942;19.152885;-11.085991;, 30.727942;26.025490;-11.085968;, 30.727942;28.152885;-11.085960;, 28.608040;-29.288513;-11.086166;, 28.797142;-24.770309;-11.086151;, 28.608040;-20.288513;-11.086136;, 28.797142;-15.770309;-11.086113;, 28.608040;-11.288513;-11.086098;, 28.797142;-6.770294;-11.086082;, 28.608040;-2.288490;-11.086067;, 29.315342; 1.833748;-11.086052;, 28.608040; 6.711510;-11.086037;, 29.315342;10.833786;-11.086021;, 28.608040;15.711487;-11.086006;, 29.315342;19.833786;-11.085991;, 28.608040;24.711487;-11.085968;, 29.315342;28.833786;-11.085960;, 28.337940; 3.059021;-11.086052;, 28.337940;12.058987;-11.086014;, 28.337940;21.058990;-11.085983;, 28.337940;30.058990;-11.085953;, 27.988239;-31.410812;-11.086174;, 27.988239;-22.410812;-11.086143;, 27.988239;-13.410812;-11.086105;, 27.988239;-4.410812;-11.086075;, 27.988239; 4.589188;-11.086044;, 27.988239;13.589188;-11.086014;, 27.988239;22.589188;-11.085976;, 27.988239;31.589188;-11.085945;, 26.038242;-31.410812;-11.086174;, 25.688541;-29.880615;-11.086166;, 26.038242;-22.410812;-11.086143;, 25.418442;-24.533112;-11.086151;, 25.688541;-20.880615;-11.086136;, 26.038242;-13.410812;-11.086105;, 25.418442;-15.533112;-11.086113;, 25.688541;-11.880615;-11.086105;, 26.038242;-4.410812;-11.086075;, 25.418442;-6.533134;-11.086082;, 25.688541;-2.880646;-11.086067;, 26.038242; 4.589188;-11.086044;, 25.418442; 2.466866;-11.086052;, 25.229343; 6.948669;-11.086037;, 26.038242;13.589188;-11.086014;, 25.418442;11.466888;-11.086021;, 25.229343;15.948685;-11.086006;, 26.038242;22.589188;-11.085976;, 25.418442;20.466888;-11.085983;, 25.229343;24.948685;-11.085968;, 26.038242;31.589188;-11.085945;, 25.418442;29.466888;-11.085953;, 24.711140;-28.655411;-11.086159;, 24.711140;-19.655411;-11.086128;, 24.711140;-10.655411;-11.086098;, 24.711140;-1.655373;-11.086067;, 23.298542;-27.974510;-11.086159;, 23.298542;-25.847115;-11.086151;, 23.298542;-18.974510;-11.086128;, 23.298542;-16.847115;-11.086121;, 23.298542;-9.974510;-11.086098;, 23.298542;-7.847130;-11.086090;, 23.298542;-0.974480;-11.086060;, 23.298542; 1.152855;-11.086060;, 23.298542; 8.025509;-11.086029;, 23.298542;10.152889;-11.086021;, 23.298542;17.025490;-11.085999;, 23.298542;19.152885;-11.085991;, 23.298542;26.025490;-11.085968;, 23.298542;28.152885;-11.085960;, 21.727940;-27.974510;-11.086159;, 21.727940;-25.847115;-11.086151;, 21.727940;-18.974510;-11.086128;, 21.727940;-16.847115;-11.086121;, 21.727940;-9.974510;-11.086098;, 21.727940;-7.847130;-11.086090;, 21.727940;-0.974480;-11.086060;, 21.727940; 1.152855;-11.086060;, 21.727940; 8.025509;-11.086029;, 21.727940;10.152889;-11.086021;, 21.727940;17.025490;-11.085999;, 21.727940;19.152885;-11.085991;, 21.727940;26.025490;-11.085968;, 21.727940;28.152885;-11.085960;, 19.608040;-29.288513;-11.086166;, 19.797138;-24.770309;-11.086151;, 19.608040;-20.288513;-11.086136;, 19.797138;-15.770309;-11.086113;, 19.608040;-11.288513;-11.086098;, 19.797138;-6.770294;-11.086082;, 19.608040;-2.288490;-11.086067;, 20.315342; 1.833748;-11.086052;, 19.608040; 6.711510;-11.086037;, 20.315342;10.833786;-11.086021;, 19.608040;15.711487;-11.086006;, 20.315342;19.833786;-11.085991;, 19.608040;24.711487;-11.085968;, 20.315342;28.833786;-11.085960;, 19.337940; 3.059021;-11.086052;, 19.337940;12.058987;-11.086014;, 19.337940;21.058990;-11.085983;, 19.337940;30.058990;-11.085953;, 18.988239;-31.410812;-11.086174;, 18.988239;-22.410812;-11.086143;, 18.988239;-13.410812;-11.086105;, 18.988239;-4.410812;-11.086075;, 18.988239; 4.589188;-11.086044;, 18.988239;13.589188;-11.086014;, 18.988239;22.589188;-11.085976;, 18.988239;31.589188;-11.085945;, 17.038242;-31.410812;-11.086174;, 16.688541;-29.880615;-11.086166;, 17.038242;-22.410812;-11.086143;, 16.418442;-24.533112;-11.086151;, 16.688541;-20.880615;-11.086136;, 17.038242;-13.410812;-11.086105;, 16.418442;-15.533112;-11.086113;, 16.688541;-11.880615;-11.086105;, 17.038242;-4.410812;-11.086075;, 16.418442;-6.533119;-11.086082;, 16.688541;-2.880646;-11.086067;, 17.038242; 4.589188;-11.086044;, 16.418442; 2.466866;-11.086052;, 16.688541; 6.119347;-11.086037;, 17.038242;13.589188;-11.086014;, 16.418442;11.466888;-11.086021;, 16.688541;15.119389;-11.086006;, 17.038242;22.589188;-11.085976;, 16.418442;20.466888;-11.085983;, 16.229340;24.948685;-11.085968;, 17.038242;31.589188;-11.085945;, 16.418442;29.466888;-11.085953;, 15.711140;-28.655411;-11.086159;, 15.711140;-19.655411;-11.086128;, 15.711140;-10.655411;-11.086098;, 15.711140;-1.655373;-11.086067;, 15.711140; 7.344616;-11.086037;, 15.711140;16.344589;-11.085999;, 14.298542;-27.974510;-11.086159;, 14.298542;-25.847115;-11.086151;, 14.298542;-18.974510;-11.086128;, 14.298542;-16.847115;-11.086121;, 14.298542;-9.974510;-11.086098;, 14.298542;-7.847130;-11.086090;, 14.298542;-0.974480;-11.086060;, 14.298542; 1.152855;-11.086060;, 14.298542; 8.025509;-11.086029;, 14.298542;10.152889;-11.086021;, 14.298542;17.025490;-11.085999;, 14.298542;19.152885;-11.085991;, 14.298542;26.025490;-11.085968;, 14.298542;28.152885;-11.085960;, 12.727940;-27.974510;-11.086159;, 12.727940;-25.847115;-11.086151;, 12.727940;-18.974510;-11.086128;, 12.727940;-16.847115;-11.086121;, 12.727940;-9.974510;-11.086098;, 12.727940;-7.847130;-11.086090;, 12.727940;-0.974480;-11.086060;, 12.727940; 1.152855;-11.086060;, 12.727940; 8.025509;-11.086029;, 12.727940;10.152889;-11.086021;, 12.727940;17.025490;-11.085999;, 12.727940;19.152885;-11.085991;, 12.727940;26.025490;-11.085968;, 12.727940;28.152885;-11.085960;, 10.608040;-29.288513;-11.086166;, 11.315342;-25.166214;-11.086151;, 10.608040;-20.288513;-11.086136;, 11.315342;-16.166214;-11.086121;, 10.608040;-11.288513;-11.086098;, 11.315342;-7.166245;-11.086082;, 10.608040;-2.288490;-11.086067;, 11.315342; 1.833748;-11.086052;, 10.608040; 6.711498;-11.086037;, 11.315342;10.833786;-11.086021;, 10.608040;15.711487;-11.086006;, 11.315342;19.833786;-11.085991;, 10.608040;24.711487;-11.085968;, 11.315342;28.833786;-11.085960;, 10.337940;-23.941010;-11.086143;, 10.337940;-14.941010;-11.086113;, 10.337940;-5.940971;-11.086082;, 10.337940; 3.059021;-11.086052;, 10.337940;12.058987;-11.086014;, 10.337940;21.058990;-11.085983;, 10.337940;30.058990;-11.085953;, 9.988239;-31.410812;-11.086174;, 9.988239;-22.410812;-11.086143;, 9.988239;-13.410812;-11.086105;, 9.988239;-4.410812;-11.086075;, 9.988239; 4.589188;-11.086044;, 9.988239;13.589188;-11.086014;, 9.988239;22.589188;-11.085976;, 9.988239;31.589188;-11.085945;, 8.038231;-31.410812;-11.086174;, 7.688519;-29.880615;-11.086166;, 8.038231;-22.410812;-11.086143;, 7.418430;-24.533112;-11.086151;, 7.688519;-20.880615;-11.086136;, 8.038231;-13.410812;-11.086105;, 7.418430;-15.533112;-11.086113;, 7.688519;-11.880615;-11.086105;, 8.038231;-4.410812;-11.086075;, 7.418430;-6.533134;-11.086082;, 7.688519;-2.880646;-11.086067;, 8.038231; 4.589188;-11.086044;, 7.418430; 2.466866;-11.086052;, 7.688519; 6.119347;-11.086037;, 8.038231;13.589188;-11.086014;, 7.418430;11.466888;-11.086021;, 7.688519;15.119389;-11.086006;, 8.038231;22.589188;-11.085976;, 7.418430;20.466888;-11.085983;, 7.688519;24.119385;-11.085976;, 8.038231;31.589188;-11.085945;, 7.418430;29.466888;-11.085953;, 6.711102;-28.655411;-11.086159;, 6.711102;-19.655411;-11.086128;, 6.711102;-10.655411;-11.086098;, 6.711102;-1.655373;-11.086067;, 6.711102; 7.344616;-11.086037;, 6.711102;16.344589;-11.085999;, 6.711102;25.344589;-11.085968;, 5.298500;-27.974510;-11.086159;, 5.298500;-25.847115;-11.086151;, 5.298500;-18.974510;-11.086128;, 5.298500;-16.847115;-11.086121;, 5.298500;-9.974510;-11.086098;, 5.298500;-7.847130;-11.086090;, 5.298500;-0.974480;-11.086060;, 5.298500; 1.152855;-11.086060;, 5.298500; 8.025509;-11.086029;, 5.298500;10.152889;-11.086021;, 5.298500;17.025490;-11.085999;, 5.298500;19.152885;-11.085991;, 5.298500;26.025490;-11.085968;, 5.298500;28.152885;-11.085960;, 3.727970;-27.974510;-11.086159;, 3.727970;-25.847115;-11.086151;, 3.727970;-18.974510;-11.086128;, 3.727970;-16.847115;-11.086121;, 3.727970;-9.974510;-11.086098;, 3.727970;-7.847130;-11.086090;, 3.727970;-0.974480;-11.086060;, 3.727970; 1.152855;-11.086060;, 3.727970; 8.025509;-11.086029;, 3.727970;10.152889;-11.086021;, 3.727970;17.025490;-11.085999;, 3.727970;19.152885;-11.085991;, 3.727970;26.025490;-11.085968;, 3.727970;28.152885;-11.085960;, 1.608040;-29.288513;-11.086166;, 2.315372;-25.166214;-11.086151;, 1.608040;-20.288513;-11.086136;, 2.315372;-16.166214;-11.086121;, 1.608040;-11.288513;-11.086098;, 2.315372;-7.166245;-11.086082;, 1.608040;-2.288490;-11.086067;, 2.315372; 1.833748;-11.086052;, 1.608040; 6.711510;-11.086037;, 2.315372;10.833786;-11.086021;, 1.608040;15.711487;-11.086006;, 2.315372;19.833786;-11.085991;, 1.608040;24.711487;-11.085968;, 2.315372;28.833786;-11.085960;, 1.337952;-23.941010;-11.086143;, 1.337952;-14.941010;-11.086113;, 1.337952;-5.940971;-11.086082;, 1.337952; 3.059021;-11.086052;, 1.337952;12.058987;-11.086014;, 1.337952;21.058990;-11.085983;, 1.337952;30.058990;-11.085953;, 0.988239;-31.410812;-11.086174;, 0.988239;-22.410812;-11.086143;, 0.988239;-13.410812;-11.086105;, 0.988239;-4.410812;-11.086075;, 0.988239; 4.589188;-11.086044;, 0.988239;13.589188;-11.086014;, 0.988239;22.589188;-11.085976;, 0.988239;31.589188;-11.085945;, -0.961758;-31.410812;-11.086174;, -1.311470;-29.880615;-11.086166;, -0.961758;-22.410812;-11.086143;, -1.581566;-24.533112;-11.086151;, -1.311470;-20.880615;-11.086136;, -0.961758;-13.410812;-11.086105;, -1.581566;-15.533112;-11.086113;, -1.311470;-11.880615;-11.086105;, -0.961758;-4.410812;-11.086075;, -1.581566;-6.533134;-11.086082;, -1.311470;-2.880646;-11.086067;, -0.961758; 4.589188;-11.086044;, -1.581566; 2.466866;-11.086052;, -1.311470; 6.119347;-11.086037;, -0.961758;13.589188;-11.086014;, -1.581566;11.466888;-11.086021;, -1.311470;15.119389;-11.086006;, -0.961758;22.589188;-11.085976;, -1.581566;20.466888;-11.085983;, -1.311470;24.119385;-11.085976;, -0.961758;31.589188;-11.085945;, -1.581566;29.466888;-11.085953;, -2.288887;-28.655411;-11.086159;, -2.288887;-19.655411;-11.086128;, -2.288887;-10.655411;-11.086098;, -2.288887;-1.655373;-11.086067;, -2.288887; 7.344616;-11.086037;, -2.288887;16.344589;-11.085999;, -2.288887;25.344589;-11.085968;, -3.701485;-27.974510;-11.086159;, -3.701485;-25.847115;-11.086151;, -3.701485;-18.974510;-11.086128;, -3.701485;-16.847115;-11.086121;, -3.701485;-9.974510;-11.086098;, -3.701485;-7.847130;-11.086090;, -3.701485;-0.974480;-11.086060;, -3.701485; 1.152855;-11.086060;, -3.701485; 8.025509;-11.086029;, -3.701485;10.152889;-11.086021;, -3.701485;17.025490;-11.085999;, -3.701485;19.152885;-11.085991;, -3.701485;26.025490;-11.085968;, -3.701485;28.152885;-11.085960;, -5.272026;-27.974510;-11.086159;, -5.272026;-25.847115;-11.086151;, -5.272026;-18.974510;-11.086128;, -5.272026;-16.847115;-11.086121;, -5.272026;-9.974510;-11.086098;, -5.272026;-7.847130;-11.086090;, -5.272026;-0.974480;-11.086060;, -5.272026; 1.152855;-11.086060;, -5.272026; 8.025509;-11.086029;, -5.272026;10.152889;-11.086021;, -5.272026;17.025490;-11.085999;, -5.272026;19.152885;-11.085991;, -5.272026;26.025490;-11.085968;, -5.272026;28.152885;-11.085960;, -7.391945;-29.288513;-11.086166;, -6.684624;-25.166214;-11.086151;, -7.391945;-20.288513;-11.086136;, -6.684624;-16.166214;-11.086121;, -7.391945;-11.288513;-11.086098;, -6.684624;-7.166245;-11.086082;, -7.391945;-2.288490;-11.086067;, -6.684624; 1.833748;-11.086052;, -7.391945; 6.711510;-11.086037;, -6.684624;10.833786;-11.086021;, -7.391945;15.711487;-11.086006;, -6.684624;19.833786;-11.085991;, -7.391945;24.711487;-11.085968;, -6.684624;28.833786;-11.085960;, -7.662041;-23.941010;-11.086143;, -7.662041;-14.941010;-11.086113;, -7.662041;-5.940971;-11.086082;, -7.662041; 3.059021;-11.086052;, -7.662041;12.058987;-11.086014;, -7.662041;21.058990;-11.085983;, -7.662041;30.058990;-11.085953;, -8.011742;-31.410812;-11.086174;, -8.011742;-22.410812;-11.086143;, -8.011742;-13.410812;-11.086105;, -8.011742;-4.410812;-11.086075;, -8.011742; 4.589188;-11.086044;, -8.011742;13.589188;-11.086014;, -8.011742;22.589188;-11.085976;, -8.011742;31.589188;-11.085945;, -9.961754;-31.410812;-11.086174;, -10.311455;-29.880615;-11.086166;, -9.961754;-22.410812;-11.086143;, -10.581566;-24.533112;-11.086151;, -10.311455;-20.880615;-11.086136;, -9.961754;-13.410812;-11.086105;, -10.581566;-15.533112;-11.086113;, -10.311455;-11.880615;-11.086105;, -9.961754;-4.410812;-11.086075;, -10.581566;-6.533119;-11.086082;, -10.311455;-2.880646;-11.086067;, -9.961754; 4.589188;-11.086044;, -10.581566; 2.466866;-11.086052;, -10.311455; 6.119347;-11.086037;, -9.961754;13.589188;-11.086014;, -10.581566;11.466888;-11.086021;, -10.311455;15.119389;-11.086006;, -9.961754;22.589188;-11.085976;, -10.581566;20.466888;-11.085983;, -10.311455;24.119385;-11.085976;, -9.961754;31.589188;-11.085945;, -10.581566;29.466888;-11.085953;, -11.288857;-28.655411;-11.086159;, -11.288857;-19.655411;-11.086128;, -11.288857;-10.655411;-11.086098;, -11.288857;-1.655373;-11.086067;, -11.288857; 7.344616;-11.086037;, -11.288857;16.344589;-11.085999;, -11.288857;25.344589;-11.085968;, -12.701454;-27.974510;-11.086159;, -12.701454;-25.847115;-11.086151;, -12.701454;-18.974510;-11.086128;, -12.701454;-16.847115;-11.086121;, -12.701454;-9.974510;-11.086098;, -12.701454;-7.847130;-11.086090;, -12.701454;-0.974480;-11.086060;, -12.701454; 1.152855;-11.086060;, -12.701454; 8.025509;-11.086029;, -12.701454;10.152889;-11.086021;, -12.701454;17.025490;-11.085999;, -12.701454;19.152885;-11.085991;, -12.701454;26.025490;-11.085968;, -12.701454;28.152885;-11.085960;, -14.272057;-27.974510;-11.086159;, -14.272057;-25.847115;-11.086151;, -14.272057;-18.974510;-11.086128;, -14.272057;-16.847115;-11.086121;, -14.272057;-9.974510;-11.086098;, -14.272057;-7.847130;-11.086090;, -14.272057;-0.974480;-11.086060;, -14.272057; 1.152855;-11.086060;, -14.272057; 8.025509;-11.086029;, -14.272057;10.152889;-11.086021;, -14.272057;17.025490;-11.085999;, -14.272057;19.152885;-11.085991;, -14.272057;26.025490;-11.085968;, -14.272057;28.152885;-11.085960;, -16.391960;-29.288513;-11.086166;, -15.684654;-25.166214;-11.086151;, -16.391960;-20.288513;-11.086136;, -15.684654;-16.166214;-11.086121;, -16.391960;-11.288513;-11.086098;, -15.684654;-7.166245;-11.086082;, -16.391960;-2.288490;-11.086067;, -15.684654; 1.833748;-11.086052;, -16.391960; 6.711498;-11.086037;, -15.684654;10.833786;-11.086021;, -16.391960;15.711487;-11.086006;, -15.684654;19.833786;-11.085991;, -16.391960;24.711487;-11.085968;, -15.684654;28.833786;-11.085960;, -16.662056;-23.941010;-11.086143;, -16.662056;-14.941010;-11.086113;, -16.662056;-5.940971;-11.086082;, -16.662056; 3.059021;-11.086052;, -16.662056;12.058987;-11.086014;, -16.662056;21.058990;-11.085983;, -16.662056;30.058990;-11.085953;, -17.011757;-31.410812;-11.086174;, -17.011757;-22.410812;-11.086143;, -17.011757;-13.410812;-11.086105;, -17.011757;-4.410812;-11.086075;, -17.011757; 4.589188;-11.086044;, -17.011757;13.589188;-11.086014;, -17.011757;22.589188;-11.085976;, -17.011757;31.589188;-11.085945;, -18.961754;-31.410812;-11.086174;, -19.311455;-29.880615;-11.086166;, -18.961754;-22.410812;-11.086143;, -19.581551;-24.533112;-11.086151;, -19.311455;-20.880615;-11.086136;, -18.961754;-13.410812;-11.086105;, -19.581551;-15.533112;-11.086113;, -19.311455;-11.880615;-11.086105;, -18.961754;-4.410812;-11.086075;, -19.581551;-6.533134;-11.086082;, -19.311455;-2.880646;-11.086067;, -18.961754; 4.589188;-11.086044;, -19.581551; 2.466866;-11.086052;, -19.770653; 6.948669;-11.086037;, -18.961754;13.589188;-11.086014;, -19.581551;11.466888;-11.086021;, -19.770653;15.948685;-11.086006;, -18.961754;22.589188;-11.085976;, -19.581551;20.466888;-11.085983;, -19.770653;24.948685;-11.085968;, -18.961754;31.589188;-11.085945;, -19.581551;29.466888;-11.085953;, -20.288857;-28.655411;-11.086159;, -20.288857;-19.655411;-11.086128;, -20.288857;-10.655411;-11.086098;, -20.288857;-1.655373;-11.086067;, -21.701454;-27.974510;-11.086159;, -21.701454;-25.847115;-11.086151;, -21.701454;-18.974510;-11.086128;, -21.701454;-16.847115;-11.086121;, -21.701454;-9.974510;-11.086098;, -21.701454;-7.847130;-11.086090;, -21.701454;-0.974480;-11.086060;, -21.701454; 1.152855;-11.086060;, -21.701454; 8.025509;-11.086029;, -21.701454;10.152889;-11.086021;, -21.701454;17.025490;-11.085999;, -21.701454;19.152885;-11.085991;, -21.701454;26.025490;-11.085968;, -21.701454;28.152885;-11.085960;, -23.272057;-27.974510;-11.086159;, -23.272057;-25.847115;-11.086151;, -23.272057;-18.974510;-11.086128;, -23.272057;-16.847115;-11.086121;, -23.272057;-9.974510;-11.086098;, -23.272057;-7.847130;-11.086090;, -23.272057;-0.974480;-11.086060;, -23.272057; 1.152855;-11.086060;, -23.272057; 8.025509;-11.086029;, -23.272057;10.152889;-11.086021;, -23.272057;17.025490;-11.085999;, -23.272057;19.152885;-11.085991;, -23.272057;26.025490;-11.085968;, -23.272057;28.152885;-11.085960;, -25.391960;-29.288513;-11.086166;, -25.202858;-24.770309;-11.086151;, -25.391960;-20.288513;-11.086136;, -25.202858;-15.770309;-11.086113;, -25.391960;-11.288513;-11.086098;, -25.202858;-6.770294;-11.086082;, -25.391960;-2.288490;-11.086067;, -24.684654; 1.833748;-11.086052;, -25.391960; 6.711510;-11.086037;, -24.684654;10.833786;-11.086021;, -25.391960;15.711487;-11.086006;, -24.684654;19.833786;-11.085991;, -25.391960;24.711487;-11.085968;, -24.684654;28.833786;-11.085960;, -25.662056; 3.059021;-11.086052;, -25.662056;12.058987;-11.086014;, -25.662056;21.058990;-11.085983;, -25.662056;30.058990;-11.085953;, -26.011757;-31.410812;-11.086174;, -26.011757;-22.410812;-11.086143;, -26.011757;-13.410812;-11.086105;, -26.011757;-4.410812;-11.086075;, -26.011757; 4.589188;-11.086044;, -26.011757;13.589188;-11.086014;, -26.011757;22.589188;-11.085976;, -26.011757;31.589188;-11.085945;, -27.961754;-31.410812;-11.086174;, -28.311455;-29.880615;-11.086166;, -27.961754;-22.410812;-11.086143;, -28.581551;-24.533112;-11.086151;, -28.311455;-20.880615;-11.086136;, -27.961754;-13.410812;-11.086105;, -28.581551;-15.533112;-11.086113;, -28.311455;-11.880615;-11.086105;, -27.961754;-4.410812;-11.086075;, -28.581551;-6.533134;-11.086082;, -28.311455;-2.880646;-11.086067;, -27.961754; 4.589188;-11.086044;, -28.581551; 2.466866;-11.086052;, -28.770653; 6.948669;-11.086037;, -27.961754;13.589188;-11.086014;, -28.581551;11.466888;-11.086021;, -28.770653;15.948685;-11.086006;, -27.961754;22.589188;-11.085976;, -28.581551;20.466888;-11.085983;, -28.770653;24.948685;-11.085968;, -27.961754;31.589188;-11.085945;, -28.581551;29.466888;-11.085953;, -29.288857;-28.655411;-11.086159;, -29.288857;-19.655411;-11.086128;, -29.288857;-10.655411;-11.086098;, -29.288857;-1.655373;-11.086067;, -30.701454;-27.974510;-11.086159;, -30.701454;-25.847115;-11.086151;, -30.701454;-18.974510;-11.086128;, -30.701454;-16.847115;-11.086121;, -30.701454;-9.974510;-11.086098;, -30.701454;-7.847130;-11.086090;, -30.701454;-0.974480;-11.086060;, -30.701454; 1.152855;-11.086060;, -30.701454; 8.025509;-11.086029;, -30.701454;10.152889;-11.086021;, -30.701454;17.025490;-11.085999;, -30.701454;19.152885;-11.085991;, -30.701454;26.025490;-11.085968;, -30.701454;28.152885;-11.085960;, -32.272057;-27.974510;-11.086159;, -32.272057;-25.847115;-11.086151;, -32.272057;-18.974510;-11.086128;, -32.272057;-16.847115;-11.086121;, -32.272057;-9.974510;-11.086098;, -32.272057;-7.847130;-11.086090;, -32.272057;-0.974480;-11.086060;, -32.272057; 1.152855;-11.086060;, -32.272057; 8.025509;-11.086029;, -32.272057;10.152889;-11.086021;, -32.272057;17.025490;-11.085999;, -32.272057;19.152885;-11.085991;, -32.272057;26.025490;-11.085968;, -32.272057;28.152885;-11.085960;, -34.391960;-29.288513;-11.086166;, -34.202858;-24.770309;-11.086151;, -34.391960;-20.288513;-11.086136;, -34.202858;-15.770309;-11.086113;, -34.391960;-11.288513;-11.086098;, -34.202858;-6.770294;-11.086082;, -34.391960;-2.288490;-11.086067;, -34.202858; 2.229698;-11.086052;, -34.391960; 6.711510;-11.086037;, -34.202858;11.229687;-11.086021;, -34.391960;15.711487;-11.086006;, -34.202858;20.229691;-11.085991;, -34.391960;24.711487;-11.085968;, -34.202858;29.229691;-11.085953;, -35.011757;-31.410812;-11.086174;, -35.011757;-22.410812;-11.086143;, -35.011757;-13.410812;-11.086105;, -35.011757;-4.410812;-11.086075;, -35.011757; 4.589188;-11.086044;, -35.011757;13.589188;-11.086014;, -35.011757;22.589188;-11.085976;, -35.011757;31.589188;-11.085945;, -36.961754;-31.410812;-11.086174;, -37.770653;-29.051315;-11.086166;, -36.961754;-22.410812;-11.086143;, -37.581551;-24.533112;-11.086151;, -37.770653;-20.051315;-11.086128;, -36.961754;-13.410812;-11.086105;, -37.581551;-15.533112;-11.086113;, -37.770653;-11.051315;-11.086098;, -36.961754;-4.410812;-11.086075;, -37.581551;-6.533134;-11.086082;, -37.770653;-2.051323;-11.086067;, -36.961754; 4.589188;-11.086044;, -37.581551; 2.466858;-11.086052;, -37.770653; 6.948669;-11.086037;, -36.961754;13.589188;-11.086014;, -37.581551;11.466888;-11.086021;, -37.770653;15.948685;-11.086006;, -36.961754;22.589188;-11.085976;, -37.581551;20.466888;-11.085983;, -37.770653;24.948685;-11.085968;, -36.961754;31.589188;-11.085945;, -37.581551;29.466888;-11.085953;, -39.701454;-27.974510;-11.086159;, -39.701454;-25.847115;-11.086151;, -39.701454;-18.974510;-11.086128;, -39.701454;-16.847115;-11.086121;, -39.701454;-9.974510;-11.086098;, -39.701454;-7.847130;-11.086090;, -39.701454;-0.974480;-11.086060;, -39.701454; 1.152855;-11.086060;, -39.701454; 8.025509;-11.086029;, -39.701454;10.152889;-11.086021;, -39.701454;17.025490;-11.085999;, -39.701454;19.152885;-11.085991;, -39.701454;26.025490;-11.085968;, -39.701454;28.152885;-11.085960;, -41.272057;-27.974510;-11.086159;, -41.272057;-25.847115;-11.086151;, -41.272057;-18.974510;-11.086128;, -41.272057;-16.847115;-11.086121;, -41.272057;-9.974510;-11.086098;, -41.272057;-7.847130;-11.086090;, -41.272057;-0.974480;-11.086060;, -41.272057; 1.152855;-11.086060;, -41.272057; 8.025509;-11.086029;, -41.272057;10.152889;-11.086021;, -41.272057;17.025490;-11.085999;, -41.272057;19.152885;-11.085991;, -41.272057;26.025490;-11.085968;, -41.272057;28.152885;-11.085960;, -43.391960;-29.288513;-11.086166;, -43.202858;-24.770309;-11.086151;, -43.391960;-20.288513;-11.086136;, -43.202858;-15.770309;-11.086113;, -43.391960;-11.288513;-11.086098;, -43.202858;-6.770294;-11.086082;, -43.391960;-2.288483;-11.086067;, -43.202858; 2.229698;-11.086052;, -43.391960; 6.711510;-11.086037;, -43.202858;11.229687;-11.086021;, -43.391960;15.711487;-11.086006;, -43.202858;20.229691;-11.085991;, -43.391960;24.711487;-11.085968;, -43.202858;29.229691;-11.085953;, -44.011757;-31.410812;-11.086174;, -44.011757;-22.410812;-11.086143;, -44.011757;-13.410812;-11.086105;, -44.011757;-4.410812;-11.086075;, -44.011757; 4.589188;-11.086044;, -44.011757;13.589188;-11.086014;, -44.011757;22.589188;-11.085976;, -44.011757;31.589188;-11.085945;, -45.961754;-31.410812;-11.086174;, -46.770653;-29.051315;-11.086166;, -45.961754;-22.410812;-11.086143;, -46.581551;-24.533112;-11.086151;, -46.770653;-20.051315;-11.086128;, -45.961754;-13.410812;-11.086105;, -46.581551;-15.533112;-11.086113;, -46.770653;-11.051315;-11.086098;, -45.961754;-4.410812;-11.086075;, -46.581551;-6.533134;-11.086082;, -46.770653;-2.051323;-11.086067;, -45.961754; 4.589188;-11.086044;, -46.581551; 2.466858;-11.086052;, -46.770653; 6.948669;-11.086037;, -45.961754;13.589188;-11.086014;, -46.581551;11.466888;-11.086021;, -46.770653;15.948685;-11.086006;, -45.961754;22.589188;-11.085976;, -46.581551;20.466888;-11.085983;, -46.770653;24.948685;-11.085968;, -45.961754;31.589188;-11.085945;, -46.581551;29.466888;-11.085953;, -48.701454;-27.974510;-11.086159;, -48.701454;-25.847115;-11.086151;, -48.701454;-18.974510;-11.086128;, -48.701454;-16.847115;-11.086121;, -48.701454;-9.974510;-11.086098;, -48.701454;-7.847130;-11.086090;, -48.701454;-0.974480;-11.086060;, -48.701454; 1.152855;-11.086060;, -48.701454; 8.025509;-11.086029;, -48.701454;10.152889;-11.086021;, -48.701454;17.025490;-11.085999;, -48.701454;19.152885;-11.085991;, -48.701454;26.025490;-11.085968;, -48.701454;28.152885;-11.085960;, -50.272057;-27.974510;-11.086159;, -50.272057;-25.847115;-11.086151;, -50.272057;-18.974510;-11.086128;, -50.272057;-16.847115;-11.086121;, -50.272057;-9.974510;-11.086098;, -50.272057;-7.847130;-11.086090;, -50.272057;-0.974480;-11.086060;, -50.272057; 1.152855;-11.086060;, -50.272057; 8.025509;-11.086029;, -50.272057;10.152889;-11.086021;, -50.272057;17.025490;-11.085999;, -50.272057;19.152885;-11.085991;, -50.272057;26.025490;-11.085968;, -50.272057;28.152885;-11.085960;, -52.391960;-29.288513;-11.086166;, -52.202858;-24.770309;-11.086151;, -52.391960;-20.288513;-11.086136;, -52.202858;-15.770309;-11.086113;, -52.391960;-11.288513;-11.086098;, -52.202858;-6.770294;-11.086082;, -52.391960;-2.288483;-11.086067;, -52.202858; 2.229698;-11.086052;, -52.391960; 6.711510;-11.086037;, -52.202858;11.229687;-11.086021;, -52.391960;15.711487;-11.086006;, -52.202858;20.229691;-11.085991;, -52.391960;24.711487;-11.085968;, -52.202858;29.229691;-11.085953;, -52.436760;-36.860817;-11.086189;, -52.202858;-33.770309;-11.086182;, -50.272057;-34.847115;-11.086182;, -48.701454;-34.847115;-11.086182;, -47.288857;-34.166214;-11.086182;, -46.311455;-32.941017;-11.086182;, -43.202858;-33.770309;-11.086182;, -41.272057;-34.847115;-11.086182;, -39.701454;-34.847115;-11.086182;, -37.581551;-33.533112;-11.086182;, -34.662056;-32.941017;-11.086182;, -33.684654;-34.166214;-11.086182;, -32.272057;-34.847115;-11.086182;, -30.701454;-34.847115;-11.086182;, -28.581551;-33.533112;-11.086182;, -25.202858;-33.770309;-11.086182;, -23.272057;-34.847115;-11.086182;, -21.701454;-34.847115;-11.086182;, -19.581551;-33.533112;-11.086182;, -16.202858;-33.770309;-11.086182;, -14.272057;-34.847115;-11.086182;, -12.701454;-34.847115;-11.086182;, -10.581566;-33.533112;-11.086182;, -7.202843;-33.770309;-11.086182;, -5.272026;-34.847115;-11.086182;, -3.701485;-34.847115;-11.086182;, -1.581566;-33.533112;-11.086182;, 1.797142;-33.770309;-11.086182;, 3.727970;-34.847115;-11.086182;, 5.298500;-34.847115;-11.086182;, 7.418430;-33.533112;-11.086182;, 10.797138;-33.770309;-11.086182;, 12.727940;-34.847115;-11.086182;, 14.298542;-34.847115;-11.086182;, 16.418442;-33.533112;-11.086182;, 19.797138;-33.770309;-11.086182;, 21.727940;-34.847115;-11.086182;, 23.298542;-34.847115;-11.086182;, 25.418442;-33.533112;-11.086182;, 28.797142;-33.770309;-11.086182;, 30.727942;-34.847115;-11.086182;, 32.298538;-34.847115;-11.086182;, 34.418442;-33.533112;-11.086182;, 37.797138;-33.770309;-11.086182;, 39.727943;-34.847115;-11.086182;, 41.298538;-34.847115;-11.086182;, 43.418442;-33.533112;-11.086182;, 46.797142;-33.770309;-11.086182;, 48.727943;-34.847115;-11.086182;, 50.298538;-34.847115;-11.086182;, 50.298538;35.025490;-11.085938;, 48.727943;35.025490;-11.085938;, 47.315342;34.344589;-11.085938;, 46.337940;33.119389;-11.085938;, 43.229343;33.948685;-11.085938;, 41.298538;35.025490;-11.085938;, 39.727943;35.025490;-11.085938;, 37.608040;33.711487;-11.085938;, 34.688541;33.119389;-11.085938;, 33.711140;34.344589;-11.085938;, 32.298538;35.025490;-11.085938;, 30.727942;35.025490;-11.085938;, 28.608040;33.711487;-11.085938;, 25.229343;33.948685;-11.085938;, 23.298542;35.025490;-11.085938;, 21.727940;35.025490;-11.085938;, 19.608040;33.711487;-11.085938;, 16.229340;33.948685;-11.085938;, 14.298542;35.025490;-11.085938;, 12.727940;35.025490;-11.085938;, 10.608040;33.711487;-11.085938;, 7.229332;33.948685;-11.085938;, 5.298500;35.025490;-11.085938;, 3.727970;35.025490;-11.085938;, 1.608040;33.711487;-11.085938;, -1.770653;33.948685;-11.085938;, -3.701485;35.025490;-11.085938;, -5.272026;35.025490;-11.085938;, -7.391945;33.711487;-11.085938;, -10.311455;33.119389;-11.085938;, -11.288857;34.344589;-11.085938;, -12.701454;35.025490;-11.085938;, -14.272057;35.025490;-11.085938;, -16.391960;33.711487;-11.085938;, -19.770653;33.948685;-11.085938;, -21.701454;35.025490;-11.085938;, -23.272057;35.025490;-11.085938;, -25.391960;33.711487;-11.085938;, -28.770653;33.948685;-11.085938;, -30.701454;35.025490;-11.085938;, -32.272057;35.025490;-11.085938;, -34.391960;33.711487;-11.085938;, -37.770653;33.948685;-11.085938;, -39.701454;35.025490;-11.085938;, -41.272057;35.025490;-11.085938;, -43.391960;33.711487;-11.085938;, -46.770653;33.948685;-11.085938;, -48.701454;35.025490;-11.085938;, -50.272057;35.025490;-11.085938;, -52.391960;33.711487;-11.085938;, -52.436760;37.039188;-11.085930;, -53.011757;-31.410812;-11.086174;, -53.011757;-22.410812;-11.086143;, -53.011757;-13.410812;-11.086105;, -53.011757;-4.410812;-11.086075;, -53.011757; 4.589188;-11.086044;, -53.011757;13.589188;-11.086014;, -53.011757;22.589188;-11.085976;, -53.011757;31.589188;-11.085945;, -57.436760;-31.860817;-11.086174;, -57.436760;32.039188;-11.085945;, 53.038242;31.589111;10.914055;, 52.229343;29.229607;10.914047;, 53.038242;22.589111;10.914017;, 52.418442;24.711411;10.914032;, 52.229343;20.229610;10.914017;, 53.038242;13.589111;10.913986;, 52.418442;15.711411;10.913994;, 52.229343;11.229607;10.913979;, 53.038242; 4.589111;10.913956;, 52.418442; 6.711430;10.913963;, 52.229343; 2.229622;10.913948;, 53.038242;-4.410889;10.913925;, 52.418442;-2.288559;10.913933;, 52.229343;-6.770370;10.913918;, 53.038242;-13.410889;10.913895;, 52.418442;-11.288589;10.913902;, 52.229343;-15.770393;10.913879;, 53.038242;-22.410896;10.913864;, 52.418442;-20.288589;10.913864;, 52.229343;-24.770393;10.913849;, 53.038242;-31.410896;10.913826;, 52.418442;-29.288589;10.913834;, 50.298538;28.152809;10.914040;, 50.298538;26.025406;10.914032;, 50.298538;19.152809;10.914009;, 50.298538;17.025410;10.914001;, 50.298538;10.152809;10.913979;, 50.298538; 8.025429;10.913971;, 50.298538; 1.152779;10.913940;, 50.298538;-0.974564;10.913940;, 50.298538;-7.847214;10.913910;, 50.298538;-9.974594;10.913902;, 50.298538;-16.847191;10.913879;, 50.298538;-18.974586;10.913872;, 50.298538;-25.847191;10.913849;, 50.298538;-27.974586;10.913841;, 48.727943;28.152809;10.914040;, 48.727943;26.025406;10.914032;, 48.727943;19.152809;10.914009;, 48.727943;17.025410;10.914001;, 48.727943;10.152809;10.913979;, 48.727943; 8.025429;10.913971;, 48.727943; 1.152779;10.913940;, 48.727943;-0.974564;10.913940;, 48.727943;-7.847214;10.913910;, 48.727943;-9.974594;10.913902;, 48.727943;-16.847191;10.913879;, 48.727943;-18.974586;10.913872;, 48.727943;-25.847191;10.913849;, 48.727943;-27.974586;10.913841;, 46.608040;29.466812;10.914047;, 46.797142;24.948608;10.914032;, 46.608040;20.466808;10.914017;, 46.797142;15.948608;10.914001;, 46.608040;11.466808;10.913979;, 46.797142; 6.948589;10.913963;, 46.608040; 2.466782;10.913948;, 46.797142;-2.051399;10.913933;, 46.608040;-6.533211;10.913918;, 46.797142;-11.051392;10.913902;, 46.608040;-15.533195;10.913887;, 46.797142;-20.051392;10.913864;, 46.608040;-24.533195;10.913849;, 46.797142;-29.051392;10.913834;, 45.988239;31.589111;10.914055;, 45.988239;22.589111;10.914017;, 45.988239;13.589111;10.913986;, 45.988239; 4.589111;10.913956;, 45.988239;-4.410889;10.913925;, 45.988239;-13.410889;10.913895;, 45.988239;-22.410896;10.913864;, 45.988239;-31.410896;10.913826;, 44.038242;31.589111;10.914055;, 43.229343;29.229607;10.914047;, 44.038242;22.589111;10.914017;, 43.418442;24.711411;10.914032;, 43.229343;20.229610;10.914017;, 44.038242;13.589111;10.913986;, 43.418442;15.711411;10.913994;, 43.229343;11.229607;10.913979;, 44.038242; 4.589111;10.913956;, 43.418442; 6.711430;10.913963;, 43.229343; 2.229622;10.913948;, 44.038242;-4.410889;10.913925;, 43.418442;-2.288559;10.913933;, 43.229343;-6.770370;10.913918;, 44.038242;-13.410889;10.913895;, 43.418442;-11.288589;10.913902;, 43.229343;-15.770393;10.913879;, 44.038242;-22.410896;10.913864;, 43.418442;-20.288589;10.913864;, 43.229343;-24.770393;10.913849;, 44.038242;-31.410896;10.913826;, 43.418442;-29.288589;10.913834;, 41.298538;28.152809;10.914040;, 41.298538;26.025406;10.914032;, 41.298538;19.152809;10.914009;, 41.298538;17.025410;10.914001;, 41.298538;10.152809;10.913979;, 41.298538; 8.025429;10.913971;, 41.298538; 1.152779;10.913940;, 41.298538;-0.974564;10.913940;, 41.298538;-7.847214;10.913910;, 41.298538;-9.974594;10.913902;, 41.298538;-16.847191;10.913879;, 41.298538;-18.974586;10.913872;, 41.298538;-25.847191;10.913849;, 41.298538;-27.974586;10.913841;, 39.727943;28.152809;10.914040;, 39.727943;26.025406;10.914032;, 39.727943;19.152809;10.914009;, 39.727943;17.025410;10.914001;, 39.727943;10.152809;10.913979;, 39.727943; 8.025429;10.913971;, 39.727943; 1.152779;10.913940;, 39.727943;-0.974564;10.913940;, 39.727943;-7.847214;10.913910;, 39.727943;-9.974594;10.913902;, 39.727943;-16.847191;10.913879;, 39.727943;-18.974586;10.913872;, 39.727943;-25.847191;10.913849;, 39.727943;-27.974586;10.913841;, 37.608040;29.466812;10.914047;, 37.797138;24.948608;10.914032;, 37.608040;20.466808;10.914017;, 37.797138;15.948608;10.914001;, 37.608040;11.466808;10.913979;, 37.797138; 6.948589;10.913963;, 37.608040; 2.466782;10.913948;, 37.797138;-2.051399;10.913933;, 37.608040;-6.533211;10.913918;, 37.797138;-11.051392;10.913902;, 37.608040;-15.533195;10.913887;, 37.797138;-20.051392;10.913864;, 37.608040;-24.533195;10.913849;, 37.797138;-29.051392;10.913834;, 36.988239;31.589111;10.914055;, 36.988239;22.589111;10.914017;, 36.988239;13.589111;10.913986;, 36.988239; 4.589111;10.913956;, 36.988239;-4.410889;10.913925;, 36.988239;-13.410889;10.913895;, 36.988239;-22.410896;10.913864;, 36.988239;-31.410896;10.913826;, 35.038242;31.589111;10.914055;, 34.229340;29.229607;10.914047;, 35.038242;22.589111;10.914017;, 34.418442;24.711411;10.914032;, 34.688541;21.058910;10.914017;, 35.038242;13.589111;10.913986;, 34.418442;15.711411;10.913994;, 34.229340;11.229607;10.913979;, 35.038242; 4.589111;10.913956;, 34.418442; 6.711430;10.913963;, 34.229340; 2.229622;10.913948;, 35.038242;-4.410889;10.913925;, 34.418442;-2.288574;10.913933;, 34.229340;-6.770370;10.913918;, 35.038242;-13.410889;10.913895;, 34.418442;-11.288589;10.913902;, 34.229340;-15.770393;10.913879;, 35.038242;-22.410896;10.913864;, 34.418442;-20.288589;10.913864;, 34.229340;-24.770393;10.913849;, 35.038242;-31.410896;10.913826;, 34.418442;-29.288589;10.913834;, 33.711140;19.833710;10.914009;, 32.298538;28.152809;10.914040;, 32.298538;26.025406;10.914032;, 32.298538;19.152809;10.914009;, 32.298538;17.025410;10.914001;, 32.298538;10.152809;10.913979;, 32.298538; 8.025429;10.913971;, 32.298538; 1.152779;10.913940;, 32.298538;-0.974564;10.913940;, 32.298538;-7.847214;10.913910;, 32.298538;-9.974594;10.913902;, 32.298538;-16.847191;10.913879;, 32.298538;-18.974586;10.913872;, 32.298538;-25.847191;10.913849;, 32.298538;-27.974586;10.913841;, 30.727942;28.152809;10.914040;, 30.727942;26.025406;10.914032;, 30.727942;19.152809;10.914009;, 30.727942;17.025410;10.914001;, 30.727942;10.152809;10.913979;, 30.727942; 8.025429;10.913971;, 30.727942; 1.152779;10.913940;, 30.727942;-0.974564;10.913940;, 30.727942;-7.847214;10.913910;, 30.727942;-9.974594;10.913902;, 30.727942;-16.847191;10.913879;, 30.727942;-18.974586;10.913872;, 30.727942;-25.847191;10.913849;, 30.727942;-27.974586;10.913841;, 28.608040;29.466812;10.914047;, 29.315342;25.344509;10.914032;, 28.608040;20.466808;10.914017;, 29.315342;16.344505;10.914001;, 28.608040;11.466808;10.913979;, 28.797142; 6.948589;10.913963;, 28.608040; 2.466789;10.913948;, 29.315342;-1.655449;10.913933;, 28.608040;-6.533211;10.913918;, 29.315342;-10.655495;10.913902;, 28.608040;-15.533195;10.913887;, 29.315342;-19.655495;10.913872;, 28.608040;-24.533195;10.913849;, 29.315342;-28.655495;10.913834;, 28.337940;24.119308;10.914024;, 28.337940;15.119308;10.913994;, 28.337940;-2.880722;10.913925;, 28.337940;-11.880692;10.913895;, 28.337940;-20.880692;10.913864;, 28.337940;-29.880692;10.913834;, 27.988239;31.589111;10.914055;, 27.988239;22.589111;10.914017;, 27.988239;13.589111;10.913986;, 27.988239; 4.589111;10.913956;, 27.988239;-4.410889;10.913925;, 27.988239;-13.410889;10.913895;, 27.988239;-22.410896;10.913864;, 27.988239;-31.410896;10.913826;, 26.038242;31.589111;10.914055;, 25.688541;30.058907;10.914047;, 26.038242;22.589111;10.914017;, 25.418442;24.711411;10.914032;, 25.688541;21.058910;10.914017;, 26.038242;13.589111;10.913986;, 25.418442;15.711411;10.913994;, 25.688541;12.058907;10.913986;, 26.038242; 4.589111;10.913956;, 25.418442; 6.711430;10.913963;, 25.688541; 3.058937;10.913956;, 26.038242;-4.410889;10.913925;, 25.418442;-2.288574;10.913933;, 25.229343;-6.770370;10.913918;, 26.038242;-13.410889;10.913895;, 25.418442;-11.288589;10.913902;, 25.688541;-14.941093;10.913887;, 26.038242;-22.410896;10.913864;, 25.418442;-20.288589;10.913864;, 25.688541;-23.941093;10.913857;, 26.038242;-31.410896;10.913826;, 25.418442;-29.288589;10.913834;, 24.711140;28.833710;10.914047;, 24.711140;19.833710;10.914009;, 24.711140;10.833710;10.913979;, 24.711140; 1.833672;10.913948;, 24.711140;-16.166290;10.913879;, 24.711140;-25.166290;10.913849;, 23.298542;28.152809;10.914040;, 23.298542;26.025406;10.914032;, 23.298542;19.152809;10.914009;, 23.298542;17.025410;10.914001;, 23.298542;10.152809;10.913979;, 23.298542; 8.025429;10.913971;, 23.298542; 1.152779;10.913940;, 23.298542;-0.974564;10.913940;, 23.298542;-7.847214;10.913910;, 23.298542;-9.974594;10.913902;, 23.298542;-16.847191;10.913879;, 23.298542;-18.974586;10.913872;, 23.298542;-25.847191;10.913849;, 23.298542;-27.974586;10.913841;, 21.727940;28.152809;10.914040;, 21.727940;26.025406;10.914032;, 21.727940;19.152809;10.914009;, 21.727940;17.025410;10.914001;, 21.727940;10.152809;10.913979;, 21.727940; 8.025429;10.913971;, 21.727940; 1.152779;10.913940;, 21.727940;-0.974564;10.913940;, 21.727940;-7.847214;10.913910;, 21.727940;-9.974594;10.913902;, 21.727940;-16.847191;10.913879;, 21.727940;-18.974586;10.913872;, 21.727940;-25.847191;10.913849;, 21.727940;-27.974586;10.913841;, 19.608040;29.466812;10.914047;, 20.315342;25.344509;10.914032;, 19.608040;20.466808;10.914017;, 20.315342;16.344505;10.914001;, 19.608040;11.466808;10.913979;, 19.797138; 6.948589;10.913963;, 19.608040; 2.466789;10.913948;, 20.315342;-1.655449;10.913933;, 19.608040;-6.533211;10.913918;, 20.315342;-10.655495;10.913902;, 19.608040;-15.533195;10.913887;, 20.315342;-19.655495;10.913872;, 19.608040;-24.533195;10.913849;, 20.315342;-28.655495;10.913834;, 19.337940;24.119308;10.914024;, 19.337940;15.119308;10.913994;, 19.337940;-2.880722;10.913925;, 19.337940;-11.880692;10.913895;, 19.337940;-20.880692;10.913864;, 19.337940;-29.880692;10.913834;, 18.988239;31.589111;10.914055;, 18.988239;22.589111;10.914017;, 18.988239;13.589111;10.913986;, 18.988239; 4.589111;10.913956;, 18.988239;-4.410889;10.913925;, 18.988239;-13.410889;10.913895;, 18.988239;-22.410896;10.913864;, 18.988239;-31.410896;10.913826;, 17.038242;31.589111;10.914055;, 16.688541;30.058907;10.914047;, 17.038242;22.589111;10.914017;, 16.418442;24.711411;10.914032;, 16.688541;21.058910;10.914017;, 17.038242;13.589111;10.913986;, 16.418442;15.711411;10.913994;, 16.688541;12.058907;10.913986;, 17.038242; 4.589111;10.913956;, 16.418442; 6.711418;10.913963;, 16.688541; 3.058937;10.913956;, 17.038242;-4.410889;10.913925;, 16.418442;-2.288574;10.913933;, 16.688541;-5.941048;10.913918;, 17.038242;-13.410889;10.913895;, 16.418442;-11.288589;10.913902;, 16.688541;-14.941093;10.913887;, 17.038242;-22.410896;10.913864;, 16.418442;-20.288589;10.913864;, 16.688541;-23.941093;10.913857;, 17.038242;-31.410896;10.913826;, 16.418442;-29.288589;10.913834;, 15.711140;28.833710;10.914047;, 15.711140;19.833710;10.914009;, 15.711140;10.833710;10.913979;, 15.711140; 1.833672;10.913948;, 15.711140;-7.166321;10.913910;, 15.711140;-16.166290;10.913879;, 15.711140;-25.166290;10.913849;, 14.298542;28.152809;10.914040;, 14.298542;26.025406;10.914032;, 14.298542;19.152809;10.914009;, 14.298542;17.025410;10.914001;, 14.298542;10.152809;10.913979;, 14.298542; 8.025429;10.913971;, 14.298542; 1.152779;10.913940;, 14.298542;-0.974564;10.913940;, 14.298542;-7.847214;10.913910;, 14.298542;-9.974594;10.913902;, 14.298542;-16.847191;10.913879;, 14.298542;-18.974586;10.913872;, 14.298542;-25.847191;10.913849;, 14.298542;-27.974586;10.913841;, 12.727940;28.152809;10.914040;, 12.727940;26.025406;10.914032;, 12.727940;19.152809;10.914009;, 12.727940;17.025410;10.914001;, 12.727940;10.152809;10.913979;, 12.727940; 8.025429;10.913971;, 12.727940; 1.152779;10.913940;, 12.727940;-0.974564;10.913940;, 12.727940;-7.847214;10.913910;, 12.727940;-9.974594;10.913902;, 12.727940;-16.847191;10.913879;, 12.727940;-18.974586;10.913872;, 12.727940;-25.847191;10.913849;, 12.727940;-27.974586;10.913841;, 10.608040;29.466812;10.914047;, 11.315342;25.344509;10.914032;, 10.608040;20.466808;10.914017;, 11.315342;16.344505;10.914001;, 10.608040;11.466808;10.913979;, 11.315342; 7.344540;10.913971;, 10.608040; 2.466789;10.913948;, 11.315342;-1.655449;10.913933;, 10.608040;-6.533203;10.913918;, 11.315342;-10.655495;10.913902;, 10.608040;-15.533195;10.913887;, 11.315342;-19.655495;10.913872;, 10.608040;-24.533195;10.913849;, 11.315342;-28.655495;10.913834;, 10.337940;24.119308;10.914024;, 10.337940;15.119308;10.913994;, 10.337940; 6.119270;10.913963;, 10.337940;-2.880722;10.913925;, 10.337940;-11.880692;10.913895;, 10.337940;-20.880692;10.913864;, 10.337940;-29.880692;10.913834;, 9.988239;31.589111;10.914055;, 9.988239;22.589111;10.914017;, 9.988239;13.589111;10.913986;, 9.988239; 4.589111;10.913956;, 9.988239;-4.410889;10.913925;, 9.988239;-13.410889;10.913895;, 9.988239;-22.410896;10.913864;, 9.988239;-31.410896;10.913826;, 8.038231;31.589111;10.914055;, 7.688519;30.058907;10.914047;, 8.038231;22.589111;10.914017;, 7.418423;24.711411;10.914032;, 7.688519;21.058910;10.914017;, 8.038231;13.589111;10.913986;, 7.418423;15.711411;10.913994;, 7.688519;12.058907;10.913986;, 8.038231; 4.589111;10.913956;, 7.418430; 6.711430;10.913963;, 7.688519; 3.058937;10.913956;, 8.038231;-4.410889;10.913925;, 7.418430;-2.288574;10.913933;, 7.688519;-5.941048;10.913918;, 8.038231;-13.410889;10.913895;, 7.418430;-11.288589;10.913902;, 7.688519;-14.941093;10.913887;, 8.038231;-22.410896;10.913864;, 7.418430;-20.288589;10.913864;, 7.688519;-23.941093;10.913857;, 8.038231;-31.410896;10.913826;, 7.418430;-29.288589;10.913834;, 6.711102;28.833710;10.914047;, 6.711102;19.833710;10.914009;, 6.711102;10.833710;10.913979;, 6.711102; 1.833672;10.913948;, 6.711102;-7.166321;10.913910;, 6.711102;-16.166290;10.913879;, 6.711102;-25.166290;10.913849;, 5.298500;28.152809;10.914040;, 5.298500;26.025406;10.914032;, 5.298500;19.152809;10.914009;, 5.298500;17.025410;10.914001;, 5.298500;10.152809;10.913979;, 5.298500; 8.025429;10.913971;, 5.298500; 1.152779;10.913940;, 5.298500;-0.974564;10.913940;, 5.298500;-7.847214;10.913910;, 5.298500;-9.974594;10.913902;, 5.298500;-16.847191;10.913879;, 5.298500;-18.974586;10.913872;, 5.298500;-25.847191;10.913849;, 5.298500;-27.974586;10.913841;, 3.727970;28.152809;10.914040;, 3.727970;26.025406;10.914032;, 3.727970;19.152809;10.914009;, 3.727970;17.025410;10.914001;, 3.727970;10.152809;10.913979;, 3.727970; 8.025429;10.913971;, 3.727970; 1.152779;10.913940;, 3.727970;-0.974564;10.913940;, 3.727970;-7.847214;10.913910;, 3.727970;-9.974594;10.913902;, 3.727970;-16.847191;10.913879;, 3.727970;-18.974586;10.913872;, 3.727970;-25.847191;10.913849;, 3.727970;-27.974586;10.913841;, 1.608040;29.466812;10.914047;, 2.315372;25.344509;10.914032;, 1.608040;20.466808;10.914017;, 2.315372;16.344505;10.914001;, 1.608040;11.466808;10.913979;, 2.315372; 7.344540;10.913971;, 1.608040; 2.466789;10.913948;, 2.315372;-1.655449;10.913933;, 1.608040;-6.533211;10.913918;, 2.315372;-10.655495;10.913902;, 1.608051;-15.533195;10.913887;, 2.315372;-19.655495;10.913872;, 1.608051;-24.533195;10.913849;, 2.315372;-28.655495;10.913834;, 1.337952;24.119308;10.914024;, 1.337952;15.119308;10.913994;, 1.337952; 6.119270;10.913963;, 1.337952;-2.880722;10.913925;, 1.337952;-11.880692;10.913895;, 1.337952;-20.880692;10.913864;, 1.337952;-29.880692;10.913834;, 0.988239;31.589111;10.914055;, 0.988239;22.589111;10.914017;, 0.988239;13.589111;10.913986;, 0.988239; 4.589111;10.913956;, 0.988239;-4.410889;10.913925;, 0.988239;-13.410889;10.913895;, 0.988239;-22.410896;10.913864;, 0.988239;-31.410896;10.913826;, -0.961758;31.589111;10.914055;, -1.311470;30.058907;10.914047;, -0.961758;22.589111;10.914017;, -1.581566;24.711411;10.914032;, -1.311470;21.058910;10.914017;, -0.961758;13.589111;10.913986;, -1.581566;15.711411;10.913994;, -1.311470;12.058907;10.913986;, -0.961758; 4.589111;10.913956;, -1.581566; 6.711430;10.913963;, -1.311470; 3.058937;10.913956;, -0.961758;-4.410889;10.913925;, -1.581566;-2.288574;10.913933;, -1.311470;-5.941048;10.913918;, -0.961758;-13.410889;10.913895;, -1.581566;-11.288589;10.913902;, -1.311470;-14.941093;10.913887;, -0.961758;-22.410896;10.913864;, -1.581566;-20.288589;10.913864;, -1.311470;-23.941093;10.913857;, -0.961758;-31.410896;10.913826;, -1.581566;-29.288589;10.913834;, -2.288887;28.833710;10.914047;, -2.288887;19.833710;10.914009;, -2.288887;10.833710;10.913979;, -2.288887; 1.833672;10.913948;, -2.288887;-7.166321;10.913910;, -2.288887;-16.166290;10.913879;, -2.288887;-25.166290;10.913849;, -3.701485;28.152809;10.914040;, -3.701485;26.025406;10.914032;, -3.701485;19.152809;10.914009;, -3.701485;17.025410;10.914001;, -3.701485;10.152809;10.913979;, -3.701485; 8.025429;10.913971;, -3.701485; 1.152779;10.913940;, -3.701485;-0.974564;10.913940;, -3.701485;-7.847214;10.913910;, -3.701485;-9.974594;10.913902;, -3.701485;-16.847191;10.913879;, -3.701485;-18.974586;10.913872;, -3.701485;-25.847191;10.913849;, -3.701485;-27.974586;10.913841;, -5.272026;28.152809;10.914040;, -5.272026;26.025406;10.914032;, -5.272026;19.152809;10.914009;, -5.272026;17.025410;10.914001;, -5.272026;10.152809;10.913979;, -5.272026; 8.025429;10.913971;, -5.272026; 1.152779;10.913940;, -5.272026;-0.974564;10.913940;, -5.272026;-7.847214;10.913910;, -5.272026;-9.974594;10.913902;, -5.272026;-16.847191;10.913879;, -5.272026;-18.974586;10.913872;, -5.272026;-25.847191;10.913849;, -5.272026;-27.974586;10.913841;, -7.391945;29.466812;10.914047;, -6.684624;25.344509;10.914032;, -7.391945;20.466808;10.914017;, -6.684624;16.344505;10.914001;, -7.391945;11.466808;10.913979;, -6.684624; 7.344540;10.913971;, -7.391945; 2.466789;10.913948;, -6.684624;-1.655449;10.913933;, -7.391945;-6.533211;10.913918;, -6.684624;-10.655495;10.913902;, -7.391945;-15.533195;10.913887;, -6.684624;-19.655495;10.913872;, -7.391945;-24.533195;10.913849;, -6.684624;-28.655495;10.913834;, -7.662041;24.119308;10.914024;, -7.662041;15.119308;10.913994;, -7.662041; 6.119270;10.913963;, -7.662041;-2.880722;10.913925;, -7.662041;-11.880692;10.913895;, -7.662041;-20.880692;10.913864;, -7.662041;-29.880692;10.913834;, -8.011742;31.589111;10.914055;, -8.011742;22.589111;10.914017;, -8.011742;13.589111;10.913986;, -8.011742; 4.589111;10.913956;, -8.011742;-4.410889;10.913925;, -8.011742;-13.410889;10.913895;, -8.011742;-22.410896;10.913864;, -8.011742;-31.410896;10.913826;, -9.961754;31.589111;10.914055;, -10.311455;30.058907;10.914047;, -9.961754;22.589111;10.914017;, -10.581566;24.711411;10.914032;, -10.311455;21.058910;10.914017;, -9.961754;13.589111;10.913986;, -10.581566;15.711411;10.913994;, -10.311455;12.058907;10.913986;, -9.961754; 4.589111;10.913956;, -10.581566; 6.711418;10.913963;, -10.311455; 3.058937;10.913956;, -9.961754;-4.410889;10.913925;, -10.581566;-2.288574;10.913933;, -10.311455;-5.941048;10.913918;, -9.961754;-13.410889;10.913895;, -10.581566;-11.288589;10.913902;, -10.311455;-14.941093;10.913887;, -9.961754;-22.410896;10.913864;, -10.581566;-20.288589;10.913864;, -10.311455;-23.941093;10.913857;, -9.961754;-31.410896;10.913826;, -10.581566;-29.288589;10.913834;, -11.288857;28.833710;10.914047;, -11.288857;19.833710;10.914009;, -11.288857;10.833710;10.913979;, -11.288857; 1.833672;10.913948;, -11.288857;-7.166321;10.913910;, -11.288857;-16.166290;10.913879;, -11.288857;-25.166290;10.913849;, -12.701454;28.152809;10.914040;, -12.701454;26.025406;10.914032;, -12.701454;19.152809;10.914009;, -12.701454;17.025410;10.914001;, -12.701454;10.152809;10.913979;, -12.701454; 8.025429;10.913971;, -12.701454; 1.152779;10.913940;, -12.701454;-0.974564;10.913940;, -12.701454;-7.847214;10.913910;, -12.701454;-9.974594;10.913902;, -12.701454;-16.847191;10.913879;, -12.701454;-18.974586;10.913872;, -12.701454;-25.847191;10.913849;, -12.701454;-27.974586;10.913841;, -14.272057;28.152809;10.914040;, -14.272057;26.025406;10.914032;, -14.272057;19.152809;10.914009;, -14.272057;17.025410;10.914001;, -14.272057;10.152809;10.913979;, -14.272057; 8.025429;10.913971;, -14.272057; 1.152779;10.913940;, -14.272057;-0.974564;10.913940;, -14.272057;-7.847214;10.913910;, -14.272057;-9.974594;10.913902;, -14.272057;-16.847191;10.913879;, -14.272057;-18.974586;10.913872;, -14.272057;-25.847191;10.913849;, -14.272057;-27.974586;10.913841;, -16.391960;29.466812;10.914047;, -15.684654;25.344509;10.914032;, -16.391960;20.466808;10.914017;, -15.684654;16.344505;10.914001;, -16.391960;11.466808;10.913979;, -15.684654; 7.344540;10.913971;, -16.391960; 2.466789;10.913948;, -15.684654;-1.655449;10.913933;, -16.391960;-6.533203;10.913918;, -15.684654;-10.655495;10.913902;, -16.391960;-15.533195;10.913887;, -15.684654;-19.655495;10.913872;, -16.391960;-24.533195;10.913849;, -15.684654;-28.655495;10.913834;, -16.662056;24.119308;10.914024;, -16.662056;15.119308;10.913994;, -16.662056; 6.119270;10.913963;, -16.662056;-2.880722;10.913925;, -16.662056;-11.880692;10.913895;, -16.662056;-20.880692;10.913864;, -16.662056;-29.880692;10.913834;, -17.011757;31.589111;10.914055;, -17.011757;22.589111;10.914017;, -17.011757;13.589111;10.913986;, -17.011757; 4.589111;10.913956;, -17.011757;-4.410889;10.913925;, -17.011757;-13.410889;10.913895;, -17.011757;-22.410896;10.913864;, -17.011757;-31.410896;10.913826;, -18.961754;31.589111;10.914055;, -19.311455;30.058907;10.914047;, -18.961754;22.589111;10.914017;, -19.581551;24.711411;10.914032;, -19.311455;21.058910;10.914017;, -18.961754;13.589111;10.913986;, -19.581551;15.711411;10.913994;, -19.311455;12.058907;10.913986;, -18.961754; 4.589111;10.913956;, -19.581551; 6.711430;10.913963;, -19.311455; 3.058937;10.913956;, -18.961754;-4.410889;10.913925;, -19.581551;-2.288574;10.913933;, -19.770653;-6.770370;10.913918;, -18.961754;-13.410889;10.913895;, -19.581551;-11.288589;10.913902;, -19.311455;-14.941093;10.913887;, -18.961754;-22.410896;10.913864;, -19.581551;-20.288589;10.913864;, -19.311455;-23.941093;10.913857;, -18.961754;-31.410896;10.913826;, -19.581551;-29.288589;10.913834;, -20.288857;28.833710;10.914047;, -20.288857;19.833710;10.914009;, -20.288857;10.833710;10.913979;, -20.288857; 1.833672;10.913948;, -20.288857;-16.166290;10.913879;, -20.288857;-25.166290;10.913849;, -21.701454;28.152809;10.914040;, -21.701454;26.025406;10.914032;, -21.701454;19.152809;10.914009;, -21.701454;17.025410;10.914001;, -21.701454;10.152809;10.913979;, -21.701454; 8.025429;10.913971;, -21.701454; 1.152779;10.913940;, -21.701454;-0.974564;10.913940;, -21.701454;-7.847214;10.913910;, -21.701454;-9.974594;10.913902;, -21.701454;-16.847191;10.913879;, -21.701454;-18.974586;10.913872;, -21.701454;-25.847191;10.913849;, -21.701454;-27.974586;10.913841;, -23.272057;28.152809;10.914040;, -23.272057;26.025406;10.914032;, -23.272057;19.152809;10.914009;, -23.272057;17.025410;10.914001;, -23.272057;10.152809;10.913979;, -23.272057; 8.025429;10.913971;, -23.272057; 1.152779;10.913940;, -23.272057;-0.974564;10.913940;, -23.272057;-7.847214;10.913910;, -23.272057;-9.974594;10.913902;, -23.272057;-16.847191;10.913879;, -23.272057;-18.974586;10.913872;, -23.272057;-25.847191;10.913849;, -23.272057;-27.974586;10.913841;, -25.391960;29.466812;10.914047;, -24.684654;25.344509;10.914032;, -25.391960;20.466808;10.914017;, -24.684654;16.344505;10.914001;, -25.391960;11.466808;10.913979;, -25.202858; 6.948589;10.913963;, -25.391960; 2.466789;10.913948;, -24.684654;-1.655449;10.913933;, -25.391960;-6.533211;10.913918;, -24.684654;-10.655495;10.913902;, -25.391960;-15.533195;10.913887;, -24.684654;-19.655495;10.913872;, -25.391960;-24.533195;10.913849;, -24.684654;-28.655495;10.913834;, -25.662056;24.119308;10.914024;, -25.662056;15.119308;10.913994;, -25.662056;-2.880722;10.913925;, -25.662056;-11.880692;10.913895;, -25.662056;-20.880692;10.913864;, -25.662056;-29.880692;10.913834;, -26.011757;31.589111;10.914055;, -26.011757;22.589111;10.914017;, -26.011757;13.589111;10.913986;, -26.011757; 4.589111;10.913956;, -26.011757;-4.410889;10.913925;, -26.011757;-13.410889;10.913895;, -26.011757;-22.410896;10.913864;, -26.011757;-31.410896;10.913826;, -27.961754;31.589111;10.914055;, -28.311455;30.058907;10.914047;, -27.961754;22.589111;10.914017;, -28.581551;24.711411;10.914032;, -28.311455;21.058910;10.914017;, -27.961754;13.589111;10.913986;, -28.581551;15.711411;10.913994;, -28.311455;12.058907;10.913986;, -27.961754; 4.589111;10.913956;, -28.581551; 6.711430;10.913963;, -28.311455; 3.058937;10.913956;, -27.961754;-4.410889;10.913925;, -28.581551;-2.288574;10.913933;, -28.770653;-6.770370;10.913918;, -27.961754;-13.410889;10.913895;, -28.581551;-11.288589;10.913902;, -28.311455;-14.941093;10.913887;, -27.961754;-22.410896;10.913864;, -28.581551;-20.288589;10.913864;, -28.311455;-23.941093;10.913857;, -27.961754;-31.410896;10.913826;, -28.581551;-29.288589;10.913834;, -29.288857;28.833710;10.914047;, -29.288857;19.833710;10.914009;, -29.288857;10.833710;10.913979;, -29.288857; 1.833672;10.913948;, -29.288857;-16.166290;10.913879;, -29.288857;-25.166290;10.913849;, -30.701454;28.152809;10.914040;, -30.701454;26.025406;10.914032;, -30.701454;19.152809;10.914009;, -30.701454;17.025410;10.914001;, -30.701454;10.152809;10.913979;, -30.701454; 8.025429;10.913971;, -30.701454; 1.152779;10.913940;, -30.701454;-0.974564;10.913940;, -30.701454;-7.847214;10.913910;, -30.701454;-9.974594;10.913902;, -30.701454;-16.847191;10.913879;, -30.701454;-18.974586;10.913872;, -30.701454;-25.847191;10.913849;, -30.701454;-27.974586;10.913841;, -32.272057;28.152809;10.914040;, -32.272057;26.025406;10.914032;, -32.272057;19.152809;10.914009;, -32.272057;17.025410;10.914001;, -32.272057;10.152809;10.913979;, -32.272057; 8.025429;10.913971;, -32.272057; 1.152779;10.913940;, -32.272057;-0.974564;10.913940;, -32.272057;-7.847214;10.913910;, -32.272057;-9.974594;10.913902;, -32.272057;-16.847191;10.913879;, -32.272057;-18.974586;10.913872;, -32.272057;-25.847191;10.913849;, -32.272057;-27.974586;10.913841;, -34.391960;29.466812;10.914047;, -34.202858;24.948608;10.914032;, -34.391960;20.466808;10.914017;, -34.202858;15.948608;10.914001;, -34.391960;11.466808;10.913979;, -34.202858; 6.948589;10.913963;, -34.391960; 2.466789;10.913948;, -34.202858;-2.051399;10.913933;, -34.391960;-6.533211;10.913918;, -34.202858;-11.051392;10.913902;, -34.391960;-15.533195;10.913887;, -33.684654;-19.655495;10.913872;, -34.391960;-24.533195;10.913849;, -34.202858;-29.051392;10.913834;, -34.662056;-20.880692;10.913864;, -35.011757;31.589111;10.914055;, -35.011757;22.589111;10.914017;, -35.011757;13.589111;10.913986;, -35.011757; 4.589111;10.913956;, -35.011757;-4.410889;10.913925;, -35.011757;-13.410889;10.913895;, -35.011757;-22.410896;10.913864;, -35.011757;-31.410896;10.913826;, -36.961754;31.589111;10.914055;, -37.770653;29.229607;10.914047;, -36.961754;22.589111;10.914017;, -37.581551;24.711411;10.914032;, -37.770653;20.229610;10.914017;, -36.961754;13.589111;10.913986;, -37.581551;15.711411;10.913994;, -37.770653;11.229607;10.913979;, -36.961754; 4.589111;10.913956;, -37.581551; 6.711430;10.913963;, -37.770653; 2.229622;10.913948;, -36.961754;-4.410889;10.913925;, -37.581551;-2.288559;10.913933;, -37.770653;-6.770370;10.913918;, -36.961754;-13.410889;10.913895;, -37.581551;-11.288589;10.913902;, -37.770653;-15.770393;10.913879;, -36.961754;-22.410896;10.913864;, -37.581551;-20.288589;10.913864;, -37.770653;-24.770393;10.913849;, -36.961754;-31.410896;10.913826;, -37.581551;-29.288589;10.913834;, -39.701454;28.152809;10.914040;, -39.701454;26.025406;10.914032;, -39.701454;19.152809;10.914009;, -39.701454;17.025410;10.914001;, -39.701454;10.152809;10.913979;, -39.701454; 8.025429;10.913971;, -39.701454; 1.152779;10.913940;, -39.701454;-0.974564;10.913940;, -39.701454;-7.847214;10.913910;, -39.701454;-9.974594;10.913902;, -39.701454;-16.847191;10.913879;, -39.701454;-18.974586;10.913872;, -39.701454;-25.847191;10.913849;, -39.701454;-27.974586;10.913841;, -41.272057;28.152809;10.914040;, -41.272057;26.025406;10.914032;, -41.272057;19.152809;10.914009;, -41.272057;17.025410;10.914001;, -41.272057;10.152809;10.913979;, -41.272057; 8.025429;10.913971;, -41.272057; 1.152779;10.913940;, -41.272057;-0.974564;10.913940;, -41.272057;-7.847214;10.913910;, -41.272057;-9.974594;10.913902;, -41.272057;-16.847191;10.913879;, -41.272057;-18.974586;10.913872;, -41.272057;-25.847191;10.913849;, -41.272057;-27.974586;10.913841;, -43.391960;29.466812;10.914047;, -43.202858;24.948608;10.914032;, -43.391960;20.466808;10.914017;, -43.202858;15.948608;10.914001;, -43.391960;11.466808;10.913979;, -43.202858; 6.948589;10.913963;, -43.391960; 2.466782;10.913948;, -43.202858;-2.051399;10.913933;, -43.391960;-6.533211;10.913918;, -43.202858;-11.051392;10.913902;, -43.391960;-15.533195;10.913887;, -43.202858;-20.051392;10.913864;, -43.391960;-24.533195;10.913849;, -43.202858;-29.051392;10.913834;, -44.011757;31.589111;10.914055;, -44.011757;22.589111;10.914017;, -44.011757;13.589111;10.913986;, -44.011757; 4.589111;10.913956;, -44.011757;-4.410889;10.913925;, -44.011757;-13.410889;10.913895;, -44.011757;-22.410896;10.913864;, -44.011757;-31.410896;10.913826;, -45.961754;31.589111;10.914055;, -46.770653;29.229607;10.914047;, -45.961754;22.589111;10.914017;, -46.581551;24.711411;10.914032;, -46.770653;20.229610;10.914017;, -45.961754;13.589111;10.913986;, -46.581551;15.711411;10.913994;, -46.770653;11.229607;10.913979;, -45.961754; 4.589111;10.913956;, -46.581551; 6.711430;10.913963;, -46.770653; 2.229622;10.913948;, -45.961754;-4.410889;10.913925;, -46.581551;-2.288559;10.913933;, -46.770653;-6.770370;10.913918;, -45.961754;-13.410889;10.913895;, -46.581551;-11.288589;10.913902;, -46.770653;-15.770393;10.913879;, -45.961754;-22.410896;10.913864;, -46.581551;-20.288589;10.913864;, -46.770653;-24.770393;10.913849;, -45.961754;-31.410896;10.913826;, -46.581551;-29.288589;10.913834;, -48.701454;28.152809;10.914040;, -48.701454;26.025406;10.914032;, -48.701454;19.152809;10.914009;, -48.701454;17.025410;10.914001;, -48.701454;10.152809;10.913979;, -48.701454; 8.025429;10.913971;, -48.701454; 1.152779;10.913940;, -48.701454;-0.974564;10.913940;, -48.701454;-7.847214;10.913910;, -48.701454;-9.974594;10.913902;, -48.701454;-16.847191;10.913879;, -48.701454;-18.974586;10.913872;, -48.701454;-25.847191;10.913849;, -48.701454;-27.974586;10.913841;, -50.272057;28.152809;10.914040;, -50.272057;26.025406;10.914032;, -50.272057;19.152809;10.914009;, -50.272057;17.025410;10.914001;, -50.272057;10.152809;10.913979;, -50.272057; 8.025429;10.913971;, -50.272057; 1.152779;10.913940;, -50.272057;-0.974564;10.913940;, -50.272057;-7.847214;10.913910;, -50.272057;-9.974594;10.913902;, -50.272057;-16.847191;10.913879;, -50.272057;-18.974586;10.913872;, -50.272057;-25.847191;10.913849;, -50.272057;-27.974586;10.913841;, -52.391960;29.466812;10.914047;, -52.202858;24.948608;10.914032;, -52.391960;20.466808;10.914017;, -52.202858;15.948608;10.914001;, -52.391960;11.466808;10.913979;, -52.202858; 6.948589;10.913963;, -52.391960; 2.466782;10.913948;, -52.202858;-2.051399;10.913933;, -52.391960;-6.533211;10.913918;, -52.202858;-11.051392;10.913902;, -52.391960;-15.533195;10.913887;, -52.202858;-20.051392;10.913864;, -52.391960;-24.533195;10.913849;, -52.202858;-29.051392;10.913834;, -53.011757;31.589111;10.914055;, -53.011757;22.589111;10.914017;, -53.011757;13.589111;10.913986;, -53.011757; 4.589111;10.913956;, -53.011757;-4.410889;10.913925;, -53.011757;-13.410889;10.913895;, -53.011757;-22.410896;10.913864;, -53.011757;-31.410896;10.913826;, -53.986763;36.089108;10.914070;, -52.202858;33.948608;10.914062;, -50.272057;35.025410;10.914062;, -48.701454;35.025410;10.914062;, -46.581551;33.711407;10.914062;, -43.202858;33.948608;10.914062;, -41.272057;35.025410;10.914062;, -39.701454;35.025410;10.914062;, -37.581551;33.711407;10.914062;, -34.202858;33.948608;10.914062;, -32.272057;35.025410;10.914062;, -30.701454;35.025410;10.914062;, -28.581551;33.711407;10.914062;, -25.202858;33.948608;10.914062;, -23.272057;35.025410;10.914062;, -21.701454;35.025410;10.914062;, -19.581551;33.711407;10.914062;, -16.202858;33.948608;10.914062;, -14.272057;35.025410;10.914062;, -12.701454;35.025410;10.914062;, -10.581566;33.711407;10.914062;, -7.202843;33.948608;10.914062;, -5.272026;35.025410;10.914062;, -3.701485;35.025410;10.914062;, -1.581566;33.711407;10.914062;, 1.797142;33.948608;10.914062;, 3.727970;35.025410;10.914062;, 5.298500;35.025410;10.914062;, 7.418423;33.711407;10.914062;, 10.337940;33.119308;10.914062;, 11.315342;34.344509;10.914062;, 12.727940;35.025410;10.914062;, 14.298542;35.025410;10.914062;, 16.418442;33.711407;10.914062;, 19.797138;33.948608;10.914062;, 21.727940;35.025410;10.914062;, 23.298542;35.025410;10.914062;, 25.418442;33.711407;10.914062;, 28.797142;33.948608;10.914062;, 30.727942;35.025410;10.914062;, 32.298538;35.025410;10.914062;, 34.418442;33.711407;10.914062;, 37.797138;33.948608;10.914062;, 39.727943;35.025410;10.914062;, 41.298538;35.025410;10.914062;, 43.418442;33.711407;10.914062;, 46.797142;33.948608;10.914062;, 48.727943;35.025410;10.914062;, 50.298538;35.025410;10.914062;, 54.013241;-35.910889;10.913811;, 54.013241;36.089108;10.914070;, 52.418442;33.711407;10.914062;, 52.229343;-33.770393;10.913818;, 50.298538;-34.847191;10.913818;, 48.727943;-34.847191;10.913818;, 46.608040;-33.533188;10.913818;, 43.229343;-33.770393;10.913818;, 41.298538;-34.847191;10.913818;, 39.727943;-34.847191;10.913818;, 37.608040;-33.533188;10.913818;, 34.229340;-33.770393;10.913818;, 32.298538;-34.847191;10.913818;, 30.727942;-34.847191;10.913818;, 28.608040;-33.533188;10.913818;, 25.688541;-32.941093;10.913818;, 24.711140;-34.166290;10.913818;, 23.298542;-34.847191;10.913818;, 21.727940;-34.847191;10.913818;, 19.608040;-33.533188;10.913818;, 16.688541;-32.941093;10.913818;, 15.711140;-34.166290;10.913818;, 14.298542;-34.847191;10.913818;, 12.727940;-34.847191;10.913818;, 10.608040;-33.533188;10.913818;, 7.688519;-32.941093;10.913818;, 6.711102;-34.166290;10.913818;, 5.298500;-34.847191;10.913818;, 3.727970;-34.847191;10.913818;, 1.608051;-33.533188;10.913818;, -1.311470;-32.941093;10.913818;, -2.288887;-34.166290;10.913818;, -3.701485;-34.847191;10.913818;, -5.272026;-34.847191;10.913818;, -7.391945;-33.533188;10.913818;, -10.311455;-32.941093;10.913818;, -11.288857;-34.166290;10.913818;, -12.701454;-34.847191;10.913818;, -14.272057;-34.847191;10.913818;, -16.391960;-33.533188;10.913818;, -19.311455;-32.941093;10.913818;, -20.288857;-34.166290;10.913818;, -21.701454;-34.847191;10.913818;, -23.272057;-34.847191;10.913818;, -25.391960;-33.533188;10.913818;, -28.311455;-32.941093;10.913818;, -29.288857;-34.166290;10.913818;, -30.701454;-34.847191;10.913818;, -32.272057;-34.847191;10.913818;, -34.391960;-33.533188;10.913818;, -37.770653;-33.770393;10.913818;, -39.701454;-34.847191;10.913818;, -41.272057;-34.847191;10.913818;, -43.391960;-33.533188;10.913818;, -46.770653;-33.770393;10.913818;, -48.701454;-34.847191;10.913818;, -50.272057;-34.847191;10.913818;, -53.986763;-35.910889;10.913811;, -52.391960;-33.533188;10.913818;, -60.986763;-39.210869; 5.913803;, -60.986763;39.389126; 5.914078;, -60.986763;-39.210846;-1.586197;, -60.986763;39.389153;-1.585922;, 61.013241;-39.210869; 5.913803;, 61.013241;-39.210846;-1.586197;, 61.013241;39.389126; 5.914078;, 61.013241;39.389153;-1.585922;, -57.436760;32.039154;-1.585945;, -57.436760;-31.860847;-1.586174;, -52.436760;-36.860847;-1.586189;, 52.463242;-36.860847;-1.586189;, 57.463242;-31.860847;-1.586174;, 57.463242;32.039154;-1.585945;, 52.463242;37.039154;-1.585930;, -52.436760;37.039154;-1.585930;, -53.986763;-35.910873; 5.913811;, -53.986763;36.089127; 5.914070;, 54.013241;36.089127; 5.914070;, 54.013241;-35.910873; 5.913811;; 4656; 3;2,1,0;, 3;1,2,3;, 3;5,4,2;, 3;4,5,6;, 3;8,7,5;, 3;7,8,9;, 3;11,10,8;, 3;10,11,12;, 3;14,13,11;, 3;13,14,15;, 3;17,16,14;, 3;16,17,18;, 3;20,19,17;, 3;19,20,21;, 3;23,22,0;, 3;25,24,0;, 3;22,25,0;, 3;2,0,24;, 3;5,2,24;, 3;8,5,24;, 3;11,8,24;, 3;14,11,24;, 3;17,14,24;, 3;20,17,24;, 3;26,20,24;, 3;26,24,27;, 3;3,28,1;, 3;28,3,29;, 3;6,30,4;, 3;30,6,31;, 3;9,32,7;, 3;32,9,33;, 3;12,34,10;, 3;34,12,35;, 3;15,36,13;, 3;36,15,37;, 3;18,38,16;, 3;38,18,39;, 3;21,40,19;, 3;40,21,41;, 3;29,42,28;, 3;42,29,43;, 3;31,44,30;, 3;44,31,45;, 3;33,46,32;, 3;46,33,47;, 3;35,48,34;, 3;48,35,49;, 3;37,50,36;, 3;50,37,51;, 3;39,52,38;, 3;52,39,53;, 3;41,54,40;, 3;54,41,55;, 3;43,56,42;, 3;56,43,57;, 3;45,58,44;, 3;58,45,59;, 3;47,60,46;, 3;60,47,61;, 3;49,62,48;, 3;62,49,63;, 3;51,64,50;, 3;64,51,65;, 3;53,66,52;, 3;66,53,67;, 3;55,68,54;, 3;68,55,69;, 3;57,70,56;, 3;70,57,71;, 3;59,71,58;, 3;71,59,72;, 3;61,72,60;, 3;72,61,73;, 3;63,73,62;, 3;73,63,74;, 3;65,74,64;, 3;74,65,75;, 3;67,75,66;, 3;75,67,76;, 3;69,76,68;, 3;76,69,77;, 3;80,79,78;, 3;79,80,81;, 3;83,82,80;, 3;82,83,84;, 3;86,85,83;, 3;85,86,87;, 3;89,88,86;, 3;88,89,90;, 3;92,91,89;, 3;91,92,93;, 3;95,94,92;, 3;94,95,96;, 3;98,97,95;, 3;97,98,99;, 3;81,100,79;, 3;100,81,101;, 3;84,102,82;, 3;102,84,103;, 3;87,104,85;, 3;104,87,105;, 3;90,106,88;, 3;106,90,107;, 3;93,108,91;, 3;108,93,109;, 3;96,110,94;, 3;110,96,111;, 3;99,112,97;, 3;112,99,113;, 3;101,114,100;, 3;114,101,115;, 3;103,116,102;, 3;116,103,117;, 3;105,118,104;, 3;118,105,119;, 3;107,120,106;, 3;120,107,121;, 3;109,122,108;, 3;122,109,123;, 3;111,124,110;, 3;124,111,125;, 3;113,126,112;, 3;126,113,127;, 3;115,128,114;, 3;128,115,129;, 3;117,130,116;, 3;130,117,131;, 3;119,132,118;, 3;132,119,133;, 3;121,134,120;, 3;134,121,135;, 3;123,136,122;, 3;136,123,137;, 3;125,138,124;, 3;138,125,139;, 3;127,140,126;, 3;140,127,141;, 3;129,142,128;, 3;142,129,143;, 3;131,143,130;, 3;143,131,144;, 3;133,144,132;, 3;144,133,145;, 3;135,145,134;, 3;145,135,146;, 3;137,146,136;, 3;146,137,147;, 3;139,147,138;, 3;147,139,148;, 3;141,148,140;, 3;148,141,149;, 3;152,151,150;, 3;151,152,153;, 3;155,154,152;, 3;154,155,156;, 3;158,157,155;, 3;157,158,159;, 3;161,160,158;, 3;160,161,162;, 3;164,163,161;, 3;163,164,165;, 3;167,166,164;, 3;166,167,168;, 3;170,169,167;, 3;169,170,171;, 3;153,172,151;, 3;172,153,173;, 3;156,174,154;, 3;174,156,175;, 3;159,176,157;, 3;176,159,177;, 3;162,178,160;, 3;178,162,179;, 3;165,180,163;, 3;180,165,181;, 3;168,182,166;, 3;182,168,183;, 3;171,184,169;, 3;184,171,185;, 3;173,186,172;, 3;186,173,187;, 3;175,188,174;, 3;188,175,189;, 3;177,190,176;, 3;190,177,191;, 3;179,192,178;, 3;192,179,193;, 3;181,194,180;, 3;194,181,195;, 3;183,196,182;, 3;196,183,197;, 3;185,198,184;, 3;198,185,199;, 3;187,200,186;, 3;200,187,201;, 3;189,202,188;, 3;202,189,203;, 3;191,204,190;, 3;204,191,205;, 3;193,206,192;, 3;206,193,207;, 3;195,208,194;, 3;208,195,209;, 3;197,210,196;, 3;210,197,211;, 3;199,212,198;, 3;212,199,213;, 3;206,207,214;, 3;208,209,215;, 3;210,211,216;, 3;212,213,217;, 3;201,218,200;, 3;218,201,219;, 3;203,219,202;, 3;219,203,220;, 3;205,220,204;, 3;220,205,221;, 3;214,221,206;, 3;221,214,222;, 3;215,222,208;, 3;222,215,223;, 3;216,223,210;, 3;223,216,224;, 3;217,224,212;, 3;224,217,225;, 3;228,227,226;, 3;227,228,229;, 3;231,230,228;, 3;230,231,232;, 3;234,233,231;, 3;233,234,235;, 3;237,236,234;, 3;236,237,238;, 3;240,239,237;, 3;239,240,241;, 3;243,242,240;, 3;242,243,244;, 3;246,245,243;, 3;245,246,247;, 3;229,248,227;, 3;232,249,230;, 3;235,250,233;, 3;238,251,236;, 3;229,252,248;, 3;252,229,253;, 3;232,254,249;, 3;254,232,255;, 3;235,256,250;, 3;256,235,257;, 3;238,258,251;, 3;258,238,259;, 3;241,260,239;, 3;260,241,261;, 3;244,262,242;, 3;262,244,263;, 3;247,264,245;, 3;264,247,265;, 3;253,266,252;, 3;266,253,267;, 3;255,268,254;, 3;268,255,269;, 3;257,270,256;, 3;270,257,271;, 3;259,272,258;, 3;272,259,273;, 3;261,274,260;, 3;274,261,275;, 3;263,276,262;, 3;276,263,277;, 3;265,278,264;, 3;278,265,279;, 3;267,280,266;, 3;280,267,281;, 3;269,282,268;, 3;282,269,283;, 3;271,284,270;, 3;284,271,285;, 3;273,286,272;, 3;286,273,287;, 3;275,288,274;, 3;288,275,289;, 3;277,290,276;, 3;290,277,291;, 3;279,292,278;, 3;292,279,293;, 3;286,287,294;, 3;288,289,295;, 3;290,291,296;, 3;292,293,297;, 3;281,298,280;, 3;298,281,299;, 3;283,299,282;, 3;299,283,300;, 3;285,300,284;, 3;300,285,301;, 3;294,301,286;, 3;301,294,302;, 3;295,302,288;, 3;302,295,303;, 3;296,303,290;, 3;303,296,304;, 3;297,304,292;, 3;304,297,305;, 3;308,307,306;, 3;307,308,309;, 3;311,310,308;, 3;310,311,312;, 3;314,313,311;, 3;313,314,315;, 3;317,316,314;, 3;316,317,318;, 3;320,319,317;, 3;319,320,321;, 3;323,322,320;, 3;322,323,324;, 3;326,325,323;, 3;325,326,327;, 3;309,328,307;, 3;312,329,310;, 3;315,330,313;, 3;318,331,316;, 3;321,332,319;, 3;324,333,322;, 3;309,334,328;, 3;334,309,335;, 3;312,336,329;, 3;336,312,337;, 3;315,338,330;, 3;338,315,339;, 3;318,340,331;, 3;340,318,341;, 3;321,342,332;, 3;342,321,343;, 3;324,344,333;, 3;344,324,345;, 3;327,346,325;, 3;346,327,347;, 3;335,348,334;, 3;348,335,349;, 3;337,350,336;, 3;350,337,351;, 3;339,352,338;, 3;352,339,353;, 3;341,354,340;, 3;354,341,355;, 3;343,356,342;, 3;356,343,357;, 3;345,358,344;, 3;358,345,359;, 3;347,360,346;, 3;360,347,361;, 3;349,362,348;, 3;362,349,363;, 3;351,364,350;, 3;364,351,365;, 3;353,366,352;, 3;366,353,367;, 3;355,368,354;, 3;368,355,369;, 3;357,370,356;, 3;370,357,371;, 3;359,372,358;, 3;372,359,373;, 3;361,374,360;, 3;374,361,375;, 3;362,363,376;, 3;364,365,377;, 3;366,367,378;, 3;368,369,379;, 3;370,371,380;, 3;372,373,381;, 3;374,375,382;, 3;376,383,362;, 3;383,376,384;, 3;377,384,364;, 3;384,377,385;, 3;378,385,366;, 3;385,378,386;, 3;379,386,368;, 3;386,379,387;, 3;380,387,370;, 3;387,380,388;, 3;381,388,372;, 3;388,381,389;, 3;382,389,374;, 3;389,382,390;, 3;393,392,391;, 3;392,393,394;, 3;396,395,393;, 3;395,396,397;, 3;399,398,396;, 3;398,399,400;, 3;402,401,399;, 3;401,402,403;, 3;405,404,402;, 3;404,405,406;, 3;408,407,405;, 3;407,408,409;, 3;411,410,408;, 3;410,411,412;, 3;394,413,392;, 3;397,414,395;, 3;400,415,398;, 3;403,416,401;, 3;406,417,404;, 3;409,418,407;, 3;412,419,410;, 3;394,420,413;, 3;420,394,421;, 3;397,422,414;, 3;422,397,423;, 3;400,424,415;, 3;424,400,425;, 3;403,426,416;, 3;426,403,427;, 3;406,428,417;, 3;428,406,429;, 3;409,430,418;, 3;430,409,431;, 3;412,432,419;, 3;432,412,433;, 3;421,434,420;, 3;434,421,435;, 3;423,436,422;, 3;436,423,437;, 3;425,438,424;, 3;438,425,439;, 3;427,440,426;, 3;440,427,441;, 3;429,442,428;, 3;442,429,443;, 3;431,444,430;, 3;444,431,445;, 3;433,446,432;, 3;446,433,447;, 3;435,448,434;, 3;448,435,449;, 3;437,450,436;, 3;450,437,451;, 3;439,452,438;, 3;452,439,453;, 3;441,454,440;, 3;454,441,455;, 3;443,456,442;, 3;456,443,457;, 3;445,458,444;, 3;458,445,459;, 3;447,460,446;, 3;460,447,461;, 3;448,449,462;, 3;450,451,463;, 3;452,453,464;, 3;454,455,465;, 3;456,457,466;, 3;458,459,467;, 3;460,461,468;, 3;462,469,448;, 3;469,462,470;, 3;463,470,450;, 3;470,463,471;, 3;464,471,452;, 3;471,464,472;, 3;465,472,454;, 3;472,465,473;, 3;466,473,456;, 3;473,466,474;, 3;467,474,458;, 3;474,467,475;, 3;468,475,460;, 3;475,468,476;, 3;479,478,477;, 3;478,479,480;, 3;482,481,479;, 3;481,482,483;, 3;485,484,482;, 3;484,485,486;, 3;488,487,485;, 3;487,488,489;, 3;491,490,488;, 3;490,491,492;, 3;494,493,491;, 3;493,494,495;, 3;497,496,494;, 3;496,497,498;, 3;480,499,478;, 3;483,500,481;, 3;486,501,484;, 3;489,502,487;, 3;492,503,490;, 3;495,504,493;, 3;498,505,496;, 3;480,506,499;, 3;506,480,507;, 3;483,508,500;, 3;508,483,509;, 3;486,510,501;, 3;510,486,511;, 3;489,512,502;, 3;512,489,513;, 3;492,514,503;, 3;514,492,515;, 3;495,516,504;, 3;516,495,517;, 3;498,518,505;, 3;518,498,519;, 3;507,520,506;, 3;520,507,521;, 3;509,522,508;, 3;522,509,523;, 3;511,524,510;, 3;524,511,525;, 3;513,526,512;, 3;526,513,527;, 3;515,528,514;, 3;528,515,529;, 3;517,530,516;, 3;530,517,531;, 3;519,532,518;, 3;532,519,533;, 3;521,534,520;, 3;534,521,535;, 3;523,536,522;, 3;536,523,537;, 3;525,538,524;, 3;538,525,539;, 3;527,540,526;, 3;540,527,541;, 3;529,542,528;, 3;542,529,543;, 3;531,544,530;, 3;544,531,545;, 3;533,546,532;, 3;546,533,547;, 3;534,535,548;, 3;536,537,549;, 3;538,539,550;, 3;540,541,551;, 3;542,543,552;, 3;544,545,553;, 3;546,547,554;, 3;548,555,534;, 3;555,548,556;, 3;549,556,536;, 3;556,549,557;, 3;550,557,538;, 3;557,550,558;, 3;551,558,540;, 3;558,551,559;, 3;552,559,542;, 3;559,552,560;, 3;553,560,544;, 3;560,553,561;, 3;554,561,546;, 3;561,554,562;, 3;565,564,563;, 3;564,565,566;, 3;568,567,565;, 3;567,568,569;, 3;571,570,568;, 3;570,571,572;, 3;574,573,571;, 3;573,574,575;, 3;577,576,574;, 3;576,577,578;, 3;580,579,577;, 3;579,580,581;, 3;583,582,580;, 3;582,583,584;, 3;566,585,564;, 3;569,586,567;, 3;572,587,570;, 3;575,588,573;, 3;578,589,576;, 3;581,590,579;, 3;584,591,582;, 3;566,592,585;, 3;592,566,593;, 3;569,594,586;, 3;594,569,595;, 3;572,596,587;, 3;596,572,597;, 3;575,598,588;, 3;598,575,599;, 3;578,600,589;, 3;600,578,601;, 3;581,602,590;, 3;602,581,603;, 3;584,604,591;, 3;604,584,605;, 3;593,606,592;, 3;606,593,607;, 3;595,608,594;, 3;608,595,609;, 3;597,610,596;, 3;610,597,611;, 3;599,612,598;, 3;612,599,613;, 3;601,614,600;, 3;614,601,615;, 3;603,616,602;, 3;616,603,617;, 3;605,618,604;, 3;618,605,619;, 3;607,620,606;, 3;620,607,621;, 3;609,622,608;, 3;622,609,623;, 3;611,624,610;, 3;624,611,625;, 3;613,626,612;, 3;626,613,627;, 3;615,628,614;, 3;628,615,629;, 3;617,630,616;, 3;630,617,631;, 3;619,632,618;, 3;632,619,633;, 3;620,621,634;, 3;622,623,635;, 3;624,625,636;, 3;626,627,637;, 3;628,629,638;, 3;630,631,639;, 3;632,633,640;, 3;634,641,620;, 3;641,634,642;, 3;635,642,622;, 3;642,635,643;, 3;636,643,624;, 3;643,636,644;, 3;637,644,626;, 3;644,637,645;, 3;638,645,628;, 3;645,638,646;, 3;639,646,630;, 3;646,639,647;, 3;640,647,632;, 3;647,640,648;, 3;651,650,649;, 3;650,651,652;, 3;654,653,651;, 3;653,654,655;, 3;657,656,654;, 3;656,657,658;, 3;660,659,657;, 3;659,660,661;, 3;663,662,660;, 3;662,663,664;, 3;666,665,663;, 3;665,666,667;, 3;669,668,666;, 3;668,669,670;, 3;652,671,650;, 3;655,672,653;, 3;658,673,656;, 3;661,674,659;, 3;652,675,671;, 3;675,652,676;, 3;655,677,672;, 3;677,655,678;, 3;658,679,673;, 3;679,658,680;, 3;661,681,674;, 3;681,661,682;, 3;664,683,662;, 3;683,664,684;, 3;667,685,665;, 3;685,667,686;, 3;670,687,668;, 3;687,670,688;, 3;676,689,675;, 3;689,676,690;, 3;678,691,677;, 3;691,678,692;, 3;680,693,679;, 3;693,680,694;, 3;682,695,681;, 3;695,682,696;, 3;684,697,683;, 3;697,684,698;, 3;686,699,685;, 3;699,686,700;, 3;688,701,687;, 3;701,688,702;, 3;690,703,689;, 3;703,690,704;, 3;692,705,691;, 3;705,692,706;, 3;694,707,693;, 3;707,694,708;, 3;696,709,695;, 3;709,696,710;, 3;698,711,697;, 3;711,698,712;, 3;700,713,699;, 3;713,700,714;, 3;702,715,701;, 3;715,702,716;, 3;709,710,717;, 3;711,712,718;, 3;713,714,719;, 3;715,716,720;, 3;704,721,703;, 3;721,704,722;, 3;706,722,705;, 3;722,706,723;, 3;708,723,707;, 3;723,708,724;, 3;717,724,709;, 3;724,717,725;, 3;718,725,711;, 3;725,718,726;, 3;719,726,713;, 3;726,719,727;, 3;720,727,715;, 3;727,720,728;, 3;731,730,729;, 3;730,731,732;, 3;734,733,731;, 3;733,734,735;, 3;737,736,734;, 3;736,737,738;, 3;740,739,737;, 3;739,740,741;, 3;743,742,740;, 3;742,743,744;, 3;746,745,743;, 3;745,746,747;, 3;749,748,746;, 3;748,749,750;, 3;732,751,730;, 3;735,752,733;, 3;738,753,736;, 3;741,754,739;, 3;732,755,751;, 3;755,732,756;, 3;735,757,752;, 3;757,735,758;, 3;738,759,753;, 3;759,738,760;, 3;741,761,754;, 3;761,741,762;, 3;744,763,742;, 3;763,744,764;, 3;747,765,745;, 3;765,747,766;, 3;750,767,748;, 3;767,750,768;, 3;756,769,755;, 3;769,756,770;, 3;758,771,757;, 3;771,758,772;, 3;760,773,759;, 3;773,760,774;, 3;762,775,761;, 3;775,762,776;, 3;764,777,763;, 3;777,764,778;, 3;766,779,765;, 3;779,766,780;, 3;768,781,767;, 3;781,768,782;, 3;770,783,769;, 3;783,770,784;, 3;772,785,771;, 3;785,772,786;, 3;774,787,773;, 3;787,774,788;, 3;776,789,775;, 3;789,776,790;, 3;778,791,777;, 3;791,778,792;, 3;780,793,779;, 3;793,780,794;, 3;782,795,781;, 3;795,782,796;, 3;784,797,783;, 3;797,784,798;, 3;786,798,785;, 3;798,786,799;, 3;788,799,787;, 3;799,788,800;, 3;790,800,789;, 3;800,790,801;, 3;792,801,791;, 3;801,792,802;, 3;794,802,793;, 3;802,794,803;, 3;796,803,795;, 3;803,796,804;, 3;807,806,805;, 3;806,807,808;, 3;810,809,807;, 3;809,810,811;, 3;813,812,810;, 3;812,813,814;, 3;816,815,813;, 3;815,816,817;, 3;819,818,816;, 3;818,819,820;, 3;822,821,819;, 3;821,822,823;, 3;825,824,822;, 3;824,825,826;, 3;808,827,806;, 3;827,808,828;, 3;811,829,809;, 3;829,811,830;, 3;814,831,812;, 3;831,814,832;, 3;817,833,815;, 3;833,817,834;, 3;820,835,818;, 3;835,820,836;, 3;823,837,821;, 3;837,823,838;, 3;826,839,824;, 3;839,826,840;, 3;828,841,827;, 3;841,828,842;, 3;830,843,829;, 3;843,830,844;, 3;832,845,831;, 3;845,832,846;, 3;834,847,833;, 3;847,834,848;, 3;836,849,835;, 3;849,836,850;, 3;838,851,837;, 3;851,838,852;, 3;840,853,839;, 3;853,840,854;, 3;842,855,841;, 3;855,842,856;, 3;844,857,843;, 3;857,844,858;, 3;846,859,845;, 3;859,846,860;, 3;848,861,847;, 3;861,848,862;, 3;850,863,849;, 3;863,850,864;, 3;852,865,851;, 3;865,852,866;, 3;854,867,853;, 3;867,854,868;, 3;856,869,855;, 3;869,856,870;, 3;858,870,857;, 3;870,858,871;, 3;860,871,859;, 3;871,860,872;, 3;862,872,861;, 3;872,862,873;, 3;864,873,863;, 3;873,864,874;, 3;866,874,865;, 3;874,866,875;, 3;868,875,867;, 3;875,868,876;, 3;879,878,877;, 3;878,879,880;, 3;882,881,879;, 3;881,882,883;, 3;885,884,882;, 3;884,885,886;, 3;888,887,885;, 3;887,888,889;, 3;891,890,888;, 3;890,891,892;, 3;894,893,891;, 3;893,894,895;, 3;897,896,894;, 3;896,897,898;, 3;880,899,878;, 3;899,880,900;, 3;883,901,881;, 3;901,883,902;, 3;886,903,884;, 3;903,886,904;, 3;889,905,887;, 3;905,889,906;, 3;892,907,890;, 3;907,892,908;, 3;895,909,893;, 3;909,895,910;, 3;898,911,896;, 3;911,898,912;, 3;900,913,899;, 3;913,900,914;, 3;902,915,901;, 3;915,902,916;, 3;904,917,903;, 3;917,904,918;, 3;906,919,905;, 3;919,906,920;, 3;908,921,907;, 3;921,908,922;, 3;910,923,909;, 3;923,910,924;, 3;912,925,911;, 3;925,912,926;, 3;914,927,913;, 3;927,914,928;, 3;916,929,915;, 3;929,916,930;, 3;918,931,917;, 3;931,918,932;, 3;920,933,919;, 3;933,920,934;, 3;922,935,921;, 3;935,922,936;, 3;924,937,923;, 3;937,924,938;, 3;926,939,925;, 3;939,926,940;, 3;943,942,941;, 3;944,943,941;, 3;945,944,941;, 3;875,876,877;, 3;874,875,877;, 3;873,874,877;, 3;872,873,877;, 3;871,872,877;, 3;870,871,877;, 3;869,870,877;, 3;869,877,946;, 3;869,946,945;, 3;947,869,945;, 3;947,945,941;, 3;948,947,941;, 3;949,948,941;, 3;803,804,805;, 3;802,803,805;, 3;801,802,805;, 3;800,801,805;, 3;799,800,805;, 3;798,799,805;, 3;797,798,805;, 3;797,805,950;, 3;951,797,950;, 3;951,950,949;, 3;952,951,949;, 3;952,949,941;, 3;953,952,941;, 3;954,953,941;, 3;727,728,729;, 3;726,727,729;, 3;725,726,729;, 3;724,725,729;, 3;723,724,729;, 3;722,723,729;, 3;721,722,729;, 3;721,729,955;, 3;956,721,955;, 3;956,955,954;, 3;957,956,954;, 3;957,954,941;, 3;958,957,941;, 3;647,648,649;, 3;646,647,649;, 3;645,646,649;, 3;644,645,649;, 3;643,644,649;, 3;642,643,649;, 3;641,642,649;, 3;641,649,959;, 3;960,641,959;, 3;960,959,958;, 3;961,960,958;, 3;961,958,941;, 3;962,961,941;, 3;561,562,563;, 3;560,561,563;, 3;559,560,563;, 3;558,559,563;, 3;557,558,563;, 3;556,557,563;, 3;555,556,563;, 3;555,563,963;, 3;964,555,963;, 3;964,963,962;, 3;965,964,962;, 3;965,962,941;, 3;966,965,941;, 3;475,476,477;, 3;474,475,477;, 3;473,474,477;, 3;472,473,477;, 3;471,472,477;, 3;470,471,477;, 3;469,470,477;, 3;469,477,967;, 3;968,469,967;, 3;968,967,966;, 3;969,968,966;, 3;969,966,941;, 3;970,969,941;, 3;389,390,391;, 3;388,389,391;, 3;387,388,391;, 3;386,387,391;, 3;385,386,391;, 3;384,385,391;, 3;383,384,391;, 3;383,391,971;, 3;972,383,971;, 3;972,971,970;, 3;973,972,970;, 3;973,970,941;, 3;974,973,941;, 3;304,305,306;, 3;303,304,306;, 3;302,303,306;, 3;301,302,306;, 3;300,301,306;, 3;299,300,306;, 3;298,299,306;, 3;298,306,975;, 3;976,298,975;, 3;976,975,974;, 3;977,976,974;, 3;977,974,941;, 3;978,977,941;, 3;224,225,226;, 3;223,224,226;, 3;222,223,226;, 3;221,222,226;, 3;220,221,226;, 3;219,220,226;, 3;218,219,226;, 3;218,226,979;, 3;980,218,979;, 3;980,979,978;, 3;981,980,978;, 3;981,978,941;, 3;982,981,941;, 3;148,149,150;, 3;147,148,150;, 3;146,147,150;, 3;145,146,150;, 3;144,145,150;, 3;143,144,150;, 3;142,143,150;, 3;142,150,983;, 3;984,142,983;, 3;984,983,982;, 3;985,984,982;, 3;985,982,941;, 3;986,985,941;, 3;76,77,78;, 3;75,76,78;, 3;74,75,78;, 3;73,74,78;, 3;72,73,78;, 3;71,72,78;, 3;70,71,78;, 3;70,78,987;, 3;988,70,987;, 3;988,987,986;, 3;989,988,986;, 3;989,986,941;, 3;990,989,941;, 3;22,23,990;, 3;990,941,22;, 3;991,26,27;, 3;992,991,27;, 3;993,992,27;, 3;80,78,77;, 3;83,80,77;, 3;86,83,77;, 3;89,86,77;, 3;92,89,77;, 3;95,92,77;, 3;98,95,77;, 3;98,77,994;, 3;98,994,993;, 3;995,98,993;, 3;995,993,27;, 3;996,995,27;, 3;997,996,27;, 3;152,150,149;, 3;155,152,149;, 3;158,155,149;, 3;161,158,149;, 3;164,161,149;, 3;167,164,149;, 3;170,167,149;, 3;170,149,998;, 3;999,170,998;, 3;999,998,997;, 3;1000,999,997;, 3;1000,997,27;, 3;1001,1000,27;, 3;1002,1001,27;, 3;228,226,225;, 3;231,228,225;, 3;234,231,225;, 3;237,234,225;, 3;240,237,225;, 3;243,240,225;, 3;246,243,225;, 3;246,225,1003;, 3;1004,246,1003;, 3;1004,1003,1002;, 3;1005,1004,1002;, 3;1005,1002,27;, 3;1006,1005,27;, 3;308,306,305;, 3;311,308,305;, 3;314,311,305;, 3;317,314,305;, 3;320,317,305;, 3;323,320,305;, 3;326,323,305;, 3;326,305,1007;, 3;1008,326,1007;, 3;1008,1007,1006;, 3;1009,1008,1006;, 3;1009,1006,27;, 3;1010,1009,27;, 3;393,391,390;, 3;396,393,390;, 3;399,396,390;, 3;402,399,390;, 3;405,402,390;, 3;408,405,390;, 3;411,408,390;, 3;411,390,1011;, 3;1012,411,1011;, 3;1012,1011,1010;, 3;1013,1012,1010;, 3;1013,1010,27;, 3;1014,1013,27;, 3;479,477,476;, 3;482,479,476;, 3;485,482,476;, 3;488,485,476;, 3;491,488,476;, 3;494,491,476;, 3;497,494,476;, 3;497,476,1015;, 3;1016,497,1015;, 3;1016,1015,1014;, 3;1017,1016,1014;, 3;1017,1014,27;, 3;1018,1017,27;, 3;565,563,562;, 3;568,565,562;, 3;571,568,562;, 3;574,571,562;, 3;577,574,562;, 3;580,577,562;, 3;583,580,562;, 3;583,562,1019;, 3;1020,583,1019;, 3;1020,1019,1018;, 3;1021,1020,1018;, 3;1022,1021,1018;, 3;1022,1018,27;, 3;1023,1022,27;, 3;651,649,648;, 3;654,651,648;, 3;657,654,648;, 3;660,657,648;, 3;663,660,648;, 3;666,663,648;, 3;669,666,648;, 3;669,648,1024;, 3;1025,669,1024;, 3;1025,1024,1023;, 3;1026,1025,1023;, 3;1026,1023,27;, 3;1027,1026,27;, 3;731,729,728;, 3;734,731,728;, 3;737,734,728;, 3;740,737,728;, 3;743,740,728;, 3;746,743,728;, 3;749,746,728;, 3;749,728,1028;, 3;1029,749,1028;, 3;1029,1028,1027;, 3;1030,1029,1027;, 3;1030,1027,27;, 3;1031,1030,27;, 3;807,805,804;, 3;810,807,804;, 3;813,810,804;, 3;816,813,804;, 3;819,816,804;, 3;822,819,804;, 3;825,822,804;, 3;825,804,1032;, 3;1033,825,1032;, 3;1033,1032,1031;, 3;1034,1033,1031;, 3;1034,1031,27;, 3;1035,1034,27;, 3;879,877,876;, 3;882,879,876;, 3;885,882,876;, 3;888,885,876;, 3;891,888,876;, 3;894,891,876;, 3;897,894,876;, 3;897,876,1036;, 3;1037,897,1036;, 3;1037,1036,1035;, 3;1038,1037,1035;, 3;1038,1035,27;, 3;1039,1038,27;, 3;1041,1040,1039;, 3;1039,27,1041;, 3;928,1042,927;, 3;1042,928,1043;, 3;930,1043,929;, 3;1043,930,1044;, 3;932,1044,931;, 3;1044,932,1045;, 3;934,1045,933;, 3;1045,934,1046;, 3;936,1046,935;, 3;1046,936,1047;, 3;938,1047,937;, 3;1047,938,1048;, 3;940,1048,939;, 3;1048,940,1049;, 3;1048,1049,1050;, 3;1047,1048,1050;, 3;1046,1047,1050;, 3;1045,1046,1050;, 3;1044,1045,1050;, 3;1043,1044,1050;, 3;1042,1043,1050;, 3;942,1042,1050;, 3;942,1050,941;, 3;1049,1040,1041;, 3;1051,1050,1049;, 3;1049,1041,1051;, 3;1054,1053,1052;, 3;1053,1054,1055;, 3;1057,1056,1054;, 3;1056,1057,1058;, 3;1060,1059,1057;, 3;1059,1060,1061;, 3;1063,1062,1060;, 3;1062,1063,1064;, 3;1066,1065,1063;, 3;1065,1066,1067;, 3;1069,1068,1066;, 3;1068,1069,1070;, 3;1072,1071,1069;, 3;1071,1072,1073;, 3;1055,1074,1053;, 3;1074,1055,1075;, 3;1058,1076,1056;, 3;1076,1058,1077;, 3;1061,1078,1059;, 3;1078,1061,1079;, 3;1064,1080,1062;, 3;1080,1064,1081;, 3;1067,1082,1065;, 3;1082,1067,1083;, 3;1070,1084,1068;, 3;1084,1070,1085;, 3;1073,1086,1071;, 3;1086,1073,1087;, 3;1075,1088,1074;, 3;1088,1075,1089;, 3;1077,1090,1076;, 3;1090,1077,1091;, 3;1079,1092,1078;, 3;1092,1079,1093;, 3;1081,1094,1080;, 3;1094,1081,1095;, 3;1083,1096,1082;, 3;1096,1083,1097;, 3;1085,1098,1084;, 3;1098,1085,1099;, 3;1087,1100,1086;, 3;1100,1087,1101;, 3;1089,1102,1088;, 3;1102,1089,1103;, 3;1091,1104,1090;, 3;1104,1091,1105;, 3;1093,1106,1092;, 3;1106,1093,1107;, 3;1095,1108,1094;, 3;1108,1095,1109;, 3;1097,1110,1096;, 3;1110,1097,1111;, 3;1099,1112,1098;, 3;1112,1099,1113;, 3;1101,1114,1100;, 3;1114,1101,1115;, 3;1103,1116,1102;, 3;1116,1103,1117;, 3;1105,1117,1104;, 3;1117,1105,1118;, 3;1107,1118,1106;, 3;1118,1107,1119;, 3;1109,1119,1108;, 3;1119,1109,1120;, 3;1111,1120,1110;, 3;1120,1111,1121;, 3;1113,1121,1112;, 3;1121,1113,1122;, 3;1115,1122,1114;, 3;1122,1115,1123;, 3;1126,1125,1124;, 3;1125,1126,1127;, 3;1129,1128,1126;, 3;1128,1129,1130;, 3;1132,1131,1129;, 3;1131,1132,1133;, 3;1135,1134,1132;, 3;1134,1135,1136;, 3;1138,1137,1135;, 3;1137,1138,1139;, 3;1141,1140,1138;, 3;1140,1141,1142;, 3;1144,1143,1141;, 3;1143,1144,1145;, 3;1127,1146,1125;, 3;1146,1127,1147;, 3;1130,1148,1128;, 3;1148,1130,1149;, 3;1133,1150,1131;, 3;1150,1133,1151;, 3;1136,1152,1134;, 3;1152,1136,1153;, 3;1139,1154,1137;, 3;1154,1139,1155;, 3;1142,1156,1140;, 3;1156,1142,1157;, 3;1145,1158,1143;, 3;1158,1145,1159;, 3;1147,1160,1146;, 3;1160,1147,1161;, 3;1149,1162,1148;, 3;1162,1149,1163;, 3;1151,1164,1150;, 3;1164,1151,1165;, 3;1153,1166,1152;, 3;1166,1153,1167;, 3;1155,1168,1154;, 3;1168,1155,1169;, 3;1157,1170,1156;, 3;1170,1157,1171;, 3;1159,1172,1158;, 3;1172,1159,1173;, 3;1161,1174,1160;, 3;1174,1161,1175;, 3;1163,1176,1162;, 3;1176,1163,1177;, 3;1165,1178,1164;, 3;1178,1165,1179;, 3;1167,1180,1166;, 3;1180,1167,1181;, 3;1169,1182,1168;, 3;1182,1169,1183;, 3;1171,1184,1170;, 3;1184,1171,1185;, 3;1173,1186,1172;, 3;1186,1173,1187;, 3;1175,1188,1174;, 3;1188,1175,1189;, 3;1177,1189,1176;, 3;1189,1177,1190;, 3;1179,1190,1178;, 3;1190,1179,1191;, 3;1181,1191,1180;, 3;1191,1181,1192;, 3;1183,1192,1182;, 3;1192,1183,1193;, 3;1185,1193,1184;, 3;1193,1185,1194;, 3;1187,1194,1186;, 3;1194,1187,1195;, 3;1198,1197,1196;, 3;1197,1198,1199;, 3;1201,1200,1198;, 3;1200,1201,1202;, 3;1204,1203,1201;, 3;1203,1204,1205;, 3;1207,1206,1204;, 3;1206,1207,1208;, 3;1210,1209,1207;, 3;1209,1210,1211;, 3;1213,1212,1210;, 3;1212,1213,1214;, 3;1216,1215,1213;, 3;1215,1216,1217;, 3;1202,1218,1200;, 3;1199,1219,1197;, 3;1219,1199,1220;, 3;1202,1221,1218;, 3;1221,1202,1222;, 3;1205,1223,1203;, 3;1223,1205,1224;, 3;1208,1225,1206;, 3;1225,1208,1226;, 3;1211,1227,1209;, 3;1227,1211,1228;, 3;1214,1229,1212;, 3;1229,1214,1230;, 3;1217,1231,1215;, 3;1231,1217,1232;, 3;1220,1233,1219;, 3;1233,1220,1234;, 3;1222,1235,1221;, 3;1235,1222,1236;, 3;1224,1237,1223;, 3;1237,1224,1238;, 3;1226,1239,1225;, 3;1239,1226,1240;, 3;1228,1241,1227;, 3;1241,1228,1242;, 3;1230,1243,1229;, 3;1243,1230,1244;, 3;1232,1245,1231;, 3;1245,1232,1246;, 3;1234,1247,1233;, 3;1247,1234,1248;, 3;1236,1249,1235;, 3;1249,1236,1250;, 3;1238,1251,1237;, 3;1251,1238,1252;, 3;1240,1253,1239;, 3;1253,1240,1254;, 3;1242,1255,1241;, 3;1255,1242,1256;, 3;1244,1257,1243;, 3;1257,1244,1258;, 3;1246,1259,1245;, 3;1259,1246,1260;, 3;1247,1248,1261;, 3;1249,1250,1262;, 3;1253,1254,1263;, 3;1255,1256,1264;, 3;1257,1258,1265;, 3;1259,1260,1266;, 3;1261,1267,1247;, 3;1267,1261,1268;, 3;1262,1268,1249;, 3;1268,1262,1269;, 3;1252,1269,1251;, 3;1269,1252,1270;, 3;1263,1270,1253;, 3;1270,1263,1271;, 3;1264,1271,1255;, 3;1271,1264,1272;, 3;1265,1272,1257;, 3;1272,1265,1273;, 3;1266,1273,1259;, 3;1273,1266,1274;, 3;1277,1276,1275;, 3;1276,1277,1278;, 3;1280,1279,1277;, 3;1279,1280,1281;, 3;1283,1282,1280;, 3;1282,1283,1284;, 3;1286,1285,1283;, 3;1285,1286,1287;, 3;1289,1288,1286;, 3;1288,1289,1290;, 3;1292,1291,1289;, 3;1291,1292,1293;, 3;1295,1294,1292;, 3;1294,1295,1296;, 3;1278,1297,1276;, 3;1281,1298,1279;, 3;1284,1299,1282;, 3;1287,1300,1285;, 3;1293,1301,1291;, 3;1296,1302,1294;, 3;1278,1303,1297;, 3;1303,1278,1304;, 3;1281,1305,1298;, 3;1305,1281,1306;, 3;1284,1307,1299;, 3;1307,1284,1308;, 3;1287,1309,1300;, 3;1309,1287,1310;, 3;1290,1311,1288;, 3;1311,1290,1312;, 3;1293,1313,1301;, 3;1313,1293,1314;, 3;1296,1315,1302;, 3;1315,1296,1316;, 3;1304,1317,1303;, 3;1317,1304,1318;, 3;1306,1319,1305;, 3;1319,1306,1320;, 3;1308,1321,1307;, 3;1321,1308,1322;, 3;1310,1323,1309;, 3;1323,1310,1324;, 3;1312,1325,1311;, 3;1325,1312,1326;, 3;1314,1327,1313;, 3;1327,1314,1328;, 3;1316,1329,1315;, 3;1329,1316,1330;, 3;1318,1331,1317;, 3;1331,1318,1332;, 3;1320,1333,1319;, 3;1333,1320,1334;, 3;1322,1335,1321;, 3;1335,1322,1336;, 3;1324,1337,1323;, 3;1337,1324,1338;, 3;1326,1339,1325;, 3;1339,1326,1340;, 3;1328,1341,1327;, 3;1341,1328,1342;, 3;1330,1343,1329;, 3;1343,1330,1344;, 3;1331,1332,1345;, 3;1333,1334,1346;, 3;1337,1338,1347;, 3;1339,1340,1348;, 3;1341,1342,1349;, 3;1343,1344,1350;, 3;1345,1351,1331;, 3;1351,1345,1352;, 3;1346,1352,1333;, 3;1352,1346,1353;, 3;1336,1353,1335;, 3;1353,1336,1354;, 3;1347,1354,1337;, 3;1354,1347,1355;, 3;1348,1355,1339;, 3;1355,1348,1356;, 3;1349,1356,1341;, 3;1356,1349,1357;, 3;1350,1357,1343;, 3;1357,1350,1358;, 3;1361,1360,1359;, 3;1360,1361,1362;, 3;1364,1363,1361;, 3;1363,1364,1365;, 3;1367,1366,1364;, 3;1366,1367,1368;, 3;1370,1369,1367;, 3;1369,1370,1371;, 3;1373,1372,1370;, 3;1372,1373,1374;, 3;1376,1375,1373;, 3;1375,1376,1377;, 3;1379,1378,1376;, 3;1378,1379,1380;, 3;1362,1381,1360;, 3;1365,1382,1363;, 3;1368,1383,1366;, 3;1371,1384,1369;, 3;1374,1385,1372;, 3;1377,1386,1375;, 3;1380,1387,1378;, 3;1362,1388,1381;, 3;1388,1362,1389;, 3;1365,1390,1382;, 3;1390,1365,1391;, 3;1368,1392,1383;, 3;1392,1368,1393;, 3;1371,1394,1384;, 3;1394,1371,1395;, 3;1374,1396,1385;, 3;1396,1374,1397;, 3;1377,1398,1386;, 3;1398,1377,1399;, 3;1380,1400,1387;, 3;1400,1380,1401;, 3;1389,1402,1388;, 3;1402,1389,1403;, 3;1391,1404,1390;, 3;1404,1391,1405;, 3;1393,1406,1392;, 3;1406,1393,1407;, 3;1395,1408,1394;, 3;1408,1395,1409;, 3;1397,1410,1396;, 3;1410,1397,1411;, 3;1399,1412,1398;, 3;1412,1399,1413;, 3;1401,1414,1400;, 3;1414,1401,1415;, 3;1403,1416,1402;, 3;1416,1403,1417;, 3;1405,1418,1404;, 3;1418,1405,1419;, 3;1407,1420,1406;, 3;1420,1407,1421;, 3;1409,1422,1408;, 3;1422,1409,1423;, 3;1411,1424,1410;, 3;1424,1411,1425;, 3;1413,1426,1412;, 3;1426,1413,1427;, 3;1415,1428,1414;, 3;1428,1415,1429;, 3;1416,1417,1430;, 3;1418,1419,1431;, 3;1420,1421,1432;, 3;1422,1423,1433;, 3;1424,1425,1434;, 3;1426,1427,1435;, 3;1428,1429,1436;, 3;1430,1437,1416;, 3;1437,1430,1438;, 3;1431,1438,1418;, 3;1438,1431,1439;, 3;1432,1439,1420;, 3;1439,1432,1440;, 3;1433,1440,1422;, 3;1440,1433,1441;, 3;1434,1441,1424;, 3;1441,1434,1442;, 3;1435,1442,1426;, 3;1442,1435,1443;, 3;1436,1443,1428;, 3;1443,1436,1444;, 3;1447,1446,1445;, 3;1446,1447,1448;, 3;1450,1449,1447;, 3;1449,1450,1451;, 3;1453,1452,1450;, 3;1452,1453,1454;, 3;1456,1455,1453;, 3;1455,1456,1457;, 3;1459,1458,1456;, 3;1458,1459,1460;, 3;1462,1461,1459;, 3;1461,1462,1463;, 3;1465,1464,1462;, 3;1464,1465,1466;, 3;1448,1467,1446;, 3;1451,1468,1449;, 3;1454,1469,1452;, 3;1457,1470,1455;, 3;1460,1471,1458;, 3;1463,1472,1461;, 3;1466,1473,1464;, 3;1448,1474,1467;, 3;1474,1448,1475;, 3;1451,1476,1468;, 3;1476,1451,1477;, 3;1454,1478,1469;, 3;1478,1454,1479;, 3;1457,1480,1470;, 3;1480,1457,1481;, 3;1460,1482,1471;, 3;1482,1460,1483;, 3;1463,1484,1472;, 3;1484,1463,1485;, 3;1466,1486,1473;, 3;1486,1466,1487;, 3;1475,1488,1474;, 3;1488,1475,1489;, 3;1477,1490,1476;, 3;1490,1477,1491;, 3;1479,1492,1478;, 3;1492,1479,1493;, 3;1481,1494,1480;, 3;1494,1481,1495;, 3;1483,1496,1482;, 3;1496,1483,1497;, 3;1485,1498,1484;, 3;1498,1485,1499;, 3;1487,1500,1486;, 3;1500,1487,1501;, 3;1489,1502,1488;, 3;1502,1489,1503;, 3;1491,1504,1490;, 3;1504,1491,1505;, 3;1493,1506,1492;, 3;1506,1493,1507;, 3;1495,1508,1494;, 3;1508,1495,1509;, 3;1497,1510,1496;, 3;1510,1497,1511;, 3;1499,1512,1498;, 3;1512,1499,1513;, 3;1501,1514,1500;, 3;1514,1501,1515;, 3;1502,1503,1516;, 3;1504,1505,1517;, 3;1506,1507,1518;, 3;1508,1509,1519;, 3;1510,1511,1520;, 3;1512,1513,1521;, 3;1514,1515,1522;, 3;1516,1523,1502;, 3;1523,1516,1524;, 3;1517,1524,1504;, 3;1524,1517,1525;, 3;1518,1525,1506;, 3;1525,1518,1526;, 3;1519,1526,1508;, 3;1526,1519,1527;, 3;1520,1527,1510;, 3;1527,1520,1528;, 3;1521,1528,1512;, 3;1528,1521,1529;, 3;1522,1529,1514;, 3;1529,1522,1530;, 3;1533,1532,1531;, 3;1532,1533,1534;, 3;1536,1535,1533;, 3;1535,1536,1537;, 3;1539,1538,1536;, 3;1538,1539,1540;, 3;1542,1541,1539;, 3;1541,1542,1543;, 3;1545,1544,1542;, 3;1544,1545,1546;, 3;1548,1547,1545;, 3;1547,1548,1549;, 3;1551,1550,1548;, 3;1550,1551,1552;, 3;1534,1553,1532;, 3;1537,1554,1535;, 3;1540,1555,1538;, 3;1543,1556,1541;, 3;1546,1557,1544;, 3;1549,1558,1547;, 3;1552,1559,1550;, 3;1534,1560,1553;, 3;1560,1534,1561;, 3;1537,1562,1554;, 3;1562,1537,1563;, 3;1540,1564,1555;, 3;1564,1540,1565;, 3;1543,1566,1556;, 3;1566,1543,1567;, 3;1546,1568,1557;, 3;1568,1546,1569;, 3;1549,1570,1558;, 3;1570,1549,1571;, 3;1552,1572,1559;, 3;1572,1552,1573;, 3;1561,1574,1560;, 3;1574,1561,1575;, 3;1563,1576,1562;, 3;1576,1563,1577;, 3;1565,1578,1564;, 3;1578,1565,1579;, 3;1567,1580,1566;, 3;1580,1567,1581;, 3;1569,1582,1568;, 3;1582,1569,1583;, 3;1571,1584,1570;, 3;1584,1571,1585;, 3;1573,1586,1572;, 3;1586,1573,1587;, 3;1575,1588,1574;, 3;1588,1575,1589;, 3;1577,1590,1576;, 3;1590,1577,1591;, 3;1579,1592,1578;, 3;1592,1579,1593;, 3;1581,1594,1580;, 3;1594,1581,1595;, 3;1583,1596,1582;, 3;1596,1583,1597;, 3;1585,1598,1584;, 3;1598,1585,1599;, 3;1587,1600,1586;, 3;1600,1587,1601;, 3;1588,1589,1602;, 3;1590,1591,1603;, 3;1592,1593,1604;, 3;1594,1595,1605;, 3;1596,1597,1606;, 3;1598,1599,1607;, 3;1600,1601,1608;, 3;1602,1609,1588;, 3;1609,1602,1610;, 3;1603,1610,1590;, 3;1610,1603,1611;, 3;1604,1611,1592;, 3;1611,1604,1612;, 3;1605,1612,1594;, 3;1612,1605,1613;, 3;1606,1613,1596;, 3;1613,1606,1614;, 3;1607,1614,1598;, 3;1614,1607,1615;, 3;1608,1615,1600;, 3;1615,1608,1616;, 3;1619,1618,1617;, 3;1618,1619,1620;, 3;1622,1621,1619;, 3;1621,1622,1623;, 3;1625,1624,1622;, 3;1624,1625,1626;, 3;1628,1627,1625;, 3;1627,1628,1629;, 3;1631,1630,1628;, 3;1630,1631,1632;, 3;1634,1633,1631;, 3;1633,1634,1635;, 3;1637,1636,1634;, 3;1636,1637,1638;, 3;1620,1639,1618;, 3;1623,1640,1621;, 3;1626,1641,1624;, 3;1629,1642,1627;, 3;1632,1643,1630;, 3;1635,1644,1633;, 3;1638,1645,1636;, 3;1620,1646,1639;, 3;1646,1620,1647;, 3;1623,1648,1640;, 3;1648,1623,1649;, 3;1626,1650,1641;, 3;1650,1626,1651;, 3;1629,1652,1642;, 3;1652,1629,1653;, 3;1632,1654,1643;, 3;1654,1632,1655;, 3;1635,1656,1644;, 3;1656,1635,1657;, 3;1638,1658,1645;, 3;1658,1638,1659;, 3;1647,1660,1646;, 3;1660,1647,1661;, 3;1649,1662,1648;, 3;1662,1649,1663;, 3;1651,1664,1650;, 3;1664,1651,1665;, 3;1653,1666,1652;, 3;1666,1653,1667;, 3;1655,1668,1654;, 3;1668,1655,1669;, 3;1657,1670,1656;, 3;1670,1657,1671;, 3;1659,1672,1658;, 3;1672,1659,1673;, 3;1661,1674,1660;, 3;1674,1661,1675;, 3;1663,1676,1662;, 3;1676,1663,1677;, 3;1665,1678,1664;, 3;1678,1665,1679;, 3;1667,1680,1666;, 3;1680,1667,1681;, 3;1669,1682,1668;, 3;1682,1669,1683;, 3;1671,1684,1670;, 3;1684,1671,1685;, 3;1673,1686,1672;, 3;1686,1673,1687;, 3;1674,1675,1688;, 3;1676,1677,1689;, 3;1678,1679,1690;, 3;1680,1681,1691;, 3;1682,1683,1692;, 3;1684,1685,1693;, 3;1686,1687,1694;, 3;1688,1695,1674;, 3;1695,1688,1696;, 3;1689,1696,1676;, 3;1696,1689,1697;, 3;1690,1697,1678;, 3;1697,1690,1698;, 3;1691,1698,1680;, 3;1698,1691,1699;, 3;1692,1699,1682;, 3;1699,1692,1700;, 3;1693,1700,1684;, 3;1700,1693,1701;, 3;1694,1701,1686;, 3;1701,1694,1702;, 3;1705,1704,1703;, 3;1704,1705,1706;, 3;1708,1707,1705;, 3;1707,1708,1709;, 3;1711,1710,1708;, 3;1710,1711,1712;, 3;1714,1713,1711;, 3;1713,1714,1715;, 3;1717,1716,1714;, 3;1716,1717,1718;, 3;1720,1719,1717;, 3;1719,1720,1721;, 3;1723,1722,1720;, 3;1722,1723,1724;, 3;1706,1725,1704;, 3;1709,1726,1707;, 3;1712,1727,1710;, 3;1715,1728,1713;, 3;1721,1729,1719;, 3;1724,1730,1722;, 3;1706,1731,1725;, 3;1731,1706,1732;, 3;1709,1733,1726;, 3;1733,1709,1734;, 3;1712,1735,1727;, 3;1735,1712,1736;, 3;1715,1737,1728;, 3;1737,1715,1738;, 3;1718,1739,1716;, 3;1739,1718,1740;, 3;1721,1741,1729;, 3;1741,1721,1742;, 3;1724,1743,1730;, 3;1743,1724,1744;, 3;1732,1745,1731;, 3;1745,1732,1746;, 3;1734,1747,1733;, 3;1747,1734,1748;, 3;1736,1749,1735;, 3;1749,1736,1750;, 3;1738,1751,1737;, 3;1751,1738,1752;, 3;1740,1753,1739;, 3;1753,1740,1754;, 3;1742,1755,1741;, 3;1755,1742,1756;, 3;1744,1757,1743;, 3;1757,1744,1758;, 3;1746,1759,1745;, 3;1759,1746,1760;, 3;1748,1761,1747;, 3;1761,1748,1762;, 3;1750,1763,1749;, 3;1763,1750,1764;, 3;1752,1765,1751;, 3;1765,1752,1766;, 3;1754,1767,1753;, 3;1767,1754,1768;, 3;1756,1769,1755;, 3;1769,1756,1770;, 3;1758,1771,1757;, 3;1771,1758,1772;, 3;1759,1760,1773;, 3;1761,1762,1774;, 3;1765,1766,1775;, 3;1767,1768,1776;, 3;1769,1770,1777;, 3;1771,1772,1778;, 3;1773,1779,1759;, 3;1779,1773,1780;, 3;1774,1780,1761;, 3;1780,1774,1781;, 3;1764,1781,1763;, 3;1781,1764,1782;, 3;1775,1782,1765;, 3;1782,1775,1783;, 3;1776,1783,1767;, 3;1783,1776,1784;, 3;1777,1784,1769;, 3;1784,1777,1785;, 3;1778,1785,1771;, 3;1785,1778,1786;, 3;1789,1788,1787;, 3;1788,1789,1790;, 3;1792,1791,1789;, 3;1791,1792,1793;, 3;1795,1794,1792;, 3;1794,1795,1796;, 3;1798,1797,1795;, 3;1797,1798,1799;, 3;1801,1800,1798;, 3;1800,1801,1802;, 3;1804,1803,1801;, 3;1803,1804,1805;, 3;1807,1806,1804;, 3;1806,1807,1808;, 3;1790,1809,1788;, 3;1793,1810,1791;, 3;1796,1811,1794;, 3;1799,1812,1797;, 3;1805,1813,1803;, 3;1808,1814,1806;, 3;1790,1815,1809;, 3;1815,1790,1816;, 3;1793,1817,1810;, 3;1817,1793,1818;, 3;1796,1819,1811;, 3;1819,1796,1820;, 3;1799,1821,1812;, 3;1821,1799,1822;, 3;1802,1823,1800;, 3;1823,1802,1824;, 3;1805,1825,1813;, 3;1825,1805,1826;, 3;1808,1827,1814;, 3;1827,1808,1828;, 3;1816,1829,1815;, 3;1829,1816,1830;, 3;1818,1831,1817;, 3;1831,1818,1832;, 3;1820,1833,1819;, 3;1833,1820,1834;, 3;1822,1835,1821;, 3;1835,1822,1836;, 3;1824,1837,1823;, 3;1837,1824,1838;, 3;1826,1839,1825;, 3;1839,1826,1840;, 3;1828,1841,1827;, 3;1841,1828,1842;, 3;1830,1843,1829;, 3;1843,1830,1844;, 3;1832,1845,1831;, 3;1845,1832,1846;, 3;1834,1847,1833;, 3;1847,1834,1848;, 3;1836,1849,1835;, 3;1849,1836,1850;, 3;1838,1851,1837;, 3;1851,1838,1852;, 3;1840,1853,1839;, 3;1853,1840,1854;, 3;1842,1855,1841;, 3;1855,1842,1856;, 3;1853,1854,1857;, 3;1844,1858,1843;, 3;1858,1844,1859;, 3;1846,1859,1845;, 3;1859,1846,1860;, 3;1848,1860,1847;, 3;1860,1848,1861;, 3;1850,1861,1849;, 3;1861,1850,1862;, 3;1852,1862,1851;, 3;1862,1852,1863;, 3;1857,1863,1853;, 3;1863,1857,1864;, 3;1856,1864,1855;, 3;1864,1856,1865;, 3;1868,1867,1866;, 3;1867,1868,1869;, 3;1871,1870,1868;, 3;1870,1871,1872;, 3;1874,1873,1871;, 3;1873,1874,1875;, 3;1877,1876,1874;, 3;1876,1877,1878;, 3;1880,1879,1877;, 3;1879,1880,1881;, 3;1883,1882,1880;, 3;1882,1883,1884;, 3;1886,1885,1883;, 3;1885,1886,1887;, 3;1869,1888,1867;, 3;1888,1869,1889;, 3;1872,1890,1870;, 3;1890,1872,1891;, 3;1875,1892,1873;, 3;1892,1875,1893;, 3;1878,1894,1876;, 3;1894,1878,1895;, 3;1881,1896,1879;, 3;1896,1881,1897;, 3;1884,1898,1882;, 3;1898,1884,1899;, 3;1887,1900,1885;, 3;1900,1887,1901;, 3;1889,1902,1888;, 3;1902,1889,1903;, 3;1891,1904,1890;, 3;1904,1891,1905;, 3;1893,1906,1892;, 3;1906,1893,1907;, 3;1895,1908,1894;, 3;1908,1895,1909;, 3;1897,1910,1896;, 3;1910,1897,1911;, 3;1899,1912,1898;, 3;1912,1899,1913;, 3;1901,1914,1900;, 3;1914,1901,1915;, 3;1903,1916,1902;, 3;1916,1903,1917;, 3;1905,1918,1904;, 3;1918,1905,1919;, 3;1907,1920,1906;, 3;1920,1907,1921;, 3;1909,1922,1908;, 3;1922,1909,1923;, 3;1911,1924,1910;, 3;1924,1911,1925;, 3;1913,1926,1912;, 3;1926,1913,1927;, 3;1915,1928,1914;, 3;1928,1915,1929;, 3;1917,1930,1916;, 3;1930,1917,1931;, 3;1919,1931,1918;, 3;1931,1919,1932;, 3;1921,1932,1920;, 3;1932,1921,1933;, 3;1923,1933,1922;, 3;1933,1923,1934;, 3;1925,1934,1924;, 3;1934,1925,1935;, 3;1927,1935,1926;, 3;1935,1927,1936;, 3;1929,1936,1928;, 3;1936,1929,1937;, 3;1940,1939,1938;, 3;1939,1940,1941;, 3;1943,1942,1940;, 3;1942,1943,1944;, 3;1946,1945,1943;, 3;1945,1946,1947;, 3;1949,1948,1946;, 3;1948,1949,1950;, 3;1952,1951,1949;, 3;1951,1952,1953;, 3;1955,1954,1952;, 3;1954,1955,1956;, 3;1958,1957,1955;, 3;1957,1958,1959;, 3;1941,1960,1939;, 3;1960,1941,1961;, 3;1944,1962,1942;, 3;1962,1944,1963;, 3;1947,1964,1945;, 3;1964,1947,1965;, 3;1950,1966,1948;, 3;1966,1950,1967;, 3;1953,1968,1951;, 3;1968,1953,1969;, 3;1956,1970,1954;, 3;1970,1956,1971;, 3;1959,1972,1957;, 3;1972,1959,1973;, 3;1961,1974,1960;, 3;1974,1961,1975;, 3;1963,1976,1962;, 3;1976,1963,1977;, 3;1965,1978,1964;, 3;1978,1965,1979;, 3;1967,1980,1966;, 3;1980,1967,1981;, 3;1969,1982,1968;, 3;1982,1969,1983;, 3;1971,1984,1970;, 3;1984,1971,1985;, 3;1973,1986,1972;, 3;1986,1973,1987;, 3;1975,1988,1974;, 3;1988,1975,1989;, 3;1977,1990,1976;, 3;1990,1977,1991;, 3;1979,1992,1978;, 3;1992,1979,1993;, 3;1981,1994,1980;, 3;1994,1981,1995;, 3;1983,1996,1982;, 3;1996,1983,1997;, 3;1985,1998,1984;, 3;1998,1985,1999;, 3;1987,2000,1986;, 3;2000,1987,2001;, 3;1989,2002,1988;, 3;2002,1989,2003;, 3;1991,2003,1990;, 3;2003,1991,2004;, 3;1993,2004,1992;, 3;2004,1993,2005;, 3;1995,2005,1994;, 3;2005,1995,2006;, 3;1997,2006,1996;, 3;2006,1997,2007;, 3;1999,2007,1998;, 3;2007,1999,2008;, 3;2001,2008,2000;, 3;2008,2001,2009;, 3;2008,2009,2010;, 3;2007,2008,2010;, 3;2006,2007,2010;, 3;2005,2006,2010;, 3;2004,2005,2010;, 3;2003,2004,2010;, 3;2002,2003,2010;, 3;2011,2002,2010;, 3;2012,2011,2010;, 3;2013,2012,2010;, 3;1936,1937,1938;, 3;1935,1936,1938;, 3;1934,1935,1938;, 3;1933,1934,1938;, 3;1932,1933,1938;, 3;1931,1932,1938;, 3;1930,1931,1938;, 3;1930,1938,2014;, 3;2015,1930,2014;, 3;2015,2014,2013;, 3;2015,2013,2010;, 3;2016,2015,2010;, 3;2017,2016,2010;, 3;1864,1865,1866;, 3;1863,1864,1866;, 3;1862,1863,1866;, 3;1861,1862,1866;, 3;1860,1861,1866;, 3;1859,1860,1866;, 3;1858,1859,1866;, 3;1858,1866,2018;, 3;2019,1858,2018;, 3;2019,2018,2017;, 3;2020,2019,2017;, 3;2020,2017,2010;, 3;2021,2020,2010;, 3;1785,1786,1787;, 3;1784,1785,1787;, 3;1783,1784,1787;, 3;1782,1783,1787;, 3;1781,1782,1787;, 3;1780,1781,1787;, 3;1779,1780,1787;, 3;1779,1787,2022;, 3;2023,1779,2022;, 3;2023,2022,2021;, 3;2024,2023,2021;, 3;2024,2021,2010;, 3;2025,2024,2010;, 3;1701,1702,1703;, 3;1700,1701,1703;, 3;1699,1700,1703;, 3;1698,1699,1703;, 3;1697,1698,1703;, 3;1696,1697,1703;, 3;1695,1696,1703;, 3;1695,1703,2026;, 3;2027,1695,2026;, 3;2027,2026,2025;, 3;2028,2027,2025;, 3;2028,2025,2010;, 3;2029,2028,2010;, 3;1615,1616,1617;, 3;1614,1615,1617;, 3;1613,1614,1617;, 3;1612,1613,1617;, 3;1611,1612,1617;, 3;1610,1611,1617;, 3;1609,1610,1617;, 3;1609,1617,2030;, 3;2031,1609,2030;, 3;2031,2030,2029;, 3;2032,2031,2029;, 3;2032,2029,2010;, 3;2033,2032,2010;, 3;1529,1530,1531;, 3;1528,1529,1531;, 3;1527,1528,1531;, 3;1526,1527,1531;, 3;1525,1526,1531;, 3;1524,1525,1531;, 3;1523,1524,1531;, 3;1523,1531,2034;, 3;2035,1523,2034;, 3;2035,2034,2033;, 3;2036,2035,2033;, 3;2036,2033,2010;, 3;2037,2036,2010;, 3;1443,1444,1445;, 3;1442,1443,1445;, 3;1441,1442,1445;, 3;1440,1441,1445;, 3;1439,1440,1445;, 3;1438,1439,1445;, 3;1437,1438,1445;, 3;1437,1445,2038;, 3;2039,1437,2038;, 3;2039,2038,2037;, 3;2040,2039,2037;, 3;2041,2040,2037;, 3;2041,2037,2010;, 3;2042,2041,2010;, 3;1357,1358,1359;, 3;1356,1357,1359;, 3;1355,1356,1359;, 3;1354,1355,1359;, 3;1353,1354,1359;, 3;1352,1353,1359;, 3;1351,1352,1359;, 3;1351,1359,2043;, 3;2044,1351,2043;, 3;2044,2043,2042;, 3;2045,2044,2042;, 3;2045,2042,2010;, 3;2046,2045,2010;, 3;1273,1274,1275;, 3;1272,1273,1275;, 3;1271,1272,1275;, 3;1270,1271,1275;, 3;1269,1270,1275;, 3;1268,1269,1275;, 3;1267,1268,1275;, 3;1267,1275,2047;, 3;2048,1267,2047;, 3;2048,2047,2046;, 3;2049,2048,2046;, 3;2049,2046,2010;, 3;2050,2049,2010;, 3;1194,1195,1196;, 3;1193,1194,1196;, 3;1192,1193,1196;, 3;1191,1192,1196;, 3;1190,1191,1196;, 3;1189,1190,1196;, 3;1188,1189,1196;, 3;1188,1196,2051;, 3;2052,1188,2051;, 3;2052,2051,2050;, 3;2053,2052,2050;, 3;2053,2050,2010;, 3;2054,2053,2010;, 3;1122,1123,1124;, 3;1121,1122,1124;, 3;1120,1121,1124;, 3;1119,1120,1124;, 3;1118,1119,1124;, 3;1117,1118,1124;, 3;1116,1117,1124;, 3;1116,1124,2055;, 3;2056,1116,2055;, 3;2056,2055,2054;, 3;2057,2056,2054;, 3;2057,2054,2010;, 3;2058,2057,2010;, 3;2060,2059,1052;, 3;2060,1052,2061;, 3;2060,2061,2058;, 3;2058,2010,2060;, 3;1054,1052,2059;, 3;1057,1054,2059;, 3;1060,1057,2059;, 3;1063,1060,2059;, 3;1066,1063,2059;, 3;1069,1066,2059;, 3;1072,1069,2059;, 3;2062,1072,2059;, 3;2063,2062,2059;, 3;2064,2063,2059;, 3;1126,1124,1123;, 3;1129,1126,1123;, 3;1132,1129,1123;, 3;1135,1132,1123;, 3;1138,1135,1123;, 3;1141,1138,1123;, 3;1144,1141,1123;, 3;1144,1123,2065;, 3;2066,1144,2065;, 3;2066,2065,2064;, 3;2066,2064,2059;, 3;2067,2066,2059;, 3;2068,2067,2059;, 3;1198,1196,1195;, 3;1201,1198,1195;, 3;1204,1201,1195;, 3;1207,1204,1195;, 3;1210,1207,1195;, 3;1213,1210,1195;, 3;1216,1213,1195;, 3;1216,1195,2069;, 3;2070,1216,2069;, 3;2070,2069,2068;, 3;2071,2070,2068;, 3;2071,2068,2059;, 3;2072,2071,2059;, 3;1277,1275,1274;, 3;1280,1277,1274;, 3;1283,1280,1274;, 3;1286,1283,1274;, 3;1289,1286,1274;, 3;1292,1289,1274;, 3;1295,1292,1274;, 3;1295,1274,2073;, 3;2074,1295,2073;, 3;2074,2073,2072;, 3;2075,2074,2072;, 3;2076,2075,2072;, 3;2076,2072,2059;, 3;2077,2076,2059;, 3;1361,1359,1358;, 3;1364,1361,1358;, 3;1367,1364,1358;, 3;1370,1367,1358;, 3;1373,1370,1358;, 3;1376,1373,1358;, 3;1379,1376,1358;, 3;1379,1358,2078;, 3;2079,1379,2078;, 3;2079,2078,2077;, 3;2080,2079,2077;, 3;2081,2080,2077;, 3;2081,2077,2059;, 3;2082,2081,2059;, 3;1447,1445,1444;, 3;1450,1447,1444;, 3;1453,1450,1444;, 3;1456,1453,1444;, 3;1459,1456,1444;, 3;1462,1459,1444;, 3;1465,1462,1444;, 3;1465,1444,2083;, 3;2084,1465,2083;, 3;2084,2083,2082;, 3;2085,2084,2082;, 3;2086,2085,2082;, 3;2086,2082,2059;, 3;2087,2086,2059;, 3;1533,1531,1530;, 3;1536,1533,1530;, 3;1539,1536,1530;, 3;1542,1539,1530;, 3;1545,1542,1530;, 3;1548,1545,1530;, 3;1551,1548,1530;, 3;1551,1530,2088;, 3;2089,1551,2088;, 3;2089,2088,2087;, 3;2090,2089,2087;, 3;2091,2090,2087;, 3;2091,2087,2059;, 3;2092,2091,2059;, 3;1619,1617,1616;, 3;1622,1619,1616;, 3;1625,1622,1616;, 3;1628,1625,1616;, 3;1631,1628,1616;, 3;1634,1631,1616;, 3;1637,1634,1616;, 3;1637,1616,2093;, 3;2094,1637,2093;, 3;2094,2093,2092;, 3;2095,2094,2092;, 3;2096,2095,2092;, 3;2096,2092,2059;, 3;2097,2096,2059;, 3;1705,1703,1702;, 3;1708,1705,1702;, 3;1711,1708,1702;, 3;1714,1711,1702;, 3;1717,1714,1702;, 3;1720,1717,1702;, 3;1723,1720,1702;, 3;1723,1702,2098;, 3;2099,1723,2098;, 3;2099,2098,2097;, 3;2100,2099,2097;, 3;2101,2100,2097;, 3;2101,2097,2059;, 3;2102,2101,2059;, 3;1789,1787,1786;, 3;1792,1789,1786;, 3;1795,1792,1786;, 3;1798,1795,1786;, 3;1801,1798,1786;, 3;1804,1801,1786;, 3;1807,1804,1786;, 3;1807,1786,2103;, 3;2104,1807,2103;, 3;2104,2103,2102;, 3;2105,2104,2102;, 3;2106,2105,2102;, 3;2106,2102,2059;, 3;2107,2106,2059;, 3;1868,1866,1865;, 3;1871,1868,1865;, 3;1874,1871,1865;, 3;1877,1874,1865;, 3;1880,1877,1865;, 3;1883,1880,1865;, 3;1886,1883,1865;, 3;1886,1865,2108;, 3;2109,1886,2108;, 3;2109,2108,2107;, 3;2110,2109,2107;, 3;2110,2107,2059;, 3;2111,2110,2059;, 3;1940,1938,1937;, 3;1943,1940,1937;, 3;1946,1943,1937;, 3;1949,1946,1937;, 3;1952,1949,1937;, 3;1955,1952,1937;, 3;1958,1955,1937;, 3;1958,1937,2112;, 3;2113,1958,2112;, 3;2113,2112,2111;, 3;2114,2113,2111;, 3;2114,2111,2059;, 3;2115,2114,2059;, 3;2116,2010,2009;, 3;2116,2009,2117;, 3;2116,2117,2115;, 3;2115,2059,2116;, 3;2120,2119,2118;, 3;2119,2120,2121;, 3;2123,2118,2122;, 3;2118,2123,2120;, 3;2125,2122,2124;, 3;2122,2125,2123;, 3;2121,2124,2119;, 3;2124,2121,2125;, 3;2127,2126,2120;, 3;2128,2127,2120;, 3;2129,2128,2120;, 3;2123,2125,2130;, 3;2123,2130,2129;, 3;2129,2120,2123;, 3;2131,2130,2125;, 3;2132,2131,2125;, 3;2133,2132,2125;, 3;2121,2120,2126;, 3;2121,2126,2133;, 3;2133,2125,2121;, 3;22,2128,2129;, 3;2128,22,941;, 3;2130,22,2129;, 3;22,2130,25;, 3;24,2130,2131;, 3;2130,24,25;, 3;2132,24,2131;, 3;24,2132,27;, 3;1041,2132,2133;, 3;2132,1041,27;, 3;2126,1041,2133;, 3;1041,2126,1051;, 3;1050,2126,2127;, 3;2126,1050,1051;, 3;2128,1050,2127;, 3;1050,2128,941;, 3;2135,2134,2119;, 3;2136,2135,2119;, 3;2124,2122,2136;, 3;2136,2119,2124;, 3;2137,2136,2122;, 3;2134,2137,2122;, 3;2118,2119,2134;, 3;2134,2122,2118;, 3;2059,2136,2137;, 3;2136,2059,2060;, 3;2116,2137,2134;, 3;2137,2116,2059;, 3;2010,2134,2135;, 3;2134,2010,2116;, 3;2060,2135,2136;, 3;2135,2060,2010;, 3;70,2065,1123;, 3;2065,70,988;, 3;988,2064,2065;, 3;2064,988,989;, 3;989,2063,2064;, 3;2063,989,990;, 3;990,2062,2063;, 3;2062,990,23;, 3;23,1072,2062;, 3;1072,23,0;, 3;1073,1072,0;, 3;1073,0,1;, 3;1,1087,1073;, 3;1087,1,28;, 3;28,1101,1087;, 3;1101,28,42;, 3;42,1115,1101;, 3;1115,42,56;, 3;56,1123,1115;, 3;1123,56,70;, 3;142,2069,1195;, 3;2069,142,984;, 3;984,2068,2069;, 3;2068,984,985;, 3;985,2067,2068;, 3;2067,985,986;, 3;986,2066,2067;, 3;2066,986,987;, 3;987,1144,2066;, 3;1144,987,78;, 3;78,1145,1144;, 3;1145,78,79;, 3;79,1159,1145;, 3;1159,79,100;, 3;100,1173,1159;, 3;1173,100,114;, 3;114,1187,1173;, 3;1187,114,128;, 3;128,1195,1187;, 3;1195,128,142;, 3;218,2073,1274;, 3;2073,218,980;, 3;980,2072,2073;, 3;2072,980,981;, 3;981,2071,2072;, 3;2071,981,982;, 3;982,2070,2071;, 3;2070,982,983;, 3;983,1216,2070;, 3;1216,983,150;, 3;150,1217,1216;, 3;1217,150,151;, 3;151,1232,1217;, 3;1232,151,172;, 3;172,1246,1232;, 3;1246,172,186;, 3;186,1260,1246;, 3;1260,186,200;, 3;200,1266,1260;, 3;200,1274,1266;, 3;1274,200,218;, 3;298,2078,1358;, 3;2078,298,976;, 3;976,2077,2078;, 3;2077,976,977;, 3;977,2076,2077;, 3;2076,977,978;, 3;978,2075,2076;, 3;2075,978,979;, 3;979,2074,2075;, 3;979,1295,2074;, 3;1295,979,226;, 3;226,1296,1295;, 3;1296,226,227;, 3;1296,227,248;, 3;248,1316,1296;, 3;1316,248,252;, 3;252,1330,1316;, 3;1330,252,266;, 3;266,1344,1330;, 3;1344,266,280;, 3;280,1350,1344;, 3;280,1358,1350;, 3;1358,280,298;, 3;383,2083,1444;, 3;2083,383,972;, 3;972,2082,2083;, 3;2082,972,973;, 3;973,2081,2082;, 3;2081,973,974;, 3;974,2080,2081;, 3;2080,974,975;, 3;975,2079,2080;, 3;975,1379,2079;, 3;1379,975,306;, 3;306,1380,1379;, 3;1380,306,307;, 3;1380,307,328;, 3;328,1401,1380;, 3;1401,328,334;, 3;334,1415,1401;, 3;1415,334,348;, 3;348,1429,1415;, 3;1429,348,362;, 3;362,1436,1429;, 3;362,1444,1436;, 3;1444,362,383;, 3;469,2088,1530;, 3;2088,469,968;, 3;968,2087,2088;, 3;2087,968,969;, 3;969,2086,2087;, 3;2086,969,970;, 3;970,2085,2086;, 3;2085,970,971;, 3;971,2084,2085;, 3;971,1465,2084;, 3;1465,971,391;, 3;391,1466,1465;, 3;1466,391,392;, 3;1466,392,413;, 3;413,1487,1466;, 3;1487,413,420;, 3;420,1501,1487;, 3;1501,420,434;, 3;434,1515,1501;, 3;1515,434,448;, 3;448,1522,1515;, 3;448,1530,1522;, 3;1530,448,469;, 3;555,2093,1616;, 3;2093,555,964;, 3;964,2092,2093;, 3;2092,964,965;, 3;965,2091,2092;, 3;2091,965,966;, 3;966,2090,2091;, 3;2090,966,967;, 3;967,2089,2090;, 3;967,1551,2089;, 3;1551,967,477;, 3;477,1552,1551;, 3;1552,477,478;, 3;1552,478,499;, 3;499,1573,1552;, 3;1573,499,506;, 3;506,1587,1573;, 3;1587,506,520;, 3;520,1601,1587;, 3;1601,520,534;, 3;534,1608,1601;, 3;534,1616,1608;, 3;1616,534,555;, 3;641,2098,1702;, 3;2098,641,960;, 3;960,2097,2098;, 3;2097,960,961;, 3;961,2096,2097;, 3;2096,961,962;, 3;962,2095,2096;, 3;2095,962,963;, 3;963,2094,2095;, 3;963,1637,2094;, 3;1637,963,563;, 3;563,1638,1637;, 3;1638,563,564;, 3;1638,564,585;, 3;585,1659,1638;, 3;1659,585,592;, 3;592,1673,1659;, 3;1673,592,606;, 3;606,1687,1673;, 3;1687,606,620;, 3;620,1694,1687;, 3;620,1702,1694;, 3;1702,620,641;, 3;721,2103,1786;, 3;2103,721,956;, 3;956,2102,2103;, 3;2102,956,957;, 3;957,2101,2102;, 3;2101,957,958;, 3;958,2100,2101;, 3;2100,958,959;, 3;959,2099,2100;, 3;959,1723,2099;, 3;1723,959,649;, 3;649,1724,1723;, 3;1724,649,650;, 3;1724,650,671;, 3;671,1744,1724;, 3;1744,671,675;, 3;675,1758,1744;, 3;1758,675,689;, 3;689,1772,1758;, 3;1772,689,703;, 3;703,1778,1772;, 3;703,1786,1778;, 3;1786,703,721;, 3;797,2108,1865;, 3;2108,797,951;, 3;2108,951,952;, 3;952,2107,2108;, 3;2107,952,953;, 3;953,2106,2107;, 3;2106,953,954;, 3;954,2105,2106;, 3;2105,954,955;, 3;955,2104,2105;, 3;955,1807,2104;, 3;1807,955,729;, 3;729,1808,1807;, 3;1808,729,730;, 3;1808,730,751;, 3;751,1828,1808;, 3;1828,751,755;, 3;755,1842,1828;, 3;1842,755,769;, 3;769,1856,1842;, 3;1856,769,783;, 3;783,1865,1856;, 3;1865,783,797;, 3;869,2112,1937;, 3;2112,869,947;, 3;947,2111,2112;, 3;2111,947,948;, 3;948,2110,2111;, 3;2110,948,949;, 3;949,2109,2110;, 3;2109,949,950;, 3;950,1886,2109;, 3;1886,950,805;, 3;805,1887,1886;, 3;1887,805,806;, 3;806,1901,1887;, 3;1901,806,827;, 3;827,1915,1901;, 3;1915,827,841;, 3;841,1929,1915;, 3;1929,841,855;, 3;855,1937,1929;, 3;1937,855,869;, 3;1042,2117,2009;, 3;2117,1042,942;, 3;942,2115,2117;, 3;2115,942,943;, 3;943,2114,2115;, 3;2114,943,944;, 3;944,2113,2114;, 3;2113,944,945;, 3;2113,945,946;, 3;946,1958,2113;, 3;1958,946,877;, 3;877,1959,1958;, 3;1959,877,878;, 3;878,1973,1959;, 3;1973,878,899;, 3;899,1987,1973;, 3;1987,899,913;, 3;913,2001,1987;, 3;2001,913,927;, 3;927,2009,2001;, 3;2009,927,1042;, 3;71,1114,1122;, 3;1114,71,57;, 3;57,1100,1114;, 3;1100,57,43;, 3;43,1086,1100;, 3;1086,43,29;, 3;29,1071,1086;, 3;1071,29,3;, 3;3,1069,1071;, 3;1069,3,2;, 3;2,1070,1069;, 3;1070,2,4;, 3;4,1085,1070;, 3;1085,4,30;, 3;30,1099,1085;, 3;1099,30,44;, 3;44,1113,1099;, 3;1113,44,58;, 3;58,1122,1113;, 3;1122,58,71;, 3;143,1186,1194;, 3;1186,143,129;, 3;129,1172,1186;, 3;1172,129,115;, 3;115,1158,1172;, 3;1158,115,101;, 3;101,1143,1158;, 3;1143,101,81;, 3;81,1141,1143;, 3;1141,81,80;, 3;80,1142,1141;, 3;1142,80,82;, 3;82,1157,1142;, 3;1157,82,102;, 3;102,1171,1157;, 3;1171,102,116;, 3;116,1185,1171;, 3;1185,116,130;, 3;130,1194,1185;, 3;1194,130,143;, 3;219,1259,1273;, 3;1259,219,201;, 3;201,1245,1259;, 3;1245,201,187;, 3;187,1231,1245;, 3;1231,187,173;, 3;173,1215,1231;, 3;1215,173,153;, 3;153,1213,1215;, 3;1213,153,152;, 3;152,1214,1213;, 3;1214,152,154;, 3;154,1230,1214;, 3;1230,154,174;, 3;174,1244,1230;, 3;1244,174,188;, 3;188,1258,1244;, 3;1258,188,202;, 3;202,1265,1258;, 3;202,1273,1265;, 3;1273,202,219;, 3;299,1343,1357;, 3;1343,299,281;, 3;281,1329,1343;, 3;1329,281,267;, 3;267,1315,1329;, 3;1315,267,253;, 3;253,1302,1315;, 3;1302,253,229;, 3;229,1294,1302;, 3;229,1292,1294;, 3;1292,229,228;, 3;228,1293,1292;, 3;1293,228,230;, 3;1293,230,249;, 3;249,1314,1293;, 3;1314,249,254;, 3;254,1328,1314;, 3;1328,254,268;, 3;268,1342,1328;, 3;1342,268,282;, 3;282,1349,1342;, 3;282,1357,1349;, 3;1357,282,299;, 3;384,1428,1443;, 3;1428,384,376;, 3;1428,376,363;, 3;363,1414,1428;, 3;1414,363,349;, 3;349,1400,1414;, 3;1400,349,335;, 3;335,1387,1400;, 3;1387,335,309;, 3;309,1378,1387;, 3;309,1376,1378;, 3;1376,309,308;, 3;308,1377,1376;, 3;1377,308,310;, 3;1377,310,329;, 3;329,1399,1377;, 3;1399,329,336;, 3;336,1413,1399;, 3;1413,336,350;, 3;350,1427,1413;, 3;1427,350,364;, 3;364,1435,1427;, 3;364,1443,1435;, 3;1443,364,384;, 3;470,1514,1529;, 3;1514,470,462;, 3;1514,462,449;, 3;449,1500,1514;, 3;1500,449,435;, 3;435,1486,1500;, 3;1486,435,421;, 3;421,1473,1486;, 3;1473,421,394;, 3;394,1464,1473;, 3;394,1462,1464;, 3;1462,394,393;, 3;393,1463,1462;, 3;1463,393,395;, 3;1463,395,414;, 3;414,1485,1463;, 3;1485,414,422;, 3;422,1499,1485;, 3;1499,422,436;, 3;436,1513,1499;, 3;1513,436,450;, 3;450,1521,1513;, 3;450,1529,1521;, 3;1529,450,470;, 3;556,1600,1615;, 3;1600,556,548;, 3;1600,548,535;, 3;535,1586,1600;, 3;1586,535,521;, 3;521,1572,1586;, 3;1572,521,507;, 3;507,1559,1572;, 3;1559,507,480;, 3;480,1550,1559;, 3;480,1548,1550;, 3;1548,480,479;, 3;479,1549,1548;, 3;1549,479,481;, 3;1549,481,500;, 3;500,1571,1549;, 3;1571,500,508;, 3;508,1585,1571;, 3;1585,508,522;, 3;522,1599,1585;, 3;1599,522,536;, 3;536,1607,1599;, 3;536,1615,1607;, 3;1615,536,556;, 3;642,1686,1701;, 3;1686,642,634;, 3;1686,634,621;, 3;621,1672,1686;, 3;1672,621,607;, 3;607,1658,1672;, 3;1658,607,593;, 3;593,1645,1658;, 3;1645,593,566;, 3;566,1636,1645;, 3;566,1634,1636;, 3;1634,566,565;, 3;565,1635,1634;, 3;1635,565,567;, 3;1635,567,586;, 3;586,1657,1635;, 3;1657,586,594;, 3;594,1671,1657;, 3;1671,594,608;, 3;608,1685,1671;, 3;1685,608,622;, 3;622,1693,1685;, 3;622,1701,1693;, 3;1701,622,642;, 3;722,1771,1785;, 3;1771,722,704;, 3;704,1757,1771;, 3;1757,704,690;, 3;690,1743,1757;, 3;1743,690,676;, 3;676,1730,1743;, 3;1730,676,652;, 3;652,1722,1730;, 3;652,1720,1722;, 3;1720,652,651;, 3;651,1721,1720;, 3;1721,651,653;, 3;1721,653,672;, 3;672,1742,1721;, 3;1742,672,677;, 3;677,1756,1742;, 3;1756,677,691;, 3;691,1770,1756;, 3;1770,691,705;, 3;705,1777,1770;, 3;705,1785,1777;, 3;1785,705,722;, 3;798,1855,1864;, 3;1855,798,784;, 3;784,1841,1855;, 3;1841,784,770;, 3;770,1827,1841;, 3;1827,770,756;, 3;756,1814,1827;, 3;1814,756,732;, 3;732,1806,1814;, 3;732,1804,1806;, 3;1804,732,731;, 3;731,1805,1804;, 3;1805,731,733;, 3;1805,733,752;, 3;752,1826,1805;, 3;1826,752,757;, 3;757,1840,1826;, 3;1840,757,771;, 3;771,1854,1840;, 3;1854,771,785;, 3;785,1857,1854;, 3;785,1864,1857;, 3;1864,785,798;, 3;870,1928,1936;, 3;1928,870,856;, 3;856,1914,1928;, 3;1914,856,842;, 3;842,1900,1914;, 3;1900,842,828;, 3;828,1885,1900;, 3;1885,828,808;, 3;808,1883,1885;, 3;1883,808,807;, 3;807,1884,1883;, 3;1884,807,809;, 3;809,1899,1884;, 3;1899,809,829;, 3;829,1913,1899;, 3;1913,829,843;, 3;843,1927,1913;, 3;1927,843,857;, 3;857,1936,1927;, 3;1936,857,870;, 3;1043,2000,2008;, 3;2000,1043,928;, 3;928,1986,2000;, 3;1986,928,914;, 3;914,1972,1986;, 3;1972,914,900;, 3;900,1957,1972;, 3;1957,900,880;, 3;880,1955,1957;, 3;1955,880,879;, 3;879,1956,1955;, 3;1956,879,881;, 3;881,1971,1956;, 3;1971,881,901;, 3;901,1985,1971;, 3;1985,901,915;, 3;915,1999,1985;, 3;1999,915,929;, 3;929,2008,1999;, 3;2008,929,1043;, 3;72,1112,1121;, 3;1112,72,59;, 3;59,1098,1112;, 3;1098,59,45;, 3;45,1084,1098;, 3;1084,45,31;, 3;31,1068,1084;, 3;1068,31,6;, 3;6,1066,1068;, 3;1066,6,5;, 3;5,1067,1066;, 3;1067,5,7;, 3;7,1083,1067;, 3;1083,7,32;, 3;32,1097,1083;, 3;1097,32,46;, 3;46,1111,1097;, 3;1111,46,60;, 3;60,1121,1111;, 3;1121,60,72;, 3;144,1184,1193;, 3;1184,144,131;, 3;131,1170,1184;, 3;1170,131,117;, 3;117,1156,1170;, 3;1156,117,103;, 3;103,1140,1156;, 3;1140,103,84;, 3;84,1138,1140;, 3;1138,84,83;, 3;83,1139,1138;, 3;1139,83,85;, 3;85,1155,1139;, 3;1155,85,104;, 3;104,1169,1155;, 3;1169,104,118;, 3;118,1183,1169;, 3;1183,118,132;, 3;132,1193,1183;, 3;1193,132,144;, 3;220,1257,1272;, 3;1257,220,203;, 3;203,1243,1257;, 3;1243,203,189;, 3;189,1229,1243;, 3;1229,189,175;, 3;175,1212,1229;, 3;1212,175,156;, 3;156,1210,1212;, 3;1210,156,155;, 3;155,1211,1210;, 3;1211,155,157;, 3;157,1228,1211;, 3;1228,157,176;, 3;176,1242,1228;, 3;1242,176,190;, 3;190,1256,1242;, 3;1256,190,204;, 3;204,1264,1256;, 3;204,1272,1264;, 3;1272,204,220;, 3;300,1341,1356;, 3;1341,300,283;, 3;283,1327,1341;, 3;1327,283,269;, 3;269,1313,1327;, 3;1313,269,255;, 3;255,1301,1313;, 3;1301,255,232;, 3;232,1291,1301;, 3;232,1289,1291;, 3;1289,232,231;, 3;231,1290,1289;, 3;1290,231,233;, 3;1290,233,250;, 3;250,1312,1290;, 3;1312,250,256;, 3;256,1326,1312;, 3;1326,256,270;, 3;270,1340,1326;, 3;1340,270,284;, 3;284,1348,1340;, 3;284,1356,1348;, 3;1356,284,300;, 3;385,1426,1442;, 3;1426,385,377;, 3;1426,377,365;, 3;365,1412,1426;, 3;1412,365,351;, 3;351,1398,1412;, 3;1398,351,337;, 3;337,1386,1398;, 3;1386,337,312;, 3;312,1375,1386;, 3;312,1373,1375;, 3;1373,312,311;, 3;311,1374,1373;, 3;1374,311,313;, 3;1374,313,330;, 3;330,1397,1374;, 3;1397,330,338;, 3;338,1411,1397;, 3;1411,338,352;, 3;352,1425,1411;, 3;1425,352,366;, 3;366,1434,1425;, 3;366,1442,1434;, 3;1442,366,385;, 3;471,1512,1528;, 3;1512,471,463;, 3;1512,463,451;, 3;451,1498,1512;, 3;1498,451,437;, 3;437,1484,1498;, 3;1484,437,423;, 3;423,1472,1484;, 3;1472,423,397;, 3;397,1461,1472;, 3;397,1459,1461;, 3;1459,397,396;, 3;396,1460,1459;, 3;1460,396,398;, 3;1460,398,415;, 3;415,1483,1460;, 3;1483,415,424;, 3;424,1497,1483;, 3;1497,424,438;, 3;438,1511,1497;, 3;1511,438,452;, 3;452,1520,1511;, 3;452,1528,1520;, 3;1528,452,471;, 3;557,1598,1614;, 3;1598,557,549;, 3;1598,549,537;, 3;537,1584,1598;, 3;1584,537,523;, 3;523,1570,1584;, 3;1570,523,509;, 3;509,1558,1570;, 3;1558,509,483;, 3;483,1547,1558;, 3;483,1545,1547;, 3;1545,483,482;, 3;482,1546,1545;, 3;1546,482,484;, 3;1546,484,501;, 3;501,1569,1546;, 3;1569,501,510;, 3;510,1583,1569;, 3;1583,510,524;, 3;524,1597,1583;, 3;1597,524,538;, 3;538,1606,1597;, 3;538,1614,1606;, 3;1614,538,557;, 3;643,1684,1700;, 3;1684,643,635;, 3;1684,635,623;, 3;623,1670,1684;, 3;1670,623,609;, 3;609,1656,1670;, 3;1656,609,595;, 3;595,1644,1656;, 3;1644,595,569;, 3;569,1633,1644;, 3;569,1631,1633;, 3;1631,569,568;, 3;568,1632,1631;, 3;1632,568,570;, 3;1632,570,587;, 3;587,1655,1632;, 3;1655,587,596;, 3;596,1669,1655;, 3;1669,596,610;, 3;610,1683,1669;, 3;1683,610,624;, 3;624,1692,1683;, 3;624,1700,1692;, 3;1700,624,643;, 3;723,1769,1784;, 3;1769,723,706;, 3;706,1755,1769;, 3;1755,706,692;, 3;692,1741,1755;, 3;1741,692,678;, 3;678,1729,1741;, 3;1729,678,655;, 3;655,1719,1729;, 3;655,1717,1719;, 3;1717,655,654;, 3;654,1718,1717;, 3;1718,654,656;, 3;1718,656,673;, 3;673,1740,1718;, 3;1740,673,679;, 3;679,1754,1740;, 3;1754,679,693;, 3;693,1768,1754;, 3;1768,693,707;, 3;707,1776,1768;, 3;707,1784,1776;, 3;1784,707,723;, 3;799,1853,1863;, 3;1853,799,786;, 3;786,1839,1853;, 3;1839,786,772;, 3;772,1825,1839;, 3;1825,772,758;, 3;758,1813,1825;, 3;1813,758,735;, 3;735,1803,1813;, 3;735,1801,1803;, 3;1801,735,734;, 3;734,1802,1801;, 3;1802,734,736;, 3;1802,736,753;, 3;753,1824,1802;, 3;1824,753,759;, 3;759,1838,1824;, 3;1838,759,773;, 3;773,1852,1838;, 3;1852,773,787;, 3;787,1863,1852;, 3;1863,787,799;, 3;871,1926,1935;, 3;1926,871,858;, 3;858,1912,1926;, 3;1912,858,844;, 3;844,1898,1912;, 3;1898,844,830;, 3;830,1882,1898;, 3;1882,830,811;, 3;811,1880,1882;, 3;1880,811,810;, 3;810,1881,1880;, 3;1881,810,812;, 3;812,1897,1881;, 3;1897,812,831;, 3;831,1911,1897;, 3;1911,831,845;, 3;845,1925,1911;, 3;1925,845,859;, 3;859,1935,1925;, 3;1935,859,871;, 3;1044,1998,2007;, 3;1998,1044,930;, 3;930,1984,1998;, 3;1984,930,916;, 3;916,1970,1984;, 3;1970,916,902;, 3;902,1954,1970;, 3;1954,902,883;, 3;883,1952,1954;, 3;1952,883,882;, 3;882,1953,1952;, 3;1953,882,884;, 3;884,1969,1953;, 3;1969,884,903;, 3;903,1983,1969;, 3;1983,903,917;, 3;917,1997,1983;, 3;1997,917,931;, 3;931,2007,1997;, 3;2007,931,1044;, 3;73,1110,1120;, 3;1110,73,61;, 3;61,1096,1110;, 3;1096,61,47;, 3;47,1082,1096;, 3;1082,47,33;, 3;33,1065,1082;, 3;1065,33,9;, 3;9,1063,1065;, 3;1063,9,8;, 3;8,1064,1063;, 3;1064,8,10;, 3;10,1081,1064;, 3;1081,10,34;, 3;34,1095,1081;, 3;1095,34,48;, 3;48,1109,1095;, 3;1109,48,62;, 3;62,1120,1109;, 3;1120,62,73;, 3;145,1182,1192;, 3;1182,145,133;, 3;133,1168,1182;, 3;1168,133,119;, 3;119,1154,1168;, 3;1154,119,105;, 3;105,1137,1154;, 3;1137,105,87;, 3;87,1135,1137;, 3;1135,87,86;, 3;86,1136,1135;, 3;1136,86,88;, 3;88,1153,1136;, 3;1153,88,106;, 3;106,1167,1153;, 3;1167,106,120;, 3;120,1181,1167;, 3;1181,120,134;, 3;134,1192,1181;, 3;1192,134,145;, 3;221,1255,1271;, 3;1255,221,205;, 3;205,1241,1255;, 3;1241,205,191;, 3;191,1227,1241;, 3;1227,191,177;, 3;177,1209,1227;, 3;1209,177,159;, 3;159,1207,1209;, 3;1207,159,158;, 3;158,1208,1207;, 3;1208,158,160;, 3;160,1226,1208;, 3;1226,160,178;, 3;178,1240,1226;, 3;1240,178,192;, 3;192,1254,1240;, 3;1254,192,206;, 3;206,1263,1254;, 3;206,1271,1263;, 3;1271,206,221;, 3;301,1339,1355;, 3;1339,301,285;, 3;285,1325,1339;, 3;1325,285,271;, 3;271,1311,1325;, 3;1311,271,257;, 3;257,1288,1311;, 3;1288,257,235;, 3;235,1286,1288;, 3;1286,235,234;, 3;234,1287,1286;, 3;1287,234,236;, 3;1287,236,251;, 3;251,1310,1287;, 3;1310,251,258;, 3;258,1324,1310;, 3;1324,258,272;, 3;272,1338,1324;, 3;1338,272,286;, 3;286,1347,1338;, 3;286,1355,1347;, 3;1355,286,301;, 3;386,1424,1441;, 3;1424,386,378;, 3;1424,378,367;, 3;367,1410,1424;, 3;1410,367,353;, 3;353,1396,1410;, 3;1396,353,339;, 3;339,1385,1396;, 3;1385,339,315;, 3;315,1372,1385;, 3;315,1370,1372;, 3;1370,315,314;, 3;314,1371,1370;, 3;1371,314,316;, 3;1371,316,331;, 3;331,1395,1371;, 3;1395,331,340;, 3;340,1409,1395;, 3;1409,340,354;, 3;354,1423,1409;, 3;1423,354,368;, 3;368,1433,1423;, 3;368,1441,1433;, 3;1441,368,386;, 3;472,1510,1527;, 3;1510,472,464;, 3;1510,464,453;, 3;453,1496,1510;, 3;1496,453,439;, 3;439,1482,1496;, 3;1482,439,425;, 3;425,1471,1482;, 3;1471,425,400;, 3;400,1458,1471;, 3;400,1456,1458;, 3;1456,400,399;, 3;399,1457,1456;, 3;1457,399,401;, 3;1457,401,416;, 3;416,1481,1457;, 3;1481,416,426;, 3;426,1495,1481;, 3;1495,426,440;, 3;440,1509,1495;, 3;1509,440,454;, 3;454,1519,1509;, 3;454,1527,1519;, 3;1527,454,472;, 3;558,1596,1613;, 3;1596,558,550;, 3;1596,550,539;, 3;539,1582,1596;, 3;1582,539,525;, 3;525,1568,1582;, 3;1568,525,511;, 3;511,1557,1568;, 3;1557,511,486;, 3;486,1544,1557;, 3;486,1542,1544;, 3;1542,486,485;, 3;485,1543,1542;, 3;1543,485,487;, 3;1543,487,502;, 3;502,1567,1543;, 3;1567,502,512;, 3;512,1581,1567;, 3;1581,512,526;, 3;526,1595,1581;, 3;1595,526,540;, 3;540,1605,1595;, 3;540,1613,1605;, 3;1613,540,558;, 3;644,1682,1699;, 3;1682,644,636;, 3;1682,636,625;, 3;625,1668,1682;, 3;1668,625,611;, 3;611,1654,1668;, 3;1654,611,597;, 3;597,1643,1654;, 3;1643,597,572;, 3;572,1630,1643;, 3;572,1628,1630;, 3;1628,572,571;, 3;571,1629,1628;, 3;1629,571,573;, 3;1629,573,588;, 3;588,1653,1629;, 3;1653,588,598;, 3;598,1667,1653;, 3;1667,598,612;, 3;612,1681,1667;, 3;1681,612,626;, 3;626,1691,1681;, 3;626,1699,1691;, 3;1699,626,644;, 3;724,1767,1783;, 3;1767,724,708;, 3;708,1753,1767;, 3;1753,708,694;, 3;694,1739,1753;, 3;1739,694,680;, 3;680,1716,1739;, 3;1716,680,658;, 3;658,1714,1716;, 3;1714,658,657;, 3;657,1715,1714;, 3;1715,657,659;, 3;1715,659,674;, 3;674,1738,1715;, 3;1738,674,681;, 3;681,1752,1738;, 3;1752,681,695;, 3;695,1766,1752;, 3;1766,695,709;, 3;709,1775,1766;, 3;709,1783,1775;, 3;1783,709,724;, 3;800,1851,1862;, 3;1851,800,788;, 3;788,1837,1851;, 3;1837,788,774;, 3;774,1823,1837;, 3;1823,774,760;, 3;760,1800,1823;, 3;1800,760,738;, 3;738,1798,1800;, 3;1798,738,737;, 3;737,1799,1798;, 3;1799,737,739;, 3;1799,739,754;, 3;754,1822,1799;, 3;1822,754,761;, 3;761,1836,1822;, 3;1836,761,775;, 3;775,1850,1836;, 3;1850,775,789;, 3;789,1862,1850;, 3;1862,789,800;, 3;872,1924,1934;, 3;1924,872,860;, 3;860,1910,1924;, 3;1910,860,846;, 3;846,1896,1910;, 3;1896,846,832;, 3;832,1879,1896;, 3;1879,832,814;, 3;814,1877,1879;, 3;1877,814,813;, 3;813,1878,1877;, 3;1878,813,815;, 3;815,1895,1878;, 3;1895,815,833;, 3;833,1909,1895;, 3;1909,833,847;, 3;847,1923,1909;, 3;1923,847,861;, 3;861,1934,1923;, 3;1934,861,872;, 3;1045,1996,2006;, 3;1996,1045,932;, 3;932,1982,1996;, 3;1982,932,918;, 3;918,1968,1982;, 3;1968,918,904;, 3;904,1951,1968;, 3;1951,904,886;, 3;886,1949,1951;, 3;1949,886,885;, 3;885,1950,1949;, 3;1950,885,887;, 3;887,1967,1950;, 3;1967,887,905;, 3;905,1981,1967;, 3;1981,905,919;, 3;919,1995,1981;, 3;1995,919,933;, 3;933,2006,1995;, 3;2006,933,1045;, 3;74,1108,1119;, 3;1108,74,63;, 3;63,1094,1108;, 3;1094,63,49;, 3;49,1080,1094;, 3;1080,49,35;, 3;35,1062,1080;, 3;1062,35,12;, 3;12,1060,1062;, 3;1060,12,11;, 3;11,1061,1060;, 3;1061,11,13;, 3;13,1079,1061;, 3;1079,13,36;, 3;36,1093,1079;, 3;1093,36,50;, 3;50,1107,1093;, 3;1107,50,64;, 3;64,1119,1107;, 3;1119,64,74;, 3;146,1180,1191;, 3;1180,146,135;, 3;135,1166,1180;, 3;1166,135,121;, 3;121,1152,1166;, 3;1152,121,107;, 3;107,1134,1152;, 3;1134,107,90;, 3;90,1132,1134;, 3;1132,90,89;, 3;89,1133,1132;, 3;1133,89,91;, 3;91,1151,1133;, 3;1151,91,108;, 3;108,1165,1151;, 3;1165,108,122;, 3;122,1179,1165;, 3;1179,122,136;, 3;136,1191,1179;, 3;1191,136,146;, 3;222,1253,1270;, 3;1253,222,214;, 3;1253,214,207;, 3;207,1239,1253;, 3;1239,207,193;, 3;193,1225,1239;, 3;1225,193,179;, 3;179,1206,1225;, 3;1206,179,162;, 3;162,1204,1206;, 3;1204,162,161;, 3;161,1205,1204;, 3;1205,161,163;, 3;163,1224,1205;, 3;1224,163,180;, 3;180,1238,1224;, 3;1238,180,194;, 3;194,1252,1238;, 3;1252,194,208;, 3;208,1270,1252;, 3;1270,208,222;, 3;302,1337,1354;, 3;1337,302,294;, 3;1337,294,287;, 3;287,1323,1337;, 3;1323,287,273;, 3;273,1309,1323;, 3;1309,273,259;, 3;259,1300,1309;, 3;1300,259,238;, 3;238,1285,1300;, 3;238,1283,1285;, 3;1283,238,237;, 3;237,1284,1283;, 3;1284,237,239;, 3;239,1308,1284;, 3;1308,239,260;, 3;260,1322,1308;, 3;1322,260,274;, 3;274,1336,1322;, 3;1336,274,288;, 3;288,1354,1336;, 3;1354,288,302;, 3;387,1422,1440;, 3;1422,387,379;, 3;1422,379,369;, 3;369,1408,1422;, 3;1408,369,355;, 3;355,1394,1408;, 3;1394,355,341;, 3;341,1384,1394;, 3;1384,341,318;, 3;318,1369,1384;, 3;318,1367,1369;, 3;1367,318,317;, 3;317,1368,1367;, 3;1368,317,319;, 3;1368,319,332;, 3;332,1393,1368;, 3;1393,332,342;, 3;342,1407,1393;, 3;1407,342,356;, 3;356,1421,1407;, 3;1421,356,370;, 3;370,1432,1421;, 3;370,1440,1432;, 3;1440,370,387;, 3;473,1508,1526;, 3;1508,473,465;, 3;1508,465,455;, 3;455,1494,1508;, 3;1494,455,441;, 3;441,1480,1494;, 3;1480,441,427;, 3;427,1470,1480;, 3;1470,427,403;, 3;403,1455,1470;, 3;403,1453,1455;, 3;1453,403,402;, 3;402,1454,1453;, 3;1454,402,404;, 3;1454,404,417;, 3;417,1479,1454;, 3;1479,417,428;, 3;428,1493,1479;, 3;1493,428,442;, 3;442,1507,1493;, 3;1507,442,456;, 3;456,1518,1507;, 3;456,1526,1518;, 3;1526,456,473;, 3;559,1594,1612;, 3;1594,559,551;, 3;1594,551,541;, 3;541,1580,1594;, 3;1580,541,527;, 3;527,1566,1580;, 3;1566,527,513;, 3;513,1556,1566;, 3;1556,513,489;, 3;489,1541,1556;, 3;489,1539,1541;, 3;1539,489,488;, 3;488,1540,1539;, 3;1540,488,490;, 3;1540,490,503;, 3;503,1565,1540;, 3;1565,503,514;, 3;514,1579,1565;, 3;1579,514,528;, 3;528,1593,1579;, 3;1593,528,542;, 3;542,1604,1593;, 3;542,1612,1604;, 3;1612,542,559;, 3;645,1680,1698;, 3;1680,645,637;, 3;1680,637,627;, 3;627,1666,1680;, 3;1666,627,613;, 3;613,1652,1666;, 3;1652,613,599;, 3;599,1642,1652;, 3;1642,599,575;, 3;575,1627,1642;, 3;575,1625,1627;, 3;1625,575,574;, 3;574,1626,1625;, 3;1626,574,576;, 3;1626,576,589;, 3;589,1651,1626;, 3;1651,589,600;, 3;600,1665,1651;, 3;1665,600,614;, 3;614,1679,1665;, 3;1679,614,628;, 3;628,1690,1679;, 3;628,1698,1690;, 3;1698,628,645;, 3;725,1765,1782;, 3;1765,725,717;, 3;1765,717,710;, 3;710,1751,1765;, 3;1751,710,696;, 3;696,1737,1751;, 3;1737,696,682;, 3;682,1728,1737;, 3;1728,682,661;, 3;661,1713,1728;, 3;661,1711,1713;, 3;1711,661,660;, 3;660,1712,1711;, 3;1712,660,662;, 3;662,1736,1712;, 3;1736,662,683;, 3;683,1750,1736;, 3;1750,683,697;, 3;697,1764,1750;, 3;1764,697,711;, 3;711,1782,1764;, 3;1782,711,725;, 3;801,1849,1861;, 3;1849,801,790;, 3;790,1835,1849;, 3;1835,790,776;, 3;776,1821,1835;, 3;1821,776,762;, 3;762,1812,1821;, 3;1812,762,741;, 3;741,1797,1812;, 3;741,1795,1797;, 3;1795,741,740;, 3;740,1796,1795;, 3;1796,740,742;, 3;742,1820,1796;, 3;1820,742,763;, 3;763,1834,1820;, 3;1834,763,777;, 3;777,1848,1834;, 3;1848,777,791;, 3;791,1861,1848;, 3;1861,791,801;, 3;873,1922,1933;, 3;1922,873,862;, 3;862,1908,1922;, 3;1908,862,848;, 3;848,1894,1908;, 3;1894,848,834;, 3;834,1876,1894;, 3;1876,834,817;, 3;817,1874,1876;, 3;1874,817,816;, 3;816,1875,1874;, 3;1875,816,818;, 3;818,1893,1875;, 3;1893,818,835;, 3;835,1907,1893;, 3;1907,835,849;, 3;849,1921,1907;, 3;1921,849,863;, 3;863,1933,1921;, 3;1933,863,873;, 3;1046,1994,2005;, 3;1994,1046,934;, 3;934,1980,1994;, 3;1980,934,920;, 3;920,1966,1980;, 3;1966,920,906;, 3;906,1948,1966;, 3;1948,906,889;, 3;889,1946,1948;, 3;1946,889,888;, 3;888,1947,1946;, 3;1947,888,890;, 3;890,1965,1947;, 3;1965,890,907;, 3;907,1979,1965;, 3;1979,907,921;, 3;921,1993,1979;, 3;1993,921,935;, 3;935,2005,1993;, 3;2005,935,1046;, 3;75,1106,1118;, 3;1106,75,65;, 3;65,1092,1106;, 3;1092,65,51;, 3;51,1078,1092;, 3;1078,51,37;, 3;37,1059,1078;, 3;1059,37,15;, 3;15,1057,1059;, 3;1057,15,14;, 3;14,1058,1057;, 3;1058,14,16;, 3;16,1077,1058;, 3;1077,16,38;, 3;38,1091,1077;, 3;1091,38,52;, 3;52,1105,1091;, 3;1105,52,66;, 3;66,1118,1105;, 3;1118,66,75;, 3;147,1178,1190;, 3;1178,147,137;, 3;137,1164,1178;, 3;1164,137,123;, 3;123,1150,1164;, 3;1150,123,109;, 3;109,1131,1150;, 3;1131,109,93;, 3;93,1129,1131;, 3;1129,93,92;, 3;92,1130,1129;, 3;1130,92,94;, 3;94,1149,1130;, 3;1149,94,110;, 3;110,1163,1149;, 3;1163,110,124;, 3;124,1177,1163;, 3;1177,124,138;, 3;138,1190,1177;, 3;1190,138,147;, 3;223,1251,1269;, 3;1251,223,215;, 3;1251,215,209;, 3;209,1237,1251;, 3;1237,209,195;, 3;195,1223,1237;, 3;1223,195,181;, 3;181,1203,1223;, 3;1203,181,165;, 3;165,1201,1203;, 3;1201,165,164;, 3;164,1202,1201;, 3;1202,164,166;, 3;166,1222,1202;, 3;1222,166,182;, 3;182,1236,1222;, 3;1236,182,196;, 3;196,1250,1236;, 3;1250,196,210;, 3;210,1262,1250;, 3;210,1269,1262;, 3;1269,210,223;, 3;303,1335,1353;, 3;1335,303,295;, 3;1335,295,289;, 3;289,1321,1335;, 3;1321,289,275;, 3;275,1307,1321;, 3;1307,275,261;, 3;261,1299,1307;, 3;1299,261,241;, 3;241,1282,1299;, 3;241,1280,1282;, 3;1280,241,240;, 3;240,1281,1280;, 3;1281,240,242;, 3;242,1306,1281;, 3;1306,242,262;, 3;262,1320,1306;, 3;1320,262,276;, 3;276,1334,1320;, 3;1334,276,290;, 3;290,1346,1334;, 3;290,1353,1346;, 3;1353,290,303;, 3;388,1420,1439;, 3;1420,388,380;, 3;1420,380,371;, 3;371,1406,1420;, 3;1406,371,357;, 3;357,1392,1406;, 3;1392,357,343;, 3;343,1383,1392;, 3;1383,343,321;, 3;321,1366,1383;, 3;321,1364,1366;, 3;1364,321,320;, 3;320,1365,1364;, 3;1365,320,322;, 3;1365,322,333;, 3;333,1391,1365;, 3;1391,333,344;, 3;344,1405,1391;, 3;1405,344,358;, 3;358,1419,1405;, 3;1419,358,372;, 3;372,1431,1419;, 3;372,1439,1431;, 3;1439,372,388;, 3;474,1506,1525;, 3;1506,474,466;, 3;1506,466,457;, 3;457,1492,1506;, 3;1492,457,443;, 3;443,1478,1492;, 3;1478,443,429;, 3;429,1469,1478;, 3;1469,429,406;, 3;406,1452,1469;, 3;406,1450,1452;, 3;1450,406,405;, 3;405,1451,1450;, 3;1451,405,407;, 3;1451,407,418;, 3;418,1477,1451;, 3;1477,418,430;, 3;430,1491,1477;, 3;1491,430,444;, 3;444,1505,1491;, 3;1505,444,458;, 3;458,1517,1505;, 3;458,1525,1517;, 3;1525,458,474;, 3;560,1592,1611;, 3;1592,560,552;, 3;1592,552,543;, 3;543,1578,1592;, 3;1578,543,529;, 3;529,1564,1578;, 3;1564,529,515;, 3;515,1555,1564;, 3;1555,515,492;, 3;492,1538,1555;, 3;492,1536,1538;, 3;1536,492,491;, 3;491,1537,1536;, 3;1537,491,493;, 3;1537,493,504;, 3;504,1563,1537;, 3;1563,504,516;, 3;516,1577,1563;, 3;1577,516,530;, 3;530,1591,1577;, 3;1591,530,544;, 3;544,1603,1591;, 3;544,1611,1603;, 3;1611,544,560;, 3;646,1678,1697;, 3;1678,646,638;, 3;1678,638,629;, 3;629,1664,1678;, 3;1664,629,615;, 3;615,1650,1664;, 3;1650,615,601;, 3;601,1641,1650;, 3;1641,601,578;, 3;578,1624,1641;, 3;578,1622,1624;, 3;1622,578,577;, 3;577,1623,1622;, 3;1623,577,579;, 3;1623,579,590;, 3;590,1649,1623;, 3;1649,590,602;, 3;602,1663,1649;, 3;1663,602,616;, 3;616,1677,1663;, 3;1677,616,630;, 3;630,1689,1677;, 3;630,1697,1689;, 3;1697,630,646;, 3;726,1763,1781;, 3;1763,726,718;, 3;1763,718,712;, 3;712,1749,1763;, 3;1749,712,698;, 3;698,1735,1749;, 3;1735,698,684;, 3;684,1727,1735;, 3;1727,684,664;, 3;664,1710,1727;, 3;664,1708,1710;, 3;1708,664,663;, 3;663,1709,1708;, 3;1709,663,665;, 3;665,1734,1709;, 3;1734,665,685;, 3;685,1748,1734;, 3;1748,685,699;, 3;699,1762,1748;, 3;1762,699,713;, 3;713,1774,1762;, 3;713,1781,1774;, 3;1781,713,726;, 3;802,1847,1860;, 3;1847,802,792;, 3;792,1833,1847;, 3;1833,792,778;, 3;778,1819,1833;, 3;1819,778,764;, 3;764,1811,1819;, 3;1811,764,744;, 3;744,1794,1811;, 3;744,1792,1794;, 3;1792,744,743;, 3;743,1793,1792;, 3;1793,743,745;, 3;745,1818,1793;, 3;1818,745,765;, 3;765,1832,1818;, 3;1832,765,779;, 3;779,1846,1832;, 3;1846,779,793;, 3;793,1860,1846;, 3;1860,793,802;, 3;874,1920,1932;, 3;1920,874,864;, 3;864,1906,1920;, 3;1906,864,850;, 3;850,1892,1906;, 3;1892,850,836;, 3;836,1873,1892;, 3;1873,836,820;, 3;820,1871,1873;, 3;1871,820,819;, 3;819,1872,1871;, 3;1872,819,821;, 3;821,1891,1872;, 3;1891,821,837;, 3;837,1905,1891;, 3;1905,837,851;, 3;851,1919,1905;, 3;1919,851,865;, 3;865,1932,1919;, 3;1932,865,874;, 3;1047,1992,2004;, 3;1992,1047,936;, 3;936,1978,1992;, 3;1978,936,922;, 3;922,1964,1978;, 3;1964,922,908;, 3;908,1945,1964;, 3;1945,908,892;, 3;892,1943,1945;, 3;1943,892,891;, 3;891,1944,1943;, 3;1944,891,893;, 3;893,1963,1944;, 3;1963,893,909;, 3;909,1977,1963;, 3;1977,909,923;, 3;923,1991,1977;, 3;1991,923,937;, 3;937,2004,1991;, 3;2004,937,1047;, 3;76,1104,1117;, 3;1104,76,67;, 3;67,1090,1104;, 3;1090,67,53;, 3;53,1076,1090;, 3;1076,53,39;, 3;39,1056,1076;, 3;1056,39,18;, 3;18,1054,1056;, 3;1054,18,17;, 3;17,1055,1054;, 3;1055,17,19;, 3;19,1075,1055;, 3;1075,19,40;, 3;40,1089,1075;, 3;1089,40,54;, 3;54,1103,1089;, 3;1103,54,68;, 3;68,1117,1103;, 3;1117,68,76;, 3;148,1176,1189;, 3;1176,148,139;, 3;139,1162,1176;, 3;1162,139,125;, 3;125,1148,1162;, 3;1148,125,111;, 3;111,1128,1148;, 3;1128,111,96;, 3;96,1126,1128;, 3;1126,96,95;, 3;95,1127,1126;, 3;1127,95,97;, 3;97,1147,1127;, 3;1147,97,112;, 3;112,1161,1147;, 3;1161,112,126;, 3;126,1175,1161;, 3;1175,126,140;, 3;140,1189,1175;, 3;1189,140,148;, 3;224,1249,1268;, 3;1249,224,216;, 3;1249,216,211;, 3;211,1235,1249;, 3;1235,211,197;, 3;197,1221,1235;, 3;1221,197,183;, 3;183,1218,1221;, 3;1218,183,168;, 3;168,1200,1218;, 3;168,1198,1200;, 3;1198,168,167;, 3;167,1199,1198;, 3;1199,167,169;, 3;169,1220,1199;, 3;1220,169,184;, 3;184,1234,1220;, 3;1234,184,198;, 3;198,1248,1234;, 3;1248,198,212;, 3;212,1261,1248;, 3;212,1268,1261;, 3;1268,212,224;, 3;304,1333,1352;, 3;1333,304,296;, 3;1333,296,291;, 3;291,1319,1333;, 3;1319,291,277;, 3;277,1305,1319;, 3;1305,277,263;, 3;263,1298,1305;, 3;1298,263,244;, 3;244,1279,1298;, 3;244,1277,1279;, 3;1277,244,243;, 3;243,1278,1277;, 3;1278,243,245;, 3;245,1304,1278;, 3;1304,245,264;, 3;264,1318,1304;, 3;1318,264,278;, 3;278,1332,1318;, 3;1332,278,292;, 3;292,1345,1332;, 3;292,1352,1345;, 3;1352,292,304;, 3;389,1418,1438;, 3;1418,389,381;, 3;1418,381,373;, 3;373,1404,1418;, 3;1404,373,359;, 3;359,1390,1404;, 3;1390,359,345;, 3;345,1382,1390;, 3;1382,345,324;, 3;324,1363,1382;, 3;324,1361,1363;, 3;1361,324,323;, 3;323,1362,1361;, 3;1362,323,325;, 3;325,1389,1362;, 3;1389,325,346;, 3;346,1403,1389;, 3;1403,346,360;, 3;360,1417,1403;, 3;1417,360,374;, 3;374,1430,1417;, 3;374,1438,1430;, 3;1438,374,389;, 3;475,1504,1524;, 3;1504,475,467;, 3;1504,467,459;, 3;459,1490,1504;, 3;1490,459,445;, 3;445,1476,1490;, 3;1476,445,431;, 3;431,1468,1476;, 3;1468,431,409;, 3;409,1449,1468;, 3;409,1447,1449;, 3;1447,409,408;, 3;408,1448,1447;, 3;1448,408,410;, 3;1448,410,419;, 3;419,1475,1448;, 3;1475,419,432;, 3;432,1489,1475;, 3;1489,432,446;, 3;446,1503,1489;, 3;1503,446,460;, 3;460,1516,1503;, 3;460,1524,1516;, 3;1524,460,475;, 3;561,1590,1610;, 3;1590,561,553;, 3;1590,553,545;, 3;545,1576,1590;, 3;1576,545,531;, 3;531,1562,1576;, 3;1562,531,517;, 3;517,1554,1562;, 3;1554,517,495;, 3;495,1535,1554;, 3;495,1533,1535;, 3;1533,495,494;, 3;494,1534,1533;, 3;1534,494,496;, 3;1534,496,505;, 3;505,1561,1534;, 3;1561,505,518;, 3;518,1575,1561;, 3;1575,518,532;, 3;532,1589,1575;, 3;1589,532,546;, 3;546,1602,1589;, 3;546,1610,1602;, 3;1610,546,561;, 3;647,1676,1696;, 3;1676,647,639;, 3;1676,639,631;, 3;631,1662,1676;, 3;1662,631,617;, 3;617,1648,1662;, 3;1648,617,603;, 3;603,1640,1648;, 3;1640,603,581;, 3;581,1621,1640;, 3;581,1619,1621;, 3;1619,581,580;, 3;580,1620,1619;, 3;1620,580,582;, 3;1620,582,591;, 3;591,1647,1620;, 3;1647,591,604;, 3;604,1661,1647;, 3;1661,604,618;, 3;618,1675,1661;, 3;1675,618,632;, 3;632,1688,1675;, 3;632,1696,1688;, 3;1696,632,647;, 3;727,1761,1780;, 3;1761,727,719;, 3;1761,719,714;, 3;714,1747,1761;, 3;1747,714,700;, 3;700,1733,1747;, 3;1733,700,686;, 3;686,1726,1733;, 3;1726,686,667;, 3;667,1707,1726;, 3;667,1705,1707;, 3;1705,667,666;, 3;666,1706,1705;, 3;1706,666,668;, 3;668,1732,1706;, 3;1732,668,687;, 3;687,1746,1732;, 3;1746,687,701;, 3;701,1760,1746;, 3;1760,701,715;, 3;715,1773,1760;, 3;715,1780,1773;, 3;1780,715,727;, 3;803,1845,1859;, 3;1845,803,794;, 3;794,1831,1845;, 3;1831,794,780;, 3;780,1817,1831;, 3;1817,780,766;, 3;766,1810,1817;, 3;1810,766,747;, 3;747,1791,1810;, 3;747,1789,1791;, 3;1789,747,746;, 3;746,1790,1789;, 3;1790,746,748;, 3;748,1816,1790;, 3;1816,748,767;, 3;767,1830,1816;, 3;1830,767,781;, 3;781,1844,1830;, 3;1844,781,795;, 3;795,1859,1844;, 3;1859,795,803;, 3;875,1918,1931;, 3;1918,875,866;, 3;866,1904,1918;, 3;1904,866,852;, 3;852,1890,1904;, 3;1890,852,838;, 3;838,1870,1890;, 3;1870,838,823;, 3;823,1868,1870;, 3;1868,823,822;, 3;822,1869,1868;, 3;1869,822,824;, 3;824,1889,1869;, 3;1889,824,839;, 3;839,1903,1889;, 3;1903,839,853;, 3;853,1917,1903;, 3;1917,853,867;, 3;867,1931,1917;, 3;1931,867,875;, 3;1048,1990,2003;, 3;1990,1048,938;, 3;938,1976,1990;, 3;1976,938,924;, 3;924,1962,1976;, 3;1962,924,910;, 3;910,1942,1962;, 3;1942,910,895;, 3;895,1940,1942;, 3;1940,895,894;, 3;894,1941,1940;, 3;1941,894,896;, 3;896,1961,1941;, 3;1961,896,911;, 3;911,1975,1961;, 3;1975,911,925;, 3;925,1989,1975;, 3;1989,925,939;, 3;939,2003,1989;, 3;2003,939,1048;, 3;77,1102,1116;, 3;1102,77,69;, 3;69,1088,1102;, 3;1088,69,55;, 3;55,1074,1088;, 3;1074,55,41;, 3;41,1053,1074;, 3;1053,41,21;, 3;21,1052,1053;, 3;1052,21,20;, 3;20,2061,1052;, 3;2061,20,26;, 3;26,2058,2061;, 3;2058,26,991;, 3;991,2057,2058;, 3;2057,991,992;, 3;992,2056,2057;, 3;2056,992,993;, 3;2056,993,994;, 3;994,1116,2056;, 3;1116,994,77;, 3;149,1174,1188;, 3;1174,149,141;, 3;141,1160,1174;, 3;1160,141,127;, 3;127,1146,1160;, 3;1146,127,113;, 3;113,1125,1146;, 3;1125,113,99;, 3;99,1124,1125;, 3;1124,99,98;, 3;98,2055,1124;, 3;2055,98,995;, 3;995,2054,2055;, 3;2054,995,996;, 3;996,2053,2054;, 3;2053,996,997;, 3;997,2052,2053;, 3;2052,997,998;, 3;998,1188,2052;, 3;1188,998,149;, 3;225,1247,1267;, 3;1247,225,217;, 3;1247,217,213;, 3;213,1233,1247;, 3;1233,213,199;, 3;199,1219,1233;, 3;1219,199,185;, 3;185,1197,1219;, 3;1197,185,171;, 3;171,1196,1197;, 3;1196,171,170;, 3;170,2051,1196;, 3;2051,170,999;, 3;2051,999,1000;, 3;1000,2050,2051;, 3;2050,1000,1001;, 3;1001,2049,2050;, 3;2049,1001,1002;, 3;1002,2048,2049;, 3;2048,1002,1003;, 3;1003,1267,2048;, 3;1267,1003,225;, 3;305,1331,1351;, 3;1331,305,297;, 3;1331,297,293;, 3;293,1317,1331;, 3;1317,293,279;, 3;279,1303,1317;, 3;1303,279,265;, 3;265,1297,1303;, 3;1297,265,247;, 3;247,1276,1297;, 3;247,1275,1276;, 3;1275,247,246;, 3;246,2047,1275;, 3;2047,246,1004;, 3;1004,2046,2047;, 3;2046,1004,1005;, 3;1005,2045,2046;, 3;2045,1005,1006;, 3;1006,2044,2045;, 3;2044,1006,1007;, 3;1007,1351,2044;, 3;1351,1007,305;, 3;390,1416,1437;, 3;1416,390,382;, 3;1416,382,375;, 3;375,1402,1416;, 3;1402,375,361;, 3;361,1388,1402;, 3;1388,361,347;, 3;347,1381,1388;, 3;1381,347,327;, 3;327,1360,1381;, 3;327,1359,1360;, 3;1359,327,326;, 3;326,2043,1359;, 3;2043,326,1008;, 3;1008,2042,2043;, 3;2042,1008,1009;, 3;1009,2041,2042;, 3;2041,1009,1010;, 3;1010,2040,2041;, 3;2040,1010,1011;, 3;1011,2039,2040;, 3;1011,1437,2039;, 3;1437,1011,390;, 3;476,1502,1523;, 3;1502,476,468;, 3;1502,468,461;, 3;461,1488,1502;, 3;1488,461,447;, 3;447,1474,1488;, 3;1474,447,433;, 3;433,1467,1474;, 3;1467,433,412;, 3;412,1446,1467;, 3;412,1445,1446;, 3;1445,412,411;, 3;411,2038,1445;, 3;2038,411,1012;, 3;1012,2037,2038;, 3;2037,1012,1013;, 3;1013,2036,2037;, 3;2036,1013,1014;, 3;1014,2035,2036;, 3;2035,1014,1015;, 3;1015,1523,2035;, 3;1523,1015,476;, 3;562,1588,1609;, 3;1588,562,554;, 3;1588,554,547;, 3;547,1574,1588;, 3;1574,547,533;, 3;533,1560,1574;, 3;1560,533,519;, 3;519,1553,1560;, 3;1553,519,498;, 3;498,1532,1553;, 3;498,1531,1532;, 3;1531,498,497;, 3;497,2034,1531;, 3;2034,497,1016;, 3;1016,2033,2034;, 3;2033,1016,1017;, 3;1017,2032,2033;, 3;2032,1017,1018;, 3;1018,2031,2032;, 3;2031,1018,1019;, 3;1019,1609,2031;, 3;1609,1019,562;, 3;648,1674,1695;, 3;1674,648,640;, 3;1674,640,633;, 3;633,1660,1674;, 3;1660,633,619;, 3;619,1646,1660;, 3;1646,619,605;, 3;605,1639,1646;, 3;1639,605,584;, 3;584,1618,1639;, 3;584,1617,1618;, 3;1617,584,583;, 3;583,2030,1617;, 3;2030,583,1020;, 3;2030,1020,1021;, 3;1021,2029,2030;, 3;2029,1021,1022;, 3;1022,2028,2029;, 3;2028,1022,1023;, 3;1023,2027,2028;, 3;2027,1023,1024;, 3;1024,1695,2027;, 3;1695,1024,648;, 3;728,1759,1779;, 3;1759,728,720;, 3;1759,720,716;, 3;716,1745,1759;, 3;1745,716,702;, 3;702,1731,1745;, 3;1731,702,688;, 3;688,1725,1731;, 3;1725,688,670;, 3;670,1704,1725;, 3;670,1703,1704;, 3;1703,670,669;, 3;669,2026,1703;, 3;2026,669,1025;, 3;1025,2025,2026;, 3;2025,1025,1026;, 3;1026,2024,2025;, 3;2024,1026,1027;, 3;1027,2023,2024;, 3;2023,1027,1028;, 3;1028,1779,2023;, 3;1779,1028,728;, 3;804,1843,1858;, 3;1843,804,796;, 3;796,1829,1843;, 3;1829,796,782;, 3;782,1815,1829;, 3;1815,782,768;, 3;768,1809,1815;, 3;1809,768,750;, 3;750,1788,1809;, 3;750,1787,1788;, 3;1787,750,749;, 3;749,2022,1787;, 3;2022,749,1029;, 3;1029,2021,2022;, 3;2021,1029,1030;, 3;1030,2020,2021;, 3;2020,1030,1031;, 3;1031,2019,2020;, 3;2019,1031,1032;, 3;1032,1858,2019;, 3;1858,1032,804;, 3;876,1916,1930;, 3;1916,876,868;, 3;868,1902,1916;, 3;1902,868,854;, 3;854,1888,1902;, 3;1888,854,840;, 3;840,1867,1888;, 3;1867,840,826;, 3;826,1866,1867;, 3;1866,826,825;, 3;825,2018,1866;, 3;2018,825,1033;, 3;1033,2017,2018;, 3;2017,1033,1034;, 3;1034,2016,2017;, 3;2016,1034,1035;, 3;1035,2015,2016;, 3;2015,1035,1036;, 3;1036,1930,2015;, 3;1930,1036,876;, 3;1049,1988,2002;, 3;1988,1049,940;, 3;940,1974,1988;, 3;1974,940,926;, 3;926,1960,1974;, 3;1960,926,912;, 3;912,1939,1960;, 3;1939,912,898;, 3;898,1938,1939;, 3;1938,898,897;, 3;897,2014,1938;, 3;2014,897,1037;, 3;1037,2013,2014;, 3;2013,1037,1038;, 3;1038,2012,2013;, 3;2012,1038,1039;, 3;1039,2011,2012;, 3;2011,1039,1040;, 3;1040,2002,2011;, 3;2002,1040,1049;; MeshNormals { // co_nim1 normals 4656; 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000007; 0.000004;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000003; 0.000004;-1.000000;, -0.000006; 0.000005;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000004; 0.000002;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000003; 0.000003;-1.000000;, -0.000007; 0.000004;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000000; 0.000003;-1.000000;, -0.000000; 0.000003;-1.000000;, -0.000001; 0.000003;-1.000000;, -0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000001; 0.000005;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000;-0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, -0.000001; 0.000005;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, -0.000006; 0.000005;-1.000000;, 0.000003; 0.000004;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000007; 0.000004;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000007; 0.000004;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000003; 0.000004;-1.000000;, -0.000006; 0.000005;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000001; 0.000005;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000;-0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, -0.000001; 0.000005;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, -0.000006; 0.000005;-1.000000;, 0.000003; 0.000004;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000007; 0.000004;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000007; 0.000004;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000003; 0.000004;-1.000000;, -0.000006; 0.000005;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000001; 0.000005;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000;-0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, -0.000001; 0.000005;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000001; 0.000002;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000005; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, -0.000006; 0.000005;-1.000000;, 0.000003; 0.000004;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000015; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000015; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000003; 0.000004;-1.000000;, -0.000006; 0.000005;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000005; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000001; 0.000002;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000001; 0.000005;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000;-0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, -0.000001; 0.000005;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000001; 0.000002;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000005; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, -0.000006; 0.000005;-1.000000;, 0.000003; 0.000004;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000015; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000015; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000005; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000001; 0.000002;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000;-0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000001; 0.000002;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000005; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000015; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000015; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000015; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000015; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000005; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000001; 0.000002;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000;-0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000001; 0.000002;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000005; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000015; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000015; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000015; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000015; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000005; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000001; 0.000002;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000;-0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000001; 0.000002;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000005; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000015; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000015; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000015; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000015; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000005; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000001; 0.000002;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000;-0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000001; 0.000002;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000005; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000015; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000015; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000015; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000003; 0.000004;-1.000000;, -0.000006; 0.000005;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000005; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000001; 0.000002;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000001; 0.000005;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000;-0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, -0.000001; 0.000005;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000001; 0.000002;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000005; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, -0.000006; 0.000005;-1.000000;, 0.000003; 0.000004;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000015; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000015; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000007; 0.000003;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000003; 0.000004;-1.000000;, -0.000006; 0.000005;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000005; 0.000003;-1.000000;, -0.000003; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000001; 0.000002;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, -0.000003; 0.000004;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000001; 0.000005;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000;-0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, -0.000001; 0.000005;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, -0.000006; 0.000005;-1.000000;, 0.000003; 0.000004;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000007; 0.000004;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000007; 0.000004;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000003; 0.000004;-1.000000;, -0.000006; 0.000005;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000001; 0.000005;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000;-0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, -0.000001; 0.000005;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, -0.000006; 0.000005;-1.000000;, 0.000003; 0.000004;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000007; 0.000004;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000007; 0.000004;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000003; 0.000004;-1.000000;, -0.000006; 0.000005;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000001; 0.000005;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000;-0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, -0.000001; 0.000005;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000004; 0.000000;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, 0.000001; 0.000004;-1.000000;, 0.000002; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000002; 0.000003;-1.000000;, 0.000001; 0.000002;-1.000000;, 0.000000; 0.000004;-1.000000;, -0.000017; 0.000036;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000005;-1.000000;, 0.000007;-0.000006;-1.000000;, -0.000000; 0.000003;-1.000000;, -0.000000; 0.000003;-1.000000;, 0.000001; 0.000001;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000004;-1.000000;, -0.000001; 0.000005;-1.000000;, 0.000000; 0.000000;-1.000000;, -0.000000; 0.000000;-1.000000;, -0.000002; 0.000013;-1.000000;, 0.000000; 0.000001;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, -0.000000; 0.000000;-1.000000;, -0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, -0.000000; 0.000000;-1.000000;, -0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, -0.000000; 0.000000;-1.000000;, -0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, -0.000000; 0.000000;-1.000000;, -0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, -0.000000; 0.000000;-1.000000;, -0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, -0.000000; 0.000000;-1.000000;, -0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, -0.000000; 0.000000;-1.000000;, -0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, -0.000000; 0.000000;-1.000000;, -0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, -0.000000; 0.000000;-1.000000;, -0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, -0.000001; 0.000002;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000001; 0.000002;-1.000000;, 0.000000; 0.000004;-1.000000;, -0.000017; 0.000036;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000005;-1.000000;, 0.000007;-0.000006;-1.000000;, -0.000000; 0.000003;-1.000000;, -0.000000; 0.000003;-1.000000;, 0.000001; 0.000001;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000004;-1.000000;, -0.000001; 0.000005;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, -0.000002; 0.000013;-1.000000;, 0.000000; 0.000001;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000004;-1.000000;, -0.000001; 0.000005;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000008; 0.000003;-1.000000;, -0.000016; 0.000004;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, 0.000004; 0.000003;-1.000000;, -0.000004; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000000;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000004;-1.000000;, -0.000001; 0.000002;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, -0.000006; 0.000005;-1.000000;, 0.000003; 0.000004;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000007; 0.000004;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000003; 0.000003;-1.000000;, -0.000007; 0.000004;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000002; 0.000004;-1.000000;, -0.000000; 0.000003;-1.000000;, -0.000000; 0.000003;-1.000000;, -0.000001; 0.000003;-1.000000;, 0.000004; 0.000002;-1.000000;, 0.000000; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000003;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, 0.000010;-0.000003; 1.000000;, -0.000006;-0.000005; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, -0.000009;-0.000003; 1.000000;, -0.000013;-0.000004; 1.000000;, -0.000007;-0.000004; 1.000000;, 0.000001;-0.000003; 1.000000;, -0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000001;-0.000005; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000004; 0.000000; 1.000000;, -0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000004; 0.000000; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, -0.000001;-0.000005; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, -0.000007;-0.000004; 1.000000;, -0.000013;-0.000004; 1.000000;, -0.000009;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, -0.000006;-0.000005; 1.000000;, 0.000010;-0.000003; 1.000000;, 0.000015;-0.000003; 1.000000;, 0.000003;-0.000004; 1.000000;, 0.000003;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, 0.000010;-0.000003; 1.000000;, -0.000006;-0.000005; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, -0.000009;-0.000003; 1.000000;, -0.000013;-0.000004; 1.000000;, -0.000007;-0.000004; 1.000000;, 0.000001;-0.000003; 1.000000;, -0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000001;-0.000005; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000004; 0.000000; 1.000000;, -0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000004; 0.000000; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, -0.000001;-0.000005; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, -0.000007;-0.000004; 1.000000;, -0.000013;-0.000004; 1.000000;, -0.000009;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, -0.000006;-0.000005; 1.000000;, 0.000010;-0.000003; 1.000000;, 0.000015;-0.000003; 1.000000;, 0.000003;-0.000004; 1.000000;, 0.000003;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, -0.000009;-0.000003; 1.000000;, -0.000013;-0.000004; 1.000000;, -0.000007;-0.000004; 1.000000;, 0.000001;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000004; 0.000000; 1.000000;, -0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000004; 0.000000; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000012;-0.000004; 1.000000;, -0.000007;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, 0.000013;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000013;-0.000003; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, -0.000007;-0.000003; 1.000000;, -0.000012;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000004; 0.000000; 1.000000;, -0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000004; 0.000000; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000012;-0.000004; 1.000000;, -0.000007;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, 0.000013;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000013;-0.000003; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000007;-0.000003; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000007;-0.000003; 1.000000;, -0.000012;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000005;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000004; 0.000000; 1.000000;, 0.000001;-0.000002; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000001;-0.000002; 1.000000;, 0.000004; 0.000000; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000005;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000012;-0.000004; 1.000000;, -0.000007;-0.000003; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000007;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, 0.000013;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000013;-0.000003; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000007;-0.000003; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000007;-0.000003; 1.000000;, -0.000012;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000005;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000004; 0.000000; 1.000000;, 0.000001;-0.000002; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000001;-0.000002; 1.000000;, 0.000004; 0.000000; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000005;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000012;-0.000004; 1.000000;, -0.000007;-0.000003; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000007;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, 0.000013;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000013;-0.000003; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000007;-0.000003; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000007;-0.000003; 1.000000;, -0.000012;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000005;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000004; 0.000000; 1.000000;, 0.000001;-0.000002; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000001;-0.000002; 1.000000;, 0.000004; 0.000000; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000005;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000012;-0.000004; 1.000000;, -0.000007;-0.000003; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000007;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, 0.000013;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000013;-0.000003; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000007;-0.000003; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000007;-0.000003; 1.000000;, -0.000012;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000005;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000004; 0.000000; 1.000000;, 0.000001;-0.000002; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000001;-0.000002; 1.000000;, 0.000004; 0.000000; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000005;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000012;-0.000004; 1.000000;, -0.000007;-0.000003; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000007;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, 0.000013;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000013;-0.000003; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, -0.000007;-0.000003; 1.000000;, -0.000012;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000004; 0.000000; 1.000000;, -0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000004; 0.000000; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000012;-0.000004; 1.000000;, -0.000007;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, 0.000013;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000013;-0.000003; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, -0.000007;-0.000003; 1.000000;, -0.000012;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000004; 0.000000; 1.000000;, -0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000004; 0.000000; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000002;-0.000003; 1.000000;, -0.000003;-0.000004; 1.000000;, 0.000001;-0.000003; 1.000000;, -0.000007;-0.000004; 1.000000;, -0.000013;-0.000004; 1.000000;, -0.000009;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, 0.000015;-0.000003; 1.000000;, 0.000003;-0.000004; 1.000000;, 0.000003;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, 0.000010;-0.000003; 1.000000;, -0.000006;-0.000005; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, -0.000009;-0.000003; 1.000000;, -0.000013;-0.000004; 1.000000;, -0.000007;-0.000004; 1.000000;, 0.000001;-0.000003; 1.000000;, -0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000001;-0.000005; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000004; 0.000000; 1.000000;, -0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000004; 0.000000; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, -0.000001;-0.000005; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, -0.000007;-0.000004; 1.000000;, -0.000013;-0.000004; 1.000000;, -0.000009;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, -0.000006;-0.000005; 1.000000;, 0.000010;-0.000003; 1.000000;, 0.000015;-0.000003; 1.000000;, 0.000003;-0.000004; 1.000000;, 0.000003;-0.000004; 1.000000;, 0.000015;-0.000003; 1.000000;, 0.000010;-0.000003; 1.000000;, -0.000006;-0.000005; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, -0.000009;-0.000003; 1.000000;, -0.000013;-0.000004; 1.000000;, -0.000007;-0.000004; 1.000000;, 0.000001;-0.000003; 1.000000;, -0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000001;-0.000005; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000004; 0.000000; 1.000000;, -0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000004; 0.000000; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000002;-0.000003; 1.000000;, 0.000001;-0.000004; 1.000000;, -0.000001;-0.000005; 1.000000;, -0.000002;-0.000004; 1.000000;, -0.000002;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, -0.000007;-0.000004; 1.000000;, -0.000013;-0.000004; 1.000000;, -0.000009;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000003; 1.000000;, -0.000006;-0.000005; 1.000000;, 0.000010;-0.000003; 1.000000;, 0.000015;-0.000003; 1.000000;, 0.000003;-0.000004; 1.000000;, -0.000043;-0.000004; 1.000000;, 0.000008;-0.000003; 1.000000;, 0.000008;-0.000003; 1.000000;, 0.000008;-0.000003; 1.000000;, 0.000008;-0.000003; 1.000000;, 0.000008;-0.000003; 1.000000;, -0.000004;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000002; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000000; 0.000000; 1.000000;, -0.000052;-0.000266; 1.000000;, 0.000001;-0.000001; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, -0.000001;-0.000005; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000; 0.000000; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, -0.000001;-0.000002; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000043;-0.000004; 1.000000;, 0.000008;-0.000003; 1.000000;, 0.000008;-0.000003; 1.000000;, 0.000008;-0.000003; 1.000000;, 0.000008;-0.000003; 1.000000;, 0.000008;-0.000003; 1.000000;, -0.000004;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, 0.000001;-0.000002; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, -0.000000; 0.000000; 1.000000;, -0.000052;-0.000266; 1.000000;, 0.000001;-0.000001; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, -0.000000; 0.000000; 1.000000;, -0.000000; 0.000000; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, -0.000001;-0.000005; 1.000000;, 0.000000; 0.000000; 1.000000;, -0.000000; 0.000000; 1.000000;, -0.000000; 0.000000; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, -0.000001;-0.000005; 1.000000;, 0.000000; 0.000000; 1.000000;, -0.000000; 0.000000; 1.000000;, -0.000000; 0.000000; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, -0.000001;-0.000005; 1.000000;, 0.000000; 0.000000; 1.000000;, -0.000000; 0.000000; 1.000000;, -0.000000; 0.000000; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, -0.000001;-0.000005; 1.000000;, 0.000000; 0.000000; 1.000000;, -0.000000; 0.000000; 1.000000;, -0.000000; 0.000000; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, -0.000001;-0.000005; 1.000000;, 0.000000; 0.000000; 1.000000;, -0.000000; 0.000000; 1.000000;, -0.000000; 0.000000; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, -0.000001;-0.000005; 1.000000;, 0.000000; 0.000000; 1.000000;, -0.000000; 0.000000; 1.000000;, -0.000000; 0.000000; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, -0.000001;-0.000005; 1.000000;, 0.000000; 0.000000; 1.000000;, -0.000000; 0.000000; 1.000000;, -0.000000; 0.000000; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, -0.000000; 0.000000; 1.000000;, -0.000000; 0.000000; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000000;-0.000007; 1.000000;, -0.000020;-0.000004; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000004;-0.000003; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, -0.000000; 0.000000; 1.000000;, -0.000000; 0.000000; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000000;-0.000007; 1.000000;, 0.000001;-0.000004; 1.000000;, 0.000000;-0.000003; 1.000000;, -0.000001;-0.000002; 1.000000;, 0.000000;-0.000007; 1.000000;, -1.000000;-0.000000; 0.000000;, -1.000000; 0.000000;-0.000000;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 1.000000; 0.000000;-0.000000;, 1.000000; 0.000000; 0.000000;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.000001; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000000; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, -0.000001; 0.000004;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000001; 0.000003;-1.000000;, -0.000000; 0.000003;-1.000000;, 0.000000; 0.000003;-1.000000;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.707107;-0.707107;-0.000002;, 0.707107;-0.707107;-0.000002;, 1.000000; 0.000000;-0.000000;, 1.000000; 0.000000; 0.000000;, 0.707107; 0.707107; 0.000003;, 0.707107; 0.707107; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.707107; 0.707107; 0.000003;, -0.707107; 0.707107; 0.000003;, -1.000000;-0.000000; 0.000000;, -1.000000; 0.000000;-0.000000;, -0.707107;-0.707107;-0.000002;, -0.707107;-0.707107;-0.000002;, -0.000001;-0.000004; 1.000000;, 0.000000;-0.000002; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000002; 1.000000;, -0.000001;-0.000004; 1.000000;, 0.000000;-0.000002; 1.000000;, 0.000001;-0.000003; 1.000000;, 0.000000;-0.000002; 1.000000;, 1.000000; 0.000000; 0.000000;, 1.000000; 0.000000;-0.000000;, -0.000000;-1.000000;-0.000003;, 0.000000;-1.000000;-0.000003;, -1.000000; 0.000000;-0.000000;, -1.000000;-0.000000; 0.000000;, -0.000000; 1.000000; 0.000004;, 0.000000; 1.000000; 0.000004;, 0.959903; 0.280333; 0.000001;, 0.945944; 0.324297; 0.004636;, 0.526836; 0.849954;-0.004633;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487069; 0.873363; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945945; 0.324295;-0.004633;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280331;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526836;-0.849954;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.487072;-0.873362;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945944;-0.324296;-0.004636;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280333; 0.000001;, 0.945945; 0.324295; 0.004635;, 0.526836; 0.849954;-0.004633;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487069; 0.873363; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945945; 0.324295;-0.004633;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280331;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526836;-0.849954;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.487072;-0.873362;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324294;-0.004635;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280333; 0.000001;, 0.945944; 0.324297; 0.004636;, 0.526837; 0.849954;-0.004633;, 0.487073; 0.873361; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487070; 0.873363; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945944; 0.324297;-0.004633;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280331;-0.000001;, -0.945944;-0.324297; 0.004633;, -0.526836;-0.849954;-0.004638;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.434213;-0.900810;-0.000003;, 0.526827;-0.849939; 0.007518;, 0.781706;-0.623606;-0.007189;, 0.974849;-0.222784; 0.005972;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280333; 0.000001;, 0.945945; 0.324295; 0.004635;, 0.526837; 0.849954;-0.004633;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526828; 0.849939; 0.007524;, -0.781706; 0.623606;-0.007184;, -0.974849; 0.222785; 0.005973;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280331;-0.000001;, -0.974849;-0.222785;-0.005973;, -0.781707;-0.623604; 0.007184;, -0.526828;-0.849939;-0.007524;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.434213;-0.900810;-0.000003;, 0.526828;-0.849939; 0.007518;, 0.781706;-0.623606;-0.007189;, 0.974849;-0.222784; 0.005972;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280333; 0.000001;, 0.945945; 0.324295; 0.004635;, 0.526837; 0.849954;-0.004633;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526828; 0.849939; 0.007524;, -0.781706; 0.623606;-0.007184;, -0.974849; 0.222785; 0.005973;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280331;-0.000001;, -0.974849;-0.222785;-0.005973;, -0.781707;-0.623604; 0.007184;, -0.526828;-0.849939;-0.007524;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.434213;-0.900810;-0.000003;, 0.526828;-0.849939; 0.007518;, 0.781706;-0.623606;-0.007189;, 0.974849;-0.222784; 0.005972;, 0.959903;-0.280332;-0.000001;, 0.959901; 0.280338; 0.000001;, 0.945944; 0.324297; 0.004635;, 0.526834; 0.849956;-0.004633;, 0.487067; 0.873364; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434209; 0.900812; 0.000003;, -0.526822; 0.849942; 0.007524;, -0.781701; 0.623612;-0.007185;, -0.974848; 0.222792; 0.005973;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280331;-0.000001;, -0.974848;-0.222792;-0.005973;, -0.781703;-0.623610; 0.007185;, -0.526822;-0.849942;-0.007524;, -0.434209;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.434213;-0.900810;-0.000003;, 0.526822;-0.849942; 0.007518;, 0.781700;-0.623614;-0.007189;, 0.974848;-0.222791; 0.005971;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280331; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526834; 0.849956;-0.004633;, 0.487070; 0.873363; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526824; 0.849941; 0.007524;, -0.781701; 0.623612;-0.007184;, -0.974848; 0.222792; 0.005973;, -0.959902; 0.280335; 0.000001;, -0.959902;-0.280334;-0.000001;, -0.974848;-0.222792;-0.005973;, -0.781703;-0.623610; 0.007184;, -0.526824;-0.849941;-0.007524;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.434213;-0.900810;-0.000003;, 0.526824;-0.849941; 0.007518;, 0.781701;-0.623612;-0.007189;, 0.974849;-0.222784; 0.005972;, 0.959903;-0.280330;-0.000001;, 0.959903; 0.280331; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526836; 0.849954;-0.004633;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526830; 0.849937; 0.007525;, -0.781706; 0.623606;-0.007184;, -0.974849; 0.222785; 0.005974;, -0.959902; 0.280337; 0.000001;, -0.959902;-0.280336;-0.000001;, -0.974849;-0.222785;-0.005974;, -0.781707;-0.623604; 0.007184;, -0.526830;-0.849938;-0.007525;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.434213;-0.900810;-0.000003;, 0.526827;-0.849939; 0.007518;, 0.781706;-0.623606;-0.007189;, 0.974849;-0.222784; 0.005972;, 0.959903;-0.280330;-0.000001;, 0.959903; 0.280331; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526836; 0.849954;-0.004633;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526827; 0.849939; 0.007524;, -0.781706; 0.623606;-0.007184;, -0.974849; 0.222785; 0.005973;, -0.959903; 0.280330; 0.000001;, -0.959904;-0.280330;-0.000001;, -0.974849;-0.222785;-0.005973;, -0.781707;-0.623604; 0.007184;, -0.526827;-0.849939;-0.007524;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.434213;-0.900810;-0.000003;, 0.526827;-0.849939; 0.007518;, 0.781706;-0.623606;-0.007189;, 0.974849;-0.222784; 0.005972;, 0.959903;-0.280330;-0.000001;, 0.959903; 0.280331; 0.000001;, 0.974849; 0.222784;-0.005972;, 0.781706; 0.623606; 0.007188;, 0.526827; 0.849939;-0.007518;, 0.434210; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526827; 0.849939; 0.007524;, -0.781706; 0.623606;-0.007184;, -0.974849; 0.222785; 0.005973;, -0.959903; 0.280330; 0.000001;, -0.959904;-0.280330;-0.000001;, -0.974849;-0.222785;-0.005973;, -0.781707;-0.623604; 0.007184;, -0.526827;-0.849939;-0.007524;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.487072;-0.873362;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324294;-0.004636;, 0.959903;-0.280330;-0.000001;, 0.959903; 0.280331; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526836; 0.849954;-0.004633;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487070; 0.873363; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945945; 0.324295;-0.004633;, -0.959903; 0.280330; 0.000001;, -0.959904;-0.280330;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526836;-0.849954;-0.004638;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.487072;-0.873362;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324294;-0.004636;, 0.959903;-0.280330;-0.000001;, 0.959903; 0.280331; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526836; 0.849954;-0.004633;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487070; 0.873363; 0.000003;, -0.434202; 0.900796;-0.005979;, -0.781706; 0.623606; 0.007193;, -0.945928; 0.324290;-0.007519;, -0.974867; 0.222788; 0.000001;, -0.959904;-0.280330;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526836;-0.849954;-0.004638;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.487072;-0.873362;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324294;-0.004636;, 0.959903;-0.280330;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.945944; 0.324297; 0.004636;, 0.526834; 0.849955;-0.004632;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487069; 0.873363; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945945; 0.324295;-0.004633;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280331;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526836;-0.849954;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.487072;-0.873362;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945944;-0.324296;-0.004636;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526834; 0.849955;-0.004632;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487069; 0.873363; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945945; 0.324295;-0.004633;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280331;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526836;-0.849954;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.487072;-0.873362;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324294;-0.004635;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.945944; 0.324297; 0.004636;, 0.526834; 0.849955;-0.004632;, 0.487073; 0.873361; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487070; 0.873363; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945944; 0.324297;-0.004633;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280331;-0.000001;, -0.945944;-0.324297; 0.004633;, -0.526836;-0.849954;-0.004638;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.434213;-0.900810;-0.000003;, 0.526827;-0.849939; 0.007518;, 0.781706;-0.623606;-0.007189;, 0.974849;-0.222784; 0.005972;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526835; 0.849955;-0.004632;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526828; 0.849939; 0.007524;, -0.781705; 0.623606;-0.007184;, -0.974849; 0.222785; 0.005973;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280331;-0.000001;, -0.974849;-0.222785;-0.005973;, -0.781707;-0.623604; 0.007184;, -0.526828;-0.849939;-0.007524;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.434213;-0.900810;-0.000003;, 0.526828;-0.849939; 0.007518;, 0.781706;-0.623606;-0.007189;, 0.974849;-0.222784; 0.005972;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.974849; 0.222785;-0.005972;, 0.781707; 0.623604; 0.007189;, 0.526826; 0.849940;-0.007518;, 0.434210; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526828; 0.849939; 0.007524;, -0.781705; 0.623606;-0.007184;, -0.974849; 0.222785; 0.005973;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280331;-0.000001;, -0.974849;-0.222785;-0.005973;, -0.781707;-0.623604; 0.007184;, -0.526828;-0.849939;-0.007524;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.434213;-0.900810;-0.000003;, 0.526828;-0.849939; 0.007518;, 0.781706;-0.623606;-0.007189;, 0.974849;-0.222784; 0.005972;, 0.959903;-0.280332;-0.000001;, 0.959902; 0.280337; 0.000001;, 0.974848; 0.222792;-0.005971;, 0.781702; 0.623611; 0.007189;, 0.526822; 0.849942;-0.007518;, 0.434210; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434209; 0.900812; 0.000003;, -0.526822; 0.849942; 0.007524;, -0.781701; 0.623612;-0.007185;, -0.974848; 0.222792; 0.005973;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280331;-0.000001;, -0.974848;-0.222792;-0.005973;, -0.781703;-0.623610; 0.007185;, -0.526822;-0.849942;-0.007524;, -0.434209;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.434213;-0.900810;-0.000003;, 0.526822;-0.849942; 0.007518;, 0.781700;-0.623614;-0.007189;, 0.974848;-0.222791; 0.005971;, 0.959903;-0.280332;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.974849; 0.222785;-0.005971;, 0.781703; 0.623610; 0.007189;, 0.526822; 0.849942;-0.007518;, 0.434210; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526824; 0.849941; 0.007524;, -0.781701; 0.623612;-0.007184;, -0.974848; 0.222792; 0.005973;, -0.959902; 0.280335; 0.000001;, -0.959902;-0.280334;-0.000001;, -0.974848;-0.222792;-0.005973;, -0.781703;-0.623610; 0.007184;, -0.526824;-0.849941;-0.007524;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.434213;-0.900810;-0.000003;, 0.526824;-0.849941; 0.007518;, 0.781701;-0.623612;-0.007189;, 0.974849;-0.222784; 0.005972;, 0.959904;-0.280330;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.974849; 0.222785;-0.005971;, 0.781707; 0.623604; 0.007189;, 0.526825; 0.849941;-0.007518;, 0.434210; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526830; 0.849937; 0.007525;, -0.781705; 0.623606;-0.007184;, -0.974849; 0.222785; 0.005974;, -0.959902; 0.280337; 0.000001;, -0.959902;-0.280336;-0.000001;, -0.974849;-0.222785;-0.005974;, -0.781707;-0.623604; 0.007184;, -0.526830;-0.849938;-0.007525;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.434213;-0.900810;-0.000003;, 0.526827;-0.849939; 0.007518;, 0.781706;-0.623606;-0.007189;, 0.974849;-0.222784; 0.005972;, 0.959904;-0.280330;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526834; 0.849955;-0.004632;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526827; 0.849939; 0.007524;, -0.781705; 0.623606;-0.007184;, -0.974849; 0.222785; 0.005973;, -0.959904; 0.280330; 0.000001;, -0.959904;-0.280330;-0.000001;, -0.974849;-0.222785;-0.005973;, -0.781707;-0.623604; 0.007184;, -0.526827;-0.849939;-0.007524;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.434213;-0.900810;-0.000003;, 0.526827;-0.849939; 0.007518;, 0.781706;-0.623606;-0.007189;, 0.974849;-0.222784; 0.005972;, 0.959904;-0.280330;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526834; 0.849955;-0.004632;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526827; 0.849939; 0.007524;, -0.781705; 0.623606;-0.007184;, -0.974849; 0.222785; 0.005973;, -0.959904; 0.280330; 0.000001;, -0.959904;-0.280330;-0.000001;, -0.974849;-0.222785;-0.005973;, -0.781707;-0.623604; 0.007184;, -0.526827;-0.849939;-0.007524;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.434213;-0.900810;-0.000003;, 0.526827;-0.849939; 0.007518;, 0.781706;-0.623606;-0.007189;, 0.974849;-0.222784; 0.005972;, 0.959904;-0.280330;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526834; 0.849955;-0.004632;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487070; 0.873363; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945945; 0.324295;-0.004633;, -0.959904; 0.280330; 0.000001;, -0.959904;-0.280330;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526836;-0.849954;-0.004638;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.487072;-0.873362;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324294;-0.004636;, 0.959904;-0.280330;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526834; 0.849955;-0.004632;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487070; 0.873363; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945945; 0.324295;-0.004633;, -0.959904; 0.280330; 0.000001;, -0.959904;-0.280330;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526836;-0.849954;-0.004638;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000003;, -0.000000;-1.000000;-0.000003;, 0.487072;-0.873362;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324294;-0.004636;, 0.959904;-0.280330;-0.000001;, 0.959903; 0.280331; 0.000001;, 0.945944; 0.324297; 0.004636;, 0.526834; 0.849955;-0.004632;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487069; 0.873363; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945945; 0.324294;-0.004633;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280332;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526834;-0.849955;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487070;-0.873363;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945944;-0.324297;-0.004636;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280331; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526834; 0.849955;-0.004632;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487069; 0.873363; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945945; 0.324294;-0.004633;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280332;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526834;-0.849955;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487069;-0.873363;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324295;-0.004635;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280331; 0.000001;, 0.945944; 0.324297; 0.004636;, 0.526834; 0.849955;-0.004632;, 0.487073; 0.873361; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487070; 0.873363; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945944; 0.324296;-0.004633;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280332;-0.000001;, -0.945944;-0.324297; 0.004633;, -0.526834;-0.849955;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434209;-0.900812;-0.000003;, 0.526827;-0.849939; 0.007518;, 0.781706;-0.623606;-0.007189;, 0.974849;-0.222785; 0.005972;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280331; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526835; 0.849955;-0.004632;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526828; 0.849939; 0.007524;, -0.781706; 0.623606;-0.007184;, -0.974849; 0.222784; 0.005973;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280332;-0.000001;, -0.974849;-0.222785;-0.005973;, -0.781707;-0.623604; 0.007184;, -0.526826;-0.849940;-0.007525;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434210;-0.900812;-0.000003;, 0.526828;-0.849939; 0.007518;, 0.781706;-0.623606;-0.007189;, 0.974849;-0.222785; 0.005972;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280331; 0.000001;, 0.974849; 0.222786;-0.005972;, 0.781708; 0.623604; 0.007189;, 0.526826; 0.849940;-0.007518;, 0.434210; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526828; 0.849939; 0.007524;, -0.781706; 0.623606;-0.007184;, -0.974849; 0.222784; 0.005973;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280332;-0.000001;, -0.974849;-0.222785;-0.005973;, -0.781707;-0.623604; 0.007184;, -0.526826;-0.849940;-0.007525;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434210;-0.900812;-0.000003;, 0.526828;-0.849939; 0.007518;, 0.781706;-0.623606;-0.007189;, 0.974849;-0.222785; 0.005972;, 0.959903;-0.280332;-0.000001;, 0.959902; 0.280336; 0.000001;, 0.974848; 0.222792;-0.005971;, 0.781702; 0.623611; 0.007189;, 0.526822; 0.849942;-0.007518;, 0.434210; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434209; 0.900812; 0.000003;, -0.526822; 0.849942; 0.007524;, -0.781701; 0.623612;-0.007185;, -0.974848; 0.222791; 0.005973;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280332;-0.000001;, -0.974848;-0.222792;-0.005973;, -0.781703;-0.623610; 0.007185;, -0.526820;-0.849944;-0.007524;, -0.434209;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434210;-0.900812;-0.000003;, 0.526822;-0.849942; 0.007518;, 0.781700;-0.623614;-0.007189;, 0.974848;-0.222792; 0.005971;, 0.959903;-0.280332;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.974849; 0.222786;-0.005971;, 0.781703; 0.623610; 0.007189;, 0.526822; 0.849942;-0.007518;, 0.434210; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526824; 0.849941; 0.007524;, -0.781701; 0.623612;-0.007184;, -0.974848; 0.222791; 0.005973;, -0.959902; 0.280335; 0.000001;, -0.959902;-0.280335;-0.000001;, -0.974848;-0.222792;-0.005973;, -0.781703;-0.623610; 0.007184;, -0.526822;-0.849942;-0.007524;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434210;-0.900812;-0.000003;, 0.526824;-0.849941; 0.007518;, 0.781701;-0.623612;-0.007189;, 0.974849;-0.222785; 0.005972;, 0.959903;-0.280330;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.974849; 0.222786;-0.005971;, 0.781708; 0.623604; 0.007189;, 0.526825; 0.849941;-0.007518;, 0.434210; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526830; 0.849938; 0.007525;, -0.781706; 0.623606;-0.007184;, -0.974849; 0.222784; 0.005974;, -0.959902; 0.280337; 0.000001;, -0.959902;-0.280337;-0.000001;, -0.974849;-0.222785;-0.005974;, -0.781707;-0.623604; 0.007184;, -0.526828;-0.849939;-0.007525;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434210;-0.900812;-0.000003;, 0.526827;-0.849939; 0.007518;, 0.781706;-0.623606;-0.007189;, 0.974849;-0.222785; 0.005972;, 0.959903;-0.280330;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526834; 0.849955;-0.004632;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526827; 0.849939; 0.007524;, -0.781706; 0.623606;-0.007184;, -0.974849; 0.222784; 0.005973;, -0.959903; 0.280330; 0.000001;, -0.959903;-0.280330;-0.000001;, -0.974849;-0.222785;-0.005973;, -0.781707;-0.623604; 0.007184;, -0.526825;-0.849941;-0.007524;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434210;-0.900812;-0.000003;, 0.526827;-0.849939; 0.007518;, 0.781706;-0.623606;-0.007189;, 0.974849;-0.222785; 0.005972;, 0.959903;-0.280330;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526834; 0.849955;-0.004632;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526827; 0.849939; 0.007524;, -0.781706; 0.623606;-0.007184;, -0.974849; 0.222784; 0.005973;, -0.959903; 0.280330; 0.000001;, -0.959903;-0.280330;-0.000001;, -0.974849;-0.222785;-0.005973;, -0.781707;-0.623604; 0.007184;, -0.526825;-0.849941;-0.007524;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487070;-0.873363;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324295;-0.004636;, 0.959903;-0.280330;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526834; 0.849955;-0.004632;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487070; 0.873363; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945945; 0.324294;-0.004633;, -0.959903; 0.280330; 0.000001;, -0.959903;-0.280330;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526834;-0.849955;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487070;-0.873363;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324295;-0.004636;, 0.959903;-0.280330;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526834; 0.849955;-0.004632;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487070; 0.873363; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945945; 0.324294;-0.004633;, -0.959903; 0.280330; 0.000001;, -0.959903;-0.280330;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526834;-0.849955;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487070;-0.873363;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324295;-0.004636;, 0.959903;-0.280330;-0.000001;, 0.959904; 0.280329; 0.000001;, 0.945943; 0.324298; 0.004636;, 0.526836; 0.849954;-0.004631;, 0.487083; 0.873356; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.487085; 0.873355; 0.000003;, -0.526834; 0.849955; 0.004637;, -0.945944; 0.324297;-0.004634;, -0.959904; 0.280329; 0.000001;, -0.959904;-0.280328;-0.000001;, -0.945944;-0.324296; 0.004634;, -0.526834;-0.849955;-0.004637;, -0.487085;-0.873355;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487083;-0.873356;-0.000003;, 0.526836;-0.849954; 0.004631;, 0.945944;-0.324297;-0.004636;, 0.959904;-0.280328;-0.000001;, 0.959904; 0.280329; 0.000001;, 0.945944; 0.324297; 0.004636;, 0.526836; 0.849954;-0.004631;, 0.487082; 0.873356; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.487085; 0.873355; 0.000003;, -0.526834; 0.849955; 0.004637;, -0.945944; 0.324297;-0.004634;, -0.959904; 0.280329; 0.000001;, -0.959904;-0.280328;-0.000001;, -0.945944;-0.324296; 0.004634;, -0.526834;-0.849955;-0.004637;, -0.487085;-0.873355;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487082;-0.873356;-0.000003;, 0.526836;-0.849954; 0.004631;, 0.945944;-0.324296;-0.004636;, 0.959904;-0.280328;-0.000001;, 0.959904; 0.280329; 0.000001;, 0.945943; 0.324298; 0.004636;, 0.526837; 0.849954;-0.004631;, 0.487083; 0.873356; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.487086; 0.873354; 0.000003;, -0.526834; 0.849955; 0.004637;, -0.945943; 0.324298;-0.004634;, -0.959904; 0.280329; 0.000001;, -0.959904;-0.280330;-0.000001;, -0.945944;-0.324298; 0.004634;, -0.526839;-0.849953;-0.004638;, -0.487086;-0.873354;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434201;-0.900816;-0.000003;, 0.526830;-0.849938; 0.007519;, 0.781725;-0.623583;-0.007189;, 0.974848;-0.222790; 0.005971;, 0.959904;-0.280329;-0.000001;, 0.959904; 0.280329; 0.000001;, 0.945944; 0.324297; 0.004636;, 0.526837; 0.849954;-0.004631;, 0.487083; 0.873356; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.487086; 0.873354; 0.000003;, -0.526835; 0.849955; 0.004637;, -0.945944; 0.324297;-0.004634;, -0.959904; 0.280329; 0.000001;, -0.959904;-0.280330;-0.000001;, -0.974848;-0.222790;-0.005973;, -0.781725;-0.623583; 0.007185;, -0.526830;-0.849937;-0.007525;, -0.434206;-0.900814;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434202;-0.900816;-0.000003;, 0.526830;-0.849937; 0.007519;, 0.781725;-0.623583;-0.007189;, 0.974848;-0.222790; 0.005971;, 0.959904;-0.280329;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.974848; 0.222791;-0.005971;, 0.781725; 0.623583; 0.007189;, 0.526830; 0.849937;-0.007519;, 0.434202; 0.900816; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.434206; 0.900814; 0.000003;, -0.526830; 0.849937; 0.007525;, -0.781725; 0.623583;-0.007185;, -0.974848; 0.222791; 0.005973;, -0.959903; 0.280331; 0.000001;, -0.959904;-0.280330;-0.000001;, -0.974848;-0.222790;-0.005973;, -0.781725;-0.623583; 0.007185;, -0.526830;-0.849937;-0.007525;, -0.434206;-0.900814;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434202;-0.900816;-0.000003;, 0.526830;-0.849937; 0.007519;, 0.781725;-0.623583;-0.007189;, 0.974848;-0.222790; 0.005971;, 0.959904;-0.280329;-0.000001;, 0.959904; 0.280329; 0.000001;, 0.974846; 0.222798;-0.005970;, 0.781719; 0.623590; 0.007190;, 0.526822; 0.849942;-0.007518;, 0.434202; 0.900816; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.434205; 0.900814; 0.000003;, -0.526820; 0.849944; 0.007524;, -0.781720; 0.623589;-0.007186;, -0.974847; 0.222798; 0.005972;, -0.959904; 0.280329; 0.000001;, -0.959904;-0.280330;-0.000001;, -0.974847;-0.222797;-0.005972;, -0.781720;-0.623588; 0.007185;, -0.526824;-0.849941;-0.007525;, -0.434205;-0.900814;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434202;-0.900816;-0.000003;, 0.526824;-0.849941; 0.007519;, 0.781719;-0.623590;-0.007190;, 0.974847;-0.222797; 0.005970;, 0.959904;-0.280329;-0.000001;, 0.959904; 0.280328; 0.000001;, 0.974848; 0.222791;-0.005971;, 0.781720; 0.623588; 0.007190;, 0.526824; 0.849941;-0.007519;, 0.434202; 0.900816; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.434206; 0.900814; 0.000003;, -0.526822; 0.849942; 0.007525;, -0.781720; 0.623589;-0.007185;, -0.974847; 0.222798; 0.005972;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280333;-0.000001;, -0.974847;-0.222797;-0.005972;, -0.781720;-0.623588; 0.007185;, -0.526827;-0.849939;-0.007525;, -0.434206;-0.900814;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434202;-0.900816;-0.000003;, 0.526827;-0.849940; 0.007519;, 0.781720;-0.623588;-0.007190;, 0.974848;-0.222790; 0.005971;, 0.959904;-0.280328;-0.000001;, 0.959904; 0.280329; 0.000001;, 0.974848; 0.222791;-0.005971;, 0.781725; 0.623583; 0.007189;, 0.526829; 0.849938;-0.007519;, 0.434202; 0.900816; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.434206; 0.900814; 0.000003;, -0.526832; 0.849936; 0.007525;, -0.781725; 0.623583;-0.007184;, -0.974848; 0.222791; 0.005973;, -0.959902; 0.280336; 0.000001;, -0.959902;-0.280335;-0.000001;, -0.974848;-0.222790;-0.005973;, -0.781725;-0.623583; 0.007184;, -0.526832;-0.849936;-0.007525;, -0.434206;-0.900814;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434202;-0.900816;-0.000003;, 0.526829;-0.849938; 0.007519;, 0.781725;-0.623583;-0.007189;, 0.974848;-0.222790; 0.005971;, 0.959904;-0.280328;-0.000001;, 0.959904; 0.280328; 0.000001;, 0.945944; 0.324297; 0.004636;, 0.526836; 0.849954;-0.004631;, 0.487083; 0.873356; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.487086; 0.873354; 0.000003;, -0.526834; 0.849955; 0.004637;, -0.945944; 0.324297;-0.004634;, -0.959904; 0.280328; 0.000001;, -0.959904;-0.280329;-0.000001;, -0.974848;-0.222790;-0.005973;, -0.781725;-0.623583; 0.007185;, -0.526829;-0.849938;-0.007525;, -0.434206;-0.900814;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434202;-0.900816;-0.000003;, 0.526829;-0.849938; 0.007519;, 0.781725;-0.623583;-0.007189;, 0.974848;-0.222790; 0.005971;, 0.959904;-0.280328;-0.000001;, 0.959904; 0.280328; 0.000001;, 0.945944; 0.324297; 0.004636;, 0.526836; 0.849954;-0.004631;, 0.487083; 0.873356; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.487086; 0.873354; 0.000003;, -0.526834; 0.849955; 0.004637;, -0.945944; 0.324297;-0.004634;, -0.959904; 0.280328; 0.000001;, -0.959904;-0.280329;-0.000001;, -0.974848;-0.222790;-0.005973;, -0.781725;-0.623583; 0.007185;, -0.526829;-0.849938;-0.007525;, -0.434206;-0.900814;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487083;-0.873356;-0.000003;, 0.526838;-0.849953; 0.004631;, 0.945944;-0.324296;-0.004636;, 0.959904;-0.280328;-0.000001;, 0.959904; 0.280328; 0.000001;, 0.945944; 0.324297; 0.004636;, 0.526836; 0.849954;-0.004631;, 0.487083; 0.873356; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.487086; 0.873354; 0.000003;, -0.526834; 0.849955; 0.004637;, -0.945944; 0.324297;-0.004634;, -0.959904; 0.280328; 0.000001;, -0.959905;-0.280327;-0.000001;, -0.945944;-0.324296; 0.004634;, -0.526834;-0.849955;-0.004637;, -0.487086;-0.873354;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487083;-0.873356;-0.000003;, 0.526836;-0.849954; 0.004631;, 0.945944;-0.324296;-0.004636;, 0.959905;-0.280327;-0.000001;, 0.959904; 0.280328; 0.000001;, 0.945944; 0.324297; 0.004636;, 0.526836; 0.849954;-0.004631;, 0.487083; 0.873356; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.487086; 0.873354; 0.000003;, -0.526834; 0.849955; 0.004637;, -0.945944; 0.324297;-0.004634;, -0.959904; 0.280328; 0.000001;, -0.959905;-0.280327;-0.000001;, -0.945944;-0.324296; 0.004634;, -0.526834;-0.849955;-0.004637;, -0.487086;-0.873354;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487083;-0.873356;-0.000003;, 0.526836;-0.849954; 0.004631;, 0.945944;-0.324296;-0.004636;, 0.959905;-0.280327;-0.000001;, 0.959904; 0.280328; 0.000001;, 0.945944; 0.324297; 0.004636;, 0.526836; 0.849954;-0.004631;, 0.487086; 0.873354; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487085; 0.873355; 0.000003;, -0.526836; 0.849954; 0.004637;, -0.945944; 0.324296;-0.004634;, -0.959904; 0.280328; 0.000001;, -0.959904;-0.280330;-0.000001;, -0.945944;-0.324297; 0.004634;, -0.526835;-0.849955;-0.004637;, -0.487084;-0.873355;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487084;-0.873355;-0.000003;, 0.526835;-0.849955; 0.004631;, 0.945943;-0.324299;-0.004636;, 0.959904;-0.280329;-0.000001;, 0.959904; 0.280328; 0.000001;, 0.945944; 0.324296; 0.004636;, 0.526836; 0.849954;-0.004631;, 0.487085; 0.873355; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487085; 0.873355; 0.000003;, -0.526836; 0.849954; 0.004637;, -0.945944; 0.324296;-0.004634;, -0.959904; 0.280328; 0.000001;, -0.959904;-0.280330;-0.000001;, -0.945944;-0.324297; 0.004634;, -0.526835;-0.849955;-0.004637;, -0.487084;-0.873355;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487084;-0.873355;-0.000003;, 0.526835;-0.849955; 0.004631;, 0.945944;-0.324298;-0.004636;, 0.959904;-0.280329;-0.000001;, 0.959904; 0.280329; 0.000001;, 0.974848; 0.222790;-0.005971;, 0.781725; 0.623583; 0.007189;, 0.526830; 0.849938;-0.007519;, 0.434205; 0.900814; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487086; 0.873354; 0.000003;, -0.526839; 0.849953; 0.004637;, -0.945944; 0.324298;-0.004634;, -0.959904; 0.280329; 0.000001;, -0.959904;-0.280330;-0.000001;, -0.945943;-0.324298; 0.004634;, -0.526835;-0.849955;-0.004637;, -0.487084;-0.873355;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487085;-0.873355;-0.000003;, 0.526836;-0.849955; 0.004631;, 0.945943;-0.324299;-0.004636;, 0.959904;-0.280329;-0.000001;, 0.959904; 0.280329; 0.000001;, 0.974848; 0.222790;-0.005971;, 0.781725; 0.623583; 0.007189;, 0.526830; 0.849937;-0.007519;, 0.434206; 0.900814; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434206; 0.900814; 0.000003;, -0.526830; 0.849937; 0.007525;, -0.781723; 0.623585;-0.007185;, -0.974849; 0.222789; 0.005973;, -0.959904; 0.280329; 0.000001;, -0.959904;-0.280330;-0.000001;, -0.945944;-0.324297; 0.004634;, -0.526836;-0.849954;-0.004637;, -0.487084;-0.873355;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487084;-0.873355;-0.000003;, 0.526836;-0.849954; 0.004631;, 0.945944;-0.324298;-0.004636;, 0.959904;-0.280329;-0.000001;, 0.959904; 0.280329; 0.000001;, 0.974848; 0.222790;-0.005971;, 0.781725; 0.623583; 0.007189;, 0.526830; 0.849937;-0.007519;, 0.434206; 0.900814; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434206; 0.900814; 0.000003;, -0.526830; 0.849937; 0.007525;, -0.781723; 0.623585;-0.007185;, -0.974849; 0.222789; 0.005973;, -0.959904; 0.280329; 0.000001;, -0.959903;-0.280331;-0.000001;, -0.974848;-0.222791;-0.005973;, -0.781724;-0.623584; 0.007185;, -0.526830;-0.849937;-0.007525;, -0.434206;-0.900814;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434204;-0.900815;-0.000003;, 0.526830;-0.849937; 0.007519;, 0.781724;-0.623584;-0.007189;, 0.974848;-0.222791; 0.005971;, 0.959904;-0.280331;-0.000001;, 0.959904; 0.280329; 0.000001;, 0.974847; 0.222797;-0.005970;, 0.781719; 0.623590; 0.007190;, 0.526824; 0.849941;-0.007519;, 0.434206; 0.900814; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434205; 0.900814; 0.000003;, -0.526824; 0.849941; 0.007525;, -0.781718; 0.623591;-0.007185;, -0.974847; 0.222796; 0.005972;, -0.959904; 0.280329; 0.000001;, -0.959904;-0.280330;-0.000001;, -0.974847;-0.222798;-0.005972;, -0.781719;-0.623590; 0.007186;, -0.526821;-0.849943;-0.007524;, -0.434205;-0.900814;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434204;-0.900815;-0.000003;, 0.526821;-0.849943; 0.007518;, 0.781718;-0.623591;-0.007190;, 0.974846;-0.222798; 0.005970;, 0.959904;-0.280329;-0.000001;, 0.959904; 0.280328; 0.000001;, 0.974848; 0.222790;-0.005971;, 0.781720; 0.623588; 0.007190;, 0.526827; 0.849940;-0.007519;, 0.434206; 0.900814; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434206; 0.900814; 0.000003;, -0.526827; 0.849939; 0.007525;, -0.781718; 0.623591;-0.007185;, -0.974847; 0.222796; 0.005972;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280333;-0.000001;, -0.974847;-0.222798;-0.005972;, -0.781719;-0.623590; 0.007185;, -0.526823;-0.849942;-0.007524;, -0.434206;-0.900814;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434204;-0.900815;-0.000003;, 0.526823;-0.849942; 0.007518;, 0.781719;-0.623590;-0.007190;, 0.974848;-0.222791; 0.005971;, 0.959904;-0.280328;-0.000001;, 0.959904; 0.280328; 0.000001;, 0.974848; 0.222790;-0.005971;, 0.781725; 0.623583; 0.007189;, 0.526829; 0.849938;-0.007519;, 0.434206; 0.900814; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434206; 0.900814; 0.000003;, -0.526832; 0.849936; 0.007525;, -0.781723; 0.623585;-0.007184;, -0.974849; 0.222789; 0.005973;, -0.959903; 0.280334; 0.000001;, -0.959902;-0.280336;-0.000001;, -0.974848;-0.222791;-0.005973;, -0.781724;-0.623584; 0.007184;, -0.526832;-0.849936;-0.007525;, -0.434206;-0.900814;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434204;-0.900815;-0.000003;, 0.526829;-0.849938; 0.007519;, 0.781724;-0.623584;-0.007189;, 0.974848;-0.222791; 0.005971;, 0.959904;-0.280329;-0.000001;, 0.959904; 0.280328; 0.000001;, 0.974848; 0.222790;-0.005971;, 0.781725; 0.623583; 0.007189;, 0.526829; 0.849938;-0.007519;, 0.434206; 0.900814; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434206; 0.900814; 0.000003;, -0.526829; 0.849938; 0.007525;, -0.781723; 0.623585;-0.007185;, -0.974849; 0.222789; 0.005973;, -0.959904; 0.280328; 0.000001;, -0.959904;-0.280328;-0.000001;, -0.945944;-0.324297; 0.004634;, -0.526835;-0.849955;-0.004637;, -0.487084;-0.873355;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487084;-0.873355;-0.000003;, 0.526835;-0.849955; 0.004631;, 0.945944;-0.324298;-0.004636;, 0.959904;-0.280328;-0.000001;, 0.959904; 0.280328; 0.000001;, 0.945944; 0.324296; 0.004636;, 0.526838; 0.849953;-0.004631;, 0.487086; 0.873354; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434206; 0.900814; 0.000003;, -0.526829; 0.849938; 0.007525;, -0.781723; 0.623585;-0.007185;, -0.974849; 0.222789; 0.005973;, -0.959904; 0.280328; 0.000001;, -0.959904;-0.280328;-0.000001;, -0.945944;-0.324297; 0.004634;, -0.526835;-0.849955;-0.004637;, -0.487084;-0.873355;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487084;-0.873355;-0.000003;, 0.526835;-0.849955; 0.004631;, 0.945944;-0.324298;-0.004636;, 0.959904;-0.280328;-0.000001;, 0.959905; 0.280327; 0.000001;, 0.945944; 0.324296; 0.004636;, 0.526836; 0.849954;-0.004631;, 0.487086; 0.873354; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487086; 0.873354; 0.000003;, -0.526836; 0.849954; 0.004637;, -0.945944; 0.324296;-0.004634;, -0.959905; 0.280327; 0.000001;, -0.959904;-0.280328;-0.000001;, -0.945944;-0.324297; 0.004634;, -0.526835;-0.849955;-0.004637;, -0.487084;-0.873355;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487084;-0.873355;-0.000003;, 0.526835;-0.849955; 0.004631;, 0.945944;-0.324298;-0.004636;, 0.959904;-0.280328;-0.000001;, 0.959905; 0.280327; 0.000001;, 0.945944; 0.324296; 0.004636;, 0.526836; 0.849954;-0.004631;, 0.487086; 0.873354; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487086; 0.873354; 0.000003;, -0.526836; 0.849954; 0.004637;, -0.945944; 0.324296;-0.004634;, -0.959905; 0.280327; 0.000001;, -0.959904;-0.280328;-0.000001;, -0.945944;-0.324297; 0.004634;, -0.526835;-0.849955;-0.004637;, -0.487084;-0.873355;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487084;-0.873355;-0.000003;, 0.526835;-0.849955; 0.004631;, 0.945944;-0.324298;-0.004636;, 0.959904;-0.280328;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.945944; 0.324296; 0.004636;, 0.526835; 0.849955;-0.004633;, 0.487070; 0.873363; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.487069; 0.873363; 0.000003;, -0.526835; 0.849955; 0.004639;, -0.945945; 0.324294;-0.004633;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280332;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526835;-0.849955;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487071;-0.873362;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945944;-0.324297;-0.004636;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.945945; 0.324295; 0.004635;, 0.526835; 0.849955;-0.004633;, 0.487069; 0.873363; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.487069; 0.873363; 0.000003;, -0.526835; 0.849955; 0.004639;, -0.945945; 0.324294;-0.004633;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280332;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526835;-0.849955;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487070;-0.873363;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324295;-0.004635;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.974849; 0.222785;-0.005972;, 0.781707; 0.623605; 0.007188;, 0.526826; 0.849940;-0.007518;, 0.434207; 0.900813; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.487070; 0.873363; 0.000003;, -0.526835; 0.849955; 0.004639;, -0.945944; 0.324296;-0.004633;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280332;-0.000001;, -0.945944;-0.324297; 0.004633;, -0.526835;-0.849955;-0.004638;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434211;-0.900811;-0.000003;, 0.526827;-0.849939; 0.007518;, 0.781706;-0.623606;-0.007189;, 0.974849;-0.222786; 0.005972;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.974849; 0.222785;-0.005972;, 0.781707; 0.623605; 0.007188;, 0.526827; 0.849939;-0.007518;, 0.434208; 0.900813; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.434210; 0.900812; 0.000003;, -0.526827; 0.849939; 0.007524;, -0.781705; 0.623606;-0.007184;, -0.974849; 0.222784; 0.005973;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280332;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526836;-0.849954;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434211;-0.900811;-0.000003;, 0.526828;-0.849939; 0.007518;, 0.781706;-0.623606;-0.007189;, 0.974849;-0.222786; 0.005972;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.974849; 0.222785;-0.005972;, 0.781707; 0.623605; 0.007188;, 0.526827; 0.849939;-0.007518;, 0.434208; 0.900813; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.434210; 0.900812; 0.000003;, -0.526827; 0.849939; 0.007524;, -0.781705; 0.623606;-0.007184;, -0.974849; 0.222784; 0.005973;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280332;-0.000001;, -0.974849;-0.222785;-0.005973;, -0.781706;-0.623605; 0.007184;, -0.526827;-0.849939;-0.007524;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434211;-0.900811;-0.000003;, 0.526828;-0.849939; 0.007518;, 0.781706;-0.623606;-0.007189;, 0.974849;-0.222786; 0.005972;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.974848; 0.222792;-0.005971;, 0.781701; 0.623612; 0.007189;, 0.526821; 0.849943;-0.007518;, 0.434208; 0.900813; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.434209; 0.900812; 0.000003;, -0.526821; 0.849943; 0.007524;, -0.781701; 0.623612;-0.007185;, -0.974848; 0.222791; 0.005973;, -0.959903; 0.280332; 0.000001;, -0.959902;-0.280335;-0.000001;, -0.974848;-0.222792;-0.005973;, -0.781702;-0.623611; 0.007184;, -0.526823;-0.849942;-0.007524;, -0.434209;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434211;-0.900811;-0.000003;, 0.526822;-0.849942; 0.007518;, 0.781700;-0.623614;-0.007189;, 0.974848;-0.222792; 0.005971;, 0.959903;-0.280332;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.974849; 0.222785;-0.005972;, 0.781702; 0.623611; 0.007189;, 0.526823; 0.849942;-0.007518;, 0.434208; 0.900813; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.434210; 0.900812; 0.000003;, -0.526823; 0.849942; 0.007524;, -0.781701; 0.623612;-0.007184;, -0.974848; 0.222791; 0.005973;, -0.959902; 0.280335; 0.000001;, -0.959902;-0.280335;-0.000001;, -0.974848;-0.222792;-0.005973;, -0.781702;-0.623611; 0.007184;, -0.526823;-0.849942;-0.007524;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434211;-0.900811;-0.000003;, 0.526824;-0.849941; 0.007518;, 0.781701;-0.623612;-0.007189;, 0.974849;-0.222786; 0.005972;, 0.959903;-0.280330;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.974849; 0.222785;-0.005972;, 0.781707; 0.623605; 0.007189;, 0.526826; 0.849940;-0.007518;, 0.434208; 0.900813; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.434210; 0.900812; 0.000003;, -0.526829; 0.849938; 0.007525;, -0.781705; 0.623606;-0.007184;, -0.974849; 0.222784; 0.005974;, -0.959902; 0.280337; 0.000001;, -0.959902;-0.280337;-0.000001;, -0.974849;-0.222785;-0.005974;, -0.781706;-0.623605; 0.007184;, -0.526829;-0.849938;-0.007525;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434211;-0.900811;-0.000003;, 0.526827;-0.849939; 0.007518;, 0.781706;-0.623606;-0.007189;, 0.974849;-0.222786; 0.005972;, 0.959903;-0.280330;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.974849; 0.222785;-0.005972;, 0.781707; 0.623605; 0.007189;, 0.526826; 0.849940;-0.007518;, 0.434208; 0.900813; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.434210; 0.900812; 0.000003;, -0.526826; 0.849940; 0.007524;, -0.781705; 0.623606;-0.007184;, -0.974849; 0.222784; 0.005973;, -0.959903; 0.280330; 0.000001;, -0.959903;-0.280330;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526835;-0.849955;-0.004638;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434211;-0.900811;-0.000003;, 0.526827;-0.849939; 0.007518;, 0.781706;-0.623606;-0.007189;, 0.974849;-0.222786; 0.005972;, 0.959903;-0.280330;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526835; 0.849955;-0.004633;, 0.487070; 0.873363; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.434210; 0.900812; 0.000003;, -0.526826; 0.849940; 0.007524;, -0.781705; 0.623606;-0.007184;, -0.974849; 0.222784; 0.005973;, -0.959903; 0.280330; 0.000001;, -0.959903;-0.280330;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526835;-0.849955;-0.004638;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487071;-0.873362;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324295;-0.004636;, 0.959903;-0.280330;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526835; 0.849955;-0.004633;, 0.487070; 0.873363; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.487070; 0.873363; 0.000003;, -0.526835; 0.849955; 0.004639;, -0.945945; 0.324294;-0.004633;, -0.959903; 0.280330; 0.000001;, -0.959903;-0.280330;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526835;-0.849955;-0.004638;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487071;-0.873362;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324295;-0.004636;, 0.959903;-0.280330;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526835; 0.849955;-0.004633;, 0.487070; 0.873363; 0.000003;, 0.000000; 1.000000; 0.000004;, -0.000000; 1.000000; 0.000004;, -0.487070; 0.873363; 0.000003;, -0.526835; 0.849955; 0.004639;, -0.945945; 0.324294;-0.004633;, -0.959903; 0.280330; 0.000001;, -0.959903;-0.280330;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526835;-0.849955;-0.004638;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487071;-0.873362;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324295;-0.004636;, 0.959903;-0.280330;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.945944; 0.324297; 0.004636;, 0.526835; 0.849955;-0.004632;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487070; 0.873363; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945945; 0.324295;-0.004633;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280332;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526834;-0.849955;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487070;-0.873363;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945944;-0.324297;-0.004636;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.945945; 0.324295; 0.004635;, 0.526835; 0.849955;-0.004633;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487070; 0.873363; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945945; 0.324295;-0.004633;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280332;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526834;-0.849955;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487069;-0.873363;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324295;-0.004635;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.974849; 0.222786;-0.005972;, 0.781708; 0.623604; 0.007189;, 0.526826; 0.849940;-0.007518;, 0.434209; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434209; 0.900812; 0.000003;, -0.526827; 0.849939; 0.007524;, -0.781706; 0.623605;-0.007184;, -0.974849; 0.222785; 0.005973;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280332;-0.000001;, -0.945944;-0.324297; 0.004633;, -0.526834;-0.849955;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434207;-0.900813;-0.000003;, 0.526827;-0.849939; 0.007518;, 0.781707;-0.623605;-0.007188;, 0.974849;-0.222785; 0.005972;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.974849; 0.222786;-0.005972;, 0.781708; 0.623604; 0.007189;, 0.526827; 0.849939;-0.007518;, 0.434210; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526828; 0.849939; 0.007524;, -0.781706; 0.623605;-0.007184;, -0.974849; 0.222785; 0.005973;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280332;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526835;-0.849955;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434208;-0.900813;-0.000003;, 0.526828;-0.849939; 0.007518;, 0.781707;-0.623605;-0.007188;, 0.974849;-0.222785; 0.005972;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.974849; 0.222786;-0.005972;, 0.781708; 0.623604; 0.007189;, 0.526827; 0.849939;-0.007518;, 0.434210; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526828; 0.849939; 0.007524;, -0.781706; 0.623605;-0.007184;, -0.974849; 0.222785; 0.005973;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280332;-0.000001;, -0.945944;-0.324297; 0.004633;, -0.526835;-0.849955;-0.004638;, -0.487073;-0.873361;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434208;-0.900813;-0.000003;, 0.526828;-0.849939; 0.007518;, 0.781707;-0.623605;-0.007188;, 0.974849;-0.222785; 0.005972;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.974848; 0.222792;-0.005971;, 0.781702; 0.623611; 0.007189;, 0.526821; 0.849943;-0.007518;, 0.434210; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434209; 0.900812; 0.000003;, -0.526822; 0.849942; 0.007524;, -0.781702; 0.623611;-0.007185;, -0.974848; 0.222792; 0.005973;, -0.959903; 0.280332; 0.000001;, -0.959902;-0.280335;-0.000001;, -0.974848;-0.222792;-0.005973;, -0.781703;-0.623610; 0.007184;, -0.526821;-0.849943;-0.007524;, -0.434209;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434208;-0.900813;-0.000003;, 0.526822;-0.849942; 0.007518;, 0.781701;-0.623612;-0.007189;, 0.974848;-0.222792; 0.005971;, 0.959903;-0.280332;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.974849; 0.222786;-0.005972;, 0.781703; 0.623610; 0.007189;, 0.526823; 0.849942;-0.007518;, 0.434210; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526824; 0.849941; 0.007524;, -0.781702; 0.623611;-0.007184;, -0.974848; 0.222792; 0.005973;, -0.959902; 0.280335; 0.000001;, -0.959902;-0.280335;-0.000001;, -0.974848;-0.222792;-0.005973;, -0.781703;-0.623610; 0.007184;, -0.526822;-0.849942;-0.007524;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434208;-0.900813;-0.000003;, 0.526824;-0.849941; 0.007518;, 0.781702;-0.623611;-0.007189;, 0.974849;-0.222785; 0.005972;, 0.959904;-0.280330;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.974849; 0.222786;-0.005972;, 0.781708; 0.623604; 0.007189;, 0.526826; 0.849940;-0.007518;, 0.434210; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526830; 0.849938; 0.007525;, -0.781706; 0.623605;-0.007184;, -0.974849; 0.222785; 0.005974;, -0.959902; 0.280337; 0.000001;, -0.959902;-0.280337;-0.000001;, -0.974849;-0.222785;-0.005974;, -0.781707;-0.623604; 0.007184;, -0.526828;-0.849939;-0.007525;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434208;-0.900813;-0.000003;, 0.526827;-0.849939; 0.007518;, 0.781707;-0.623605;-0.007189;, 0.974849;-0.222785; 0.005972;, 0.959904;-0.280330;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.974849; 0.222786;-0.005972;, 0.781708; 0.623604; 0.007189;, 0.526826; 0.849940;-0.007518;, 0.434210; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526827; 0.849939; 0.007524;, -0.781706; 0.623605;-0.007184;, -0.974849; 0.222785; 0.005973;, -0.959904; 0.280330; 0.000001;, -0.959904;-0.280330;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526834;-0.849955;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434208;-0.900813;-0.000003;, 0.526827;-0.849939; 0.007518;, 0.781707;-0.623605;-0.007189;, 0.974849;-0.222785; 0.005972;, 0.959904;-0.280330;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526835; 0.849955;-0.004632;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526827; 0.849939; 0.007524;, -0.781706; 0.623605;-0.007184;, -0.974849; 0.222785; 0.005973;, -0.959904; 0.280330; 0.000001;, -0.959904;-0.280330;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526834;-0.849955;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487070;-0.873363;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324295;-0.004636;, 0.959904;-0.280330;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526835; 0.849955;-0.004632;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487071; 0.873362; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945945; 0.324295;-0.004633;, -0.959904; 0.280330; 0.000001;, -0.959904;-0.280330;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526834;-0.849955;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487070;-0.873363;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324295;-0.004636;, 0.959904;-0.280330;-0.000001;, 0.959904; 0.280330; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526835; 0.849955;-0.004632;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487071; 0.873362; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945945; 0.324295;-0.004633;, -0.959904; 0.280330; 0.000001;, -0.959904;-0.280330;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526834;-0.849955;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487070;-0.873363;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324295;-0.004636;, 0.959904;-0.280330;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.945944; 0.324297; 0.004636;, 0.526836; 0.849954;-0.004633;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487069; 0.873363; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945945; 0.324294;-0.004633;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280333;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526836;-0.849954;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487071;-0.873362;-0.000003;, 0.434201;-0.900796;-0.005986;, 0.781707;-0.623605; 0.007188;, 0.945927;-0.324291;-0.007521;, 0.974867;-0.222789;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.945945; 0.324295; 0.004635;, 0.526836; 0.849954;-0.004633;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487069; 0.873363; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945945; 0.324294;-0.004633;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280333;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526836;-0.849954;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487070;-0.873363;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324295;-0.004635;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.974849; 0.222786;-0.005972;, 0.781708; 0.623604; 0.007188;, 0.526827; 0.849939;-0.007519;, 0.434209; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487070; 0.873363; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945944; 0.324296;-0.004633;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280333;-0.000001;, -0.974849;-0.222785;-0.005973;, -0.781707;-0.623605; 0.007184;, -0.526827;-0.849939;-0.007525;, -0.434209;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487072;-0.873362;-0.000003;, 0.526837;-0.849954; 0.004633;, 0.945944;-0.324297;-0.004636;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.974849; 0.222786;-0.005972;, 0.781708; 0.623604; 0.007188;, 0.526828; 0.849939;-0.007519;, 0.434210; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526828; 0.849939; 0.007524;, -0.781706; 0.623606;-0.007184;, -0.974849; 0.222784; 0.005973;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280333;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526837;-0.849954;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487071;-0.873362;-0.000003;, 0.526837;-0.849954; 0.004633;, 0.945945;-0.324295;-0.004635;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.974849; 0.222786;-0.005972;, 0.781708; 0.623604; 0.007188;, 0.526828; 0.849939;-0.007519;, 0.434210; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526828; 0.849939; 0.007524;, -0.781706; 0.623606;-0.007184;, -0.974849; 0.222784; 0.005973;, -0.959903; 0.280332; 0.000001;, -0.959903;-0.280333;-0.000001;, -0.945944;-0.324297; 0.004633;, -0.526837;-0.849954;-0.004639;, -0.487073;-0.873361;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.434210;-0.900812;-0.000003;, 0.526828;-0.849939; 0.007518;, 0.781707;-0.623605;-0.007188;, 0.974849;-0.222786; 0.005972;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280332; 0.000001;, 0.974848; 0.222792;-0.005971;, 0.781702; 0.623611; 0.007189;, 0.526822; 0.849942;-0.007518;, 0.434210; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434209; 0.900812; 0.000003;, -0.526822; 0.849942; 0.007524;, -0.781701; 0.623612;-0.007185;, -0.974848; 0.222791; 0.005973;, -0.959903; 0.280332; 0.000001;, -0.959902;-0.280336;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526833;-0.849956;-0.004639;, -0.487067;-0.873365;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487066;-0.873365;-0.000003;, 0.526832;-0.849957; 0.004633;, 0.945944;-0.324297;-0.004636;, 0.959903;-0.280332;-0.000001;, 0.959903; 0.280330; 0.000001;, 0.974849; 0.222786;-0.005972;, 0.781703; 0.623610; 0.007189;, 0.526824; 0.849941;-0.007518;, 0.434210; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526824; 0.849941; 0.007524;, -0.781701; 0.623612;-0.007184;, -0.974848; 0.222791; 0.005973;, -0.959902; 0.280335; 0.000001;, -0.959902;-0.280336;-0.000001;, -0.945945;-0.324294; 0.004633;, -0.526834;-0.849956;-0.004639;, -0.487067;-0.873365;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487068;-0.873364;-0.000003;, 0.526834;-0.849956; 0.004633;, 0.945945;-0.324295;-0.004636;, 0.959903;-0.280330;-0.000001;, 0.959903; 0.280330; 0.000001;, 0.974849; 0.222786;-0.005972;, 0.781708; 0.623604; 0.007189;, 0.526827; 0.849939;-0.007518;, 0.434210; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526830; 0.849937; 0.007525;, -0.781706; 0.623606;-0.007184;, -0.974849; 0.222784; 0.005974;, -0.959902; 0.280337; 0.000001;, -0.959902;-0.280337;-0.000001;, -0.974849;-0.222785;-0.005974;, -0.781707;-0.623605; 0.007184;, -0.526830;-0.849937;-0.007525;, -0.434210;-0.900812;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487071;-0.873362;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324295;-0.004636;, 0.959903;-0.280330;-0.000001;, 0.959903; 0.280330; 0.000001;, 0.974849; 0.222786;-0.005972;, 0.781708; 0.623604; 0.007189;, 0.526827; 0.849939;-0.007518;, 0.434210; 0.900812; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526827; 0.849939; 0.007524;, -0.781706; 0.623606;-0.007184;, -0.974849; 0.222784; 0.005973;, -0.959903; 0.280330; 0.000001;, -0.959903;-0.280331;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526836;-0.849954;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487071;-0.873362;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324295;-0.004636;, 0.959903;-0.280330;-0.000001;, 0.959903; 0.280330; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526836; 0.849954;-0.004633;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.434210; 0.900812; 0.000003;, -0.526827; 0.849939; 0.007524;, -0.781706; 0.623606;-0.007184;, -0.974849; 0.222784; 0.005973;, -0.959903; 0.280330; 0.000001;, -0.959903;-0.280331;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526836;-0.849954;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487071;-0.873362;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324295;-0.004636;, 0.959903;-0.280330;-0.000001;, 0.959903; 0.280330; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526836; 0.849954;-0.004633;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487070; 0.873363; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945945; 0.324294;-0.004633;, -0.959903; 0.280330; 0.000001;, -0.959903;-0.280331;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526836;-0.849954;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487071;-0.873362;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324295;-0.004636;, 0.959903;-0.280330;-0.000001;, 0.959903; 0.280330; 0.000001;, 0.945945; 0.324295; 0.004636;, 0.526836; 0.849954;-0.004633;, 0.487072; 0.873362; 0.000003;, 0.000000; 1.000000; 0.000003;, -0.000000; 1.000000; 0.000003;, -0.487070; 0.873363; 0.000003;, -0.526836; 0.849954; 0.004639;, -0.945945; 0.324294;-0.004633;, -0.959903; 0.280330; 0.000001;, -0.959903;-0.280331;-0.000001;, -0.945945;-0.324295; 0.004633;, -0.526836;-0.849954;-0.004639;, -0.487072;-0.873362;-0.000003;, 0.000000;-1.000000;-0.000004;, -0.000000;-1.000000;-0.000004;, 0.487071;-0.873362;-0.000003;, 0.526836;-0.849954; 0.004633;, 0.945945;-0.324295;-0.004636;, 0.959903;-0.280330;-0.000001;; 4656; 3;0,0,0;, 3;1,1,1;, 3;2,2,2;, 3;3,3,3;, 3;4,4,4;, 3;5,5,5;, 3;6,6,6;, 3;7,7,7;, 3;8,8,8;, 3;9,9,9;, 3;10,10,10;, 3;11,11,11;, 3;12,12,12;, 3;13,13,13;, 3;14,14,14;, 3;15,15,15;, 3;16,16,16;, 3;17,17,17;, 3;18,18,18;, 3;19,19,19;, 3;20,20,20;, 3;21,21,21;, 3;22,22,22;, 3;23,23,23;, 3;24,24,24;, 3;25,25,25;, 3;26,26,26;, 3;27,27,27;, 3;28,28,28;, 3;29,29,29;, 3;30,30,30;, 3;31,31,31;, 3;32,32,32;, 3;33,33,33;, 3;34,34,34;, 3;35,35,35;, 3;36,36,36;, 3;37,37,37;, 3;38,38,38;, 3;39,39,39;, 3;40,40,40;, 3;41,41,41;, 3;42,42,42;, 3;43,43,43;, 3;44,44,44;, 3;45,45,45;, 3;46,46,46;, 3;47,47,47;, 3;48,48,48;, 3;49,49,49;, 3;50,50,50;, 3;51,51,51;, 3;52,52,52;, 3;53,53,53;, 3;54,54,54;, 3;55,55,55;, 3;56,56,56;, 3;57,57,57;, 3;58,58,58;, 3;59,59,59;, 3;60,60,60;, 3;61,61,61;, 3;62,62,62;, 3;63,63,63;, 3;64,64,64;, 3;65,65,65;, 3;66,66,66;, 3;67,67,67;, 3;68,68,68;, 3;69,69,69;, 3;70,70,70;, 3;71,71,71;, 3;72,72,72;, 3;73,73,73;, 3;74,74,74;, 3;75,75,75;, 3;76,76,76;, 3;77,77,77;, 3;78,78,78;, 3;79,79,79;, 3;80,80,80;, 3;81,81,81;, 3;82,82,82;, 3;83,83,83;, 3;84,84,84;, 3;85,85,85;, 3;86,86,86;, 3;87,87,87;, 3;88,88,88;, 3;89,89,89;, 3;90,90,90;, 3;91,91,91;, 3;92,92,92;, 3;93,93,93;, 3;94,94,94;, 3;95,95,95;, 3;96,96,96;, 3;97,97,97;, 3;98,98,98;, 3;99,99,99;, 3;100,100,100;, 3;101,101,101;, 3;102,102,102;, 3;103,103,103;, 3;104,104,104;, 3;105,105,105;, 3;106,106,106;, 3;107,107,107;, 3;108,108,108;, 3;109,109,109;, 3;110,110,110;, 3;111,111,111;, 3;112,112,112;, 3;113,113,113;, 3;114,114,114;, 3;115,115,115;, 3;116,116,116;, 3;117,117,117;, 3;118,118,118;, 3;119,119,119;, 3;120,120,120;, 3;121,121,121;, 3;122,122,122;, 3;123,123,123;, 3;124,124,124;, 3;125,125,125;, 3;126,126,126;, 3;127,127,127;, 3;128,128,128;, 3;129,129,129;, 3;130,130,130;, 3;131,131,131;, 3;132,132,132;, 3;133,133,133;, 3;134,134,134;, 3;135,135,135;, 3;136,136,136;, 3;137,137,137;, 3;138,138,138;, 3;139,139,139;, 3;140,140,140;, 3;141,141,141;, 3;142,142,142;, 3;143,143,143;, 3;144,144,144;, 3;145,145,145;, 3;146,146,146;, 3;147,147,147;, 3;148,148,148;, 3;149,149,149;, 3;150,150,150;, 3;151,151,151;, 3;152,152,152;, 3;153,153,153;, 3;154,154,154;, 3;155,155,155;, 3;156,156,156;, 3;157,157,157;, 3;158,158,158;, 3;159,159,159;, 3;160,160,160;, 3;161,161,161;, 3;162,162,162;, 3;163,163,163;, 3;164,164,164;, 3;165,165,165;, 3;166,166,166;, 3;167,167,167;, 3;168,168,168;, 3;169,169,169;, 3;170,170,170;, 3;171,171,171;, 3;172,172,172;, 3;173,173,173;, 3;174,174,174;, 3;175,175,175;, 3;176,176,176;, 3;177,177,177;, 3;178,178,178;, 3;179,179,179;, 3;180,180,180;, 3;181,181,181;, 3;182,182,182;, 3;183,183,183;, 3;184,184,184;, 3;185,185,185;, 3;186,186,186;, 3;187,187,187;, 3;188,188,188;, 3;189,189,189;, 3;190,190,190;, 3;191,191,191;, 3;192,192,192;, 3;193,193,193;, 3;194,194,194;, 3;195,195,195;, 3;196,196,196;, 3;197,197,197;, 3;198,198,198;, 3;199,199,199;, 3;200,200,200;, 3;201,201,201;, 3;202,202,202;, 3;203,203,203;, 3;204,204,204;, 3;205,205,205;, 3;206,206,206;, 3;207,207,207;, 3;208,208,208;, 3;209,209,209;, 3;210,210,210;, 3;211,211,211;, 3;212,212,212;, 3;213,213,213;, 3;214,214,214;, 3;215,215,215;, 3;216,216,216;, 3;217,217,217;, 3;218,218,218;, 3;219,219,219;, 3;220,220,220;, 3;221,221,221;, 3;222,222,222;, 3;223,223,223;, 3;224,224,224;, 3;225,225,225;, 3;226,226,226;, 3;227,227,227;, 3;228,228,228;, 3;229,229,229;, 3;230,230,230;, 3;231,231,231;, 3;232,232,232;, 3;233,233,233;, 3;234,234,234;, 3;235,235,235;, 3;236,236,236;, 3;237,237,237;, 3;238,238,238;, 3;239,239,239;, 3;240,240,240;, 3;241,241,241;, 3;242,242,242;, 3;243,243,243;, 3;244,244,244;, 3;245,245,245;, 3;246,246,246;, 3;247,247,247;, 3;248,248,248;, 3;249,249,249;, 3;250,250,250;, 3;251,251,251;, 3;252,252,252;, 3;253,253,253;, 3;254,254,254;, 3;255,255,255;, 3;256,256,256;, 3;257,257,257;, 3;258,258,258;, 3;259,259,259;, 3;260,260,260;, 3;261,261,261;, 3;262,262,262;, 3;263,263,263;, 3;264,264,264;, 3;265,265,265;, 3;266,266,266;, 3;267,267,267;, 3;268,268,268;, 3;269,269,269;, 3;270,270,270;, 3;271,271,271;, 3;272,272,272;, 3;273,273,273;, 3;274,274,274;, 3;275,275,275;, 3;276,276,276;, 3;277,277,277;, 3;278,278,278;, 3;279,279,279;, 3;280,280,280;, 3;281,281,281;, 3;282,282,282;, 3;283,283,283;, 3;284,284,284;, 3;285,285,285;, 3;286,286,286;, 3;287,287,287;, 3;288,288,288;, 3;289,289,289;, 3;290,290,290;, 3;291,291,291;, 3;292,292,292;, 3;293,293,293;, 3;294,294,294;, 3;295,295,295;, 3;296,296,296;, 3;297,297,297;, 3;298,298,298;, 3;299,299,299;, 3;300,300,300;, 3;301,301,301;, 3;302,302,302;, 3;303,303,303;, 3;304,304,304;, 3;305,305,305;, 3;306,306,306;, 3;307,307,307;, 3;308,308,308;, 3;309,309,309;, 3;310,310,310;, 3;311,311,311;, 3;312,312,312;, 3;313,313,313;, 3;314,314,314;, 3;315,315,315;, 3;316,316,316;, 3;317,317,317;, 3;318,318,318;, 3;319,319,319;, 3;320,320,320;, 3;321,321,321;, 3;322,322,322;, 3;323,323,323;, 3;324,324,324;, 3;325,325,325;, 3;326,326,326;, 3;327,327,327;, 3;328,328,328;, 3;329,329,329;, 3;330,330,330;, 3;331,331,331;, 3;332,332,332;, 3;333,333,333;, 3;334,334,334;, 3;335,335,335;, 3;336,336,336;, 3;337,337,337;, 3;338,338,338;, 3;339,339,339;, 3;340,340,340;, 3;341,341,341;, 3;342,342,342;, 3;343,343,343;, 3;344,344,344;, 3;345,345,345;, 3;346,346,346;, 3;347,347,347;, 3;348,348,348;, 3;349,349,349;, 3;350,350,350;, 3;351,351,351;, 3;352,352,352;, 3;353,353,353;, 3;354,354,354;, 3;355,355,355;, 3;356,356,356;, 3;357,357,357;, 3;358,358,358;, 3;359,359,359;, 3;360,360,360;, 3;361,361,361;, 3;362,362,362;, 3;363,363,363;, 3;364,364,364;, 3;365,365,365;, 3;366,366,366;, 3;367,367,367;, 3;368,368,368;, 3;369,369,369;, 3;370,370,370;, 3;371,371,371;, 3;372,372,372;, 3;373,373,373;, 3;374,374,374;, 3;375,375,375;, 3;376,376,376;, 3;377,377,377;, 3;378,378,378;, 3;379,379,379;, 3;380,380,380;, 3;381,381,381;, 3;382,382,382;, 3;383,383,383;, 3;384,384,384;, 3;385,385,385;, 3;386,386,386;, 3;387,387,387;, 3;388,388,388;, 3;389,389,389;, 3;390,390,390;, 3;391,391,391;, 3;392,392,392;, 3;393,393,393;, 3;394,394,394;, 3;395,395,395;, 3;396,396,396;, 3;397,397,397;, 3;398,398,398;, 3;399,399,399;, 3;400,400,400;, 3;401,401,401;, 3;402,402,402;, 3;403,403,403;, 3;404,404,404;, 3;405,405,405;, 3;406,406,406;, 3;407,407,407;, 3;408,408,408;, 3;409,409,409;, 3;410,410,410;, 3;411,411,411;, 3;412,412,412;, 3;413,413,413;, 3;414,414,414;, 3;415,415,415;, 3;416,416,416;, 3;417,417,417;, 3;418,418,418;, 3;419,419,419;, 3;420,420,420;, 3;421,421,421;, 3;422,422,422;, 3;423,423,423;, 3;424,424,424;, 3;425,425,425;, 3;426,426,426;, 3;427,427,427;, 3;428,428,428;, 3;429,429,429;, 3;430,430,430;, 3;431,431,431;, 3;432,432,432;, 3;433,433,433;, 3;434,434,434;, 3;435,435,435;, 3;436,436,436;, 3;437,437,437;, 3;438,438,438;, 3;439,439,439;, 3;440,440,440;, 3;441,441,441;, 3;442,442,442;, 3;443,443,443;, 3;444,444,444;, 3;445,445,445;, 3;446,446,446;, 3;447,447,447;, 3;448,448,448;, 3;449,449,449;, 3;450,450,450;, 3;451,451,451;, 3;452,452,452;, 3;453,453,453;, 3;454,454,454;, 3;455,455,455;, 3;456,456,456;, 3;457,457,457;, 3;458,458,458;, 3;459,459,459;, 3;460,460,460;, 3;461,461,461;, 3;462,462,462;, 3;463,463,463;, 3;464,464,464;, 3;465,465,465;, 3;466,466,466;, 3;467,467,467;, 3;468,468,468;, 3;469,469,469;, 3;470,470,470;, 3;471,471,471;, 3;472,472,472;, 3;473,473,473;, 3;474,474,474;, 3;475,475,475;, 3;476,476,476;, 3;477,477,477;, 3;478,478,478;, 3;479,479,479;, 3;480,480,480;, 3;481,481,481;, 3;482,482,482;, 3;483,483,483;, 3;484,484,484;, 3;485,485,485;, 3;486,486,486;, 3;487,487,487;, 3;488,488,488;, 3;489,489,489;, 3;490,490,490;, 3;491,491,491;, 3;492,492,492;, 3;493,493,493;, 3;494,494,494;, 3;495,495,495;, 3;496,496,496;, 3;497,497,497;, 3;498,498,498;, 3;499,499,499;, 3;500,500,500;, 3;501,501,501;, 3;502,502,502;, 3;503,503,503;, 3;504,504,504;, 3;505,505,505;, 3;506,506,506;, 3;507,507,507;, 3;508,508,508;, 3;509,509,509;, 3;510,510,510;, 3;511,511,511;, 3;512,512,512;, 3;513,513,513;, 3;514,514,514;, 3;515,515,515;, 3;516,516,516;, 3;517,517,517;, 3;518,518,518;, 3;519,519,519;, 3;520,520,520;, 3;521,521,521;, 3;522,522,522;, 3;523,523,523;, 3;524,524,524;, 3;525,525,525;, 3;526,526,526;, 3;527,527,527;, 3;528,528,528;, 3;529,529,529;, 3;530,530,530;, 3;531,531,531;, 3;532,532,532;, 3;533,533,533;, 3;534,534,534;, 3;535,535,535;, 3;536,536,536;, 3;537,537,537;, 3;538,538,538;, 3;539,539,539;, 3;540,540,540;, 3;541,541,541;, 3;542,542,542;, 3;543,543,543;, 3;544,544,544;, 3;545,545,545;, 3;546,546,546;, 3;547,547,547;, 3;548,548,548;, 3;549,549,549;, 3;550,550,550;, 3;551,551,551;, 3;552,552,552;, 3;553,553,553;, 3;554,554,554;, 3;555,555,555;, 3;556,556,556;, 3;557,557,557;, 3;558,558,558;, 3;559,559,559;, 3;560,560,560;, 3;561,561,561;, 3;562,562,562;, 3;563,563,563;, 3;564,564,564;, 3;565,565,565;, 3;566,566,566;, 3;567,567,567;, 3;568,568,568;, 3;569,569,569;, 3;570,570,570;, 3;571,571,571;, 3;572,572,572;, 3;573,573,573;, 3;574,574,574;, 3;575,575,575;, 3;576,576,576;, 3;577,577,577;, 3;578,578,578;, 3;579,579,579;, 3;580,580,580;, 3;581,581,581;, 3;582,582,582;, 3;583,583,583;, 3;584,584,584;, 3;585,585,585;, 3;586,586,586;, 3;587,587,587;, 3;588,588,588;, 3;589,589,589;, 3;590,590,590;, 3;591,591,591;, 3;592,592,592;, 3;593,593,593;, 3;594,594,594;, 3;595,595,595;, 3;596,596,596;, 3;597,597,597;, 3;598,598,598;, 3;599,599,599;, 3;600,600,600;, 3;601,601,601;, 3;602,602,602;, 3;603,603,603;, 3;604,604,604;, 3;605,605,605;, 3;606,606,606;, 3;607,607,607;, 3;608,608,608;, 3;609,609,609;, 3;610,610,610;, 3;611,611,611;, 3;612,612,612;, 3;613,613,613;, 3;614,614,614;, 3;615,615,615;, 3;616,616,616;, 3;617,617,617;, 3;618,618,618;, 3;619,619,619;, 3;620,620,620;, 3;621,621,621;, 3;622,622,622;, 3;623,623,623;, 3;624,624,624;, 3;625,625,625;, 3;626,626,626;, 3;627,627,627;, 3;628,628,628;, 3;629,629,629;, 3;630,630,630;, 3;631,631,631;, 3;632,632,632;, 3;633,633,633;, 3;634,634,634;, 3;635,635,635;, 3;636,636,636;, 3;637,637,637;, 3;638,638,638;, 3;639,639,639;, 3;640,640,640;, 3;641,641,641;, 3;642,642,642;, 3;643,643,643;, 3;644,644,644;, 3;645,645,645;, 3;646,646,646;, 3;647,647,647;, 3;648,648,648;, 3;649,649,649;, 3;650,650,650;, 3;651,651,651;, 3;652,652,652;, 3;653,653,653;, 3;654,654,654;, 3;655,655,655;, 3;656,656,656;, 3;657,657,657;, 3;658,658,658;, 3;659,659,659;, 3;660,660,660;, 3;661,661,661;, 3;662,662,662;, 3;663,663,663;, 3;664,664,664;, 3;665,665,665;, 3;666,666,666;, 3;667,667,667;, 3;668,668,668;, 3;669,669,669;, 3;670,670,670;, 3;671,671,671;, 3;672,672,672;, 3;673,673,673;, 3;674,674,674;, 3;675,675,675;, 3;676,676,676;, 3;677,677,677;, 3;678,678,678;, 3;679,679,679;, 3;680,680,680;, 3;681,681,681;, 3;682,682,682;, 3;683,683,683;, 3;684,684,684;, 3;685,685,685;, 3;686,686,686;, 3;687,687,687;, 3;688,688,688;, 3;689,689,689;, 3;690,690,690;, 3;691,691,691;, 3;692,692,692;, 3;693,693,693;, 3;694,694,694;, 3;695,695,695;, 3;696,696,696;, 3;697,697,697;, 3;698,698,698;, 3;699,699,699;, 3;700,700,700;, 3;701,701,701;, 3;702,702,702;, 3;703,703,703;, 3;704,704,704;, 3;705,705,705;, 3;706,706,706;, 3;707,707,707;, 3;708,708,708;, 3;709,709,709;, 3;710,710,710;, 3;711,711,711;, 3;712,712,712;, 3;713,713,713;, 3;714,714,714;, 3;715,715,715;, 3;716,716,716;, 3;717,717,717;, 3;718,718,718;, 3;719,719,719;, 3;720,720,720;, 3;721,721,721;, 3;722,722,722;, 3;723,723,723;, 3;724,724,724;, 3;725,725,725;, 3;726,726,726;, 3;727,727,727;, 3;728,728,728;, 3;729,729,729;, 3;730,730,730;, 3;731,731,731;, 3;732,732,732;, 3;733,733,733;, 3;734,734,734;, 3;735,735,735;, 3;736,736,736;, 3;737,737,737;, 3;738,738,738;, 3;739,739,739;, 3;740,740,740;, 3;741,741,741;, 3;742,742,742;, 3;743,743,743;, 3;744,744,744;, 3;745,745,745;, 3;746,746,746;, 3;747,747,747;, 3;748,748,748;, 3;749,749,749;, 3;750,750,750;, 3;751,751,751;, 3;752,752,752;, 3;753,753,753;, 3;754,754,754;, 3;755,755,755;, 3;756,756,756;, 3;757,757,757;, 3;758,758,758;, 3;759,759,759;, 3;760,760,760;, 3;761,761,761;, 3;762,762,762;, 3;763,763,763;, 3;764,764,764;, 3;765,765,765;, 3;766,766,766;, 3;767,767,767;, 3;768,768,768;, 3;769,769,769;, 3;770,770,770;, 3;771,771,771;, 3;772,772,772;, 3;773,773,773;, 3;774,774,774;, 3;775,775,775;, 3;776,776,776;, 3;777,777,777;, 3;778,778,778;, 3;779,779,779;, 3;780,780,780;, 3;781,781,781;, 3;782,782,782;, 3;783,783,783;, 3;784,784,784;, 3;785,785,785;, 3;786,786,786;, 3;787,787,787;, 3;788,788,788;, 3;789,789,789;, 3;790,790,790;, 3;791,791,791;, 3;792,792,792;, 3;793,793,793;, 3;794,794,794;, 3;795,795,795;, 3;796,796,796;, 3;797,797,797;, 3;798,798,798;, 3;799,799,799;, 3;800,800,800;, 3;801,801,801;, 3;802,802,802;, 3;803,803,803;, 3;804,804,804;, 3;805,805,805;, 3;806,806,806;, 3;807,807,807;, 3;808,808,808;, 3;809,809,809;, 3;810,810,810;, 3;811,811,811;, 3;812,812,812;, 3;813,813,813;, 3;814,814,814;, 3;815,815,815;, 3;816,816,816;, 3;817,817,817;, 3;818,818,818;, 3;819,819,819;, 3;820,820,820;, 3;821,821,821;, 3;822,822,822;, 3;823,823,823;, 3;824,824,824;, 3;825,825,825;, 3;826,826,826;, 3;827,827,827;, 3;828,828,828;, 3;829,829,829;, 3;830,830,830;, 3;831,831,831;, 3;832,832,832;, 3;833,833,833;, 3;834,834,834;, 3;835,835,835;, 3;836,836,836;, 3;837,837,837;, 3;838,838,838;, 3;839,839,839;, 3;840,840,840;, 3;841,841,841;, 3;842,842,842;, 3;843,843,843;, 3;844,844,844;, 3;845,845,845;, 3;846,846,846;, 3;847,847,847;, 3;848,848,848;, 3;849,849,849;, 3;850,850,850;, 3;851,851,851;, 3;852,852,852;, 3;853,853,853;, 3;854,854,854;, 3;855,855,855;, 3;856,856,856;, 3;857,857,857;, 3;858,858,858;, 3;859,859,859;, 3;860,860,860;, 3;861,861,861;, 3;862,862,862;, 3;863,863,863;, 3;864,864,864;, 3;865,865,865;, 3;866,866,866;, 3;867,867,867;, 3;868,868,868;, 3;869,869,869;, 3;870,870,870;, 3;871,871,871;, 3;872,872,872;, 3;873,873,873;, 3;874,874,874;, 3;875,875,875;, 3;876,876,876;, 3;877,877,877;, 3;878,878,878;, 3;879,879,879;, 3;880,880,880;, 3;881,881,881;, 3;882,882,882;, 3;883,883,883;, 3;884,884,884;, 3;885,885,885;, 3;886,886,886;, 3;887,887,887;, 3;888,888,888;, 3;889,889,889;, 3;890,890,890;, 3;891,891,891;, 3;892,892,892;, 3;893,893,893;, 3;894,894,894;, 3;895,895,895;, 3;896,896,896;, 3;897,897,897;, 3;898,898,898;, 3;899,899,899;, 3;900,900,900;, 3;901,901,901;, 3;902,902,902;, 3;903,903,903;, 3;904,904,904;, 3;905,905,905;, 3;906,906,906;, 3;907,907,907;, 3;908,908,908;, 3;909,909,909;, 3;910,910,910;, 3;911,911,911;, 3;912,912,912;, 3;913,913,913;, 3;914,914,914;, 3;915,915,915;, 3;916,916,916;, 3;917,917,917;, 3;918,918,918;, 3;919,919,919;, 3;920,920,920;, 3;921,921,921;, 3;922,922,922;, 3;923,923,923;, 3;924,924,924;, 3;925,925,925;, 3;926,926,926;, 3;927,927,927;, 3;928,928,928;, 3;929,929,929;, 3;930,930,930;, 3;931,931,931;, 3;932,932,932;, 3;933,933,933;, 3;934,934,934;, 3;935,935,935;, 3;936,936,936;, 3;937,937,937;, 3;938,938,938;, 3;939,939,939;, 3;940,940,940;, 3;941,941,941;, 3;942,942,942;, 3;943,943,943;, 3;944,944,944;, 3;945,945,945;, 3;946,946,946;, 3;947,947,947;, 3;948,948,948;, 3;949,949,949;, 3;950,950,950;, 3;951,951,951;, 3;952,952,952;, 3;953,953,953;, 3;954,954,954;, 3;955,955,955;, 3;956,956,956;, 3;957,957,957;, 3;958,958,958;, 3;959,959,959;, 3;960,960,960;, 3;961,961,961;, 3;962,962,962;, 3;963,963,963;, 3;964,964,964;, 3;965,965,965;, 3;966,966,966;, 3;967,967,967;, 3;968,968,968;, 3;969,969,969;, 3;970,970,970;, 3;971,971,971;, 3;972,972,972;, 3;973,973,973;, 3;974,974,974;, 3;975,975,975;, 3;976,976,976;, 3;977,977,977;, 3;978,978,978;, 3;979,979,979;, 3;980,980,980;, 3;981,981,981;, 3;982,982,982;, 3;983,983,983;, 3;984,984,984;, 3;985,985,985;, 3;986,986,986;, 3;987,987,987;, 3;988,988,988;, 3;989,989,989;, 3;990,990,990;, 3;991,991,991;, 3;992,992,992;, 3;993,993,993;, 3;994,994,994;, 3;995,995,995;, 3;996,996,996;, 3;997,997,997;, 3;998,998,998;, 3;999,999,999;, 3;1000,1000,1000;, 3;1001,1001,1001;, 3;1002,1002,1002;, 3;1003,1003,1003;, 3;1004,1004,1004;, 3;1005,1005,1005;, 3;1006,1006,1006;, 3;1007,1007,1007;, 3;1008,1008,1008;, 3;1009,1009,1009;, 3;1010,1010,1010;, 3;1011,1011,1011;, 3;1012,1012,1012;, 3;1013,1013,1013;, 3;1014,1014,1014;, 3;1015,1015,1015;, 3;1016,1016,1016;, 3;1017,1017,1017;, 3;1018,1018,1018;, 3;1019,1019,1019;, 3;1020,1020,1020;, 3;1021,1021,1021;, 3;1022,1022,1022;, 3;1023,1023,1023;, 3;1024,1024,1024;, 3;1025,1025,1025;, 3;1026,1026,1026;, 3;1027,1027,1027;, 3;1028,1028,1028;, 3;1029,1029,1029;, 3;1030,1030,1030;, 3;1031,1031,1031;, 3;1032,1032,1032;, 3;1033,1033,1033;, 3;1034,1034,1034;, 3;1035,1035,1035;, 3;1036,1036,1036;, 3;1037,1037,1037;, 3;1038,1038,1038;, 3;1039,1039,1039;, 3;1040,1040,1040;, 3;1041,1041,1041;, 3;1042,1042,1042;, 3;1043,1043,1043;, 3;1044,1044,1044;, 3;1045,1045,1045;, 3;1046,1046,1046;, 3;1047,1047,1047;, 3;1048,1048,1048;, 3;1049,1049,1049;, 3;1050,1050,1050;, 3;1051,1051,1051;, 3;1052,1052,1052;, 3;1053,1053,1053;, 3;1054,1054,1054;, 3;1055,1055,1055;, 3;1056,1056,1056;, 3;1057,1057,1057;, 3;1058,1058,1058;, 3;1059,1059,1059;, 3;1060,1060,1060;, 3;1061,1061,1061;, 3;1062,1062,1062;, 3;1063,1063,1063;, 3;1064,1064,1064;, 3;1065,1065,1065;, 3;1066,1066,1066;, 3;1067,1067,1067;, 3;1068,1068,1068;, 3;1069,1069,1069;, 3;1070,1070,1070;, 3;1071,1071,1071;, 3;1072,1072,1072;, 3;1073,1073,1073;, 3;1074,1074,1074;, 3;1075,1075,1075;, 3;1076,1076,1076;, 3;1077,1077,1077;, 3;1078,1078,1078;, 3;1079,1079,1079;, 3;1080,1080,1080;, 3;1081,1081,1081;, 3;1082,1082,1082;, 3;1083,1083,1083;, 3;1084,1084,1084;, 3;1085,1085,1085;, 3;1086,1086,1086;, 3;1087,1087,1087;, 3;1088,1088,1088;, 3;1089,1089,1089;, 3;1090,1090,1090;, 3;1091,1091,1091;, 3;1092,1092,1092;, 3;1093,1093,1093;, 3;1094,1094,1094;, 3;1095,1095,1095;, 3;1096,1096,1096;, 3;1097,1097,1097;, 3;1098,1098,1098;, 3;1099,1099,1099;, 3;1100,1100,1100;, 3;1101,1101,1101;, 3;1102,1102,1102;, 3;1103,1103,1103;, 3;1104,1104,1104;, 3;1105,1105,1105;, 3;1106,1106,1106;, 3;1107,1107,1107;, 3;1108,1108,1108;, 3;1109,1109,1109;, 3;1110,1110,1110;, 3;1111,1111,1111;, 3;1112,1112,1112;, 3;1113,1113,1113;, 3;1114,1114,1114;, 3;1115,1115,1115;, 3;1116,1116,1116;, 3;1117,1117,1117;, 3;1118,1118,1118;, 3;1119,1119,1119;, 3;1120,1120,1120;, 3;1121,1121,1121;, 3;1122,1122,1122;, 3;1123,1123,1123;, 3;1124,1124,1124;, 3;1125,1125,1125;, 3;1126,1126,1126;, 3;1127,1127,1127;, 3;1128,1128,1128;, 3;1129,1129,1129;, 3;1130,1130,1130;, 3;1131,1131,1131;, 3;1132,1132,1132;, 3;1133,1133,1133;, 3;1134,1134,1134;, 3;1135,1135,1135;, 3;1136,1136,1136;, 3;1137,1137,1137;, 3;1138,1138,1138;, 3;1139,1139,1139;, 3;1140,1140,1140;, 3;1141,1141,1141;, 3;1142,1142,1142;, 3;1143,1143,1143;, 3;1144,1144,1144;, 3;1145,1145,1145;, 3;1146,1146,1146;, 3;1147,1147,1147;, 3;1148,1148,1148;, 3;1149,1149,1149;, 3;1150,1150,1150;, 3;1151,1151,1151;, 3;1152,1152,1152;, 3;1153,1153,1153;, 3;1154,1154,1154;, 3;1155,1155,1155;, 3;1156,1156,1156;, 3;1157,1157,1157;, 3;1158,1158,1158;, 3;1159,1159,1159;, 3;1160,1160,1160;, 3;1161,1161,1161;, 3;1162,1162,1162;, 3;1163,1163,1163;, 3;1164,1164,1164;, 3;1165,1165,1165;, 3;1166,1166,1166;, 3;1167,1167,1167;, 3;1168,1168,1168;, 3;1169,1169,1169;, 3;1170,1170,1170;, 3;1171,1171,1171;, 3;1172,1172,1172;, 3;1173,1173,1173;, 3;1174,1174,1174;, 3;1175,1175,1175;, 3;1176,1176,1176;, 3;1177,1177,1177;, 3;1178,1178,1178;, 3;1179,1179,1179;, 3;1180,1180,1180;, 3;1181,1181,1181;, 3;1182,1182,1182;, 3;1183,1183,1183;, 3;1184,1184,1184;, 3;1185,1185,1185;, 3;1186,1186,1186;, 3;1187,1187,1187;, 3;1188,1188,1188;, 3;1189,1189,1189;, 3;1190,1190,1190;, 3;1191,1191,1191;, 3;1192,1192,1192;, 3;1193,1193,1193;, 3;1194,1194,1194;, 3;1195,1195,1195;, 3;1196,1196,1196;, 3;1197,1197,1197;, 3;1198,1198,1198;, 3;1199,1199,1199;, 3;1200,1200,1200;, 3;1201,1201,1201;, 3;1202,1202,1202;, 3;1203,1203,1203;, 3;1204,1204,1204;, 3;1205,1205,1205;, 3;1206,1206,1206;, 3;1207,1207,1207;, 3;1208,1208,1208;, 3;1209,1209,1209;, 3;1210,1210,1210;, 3;1211,1211,1211;, 3;1212,1212,1212;, 3;1213,1213,1213;, 3;1214,1214,1214;, 3;1215,1215,1215;, 3;1216,1216,1216;, 3;1217,1217,1217;, 3;1218,1218,1218;, 3;1219,1219,1219;, 3;1220,1220,1220;, 3;1221,1221,1221;, 3;1222,1222,1222;, 3;1223,1223,1223;, 3;1224,1224,1224;, 3;1225,1225,1225;, 3;1226,1226,1226;, 3;1227,1227,1227;, 3;1228,1228,1228;, 3;1229,1229,1229;, 3;1230,1230,1230;, 3;1231,1231,1231;, 3;1232,1232,1232;, 3;1233,1233,1233;, 3;1234,1234,1234;, 3;1235,1235,1235;, 3;1236,1236,1236;, 3;1237,1237,1237;, 3;1238,1238,1238;, 3;1239,1239,1239;, 3;1240,1240,1240;, 3;1241,1241,1241;, 3;1242,1242,1242;, 3;1243,1243,1243;, 3;1244,1244,1244;, 3;1245,1245,1245;, 3;1246,1246,1246;, 3;1247,1247,1247;, 3;1248,1248,1248;, 3;1249,1249,1249;, 3;1250,1250,1250;, 3;1251,1251,1251;, 3;1252,1252,1252;, 3;1253,1253,1253;, 3;1254,1254,1254;, 3;1255,1255,1255;, 3;1256,1256,1256;, 3;1257,1257,1257;, 3;1258,1258,1258;, 3;1259,1259,1259;, 3;1260,1260,1260;, 3;1261,1261,1261;, 3;1262,1262,1262;, 3;1263,1263,1263;, 3;1264,1264,1264;, 3;1265,1265,1265;, 3;1266,1266,1266;, 3;1267,1267,1267;, 3;1268,1268,1268;, 3;1269,1269,1269;, 3;1270,1270,1270;, 3;1271,1271,1271;, 3;1272,1272,1272;, 3;1273,1273,1273;, 3;1274,1274,1274;, 3;1275,1275,1275;, 3;1276,1276,1276;, 3;1277,1277,1277;, 3;1278,1278,1278;, 3;1279,1279,1279;, 3;1280,1280,1280;, 3;1281,1281,1281;, 3;1282,1282,1282;, 3;1283,1283,1283;, 3;1284,1284,1284;, 3;1285,1285,1285;, 3;1286,1286,1286;, 3;1287,1287,1287;, 3;1288,1288,1288;, 3;1289,1289,1289;, 3;1290,1290,1290;, 3;1291,1291,1291;, 3;1292,1292,1292;, 3;1293,1293,1293;, 3;1294,1294,1294;, 3;1295,1295,1295;, 3;1296,1296,1296;, 3;1297,1297,1297;, 3;1298,1298,1298;, 3;1299,1299,1299;, 3;1300,1300,1300;, 3;1301,1301,1301;, 3;1302,1302,1302;, 3;1303,1303,1303;, 3;1304,1304,1304;, 3;1305,1305,1305;, 3;1306,1306,1306;, 3;1307,1307,1307;, 3;1308,1308,1308;, 3;1309,1309,1309;, 3;1310,1310,1310;, 3;1311,1311,1311;, 3;1312,1312,1312;, 3;1313,1313,1313;, 3;1314,1314,1314;, 3;1315,1315,1315;, 3;1316,1316,1316;, 3;1317,1317,1317;, 3;1318,1318,1318;, 3;1319,1319,1319;, 3;1320,1320,1320;, 3;1321,1321,1321;, 3;1322,1322,1322;, 3;1323,1323,1323;, 3;1324,1324,1324;, 3;1325,1325,1325;, 3;1326,1326,1326;, 3;1327,1327,1327;, 3;1328,1328,1328;, 3;1329,1329,1329;, 3;1330,1330,1330;, 3;1331,1331,1331;, 3;1332,1332,1332;, 3;1333,1333,1333;, 3;1334,1334,1334;, 3;1335,1335,1335;, 3;1336,1336,1336;, 3;1337,1337,1337;, 3;1338,1338,1338;, 3;1339,1339,1339;, 3;1340,1340,1340;, 3;1341,1341,1341;, 3;1342,1342,1342;, 3;1343,1343,1343;, 3;1344,1344,1344;, 3;1345,1345,1345;, 3;1346,1346,1346;, 3;1347,1347,1347;, 3;1348,1348,1348;, 3;1349,1349,1349;, 3;1350,1350,1350;, 3;1351,1351,1351;, 3;1352,1352,1352;, 3;1353,1353,1353;, 3;1354,1354,1354;, 3;1355,1355,1355;, 3;1356,1356,1356;, 3;1357,1357,1357;, 3;1358,1358,1358;, 3;1359,1359,1359;, 3;1360,1360,1360;, 3;1361,1361,1361;, 3;1362,1362,1362;, 3;1363,1363,1363;, 3;1364,1364,1364;, 3;1365,1365,1365;, 3;1366,1366,1366;, 3;1367,1367,1367;, 3;1368,1368,1368;, 3;1369,1369,1369;, 3;1370,1370,1370;, 3;1371,1371,1371;, 3;1372,1372,1372;, 3;1373,1373,1373;, 3;1374,1374,1374;, 3;1375,1375,1375;, 3;1376,1376,1376;, 3;1377,1377,1377;, 3;1378,1378,1378;, 3;1379,1379,1379;, 3;1380,1380,1380;, 3;1381,1381,1381;, 3;1382,1382,1382;, 3;1383,1383,1383;, 3;1384,1384,1384;, 3;1385,1385,1385;, 3;1386,1386,1386;, 3;1387,1387,1387;, 3;1388,1388,1388;, 3;1389,1389,1389;, 3;1390,1390,1390;, 3;1391,1391,1391;, 3;1392,1392,1392;, 3;1393,1393,1393;, 3;1394,1394,1394;, 3;1395,1395,1395;, 3;1396,1396,1396;, 3;1397,1397,1397;, 3;1398,1398,1398;, 3;1399,1399,1399;, 3;1400,1400,1400;, 3;1401,1401,1401;, 3;1402,1402,1402;, 3;1403,1403,1403;, 3;1404,1404,1404;, 3;1405,1405,1405;, 3;1406,1406,1406;, 3;1407,1407,1407;, 3;1408,1408,1408;, 3;1409,1409,1409;, 3;1410,1410,1410;, 3;1411,1411,1411;, 3;1412,1412,1412;, 3;1413,1413,1413;, 3;1414,1414,1414;, 3;1415,1415,1415;, 3;1416,1416,1416;, 3;1417,1417,1417;, 3;1418,1418,1418;, 3;1419,1419,1419;, 3;1420,1420,1420;, 3;1421,1421,1421;, 3;1422,1422,1422;, 3;1423,1423,1423;, 3;1424,1424,1424;, 3;1425,1425,1425;, 3;1426,1426,1426;, 3;1427,1427,1427;, 3;1428,1428,1428;, 3;1429,1429,1429;, 3;1430,1430,1430;, 3;1431,1431,1431;, 3;1432,1432,1432;, 3;1433,1433,1433;, 3;1434,1434,1434;, 3;1435,1435,1435;, 3;1436,1436,1436;, 3;1437,1437,1437;, 3;1438,1438,1438;, 3;1439,1439,1439;, 3;1440,1440,1440;, 3;1441,1441,1441;, 3;1442,1442,1442;, 3;1443,1443,1443;, 3;1444,1444,1444;, 3;1445,1445,1445;, 3;1446,1446,1446;, 3;1447,1447,1447;, 3;1448,1448,1448;, 3;1449,1449,1449;, 3;1450,1450,1450;, 3;1451,1451,1451;, 3;1452,1452,1452;, 3;1453,1453,1453;, 3;1454,1454,1454;, 3;1455,1455,1455;, 3;1456,1456,1456;, 3;1457,1457,1457;, 3;1458,1458,1458;, 3;1459,1459,1459;, 3;1460,1460,1460;, 3;1461,1461,1461;, 3;1462,1462,1462;, 3;1463,1463,1463;, 3;1464,1464,1464;, 3;1465,1465,1465;, 3;1466,1466,1466;, 3;1467,1467,1467;, 3;1468,1468,1468;, 3;1469,1469,1469;, 3;1470,1470,1470;, 3;1471,1471,1471;, 3;1472,1472,1472;, 3;1473,1473,1473;, 3;1474,1474,1474;, 3;1475,1475,1475;, 3;1476,1476,1476;, 3;1477,1477,1477;, 3;1478,1478,1478;, 3;1479,1479,1479;, 3;1480,1480,1480;, 3;1481,1481,1481;, 3;1482,1482,1482;, 3;1483,1483,1483;, 3;1484,1484,1484;, 3;1485,1485,1485;, 3;1486,1486,1486;, 3;1487,1487,1487;, 3;1488,1488,1488;, 3;1489,1489,1489;, 3;1490,1490,1490;, 3;1491,1491,1491;, 3;1492,1492,1492;, 3;1493,1493,1493;, 3;1494,1494,1494;, 3;1495,1495,1495;, 3;1496,1496,1496;, 3;1497,1497,1497;, 3;1498,1498,1498;, 3;1499,1499,1499;, 3;1500,1500,1500;, 3;1501,1501,1501;, 3;1502,1502,1502;, 3;1503,1503,1503;, 3;1504,1504,1504;, 3;1505,1505,1505;, 3;1506,1506,1506;, 3;1507,1507,1507;, 3;1508,1508,1508;, 3;1509,1509,1509;, 3;1510,1510,1510;, 3;1511,1511,1511;, 3;1512,1512,1512;, 3;1513,1513,1513;, 3;1514,1514,1514;, 3;1515,1515,1515;, 3;1516,1516,1516;, 3;1517,1517,1517;, 3;1518,1518,1518;, 3;1519,1519,1519;, 3;1520,1520,1520;, 3;1521,1521,1521;, 3;1522,1522,1522;, 3;1523,1523,1523;, 3;1524,1524,1524;, 3;1525,1525,1525;, 3;1526,1526,1526;, 3;1527,1527,1527;, 3;1528,1528,1528;, 3;1529,1529,1529;, 3;1530,1530,1530;, 3;1531,1531,1531;, 3;1532,1532,1532;, 3;1533,1533,1533;, 3;1534,1534,1534;, 3;1535,1535,1535;, 3;1536,1536,1536;, 3;1537,1537,1537;, 3;1538,1538,1538;, 3;1539,1539,1539;, 3;1540,1540,1540;, 3;1541,1541,1541;, 3;1542,1542,1542;, 3;1543,1543,1543;, 3;1544,1544,1544;, 3;1545,1545,1545;, 3;1546,1546,1546;, 3;1547,1547,1547;, 3;1548,1548,1548;, 3;1549,1549,1549;, 3;1550,1550,1550;, 3;1551,1551,1551;, 3;1552,1552,1552;, 3;1553,1553,1553;, 3;1554,1554,1554;, 3;1555,1555,1555;, 3;1556,1556,1556;, 3;1557,1557,1557;, 3;1558,1558,1558;, 3;1559,1559,1559;, 3;1560,1560,1560;, 3;1561,1561,1561;, 3;1562,1562,1562;, 3;1563,1563,1563;, 3;1564,1564,1564;, 3;1565,1565,1565;, 3;1566,1566,1566;, 3;1567,1567,1567;, 3;1568,1568,1568;, 3;1569,1569,1569;, 3;1570,1570,1570;, 3;1571,1571,1571;, 3;1572,1572,1572;, 3;1573,1573,1573;, 3;1574,1574,1574;, 3;1575,1575,1575;, 3;1576,1576,1576;, 3;1577,1577,1577;, 3;1578,1578,1578;, 3;1579,1579,1579;, 3;1580,1580,1580;, 3;1581,1581,1581;, 3;1582,1582,1582;, 3;1583,1583,1583;, 3;1584,1584,1584;, 3;1585,1585,1585;, 3;1586,1586,1586;, 3;1587,1587,1587;, 3;1588,1588,1588;, 3;1589,1589,1589;, 3;1590,1590,1590;, 3;1591,1591,1591;, 3;1592,1592,1592;, 3;1593,1593,1593;, 3;1594,1594,1594;, 3;1595,1595,1595;, 3;1596,1596,1596;, 3;1597,1597,1597;, 3;1598,1598,1598;, 3;1599,1599,1599;, 3;1600,1600,1600;, 3;1601,1601,1601;, 3;1602,1602,1602;, 3;1603,1603,1603;, 3;1604,1604,1604;, 3;1605,1605,1605;, 3;1606,1606,1606;, 3;1607,1607,1607;, 3;1608,1608,1608;, 3;1609,1609,1609;, 3;1610,1610,1610;, 3;1611,1611,1611;, 3;1612,1612,1612;, 3;1613,1613,1613;, 3;1614,1614,1614;, 3;1615,1615,1615;, 3;1616,1616,1616;, 3;1617,1617,1617;, 3;1618,1618,1618;, 3;1619,1619,1619;, 3;1620,1620,1620;, 3;1621,1621,1621;, 3;1622,1622,1622;, 3;1623,1623,1623;, 3;1624,1624,1624;, 3;1625,1625,1625;, 3;1626,1626,1626;, 3;1627,1627,1627;, 3;1628,1628,1628;, 3;1629,1629,1629;, 3;1630,1630,1630;, 3;1631,1631,1631;, 3;1632,1632,1632;, 3;1633,1633,1633;, 3;1634,1634,1634;, 3;1635,1635,1635;, 3;1636,1636,1636;, 3;1637,1637,1637;, 3;1638,1638,1638;, 3;1639,1639,1639;, 3;1640,1640,1640;, 3;1641,1641,1641;, 3;1642,1642,1642;, 3;1643,1643,1643;, 3;1644,1644,1644;, 3;1645,1645,1645;, 3;1646,1646,1646;, 3;1647,1647,1647;, 3;1648,1648,1648;, 3;1649,1649,1649;, 3;1650,1650,1650;, 3;1651,1651,1651;, 3;1652,1652,1652;, 3;1653,1653,1653;, 3;1654,1654,1654;, 3;1655,1655,1655;, 3;1656,1656,1656;, 3;1657,1657,1657;, 3;1658,1658,1658;, 3;1659,1659,1659;, 3;1660,1660,1660;, 3;1661,1661,1661;, 3;1662,1662,1662;, 3;1663,1663,1663;, 3;1664,1664,1664;, 3;1665,1665,1665;, 3;1666,1666,1666;, 3;1667,1667,1667;, 3;1668,1668,1668;, 3;1669,1669,1669;, 3;1670,1670,1670;, 3;1671,1671,1671;, 3;1672,1672,1672;, 3;1673,1673,1673;, 3;1674,1674,1674;, 3;1675,1675,1675;, 3;1676,1676,1676;, 3;1677,1677,1677;, 3;1678,1678,1678;, 3;1679,1679,1679;, 3;1680,1680,1680;, 3;1681,1681,1681;, 3;1682,1682,1682;, 3;1683,1683,1683;, 3;1684,1684,1684;, 3;1685,1685,1685;, 3;1686,1686,1686;, 3;1687,1687,1687;, 3;1688,1688,1688;, 3;1689,1689,1689;, 3;1690,1690,1690;, 3;1691,1691,1691;, 3;1692,1692,1692;, 3;1693,1693,1693;, 3;1694,1694,1694;, 3;1695,1695,1695;, 3;1696,1696,1696;, 3;1697,1697,1697;, 3;1698,1698,1698;, 3;1699,1699,1699;, 3;1700,1700,1700;, 3;1701,1701,1701;, 3;1702,1702,1702;, 3;1703,1703,1703;, 3;1704,1704,1704;, 3;1705,1705,1705;, 3;1706,1706,1706;, 3;1707,1707,1707;, 3;1708,1708,1708;, 3;1709,1709,1709;, 3;1710,1710,1710;, 3;1711,1711,1711;, 3;1712,1712,1712;, 3;1713,1713,1713;, 3;1714,1714,1714;, 3;1715,1715,1715;, 3;1716,1716,1716;, 3;1717,1717,1717;, 3;1718,1718,1718;, 3;1719,1719,1719;, 3;1720,1720,1720;, 3;1721,1721,1721;, 3;1722,1722,1722;, 3;1723,1723,1723;, 3;1724,1724,1724;, 3;1725,1725,1725;, 3;1726,1726,1726;, 3;1727,1727,1727;, 3;1728,1728,1728;, 3;1729,1729,1729;, 3;1730,1730,1730;, 3;1731,1731,1731;, 3;1732,1732,1732;, 3;1733,1733,1733;, 3;1734,1734,1734;, 3;1735,1735,1735;, 3;1736,1736,1736;, 3;1737,1737,1737;, 3;1738,1738,1738;, 3;1739,1739,1739;, 3;1740,1740,1740;, 3;1741,1741,1741;, 3;1742,1742,1742;, 3;1743,1743,1743;, 3;1744,1744,1744;, 3;1745,1745,1745;, 3;1746,1746,1746;, 3;1747,1747,1747;, 3;1748,1748,1748;, 3;1749,1749,1749;, 3;1750,1750,1750;, 3;1751,1751,1751;, 3;1752,1752,1752;, 3;1753,1753,1753;, 3;1754,1754,1754;, 3;1755,1755,1755;, 3;1756,1756,1756;, 3;1757,1757,1757;, 3;1758,1758,1758;, 3;1759,1759,1759;, 3;1760,1760,1760;, 3;1761,1761,1761;, 3;1762,1762,1762;, 3;1763,1763,1763;, 3;1764,1764,1764;, 3;1765,1765,1765;, 3;1766,1766,1766;, 3;1767,1767,1767;, 3;1768,1768,1768;, 3;1769,1769,1769;, 3;1770,1770,1770;, 3;1771,1771,1771;, 3;1772,1772,1772;, 3;1773,1773,1773;, 3;1774,1774,1774;, 3;1775,1775,1775;, 3;1776,1776,1776;, 3;1777,1777,1777;, 3;1778,1778,1778;, 3;1779,1779,1779;, 3;1780,1780,1780;, 3;1781,1781,1781;, 3;1782,1782,1782;, 3;1783,1783,1783;, 3;1784,1784,1784;, 3;1785,1785,1785;, 3;1786,1786,1786;, 3;1787,1787,1787;, 3;1788,1788,1788;, 3;1789,1789,1789;, 3;1790,1790,1790;, 3;1791,1791,1791;, 3;1792,1792,1792;, 3;1793,1793,1793;, 3;1794,1794,1794;, 3;1795,1795,1795;, 3;1796,1796,1796;, 3;1797,1797,1797;, 3;1798,1798,1798;, 3;1799,1799,1799;, 3;1800,1800,1800;, 3;1801,1801,1801;, 3;1802,1802,1802;, 3;1803,1803,1803;, 3;1804,1804,1804;, 3;1805,1805,1805;, 3;1806,1806,1806;, 3;1807,1807,1807;, 3;1808,1808,1808;, 3;1809,1809,1809;, 3;1810,1810,1810;, 3;1811,1811,1811;, 3;1812,1812,1812;, 3;1813,1813,1813;, 3;1814,1814,1814;, 3;1815,1815,1815;, 3;1816,1816,1816;, 3;1817,1817,1817;, 3;1818,1818,1818;, 3;1819,1819,1819;, 3;1820,1820,1820;, 3;1821,1821,1821;, 3;1822,1822,1822;, 3;1823,1823,1823;, 3;1824,1824,1824;, 3;1825,1825,1825;, 3;1826,1826,1826;, 3;1827,1827,1827;, 3;1828,1828,1828;, 3;1829,1829,1829;, 3;1830,1830,1830;, 3;1831,1831,1831;, 3;1832,1832,1832;, 3;1833,1833,1833;, 3;1834,1834,1834;, 3;1835,1835,1835;, 3;1836,1836,1836;, 3;1837,1837,1837;, 3;1838,1838,1838;, 3;1839,1839,1839;, 3;1840,1840,1840;, 3;1841,1841,1841;, 3;1842,1842,1842;, 3;1843,1843,1843;, 3;1844,1844,1844;, 3;1845,1845,1845;, 3;1846,1846,1846;, 3;1847,1847,1847;, 3;1848,1848,1848;, 3;1849,1849,1849;, 3;1850,1850,1850;, 3;1851,1851,1851;, 3;1852,1852,1852;, 3;1853,1853,1853;, 3;1854,1854,1854;, 3;1855,1855,1855;, 3;1856,1856,1856;, 3;1857,1857,1857;, 3;1858,1858,1858;, 3;1859,1859,1859;, 3;1860,1860,1860;, 3;1861,1861,1861;, 3;1862,1862,1862;, 3;1863,1863,1863;, 3;1864,1864,1864;, 3;1865,1865,1865;, 3;1866,1866,1866;, 3;1867,1867,1867;, 3;1868,1868,1868;, 3;1869,1869,1869;, 3;1870,1870,1870;, 3;1871,1871,1871;, 3;1872,1872,1872;, 3;1873,1873,1873;, 3;1874,1874,1874;, 3;1875,1875,1875;, 3;1876,1876,1876;, 3;1877,1877,1877;, 3;1878,1878,1878;, 3;1879,1879,1879;, 3;1880,1880,1880;, 3;1881,1881,1881;, 3;1882,1882,1882;, 3;1883,1883,1883;, 3;1884,1884,1884;, 3;1885,1885,1885;, 3;1886,1886,1886;, 3;1887,1887,1887;, 3;1888,1888,1888;, 3;1889,1889,1889;, 3;1890,1890,1890;, 3;1891,1891,1891;, 3;1892,1892,1892;, 3;1893,1893,1893;, 3;1894,1894,1894;, 3;1895,1895,1895;, 3;1896,1896,1896;, 3;1897,1897,1897;, 3;1898,1898,1898;, 3;1899,1899,1899;, 3;1900,1900,1900;, 3;1901,1901,1901;, 3;1902,1902,1902;, 3;1903,1903,1903;, 3;1904,1904,1904;, 3;1905,1905,1905;, 3;1906,1906,1906;, 3;1907,1907,1907;, 3;1908,1908,1908;, 3;1909,1909,1909;, 3;1910,1910,1910;, 3;1911,1911,1911;, 3;1912,1912,1912;, 3;1913,1913,1913;, 3;1914,1914,1914;, 3;1915,1915,1915;, 3;1916,1916,1916;, 3;1917,1917,1917;, 3;1918,1918,1918;, 3;1919,1919,1919;, 3;1920,1920,1920;, 3;1921,1921,1921;, 3;1922,1922,1922;, 3;1923,1923,1923;, 3;1924,1924,1924;, 3;1925,1925,1925;, 3;1926,1926,1926;, 3;1927,1927,1927;, 3;1928,1928,1928;, 3;1929,1929,1929;, 3;1930,1930,1930;, 3;1931,1931,1931;, 3;1932,1932,1932;, 3;1933,1933,1933;, 3;1934,1934,1934;, 3;1935,1935,1935;, 3;1936,1936,1936;, 3;1937,1937,1937;, 3;1938,1938,1938;, 3;1939,1939,1939;, 3;1940,1940,1940;, 3;1941,1941,1941;, 3;1942,1942,1942;, 3;1943,1943,1943;, 3;1944,1944,1944;, 3;1945,1945,1945;, 3;1946,1946,1946;, 3;1947,1947,1947;, 3;1948,1948,1948;, 3;1949,1949,1949;, 3;1950,1950,1950;, 3;1951,1951,1951;, 3;1952,1952,1952;, 3;1953,1953,1953;, 3;1954,1954,1954;, 3;1955,1955,1955;, 3;1956,1956,1956;, 3;1957,1957,1957;, 3;1958,1958,1958;, 3;1959,1959,1959;, 3;1960,1960,1960;, 3;1961,1961,1961;, 3;1962,1962,1962;, 3;1963,1963,1963;, 3;1964,1964,1964;, 3;1965,1965,1965;, 3;1966,1966,1966;, 3;1967,1967,1967;, 3;1968,1968,1968;, 3;1969,1969,1969;, 3;1970,1970,1970;, 3;1971,1971,1971;, 3;1972,1972,1972;, 3;1973,1973,1973;, 3;1974,1974,1974;, 3;1975,1975,1975;, 3;1976,1976,1976;, 3;1977,1977,1977;, 3;1978,1978,1978;, 3;1979,1979,1979;, 3;1980,1980,1980;, 3;1981,1981,1981;, 3;1982,1982,1982;, 3;1983,1983,1983;, 3;1984,1984,1984;, 3;1985,1985,1985;, 3;1986,1986,1986;, 3;1987,1987,1987;, 3;1988,1988,1988;, 3;1989,1989,1989;, 3;1990,1990,1990;, 3;1991,1991,1991;, 3;1992,1992,1992;, 3;1993,1993,1993;, 3;1994,1994,1994;, 3;1995,1995,1995;, 3;1996,1996,1996;, 3;1997,1997,1997;, 3;1998,1998,1998;, 3;1999,1999,1999;, 3;2000,2000,2000;, 3;2001,2001,2001;, 3;2002,2002,2002;, 3;2003,2003,2003;, 3;2004,2004,2004;, 3;2005,2005,2005;, 3;2006,2006,2006;, 3;2007,2007,2007;, 3;2008,2008,2008;, 3;2009,2009,2009;, 3;2010,2010,2010;, 3;2011,2011,2011;, 3;2012,2012,2012;, 3;2013,2013,2013;, 3;2014,2014,2014;, 3;2015,2015,2015;, 3;2016,2016,2016;, 3;2017,2017,2017;, 3;2018,2018,2018;, 3;2019,2019,2019;, 3;2020,2020,2020;, 3;2021,2021,2021;, 3;2022,2022,2022;, 3;2023,2023,2023;, 3;2024,2024,2024;, 3;2025,2025,2025;, 3;2026,2026,2026;, 3;2027,2027,2027;, 3;2028,2028,2028;, 3;2029,2029,2029;, 3;2030,2030,2030;, 3;2031,2031,2031;, 3;2032,2032,2032;, 3;2033,2033,2033;, 3;2034,2034,2034;, 3;2035,2035,2035;, 3;2036,2036,2036;, 3;2037,2037,2037;, 3;2038,2038,2038;, 3;2039,2039,2039;, 3;2040,2040,2040;, 3;2041,2041,2041;, 3;2042,2042,2042;, 3;2043,2043,2043;, 3;2044,2044,2044;, 3;2045,2045,2045;, 3;2046,2046,2046;, 3;2047,2047,2047;, 3;2048,2048,2048;, 3;2049,2049,2049;, 3;2050,2050,2050;, 3;2051,2051,2051;, 3;2052,2052,2052;, 3;2053,2053,2053;, 3;2054,2054,2054;, 3;2055,2055,2055;, 3;2056,2056,2056;, 3;2057,2057,2057;, 3;2058,2058,2058;, 3;2059,2059,2059;, 3;2060,2060,2060;, 3;2061,2061,2061;, 3;2062,2062,2062;, 3;2063,2063,2063;, 3;2064,2064,2064;, 3;2065,2065,2065;, 3;2066,2066,2066;, 3;2067,2067,2067;, 3;2068,2068,2068;, 3;2069,2069,2069;, 3;2070,2070,2070;, 3;2071,2071,2071;, 3;2072,2072,2072;, 3;2073,2073,2073;, 3;2074,2074,2074;, 3;2075,2075,2075;, 3;2076,2076,2076;, 3;2077,2077,2077;, 3;2078,2078,2078;, 3;2079,2079,2079;, 3;2080,2080,2080;, 3;2081,2081,2081;, 3;2082,2082,2082;, 3;2083,2083,2083;, 3;2084,2084,2084;, 3;2085,2085,2085;, 3;2086,2086,2086;, 3;2087,2087,2087;, 3;2088,2088,2088;, 3;2089,2089,2089;, 3;2090,2090,2090;, 3;2091,2091,2091;, 3;2092,2092,2092;, 3;2093,2093,2093;, 3;2094,2094,2094;, 3;2095,2095,2095;, 3;2096,2096,2096;, 3;2097,2097,2097;, 3;2098,2098,2098;, 3;2099,2099,2099;, 3;2100,2100,2100;, 3;2101,2101,2101;, 3;2102,2102,2102;, 3;2103,2103,2103;, 3;2104,2104,2104;, 3;2105,2105,2105;, 3;2106,2106,2106;, 3;2107,2107,2107;, 3;2108,2108,2108;, 3;2109,2109,2109;, 3;2110,2110,2110;, 3;2111,2111,2111;, 3;2112,2112,2112;, 3;2113,2113,2113;, 3;2114,2114,2114;, 3;2115,2115,2115;, 3;2116,2116,2116;, 3;2117,2117,2117;, 3;2118,2118,2118;, 3;2119,2119,2119;, 3;2120,2120,2120;, 3;2121,2121,2121;, 3;2122,2122,2122;, 3;2123,2123,2123;, 3;2124,2124,2124;, 3;2125,2125,2125;, 3;2126,2126,2126;, 3;2127,2127,2127;, 3;2128,2128,2128;, 3;2129,2129,2129;, 3;2130,2130,2130;, 3;2131,2131,2131;, 3;2132,2132,2132;, 3;2133,2133,2133;, 3;2134,2134,2134;, 3;2135,2135,2135;, 3;2136,2136,2136;, 3;2137,2137,2137;, 3;2138,2138,2138;, 3;2139,2139,2139;, 3;2140,2140,2140;, 3;2141,2141,2141;, 3;2142,2142,2142;, 3;2143,2143,2143;, 3;2144,2144,2144;, 3;2145,2145,2145;, 3;2146,2146,2146;, 3;2147,2147,2147;, 3;2148,2148,2148;, 3;2149,2149,2149;, 3;2150,2150,2150;, 3;2151,2151,2151;, 3;2152,2152,2152;, 3;2153,2153,2153;, 3;2154,2154,2154;, 3;2155,2155,2155;, 3;2156,2156,2156;, 3;2157,2157,2157;, 3;2158,2158,2158;, 3;2159,2159,2159;, 3;2160,2160,2160;, 3;2161,2161,2161;, 3;2162,2162,2162;, 3;2163,2163,2163;, 3;2164,2164,2164;, 3;2165,2165,2165;, 3;2166,2166,2166;, 3;2167,2167,2167;, 3;2168,2168,2168;, 3;2169,2169,2169;, 3;2170,2170,2170;, 3;2171,2171,2171;, 3;2172,2172,2172;, 3;2173,2173,2173;, 3;2174,2174,2174;, 3;2175,2175,2175;, 3;2176,2176,2176;, 3;2177,2177,2177;, 3;2178,2178,2178;, 3;2179,2179,2179;, 3;2180,2180,2180;, 3;2181,2181,2181;, 3;2182,2182,2182;, 3;2183,2183,2183;, 3;2184,2184,2184;, 3;2185,2185,2185;, 3;2186,2186,2186;, 3;2187,2187,2187;, 3;2188,2188,2188;, 3;2189,2189,2189;, 3;2190,2190,2190;, 3;2191,2191,2191;, 3;2192,2192,2192;, 3;2193,2193,2193;, 3;2194,2194,2194;, 3;2195,2195,2195;, 3;2196,2196,2196;, 3;2197,2197,2197;, 3;2198,2198,2198;, 3;2199,2199,2199;, 3;2200,2200,2200;, 3;2201,2201,2201;, 3;2202,2202,2202;, 3;2203,2203,2203;, 3;2204,2204,2204;, 3;2205,2205,2205;, 3;2206,2206,2206;, 3;2207,2207,2207;, 3;2208,2208,2208;, 3;2209,2209,2209;, 3;2210,2210,2210;, 3;2211,2211,2211;, 3;2212,2212,2212;, 3;2213,2213,2213;, 3;2214,2214,2214;, 3;2215,2215,2215;, 3;2216,2216,2216;, 3;2217,2217,2217;, 3;2218,2218,2218;, 3;2219,2219,2219;, 3;2220,2220,2220;, 3;2221,2221,2221;, 3;2222,2222,2222;, 3;2223,2223,2223;, 3;2224,2224,2224;, 3;2225,2225,2225;, 3;2226,2226,2226;, 3;2227,2227,2227;, 3;2228,2228,2228;, 3;2229,2229,2229;, 3;2230,2230,2230;, 3;2231,2231,2231;, 3;2232,2232,2232;, 3;2233,2233,2233;, 3;2234,2234,2234;, 3;2235,2235,2235;, 3;2236,2236,2236;, 3;2237,2237,2237;, 3;2238,2238,2238;, 3;2239,2239,2239;, 3;2240,2240,2240;, 3;2241,2241,2241;, 3;2242,2242,2242;, 3;2243,2243,2243;, 3;2244,2244,2244;, 3;2245,2245,2245;, 3;2246,2246,2246;, 3;2247,2247,2247;, 3;2248,2248,2248;, 3;2249,2249,2249;, 3;2250,2250,2250;, 3;2251,2251,2251;, 3;2252,2252,2252;, 3;2253,2253,2253;, 3;2254,2254,2254;, 3;2255,2255,2255;, 3;2256,2256,2256;, 3;2257,2257,2257;, 3;2258,2258,2258;, 3;2259,2259,2259;, 3;2260,2260,2260;, 3;2261,2261,2261;, 3;2262,2262,2262;, 3;2263,2263,2263;, 3;2264,2264,2264;, 3;2265,2265,2265;, 3;2266,2266,2266;, 3;2267,2267,2267;, 3;2268,2268,2268;, 3;2269,2269,2269;, 3;2270,2270,2270;, 3;2271,2271,2271;, 3;2272,2272,2272;, 3;2273,2273,2273;, 3;2274,2274,2274;, 3;2275,2275,2275;, 3;2276,2276,2276;, 3;2277,2277,2277;, 3;2278,2278,2278;, 3;2279,2279,2279;, 3;2280,2280,2280;, 3;2281,2281,2281;, 3;2282,2282,2282;, 3;2283,2283,2283;, 3;2284,2284,2284;, 3;2285,2285,2285;, 3;2286,2286,2286;, 3;2287,2287,2287;, 3;2288,2288,2288;, 3;2289,2289,2289;, 3;2290,2290,2290;, 3;2291,2291,2291;, 3;2292,2292,2292;, 3;2293,2293,2293;, 3;2294,2294,2294;, 3;2295,2295,2295;, 3;2296,2296,2296;, 3;2297,2297,2297;, 3;2298,2298,2298;, 3;2299,2299,2299;, 3;2300,2300,2300;, 3;2301,2301,2301;, 3;2302,2302,2302;, 3;2303,2303,2303;, 3;2304,2304,2304;, 3;2305,2305,2305;, 3;2306,2306,2306;, 3;2307,2307,2307;, 3;2308,2308,2308;, 3;2309,2309,2309;, 3;2310,2310,2310;, 3;2311,2311,2311;, 3;2312,2312,2312;, 3;2313,2313,2313;, 3;2314,2314,2314;, 3;2315,2315,2315;, 3;2316,2316,2316;, 3;2317,2317,2317;, 3;2318,2318,2318;, 3;2319,2319,2319;, 3;2320,2320,2320;, 3;2321,2321,2321;, 3;2322,2322,2322;, 3;2323,2323,2323;, 3;2324,2324,2324;, 3;2325,2325,2325;, 3;2326,2326,2326;, 3;2327,2327,2327;, 3;2328,2328,2328;, 3;2329,2329,2329;, 3;2330,2330,2330;, 3;2331,2331,2331;, 3;2332,2332,2332;, 3;2333,2333,2333;, 3;2334,2334,2334;, 3;2335,2335,2335;, 3;2336,2336,2336;, 3;2337,2337,2337;, 3;2338,2338,2338;, 3;2339,2339,2339;, 3;2340,2340,2340;, 3;2341,2341,2341;, 3;2342,2342,2342;, 3;2343,2343,2343;, 3;2344,2344,2344;, 3;2345,2345,2345;, 3;2346,2346,2346;, 3;2347,2347,2347;, 3;2348,2348,2348;, 3;2349,2349,2349;, 3;2350,2350,2350;, 3;2351,2351,2351;, 3;2352,2352,2352;, 3;2353,2353,2353;, 3;2354,2354,2354;, 3;2355,2355,2355;, 3;2356,2356,2356;, 3;2357,2357,2357;, 3;2358,2358,2358;, 3;2359,2359,2359;, 3;2360,2360,2360;, 3;2361,2361,2361;, 3;2362,2362,2362;, 3;2363,2363,2363;, 3;2364,2364,2364;, 3;2365,2365,2365;, 3;2366,2366,2366;, 3;2367,2367,2367;, 3;2368,2368,2368;, 3;2369,2369,2369;, 3;2370,2370,2370;, 3;2371,2371,2371;, 3;2372,2372,2372;, 3;2373,2373,2373;, 3;2374,2374,2374;, 3;2375,2375,2375;, 3;2376,2376,2376;, 3;2377,2377,2377;, 3;2378,2378,2378;, 3;2379,2379,2379;, 3;2380,2380,2380;, 3;2381,2381,2381;, 3;2382,2382,2382;, 3;2383,2383,2383;, 3;2384,2384,2384;, 3;2385,2385,2385;, 3;2386,2386,2386;, 3;2387,2387,2387;, 3;2388,2388,2388;, 3;2389,2389,2389;, 3;2390,2390,2390;, 3;2391,2391,2391;, 3;2392,2392,2392;, 3;2393,2393,2393;, 3;2394,2394,2394;, 3;2395,2395,2395;, 3;2396,2396,2396;, 3;2397,2397,2397;, 3;2398,2398,2398;, 3;2399,2399,2399;, 3;2400,2400,2400;, 3;2401,2401,2401;, 3;2402,2402,2402;, 3;2403,2403,2403;, 3;2404,2404,2404;, 3;2405,2405,2405;, 3;2406,2406,2406;, 3;2407,2407,2407;, 3;2408,2408,2408;, 3;2409,2409,2409;, 3;2410,2410,2410;, 3;2411,2411,2411;, 3;2412,2412,2412;, 3;2413,2413,2413;, 3;2414,2414,2414;, 3;2415,2415,2415;, 3;2416,2416,2416;, 3;2417,2417,2417;, 3;2418,2418,2418;, 3;2419,2419,2419;, 3;2420,2420,2420;, 3;2421,2421,2421;, 3;2422,2422,2422;, 3;2423,2423,2423;, 3;2424,2424,2424;, 3;2425,2425,2425;, 3;2426,2426,2426;, 3;2427,2427,2427;, 3;2428,2428,2428;, 3;2429,2429,2429;, 3;2430,2430,2430;, 3;2431,2431,2431;, 3;2432,2432,2432;, 3;2433,2433,2433;, 3;2434,2434,2434;, 3;2435,2435,2435;, 3;2436,2436,2436;, 3;2437,2437,2437;, 3;2438,2438,2438;, 3;2439,2439,2439;, 3;2440,2440,2440;, 3;2441,2441,2441;, 3;2442,2442,2442;, 3;2443,2443,2443;, 3;2444,2444,2444;, 3;2445,2445,2445;, 3;2446,2446,2446;, 3;2447,2447,2447;, 3;2448,2448,2448;, 3;2449,2449,2449;, 3;2450,2450,2450;, 3;2451,2451,2451;, 3;2452,2452,2452;, 3;2453,2453,2453;, 3;2454,2454,2454;, 3;2455,2455,2455;, 3;2456,2456,2456;, 3;2457,2457,2457;, 3;2458,2458,2458;, 3;2459,2459,2459;, 3;2460,2460,2460;, 3;2461,2461,2461;, 3;2462,2462,2462;, 3;2463,2463,2463;, 3;2464,2464,2464;, 3;2465,2465,2465;, 3;2466,2466,2466;, 3;2467,2467,2467;, 3;2468,2468,2468;, 3;2469,2469,2469;, 3;2470,2470,2470;, 3;2471,2471,2471;, 3;2472,2472,2472;, 3;2473,2473,2473;, 3;2474,2474,2474;, 3;2475,2475,2475;, 3;2476,2476,2476;, 3;2477,2477,2477;, 3;2478,2478,2478;, 3;2479,2479,2479;, 3;2480,2480,2480;, 3;2481,2481,2481;, 3;2482,2482,2482;, 3;2483,2483,2483;, 3;2484,2484,2484;, 3;2485,2485,2485;, 3;2486,2486,2486;, 3;2487,2487,2487;, 3;2488,2488,2488;, 3;2489,2489,2489;, 3;2490,2490,2490;, 3;2491,2491,2491;, 3;2492,2492,2492;, 3;2493,2493,2493;, 3;2494,2494,2494;, 3;2495,2495,2495;, 3;2496,2496,2496;, 3;2497,2497,2497;, 3;2498,2498,2498;, 3;2499,2499,2499;, 3;2500,2500,2500;, 3;2501,2501,2501;, 3;2502,2502,2502;, 3;2503,2503,2503;, 3;2504,2504,2504;, 3;2505,2505,2505;, 3;2506,2506,2506;, 3;2507,2507,2507;, 3;2508,2508,2508;, 3;2509,2509,2509;, 3;2510,2510,2510;, 3;2511,2511,2511;, 3;2512,2512,2512;, 3;2513,2513,2513;, 3;2514,2514,2514;, 3;2515,2515,2515;, 3;2516,2516,2516;, 3;2517,2517,2517;, 3;2518,2518,2518;, 3;2519,2519,2519;, 3;2520,2520,2520;, 3;2521,2521,2521;, 3;2522,2522,2522;, 3;2523,2523,2523;, 3;2524,2524,2524;, 3;2525,2525,2525;, 3;2526,2526,2526;, 3;2527,2527,2527;, 3;2528,2528,2528;, 3;2529,2529,2529;, 3;2530,2530,2530;, 3;2531,2531,2531;, 3;2532,2532,2532;, 3;2533,2533,2533;, 3;2534,2534,2534;, 3;2535,2535,2535;, 3;2536,2536,2536;, 3;2537,2537,2537;, 3;2538,2538,2538;, 3;2539,2539,2539;, 3;2540,2540,2540;, 3;2541,2541,2541;, 3;2542,2542,2542;, 3;2543,2543,2543;, 3;2544,2544,2544;, 3;2545,2545,2545;, 3;2546,2546,2546;, 3;2547,2547,2547;, 3;2548,2548,2548;, 3;2549,2549,2549;, 3;2550,2550,2550;, 3;2551,2551,2551;, 3;2552,2552,2552;, 3;2553,2553,2553;, 3;2554,2554,2554;, 3;2555,2555,2555;, 3;2556,2556,2556;, 3;2557,2557,2557;, 3;2558,2558,2558;, 3;2559,2559,2559;, 3;2560,2560,2560;, 3;2561,2561,2561;, 3;2562,2562,2562;, 3;2563,2563,2563;, 3;2564,2564,2564;, 3;2565,2565,2565;, 3;2566,2566,2566;, 3;2567,2567,2567;, 3;2568,2568,2568;, 3;2569,2569,2569;, 3;2570,2570,2570;, 3;2571,2571,2571;, 3;2572,2572,2572;, 3;2573,2573,2573;, 3;2574,2574,2574;, 3;2575,2575,2575;, 3;2576,2576,2576;, 3;2577,2577,2577;, 3;2578,2578,2578;, 3;2579,2579,2579;, 3;2580,2580,2580;, 3;2581,2581,2581;, 3;2582,2582,2582;, 3;2583,2583,2583;, 3;2584,2584,2584;, 3;2585,2585,2585;, 3;2586,2586,2586;, 3;2587,2587,2587;, 3;2588,2588,2588;, 3;2589,2589,2589;, 3;2590,2590,2590;, 3;2591,2591,2591;, 3;2592,2592,2592;, 3;2593,2593,2593;, 3;2594,2594,2594;, 3;2595,2595,2595;, 3;2596,2596,2596;, 3;2597,2597,2597;, 3;2598,2598,2598;, 3;2599,2599,2599;, 3;2600,2600,2600;, 3;2601,2601,2601;, 3;2602,2602,2602;, 3;2603,2603,2603;, 3;2604,2604,2604;, 3;2605,2605,2605;, 3;2606,2606,2606;, 3;2607,2607,2607;, 3;2608,2608,2608;, 3;2609,2609,2609;, 3;2610,2610,2610;, 3;2611,2611,2611;, 3;2612,2612,2612;, 3;2613,2613,2613;, 3;2614,2614,2614;, 3;2615,2615,2615;, 3;2616,2616,2616;, 3;2617,2617,2617;, 3;2618,2618,2618;, 3;2619,2619,2619;, 3;2620,2620,2620;, 3;2621,2621,2621;, 3;2622,2622,2622;, 3;2623,2623,2623;, 3;2624,2624,2624;, 3;2625,2625,2625;, 3;2626,2626,2626;, 3;2627,2627,2627;, 3;2628,2628,2628;, 3;2629,2629,2629;, 3;2630,2630,2630;, 3;2631,2631,2631;, 3;2632,2632,2632;, 3;2633,2633,2633;, 3;2634,2634,2634;, 3;2635,2635,2635;, 3;2636,2636,2636;, 3;2637,2637,2637;, 3;2638,2638,2638;, 3;2639,2639,2639;, 3;2640,2640,2640;, 3;2641,2641,2641;, 3;2642,2642,2642;, 3;2643,2643,2643;, 3;2644,2644,2644;, 3;2645,2645,2645;, 3;2646,2646,2646;, 3;2647,2647,2647;, 3;2648,2648,2648;, 3;2649,2649,2649;, 3;2650,2650,2650;, 3;2651,2651,2651;, 3;2652,2652,2652;, 3;2653,2653,2653;, 3;2654,2654,2654;, 3;2655,2655,2655;, 3;2656,2656,2656;, 3;2657,2657,2657;, 3;2658,2658,2658;, 3;2659,2659,2659;, 3;2660,2660,2660;, 3;2661,2661,2661;, 3;2662,2662,2662;, 3;2663,2663,2663;, 3;2664,2664,2664;, 3;2665,2665,2665;, 3;2666,2666,2666;, 3;2667,2667,2667;, 3;2668,2668,2668;, 3;2669,2669,2669;, 3;2670,2670,2670;, 3;2671,2671,2671;, 3;2672,2672,2672;, 3;2673,2673,2673;, 3;2674,2674,2674;, 3;2675,2675,2675;, 3;2676,2676,2676;, 3;2677,2677,2677;, 3;2678,2678,2678;, 3;2679,2679,2679;, 3;2680,2680,2680;, 3;2681,2681,2681;, 3;2682,2682,2682;, 3;2683,2683,2683;, 3;2684,2684,2684;, 3;2685,2685,2685;, 3;2686,2686,2686;, 3;2687,2687,2687;, 3;2688,2688,2688;, 3;2689,2689,2689;, 3;2690,2690,2690;, 3;2691,2691,2691;, 3;2692,2692,2692;, 3;2693,2693,2693;, 3;2694,2694,2694;, 3;2695,2695,2695;, 3;2696,2696,2696;, 3;2697,2697,2697;, 3;2698,2698,2698;, 3;2699,2699,2699;, 3;2700,2700,2700;, 3;2701,2701,2701;, 3;2702,2702,2702;, 3;2703,2703,2703;, 3;2704,2704,2704;, 3;2705,2705,2705;, 3;2706,2706,2706;, 3;2707,2707,2707;, 3;2708,2708,2708;, 3;2709,2709,2709;, 3;2710,2710,2710;, 3;2711,2711,2711;, 3;2712,2712,2712;, 3;2713,2713,2713;, 3;2714,2714,2714;, 3;2715,2715,2715;, 3;2716,2716,2716;, 3;2717,2717,2717;, 3;2718,2718,2718;, 3;2719,2719,2719;, 3;2720,2720,2720;, 3;2721,2721,2721;, 3;2722,2722,2722;, 3;2723,2723,2723;, 3;2724,2724,2724;, 3;2725,2725,2725;, 3;2726,2726,2726;, 3;2727,2727,2727;, 3;2728,2728,2728;, 3;2729,2729,2729;, 3;2730,2730,2730;, 3;2731,2731,2731;, 3;2732,2732,2732;, 3;2733,2733,2733;, 3;2734,2734,2734;, 3;2735,2735,2735;, 3;2736,2736,2736;, 3;2737,2737,2737;, 3;2738,2738,2738;, 3;2739,2739,2739;, 3;2740,2740,2740;, 3;2741,2741,2741;, 3;2742,2742,2742;, 3;2743,2743,2743;, 3;2744,2744,2744;, 3;2745,2745,2745;, 3;2746,2746,2746;, 3;2747,2747,2747;, 3;2748,2748,2748;, 3;2749,2749,2749;, 3;2750,2750,2750;, 3;2751,2751,2751;, 3;2752,2752,2752;, 3;2753,2753,2753;, 3;2754,2754,2754;, 3;2755,2755,2755;, 3;2756,2756,2756;, 3;2757,2757,2757;, 3;2758,2758,2758;, 3;2759,2759,2759;, 3;2760,2760,2760;, 3;2761,2761,2761;, 3;2762,2762,2762;, 3;2763,2763,2763;, 3;2764,2764,2764;, 3;2765,2765,2765;, 3;2766,2766,2766;, 3;2767,2767,2767;, 3;2768,2768,2768;, 3;2769,2769,2769;, 3;2770,2770,2770;, 3;2771,2771,2771;, 3;2772,2772,2772;, 3;2773,2773,2773;, 3;2774,2774,2774;, 3;2775,2775,2775;, 3;2776,2776,2776;, 3;2777,2777,2777;, 3;2778,2778,2778;, 3;2779,2779,2779;, 3;2780,2780,2780;, 3;2781,2781,2781;, 3;2782,2782,2782;, 3;2783,2783,2783;, 3;2784,2784,2784;, 3;2785,2785,2785;, 3;2786,2786,2786;, 3;2787,2787,2787;, 3;2788,2788,2788;, 3;2789,2789,2789;, 3;2790,2790,2790;, 3;2791,2791,2791;, 3;2792,2792,2792;, 3;2793,2793,2793;, 3;2794,2794,2794;, 3;2795,2795,2795;, 3;2796,2796,2796;, 3;2797,2797,2797;, 3;2798,2798,2798;, 3;2799,2799,2799;, 3;2800,2800,2800;, 3;2801,2801,2801;, 3;2802,2802,2802;, 3;2803,2803,2803;, 3;2804,2804,2804;, 3;2805,2805,2805;, 3;2806,2806,2806;, 3;2807,2807,2807;, 3;2808,2808,2808;, 3;2809,2809,2809;, 3;2810,2810,2810;, 3;2811,2811,2811;, 3;2812,2812,2812;, 3;2813,2813,2813;, 3;2814,2814,2814;, 3;2815,2815,2815;, 3;2816,2816,2816;, 3;2817,2817,2817;, 3;2818,2818,2818;, 3;2819,2819,2819;, 3;2820,2820,2820;, 3;2821,2821,2821;, 3;2822,2822,2822;, 3;2823,2823,2823;, 3;2824,2824,2824;, 3;2825,2825,2825;, 3;2826,2826,2826;, 3;2827,2827,2827;, 3;2828,2828,2828;, 3;2829,2829,2829;, 3;2830,2830,2830;, 3;2831,2831,2831;, 3;2832,2832,2832;, 3;2833,2833,2833;, 3;2834,2834,2834;, 3;2835,2835,2835;, 3;2836,2836,2836;, 3;2837,2837,2837;, 3;2838,2838,2838;, 3;2839,2839,2839;, 3;2840,2840,2840;, 3;2841,2841,2841;, 3;2842,2842,2842;, 3;2843,2843,2843;, 3;2844,2844,2844;, 3;2845,2845,2845;, 3;2846,2846,2846;, 3;2847,2847,2847;, 3;2848,2848,2848;, 3;2849,2849,2849;, 3;2850,2850,2850;, 3;2851,2851,2851;, 3;2852,2852,2852;, 3;2853,2853,2853;, 3;2854,2854,2854;, 3;2855,2855,2855;, 3;2856,2856,2856;, 3;2857,2857,2857;, 3;2858,2858,2858;, 3;2859,2859,2859;, 3;2860,2860,2860;, 3;2861,2861,2861;, 3;2862,2862,2862;, 3;2863,2863,2863;, 3;2864,2864,2864;, 3;2865,2865,2865;, 3;2866,2866,2866;, 3;2867,2867,2867;, 3;2868,2868,2868;, 3;2869,2869,2869;, 3;2870,2870,2870;, 3;2871,2871,2871;, 3;2872,2872,2872;, 3;2873,2873,2873;, 3;2874,2874,2874;, 3;2875,2875,2875;, 3;2876,2876,2876;, 3;2877,2877,2877;, 3;2878,2878,2878;, 3;2879,2879,2879;, 3;2880,2880,2880;, 3;2881,2881,2881;, 3;2882,2882,2882;, 3;2883,2883,2883;, 3;2884,2884,2884;, 3;2885,2885,2885;, 3;2886,2886,2886;, 3;2887,2887,2887;, 3;2888,2888,2888;, 3;2889,2889,2889;, 3;2890,2890,2890;, 3;2891,2891,2891;, 3;2892,2892,2892;, 3;2893,2893,2893;, 3;2894,2894,2894;, 3;2895,2895,2895;, 3;2896,2896,2896;, 3;2897,2897,2897;, 3;2898,2898,2898;, 3;2899,2899,2899;, 3;2900,2900,2900;, 3;2901,2901,2901;, 3;2902,2902,2902;, 3;2903,2903,2903;, 3;2904,2904,2904;, 3;2905,2905,2905;, 3;2906,2906,2906;, 3;2907,2907,2907;, 3;2908,2908,2908;, 3;2909,2909,2909;, 3;2910,2910,2910;, 3;2911,2911,2911;, 3;2912,2912,2912;, 3;2913,2913,2913;, 3;2914,2914,2914;, 3;2915,2915,2915;, 3;2916,2916,2916;, 3;2917,2917,2917;, 3;2918,2918,2918;, 3;2919,2919,2919;, 3;2920,2920,2920;, 3;2921,2921,2921;, 3;2922,2922,2922;, 3;2923,2923,2923;, 3;2924,2924,2924;, 3;2925,2925,2925;, 3;2926,2926,2926;, 3;2927,2927,2927;, 3;2928,2928,2928;, 3;2929,2929,2929;, 3;2930,2930,2930;, 3;2931,2931,2931;, 3;2932,2932,2932;, 3;2933,2933,2933;, 3;2934,2934,2934;, 3;2935,2935,2935;, 3;2936,2936,2936;, 3;2937,2937,2937;, 3;2938,2938,2938;, 3;2939,2939,2939;, 3;2940,2940,2940;, 3;2941,2941,2941;, 3;2942,2942,2942;, 3;2943,2943,2943;, 3;2944,2944,2944;, 3;2945,2945,2945;, 3;2946,2946,2946;, 3;2947,2947,2947;, 3;2948,2948,2948;, 3;2949,2949,2949;, 3;2950,2950,2950;, 3;2951,2951,2951;, 3;2952,2952,2952;, 3;2953,2953,2953;, 3;2954,2954,2954;, 3;2955,2955,2955;, 3;2956,2956,2956;, 3;2957,2957,2957;, 3;2958,2958,2958;, 3;2959,2959,2959;, 3;2960,2960,2960;, 3;2961,2961,2961;, 3;2962,2962,2962;, 3;2963,2963,2963;, 3;2964,2964,2964;, 3;2965,2965,2965;, 3;2966,2966,2966;, 3;2967,2967,2967;, 3;2968,2968,2968;, 3;2969,2969,2969;, 3;2970,2970,2970;, 3;2971,2971,2971;, 3;2972,2972,2972;, 3;2973,2973,2973;, 3;2974,2974,2974;, 3;2975,2975,2975;, 3;2976,2976,2976;, 3;2977,2977,2977;, 3;2978,2978,2978;, 3;2979,2979,2979;, 3;2980,2980,2980;, 3;2981,2981,2981;, 3;2982,2982,2982;, 3;2983,2983,2983;, 3;2984,2984,2984;, 3;2985,2985,2985;, 3;2986,2986,2986;, 3;2987,2987,2987;, 3;2988,2988,2988;, 3;2989,2989,2989;, 3;2990,2990,2990;, 3;2991,2991,2991;, 3;2992,2992,2992;, 3;2993,2993,2993;, 3;2994,2994,2994;, 3;2995,2995,2995;, 3;2996,2996,2996;, 3;2997,2997,2997;, 3;2998,2998,2998;, 3;2999,2999,2999;, 3;3000,3000,3000;, 3;3001,3001,3001;, 3;3002,3002,3002;, 3;3003,3003,3003;, 3;3004,3004,3004;, 3;3005,3005,3005;, 3;3006,3006,3006;, 3;3007,3007,3007;, 3;3008,3008,3008;, 3;3009,3009,3009;, 3;3010,3010,3010;, 3;3011,3011,3011;, 3;3012,3012,3012;, 3;3013,3013,3013;, 3;3014,3014,3014;, 3;3015,3015,3015;, 3;3016,3016,3016;, 3;3017,3017,3017;, 3;3018,3018,3018;, 3;3019,3019,3019;, 3;3020,3020,3020;, 3;3021,3021,3021;, 3;3022,3022,3022;, 3;3023,3023,3023;, 3;3024,3024,3024;, 3;3025,3025,3025;, 3;3026,3026,3026;, 3;3027,3027,3027;, 3;3028,3028,3028;, 3;3029,3029,3029;, 3;3030,3030,3030;, 3;3031,3031,3031;, 3;3032,3032,3032;, 3;3033,3033,3033;, 3;3034,3034,3034;, 3;3035,3035,3035;, 3;3036,3036,3036;, 3;3037,3037,3037;, 3;3038,3038,3038;, 3;3039,3039,3039;, 3;3040,3040,3040;, 3;3041,3041,3041;, 3;3042,3042,3042;, 3;3043,3043,3043;, 3;3044,3044,3044;, 3;3045,3045,3045;, 3;3046,3046,3046;, 3;3047,3047,3047;, 3;3048,3048,3048;, 3;3049,3049,3049;, 3;3050,3050,3050;, 3;3051,3051,3051;, 3;3052,3052,3052;, 3;3053,3053,3053;, 3;3054,3054,3054;, 3;3055,3055,3055;, 3;3056,3056,3056;, 3;3057,3057,3057;, 3;3058,3058,3058;, 3;3059,3059,3059;, 3;3060,3060,3060;, 3;3061,3061,3061;, 3;3062,3062,3062;, 3;3063,3063,3063;, 3;3064,3064,3064;, 3;3065,3065,3065;, 3;3066,3066,3066;, 3;3067,3067,3067;, 3;3068,3068,3068;, 3;3069,3069,3069;, 3;3070,3070,3070;, 3;3071,3071,3071;, 3;3072,3072,3072;, 3;3073,3073,3073;, 3;3074,3074,3074;, 3;3075,3075,3075;, 3;3076,3076,3076;, 3;3077,3077,3077;, 3;3078,3078,3078;, 3;3079,3079,3079;, 3;3080,3080,3080;, 3;3081,3081,3081;, 3;3082,3082,3082;, 3;3083,3083,3083;, 3;3084,3084,3084;, 3;3085,3085,3085;, 3;3086,3086,3086;, 3;3087,3087,3087;, 3;3088,3088,3088;, 3;3089,3089,3089;, 3;3090,3090,3090;, 3;3091,3091,3091;, 3;3092,3092,3092;, 3;3093,3093,3093;, 3;3094,3094,3094;, 3;3095,3095,3095;, 3;3096,3096,3096;, 3;3097,3097,3097;, 3;3098,3098,3098;, 3;3099,3099,3099;, 3;3100,3100,3100;, 3;3101,3101,3101;, 3;3102,3102,3102;, 3;3103,3103,3103;, 3;3104,3104,3104;, 3;3105,3105,3105;, 3;3106,3106,3106;, 3;3107,3107,3107;, 3;3108,3108,3108;, 3;3109,3109,3109;, 3;3110,3110,3110;, 3;3111,3111,3111;, 3;3112,3112,3112;, 3;3113,3113,3113;, 3;3114,3114,3114;, 3;3115,3115,3115;, 3;3116,3116,3116;, 3;3117,3117,3117;, 3;3118,3118,3118;, 3;3119,3119,3119;, 3;3120,3120,3120;, 3;3121,3121,3121;, 3;3122,3122,3122;, 3;3123,3123,3123;, 3;3124,3124,3124;, 3;3125,3125,3125;, 3;3126,3126,3126;, 3;3127,3127,3127;, 3;3128,3128,3128;, 3;3129,3129,3129;, 3;3130,3130,3130;, 3;3131,3131,3131;, 3;3132,3132,3132;, 3;3133,3133,3133;, 3;3134,3134,3134;, 3;3135,3135,3135;, 3;3136,3136,3136;, 3;3137,3137,3137;, 3;3138,3138,3138;, 3;3139,3139,3139;, 3;3140,3140,3140;, 3;3141,3141,3141;, 3;3142,3142,3142;, 3;3143,3143,3143;, 3;3144,3144,3144;, 3;3145,3145,3145;, 3;3146,3146,3146;, 3;3147,3147,3147;, 3;3148,3148,3148;, 3;3149,3149,3149;, 3;3150,3150,3150;, 3;3151,3151,3151;, 3;3152,3152,3152;, 3;3153,3153,3153;, 3;3154,3154,3154;, 3;3155,3155,3155;, 3;3156,3156,3156;, 3;3157,3157,3157;, 3;3158,3158,3158;, 3;3159,3159,3159;, 3;3160,3160,3160;, 3;3161,3161,3161;, 3;3162,3162,3162;, 3;3163,3163,3163;, 3;3164,3164,3164;, 3;3165,3165,3165;, 3;3166,3166,3166;, 3;3167,3167,3167;, 3;3168,3168,3168;, 3;3169,3169,3169;, 3;3170,3170,3170;, 3;3171,3171,3171;, 3;3172,3172,3172;, 3;3173,3173,3173;, 3;3174,3174,3174;, 3;3175,3175,3175;, 3;3176,3176,3176;, 3;3177,3177,3177;, 3;3178,3178,3178;, 3;3179,3179,3179;, 3;3180,3180,3180;, 3;3181,3181,3181;, 3;3182,3182,3182;, 3;3183,3183,3183;, 3;3184,3184,3184;, 3;3185,3185,3185;, 3;3186,3186,3186;, 3;3187,3187,3187;, 3;3188,3188,3188;, 3;3189,3189,3189;, 3;3190,3190,3190;, 3;3191,3191,3191;, 3;3192,3192,3192;, 3;3193,3193,3193;, 3;3194,3194,3194;, 3;3195,3195,3195;, 3;3196,3196,3196;, 3;3197,3197,3197;, 3;3198,3198,3198;, 3;3199,3199,3199;, 3;3200,3200,3200;, 3;3201,3201,3201;, 3;3202,3202,3202;, 3;3203,3203,3203;, 3;3204,3204,3204;, 3;3205,3205,3205;, 3;3206,3206,3206;, 3;3207,3207,3207;, 3;3208,3208,3208;, 3;3209,3209,3209;, 3;3210,3210,3210;, 3;3211,3211,3211;, 3;3212,3212,3212;, 3;3213,3213,3213;, 3;3214,3214,3214;, 3;3215,3215,3215;, 3;3216,3216,3216;, 3;3217,3217,3217;, 3;3218,3218,3218;, 3;3219,3219,3219;, 3;3220,3220,3220;, 3;3221,3221,3221;, 3;3222,3222,3222;, 3;3223,3223,3223;, 3;3224,3224,3224;, 3;3225,3225,3225;, 3;3226,3226,3226;, 3;3227,3227,3227;, 3;3228,3228,3228;, 3;3229,3229,3229;, 3;3230,3230,3230;, 3;3231,3231,3231;, 3;3232,3232,3232;, 3;3233,3233,3233;, 3;3234,3234,3234;, 3;3235,3235,3235;, 3;3236,3236,3236;, 3;3237,3237,3237;, 3;3238,3238,3238;, 3;3239,3239,3239;, 3;3240,3240,3240;, 3;3241,3241,3241;, 3;3242,3242,3242;, 3;3243,3243,3243;, 3;3244,3244,3244;, 3;3245,3245,3245;, 3;3246,3246,3246;, 3;3247,3247,3247;, 3;3248,3248,3248;, 3;3249,3249,3249;, 3;3250,3250,3250;, 3;3251,3251,3251;, 3;3252,3252,3252;, 3;3253,3253,3253;, 3;3254,3254,3254;, 3;3255,3255,3255;, 3;3256,3256,3256;, 3;3257,3257,3257;, 3;3258,3258,3258;, 3;3259,3259,3259;, 3;3260,3260,3260;, 3;3261,3261,3261;, 3;3262,3262,3262;, 3;3263,3263,3263;, 3;3264,3264,3264;, 3;3265,3265,3265;, 3;3266,3266,3266;, 3;3267,3267,3267;, 3;3268,3268,3268;, 3;3269,3269,3269;, 3;3270,3270,3270;, 3;3271,3271,3271;, 3;3272,3272,3272;, 3;3273,3273,3273;, 3;3274,3274,3274;, 3;3275,3275,3275;, 3;3276,3276,3276;, 3;3277,3277,3277;, 3;3278,3278,3278;, 3;3279,3279,3279;, 3;3280,3280,3280;, 3;3281,3281,3281;, 3;3282,3282,3282;, 3;3283,3283,3283;, 3;3284,3284,3284;, 3;3285,3285,3285;, 3;3286,3286,3286;, 3;3287,3287,3287;, 3;3288,3288,3288;, 3;3289,3289,3289;, 3;3290,3290,3290;, 3;3291,3291,3291;, 3;3292,3292,3292;, 3;3293,3293,3293;, 3;3294,3294,3294;, 3;3295,3295,3295;, 3;3296,3296,3296;, 3;3297,3297,3297;, 3;3298,3298,3298;, 3;3299,3299,3299;, 3;3300,3300,3300;, 3;3301,3301,3301;, 3;3302,3302,3302;, 3;3303,3303,3303;, 3;3304,3304,3304;, 3;3305,3305,3305;, 3;3306,3306,3306;, 3;3307,3307,3307;, 3;3308,3308,3308;, 3;3309,3309,3309;, 3;3310,3310,3310;, 3;3311,3311,3311;, 3;3312,3312,3312;, 3;3313,3313,3313;, 3;3314,3314,3314;, 3;3315,3315,3315;, 3;3316,3316,3316;, 3;3317,3317,3317;, 3;3318,3318,3318;, 3;3319,3319,3319;, 3;3320,3320,3320;, 3;3321,3321,3321;, 3;3322,3322,3322;, 3;3323,3323,3323;, 3;3324,3324,3324;, 3;3325,3325,3325;, 3;3326,3326,3326;, 3;3327,3327,3327;, 3;3328,3328,3328;, 3;3329,3329,3329;, 3;3330,3330,3330;, 3;3331,3331,3331;, 3;3332,3332,3332;, 3;3333,3333,3333;, 3;3334,3334,3334;, 3;3335,3335,3335;, 3;3336,3336,3336;, 3;3337,3337,3337;, 3;3338,3338,3338;, 3;3339,3339,3339;, 3;3340,3340,3340;, 3;3341,3341,3341;, 3;3342,3342,3342;, 3;3343,3343,3343;, 3;3344,3344,3344;, 3;3345,3345,3345;, 3;3346,3346,3346;, 3;3347,3347,3347;, 3;3348,3348,3348;, 3;3349,3349,3349;, 3;3350,3350,3350;, 3;3351,3351,3351;, 3;3352,3352,3352;, 3;3353,3353,3353;, 3;3354,3354,3354;, 3;3355,3355,3355;, 3;3356,3356,3356;, 3;3357,3357,3357;, 3;3358,3358,3358;, 3;3359,3359,3359;, 3;3360,3360,3360;, 3;3361,3361,3361;, 3;3362,3362,3362;, 3;3363,3363,3363;, 3;3364,3364,3364;, 3;3365,3365,3365;, 3;3366,3366,3366;, 3;3367,3367,3367;, 3;3368,3368,3368;, 3;3369,3369,3369;, 3;3370,3370,3370;, 3;3371,3371,3371;, 3;3372,3372,3372;, 3;3373,3373,3373;, 3;3374,3374,3374;, 3;3375,3375,3375;, 3;3376,3376,3376;, 3;3377,3377,3377;, 3;3378,3378,3378;, 3;3379,3379,3379;, 3;3380,3380,3380;, 3;3381,3381,3381;, 3;3382,3382,3382;, 3;3383,3383,3383;, 3;3384,3384,3384;, 3;3385,3385,3385;, 3;3386,3386,3386;, 3;3387,3387,3387;, 3;3388,3388,3388;, 3;3389,3389,3389;, 3;3390,3390,3390;, 3;3391,3391,3391;, 3;3392,3392,3392;, 3;3393,3393,3393;, 3;3394,3394,3394;, 3;3395,3395,3395;, 3;3396,3396,3396;, 3;3397,3397,3397;, 3;3398,3398,3398;, 3;3399,3399,3399;, 3;3400,3400,3400;, 3;3401,3401,3401;, 3;3402,3402,3402;, 3;3403,3403,3403;, 3;3404,3404,3404;, 3;3405,3405,3405;, 3;3406,3406,3406;, 3;3407,3407,3407;, 3;3408,3408,3408;, 3;3409,3409,3409;, 3;3410,3410,3410;, 3;3411,3411,3411;, 3;3412,3412,3412;, 3;3413,3413,3413;, 3;3414,3414,3414;, 3;3415,3415,3415;, 3;3416,3416,3416;, 3;3417,3417,3417;, 3;3418,3418,3418;, 3;3419,3419,3419;, 3;3420,3420,3420;, 3;3421,3421,3421;, 3;3422,3422,3422;, 3;3423,3423,3423;, 3;3424,3424,3424;, 3;3425,3425,3425;, 3;3426,3426,3426;, 3;3427,3427,3427;, 3;3428,3428,3428;, 3;3429,3429,3429;, 3;3430,3430,3430;, 3;3431,3431,3431;, 3;3432,3432,3432;, 3;3433,3433,3433;, 3;3434,3434,3434;, 3;3435,3435,3435;, 3;3436,3436,3436;, 3;3437,3437,3437;, 3;3438,3438,3438;, 3;3439,3439,3439;, 3;3440,3440,3440;, 3;3441,3441,3441;, 3;3442,3442,3442;, 3;3443,3443,3443;, 3;3444,3444,3444;, 3;3445,3445,3445;, 3;3446,3446,3446;, 3;3447,3447,3447;, 3;3448,3448,3448;, 3;3449,3449,3449;, 3;3450,3450,3450;, 3;3451,3451,3451;, 3;3452,3452,3452;, 3;3453,3453,3453;, 3;3454,3454,3454;, 3;3455,3455,3455;, 3;3456,3456,3456;, 3;3457,3457,3457;, 3;3458,3458,3458;, 3;3459,3459,3459;, 3;3460,3460,3460;, 3;3461,3461,3461;, 3;3462,3462,3462;, 3;3463,3463,3463;, 3;3464,3464,3464;, 3;3465,3465,3465;, 3;3466,3466,3466;, 3;3467,3467,3467;, 3;3468,3468,3468;, 3;3469,3469,3469;, 3;3470,3470,3470;, 3;3471,3471,3471;, 3;3472,3472,3472;, 3;3473,3473,3473;, 3;3474,3474,3474;, 3;3475,3475,3475;, 3;3476,3476,3476;, 3;3477,3477,3477;, 3;3478,3478,3478;, 3;3479,3479,3479;, 3;3480,3480,3480;, 3;3481,3481,3481;, 3;3482,3482,3482;, 3;3483,3483,3483;, 3;3484,3484,3484;, 3;3485,3485,3485;, 3;3486,3486,3486;, 3;3487,3487,3487;, 3;3488,3488,3488;, 3;3489,3489,3489;, 3;3490,3490,3490;, 3;3491,3491,3491;, 3;3492,3492,3492;, 3;3493,3493,3493;, 3;3494,3494,3494;, 3;3495,3495,3495;, 3;3496,3496,3496;, 3;3497,3497,3497;, 3;3498,3498,3498;, 3;3499,3499,3499;, 3;3500,3500,3500;, 3;3501,3501,3501;, 3;3502,3502,3502;, 3;3503,3503,3503;, 3;3504,3504,3504;, 3;3505,3505,3505;, 3;3506,3506,3506;, 3;3507,3507,3507;, 3;3508,3508,3508;, 3;3509,3509,3509;, 3;3510,3510,3510;, 3;3511,3511,3511;, 3;3512,3512,3512;, 3;3513,3513,3513;, 3;3514,3514,3514;, 3;3515,3515,3515;, 3;3516,3516,3516;, 3;3517,3517,3517;, 3;3518,3518,3518;, 3;3519,3519,3519;, 3;3520,3520,3520;, 3;3521,3521,3521;, 3;3522,3522,3522;, 3;3523,3523,3523;, 3;3524,3524,3524;, 3;3525,3525,3525;, 3;3526,3526,3526;, 3;3527,3527,3527;, 3;3528,3528,3528;, 3;3529,3529,3529;, 3;3530,3530,3530;, 3;3531,3531,3531;, 3;3532,3532,3532;, 3;3533,3533,3533;, 3;3534,3534,3534;, 3;3535,3535,3535;, 3;3536,3536,3536;, 3;3537,3537,3537;, 3;3538,3538,3538;, 3;3539,3539,3539;, 3;3540,3540,3540;, 3;3541,3541,3541;, 3;3542,3542,3542;, 3;3543,3543,3543;, 3;3544,3544,3544;, 3;3545,3545,3545;, 3;3546,3546,3546;, 3;3547,3547,3547;, 3;3548,3548,3548;, 3;3549,3549,3549;, 3;3550,3550,3550;, 3;3551,3551,3551;, 3;3552,3552,3552;, 3;3553,3553,3553;, 3;3554,3554,3554;, 3;3555,3555,3555;, 3;3556,3556,3556;, 3;3557,3557,3557;, 3;3558,3558,3558;, 3;3559,3559,3559;, 3;3560,3560,3560;, 3;3561,3561,3561;, 3;3562,3562,3562;, 3;3563,3563,3563;, 3;3564,3564,3564;, 3;3565,3565,3565;, 3;3566,3566,3566;, 3;3567,3567,3567;, 3;3568,3568,3568;, 3;3569,3569,3569;, 3;3570,3570,3570;, 3;3571,3571,3571;, 3;3572,3572,3572;, 3;3573,3573,3573;, 3;3574,3574,3574;, 3;3575,3575,3575;, 3;3576,3576,3576;, 3;3577,3577,3577;, 3;3578,3578,3578;, 3;3579,3579,3579;, 3;3580,3580,3580;, 3;3581,3581,3581;, 3;3582,3582,3582;, 3;3583,3583,3583;, 3;3584,3584,3584;, 3;3585,3585,3585;, 3;3586,3586,3586;, 3;3587,3587,3587;, 3;3588,3588,3588;, 3;3589,3589,3589;, 3;3590,3590,3590;, 3;3591,3591,3591;, 3;3592,3592,3592;, 3;3593,3593,3593;, 3;3594,3594,3594;, 3;3595,3595,3595;, 3;3596,3596,3596;, 3;3597,3597,3597;, 3;3598,3598,3598;, 3;3599,3599,3599;, 3;3600,3600,3600;, 3;3601,3601,3601;, 3;3602,3602,3602;, 3;3603,3603,3603;, 3;3604,3604,3604;, 3;3605,3605,3605;, 3;3606,3606,3606;, 3;3607,3607,3607;, 3;3608,3608,3608;, 3;3609,3609,3609;, 3;3610,3610,3610;, 3;3611,3611,3611;, 3;3612,3612,3612;, 3;3613,3613,3613;, 3;3614,3614,3614;, 3;3615,3615,3615;, 3;3616,3616,3616;, 3;3617,3617,3617;, 3;3618,3618,3618;, 3;3619,3619,3619;, 3;3620,3620,3620;, 3;3621,3621,3621;, 3;3622,3622,3622;, 3;3623,3623,3623;, 3;3624,3624,3624;, 3;3625,3625,3625;, 3;3626,3626,3626;, 3;3627,3627,3627;, 3;3628,3628,3628;, 3;3629,3629,3629;, 3;3630,3630,3630;, 3;3631,3631,3631;, 3;3632,3632,3632;, 3;3633,3633,3633;, 3;3634,3634,3634;, 3;3635,3635,3635;, 3;3636,3636,3636;, 3;3637,3637,3637;, 3;3638,3638,3638;, 3;3639,3639,3639;, 3;3640,3640,3640;, 3;3641,3641,3641;, 3;3642,3642,3642;, 3;3643,3643,3643;, 3;3644,3644,3644;, 3;3645,3645,3645;, 3;3646,3646,3646;, 3;3647,3647,3647;, 3;3648,3648,3648;, 3;3649,3649,3649;, 3;3650,3650,3650;, 3;3651,3651,3651;, 3;3652,3652,3652;, 3;3653,3653,3653;, 3;3654,3654,3654;, 3;3655,3655,3655;, 3;3656,3656,3656;, 3;3657,3657,3657;, 3;3658,3658,3658;, 3;3659,3659,3659;, 3;3660,3660,3660;, 3;3661,3661,3661;, 3;3662,3662,3662;, 3;3663,3663,3663;, 3;3664,3664,3664;, 3;3665,3665,3665;, 3;3666,3666,3666;, 3;3667,3667,3667;, 3;3668,3668,3668;, 3;3669,3669,3669;, 3;3670,3670,3670;, 3;3671,3671,3671;, 3;3672,3672,3672;, 3;3673,3673,3673;, 3;3674,3674,3674;, 3;3675,3675,3675;, 3;3676,3676,3676;, 3;3677,3677,3677;, 3;3678,3678,3678;, 3;3679,3679,3679;, 3;3680,3680,3680;, 3;3681,3681,3681;, 3;3682,3682,3682;, 3;3683,3683,3683;, 3;3684,3684,3684;, 3;3685,3685,3685;, 3;3686,3686,3686;, 3;3687,3687,3687;, 3;3688,3688,3688;, 3;3689,3689,3689;, 3;3690,3690,3690;, 3;3691,3691,3691;, 3;3692,3692,3692;, 3;3693,3693,3693;, 3;3694,3694,3694;, 3;3695,3695,3695;, 3;3696,3696,3696;, 3;3697,3697,3697;, 3;3698,3698,3698;, 3;3699,3699,3699;, 3;3700,3700,3700;, 3;3701,3701,3701;, 3;3702,3702,3702;, 3;3703,3703,3703;, 3;3704,3704,3704;, 3;3705,3705,3705;, 3;3706,3706,3706;, 3;3707,3707,3707;, 3;3708,3708,3708;, 3;3709,3709,3709;, 3;3710,3710,3710;, 3;3711,3711,3711;, 3;3712,3712,3712;, 3;3713,3713,3713;, 3;3714,3714,3714;, 3;3715,3715,3715;, 3;3716,3716,3716;, 3;3717,3717,3717;, 3;3718,3718,3718;, 3;3719,3719,3719;, 3;3720,3720,3720;, 3;3721,3721,3721;, 3;3722,3722,3722;, 3;3723,3723,3723;, 3;3724,3724,3724;, 3;3725,3725,3725;, 3;3726,3726,3726;, 3;3727,3727,3727;, 3;3728,3728,3728;, 3;3729,3729,3729;, 3;3730,3730,3730;, 3;3731,3731,3731;, 3;3732,3732,3732;, 3;3733,3733,3733;, 3;3734,3734,3734;, 3;3735,3735,3735;, 3;3736,3736,3736;, 3;3737,3737,3737;, 3;3738,3738,3738;, 3;3739,3739,3739;, 3;3740,3740,3740;, 3;3741,3741,3741;, 3;3742,3742,3742;, 3;3743,3743,3743;, 3;3744,3744,3744;, 3;3745,3745,3745;, 3;3746,3746,3746;, 3;3747,3747,3747;, 3;3748,3748,3748;, 3;3749,3749,3749;, 3;3750,3750,3750;, 3;3751,3751,3751;, 3;3752,3752,3752;, 3;3753,3753,3753;, 3;3754,3754,3754;, 3;3755,3755,3755;, 3;3756,3756,3756;, 3;3757,3757,3757;, 3;3758,3758,3758;, 3;3759,3759,3759;, 3;3760,3760,3760;, 3;3761,3761,3761;, 3;3762,3762,3762;, 3;3763,3763,3763;, 3;3764,3764,3764;, 3;3765,3765,3765;, 3;3766,3766,3766;, 3;3767,3767,3767;, 3;3768,3768,3768;, 3;3769,3769,3769;, 3;3770,3770,3770;, 3;3771,3771,3771;, 3;3772,3772,3772;, 3;3773,3773,3773;, 3;3774,3774,3774;, 3;3775,3775,3775;, 3;3776,3776,3776;, 3;3777,3777,3777;, 3;3778,3778,3778;, 3;3779,3779,3779;, 3;3780,3780,3780;, 3;3781,3781,3781;, 3;3782,3782,3782;, 3;3783,3783,3783;, 3;3784,3784,3784;, 3;3785,3785,3785;, 3;3786,3786,3786;, 3;3787,3787,3787;, 3;3788,3788,3788;, 3;3789,3789,3789;, 3;3790,3790,3790;, 3;3791,3791,3791;, 3;3792,3792,3792;, 3;3793,3793,3793;, 3;3794,3794,3794;, 3;3795,3795,3795;, 3;3796,3796,3796;, 3;3797,3797,3797;, 3;3798,3798,3798;, 3;3799,3799,3799;, 3;3800,3800,3800;, 3;3801,3801,3801;, 3;3802,3802,3802;, 3;3803,3803,3803;, 3;3804,3804,3804;, 3;3805,3805,3805;, 3;3806,3806,3806;, 3;3807,3807,3807;, 3;3808,3808,3808;, 3;3809,3809,3809;, 3;3810,3810,3810;, 3;3811,3811,3811;, 3;3812,3812,3812;, 3;3813,3813,3813;, 3;3814,3814,3814;, 3;3815,3815,3815;, 3;3816,3816,3816;, 3;3817,3817,3817;, 3;3818,3818,3818;, 3;3819,3819,3819;, 3;3820,3820,3820;, 3;3821,3821,3821;, 3;3822,3822,3822;, 3;3823,3823,3823;, 3;3824,3824,3824;, 3;3825,3825,3825;, 3;3826,3826,3826;, 3;3827,3827,3827;, 3;3828,3828,3828;, 3;3829,3829,3829;, 3;3830,3830,3830;, 3;3831,3831,3831;, 3;3832,3832,3832;, 3;3833,3833,3833;, 3;3834,3834,3834;, 3;3835,3835,3835;, 3;3836,3836,3836;, 3;3837,3837,3837;, 3;3838,3838,3838;, 3;3839,3839,3839;, 3;3840,3840,3840;, 3;3841,3841,3841;, 3;3842,3842,3842;, 3;3843,3843,3843;, 3;3844,3844,3844;, 3;3845,3845,3845;, 3;3846,3846,3846;, 3;3847,3847,3847;, 3;3848,3848,3848;, 3;3849,3849,3849;, 3;3850,3850,3850;, 3;3851,3851,3851;, 3;3852,3852,3852;, 3;3853,3853,3853;, 3;3854,3854,3854;, 3;3855,3855,3855;, 3;3856,3856,3856;, 3;3857,3857,3857;, 3;3858,3858,3858;, 3;3859,3859,3859;, 3;3860,3860,3860;, 3;3861,3861,3861;, 3;3862,3862,3862;, 3;3863,3863,3863;, 3;3864,3864,3864;, 3;3865,3865,3865;, 3;3866,3866,3866;, 3;3867,3867,3867;, 3;3868,3868,3868;, 3;3869,3869,3869;, 3;3870,3870,3870;, 3;3871,3871,3871;, 3;3872,3872,3872;, 3;3873,3873,3873;, 3;3874,3874,3874;, 3;3875,3875,3875;, 3;3876,3876,3876;, 3;3877,3877,3877;, 3;3878,3878,3878;, 3;3879,3879,3879;, 3;3880,3880,3880;, 3;3881,3881,3881;, 3;3882,3882,3882;, 3;3883,3883,3883;, 3;3884,3884,3884;, 3;3885,3885,3885;, 3;3886,3886,3886;, 3;3887,3887,3887;, 3;3888,3888,3888;, 3;3889,3889,3889;, 3;3890,3890,3890;, 3;3891,3891,3891;, 3;3892,3892,3892;, 3;3893,3893,3893;, 3;3894,3894,3894;, 3;3895,3895,3895;, 3;3896,3896,3896;, 3;3897,3897,3897;, 3;3898,3898,3898;, 3;3899,3899,3899;, 3;3900,3900,3900;, 3;3901,3901,3901;, 3;3902,3902,3902;, 3;3903,3903,3903;, 3;3904,3904,3904;, 3;3905,3905,3905;, 3;3906,3906,3906;, 3;3907,3907,3907;, 3;3908,3908,3908;, 3;3909,3909,3909;, 3;3910,3910,3910;, 3;3911,3911,3911;, 3;3912,3912,3912;, 3;3913,3913,3913;, 3;3914,3914,3914;, 3;3915,3915,3915;, 3;3916,3916,3916;, 3;3917,3917,3917;, 3;3918,3918,3918;, 3;3919,3919,3919;, 3;3920,3920,3920;, 3;3921,3921,3921;, 3;3922,3922,3922;, 3;3923,3923,3923;, 3;3924,3924,3924;, 3;3925,3925,3925;, 3;3926,3926,3926;, 3;3927,3927,3927;, 3;3928,3928,3928;, 3;3929,3929,3929;, 3;3930,3930,3930;, 3;3931,3931,3931;, 3;3932,3932,3932;, 3;3933,3933,3933;, 3;3934,3934,3934;, 3;3935,3935,3935;, 3;3936,3936,3936;, 3;3937,3937,3937;, 3;3938,3938,3938;, 3;3939,3939,3939;, 3;3940,3940,3940;, 3;3941,3941,3941;, 3;3942,3942,3942;, 3;3943,3943,3943;, 3;3944,3944,3944;, 3;3945,3945,3945;, 3;3946,3946,3946;, 3;3947,3947,3947;, 3;3948,3948,3948;, 3;3949,3949,3949;, 3;3950,3950,3950;, 3;3951,3951,3951;, 3;3952,3952,3952;, 3;3953,3953,3953;, 3;3954,3954,3954;, 3;3955,3955,3955;, 3;3956,3956,3956;, 3;3957,3957,3957;, 3;3958,3958,3958;, 3;3959,3959,3959;, 3;3960,3960,3960;, 3;3961,3961,3961;, 3;3962,3962,3962;, 3;3963,3963,3963;, 3;3964,3964,3964;, 3;3965,3965,3965;, 3;3966,3966,3966;, 3;3967,3967,3967;, 3;3968,3968,3968;, 3;3969,3969,3969;, 3;3970,3970,3970;, 3;3971,3971,3971;, 3;3972,3972,3972;, 3;3973,3973,3973;, 3;3974,3974,3974;, 3;3975,3975,3975;, 3;3976,3976,3976;, 3;3977,3977,3977;, 3;3978,3978,3978;, 3;3979,3979,3979;, 3;3980,3980,3980;, 3;3981,3981,3981;, 3;3982,3982,3982;, 3;3983,3983,3983;, 3;3984,3984,3984;, 3;3985,3985,3985;, 3;3986,3986,3986;, 3;3987,3987,3987;, 3;3988,3988,3988;, 3;3989,3989,3989;, 3;3990,3990,3990;, 3;3991,3991,3991;, 3;3992,3992,3992;, 3;3993,3993,3993;, 3;3994,3994,3994;, 3;3995,3995,3995;, 3;3996,3996,3996;, 3;3997,3997,3997;, 3;3998,3998,3998;, 3;3999,3999,3999;, 3;4000,4000,4000;, 3;4001,4001,4001;, 3;4002,4002,4002;, 3;4003,4003,4003;, 3;4004,4004,4004;, 3;4005,4005,4005;, 3;4006,4006,4006;, 3;4007,4007,4007;, 3;4008,4008,4008;, 3;4009,4009,4009;, 3;4010,4010,4010;, 3;4011,4011,4011;, 3;4012,4012,4012;, 3;4013,4013,4013;, 3;4014,4014,4014;, 3;4015,4015,4015;, 3;4016,4016,4016;, 3;4017,4017,4017;, 3;4018,4018,4018;, 3;4019,4019,4019;, 3;4020,4020,4020;, 3;4021,4021,4021;, 3;4022,4022,4022;, 3;4023,4023,4023;, 3;4024,4024,4024;, 3;4025,4025,4025;, 3;4026,4026,4026;, 3;4027,4027,4027;, 3;4028,4028,4028;, 3;4029,4029,4029;, 3;4030,4030,4030;, 3;4031,4031,4031;, 3;4032,4032,4032;, 3;4033,4033,4033;, 3;4034,4034,4034;, 3;4035,4035,4035;, 3;4036,4036,4036;, 3;4037,4037,4037;, 3;4038,4038,4038;, 3;4039,4039,4039;, 3;4040,4040,4040;, 3;4041,4041,4041;, 3;4042,4042,4042;, 3;4043,4043,4043;, 3;4044,4044,4044;, 3;4045,4045,4045;, 3;4046,4046,4046;, 3;4047,4047,4047;, 3;4048,4048,4048;, 3;4049,4049,4049;, 3;4050,4050,4050;, 3;4051,4051,4051;, 3;4052,4052,4052;, 3;4053,4053,4053;, 3;4054,4054,4054;, 3;4055,4055,4055;, 3;4056,4056,4056;, 3;4057,4057,4057;, 3;4058,4058,4058;, 3;4059,4059,4059;, 3;4060,4060,4060;, 3;4061,4061,4061;, 3;4062,4062,4062;, 3;4063,4063,4063;, 3;4064,4064,4064;, 3;4065,4065,4065;, 3;4066,4066,4066;, 3;4067,4067,4067;, 3;4068,4068,4068;, 3;4069,4069,4069;, 3;4070,4070,4070;, 3;4071,4071,4071;, 3;4072,4072,4072;, 3;4073,4073,4073;, 3;4074,4074,4074;, 3;4075,4075,4075;, 3;4076,4076,4076;, 3;4077,4077,4077;, 3;4078,4078,4078;, 3;4079,4079,4079;, 3;4080,4080,4080;, 3;4081,4081,4081;, 3;4082,4082,4082;, 3;4083,4083,4083;, 3;4084,4084,4084;, 3;4085,4085,4085;, 3;4086,4086,4086;, 3;4087,4087,4087;, 3;4088,4088,4088;, 3;4089,4089,4089;, 3;4090,4090,4090;, 3;4091,4091,4091;, 3;4092,4092,4092;, 3;4093,4093,4093;, 3;4094,4094,4094;, 3;4095,4095,4095;, 3;4096,4096,4096;, 3;4097,4097,4097;, 3;4098,4098,4098;, 3;4099,4099,4099;, 3;4100,4100,4100;, 3;4101,4101,4101;, 3;4102,4102,4102;, 3;4103,4103,4103;, 3;4104,4104,4104;, 3;4105,4105,4105;, 3;4106,4106,4106;, 3;4107,4107,4107;, 3;4108,4108,4108;, 3;4109,4109,4109;, 3;4110,4110,4110;, 3;4111,4111,4111;, 3;4112,4112,4112;, 3;4113,4113,4113;, 3;4114,4114,4114;, 3;4115,4115,4115;, 3;4116,4116,4116;, 3;4117,4117,4117;, 3;4118,4118,4118;, 3;4119,4119,4119;, 3;4120,4120,4120;, 3;4121,4121,4121;, 3;4122,4122,4122;, 3;4123,4123,4123;, 3;4124,4124,4124;, 3;4125,4125,4125;, 3;4126,4126,4126;, 3;4127,4127,4127;, 3;4128,4128,4128;, 3;4129,4129,4129;, 3;4130,4130,4130;, 3;4131,4131,4131;, 3;4132,4132,4132;, 3;4133,4133,4133;, 3;4134,4134,4134;, 3;4135,4135,4135;, 3;4136,4136,4136;, 3;4137,4137,4137;, 3;4138,4138,4138;, 3;4139,4139,4139;, 3;4140,4140,4140;, 3;4141,4141,4141;, 3;4142,4142,4142;, 3;4143,4143,4143;, 3;4144,4144,4144;, 3;4145,4145,4145;, 3;4146,4146,4146;, 3;4147,4147,4147;, 3;4148,4148,4148;, 3;4149,4149,4149;, 3;4150,4150,4150;, 3;4151,4151,4151;, 3;4152,4152,4152;, 3;4153,4153,4153;, 3;4154,4154,4154;, 3;4155,4155,4155;, 3;4156,4156,4156;, 3;4157,4157,4157;, 3;4158,4158,4158;, 3;4159,4159,4159;, 3;4160,4160,4160;, 3;4161,4161,4161;, 3;4162,4162,4162;, 3;4163,4163,4163;, 3;4164,4164,4164;, 3;4165,4165,4165;, 3;4166,4166,4166;, 3;4167,4167,4167;, 3;4168,4168,4168;, 3;4169,4169,4169;, 3;4170,4170,4170;, 3;4171,4171,4171;, 3;4172,4172,4172;, 3;4173,4173,4173;, 3;4174,4174,4174;, 3;4175,4175,4175;, 3;4176,4176,4176;, 3;4177,4177,4177;, 3;4178,4178,4178;, 3;4179,4179,4179;, 3;4180,4180,4180;, 3;4181,4181,4181;, 3;4182,4182,4182;, 3;4183,4183,4183;, 3;4184,4184,4184;, 3;4185,4185,4185;, 3;4186,4186,4186;, 3;4187,4187,4187;, 3;4188,4188,4188;, 3;4189,4189,4189;, 3;4190,4190,4190;, 3;4191,4191,4191;, 3;4192,4192,4192;, 3;4193,4193,4193;, 3;4194,4194,4194;, 3;4195,4195,4195;, 3;4196,4196,4196;, 3;4197,4197,4197;, 3;4198,4198,4198;, 3;4199,4199,4199;, 3;4200,4200,4200;, 3;4201,4201,4201;, 3;4202,4202,4202;, 3;4203,4203,4203;, 3;4204,4204,4204;, 3;4205,4205,4205;, 3;4206,4206,4206;, 3;4207,4207,4207;, 3;4208,4208,4208;, 3;4209,4209,4209;, 3;4210,4210,4210;, 3;4211,4211,4211;, 3;4212,4212,4212;, 3;4213,4213,4213;, 3;4214,4214,4214;, 3;4215,4215,4215;, 3;4216,4216,4216;, 3;4217,4217,4217;, 3;4218,4218,4218;, 3;4219,4219,4219;, 3;4220,4220,4220;, 3;4221,4221,4221;, 3;4222,4222,4222;, 3;4223,4223,4223;, 3;4224,4224,4224;, 3;4225,4225,4225;, 3;4226,4226,4226;, 3;4227,4227,4227;, 3;4228,4228,4228;, 3;4229,4229,4229;, 3;4230,4230,4230;, 3;4231,4231,4231;, 3;4232,4232,4232;, 3;4233,4233,4233;, 3;4234,4234,4234;, 3;4235,4235,4235;, 3;4236,4236,4236;, 3;4237,4237,4237;, 3;4238,4238,4238;, 3;4239,4239,4239;, 3;4240,4240,4240;, 3;4241,4241,4241;, 3;4242,4242,4242;, 3;4243,4243,4243;, 3;4244,4244,4244;, 3;4245,4245,4245;, 3;4246,4246,4246;, 3;4247,4247,4247;, 3;4248,4248,4248;, 3;4249,4249,4249;, 3;4250,4250,4250;, 3;4251,4251,4251;, 3;4252,4252,4252;, 3;4253,4253,4253;, 3;4254,4254,4254;, 3;4255,4255,4255;, 3;4256,4256,4256;, 3;4257,4257,4257;, 3;4258,4258,4258;, 3;4259,4259,4259;, 3;4260,4260,4260;, 3;4261,4261,4261;, 3;4262,4262,4262;, 3;4263,4263,4263;, 3;4264,4264,4264;, 3;4265,4265,4265;, 3;4266,4266,4266;, 3;4267,4267,4267;, 3;4268,4268,4268;, 3;4269,4269,4269;, 3;4270,4270,4270;, 3;4271,4271,4271;, 3;4272,4272,4272;, 3;4273,4273,4273;, 3;4274,4274,4274;, 3;4275,4275,4275;, 3;4276,4276,4276;, 3;4277,4277,4277;, 3;4278,4278,4278;, 3;4279,4279,4279;, 3;4280,4280,4280;, 3;4281,4281,4281;, 3;4282,4282,4282;, 3;4283,4283,4283;, 3;4284,4284,4284;, 3;4285,4285,4285;, 3;4286,4286,4286;, 3;4287,4287,4287;, 3;4288,4288,4288;, 3;4289,4289,4289;, 3;4290,4290,4290;, 3;4291,4291,4291;, 3;4292,4292,4292;, 3;4293,4293,4293;, 3;4294,4294,4294;, 3;4295,4295,4295;, 3;4296,4296,4296;, 3;4297,4297,4297;, 3;4298,4298,4298;, 3;4299,4299,4299;, 3;4300,4300,4300;, 3;4301,4301,4301;, 3;4302,4302,4302;, 3;4303,4303,4303;, 3;4304,4304,4304;, 3;4305,4305,4305;, 3;4306,4306,4306;, 3;4307,4307,4307;, 3;4308,4308,4308;, 3;4309,4309,4309;, 3;4310,4310,4310;, 3;4311,4311,4311;, 3;4312,4312,4312;, 3;4313,4313,4313;, 3;4314,4314,4314;, 3;4315,4315,4315;, 3;4316,4316,4316;, 3;4317,4317,4317;, 3;4318,4318,4318;, 3;4319,4319,4319;, 3;4320,4320,4320;, 3;4321,4321,4321;, 3;4322,4322,4322;, 3;4323,4323,4323;, 3;4324,4324,4324;, 3;4325,4325,4325;, 3;4326,4326,4326;, 3;4327,4327,4327;, 3;4328,4328,4328;, 3;4329,4329,4329;, 3;4330,4330,4330;, 3;4331,4331,4331;, 3;4332,4332,4332;, 3;4333,4333,4333;, 3;4334,4334,4334;, 3;4335,4335,4335;, 3;4336,4336,4336;, 3;4337,4337,4337;, 3;4338,4338,4338;, 3;4339,4339,4339;, 3;4340,4340,4340;, 3;4341,4341,4341;, 3;4342,4342,4342;, 3;4343,4343,4343;, 3;4344,4344,4344;, 3;4345,4345,4345;, 3;4346,4346,4346;, 3;4347,4347,4347;, 3;4348,4348,4348;, 3;4349,4349,4349;, 3;4350,4350,4350;, 3;4351,4351,4351;, 3;4352,4352,4352;, 3;4353,4353,4353;, 3;4354,4354,4354;, 3;4355,4355,4355;, 3;4356,4356,4356;, 3;4357,4357,4357;, 3;4358,4358,4358;, 3;4359,4359,4359;, 3;4360,4360,4360;, 3;4361,4361,4361;, 3;4362,4362,4362;, 3;4363,4363,4363;, 3;4364,4364,4364;, 3;4365,4365,4365;, 3;4366,4366,4366;, 3;4367,4367,4367;, 3;4368,4368,4368;, 3;4369,4369,4369;, 3;4370,4370,4370;, 3;4371,4371,4371;, 3;4372,4372,4372;, 3;4373,4373,4373;, 3;4374,4374,4374;, 3;4375,4375,4375;, 3;4376,4376,4376;, 3;4377,4377,4377;, 3;4378,4378,4378;, 3;4379,4379,4379;, 3;4380,4380,4380;, 3;4381,4381,4381;, 3;4382,4382,4382;, 3;4383,4383,4383;, 3;4384,4384,4384;, 3;4385,4385,4385;, 3;4386,4386,4386;, 3;4387,4387,4387;, 3;4388,4388,4388;, 3;4389,4389,4389;, 3;4390,4390,4390;, 3;4391,4391,4391;, 3;4392,4392,4392;, 3;4393,4393,4393;, 3;4394,4394,4394;, 3;4395,4395,4395;, 3;4396,4396,4396;, 3;4397,4397,4397;, 3;4398,4398,4398;, 3;4399,4399,4399;, 3;4400,4400,4400;, 3;4401,4401,4401;, 3;4402,4402,4402;, 3;4403,4403,4403;, 3;4404,4404,4404;, 3;4405,4405,4405;, 3;4406,4406,4406;, 3;4407,4407,4407;, 3;4408,4408,4408;, 3;4409,4409,4409;, 3;4410,4410,4410;, 3;4411,4411,4411;, 3;4412,4412,4412;, 3;4413,4413,4413;, 3;4414,4414,4414;, 3;4415,4415,4415;, 3;4416,4416,4416;, 3;4417,4417,4417;, 3;4418,4418,4418;, 3;4419,4419,4419;, 3;4420,4420,4420;, 3;4421,4421,4421;, 3;4422,4422,4422;, 3;4423,4423,4423;, 3;4424,4424,4424;, 3;4425,4425,4425;, 3;4426,4426,4426;, 3;4427,4427,4427;, 3;4428,4428,4428;, 3;4429,4429,4429;, 3;4430,4430,4430;, 3;4431,4431,4431;, 3;4432,4432,4432;, 3;4433,4433,4433;, 3;4434,4434,4434;, 3;4435,4435,4435;, 3;4436,4436,4436;, 3;4437,4437,4437;, 3;4438,4438,4438;, 3;4439,4439,4439;, 3;4440,4440,4440;, 3;4441,4441,4441;, 3;4442,4442,4442;, 3;4443,4443,4443;, 3;4444,4444,4444;, 3;4445,4445,4445;, 3;4446,4446,4446;, 3;4447,4447,4447;, 3;4448,4448,4448;, 3;4449,4449,4449;, 3;4450,4450,4450;, 3;4451,4451,4451;, 3;4452,4452,4452;, 3;4453,4453,4453;, 3;4454,4454,4454;, 3;4455,4455,4455;, 3;4456,4456,4456;, 3;4457,4457,4457;, 3;4458,4458,4458;, 3;4459,4459,4459;, 3;4460,4460,4460;, 3;4461,4461,4461;, 3;4462,4462,4462;, 3;4463,4463,4463;, 3;4464,4464,4464;, 3;4465,4465,4465;, 3;4466,4466,4466;, 3;4467,4467,4467;, 3;4468,4468,4468;, 3;4469,4469,4469;, 3;4470,4470,4470;, 3;4471,4471,4471;, 3;4472,4472,4472;, 3;4473,4473,4473;, 3;4474,4474,4474;, 3;4475,4475,4475;, 3;4476,4476,4476;, 3;4477,4477,4477;, 3;4478,4478,4478;, 3;4479,4479,4479;, 3;4480,4480,4480;, 3;4481,4481,4481;, 3;4482,4482,4482;, 3;4483,4483,4483;, 3;4484,4484,4484;, 3;4485,4485,4485;, 3;4486,4486,4486;, 3;4487,4487,4487;, 3;4488,4488,4488;, 3;4489,4489,4489;, 3;4490,4490,4490;, 3;4491,4491,4491;, 3;4492,4492,4492;, 3;4493,4493,4493;, 3;4494,4494,4494;, 3;4495,4495,4495;, 3;4496,4496,4496;, 3;4497,4497,4497;, 3;4498,4498,4498;, 3;4499,4499,4499;, 3;4500,4500,4500;, 3;4501,4501,4501;, 3;4502,4502,4502;, 3;4503,4503,4503;, 3;4504,4504,4504;, 3;4505,4505,4505;, 3;4506,4506,4506;, 3;4507,4507,4507;, 3;4508,4508,4508;, 3;4509,4509,4509;, 3;4510,4510,4510;, 3;4511,4511,4511;, 3;4512,4512,4512;, 3;4513,4513,4513;, 3;4514,4514,4514;, 3;4515,4515,4515;, 3;4516,4516,4516;, 3;4517,4517,4517;, 3;4518,4518,4518;, 3;4519,4519,4519;, 3;4520,4520,4520;, 3;4521,4521,4521;, 3;4522,4522,4522;, 3;4523,4523,4523;, 3;4524,4524,4524;, 3;4525,4525,4525;, 3;4526,4526,4526;, 3;4527,4527,4527;, 3;4528,4528,4528;, 3;4529,4529,4529;, 3;4530,4530,4530;, 3;4531,4531,4531;, 3;4532,4532,4532;, 3;4533,4533,4533;, 3;4534,4534,4534;, 3;4535,4535,4535;, 3;4536,4536,4536;, 3;4537,4537,4537;, 3;4538,4538,4538;, 3;4539,4539,4539;, 3;4540,4540,4540;, 3;4541,4541,4541;, 3;4542,4542,4542;, 3;4543,4543,4543;, 3;4544,4544,4544;, 3;4545,4545,4545;, 3;4546,4546,4546;, 3;4547,4547,4547;, 3;4548,4548,4548;, 3;4549,4549,4549;, 3;4550,4550,4550;, 3;4551,4551,4551;, 3;4552,4552,4552;, 3;4553,4553,4553;, 3;4554,4554,4554;, 3;4555,4555,4555;, 3;4556,4556,4556;, 3;4557,4557,4557;, 3;4558,4558,4558;, 3;4559,4559,4559;, 3;4560,4560,4560;, 3;4561,4561,4561;, 3;4562,4562,4562;, 3;4563,4563,4563;, 3;4564,4564,4564;, 3;4565,4565,4565;, 3;4566,4566,4566;, 3;4567,4567,4567;, 3;4568,4568,4568;, 3;4569,4569,4569;, 3;4570,4570,4570;, 3;4571,4571,4571;, 3;4572,4572,4572;, 3;4573,4573,4573;, 3;4574,4574,4574;, 3;4575,4575,4575;, 3;4576,4576,4576;, 3;4577,4577,4577;, 3;4578,4578,4578;, 3;4579,4579,4579;, 3;4580,4580,4580;, 3;4581,4581,4581;, 3;4582,4582,4582;, 3;4583,4583,4583;, 3;4584,4584,4584;, 3;4585,4585,4585;, 3;4586,4586,4586;, 3;4587,4587,4587;, 3;4588,4588,4588;, 3;4589,4589,4589;, 3;4590,4590,4590;, 3;4591,4591,4591;, 3;4592,4592,4592;, 3;4593,4593,4593;, 3;4594,4594,4594;, 3;4595,4595,4595;, 3;4596,4596,4596;, 3;4597,4597,4597;, 3;4598,4598,4598;, 3;4599,4599,4599;, 3;4600,4600,4600;, 3;4601,4601,4601;, 3;4602,4602,4602;, 3;4603,4603,4603;, 3;4604,4604,4604;, 3;4605,4605,4605;, 3;4606,4606,4606;, 3;4607,4607,4607;, 3;4608,4608,4608;, 3;4609,4609,4609;, 3;4610,4610,4610;, 3;4611,4611,4611;, 3;4612,4612,4612;, 3;4613,4613,4613;, 3;4614,4614,4614;, 3;4615,4615,4615;, 3;4616,4616,4616;, 3;4617,4617,4617;, 3;4618,4618,4618;, 3;4619,4619,4619;, 3;4620,4620,4620;, 3;4621,4621,4621;, 3;4622,4622,4622;, 3;4623,4623,4623;, 3;4624,4624,4624;, 3;4625,4625,4625;, 3;4626,4626,4626;, 3;4627,4627,4627;, 3;4628,4628,4628;, 3;4629,4629,4629;, 3;4630,4630,4630;, 3;4631,4631,4631;, 3;4632,4632,4632;, 3;4633,4633,4633;, 3;4634,4634,4634;, 3;4635,4635,4635;, 3;4636,4636,4636;, 3;4637,4637,4637;, 3;4638,4638,4638;, 3;4639,4639,4639;, 3;4640,4640,4640;, 3;4641,4641,4641;, 3;4642,4642,4642;, 3;4643,4643,4643;, 3;4644,4644,4644;, 3;4645,4645,4645;, 3;4646,4646,4646;, 3;4647,4647,4647;, 3;4648,4648,4648;, 3;4649,4649,4649;, 3;4650,4650,4650;, 3;4651,4651,4651;, 3;4652,4652,4652;, 3;4653,4653,4653;, 3;4654,4654,4654;, 3;4655,4655,4655;; } // End of co_nim1 normals MeshMaterialList { // co_nim1 material list 1; 4656; 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0; Material Material_2 { 0.156790; 0.156790; 0.156790; 1.000000;; 96.078431; 0.000000; 0.000000; 0.000000;; 0.000000; 0.000000; 0.000000;; } } // End of co_nim1 material list } // End of co_nim1 mesh } // End of co_nim1 } // End of Root ================================================ FILE: pyhamilton/library/STAR Tools/tipsupport.ctr ================================================ HxCfgFile,3; ConfigIsValid,Y; DataDef,CONTAINER,3,default, { 1.DX, "0", 1.DY, "0", 1.DZ, "6.8", 1.EqnOfVol, "h*36.3168", 1.Max, "60", 1.Min, "52", 1.Shape, "0", 2.DX, "6.8", 2.DY, "0.4", 2.DZ, "0", 2.EqnOfVol, "h*12.8596", 2.Max, "52", 2.Min, "0", 2.Shape, "3", Barcode.Unique, "0", Barcode.Value, "", BaseMM, "0", CategoryCnt, "0", Clearance, "69", Depth, "60", Description, "", Dim.Dx, "6.8", Dim.Dy, "6.8", Dim.Dz, "0", LS, "1", LSHt, "60", MaxDepth, "52", Segments, "2", Shape, "0", TchBase, "0", TchOff, "0", UseBndry, "0", ViewName, "", Visible, "0" }; DataDef,HxPars,3,AuditTrailData, [ ")" ]; * $$author=Bare_B$$valid=0$$time=2020-03-23 18:10$$checksum=30fe826c$$length=082$$ ================================================ FILE: pyhamilton/library/SchedulingDev/HSLAppsLib.hsl ================================================ //*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\ //*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\ //*\\ This library is a summary of the popular steps in many of the common libraries //*\\ Compiled by Scott Walton, Applications Specialist, Hamilton Company //*\\ Version 1.1 , Jan 2013 //*\\ //*\\ Version1.2 - Jan 29th, 2013, - 1. enabled use of integers for site IDs, //*\\ 2. moved the strConvertToString and strConvertToString //*\\ to beginning of list to use these functions in other //*\\ functions //*\\ 3. Added the CopySeq function //*\\ 4. Added the AlphaNumConversion function //*\\ //*\\ Version1.3 - Aug 27th, 2013, - 1. Added the MultiDisp setup function //*\\ 2. Fixed typo error in StringFind help file, 0 returned when not found //*\\ 3. Removed the string library from the get serial number step //*\\ 4. SequenceAdd - added a validation on the positionId input //*\\ 5. In the trace array step, arrays of different sizes will be traced out separately //*\\ 6. ArrayLookup - Changed to: if data types are different, they won't be compared //*\\ 7. SequenceGetRemainingPositions changed && to || //*\\ //*\\ Version1.4 - Jan 2014 - 1. Added the ifndef then define the string library. //*\\ //*\\ Version1.5 - Aug 2014 - 1. Added ReleaseObject() to ConvertToXLSX and XLS //*\\ 2. Added function SequenceGetLabwareIds //*\\ //*\\ //*\\ //*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\ //*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\//*\\ #ifndef __HSLAppsLib_hsl__ #define __HSLAppsLib_hsl__ 1 #ifndef __HSLStrLib_hsl__ #include "HSLStrLib.hsl" #endif #ifndef __HSLLabwareStateLib_hsl__ #include "HSLLabwareStateLib.hsl" #endif #ifndef __HSLDeckVisualize_hsl__ #include "HSLDeckVisualize.hsl" #endif namespace APPSLIB { ////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////// //LIBRARY FUNCTIONS // Function Looks up a value within an array (position is 1 based), returns hslTrue if found - else hslFalse function ArrayLookup(variable& arrayToSearch[], variable& valueSearchedFor, variable& positionInArray) variable {private variable returnValue(hslFalse), loopNum, value; for(loopNum=0 ; loopNum < arrayToSearch.GetSize() ; loopNum++) {value = arrayToSearch[loopNum]; if (GetType(value) == GetType(valueSearchedFor)) {if (value == valueSearchedFor) //Value was found {positionInArray = loopNum + 1; // value returned is 1 based returnValue = hslTrue; break; } } } return(returnValue); } // Function converts an integer or a float to to the corresponding string function StrConvertToString(variable& floatOrInteger) string {private variable varType; private string returnValue; varType = GetType(floatOrInteger); if (varType == "f") returnValue = FStr(floatOrInteger); else if (varType == "i") returnValue = IStr(floatOrInteger); else returnValue = floatOrInteger; return(returnValue); } // Function converts a string into the float or integer value, depending on whether a "." is found function StrConvertToNumber(string& stringVariable) variable {private variable returnValue, varType, isFound; varType = GetType(stringVariable); if (varType == "s") {isFound = stringVariable.Find("."); if (isFound == -1) // stringVariable should be an integer returnValue = IVal(stringVariable); else // stringVariable should be a float returnValue = FVal(stringVariable); } else returnValue = stringVariable; return(returnValue); } // Function returns a string channel pattern - e.g. if tipUsed is 3, return "00100000", number of channels returned from dev library function ChannelPatternSingleTip(device& deviceObj, variable& tipUsed) variable {private string str_channelPattern; private variable loopNumber(1), numberOfChannels; numberOfChannels = deviceObj.GetCfgValueWithKey(1); if (GetType(tipUsed) == "s") tipUsed = IVal(tipUsed); loop (numberOfChannels) {if (tipUsed == loopNumber) str_channelPattern = str_channelPattern + "1"; else str_channelPattern = str_channelPattern + "0"; loopNumber++; } Trace("Channel Pattern - Tip Used: ", tipUsed, ", number of channels: ", numberOfChannels, ", pattern returned: ", str_channelPattern); return(str_channelPattern); } // Function returns a string channel pattern - e.g. if tipsUsed is 3, return "11100000", number of channels reuturned from dev library function ChannelPatternMultipleTip(device& deviceObj, variable& tipsUsed) variable {private string str_channelPattern; private variable loopNumber(1), numberOfChannels; numberOfChannels = deviceObj.GetCfgValueWithKey(1); if (GetType(tipsUsed) == "s") tipsUsed = IVal(tipsUsed); loop (numberOfChannels) {if (loopNumber <= tipsUsed) str_channelPattern = str_channelPattern + "1"; else str_channelPattern = str_channelPattern + "0"; loopNumber++; } Trace("Channel Pattern - Tips Used: ", tipsUsed, ", number of channels: ", numberOfChannels, ", pattern returned: ", str_channelPattern); return(str_channelPattern); } // Function updates the loaded labware on the deck function UpdateLoadedLabware(device& deviceObj, variable labwareIDs[], variable labwareStates[]) void {private variable description(""); DeckVisualize::UpdateLoadedLabware(deviceObj, labwareIDs, labwareStates, description); } // Function Adds Labware to the deck based upon defined coordinates function DevAddLabware(device& deviceObj, variable& labwareId, variable& configFile, variable xCoord, variable yCoord, variable zCoord, variable angle) variable {private variable returnValue(0); private variable position[](4); position[0] = xCoord; position[1] = yCoord; position[2] = zCoord; position[3] = angle; returnValue = deviceObj.AddLabware(labwareId, configFile, position); return(returnValue); } // Function adds labware to a specific site on a template function DevAddLabwareToTemplate(device& deviceObj, variable& labwareId, variable& configFile, variable& templateId, variable& siteId) variable {private variable returnValue(0); private string str_siteId; if (GetType(siteId) != "s") str_siteId = APPSLIB::StrConvertToString(siteId); else str_siteId = siteId; returnValue = deviceObj.AddLabwareToTemplate(labwareId, configFile, templateId, str_siteId); return(returnValue); } // Function removes labware from the deck function DevRemoveLabware(device& deviceObj, variable& labwareId) variable {private variable returnValue(0); returnValue = deviceObj.RemoveLabware(labwareId); return(returnValue); } // Function Gets the position of labware, position defined by the deck coordinates function DevGetLabwarePosition(device& deviceObj, variable& labwareId, variable& xCoord, variable& yCoord, variable& zCoord, variable& angle) variable {private variable returnValue(0); private variable position[]; returnValue = deviceObj.GetLabwarePosition(labwareId, position); xCoord = position[0]; yCoord = position[1]; zCoord = position[2]; angle = position[3]; return(returnValue); } // Function Gets the position of labware's position ID, position defined by the deck coordinates function DevGetLabwarePositionEx(device& deviceObj, variable& labwareId, variable& positionId, variable& xCoord, variable& yCoord, variable& zCoord, variable& angle)variable {private variable returnValue(0), str_pos; private variable position[]; if (GetType(positionId) != "s") {if (GetType(positionId) == "f") str_pos = FStr(positionId); else str_pos = IStr(positionId); } else str_pos = positionId; returnValue = deviceObj.GetLabwarePosition(labwareId, position, str_pos); xCoord = position[0]; yCoord = position[1]; zCoord = position[2]; angle = position[3]; return(returnValue); } // Function gets a barcode that has been set by a scanner or SetLabwareBarcode smart step (data handling step) // Returns the labware barcode at the current position of a sequence, uses HSLLabwareStateLibImpl.hs_ included function GetLabwareBarcode(device& deviceObj, sequence& Sequence, variable& labwareLevel) variable {private variable barcode; barcode = HSLLabwState::GetLabwareBarcode(deviceObj, Sequence, labwareLevel); return (barcode); } // Function rounds the float to the specified number of of digits passed the decimal place. Zero returns integers function MathRound(variable& number, variable& numberOfDecimalPlaces) variable {private variable integerPortion(0.0); private variable fractionalPortion(0.0); private variable returnValue(0.0); integerPortion = Floor(number, hslTrue); fractionalPortion = number - integerPortion; returnValue = integerPortion + Floor((10.0^numberOfDecimalPlaces) * fractionalPortion + 0.5) / (10.0^numberOfDecimalPlaces); if (0 == numberOfDecimalPlaces) return(Floor(returnValue)); else return(returnValue); } // Function adds a new position to the end of the given sequence function SequenceAdd(sequence& sequenceObj, variable& labwareId, variable& positionId) void {private variable str_positionId; if (GetType(positionId) !="s") {str_positionId = APPSLIB::StrConvertToString(positionId); } else {str_positionId = positionId; } sequenceObj.Add(labwareId, str_positionId); } // Function brings a visual dialogs to graphically edit a sequence function SequenceEdit(sequence& seqObject,device deviceObj,variable title,variable prompt,variable timeout,variable initFromConfig, variable first, variable last, variable editable, variable cfgFile) void {seqObject.Edit(deviceObj, title, prompt, timeout, initFromConfig, first, last, editable, cfgFile); } // Function gets the labware ID of the current position of the sequence function SequenceGetLabwareId(sequence& seqObject) variable {private variable returnValue; returnValue = seqObject.GetLabwareId(); return(returnValue); } // Function will get the list of all the unique labware IDs within a sequence, // will return positions only between the start and end position of the sequence function SequenceGetLabwareIds(sequence& seqObject, variable& arrLabwareIds[]) variable {private variable i; private variable labID; private variable isFound; private variable arrayPosition; private variable currentPosition; private variable loopsTotal; currentPosition = seqObject.GetCurrentPosition(); arrLabwareIds.SetSize(0); loopsTotal = (seqObject.GetCount() - currentPosition) + 1; if (loopsTotal < 1) {Trace("APPSLIB User Error SequenceGetLabwareIds: The sequence end position is less than the start position."); return(1); } for (i = 0 ; i < loopsTotal ; i++) {labID = seqObject.GetLabwareId(); isFound = ArrayLookup(arrLabwareIds, labID, arrayPosition); if (isFound == 0) arrLabwareIds.AddAsLast(labID); seqObject.Increment(1); } seqObject.SetCurrentPosition(currentPosition); return(0); } // Function gets the position ID of the current position of the sequence function SequenceGetPositionId(sequence& seqObject) variable {private variable returnValue; returnValue = seqObject.GetPositionId(); return(returnValue); } // Function copies a plate pattern function CopyPlatePatternToPlate (sequence sourcePlate, sequence& targetPlate) void {private variable labwareId, position, total, loopNum; sourcePlate.SetCurrentPosition(1); targetPlate.SetCurrentPosition(1); labwareId = targetPlate.GetLabwareId(); //Remove All positions from the targetPlate sequence total = targetPlate.GetTotal(); targetPlate.SetCount(total); targetPlate.SetCurrentPosition(1); for (position = total; 0 < position; position--) targetPlate.RemoveAt(position); targetPlate.SetCount(0); targetPlate.SetCurrentPosition(0); targetPlate.SetMax(0); // loop over the source sequence and copy the positions to the target plate sequence for (loopNum=1 ; loopNum <= sourcePlate.GetTotal() ; loopNum++) {targetPlate.Add(labwareId, targetPlate.GetPositionId()); sourcePlate.Increment(1); } targetPlate.SetCurrentPosition(1); } // Function gets the total positions in the sequence function SequenceGetTotal(sequence& seqObject) variable {private variable returnValue; returnValue = seqObject.GetTotal(); return(returnValue); } // Function gets the number of positions in the sequence, if an end position is set // that is before the last position, then this number will be less the the GetTotal number of positions function SequenceGetCount(sequence& seqObject) variable {private variable returnValue; returnValue = seqObject.GetCount(); return(returnValue); } // Function gets the remaining positions left in the sequence function SequenceTotalPosRemaining(sequence& seqObject) variable {private variable returnValue; if ((seqObject.GetCount() == 0) || (seqObject.GetCurrentPosition() == 0)) // no positions in the sequence returnValue = 0; else returnValue = (seqObject.GetCount() - seqObject.GetCurrentPosition()) + 1; return(returnValue); } // Function increments a sequence by the amount requested function SequenceIncrement(sequence& seqObject, variable increment) void {seqObject.Increment(increment); } // Function removes all positions from a sequence, after re-adding positions to the sequence sequence must be set to 1 again or error occrus function SequenceRemoveAll(sequence& seqObject) void {private variable position, total; total = seqObject.GetTotal(); seqObject.SetCount(total); seqObject.SetCurrentPosition(1); for (position = total; 0 < position; position--) seqObject.RemoveAt(position); seqObject.SetCount(0); seqObject.SetCurrentPosition(0); seqObject.SetMax(0); } // Function removes a sequence position at the requested position function SequenceRemoveAt(sequence& seqObject, position) void {variable int; if (GetType(position) == "f") {int = APPSLIB::MathRound(position, 0); seqObject.RemoveAt(int); } else if (GetType(position) == "s") seqObject.RemoveAt(IVal(position)); else seqObject.RemoveAt(position); } // Function overwrites a target sequence with the contents of the source sequence function SequenceCopySeq(sequence& targetSequence, sequence& sourceSequence) void { targetSequence.CopySequence(sourceSequence); } // Function concatenates the strings and returns the caoncatenated string, if non-string values are given, then convert them into strings function StrConcatenate(variable var1, variable var2, variable var3, variable var4, variable var5, variable var6, variable var7, variable var8) variable {private variable loopNum, varType, varPos; private string returnValue, str_var; private variable varArray[](8); varArray[0] = var1; varArray[1] = var2; varArray[2] = var3; varArray[3] = var4; varArray[4] = var5; varArray[5] = var6; varArray[6] = var7; varArray[7] = var8; for (loopNum=0; loopNum < varArray.GetSize(); loopNum++) {varType = GetType(varArray[loopNum]); varPos = varArray[loopNum]; if (varType == "f") {str_var = FStr(varPos); returnValue = returnValue + str_var; } else if (varType == "i") {str_var = IStr(varPos); returnValue = returnValue + str_var; } else if (varType == "s") returnValue = returnValue + varPos; } return(returnValue); } // Function Finds a substring within a string, returnValue is 1 based function StringFind(variable& strObject, variable& subStrToFind) variable {private variable returnValue; private string str_strObject, str_subStrToFind; if (GetType(strObject) !="s") str_strObject = APPSLIB::StrConvertToString(strObject); else str_strObject = strObject; if (GetType(subStrToFind) !="s") str_subStrToFind = APPSLIB::StrConvertToString(subStrToFind); else str_subStrToFind = subStrToFind; returnValue = str_strObject.Find(str_subStrToFind); returnValue++; return(returnValue); } // Function returns a number leftmost characters of a string function StringLeft(variable& strObject, variable& numberOfChar) variable {private variable returnValue; private string str_strObject; if (GetType(strObject) != "s") str_strObject = APPSLIB::StrConvertToString(strObject); else str_strObject = strObject; if (GetType(numberOfChar) == "s") {numberOfChar = APPSLIB::StrConvertToNumber(numberOfChar); if (GetType(numberOfChar) == "f") numberOfChar = APPSLIB::MathRound(numberOfChar, 0); } returnValue = str_strObject.Left(numberOfChar); return(returnValue); } // Function returns a number of rightmost characters of a string function StringRight(variable& strObject, variable& numberOfChar) variable {private variable returnValue; private string str_strObject; if (GetType(strObject) != "s") str_strObject = APPSLIB::StrConvertToString(strObject); else str_strObject = strObject; if (GetType(numberOfChar) == "s") {numberOfChar = APPSLIB::StrConvertToNumber(numberOfChar); if (GetType(numberOfChar) == "f") numberOfChar = APPSLIB::MathRound(numberOfChar, 0); } returnValue = str_strObject.Right(numberOfChar); return(returnValue); } // Function returns the length of a string function StringGetLength(variable& strObject) variable {private variable returnValue; private string str_strObject; if (GetType(strObject) != "s") str_strObject = APPSLIB::StrConvertToString(strObject); else str_strObject = strObject; returnValue = str_strObject.GetLength(); return(returnValue); } // Function returns a string within a given string, position should be 1 based function StringMid(variable& strObject,variable& startPosition, variable& numberOfChar) variable {private variable returnValue; private string str_strObject; if (GetType(strObject) != "s") str_strObject = APPSLIB::StrConvertToString(strObject); else str_strObject = strObject; if (GetType(startPosition) == "s") {startPosition = APPSLIB::StrConvertToNumber(startPosition); if (GetType(startPosition) == "f") startPosition = APPSLIB::MathRound(startPosition, 0); } if (GetType(numberOfChar) == "s") {numberOfChar = APPSLIB::StrConvertToNumber(numberOfChar); if (GetType(numberOfChar) == "f") numberOfChar = APPSLIB::MathRound(numberOfChar, 0); } // Check to see if the start position and the number of characters exceeds the length of the string if ((APPSLIB::StringGetLength(str_strObject) + 1) < (startPosition + numberOfChar)) Trace("APPSLIB::StringMid Error: the requested string exceeds the length of the string."); startPosition--; returnValue = str_strObject.Mid(startPosition, numberOfChar); startPosition++; return(returnValue); } // Function will shift the labware of the current position in the sequence function MoveSequence(device& deviceObj, sequence& Sequence, variable& xDelta, variable yDelta, variable zDelta) void {private variable labID; object editLabware; object deckLayout; object labware; labID = Sequence.GetLabwareId(); deckLayout = deviceObj.GetDeckLayoutObject(); // Get a HxLabwr3 object type decklayout if(!deckLayout.IsNull()) {labware = deckLayout.Labware(labID); if(!labware.IsNull()) {labware.GetObject2("{39A3639F-97AB-444D-86D3-253122BD2202}", editLabware); // get IEditLabware5 editLabware.MoveDelta(xDelta, yDelta, zDelta); } else Trace("Warning, labware is null"); } else Trace("Warning Deck Layout is null"); } // Function will shift the labware based upon the LabwareID function MoveLabware(device& deviceObj, variable& labwareId, variable& xDelta, variable yDelta, variable zDelta) void {private variable labID; object editLabware; object deckLayout; object labware; deckLayout = deviceObj.GetDeckLayoutObject(); // Get a HxLabwr3 object type decklayout if(!deckLayout.IsNull()) {labware = deckLayout.Labware(labwareId); if(!labware.IsNull()) {labware.GetObject2("{39A3639F-97AB-444D-86D3-253122BD2202}", editLabware); // get IEditLabware5 editLabware.MoveDelta(xDelta, yDelta, zDelta); } else Trace("Warning, labware is null"); } else Trace("Warning Deck Layout is null"); } // Function will send values to the trace file function TraceValues(variable value1, variable value2, variable value3, variable value4, variable value5, variable value6, variable value7, variable value8) void {Trace(value1, value2, value3, value4, value5, value6, value7, value8); } // Function will send a sequence to the trace file function TraceSequence(sequence& seqObject) void {private variable loopNum, currentPosition; currentPosition = seqObject.GetCurrentPosition(); Trace("Trace sequence ", seqObject.GetName(), " - total positions: ", seqObject.GetTotal(), ", current position: ", currentPosition, ", end position: ", seqObject.GetCount()); for (loopNum=1 ; loopNum <= seqObject.GetTotal() ; loopNum++) {Trace("Position ", loopNum, " labwareId: ", seqObject.GetLabwareId(), " positionId: ", seqObject.GetPositionId()); seqObject.Increment(1); } seqObject.SetCurrentPosition(currentPosition); } // Function will trace out 1 array function TraceArray(variable& description, variable& array1[]) void {private variable loopNum, position; Trace("Trace array. ", description); for (loopNum=0 ; loopNum 16 || i_numberOfChannels < 1) {Trace("APPSLIB Error MultiDispSetup: The number of channels is invalid for the MultiDisp setup. Channel number entered: ", i_numberOfChannels);} else if (i_dispVolume < 0 || i_dispVolume > 5000 || i_maxAspVolume < 0 || i_maxAspVolume > 5000) {Trace("APPSLIB Error MultiDispSetup: The asp and disp volumes entered are invalid. Dispense volume entered: ", i_dispVolume, ", Max Aspirate volume entered: ", i_maxAspVolume);} else if (i_maxAspVolume < i_dispVolume) {Trace("APPSLIB Error MultiDispSetup: The i_maxAspVolume input variable must be greater than or equal to the i_dispVolume input variable."); Trace("APPSLIB Error MultiDispSetup: i_maxAspVolume: ", i_maxAspVolume, ", i_dispVolume: ", i_dispVolume); } // All input variables checked for the correct variable type and range else { o_numberOfDispenses = APPSLIB::MathRound((i_maxAspVolume / i_dispVolume), 0); fullColumns = APPSLIB::SequenceTotalPosRemaining(i_targetSeq) / i_numberOfChannels; partialColumn = APPSLIB::SequenceTotalPosRemaining(i_targetSeq) % i_numberOfChannels; if (partialColumn > 0) {columns = fullColumns + 1; } /* If the number of columns remaining in the sequence left to pipet is less than or equal to the max possible number of dispenses allowed then return the number of columns remaining as the number of dispenses. - Else leave it as the maximum */ if (columns <= o_numberOfDispenses) {o_numberOfDispenses = columns; } else {partialColumn = 0; } // subract an amount from the asp amount so that some tips don't end up with residual amounts of reagent // on the last partial column dispense o_volumeArray.SetSize(i_numberOfChannels); for (i=0 ; i < i_numberOfChannels; i++) {if ((partialColumn > 0) && (partialColumn < (8-i))) {subtractDisp = i_dispVolume; } else {subtractDisp = 0; } o_volumeArray.SetAt((i_numberOfChannels - i) - 1, (i_dispVolume * o_numberOfDispenses) - subtractDisp); } APPSLIB::TraceArray("Volume Array for multiDispense: ", o_volumeArray); } } //End the namespace } // Gets the serial number from the instrument (instrument must be initialized) function GetSerialNumber(device& ML_STAR) variable { variable command(""); // Command string variable parameter(""); // Parameter string variable serialNumber(""); // Serial number string str_serialNumber(""); variable first_char; variable rc[]; // Low level step return values // Get serial number command = "C0RI"; // Request Installation data parameter = ""; rc = ML_STAR.FirmwareCommand( "1e78330b_4cb4_456b_84d80d3b33e97e73" ); if (4 == rc.GetSize()) { str_serialNumber = rc.ElementAt(3); first_char = str_serialNumber.Find("sn"); str_serialNumber = str_serialNumber.Mid(first_char, 6); //serialNumber = StrMid(rc.ElementAt(3), StrFind(rc.ElementAt(3), "sn"), 6); } serialNumber = str_serialNumber.MakeUpper(); return(serialNumber); } #endif // $$author=walton_s$$valid=0$$time=2014-09-08 09:22$$checksum=2a469957$$length=085$$ ================================================ FILE: pyhamilton/liquid_class_db.py ================================================ from importlib import util from urllib.parse import quote_plus from sqlalchemy import create_engine, text, inspect from .defaults import defaults import struct from typing import List, Dict, Any, Optional, Tuple, Union from enum import Enum import collections import os import csv class DispenseMode(Enum): # Basic modes JET = "Jet" SURFACE = "Surface" # Part volume modes JET_PART = "Jet Part" SURFACE_PART = "Surface Part" # Empty tip modes JET_EMPTY = "Jet Empty" SURFACE_EMPTY = "Surface Empty" def to_code(self) -> int: """Convert enum to integer code for Hamilton system.""" mapping = { DispenseMode.JET: 0, DispenseMode.SURFACE: 1, DispenseMode.JET_PART: 2, DispenseMode.JET_EMPTY: 3, DispenseMode.SURFACE_PART: 4, DispenseMode.SURFACE_EMPTY: 5 } return mapping[self] @staticmethod def from_code(code: int) -> 'DispenseMode': """Convert integer code to DispenseMode enum.""" mapping = { 0: DispenseMode.JET, 1: DispenseMode.SURFACE, 2: DispenseMode.JET_PART, 3: DispenseMode.JET_EMPTY, 4: DispenseMode.SURFACE_PART, 5: DispenseMode.SURFACE_EMPTY } if code in mapping: return mapping[code] else: raise ValueError(f"Unknown DispenseMode code: {code}") @classmethod def from_string(cls, identifier: str) -> 'DispenseMode': """Convert string identifier to DispenseMode enum.""" for mode in cls: if mode.value == identifier: return mode raise ValueError(f"Unknown DispenseMode identifier: '{identifier}'. " f"Available modes: {[mode.value for mode in cls]}") def _check_access_dialect() -> None: """Raise if `sqlalchemy-access` is not installed.""" if util.find_spec("sqlalchemy_access") is None: raise ModuleNotFoundError( "SQLAlchemy Access dialect not found. " "Install with: pip install sqlalchemy-access" ) def _build_engine(mdb_path: str): """Return a SQLAlchemy Engine for a given Access .mdb/.accdb file.""" _check_access_dialect() driver = "Microsoft Access Driver (*.mdb, *.accdb)" odbc_str = f"DRIVER={{{driver}}};DBQ={mdb_path};" uri = f"access+pyodbc:///?odbc_connect={quote_plus(odbc_str)}" return create_engine(uri, future=True) def load_liquid_classes(): """ Load liquid classes from the Access database into memory for fast searching. This is called once at startup and cached. """ global LIQUID_CLASSES_CACHE try: # Get the database path from your config cfg = defaults() engine = _build_engine(cfg.liquids_database) param_columns = [ 'LiquidClassName', 'AsFlowRate', 'AsMixFlowRate', 'AsAirTransportVolume', 'AsBlowOutVolume', 'AsSwapSpeed', 'AsSettlingTime', 'AsOverAspirateVolume', 'AsClotRetractHeight', 'DsFlowRate', 'DsMixFlowRate', 'DsAirTransportVolume', 'DsBlowOutVolume', 'DsSwapSpeed', 'DsSettlingTime', 'DsStopFlowRate', 'DsStopBackVolume', 'DispenseMode', 'TipType', 'CorrectionCurve' ] select_string = ", ".join(param_columns) query = f"SELECT {select_string} FROM LiquidClass WHERE OriginalLiquid = 0" stmt = text(query) with engine.connect() as conn: result = conn.execute(stmt).fetchall() LIQUID_CLASSES_CACHE = [] for row in result: lc_data = dict(row._mapping) # Unpack the CorrectionCurve for the API response if 'CorrectionCurve' in lc_data and lc_data['CorrectionCurve']: try: unpacked_data = unpack_doubles_dynamic(lc_data['CorrectionCurve']) lc_data['CorrectionCurve'] = unpacked_data except Exception as e: print(f"Failed to unpack CorrectionCurve for {lc_data['LiquidClassName']}: {e}") lc_data['CorrectionCurve'] = None LIQUID_CLASSES_CACHE.append(lc_data) print(f"Loaded {len(LIQUID_CLASSES_CACHE)} liquid classes into cache") # Debug: Print first few liquid class names if LIQUID_CLASSES_CACHE: print("Sample liquid classes:") for i, lc in enumerate(LIQUID_CLASSES_CACHE[:5]): print(f" - {lc.get('LiquidClassName', 'Unknown')}") except Exception as e: print(f"Warning: Could not load liquid classes from database: {e}") LIQUID_CLASSES_CACHE = [] def _get_liquid_class_data(liquid_class_name: str, columns: Union[str, List[str]]): """ General helper function to query a specific liquid class for given columns. Args: liquid_class_name: The name of the liquid class to query. columns: A single column name or a list of column names to retrieve. Returns: A dictionary of the queried data. Raises: ValueError: If the liquid class is not found. """ cfg = defaults() engine = _build_engine(cfg.liquids_database) if isinstance(columns, str): columns = [columns] select_clause = ", ".join(columns) stmt = text( f"SELECT {select_clause} " "FROM LiquidClass " "WHERE LiquidClassName = :name" ) with engine.connect() as conn: row = conn.execute(stmt, {"name": liquid_class_name}).fetchone() if row is None: raise ValueError(f"No LiquidClass found: {liquid_class_name!r}") return dict(row._mapping) def check_liquid_class_exists(liquid_class_name: str) -> bool: """ Check if a liquid class name exists in the database. Args: liquid_class_name: Name of the liquid class to check Returns: bool: True if the liquid class name exists, False otherwise Raises: ModuleNotFoundError: if the Access dialect is missing sqlalchemy.exc.*: for genuine DB errors """ cfg = defaults() engine = _build_engine(cfg.liquids_database) stmt = text("SELECT COUNT(*) FROM LiquidClass WHERE LiquidClassName = :name") with engine.connect() as conn: result = conn.execute(stmt, {"name": liquid_class_name}).fetchone() return result[0] > 0 def liquid_class_has_parameter(liquid_class_name: str, parameter: str, value: Any) -> bool: """ Check if a given liquid class has a specific parameter set to a given value using the in-memory LIQUID_CLASSES_CACHE. Args: liquid_class_name: Name of the liquid class to check. parameter: Parameter/column name to check. value: Value to compare against. Returns: True if the liquid class exists in cache and the parameter matches the value, False otherwise. """ global LIQUID_CLASSES_CACHE if 'LIQUID_CLASSES_CACHE' not in globals() or not LIQUID_CLASSES_CACHE: load_liquid_classes() for lc in LIQUID_CLASSES_CACHE: if lc.get("LiquidClassName") == liquid_class_name: return lc.get(parameter) == value # Liquid class not found return False def get_liquid_class_column_details() -> List[Dict[str, Any]]: """ Returns detailed schema information for the LiquidClass table, including column names, types, and nullability. Returns: List[Dict[str, Any]]: A list of dictionaries, each describing a column. """ cfg = defaults() engine = _build_engine(cfg.liquids_database) inspector = inspect(engine) return inspector.get_columns('LiquidClass') def get_liquid_class_columns() -> List[str]: """ Return a list of all column names in the LiquidClass table. Returns: List[str]: Column names from the LiquidClass table """ return [col['name'] for col in get_liquid_class_column_details()] def get_liquid_class_columns_with_types() -> Dict[str, str]: """ Return a dictionary of column names and their data types from the LiquidClass table. Returns: Dict[str, str]: Dictionary mapping column names to their SQL data types """ return {col['name']: str(col['type']) for col in get_liquid_class_column_details()} def print_table_schema(): """ Print detailed schema information about the LiquidClass table. """ try: print("=== LiquidClass Table Schema ===") columns = get_liquid_class_columns() print(f"\nColumn Names ({len(columns)} total):") for i, col in enumerate(columns, 1): print(f" {i:2d}. {col}") print("\n=== Column Types ===") col_types = get_liquid_class_columns_with_types() for col_name, col_type in col_types.items(): print(f" {col_name:25} : {col_type}") print("\n=== Detailed Column Information ===") detailed_cols = get_liquid_class_column_details() for col in detailed_cols: nullable = "NULL" if col.get('nullable', True) else "NOT NULL" default = f", DEFAULT: {col.get('default')}" if col.get('default') else "" print(f" {col['name']:25} : {col['type']} ({nullable}{default})") except Exception as e: print(f"Error retrieving schema: {e}") def get_all_table_names() -> List[str]: """ Get all table names in the database. Returns: List[str]: All table names in the database """ cfg = defaults() engine = _build_engine(cfg.liquids_database) inspector = inspect(engine) return inspector.get_table_names() def get_liquid_class_dispense_mode(liquid_class_name: str) -> str: """ Return the DispenseMode for a given LiquidClass name. Args: liquid_class_name (str): The name of the LiquidClass. Returns: str: The DispenseMode value. Raises: ValueError: if the LiquidClass is unknown. """ data = _get_liquid_class_data(liquid_class_name, "DispenseMode") return DispenseMode.from_code(int(data["DispenseMode"])).value def get_liquid_class_volume(liquid_class_name: str, nominal=False) -> int: """ Return the maximum tip volume (µL) available for aspirating with a Hamilton LiquidClass. Uses nominal tip capacities and accounts for air transport and overaspirate. Raises: ValueError: if the LiquidClass or TipType is unknown. """ tip_type_to_volume = {3: 10, 1: 300, 23: 50, 5: 1000} data = _get_liquid_class_data( liquid_class_name, ["TipType", "AsAirTransportVolume", "AsOverAspirateVolume"] ) air_transport_volume = float(data["AsAirTransportVolume"]) overaspirate_volume = float(data["AsOverAspirateVolume"]) tip_type = int(data["TipType"]) volume = tip_type_to_volume.get(tip_type) if volume is None: raise ValueError(f"Unknown TipType {tip_type} for {liquid_class_name!r}") if nominal: return volume return int(volume - air_transport_volume - overaspirate_volume) def get_liquid_class_parameter(liquid_class_name: str, parameter_name: str): """ Return a single parameter for a given LiquidClass name. Args: liquid_class_name (str): The name of the LiquidClass. parameter_name (str): The name of the parameter (column) to retrieve. Returns: The value of the specified parameter. Raises: ValueError: if the LiquidClass is unknown. """ data = _get_liquid_class_data(liquid_class_name, parameter_name) return data[parameter_name] def create_correction_curve(data: Tuple[float, ...]) -> collections.OrderedDict: if len(data) % 2 != 0: raise ValueError("Input data must have an even number of elements.") unsorted_curve: Dict[float, float] = {} for i in range(0, len(data), 2): nominal_value = data[i] corrected_value = data[i + 1] unsorted_curve[nominal_value] = corrected_value sorted_items = sorted(unsorted_curve.items()) return collections.OrderedDict(sorted_items) def unpack_doubles_dynamic(byte_string: bytes) -> tuple: string_length = len(byte_string) if string_length % 8 != 0: raise ValueError("Byte string length is not a multiple of 8.") num_doubles = string_length // 8 format_string = f'<{num_doubles}d' return struct.unpack(format_string, byte_string) def export_liquid_classes_to_csv(directory="./liquid_class_data", filename="liquid_class_export.csv", predefined=False): """ Exports a list of liquid classes with their detailed aspirate and dispense parameters to a CSV file, sorted by aspirate flow rate, for liquid classes where OriginalLiquid is 0. Args: directory (str): The directory where the CSV will be saved. """ cfg = defaults() engine = _build_engine(cfg.liquids_database) os.makedirs(directory, exist_ok=True) csv_file_path = os.path.join(directory, filename) param_columns = [ 'LiquidClassName', 'AsFlowRate', 'AsMixFlowRate', 'AsAirTransportVolume', 'AsBlowOutVolume', 'AsSwapSpeed', 'AsSettlingTime', 'AsOverAspirateVolume', 'AsClotRetractHeight', 'DsFlowRate', 'DsMixFlowRate', 'DsAirTransportVolume', 'DsBlowOutVolume', 'DsSwapSpeed', 'DsSettlingTime', 'DsStopFlowRate', 'DsStopBackVolume', 'DispenseMode' ] select_string = ", ".join(param_columns) query = ( f"SELECT {select_string} FROM LiquidClass" + ("" if predefined else " WHERE OriginalLiquid = 0") ) stmt = text(query) with engine.connect() as conn: result = conn.execute(stmt).fetchall() if not result: print("No liquid classes found with OriginalLiquid = 0.") return liquid_classes = [] for row in result: liquid_classes.append(dict(row._mapping)) liquid_classes.sort(key=lambda x: x['AsFlowRate']) with open(csv_file_path, 'w', newline='') as csvfile: fieldnames = param_columns writer = csv.DictWriter(csvfile, fieldnames=fieldnames) writer.writeheader() writer.writerows(liquid_classes) print(f"Successfully wrote filtered liquid class parameters to {csv_file_path}") # Example usage if __name__ == "__main__": name = "Tip_50ulFilter_Water_DispenseSurface_Part" try: volume = get_liquid_class_volume(name) print(f"Volume for {name}: {volume} µL") except ValueError as e: print(e) print("\nLiquid Class Columns:") print(get_liquid_class_columns()) print("\nDispense Mode:") print(get_liquid_class_dispense_mode(name)) print("\nSingle Parameter:") try: flow_rate = get_liquid_class_parameter(name, "AsFlowRate") print(f"Aspirate Flow Rate for {name}: {flow_rate}") except ValueError as e: print(e) print("\nFull Schema:") print_table_schema() print("\nTable Names:") print(get_all_table_names()) ================================================ FILE: pyhamilton/liquid_classes.py ================================================ from enum import Enum, IntEnum import json from typing import Dict, Any, Optional, Union from .interface import (COPY_LIQ_CLASS, SET_ASP_PARAM, SET_DISP_PARAM, SET_TIP_TYPE, SET_CORR_CURVE, SET_DISP_MODE) from .resources.enums import TipType from .liquid_class_db import DispenseMode, check_liquid_class_exists, liquid_class_has_parameter, load_liquid_classes import os class AspirateParameter(Enum): FLOW_RATE = -533331950 MIX_FLOW_RATE = -533331949 AIR_TRANSPORT_VOLUME = -533331948 BLOW_OUT_VOLUME = -533331947 SWAP_SPEED = -533331946 SETTLING_TIME = -533331945 OVER_ASPIRATE_VOLUME = -533331936 CLOT_RETRACT_HEIGHT = -533331935 class DispenseParameter(Enum): FLOW_RATE = -533331950 MIX_FLOW_RATE = -533331949 AIR_TRANSPORT_VOLUME = -533331948 BLOW_OUT_VOLUME = -533331947 SWAP_SPEED = -533331946 SETTLING_TIME = -533331945 STOP_FLOW_RATE = -533331920 STOP_BACK_VOLUME = -533331919 aspirate_params_to_db = { 'FLOW_RATE': 'AsFlowRate', 'MIX_FLOW_RATE': 'AsMixFlowRate', 'AIR_TRANSPORT_VOLUME': 'AsAirTransportVolume', 'BLOW_OUT_VOLUME': 'AsBlowOutVolume', 'SWAP_SPEED': 'AsSwapSpeed', 'SETTLING_TIME': 'AsSettlingTime', 'OVER_ASPIRATE_VOLUME': 'AsOverAspirateVolume', 'CLOT_RETRACT_HEIGHT': 'AsClotRetractHeight', } dispense_params_to_db = { 'FLOW_RATE': 'DsFlowRate', 'MIX_FLOW_RATE': 'DsMixFlowRate', 'AIR_TRANSPORT_VOLUME': 'DsAirTransportVolume', 'BLOW_OUT_VOLUME': 'DsBlowOutVolume', 'SWAP_SPEED': 'DsSwapSpeed', 'SETTLING_TIME': 'DsSettlingTime', 'STOP_FLOW_RATE': 'DsStopFlowRate', 'STOP_BACK_VOLUME': 'DsStopBackVolume', } def copy_liquid_class(ham_int, template_liquid_class: str, new_liquid_class: str): """Copy an existing liquid class to create a new one.""" cid = ham_int.send_command(COPY_LIQ_CLASS, TemplateLiquidClass=template_liquid_class, NewLiquidClass=new_liquid_class) ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120) def set_aspirate_parameter(ham_int, liquid_class: str, parameter: AspirateParameter, value: Any): """Set an aspirate parameter for a liquid class using enum.""" cid = ham_int.send_command(SET_ASP_PARAM, LiquidClass=liquid_class, Parameter=parameter.value, Value=value) ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120) def set_dispense_parameter(ham_int, liquid_class: str, parameter: DispenseParameter, value: Any): """Set a dispense parameter for a liquid class using enum.""" cid = ham_int.send_command(SET_DISP_PARAM, LiquidClass=liquid_class, Parameter=parameter.value, Value=value) ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120) def set_tip_type(ham_int, liquid_class: str, tip_type: int): """Set the tip type for a liquid class.""" cid = ham_int.send_command(SET_TIP_TYPE, LiquidClass=liquid_class, TipType=tip_type) ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120) def set_dispense_mode(ham_int, liquid_class: str, dispense_mode: int): """Set the dispense mode for a liquid class.""" cid = ham_int.send_command(SET_DISP_MODE, LiquidClass=liquid_class, DispenseMode=dispense_mode) ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120) def set_correction_curve(ham_int, liquid_class: str, nominal_array: list, corrected_array: list): """Set the correction curve for a liquid class.""" cid = ham_int.send_command(SET_CORR_CURVE, LiquidClass=liquid_class, NominalArray=nominal_array, CorrectedArray=corrected_array) ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120) def validate_liquid_class_definitions(definitions: list): """ Validate the structure of a list of liquid class definitions. Args: definitions: A list of dictionaries representing liquid class definitions. Raises: ValueError: If the structure is invalid or missing required fields. """ if not isinstance(definitions, list): raise ValueError("Input must be a list of liquid class definitions.") # Required top-level keys for each liquid class definition required_top_level_keys = ["name", "aspirate", "dispense", "tip_type", "dispense_mode"] required_tip_keys = ["volume", "has_filter"] # Required aspirate and dispense parameters required_aspirate_params = [param.name for param in AspirateParameter] required_dispense_params = [param.name for param in DispenseParameter] for i, definition in enumerate(definitions): if not isinstance(definition, dict): raise ValueError(f"Definition at index {i} must be a dictionary.") for key in required_top_level_keys: if key not in definition: raise ValueError(f"Definition for liquid class '{definition.get('name', 'unknown')}' is missing the required field: '{key}'.") tip_type_info = definition["tip_type"] for key in required_tip_keys: if key not in tip_type_info: raise ValueError(f"Definition for liquid class '{definition['name']}' is missing the required tip_type field: '{key}'.") aspirate_params = definition["aspirate"] for param in required_aspirate_params: if param not in aspirate_params: raise ValueError(f"Liquid class '{definition['name']}' is missing required aspirate parameter: '{param}'.") dispense_params = definition["dispense"] for param in required_dispense_params: if param not in dispense_params: raise ValueError(f"Liquid class '{definition['name']}' is missing required dispense parameter: '{param}'.") # Validate dispense mode dispense_mode = definition["dispense_mode"] if not isinstance(dispense_mode, str): raise ValueError(f"Liquid class '{definition['name']}' dispense_mode must be a string.") try: DispenseMode.from_string(dispense_mode) except ValueError as e: raise ValueError(f"Liquid class '{definition['name']}' has invalid dispense_mode: {e}") def create_liquid_class_from_dict( ham_int, definitions: Union[list, dict] ): """ Core logic: create new liquid classes from a dict/list of definitions. Args: ham_int: Hamilton interface object definitions: List (or single dict) of liquid class definitions """ # Normalize single dict into list if isinstance(definitions, dict): definitions = [definitions] elif not isinstance(definitions, list): raise TypeError("definitions must be a dict or list of dicts") validate_liquid_class_definitions(definitions) for definition in definitions: new_liquid_class = definition["name"] if not check_liquid_class_exists(new_liquid_class): template_liquid_class = "Tip_50ulFilter_Water_DispenseSurface_Empty" # default template else: print(f"Liquid class '{new_liquid_class}' already exists. It will be overwritten.") template_liquid_class = new_liquid_class # overwrite existing parameters = { "aspirate": definition["aspirate"], "dispense": definition["dispense"] } tip_info = definition["tip_type"] dispense_mode_str = definition["dispense_mode"] correction_curve = definition.get("correction_curve") # Step 2: Copy the template liquid class copy_liquid_class(ham_int, template_liquid_class, new_liquid_class) # Step 3: Set aspirate parameters for param_name, value in parameters["aspirate"].items(): try: aspirate_param = AspirateParameter[param_name.upper()] cache_param_name = aspirate_params_to_db.get(param_name.upper()) if not liquid_class_has_parameter(new_liquid_class, cache_param_name, value): set_aspirate_parameter(ham_int, new_liquid_class, aspirate_param, value) except KeyError: print(f"Warning: Unknown aspirate parameter '{param_name}' for '{new_liquid_class}' ignored.") # Step 4: Set dispense parameters for param_name, value in parameters["dispense"].items(): try: dispense_param = DispenseParameter[param_name.upper()] cache_param_name = dispense_params_to_db.get(param_name.upper()) if not liquid_class_has_parameter(new_liquid_class, cache_param_name, value): set_dispense_parameter(ham_int, new_liquid_class, dispense_param, value) except KeyError: print(f"Warning: Unknown dispense parameter '{param_name}' for '{new_liquid_class}' ignored.") # Step 5: Determine and set the tip type volume = tip_info["volume"] has_filter = tip_info["has_filter"] selected_tip = None for tip_enum in TipType: if tip_enum.volume == volume: if has_filter == tip_enum.has_filter and not tip_enum.is_needle: selected_tip = tip_enum break if selected_tip: set_tip_type(ham_int, new_liquid_class, selected_tip.value) print(f"Set tip type to {selected_tip.name} for liquid class '{new_liquid_class}'.") else: raise ValueError(f"Could not find a suitable tip type for volume {volume} with filter={has_filter}.") # Step 6: Set dispense mode try: dispense_mode_enum = DispenseMode.from_string(dispense_mode_str) set_dispense_mode(ham_int, new_liquid_class, dispense_mode_enum.to_code()) print(f"Set dispense mode to '{dispense_mode_str}' for liquid class '{new_liquid_class}'.") except ValueError as e: raise ValueError(f"Invalid dispense mode for liquid class '{new_liquid_class}': {e}") # Step 7: Set correction curve if provided if correction_curve: if "nominal" in correction_curve and "corrected" in correction_curve: set_correction_curve( ham_int, new_liquid_class, correction_curve["nominal"], correction_curve["corrected"] ) print(f"Set correction curve for liquid class '{new_liquid_class}'.") else: raise ValueError(f"Correction curve for '{new_liquid_class}' requires both 'nominal' and 'corrected' arrays.") print(f"Successfully configured liquid class '{new_liquid_class}' from template '{template_liquid_class}'.") def create_liquid_class_from_json( ham_int, json_path: str ): """ Wrapper: load JSON from file and pass it into create_liquid_class_from_dict. Args: ham_int: Hamilton interface object json_path: Path to a JSON file containing one or more liquid class definitions """ if not os.path.isfile(json_path): raise FileNotFoundError(f"File not found: {json_path}") with open(json_path, 'r') as f: definitions = json.load(f) return create_liquid_class_from_dict(ham_int, definitions) ================================================ FILE: pyhamilton/liquid_handling_wrappers.py ================================================ # -*- coding: utf-8 -*- """ Created on Wed Mar 9 12:01:01 2022 @author: stefa """ import sys, os, time, logging, importlib from threading import Thread from .interface import HamiltonInterface from .resources.deckresource import LayoutManager, ResourceType, Plate24, Plate96, Tip96, resource_list_with_prefix, layout_item, DeckResource from .oemerr import PositionError from .interface import (INITIALIZE, PICKUP, EJECT, ASPIRATE, DISPENSE, ISWAP_GET, ISWAP_PLACE, HEPA, WASH96_EMPTY, PICKUP96, EJECT96, ASPIRATE96, DISPENSE96, ISWAP_MOVE, MOVE_SEQ, TILT_INIT, TILT_MOVE, GRIP_GET, GRIP_MOVE, GRIP_PLACE, SET_ASP_PARAM, SET_DISP_PARAM, COPY_LIQ_CLASS, SET_CORR_CURVE, SET_TIP_TYPE, SET_LABWARE_PROPERTY) from .resources.managed_resources import TrackedTips from typing import List, Tuple from .defaults import defaults from .resources.enums import TipType from .resources.managed_resources import TipSupportTracker cfg = defaults() def labware_pos_str(labware, idx): return labware.layout_name() + ', ' + labware.position_id(idx) def compound_pos_str(pos_tuples): present_pos_tups = [pt for pt in pos_tuples if pt is not None] return ';'.join((labware_pos_str(labware, idx) for labware, idx in present_pos_tups)) def compound_pos_str_96(labware96): return ';'.join((labware_pos_str(labware96, idx) for idx in range(96))) def cells_384_to_1536(well, idx): return (well%16)*2+(well//16)*64+idx%2+(idx//2)*32 def cells_96_to_384(well, idx): return well*2+idx%2+(idx//2)*16+16*(well//8) def wells_384_to_96(x): plate = x%2 + 2*((x//16)%2) well = x//2 - (x//16)*8 + (x//32)*8 return plate, well def get_cells_from_position_384(well): return [cells_384_to_1536(well, i) for i in range(4)] def get_cells_from_position_96(well): return [cells_96_to_384(well, i) for i in range(4)] def get_384w_quadrant(quadrant): return [cells_96_to_384(idx, quadrant) for idx in range(96)] def compound_pos_str_384_quad(labware384, quadrant): return ';'.join((labware_pos_str(labware384, idx) for idx in get_384w_quadrant(quadrant))) def initialize(ham, asynch=False): logging.info('initialize: ' + ('a' if asynch else '') + 'synchronously initialize the robot') cmd = ham.send_command(INITIALIZE) if not asynch: ham.wait_on_response(cmd, raise_first_exception=True, timeout=300) return cmd def hepa_on(ham, speed=15, asynch=False, **more_options): logging.info('hepa_on: turn on HEPA filter at ' + str(speed) + '% capacity' + ('' if not more_options else ' with extra options ' + str(more_options))) cmd = ham.send_command(HEPA, fanSpeed=speed, **more_options) if not asynch: ham.wait_on_response(cmd, raise_first_exception=True) return def wash_empty_refill(ham, asynch=False, **more_options): logging.info('wash_empty_refill: empty the washer' + ('' if not more_options else ' with extra options ' + str(more_options))) cmd = ham.send_command(WASH96_EMPTY, **more_options) if not asynch: ham.wait_on_response(cmd, raise_first_exception=True) return cmd def move_plate(ham, source_plate, target_plate, CmplxGetDict=None, CmplxPlaceDict=None, inversion=None, **more_options): """Legacy wrapper for backward compatibility""" return ham.move_plate(source_plate, target_plate, CmplxGetDict, CmplxPlaceDict, inversion, **more_options) def move_by_seq(ham, source_plate_seq, target_plate_seq, CmplxGetDict=None, CmplxPlaceDict=None, grip_height=0, inversion=None, gripForce=2, width_before=132, **more_options): """Legacy wrapper for backward compatibility""" return ham.move_by_seq(source_plate_seq, target_plate_seq, CmplxGetDict=CmplxGetDict, CmplxPlaceDict=CmplxPlaceDict, gripHeight=grip_height, inversion=inversion, gripForce=gripForce, widthBefore=width_before, **more_options) def channel_var(pos_tuples): ch_var = ['0']*16 for i, pos_tup in enumerate(pos_tuples): if pos_tup is not None: ch_var[i] = '1' return ''.join(ch_var) def tip_pick_up(ham_int, pos_tuples, **more_options): """Legacy wrapper for backward compatibility""" return ham_int.tip_pick_up(pos_tuples, **more_options) def tip_eject(ham_int, pos_tuples=None, **more_options): """Legacy wrapper for backward compatibility""" return ham_int.tip_eject(pos_tuples, **more_options) def assert_parallel_nones(list1, list2): """Legacy wrapper for backward compatibility""" return HamiltonInterface._assert_parallel_nones(list1, list2) import threading class TimerHandle: def __init__(self, seconds): self._event = threading.Event() self._timer = threading.Timer(seconds, self._event.set) self._timer.daemon = True self._timer.start() def wait(self, skip=False): """Block until the timer finishes.""" if skip: return self._event.wait() def start_timer(seconds): """Start a timer in the background and return a handle.""" return TimerHandle(seconds) default_liq_class = 'HighVolumeFilter_Water_DispenseJet_Empty_with_transport_vol' def aspirate(ham_int, pos_tuples, vols, **more_options): """Legacy wrapper for backward compatibility""" return ham_int.aspirate(pos_tuples, vols, **more_options) def dispense(ham_int, pos_tuples, vols, **more_options): """Legacy wrapper for backward compatibility""" return ham_int.dispense(pos_tuples, vols, **more_options) def tip_pick_up_96(ham_int, tip96, **more_options): """Legacy wrapper for backward compatibility""" return ham_int.tip_pick_up_96(tip96, **more_options) def tip_eject_96(ham_int, tip96=None, **more_options): """Legacy wrapper for backward compatibility""" return ham_int.tip_eject_96(tip96, **more_options) def aspirate_96(ham_int, plate96, vol, **more_options): """Legacy wrapper for backward compatibility""" return ham_int.aspirate_96(plate96, vol, **more_options) def dispense_96(ham_int, plate96, vol, **more_options): """Legacy wrapper for backward compatibility""" return ham_int.dispense_96(plate96, vol, **more_options) def aspirate_384_quadrant(ham_int, plate384, quadrant, vol, **more_options): """Legacy wrapper for backward compatibility""" return ham_int.aspirate_384_quadrant(plate384, quadrant, vol, **more_options) def dispense_384_quadrant(ham_int, plate384, quadrant, vol, **more_options): """Legacy wrapper for backward compatibility""" return ham_int.dispense_384_quadrant(plate384, quadrant, vol, **more_options) liquidclass_params_asp = { "FlowRate": -533331950, "MixFlowRate": -533331949, "AirTransportVolume": -533331948, "BlowOutVolume": -533331947, "SwapSpeed": -533331946, "SettlingTime": -533331945, "OverAspirateVolume": -533331936, "ClotRetractHeight": -533331935 } liquidclass_params_dsp = { "FlowRate": -533331950, "MixFlowRate": -533331949, "AirTransportVolume": -533331948, "BlowOutVolume": -533331947, "SwapSpeed": -533331946, "SettlingTime": -533331945, "StopFlowRate": -533331920, "StopBackVolume": -533331919, } def copy_liquid_class(ham_int, template_liquid_class, new_liquid_class): cid = ham_int.send_command(COPY_LIQ_CLASS, TemplateLiquidClass = template_liquid_class, NewLiquidClass = new_liquid_class) ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120) def set_aspirate_parameter(ham_int, LiquidClass, Parameter, Value): param_key = liquidclass_params_asp[Parameter] cid = ham_int.send_command(SET_ASP_PARAM, LiquidClass = LiquidClass, Parameter = param_key, Value = Value) ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120) def set_dispense_parameter(ham_int, LiquidClass, Parameter, Value): param_key = liquidclass_params_dsp[Parameter] cid = ham_int.send_command(SET_DISP_PARAM, LiquidClass = LiquidClass, Parameter = param_key, Value = Value) ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120) def set_tip_type(ham_int, LiquidClass, TipType): cid = ham_int.send_command(SET_TIP_TYPE, LiquidClass = LiquidClass, TipType = TipType) ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120) def set_correction_curve(ham_int, LiquidClass, NominalArray, CorrectedArray): cid = ham_int.send_command(SET_CORR_CURVE, LiquidClass = LiquidClass, NominalArray = NominalArray, CorrectedArray = CorrectedArray) ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120) def move_sequence(ham_int, sequence, xDisplacement=0, yDisplacement=0, zDisplacement=0): """Legacy wrapper for backward compatibility""" return ham_int.move_sequence(sequence, xDisplacement, yDisplacement, zDisplacement) def tilt_module_initialize(ham_int, module_name, comport, trace_level, simulate): cid = ham_int.send_command(TILT_INIT, ModuleName = module_name, Comport = comport, TraceLevel = trace_level, Simulate = simulate) ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120) def tilt_module_move(ham_int, module_name, angle): cid = ham_int.send_command(TILT_MOVE, ModuleName = module_name, Angle = angle) ham_int.wait_on_response(cid, raise_first_exception=True, timeout=120) def get_plate_gripper_seq(ham, source_plate_seq, gripHeight, gripWidth, openWidth, lid, tool_sequence, **more_options): """Legacy wrapper for backward compatibility""" return ham.get_plate_gripper_seq(source_plate_seq, gripHeight, gripWidth, openWidth, lid, tool_sequence, **more_options) def move_plate_gripper_seq(ham, dest_plate_seq, **more_options): """Legacy wrapper for backward compatibility""" return ham.move_plate_gripper_seq(dest_plate_seq, **more_options) def place_plate_gripper_seq(ham, dest_plate_seq, tool_sequence, **more_options): """Legacy wrapper for backward compatibility""" return ham.place_plate_gripper_seq(dest_plate_seq, tool_sequence, **more_options) def move_plate_gripper(ham, dest_poss, **more_options): """Legacy wrapper for backward compatibility""" return ham.move_plate_gripper(dest_poss, **more_options) def move_plate_using_gripper(ham_int: HamiltonInterface, source: str, destination: str, gripHeight: float, gripWidth: float = 81, openWidth: float = 87, lid: bool = False, tool_sequence: str = cfg.core_gripper_sequence, gripForce: int = 8, ejectToolWhenFinish: int = 1, gripperToolChannel: int = 5): ham_int.get_plate_gripper_seq(source, gripHeight, gripWidth, openWidth, lid, tool_sequence, gripForce=gripForce, gripperToolChannel=gripperToolChannel) ham_int.place_plate_gripper_seq(destination, tool_sequence=tool_sequence, ejectToolWhenFinish=ejectToolWhenFinish) def tracked_tip_pick_up(ham_int: HamiltonInterface, tips_tracker: TrackedTips, n: int) -> List[Tuple[DeckResource, int]]: """ Pick up `n` tips from the tracker, marking them as occupied. Returns a list of (DeckResource, position_within_rack). """ if n > tips_tracker.count_remaining(): raise ValueError(f"Only {tips_tracker.count_remaining()} tips available; {n} requested.") tips_poss = tips_tracker.fetch_next(n) try: ham_int.tip_pick_up(tips_poss) except Exception as e: tips_tracker.mark_occupied(tips_poss) raise e return tips_poss def tracked_tip_eject(ham_int: HamiltonInterface, tips_tracker: TrackedTips, eject_poss: List[Tuple[DeckResource, int]]): """ Eject tips from the tracker, marking them as free. If `eject_positions` is None, eject all tips in the tracker. """ ham_int.tip_eject(eject_poss) tips_tracker.mark_occupied(eject_poss, occupied=True) return eject_poss def tracked_tip_pick_up_96(ham_int: HamiltonInterface, tips_tracker: TrackedTips, rack = None): """ Pick up `n` tips from the tracker, marking them as occupied. Returns a list of (DeckResource, position_within_rack). """ if rack is None: tip_rack = tips_tracker.fetch_rack() else: tips_tracker.mark_unoccupied(rack) ham_int.tip_pick_up_96(tip_rack) def tip_support_pickup_columns(ham_int: HamiltonInterface, tips:TrackedTips, tip_support_tracker: TipSupportTracker, num_columns): """ Pick up n columns from the right side of the tip support rack. """ column_idx = tip_support_tracker.fetch_n_columns(ham_int, num_columns, tips) ham_int.tip_pick_up_mph_columns(tip_support_tracker.resource, num_columns_from_left=column_idx) class StderrLogger: def __init__(self, level): self.level = level self.stderr = sys.stderr def write(self, message): self.stderr.write(message) if message.strip(): self.level(message.replace('\n', '')) def add_stderr_logging(logger_name=None): logger = logging.getLogger(logger_name) # root logger if None sys.stderr = StderrLogger(logger.error) def normal_logging(ham_int, method_local_dir): for handler in logging.root.handlers[:]: print(handler) logging.root.removeHandler(handler) logging.getLogger('parse').setLevel(logging.CRITICAL) local_log_dir = os.path.join(method_local_dir, 'log') if not os.path.exists(local_log_dir): os.mkdir(local_log_dir) main_logfile = os.path.join(local_log_dir, 'main.log') logging.basicConfig(filename=main_logfile, level=logging.DEBUG, format='[%(asctime)s] %(name)s %(levelname)s %(message)s') logger = logging.getLogger(__name__) add_stderr_logging() import __main__ for banner_line in log_banner('Begin execution of ' + __main__.__file__): logging.info(banner_line) ham_int.set_log_dir(os.path.join(local_log_dir, 'hamilton.log')) ham_int.json_logger.set_log_dir(os.path.join(local_log_dir, 'robot_json.log')) def run_async(funcs): def go(): try: iter(funcs) except TypeError: funcs() return for func in funcs: func() func_thread = Thread(target=go, daemon=True) func_thread.start() return func_thread def run_async_dict(func): logging.info("running async line 427 pace_util_stefan_dev.py") def go(): func['function'](func['arguments']) return func_thread = Thread(target=go, daemon=True) func_thread.start() return func_thread def yield_in_chunks(sliceable, n): sliceable = list(sliceable) start_pos = 0 end_pos = n while start_pos < len(sliceable): yield sliceable[start_pos:end_pos] start_pos, end_pos = end_pos, end_pos + n def log_banner(banner_text): l = len(banner_text) margin = 5 width = l + 2*margin + 2 return ['#'*width, '#' + ' '*(width - 2) + '#', '#' + ' '*margin + banner_text + ' '*margin + '#', '#' + ' '*(width - 2) + '#', '#'*width] ================================================ FILE: pyhamilton/ngs/__init__.py ================================================ from .protocol import Protocol from .loading import LoadingVis from .tadm import generate_tadm_report, generate_tadm_report_with_json, get_last_usb_data_block ================================================ FILE: pyhamilton/ngs/loading/__init__.py ================================================ from .loading_vis import LoadingVis ================================================ FILE: pyhamilton/ngs/loading/deck_annotation.py ================================================ import numpy as np import json import sys import os import tkinter as tk from tkinter import filedialog, colorchooser, ttk, messagebox from PIL import Image, ImageTk, ImageDraw from typing import Tuple # ---------- User Configuration ---------- ALPHA = 0.5 # Transparency of polygon fill POINT_RADIUS = 3 # Smaller radius for corner points POINT_COLOR = (0, 0, 0) # Black (RGB) TABLE_WIDTH = 250 # 🌟 MODIFIED: Decreased width for the left panel TABLE_HEIGHT_ROWS = 20 # Resource types RESOURCE_TYPES = [ "Reservoir", "96-well plate", "24-well plate", "32-tube rack", "24-tube rack" ] # ---------- Globals ---------- regions = [] current_points = [] dragging_point_idx = -1 dragging_region_idx = -1 base_img_pil = None tk_photo_image = None canvas = None image_path = None json_path = None treeview = None name_entry_edit = None type_combo_edit = None # ---------- Helpers ---------- def load_image_pil(path: str): try: return Image.open(path).convert('RGB') except FileNotFoundError: return None def load_regions_from_json(path: str): if not os.path.exists(path): return [] try: with open(path, 'r') as f: data = json.load(f) except json.JSONDecodeError: return [] loaded = [] for name, info in data.items(): # NEW: Skip metadata keys like "image_path" and "image_dimensions" if name in ["image_path", "image_dimensions"]: continue loaded.append({ "name": name, "points": [tuple(int(c) for c in p) for p in info["points"]], "color": tuple(info.get("color", (255, 255, 255))), "resource_type": info.get("resource_type", "Reservoir") # Default to Reservoir }) return loaded def save_regions_to_json(path: str, regions_list: list, image_path_str: str, img_dims: Tuple[int, int]): """ Saves regions data along with image metadata to a JSON file. """ save_data = {} # NEW: Include image path and dimensions in the JSON save_data["image_path"] = os.path.basename(image_path_str) # Save only the file name save_data["image_dimensions"] = { "width": img_dims[0], "height": img_dims[1] } for region in regions_list: save_data[region['name']] = { "points": region["points"], "color": region["color"], "resource_type": region.get("resource_type", "Reservoir") } with open(path, 'w') as f: json.dump(save_data, f, indent=4) def draw_all_elements(canvas): global tk_photo_image overlay = Image.new('RGBA', base_img_pil.size, (0, 0, 0, 0)) draw = ImageDraw.Draw(overlay) for region in regions: r, g, b = region['color'] fill = (r, g, b, int(ALPHA * 255)) draw.polygon(region['points'], fill=fill) for x, y in region['points']: draw.ellipse((x-POINT_RADIUS, y-POINT_RADIUS, x+POINT_RADIUS, y+POINT_RADIUS), fill=POINT_COLOR, outline=POINT_COLOR) for x, y in current_points: draw.ellipse((x-POINT_RADIUS, y-POINT_RADIUS, x+POINT_RADIUS, y+POINT_RADIUS), fill=(0, 255, 0), outline=(0, 255, 0)) composite = Image.alpha_composite(base_img_pil.convert('RGBA'), overlay) tk_photo_image = ImageTk.PhotoImage(composite) canvas.create_image(0, 0, image=tk_photo_image, anchor='nw') canvas.image = tk_photo_image def get_closest_point_index(mouse_pos, points, thresh=5): for i, p in enumerate(points): if np.linalg.norm(np.array(mouse_pos) - np.array(p)) < thresh: return i return -1 # ---------- Event Handlers ---------- def on_mouse_down(event): global dragging_point_idx, dragging_region_idx dragging_point_idx = -1 dragging_region_idx = -1 for i, region in enumerate(regions): idx = get_closest_point_index((event.x, event.y), region['points']) if idx != -1: dragging_point_idx = idx dragging_region_idx = i break if dragging_region_idx == -1: current_points.append((event.x, event.y)) draw_all_elements(canvas) if len(current_points) >= 4: regions.append({ "name": f"Region_{len(regions)+1}", "points": list(current_points), "color": (255, 255, 255), "resource_type": "Reservoir" # Default type }) current_points.clear() draw_all_elements(canvas) update_treeview() def on_mouse_right_click(event): """ Clears the list of pending points on a right-click. """ global current_points if current_points: current_points.clear() draw_all_elements(canvas) def on_mouse_up(event): global dragging_point_idx, dragging_region_idx dragging_point_idx = -1 dragging_region_idx = -1 def on_mouse_move(event): if dragging_point_idx != -1 and dragging_region_idx != -1: regions[dragging_region_idx]['points'][dragging_point_idx] = (event.x, event.y) draw_all_elements(canvas) def on_key_press(event, root): if event.keysym == 's': save_json() elif event.keysym == 'q': root.quit() def save_json(): # NEW: Pass image path and dimensions to save_regions_to_json if base_img_pil: dims = base_img_pil.size else: dims = (0, 0) # Fallback if image isn't loaded save_regions_to_json(json_path, regions, image_path, dims) messagebox.showinfo("Saved", f"Regions saved to {os.path.basename(json_path)}") def update_treeview(): for i in treeview.get_children(): treeview.delete(i) for i, region in enumerate(regions): resource_type = region.get("resource_type", "Reservoir") item_id = treeview.insert("", "end", iid=i, values=(region["name"], "", resource_type)) r, g, b = region["color"] color_hex = f'#{r:02x}{g:02x}{b:02x}' treeview.tag_configure(f'color{i}', background=color_hex) treeview.item(item_id, tags=(f'color{i}',)) def on_treeview_click(event): global name_entry_edit, type_combo_edit # Clean up any existing editors if name_entry_edit and name_entry_edit.winfo_exists(): name_entry_edit.destroy() name_entry_edit = None if type_combo_edit and type_combo_edit.winfo_exists(): type_combo_edit.destroy() type_combo_edit = None item_id = treeview.identify_row(event.y) if not item_id: return column = treeview.identify_column(event.x) if column == '#1': # Name column edit_name(item_id) elif column == '#2': # Color column edit_color(item_id) elif column == '#3': # Resource Type column edit_resource_type(item_id) def edit_name(item_id): global name_entry_edit if name_entry_edit and name_entry_edit.winfo_exists(): name_entry_edit.destroy() bbox = treeview.bbox(item_id, "#1") if not bbox: return x, y, w, h = bbox current = treeview.item(item_id, 'values')[0] name_entry_edit = ttk.Entry(treeview) name_entry_edit.insert(0, current) name_entry_edit.bind("", lambda e: set_name(item_id)) name_entry_edit.bind("", lambda e: set_name(item_id)) name_entry_edit.place(x=x, y=y, width=w, height=h) name_entry_edit.focus_set() def set_name(item_id): global name_entry_edit if not name_entry_edit or not name_entry_edit.winfo_exists(): return new_name = name_entry_edit.get() regions[int(item_id)]['name'] = new_name current_values = list(treeview.item(item_id, 'values')) current_values[0] = new_name treeview.item(item_id, values=tuple(current_values)) name_entry_edit.destroy() name_entry_edit = None def edit_color(item_id): r, g, b = regions[int(item_id)]['color'] color_code = colorchooser.askcolor(initialcolor=f'#{r:02x}{g:02x}{b:02x}') if color_code[0]: regions[int(item_id)]['color'] = tuple(int(c) for c in color_code[0]) update_treeview() draw_all_elements(canvas) def edit_resource_type(item_id): global type_combo_edit if type_combo_edit and type_combo_edit.winfo_exists(): type_combo_edit.destroy() bbox = treeview.bbox(item_id, "#3") if not bbox: return x, y, w, h = bbox current = regions[int(item_id)].get("resource_type", "Reservoir") type_combo_edit = ttk.Combobox(treeview, values=RESOURCE_TYPES, state="readonly") type_combo_edit.set(current) type_combo_edit.bind("<>", lambda e: set_resource_type(item_id)) type_combo_edit.bind("", lambda e: set_resource_type(item_id)) type_combo_edit.place(x=x, y=y, width=w, height=h) type_combo_edit.focus_set() def set_resource_type(item_id): global type_combo_edit if not type_combo_edit or not type_combo_edit.winfo_exists(): return new_type = type_combo_edit.get() regions[int(item_id)]['resource_type'] = new_type current_values = list(treeview.item(item_id, 'values')) current_values[2] = new_type treeview.item(item_id, values=tuple(current_values)) type_combo_edit.destroy() type_combo_edit = None def delete_selected_region(): selected = treeview.selection() if selected: item_id = selected[0] idx = int(item_id) del regions[idx] update_treeview() draw_all_elements(canvas) # ---------- Main ---------- def main(): global canvas, image_path, json_path, base_img_pil, regions, treeview, style root = tk.Tk() root.title("Deck Annotation") style = ttk.Style() style.configure("Treeview", background="white", fieldbackground="white") style.map('Treeview', background=[('selected', 'white')], foreground=[('selected', 'black')]) if len(sys.argv) < 2: image_path = filedialog.askopenfilename( title="Select Image File", filetypes=[("Image files", "*.png *.jpg *.jpeg *.bmp *.gif")] ) if not image_path: sys.exit(0) else: image_path = sys.argv[1] json_path = os.path.splitext(image_path)[0] + "_regions.json" base_img_pil = load_image_pil(image_path) regions = load_regions_from_json(json_path) # Create main frame main_frame = ttk.Frame(root) main_frame.pack(fill=tk.BOTH, expand=True) # Create paned window paned = tk.PanedWindow(main_frame, orient=tk.HORIZONTAL, sashwidth=5) paned.pack(fill=tk.BOTH, expand=True) # Left panel with fixed width left_frame = ttk.Frame(paned) paned.add(left_frame, minsize=TABLE_WIDTH, width=TABLE_WIDTH) # Create treeview with three columns treeview = ttk.Treeview(left_frame, columns=("Name", "Color", "Type"), show="headings", height=TABLE_HEIGHT_ROWS) treeview.heading("Name", text="Name") treeview.heading("Color", text="Color") treeview.heading("Type", text="Resource Type") # 🌟 MODIFIED: Adjusted column widths to fit TABLE_WIDTH=250 treeview.column("Name", width=100) treeview.column("Color", width=40, anchor="center") treeview.column("Type", width=100) treeview.bind("", on_treeview_click) treeview.pack(fill=tk.BOTH, expand=True, padx=5, pady=5) # Button frame button_frame = ttk.Frame(left_frame) button_frame.pack(fill=tk.X, padx=5, pady=5) # Save button save_btn = ttk.Button(button_frame, text="Save to JSON", command=save_json) save_btn.pack(side=tk.LEFT, padx=2) # Delete button delete_btn = ttk.Button(button_frame, text="Delete Selected", command=delete_selected_region) delete_btn.pack(side=tk.LEFT, padx=2) # Instructions label instructions = ttk.Label(left_frame, text="Keys: S=Save, Q=Quit\nDouble-click cells to edit", font=("Arial", 9), foreground="gray") instructions.pack(pady=5) update_treeview() # Right panel with canvas right_frame = ttk.Frame(paned) paned.add(right_frame) # Create scrollable canvas frame canvas_frame = ttk.Frame(right_frame) canvas_frame.pack(fill=tk.BOTH, expand=True) # Create canvas with exact image dimensions canvas = tk.Canvas(canvas_frame, width=base_img_pil.width, height=base_img_pil.height, highlightthickness=0, bd=0) # Add scrollbars if needed v_scrollbar = ttk.Scrollbar(canvas_frame, orient=tk.VERTICAL, command=canvas.yview) h_scrollbar = ttk.Scrollbar(canvas_frame, orient=tk.HORIZONTAL, command=canvas.xview) canvas.configure(yscrollcommand=v_scrollbar.set, xscrollcommand=h_scrollbar.set) canvas.configure(scrollregion=(0, 0, base_img_pil.width, base_img_pil.height)) # Pack scrollbars and canvas v_scrollbar.pack(side=tk.RIGHT, fill=tk.Y) h_scrollbar.pack(side=tk.BOTTOM, fill=tk.X) canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) # Bind events canvas.bind("", on_mouse_down) canvas.bind("", on_mouse_up) canvas.bind("", on_mouse_move) canvas.bind("", on_mouse_right_click) root.bind("", lambda e: on_key_press(e, root)) # Draw initial elements draw_all_elements(canvas) # Calculate optimal window size window_width = TABLE_WIDTH + base_img_pil.width + 50 # Extra space for scrollbars and padding window_height = min(base_img_pil.height + 50, 800) # Cap at 800px height # Set window size to fit content root.geometry(f"{min(window_width, 1400)}x{window_height}") # Center window on screen root.update_idletasks() screen_width = root.winfo_screenwidth() screen_height = root.winfo_screenheight() x = (screen_width - root.winfo_width()) // 2 y = (screen_height - root.winfo_height()) // 2 root.geometry(f"+{x}+{y}") root.mainloop() if __name__ == "__main__": main() ================================================ FILE: pyhamilton/ngs/loading/deck_regions.json ================================================ { "image_path": "deck.png", "image_dimensions": { "width": 1098, "height": 527 }, "rgt_cont_60ml_BC_A00_0001": { "points": [ [ 550, 128 ], [ 560, 127 ], [ 568, 153 ], [ 554, 152 ] ], "color": [ 14, 241, 105 ], "resource_type": "Reservoir" }, "rgt_cont_60ml_BC_A00_0002": { "points": [ [ 569, 160 ], [ 571, 186 ], [ 560, 185 ], [ 555, 160 ] ], "color": [ 162, 231, 152 ], "resource_type": "Reservoir" }, "rgt_cont_60ml_BC_A00_0003": { "points": [ [ 572, 194 ], [ 562, 194 ], [ 566, 223 ], [ 579, 223 ] ], "color": [ 237, 199, 82 ], "resource_type": "Reservoir" }, "rgt_cont_60ml_BC_A00_0004": { "points": [ [ 582, 231 ], [ 567, 231 ], [ 573, 265 ], [ 588, 266 ] ], "color": [ 223, 32, 223 ], "resource_type": "Reservoir" }, "rgt_cont_60ml_BC_A00_0005": { "points": [ [ 587, 274 ], [ 574, 273 ], [ 579, 311 ], [ 591, 311 ] ], "color": [ 18, 6, 249 ], "resource_type": "Reservoir" }, "rgt_cont_60ml_BC_A00_0006": { "points": [ [ 567, 126 ], [ 574, 127 ], [ 578, 149 ], [ 571, 150 ] ], "color": [ 255, 128, 192 ], "resource_type": "Reservoir" }, "rgt_cont_60ml_BC_A00_0007": { "points": [ [ 571, 161 ], [ 581, 158 ], [ 583, 185 ], [ 576, 187 ] ], "color": [ 255, 128, 0 ], "resource_type": "Reservoir" }, "CPAC_HSP_0001": { "points": [ [ 740, 277 ], [ 820, 277 ], [ 839, 318 ], [ 756, 317 ] ], "color": [ 64, 0, 64 ], "resource_type": "96-well plate" }, "RGT_Ethanol": { "points": [ [ 641, 228 ], [ 716, 227 ], [ 727, 259 ], [ 651, 262 ] ], "color": [ 255, 255, 255 ], "resource_type": "Reservoir" } } ================================================ FILE: pyhamilton/ngs/loading/deck_regions_old.json ================================================ { "image_path": ".\\deck.png", "image_dimensions": { "width": 1098, "height": 527 }, "regions": { "rgt_cont_60ml_BC_A00_0001": { "top_left": [ 553, 126 ], "bottom_right": [ 565, 154 ], "width": 12, "height": 28, "center": [ 559, 140 ], "color": [ 0, 0, 255 ] }, "rgt_cont_60ml_BC_A00_0002": { "top_left": [ 556, 155 ], "bottom_right": [ 569, 187 ], "width": 13, "height": 32, "center": [ 562, 171 ], "color": [ 0, 255, 0 ] }, "rgt_cont_60ml_BC_A00_0003": { "top_left": [ 562, 192 ], "bottom_right": [ 577, 224 ], "width": 15, "height": 32, "center": [ 569, 208 ], "color": [ 255, 0, 0 ] }, "rgt_cont_60ml_BC_A00_0004": { "top_left": [ 569, 230 ], "bottom_right": [ 583, 262 ], "width": 14, "height": 32, "center": [ 576, 246 ], "color": [ 0, 255, 255 ] }, "rgt_cont_60ml_BC_A00_0005": { "top_left": [ 574, 270 ], "bottom_right": [ 589, 314 ], "width": 15, "height": 44, "center": [ 581, 292 ], "color": [ 255, 0, 255 ] }, "rgt_cont_60ml_BC_A00_0006": { "top_left": [ 566, 125 ], "bottom_right": [ 577, 155 ], "width": 11, "height": 30, "center": [ 571, 140 ], "color": [ 255, 255, 0 ] }, "rgt_cont_60ml_BC_A00_0007": { "top_left": [ 570, 157 ], "bottom_right": [ 585, 187 ], "width": 15, "height": 30, "center": [ 577, 172 ], "color": [ 128, 0, 255 ] }, "rgt_cont_60ml_BC_A00_0008": { "top_left": [ 580, 192 ], "bottom_right": [ 591, 223 ], "width": 11, "height": 31, "center": [ 585, 207 ], "color": [ 0, 165, 255 ] }, "rgt_cont_60ml_BC_A00_0009": { "top_left": [ 582, 229 ], "bottom_right": [ 597, 267 ], "width": 15, "height": 38, "center": [ 589, 248 ], "color": [ 255, 255, 255 ] }, "rgt_cont_60ml_BC_A00_0010": { "top_left": [ 590, 269 ], "bottom_right": [ 608, 312 ], "width": 18, "height": 43, "center": [ 599, 290 ], "color": [ 192, 192, 192 ] }, "CPAC_HSP_0001": { "top_left": [ 746, 278 ], "bottom_right": [ 834, 325 ], "width": 88, "height": 47, "center": [ 790, 301 ], "color": [ 255, 255, 128 ] }, "RGT_Ethanol": { "top_left": [ 642, 226 ], "bottom_right": [ 725, 265 ], "width": 83, "height": 39, "center": [ 683, 245 ], "color": [ 128, 255, 128 ] } } } ================================================ FILE: pyhamilton/ngs/loading/loading_vis.py ================================================ # loading_vis.py from __future__ import annotations import os import unicodedata import json from dataclasses import dataclass from pathlib import Path from typing import Any, Dict, List, Optional, Tuple, Union import unicodedata # (top-level import) import cv2 import numpy as np from PIL import Image, ImageDraw, ImageFont from ...resources import DeckResource from pathlib import Path import tkinter as tk from .plate_96_render import render_plate_96 from .tube_rack_render import TubeRackRenderer from .rendering_helpers import ( ARIAL_TTF, _FONT_CANDIDATES, draw_text_pillow, _best_label_box_outside, _resolve_font_path, _measure_text_pillow, _rescale_image, _ascii_label, _label_from_info_dict, _name_to_color_bgr, _norm_key, _ensure_bgr, _draw_transparent_rect, _draw_transparent_polygon, _rect_xyxy, _rect_overlap_area, _intersects_any, _fan_offsets, _fmt_volume, _preferred_side_for_key, _get_polygon_min_area_rect_center_and_bbox, ) # ------------------------- Data Models ------------------------- @dataclass class Region: name: str points: List[Tuple[int, int]] # <--- NEW FIELD top_left: Tuple[int, int] bottom_right: Tuple[int, int] color_bgr: Tuple[int, int, int] @classmethod def from_dict(cls, name: str, d: Dict) -> "Region": # New format uses 'points' to define a polygon. We calculate the bounding box. if "points" not in d: raise ValueError(f"Region '{name}' is missing 'points' key in data.") # Store the points array directly points = d["points"] # <--- RETAIN POINTS DATA # Calculate bounding box (min_x, min_y) and (max_x, max_y) x_coords = [p[0] for p in points] y_coords = [p[1] for p in points] min_x, max_x = min(x_coords), max(x_coords) min_y, max_y = min(y_coords), max(y_coords) top_left = (int(min_x), int(min_y)) bottom_right = (int(max_x), int(max_y)) # New format uses 'color' for BGR color color_bgr = tuple(map(int, d.get("color", (0, 0, 255)))) return cls( name=name, points=points, # <--- PASS POINTS TO CONSTRUCTOR top_left=top_left, bottom_right=bottom_right, color_bgr=color_bgr, ) # ---- ADD: helpers for ASCII labels and colors ---- class ReagentVessel: def __init__(self, name: str): self.name = name def layout_name(self): return self.name # ------------------------- Visualization ------------------------- class LoadingVis: """ Visualizer that: - Loads the base deck image and region metadata from your overlay JSON - Optionally loads reagent names/volumes from a separate map JSON - Renders overlays only for the vessels you pass in - Places labels outside overlays with collision avoidance - Offers resizable OpenCV/Tk viewers """ def __init__( self, image_path_override: Optional[Union[str, Path]] = None, scale_to_json_dims: bool = True, parent=None, *, origin_offset: Tuple[int, int] = (0, 0), reagent_data: Optional[Union[str, Path, Dict]] = None, tip_data: Optional[Union[str, Path, Dict]] = None, auto_crop: Union[bool, str] = False, crop_margin: int = 12, ): """ Parameters ---------- data : str|Path|dict Path to overlay JSON or already-parsed dict (with image_path, image_dimensions, regions). image_path_override : str|Path|None If provided, use this image path instead of the JSON's "image_path". scale_to_json_dims : bool If True and the JSON provides image_dimensions, resize the base image to match. origin_offset : (ox, oy) Shift all region coordinates by this offset at load time. reagent_data : str|Path|dict|None Path/dict with reagent mapping (vessel -> {name, volume, unit}). auto_crop : False | "regions" | "uniform" Optional cropping to remove borders (see helpers below). crop_margin : int Padding when auto_crop="regions". """ if parent is None: raise ValueError("LoadingVis requires a parent Tk window when called from GUI context") self.parent = parent # Define the expected directory and file paths relative to the CWD loading_dir = Path.cwd() / "loading" json_file_name = "deck_regions.json" json_file_path = loading_dir / json_file_name # 1. Check for 'loading' subdirectory and 'deck_regions.json' if not loading_dir.is_dir(): raise FileNotFoundError( f"Could not find the **'loading'** folder in the current directory: {Path.cwd()}. " "Please ensure you have a 'loading' subdirectory containing " "your annotated files, typically **'deck.png'** and **'deck_regions.json'**." ) if not json_file_path.is_file(): raise FileNotFoundError( f"Could not find overlay JSON at: {json_file_path}. " "Please ensure **'deck_regions.json'** exists inside the **'loading'** folder. " "Run deck-annotator deck.png to create it." ) with open(json_file_path, "r", encoding="utf-8") as f: data = json.load(f) self._raw = data # 2. Resolve base image path json_image_path = data.get("image_path") if image_path_override: img_path = Path(image_path_override) else: if json_image_path: # Resolve image path relative to the 'loading' directory normalized_path = json_image_path.replace("\\", "/").lstrip("./") img_path = loading_dir / normalized_path else: img_path = Path("") # Will likely fail to load, caught below # 3. Load the image self.base_img_bgr = _ensure_bgr(cv2.imread(str(img_path), cv2.IMREAD_UNCHANGED)) if self.base_img_bgr is None: if json_image_path and not Path(img_path).exists(): raise FileNotFoundError( f"The image '{json_image_path}' specified in the JSON file " f"was not found in the **'loading'** directory: {loading_dir}" ) raise FileNotFoundError(f"Could not read base image: {img_path}") # Resize to declared dimensions in the overlay JSON dims = data.get("image_dimensions") or {} w_decl, h_decl = int(dims.get("width", 0)), int(dims.get("height", 0)) if scale_to_json_dims and w_decl > 0 and h_decl > 0: h0, w0 = self.base_img_bgr.shape[:2] if (w0, h0) != (w_decl, h_decl): self.base_img_bgr = cv2.resize(self.base_img_bgr, (w_decl, h_decl), interpolation=cv2.INTER_AREA) # Parse and normalize regions self.regions: Dict[str, Region] = {} metadata_keys = {"image_path", "image_dimensions", "regions"} for name, rd in data.items(): if name in metadata_keys or not isinstance(rd, dict) or "points" not in rd: continue region = Region.from_dict(name=name, d=rd) self.regions[_norm_key(name)] = region # Optional global shift if your JSON coords need nudging if origin_offset != (0, 0): self._shift_regions(origin_offset) # Optional auto-crop to kill borders or trim to content if auto_crop: if auto_crop == "regions": self._crop_to_regions(crop_margin) elif auto_crop == "uniform": self._auto_trim_uniform_borders(tol=3, max_crop=400) else: raise ValueError("auto_crop must be False | 'regions' | 'uniform'") # ---- Reagent map ---- self.reagent_units_default: str = "mL" self.reagent_map: Dict[str, Dict[str, Any]] = {} self.tube_racks_map: Dict[str, Dict[int, Dict[str, Any]]] = {} self.plate96_map: Dict[str, Dict[int, Dict[str, Any]]] = {} if reagent_data is not None: self._load_reagent_map(reagent_data) # Assuming this property is set by another loading method or defaults to False self.has_tip_consumption_data = False # ---------- Private utilities ---------- def _shift_regions(self, offset: Tuple[int, int]) -> None: ox, oy = offset for r in self.regions.values(): x1, y1 = r.top_left x2, y2 = r.bottom_right r.top_left = (x1 + ox, y1 + oy) r.bottom_right = (x2 + ox, y2 + oy) r.points = [ (p[0] + ox, p[1] + oy) for p in r.points ] def _crop_to_regions(self, margin: int = 12) -> None: xs1, ys1, xs2, ys2 = [], [], [], [] for r in self.regions.values(): x1, y1 = r.top_left x2, y2 = r.bottom_right if x2 < x1: x1, x2 = x2, x1 if y2 < y1: y1, y2 = y2, y1 xs1.append(x1); ys1.append(y1); xs2.append(x2); ys2.append(y2) if not xs1: return H, W = self.base_img_bgr.shape[:2] x1 = max(0, min(xs1) - margin) y1 = max(0, min(ys1) - margin) x2 = min(W, max(xs2) + margin) y2 = min(H, max(ys2) + margin) self.base_img_bgr = self.base_img_bgr[y1:y2, x1:x2].copy() self._shift_regions((-x1, -y1)) def _auto_trim_uniform_borders(self, tol: int = 3, max_crop: int = 400) -> None: """ Trim uniform-color borders (e.g., white/near-white) from all sides, up to max_crop px. """ img = self.base_img_bgr H, W = img.shape[:2] corners = np.array([img[0,0], img[0,-1], img[-1,0], img[-1,-1]], dtype=np.int16) bg = np.median(corners, axis=0) diff = np.abs(img.astype(np.int16) - bg[None,None,:]).sum(axis=2) def edge_strip(vals): count = 0 for v in vals: if v.mean() <= tol: count += 1 else: break return min(count, max_crop) top = edge_strip(diff[:max_crop]) bottom = edge_strip(diff[::-1][:max_crop]) left = edge_strip(diff[:, :max_crop].transpose(1,0)) right = edge_strip(diff[:, ::-1][:,:max_crop].transpose(1,0)) y1 = top y2 = H - bottom x1 = left x2 = W - right if x2 - x1 < 50 or y2 - y1 < 50: return self.base_img_bgr = img[y1:y2, x1:x2].copy() self._shift_regions((-x1, -y1)) def _apply_alias_rules(self, region_name) -> str: if 'CPAC' in region_name.upper(): return 'CPAC' elif region_name=='CAR_VIALS_SMALL': return '32-tube rack' else: return None def _create_vessels_from_data(self) -> List[DeckResource]: """ Create vessel objects based on the reagent data loaded. """ vessels = [] all_keys = set(self.reagent_map.keys()) | set(self.plate96_map.keys()) | set(self.tube_racks_map.keys()) for vessel_key in all_keys: if vessel_key in self.regions: vessel = ReagentVessel(name=self.regions[vessel_key].name) vessels.append(vessel) return vessels def _load_reagent_map(self, reagent_data: Union[str, Path, Dict]) -> None: """ Load reagent map, now with support for custom labels. """ if isinstance(reagent_data, (str, Path)): with open(reagent_data, "r", encoding="utf-8") as f: d = json.load(f) else: d = reagent_data self.reagent_units_default = str(d.get("units_default", "mL")) self.reagent_map: Dict[str, Dict[str, Any]] = {} self.tube_racks_map: Dict[str, Dict[int, Dict[str, Any]]] = {} self.plate96_map: Dict[str, Dict[int, Dict[str, Any]]] = {} self.custom_labels: Dict[str, str] = {} # Add this line for vessel_name, vessel_data in d.items(): if vessel_name in ("units_default", "version"): continue vessel_key = _norm_key(vessel_name) pos_map = vessel_data.get("positions") if isinstance(vessel_data, dict) else None vessel_class_name = vessel_data.get('class_name', '') # Check for custom label if "custom_label" in vessel_data: self.custom_labels[vessel_key] = vessel_data["custom_label"] if 'Plate96' in vessel_class_name: self.plate96_map.update({vessel_key: vessel_data.get('positions', {})}) elif 'TubeRack' in vessel_class_name or 'EppiCarrier' in vessel_class_name: self.tube_racks_map.update({vessel_key: {'positions': vessel_data.get('positions', {}), 'class_name': vessel_class_name}}) if pos_map is not None and not ('Plate96' in vessel_class_name or 'TubeRack' in vessel_class_name or 'EppiCarrier' in vessel_class_name): reagent_names = [] total_volume = 0 units = [] for pos_str, reagent_info in pos_map.items(): reagent_names.append(reagent_info["reagent"]) total_volume += reagent_info["volume"] units.append(reagent_info["unit"]) if reagent_names: unit = max(set(units), key=units.count) if units else self.reagent_units_default self.reagent_map[vessel_key] = { "name": vessel_key if len(reagent_names) > 1 else reagent_names[0], "volume": total_volume if len(reagent_names) == 1 else None, "unit": unit if len(reagent_names) == 1 else None } # ---------- Public API ---------- def render( self, vessels: Optional[List[DeckResource]] = None, *, alpha: float = 0.35, draw_labels: bool = True, label_from: str = "label_then_entity", copy_base: bool = True, prefer_reagent_map: bool = True, font_scale: float = 0.40, font_thickness: int = 1, pad: int = 3, gap: int = 6, ) -> np.ndarray: """ Render overlays. If no vessels provided, automatically create them from reagent data. """ canvas = self.base_img_bgr.copy() if copy_base else self.base_img_bgr if vessels is None: vessels = self._create_vessels_from_data() items = [] # (region, color_bgr, label_text) for v in vessels: key_norm = _norm_key(v.layout_name()) region = self.regions.get(key_norm) if not region: continue color = region.color_bgr # Priority 1: Check for custom label first if key_norm in self.custom_labels: label_text = _ascii_label(self.custom_labels[key_norm]) # Priority 2: Check reagent map if preferred elif prefer_reagent_map and key_norm in self.reagent_map: reagent_info = self.reagent_map[key_norm] name = reagent_info.get("name", region.name) volume = reagent_info.get("volume") unit = reagent_info.get("unit", self.reagent_units_default) if volume is not None and volume > 0: try: vol_num = float(volume) vol_str = f"{vol_num:.3f}".rstrip("0").rstrip(".") except (ValueError, TypeError): vol_str = str(volume) label_text = _ascii_label(f"{name}, {vol_str} {unit}") else: alias_label = self._apply_alias_rules(key_norm) if alias_label: label_text = _ascii_label(alias_label) else: label_text = _ascii_label(name) # Priority 3: Fall back to alias rules or region name else: alias_label = self._apply_alias_rules(region.name) if alias_label: label_text = _ascii_label(alias_label) else: label_text = _ascii_label(region.name) items.append((region, color, label_text)) # Draw transparent polygons for all regions for region, color, _ in items: _draw_transparent_polygon( canvas, region.points, color, alpha=alpha ) if not draw_labels: return canvas # Prepare for label placement overlay_rects = [_rect_xyxy(r.top_left, r.bottom_right) for (r, _, _) in items] placed_label_rects = [] label_px = 16 try: font_fp = ARIAL_TTF if Path(ARIAL_TTF).is_file() else next( (p for p in _FONT_CANDIDATES if Path(p).is_file()), None ) except Exception: font_fp = None # Place labels with collision avoidance for region, color, label_text in items: print(f"Placing label '{label_text}' for region '{region.name}'") polygon_bbox, min_area_center = _get_polygon_min_area_rect_center_and_bbox(region.points) anchor_xyxy = _rect_xyxy(region.top_left, region.bottom_right) anchor_poly_points = region.points preferred_side = _preferred_side_for_key(_norm_key(region.name)) label_rect, org = _best_label_box_outside( canvas.shape, anchor_xyxy, label_text, anchor_poly_points=anchor_poly_points, avoid_rects=overlay_rects, avoid_labels=placed_label_rects, pad=4, gap=6, max_shift=160, step=10, preferred_side=preferred_side, text_engine="pillow", font_path=font_fp, font_px=label_px, box_extra=3, font=cv2.FONT_HERSHEY_SIMPLEX, scale=font_scale, thickness=font_thickness, ) # Draw label background x1, y1, x2, y2 = label_rect cv2.rectangle(canvas, (x1, y1), (x2, y2), (0, 0, 0), thickness=-1) # Draw label text draw_text_pillow( canvas, label_text, org, font_path=font_fp or ARIAL_TTF, px=label_px, color=(255, 255, 255) ) placed_label_rects.append(label_rect) return canvas def show( self, img_bgr: np.ndarray, window_name: str = "LoadingVis", scale: Optional[float] = None, wait_ms: int = 0, resizable: bool = True, ) -> None: """ Show the image in an OpenCV window. """ disp = img_bgr if scale and scale > 0: h, w = img_bgr.shape[:2] disp = cv2.resize(img_bgr, (int(w * scale), int(h * scale)), interpolation=cv2.INTER_AREA) if resizable: cv2.namedWindow(window_name, cv2.WINDOW_NORMAL | cv2.WINDOW_GUI_EXPANDED) h0, w0 = disp.shape[:2] cv2.resizeWindow(window_name, w0, h0) else: cv2.namedWindow(window_name, cv2.WINDOW_AUTOSIZE) cv2.imshow(window_name, disp) cv2.waitKey(wait_ms) def save(self, img_bgr: np.ndarray, out_path: Union[str, Path]) -> None: Path(out_path).parent.mkdir(parents=True, exist_ok=True) if not cv2.imwrite(str(out_path), img_bgr): raise IOError(f"Failed to write image to {out_path}") def missing_for(self, vessels: List[DeckResource]) -> List[str]: """Return entity names that don't have a matching region.""" missing = [] for v in vessels: if _norm_key(v.layout_name()) not in self.regions: missing.append(v.layout_name()) return missing @property def has_tube_rack_data(self) -> bool: """Check if there's any actual reagent data in the tube rack.""" return bool(self.tube_racks_map) def _cleanup_cv_windows(self, deck_window_name, plate_enabled): """Destroy OpenCV windows.""" try: cv2.destroyWindow(deck_window_name) except Exception: pass if plate_enabled: for plate_key in self.plate96_map.keys(): window_name = f"{plate_key} - Plate Reagent Map" try: cv2.destroyWindow(window_name) except Exception: pass def show_dialogues( self, vessels: Optional[List[DeckResource]] = None, *, # --- NEW: Summary stage options (not fully implemented in methods, but included for completeness) --- summary_enabled: bool = True, summary_title: str = "Consumables Summary", summary_size: Tuple[int, int] = (700, 500), summary_offset: Tuple[int, int] = (100, 100), # --- Deck stage options --- deck_enabled: bool = True, deck_window_name: str = "Deck", deck_alpha: float = 0.40, deck_draw_labels: bool = True, deck_prefer_reagent_map: bool = True, deck_scale: float = 1.0, deck_resizable: bool = True, tips_enabled: bool = True, tips_title: str = "Tip Consumption Summary", tips_size: Tuple[int, int] = (800, 600), tips_offset: Tuple[int, int] = (200, 150), # --- Tube rack stage options --- tube_enabled: bool = True, tube_title: str = "Tube Rack (Scrollable)", tube_render_scale: float = 1.25, tube_zoom_y: float = 1.5, tube_viewport: Tuple[int, int] = (800, 700), tube_offset: Tuple[int, int] = (360, 60), # --- Plate stage options --- plate_enabled: bool = True, plate_window_name: str = "96-well Plate", plate_render_scale: float = 1.25, plate_output_scale: float = 1.0, plate_scale_in_window: float = 1.0, plate_resizable: bool = True, # --- Cleanup --- destroy_windows: bool = True, ) -> None: """ Show visualization stages and block until the last Tkinter window is closed. """ import cv2 import tkinter as tk import traceback # needed for error reporting if vessels is None: vessels = self._create_vessels_from_data() # Check if we need a Tk root to host the Toplevels # 1) Deck overlay (OpenCV window) if deck_enabled: img_deck = self.render( vessels, alpha=deck_alpha, draw_labels=deck_draw_labels, prefer_reagent_map=deck_prefer_reagent_map, ) self.show(img_deck, window_name=deck_window_name, scale=deck_scale, wait_ms=0, resizable=deck_resizable) # 2) 96-well Plate view (OpenCV) - only show if there's actual reagent data if plate_enabled: for plate_key in self.plate96_map.keys(): plate_data = self.plate96_map.get(plate_key, {}) # Skip plates with no reagent position data (custom labels only) if not plate_data or len(plate_data) == 0: print(f"Skipping plate display for '{plate_key}' - no reagent volume data") continue img_plate = render_plate_96( plate_key, plate_data, self.reagent_units_default, render_scale=plate_render_scale, output_scale=plate_output_scale, ) window_name = f"{plate_key} - Plate Reagent Map" self.show(img_plate, window_name=window_name, scale=plate_scale_in_window, wait_ms=0, resizable=plate_resizable) # 3) Tube rack view (Tkinter modal) if tube_enabled and self.tube_racks_map: renderer = TubeRackRenderer() for rack_key in self.tube_racks_map.keys(): tube_dictionary = self.tube_racks_map.get(rack_key, {}) # tubes_count logic remains the same tubes_count = 32 if '32' in tube_dictionary.get('class_name', '') else 24 if '24' in tube_dictionary.get('class_name', '') else len(tube_dictionary) tube_data = tube_dictionary.get('positions', {}) if tubes_count == 0: continue try: # 2. Render the image (Returns a BGR numpy array) img_tube = renderer.render_tube_rack_screen( tubes_count=tubes_count, tube_map=tube_data, reagent_units_default=self.reagent_units_default, render_scale=tube_render_scale, zoom_y=tube_zoom_y, ) # 3. Define window name window_name = f"{rack_key} - Tube Rack Reagent Map" renderer.show_tkinter_modal( img_bgr=img_tube, window_name=window_name, parent=self.parent ) except Exception as e: # You might want to use a more robust logger here # traceback.print_exc() # Use this if 'traceback' is imported print(f"Error rendering/showing rack {rack_key}: {e}") if destroy_windows: self._cleanup_cv_windows(deck_window_name, plate_enabled) def ShowDialogues(self, *args, **kwargs): """PascalCase alias.""" return self.show_dialogues(*args, **kwargs) # ------------------------- Example Usage ------------------------- if __name__ == "__main__": vis = LoadingVis( reagent_data="deck_loads.json", origin_offset=(0, 0), auto_crop=False, ) class ReagentVessel: def __init__(self, name): self.name = name def layout_name(self): return self.name magbeads = ReagentVessel('rgt_cont_60ml_BC_A00_0001') buffer_a = ReagentVessel('rgt_cont_60ml_BC_A00_0003') buffer_b = ReagentVessel('rgt_cont_60ml_BC_A00_0005') vessels = [ magbeads, buffer_a, buffer_b ] # One-shot sequence vis.ShowDialogues( tube_offset=(360, 60), # nudge the scrollable window to the right tube_viewport=(800, 700), # fixed window size; scroll to see the rest deck_window_name="Deck", plate_window_name="96-well Plate", ) ================================================ FILE: pyhamilton/ngs/loading/plate_96_render.py ================================================ from __future__ import annotations import os import unicodedata import json from dataclasses import dataclass from pathlib import Path from typing import Any, Dict, List, Optional, Tuple, Union import unicodedata # (top-level import) import cv2 import numpy as np from PIL import Image, ImageDraw, ImageFont from pathlib import Path import tkinter as tk from .rendering_helpers import ( ARIAL_TTF, _FONT_CANDIDATES, _best_label_box_outside, _measure_text_pillow, _resolve_font_path, _rescale_image, draw_text_pillow, _ascii_label, _name_to_color_bgr, ) def render_plate_96( plate_key: str, plate_data: Dict[int, Dict[str, Any]], unit_default: str, *, cols: int = 12, rows: int = 8, # A..H cell_w: int = 48, cell_h: int = 48, margin_left: int = 80, margin_top: int = 80, margin_right: int = 320, # wider legend gutter margin_bottom: int = 60, well_radius: int = 14, grid_thickness: int = 1, font_scale: float = 0.40, font_thickness: int = 1, pad: int = 3, gap: int = 6, render_scale: float = 1.25, # draw larger for crisp text output_scale: float = 1.0, # final scale (keep 1.0 for this screen) ) -> np.ndarray: """ 96-well plate (12x8). Renders the plate reagent map. """ # --- Input Handling --- if not plate_data: s = float(render_scale) width = int(round((margin_left + cols * cell_w + margin_right) * s)) height = int(round((margin_top + rows * cell_h + margin_bottom) * s)) canvas = np.full((height, width, 3), 255, np.uint8) title = _ascii_label(f"Plate {plate_key} - No Reagent Data") label_px = 16 draw_text_pillow( canvas, title, (int(round(margin_left * s)), int(round(36 * s))), font_path=ARIAL_TTF, px=label_px, color=(0, 0, 0) ) return canvas # --- Scaling --- s = float(render_scale) cw = int(round(cell_w * s)); ch = int(round(cell_h * s)) ml = int(round(margin_left * s)); mt = int(round(margin_top * s)) mr = int(round(margin_right * s)); mb = int(round(margin_bottom * s)) wr = int(round(well_radius * s)) gt = max(1, int(round(grid_thickness * s))) fs = font_scale * s pt = max(1, int(round(pad * s))) gp = max(1, int(round(gap * s))) width = ml + cols * cw + mr height = mt + rows * ch + mb canvas = np.full((height, width, 3), 255, np.uint8) # --- Title --- title = _ascii_label(f"{plate_key} - Reagent Map") label_px = 16 draw_text_pillow( canvas, title, (ml, int(round(36 * s))), font_path=ARIAL_TTF, px=label_px, color=(0, 0, 0) ) # --- Grid Drawing --- origin_x = ml origin_y = mt # Outer border cv2.rectangle(canvas, (origin_x, origin_y), (origin_x + cols*cw, origin_y + rows*ch), (0,0,0), max(1, int(round(2*s)))) # Internal grid for c in range(1, cols): x = origin_x + c * cw cv2.line(canvas, (x, origin_y), (x, origin_y + rows*ch), (200,200,200), gt) for r in range(1, rows): y = origin_y + r * ch cv2.line(canvas, (origin_x, y), (origin_x + cols*cw, y), (200,200,200), gt) # Headers for c in range(cols): label = str(c+1) tx = origin_x + c*cw + cw//2 - int(round(6*s))*len(label)//2 draw_text_pillow( canvas, label, (tx, origin_y - int(round(12*s))), font_path=ARIAL_TTF, px=label_px, color=(0, 0, 0) ) row_letters = "ABCDEFGH" for r in range(rows): label = row_letters[r] ty = origin_y + r*ch + ch//2 + int(round(6*s))//2 draw_text_pillow( canvas, label, (origin_x - int(round(28*s)), ty), font_path=ARIAL_TTF, px=label_px, color=(0, 0, 0) ) # --- Wells and Legend Data Collection --- filled_entries = [] # list of (well_notation, info, color, pos) for r in range(rows): for c in range(cols): cx = origin_x + c*cw + cw//2 cy = origin_y + r*ch + ch//2 pos = c * rows + r # Column-first indexing (0=A1, 1=B1, ..., 8=A2) well_notation = f"{row_letters[r]}{c+1}" info = plate_data.get(str(pos)) color = (220, 220, 220) if not info else _name_to_color_bgr(info.get("reagent", well_notation)) cv2.circle(canvas, (cx, cy), wr, color, thickness=-1) cv2.circle(canvas, (cx, cy), wr, (40,40,40), thickness=max(1, int(round(1*s)))) if info: filled_entries.append((well_notation, info, color, pos)) # --- Legend Drawing --- x_gutter = origin_x + cols*cw + int(round(4 * s)) # Sort by position (integer order) filled_entries.sort(key=lambda entry: entry[3]) # layout calculations col_start_x = x_gutter + int(round(12 * s)) y0 = mt # measure line height once (_, th), base = cv2.getTextSize("Ag", cv2.FONT_HERSHEY_SIMPLEX, fs, font_thickness) line_h = th + base + 2*pt sw, sh = int(round(18 * s)), int(round(12 * s)) # swatch size col_w = max(int(round(240 * s)), sw + int(round(10*s)) + int(round(180*s))) max_rows = max(1, (height - y0 - int(round(10*s))) // line_h) for idx, (well_notation, info, color, pos) in enumerate(filled_entries): col = idx // max_rows row = idx % max_rows x = col_start_x + col * col_w y = y0 + row * line_h # swatch cv2.rectangle(canvas, (x, y), (x + sw, y + sh), color, thickness=-1) cv2.rectangle(canvas, (x, y), (x + sw, y + sh), (30,30,30), thickness=max(1, int(round(1*s)))) # text: "A1: Name, 100 uL" reagent_name = info.get("reagent", well_notation) volume = info.get("volume") unit = info.get("unit", unit_default) try: vol_num = float(volume) vol_str = f"{vol_num:.3f}".rstrip("0").rstrip(".") except (ValueError, TypeError): vol_str = str(volume) label_text = f"{reagent_name}, {vol_str} {unit}" legend_text = _ascii_label(f"{well_notation}: {label_text}") org = (x + sw + int(round(10*s)), y + sh - max(1, int(round(2*s)))) draw_text_pillow( canvas, legend_text, org, font_path=ARIAL_TTF, px=label_px, color=(0, 0, 0) ) final = _rescale_image(canvas, output_scale / render_scale) return final def _draw_text_simple(canvas: np.ndarray, text: str, pos: Tuple[int, int], size: int, color: Tuple[int, int, int]) -> None: """Simple text drawing using OpenCV (fallback when Pillow not available).""" cv2.putText(canvas, text, pos, cv2.FONT_HERSHEY_SIMPLEX, size/20.0, color, 1, cv2.LINE_AA) ================================================ FILE: pyhamilton/ngs/loading/rendering_helpers.py ================================================ from __future__ import annotations import os import unicodedata import json from dataclasses import dataclass from pathlib import Path from typing import Any, Dict, List, Optional, Tuple, Union import unicodedata # (top-level import) import cv2 import numpy as np from PIL import Image, ImageDraw, ImageFont from pathlib import Path import tkinter as tk ARIAL_TTF = r"C:\Windows\Fonts\arial.ttf" _FONT_CANDIDATES = [ ARIAL_TTF, # <- prioritize Arial "fonts/Inter-Regular.ttf", r"C:\Windows\Fonts\segoeui.ttf", "/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf", "/Library/Fonts/Arial.ttf", ] def draw_text_pillow(img_bgr: np.ndarray, text: str, org: Tuple[int, int], font_path: Optional[str] = ARIAL_TTF, px: Union[int, float] = 18, color: Tuple[int, int, int] = (0, 0, 0)) -> np.ndarray: """ Draw TTF text with Pillow onto img_bgr IN-PLACE and also return img_bgr. - org is treated like OpenCV: (x, baseline_y). We adjust for ascent so the visual baseline matches your existing placement math. - px may be float; we coerce to int >= 1. """ # 1) Coerce px px_i = max(1, int(round(px))) # 2) Resolve font path (fallback to Arial candidates if missing) fp = font_path if (font_path and Path(font_path).is_file()) else None if fp is None: for cand in _FONT_CANDIDATES: if Path(cand).is_file(): fp = cand break if fp is None: # Last-resort fallback: use OpenCV so at least something draws scale = max(0.4, px_i / 32.0) cv2.putText(img_bgr, text, org, cv2.FONT_HERSHEY_DUPLEX, scale, color, 1, cv2.LINE_AA) return img_bgr # 3) Convert to PIL image (RGB), draw, convert back im = Image.fromarray(cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB)) draw = ImageDraw.Draw(im) font = ImageFont.truetype(fp, px_i) # Treat org as BASELINE like OpenCV try: ascent, descent = font.getmetrics() except Exception: ascent, descent = (int(0.8 * px_i), int(0.2 * px_i)) x, y_base = int(org[0]), int(org[1]) y_top = y_base - ascent # Pillow is RGB; convert BGR color fill = (color[2], color[1], color[0]) draw.text((x, y_top), text, font=font, fill=fill) # Write back IN-PLACE so callers don't need to assign out = cv2.cvtColor(np.array(im), cv2.COLOR_RGB2BGR) img_bgr[:] = out return img_bgr def _resolve_font_path(pref: Optional[str] = ARIAL_TTF) -> Optional[str]: """Pick a usable TTF path.""" cands = [pref] + [p for p in _FONT_CANDIDATES if p != pref] for p in cands: if p and Path(p).is_file(): return p return None def _measure_text_pillow(text: str, font_path: Optional[str], px: Union[int, float]) -> Tuple[int, int, int]: """ Return (width_px, ascent_px, descent_px) measured with Pillow. Falls back to OpenCV approx if a TTF can't be opened. """ fp = _resolve_font_path(font_path) px_i = max(1, int(round(px))) if not fp: # Fallback: rough OpenCV approximation scale = max(0.4, px_i / 32.0) (tw, th), base = cv2.getTextSize(text, cv2.FONT_HERSHEY_SIMPLEX, scale, 1) return int(tw), int(th), int(base) font = ImageFont.truetype(fp, px_i) try: ascent, descent = font.getmetrics() except Exception: ascent, descent = int(0.8 * px_i), int(0.2 * px_i) # getbbox is accurate (x0,y0,x1,y1) x0, y0, x1, y1 = font.getbbox(text) width = int(x1 - x0) return width, int(ascent), int(descent) def _rescale_image(img: np.ndarray, scale: float) -> np.ndarray: """Scale with proper interpolation (AREA for downscale, CUBIC for upscale).""" if scale is None or abs(scale - 1.0) < 1e-6: return img h, w = img.shape[:2] nw = max(1, int(round(w * scale))) nh = max(1, int(round(h * scale))) interp = cv2.INTER_AREA if scale < 1.0 else cv2.INTER_CUBIC return cv2.resize(img, (nw, nh), interpolation=interp) def _ascii_label(s: str) -> str: repl = {"—": "-", "–": "-", "−": "-", "•": "-", "·": "-", "µ": "u", "°": " deg ", "\u00A0": " "} for k, v in repl.items(): s = s.replace(k, v) s = unicodedata.normalize("NFKD", s) return s.encode("ascii", "ignore").decode("ascii") def _label_from_info_dict(info: Dict, *, unit_default: str, fallback: str) -> str: name = str(info.get("reagent") or fallback) unit = str(info.get("unit") or unit_default or "").strip() vol = info.get("volume") if vol is None or vol == "": return _ascii_label(name) try: v = float(vol) vol_s = f"{v:.3f}".rstrip("0").rstrip(".") except Exception: vol_s = str(vol) txt = f"{name}, {vol_s} {unit}".strip() return _ascii_label(txt) def _name_to_color_bgr(name: str) -> Tuple[int, int, int]: """Deterministic bright color for a given name (HSV→BGR).""" h = (hash(name) % 180) # OpenCV H in [0,179] s, v = 200, 230 hsv = np.uint8([[[h, s, v]]]) bgr = cv2.cvtColor(hsv, cv2.COLOR_HSV2BGR)[0,0].tolist() return (int(bgr[0]), int(bgr[1]), int(bgr[2])) def _norm_key(k: str) -> str: return k.strip().lower().replace("\\", "/") def _ensure_bgr(img: np.ndarray) -> np.ndarray: """Ensure a 3-channel BGR image for overlay; convert if BGRA or gray.""" if img is None: raise ValueError("Base image is None (could not load).") if img.ndim == 2: return cv2.cvtColor(img, cv2.COLOR_GRAY2BGR) if img.shape[2] == 4: return cv2.cvtColor(img, cv2.COLOR_BGRA2BGR) return img def _draw_transparent_rect( canvas_bgr: np.ndarray, p1: Tuple[int, int], p2: Tuple[int, int], color_bgr: Tuple[int, int, int], alpha: float = 0.35, thickness: int = -1, ) -> None: """Draw a filled/outlined transparent rectangle.""" overlay = canvas_bgr.copy() cv2.rectangle(overlay, p1, p2, color_bgr, thickness=thickness) cv2.addWeighted(overlay, alpha, canvas_bgr, 1 - alpha, 0, dst=canvas_bgr) def _draw_transparent_polygon( canvas_bgr: np.ndarray, points: List[Tuple[int, int]], color_bgr: Tuple[int, int, int], alpha: float = 0.35, ) -> None: """Draw a filled transparent polygon defined by points.""" overlay = canvas_bgr.copy() # Convert points list to a numpy array for OpenCV pts = np.array(points, np.int32) # Reshape for fillPoly: array of polygons, where each polygon is an array of points pts = pts.reshape((-1, 1, 2)) # Draw the filled polygon onto the overlay cv2.fillPoly(overlay, [pts], color_bgr) # Blend the overlay with the original canvas for transparency cv2.addWeighted(overlay, alpha, canvas_bgr, 1 - alpha, 0, dst=canvas_bgr) def _rect_xyxy(p1, p2) -> Tuple[int, int, int, int]: x1, y1 = p1; x2, y2 = p2 if x2 < x1: x1, x2 = x2, x1 if y2 < y1: y1, y2 = y2, y1 return (int(x1), int(y1), int(x2), int(y2)) def _rect_overlap_area(a, b) -> int: ax1, ay1, ax2, ay2 = a bx1, by1, bx2, by2 = b iw = max(0, min(ax2, bx2) - max(ax1, bx1)) ih = max(0, min(ay2, by2) - max(ay1, by1)) return iw * ih def _intersects_any(r, rects) -> bool: return any(_rect_overlap_area(r, q) > 0 for q in rects) def _fan_offsets(max_shift: int, step: int): # 0, +step, -step, +2*step, -2*step, ... yield 0 s = step while s <= max_shift: yield s yield -s s += step def _fmt_volume(vol: Any, unit_default: str) -> str: if vol is None or vol == "": return "" try: v = float(vol) except Exception: return _ascii_label(str(vol)) # <-- ensure ascii even for strings s = f"{v:.3f}".rstrip("0").rstrip(".") return _ascii_label(f"{s} {unit_default}".strip()) # <-- changed def _preferred_side_for_key(key_norm: str) -> str: """ For vessel IDs like rgt_60ml_0005 -> 'left', 0006+ -> 'right'. Ethanol should label on the RIGHT. Defaults to 'left' otherwise. """ k = key_norm.strip().lower() if k == "ethanol": return "right" try: if k.startswith("rgt_60ml_"): idx_str = k.rsplit("_", 1)[-1] idx = int(idx_str) # "0005" -> 5 return "left" if idx <= 5 else "right" except Exception: pass return "left" def _best_label_box_outside( canvas_shape, anchor_rect_xyxy, text: str, *, anchor_poly_points: Optional[List[Tuple[int, int]]] = None, avoid_rects, avoid_labels, pad: int = 3, gap: int = 6, max_shift: int = 140, step: int = 10, font = cv2.FONT_HERSHEY_SIMPLEX, scale: float = 0.40, thickness: int = 1, preferred_side: str = "left", # NEW: text_engine: str = "opencv", # "opencv" | "pillow" font_path: Optional[str] = None, font_px: Union[int, float] = 16, box_extra: int = 2, # tiny extra pixels so bg never truncates text ): """ Choose a label box OUTSIDE the overlay that avoids intersecting any overlay or prior labels. Side priority uses `preferred_side`: if 'left' -> LEFT, ABOVE, BELOW, RIGHT; if 'right' -> RIGHT, ABOVE, BELOW, LEFT. Falls back to least-overlapping candidate. """ H, W = canvas_shape[:2] if text_engine.lower() == "pillow": tw, ascent, descent = _measure_text_pillow(text, font_path, font_px) th, base = ascent, descent # match draw_text_pillow (org = baseline) else: (tw, th), base = cv2.getTextSize(text, font, scale, thickness) lw = tw + 2 * pad + int(box_extra) lh = th + base + 2 * pad x1, y1, x2, y2 = anchor_rect_xyxy xc = (x1 + x2) // 2 yc = (y1 + y2) // 2 def clamp_tl(tlx, tly): tlx = int(np.clip(tlx, 0, max(0, W - lw))) tly = int(np.clip(tly, 0, max(0, H - lh))) return tlx, tly def rect_from_tl(tlx, tly): return (tlx, tly, tlx + lw, tly + lh) def score(rect): ox = sum(_rect_overlap_area(rect, r) for r in avoid_rects) lx = sum(_rect_overlap_area(rect, r) for r in avoid_labels) x1r, y1r, x2r, y2r = rect oob = 0 if x1r < 0: oob += -x1r if y1r < 0: oob += -y1r if x2r > W: oob += x2r - W if y2r > H: oob += y2r - H # --- MODIFIED DISTANCE METRIC TO USE POLYGON POINTS --- if anchor_poly_points: # Calculate minimum Euclidean distance from the label candidate box to the polygon. dist = _min_distance_to_polygon(rect, anchor_poly_points) else: # Fallback to the original distance metric (Manhattan distance between rectangles) # x1, y1, x2, y2 are from anchor_rect_xyxy dx = max(0, x1 - x2r, x1 - x1r, x1r - x2, x2r - x2) dy = max(0, y1 - y2r, y1 - y1r, y1r - y2, y2r - y2) dist = dx + dy # Total score: (Overlap) * high_penalty + (Out-of-Bounds) * low_penalty + (Distance) return (ox + lx) * 1000 + oob * 100 + dist # --- END MODIFIED DISTANCE METRIC --- best = None candidates_tried = [] # Build the side order based on preference order = ["left", "above", "below", "right"] if (preferred_side.lower() == "left") \ else ["right", "above", "below", "left"] for side in order: if side == "left": # --- NEW EDGE-SLIDING SEARCH --- # Replace the old search around (base_tlx, yc) with a search that slides # the label down the vertical extent, dynamically calculating tlx. slide_step = lh # Use label height as a safe step size for vertical movement if slide_step == 0: slide_step = 10 # Iterate through a vertical search range (full canvas for max flexibility) for tly in range(0, H, slide_step): # Define the vertical strip corresponding to the label's height. y_min, y_max = tly, tly + lh # Find the LEFTMOST X-coordinate of the polygon that is vertically aligned with the label. poly_x_at_y = _find_poly_edge_x(anchor_poly_points, y_min, y_max, "left") if poly_x_at_y is None: continue # No relevant polygon part found at this height. # Calculate the X-position for the label based on this tight edge base_tlx = poly_x_at_y - gap - lw # The label position is now base_tlx, tly. No need for further vertical offsets. # Clamp X and Y to the canvas boundaries tlx, tly = clamp_tl(base_tlx, tly) # Check if the result is completely off-canvas if tlx + lw <= 0 or tly + lh <= 0: continue rect = rect_from_tl(tlx, tly); candidates_tried.append(rect) # --- ORIGINAL GREEDY RETURN --- if not _intersects_any(rect, avoid_rects) and not _intersects_any(rect, avoid_labels): org = (tlx + pad, tly + pad + th) return rect, org elif side == "right": base_tlx = x2 + gap if base_tlx + lw <= W: for dy in _fan_offsets(max_shift, step): tly = yc - lh // 2 + dy tlx, tly = clamp_tl(base_tlx, tly) rect = rect_from_tl(tlx, tly); candidates_tried.append(rect) if not _intersects_any(rect, avoid_rects) and not _intersects_any(rect, avoid_labels): org = (tlx + pad, tly + pad + th) return rect, org elif side == "above": base_tly = y1 - gap - lh if base_tly >= 0: for dx in _fan_offsets(max_shift, step): tlx = xc - lw // 2 + dx tlx, tly = clamp_tl(tlx, base_tly) rect = rect_from_tl(tlx, tly); candidates_tried.append(rect) if not _intersects_any(rect, avoid_rects) and not _intersects_any(rect, avoid_labels): org = (tlx + pad, tly + pad + th) return rect, org elif side == "below": base_tly = y2 + gap if base_tly + lh <= H: for dx in _fan_offsets(max_shift, step): tlx = xc - lw // 2 + dx tlx, tly = clamp_tl(tlx, base_tly) rect = rect_from_tl(tlx, tly); candidates_tried.append(rect) if not _intersects_any(rect, avoid_rects) and not _intersects_any(rect, avoid_labels): org = (tlx + pad, tly + pad + th) return rect, org # No perfect candidate — pick the least-overlapping one for rect in candidates_tried: s = score(rect) if best is None or s < best[0]: best = (s, rect) if best is None: tlx, tly = 0, 0 rect = rect_from_tl(tlx, tly) else: rect = best[1] tlx, tly, _, _ = rect org = (tlx + pad, tly + pad + th) return rect, org def _get_polygon_min_area_rect_center_and_bbox(points: List[Tuple[int, int]]) -> Tuple[Tuple[int, int, int, int], Tuple[int, int]]: """ Calculates the tight axis-aligned bounding box and the center of the minimum-area rotating rectangle (MinAreaRect) of a polygon's convex hull. Returns: (xyxy_bbox, (cx, cy)) """ if not points: return (0, 0, 0, 0), (0, 0) # 1. Convert points to numpy array pts = np.array(points, dtype=np.int32) # 2. Get the Convex Hull # The convex hull simplifies the irregular shape to its outermost boundary points, # which is ideal for finding a representative center/rectangle. hull = cv2.convexHull(pts) # 3. Calculate the Minimum Area Rotating Rectangle (MinAreaRect) rect = cv2.minAreaRect(hull) # 4. Extract the center (cx, cy) from the MinAreaRect (cx_float, cy_float), (w, h), angle = rect cx, cy = int(round(cx_float)), int(round(cy_float)) # 5. Calculate the Tight Axis-Aligned Bounding Box (for collision check) x_coords = pts[:, 0] y_coords = pts[:, 1] x1, y1 = np.min(x_coords), np.min(y_coords) x2, y2 = np.max(x_coords), np.max(y_coords) xyxy_bbox = (int(x1), int(y1), int(x2), int(y2)) return xyxy_bbox, (cx, cy) def _min_distance_to_polygon(rect_xyxy: Tuple[int, int, int, int], poly_points: List[Tuple[int, int]]) -> float: """ Calculates an approximation of the minimum distance from the label rectangle to the boundary of the polygon defined by poly_points. This uses the minimum Manhattan distance from any point in the polygon to the closest edge of the label rectangle. """ if not poly_points: return 99999 x1r, y1r, x2r, y2r = rect_xyxy # 1. Define the rectangular area outside the polygon (i.e., the distance to the edge) # The distance between two rectangles A (polygon points) and R (label rect) # is the sum of the horizontal and vertical separations. min_dist = float('inf') # Calculate distance from each polygon point to the rectangle's boundary for px, py in poly_points: # dx is the shortest distance from px to the vertical extent of the rect dx = 0 if px < x1r: dx = x1r - px elif px > x2r: dx = px - x2r # dy is the shortest distance from py to the horizontal extent of the rect dy = 0 if py < y1r: dy = y1r - py elif py > y2r: dy = py - y2r # We use Euclidean distance for a smoother metric, but Manhattan (dx+dy) works too. # Euclidean: dist = np.sqrt(dx**2 + dy**2) # Manhattan: # dist = dx + dy min_dist = min(min_dist, dist) return min_dist def _find_poly_edge_x(poly_points: List[Tuple[int, int]], y_min: int, y_max: int, side: str) -> Optional[int]: """ Finds the min (for 'left') or max (for 'right') X-coordinate of the polygon for all points whose Y-coordinate is between y_min and y_max. """ relevant_x = [] # NOTE: This is an approximation using polygon vertices, not edges, # but it is a massive improvement over using the full AABB's x1/x2. for px, py in poly_points: if y_min <= py <= y_max: relevant_x.append(px) if not relevant_x: return None if side == "left": return min(relevant_x) elif side == "right": return max(relevant_x) return None ================================================ FILE: pyhamilton/ngs/loading/tube_rack_render.py ================================================ from __future__ import annotations import os import unicodedata import json from dataclasses import dataclass from pathlib import Path from typing import Any, Dict, List, Optional, Tuple, Union import unicodedata # (top-level import) import cv2 import numpy as np from PIL import Image, ImageDraw, ImageFont, ImageTk from pathlib import Path import tkinter as tk from tkinter import messagebox from .rendering_helpers import ( ARIAL_TTF, _FONT_CANDIDATES, draw_text_pillow, _best_label_box_outside, _resolve_font_path, _measure_text_pillow, _rescale_image, _ascii_label, _label_from_info_dict, _name_to_color_bgr, _norm_key, _ensure_bgr, _draw_transparent_rect, _draw_transparent_polygon, _rect_xyxy, _rect_overlap_area, _intersects_any, _fan_offsets, _fmt_volume, _preferred_side_for_key, ) class TubeRackRenderer: def render_tube_rack_screen( self, tubes_count: int, tube_map: Dict[Union[int, str], Dict[str, Any]], *, reagent_units_default: str = "µL", width: int = 350, # <<< REDUCED WIDTH (e.g., from 700 to 350) height_per_tube: int = 30, margin_left: int = 80, margin_right: int = 260, margin_v_base: int = 60, tube_radius: int = 14, font_scale: float = 0.40, font_thickness: int = 1, pad: int = 3, gap: int = 8, render_scale: float = 0.5, # <<< REDUCED RENDER SCALE (e.g., from 1.25 to 0.8) zoom_y: float = 2.0, index_px: int = 14, ) -> np.ndarray: """ Zoomed tube-rack screen (N tubes in one column). White background, grey rack, black text. (Implementation remains the same). """ s = float(render_scale) zy = float(zoom_y) # ---------------------------------------------------- # 1. Dynamic Scaling based on tubes_count # ---------------------------------------------------- # Calculate total height based on number of tubes base_h = tubes_count * height_per_tube + 2 * margin_v_base W = int(round(width * s)) H = int(round(base_h * s * zy)) # Total Canvas Height ml = int(round(margin_left * s)) mr = int(round(margin_right * s)) mv = int(round(margin_v_base * s * zy)) # Zoomed Vertical Margin r = int(round(tube_radius * s * zy)) fs = font_scale * s * zy pt = max(1, int(round(pad * s))) gp = max(1, int(round(gap * s))) # Create the canvas (BGR format) canvas = np.full((H, W, 3), 255, np.uint8) rows = tubes_count usable_h = H - 2 * mv step_y = usable_h / rows cx = ml + r + int(round(10 * s)) overlay_rects = [] placed_label_rects = [] # ---------------------------------------------------- # 2. Rack and Title # ---------------------------------------------------- # --- Grey rack background behind the tubes --- rack_pad_x = int(round(20 * s)) rack_pad_y = int(round(12 * s)) rack_x1 = cx - r - rack_pad_x rack_x2 = cx + r + rack_pad_x rack_y1 = mv - rack_pad_y rack_y2 = mv + rows * step_y + rack_pad_y rack_y2 = int(round(rack_y2)) rack_rect = (max(0, int(rack_x1)), max(0, int(rack_y1)), min(W, int(rack_x2)), min(H, int(rack_y2))) cv2.rectangle(canvas, (rack_rect[0], rack_rect[1]), (rack_rect[2], rack_rect[3]), (230, 230, 230), thickness=-1) occupied_count = len(tube_map) title = _ascii_label(f"Tube Rack ({tubes_count} capacity, {occupied_count} filled)") title_px = 16 # Keep base title size consistent # Assuming ARIAL_TTF is resolved or mocked appropriately draw_text_pillow(canvas, title, (ml, int(round(36 * s))), font_path=ARIAL_TTF, px=title_px, color=(0, 0, 0)) overlay_rects.append(rack_rect) # Font resolution logic from original code: try: font_fp = ARIAL_TTF if Path(ARIAL_TTF).is_file() else next((p for p in _FONT_CANDIDATES if Path(p).is_file()), None) except Exception: font_fp = None # End Font resolution logic # ---------------------------------------------------- # 3. Draw tubes + indexes + labels # ---------------------------------------------------- for i in range(rows): y = int(round(mv + (i + 0.5) * step_y)) display_key = f"{i+1:02d}" info = tube_map.get(str(i)) if not info: info = tube_map.get(i) if not info: color = (200, 200, 200) # Neutral grey for empty tube label_text = "" else: color = _name_to_color_bgr(info.get("reagent", display_key)) label_text = _label_from_info_dict(info, unit_default=reagent_units_default, fallback=display_key) # Draw the tube circle cv2.circle(canvas, (cx, y), r, color, thickness=-1) cv2.circle(canvas, (cx, y), r, (30, 30, 30), thickness=max(1, int(round(1 * s)))) # Tube circle bbox as avoidance x1, y1 = cx - r, y - r x2, y2 = cx + r, y + r overlay_rects.append((x1, y1, x2, y2)) # Tube index (left of rack) idx_px = max(10, int(round(index_px * s))) idx_x = max(8, rack_rect[0] - int(round(18 * s))) draw_text_pillow(canvas, display_key, (idx_x, y + int(round(6 * s))), font_path=font_fp or ARIAL_TTF, px=idx_px, color=(0, 0, 0)) # Reagent label (RIGHT of rack) if info: label_px = title_px # Base size for label text tw, ascent, descent = _measure_text_pillow(label_text, font_fp or ARIAL_TTF, label_px) lw = tw + 2 * pt + 3 lh = ascent + descent + 2 * pt y_base = int(round(y + (ascent - descent) / 2.0)) tlx = rack_rect[2] + max(gp, int(round(10 * s))) tly = y_base - ascent - pt pushed = 0 step_x = max(6, int(round(10 * s))) max_push = int(round(300 * s)) rect = (tlx, tly, tlx + lw, tly + lh) while (_intersects_any(rect, overlay_rects) or _intersects_any(rect, placed_label_rects)) and pushed < max_push: tlx += step_x pushed += step_x rect = (tlx, tly, tlx + lw, tly + lh) org = (tlx + pt, y_base) draw_text_pillow(canvas, label_text, org, font_path=font_fp or ARIAL_TTF, px=label_px, color=(0, 0, 0)) placed_label_rects.append(rect) # ---------------------------------------------------- # 4. Final Trim # ---------------------------------------------------- content_rights = [x2 for (_, _, x2, _) in overlay_rects] + [x2 for (_, _, x2, _) in placed_label_rects] or [cx + r] used_right = max(content_rights) pad_right = int(round(24 * s)) new_W = min(W, max(ml + 2 * r + pad_right, used_right + pad_right)) if new_W < W: canvas = canvas[:, :new_W].copy() return canvas # ---------------------------------------------------------------------- # NEW: OpenCV Display Method (Replacing show_tk_scrollable) # ---------------------------------------------------------------------- def show_tkinter_modal( self, img_bgr: np.ndarray, parent: tk.Tk | tk.Toplevel, window_name: str = "Tube Rack Visualization", ) -> None: from tkinter import ttk, messagebox modal = tk.Toplevel(parent) modal.title(window_name) modal.transient(parent) modal.resizable(True, True) main_frame = ttk.Frame(modal) main_frame.pack(fill="both", expand=True, padx=10, pady=10) # Scrollbar and Canvas vscrollbar = ttk.Scrollbar(main_frame, orient=tk.VERTICAL) vscrollbar.pack(side=tk.RIGHT, fill=tk.Y) canvas = tk.Canvas(main_frame, yscrollcommand=vscrollbar.set, width=img_bgr.shape[1], height=min(img_bgr.shape[0], 600)) canvas.pack(side=tk.LEFT, fill="both", expand=True) vscrollbar.config(command=canvas.yview) # Inner frame for image image_frame = ttk.Frame(canvas) canvas.create_window((0, 0), window=image_frame, anchor="nw") try: img_rgb = cv2.cvtColor(img_bgr, cv2.COLOR_BGR2RGB) pil_img = Image.fromarray(img_rgb) tk_photo = ImageTk.PhotoImage(pil_img) except Exception as e: messagebox.showerror("Image Conversion Error", f"Could not convert image for display: {e}") modal.destroy() return img_label = tk.Label(image_frame, image=tk_photo) img_label.pack() img_label.image = tk_photo # Keep reference image_frame.update_idletasks() canvas.config(scrollregion=canvas.bbox("all")) canvas.yview_moveto(0) # Close handler (X button and Escape key) def close_window(): modal.destroy() modal.bind('', lambda e: close_window()) modal.protocol("WM_DELETE_WINDOW", close_window) # Modal blocking modal.grab_set() # Center modal over parent parent_x = parent.winfo_rootx() parent_y = parent.winfo_rooty() parent_w = parent.winfo_width() parent_h = parent.winfo_height() modal.update_idletasks() modal_w = modal.winfo_width() modal_h = modal.winfo_height() new_x = parent_x + (parent_w - modal_w) // 2 new_y = parent_y + (parent_h - modal_h) // 2 modal.geometry(f'+{new_x}+{new_y}') # Block execution until modal is closed parent.wait_window(modal) ================================================ FILE: pyhamilton/ngs/protocol.py ================================================ from ..consumables import generate_reagent_summary, generate_tip_use_summary from ..ngs.loading import LoadingVis from ..liquid_handling_wrappers import TipSupportTracker from ..interface import HamiltonInterface import sys import traceback class Protocol: def __init__(self): self.num_samples = 0 self.sample_volume = 0 self.simulation = False self.windowed = True # Initialize for safety self.persistent = True # Initialize for safety self.tracked_reagent_vessels = {} # Add this to store tracked vessels self.simulation_completed = False # Track if simulation has been run self.loading_dialogues_completed = False # Track if loading dialogues have been shown # Assuming these are initialized elsewhere, adding placeholders for safety self.tracked_tips = [] self.stacked_resources = [] self.tip_support = None def prompt_step_selection(self): """ Prompt user to select which protocol steps to run using checkboxes. """ import tkinter as tk from tkinter import ttk selected_methods = [] action_taken = None # Track which action was taken def validate_inputs(): """Validate the input fields and return error message if invalid.""" try: num_samples = int(samples_var.get()) sample_volume = float(volume_var.get()) if num_samples <= 0: return "Number of samples must be greater than 0" if sample_volume <= 0: return "Sample volume must be greater than 0" return None except ValueError: return "Please enter valid numbers for samples and volume" def get_selected_steps(): """Get the currently selected steps.""" steps = [] for i, (_, method_name) in enumerate(self.available_steps): if checkbox_vars[i].get(): steps.append(method_name) return steps def update_protocol_params(): """Update protocol parameters from input fields.""" self.num_samples = int(samples_var.get()) self.sample_volume = float(volume_var.get()) def on_submit(): nonlocal action_taken # Validate inputs first error_msg = validate_inputs() if error_msg: warning_label.config(text=error_msg, foreground="red") return # Check if at least one step is selected steps = get_selected_steps() if not steps: warning_label.config(text="Please select at least one step!", foreground="red") return # Check prerequisites for running live protocol if not self.simulation_completed: warning_label.config(text="Please run 'Simulate & Calculate' first before running live protocol!", foreground="red") return if not self.loading_dialogues_completed: warning_label.config(text="Please complete loading dialogues before running live protocol!", foreground="red") return # Update protocol with input values update_protocol_params() selected_methods.extend(steps) action_taken = "run" warning_label.config(text="", foreground="red") # Clear any previous warnings root.destroy() def on_loading_dialogues(): if not self.simulation_completed: warning_label.config(text="Please run 'Simulate & Calculate' first!", foreground="red") return warning_label.config(text="Showing loading dialogues...", foreground="blue") root.update() # Force refresh # CRITICAL SAFETY: Ensure any Toplevel windows are handled on exit try: # Show loading dialogues using the main root as parent self.show_loading_dialogues(parent=root) # Destroy any remaining Toplevels created by LoadingVis # This ensures the main root.mainloop() thread doesn't hang waiting for a ghost child. for w in root.winfo_children(): if isinstance(w, tk.Toplevel): try: w.destroy() except tk.TclError: # Catch error if Toplevel was already destroyed (e.g., by user closing it) pass # Mark loading dialogues as completed self.loading_dialogues_completed = True update_button_states() warning_label.config(text="Loading dialogues completed.", foreground="green") except Exception as e: print(f"Loading dialogues aborted or failed: {e}") self.loading_dialogues_completed = False warning_label.config(text=f"Loading dialogues failed: {e}", foreground="red") def update_button_states(): """Update button states based on completion status.""" # Enable/disable run button based on prerequisites if self.simulation_completed and self.loading_dialogues_completed: run_button.config(state="normal") status_label.config(text="✓ Ready to run live protocol", foreground="green") elif self.simulation_completed: run_button.config(state="disabled") loading_button.config(state="normal") status_label.config(text="✓ Simulation complete - Next: Show loading dialogues", foreground="blue") else: run_button.config(state="disabled") loading_button.config(state="disabled") status_label.config(text="Next: Run simulation", foreground="orange") def on_simulate(): nonlocal action_taken # Validate inputs first error_msg = validate_inputs() if error_msg: warning_label.config(text=error_msg, foreground="red") return # Check if at least one step is selected steps = get_selected_steps() if not steps: warning_label.config(text="Please select at least one step!", foreground="red") return # Update protocol with input values update_protocol_params() try: # Show status message warning_label.config(text="Running simulation...", foreground="blue") root.update() # Run simulation print("Simulating protocol...") self.run_selected_steps(steps, simulation=True) # Generate reagent summary output_file = "reagent_summary.json" generate_reagent_summary(self.tracked_reagent_vessels, output_file=output_file) # Assuming self.tracked_tips is correctly populated during simulation tip_summary = generate_tip_use_summary(self.tracked_tips, output_file="tip_summary.json") # Mark simulation as completed self.simulation_completed = True # Show success message warning_label.config(text=f"Simulation complete! Reagent summary saved to {output_file}", foreground="green") print(f"Simulation complete. Reagent summary saved to {output_file}") # Update button states update_button_states() print("Updated button states") except Exception as e: full_traceback = traceback.format_exc() warning_label.config(text=f"Simulation failed: {str(e)}", foreground="red") print(f"Simulation error - Full traceback:") print(full_traceback) def on_select_all(): for var in checkbox_vars: var.set(True) def on_clear_all(): for var in checkbox_vars: var.set(False) def on_cancel_or_close(): """Handle Cancel button or window close ('X' button).""" print("DEBUG: prompt_step_selection: Protocol cancelled or window closed. Destroying root.") root.destroy() nonlocal action_taken action_taken = "cancel" # Signal cancellation instead of exiting def update_info_label(): """Update the info label when input values change.""" try: num_samples = int(samples_var.get()) if samples_var.get() else self.num_samples sample_volume = float(volume_var.get()) if volume_var.get() else self.sample_volume except ValueError: num_samples = self.num_samples sample_volume = self.sample_volume info_label.config( text=f"Samples: {num_samples} | Volume: {sample_volume}µL | Mode: {'Simulation' if self.simulation else 'Live'}" ) root = tk.Tk() root.title("NGS Protocol - Step Selection") root.geometry("550x650") root.resizable(True, True) root.protocol("WM_DELETE_WINDOW", on_cancel_or_close) style = ttk.Style() style.configure('Title.TLabel', font=('Arial', 12, 'bold')) style.configure('Info.TLabel', font=('Arial', 10)) main_frame = ttk.Frame(root, padding="20") main_frame.grid(row=0, column=0, sticky="nsew") root.columnconfigure(0, weight=1) root.rowconfigure(0, weight=1) title_label = ttk.Label(main_frame, text="Select Protocol Steps to Execute", style='Title.TLabel') title_label.grid(row=0, column=0, columnspan=2, pady=(0, 10)) # Input section input_frame = ttk.LabelFrame(main_frame, text="Protocol Parameters", padding="10") input_frame.grid(row=1, column=0, columnspan=2, sticky="ew", pady=(0, 10)) # Number of samples input ttk.Label(input_frame, text="Number of Samples:").grid(row=0, column=0, sticky="w", padx=(0, 10)) samples_var = tk.StringVar(value=str(self.num_samples) if self.num_samples > 0 else "") samples_entry = ttk.Entry(input_frame, textvariable=samples_var, width=15) samples_entry.grid(row=0, column=1, sticky="w") samples_entry.bind('', lambda e: update_info_label()) # Sample volume input ttk.Label(input_frame, text="Sample Volume (µL):").grid(row=1, column=0, sticky="w", padx=(0, 10), pady=(5, 0)) volume_var = tk.StringVar(value=str(self.sample_volume) if self.sample_volume > 0 else "") volume_entry = ttk.Entry(input_frame, textvariable=volume_var, width=15) volume_entry.grid(row=1, column=1, sticky="w", pady=(5, 0)) volume_entry.bind('', lambda e: update_info_label()) # Info label (now dynamically updated) info_label = ttk.Label(main_frame, text=f"Samples: {self.num_samples} | Volume: {self.sample_volume}µL | Mode: {'Simulation' if self.simulation else 'Live'}", style='Info.TLabel') info_label.grid(row=2, column=0, columnspan=2, pady=(10, 15)) ttk.Separator(main_frame, orient='horizontal').grid(row=3, column=0, columnspan=2, sticky="ew", pady=(0, 10)) checkbox_frame = ttk.LabelFrame(main_frame, text="Available Steps", padding="10") checkbox_frame.grid(row=4, column=0, columnspan=2, sticky="nsew", pady=(0, 10)) # Use 2 columns: step number + checkbox checkbox_vars = [] for i, (display_name, _) in enumerate(self.available_steps): var = tk.BooleanVar(value=True) checkbox_vars.append(var) step_number = ttk.Label(checkbox_frame, text=f"Step {i+1}:", font=('Arial', 9)) step_number.grid(row=i, column=0, sticky="w", padx=(0, 10)) checkbox = ttk.Checkbutton(checkbox_frame, text=display_name, variable=var) checkbox.grid(row=i, column=1, sticky="w") button_frame = ttk.Frame(main_frame) button_frame.grid(row=5, column=0, columnspan=2, pady=(10, 0)) ttk.Button(button_frame, text="Select All", command=on_select_all).grid(row=0, column=0, padx=5) ttk.Button(button_frame, text="Clear All", command=on_clear_all).grid(row=0, column=1, padx=5) warning_label = ttk.Label(main_frame, text="", foreground="red") warning_label.grid(row=6, column=0, columnspan=2, pady=(10, 0)) # Status label for workflow progress status_label = ttk.Label(main_frame, text="Next: Run simulation", foreground="orange", font=('Arial', 9, 'italic')) status_label.grid(row=7, column=0, columnspan=2, pady=(5, 0)) ttk.Separator(main_frame, orient='horizontal').grid(row=8, column=0, columnspan=2, sticky="ew", pady=(10, 10)) # Action buttons frame - now with 4 buttons action_frame = ttk.Frame(main_frame) action_frame.grid(row=9, column=0, columnspan=2, pady=(10, 0)) # Create buttons with initial states simulate_button = ttk.Button(action_frame, text="1. Simulate & Calculate", command=on_simulate) simulate_button.grid(row=0, column=0, padx=3) loading_button = ttk.Button(action_frame, text="2. Loading Dialogues", command=on_loading_dialogues, state="disabled") loading_button.grid(row=0, column=1, padx=3) run_button = ttk.Button(action_frame, text="3. Run Live Protocol", command=on_submit, state="disabled") run_button.grid(row=0, column=2, padx=3) ttk.Button(action_frame, text="Cancel", command=on_cancel_or_close).grid(row=0, column=3, padx=3) # Center window root.update_idletasks() width, height = root.winfo_width(), root.winfo_height() x = (root.winfo_screenwidth() // 2) - (width // 2) y = (root.winfo_screenheight() // 2) - (height // 2) root.geometry(f"{width}x{height}+{x}+{y}") root.mainloop() # Return selected methods only if "Run Selected Steps" was clicked if action_taken == "run": return selected_methods elif action_taken == "cancel": print("Protocol cancelled by user") return [] def reset_tracked_resources(self): """Reset all tracked resources to initial state.""" # Ensure self.tracked_tips is iterable if hasattr(self, 'tracked_tips') and self.tracked_tips: for tips in self.tracked_tips: if hasattr(tips, 'reset_all'): tips.reset_all() if self.tracked_reagent_vessels: for vessel in self.tracked_reagent_vessels: if hasattr(vessel, 'reset_volumes'): vessel.reset_volumes() if hasattr(self, 'stacked_resources') and self.stacked_resources: for stacked_resource in self.stacked_resources: if hasattr(stacked_resource, 'reset_all'): stacked_resource.reset_all() if hasattr(self, 'tip_support') and self.tip_support and hasattr(self.tip_support, 'resource'): self.tip_support = TipSupportTracker(self.tip_support.resource) def run_selected_steps(self, steps: list, simulation: bool = True, windowed: bool = False, persistent: bool = True): # NOTE: Must set these attributes for self.end() to work without arguments self.simulation = simulation self.windowed = windowed self.persistent = persistent # NOTE: Resetting resources here is vital for a fresh run, whether simulation or live. self.reset_tracked_resources() try: for step in steps: # Use print for visibility print(f"--- Executing step: {step} ---") getattr(self, step)() except Exception as e: if self.simulation: self.end() raise def end(self): """ Safely stop the Hamilton interface using current self attributes. This is the minimal, non-hanging implementation based on the user's working example. """ try: # Using attributes set by run_selected_steps() with HamiltonInterface(simulating = self.simulation, windowed=False, persistent=True) as ham_int: print("DEBUG: end: Successfully connected to existing/new HSL process. Sending ham_int.stop().") ham_int.stop() print("DEBUG: end: STOP command returned. Hamilton interface stopped cleanly.") except Exception as e: # Catch all exceptions during this critical cleanup phase print(f"WARNING: Protocol cleanup failed during interface connection: {e}") # This prints a warning if the interface is already stopped or the second connection fails. def run_protocol(self, simulating=False, output_file="reagent_summary.json"): """ Main entry point for the protocol execution. Includes top-level cleanup for unhandled exceptions or Ctrl+C. """ steps = self.prompt_step_selection() if steps: # Only run if steps were selected and "Run" was clicked # run_selected_steps sets self.simulation to False self.run_selected_steps(steps, simulation=False, windowed=True, persistent=True) # 2. Generate final summary upon successful completion generate_reagent_summary(self.tracked_reagent_vessels, output_file=output_file) print(f"Live protocol successful. Summary saved to {output_file}") def show_loading_dialogues(self, parent=None): """Show loading dialogues during protocol execution.""" vis = LoadingVis( reagent_data="reagent_summary.json", tip_data="tip_summary.json", origin_offset=(0, 0), auto_crop=False, parent=parent ) vis.ShowDialogues( #tube_offset=(360, 60), #tube_viewport=(800, 700), #deck_window_name="Deck", #plate_window_name="96-well Plate", ) ================================================ FILE: pyhamilton/ngs/tadm.py ================================================ import re from datetime import datetime from dataclasses import dataclass from typing import List, Optional from collections import defaultdict from pathlib import Path import matplotlib.pyplot as plt import io import base64 import json from ..liquid_class_db import get_liquid_class_parameter class USBTraceParser: block_start_re = re.compile(r'C0([AD]Sid)(\d+)er') tadm_re = re.compile(r'>.*?(P[1-8])QNid\d+qn([+\-\d\s]+)') def __init__(self, debug: bool = False): self.debug = debug def parse_file(self, filename: str | Path): blocks = [] current_block = None with open(filename, "r") as f: for line in f: line = line.strip() if not line: continue start_match = self.block_start_re.search(line) if start_match: if current_block: blocks.append(current_block) block_type = start_match.group(1) block_id = start_match.group(2) current_block = { "id": f"{block_type}{block_id}", "type": "AS" if "AS" in block_type else "DS", "channels": defaultdict(list), "raw_lines": [line], "index": len(blocks) } continue if current_block: current_block["raw_lines"].append(line) tadm_match = self.tadm_re.search(line) if tadm_match: channel = tadm_match.group(1) numbers = [int(x) for x in tadm_match.group(2).split()] current_block["channels"][channel].extend(numbers) if current_block: blocks.append(current_block) return blocks # ------------------------------ # Dataclasses # ------------------------------ @dataclass class LiquidHandlerCommand: timestamp: datetime command_type: str status: str details: str line_number: int container: Optional[str] = None channel_info: Optional[List[tuple]] = None # List of (position, volume) tuples liquid_class: Optional[str] = None aspirate_flow_rate: Optional[float] = None dispense_flow_rate: Optional[float] = None @dataclass class Association: liquid_handler_cmd: LiquidHandlerCommand usb_block: Optional[dict] time_offset_ms: Optional[float] # ------------------------------ # TraceParser for LH and association # ------------------------------ class TraceParser: def __init__(self, debug=False): self.liquid_commands: List[LiquidHandlerCommand] = [] self.usb_blocks: List[dict] = [] self.debug = debug def parse_liquid_handler_trace(self, content: str): commands = [] lines = content.strip().split("\n") # Look for complete lines with channel information aspirate_pattern = r'(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+).*Channel Aspirate.*- complete;.*> channel' dispense_pattern = r'(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+).*Channel Dispense.*- complete;.*> channel' # New pattern to find the HSLHttp line and capture its JSON content hsl_http_pattern = r'HSLHttp : HttpGET - progress;.*Response Content: (\{.*\})' liquid_class = None aspirate_flow_rate = None dispense_flow_rate = None for i, line in enumerate(lines): # Check for HSLHttp line first, which precedes a liquid handling command hsl_match = re.search(hsl_http_pattern, line) if hsl_match: json_str = hsl_match.group(1) try: data = json.loads(json_str) liquid_class = data.get("liquidClass") command_type = data.get("command") if liquid_class: if command_type == "channelAspirate": aspirate_flow_rate = get_liquid_class_parameter(liquid_class, "AsFlowRate") elif command_type == "channelDispense": dispense_flow_rate = get_liquid_class_parameter(liquid_class, "DsFlowRate") except json.JSONDecodeError as e: print(f"Error decoding JSON on line {i}: {e}") continue match = re.search(aspirate_pattern, line) if match: timestamp = datetime.strptime(match.group(1), '%Y-%m-%d %H:%M:%S.%f') container, channel_info = self.extract_channel_info(line) commands.append(LiquidHandlerCommand( timestamp, "Aspirate", "complete", line, i, container, channel_info, liquid_class, aspirate_flow_rate, None )) # Reset variables for next command liquid_class = None aspirate_flow_rate = None dispense_flow_rate = None continue match = re.search(dispense_pattern, line) if match: timestamp = datetime.strptime(match.group(1), '%Y-%m-%d %H:%M:%S.%f') container, channel_info = self.extract_channel_info(line) commands.append(LiquidHandlerCommand( timestamp, "Dispense", "complete", line, i, container, channel_info, liquid_class, None, dispense_flow_rate )) # Reset variables for next command liquid_class = None aspirate_flow_rate = None dispense_flow_rate = None self.liquid_commands = commands return commands def extract_channel_info(self, line: str): """Extract container and channel information from complete trace line""" # Pattern to match: > channel X: container, position, volume channel_pattern = r'> channel \d+: ([^,]+), ([^,]+), ([^>]+)' matches = re.findall(channel_pattern, line) if not matches: return None, None # Extract container (assume all channels use same container) container = matches[0][0].strip() # Extract channel info as (position, volume) tuples channel_info = [] for match in matches: position = match[1].strip() volume = match[2].strip() channel_info.append((position, volume)) return container, channel_info def associate_commands(self) -> List[Association]: associations = [] used_blocks = set() # We need to match the last liquid handling command with the last TADM block and work backwards # First, filter the blocks by type (AS or DS) and reverse them aspirate_blocks = [b for b in self.usb_blocks if b['type'] == 'AS'][::-1] dispense_blocks = [b for b in self.usb_blocks if b['type'] == 'DS'][::-1] # Create a reverse copy of the liquid commands reversed_lh_cmds = self.liquid_commands[::-1] # Pointers for our reversed lists asp_idx = 0 disp_idx = 0 for lh_cmd in reversed_lh_cmds: best_match = None if lh_cmd.command_type == "Aspirate" and asp_idx < len(aspirate_blocks): best_match = aspirate_blocks[asp_idx] asp_idx += 1 elif lh_cmd.command_type == "Dispense" and disp_idx < len(dispense_blocks): best_match = dispense_blocks[disp_idx] disp_idx += 1 associations.append(Association(lh_cmd, best_match, None)) # We need to reverse the associations list back to the correct chronological order return associations[::-1] # ------------------------------ # Extract clean command from trace line # ------------------------------ def extract_clean_command(trace_line: str) -> str: """ Extract clean command from trace line. Input: '2025-09-10 13:35:03.996 Microlab STAR : 1000ul Channel Aspirate (Single Step) - complete;' Output: '1000ul Channel Aspirate' """ # Remove the trailing ';' line = trace_line.rstrip(';') # Find the part after 'Microlab STAR : ' star_marker = 'Microlab STAR : ' star_index = line.find(star_marker) if star_index != -1: command_part = line[star_index + len(star_marker):].strip() else: # Fallback: just remove timestamp if no 'Microlab STAR' found command_part = re.sub(r'^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d+\s*', '', line).strip() # Remove ' - complete' from the end and everything after it command_part = re.sub(r'\s*-\s*complete.*$', '', command_part) command_part = re.sub(r'\s*\([^)]*\)', '', command_part) return command_part def format_channel_info(lh_cmd: LiquidHandlerCommand) -> str: """Format channel information as a string: container: [(pos, vol), ...]""" if not lh_cmd.channel_info or not lh_cmd.container: return "" # Format as: container: [(pos1, vol1), (pos2, vol2), ...] channel_parts = [f"({pos}, {vol})" for pos, vol in lh_cmd.channel_info] formatted_channels = ", ".join(channel_parts) return f"{lh_cmd.container}: [{formatted_channels}]" def generate_json_report(associations: List, output_file: str): """ Generate a JSON report with all command and USB data information. Args: associations: List of Association objects output_file: Path to output JSON file """ report_data = { "report_metadata": { "generated_at": datetime.now().isoformat(), "report_type": "Liquid Handler USB TADM Report", "total_commands": len(associations) }, "commands": [] } for i, assoc in enumerate(associations, 1): lh = assoc.liquid_handler_cmd # Build command data structure command_data = { "index": i, "timestamp": lh.timestamp.isoformat(), "command_type": lh.command_type, "status": lh.status, "line_number": lh.line_number, "container": lh.container, "channel_info": [ { "position": pos, "volume": vol } for pos, vol in lh.channel_info ] if lh.channel_info else [], "liquid_class": lh.liquid_class, "aspirate_flow_rate_uL_per_s": lh.aspirate_flow_rate, "dispense_flow_rate_uL_per_s": lh.dispense_flow_rate } # Add USB block data if available if assoc.usb_block: usb_data = { "block_id": assoc.usb_block["id"], "block_type": assoc.usb_block["type"], "block_index": assoc.usb_block["index"], "channels": { channel: data for channel, data in assoc.usb_block["channels"].items() } } command_data["usb_block"] = usb_data else: command_data["usb_block"] = None if assoc.time_offset_ms is not None: command_data["time_offset_ms"] = assoc.time_offset_ms report_data["commands"].append(command_data) # Write JSON to file with pretty formatting with open(output_file, "w") as f: json.dump(report_data, f, indent=2) print(f"JSON report saved to {output_file}") def get_last_usb_data_block() -> Optional[dict]: """ Parses the USB trace file, gets the last data block, and extracts the numerical channel data from it. Args: filename: Path to the HxUsbComm*.trc file. Returns: A dictionary representing the last USB data block with numerical data in the 'channels' key, or None if no blocks are found. """ # Instantiate the existing parser log_dir = Path(r"C:\Program Files (x86)\Hamilton\Logfiles") usb_file = find_most_recent_trace_file(log_dir, "HxUsbComm*.trc") usb_parser = USBTraceParser() # Parse the entire file to get all blocks blocks = usb_parser.parse_file(usb_file) # Check if any blocks were found and return the last one if blocks: # The 'channels' key in the returned dictionary already holds the # numerical data (a defaultdict of lists of ints) return blocks[-1] else: return None # Example usage (assuming 'some_file.trc' exists): # last_block = get_last_usb_data_block('some_file.trc') # if last_block: # print(f"Last Block ID: {last_block['id']}") # print(f"Numerical Data (P1 channel): {last_block['channels'].get('P1')[:5]}...") # print first 5 points def generate_tadm_report_with_json(html_output="tadm_report.html", json_output="tadm_report.json"): """ Modified version of generate_tadm_report that creates both HTML and JSON outputs. """ log_dir = Path(r"C:\Program Files (x86)\Hamilton\Logfiles") # Automatically find the most recent trace files lh_file = find_most_recent_trace_file(log_dir, "*_Trace.trc") usb_file = find_most_recent_trace_file(log_dir, "HxUsbComm*.trc") if not lh_file: print(f"No liquid handler trace file ending with '_Trace.trc' found in {log_dir}. Exiting.") return elif not usb_file: print(f"No USB trace file starting with 'HxUsbComm' found in {log_dir}. Exiting.") return print(f"Using Liquid Handler file: {lh_file}") print(f"Using USB file: {usb_file}") parser = TraceParser(debug=False) with open(lh_file, encoding='latin-1') as f: parser.parse_liquid_handler_trace(f.read()) usb_parser = USBTraceParser() parser.usb_blocks = usb_parser.parse_file(usb_file) associations = parser.associate_commands() # Add timestamp to both output files timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") html_output_timestamped = html_output.replace(".html", f"_{timestamp}.html") json_output_timestamped = json_output.replace(".json", f"_{timestamp}.json") # Generate both reports generate_html_report(associations, html_output_timestamped) generate_json_report(associations, json_output_timestamped) # ------------------------------ # Generate HTML report # ------------------------------ def generate_html_report(associations: list, output_file: str): html = """

Liquid Handler/ USB Report

""" for i, assoc in enumerate(associations, 1): lh = assoc.liquid_handler_cmd ts_str = lh.timestamp.strftime('%Y-%m-%d %H:%M:%S.%f')[:-3] clean_command = extract_clean_command(lh.details) channel_info = format_channel_info(lh) cmd_line = f'
{ts_str} {clean_command}
' html += f'
{cmd_line}' if channel_info: html += f'
{channel_info}
' if lh.liquid_class: html += f'
Liquid Class: {lh.liquid_class}
' if lh.aspirate_flow_rate is not None: html += f'
Aspirate Flow Rate: {lh.aspirate_flow_rate} uL/s
' elif lh.dispense_flow_rate is not None: html += f'
Dispense Flow Rate: {lh.dispense_flow_rate} uL/s
' if assoc.usb_block: img_base64 = usb_block_plot_base64(assoc.usb_block) html += f"""
TADM Graph
""" else: html += "No USB data associated" html += "
" html += "" with open(output_file, "w") as f: f.write(html) print(f"Report saved to {output_file}") # ------------------------------ # Plot function with bigger figures # ------------------------------ def usb_block_plot_base64(usb_block: dict) -> str: plt.figure(figsize=(8, 4)) # 2x bigger for ch, data in usb_block["channels"].items(): plt.plot(data, label=ch) plt.title(f"{usb_block['id']} ({usb_block['type']})") plt.xlabel("Time") plt.ylabel("Pressure") plt.tight_layout() plt.legend(fontsize='small') buf = io.BytesIO() plt.savefig(buf, format='png') plt.close() buf.seek(0) img_base64 = base64.b64encode(buf.read()).decode("utf-8") return img_base64 def find_most_recent_trace_file(directory: Path, pattern: str) -> Optional[Path]: """ Finds the most recently modified file in a directory that matches a given pattern. """ try: # Use glob to find all files matching the pattern list_of_files = list(directory.glob(pattern)) if not list_of_files: return None # Return the file with the most recent modification time return max(list_of_files, key=lambda f: f.stat().st_mtime) except FileNotFoundError: print(f"Error: The directory {directory} was not found.") return None except Exception as e: print(f"An unexpected error occurred while searching for files: {e}") return None def generate_tadm_report(output = "tadm_report.html"): log_dir = Path(r"C:\Program Files (x86)\Hamilton\Logfiles") output_html = "lh_usb_report_graphs.html" # Automatically find the most recent trace files lh_file = find_most_recent_trace_file(log_dir, "*_Trace.trc") usb_file = find_most_recent_trace_file(log_dir, "HxUsbComm*.trc") if not lh_file: print(f"No liquid handler trace file ending with '_Trace.trc' found in {log_dir}. Exiting.") return elif not usb_file: print(f"No USB trace file starting with 'HxUsbComm' found in {log_dir}. Exiting.") return print(f"Using Liquid Handler file: {lh_file}") print(f"Using USB file: {usb_file}") parser = TraceParser(debug=False) with open(lh_file, encoding='latin-1') as f: parser.parse_liquid_handler_trace(f.read()) usb_parser = USBTraceParser() parser.usb_blocks = usb_parser.parse_file(usb_file) associations = parser.associate_commands() # datestamp output html by concatenating current date/time onto existing output_html timestamp = datetime.now().strftime("%Y%m%d_%H%M%S") output_html = output.replace(".html", f"_{timestamp}.html") generate_html_report(associations, output_html) if __name__ == "__main__": generate_tadm_report() ================================================ FILE: pyhamilton/ngs/tests/PacBio_MultiPlexLibraryPrepDeck_v1.2.res ================================================ #pragma once global resource Res_ML_STAR(1, 0xff0000, Translate("ML_STAR")); function Res_ML_STAR_map(variable unit) variable { return(unit); } function Res_ML_STAR_rmap(variable address) variable { return(address); } namespace ResourceUnit { variable Res_ML_STAR; } // $$author=Stefan.Golas$$valid=0$$time=2025-08-27 11:29$$checksum=4cdeccbf$$length=089$$ ================================================ FILE: pyhamilton/ngs/tests/bead_cleanup.py ================================================ from pyhamilton import (HamiltonInterface, LayoutManager, Plate96, Tip96, hhs_set_simulation, move_plate_using_gripper, hhs_create_star_device, hhs_create_usb_device, hhs_set_temp_param, hhs_start_temp_ctrl, hhs_stop_temp_ctrl, hhs_start_shaker, hhs_stop_shaker, TrackedTips, StackedResources, Reservoir60mL, FalconCarrier24, normal_logging, layout_item) from pyhamilton_advanced import (shear_plate_96, double_aspirate_supernatant_96, pip_mix, mix_plate, transfer_96, multi_dispense, pip_transfer, ethanol_wash, multi_dispense, transport_resource, GripDirection,GrippedResource,GripperParams) import time import os # DNA Shearing lmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay') MIDI_OnMagnet = layout_item(lmgr, Plate96, 'MIDI_OnMagnet') MIDI_OffMagnet = layout_item(lmgr, Plate96, 'MIDI_Pipette') LiquidWaste = layout_item(lmgr, Plate96, 'LiquidWaste') EthanolReservoir = layout_item(lmgr, Plate96, 'RGT_Ethanol') ConsumableWaste = layout_item(lmgr, Plate96, 'MIDI_Waste') HSP_Adapters = layout_item(lmgr, Plate96, 'HSP_Adapters') HSP_Plate = layout_item(lmgr, Plate96, 'HSP_Pipette') HSP_Plate_2 = layout_item(lmgr, Plate96, 'HSP_Pipette2') MagBeads_Container = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0001') magbead_positions = [(MagBeads_Container, i) for i in range(8)] # Assuming 8 positions for beads ElutionBuffer_Container = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0002') post_shear_elution_buffer_positions = [(ElutionBuffer_Container, i) for i in range(8)] # Assuming 8 positions for beads CPAC_Reagent_Plate = layout_item(lmgr, Plate96, 'CPAC_HSP_0001') ER_Mix_positions = [(CPAC_Reagent_Plate, i) for i in range(8)] # Assuming 8 positions for ER Mix RGT_LigMix_positions = [(CPAC_Reagent_Plate, i) for i in range(8,16)] # Plated in positions 8 to 15 EDTA = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0003') PoolingTubes = layout_item(lmgr, FalconCarrier24, 'SMP_CAR_24_15x75_A00_0001') HSP_Stack = StackedResources.from_prefix( tracker_id="HSP_L", prefix="HSP_L", count=8) tracked_tips_50uL = TrackedTips.from_prefix( tracker_id="TIP_50uLF_L", volume_capacity=50, prefix="TIP_50uLF_L", count=8, tip_type=Tip96, lmgr=lmgr) tracked_tips_300uL = TrackedTips.from_prefix( tracker_id="STF_L", volume_capacity=300, prefix="STF_L", count=8, tip_type=Tip96, lmgr=lmgr) tracked_tips_1000uL = TrackedTips.from_prefix( tracker_id="HTF_L", volume_capacity=1000, prefix="HTF_L", count=2, tip_type=Tip96, lmgr=lmgr) sample_volume = 50 # Adjust as needed, get user input magbead_mix_volume = 1000 post_shear_magbead_volume = sample_volume first_supernatant_removal_volume = sample_volume * 2 # Assuming 20% more than sample volume supernatant_removal_volume = sample_volume + post_shear_magbead_volume m1_mix_volume = min(sample_volume*1.6, 1000) post_shear_etoh_wash_volume = 200 post_shear_elution_buffer_volume = 30 post_shear_elution_volume = 25.5 # Volume for shear elution if sample_volume > 130: pass else: pass # PyHamilton To-dos: # - Implement Stacking logic (done) # - HHS integration (done) # - Autoloader integration (testing) # - ODTC integration (external to Venus) # - Get liquid class data from .NET/ CLR (done) # - Implement reagent and consumables projection # - CPAC integration (external to Venus) # - ODTC integration (external to Venus) # Add volume calculations # Add logging and recording of liquid heights/ volumes from cLLD def estimate_tip_consumption(num_samples: int): ''' I think we can run the method in simulation to make an estimate? ''' pass num_samples = 96 # Example number of samples, adjust as needed tips_needed = estimate_tip_consumption(num_samples) def initialize(simulation=True): with HamiltonInterface(simulating=False, server_mode=True, windowed=True, persistent = True) as ham_int: ham_int.initialize() normal_logging(ham_int, os.getcwd()) hhs_set_simulation(ham_int, 1) # Set simulation mode if needed hhs1 = hhs_create_usb_device(ham_int, 'ML_STAR', 1) hhs2 = hhs_create_usb_device(ham_int, 'ML_STAR', 1) hhs3 = hhs_create_usb_device(ham_int, 'ML_STAR', 1) def BeadCleanup(num_samples, sample_volume, starting_from=0): with HamiltonInterface(simulating=False,server_mode=True, windowed=True, persistent=True) as ham_int: ham_int.initialize() # Add magbeads to MIDI Off Magnet plate magbead_positions = [(MagBeads_Container, i) for i in range(8)] MIDI_OffMagnet_positions = [(MIDI_OffMagnet, i) for i in range(num_samples)] pip_transfer(ham_int, tracked_tips_300uL, magbead_positions, MIDI_OffMagnet_positions, [post_shear_magbead_volume] * num_samples, liquid_class='StandardVolumeFilter_Water_DispenseJet_Empty', aspirate_height_from_bottom=1, dispense_height_from_bottom=1) # Transport MIDI Off Magnet plate to HHS5_MIDI transport_resource(ham_int, MIDI_OffMagnet.layout_name(), 'HHS5_MIDI', resource_type=GrippedResource.MIDI, core_gripper=True) # Shake HHS hhs_start_shaker(ham_int, 1, 1000, 10) # Start shaker at 1000 RPM for 10 seconds time.sleep(10) # Wait for shaking to complete hhs_stop_shaker(ham_int, 1) # Stop shaker # Transport HHS5_MIDI to MIDI On Magnet transport_resource(ham_int, 1, MIDI_OnMagnet.layout_name(), resource_type=GrippedResource.MIDI, core_gripper=True) if __name__ == "__main__": num_samples = 96 ================================================ FILE: pyhamilton/ngs/tests/cLLD.py ================================================ from pyhamilton import (HamiltonInterface, LayoutManager, ResourceType, Plate24, Plate96, Tip96, resource_list_with_prefix, layout_item, DeckResource, Reservoir60mL, get_liquid_class_volume) lmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay') # Example usage of layout_item tips = layout_item(lmgr, Tip96, 'TIP_50uLF_L_0001') # Example tip rack ElutionBuffer_Trough = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0002') # Example elution trough liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty' # Example liquid class vol_capacity = get_liquid_class_volume(liquid_class) # Fetch the volume for the liquid class with HamiltonInterface(windowed=True) as ham_int: ham_int.initialize() ham_int.tip_pick_up([(tips, 0)]) # Pick up the first tip from the tip rack response = ham_int.aspirate([(ElutionBuffer_Trough, 0)], [0], liquidClass=liquid_class, capacitiveLLD=1) print(f'Liquid heights after aspirate: {response.liquidHeights}') print('Liquid volume') print(response.liquidVolumes) # Parallel to ODTC: # Plate out reagents # Book in a partial plate asynchronously # Book in a full plate asynchronously? # Ask Matt about reagent volumes # TSO 500 HT asking RNA DNA etc mix and match # Can handle worklist with multiple plates including partial plates of both RNA and DNA # Specific kit they want to run routinely on these two vantages (up to PCR, past PCR, huge custom setup) # NC department of health double ODTC # NGS multiple bottleneck steps: tip reloads, pipetting, 5 HHSs, 2 ODTCs # Protocols for hybridization steps: 4-24 hours, ODTC bound by scheduler # STAR with two ODTCs (qPCR) # Restart error recovery halfway through reagent dispense into plate # Venus scheduler lock-in for a single run # General asynchronous method kickoff with scheduling and resource occupancy ================================================ FILE: pyhamilton/ngs/tests/consumables_tracking.py ================================================ from pyhamilton import DeckResource, layout_item, LayoutManager, HamiltonInterface, Plate96, Reservoir60mL, FalconCarrier24, Plate96, TrackedTips,Tip96 from pyhamilton_advanced import tracked_volume_aspirate, ReagentTrackedReservoir60mL, multi_dispense if __name__ == "__main__": lmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay') HSP_OffMagnet = layout_item(lmgr, Plate96, 'HSP_Pipette') HSP_positions = [(HSP_OffMagnet, i) for i in range(96)] tracked_tips_300uL = TrackedTips.from_prefix( tracker_id="STF_L", volume_capacity=300, prefix="STF_L", count=8, tip_type=Tip96, lmgr=lmgr) magbeads = layout_item(lmgr, ReagentTrackedReservoir60mL, 'rgt_cont_60ml_BC_A00_0001') magbead_positions = magbeads.assign_reagent_map('magbeads', range(8)) with HamiltonInterface(simulating=True, windowed=False) as ham_int: multi_dispense(ham_int, tracked_tips_300uL, magbead_positions, HSP_positions, [50]*96, liquid_class='StandardVolumeFilter_Water_DispenseJet_Empty') print(magbeads.calculate_required_reagent_volume('magbeads')) ================================================ FILE: pyhamilton/ngs/tests/cpac.py ================================================ from pyhamilton import (HamiltonInterface, initialize_cpac, set_temperature_target_cpac, start_temperature_control_cpac, stop_temperature_control_cpac, terminate_cpac) with HamiltonInterface(windowed=True, simulating=False) as ham_int: initialize_cpac(ham_int, controller_id=1, simulating=False) set_temperature_target_cpac(ham_int, target_temp=37.0, controller_id=1, device_id=1) start_temperature_control_cpac(ham_int, controller_id=1, device_id=1) stop_temperature_control_cpac(ham_int, controller_id=1, device_id=1) terminate_cpac(ham_int, stop_all_devices=True) ================================================ FILE: pyhamilton/ngs/tests/double_aspirate.py ================================================ from pyhamilton import HamiltonInterface, LayoutManager, Plate96, Tip96, TrackedTips, layout_item, Waste96 from pyhamilton_advanced import pip_transfer, ethanol_wash, double_aspirate_supernatant_96 if __name__ == "__main__": with HamiltonInterface(windowed=True, simulating=False) as ham_int: lmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay') tracked_tips_300uL = TrackedTips.from_prefix( tracker_id="STF_L", volume_capacity=300, prefix="STF_L", count=8, tip_type=Tip96, lmgr=lmgr) MIDI_Pipette = layout_item(lmgr, Plate96, 'MIDI_Pipette') HHS5_MIDI = layout_item(lmgr, Plate96, 'HHS5_MIDI') MIDI_OnMagnet = layout_item(lmgr, Plate96, 'MIDI_OnMagnet') LiquidWaste = layout_item(lmgr, Waste96, 'LiquidWaste_MPH') first_volume = 50 second_volume = 25 ham_int.initialize() double_aspirate_supernatant_96(ham_int, tips = tracked_tips_300uL, source_plate = MIDI_OnMagnet, waste_container = LiquidWaste, first_volume = first_volume, second_volume = second_volume, aspiration_height = 0, liquid_class = 'StandardVolumeFilter_Water_DispenseJet_Empty') ================================================ FILE: pyhamilton/ngs/tests/get_liquid_class_volume.py ================================================ from pyhamilton import (get_liquid_class_volume, get_liquid_class_columns, get_liquid_class_dispense_mode, get_liquid_class_parameter, get_all_table_names, plot_original_correction_curves, plot_combined_correction_curves_with_fit, export_flow_rates_to_csv, get_liquid_class_column_details, insert_liquid_class, delete_liquid_class_by_name) import struct name = "NEBNext_DNA_II_SVF_Ampure_SurfaceEmpty_FastMix" volume = get_liquid_class_volume(name, nominal=True) dispense_mode = get_liquid_class_dispense_mode(name) print(f"Liquid Class: {name}") print(f"Volume: {volume} µL") print(f"Dispense Mode: {dispense_mode}") import collections print(get_liquid_class_columns()) print(get_liquid_class_parameter(name, 'AsFlowRate')) byte_string = get_liquid_class_parameter(name, 'CorrectionCurve') print("Byte string:", byte_string) print(get_liquid_class_parameter(name, 'OriginalLiquid')) print(get_liquid_class_column_details()) #export_flow_rates_to_csv("liquid_classes_flow_rates.csv") #plot_combined_correction_curves_with_fit(name_filters = ["NEBNext", "QIAseq","10X","PacBio","SureSelectXT","LSK109"]) new_liquid_class_data = { 'LiquidClassName': 'My_New_LC_100ul', 'LiquidName': 'Water', 'LiquidVersion': '1.0', 'LiquidDevices': 'Pipette', 'LiquidNotes': 'Example liquid class for testing.', 'OriginalLiquid': 0, 'DispenseMode': 4, # Surface Part 'TipType': 23, # 50 uL Tip 'CorrectionCurve': b'\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\xf0?\x00\x00\x00\x00\x00\x00\x19@\x00\x00\x00\x00\x00\x00\x1a@', # Example binary data for two points 'PressureLLDSensitivity': 0, 'LLDMaxHeightDifference': 0.0, 'ValidationState': 0, 'DesignHistory': b'', 'AsFlowRate': 100.0, 'AsMixFlowRate': 150.0, 'AsAirTransportVolume': 10.0, 'AsBlowOutVolume': 5.0, 'AsSwapSpeed': 1000.0, 'AsSettlingTime': 1.5, 'AsOverAspirateVolume': 15.0, 'AsClotRetractHeight': 1.0, 'DsFlowRate': 100.0, 'DsMixFlowRate': 150.0, 'DsAirTransportVolume': 10.0, 'DsBlowOutVolume': 5.0, 'DsSwapSpeed': 1000.0, 'DsSettlingTime': 1.5, 'DsStopFlowRate': 20.0, 'DsStopBackVolume': 10.0, 'WhiPipJson': b'{}', # Example empty JSON as binary data 'CheckSum': 12345, } delete_liquid_class_by_name('My_New_LC_100ul') ================================================ FILE: pyhamilton/ngs/tests/gripper_move.py ================================================ from pyhamilton import (HamiltonInterface, LayoutManager, ResourceType, Plate24, Plate96, Tip96, move_plate_using_gripper, resource_list_with_prefix, layout_item) lmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay') # Perhaps import stack management with HamiltonInterface(windowed=True) as ham_int: ham_int.initialize() move_plate_using_gripper(ham_int, 'AbgeneMIDI_Stack1_0001', 'MIDI_OnMagnet', gripHeight=5) ================================================ FILE: pyhamilton/ngs/tests/hhs.py ================================================ from pyhamilton import (HamiltonInterface, LayoutManager, Reservoir60mL, TrackedTips, StackedResources, Tip96, Plate96, layout_item, normal_logging, hhs_create_star_device, hhs_create_usb_device, hhs_set_temp_param, hhs_start_temp_ctrl, hhs_stop_temp_ctrl, hhs_set_simulation,hhs_get_temp, hhs_start_shaker, hhs_stop_shaker) import os import time from pyhamilton_advanced import shear_plate_96, double_aspirate_supernatant_96, ethanol_wash, pip_transfer, mix_plate lmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay') # Perhaps import stack management MIDI_OffMagnet = layout_item(lmgr, Plate96, 'MIDI_Pipette') # Assuming this is defined elsewhere in the layout MagBeads_Container = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0001') ER_Mix = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0002') EDTA = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0003') tips = tip_tracker_50uL = TrackedTips.from_prefix( tracker_id="TIP_50uLF_L", prefix="TIP_50uLF_L", volume_capacity=50, count=8, tip_type=Tip96, lmgr=lmgr, reset=True # Reset the tracker state ) class HHS: def __init__(self, node, sequence): self.node = node self._sequence = sequence def layout_name(self): return self._sequence def node(self): return self.node HHS_MIDI_1 = HHS(node=4, sequence="HHS4_MIDI") HHS_MIDI_2 = HHS(node=5, sequence="HHS5_MIDI") HHS_MIDI_3 = HHS(node=3, sequence="HHS3_MIDI") HHS_HSP_1 = HHS(node=1, sequence="HHS1_HSP") HHS_HSP_2 = HHS(node=2, sequence="HHS2_HSP") def initialize_hhs(simulation): with HamiltonInterface(windowed=True, simulating=False) as ham_int: ham_int.initialize() normal_logging(ham_int, os.getcwd()) hhs_set_simulation(ham_int, 0) # Set simulation mode if needed for node in range(1,5): hhs_create_usb_device(ham_int, node) print(f"Created USB device for ML_STAR {node}") print("Shaking node for 5 seconds") hhs_start_shaker(ham_int, node, 1000) time.sleep(5) hhs_stop_shaker(ham_int, node) # This works with HamiltonInterface(windowed=True, simulating=False) as ham_int: ham_int.initialize() normal_logging(ham_int, os.getcwd()) initialize_hhs(simulation=False) ================================================ FILE: pyhamilton/ngs/tests/loading/deck_regions.json ================================================ { "image_path": ".\\deck.png", "image_dimensions": { "width": 1152, "height": 648 }, "regions": { "RGT_60mL_0001": { "top_left": [ 553, 126 ], "bottom_right": [ 565, 154 ], "width": 12, "height": 28, "center": [ 559, 140 ], "color": [ 0, 0, 255 ] }, "Rgt_60mL_0002": { "top_left": [ 556, 155 ], "bottom_right": [ 569, 187 ], "width": 13, "height": 32, "center": [ 562, 171 ], "color": [ 0, 255, 0 ] }, "Rgt_60mL_0003": { "top_left": [ 562, 192 ], "bottom_right": [ 577, 224 ], "width": 15, "height": 32, "center": [ 569, 208 ], "color": [ 255, 0, 0 ] }, "Rgt_60mL_0004": { "top_left": [ 569, 230 ], "bottom_right": [ 583, 262 ], "width": 14, "height": 32, "center": [ 576, 246 ], "color": [ 0, 255, 255 ] }, "Rgt_60mL_0005": { "top_left": [ 574, 270 ], "bottom_right": [ 589, 314 ], "width": 15, "height": 44, "center": [ 581, 292 ], "color": [ 255, 0, 255 ] }, "Rgt_60mL_0006": { "top_left": [ 566, 125 ], "bottom_right": [ 577, 155 ], "width": 11, "height": 30, "center": [ 571, 140 ], "color": [ 255, 255, 0 ] }, "Rgt_60mL_0007": { "top_left": [ 570, 157 ], "bottom_right": [ 585, 187 ], "width": 15, "height": 30, "center": [ 577, 172 ], "color": [ 128, 0, 255 ] }, "Rgt_60mL_0008": { "top_left": [ 580, 192 ], "bottom_right": [ 591, 223 ], "width": 11, "height": 31, "center": [ 585, 207 ], "color": [ 0, 165, 255 ] }, "Rgt_60mL_0009": { "top_left": [ 582, 229 ], "bottom_right": [ 597, 267 ], "width": 15, "height": 38, "center": [ 589, 248 ], "color": [ 255, 255, 255 ] }, "Rgt_60mL_010": { "top_left": [ 590, 269 ], "bottom_right": [ 608, 312 ], "width": 18, "height": 43, "center": [ 599, 290 ], "color": [ 192, 192, 192 ] }, "CPAC": { "top_left": [ 746, 278 ], "bottom_right": [ 834, 325 ], "width": 88, "height": 47, "center": [ 790, 301 ], "color": [ 255, 255, 128 ] }, "Ethanol": { "top_left": [ 642, 226 ], "bottom_right": [ 725, 265 ], "width": 83, "height": 39, "center": [ 683, 245 ], "color": [ 128, 255, 128 ] } } } ================================================ FILE: pyhamilton/ngs/tests/loading/loading_vis.py ================================================ # loading_vis.py import json from dataclasses import dataclass from pathlib import Path from typing import Dict, List, Optional, Tuple, Union import cv2 import numpy as np # ------------------------- Example Usage ------------------------- if __name__ == "__main__": # Replace 'regions.json' with your file path, or pass the dict directly to LoadingVis(...) json_path = "deck_regions.json" vis = LoadingVis(json_path) # Selectively render only these overlays (case-insensitive keys): vessels = [ ReagentVessel("RGT_60mL_0001"), ReagentVessel("Rgt_60mL_0002", label="Buffer A"), ReagentVessel("Rgt_60mL_0005", override_color_bgr=(0, 128, 255)), ReagentVessel("CPAC"), ReagentVessel("Ethanol"), # ReagentVessel("does_not_exist") # silently skipped ] img = vis.render(vessels, alpha=0.4, draw_labels=True) vis.show(img, scale=0.75, wait_ms=0) # vis.save(img, "out/selection.png") ================================================ FILE: pyhamilton/ngs/tests/log/hamilton.log ================================================ [2025-07-27 23:03:16,526] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:03:16,526] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:03:16,526] pyhamilton.interface INFO started the server thread [2025-07-27 23:03:16,526] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:03:16,530] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:03:17,053] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:03:17,058] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:03:17,059] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,060] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,061] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,064] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:03:17,064] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,065] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,066] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,070] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:03:17,070] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,071] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,072] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,074] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:03:17,074] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,076] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,076] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,079] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:03:17,080] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,081] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,082] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,085] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:03:17,086] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,087] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,087] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,090] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:03:17,091] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,092] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,093] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,095] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:03:17,096] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,097] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,098] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,101] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:03:17,101] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,103] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,104] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,106] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:03:17,107] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,108] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,109] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,111] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:03:17,111] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,112] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,113] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,116] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:03:17,116] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,118] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,118] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,119] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:03:17,119] pyhamilton.interface INFO disconnected from server [2025-07-27 23:03:17,219] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:03:17,225] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:03:17,226] pyhamilton.interface INFO server thread exited [2025-07-27 23:05:40,553] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:05:40,554] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:05:40,554] pyhamilton.interface INFO started the server thread [2025-07-27 23:05:40,554] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:05:40,557] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:05:41,059] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:05:41,064] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:05:41,065] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,065] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,066] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,070] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:05:41,070] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,071] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,072] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,074] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:05:41,075] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,075] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,076] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,078] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:05:41,079] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,079] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,080] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,082] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:05:41,082] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,083] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,084] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,087] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:05:41,087] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,088] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,089] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,091] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:05:41,092] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,092] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,093] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,095] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:05:41,095] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,096] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,097] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,099] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:05:41,099] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,100] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,101] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,103] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:05:41,104] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,104] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,105] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,107] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:05:41,108] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,108] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,109] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,111] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:05:41,111] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,112] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,112] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,113] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:05:41,113] pyhamilton.interface INFO disconnected from server [2025-07-27 23:05:41,213] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:05:41,220] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:05:41,220] pyhamilton.interface INFO server thread exited [2025-07-27 23:07:20,330] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:07:20,330] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:07:20,330] pyhamilton.interface INFO started the server thread [2025-07-27 23:07:20,331] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:07:20,334] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:07:20,998] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:07:21,005] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:07:21,006] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,007] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,008] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,011] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:07:21,011] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,012] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,013] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,015] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:07:21,016] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,017] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,017] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,022] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:07:21,022] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,024] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,024] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,027] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:07:21,027] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,028] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,029] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,032] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:07:21,032] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,033] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,034] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,038] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:07:21,039] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,040] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,041] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,043] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:07:21,044] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,045] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,045] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,048] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:07:21,049] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,050] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,051] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,055] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:07:21,056] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,056] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,057] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,060] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:07:21,061] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,061] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,062] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,065] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:07:21,066] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,066] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,067] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,067] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:07:21,068] pyhamilton.interface INFO disconnected from server [2025-07-27 23:07:21,168] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:07:21,174] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:07:21,174] pyhamilton.interface INFO server thread exited [2025-07-27 23:08:23,415] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:08:23,415] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:08:23,415] pyhamilton.interface INFO started the server thread [2025-07-27 23:08:23,416] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:08:23,419] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:08:23,969] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:08:23,974] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:08:23,975] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:23,975] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:23,976] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:23,978] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:08:23,979] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:23,980] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:23,981] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:23,983] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:08:23,984] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:23,985] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:23,986] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:23,988] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:08:23,989] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:23,989] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:23,990] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:23,993] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:08:23,994] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:23,994] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:23,995] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:23,997] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:08:23,998] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:23,999] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:24,000] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:24,002] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:08:24,003] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:24,004] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:24,005] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:24,008] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:08:24,008] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:24,009] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:24,010] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:24,013] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:08:24,013] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:24,014] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:24,015] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:24,017] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:08:24,018] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:24,019] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:24,020] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:24,023] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:08:24,024] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:24,024] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:24,025] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:24,028] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:08:24,028] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:24,029] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:24,030] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:24,030] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:08:24,030] pyhamilton.interface INFO disconnected from server [2025-07-27 23:08:24,131] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:08:24,138] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:08:24,139] pyhamilton.interface INFO server thread exited [2025-07-27 23:08:36,625] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:08:36,625] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:08:36,625] pyhamilton.interface INFO started the server thread [2025-07-27 23:08:36,625] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:08:36,629] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:08:37,136] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:08:37,141] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:08:37,142] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,142] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,143] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,147] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:08:37,147] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,148] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,149] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,151] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:08:37,152] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,153] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,153] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,155] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:08:37,156] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,157] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,157] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,160] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:08:37,160] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,161] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,162] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,164] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:08:37,165] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,165] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,166] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,169] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:08:37,169] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,170] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,171] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,173] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:08:37,174] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,174] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,175] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,178] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:08:37,178] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,179] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,180] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,182] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:08:37,183] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,183] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,184] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,187] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:08:37,188] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,188] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,189] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,192] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:08:37,192] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,193] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,193] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,194] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:08:37,194] pyhamilton.interface INFO disconnected from server [2025-07-27 23:08:37,294] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:08:37,299] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:08:37,299] pyhamilton.interface INFO server thread exited [2025-07-27 23:09:18,416] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:09:18,416] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:09:18,417] pyhamilton.interface INFO started the server thread [2025-07-27 23:09:18,417] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:09:18,420] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:09:18,922] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:09:18,927] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:09:18,928] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,929] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,929] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,932] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:09:18,933] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,934] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,934] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,938] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:09:18,938] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,939] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,940] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,943] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:09:18,943] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,944] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,945] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,947] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:09:18,948] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,949] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,949] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,952] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:09:18,952] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,953] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,954] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,956] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:09:18,957] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,958] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,958] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,961] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:09:18,961] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,962] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,963] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,965] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:09:18,965] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,966] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,967] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,969] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:09:18,969] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,970] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,971] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,974] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:09:18,974] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,975] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,975] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,978] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:09:18,978] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,979] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,979] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,979] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:09:18,980] pyhamilton.interface INFO disconnected from server [2025-07-27 23:09:19,080] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:09:19,086] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:09:19,086] pyhamilton.interface INFO server thread exited [2025-07-27 23:09:51,868] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:09:51,868] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:09:51,868] pyhamilton.interface INFO started the server thread [2025-07-27 23:09:51,868] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:09:51,873] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:09:52,427] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:09:52,433] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:09:52,434] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,435] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,437] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,440] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:09:52,442] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,442] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,443] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,446] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:09:52,447] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,447] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,448] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,451] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:09:52,452] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,454] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,455] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,458] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:09:52,459] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,460] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,461] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,464] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:09:52,465] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,466] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,467] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,470] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:09:52,472] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,473] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,474] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,477] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:09:52,478] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,478] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,479] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,482] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:09:52,483] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,484] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,485] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,488] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:09:52,489] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,490] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,492] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,495] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:09:52,496] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,497] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,498] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,500] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:09:52,501] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,503] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,504] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,504] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:09:52,504] pyhamilton.interface INFO disconnected from server [2025-07-27 23:09:52,605] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:09:52,611] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:09:52,611] pyhamilton.interface INFO server thread exited [2025-07-27 23:10:38,146] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:10:38,147] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:10:38,147] pyhamilton.interface INFO started the server thread [2025-07-27 23:10:38,147] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:10:38,150] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:10:38,679] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:10:38,685] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:10:38,686] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,687] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,688] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,691] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:10:38,692] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,693] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,693] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,696] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:10:38,697] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,698] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,699] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,701] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:10:38,702] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,703] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,704] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,707] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:10:38,708] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,709] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,710] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,713] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:10:38,715] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,716] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,717] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,720] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:10:38,721] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,722] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,723] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,726] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:10:38,728] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,728] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,729] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,732] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:10:38,733] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,734] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,735] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,738] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:10:38,739] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,740] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,741] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,744] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:10:38,745] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,745] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,746] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,749] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:10:38,750] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,751] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,752] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,752] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:10:38,752] pyhamilton.interface INFO disconnected from server [2025-07-27 23:10:38,852] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:10:38,857] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:10:38,857] pyhamilton.interface INFO server thread exited [2025-07-27 23:10:59,597] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:10:59,597] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:10:59,598] pyhamilton.interface INFO started the server thread [2025-07-27 23:10:59,598] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:10:59,602] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:11:00,122] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:11:00,128] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:11:00,129] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,130] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,131] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,134] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:11:00,134] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,135] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,135] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,138] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:11:00,139] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,140] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,141] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,143] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:11:00,144] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,145] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,145] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,148] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:11:00,149] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,150] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,150] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,153] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:11:00,154] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,155] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,156] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,159] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:11:00,159] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,161] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,161] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,164] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:11:00,164] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,165] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,166] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,169] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:11:00,170] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,171] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,172] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,174] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:11:00,175] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,176] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,176] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,178] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:11:00,179] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,180] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,180] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,182] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:11:00,183] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,184] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,184] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,185] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:11:00,185] pyhamilton.interface INFO disconnected from server [2025-07-27 23:11:00,286] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:11:00,293] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:11:00,293] pyhamilton.interface INFO server thread exited [2025-07-27 23:11:18,474] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:11:18,474] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:11:18,474] pyhamilton.interface INFO started the server thread [2025-07-27 23:11:18,474] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:11:18,478] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:11:19,001] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:11:19,006] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:11:19,007] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,008] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,009] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,011] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:11:19,012] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,013] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,014] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,016] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:11:19,017] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,017] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,018] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,021] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:11:19,022] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,023] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,023] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,026] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:11:19,027] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,027] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,028] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,030] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:11:19,031] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,032] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,033] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,035] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:11:19,036] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,037] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,037] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,040] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:11:19,041] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,041] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,042] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,045] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:11:19,046] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,046] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,047] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,049] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:11:19,050] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,051] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,052] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,055] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:11:19,056] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,057] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,058] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,060] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:11:19,061] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,062] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,062] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,063] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:11:19,063] pyhamilton.interface INFO disconnected from server [2025-07-27 23:11:19,163] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:11:19,170] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:11:19,170] pyhamilton.interface INFO server thread exited [2025-07-27 23:11:37,205] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:11:37,206] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:11:37,206] pyhamilton.interface INFO started the server thread [2025-07-27 23:11:37,206] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:11:37,209] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:11:37,707] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:11:37,713] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:11:37,715] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,716] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,716] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,719] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:11:37,720] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,722] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,723] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,726] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:11:37,727] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,728] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,729] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,732] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:11:37,733] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,734] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,735] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,739] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:11:37,740] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,741] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,742] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,745] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:11:37,747] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,747] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,748] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,751] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:11:37,752] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,753] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,754] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,758] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:11:37,759] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,760] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,761] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,763] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:11:37,765] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,766] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,767] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,769] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:11:37,771] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,772] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,773] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,775] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:11:37,777] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,778] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,779] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,781] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:11:37,783] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,784] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,784] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,785] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:11:37,785] pyhamilton.interface INFO disconnected from server [2025-07-27 23:11:37,885] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:11:37,891] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:11:37,891] pyhamilton.interface INFO server thread exited [2025-07-27 23:13:55,733] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:13:55,734] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:13:55,734] pyhamilton.interface INFO started the server thread [2025-07-27 23:13:55,734] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:13:55,738] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:13:56,353] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:13:56,359] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:13:56,362] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,362] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,363] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,366] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:13:56,368] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,369] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,369] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,373] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:13:56,376] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,376] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,377] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,380] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:13:56,384] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,385] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,386] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,389] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:13:56,393] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,394] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,394] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,397] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:13:56,400] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,401] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,401] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,404] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:13:56,407] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,408] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,409] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,412] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:13:56,415] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,415] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,416] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,419] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:13:56,421] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,422] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,423] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,426] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:13:56,431] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,432] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,432] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,435] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:13:56,439] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,441] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,441] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,444] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:13:56,447] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,448] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,449] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,449] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:13:56,449] pyhamilton.interface INFO disconnected from server [2025-07-27 23:13:56,550] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:13:56,558] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:13:56,558] pyhamilton.interface INFO server thread exited [2025-07-27 23:15:20,761] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:15:20,761] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:15:20,761] pyhamilton.interface INFO started the server thread [2025-07-27 23:15:20,761] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:15:20,764] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:15:21,317] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:15:21,322] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:15:21,325] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,326] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,327] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,329] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:15:21,331] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,332] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,333] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,336] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:15:21,339] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,340] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,341] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,345] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:15:21,350] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,351] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,353] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,356] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:15:21,360] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,362] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,363] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,367] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:15:21,371] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,372] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,373] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,375] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:15:21,381] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,382] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,383] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,387] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:15:21,388] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,389] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,390] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,393] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:15:21,398] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,399] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,400] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,404] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:15:21,407] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,408] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,409] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,411] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:15:21,416] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,417] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,418] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,423] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:15:21,428] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,429] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,430] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,431] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:15:21,431] pyhamilton.interface INFO disconnected from server [2025-07-27 23:15:21,531] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:15:21,537] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:15:21,537] pyhamilton.interface INFO server thread exited [2025-07-27 23:16:07,711] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:16:07,711] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:16:07,712] pyhamilton.interface INFO started the server thread [2025-07-27 23:16:07,712] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:16:07,714] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:16:08,236] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:16:08,243] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:16:08,247] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,248] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,249] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,253] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:16:08,255] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,257] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,257] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,260] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:16:08,264] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,265] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,265] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,268] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:16:08,272] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,273] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,274] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,276] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:16:08,279] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,280] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,280] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,285] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:16:08,288] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,290] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,291] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,295] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:16:08,299] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,300] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,300] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,304] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:16:08,307] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,308] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,308] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,312] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:16:08,315] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,316] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,317] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,321] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:16:08,325] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,325] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,326] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,329] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:16:08,335] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,336] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,337] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,341] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:16:08,347] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,348] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,349] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,349] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:16:08,349] pyhamilton.interface INFO disconnected from server [2025-07-27 23:16:08,450] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:16:08,456] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:16:08,458] pyhamilton.interface INFO server thread exited [2025-07-27 23:17:17,054] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:17:17,054] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:17:17,054] pyhamilton.interface INFO started the server thread [2025-07-27 23:17:17,054] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:17:17,058] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:17:17,588] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:17:17,594] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:17:17,594] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:17:17,595] pyhamilton.interface INFO disconnected from server [2025-07-27 23:17:17,695] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:17:17,701] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:17:17,702] pyhamilton.interface INFO server thread exited [2025-07-27 23:18:31,851] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:18:31,852] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:18:31,852] pyhamilton.interface INFO started the server thread [2025-07-27 23:18:31,852] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:18:31,856] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:18:32,393] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:18:32,398] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:18:32,399] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:18:32,399] pyhamilton.interface INFO disconnected from server [2025-07-27 23:18:32,500] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:18:32,504] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:18:32,504] pyhamilton.interface INFO server thread exited [2025-07-27 23:18:58,015] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:18:58,016] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:18:58,016] pyhamilton.interface INFO started the server thread [2025-07-27 23:18:58,016] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:18:58,020] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:18:58,579] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:18:58,585] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:18:58,586] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:18:58,586] pyhamilton.interface INFO disconnected from server [2025-07-27 23:18:58,687] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:18:58,692] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:18:58,693] pyhamilton.interface INFO server thread exited [2025-07-27 23:19:35,761] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:19:35,761] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:19:35,761] pyhamilton.interface INFO started the server thread [2025-07-27 23:19:35,762] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:19:35,765] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:19:36,293] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:19:36,298] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:19:36,299] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:19:36,300] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:19:36,300] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:19:36,300] pyhamilton.interface INFO disconnected from server [2025-07-27 23:19:36,401] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:19:36,406] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:19:36,407] pyhamilton.interface INFO server thread exited [2025-07-27 23:20:38,907] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:20:38,907] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:20:38,907] pyhamilton.interface INFO started the server thread [2025-07-27 23:20:38,907] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:20:38,910] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:20:39,428] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:20:39,434] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:20:39,435] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:20:39,437] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:20:39,437] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:20:39,437] pyhamilton.interface INFO disconnected from server [2025-07-27 23:20:39,537] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:20:39,544] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:20:39,544] pyhamilton.interface INFO server thread exited [2025-07-27 23:21:05,150] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:21:05,150] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:21:05,150] pyhamilton.interface INFO started the server thread [2025-07-27 23:21:05,150] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:21:05,154] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:21:05,669] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:21:05,675] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:21:05,676] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:21:05,677] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:21:05,678] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:21:05,678] pyhamilton.interface INFO disconnected from server [2025-07-27 23:21:05,778] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:21:05,783] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:21:05,783] pyhamilton.interface INFO server thread exited [2025-07-27 23:30:11,014] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:30:11,015] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:30:11,015] pyhamilton.interface INFO started the server thread [2025-07-27 23:30:11,015] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:30:11,019] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:30:11,556] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:30:11,561] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:30:11,562] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:30:11,563] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:30:11,563] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:30:11,563] pyhamilton.interface INFO disconnected from server [2025-07-27 23:30:11,664] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:30:11,668] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:30:11,669] pyhamilton.interface INFO server thread exited [2025-07-27 23:31:21,070] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:31:21,070] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:31:21,070] pyhamilton.interface INFO started the server thread [2025-07-27 23:31:21,070] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:31:21,073] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:31:21,602] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:31:21,608] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:31:21,609] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:31:21,610] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:31:21,610] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:31:21,611] pyhamilton.interface INFO disconnected from server [2025-07-27 23:31:21,711] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:31:21,717] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:31:21,718] pyhamilton.interface INFO server thread exited [2025-07-27 23:32:20,744] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:32:20,744] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:32:20,744] pyhamilton.interface INFO started the server thread [2025-07-27 23:32:20,744] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:32:20,747] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:32:21,229] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:32:21,234] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:32:21,235] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:32:21,236] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:32:21,236] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:32:21,236] pyhamilton.interface INFO disconnected from server [2025-07-27 23:32:21,336] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:32:21,343] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:32:21,344] pyhamilton.interface INFO server thread exited [2025-07-27 23:33:09,548] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:33:09,549] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:33:09,549] pyhamilton.interface INFO started the server thread [2025-07-27 23:33:09,549] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:33:09,552] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:33:10,117] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:33:10,122] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:33:10,123] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:33:10,124] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:33:10,124] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:33:10,124] pyhamilton.interface INFO disconnected from server [2025-07-27 23:33:10,225] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:33:10,232] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:33:10,232] pyhamilton.interface INFO server thread exited [2025-07-27 23:34:11,945] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:34:11,945] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:34:11,945] pyhamilton.interface INFO started the server thread [2025-07-27 23:34:11,945] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:34:11,949] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:34:12,447] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:34:12,453] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:34:12,454] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:34:12,455] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:34:12,455] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:34:12,456] pyhamilton.interface INFO disconnected from server [2025-07-27 23:34:12,556] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:34:12,563] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:34:12,564] pyhamilton.interface INFO server thread exited [2025-07-27 23:34:35,083] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:34:35,084] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:34:35,084] pyhamilton.interface INFO started the server thread [2025-07-27 23:34:35,084] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:34:35,088] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:34:35,593] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:34:35,599] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:34:35,600] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:34:35,600] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:34:35,601] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:34:35,601] pyhamilton.interface INFO disconnected from server [2025-07-27 23:34:35,701] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:34:35,710] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:34:35,710] pyhamilton.interface INFO server thread exited [2025-07-27 23:35:55,456] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:35:55,456] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:35:55,456] pyhamilton.interface INFO started the server thread [2025-07-27 23:35:55,456] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:35:55,459] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:35:55,978] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:35:55,983] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:35:55,983] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,984] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,984] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,985] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,986] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,987] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,987] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,988] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,988] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:55,989] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:55,992] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:35:55,993] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,993] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,994] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,994] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,995] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,996] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,996] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,997] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,997] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:55,998] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:56,001] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:35:56,001] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,002] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,002] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,003] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,003] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,004] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,005] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,005] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,006] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:56,006] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:56,009] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:35:56,010] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,010] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,011] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,012] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,012] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,013] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,013] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,014] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,015] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:56,015] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:56,019] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:35:56,019] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,020] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,020] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,021] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,022] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,022] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,023] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,023] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,024] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:56,024] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:56,028] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:35:56,028] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,029] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,029] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,030] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,030] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,031] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,032] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,032] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,033] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:56,033] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:56,036] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:35:56,036] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,037] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,038] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,038] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,039] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,039] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,040] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,041] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,041] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:56,042] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:56,045] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:35:56,046] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,046] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,047] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,048] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,048] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,049] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,049] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,050] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,050] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:56,051] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:56,054] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:35:56,054] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,055] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,055] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,056] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,057] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,057] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,058] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,058] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,059] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:56,059] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:56,063] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:35:56,063] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,064] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,065] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,065] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,066] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,066] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,067] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,067] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,068] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:56,068] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:56,072] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:35:56,072] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,072] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,073] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,073] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,074] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,075] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,075] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,076] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,076] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:56,077] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:56,080] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:35:56,080] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,081] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,081] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,082] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,082] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,083] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,084] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,084] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,085] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:56,085] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:56,086] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:35:56,086] pyhamilton.interface INFO disconnected from server [2025-07-27 23:35:56,186] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:35:56,193] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:35:56,193] pyhamilton.interface INFO server thread exited [2025-07-27 23:36:43,240] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:36:43,240] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:36:43,240] pyhamilton.interface INFO started the server thread [2025-07-27 23:36:43,240] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:36:43,243] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:36:43,742] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:36:43,748] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:36:43,749] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,750] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,752] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,753] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,755] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,756] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,758] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,760] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,761] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,762] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,768] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:36:43,769] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,771] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,773] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,774] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,776] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,777] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,779] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,781] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,782] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,783] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,788] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:36:43,789] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,790] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,791] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,792] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,794] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,795] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,796] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,797] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,798] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,799] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,803] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:36:43,804] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,805] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,806] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,807] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,808] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,809] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,811] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,812] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,813] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,813] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,817] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:36:43,817] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,819] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,820] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,821] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,822] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,823] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,824] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,825] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,826] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,827] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,831] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:36:43,831] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,832] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,833] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,834] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,836] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,837] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,838] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,839] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,840] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,840] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,844] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:36:43,845] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,846] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,847] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,848] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,849] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,850] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,851] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,852] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,853] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,854] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,858] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:36:43,858] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,859] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,861] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,862] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,863] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,864] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,865] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,866] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,868] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,869] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,873] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:36:43,874] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,875] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,876] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,877] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,878] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,879] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,881] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,882] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,883] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,883] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,888] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:36:43,888] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,890] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,891] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,892] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,893] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,895] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,896] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,897] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,898] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,899] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,903] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:36:43,904] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,905] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,906] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,907] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,908] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,909] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,911] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,912] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,913] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,914] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,918] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:36:43,919] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,920] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,921] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,923] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,924] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,925] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,926] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,928] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,929] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,930] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,931] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:36:43,931] pyhamilton.interface INFO disconnected from server [2025-07-27 23:36:44,032] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:36:44,038] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:36:44,039] pyhamilton.interface INFO server thread exited [2025-07-28 09:47:37,096] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 09:47:37,098] pyhamilton.interface INFO running in simulation mode [2025-07-28 09:47:37,098] pyhamilton.interface INFO started the server thread [2025-07-28 09:47:37,098] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 09:47:37,110] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4 [2025-07-28 09:47:39,917] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 09:47:39,928] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-28 09:47:39,928] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,929] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,931] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:39,931] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:39,941] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12 [2025-07-28 09:47:39,941] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,942] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,942] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:39,943] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:39,953] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-28 09:47:39,953] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,954] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,955] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:39,955] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:39,963] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20 [2025-07-28 09:47:39,964] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,965] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,966] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:39,966] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:39,974] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-07-28 09:47:39,974] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,975] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,976] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:39,976] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:39,985] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28 [2025-07-28 09:47:39,986] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,986] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,987] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:39,988] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:39,997] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32 [2025-07-28 09:47:39,998] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,999] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,999] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:40,000] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:40,010] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36 [2025-07-28 09:47:40,010] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:40,011] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:40,012] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:40,013] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:40,022] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40 [2025-07-28 09:47:40,023] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:40,023] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:40,024] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:40,024] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:40,033] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44 [2025-07-28 09:47:40,034] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:40,035] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:40,035] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:40,036] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:40,044] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48 [2025-07-28 09:47:40,045] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:40,046] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:40,047] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:40,048] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:40,058] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52 [2025-07-28 09:47:40,059] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:40,059] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:40,060] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:40,061] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:40,061] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 09:47:40,061] pyhamilton.interface INFO disconnected from server [2025-07-28 09:47:40,162] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 09:47:40,173] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 09:47:40,173] pyhamilton.interface INFO server thread exited [2025-07-28 09:53:31,921] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 09:53:31,922] pyhamilton.interface INFO running in simulation mode [2025-07-28 09:53:31,922] pyhamilton.interface INFO started the server thread [2025-07-28 09:53:31,922] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 09:53:31,935] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4 [2025-07-28 09:53:32,457] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 09:53:32,469] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-28 09:53:32,470] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,471] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,472] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,473] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,483] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12 [2025-07-28 09:53:32,483] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,484] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,486] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,486] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,495] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-28 09:53:32,496] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,497] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,498] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,499] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,508] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20 [2025-07-28 09:53:32,508] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,509] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,510] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,511] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,521] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-07-28 09:53:32,523] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,524] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,525] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,526] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,537] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28 [2025-07-28 09:53:32,537] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,538] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,539] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,540] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,550] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32 [2025-07-28 09:53:32,551] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,552] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,553] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,554] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,562] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36 [2025-07-28 09:53:32,562] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,564] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,564] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,565] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,574] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40 [2025-07-28 09:53:32,574] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,575] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,576] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,576] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,585] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44 [2025-07-28 09:53:32,586] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,587] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,587] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,588] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,597] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48 [2025-07-28 09:53:32,598] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,600] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,601] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,602] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,610] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52 [2025-07-28 09:53:32,610] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,611] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,612] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,613] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,613] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 09:53:32,613] pyhamilton.interface INFO disconnected from server [2025-07-28 09:53:32,714] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 09:53:32,720] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 09:53:32,721] pyhamilton.interface INFO server thread exited [2025-07-28 09:54:08,342] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 09:54:08,342] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 09:54:08,342] pyhamilton.interface INFO started the server thread [2025-07-28 09:54:08,342] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 09:54:08,361] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4 [2025-07-28 09:54:09,021] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 09:54:09,037] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-28 09:54:09,038] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,039] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,040] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,041] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,050] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12 [2025-07-28 09:54:09,050] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,051] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,052] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,053] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,061] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-28 09:54:09,061] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,062] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,064] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,064] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,073] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20 [2025-07-28 09:54:09,074] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,075] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,075] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,076] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,086] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-07-28 09:54:09,087] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,088] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,089] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,089] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,099] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28 [2025-07-28 09:54:09,100] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,101] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,102] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,103] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,111] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32 [2025-07-28 09:54:09,112] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,114] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,115] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,116] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,125] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36 [2025-07-28 09:54:09,126] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,126] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,127] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,128] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,140] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40 [2025-07-28 09:54:09,140] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,141] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,142] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,143] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,155] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44 [2025-07-28 09:54:09,155] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,156] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,158] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,159] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,171] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48 [2025-07-28 09:54:09,171] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,172] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,173] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,174] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,186] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52 [2025-07-28 09:54:09,186] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,187] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,188] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,189] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,189] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 09:54:09,189] pyhamilton.interface INFO disconnected from server [2025-07-28 09:54:09,290] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 09:54:09,299] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 09:54:09,299] pyhamilton.interface INFO server thread exited [2025-07-28 09:55:06,841] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 09:55:06,842] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 09:55:06,842] pyhamilton.interface INFO started the server thread [2025-07-28 09:55:06,842] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 09:55:06,858] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4 [2025-07-28 09:55:07,517] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 09:55:07,538] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-28 09:55:07,538] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,539] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,540] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,541] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,551] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12 [2025-07-28 09:55:07,552] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,553] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,553] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,554] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,566] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-28 09:55:07,567] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,569] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,570] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,570] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,579] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20 [2025-07-28 09:55:07,580] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,581] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,582] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,583] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,590] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-07-28 09:55:07,591] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,592] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,593] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,594] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,604] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28 [2025-07-28 09:55:07,605] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,606] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,607] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,607] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,620] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32 [2025-07-28 09:55:07,621] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,622] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,623] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,624] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,636] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36 [2025-07-28 09:55:07,637] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,638] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,639] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,640] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,652] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40 [2025-07-28 09:55:07,653] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,654] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,654] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,655] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,665] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44 [2025-07-28 09:55:07,665] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,666] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,667] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,667] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,675] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48 [2025-07-28 09:55:07,676] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,677] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,678] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,679] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,687] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52 [2025-07-28 09:55:07,687] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,689] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,690] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,690] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,691] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 09:55:07,691] pyhamilton.interface INFO disconnected from server [2025-07-28 09:55:07,791] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 09:55:07,798] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 09:55:07,798] pyhamilton.interface INFO server thread exited [2025-07-28 09:55:50,102] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 09:55:50,102] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 09:55:50,103] pyhamilton.interface INFO started the server thread [2025-07-28 09:55:50,104] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 09:55:50,127] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4 [2025-07-28 09:55:52,372] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 09:56:19,507] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 09:56:19,693] pyhamilton.interface INFO disconnected from server [2025-07-28 09:56:19,794] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 09:56:19,804] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 09:56:19,805] pyhamilton.interface INFO server thread exited [2025-07-28 09:59:48,451] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 09:59:48,451] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 09:59:48,452] pyhamilton.interface INFO started the server thread [2025-07-28 09:59:48,452] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 09:59:48,460] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-28 09:59:51,597] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [rgt_cont_60ml_BC_A00_0001, 1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 09:59:53,611] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-28 09:59:54,613] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [rgt_cont_60ml_BC_A00_0001, 1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:59:56,618] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); rgt_cont_60ml_BC_A00_0001, 1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:59:58,624] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); rgt_cont_60ml_BC_A00_0001, 1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:59:59,627] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); rgt_cont_60ml_BC_A00_0001, 1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:00:01,632] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); rgt_cont_60ml_BC_A00_0001, 1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:00:03,636] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); rgt_cont_60ml_BC_A00_0001, 1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:00:04,639] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); rgt_cont_60ml_BC_A00_0001, 1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:00:09,644] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); rgt_cont_60ml_BC_A00_0001, 1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:00:11,649] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 10:00:13,653] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:00:15,155] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 10:00:15,155] pyhamilton.interface INFO disconnected from server [2025-07-28 10:00:15,256] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:00:15,264] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:00:15,265] pyhamilton.interface INFO server thread exited [2025-07-28 10:05:47,434] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:05:47,434] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:05:47,435] pyhamilton.interface INFO started the server thread [2025-07-28 10:05:47,435] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:05:47,470] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-28 10:05:49,475] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0, 0, 0, 0, 0] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 10:05:52,480] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:05:53,981] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 10:05:53,982] pyhamilton.interface INFO disconnected from server [2025-07-28 10:05:54,083] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:05:54,090] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:05:54,090] pyhamilton.interface INFO server thread exited [2025-07-28 10:17:04,901] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:17:04,902] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:17:04,902] pyhamilton.interface INFO started the server thread [2025-07-28 10:17:04,902] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:17:04,936] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-28 10:17:07,059] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0, 0, 0, 0, 0] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 10:17:10,065] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:17:11,566] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 10:17:11,566] pyhamilton.interface INFO disconnected from server [2025-07-28 10:17:11,667] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:17:11,675] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:17:11,676] pyhamilton.interface INFO server thread exited [2025-07-28 10:18:37,683] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:18:37,683] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:18:37,684] pyhamilton.interface INFO started the server thread [2025-07-28 10:18:37,684] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:18:37,716] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-28 10:18:41,061] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0, 0, 0, 0, 0] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 10:18:43,065] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:18:44,566] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 10:18:44,567] pyhamilton.interface INFO disconnected from server [2025-07-28 10:18:44,667] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:18:44,676] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:18:44,677] pyhamilton.interface INFO server thread exited [2025-07-28 10:19:53,032] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:19:53,034] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:19:53,034] pyhamilton.interface INFO started the server thread [2025-07-28 10:19:53,035] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:19:53,093] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-28 10:19:56,412] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0, 0, 0, 0, 0] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 10:19:58,449] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-28 10:19:59,457] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:20:01,462] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 10:20:03,467] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 10:20:04,529] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-07-28 10:20:05,533] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:20:07,539] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 10:20:09,542] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 10:20:10,575] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32 [2025-07-28 10:20:14,579] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:20:16,584] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 10:20:18,588] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 10:20:19,622] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40 [2025-07-28 10:20:20,624] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:20:22,629] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 10:20:24,634] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 10:20:25,677] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44; TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48 [2025-07-28 10:20:26,680] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:20:28,683] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 10:20:31,686] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 10:20:33,717] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52; TIP_50uLF_L_0001, 53; TIP_50uLF_L_0001, 54; TIP_50uLF_L_0001, 55; TIP_50uLF_L_0001, 56 [2025-07-28 10:20:37,712] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:20:37,870] pyhamilton.interface INFO disconnected from server [2025-07-28 10:20:37,971] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:20:37,981] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:20:37,981] pyhamilton.interface INFO server thread exited [2025-07-28 10:26:11,390] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:26:11,390] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:26:11,391] pyhamilton.interface INFO started the server thread [2025-07-28 10:26:11,391] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:26:11,428] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-28 10:26:14,557] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0, 0, 0, 0, 0] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 10:26:17,602] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-28 10:26:18,607] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:26:19,187] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:26:19,362] pyhamilton.interface INFO disconnected from server [2025-07-28 10:26:19,463] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:26:19,469] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:26:19,470] pyhamilton.interface INFO server thread exited [2025-07-28 10:26:54,220] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:26:54,220] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:26:54,220] pyhamilton.interface INFO started the server thread [2025-07-28 10:26:54,221] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:26:54,221] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:26:55,722] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 10:26:55,723] pyhamilton.interface INFO disconnected from server [2025-07-28 10:26:55,823] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:26:55,835] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:26:55,835] pyhamilton.interface INFO server thread exited [2025-07-28 10:47:47,435] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:47:47,436] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:47:47,436] pyhamilton.interface INFO started the server thread [2025-07-28 10:47:47,436] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:47:47,438] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:47:48,939] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 10:47:48,940] pyhamilton.interface INFO disconnected from server [2025-07-28 10:47:49,042] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:47:49,049] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:47:49,049] pyhamilton.interface INFO server thread exited [2025-07-28 10:48:47,275] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:48:47,276] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:48:47,276] pyhamilton.interface INFO started the server thread [2025-07-28 10:48:47,276] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:48:47,742] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-07-28 10:48:48,744] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:48:50,246] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 10:48:50,246] pyhamilton.interface INFO disconnected from server [2025-07-28 10:48:50,347] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:48:50,355] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:48:50,355] pyhamilton.interface INFO server thread exited [2025-07-28 10:51:26,113] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:51:26,114] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:51:26,114] pyhamilton.interface INFO started the server thread [2025-07-28 10:51:26,114] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:51:26,500] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-07-28 10:51:28,503] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:51:30,003] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 10:51:30,004] pyhamilton.interface INFO disconnected from server [2025-07-28 10:51:30,104] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:51:30,113] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:51:30,113] pyhamilton.interface INFO server thread exited [2025-07-28 10:57:01,747] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:57:01,747] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:57:01,747] pyhamilton.interface INFO started the server thread [2025-07-28 10:57:01,747] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:57:02,125] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-07-28 10:57:04,126] pyhamilton.interface INFO aspirate_96: Aspirate volume 0 from MIDI_Pipette with extra options {'liquid_class': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 100, 'liquid_height': 0, 'capacitative_LLD': 5, 'liquidFollowing': True} [2025-07-28 10:57:04,127] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:57:05,628] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 10:57:05,629] pyhamilton.interface INFO disconnected from server [2025-07-28 10:57:05,730] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:57:05,737] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:57:05,738] pyhamilton.interface INFO server thread exited [2025-07-28 10:58:11,948] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:58:11,948] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:58:11,949] pyhamilton.interface INFO started the server thread [2025-07-28 10:58:11,949] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:58:12,338] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-07-28 10:58:15,341] pyhamilton.interface INFO aspirate_96: Aspirate volume 0 from MIDI_Pipette with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 100, 'liquidHeight': 0, 'capacitiveLLD': 5, 'liquidFollowing': True} [2025-07-28 10:58:17,343] pyhamilton.interface INFO tip_eject_96: Eject tips to default waste [2025-07-28 10:58:18,346] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:58:19,847] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 10:58:19,847] pyhamilton.interface INFO disconnected from server [2025-07-28 10:58:19,948] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:58:19,956] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:58:19,956] pyhamilton.interface INFO server thread exited [2025-07-28 11:06:39,386] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 11:06:39,386] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 11:06:39,387] pyhamilton.interface INFO started the server thread [2025-07-28 11:06:39,387] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 11:06:39,387] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 11:06:40,888] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 11:06:40,889] pyhamilton.interface INFO disconnected from server [2025-07-28 11:06:40,989] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 11:06:41,002] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 11:06:41,002] pyhamilton.interface INFO server thread exited [2025-07-28 11:08:02,704] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 11:08:02,705] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 11:08:02,705] pyhamilton.interface INFO started the server thread [2025-07-28 11:08:02,705] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 11:08:02,707] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 11:08:04,208] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 11:08:04,209] pyhamilton.interface INFO disconnected from server [2025-07-28 11:08:04,310] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 11:08:04,322] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 11:08:04,322] pyhamilton.interface INFO server thread exited [2025-07-28 11:09:00,005] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 11:09:00,006] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 11:09:00,007] pyhamilton.interface INFO started the server thread [2025-07-28 11:09:00,008] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 11:09:00,666] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-07-28 11:09:02,669] pyhamilton.interface INFO aspirate_96: Aspirate volume 100 from MIDI_Pipette with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mix_cycles': 0, 'liquid_height': 0} [2025-07-28 11:09:02,670] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 11:09:04,171] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 11:09:04,171] pyhamilton.interface INFO disconnected from server [2025-07-28 11:09:04,271] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 11:09:04,284] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 11:09:04,284] pyhamilton.interface INFO server thread exited [2025-07-28 11:10:34,793] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 11:10:34,793] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 11:10:34,794] pyhamilton.interface INFO started the server thread [2025-07-28 11:10:34,794] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 11:10:35,418] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-07-28 11:10:37,420] pyhamilton.interface INFO aspirate_96: Aspirate volume 20 from MIDI_Pipette with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'liquidHeight': 0} [2025-07-28 11:10:39,423] pyhamilton.interface INFO dispense_96: Dispense volume 20 into MIDI_OnMagnet with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'liquidHeight': 0} [2025-07-28 11:10:41,426] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 11:10:42,927] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 11:10:42,927] pyhamilton.interface INFO disconnected from server [2025-07-28 11:10:43,028] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 11:10:43,042] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 11:10:43,042] pyhamilton.interface INFO server thread exited [2025-07-28 12:17:14,301] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 12:17:14,302] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 12:17:14,302] pyhamilton.interface INFO started the server thread [2025-07-28 12:17:14,302] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 12:17:14,893] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-07-28 12:17:16,895] pyhamilton.interface INFO aspirate_96: Aspirate volume 20 from MIDI_Pipette with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'liquidHeight': 0} [2025-07-28 12:17:18,898] pyhamilton.interface INFO dispense_96: Dispense volume 20 into MIDI_OnMagnet with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'liquidHeight': 0} [2025-07-28 12:17:20,900] pyhamilton.interface INFO tip_eject_96: Eject tips to default waste [2025-07-28 12:17:21,902] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 12:17:23,403] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 12:17:23,403] pyhamilton.interface INFO disconnected from server [2025-07-28 12:17:23,504] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 12:17:23,512] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 12:17:23,512] pyhamilton.interface INFO server thread exited [2025-07-28 13:14:58,666] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 13:14:58,667] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 13:14:58,667] pyhamilton.interface INFO started the server thread [2025-07-28 13:14:58,668] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 13:14:59,670] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 13:15:01,171] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 13:15:01,171] pyhamilton.interface INFO disconnected from server [2025-07-28 13:15:01,272] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 13:15:01,284] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 13:15:01,285] pyhamilton.interface INFO server thread exited [2025-07-28 13:19:40,797] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 13:19:40,798] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 13:19:40,798] pyhamilton.interface INFO started the server thread [2025-07-28 13:19:40,798] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 13:19:41,799] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 13:19:43,300] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 13:19:43,301] pyhamilton.interface INFO disconnected from server [2025-07-28 13:19:43,402] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 13:19:43,407] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 13:19:43,407] pyhamilton.interface INFO server thread exited [2025-07-28 13:22:34,592] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 13:22:34,592] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 13:22:34,592] pyhamilton.interface INFO started the server thread [2025-07-28 13:22:34,592] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 13:22:35,594] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 13:22:37,095] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 13:22:37,095] pyhamilton.interface INFO disconnected from server [2025-07-28 13:22:37,196] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 13:22:37,205] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 13:22:37,205] pyhamilton.interface INFO server thread exited [2025-07-28 13:23:37,045] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 13:23:37,046] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 13:23:37,046] pyhamilton.interface INFO started the server thread [2025-07-28 13:23:37,046] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 13:23:38,048] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 13:23:39,549] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 13:23:39,550] pyhamilton.interface INFO disconnected from server [2025-07-28 13:23:39,650] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 13:23:39,656] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 13:23:39,657] pyhamilton.interface INFO server thread exited [2025-07-28 13:32:10,355] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 13:32:10,355] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 13:32:10,356] pyhamilton.interface INFO started the server thread [2025-07-28 13:32:10,356] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 13:32:11,358] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 13:32:12,859] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 13:32:12,860] pyhamilton.interface INFO disconnected from server [2025-07-28 13:32:12,961] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 13:32:12,969] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 13:32:12,969] pyhamilton.interface INFO server thread exited [2025-07-28 13:41:48,131] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 13:41:48,131] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 13:41:48,132] pyhamilton.interface INFO started the server thread [2025-07-28 13:41:48,132] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 13:41:49,134] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 13:41:50,635] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 13:41:50,636] pyhamilton.interface INFO disconnected from server [2025-07-28 13:41:50,736] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 13:41:50,744] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 13:41:50,744] pyhamilton.interface INFO server thread exited [2025-07-28 13:43:02,619] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 13:43:02,621] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 13:43:02,621] pyhamilton.interface INFO started the server thread [2025-07-28 13:43:02,622] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 13:43:03,625] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 13:43:05,126] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 13:43:05,127] pyhamilton.interface INFO disconnected from server [2025-07-28 13:43:05,228] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 13:43:05,239] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 13:43:05,240] pyhamilton.interface INFO server thread exited [2025-07-28 13:44:35,269] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 13:44:35,270] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 13:44:35,270] pyhamilton.interface INFO started the server thread [2025-07-28 13:44:35,271] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 13:44:36,273] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 13:44:37,774] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 13:44:37,775] pyhamilton.interface INFO disconnected from server [2025-07-28 13:44:37,875] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 13:44:37,886] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 13:44:37,887] pyhamilton.interface INFO server thread exited [2025-07-28 13:59:44,318] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 13:59:44,319] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 13:59:44,319] pyhamilton.interface INFO started the server thread [2025-07-28 13:59:44,319] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 13:59:45,321] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 13:59:46,823] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 13:59:46,824] pyhamilton.interface INFO disconnected from server [2025-07-28 13:59:46,925] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 13:59:46,937] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 13:59:46,938] pyhamilton.interface INFO server thread exited [2025-07-28 14:11:33,012] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 14:11:33,012] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 14:11:33,013] pyhamilton.interface INFO started the server thread [2025-07-28 14:11:33,013] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 14:11:34,016] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 14:11:35,516] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 14:11:35,517] pyhamilton.interface INFO disconnected from server [2025-07-28 14:11:35,618] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 14:11:35,631] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 14:11:35,631] pyhamilton.interface INFO server thread exited [2025-07-28 14:45:37,566] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 14:45:37,568] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 14:45:37,568] pyhamilton.interface INFO started the server thread [2025-07-28 14:45:37,569] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 14:45:38,572] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 14:45:40,073] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 14:45:40,073] pyhamilton.interface INFO disconnected from server [2025-07-28 14:45:40,174] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 14:45:40,184] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 14:45:40,185] pyhamilton.interface INFO server thread exited [2025-07-28 14:50:41,782] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 14:50:41,782] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 14:50:41,782] pyhamilton.interface INFO started the server thread [2025-07-28 14:50:41,782] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 14:50:45,786] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 14:50:47,288] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 14:50:47,288] pyhamilton.interface INFO disconnected from server [2025-07-28 14:50:47,388] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 14:50:47,397] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 14:50:47,398] pyhamilton.interface INFO server thread exited [2025-07-29 12:54:22,433] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 12:54:22,434] pyhamilton.interface INFO running in simulation mode [2025-07-29 12:54:22,434] pyhamilton.interface INFO started the server thread [2025-07-29 12:54:22,434] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 12:54:22,946] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8; TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16; TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24; TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32; TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40; TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44; TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48; TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52; TIP_50uLF_L_0001, 53; TIP_50uLF_L_0001, 54; TIP_50uLF_L_0001, 55; TIP_50uLF_L_0001, 56; TIP_50uLF_L_0001, 57; TIP_50uLF_L_0001, 58; TIP_50uLF_L_0001, 59; TIP_50uLF_L_0001, 60; TIP_50uLF_L_0001, 61; TIP_50uLF_L_0001, 62; TIP_50uLF_L_0001, 63; TIP_50uLF_L_0001, 64; TIP_50uLF_L_0001, 65; TIP_50uLF_L_0001, 66; TIP_50uLF_L_0001, 67; TIP_50uLF_L_0001, 68; TIP_50uLF_L_0001, 69; TIP_50uLF_L_0001, 70; TIP_50uLF_L_0001, 71; TIP_50uLF_L_0001, 72; TIP_50uLF_L_0001, 73; TIP_50uLF_L_0001, 74; TIP_50uLF_L_0001, 75; TIP_50uLF_L_0001, 76; TIP_50uLF_L_0001, 77; TIP_50uLF_L_0001, 78; TIP_50uLF_L_0001, 79; TIP_50uLF_L_0001, 80; TIP_50uLF_L_0001, 81; TIP_50uLF_L_0001, 82; TIP_50uLF_L_0001, 83; TIP_50uLF_L_0001, 84; TIP_50uLF_L_0001, 85; TIP_50uLF_L_0001, 86; TIP_50uLF_L_0001, 87; TIP_50uLF_L_0001, 88; TIP_50uLF_L_0001, 89; TIP_50uLF_L_0001, 90; TIP_50uLF_L_0001, 91; TIP_50uLF_L_0001, 92; TIP_50uLF_L_0001, 93; TIP_50uLF_L_0001, 94; TIP_50uLF_L_0001, 95; TIP_50uLF_L_0001, 96 [2025-07-29 12:54:22,946] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 12:54:22,946] pyhamilton.interface INFO disconnected from server [2025-07-29 12:54:23,047] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 12:54:23,058] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 12:54:23,059] pyhamilton.interface INFO server thread exited [2025-07-29 12:55:16,188] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 12:55:16,188] pyhamilton.interface INFO running in simulation mode [2025-07-29 12:55:16,188] pyhamilton.interface INFO started the server thread [2025-07-29 12:55:16,188] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 12:55:16,693] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8; TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16; TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24; TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32; TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40; TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44; TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48; TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52; TIP_50uLF_L_0001, 53; TIP_50uLF_L_0001, 54; TIP_50uLF_L_0001, 55; TIP_50uLF_L_0001, 56; TIP_50uLF_L_0001, 57; TIP_50uLF_L_0001, 58; TIP_50uLF_L_0001, 59; TIP_50uLF_L_0001, 60; TIP_50uLF_L_0001, 61; TIP_50uLF_L_0001, 62; TIP_50uLF_L_0001, 63; TIP_50uLF_L_0001, 64; TIP_50uLF_L_0001, 65; TIP_50uLF_L_0001, 66; TIP_50uLF_L_0001, 67; TIP_50uLF_L_0001, 68; TIP_50uLF_L_0001, 69; TIP_50uLF_L_0001, 70; TIP_50uLF_L_0001, 71; TIP_50uLF_L_0001, 72; TIP_50uLF_L_0001, 73; TIP_50uLF_L_0001, 74; TIP_50uLF_L_0001, 75; TIP_50uLF_L_0001, 76; TIP_50uLF_L_0001, 77; TIP_50uLF_L_0001, 78; TIP_50uLF_L_0001, 79; TIP_50uLF_L_0001, 80; TIP_50uLF_L_0001, 81; TIP_50uLF_L_0001, 82; TIP_50uLF_L_0001, 83; TIP_50uLF_L_0001, 84; TIP_50uLF_L_0001, 85; TIP_50uLF_L_0001, 86; TIP_50uLF_L_0001, 87; TIP_50uLF_L_0001, 88; TIP_50uLF_L_0001, 89; TIP_50uLF_L_0001, 90; TIP_50uLF_L_0001, 91; TIP_50uLF_L_0001, 92; TIP_50uLF_L_0001, 93; TIP_50uLF_L_0001, 94; TIP_50uLF_L_0001, 95; TIP_50uLF_L_0001, 96 [2025-07-29 12:55:16,693] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 12:55:16,693] pyhamilton.interface INFO disconnected from server [2025-07-29 12:55:16,794] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 12:55:16,800] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 12:55:16,800] pyhamilton.interface INFO server thread exited [2025-07-29 12:55:36,988] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 12:55:36,989] pyhamilton.interface INFO running in simulation mode [2025-07-29 12:55:36,989] pyhamilton.interface INFO started the server thread [2025-07-29 12:55:36,989] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 12:55:37,507] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8; TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16; TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24; TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32; TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40; TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44; TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48; TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52; TIP_50uLF_L_0001, 53; TIP_50uLF_L_0001, 54; TIP_50uLF_L_0001, 55; TIP_50uLF_L_0001, 56; TIP_50uLF_L_0001, 57; TIP_50uLF_L_0001, 58; TIP_50uLF_L_0001, 59; TIP_50uLF_L_0001, 60; TIP_50uLF_L_0001, 61; TIP_50uLF_L_0001, 62; TIP_50uLF_L_0001, 63; TIP_50uLF_L_0001, 64; TIP_50uLF_L_0001, 65; TIP_50uLF_L_0001, 66; TIP_50uLF_L_0001, 67; TIP_50uLF_L_0001, 68; TIP_50uLF_L_0001, 69; TIP_50uLF_L_0001, 70; TIP_50uLF_L_0001, 71; TIP_50uLF_L_0001, 72; TIP_50uLF_L_0001, 73; TIP_50uLF_L_0001, 74; TIP_50uLF_L_0001, 75; TIP_50uLF_L_0001, 76; TIP_50uLF_L_0001, 77; TIP_50uLF_L_0001, 78; TIP_50uLF_L_0001, 79; TIP_50uLF_L_0001, 80; TIP_50uLF_L_0001, 81; TIP_50uLF_L_0001, 82; TIP_50uLF_L_0001, 83; TIP_50uLF_L_0001, 84; TIP_50uLF_L_0001, 85; TIP_50uLF_L_0001, 86; TIP_50uLF_L_0001, 87; TIP_50uLF_L_0001, 88; TIP_50uLF_L_0001, 89; TIP_50uLF_L_0001, 90; TIP_50uLF_L_0001, 91; TIP_50uLF_L_0001, 92; TIP_50uLF_L_0001, 93; TIP_50uLF_L_0001, 94; TIP_50uLF_L_0001, 95; TIP_50uLF_L_0001, 96 [2025-07-29 12:55:37,507] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 12:55:37,508] pyhamilton.interface INFO disconnected from server [2025-07-29 12:55:37,608] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 12:55:37,615] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 12:55:37,615] pyhamilton.interface INFO server thread exited [2025-07-29 12:56:03,848] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 12:56:03,848] pyhamilton.interface INFO running in simulation mode [2025-07-29 12:56:03,848] pyhamilton.interface INFO started the server thread [2025-07-29 12:56:03,848] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 12:56:04,357] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8; TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16; TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24; TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32; TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40; TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44; TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48; TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52; TIP_50uLF_L_0001, 53; TIP_50uLF_L_0001, 54; TIP_50uLF_L_0001, 55; TIP_50uLF_L_0001, 56; TIP_50uLF_L_0001, 57; TIP_50uLF_L_0001, 58; TIP_50uLF_L_0001, 59; TIP_50uLF_L_0001, 60; TIP_50uLF_L_0001, 61; TIP_50uLF_L_0001, 62; TIP_50uLF_L_0001, 63; TIP_50uLF_L_0001, 64; TIP_50uLF_L_0001, 65; TIP_50uLF_L_0001, 66; TIP_50uLF_L_0001, 67; TIP_50uLF_L_0001, 68; TIP_50uLF_L_0001, 69; TIP_50uLF_L_0001, 70; TIP_50uLF_L_0001, 71; TIP_50uLF_L_0001, 72; TIP_50uLF_L_0001, 73; TIP_50uLF_L_0001, 74; TIP_50uLF_L_0001, 75; TIP_50uLF_L_0001, 76; TIP_50uLF_L_0001, 77; TIP_50uLF_L_0001, 78; TIP_50uLF_L_0001, 79; TIP_50uLF_L_0001, 80; TIP_50uLF_L_0001, 81; TIP_50uLF_L_0001, 82; TIP_50uLF_L_0001, 83; TIP_50uLF_L_0001, 84; TIP_50uLF_L_0001, 85; TIP_50uLF_L_0001, 86; TIP_50uLF_L_0001, 87; TIP_50uLF_L_0001, 88; TIP_50uLF_L_0001, 89; TIP_50uLF_L_0001, 90; TIP_50uLF_L_0001, 91; TIP_50uLF_L_0001, 92; TIP_50uLF_L_0001, 93; TIP_50uLF_L_0001, 94; TIP_50uLF_L_0001, 95; TIP_50uLF_L_0001, 96 [2025-07-29 12:56:04,357] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 12:56:04,357] pyhamilton.interface INFO disconnected from server [2025-07-29 12:56:04,458] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 12:56:04,464] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 12:56:04,464] pyhamilton.interface INFO server thread exited [2025-07-29 12:56:55,212] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 12:56:55,212] pyhamilton.interface INFO running in simulation mode [2025-07-29 12:56:55,212] pyhamilton.interface INFO started the server thread [2025-07-29 12:56:55,212] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 12:56:55,713] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8; TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16; TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24; TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32; TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40; TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44; TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48; TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52; TIP_50uLF_L_0001, 53; TIP_50uLF_L_0001, 54; TIP_50uLF_L_0001, 55; TIP_50uLF_L_0001, 56; TIP_50uLF_L_0001, 57; TIP_50uLF_L_0001, 58; TIP_50uLF_L_0001, 59; TIP_50uLF_L_0001, 60; TIP_50uLF_L_0001, 61; TIP_50uLF_L_0001, 62; TIP_50uLF_L_0001, 63; TIP_50uLF_L_0001, 64; TIP_50uLF_L_0001, 65; TIP_50uLF_L_0001, 66; TIP_50uLF_L_0001, 67; TIP_50uLF_L_0001, 68; TIP_50uLF_L_0001, 69; TIP_50uLF_L_0001, 70; TIP_50uLF_L_0001, 71; TIP_50uLF_L_0001, 72; TIP_50uLF_L_0001, 73; TIP_50uLF_L_0001, 74; TIP_50uLF_L_0001, 75; TIP_50uLF_L_0001, 76; TIP_50uLF_L_0001, 77; TIP_50uLF_L_0001, 78; TIP_50uLF_L_0001, 79; TIP_50uLF_L_0001, 80; TIP_50uLF_L_0001, 81; TIP_50uLF_L_0001, 82; TIP_50uLF_L_0001, 83; TIP_50uLF_L_0001, 84; TIP_50uLF_L_0001, 85; TIP_50uLF_L_0001, 86; TIP_50uLF_L_0001, 87; TIP_50uLF_L_0001, 88; TIP_50uLF_L_0001, 89; TIP_50uLF_L_0001, 90; TIP_50uLF_L_0001, 91; TIP_50uLF_L_0001, 92; TIP_50uLF_L_0001, 93; TIP_50uLF_L_0001, 94; TIP_50uLF_L_0001, 95; TIP_50uLF_L_0001, 96 [2025-07-29 12:56:55,713] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 12:56:55,714] pyhamilton.interface INFO disconnected from server [2025-07-29 12:56:55,814] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 12:56:55,820] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 12:56:55,820] pyhamilton.interface INFO server thread exited [2025-07-29 14:21:04,947] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:21:04,947] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:21:04,947] pyhamilton.interface INFO started the server thread [2025-07-29 14:21:04,947] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:21:05,663] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:21:05,664] pyhamilton.interface INFO disconnected from server [2025-07-29 14:21:05,765] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:21:05,772] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:21:05,772] pyhamilton.interface INFO server thread exited [2025-07-29 14:22:29,529] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:22:29,529] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:22:29,529] pyhamilton.interface INFO started the server thread [2025-07-29 14:22:29,529] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:22:30,297] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:22:30,298] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0} [2025-07-29 14:22:30,299] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:22:30,299] pyhamilton.interface INFO disconnected from server [2025-07-29 14:22:30,400] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:22:30,407] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:22:30,407] pyhamilton.interface INFO server thread exited [2025-07-29 14:25:30,908] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:25:30,908] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:25:30,908] pyhamilton.interface INFO started the server thread [2025-07-29 14:25:30,908] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:25:31,568] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:25:31,569] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0} [2025-07-29 14:25:31,570] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:25:31,571] pyhamilton.interface INFO disconnected from server [2025-07-29 14:25:31,671] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:25:31,678] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:25:31,678] pyhamilton.interface INFO server thread exited [2025-07-29 14:26:02,540] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:26:02,540] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:26:02,540] pyhamilton.interface INFO started the server thread [2025-07-29 14:26:02,540] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:26:03,171] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:26:03,172] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0} [2025-07-29 14:26:03,173] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:26:03,173] pyhamilton.interface INFO disconnected from server [2025-07-29 14:26:03,274] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:26:03,280] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:26:03,280] pyhamilton.interface INFO server thread exited [2025-07-29 14:27:43,468] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:27:43,468] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:27:43,468] pyhamilton.interface INFO started the server thread [2025-07-29 14:27:43,468] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:27:44,239] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:27:44,240] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:27:44,241] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:27:44,242] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:27:44,242] pyhamilton.interface INFO disconnected from server [2025-07-29 14:27:44,342] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:27:44,348] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:27:44,349] pyhamilton.interface INFO server thread exited [2025-07-29 14:28:35,380] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:28:35,381] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:28:35,381] pyhamilton.interface INFO started the server thread [2025-07-29 14:28:35,381] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:28:36,259] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:28:36,259] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:28:36,261] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,261] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,262] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,263] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,263] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,264] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,264] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,265] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,265] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,266] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,267] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,267] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,334] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-29 14:28:36,335] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:28:36,336] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,337] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,338] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,338] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,339] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,340] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,340] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,341] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,342] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,342] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,343] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,343] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,344] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:28:36,344] pyhamilton.interface INFO disconnected from server [2025-07-29 14:28:36,444] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:28:36,452] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:28:36,452] pyhamilton.interface INFO server thread exited [2025-07-29 14:32:53,249] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:32:53,249] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:32:53,250] pyhamilton.interface INFO started the server thread [2025-07-29 14:32:53,250] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:32:53,927] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:32:53,928] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:32:53,929] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:32:53,929] pyhamilton.interface INFO disconnected from server [2025-07-29 14:32:54,030] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:32:54,036] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:32:54,037] pyhamilton.interface INFO server thread exited [2025-07-29 14:33:55,295] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:33:55,295] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:33:55,295] pyhamilton.interface INFO started the server thread [2025-07-29 14:33:55,295] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:33:55,924] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:33:55,925] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:33:55,926] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:33:55,926] pyhamilton.interface INFO disconnected from server [2025-07-29 14:33:56,027] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:33:56,033] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:33:56,033] pyhamilton.interface INFO server thread exited [2025-07-29 14:35:00,021] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:35:00,021] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:35:00,021] pyhamilton.interface INFO started the server thread [2025-07-29 14:35:00,021] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:35:00,771] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:35:00,771] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:35:00,775] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,776] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,779] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,780] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,783] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,784] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,786] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,787] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,789] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,789] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,790] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,792] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,861] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-29 14:35:00,861] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:35:00,865] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,865] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,867] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,868] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,869] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,869] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,870] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,871] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,872] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,873] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,874] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,875] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,875] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:35:00,875] pyhamilton.interface INFO disconnected from server [2025-07-29 14:35:00,976] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:35:00,984] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:35:00,984] pyhamilton.interface INFO server thread exited [2025-07-29 14:35:19,886] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:35:19,886] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:35:19,886] pyhamilton.interface INFO started the server thread [2025-07-29 14:35:19,887] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:35:20,582] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:35:20,583] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:35:20,584] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,585] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,586] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,587] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,588] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,588] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,590] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,592] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,592] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,593] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,594] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,595] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,666] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-29 14:35:20,666] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:35:20,668] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,669] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,670] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,671] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,673] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,674] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,675] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,676] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,678] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,678] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,679] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,680] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,680] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:35:20,680] pyhamilton.interface INFO disconnected from server [2025-07-29 14:35:20,781] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:35:20,788] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:35:20,788] pyhamilton.interface INFO server thread exited [2025-07-29 14:36:07,695] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:36:07,695] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:36:07,695] pyhamilton.interface INFO started the server thread [2025-07-29 14:36:07,695] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:36:08,543] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:36:08,543] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:36:08,544] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,545] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,547] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,548] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,550] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,551] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,552] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,553] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,555] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,556] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,557] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,558] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,620] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-29 14:36:08,620] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:36:08,621] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,622] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,623] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,624] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,625] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,626] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,627] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,627] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,629] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,629] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,630] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,631] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,631] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:36:08,631] pyhamilton.interface INFO disconnected from server [2025-07-29 14:36:08,732] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:36:08,740] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:36:08,740] pyhamilton.interface INFO server thread exited [2025-07-29 14:41:06,704] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:41:06,704] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:41:06,704] pyhamilton.interface INFO started the server thread [2025-07-29 14:41:06,704] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:41:07,484] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:41:07,484] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:07,486] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:07,487] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:07,555] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-29 14:41:07,555] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:07,557] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:07,558] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:07,617] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-07-29 14:41:07,617] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:07,619] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:07,620] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:07,679] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32 [2025-07-29 14:41:07,679] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:07,681] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:07,681] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:07,741] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40 [2025-07-29 14:41:07,742] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:07,743] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:07,744] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:07,801] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44; TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48 [2025-07-29 14:41:07,801] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:07,802] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:07,803] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:07,861] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52; TIP_50uLF_L_0001, 53; TIP_50uLF_L_0001, 54; TIP_50uLF_L_0001, 55; TIP_50uLF_L_0001, 56 [2025-07-29 14:41:07,861] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:07,862] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:07,863] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:07,919] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 57; TIP_50uLF_L_0001, 58; TIP_50uLF_L_0001, 59; TIP_50uLF_L_0001, 60; TIP_50uLF_L_0001, 61; TIP_50uLF_L_0001, 62; TIP_50uLF_L_0001, 63; TIP_50uLF_L_0001, 64 [2025-07-29 14:41:07,919] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:07,921] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:07,922] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:07,979] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 65; TIP_50uLF_L_0001, 66; TIP_50uLF_L_0001, 67; TIP_50uLF_L_0001, 68; TIP_50uLF_L_0001, 69; TIP_50uLF_L_0001, 70; TIP_50uLF_L_0001, 71; TIP_50uLF_L_0001, 72 [2025-07-29 14:41:07,979] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:07,981] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:07,981] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:08,038] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 73; TIP_50uLF_L_0001, 74; TIP_50uLF_L_0001, 75; TIP_50uLF_L_0001, 76; TIP_50uLF_L_0001, 77; TIP_50uLF_L_0001, 78; TIP_50uLF_L_0001, 79; TIP_50uLF_L_0001, 80 [2025-07-29 14:41:08,038] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:08,039] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:08,040] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:08,099] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 81; TIP_50uLF_L_0001, 82; TIP_50uLF_L_0001, 83; TIP_50uLF_L_0001, 84; TIP_50uLF_L_0001, 85; TIP_50uLF_L_0001, 86; TIP_50uLF_L_0001, 87; TIP_50uLF_L_0001, 88 [2025-07-29 14:41:08,100] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:08,101] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:08,102] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:08,172] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 89; TIP_50uLF_L_0001, 90; TIP_50uLF_L_0001, 91; TIP_50uLF_L_0001, 92; TIP_50uLF_L_0001, 93; TIP_50uLF_L_0001, 94; TIP_50uLF_L_0001, 95; TIP_50uLF_L_0001, 96 [2025-07-29 14:41:08,172] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:08,174] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:08,175] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:08,175] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:41:08,175] pyhamilton.interface INFO disconnected from server [2025-07-29 14:41:08,276] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:41:08,283] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:41:08,283] pyhamilton.interface INFO server thread exited [2025-07-29 14:41:18,727] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:41:18,727] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:41:18,727] pyhamilton.interface INFO started the server thread [2025-07-29 14:41:18,728] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:41:19,448] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:41:19,448] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:19,449] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:19,450] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:19,517] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-29 14:41:19,517] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:19,518] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:19,519] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:19,586] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-07-29 14:41:19,587] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:19,587] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:19,588] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:19,648] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32 [2025-07-29 14:41:19,648] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:19,648] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:19,649] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:19,708] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40 [2025-07-29 14:41:19,708] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:19,709] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:19,710] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:19,772] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44; TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48 [2025-07-29 14:41:19,773] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:19,773] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:19,774] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:19,835] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52; TIP_50uLF_L_0001, 53; TIP_50uLF_L_0001, 54; TIP_50uLF_L_0001, 55; TIP_50uLF_L_0001, 56 [2025-07-29 14:41:19,836] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:19,836] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:19,837] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:19,895] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 57; TIP_50uLF_L_0001, 58; TIP_50uLF_L_0001, 59; TIP_50uLF_L_0001, 60; TIP_50uLF_L_0001, 61; TIP_50uLF_L_0001, 62; TIP_50uLF_L_0001, 63; TIP_50uLF_L_0001, 64 [2025-07-29 14:41:19,896] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:19,896] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:19,897] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:19,959] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 65; TIP_50uLF_L_0001, 66; TIP_50uLF_L_0001, 67; TIP_50uLF_L_0001, 68; TIP_50uLF_L_0001, 69; TIP_50uLF_L_0001, 70; TIP_50uLF_L_0001, 71; TIP_50uLF_L_0001, 72 [2025-07-29 14:41:19,959] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:19,959] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:19,960] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:20,021] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 73; TIP_50uLF_L_0001, 74; TIP_50uLF_L_0001, 75; TIP_50uLF_L_0001, 76; TIP_50uLF_L_0001, 77; TIP_50uLF_L_0001, 78; TIP_50uLF_L_0001, 79; TIP_50uLF_L_0001, 80 [2025-07-29 14:41:20,022] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:20,022] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:20,023] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:20,083] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 81; TIP_50uLF_L_0001, 82; TIP_50uLF_L_0001, 83; TIP_50uLF_L_0001, 84; TIP_50uLF_L_0001, 85; TIP_50uLF_L_0001, 86; TIP_50uLF_L_0001, 87; TIP_50uLF_L_0001, 88 [2025-07-29 14:41:20,084] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:20,084] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:20,085] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:20,151] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 89; TIP_50uLF_L_0001, 90; TIP_50uLF_L_0001, 91; TIP_50uLF_L_0001, 92; TIP_50uLF_L_0001, 93; TIP_50uLF_L_0001, 94; TIP_50uLF_L_0001, 95; TIP_50uLF_L_0001, 96 [2025-07-29 14:41:20,151] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:20,152] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:20,153] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:20,153] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:41:20,153] pyhamilton.interface INFO disconnected from server [2025-07-29 14:41:20,254] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:41:20,264] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:41:20,264] pyhamilton.interface INFO server thread exited [2025-07-29 15:15:29,998] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 15:15:29,999] pyhamilton.interface INFO started the oem application for simulation [2025-07-29 15:15:29,999] pyhamilton.interface INFO started the server thread [2025-07-29 15:15:29,999] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 15:15:31,350] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 15:15:32,352] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:15:34,355] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:15:36,358] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 15:15:37,457] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-29 15:15:38,460] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:15:40,465] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:15:42,468] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 15:15:43,605] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-07-29 15:15:45,609] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:15:50,613] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:15:56,620] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 15:15:58,584] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 15:15:59,167] pyhamilton.interface INFO disconnected from server [2025-07-29 15:15:59,268] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 15:15:59,280] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 15:15:59,280] pyhamilton.interface INFO server thread exited [2025-07-29 15:18:18,079] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 15:18:18,079] pyhamilton.interface INFO started the oem application for simulation [2025-07-29 15:18:18,079] pyhamilton.interface INFO started the server thread [2025-07-29 15:18:18,080] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 15:18:19,219] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 15:18:20,221] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:18:23,225] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:18:25,228] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 15:18:26,325] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-29 15:18:27,327] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:18:29,330] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:18:31,335] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 15:18:33,439] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-07-29 15:18:36,442] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:18:41,940] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 15:18:42,143] pyhamilton.interface INFO disconnected from server [2025-07-29 15:18:42,244] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 15:18:42,252] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 15:18:42,252] pyhamilton.interface INFO server thread exited [2025-07-29 15:20:01,549] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 15:20:01,550] pyhamilton.interface INFO started the oem application for simulation [2025-07-29 15:20:01,550] pyhamilton.interface INFO started the server thread [2025-07-29 15:20:01,550] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 15:20:02,634] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 15:20:03,636] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:20:05,639] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:20:07,644] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 15:20:09,766] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-29 15:20:10,770] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:20:12,775] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:20:14,780] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 15:20:15,968] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-07-29 15:20:16,971] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:20:18,975] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:20:20,980] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 15:20:22,131] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32 [2025-07-29 15:20:25,136] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:20:31,142] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:20:38,149] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 15:20:41,247] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40 [2025-07-29 15:20:44,075] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 15:20:44,270] pyhamilton.interface INFO disconnected from server [2025-07-29 15:20:44,371] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 15:20:44,382] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 15:20:44,383] pyhamilton.interface INFO server thread exited [2025-07-29 15:23:09,602] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 15:23:09,602] pyhamilton.interface INFO started the oem application for simulation [2025-07-29 15:23:09,602] pyhamilton.interface INFO started the server thread [2025-07-29 15:23:09,603] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 15:23:10,785] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 1; HTF_L_0001, 2; HTF_L_0001, 3; HTF_L_0001, 4; HTF_L_0001, 5; HTF_L_0001, 6; HTF_L_0001, 7; HTF_L_0001, 8 [2025-07-29 15:23:11,786] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:23:14,788] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 15:23:16,290] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-29 15:23:16,290] pyhamilton.interface INFO disconnected from server [2025-07-29 15:23:16,390] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 15:23:16,397] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 15:23:16,398] pyhamilton.interface INFO server thread exited [2025-07-29 15:23:50,333] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 15:23:50,333] pyhamilton.interface INFO started the oem application for simulation [2025-07-29 15:23:50,333] pyhamilton.interface INFO started the server thread [2025-07-29 15:23:50,333] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 15:23:51,421] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 15:23:52,922] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-29 15:23:52,922] pyhamilton.interface INFO disconnected from server [2025-07-29 15:23:53,023] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 15:23:53,029] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 15:23:53,029] pyhamilton.interface INFO server thread exited [2025-07-29 15:25:17,966] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 15:25:17,967] pyhamilton.interface INFO started the oem application for simulation [2025-07-29 15:25:17,968] pyhamilton.interface INFO started the server thread [2025-07-29 15:25:17,969] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 15:25:19,169] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 1; HTF_L_0001, 2; HTF_L_0001, 3; HTF_L_0001, 4; HTF_L_0001, 5; HTF_L_0001, 6; HTF_L_0001, 7; HTF_L_0001, 8 [2025-07-29 15:25:20,171] pyhamilton.interface INFO aspirate: Aspirate volumes [600, 600, 600, 600, 600, 600, 600, 600] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:25:23,178] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:25:25,182] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:25:27,185] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:25:29,189] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:25:31,197] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:25:32,202] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:25:36,206] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:25:42,213] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:25:47,219] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:25:52,223] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:25:57,228] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:26:03,234] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:26:08,239] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 15:26:11,242] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 15:26:12,743] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-29 15:26:12,744] pyhamilton.interface INFO disconnected from server [2025-07-29 15:26:12,845] pyhamilton.interface INFO server thread exited [2025-08-04 14:49:58,853] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 14:49:58,854] pyhamilton.interface INFO running in simulation mode [2025-08-04 14:49:58,854] pyhamilton.interface INFO started the server thread [2025-08-04 14:49:58,854] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 14:49:59,638] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 14:49:59,640] pyhamilton.interface INFO disconnected from server [2025-08-04 14:49:59,741] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 14:49:59,746] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 14:49:59,747] pyhamilton.interface INFO server thread exited [2025-08-04 14:50:29,597] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 14:50:29,597] pyhamilton.interface INFO running in simulation mode [2025-08-04 14:50:29,597] pyhamilton.interface INFO started the server thread [2025-08-04 14:50:29,597] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 14:50:30,223] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 1; HTF_L_0001, 2; HTF_L_0001, 3; HTF_L_0001, 4; HTF_L_0001, 5; HTF_L_0001, 6; HTF_L_0001, 7; HTF_L_0001, 8 [2025-08-04 14:50:30,223] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:30,223] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:30,223] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:30,466] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 9; HTF_L_0001, 10; HTF_L_0001, 11; HTF_L_0001, 12; HTF_L_0001, 13; HTF_L_0001, 14; HTF_L_0001, 15; HTF_L_0001, 16 [2025-08-04 14:50:30,466] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:30,466] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:30,466] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:30,708] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 17; HTF_L_0001, 18; HTF_L_0001, 19; HTF_L_0001, 20; HTF_L_0001, 21; HTF_L_0001, 22; HTF_L_0001, 23; HTF_L_0001, 24 [2025-08-04 14:50:30,709] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:30,709] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:30,709] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:30,954] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 25; HTF_L_0001, 26; HTF_L_0001, 27; HTF_L_0001, 28; HTF_L_0001, 29; HTF_L_0001, 30; HTF_L_0001, 31; HTF_L_0001, 32 [2025-08-04 14:50:30,954] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:30,954] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:30,954] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:31,193] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 33; HTF_L_0001, 34; HTF_L_0001, 35; HTF_L_0001, 36; HTF_L_0001, 37; HTF_L_0001, 38; HTF_L_0001, 39; HTF_L_0001, 40 [2025-08-04 14:50:31,193] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:31,193] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:31,193] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:31,652] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 41; HTF_L_0001, 42; HTF_L_0001, 43; HTF_L_0001, 44; HTF_L_0001, 45; HTF_L_0001, 46; HTF_L_0001, 47; HTF_L_0001, 48 [2025-08-04 14:50:31,652] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:31,652] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:31,652] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:32,533] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 49; HTF_L_0001, 50; HTF_L_0001, 51; HTF_L_0001, 52; HTF_L_0001, 53; HTF_L_0001, 54; HTF_L_0001, 55; HTF_L_0001, 56 [2025-08-04 14:50:32,534] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:32,534] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:32,534] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:33,451] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 57; HTF_L_0001, 58; HTF_L_0001, 59; HTF_L_0001, 60; HTF_L_0001, 61; HTF_L_0001, 62; HTF_L_0001, 63; HTF_L_0001, 64 [2025-08-04 14:50:33,452] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:33,452] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:33,452] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:34,317] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 65; HTF_L_0001, 66; HTF_L_0001, 67; HTF_L_0001, 68; HTF_L_0001, 69; HTF_L_0001, 70; HTF_L_0001, 71; HTF_L_0001, 72 [2025-08-04 14:50:34,318] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:34,318] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:34,318] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:35,140] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 73; HTF_L_0001, 74; HTF_L_0001, 75; HTF_L_0001, 76; HTF_L_0001, 77; HTF_L_0001, 78; HTF_L_0001, 79; HTF_L_0001, 80 [2025-08-04 14:50:35,141] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:35,141] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:35,141] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:36,232] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 81; HTF_L_0001, 82; HTF_L_0001, 83; HTF_L_0001, 84; HTF_L_0001, 85; HTF_L_0001, 86; HTF_L_0001, 87; HTF_L_0001, 88 [2025-08-04 14:50:36,232] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:36,232] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:36,232] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:38,655] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 89; HTF_L_0001, 90; HTF_L_0001, 91; HTF_L_0001, 92; HTF_L_0001, 93; HTF_L_0001, 94; HTF_L_0001, 95; HTF_L_0001, 96 [2025-08-04 14:50:38,655] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:38,655] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:38,655] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:38,656] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 14:50:38,656] pyhamilton.interface INFO disconnected from server [2025-08-04 14:50:38,756] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 14:50:38,766] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 14:50:38,766] pyhamilton.interface INFO server thread exited [2025-08-04 14:55:35,655] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 14:55:35,655] pyhamilton.interface INFO running in simulation mode [2025-08-04 14:55:35,655] pyhamilton.interface INFO started the server thread [2025-08-04 14:55:35,655] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 14:55:35,685] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 14:55:35,685] pyhamilton.interface INFO disconnected from server [2025-08-04 14:55:35,786] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 14:55:35,790] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 14:55:35,791] pyhamilton.interface INFO server thread exited [2025-08-04 14:58:16,358] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 14:58:16,359] pyhamilton.interface INFO running in simulation mode [2025-08-04 14:58:16,359] pyhamilton.interface INFO started the server thread [2025-08-04 14:58:16,359] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 14:58:16,381] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 14:58:16,381] pyhamilton.interface INFO disconnected from server [2025-08-04 14:58:16,482] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 14:58:16,487] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 14:58:16,487] pyhamilton.interface INFO server thread exited [2025-08-04 15:01:20,151] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 15:01:20,151] pyhamilton.interface INFO running in simulation mode [2025-08-04 15:01:20,151] pyhamilton.interface INFO started the server thread [2025-08-04 15:01:20,151] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 15:01:20,172] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 15:01:20,173] pyhamilton.interface INFO disconnected from server [2025-08-04 15:01:20,274] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 15:01:20,281] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 15:01:20,281] pyhamilton.interface INFO server thread exited [2025-08-04 15:05:44,983] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 15:05:44,983] pyhamilton.interface INFO running in simulation mode [2025-08-04 15:05:44,983] pyhamilton.interface INFO started the server thread [2025-08-04 15:05:44,983] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 15:05:45,003] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 15:05:45,004] pyhamilton.interface INFO disconnected from server [2025-08-04 15:05:45,105] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 15:05:45,112] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 15:05:45,113] pyhamilton.interface INFO server thread exited [2025-08-04 15:07:18,431] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 15:07:18,431] pyhamilton.interface INFO running in simulation mode [2025-08-04 15:07:18,432] pyhamilton.interface INFO started the server thread [2025-08-04 15:07:18,432] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 15:07:18,455] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 15:07:18,456] pyhamilton.interface INFO disconnected from server [2025-08-04 15:07:18,556] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 15:07:18,561] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 15:07:18,561] pyhamilton.interface INFO server thread exited [2025-08-04 15:08:40,504] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 15:08:40,504] pyhamilton.interface INFO running in simulation mode [2025-08-04 15:08:40,504] pyhamilton.interface INFO started the server thread [2025-08-04 15:08:40,504] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 15:08:40,521] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 15:08:40,522] pyhamilton.interface INFO disconnected from server [2025-08-04 15:08:40,622] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 15:08:40,629] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 15:08:40,629] pyhamilton.interface INFO server thread exited [2025-08-04 15:10:39,764] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 15:10:39,764] pyhamilton.interface INFO running in simulation mode [2025-08-04 15:10:39,764] pyhamilton.interface INFO started the server thread [2025-08-04 15:10:39,765] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 15:10:39,788] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 15:10:39,789] pyhamilton.interface INFO disconnected from server [2025-08-04 15:10:39,890] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 15:10:39,896] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 15:10:39,896] pyhamilton.interface INFO server thread exited [2025-08-04 15:12:11,109] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 15:12:11,110] pyhamilton.interface INFO running in simulation mode [2025-08-04 15:12:11,110] pyhamilton.interface INFO started the server thread [2025-08-04 15:12:11,110] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 15:12:11,111] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 15:12:11,111] pyhamilton.interface INFO disconnected from server [2025-08-04 15:12:11,212] pyhamilton.interface INFO server thread exited [2025-08-04 15:12:58,291] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 15:12:58,291] pyhamilton.interface INFO running in simulation mode [2025-08-04 15:12:58,291] pyhamilton.interface INFO started the server thread [2025-08-04 15:12:58,291] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 15:12:59,190] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 1; HTF_L_0001, 2; HTF_L_0001, 3; HTF_L_0001, 4; HTF_L_0001, 5; HTF_L_0001, 6; HTF_L_0001, 7; HTF_L_0001, 8 [2025-08-04 15:12:59,190] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:12:59,191] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:12:59,191] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:12:59,484] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 9; HTF_L_0001, 10; HTF_L_0001, 11; HTF_L_0001, 12; HTF_L_0001, 13; HTF_L_0001, 14; HTF_L_0001, 15; HTF_L_0001, 16 [2025-08-04 15:12:59,484] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:12:59,485] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:12:59,485] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:12:59,938] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 17; HTF_L_0001, 18; HTF_L_0001, 19; HTF_L_0001, 20; HTF_L_0001, 21; HTF_L_0001, 22; HTF_L_0001, 23; HTF_L_0001, 24 [2025-08-04 15:12:59,939] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:12:59,939] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:12:59,939] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:13:00,487] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 25; HTF_L_0001, 26; HTF_L_0001, 27; HTF_L_0001, 28; HTF_L_0001, 29; HTF_L_0001, 30; HTF_L_0001, 31; HTF_L_0001, 32 [2025-08-04 15:13:00,488] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:13:00,488] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:13:00,489] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:13:00,972] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 33; HTF_L_0001, 34; HTF_L_0001, 35; HTF_L_0001, 36; HTF_L_0001, 37; HTF_L_0001, 38; HTF_L_0001, 39; HTF_L_0001, 40 [2025-08-04 15:13:00,972] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:13:00,972] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:13:00,972] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:13:01,497] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 41; HTF_L_0001, 42; HTF_L_0001, 43; HTF_L_0001, 44; HTF_L_0001, 45; HTF_L_0001, 46; HTF_L_0001, 47; HTF_L_0001, 48 [2025-08-04 15:13:01,497] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:13:01,497] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:13:01,497] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:13:01,995] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 49; HTF_L_0001, 50; HTF_L_0001, 51; HTF_L_0001, 52; HTF_L_0001, 53; HTF_L_0001, 54; HTF_L_0001, 55; HTF_L_0001, 56 [2025-08-04 15:13:01,995] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:13:01,996] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:13:01,996] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:13:02,469] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 57; HTF_L_0001, 58; HTF_L_0001, 59; HTF_L_0001, 60; HTF_L_0001, 61; HTF_L_0001, 62; HTF_L_0001, 63; HTF_L_0001, 64 [2025-08-04 15:13:02,469] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:13:02,469] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:13:02,470] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:13:02,997] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 65; HTF_L_0001, 66; HTF_L_0001, 67; HTF_L_0001, 68; HTF_L_0001, 69; HTF_L_0001, 70; HTF_L_0001, 71; HTF_L_0001, 72 [2025-08-04 15:13:02,997] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:13:02,998] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:13:02,998] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:13:03,470] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 73; HTF_L_0001, 74; HTF_L_0001, 75; HTF_L_0001, 76; HTF_L_0001, 77; HTF_L_0001, 78; HTF_L_0001, 79; HTF_L_0001, 80 [2025-08-04 15:13:03,471] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:13:03,471] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:13:03,471] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:13:04,000] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 81; HTF_L_0001, 82; HTF_L_0001, 83; HTF_L_0001, 84; HTF_L_0001, 85; HTF_L_0001, 86; HTF_L_0001, 87; HTF_L_0001, 88 [2025-08-04 15:13:04,001] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:13:04,001] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:13:04,001] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:13:04,559] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 89; HTF_L_0001, 90; HTF_L_0001, 91; HTF_L_0001, 92; HTF_L_0001, 93; HTF_L_0001, 94; HTF_L_0001, 95; HTF_L_0001, 96 [2025-08-04 15:13:04,559] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:13:04,559] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:13:04,559] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:13:04,560] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 15:13:04,560] pyhamilton.interface INFO disconnected from server [2025-08-04 15:13:04,660] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 15:13:04,667] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 15:13:04,668] pyhamilton.interface INFO server thread exited [2025-08-04 15:16:58,433] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 15:16:58,434] pyhamilton.interface INFO running in simulation mode [2025-08-04 15:16:58,434] pyhamilton.interface INFO started the server thread [2025-08-04 15:16:58,434] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 15:16:59,302] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 1; HTF_L_0001, 2; HTF_L_0001, 3; HTF_L_0001, 4; HTF_L_0001, 5; HTF_L_0001, 6; HTF_L_0001, 7; HTF_L_0001, 8 [2025-08-04 15:16:59,303] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:16:59,303] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:16:59,303] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:16:59,750] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 9; HTF_L_0001, 10; HTF_L_0001, 11; HTF_L_0001, 12; HTF_L_0001, 13; HTF_L_0001, 14; HTF_L_0001, 15; HTF_L_0001, 16 [2025-08-04 15:16:59,750] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:16:59,751] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:16:59,751] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:17:00,280] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 17; HTF_L_0001, 18; HTF_L_0001, 19; HTF_L_0001, 20; HTF_L_0001, 21; HTF_L_0001, 22; HTF_L_0001, 23; HTF_L_0001, 24 [2025-08-04 15:17:00,280] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:17:00,280] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:17:00,281] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:17:00,839] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 25; HTF_L_0001, 26; HTF_L_0001, 27; HTF_L_0001, 28; HTF_L_0001, 29; HTF_L_0001, 30; HTF_L_0001, 31; HTF_L_0001, 32 [2025-08-04 15:17:00,840] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:17:00,840] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:17:00,840] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:17:01,391] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 33; HTF_L_0001, 34; HTF_L_0001, 35; HTF_L_0001, 36; HTF_L_0001, 37; HTF_L_0001, 38; HTF_L_0001, 39; HTF_L_0001, 40 [2025-08-04 15:17:01,391] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:17:01,392] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:17:01,392] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:17:01,960] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 41; HTF_L_0001, 42; HTF_L_0001, 43; HTF_L_0001, 44; HTF_L_0001, 45; HTF_L_0001, 46; HTF_L_0001, 47; HTF_L_0001, 48 [2025-08-04 15:17:01,960] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:17:01,960] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:17:01,960] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:17:02,441] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 49; HTF_L_0001, 50; HTF_L_0001, 51; HTF_L_0001, 52; HTF_L_0001, 53; HTF_L_0001, 54; HTF_L_0001, 55; HTF_L_0001, 56 [2025-08-04 15:17:02,441] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:17:02,441] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:17:02,441] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:17:02,942] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 57; HTF_L_0001, 58; HTF_L_0001, 59; HTF_L_0001, 60; HTF_L_0001, 61; HTF_L_0001, 62; HTF_L_0001, 63; HTF_L_0001, 64 [2025-08-04 15:17:02,942] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:17:02,943] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:17:02,943] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:17:03,441] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 65; HTF_L_0001, 66; HTF_L_0001, 67; HTF_L_0001, 68; HTF_L_0001, 69; HTF_L_0001, 70; HTF_L_0001, 71; HTF_L_0001, 72 [2025-08-04 15:17:03,442] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:17:03,442] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:17:03,442] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:17:03,926] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 73; HTF_L_0001, 74; HTF_L_0001, 75; HTF_L_0001, 76; HTF_L_0001, 77; HTF_L_0001, 78; HTF_L_0001, 79; HTF_L_0001, 80 [2025-08-04 15:17:03,926] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:17:03,926] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:17:03,926] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:17:04,413] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 81; HTF_L_0001, 82; HTF_L_0001, 83; HTF_L_0001, 84; HTF_L_0001, 85; HTF_L_0001, 86; HTF_L_0001, 87; HTF_L_0001, 88 [2025-08-04 15:17:04,413] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:17:04,413] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:17:04,413] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:17:04,964] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 89; HTF_L_0001, 90; HTF_L_0001, 91; HTF_L_0001, 92; HTF_L_0001, 93; HTF_L_0001, 94; HTF_L_0001, 95; HTF_L_0001, 96 [2025-08-04 15:17:04,964] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:17:04,964] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:17:04,964] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:17:04,964] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 15:17:04,965] pyhamilton.interface INFO disconnected from server [2025-08-04 15:17:05,065] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 15:17:05,074] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 15:17:05,074] pyhamilton.interface INFO server thread exited [2025-08-05 14:34:38,900] pyhamilton.interface INFO starting a Hamilton interface [2025-08-05 14:34:38,901] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18071e8c723f') [2025-08-05 14:34:38,901] pyhamilton.interface INFO started the oem application for simulation [2025-08-05 14:34:38,901] pyhamilton.interface INFO started the server thread [2025-08-05 14:34:38,901] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-05 14:34:42,470] pyhamilton.interface INFO tip_pick_up: Pick up tips at STF_L_0001, 1; STF_L_0001, 2; STF_L_0001, 3; STF_L_0001, 4; STF_L_0001, 5; STF_L_0001, 6; STF_L_0001, 7; STF_L_0001, 8 [2025-08-05 14:34:51,476] pyhamilton.interface INFO aspirate: Aspirate volumes [300, 300, 300, 300, 300, 300, 300, 300] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-05 14:35:08,486] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:35:18,493] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:35:26,506] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:35:34,511] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:35:42,517] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:35:47,522] pyhamilton.interface INFO sending end run command to simulator [2025-08-05 14:35:49,023] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-05 14:35:49,023] pyhamilton.interface INFO disconnected from server [2025-08-05 14:35:49,124] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-05 14:35:49,131] pyhamilton.interface INFO dummy get request sent to server [2025-08-05 14:35:49,131] pyhamilton.interface INFO server thread exited [2025-08-05 14:46:36,523] pyhamilton.interface INFO starting a Hamilton interface [2025-08-05 14:46:36,524] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x180749528583') [2025-08-05 14:46:36,524] pyhamilton.interface INFO started the oem application for simulation [2025-08-05 14:46:36,525] pyhamilton.interface INFO started the server thread [2025-08-05 14:46:36,525] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-05 14:46:38,090] pyhamilton.interface INFO tip_pick_up: Pick up tips at STF_L_0001, 1; STF_L_0001, 2; STF_L_0001, 3; STF_L_0001, 4; STF_L_0001, 5; STF_L_0001, 6; STF_L_0001, 7; STF_L_0001, 8 [2025-08-05 14:46:47,097] pyhamilton.interface INFO aspirate: Aspirate volumes [300, 300, 300, 300, 300, 300, 300, 300] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-05 14:47:03,112] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:47:13,121] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:47:21,126] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:47:28,132] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:47:36,137] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:47:44,151] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:47:52,159] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 14:48:02,874] pyhamilton.interface INFO tip_pick_up: Pick up tips at STF_L_0001, 9; STF_L_0001, 10; STF_L_0001, 11; STF_L_0001, 12; STF_L_0001, 13; STF_L_0001, 14; STF_L_0001, 15; STF_L_0001, 16 [2025-08-05 14:48:17,885] pyhamilton.interface INFO sending end run command to simulator [2025-08-05 14:48:19,386] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-05 14:48:19,386] pyhamilton.interface INFO disconnected from server [2025-08-05 14:48:19,487] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-05 14:48:19,494] pyhamilton.interface INFO dummy get request sent to server [2025-08-05 14:48:19,494] pyhamilton.interface INFO server thread exited [2025-08-05 14:52:51,797] pyhamilton.interface INFO starting a Hamilton interface [2025-08-05 14:52:51,798] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18075f54f850') [2025-08-05 14:52:51,798] pyhamilton.interface INFO started the oem application for simulation [2025-08-05 14:52:51,798] pyhamilton.interface INFO started the server thread [2025-08-05 14:52:51,798] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-05 14:52:53,101] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-08-05 14:53:02,678] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0, 0, 0, 0, 0] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-08-05 14:53:16,727] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-08-05 14:53:21,732] pyhamilton.interface INFO sending end run command to simulator [2025-08-05 14:53:23,232] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-05 14:53:23,233] pyhamilton.interface INFO disconnected from server [2025-08-05 14:53:23,333] pyhamilton.interface INFO server thread exited [2025-08-05 14:57:14,890] pyhamilton.interface INFO starting a Hamilton interface [2025-08-05 14:57:14,890] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18076f5f5689') [2025-08-05 14:57:14,890] pyhamilton.interface INFO started the oem application for simulation [2025-08-05 14:57:14,890] pyhamilton.interface INFO started the server thread [2025-08-05 14:57:14,890] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-05 14:57:16,186] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-08-05 14:57:25,661] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0, 0, 0, 0, 0] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-08-05 14:57:37,671] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 14:57:51,679] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-08-05 14:58:04,693] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 14:58:15,744] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-08-05 14:58:26,757] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 14:58:41,776] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-08-05 14:58:53,784] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 14:59:04,819] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-08-05 14:59:16,827] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 14:59:31,840] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-08-05 14:59:44,861] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 14:59:54,908] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32 [2025-08-05 15:00:05,916] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 15:00:20,931] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-08-05 15:00:33,949] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 15:00:44,001] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40 [2025-08-05 15:00:55,017] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 15:01:11,032] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-08-05 15:01:25,041] pyhamilton.interface INFO sending end run command to simulator [2025-08-05 15:01:26,542] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-05 15:01:26,543] pyhamilton.interface INFO disconnected from server [2025-08-05 15:01:26,643] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-05 15:01:26,650] pyhamilton.interface INFO dummy get request sent to server [2025-08-05 15:01:26,650] pyhamilton.interface INFO server thread exited [2025-08-05 15:11:22,982] pyhamilton.interface INFO starting a Hamilton interface [2025-08-05 15:11:22,983] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1807a1af02ad') [2025-08-05 15:11:22,983] pyhamilton.interface INFO started the oem application for simulation [2025-08-05 15:11:22,984] pyhamilton.interface INFO started the server thread [2025-08-05 15:11:22,984] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-05 15:11:24,103] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-08-05 15:11:34,507] pyhamilton.interface INFO sending end run command to simulator [2025-08-05 15:11:36,009] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-05 15:11:36,009] pyhamilton.interface INFO disconnected from server [2025-08-05 15:11:36,110] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-05 15:11:36,121] pyhamilton.interface INFO dummy get request sent to server [2025-08-05 15:11:36,121] pyhamilton.interface INFO server thread exited [2025-08-05 15:13:16,486] pyhamilton.interface INFO starting a Hamilton interface [2025-08-05 15:13:16,486] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1807a891838d') [2025-08-05 15:13:16,486] pyhamilton.interface INFO started the oem application for simulation [2025-08-05 15:13:16,487] pyhamilton.interface INFO started the server thread [2025-08-05 15:13:16,487] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-05 15:13:17,546] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-08-05 15:13:27,057] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 15:13:41,081] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'liquidFollowing': False} [2025-08-05 15:13:54,102] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 15:14:05,140] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-08-05 15:14:17,148] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 15:14:34,169] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'liquidFollowing': False} [2025-08-05 15:14:49,190] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 15:15:01,264] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-08-05 15:15:13,274] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 15:15:33,285] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'liquidFollowing': False} [2025-08-05 15:15:46,294] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 15:15:57,338] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32 [2025-08-05 15:16:08,347] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 15:16:23,368] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'liquidFollowing': False} [2025-08-05 15:16:37,377] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 15:16:49,437] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40 [2025-08-05 15:16:59,443] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 15:17:15,453] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'liquidFollowing': False} [2025-08-05 15:17:33,463] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 15:17:48,528] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44; TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48 [2025-08-05 15:18:02,541] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 15:18:25,579] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'liquidFollowing': False} [2025-08-05 15:18:45,609] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 15:18:59,674] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52; TIP_50uLF_L_0001, 53; TIP_50uLF_L_0001, 54; TIP_50uLF_L_0001, 55; TIP_50uLF_L_0001, 56 [2025-08-05 15:19:13,684] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 15:19:38,735] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'liquidFollowing': False} [2025-08-05 15:19:58,748] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 15:20:25,476] pyhamilton.interface INFO sending end run command to simulator [2025-08-05 15:20:25,654] pyhamilton.interface INFO disconnected from server [2025-08-05 15:20:25,754] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-05 15:20:25,763] pyhamilton.interface INFO dummy get request sent to server [2025-08-05 15:20:25,764] pyhamilton.interface INFO server thread exited [2025-08-06 14:48:21,590] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 14:48:21,591] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b6d4ea40b') [2025-08-06 14:48:21,591] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 14:48:21,592] pyhamilton.interface INFO started the server thread [2025-08-06 14:48:21,592] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 14:48:22,593] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 14:48:24,095] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 14:48:24,095] pyhamilton.interface INFO disconnected from server [2025-08-06 14:48:24,196] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 14:48:24,205] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 14:48:24,205] pyhamilton.interface INFO server thread exited [2025-08-06 14:49:11,009] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 14:49:11,010] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b7040ab90') [2025-08-06 14:49:11,010] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 14:49:11,011] pyhamilton.interface INFO started the server thread [2025-08-06 14:49:11,011] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 14:49:13,014] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 14:49:14,515] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 14:49:14,515] pyhamilton.interface INFO disconnected from server [2025-08-06 14:49:14,616] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 14:49:14,621] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 14:49:14,621] pyhamilton.interface INFO server thread exited [2025-08-06 14:50:02,884] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 14:50:02,884] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b73678595') [2025-08-06 14:50:02,884] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 14:50:02,884] pyhamilton.interface INFO started the server thread [2025-08-06 14:50:02,884] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 14:50:05,887] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 14:50:07,389] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 14:50:07,389] pyhamilton.interface INFO disconnected from server [2025-08-06 14:50:07,490] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 14:50:07,502] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 14:50:07,502] pyhamilton.interface INFO server thread exited [2025-08-06 14:51:48,477] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 14:51:48,477] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b79b2b706') [2025-08-06 14:51:48,478] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 14:51:48,478] pyhamilton.interface INFO started the server thread [2025-08-06 14:51:48,478] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 14:52:03,487] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 14:52:04,988] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 14:52:04,989] pyhamilton.interface INFO disconnected from server [2025-08-06 14:52:05,089] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 14:52:05,099] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 14:52:05,099] pyhamilton.interface INFO server thread exited [2025-08-06 14:54:53,056] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 14:54:53,056] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b84b33288') [2025-08-06 14:54:53,056] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 14:54:53,057] pyhamilton.interface INFO started the server thread [2025-08-06 14:54:53,057] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 14:55:07,064] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 14:55:08,565] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 14:55:08,565] pyhamilton.interface INFO disconnected from server [2025-08-06 14:55:08,666] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 14:55:08,677] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 14:55:08,678] pyhamilton.interface INFO server thread exited [2025-08-06 14:58:40,874] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 14:58:40,874] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b92199482') [2025-08-06 14:58:40,874] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 14:58:40,875] pyhamilton.interface INFO started the server thread [2025-08-06 14:58:40,875] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 14:58:42,877] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 14:58:44,378] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 14:58:44,379] pyhamilton.interface INFO disconnected from server [2025-08-06 14:58:44,480] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 14:58:44,488] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 14:58:44,488] pyhamilton.interface INFO server thread exited [2025-08-06 15:01:17,018] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 15:01:17,019] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b9b95e3b0') [2025-08-06 15:01:17,019] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 15:01:17,019] pyhamilton.interface INFO started the server thread [2025-08-06 15:01:17,020] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 15:01:19,023] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 15:01:20,524] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 15:01:20,524] pyhamilton.interface INFO disconnected from server [2025-08-06 15:01:20,625] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 15:01:20,632] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 15:01:20,632] pyhamilton.interface INFO server thread exited [2025-08-06 15:05:18,688] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 15:05:18,688] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181ba9fda420') [2025-08-06 15:05:18,688] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 15:05:18,688] pyhamilton.interface INFO started the server thread [2025-08-06 15:05:18,689] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 15:05:20,691] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 15:05:22,192] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 15:05:22,193] pyhamilton.interface INFO disconnected from server [2025-08-06 15:05:22,293] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 15:05:22,300] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 15:05:22,300] pyhamilton.interface INFO server thread exited [2025-08-06 15:07:27,744] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 15:07:27,744] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bb1627fc3') [2025-08-06 15:07:27,744] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 15:07:27,745] pyhamilton.interface INFO started the server thread [2025-08-06 15:07:27,745] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 15:07:29,747] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 15:07:31,248] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 15:07:31,248] pyhamilton.interface INFO disconnected from server [2025-08-06 15:07:31,348] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 15:07:31,354] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 15:07:31,354] pyhamilton.interface INFO server thread exited [2025-08-06 15:08:38,623] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 15:08:38,623] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bb5e82607') [2025-08-06 15:08:38,623] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 15:08:38,623] pyhamilton.interface INFO started the server thread [2025-08-06 15:08:38,624] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 15:08:41,627] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 15:08:43,128] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 15:08:43,129] pyhamilton.interface INFO disconnected from server [2025-08-06 15:08:43,230] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 15:08:43,239] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 15:08:43,239] pyhamilton.interface INFO server thread exited [2025-08-06 15:09:56,162] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 15:09:56,163] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bba8770ad') [2025-08-06 15:09:56,163] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 15:09:56,163] pyhamilton.interface INFO started the server thread [2025-08-06 15:09:56,163] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 15:09:59,165] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 15:10:00,666] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 15:10:00,666] pyhamilton.interface INFO disconnected from server [2025-08-06 15:10:00,767] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 15:10:00,779] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 15:10:00,779] pyhamilton.interface INFO server thread exited [2025-08-06 15:12:38,219] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 15:12:38,220] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bc42fdfc1') [2025-08-06 15:12:38,221] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 15:12:38,221] pyhamilton.interface INFO started the server thread [2025-08-06 15:12:38,222] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 15:12:40,225] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 15:12:41,727] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 15:12:41,728] pyhamilton.interface INFO disconnected from server [2025-08-06 15:12:41,829] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 15:12:41,839] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 15:12:41,839] pyhamilton.interface INFO server thread exited [2025-08-06 15:14:31,897] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 15:14:31,898] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bcb061f4f') [2025-08-06 15:14:31,898] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 15:14:31,899] pyhamilton.interface INFO started the server thread [2025-08-06 15:14:31,899] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 15:14:33,902] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 15:14:35,403] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 15:14:35,403] pyhamilton.interface INFO disconnected from server [2025-08-06 15:14:35,504] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 15:14:35,511] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 15:14:35,512] pyhamilton.interface INFO server thread exited [2025-08-06 15:16:33,404] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 15:16:33,404] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bd2442240') [2025-08-06 15:16:33,405] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 15:16:33,405] pyhamilton.interface INFO started the server thread [2025-08-06 15:16:33,405] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 15:16:39,408] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 5 sec while waiting for response id 0x181bd3ab5fe6') [2025-08-06 15:16:39,408] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 15:16:40,909] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 15:16:40,909] pyhamilton.interface INFO disconnected from server [2025-08-06 15:16:41,010] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 15:16:41,020] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 15:16:41,020] pyhamilton.interface INFO server thread exited [2025-08-06 15:18:28,295] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 15:18:28,297] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bd90df881') [2025-08-06 15:18:28,297] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 15:18:28,298] pyhamilton.interface INFO started the server thread [2025-08-06 15:18:28,298] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 15:18:43,305] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 15:18:44,811] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 15:18:44,811] pyhamilton.interface INFO disconnected from server [2025-08-06 15:18:44,912] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 15:18:44,920] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 15:18:44,920] pyhamilton.interface INFO server thread exited [2025-08-06 15:20:38,209] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 15:20:38,209] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181be0cc5705') [2025-08-06 15:20:38,210] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 15:20:38,210] pyhamilton.interface INFO started the server thread [2025-08-06 15:20:38,210] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 15:21:03,222] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 15:21:04,723] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 15:21:04,724] pyhamilton.interface INFO disconnected from server [2025-08-06 15:21:04,825] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 15:21:04,834] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 15:21:04,835] pyhamilton.interface INFO server thread exited [2025-08-11 13:42:51,400] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 13:42:51,401] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x187f11b190ef') [2025-08-11 13:42:51,401] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 13:42:51,401] pyhamilton.interface INFO started the server thread [2025-08-11 13:42:51,401] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 13:43:25,405] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 30 sec while waiting for response id 0x187f19f513de') [2025-08-11 13:43:25,406] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 13:43:26,907] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 13:43:26,908] pyhamilton.interface INFO disconnected from server [2025-08-11 13:43:27,008] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 13:43:27,017] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 13:43:27,017] pyhamilton.interface INFO server thread exited [2025-08-11 13:44:28,340] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 13:44:28,341] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x187f1e1816d5') [2025-08-11 13:44:28,341] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 13:44:28,341] pyhamilton.interface INFO started the server thread [2025-08-11 13:44:28,341] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 13:45:15,368] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 13:45:16,869] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 13:45:16,869] pyhamilton.interface INFO disconnected from server [2025-08-11 13:45:16,971] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 13:45:16,979] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 13:45:16,979] pyhamilton.interface INFO server thread exited [2025-08-11 13:46:27,739] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 13:46:27,740] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x187f250799e3') [2025-08-11 13:46:27,740] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 13:46:27,740] pyhamilton.interface INFO started the server thread [2025-08-11 13:46:27,740] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 13:47:01,745] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 30 sec while waiting for response id 0x187f26da2968') [2025-08-11 13:47:01,746] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 13:47:03,247] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 13:47:03,248] pyhamilton.interface INFO disconnected from server [2025-08-11 13:47:03,349] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 13:47:03,365] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 13:47:03,366] pyhamilton.interface INFO server thread exited [2025-08-11 13:49:35,744] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 13:49:35,745] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x187f306a8336') [2025-08-11 13:49:35,746] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 13:49:35,746] pyhamilton.interface INFO started the server thread [2025-08-11 13:49:35,746] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 13:49:42,752] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 13:49:44,254] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 13:49:44,254] pyhamilton.interface INFO disconnected from server [2025-08-11 13:49:44,355] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 13:49:44,363] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 13:49:44,363] pyhamilton.interface INFO server thread exited [2025-08-11 14:54:49,039] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 14:54:49,040] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188019a8f3ae') [2025-08-11 14:54:49,040] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 14:54:49,040] pyhamilton.interface INFO started the server thread [2025-08-11 14:54:49,040] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 14:54:52,042] pyhamilton.interface INFO move_plate: Moving plate HSP_Pipette2 to HSP_ODTC [2025-08-11 14:55:36,079] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 14:55:37,580] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 14:55:37,580] pyhamilton.interface INFO disconnected from server [2025-08-11 14:55:37,681] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 14:55:37,687] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 14:55:37,688] pyhamilton.interface INFO server thread exited [2025-08-11 14:59:49,291] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 14:59:49,291] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18802b348991') [2025-08-11 14:59:49,292] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 14:59:49,292] pyhamilton.interface INFO started the server thread [2025-08-11 14:59:49,292] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 14:59:54,304] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 14:59:55,805] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 14:59:55,806] pyhamilton.interface INFO disconnected from server [2025-08-11 14:59:55,907] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 14:59:55,915] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 14:59:55,915] pyhamilton.interface INFO server thread exited [2025-08-11 15:07:33,836] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:07:33,837] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1880474fb20b') [2025-08-11 15:07:33,837] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:07:33,837] pyhamilton.interface INFO started the server thread [2025-08-11 15:07:33,838] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:07:36,851] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:07:38,351] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:07:38,352] pyhamilton.interface INFO disconnected from server [2025-08-11 15:07:38,453] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:07:38,461] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:07:38,461] pyhamilton.interface INFO server thread exited [2025-08-11 15:10:17,855] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:10:17,855] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188050d99c78') [2025-08-11 15:10:17,855] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:10:17,855] pyhamilton.interface INFO started the server thread [2025-08-11 15:10:17,855] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:10:20,869] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_ParkPos_0004 to Ham_ComfortLid_ODTC [2025-08-11 15:10:20,869] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:10:22,370] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:10:22,371] pyhamilton.interface INFO disconnected from server [2025-08-11 15:10:22,471] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:10:22,480] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:10:22,480] pyhamilton.interface INFO server thread exited [2025-08-11 15:12:26,558] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:12:26,559] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188058a3e9ee') [2025-08-11 15:12:26,559] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:12:26,560] pyhamilton.interface INFO started the server thread [2025-08-11 15:12:26,560] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:12:34,579] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_ParkPos_0004 to Ham_ComfortLid_ODTC [2025-08-11 15:12:34,579] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:12:36,080] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:12:36,080] pyhamilton.interface INFO disconnected from server [2025-08-11 15:12:36,181] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:12:36,187] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:12:36,187] pyhamilton.interface INFO server thread exited [2025-08-11 15:13:44,138] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:13:44,139] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18805d52e2d5') [2025-08-11 15:13:44,139] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:13:44,139] pyhamilton.interface INFO started the server thread [2025-08-11 15:13:44,139] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:13:47,155] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_ParkPos_0004 to Ham_ComfortLid_ODTC [2025-08-11 15:13:50,157] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:13:51,658] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:13:51,658] pyhamilton.interface INFO disconnected from server [2025-08-11 15:13:51,759] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:13:51,764] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:13:51,764] pyhamilton.interface INFO server thread exited [2025-08-11 15:15:43,581] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:15:43,582] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1880647189fd') [2025-08-11 15:15:43,582] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:15:43,582] pyhamilton.interface INFO started the server thread [2025-08-11 15:15:43,582] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:15:48,603] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 15:15:50,604] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:15:52,105] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:15:52,106] pyhamilton.interface INFO disconnected from server [2025-08-11 15:15:52,206] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:15:52,219] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:15:52,220] pyhamilton.interface INFO server thread exited [2025-08-11 15:18:14,255] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:18:14,256] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18806d4e2351') [2025-08-11 15:18:14,257] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:18:14,257] pyhamilton.interface INFO started the server thread [2025-08-11 15:18:14,257] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:18:17,271] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 15:18:18,272] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:18:19,773] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:18:19,774] pyhamilton.interface INFO disconnected from server [2025-08-11 15:18:19,874] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:18:19,883] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:18:19,884] pyhamilton.interface INFO server thread exited [2025-08-11 15:20:26,997] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:20:26,998] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18807537850f') [2025-08-11 15:20:26,999] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:20:26,999] pyhamilton.interface INFO started the server thread [2025-08-11 15:20:26,999] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:20:31,004] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004_lid to Ham_ComfortLid_ODTC_lid [2025-08-11 15:20:33,006] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:20:34,507] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:20:34,507] pyhamilton.interface INFO disconnected from server [2025-08-11 15:20:34,608] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:20:34,619] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:20:34,620] pyhamilton.interface INFO server thread exited [2025-08-11 15:29:00,035] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:29:00,035] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188093bc932b') [2025-08-11 15:29:00,035] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:29:00,036] pyhamilton.interface INFO started the server thread [2025-08-11 15:29:00,036] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:29:04,040] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 15:29:04,040] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:29:05,541] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:29:05,542] pyhamilton.interface INFO disconnected from server [2025-08-11 15:29:05,643] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:29:05,651] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:29:05,651] pyhamilton.interface INFO server thread exited [2025-08-11 15:30:47,349] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:30:47,350] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188099e4e911') [2025-08-11 15:30:47,350] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:30:47,351] pyhamilton.interface INFO started the server thread [2025-08-11 15:30:47,351] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:30:51,355] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 15:30:51,356] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:30:52,859] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:30:52,860] pyhamilton.interface INFO disconnected from server [2025-08-11 15:30:52,961] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:30:52,973] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:30:52,974] pyhamilton.interface INFO server thread exited [2025-08-11 15:32:19,742] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:32:19,743] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18809fc26e20') [2025-08-11 15:32:19,743] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:32:19,744] pyhamilton.interface INFO started the server thread [2025-08-11 15:32:19,744] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:32:22,747] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 15:32:45,768] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:32:47,268] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:32:47,269] pyhamilton.interface INFO disconnected from server [2025-08-11 15:32:47,370] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:32:47,378] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:32:47,378] pyhamilton.interface INFO server thread exited [2025-08-11 15:37:43,138] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:37:43,138] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1880b2db3647') [2025-08-11 15:37:43,139] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:37:43,139] pyhamilton.interface INFO started the server thread [2025-08-11 15:37:43,139] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:37:47,143] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 15:38:11,162] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:38:12,664] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:38:12,664] pyhamilton.interface INFO disconnected from server [2025-08-11 15:38:12,765] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:38:12,776] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:38:12,776] pyhamilton.interface INFO server thread exited [2025-08-11 15:40:38,709] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:40:38,710] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1880bcc8e6ee') [2025-08-11 15:40:38,710] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:40:38,711] pyhamilton.interface INFO started the server thread [2025-08-11 15:40:38,711] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:40:42,716] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 15:41:20,735] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:41:22,236] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:41:22,237] pyhamilton.interface INFO disconnected from server [2025-08-11 15:41:22,338] pyhamilton.interface INFO server thread exited [2025-08-11 15:59:59,035] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:59:59,035] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188102b7fd05') [2025-08-11 15:59:59,035] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:59:59,036] pyhamilton.interface INFO started the server thread [2025-08-11 15:59:59,036] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 16:00:03,038] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 16:00:46,066] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 16:00:47,567] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 16:00:47,568] pyhamilton.interface INFO disconnected from server [2025-08-11 16:00:47,668] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 16:00:47,677] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 16:00:47,677] pyhamilton.interface INFO server thread exited [2025-08-11 17:40:05,524] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 17:40:05,526] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1882685d426d') [2025-08-11 17:40:05,526] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 17:40:05,526] pyhamilton.interface INFO started the server thread [2025-08-11 17:40:05,527] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 17:40:08,530] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 17:40:08,530] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 17:40:10,031] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 17:40:10,032] pyhamilton.interface INFO disconnected from server [2025-08-11 17:40:10,133] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 17:40:10,145] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 17:40:10,146] pyhamilton.interface INFO server thread exited [2025-08-11 17:42:49,475] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 17:42:49,476] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18826d0522e3') [2025-08-11 17:42:49,476] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 17:42:49,476] pyhamilton.interface INFO started the server thread [2025-08-11 17:42:49,476] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 17:42:56,482] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 17:42:56,482] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 17:42:57,983] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 17:42:57,984] pyhamilton.interface INFO disconnected from server [2025-08-11 17:42:58,085] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 17:42:58,093] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 17:42:58,093] pyhamilton.interface INFO server thread exited [2025-08-11 17:46:19,482] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 17:46:19,483] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18827f066abf') [2025-08-11 17:46:19,484] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 17:46:19,484] pyhamilton.interface INFO started the server thread [2025-08-11 17:46:19,485] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 17:46:24,491] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 17:46:25,492] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 17:46:26,993] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 17:46:26,994] pyhamilton.interface INFO disconnected from server [2025-08-11 17:46:27,095] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 17:46:27,103] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 17:46:27,103] pyhamilton.interface INFO server thread exited [2025-08-11 17:48:42,519] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 17:48:42,520] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188287aba257') [2025-08-11 17:48:42,520] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 17:48:42,520] pyhamilton.interface INFO started the server thread [2025-08-11 17:48:42,520] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 17:48:46,523] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 17:48:47,524] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 17:48:49,025] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 17:48:49,025] pyhamilton.interface INFO disconnected from server [2025-08-11 17:48:49,126] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 17:48:49,133] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 17:48:49,134] pyhamilton.interface INFO server thread exited [2025-08-11 17:51:12,134] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 17:51:12,135] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188290782088') [2025-08-11 17:51:12,135] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 17:51:12,136] pyhamilton.interface INFO started the server thread [2025-08-11 17:51:12,136] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 17:51:15,139] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 17:51:56,162] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 17:51:57,663] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 17:51:57,664] pyhamilton.interface INFO disconnected from server [2025-08-11 17:51:57,764] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 17:51:57,771] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 17:51:57,772] pyhamilton.interface INFO server thread exited [2025-08-11 17:55:19,070] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 17:55:19,071] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18829ee3b74b') [2025-08-11 17:55:19,072] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 17:55:19,072] pyhamilton.interface INFO started the server thread [2025-08-11 17:55:19,072] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 17:55:23,076] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 17:56:03,098] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 17:56:04,600] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 17:56:04,600] pyhamilton.interface INFO disconnected from server [2025-08-11 17:56:04,701] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 17:56:04,715] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 17:56:04,716] pyhamilton.interface INFO server thread exited [2025-08-11 17:57:14,356] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 17:57:14,357] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1882a5b36a1a') [2025-08-11 17:57:14,358] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 17:57:14,358] pyhamilton.interface INFO started the server thread [2025-08-11 17:57:14,358] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 17:57:17,363] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 17:57:57,384] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 17:57:58,886] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 17:57:58,886] pyhamilton.interface INFO disconnected from server [2025-08-11 17:57:58,987] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 17:57:58,992] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 17:57:58,993] pyhamilton.interface INFO server thread exited [2025-08-11 17:59:01,982] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 17:59:01,982] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1882abe0b70c') [2025-08-11 17:59:01,983] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 17:59:01,983] pyhamilton.interface INFO started the server thread [2025-08-11 17:59:01,984] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 17:59:05,988] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 17:59:46,012] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 17:59:47,513] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 17:59:47,514] pyhamilton.interface INFO disconnected from server [2025-08-11 17:59:47,614] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 17:59:47,623] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 17:59:47,624] pyhamilton.interface INFO server thread exited [2025-08-11 18:00:56,437] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 18:00:56,438] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1882b2e0fe5f') [2025-08-11 18:00:56,438] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 18:00:56,438] pyhamilton.interface INFO started the server thread [2025-08-11 18:00:56,439] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 18:00:59,442] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 18:01:12,451] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 18:01:13,952] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 18:01:13,952] pyhamilton.interface INFO disconnected from server [2025-08-11 18:01:14,053] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 18:01:14,061] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 18:01:14,061] pyhamilton.interface INFO server thread exited [2025-08-11 18:02:45,889] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 18:02:45,890] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1882b994def7') [2025-08-11 18:02:45,890] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 18:02:45,890] pyhamilton.interface INFO started the server thread [2025-08-11 18:02:45,890] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 18:02:48,909] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0003 to Ham_ComfortLid_ODTC [2025-08-11 18:03:31,930] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 18:03:33,431] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 18:03:33,432] pyhamilton.interface INFO disconnected from server [2025-08-11 18:03:33,533] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 18:03:33,540] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 18:03:33,540] pyhamilton.interface INFO server thread exited [2025-08-12 11:51:28,465] pyhamilton.interface INFO starting a Hamilton interface [2025-08-12 11:51:28,467] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1891a1b9f449') [2025-08-12 11:51:28,467] pyhamilton.interface INFO started the oem application for simulation [2025-08-12 11:51:28,467] pyhamilton.interface INFO started the server thread [2025-08-12 11:51:28,468] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-12 11:51:33,472] pyhamilton.interface INFO sending end run command to simulator [2025-08-12 11:51:34,973] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-12 11:51:34,973] pyhamilton.interface INFO disconnected from server [2025-08-12 11:51:35,074] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-12 11:51:35,086] pyhamilton.interface INFO dummy get request sent to server [2025-08-12 11:51:35,086] pyhamilton.interface INFO server thread exited [2025-08-12 11:52:42,216] pyhamilton.interface INFO starting a Hamilton interface [2025-08-12 11:52:42,217] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1891ac28d48b') [2025-08-12 11:52:42,217] pyhamilton.interface INFO started the oem application for simulation [2025-08-12 11:52:42,218] pyhamilton.interface INFO started the server thread [2025-08-12 11:52:42,218] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-12 11:52:48,229] pyhamilton.interface INFO sending end run command to simulator [2025-08-12 11:52:49,731] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-12 11:52:49,731] pyhamilton.interface INFO disconnected from server [2025-08-12 11:52:49,832] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-12 11:52:49,837] pyhamilton.interface INFO dummy get request sent to server [2025-08-12 11:52:49,838] pyhamilton.interface INFO server thread exited [2025-08-12 11:55:55,647] pyhamilton.interface INFO starting a Hamilton interface [2025-08-12 11:55:55,648] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1891b763fb0c') [2025-08-12 11:55:55,648] pyhamilton.interface INFO started the oem application for simulation [2025-08-12 11:55:55,648] pyhamilton.interface INFO started the server thread [2025-08-12 11:55:55,648] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-12 11:56:56,016] pyhamilton.interface INFO sending end run command to simulator [2025-08-12 11:56:56,162] pyhamilton.interface INFO disconnected from server [2025-08-12 11:56:56,263] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-12 11:56:56,271] pyhamilton.interface INFO dummy get request sent to server [2025-08-12 11:56:56,271] pyhamilton.interface INFO server thread exited [2025-08-12 12:06:37,779] pyhamilton.interface INFO starting a Hamilton interface [2025-08-12 12:06:37,780] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1891ddf67cab') [2025-08-12 12:06:37,780] pyhamilton.interface INFO started the oem application for simulation [2025-08-12 12:06:37,780] pyhamilton.interface INFO started the server thread [2025-08-12 12:06:37,781] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-12 12:06:39,783] pyhamilton.interface INFO sending end run command to simulator [2025-08-12 12:06:41,284] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-12 12:06:41,285] pyhamilton.interface INFO disconnected from server [2025-08-12 12:06:41,386] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-12 12:06:41,394] pyhamilton.interface INFO dummy get request sent to server [2025-08-12 12:06:41,394] pyhamilton.interface INFO server thread exited [2025-08-12 12:07:56,288] pyhamilton.interface INFO starting a Hamilton interface [2025-08-12 12:07:56,288] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1891e2b3a30d') [2025-08-12 12:07:56,289] pyhamilton.interface INFO started the oem application for simulation [2025-08-12 12:07:56,289] pyhamilton.interface INFO started the server thread [2025-08-12 12:07:56,289] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-12 12:09:30,337] pyhamilton.interface INFO sending end run command to simulator [2025-08-12 12:09:31,838] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-12 12:09:31,839] pyhamilton.interface INFO disconnected from server [2025-08-12 12:09:31,940] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-12 12:09:31,951] pyhamilton.interface INFO dummy get request sent to server [2025-08-12 12:09:31,951] pyhamilton.interface INFO server thread exited [2025-08-19 00:57:15,250] pyhamilton.interface INFO starting a Hamilton interface [2025-08-19 00:57:15,250] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x19155546ca36') [2025-08-19 00:57:15,250] pyhamilton.interface INFO started the oem application for simulation [2025-08-19 00:57:15,250] pyhamilton.interface INFO started the server thread [2025-08-19 00:57:15,250] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-19 00:57:16,803] pyhamilton.interface INFO tip_pick_up: Pick up tips at STF_L_0001, 1; STF_L_0001, 2; STF_L_0001, 3; STF_L_0001, 4; STF_L_0001, 5; STF_L_0001, 6; STF_L_0001, 7; STF_L_0001, 8 [2025-08-19 00:57:17,804] pyhamilton.interface INFO aspirate: Aspirate volumes [300, 300, 300, 300, 300, 300, 300, 300] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-19 00:57:19,807] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:57:23,810] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:57:25,812] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:57:27,815] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:57:29,818] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:57:32,821] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:57:36,825] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-19 00:57:39,265] pyhamilton.interface INFO tip_pick_up: Pick up tips at STF_L_0001, 9; STF_L_0001, 10; STF_L_0001, 11; STF_L_0001, 12; STF_L_0001, 13; STF_L_0001, 14; STF_L_0001, 15; STF_L_0001, 16 [2025-08-19 00:57:41,267] pyhamilton.interface INFO aspirate: Aspirate volumes [300, 300, 300, 300, 300, 300, 300, 300] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-19 00:57:45,270] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:57:48,273] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:57:52,278] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:57:55,282] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:57:59,286] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:58:13,824] pyhamilton.interface INFO sending end run command to simulator [2025-08-19 00:58:14,038] pyhamilton.interface INFO disconnected from server [2025-08-19 00:58:14,139] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-19 00:58:14,147] pyhamilton.interface INFO dummy get request sent to server [2025-08-19 00:58:14,147] pyhamilton.interface INFO server thread exited [2025-08-19 15:25:31,070] pyhamilton.interface INFO starting a Hamilton interface [2025-08-19 15:25:31,071] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1921764e7363') [2025-08-19 15:25:31,071] pyhamilton.interface INFO started the oem application for simulation [2025-08-19 15:25:31,071] pyhamilton.interface INFO started the server thread [2025-08-19 15:25:31,071] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-19 15:25:31,145] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-08-19 15:25:32,148] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquid_class': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-19 15:25:32,149] pyhamilton.interface INFO sending end run command to simulator [2025-08-19 15:25:33,650] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-19 15:25:33,650] pyhamilton.interface INFO disconnected from server [2025-08-19 15:25:33,751] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-19 15:25:33,762] pyhamilton.interface INFO dummy get request sent to server [2025-08-19 15:25:33,762] pyhamilton.interface INFO server thread exited [2025-08-19 15:26:15,620] pyhamilton.interface INFO starting a Hamilton interface [2025-08-19 15:26:15,621] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x192178c9650d') [2025-08-19 15:26:15,621] pyhamilton.interface INFO started the oem application for simulation [2025-08-19 15:26:15,621] pyhamilton.interface INFO started the server thread [2025-08-19 15:26:15,621] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-19 15:26:15,717] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-08-19 15:26:16,719] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-19 15:26:19,723] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-19 15:26:21,726] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-19 15:26:22,727] pyhamilton.interface INFO sending end run command to simulator [2025-08-19 15:26:24,228] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-19 15:26:24,229] pyhamilton.interface INFO disconnected from server [2025-08-19 15:26:24,330] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-19 15:26:24,340] pyhamilton.interface INFO dummy get request sent to server [2025-08-19 15:26:24,340] pyhamilton.interface INFO server thread exited [2025-08-19 15:27:59,413] pyhamilton.interface INFO starting a Hamilton interface [2025-08-19 15:27:59,413] pyhamilton.interface INFO running in simulation mode [2025-08-19 15:27:59,413] pyhamilton.interface INFO started the server thread [2025-08-19 15:27:59,413] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-19 15:27:59,477] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-08-19 15:27:59,478] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-19 15:27:59,479] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-19 15:27:59,479] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-19 15:27:59,479] pyhamilton.interface INFO sending end run command to simulator [2025-08-19 15:27:59,479] pyhamilton.interface INFO disconnected from server [2025-08-19 15:27:59,580] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-19 15:27:59,586] pyhamilton.interface INFO dummy get request sent to server [2025-08-19 15:27:59,587] pyhamilton.interface INFO server thread exited [2025-08-19 15:31:07,022] pyhamilton.interface INFO starting a Hamilton interface [2025-08-19 15:31:07,022] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x192181be7e79') [2025-08-19 15:31:07,022] pyhamilton.interface INFO started the oem application for simulation [2025-08-19 15:31:07,022] pyhamilton.interface INFO started the server thread [2025-08-19 15:31:07,022] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-19 15:31:07,173] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-08-19 15:31:18,180] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-19 15:31:34,205] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-19 15:31:46,209] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-19 15:31:57,238] pyhamilton.interface INFO sending end run command to simulator [2025-08-19 15:31:58,739] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-19 15:31:58,739] pyhamilton.interface INFO disconnected from server [2025-08-19 15:31:58,840] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-19 15:31:58,853] pyhamilton.interface INFO dummy get request sent to server [2025-08-19 15:31:58,854] pyhamilton.interface INFO server thread exited [2025-08-19 16:02:04,515] pyhamilton.interface INFO starting a Hamilton interface [2025-08-19 16:02:04,515] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1921f827c4ee') [2025-08-19 16:02:04,515] pyhamilton.interface INFO started the oem application for simulation [2025-08-19 16:02:04,516] pyhamilton.interface INFO started the server thread [2025-08-19 16:02:04,516] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-19 16:02:05,681] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-08-19 16:02:08,683] pyhamilton.interface INFO sending end run command to simulator [2025-08-19 16:02:10,184] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-19 16:02:10,184] pyhamilton.interface INFO disconnected from server [2025-08-19 16:02:10,285] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-19 16:02:10,290] pyhamilton.interface INFO dummy get request sent to server [2025-08-19 16:02:10,291] pyhamilton.interface INFO server thread exited [2025-08-26 14:48:58,950] pyhamilton.interface INFO starting a Hamilton interface [2025-08-26 14:48:58,952] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x19adc367a1dc') [2025-08-26 14:48:58,952] pyhamilton.interface INFO started the oem application for simulation [2025-08-26 14:48:58,953] pyhamilton.interface INFO started the server thread [2025-08-26 14:48:58,953] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-26 14:49:00,889] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-08-26 14:49:03,893] pyhamilton.interface INFO sending end run command to simulator [2025-08-26 14:49:05,393] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-26 14:49:05,394] pyhamilton.interface INFO disconnected from server [2025-08-26 14:49:05,495] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-26 14:49:05,505] pyhamilton.interface INFO dummy get request sent to server [2025-08-26 14:49:05,505] pyhamilton.interface INFO server thread exited [2025-08-26 14:50:38,968] pyhamilton.interface INFO starting a Hamilton interface [2025-08-26 14:50:38,968] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x19adcacc49cb') [2025-08-26 14:50:38,968] pyhamilton.interface INFO started the oem application for simulation [2025-08-26 14:50:38,968] pyhamilton.interface INFO started the server thread [2025-08-26 14:50:38,969] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-26 14:50:40,142] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-08-26 14:50:41,143] pyhamilton.interface INFO sending end run command to simulator [2025-08-26 14:50:42,643] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-26 14:50:42,644] pyhamilton.interface INFO disconnected from server [2025-08-26 14:50:42,744] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-26 14:50:42,747] pyhamilton.interface INFO dummy get request sent to server [2025-08-26 14:50:42,747] pyhamilton.interface INFO server thread exited [2025-08-26 14:51:25,292] pyhamilton.interface INFO starting a Hamilton interface [2025-08-26 14:51:25,293] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x19adcd70ccc8') [2025-08-26 14:51:25,293] pyhamilton.interface INFO started the oem application for simulation [2025-08-26 14:51:25,294] pyhamilton.interface INFO started the server thread [2025-08-26 14:51:25,294] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-26 14:51:26,753] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-08-26 14:51:27,755] pyhamilton.interface INFO sending end run command to simulator [2025-08-26 14:51:29,256] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-26 14:51:29,256] pyhamilton.interface INFO disconnected from server [2025-08-26 14:51:29,357] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-26 14:51:29,367] pyhamilton.interface INFO dummy get request sent to server [2025-08-26 14:51:29,368] pyhamilton.interface INFO server thread exited ================================================ FILE: pyhamilton/ngs/tests/log/main.log ================================================ [2025-07-27 23:03:16,524] root INFO ########################################################################################################################### [2025-07-27 23:03:16,524] root INFO # # [2025-07-27 23:03:16,524] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:03:16,525] root INFO # # [2025-07-27 23:03:16,525] root INFO ########################################################################################################################### [2025-07-27 23:03:16,526] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:03:16,526] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:03:16,526] pyhamilton.interface INFO started the server thread [2025-07-27 23:03:16,526] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:03:16,530] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:03:16,530] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17592e501c35', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:03:16,937] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:03:17,053] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:03:17,053] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17592e5817a2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,058] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:03:17,059] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17592e582f13', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:03:17,059] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,059] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17592e58314d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,060] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,061] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17592e5835e1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,061] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,061] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17592e5838bb', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:03:17,064] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:03:17,064] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17592e5842c9', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:03:17,064] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,065] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17592e584523', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,065] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,066] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17592e584960', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,066] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,067] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17592e584e29', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:03:17,070] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:03:17,070] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17592e585996', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:03:17,070] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,070] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17592e585b7f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,071] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,071] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17592e585ed3', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,072] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,072] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17592e586190', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:03:17,074] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:03:17,074] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17592e586a6e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:03:17,074] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,075] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17592e586ca1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,076] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,076] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17592e5870ee', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,076] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,076] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17592e5873a3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:03:17,079] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:03:17,079] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17592e587f3a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:03:17,080] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,080] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17592e5880ee', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,081] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,081] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17592e588628', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,082] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,082] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17592e5888f3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:03:17,085] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:03:17,085] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17592e58968f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:03:17,086] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,086] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17592e58984e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,087] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,087] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17592e589cb7', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,087] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,088] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17592e589f77', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:03:17,090] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:03:17,090] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17592e58a9cf', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:03:17,091] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,091] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17592e58ac40', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,092] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,092] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17592e58b0b4', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,093] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,093] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17592e58b461', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:03:17,095] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:03:17,096] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17592e58be45', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:03:17,096] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,096] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17592e58c060', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,097] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,097] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17592e58c428', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,098] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,098] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17592e58c7a3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:03:17,101] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:03:17,101] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17592e58d461', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:03:17,101] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,102] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17592e58d5f3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,103] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,103] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17592e58db3c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,104] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,104] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17592e58de2e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:03:17,106] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:03:17,106] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17592e58e89c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:03:17,107] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,107] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17592e58ea13', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,108] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,108] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17592e58eea2', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,109] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,109] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17592e58f1b3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:03:17,111] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:03:17,111] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17592e58fb8a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:03:17,111] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,112] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17592e58fd33', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,112] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,113] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17592e5900e4', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,113] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,113] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17592e5903bc', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:03:17,116] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:03:17,116] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17592e590dde', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:03:17,116] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:03:17,116] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17592e590f9d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,118] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:03:17,118] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17592e5914cc', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:03:17,118] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:03:17,118] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17592e5917c9', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:03:17,119] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:03:17,119] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:03:17,119] pyhamilton.interface INFO disconnected from server [2025-07-27 23:03:17,219] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:03:17,220] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:03:17,222] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:03:17,225] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:03:17,225] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:03:17,226] pyhamilton.interface INFO server thread exited [2025-07-27 23:05:40,552] root INFO ########################################################################################################################### [2025-07-27 23:05:40,553] root INFO # # [2025-07-27 23:05:40,553] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:05:40,553] root INFO # # [2025-07-27 23:05:40,553] root INFO ########################################################################################################################### [2025-07-27 23:05:40,553] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:05:40,554] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:05:40,554] pyhamilton.interface INFO started the server thread [2025-07-27 23:05:40,554] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:05:40,557] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:05:40,557] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175936e5cbdb', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:05:40,945] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:05:41,059] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:05:41,059] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175936ed730f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,064] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:05:41,064] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175936ed88ab', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:05:41,065] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,065] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175936ed8a5a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,065] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,066] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175936ed8d57', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,066] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,066] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175936ed8fb1', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:05:41,070] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:05:41,070] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175936ed9f3e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:05:41,070] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,071] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175936eda105', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,071] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,071] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175936eda407', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,072] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,072] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175936eda68f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:05:41,074] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:05:41,074] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175936edafc7', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:05:41,075] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,075] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175936edb14e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,075] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,076] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175936edb423', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,076] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,076] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175936edb67a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:05:41,078] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:05:41,078] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175936edbee2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:05:41,079] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,079] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175936edc05f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,079] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,079] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175936edc2fc', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,080] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,080] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175936edc54a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:05:41,082] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:05:41,082] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175936edcdff', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:05:41,082] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,083] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175936edcf76', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,083] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,083] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175936edd270', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,084] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,084] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175936edd68e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:05:41,087] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:05:41,087] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175936ede150', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:05:41,087] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,088] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175936ede320', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,088] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,088] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175936ede608', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,089] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,089] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175936ede8ac', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:05:41,091] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:05:41,091] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175936edf1d7', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:05:41,092] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,092] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175936edf35d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,092] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,092] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175936edf5de', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,093] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,093] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175936edf829', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:05:41,095] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:05:41,095] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175936ee006d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:05:41,095] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,095] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175936ee020a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,096] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,096] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175936ee0482', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,097] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,097] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175936ee07a2', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:05:41,099] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:05:41,099] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175936ee0fa9', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:05:41,099] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,099] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175936ee1120', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,100] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,100] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175936ee1403', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,101] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,101] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175936ee1774', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:05:41,103] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:05:41,104] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175936ee219b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:05:41,104] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,104] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175936ee2336', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,104] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,105] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175936ee25d0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,105] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,105] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175936ee2814', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:05:41,107] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:05:41,107] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175936ee302f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:05:41,108] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,108] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175936ee31a1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,108] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,108] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175936ee3421', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,109] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,109] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175936ee365b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:05:41,111] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:05:41,111] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175936ee3e28', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:05:41,111] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:05:41,111] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175936ee3fac', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,112] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:05:41,112] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175936ee421b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:05:41,112] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:05:41,112] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175936ee446e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:05:41,113] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:05:41,113] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:05:41,113] pyhamilton.interface INFO disconnected from server [2025-07-27 23:05:41,213] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:05:41,214] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:05:41,217] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:05:41,219] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:05:41,220] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:05:41,220] pyhamilton.interface INFO server thread exited [2025-07-27 23:07:20,329] root INFO ########################################################################################################################### [2025-07-27 23:07:20,329] root INFO # # [2025-07-27 23:07:20,329] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:07:20,329] root INFO # # [2025-07-27 23:07:20,330] root INFO ########################################################################################################################### [2025-07-27 23:07:20,330] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:07:20,330] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:07:20,330] pyhamilton.interface INFO started the server thread [2025-07-27 23:07:20,331] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:07:20,334] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:07:20,335] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17593cd84764', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:07:20,849] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:07:20,998] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:07:20,998] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17593ce26748', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,005] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:07:21,006] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17593ce2842c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:07:21,006] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,006] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17593ce28683', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,007] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,007] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17593ce28a24', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,008] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,008] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17593ce28d7f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:07:21,011] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:07:21,011] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17593ce29832', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:07:21,011] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,011] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17593ce29a91', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,012] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,012] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17593ce29da3', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,013] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,013] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17593ce2a07f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:07:21,015] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:07:21,015] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17593ce2aa68', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:07:21,016] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,016] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17593ce2ac6c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,017] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,017] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17593ce2af87', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,017] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,018] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17593ce2b309', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:07:21,022] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:07:21,022] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17593ce2c43a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:07:21,022] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,023] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17593ce2c726', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,024] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,024] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17593ce2caf8', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,024] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,024] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17593ce2cda1', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:07:21,027] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:07:21,027] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17593ce2d822', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:07:21,027] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,028] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17593ce2da47', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,028] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,029] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17593ce2dd9d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,029] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,029] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17593ce2e069', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:07:21,032] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:07:21,032] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17593ce2eae3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:07:21,032] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,033] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17593ce2ed47', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,033] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,033] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17593ce2f083', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,034] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,034] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17593ce2f46d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:07:21,038] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:07:21,038] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17593ce30448', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:07:21,039] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,039] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17593ce30714', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,040] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,040] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17593ce30b26', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,041] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,041] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17593ce30de4', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:07:21,043] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:07:21,044] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17593ce31879', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:07:21,044] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,044] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17593ce31aab', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,045] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,045] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17593ce31da0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,045] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,046] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17593ce3215b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:07:21,048] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:07:21,049] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17593ce32c90', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:07:21,049] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,049] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17593ce32ecd', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,050] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,050] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17593ce331fe', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,051] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,051] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17593ce33693', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:07:21,055] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:07:21,055] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17593ce3460c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:07:21,056] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,056] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17593ce34823', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,056] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,057] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17593ce34b2d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,057] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,057] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17593ce34e59', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:07:21,060] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:07:21,060] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17593ce358bf', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:07:21,061] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,061] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17593ce35b5e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,061] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,062] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17593ce35e6a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,062] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,062] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17593ce3613f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:07:21,065] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:07:21,065] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17593ce36c4e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:07:21,066] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:07:21,066] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17593ce36ed6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,066] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:07:21,067] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17593ce37215', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:07:21,067] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:07:21,067] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17593ce374ee', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:07:21,067] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:07:21,068] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:07:21,068] pyhamilton.interface INFO disconnected from server [2025-07-27 23:07:21,168] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:07:21,169] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:07:21,171] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:07:21,173] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:07:21,174] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:07:21,174] pyhamilton.interface INFO server thread exited [2025-07-27 23:08:23,414] root INFO ########################################################################################################################### [2025-07-27 23:08:23,415] root INFO # # [2025-07-27 23:08:23,415] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:08:23,415] root INFO # # [2025-07-27 23:08:23,415] root INFO ########################################################################################################################### [2025-07-27 23:08:23,415] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:08:23,415] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:08:23,415] pyhamilton.interface INFO started the server thread [2025-07-27 23:08:23,416] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:08:23,419] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:08:23,419] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759409ade76', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:23,850] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:08:23,969] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:08:23,969] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175940a343fe', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:23,974] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:08:23,974] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175940a355fb', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:23,975] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:23,975] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175940a35991', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:23,975] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:23,976] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175940a35c8d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:23,976] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:23,976] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175940a35f02', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:23,978] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:08:23,979] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175940a36869', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:23,979] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:23,980] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175940a36bf5', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:23,980] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:23,980] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175940a36ed8', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:23,981] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:23,981] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175940a3717e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:23,983] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:08:23,984] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175940a37b98', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:23,984] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:23,984] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175940a37ed6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:23,985] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:23,985] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175940a381ef', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:23,986] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:23,986] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175940a38446', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:23,988] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:08:23,988] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175940a38d20', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:23,989] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:23,989] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175940a3905f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:23,989] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:23,990] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175940a39314', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:23,990] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:23,990] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175940a395a2', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:23,993] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:08:23,993] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175940a3a09a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:23,994] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:23,994] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175940a3a3d5', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:23,994] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:23,995] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175940a3a664', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:23,995] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:23,995] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175940a3a89e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:23,997] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:08:23,998] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175940a3b257', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:23,998] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:23,998] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175940a3b5e2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:23,999] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:23,999] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175940a3b85f', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:24,000] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:24,000] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175940a3bad6', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:24,002] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:08:24,002] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175940a3c501', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:24,003] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:24,003] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175940a3c867', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:24,004] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:24,004] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175940a3cc2e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:24,005] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:24,005] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175940a3cf14', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:24,008] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:08:24,008] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175940a3d9e1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:24,008] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:24,009] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175940a3dd87', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:24,009] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:24,009] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175940a3e02f', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:24,010] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:24,010] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175940a3e357', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:24,013] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:08:24,013] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175940a3ee25', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:24,013] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:24,014] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175940a3f0fb', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:24,014] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:24,014] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175940a3f3a5', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:24,015] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:24,015] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175940a3f5ef', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:24,017] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:08:24,018] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175940a40013', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:24,018] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:24,018] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175940a402bc', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:24,019] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:24,019] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175940a40769', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:24,020] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:24,020] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175940a40ae0', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:24,023] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:08:24,023] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175940a41520', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:24,024] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:24,024] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175940a4186d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:24,024] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:24,024] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175940a41b18', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:24,025] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:24,025] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175940a41daf', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:24,028] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:08:24,028] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175940a42843', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:24,028] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:24,029] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175940a42b83', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:24,029] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:24,029] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175940a42e1a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:24,030] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:24,030] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175940a43051', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:24,030] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:08:24,030] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:08:24,030] pyhamilton.interface INFO disconnected from server [2025-07-27 23:08:24,131] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:08:24,131] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:08:24,135] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:08:24,137] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:08:24,138] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:08:24,139] pyhamilton.interface INFO server thread exited [2025-07-27 23:08:36,624] root INFO ########################################################################################################################### [2025-07-27 23:08:36,624] root INFO # # [2025-07-27 23:08:36,624] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:08:36,624] root INFO # # [2025-07-27 23:08:36,624] root INFO ########################################################################################################################### [2025-07-27 23:08:36,625] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:08:36,625] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:08:36,625] pyhamilton.interface INFO started the server thread [2025-07-27 23:08:36,625] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:08:36,629] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:08:36,629] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175941646efe', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:37,020] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:08:37,136] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:08:37,136] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759416c2b7f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,141] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:08:37,141] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759416c40b1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:37,142] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,142] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759416c42b4', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,142] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,142] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759416c45a1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,143] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,143] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759416c482a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:37,147] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:08:37,147] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759416c5710', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:37,147] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,148] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759416c59af', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,148] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,148] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759416c5cc2', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,149] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,149] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759416c5f51', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:37,151] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:08:37,151] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759416c68a3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:37,152] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,152] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759416c6ad7', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,153] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,153] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759416c6d68', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,153] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,153] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759416c6fb6', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:37,155] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:08:37,156] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759416c7901', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:37,156] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,156] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759416c7bae', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,157] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,157] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759416c7e5c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,157] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,158] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759416c80b4', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:37,160] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:08:37,160] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759416c8a1b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:37,160] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,161] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759416c8c13', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,161] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,161] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759416c8edb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,162] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,162] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759416c9120', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:37,164] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:08:37,164] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759416c9b87', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:37,165] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,165] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759416c9d89', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,165] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,166] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759416c9fff', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,166] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,166] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759416ca24e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:37,169] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:08:37,169] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759416caca4', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:37,169] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,169] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759416cae90', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,170] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,170] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759416cb1ab', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,171] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,171] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759416cb406', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:37,173] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:08:37,173] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759416cbe87', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:37,174] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,174] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759416cc084', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,174] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,175] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759416cc31a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,175] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,175] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759416cc662', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:37,178] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:08:37,178] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759416cd033', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:37,178] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,178] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759416cd249', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,179] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,179] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759416cd4e7', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,180] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,180] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759416cd732', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:37,182] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:08:37,182] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759416ce159', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:37,183] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,183] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759416ce35d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,183] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,184] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759416ce610', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,184] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,184] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759416ce87d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:37,187] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:08:37,187] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759416cf4b2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:37,188] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,188] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759416cf6d2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,188] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,189] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759416cf9ea', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,189] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,189] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759416cfc96', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:37,192] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:08:37,192] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759416d0640', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:08:37,192] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:08:37,192] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759416d0842', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,193] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:08:37,193] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759416d0ac9', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:08:37,193] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:08:37,194] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759416d0d06', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:08:37,194] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:08:37,194] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:08:37,194] pyhamilton.interface INFO disconnected from server [2025-07-27 23:08:37,294] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:08:37,295] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:08:37,297] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:08:37,298] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:08:37,299] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:08:37,299] pyhamilton.interface INFO server thread exited [2025-07-27 23:09:18,415] root INFO ########################################################################################################################### [2025-07-27 23:09:18,415] root INFO # # [2025-07-27 23:09:18,416] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:09:18,416] root INFO # # [2025-07-27 23:09:18,416] root INFO ########################################################################################################################### [2025-07-27 23:09:18,416] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:09:18,416] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:09:18,417] pyhamilton.interface INFO started the server thread [2025-07-27 23:09:18,417] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:09:18,420] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:09:18,420] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175943e21fbf', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:18,812] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:09:18,922] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:09:18,922] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175943e9c696', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,927] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:09:18,927] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175943e9dbf6', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:18,928] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,928] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175943e9ddf4', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,929] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,929] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175943e9e14f', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,929] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,930] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175943e9e49e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:18,932] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:09:18,932] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175943e9efcc', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:18,933] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,933] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175943e9f1d6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,934] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,934] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175943e9f52f', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,934] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,935] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175943e9f869', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:18,938] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:09:18,938] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175943ea0504', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:18,938] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,939] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175943ea075a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,939] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,939] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175943ea0a52', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,940] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,940] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175943ea0df2', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:18,943] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:09:18,943] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175943ea1840', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:18,943] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,943] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175943ea1a01', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,944] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,944] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175943ea1d0b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,945] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,945] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175943ea2000', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:18,947] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:09:18,947] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175943ea2a84', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:18,948] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,948] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175943ea2c87', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,949] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,949] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175943ea2fe4', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,949] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,950] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175943ea32b3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:18,952] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:09:18,952] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175943ea3b6a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:18,952] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,952] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175943ea3d67', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,953] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,953] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175943ea4112', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,954] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,954] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175943ea441b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:18,956] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:09:18,957] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175943ea4e43', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:18,957] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,957] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175943ea5015', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,958] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,958] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175943ea52ec', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,958] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,959] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175943ea5585', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:18,961] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:09:18,961] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175943ea5f17', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:18,961] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,961] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175943ea6100', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,962] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,962] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175943ea639a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,963] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,963] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175943ea66d8', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:18,965] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:09:18,965] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175943ea6f5b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:18,965] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,966] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175943ea70f0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,966] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,966] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175943ea7365', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,967] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,967] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175943ea7597', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:18,969] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:09:18,969] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175943ea7edf', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:18,969] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,970] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175943ea809d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,970] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,971] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175943ea848c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,971] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,971] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175943ea8780', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:18,974] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:09:18,974] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175943ea90e3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:18,974] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,974] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175943ea9291', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,975] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,975] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175943ea952b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,975] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,975] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175943ea9796', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:18,978] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:09:18,978] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175943eaa06a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:18,978] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:18,978] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175943eaa242', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,979] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:18,979] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175943eaa4cc', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:18,979] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:18,979] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175943eaa70b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:18,979] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:09:18,980] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:09:18,980] pyhamilton.interface INFO disconnected from server [2025-07-27 23:09:19,080] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:09:19,081] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:09:19,083] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:09:19,085] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:09:19,086] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:09:19,086] pyhamilton.interface INFO server thread exited [2025-07-27 23:09:51,867] root INFO ########################################################################################################################### [2025-07-27 23:09:51,867] root INFO # # [2025-07-27 23:09:51,867] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:09:51,867] root INFO # # [2025-07-27 23:09:51,867] root INFO ########################################################################################################################### [2025-07-27 23:09:51,868] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:09:51,868] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:09:51,868] pyhamilton.interface INFO started the server thread [2025-07-27 23:09:51,868] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:09:51,873] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:09:51,874] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175945e09485', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:52,302] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:09:52,427] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:09:52,427] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175945e9079e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,433] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:09:52,433] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175945e91d14', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:52,434] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,434] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175945e9224e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,435] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,436] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175945e92706', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,437] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,437] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175945e92d1d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:52,440] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:09:52,441] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175945e93afc', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:52,442] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,442] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175945e93f32', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,442] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,443] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175945e942bb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,443] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,443] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175945e94573', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:52,446] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:09:52,446] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175945e94f55', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:52,447] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,447] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175945e9531c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,447] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,448] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175945e955ff', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,448] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,448] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175945e958bd', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:52,451] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:09:52,451] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175945e9638f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:52,452] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,452] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175945e968e8', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,454] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,454] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175945e96f17', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,455] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,455] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175945e972d6', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:52,458] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:09:52,458] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175945e97f69', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:52,459] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,459] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175945e9833a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,460] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,460] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175945e98798', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,461] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,461] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175945e98b35', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:52,464] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:09:52,464] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175945e9980b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:52,465] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,465] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175945e99c17', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,466] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,466] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175945e99f47', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,467] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,467] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175945e9a20c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:52,470] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:09:52,471] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175945e9b0a6', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:52,472] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,472] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175945e9b5cb', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,473] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,473] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175945e9ba0a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,474] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,474] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175945e9bd28', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:52,477] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:09:52,477] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175945e9c920', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:52,478] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,478] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175945e9ccaa', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,478] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,479] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175945e9cfa0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,479] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,480] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175945e9d342', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:52,482] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:09:52,482] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175945e9de0c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:52,483] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,483] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175945e9e1e6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,484] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,484] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175945e9e4cf', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,485] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,485] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175945e9e72c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:52,488] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:09:52,489] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175945e9f630', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:52,489] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,490] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175945e9fa2a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,490] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,491] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175945e9fed1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,492] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,492] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175945ea038a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:52,495] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:09:52,495] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175945ea0fb3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:52,496] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,496] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175945ea1358', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,497] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,497] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175945ea1795', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,498] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,498] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175945ea1b35', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:52,500] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:09:52,501] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175945ea25a0', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:09:52,501] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:09:52,502] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175945ea290b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,503] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:09:52,503] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175945ea2de3', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:09:52,504] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:09:52,504] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175945ea31b3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:09:52,504] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:09:52,504] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:09:52,504] pyhamilton.interface INFO disconnected from server [2025-07-27 23:09:52,605] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:09:52,606] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:09:52,608] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:09:52,610] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:09:52,611] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:09:52,611] pyhamilton.interface INFO server thread exited [2025-07-27 23:10:38,145] root INFO ########################################################################################################################### [2025-07-27 23:10:38,146] root INFO # # [2025-07-27 23:10:38,146] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:10:38,146] root INFO # # [2025-07-27 23:10:38,146] root INFO ########################################################################################################################### [2025-07-27 23:10:38,146] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:10:38,147] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:10:38,147] pyhamilton.interface INFO started the server thread [2025-07-27 23:10:38,147] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:10:38,150] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:10:38,150] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175948a2b467', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:10:38,573] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:10:38,679] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:10:38,680] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175948aac873', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,685] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:10:38,685] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175948aadc1c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:10:38,686] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,686] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175948aae087', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,687] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,687] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175948aae552', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,688] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,688] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175948aae909', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:10:38,691] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:10:38,691] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175948aaf4ee', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:10:38,692] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,692] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175948aaf8af', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,693] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,693] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175948aafb85', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,693] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,694] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175948aafe68', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:10:38,696] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:10:38,696] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175948ab0796', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:10:38,697] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,697] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175948ab0bcc', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,698] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,698] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175948ab0fec', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,699] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,699] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175948ab136c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:10:38,701] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:10:38,702] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175948ab1dc8', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:10:38,702] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,702] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175948ab2141', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,703] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,703] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175948ab24f8', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,704] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,704] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175948ab27c8', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:10:38,707] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:10:38,707] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175948ab3347', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:10:38,708] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,708] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175948ab3746', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,709] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,709] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175948ab3bd5', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,710] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,710] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175948ab3f85', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:10:38,713] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:10:38,714] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175948ab4cd9', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:10:38,715] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,715] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175948ab51ef', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,716] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,716] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175948ab5690', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,717] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,717] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175948ab5a26', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:10:38,720] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:10:38,720] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175948ab676c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:10:38,721] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,722] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175948ab6bed', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,722] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,722] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175948ab6f88', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,723] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,723] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175948ab7336', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:10:38,726] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:10:38,727] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175948ab7f45', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:10:38,728] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,728] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175948ab83df', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,728] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,729] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175948ab870c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,729] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,729] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175948ab8aa4', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:10:38,732] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:10:38,732] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175948ab956e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:10:38,733] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,733] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175948ab9a2f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,734] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,735] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175948ab9e88', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,735] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,735] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175948aba213', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:10:38,738] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:10:38,738] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175948abae00', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:10:38,739] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,739] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175948abb1e2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,740] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,740] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175948abb4e3', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,741] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,741] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175948abb785', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:10:38,744] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:10:38,744] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175948abc25b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:10:38,745] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,745] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175948abc637', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,745] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,745] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175948abc957', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,746] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,746] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175948abcbf0', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:10:38,749] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:10:38,749] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175948abd657', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:10:38,750] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:10:38,750] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175948abdacf', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,751] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:10:38,751] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175948abdec5', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:10:38,752] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:10:38,752] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175948abe194', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:10:38,752] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:10:38,752] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:10:38,752] pyhamilton.interface INFO disconnected from server [2025-07-27 23:10:38,852] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:10:38,853] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:10:38,855] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:10:38,856] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:10:38,857] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:10:38,857] pyhamilton.interface INFO server thread exited [2025-07-27 23:10:59,595] root INFO ########################################################################################################################### [2025-07-27 23:10:59,596] root INFO # # [2025-07-27 23:10:59,596] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:10:59,596] root INFO # # [2025-07-27 23:10:59,596] root INFO ########################################################################################################################### [2025-07-27 23:10:59,597] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:10:59,597] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:10:59,598] pyhamilton.interface INFO started the server thread [2025-07-27 23:10:59,598] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:10:59,602] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:10:59,603] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175949ea0a6b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:10:59,988] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:11:00,122] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:11:00,122] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175949f1f7aa', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,128] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:11:00,128] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175949f20f4e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:00,129] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,129] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175949f21257', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,130] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,130] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175949f21727', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,131] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,131] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175949f21a31', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:00,134] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:11:00,134] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175949f22509', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:00,134] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,134] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175949f226d7', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,135] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,135] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175949f229ae', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,135] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,136] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175949f22c9b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:00,138] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:11:00,138] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175949f23781', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:00,139] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,139] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175949f23a5f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,140] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,140] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175949f23dec', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,141] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,141] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175949f240e8', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:00,143] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:11:00,144] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175949f24b6d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:00,144] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,144] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175949f24dc5', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,145] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,145] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175949f250bc', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,145] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,146] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175949f25372', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:00,148] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:11:00,148] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175949f25e33', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:00,149] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,149] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175949f260e2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,150] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,150] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175949f26415', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,150] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,151] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175949f266de', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:00,153] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:11:00,154] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175949f272c5', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:00,154] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,155] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175949f27657', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,155] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,155] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175949f279d5', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,156] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,156] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175949f27cbf', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:00,159] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:11:00,159] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175949f2878c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:00,159] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,160] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175949f28a95', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,161] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,161] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175949f28ece', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,161] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,161] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175949f29193', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:00,164] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:11:00,164] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175949f29b88', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:00,164] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,165] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175949f29e5e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,165] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,165] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175949f2a137', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,166] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,166] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175949f2a505', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:00,169] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:11:00,169] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175949f2af97', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:00,170] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,170] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175949f2b264', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,171] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,171] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175949f2b6fb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,172] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,172] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175949f2b9f3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:00,174] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:11:00,174] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175949f2c419', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:00,175] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,175] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175949f2c634', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,176] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,176] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175949f2c90d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,176] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,176] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175949f2cbba', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:00,178] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:11:00,179] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175949f2d458', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:00,179] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,179] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175949f2d65e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,180] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,180] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175949f2d953', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,180] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,180] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175949f2dbd0', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:00,182] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:11:00,183] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175949f2e433', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:00,183] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:00,183] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175949f2e68c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,184] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:00,184] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175949f2e949', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:00,184] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:00,185] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175949f2ebc4', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:00,185] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:11:00,185] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:11:00,185] pyhamilton.interface INFO disconnected from server [2025-07-27 23:11:00,286] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:11:00,286] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:11:00,290] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:11:00,292] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:11:00,293] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:11:00,293] pyhamilton.interface INFO server thread exited [2025-07-27 23:11:18,473] root INFO ########################################################################################################################### [2025-07-27 23:11:18,473] root INFO # # [2025-07-27 23:11:18,473] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:11:18,473] root INFO # # [2025-07-27 23:11:18,473] root INFO ########################################################################################################################### [2025-07-27 23:11:18,474] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:11:18,474] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:11:18,474] pyhamilton.interface INFO started the server thread [2025-07-27 23:11:18,474] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:11:18,478] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:11:18,478] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594b0a0f64', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:18,867] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:11:19,001] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:11:19,001] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594b120985', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,006] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:11:19,007] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594b121f4d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:19,007] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,007] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594b122271', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,008] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,008] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594b1225a0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,009] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,009] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594b122936', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:19,011] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:11:19,011] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594b12327c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:19,012] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,013] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594b1236b4', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,013] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,013] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594b12398e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,014] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,014] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594b123c0c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:19,016] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:11:19,016] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594b12442c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:19,017] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,017] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594b12477c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,017] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,018] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594b124a55', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,018] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,018] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594b124d08', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:19,021] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:11:19,021] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594b125825', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:19,022] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,022] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594b125cb5', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,023] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,023] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594b125f90', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,023] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,024] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594b1261ee', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:19,026] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:11:19,026] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594b126acd', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:19,027] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,027] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594b126e71', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,027] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,028] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594b12712a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,028] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,028] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594b12737b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:19,030] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:11:19,030] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594b127c0d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:19,031] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,032] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594b1280b5', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,032] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,032] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594b12834e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,033] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,033] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594b1285d6', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:19,035] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:11:19,035] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594b128e6b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:19,036] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,036] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594b1291a7', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,037] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,037] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594b12953b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,037] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,037] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594b1297b0', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:19,040] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:11:19,040] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594b12a15f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:19,041] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,041] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594b12a501', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,041] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,042] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594b12a800', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,042] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,042] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594b12ab58', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:19,045] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:11:19,045] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594b12b463', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:19,046] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,046] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594b12b805', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,046] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,046] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594b12ba85', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,047] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,047] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594b12bcb9', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:19,049] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:11:19,049] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594b12c59c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:19,050] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,050] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594b12ca89', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,051] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,051] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594b12cd10', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,052] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,052] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594b12cfad', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:19,055] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:11:19,055] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594b12dbc5', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:19,056] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,056] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594b12e00b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,057] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,057] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594b12e3be', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,058] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,058] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594b12e781', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:19,060] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:11:19,060] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594b12f0cd', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:19,061] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:19,061] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594b12f497', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,062] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:19,062] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594b12f736', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:19,062] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:19,063] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594b12f9ea', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:19,063] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:11:19,063] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:11:19,063] pyhamilton.interface INFO disconnected from server [2025-07-27 23:11:19,163] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:11:19,164] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:11:19,167] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:11:19,169] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:11:19,170] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:11:19,170] pyhamilton.interface INFO server thread exited [2025-07-27 23:11:37,204] root INFO ########################################################################################################################### [2025-07-27 23:11:37,204] root INFO # # [2025-07-27 23:11:37,204] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:11:37,204] root INFO # # [2025-07-27 23:11:37,205] root INFO ########################################################################################################################### [2025-07-27 23:11:37,205] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:11:37,206] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:11:37,206] pyhamilton.interface INFO started the server thread [2025-07-27 23:11:37,206] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:11:37,209] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:11:37,209] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594c27df10', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:37,598] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:11:37,707] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:11:37,708] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594c2f7a4d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,713] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:11:37,714] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594c2f91dd', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:37,715] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,715] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594c2f9698', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,716] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,716] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594c2f9a03', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,716] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,716] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594c2f9cde', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:37,719] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:11:37,719] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594c2fa7c1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:37,720] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,721] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594c2fad14', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,722] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,722] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594c2fb1e2', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,723] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,723] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594c2fb5c9', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:37,726] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:11:37,726] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594c2fc27b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:37,727] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,727] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594c2fc6f2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,728] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,728] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594c2fcb09', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,729] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,729] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594c2fce49', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:37,732] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:11:37,732] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594c2fd991', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:37,733] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,734] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594c2fe000', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,734] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,735] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594c2fe39d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,735] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,735] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594c2fe6cb', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:37,739] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:11:37,739] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594c2ff44d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:37,740] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,740] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594c2ff9b0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,741] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,741] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594c2ffe17', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,742] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,742] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594c300202', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:37,745] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:11:37,745] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594c300db4', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:37,747] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,747] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594c301354', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,747] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,747] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594c3015ec', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,748] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,748] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594c301884', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:37,751] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:11:37,751] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594c302282', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:37,752] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,753] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594c3029ae', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,753] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,754] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594c302dfb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,754] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,755] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594c303182', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:37,758] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:11:37,758] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594c303df5', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:37,759] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,759] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594c304479', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,760] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,760] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594c30477e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,761] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,761] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594c304b1c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:37,763] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:11:37,763] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594c305452', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:37,765] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,765] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594c305a63', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,766] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,766] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594c305eb6', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,767] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,767] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594c3061a6', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:37,769] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:11:37,770] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594c306ca6', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:37,771] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,771] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594c30727a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,772] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,772] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594c3075e3', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,773] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,773] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594c3078f1', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:37,775] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:11:37,775] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594c30832a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:37,777] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,777] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594c308860', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,778] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,778] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594c308c57', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,779] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,779] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594c308ffc', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:37,781] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:11:37,781] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17594c3099ba', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:11:37,783] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:11:37,783] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17594c309f9e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,784] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:11:37,784] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17594c30a384', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:11:37,784] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:11:37,785] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17594c30a6f4', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:11:37,785] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:11:37,785] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:11:37,785] pyhamilton.interface INFO disconnected from server [2025-07-27 23:11:37,885] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:11:37,886] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:11:37,888] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:11:37,890] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:11:37,891] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:11:37,891] pyhamilton.interface INFO server thread exited [2025-07-27 23:13:55,732] root INFO ########################################################################################################################### [2025-07-27 23:13:55,732] root INFO # # [2025-07-27 23:13:55,732] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:13:55,733] root INFO # # [2025-07-27 23:13:55,733] root INFO ########################################################################################################################### [2025-07-27 23:13:55,733] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:13:55,734] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:13:55,734] pyhamilton.interface INFO started the server thread [2025-07-27 23:13:55,734] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:13:55,738] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:13:55,738] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595469a936', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:13:56,231] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:13:56,353] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:13:56,354] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175954730d1a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,359] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:13:56,359] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175954732216', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:13:56,362] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,362] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175954732bce', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,362] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,363] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175954732efa', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,363] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,363] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759547331a8', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:13:56,366] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:13:56,366] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175954733b3a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:13:56,368] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,368] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595473452f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,369] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,369] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595473480f', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,369] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,370] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175954734a99', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:13:56,373] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:13:56,373] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759547357bf', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:13:56,376] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,376] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759547362ee', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,376] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,377] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759547365eb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,377] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,377] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175954736850', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:13:56,380] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:13:56,380] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175954737388', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:13:56,384] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,384] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175954738227', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,385] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,385] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759547386b1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,386] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,386] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175954738abb', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:13:56,389] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:13:56,390] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175954739912', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:13:56,393] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,393] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595473a64b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,394] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,394] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595473a9ac', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,394] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,395] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595473ac8b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:13:56,397] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:13:56,397] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595473b73f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:13:56,400] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,400] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595473c24c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,401] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,401] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595473c53e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,401] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,402] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595473c7e3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:13:56,404] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:13:56,405] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595473d31e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:13:56,407] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,408] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595473df2e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,408] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,408] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595473e23e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,409] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,409] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595473e49d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:13:56,412] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:13:56,412] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595473ef69', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:13:56,415] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,415] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595473fb21', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,415] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,416] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595473fde5', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,416] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,416] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175954740143', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:13:56,419] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:13:56,419] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175954740b4c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:13:56,421] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,422] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759547415c7', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,422] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,423] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175954741a71', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,423] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,423] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175954741d0d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:13:56,426] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:13:56,427] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175954742902', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:13:56,431] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,431] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175954743a63', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,432] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,432] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175954743d3d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,432] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,432] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175954743f9b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:13:56,435] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:13:56,435] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175954744a57', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:13:56,439] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,439] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759547459b0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,441] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,441] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759547460f5', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,441] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,442] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759547463ce', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:13:56,444] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:13:56,445] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175954746fb7', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:13:56,447] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:13:56,447] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595474790d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,448] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:13:56,448] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175954747d50', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:13:56,449] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:13:56,449] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595474803c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:13:56,449] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:13:56,449] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:13:56,449] pyhamilton.interface INFO disconnected from server [2025-07-27 23:13:56,550] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:13:56,550] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:13:56,554] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:13:56,557] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:13:56,558] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:13:56,558] pyhamilton.interface INFO server thread exited [2025-07-27 23:15:20,759] root INFO ########################################################################################################################### [2025-07-27 23:15:20,760] root INFO # # [2025-07-27 23:15:20,760] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:15:20,760] root INFO # # [2025-07-27 23:15:20,760] root INFO ########################################################################################################################### [2025-07-27 23:15:20,761] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:15:20,761] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:15:20,761] pyhamilton.interface INFO started the server thread [2025-07-27 23:15:20,761] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:15:20,764] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:15:20,764] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759597b0d0b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:15:21,195] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:15:21,317] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:15:21,317] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175959837ce1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,322] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:15:21,322] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595983914c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:15:21,325] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,325] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175959839b1d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,326] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,326] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175959839f46', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,327] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,327] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595983a252', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:15:21,329] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:15:21,329] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595983ac08', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:15:21,331] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,331] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595983b336', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,332] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,332] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595983b764', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,333] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,333] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595983bb6f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:15:21,336] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:15:21,336] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595983c718', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:15:21,339] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,339] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595983d296', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,340] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,340] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595983d747', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,341] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,341] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595983dbba', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:15:21,345] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:15:21,345] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595983e907', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:15:21,350] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,350] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595983fdd0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,351] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,352] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759598403f7', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,353] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,353] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759598408bb', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:15:21,356] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:15:21,356] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595984137e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:15:21,360] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,361] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759598426ff', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,362] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,362] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175959842db1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,363] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,364] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759598432f2', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:15:21,367] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:15:21,367] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175959844016', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:15:21,371] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,371] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175959845082', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,372] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,372] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759598453fa', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,373] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,373] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759598456ab', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:15:21,375] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:15:21,376] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595984616a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:15:21,381] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,381] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175959847689', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,382] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,382] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175959847bae', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,383] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,384] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595984809e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:15:21,387] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:15:21,387] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175959848e42', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:15:21,388] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,388] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759598492ce', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,389] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,390] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595984979a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,390] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,391] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175959849bd3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:15:21,393] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:15:21,393] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595984a6e7', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:15:21,398] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,398] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595984ba78', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,399] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,399] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595984be13', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,400] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,400] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595984c1d3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:15:21,404] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:15:21,404] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595984cf0f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:15:21,407] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,407] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595984dcb4', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,408] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,408] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595984df9c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,409] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,409] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595984e273', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:15:21,411] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:15:21,412] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595984edc5', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:15:21,416] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,416] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595984ff31', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,417] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,417] JSONLogger INFO {'command': 'channelDispense', 'id': '0x175959850454', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,418] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,419] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175959850981', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:15:21,423] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:15:21,423] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175959851a52', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:15:21,428] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:15:21,429] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175959852ff1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,429] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:15:21,430] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759598533d1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:15:21,430] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:15:21,430] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x175959853799', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:15:21,431] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:15:21,431] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:15:21,431] pyhamilton.interface INFO disconnected from server [2025-07-27 23:15:21,531] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:15:21,532] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:15:21,535] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:15:21,536] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:15:21,537] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:15:21,537] pyhamilton.interface INFO server thread exited [2025-07-27 23:16:07,710] root INFO ########################################################################################################################### [2025-07-27 23:16:07,710] root INFO # # [2025-07-27 23:16:07,710] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:16:07,711] root INFO # # [2025-07-27 23:16:07,711] root INFO ########################################################################################################################### [2025-07-27 23:16:07,711] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:16:07,711] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:16:07,712] pyhamilton.interface INFO started the server thread [2025-07-27 23:16:07,712] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:16:07,714] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:16:07,714] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595c477472', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:16:08,114] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:16:08,236] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:16:08,237] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595c4f6c83', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,243] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:16:08,243] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595c4f83fa', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:16:08,247] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,248] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595c4f974b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,248] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,249] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595c4f9abb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,249] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,249] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595c4f9d82', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:16:08,253] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:16:08,253] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595c4fab38', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:16:08,255] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,256] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595c4fb62c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,257] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,257] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595c4fbab7', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,257] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,257] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595c4fbd87', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:16:08,260] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:16:08,260] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595c4fc8f1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:16:08,264] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,264] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595c4fd73d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,265] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,265] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595c4fda6d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,265] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,266] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595c4fdd69', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:16:08,268] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:16:08,268] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595c4fe839', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:16:08,272] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,272] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595c4ff7f7', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,273] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,273] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595c4ffbbf', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,274] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,274] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595c4ffe3c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:16:08,276] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:16:08,277] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595c500852', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:16:08,279] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,279] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595c501307', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,280] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,280] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595c5015bb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,280] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,281] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595c501809', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:16:08,285] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:16:08,285] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595c502ab8', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:16:08,288] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,289] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595c5037eb', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,290] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,290] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595c503cd2', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,291] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,291] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595c503f7c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:16:08,295] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:16:08,296] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595c505230', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:16:08,299] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,299] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595c506072', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,300] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,300] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595c506338', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,300] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,300] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595c5065a0', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:16:08,304] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:16:08,304] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595c5073a2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:16:08,307] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,307] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595c507fc9', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,308] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,308] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595c5082c2', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,308] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,309] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595c508673', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:16:08,312] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:16:08,313] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595c509512', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:16:08,315] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,316] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595c50a0b2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,316] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,317] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595c50a50f', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,317] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,318] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595c50a906', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:16:08,321] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:16:08,321] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595c50b739', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:16:08,325] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,325] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595c50c4b1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,325] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,326] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595c50c7aa', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,326] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,326] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595c50ca2d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:16:08,329] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:16:08,329] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595c50d5e3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:16:08,335] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,335] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595c50ed18', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,336] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,336] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595c50f048', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,337] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,337] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595c50f381', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:16:08,341] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:16:08,341] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17595c510466', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:16:08,347] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:16:08,347] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17595c511bc8', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,348] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:16:08,348] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17595c511f9c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:16:08,349] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:16:08,349] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17595c512324', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:16:08,349] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:16:08,349] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:16:08,349] pyhamilton.interface INFO disconnected from server [2025-07-27 23:16:08,450] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:16:08,451] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:16:08,453] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:16:08,455] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:16:08,456] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:16:08,458] pyhamilton.interface INFO server thread exited [2025-07-27 23:17:17,053] root INFO ########################################################################################################################### [2025-07-27 23:17:17,053] root INFO # # [2025-07-27 23:17:17,053] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:17:17,053] root INFO # # [2025-07-27 23:17:17,053] root INFO ########################################################################################################################### [2025-07-27 23:17:17,054] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:17:17,054] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:17:17,054] pyhamilton.interface INFO started the server thread [2025-07-27 23:17:17,054] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:17:17,058] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:17:17,059] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175960699013', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:17:17,462] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:17:17,588] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:17:17,588] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17596071a414', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:17:17,594] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:17:17,594] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17596071bc55', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:17:17,594] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:17:17,594] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:17:17,595] pyhamilton.interface INFO disconnected from server [2025-07-27 23:17:17,695] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:17:17,695] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:17:17,698] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:17:17,701] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:17:17,701] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:17:17,702] pyhamilton.interface INFO server thread exited [2025-07-27 23:17:17,704] root ERROR Traceback (most recent call last): [2025-07-27 23:17:17,706] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 35, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-27 23:17:17,706] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 136, in pip_transfer vols = set_parallel_nones(split_column_volumes, positions) [2025-07-27 23:17:17,707] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 82, in set_parallel_nones positions[i] = None ~~~~~~~~~^^^ [2025-07-27 23:17:17,707] root ERROR IndexError: list assignment index out of range [2025-07-27 23:18:31,850] root INFO ########################################################################################################################### [2025-07-27 23:18:31,850] root INFO # # [2025-07-27 23:18:31,851] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:18:31,851] root INFO # # [2025-07-27 23:18:31,851] root INFO ########################################################################################################################### [2025-07-27 23:18:31,851] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:18:31,852] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:18:31,852] pyhamilton.interface INFO started the server thread [2025-07-27 23:18:31,852] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:18:31,856] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:18:31,856] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175964dee139', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:18:32,273] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:18:32,393] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:18:32,393] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175964e71339', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:18:32,398] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:18:32,398] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175964e727ee', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:18:32,399] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:18:32,399] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:18:32,399] pyhamilton.interface INFO disconnected from server [2025-07-27 23:18:32,500] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:18:32,500] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:18:32,502] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:18:32,503] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:18:32,504] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:18:32,504] pyhamilton.interface INFO server thread exited [2025-07-27 23:18:32,506] root ERROR Traceback (most recent call last): [2025-07-27 23:18:32,506] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 35, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-27 23:18:32,507] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 136, in pip_transfer vols = set_parallel_nones(split_column_volumes, positions) [2025-07-27 23:18:32,507] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 82, in set_parallel_nones positions[i] = None ~~~~~~~~~^^^ [2025-07-27 23:18:32,507] root ERROR IndexError: list assignment index out of range [2025-07-27 23:18:58,015] root INFO ########################################################################################################################### [2025-07-27 23:18:58,015] root INFO # # [2025-07-27 23:18:58,015] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:18:58,015] root INFO # # [2025-07-27 23:18:58,015] root INFO ########################################################################################################################### [2025-07-27 23:18:58,015] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:18:58,016] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:18:58,016] pyhamilton.interface INFO started the server thread [2025-07-27 23:18:58,016] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:18:58,020] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:18:58,020] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759666e1bc2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:18:58,460] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:18:58,579] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:18:58,580] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17596676a636', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:18:58,585] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:18:58,585] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17596676bd3c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:18:58,586] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:18:58,586] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:18:58,586] pyhamilton.interface INFO disconnected from server [2025-07-27 23:18:58,687] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:18:58,688] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:18:58,690] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:18:58,692] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:18:58,692] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:18:58,693] pyhamilton.interface INFO server thread exited [2025-07-27 23:18:58,694] root ERROR Traceback (most recent call last): [2025-07-27 23:18:58,695] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 35, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-27 23:18:58,695] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 136, in pip_transfer vols = set_parallel_nones(split_column_volumes, positions) [2025-07-27 23:18:58,695] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 82, in set_parallel_nones positions[i] = None ~~~~~~~~~^^^ [2025-07-27 23:18:58,696] root ERROR IndexError: list assignment index out of range [2025-07-27 23:19:35,760] root INFO ########################################################################################################################### [2025-07-27 23:19:35,760] root INFO # # [2025-07-27 23:19:35,760] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:19:35,761] root INFO # # [2025-07-27 23:19:35,761] root INFO ########################################################################################################################### [2025-07-27 23:19:35,761] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:19:35,761] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:19:35,761] pyhamilton.interface INFO started the server thread [2025-07-27 23:19:35,762] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:19:35,765] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:19:35,766] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175968ae102d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:19:36,165] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:19:36,293] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:19:36,293] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175968b61d1c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:19:36,298] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:19:36,299] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175968b6322c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:19:36,299] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:19:36,299] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175968b634b0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:19:36,300] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:19:36,300] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:19:36,300] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:19:36,300] pyhamilton.interface INFO disconnected from server [2025-07-27 23:19:36,401] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:19:36,401] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:19:36,404] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:19:36,406] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:19:36,406] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:19:36,407] pyhamilton.interface INFO server thread exited [2025-07-27 23:19:36,410] root ERROR Traceback (most recent call last): [2025-07-27 23:19:36,411] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 35, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-27 23:19:36,411] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 136, in pip_transfer response = ham_int.aspirate(positions, vols, liquidClass=liquid_class, mixCycles=prewet_cycles, mixVolume=prewet_volume, liquidHeight=aspirate_height_from_bottom, capacitiveLLD=aspirate_capacitative_LLD, aspirateMode=aspirate_mode, liquidFollowing=liquid_following_aspiration) [2025-07-27 23:19:36,411] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 803, in aspirate self._assert_parallel_nones(pos_tuples, vols) ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ [2025-07-27 23:19:36,412] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 762, in _assert_parallel_nones raise ValueError('Lists must have parallel None entries') [2025-07-27 23:19:36,412] root ERROR ValueError: Lists must have parallel None entries [2025-07-27 23:20:38,906] root INFO ########################################################################################################################### [2025-07-27 23:20:38,906] root INFO # # [2025-07-27 23:20:38,906] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:20:38,906] root INFO # # [2025-07-27 23:20:38,906] root INFO ########################################################################################################################### [2025-07-27 23:20:38,907] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:20:38,907] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:20:38,907] pyhamilton.interface INFO started the server thread [2025-07-27 23:20:38,907] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:20:38,910] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:20:38,910] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17596c71931c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:20:39,316] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:20:39,428] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:20:39,428] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17596c797a01', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:20:39,434] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:20:39,434] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17596c7990d3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:20:39,435] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:20:39,435] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17596c7995f4', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:20:39,437] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:20:39,437] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:20:39,437] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:20:39,437] pyhamilton.interface INFO disconnected from server [2025-07-27 23:20:39,537] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:20:39,538] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:20:39,541] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:20:39,543] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:20:39,544] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:20:39,544] pyhamilton.interface INFO server thread exited [2025-07-27 23:20:39,547] root ERROR Traceback (most recent call last): [2025-07-27 23:20:39,548] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 35, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-27 23:20:39,549] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 137, in pip_transfer response = ham_int.aspirate(positions, vols, liquidClass=liquid_class, mixCycles=prewet_cycles, mixVolume=prewet_volume, liquidHeight=aspirate_height_from_bottom, capacitiveLLD=aspirate_capacitative_LLD, aspirateMode=aspirate_mode, liquidFollowing=liquid_following_aspiration) [2025-07-27 23:20:39,549] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 803, in aspirate self._assert_parallel_nones(pos_tuples, vols) ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ [2025-07-27 23:20:39,549] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 762, in _assert_parallel_nones raise ValueError('Lists must have parallel None entries') [2025-07-27 23:20:39,550] root ERROR ValueError: Lists must have parallel None entries [2025-07-27 23:21:05,148] root INFO ########################################################################################################################### [2025-07-27 23:21:05,149] root INFO # # [2025-07-27 23:21:05,149] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:21:05,149] root INFO # # [2025-07-27 23:21:05,149] root INFO ########################################################################################################################### [2025-07-27 23:21:05,150] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:21:05,150] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:21:05,150] pyhamilton.interface INFO started the server thread [2025-07-27 23:21:05,150] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:21:05,154] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:21:05,154] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17596e0205a3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:21:05,552] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:21:05,669] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:21:05,669] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17596e09e186', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:21:05,675] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:21:05,676] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17596e09fabe', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:21:05,676] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:21:05,676] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17596e09fda0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:21:05,677] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:21:05,678] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:21:05,678] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:21:05,678] pyhamilton.interface INFO disconnected from server [2025-07-27 23:21:05,778] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:21:05,779] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:21:05,781] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:21:05,783] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:21:05,783] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:21:05,783] pyhamilton.interface INFO server thread exited [2025-07-27 23:21:05,785] root ERROR Traceback (most recent call last): [2025-07-27 23:21:05,787] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 35, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-27 23:21:05,787] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 136, in pip_transfer response = ham_int.aspirate(positions, vols, liquidClass=liquid_class, mixCycles=prewet_cycles, mixVolume=prewet_volume, liquidHeight=aspirate_height_from_bottom, capacitiveLLD=aspirate_capacitative_LLD, aspirateMode=aspirate_mode, liquidFollowing=liquid_following_aspiration) [2025-07-27 23:21:05,787] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 803, in aspirate self._assert_parallel_nones(pos_tuples, vols) ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ [2025-07-27 23:21:05,787] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 762, in _assert_parallel_nones raise ValueError('Lists must have parallel None entries') [2025-07-27 23:21:05,788] root ERROR ValueError: Lists must have parallel None entries [2025-07-27 23:30:11,013] root INFO ########################################################################################################################### [2025-07-27 23:30:11,014] root INFO # # [2025-07-27 23:30:11,014] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:30:11,014] root INFO # # [2025-07-27 23:30:11,014] root INFO ########################################################################################################################### [2025-07-27 23:30:11,014] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:30:11,015] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:30:11,015] pyhamilton.interface INFO started the server thread [2025-07-27 23:30:11,015] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:30:11,019] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:30:11,019] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17598e8b432f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:30:11,444] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:30:11,556] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:30:11,556] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17598e9373e0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:30:11,561] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:30:11,561] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17598e938961', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:30:11,562] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:30:11,562] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17598e938bf3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:30:11,563] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:30:11,563] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:30:11,563] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:30:11,563] pyhamilton.interface INFO disconnected from server [2025-07-27 23:30:11,664] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:30:11,664] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:30:11,666] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:30:11,668] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:30:11,668] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:30:11,669] pyhamilton.interface INFO server thread exited [2025-07-27 23:30:11,671] root ERROR Traceback (most recent call last): [2025-07-27 23:30:11,672] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 35, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-27 23:30:11,673] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 136, in pip_transfer response = ham_int.aspirate(positions, vols, liquidClass=liquid_class, mixCycles=prewet_cycles, mixVolume=prewet_volume, liquidHeight=aspirate_height_from_bottom, capacitiveLLD=aspirate_capacitative_LLD, aspirateMode=aspirate_mode, liquidFollowing=liquid_following_aspiration) [2025-07-27 23:30:11,673] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 803, in aspirate self._assert_parallel_nones(pos_tuples, vols) ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ [2025-07-27 23:30:11,673] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 762, in _assert_parallel_nones raise ValueError('Lists must have parallel None entries') [2025-07-27 23:30:11,673] root ERROR ValueError: Lists must have parallel None entries [2025-07-27 23:31:21,069] root INFO ########################################################################################################################### [2025-07-27 23:31:21,069] root INFO # # [2025-07-27 23:31:21,069] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:31:21,069] root INFO # # [2025-07-27 23:31:21,069] root INFO ########################################################################################################################### [2025-07-27 23:31:21,070] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:31:21,070] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:31:21,070] pyhamilton.interface INFO started the server thread [2025-07-27 23:31:21,070] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:31:21,073] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:31:21,073] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175992b83504', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:31:21,479] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:31:21,602] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:31:21,603] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175992c047ed', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:31:21,608] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:31:21,608] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x175992c05e59', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:31:21,609] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:31:21,609] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175992c061e9', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:31:21,610] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:31:21,610] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:31:21,611] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:31:21,611] pyhamilton.interface INFO disconnected from server [2025-07-27 23:31:21,711] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:31:21,711] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:31:21,714] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:31:21,717] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:31:21,717] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:31:21,718] pyhamilton.interface INFO server thread exited [2025-07-27 23:31:21,721] root ERROR Traceback (most recent call last): [2025-07-27 23:31:21,722] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 35, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-27 23:31:21,723] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 138, in pip_transfer response = ham_int.aspirate(positions, vols, liquidClass=liquid_class, mixCycles=prewet_cycles, mixVolume=prewet_volume, liquidHeight=aspirate_height_from_bottom, capacitiveLLD=aspirate_capacitative_LLD, aspirateMode=aspirate_mode, liquidFollowing=liquid_following_aspiration) [2025-07-27 23:31:21,723] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 803, in aspirate self._assert_parallel_nones(pos_tuples, vols) ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ [2025-07-27 23:31:21,723] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 762, in _assert_parallel_nones raise ValueError('Lists must have parallel None entries') [2025-07-27 23:31:21,723] root ERROR ValueError: Lists must have parallel None entries [2025-07-27 23:32:20,743] root INFO ########################################################################################################################### [2025-07-27 23:32:20,743] root INFO # # [2025-07-27 23:32:20,743] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:32:20,743] root INFO # # [2025-07-27 23:32:20,743] root INFO ########################################################################################################################### [2025-07-27 23:32:20,744] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:32:20,744] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:32:20,744] pyhamilton.interface INFO started the server thread [2025-07-27 23:32:20,744] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:32:20,747] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:32:20,747] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17599646c2a2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:32:21,119] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:32:21,229] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:32:21,229] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759964e1b6e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:32:21,234] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:32:21,234] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759964e311d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:32:21,235] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:32:21,235] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759964e3302', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:32:21,236] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:32:21,236] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:32:21,236] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:32:21,236] pyhamilton.interface INFO disconnected from server [2025-07-27 23:32:21,336] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:32:21,337] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:32:21,340] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:32:21,342] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:32:21,343] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:32:21,344] pyhamilton.interface INFO server thread exited [2025-07-27 23:32:21,347] root ERROR Traceback (most recent call last): [2025-07-27 23:32:21,350] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 35, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-27 23:32:21,350] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 137, in pip_transfer response = ham_int.aspirate(positions, vols, liquidClass=liquid_class, mixCycles=prewet_cycles, mixVolume=prewet_volume, liquidHeight=aspirate_height_from_bottom, capacitiveLLD=aspirate_capacitative_LLD, aspirateMode=aspirate_mode, liquidFollowing=liquid_following_aspiration) [2025-07-27 23:32:21,351] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 803, in aspirate self._assert_parallel_nones(pos_tuples, vols) ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ [2025-07-27 23:32:21,351] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 762, in _assert_parallel_nones raise ValueError('Lists must have parallel None entries') [2025-07-27 23:32:21,352] root ERROR ValueError: Lists must have parallel None entries [2025-07-27 23:33:09,547] root INFO ########################################################################################################################### [2025-07-27 23:33:09,548] root INFO # # [2025-07-27 23:33:09,548] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:33:09,548] root INFO # # [2025-07-27 23:33:09,548] root INFO ########################################################################################################################### [2025-07-27 23:33:09,548] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:33:09,549] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:33:09,549] pyhamilton.interface INFO started the server thread [2025-07-27 23:33:09,549] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:33:09,552] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:33:09,553] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759992f77e1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:33:09,991] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:33:10,117] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:33:10,117] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175999381414', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:33:10,122] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:33:10,122] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17599938298b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:33:10,123] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:33:10,123] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x175999382b97', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:33:10,124] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:33:10,124] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:33:10,124] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:33:10,124] pyhamilton.interface INFO disconnected from server [2025-07-27 23:33:10,225] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:33:10,225] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:33:10,229] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:33:10,231] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:33:10,232] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:33:10,232] pyhamilton.interface INFO server thread exited [2025-07-27 23:33:10,236] root ERROR Traceback (most recent call last): [2025-07-27 23:33:10,238] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 35, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-27 23:33:10,238] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 139, in pip_transfer response = ham_int.aspirate(positions, vols, liquidClass=liquid_class, mixCycles=prewet_cycles, mixVolume=prewet_volume, liquidHeight=aspirate_height_from_bottom, capacitiveLLD=aspirate_capacitative_LLD, aspirateMode=aspirate_mode, liquidFollowing=liquid_following_aspiration) [2025-07-27 23:33:10,239] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 803, in aspirate self._assert_parallel_nones(pos_tuples, vols) ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ [2025-07-27 23:33:10,239] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 762, in _assert_parallel_nones raise ValueError('Lists must have parallel None entries') [2025-07-27 23:33:10,240] root ERROR ValueError: Lists must have parallel None entries [2025-07-27 23:34:11,944] root INFO ########################################################################################################################### [2025-07-27 23:34:11,944] root INFO # # [2025-07-27 23:34:11,945] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:34:11,945] root INFO # # [2025-07-27 23:34:11,945] root INFO ########################################################################################################################### [2025-07-27 23:34:11,945] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:34:11,945] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:34:11,945] pyhamilton.interface INFO started the server thread [2025-07-27 23:34:11,945] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:34:11,949] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:34:11,949] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17599ce79143', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:34:12,325] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:34:12,447] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:34:12,447] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17599cef2982', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:34:12,453] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:34:12,453] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17599cef414f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:34:12,454] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:34:12,454] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17599cef4439', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:34:12,455] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:34:12,455] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:34:12,455] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:34:12,456] pyhamilton.interface INFO disconnected from server [2025-07-27 23:34:12,556] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:34:12,556] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:34:12,560] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:34:12,562] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:34:12,563] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:34:12,564] pyhamilton.interface INFO server thread exited [2025-07-27 23:34:12,568] root ERROR Traceback (most recent call last): [2025-07-27 23:34:12,569] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 35, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-27 23:34:12,570] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 136, in pip_transfer response = ham_int.aspirate(positions, vols, liquidClass=liquid_class, mixCycles=prewet_cycles, mixVolume=prewet_volume, liquidHeight=aspirate_height_from_bottom, capacitiveLLD=aspirate_capacitative_LLD, aspirateMode=aspirate_mode, liquidFollowing=liquid_following_aspiration) [2025-07-27 23:34:12,570] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 803, in aspirate self._assert_parallel_nones(pos_tuples, vols) ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ [2025-07-27 23:34:12,570] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 762, in _assert_parallel_nones raise ValueError('Lists must have parallel None entries') [2025-07-27 23:34:12,570] root ERROR ValueError: Lists must have parallel None entries [2025-07-27 23:34:35,083] root INFO ########################################################################################################################### [2025-07-27 23:34:35,083] root INFO # # [2025-07-27 23:34:35,083] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:34:35,083] root INFO # # [2025-07-27 23:34:35,083] root INFO ########################################################################################################################### [2025-07-27 23:34:35,083] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:34:35,084] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:34:35,084] pyhamilton.interface INFO started the server thread [2025-07-27 23:34:35,084] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:34:35,088] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:34:35,088] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17599e48a29e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:34:35,468] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:34:35,593] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:34:35,593] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17599e50584b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:34:35,599] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:34:35,599] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17599e50703b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:34:35,600] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:34:35,600] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17599e507132', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:34:35,600] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:34:35,601] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:34:35,601] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:34:35,601] pyhamilton.interface INFO disconnected from server [2025-07-27 23:34:35,701] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:34:35,702] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:34:35,706] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:34:35,708] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:34:35,710] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:34:35,710] pyhamilton.interface INFO server thread exited [2025-07-27 23:34:35,714] root ERROR Traceback (most recent call last): [2025-07-27 23:34:35,716] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 35, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-27 23:34:35,716] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 136, in pip_transfer response = ham_int.aspirate(positions, vols, liquidClass=liquid_class, mixCycles=prewet_cycles, mixVolume=prewet_volume, liquidHeight=aspirate_height_from_bottom, capacitiveLLD=aspirate_capacitative_LLD, aspirateMode=aspirate_mode, liquidFollowing=liquid_following_aspiration) [2025-07-27 23:34:35,716] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 803, in aspirate self._assert_parallel_nones(pos_tuples, vols) ~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^ [2025-07-27 23:34:35,717] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 762, in _assert_parallel_nones raise ValueError('Lists must have parallel None entries') [2025-07-27 23:34:35,717] root ERROR ValueError: Lists must have parallel None entries [2025-07-27 23:35:55,455] root INFO ########################################################################################################################### [2025-07-27 23:35:55,455] root INFO # # [2025-07-27 23:35:55,455] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:35:55,455] root INFO # # [2025-07-27 23:35:55,455] root INFO ########################################################################################################################### [2025-07-27 23:35:55,456] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:35:55,456] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:35:55,456] pyhamilton.interface INFO started the server thread [2025-07-27 23:35:55,456] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:35:55,459] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:35:55,459] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a313008c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:35:55,857] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:35:55,978] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:35:55,978] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31aeac9', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:55,983] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:35:55,983] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a31afe28', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:35:55,983] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,983] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31aff28', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:55,984] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,984] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b0207', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:55,984] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,985] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b04b0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:55,985] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,985] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b07dc', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:55,986] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,986] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b0ab1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:55,987] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,987] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b0d77', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:55,987] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,987] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b0fdb', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:55,988] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,988] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b1206', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:55,988] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:55,989] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a31b145e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:55,989] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:55,989] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a31b16c3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:35:55,992] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:35:55,992] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a31b2341', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:35:55,993] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,993] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b242d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:55,993] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,993] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b26b6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:55,994] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,994] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b294c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:55,994] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,995] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b2ba5', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:55,995] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,995] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b2ddc', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:55,996] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,996] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b301c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:55,996] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,996] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b328f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:55,997] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:55,997] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b34d0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:55,997] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:55,998] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a31b3714', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:55,998] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:55,998] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a31b3958', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:35:56,001] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:35:56,001] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a31b4492', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:35:56,001] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,001] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b454e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,002] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,002] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b47e1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,002] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,002] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b4a93', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,003] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,003] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b4cbe', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,003] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,004] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b4eed', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,004] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,004] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b5131', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,005] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,005] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b5376', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,005] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,005] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b55a3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,006] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:56,006] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a31b57de', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,006] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:56,006] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a31b5a26', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:35:56,009] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:35:56,010] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a31b6615', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:35:56,010] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,010] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b66c6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,010] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,010] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b699f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,011] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,011] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b6ce4', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,012] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,012] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b6f27', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,012] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,012] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b715a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,013] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,013] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b73a2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,013] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,014] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b75d8', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,014] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,014] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b77fc', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,015] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:56,015] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a31b7a2a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,015] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:56,015] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a31b7cd6', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:35:56,019] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:35:56,019] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a31b8a30', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:35:56,019] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,019] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b8ae4', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,020] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,020] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b8ea2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,020] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,021] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b9125', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,021] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,021] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b9349', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,022] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,022] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b9585', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,022] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,022] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b97b1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,023] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,023] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b99cb', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,023] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,023] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31b9c00', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,024] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:56,024] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a31b9e1c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,024] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:56,025] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a31ba0b7', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:35:56,028] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:35:56,028] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a31bae00', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:35:56,028] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,028] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31baebd', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,029] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,029] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31bb180', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,029] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,029] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31bb40b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,030] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,030] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31bb633', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,030] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,031] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31bb862', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,031] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,031] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31bbaa4', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,032] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,032] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31bbcc5', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,032] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,032] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31bbef3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,033] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:56,033] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a31bc109', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,033] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:56,033] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a31bc35e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:35:56,036] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:35:56,036] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a31bcf15', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:35:56,036] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,037] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31bcfc2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,037] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,037] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31bd222', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,038] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,038] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31bd49e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,038] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,038] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31bd70d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,039] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,039] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31bd932', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,039] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,040] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31bdb65', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,040] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,040] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31bdd92', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,041] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,041] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31bdfc1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,041] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:56,041] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a31be1ee', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,042] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:56,042] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a31be43d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:35:56,045] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:35:56,045] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a31bf27b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:35:56,046] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,046] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31bf33c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,046] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,046] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31bf603', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,047] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,047] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31bf8b7', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,048] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,048] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31bfb54', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,048] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,048] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31bfd9a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,049] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,049] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31bffcc', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,049] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,049] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c0209', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,050] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,050] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c0423', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,050] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:56,051] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a31c064d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,051] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:56,051] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a31c08a0', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:35:56,054] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:35:56,054] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a31c13c2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:35:56,054] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,054] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c147a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,055] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,055] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c1727', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,055] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,055] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c199e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,056] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,056] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c1be0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,057] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,057] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c1e23', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,057] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,057] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c205d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,058] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,058] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c2292', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,058] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,058] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c24c8', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,059] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:56,059] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a31c26ee', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,059] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:56,060] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a31c29f9', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:35:56,063] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:35:56,063] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a31c35fd', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:35:56,063] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,063] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c36b2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,064] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,064] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c3b0a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,065] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,065] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c3d86', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,065] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,065] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c3fce', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,066] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,066] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c4204', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,066] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,066] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c4450', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,067] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,067] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c4670', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,067] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,068] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c488f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,068] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:56,068] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a31c4ace', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,068] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:56,069] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a31c4ce9', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:35:56,072] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:35:56,072] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a31c58c6', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:35:56,072] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,072] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c5970', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,072] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,072] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c5be7', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,073] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,073] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c5e44', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,073] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,074] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c606e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,074] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,074] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c62a2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,075] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,075] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c64cf', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,075] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,075] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c6731', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,076] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,076] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c6971', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,076] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:56,076] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a31c6b93', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,077] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:56,077] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a31c6e9c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:35:56,080] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:35:56,080] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a31c7986', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:35:56,080] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,080] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c7a34', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,081] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,081] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c7ca3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,081] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,081] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c7f07', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,082] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,082] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c8157', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,082] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,083] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c83a1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,083] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,083] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c85f0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,084] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,084] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c882b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,084] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:35:56,084] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a31c8a4d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,085] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:35:56,085] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a31c8cc0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:35:56,085] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:35:56,086] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a31c8eee', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:35:56,086] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:35:56,086] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:35:56,086] pyhamilton.interface INFO disconnected from server [2025-07-27 23:35:56,186] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:35:56,187] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:35:56,190] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:35:56,192] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:35:56,193] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:35:56,193] pyhamilton.interface INFO server thread exited [2025-07-27 23:36:43,239] root INFO ########################################################################################################################### [2025-07-27 23:36:43,239] root INFO # # [2025-07-27 23:36:43,239] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-27 23:36:43,239] root INFO # # [2025-07-27 23:36:43,239] root INFO ########################################################################################################################### [2025-07-27 23:36:43,240] pyhamilton.interface INFO starting a Hamilton interface [2025-07-27 23:36:43,240] pyhamilton.interface INFO running in simulation mode [2025-07-27 23:36:43,240] pyhamilton.interface INFO started the server thread [2025-07-27 23:36:43,240] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-27 23:36:43,243] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-27 23:36:43,243] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a5ec218d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:36:43,611] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-27 23:36:43,742] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-27 23:36:43,742] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f3bc9b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,748] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-27 23:36:43,748] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a5f3d5d7', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:36:43,749] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,749] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f3d8d2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,750] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,751] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f3df74', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,752] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,752] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f3e4cb', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,753] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,754] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f3ea3b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,755] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,755] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f3ef97', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,756] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,757] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f3f59d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,758] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,758] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f3fbd3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,760] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,760] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f40296', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,761] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,761] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a5f40886', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,762] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,763] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a5f40d6b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:36:43,768] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 3 [2025-07-27 23:36:43,768] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a5f42331', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:36:43,769] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,769] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f4273a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,771] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,771] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f42ed2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,773] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,773] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f43693', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,774] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,775] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f43cf8', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,776] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,777] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f443b6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,777] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,778] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f44873', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,779] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,779] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f44ed3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,781] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,781] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f455b1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,782] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,782] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a5f45b03', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,783] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,784] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a5f45f7a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:36:43,788] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 4 [2025-07-27 23:36:43,788] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a5f471d6', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:36:43,789] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,789] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f474a2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,790] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,790] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f47995', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,791] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,791] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f47e30', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,792] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,793] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f48377', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,794] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,794] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f487fb', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,795] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,795] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f48d23', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,796] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,796] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f491a7', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,797] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,798] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f495fb', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,798] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,799] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a5f49a59', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,799] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,799] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a5f49d92', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:36:43,803] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5 [2025-07-27 23:36:43,803] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a5f4ac62', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:36:43,804] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,804] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f4aeb6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,805] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,805] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f4b35b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,806] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,806] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f4b821', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,807] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,807] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f4bc75', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,808] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,808] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f4c0b0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,809] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,810] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f4c54f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,811] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,811] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f4c98e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,812] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,812] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f4cdb1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,813] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,813] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a5f4d1b0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,813] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,814] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a5f4d46d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:36:43,817] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 6 [2025-07-27 23:36:43,817] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a5f4e1d0', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:36:43,817] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,818] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f4e3ef', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,819] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,819] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f4e8e9', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,820] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,820] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f4ec81', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,821] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,821] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f4f0c8', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,822] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,822] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f4f493', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,823] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,823] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f4f85e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,824] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,824] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f4fc16', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,825] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,825] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f50083', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,826] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,826] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a5f504a0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,827] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,827] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a5f50828', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:36:43,831] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 7 [2025-07-27 23:36:43,831] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a5f518eb', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:36:43,831] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,832] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f51b21', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,832] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,833] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f51f13', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,833] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,834] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f522e5', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,834] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,835] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f52738', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,836] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,836] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f52b4b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,837] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,837] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f52f11', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,838] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,838] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f53330', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,839] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,839] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f5370f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,840] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,840] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a5f53ae3', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,840] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,841] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a5f53dec', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:36:43,844] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 8 [2025-07-27 23:36:43,844] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a5f54d58', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:36:43,845] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,845] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f54f6d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,846] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,846] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f5537b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,847] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,847] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f55761', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,848] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,848] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f55c08', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,849] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,849] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f55ff3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,850] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,850] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f56383', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,851] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,851] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f567b8', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,852] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,852] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f56bb3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,853] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,853] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a5f56f80', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,854] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,854] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a5f5721c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:36:43,858] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9 [2025-07-27 23:36:43,858] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a5f58173', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:36:43,858] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,858] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f583f8', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,859] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,860] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f58882', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,861] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,861] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f58df8', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,862] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,862] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f59273', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,863] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,863] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f596f3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,864] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,864] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f59b46', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,865] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,866] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f59f79', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,866] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,867] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f5a3ae', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,868] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,868] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a5f5a8ea', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,869] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,869] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a5f5ac16', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:36:43,873] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 10 [2025-07-27 23:36:43,873] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a5f5bdd8', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:36:43,874] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,874] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f5c012', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,875] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,875] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f5c465', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,876] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,876] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f5c93a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,877] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,877] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f5cdb0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,878] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,879] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f5d293', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,879] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,880] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f5d6ae', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,881] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,881] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f5dae2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,882] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,882] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f5deeb', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,883] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,883] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a5f5e32e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,883] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,884] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a5f5e61e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:36:43,888] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 11 [2025-07-27 23:36:43,888] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a5f5f65f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:36:43,888] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,888] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f5f8ec', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,890] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,890] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f5ff6a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,891] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,891] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f60454', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,892] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,893] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f6090c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,893] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,894] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f60d02', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,895] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,895] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f611d3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,896] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,896] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f6167d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,897] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,897] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f61b0d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,898] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,898] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a5f61fa5', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,899] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,899] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a5f622ed', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:36:43,903] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 12 [2025-07-27 23:36:43,903] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a5f63339', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:36:43,904] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,904] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f63587', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,905] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,905] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f639ee', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,906] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,906] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f63e7c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,907] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,907] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f642be', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,908] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,908] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f64746', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,909] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,910] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f64bc9', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,911] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,911] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f650a2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,912] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,912] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f65532', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,913] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,913] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a5f65a04', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,914] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,914] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a5f65d76', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:36:43,918] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13 [2025-07-27 23:36:43,918] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1759a5f66d1c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-27 23:36:43,919] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,919] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f66fcd', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,920] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,920] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f674ef', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,921] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,921] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f679f6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,923] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,923] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f67f42', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,924] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,924] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f683f6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,925] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,925] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f688ab', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,926] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,927] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f68df6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,928] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); MIDI_Pipette, A1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-27 23:36:43,928] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1759a5f6940e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,929] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-27 23:36:43,929] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1759a5f69952', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-27 23:36:43,930] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-27 23:36:43,930] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1759a5f69cd8', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-27 23:36:43,931] pyhamilton.interface INFO sending end run command to simulator [2025-07-27 23:36:43,931] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-27 23:36:43,931] pyhamilton.interface INFO disconnected from server [2025-07-27 23:36:44,032] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-27 23:36:44,032] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-27 23:36:44,035] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-27 23:36:44,037] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-27 23:36:44,038] pyhamilton.interface INFO dummy get request sent to server [2025-07-27 23:36:44,039] pyhamilton.interface INFO server thread exited [2025-07-28 09:47:37,095] root INFO ########################################################################################################################### [2025-07-28 09:47:37,096] root INFO # # [2025-07-28 09:47:37,096] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-28 09:47:37,096] root INFO # # [2025-07-28 09:47:37,096] root INFO ########################################################################################################################### [2025-07-28 09:47:37,096] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 09:47:37,098] pyhamilton.interface INFO running in simulation mode [2025-07-28 09:47:37,098] pyhamilton.interface INFO started the server thread [2025-07-28 09:47:37,098] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 09:47:37,110] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4 [2025-07-28 09:47:37,110] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17622ea9bed5', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:47:38,762] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-28 09:47:39,917] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 09:47:39,918] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed49710', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0, 0, 0, 0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:39,928] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-28 09:47:39,928] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17622ed4c0be', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:47:39,928] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,928] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed4c183', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:39,929] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,930] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed4c605', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:39,931] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:39,931] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17622ed4cb0a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:39,931] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:39,932] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17622ed4cdc3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:47:39,941] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12 [2025-07-28 09:47:39,941] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17622ed4f207', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9;TIP_50uLF_L_0001, 10;TIP_50uLF_L_0001, 11;TIP_50uLF_L_0001, 12', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:47:39,941] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,941] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed4f323', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:39,942] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,942] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed4f5fe', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:39,942] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:39,943] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17622ed4f890', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:39,943] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:39,943] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17622ed4fae7', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:47:39,953] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-28 09:47:39,953] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17622ed52163', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13;TIP_50uLF_L_0001, 14;TIP_50uLF_L_0001, 15;TIP_50uLF_L_0001, 16', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:47:39,953] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,953] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed5222a', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:39,954] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,954] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed524f6', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:39,955] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:39,955] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17622ed527e5', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:39,955] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:39,955] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17622ed52a34', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:47:39,963] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20 [2025-07-28 09:47:39,964] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17622ed54a97', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 17;TIP_50uLF_L_0001, 18;TIP_50uLF_L_0001, 19;TIP_50uLF_L_0001, 20', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:47:39,964] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,964] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed54b4c', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:39,965] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,965] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed54fc3', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:39,966] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:39,966] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17622ed553de', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:39,966] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:39,967] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17622ed5567f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:47:39,974] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-07-28 09:47:39,974] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17622ed5741a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 21;TIP_50uLF_L_0001, 22;TIP_50uLF_L_0001, 23;TIP_50uLF_L_0001, 24', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:47:39,974] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,974] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed574d6', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:39,975] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,975] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed57787', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:39,976] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:39,976] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17622ed579f8', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:39,976] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:39,976] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17622ed57c37', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:47:39,985] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28 [2025-07-28 09:47:39,986] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17622ed5a099', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 25;TIP_50uLF_L_0001, 26;TIP_50uLF_L_0001, 27;TIP_50uLF_L_0001, 28', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:47:39,986] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,986] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed5a14d', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:39,986] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,986] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed5a412', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:39,987] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:39,987] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17622ed5a6ab', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:39,988] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:39,988] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17622ed5a8e7', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:47:39,997] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32 [2025-07-28 09:47:39,997] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17622ed5ce9f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 29;TIP_50uLF_L_0001, 30;TIP_50uLF_L_0001, 31;TIP_50uLF_L_0001, 32', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:47:39,998] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,998] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed5d037', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:39,999] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:39,999] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed5d3ec', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:39,999] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:39,999] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17622ed5d69e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:40,000] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:40,000] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17622ed5da03', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:47:40,010] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36 [2025-07-28 09:47:40,010] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17622ed5fee1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 33;TIP_50uLF_L_0001, 34;TIP_50uLF_L_0001, 35;TIP_50uLF_L_0001, 36', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:47:40,010] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:40,010] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed60027', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:40,011] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:40,011] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed60467', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:40,012] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:40,012] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17622ed608be', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:40,013] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:40,014] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17622ed60dcf', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:47:40,022] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40 [2025-07-28 09:47:40,022] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17622ed63092', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 37;TIP_50uLF_L_0001, 38;TIP_50uLF_L_0001, 39;TIP_50uLF_L_0001, 40', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:47:40,023] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:40,023] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed63151', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:40,023] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:40,023] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed63422', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:40,024] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:40,024] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17622ed636c5', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:40,024] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:40,025] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17622ed63906', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:47:40,033] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44 [2025-07-28 09:47:40,034] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17622ed65c4e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 41;TIP_50uLF_L_0001, 42;TIP_50uLF_L_0001, 43;TIP_50uLF_L_0001, 44', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:47:40,034] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:40,034] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed65d95', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:40,035] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:40,035] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed6612f', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:40,035] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:40,036] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17622ed66405', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:40,036] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:40,036] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17622ed66661', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:47:40,044] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48 [2025-07-28 09:47:40,045] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17622ed686db', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 45;TIP_50uLF_L_0001, 46;TIP_50uLF_L_0001, 47;TIP_50uLF_L_0001, 48', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:47:40,045] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:40,045] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed68858', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:40,046] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:40,046] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed68ccc', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:40,047] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:40,047] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17622ed6908c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:40,048] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:40,048] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17622ed6941b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:47:40,058] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52 [2025-07-28 09:47:40,059] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17622ed6bdec', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 49;TIP_50uLF_L_0001, 50;TIP_50uLF_L_0001, 51;TIP_50uLF_L_0001, 52', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:47:40,059] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:40,059] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed6beab', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:40,059] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:47:40,060] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17622ed6c1bf', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:40,060] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:47:40,060] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17622ed6c42b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:47:40,061] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:47:40,061] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17622ed6c67a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:47:40,061] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 09:47:40,061] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-28 09:47:40,061] pyhamilton.interface INFO disconnected from server [2025-07-28 09:47:40,162] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 09:47:40,162] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 09:47:40,168] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 09:47:40,172] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 09:47:40,173] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 09:47:40,173] pyhamilton.interface INFO server thread exited [2025-07-28 09:53:31,920] root INFO ########################################################################################################################### [2025-07-28 09:53:31,921] root INFO # # [2025-07-28 09:53:31,921] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-28 09:53:31,921] root INFO # # [2025-07-28 09:53:31,921] root INFO ########################################################################################################################### [2025-07-28 09:53:31,921] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 09:53:31,922] pyhamilton.interface INFO running in simulation mode [2025-07-28 09:53:31,922] pyhamilton.interface INFO started the server thread [2025-07-28 09:53:31,922] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 09:53:31,935] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4 [2025-07-28 09:53:31,935] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176243cff33a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:53:32,347] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-28 09:53:32,457] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 09:53:32,457] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243d7e9c9', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0, 0, 0, 0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,469] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-28 09:53:32,470] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176243d81ae1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:53:32,470] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,470] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243d81d4a', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,471] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,471] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243d82234', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,472] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,472] JSONLogger INFO {'command': 'channelDispense', 'id': '0x176243d825ef', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,473] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,473] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x176243d82876', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:53:32,483] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12 [2025-07-28 09:53:32,483] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176243d84ef6', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9;TIP_50uLF_L_0001, 10;TIP_50uLF_L_0001, 11;TIP_50uLF_L_0001, 12', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:53:32,483] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,483] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243d8515d', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,484] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,485] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243d85602', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,486] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,486] JSONLogger INFO {'command': 'channelDispense', 'id': '0x176243d85a28', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,486] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,486] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x176243d85ca9', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:53:32,495] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-28 09:53:32,495] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176243d87fc1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13;TIP_50uLF_L_0001, 14;TIP_50uLF_L_0001, 15;TIP_50uLF_L_0001, 16', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:53:32,496] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,496] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243d8835f', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,497] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,498] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243d88876', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,498] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,498] JSONLogger INFO {'command': 'channelDispense', 'id': '0x176243d88c12', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,499] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,499] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x176243d88e97', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:53:32,508] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20 [2025-07-28 09:53:32,508] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176243d8b0b9', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 17;TIP_50uLF_L_0001, 18;TIP_50uLF_L_0001, 19;TIP_50uLF_L_0001, 20', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:53:32,508] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,508] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243d8b2dd', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,509] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,510] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243d8b7bd', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,510] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,511] JSONLogger INFO {'command': 'channelDispense', 'id': '0x176243d8bb6c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,511] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,512] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x176243d8bf15', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:53:32,521] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-07-28 09:53:32,521] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176243d8e5da', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 21;TIP_50uLF_L_0001, 22;TIP_50uLF_L_0001, 23;TIP_50uLF_L_0001, 24', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:53:32,523] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,523] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243d8eb5d', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,524] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,524] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243d8f077', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,525] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,525] JSONLogger INFO {'command': 'channelDispense', 'id': '0x176243d8f54a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,526] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,526] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x176243d8f814', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:53:32,537] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28 [2025-07-28 09:53:32,537] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176243d9217c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 25;TIP_50uLF_L_0001, 26;TIP_50uLF_L_0001, 27;TIP_50uLF_L_0001, 28', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:53:32,537] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,537] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243d92337', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,538] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,538] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243d92736', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,539] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,539] JSONLogger INFO {'command': 'channelDispense', 'id': '0x176243d92b4b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,540] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,540] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x176243d92e14', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:53:32,550] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32 [2025-07-28 09:53:32,550] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176243d956a2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 29;TIP_50uLF_L_0001, 30;TIP_50uLF_L_0001, 31;TIP_50uLF_L_0001, 32', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:53:32,551] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,551] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243d95878', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,552] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,552] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243d95e14', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,553] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,553] JSONLogger INFO {'command': 'channelDispense', 'id': '0x176243d9618d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,554] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,554] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x176243d96500', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:53:32,562] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36 [2025-07-28 09:53:32,562] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176243d983dd', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 33;TIP_50uLF_L_0001, 34;TIP_50uLF_L_0001, 35;TIP_50uLF_L_0001, 36', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:53:32,562] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,563] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243d986c7', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,564] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,564] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243d98ac5', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,564] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,565] JSONLogger INFO {'command': 'channelDispense', 'id': '0x176243d98e64', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,565] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,565] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x176243d99125', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:53:32,574] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40 [2025-07-28 09:53:32,574] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176243d9b21f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 37;TIP_50uLF_L_0001, 38;TIP_50uLF_L_0001, 39;TIP_50uLF_L_0001, 40', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:53:32,574] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,574] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243d9b40d', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,575] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,575] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243d9b76c', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,576] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,576] JSONLogger INFO {'command': 'channelDispense', 'id': '0x176243d9bab3', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,576] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,577] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x176243d9bd38', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:53:32,585] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44 [2025-07-28 09:53:32,585] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176243d9def3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 41;TIP_50uLF_L_0001, 42;TIP_50uLF_L_0001, 43;TIP_50uLF_L_0001, 44', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:53:32,586] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,586] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243d9e10d', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,587] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,587] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243d9e482', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,587] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,588] JSONLogger INFO {'command': 'channelDispense', 'id': '0x176243d9e810', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,588] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,588] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x176243d9ea8e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:53:32,597] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48 [2025-07-28 09:53:32,598] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176243da0efd', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 45;TIP_50uLF_L_0001, 46;TIP_50uLF_L_0001, 47;TIP_50uLF_L_0001, 48', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:53:32,598] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,598] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243da117c', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,600] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,600] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243da1800', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,601] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,601] JSONLogger INFO {'command': 'channelDispense', 'id': '0x176243da1c89', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,602] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,602] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x176243da1f79', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:53:32,610] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52 [2025-07-28 09:53:32,610] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176243da3ef1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 49;TIP_50uLF_L_0001, 50;TIP_50uLF_L_0001, 51;TIP_50uLF_L_0001, 52', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:53:32,610] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,610] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243da40ee', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,611] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:53:32,611] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176243da4464', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,612] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:53:32,612] JSONLogger INFO {'command': 'channelDispense', 'id': '0x176243da47fd', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:53:32,613] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:53:32,613] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x176243da4b1a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:53:32,613] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 09:53:32,613] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-28 09:53:32,613] pyhamilton.interface INFO disconnected from server [2025-07-28 09:53:32,714] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 09:53:32,714] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 09:53:32,717] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 09:53:32,719] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 09:53:32,720] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 09:53:32,721] pyhamilton.interface INFO server thread exited [2025-07-28 09:54:08,341] root INFO ########################################################################################################################### [2025-07-28 09:54:08,341] root INFO # # [2025-07-28 09:54:08,341] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-28 09:54:08,341] root INFO # # [2025-07-28 09:54:08,341] root INFO ########################################################################################################################### [2025-07-28 09:54:08,342] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 09:54:08,342] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 09:54:08,342] pyhamilton.interface INFO started the server thread [2025-07-28 09:54:08,342] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 09:54:08,361] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4 [2025-07-28 09:54:08,361] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176245fbc4a0', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:54:08,876] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-28 09:54:09,021] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 09:54:09,022] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624605d88f', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0, 0, 0, 0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,037] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-28 09:54:09,038] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17624606177d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:54:09,038] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,038] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176246061945', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,039] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,039] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176246061d39', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,040] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,040] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17624606209c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,041] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,041] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x176246062369', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:54:09,050] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12 [2025-07-28 09:54:09,050] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1762460646d0', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9;TIP_50uLF_L_0001, 10;TIP_50uLF_L_0001, 11;TIP_50uLF_L_0001, 12', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:54:09,050] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,050] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1762460648c4', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,051] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,051] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176246064cac', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,052] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,052] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17624606504a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,053] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,053] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1762460652da', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:54:09,061] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-28 09:54:09,061] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17624606717d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13;TIP_50uLF_L_0001, 14;TIP_50uLF_L_0001, 15;TIP_50uLF_L_0001, 16', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:54:09,061] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,061] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176246067390', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,062] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,063] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176246067872', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,064] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,064] JSONLogger INFO {'command': 'channelDispense', 'id': '0x176246067da5', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,064] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,065] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17624606803c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:54:09,073] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20 [2025-07-28 09:54:09,073] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17624606a1dd', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 17;TIP_50uLF_L_0001, 18;TIP_50uLF_L_0001, 19;TIP_50uLF_L_0001, 20', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:54:09,074] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,074] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624606a42a', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,075] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,075] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624606a80f', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,075] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,076] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17624606ab85', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,076] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,076] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17624606ae2a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:54:09,086] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-07-28 09:54:09,086] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17624606d46e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 21;TIP_50uLF_L_0001, 22;TIP_50uLF_L_0001, 23;TIP_50uLF_L_0001, 24', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:54:09,087] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,087] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624606d786', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,088] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,088] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624606db37', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,089] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,089] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17624606dece', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,089] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,089] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17624606e139', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:54:09,099] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28 [2025-07-28 09:54:09,100] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176246070925', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 25;TIP_50uLF_L_0001, 26;TIP_50uLF_L_0001, 27;TIP_50uLF_L_0001, 28', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:54:09,100] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,100] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176246070b91', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,101] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,102] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176246071099', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,102] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,102] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17624607143b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,103] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,103] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1762460716a1', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:54:09,111] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32 [2025-07-28 09:54:09,112] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17624607382e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 29;TIP_50uLF_L_0001, 30;TIP_50uLF_L_0001, 31;TIP_50uLF_L_0001, 32', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:54:09,112] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,112] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176246073a7c', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,114] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,114] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1762460740c1', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,115] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,115] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17624607450b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,116] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,116] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x176246074a00', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:54:09,125] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36 [2025-07-28 09:54:09,125] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176246076d16', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 33;TIP_50uLF_L_0001, 34;TIP_50uLF_L_0001, 35;TIP_50uLF_L_0001, 36', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:54:09,126] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,126] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176246076f41', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,126] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,127] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624607729b', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,127] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,127] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17624607760d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,128] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,128] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1762460778ed', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:54:09,140] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40 [2025-07-28 09:54:09,140] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17624607a5c5', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 37;TIP_50uLF_L_0001, 38;TIP_50uLF_L_0001, 39;TIP_50uLF_L_0001, 40', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:54:09,140] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,140] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624607a7a7', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,141] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,141] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624607ab40', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,142] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,142] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17624607aeb9', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,143] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,143] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17624607b16e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:54:09,155] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44 [2025-07-28 09:54:09,155] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17624607e1d4', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 41;TIP_50uLF_L_0001, 42;TIP_50uLF_L_0001, 43;TIP_50uLF_L_0001, 44', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:54:09,155] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,156] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624607e3d8', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,156] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,157] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624607e7e3', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,158] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,158] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17624607ed60', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,159] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,159] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17624607f029', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:54:09,171] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48 [2025-07-28 09:54:09,171] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176246081f7c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 45;TIP_50uLF_L_0001, 46;TIP_50uLF_L_0001, 47;TIP_50uLF_L_0001, 48', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:54:09,171] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,171] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624608210b', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,172] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,172] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624608257f', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,173] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,173] JSONLogger INFO {'command': 'channelDispense', 'id': '0x176246082998', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,174] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,174] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x176246082c60', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:54:09,186] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52 [2025-07-28 09:54:09,186] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17624608598f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 49;TIP_50uLF_L_0001, 50;TIP_50uLF_L_0001, 51;TIP_50uLF_L_0001, 52', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:54:09,186] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,186] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176246085b97', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,187] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:54:09,187] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176246085f81', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,188] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:54:09,188] JSONLogger INFO {'command': 'channelDispense', 'id': '0x176246086337', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:54:09,189] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:54:09,189] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1762460865fe', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:54:09,189] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 09:54:09,189] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-28 09:54:09,189] pyhamilton.interface INFO disconnected from server [2025-07-28 09:54:09,290] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 09:54:09,291] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 09:54:09,296] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 09:54:09,298] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 09:54:09,299] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 09:54:09,299] pyhamilton.interface INFO server thread exited [2025-07-28 09:55:06,840] root INFO ########################################################################################################################### [2025-07-28 09:55:06,841] root INFO # # [2025-07-28 09:55:06,841] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-28 09:55:06,841] root INFO # # [2025-07-28 09:55:06,841] root INFO ########################################################################################################################### [2025-07-28 09:55:06,841] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 09:55:06,842] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 09:55:06,842] pyhamilton.interface INFO started the server thread [2025-07-28 09:55:06,842] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 09:55:06,858] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4 [2025-07-28 09:55:06,859] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176249785e58', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:55:07,404] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-28 09:55:07,517] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 09:55:07,517] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176249826904', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0, 0, 0, 0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,538] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-28 09:55:07,538] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17624982bb29', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:55:07,538] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,538] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624982bd14', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,539] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,539] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624982c19b', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,540] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,540] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17624982c59a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,541] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,541] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17624982c7e5', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:55:07,551] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12 [2025-07-28 09:55:07,551] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17624982ef91', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9;TIP_50uLF_L_0001, 10;TIP_50uLF_L_0001, 11;TIP_50uLF_L_0001, 12', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:55:07,552] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,552] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624982f218', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,553] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,553] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624982f584', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,553] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,554] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17624982f8e1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,554] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,554] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17624982fb05', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:55:07,566] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-28 09:55:07,566] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176249832b26', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13;TIP_50uLF_L_0001, 14;TIP_50uLF_L_0001, 15;TIP_50uLF_L_0001, 16', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:55:07,567] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,568] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1762498330e0', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,569] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,569] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176249833559', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,570] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,570] JSONLogger INFO {'command': 'channelDispense', 'id': '0x176249833870', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,570] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,570] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x176249833a9d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:55:07,579] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20 [2025-07-28 09:55:07,579] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176249835cb2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 17;TIP_50uLF_L_0001, 18;TIP_50uLF_L_0001, 19;TIP_50uLF_L_0001, 20', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:55:07,580] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,580] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176249836010', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,581] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,581] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176249836522', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,582] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,582] JSONLogger INFO {'command': 'channelDispense', 'id': '0x176249836913', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,583] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,583] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x176249836c2c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:55:07,590] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-07-28 09:55:07,590] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1762498388bc', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 21;TIP_50uLF_L_0001, 22;TIP_50uLF_L_0001, 23;TIP_50uLF_L_0001, 24', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:55:07,591] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,591] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176249838b56', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,592] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,592] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176249839075', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,593] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,594] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17624983951c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,594] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,594] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1762498398ce', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:55:07,604] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28 [2025-07-28 09:55:07,604] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17624983bf50', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 25;TIP_50uLF_L_0001, 26;TIP_50uLF_L_0001, 27;TIP_50uLF_L_0001, 28', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:55:07,605] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,605] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624983c106', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,606] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,606] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624983c4b6', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,607] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,607] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17624983c8d0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,607] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,607] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17624983cb3a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:55:07,620] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32 [2025-07-28 09:55:07,620] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17624983fe5b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 29;TIP_50uLF_L_0001, 30;TIP_50uLF_L_0001, 31;TIP_50uLF_L_0001, 32', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:55:07,621] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,621] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624984010f', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,622] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,622] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1762498404dd', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,623] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,623] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17624984094e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,624] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,624] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x176249840d97', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:55:07,636] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36 [2025-07-28 09:55:07,636] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176249843b54', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 33;TIP_50uLF_L_0001, 34;TIP_50uLF_L_0001, 35;TIP_50uLF_L_0001, 36', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:55:07,637] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,637] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176249843e24', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,638] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,638] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624984442c', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,639] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,639] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17624984486b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,640] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,640] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x176249844bea', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:55:07,652] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40 [2025-07-28 09:55:07,653] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x176249847b9a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 37;TIP_50uLF_L_0001, 38;TIP_50uLF_L_0001, 39;TIP_50uLF_L_0001, 40', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:55:07,653] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,653] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176249847d64', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,654] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,654] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x1762498480d6', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,654] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,655] JSONLogger INFO {'command': 'channelDispense', 'id': '0x1762498483c7', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,655] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,655] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x1762498485f5', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:55:07,665] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44 [2025-07-28 09:55:07,665] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17624984ab53', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 41;TIP_50uLF_L_0001, 42;TIP_50uLF_L_0001, 43;TIP_50uLF_L_0001, 44', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:55:07,665] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,665] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624984ace4', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,666] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,666] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624984b037', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,667] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,667] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17624984b351', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,667] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,667] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17624984b593', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:55:07,675] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48 [2025-07-28 09:55:07,675] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17624984d495', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 45;TIP_50uLF_L_0001, 46;TIP_50uLF_L_0001, 47;TIP_50uLF_L_0001, 48', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:55:07,676] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,676] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624984d6fc', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,677] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,677] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17624984db1a', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,678] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,678] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17624984df2b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,679] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,679] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17624984e21f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:55:07,687] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52 [2025-07-28 09:55:07,687] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1762498501c8', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 49;TIP_50uLF_L_0001, 50;TIP_50uLF_L_0001, 51;TIP_50uLF_L_0001, 52', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-28 09:55:07,687] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, None, None, None, None] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,688] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176249850438', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,689] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, 50, 50, 50] from positions [(skip); (skip); (skip); (skip); RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:55:07,689] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x176249850919', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,690] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 09:55:07,690] JSONLogger INFO {'command': 'channelDispense', 'id': '0x176249850cfc', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-28 09:55:07,690] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 09:55:07,690] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x176249850faf', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-28 09:55:07,691] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 09:55:07,691] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-28 09:55:07,691] pyhamilton.interface INFO disconnected from server [2025-07-28 09:55:07,791] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 09:55:07,792] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 09:55:07,795] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 09:55:07,797] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 09:55:07,798] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 09:55:07,798] pyhamilton.interface INFO server thread exited [2025-07-28 09:55:50,100] root INFO ########################################################################################################################### [2025-07-28 09:55:50,101] root INFO # # [2025-07-28 09:55:50,101] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-28 09:55:50,101] root INFO # # [2025-07-28 09:55:50,101] root INFO ########################################################################################################################### [2025-07-28 09:55:50,102] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 09:55:50,102] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 09:55:50,103] pyhamilton.interface INFO started the server thread [2025-07-28 09:55:50,104] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 09:55:50,127] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4 [2025-07-28 09:55:52,191] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-28 09:55:52,372] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0] from positions [RGT_Beads, 1; RGT_Beads, 2; RGT_Beads, 3; RGT_Beads, 4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 09:56:19,507] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 09:56:19,693] pyhamilton.interface INFO disconnected from server [2025-07-28 09:56:19,794] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 09:56:19,795] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 09:56:19,800] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 09:56:19,803] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 09:56:19,804] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 09:56:19,805] pyhamilton.interface INFO server thread exited [2025-07-28 09:56:19,816] root ERROR Traceback (most recent call last): [2025-07-28 09:56:19,822] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 35, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 09:56:19,822] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 121, in pip_transfer troughs, performed_additional_volume_transfer = manage_multiple_troughs(ham_int, source_positions, total_volume_needed, liquid_class, 0, 0, check_volumes=True) ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 09:56:19,823] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\trough_manager.py", line 40, in manage_multiple_troughs trough = select_trough(ham_int, aspiration_positions, volume, liquid_class, prealiquot_volume, postaliquot_volume) [2025-07-28 09:56:19,823] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\trough_manager.py", line 20, in select_trough trough_volumes = check_volumes_in_troughs(ham_int, aspiration_positions, liquid_class) [2025-07-28 09:56:19,823] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\trough_manager.py", line 13, in check_volumes_in_troughs response = ham_int.aspirate(trough_positions, vols, liquidClass=liquid_class, capacitiveLLD=1) [2025-07-28 09:56:19,823] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 808, in aspirate response = self.wait_on_response( self.send_command( ...<7 lines>... return_data=['step-return2', 'step-return3'] ) [2025-07-28 09:56:19,823] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 668, in wait_on_response for _ in wait(delays=delays, timeout=timeout): ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 09:56:19,824] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\waiter\__init__.py", line 91, in __iter__ time.sleep(min(delay, remaining)) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 09:56:19,824] root ERROR KeyboardInterrupt [2025-07-28 09:56:19,824] root ERROR During handling of the above exception, another exception occurred: [2025-07-28 09:56:19,825] root ERROR Traceback (most recent call last): [2025-07-28 09:56:19,828] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 26, in with HamiltonInterface(windowed=True, simulating=False) as ham_int: ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 09:56:19,828] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 588, in __exit__ self.stop() ~~~~~~~~~^^ [2025-07-28 09:56:19,829] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 552, in stop self.wait_on_response(self.send_command(command='end', id=hex(0)), timeout=1.5) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 09:56:19,829] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 668, in wait_on_response for _ in wait(delays=delays, timeout=timeout): ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 09:56:19,829] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\waiter\__init__.py", line 91, in __iter__ time.sleep(min(delay, remaining)) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 09:56:19,830] root ERROR KeyboardInterrupt [2025-07-28 09:59:48,448] root INFO ########################################################################################################################### [2025-07-28 09:59:48,449] root INFO # # [2025-07-28 09:59:48,449] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-28 09:59:48,450] root INFO # # [2025-07-28 09:59:48,450] root INFO ########################################################################################################################### [2025-07-28 09:59:48,451] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 09:59:48,451] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 09:59:48,452] pyhamilton.interface INFO started the server thread [2025-07-28 09:59:48,452] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 09:59:48,460] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1 [2025-07-28 09:59:51,410] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-28 09:59:51,597] pyhamilton.interface INFO aspirate: Aspirate volumes [0] from positions [rgt_cont_60ml_BC_A00_0001, 1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 09:59:53,611] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 2 [2025-07-28 09:59:54,613] pyhamilton.interface INFO aspirate: Aspirate volumes [50, None, None, None, None, None, None, None] from positions [rgt_cont_60ml_BC_A00_0001, 1; (skip); (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:59:56,618] pyhamilton.interface INFO aspirate: Aspirate volumes [None, 50, None, None, None, None, None, None] from positions [(skip); rgt_cont_60ml_BC_A00_0001, 1; (skip); (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:59:58,624] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, 50, None, None, None, None, None] from positions [(skip); (skip); rgt_cont_60ml_BC_A00_0001, 1; (skip); (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 09:59:59,627] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, 50, None, None, None, None] from positions [(skip); (skip); (skip); rgt_cont_60ml_BC_A00_0001, 1; (skip); (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:00:01,632] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, 50, None, None, None] from positions [(skip); (skip); (skip); (skip); rgt_cont_60ml_BC_A00_0001, 1; (skip); (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:00:03,636] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, 50, None, None] from positions [(skip); (skip); (skip); (skip); (skip); rgt_cont_60ml_BC_A00_0001, 1; (skip); (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:00:04,639] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, 50, None] from positions [(skip); (skip); (skip); (skip); (skip); (skip); rgt_cont_60ml_BC_A00_0001, 1; (skip)] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:00:09,644] pyhamilton.interface INFO aspirate: Aspirate volumes [None, None, None, None, None, None, None, 50] from positions [(skip); (skip); (skip); (skip); (skip); (skip); (skip); rgt_cont_60ml_BC_A00_0001, 1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:00:11,649] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 10:00:13,653] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:00:15,155] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 10:00:15,155] pyhamilton.interface INFO disconnected from server [2025-07-28 10:00:15,256] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:00:15,256] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 10:00:15,261] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 10:00:15,264] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 10:00:15,264] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:00:15,265] pyhamilton.interface INFO server thread exited [2025-07-28 10:00:15,268] root ERROR Traceback (most recent call last): [2025-07-28 10:00:15,269] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 35, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:00:15,270] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 155, in pip_transfer dispense_heights = response.liquidHeights ^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:00:15,270] root ERROR AttributeError: 'HamiltonResponse' object has no attribute 'liquidHeights' [2025-07-28 10:05:47,433] root INFO ########################################################################################################################### [2025-07-28 10:05:47,433] root INFO # # [2025-07-28 10:05:47,433] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-28 10:05:47,433] root INFO # # [2025-07-28 10:05:47,433] root INFO ########################################################################################################################### [2025-07-28 10:05:47,434] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:05:47,434] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:05:47,435] pyhamilton.interface INFO started the server thread [2025-07-28 10:05:47,435] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:05:47,470] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-28 10:05:49,334] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-28 10:05:49,475] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0, 0, 0, 0, 0] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 10:05:52,480] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:05:53,981] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 10:05:53,982] pyhamilton.interface INFO disconnected from server [2025-07-28 10:05:54,083] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:05:54,084] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 10:05:54,088] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 10:05:54,089] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 10:05:54,090] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:05:54,090] pyhamilton.interface INFO server thread exited [2025-07-28 10:05:54,093] root ERROR Traceback (most recent call last): [2025-07-28 10:05:54,094] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 35, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:05:54,095] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 121, in pip_transfer troughs, performed_additional_volume_transfer = manage_multiple_troughs(ham_int, source_positions, total_volume_needed, liquid_class, 0, 0, check_volumes=True) ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:05:54,095] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\trough_manager.py", line 40, in manage_multiple_troughs trough = select_trough(ham_int, aspiration_positions, volume, liquid_class, prealiquot_volume, postaliquot_volume) [2025-07-28 10:05:54,095] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\trough_manager.py", line 20, in select_trough trough_volumes = check_volumes_in_troughs(ham_int, aspiration_positions, liquid_class) [2025-07-28 10:05:54,095] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\trough_manager.py", line 13, in check_volumes_in_troughs response = ham_int.aspirate(trough_positions, vols, liquidClass=liquid_class, capacitiveLLD=1) [2025-07-28 10:05:54,095] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 838, in aspirate liquidVolumes=float(response.return_data[1]), ~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:05:54,095] root ERROR ValueError: could not convert string to float: '-29.00653;-28.95292;-28.89930;-28.84568;-28.79207;-28.73845;-28.68484;-28.63122' [2025-07-28 10:17:04,900] root INFO ########################################################################################################################### [2025-07-28 10:17:04,900] root INFO # # [2025-07-28 10:17:04,900] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-28 10:17:04,901] root INFO # # [2025-07-28 10:17:04,901] root INFO ########################################################################################################################### [2025-07-28 10:17:04,901] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:17:04,902] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:17:04,902] pyhamilton.interface INFO started the server thread [2025-07-28 10:17:04,902] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:17:04,936] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-28 10:17:06,876] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-28 10:17:07,059] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0, 0, 0, 0, 0] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 10:17:10,065] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:17:11,566] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 10:17:11,566] pyhamilton.interface INFO disconnected from server [2025-07-28 10:17:11,667] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:17:11,668] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 10:17:11,672] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 10:17:11,675] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 10:17:11,675] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:17:11,676] pyhamilton.interface INFO server thread exited [2025-07-28 10:17:11,679] root ERROR Traceback (most recent call last): [2025-07-28 10:17:11,681] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 34, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:17:11,682] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 121, in pip_transfer troughs, performed_additional_volume_transfer = manage_multiple_troughs(ham_int, source_positions, total_volume_needed, liquid_class, 0, 0, check_volumes=True) ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:17:11,683] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\trough_manager.py", line 40, in manage_multiple_troughs trough = select_trough(ham_int, aspiration_positions, volume, liquid_class, prealiquot_volume, postaliquot_volume) [2025-07-28 10:17:11,683] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\trough_manager.py", line 20, in select_trough trough_volumes = check_volumes_in_troughs(ham_int, aspiration_positions, liquid_class) [2025-07-28 10:17:11,684] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\trough_manager.py", line 15, in check_volumes_in_troughs volume = min(response.liquidVolumes[0]) if type(response.liquidVolumes) is list else response.liquidVolumes ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:17:11,685] root ERROR TypeError: 'float' object is not iterable [2025-07-28 10:18:37,680] root INFO ########################################################################################################################### [2025-07-28 10:18:37,681] root INFO # # [2025-07-28 10:18:37,681] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-28 10:18:37,681] root INFO # # [2025-07-28 10:18:37,681] root INFO ########################################################################################################################### [2025-07-28 10:18:37,683] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:18:37,683] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:18:37,684] pyhamilton.interface INFO started the server thread [2025-07-28 10:18:37,684] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:18:37,716] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-28 10:18:40,791] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-28 10:18:41,061] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0, 0, 0, 0, 0] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 10:18:43,065] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:18:44,566] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 10:18:44,567] pyhamilton.interface INFO disconnected from server [2025-07-28 10:18:44,667] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:18:44,668] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 10:18:44,673] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 10:18:44,675] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 10:18:44,676] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:18:44,677] pyhamilton.interface INFO server thread exited [2025-07-28 10:18:44,680] root ERROR Traceback (most recent call last): [2025-07-28 10:18:44,682] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 34, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:18:44,682] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 121, in pip_transfer troughs, performed_additional_volume_transfer = manage_multiple_troughs(ham_int, source_positions, total_volume_needed, liquid_class, 0, 0, check_volumes=True) ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:18:44,682] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\trough_manager.py", line 40, in manage_multiple_troughs trough = select_trough(ham_int, aspiration_positions, volume, liquid_class, prealiquot_volume, postaliquot_volume) [2025-07-28 10:18:44,683] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\trough_manager.py", line 20, in select_trough trough_volumes = check_volumes_in_troughs(ham_int, aspiration_positions, liquid_class) [2025-07-28 10:18:44,683] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\trough_manager.py", line 15, in check_volumes_in_troughs volume = min(response.liquidVolumes[0]) if type(response.liquidVolumes) is list else response.liquidVolumes ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:18:44,683] root ERROR TypeError: 'float' object is not iterable [2025-07-28 10:19:53,028] root INFO ########################################################################################################################### [2025-07-28 10:19:53,030] root INFO # # [2025-07-28 10:19:53,030] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-28 10:19:53,030] root INFO # # [2025-07-28 10:19:53,031] root INFO ########################################################################################################################### [2025-07-28 10:19:53,032] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:19:53,034] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:19:53,034] pyhamilton.interface INFO started the server thread [2025-07-28 10:19:53,035] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:19:53,093] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-28 10:19:56,246] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-28 10:19:56,412] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0, 0, 0, 0, 0] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 10:19:58,449] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-28 10:19:59,457] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:20:01,462] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 10:20:03,467] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 10:20:04,529] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-07-28 10:20:05,533] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:20:07,539] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 10:20:09,542] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 10:20:10,575] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32 [2025-07-28 10:20:14,579] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:20:16,584] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 10:20:18,588] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 10:20:19,622] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40 [2025-07-28 10:20:20,624] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:20:22,629] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 10:20:24,634] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 10:20:25,677] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44; TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48 [2025-07-28 10:20:26,680] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:20:28,683] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-07-28 10:20:31,686] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-28 10:20:33,717] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52; TIP_50uLF_L_0001, 53; TIP_50uLF_L_0001, 54; TIP_50uLF_L_0001, 55; TIP_50uLF_L_0001, 56 [2025-07-28 10:20:37,712] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:20:37,870] pyhamilton.interface INFO disconnected from server [2025-07-28 10:20:37,971] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:20:37,972] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 10:20:37,977] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 10:20:37,980] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 10:20:37,981] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:20:37,981] pyhamilton.interface INFO server thread exited [2025-07-28 10:20:37,990] root ERROR Traceback (most recent call last): [2025-07-28 10:20:37,993] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 34, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:20:37,994] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 131, in pip_transfer tracked_tip_pick_up(ham_int, tips, num_tips) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:20:37,994] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_handling_wrappers.py", line 211, in tracked_tip_pick_up ham_int.tip_pick_up(tips_poss) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ [2025-07-28 10:20:37,995] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 915, in tip_pick_up self.wait_on_response( ~~~~~~~~~~~~~~~~~~~~~^ self.send_command( ^^^^^^^^^^^^^^^^^^ ...<5 lines>... raise_first_exception=True ^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ [2025-07-28 10:20:37,995] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 668, in wait_on_response for _ in wait(delays=delays, timeout=timeout): ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:20:37,996] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\waiter\__init__.py", line 91, in __iter__ time.sleep(min(delay, remaining)) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:20:37,996] root ERROR KeyboardInterrupt [2025-07-28 10:20:37,997] root ERROR During handling of the above exception, another exception occurred: [2025-07-28 10:20:37,998] root ERROR Traceback (most recent call last): [2025-07-28 10:20:38,002] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 26, in with HamiltonInterface(windowed=True, simulating=False) as ham_int: ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:20:38,002] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 588, in __exit__ self.stop() ~~~~~~~~~^^ [2025-07-28 10:20:38,003] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 552, in stop self.wait_on_response(self.send_command(command='end', id=hex(0)), timeout=1.5) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:20:38,004] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 668, in wait_on_response for _ in wait(delays=delays, timeout=timeout): ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:20:38,004] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\waiter\__init__.py", line 91, in __iter__ time.sleep(min(delay, remaining)) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:20:38,005] root ERROR KeyboardInterrupt [2025-07-28 10:26:11,388] root INFO ########################################################################################################################### [2025-07-28 10:26:11,389] root INFO # # [2025-07-28 10:26:11,389] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-07-28 10:26:11,389] root INFO # # [2025-07-28 10:26:11,389] root INFO ########################################################################################################################### [2025-07-28 10:26:11,390] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:26:11,390] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:26:11,391] pyhamilton.interface INFO started the server thread [2025-07-28 10:26:11,391] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:26:11,428] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-28 10:26:14,346] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-28 10:26:14,557] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0, 0, 0, 0, 0] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-07-28 10:26:17,602] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-28 10:26:18,607] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-07-28 10:26:19,187] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:26:19,362] pyhamilton.interface INFO disconnected from server [2025-07-28 10:26:19,463] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:26:19,464] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 10:26:19,467] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 10:26:19,469] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 10:26:19,469] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:26:19,470] pyhamilton.interface INFO server thread exited [2025-07-28 10:26:19,473] root ERROR Traceback (most recent call last): [2025-07-28 10:26:19,476] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 35, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:26:19,476] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 139, in pip_transfer response = ham_int.aspirate(positions, vols, liquidClass=liquid_class, mixCycles=prewet_cycles, mixVolume=prewet_volume, liquidHeight=aspirate_height_from_bottom, capacitiveLLD=aspirate_capacitative_LLD, aspirateMode=aspirate_mode, liquidFollowing=liquid_following_aspiration) [2025-07-28 10:26:19,477] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 808, in aspirate response = self.wait_on_response( self.send_command( ...<7 lines>... return_data=['step-return2', 'step-return3'] ) [2025-07-28 10:26:19,477] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 668, in wait_on_response for _ in wait(delays=delays, timeout=timeout): ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:26:19,478] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\waiter\__init__.py", line 91, in __iter__ time.sleep(min(delay, remaining)) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:26:19,478] root ERROR KeyboardInterrupt [2025-07-28 10:26:19,479] root ERROR During handling of the above exception, another exception occurred: [2025-07-28 10:26:19,479] root ERROR Traceback (most recent call last): [2025-07-28 10:26:19,480] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 27, in with HamiltonInterface(windowed=True, simulating=False) as ham_int: ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:26:19,480] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 588, in __exit__ self.stop() ~~~~~~~~~^^ [2025-07-28 10:26:19,481] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 552, in stop self.wait_on_response(self.send_command(command='end', id=hex(0)), timeout=1.5) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:26:19,481] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 668, in wait_on_response for _ in wait(delays=delays, timeout=timeout): ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:26:19,481] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\waiter\__init__.py", line 91, in __iter__ time.sleep(min(delay, remaining)) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:26:19,482] root ERROR KeyboardInterrupt [2025-07-28 10:26:54,219] root INFO ######################################################################################################################## [2025-07-28 10:26:54,219] root INFO # # [2025-07-28 10:26:54,219] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\mix_plate.py # [2025-07-28 10:26:54,219] root INFO # # [2025-07-28 10:26:54,220] root INFO ######################################################################################################################## [2025-07-28 10:26:54,220] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:26:54,220] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:26:54,220] pyhamilton.interface INFO started the server thread [2025-07-28 10:26:54,221] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:26:54,221] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:26:55,722] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 10:26:55,723] pyhamilton.interface INFO disconnected from server [2025-07-28 10:26:55,823] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:26:55,824] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 10:26:55,831] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 10:26:55,834] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 10:26:55,835] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:26:55,835] pyhamilton.interface INFO server thread exited [2025-07-28 10:26:55,837] root ERROR Traceback (most recent call last): [2025-07-28 10:26:55,838] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\mix_plate.py", line 35, in mix_plate(ham_int, tips, MIDI_OffMagnet, 100, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty') ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:26:55,839] root ERROR TypeError: mix_plate() got multiple values for argument 'liquid_class' [2025-07-28 10:47:47,432] root INFO ######################################################################################################################## [2025-07-28 10:47:47,433] root INFO # # [2025-07-28 10:47:47,433] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\mix_plate.py # [2025-07-28 10:47:47,433] root INFO # # [2025-07-28 10:47:47,434] root INFO ######################################################################################################################## [2025-07-28 10:47:47,435] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:47:47,436] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:47:47,436] pyhamilton.interface INFO started the server thread [2025-07-28 10:47:47,436] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:47:47,438] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:47:48,939] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 10:47:48,940] pyhamilton.interface INFO disconnected from server [2025-07-28 10:47:49,042] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:47:49,042] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 10:47:49,046] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 10:47:49,048] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 10:47:49,049] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:47:49,049] pyhamilton.interface INFO server thread exited [2025-07-28 10:47:49,051] root ERROR Traceback (most recent call last): [2025-07-28 10:47:49,053] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\mix_plate.py", line 32, in mix_plate(ham_int, tips, MIDI_OffMagnet, 100, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty') ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:47:49,053] root ERROR TypeError: mix_plate() got multiple values for argument 'liquid_class' [2025-07-28 10:48:47,273] root INFO ######################################################################################################################## [2025-07-28 10:48:47,274] root INFO # # [2025-07-28 10:48:47,274] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\mix_plate.py # [2025-07-28 10:48:47,274] root INFO # # [2025-07-28 10:48:47,274] root INFO ######################################################################################################################## [2025-07-28 10:48:47,275] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:48:47,276] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:48:47,276] pyhamilton.interface INFO started the server thread [2025-07-28 10:48:47,276] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:48:47,742] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-07-28 10:48:48,744] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:48:50,246] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 10:48:50,246] pyhamilton.interface INFO disconnected from server [2025-07-28 10:48:50,347] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:48:50,348] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 10:48:50,352] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 10:48:50,354] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 10:48:50,355] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:48:50,355] pyhamilton.interface INFO server thread exited [2025-07-28 10:48:50,360] root ERROR Traceback (most recent call last): [2025-07-28 10:48:50,363] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\mix_plate.py", line 32, in mix_plate(ham_int, tips, MIDI_OffMagnet, 100, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty') ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:48:50,364] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 182, in mix_plate tracked_tip_pick_up_96(ham_int, tips) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ [2025-07-28 10:48:50,364] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_handling_wrappers.py", line 223, in tracked_tip_pick_up_96 ham_int.tip_pick_up_96(tip_rack) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^ [2025-07-28 10:48:50,365] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 967, in tip_pick_up_96 self.wait_on_response( ~~~~~~~~~~~~~~~~~~~~~^ self.send_command( ^^^^^^^^^^^^^^^^^^ ...<4 lines>... raise_first_exception=True ^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ [2025-07-28 10:48:50,365] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 679, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:48:50,366] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 698, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-07-28 10:48:50,367] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 408, in raise_first_exception raise HamiltonReturnParseError(self.raw) [2025-07-28 10:48:50,367] root ERROR pyhamilton.oemerr.HamiltonReturnParseError: {"command":"STAR-return","step-name":"mph96TipPickUp","step-return1":"1[01,01,30,2,,,","step-return2":"2","step-return3":"","step-return4":"","id":"0x17630973293a"} [2025-07-28 10:51:26,111] root INFO ######################################################################################################################## [2025-07-28 10:51:26,112] root INFO # # [2025-07-28 10:51:26,112] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\mix_plate.py # [2025-07-28 10:51:26,112] root INFO # # [2025-07-28 10:51:26,112] root INFO ######################################################################################################################## [2025-07-28 10:51:26,113] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:51:26,114] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:51:26,114] pyhamilton.interface INFO started the server thread [2025-07-28 10:51:26,114] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:51:26,500] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-07-28 10:51:28,503] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:51:30,003] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 10:51:30,004] pyhamilton.interface INFO disconnected from server [2025-07-28 10:51:30,104] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:51:30,104] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 10:51:30,110] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 10:51:30,112] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 10:51:30,113] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:51:30,113] pyhamilton.interface INFO server thread exited [2025-07-28 10:51:30,114] root ERROR Traceback (most recent call last): [2025-07-28 10:51:30,117] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\mix_plate.py", line 32, in mix_plate(ham_int, tips, MIDI_OffMagnet, 100, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty') ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:51:30,118] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 187, in mix_plate ham_int.aspirate_96(plate, volume=0, liquid_class=liquid_class, mixCycles=mix_cycles, mixVolume=mix_volume, ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_height=liquid_height, capacitative_LLD=cLLD, liquidFollowing=liquidFollowing) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:51:30,118] root ERROR TypeError: HamiltonInterface.aspirate_96() missing 1 required positional argument: 'vol' [2025-07-28 10:57:01,744] root INFO ######################################################################################################################## [2025-07-28 10:57:01,745] root INFO # # [2025-07-28 10:57:01,745] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\mix_plate.py # [2025-07-28 10:57:01,746] root INFO # # [2025-07-28 10:57:01,746] root INFO ######################################################################################################################## [2025-07-28 10:57:01,747] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:57:01,747] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:57:01,747] pyhamilton.interface INFO started the server thread [2025-07-28 10:57:01,747] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:57:02,125] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-07-28 10:57:04,126] pyhamilton.interface INFO aspirate_96: Aspirate volume 0 from MIDI_Pipette with extra options {'liquid_class': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 100, 'liquid_height': 0, 'capacitative_LLD': 5, 'liquidFollowing': True} [2025-07-28 10:57:04,127] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:57:05,628] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 10:57:05,629] pyhamilton.interface INFO disconnected from server [2025-07-28 10:57:05,730] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:57:05,730] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 10:57:05,735] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 10:57:05,737] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 10:57:05,737] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:57:05,738] pyhamilton.interface INFO server thread exited [2025-07-28 10:57:05,741] root ERROR Traceback (most recent call last): [2025-07-28 10:57:05,743] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\mix_plate.py", line 32, in mix_plate(ham_int, tips, MIDI_OffMagnet, 100, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty') ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:57:05,744] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 187, in mix_plate ham_int.aspirate_96(plate, 0, liquid_class=liquid_class, mixCycles=mix_cycles, mixVolume=mix_volume, ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_height=liquid_height, capacitative_LLD=cLLD, liquidFollowing=liquidFollowing) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 10:57:05,745] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 1016, in aspirate_96 self.send_command( ~~~~~~~~~~~~~~~~~^ ASPIRATE96, ^^^^^^^^^^^ ...<2 lines>... **more_options ^^^^^^^^^^^^^^ ), ^ [2025-07-28 10:57:05,745] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 625, in send_command send_cmd_dict = template.assemble_cmd(**cmd_dict) [2025-07-28 10:57:05,746] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 66, in assemble_cmd self.assert_valid_cmd(assembled_cmd) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ [2025-07-28 10:57:05,747] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 114, in assert_valid_cmd raise ValueError('\n'.join(prints)) [2025-07-28 10:57:05,748] root ERROR ValueError: Assert valid command "mph96Aspirate" failed: template parameter keys (left) do not match given keys (right) airTransportRetractDist airTransportRetractDist aspirateMode aspirateMode aspirateSequence aspirateSequence aspirateVolume aspirateVolume capacitiveLLD (?) capacitative_LLD channelVariable capacitiveLLD command channelVariable id command labwarePositions id liquidClass labwarePositions liquidFollowing liquidClass liquidHeight liquidFollowing mixCycles liquidHeight mixPosition (?) liquid_class mixVolume (?) liquid_height sequenceCounting mixCycles submergeDepth mixPosition mixVolume sequenceCounting submergeDepth [2025-07-28 10:58:11,946] root INFO ######################################################################################################################## [2025-07-28 10:58:11,946] root INFO # # [2025-07-28 10:58:11,947] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\mix_plate.py # [2025-07-28 10:58:11,947] root INFO # # [2025-07-28 10:58:11,947] root INFO ######################################################################################################################## [2025-07-28 10:58:11,948] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 10:58:11,948] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 10:58:11,949] pyhamilton.interface INFO started the server thread [2025-07-28 10:58:11,949] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 10:58:12,338] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-07-28 10:58:15,341] pyhamilton.interface INFO aspirate_96: Aspirate volume 0 from MIDI_Pipette with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 100, 'liquidHeight': 0, 'capacitiveLLD': 5, 'liquidFollowing': True} [2025-07-28 10:58:17,343] pyhamilton.interface INFO tip_eject_96: Eject tips to default waste [2025-07-28 10:58:18,346] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 10:58:19,847] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 10:58:19,847] pyhamilton.interface INFO disconnected from server [2025-07-28 10:58:19,948] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 10:58:19,949] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 10:58:19,953] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 10:58:19,955] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 10:58:19,956] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 10:58:19,956] pyhamilton.interface INFO server thread exited [2025-07-28 11:06:39,384] root INFO ########################################################################################################################## [2025-07-28 11:06:39,385] root INFO # # [2025-07-28 11:06:39,385] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\transfer_96.py # [2025-07-28 11:06:39,385] root INFO # # [2025-07-28 11:06:39,385] root INFO ########################################################################################################################## [2025-07-28 11:06:39,386] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 11:06:39,386] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 11:06:39,387] pyhamilton.interface INFO started the server thread [2025-07-28 11:06:39,387] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 11:06:39,387] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 11:06:40,888] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 11:06:40,889] pyhamilton.interface INFO disconnected from server [2025-07-28 11:06:40,989] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 11:06:40,990] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 11:06:40,997] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 11:06:41,000] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 11:06:41,002] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 11:06:41,002] pyhamilton.interface INFO server thread exited [2025-07-28 11:06:41,005] root ERROR Traceback (most recent call last): [2025-07-28 11:06:41,005] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\transfer_96.py", line 33, in transfer_96(ham_int, tips, MIDI_OffMagnet, 100, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty') ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 11:06:41,006] root ERROR TypeError: transfer_96() missing 1 required positional argument: 'volume' [2025-07-28 11:08:02,701] root INFO ########################################################################################################################## [2025-07-28 11:08:02,702] root INFO # # [2025-07-28 11:08:02,702] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\transfer_96.py # [2025-07-28 11:08:02,703] root INFO # # [2025-07-28 11:08:02,703] root INFO ########################################################################################################################## [2025-07-28 11:08:02,704] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 11:08:02,705] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 11:08:02,705] pyhamilton.interface INFO started the server thread [2025-07-28 11:08:02,705] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 11:08:02,707] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 11:08:04,208] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 11:08:04,209] pyhamilton.interface INFO disconnected from server [2025-07-28 11:08:04,310] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 11:08:04,311] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 11:08:04,317] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 11:08:04,321] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 11:08:04,322] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 11:08:04,322] pyhamilton.interface INFO server thread exited [2025-07-28 11:08:04,324] root ERROR Traceback (most recent call last): [2025-07-28 11:08:04,326] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\transfer_96.py", line 35, in transfer_96(ham_int, tips, MIDI_OffMagnet, 100, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty') ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 11:08:04,327] root ERROR TypeError: transfer_96() missing 1 required positional argument: 'volume' [2025-07-28 11:09:00,002] root INFO ########################################################################################################################## [2025-07-28 11:09:00,003] root INFO # # [2025-07-28 11:09:00,003] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\transfer_96.py # [2025-07-28 11:09:00,003] root INFO # # [2025-07-28 11:09:00,004] root INFO ########################################################################################################################## [2025-07-28 11:09:00,005] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 11:09:00,006] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 11:09:00,007] pyhamilton.interface INFO started the server thread [2025-07-28 11:09:00,008] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 11:09:00,666] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-07-28 11:09:02,669] pyhamilton.interface INFO aspirate_96: Aspirate volume 100 from MIDI_Pipette with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mix_cycles': 0, 'liquid_height': 0} [2025-07-28 11:09:02,670] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 11:09:04,171] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 11:09:04,171] pyhamilton.interface INFO disconnected from server [2025-07-28 11:09:04,271] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 11:09:04,273] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 11:09:04,279] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 11:09:04,283] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 11:09:04,284] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 11:09:04,284] pyhamilton.interface INFO server thread exited [2025-07-28 11:09:04,289] root ERROR Traceback (most recent call last): [2025-07-28 11:09:04,292] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\transfer_96.py", line 35, in transfer_96(ham_int, tips, MIDI_OffMagnet, MIDI_OnMagnet, 100, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty') ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 11:09:04,293] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 236, in transfer_96 ham_int.aspirate_96(source_plate, volume, liquidClass=liquid_class, mix_cycles=mix_cycles, liquid_height=liquid_height) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 11:09:04,293] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 1016, in aspirate_96 self.send_command( ~~~~~~~~~~~~~~~~~^ ASPIRATE96, ^^^^^^^^^^^ ...<2 lines>... **more_options ^^^^^^^^^^^^^^ ), ^ [2025-07-28 11:09:04,294] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 625, in send_command send_cmd_dict = template.assemble_cmd(**cmd_dict) [2025-07-28 11:09:04,294] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 66, in assemble_cmd self.assert_valid_cmd(assembled_cmd) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ [2025-07-28 11:09:04,294] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 114, in assert_valid_cmd raise ValueError('\n'.join(prints)) [2025-07-28 11:09:04,295] root ERROR ValueError: Assert valid command "mph96Aspirate" failed: template parameter keys (left) do not match given keys (right) airTransportRetractDist airTransportRetractDist aspirateMode aspirateMode aspirateSequence aspirateSequence aspirateVolume aspirateVolume capacitiveLLD capacitiveLLD channelVariable channelVariable command command id id labwarePositions labwarePositions liquidClass liquidClass liquidFollowing liquidFollowing liquidHeight liquidHeight mixCycles (?) liquid_height mixPosition mixCycles mixVolume mixPosition sequenceCounting mixVolume submergeDepth (?) mix_cycles sequenceCounting submergeDepth [2025-07-28 11:10:34,789] root INFO ########################################################################################################################## [2025-07-28 11:10:34,790] root INFO # # [2025-07-28 11:10:34,791] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\transfer_96.py # [2025-07-28 11:10:34,791] root INFO # # [2025-07-28 11:10:34,791] root INFO ########################################################################################################################## [2025-07-28 11:10:34,793] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 11:10:34,793] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 11:10:34,794] pyhamilton.interface INFO started the server thread [2025-07-28 11:10:34,794] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 11:10:35,418] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-07-28 11:10:37,420] pyhamilton.interface INFO aspirate_96: Aspirate volume 20 from MIDI_Pipette with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'liquidHeight': 0} [2025-07-28 11:10:39,423] pyhamilton.interface INFO dispense_96: Dispense volume 20 into MIDI_OnMagnet with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'liquidHeight': 0} [2025-07-28 11:10:41,426] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 11:10:42,927] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 11:10:42,927] pyhamilton.interface INFO disconnected from server [2025-07-28 11:10:43,028] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 11:10:43,029] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 11:10:43,038] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 11:10:43,041] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 11:10:43,042] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 11:10:43,042] pyhamilton.interface INFO server thread exited [2025-07-28 11:10:43,045] root ERROR Traceback (most recent call last): [2025-07-28 11:10:43,047] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\transfer_96.py", line 35, in transfer_96(ham_int, tips, MIDI_OffMagnet, MIDI_OnMagnet, 20, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty') ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 11:10:43,048] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 238, in transfer_96 ham_int.eject_tips_96() ^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 11:10:43,048] root ERROR AttributeError: 'HamiltonInterface' object has no attribute 'eject_tips_96' [2025-07-28 12:17:14,299] root INFO ########################################################################################################################## [2025-07-28 12:17:14,300] root INFO # # [2025-07-28 12:17:14,300] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\transfer_96.py # [2025-07-28 12:17:14,300] root INFO # # [2025-07-28 12:17:14,300] root INFO ########################################################################################################################## [2025-07-28 12:17:14,301] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 12:17:14,302] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 12:17:14,302] pyhamilton.interface INFO started the server thread [2025-07-28 12:17:14,302] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 12:17:14,893] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-07-28 12:17:16,895] pyhamilton.interface INFO aspirate_96: Aspirate volume 20 from MIDI_Pipette with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'liquidHeight': 0} [2025-07-28 12:17:18,898] pyhamilton.interface INFO dispense_96: Dispense volume 20 into MIDI_OnMagnet with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'liquidHeight': 0} [2025-07-28 12:17:20,900] pyhamilton.interface INFO tip_eject_96: Eject tips to default waste [2025-07-28 12:17:21,902] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 12:17:23,403] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 12:17:23,403] pyhamilton.interface INFO disconnected from server [2025-07-28 12:17:23,504] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 12:17:23,504] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 12:17:23,509] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 12:17:23,511] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 12:17:23,512] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 12:17:23,512] pyhamilton.interface INFO server thread exited [2025-07-28 13:14:58,661] root INFO ################################################################################################################## [2025-07-28 13:14:58,663] root INFO # # [2025-07-28 13:14:58,664] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-07-28 13:14:58,664] root INFO # # [2025-07-28 13:14:58,664] root INFO ################################################################################################################## [2025-07-28 13:14:58,666] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 13:14:58,667] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 13:14:58,667] pyhamilton.interface INFO started the server thread [2025-07-28 13:14:58,668] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 13:14:59,670] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 13:15:01,171] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 13:15:01,171] pyhamilton.interface INFO disconnected from server [2025-07-28 13:15:01,272] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 13:15:01,273] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 13:15:01,281] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 13:15:01,284] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 13:15:01,284] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 13:15:01,285] pyhamilton.interface INFO server thread exited [2025-07-28 13:15:01,289] root ERROR Traceback (most recent call last): [2025-07-28 13:15:01,292] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 32, in hhs_create_star_device(ham_int, 'STAR', 0) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^ [2025-07-28 13:15:01,293] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 24, in hhs_create_star_device response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field) [2025-07-28 13:15:01,293] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 679, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 13:15:01,294] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 698, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-07-28 13:15:01,295] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 404, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-07-28 13:15:01,295] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_CreateStarDevice","step-return1":0,"step-return2":0,"step-return3":"","step-return4":"","id":"0x1765143ce046"} ) [2025-07-28 13:19:40,795] root INFO ################################################################################################################## [2025-07-28 13:19:40,795] root INFO # # [2025-07-28 13:19:40,795] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-07-28 13:19:40,796] root INFO # # [2025-07-28 13:19:40,796] root INFO ################################################################################################################## [2025-07-28 13:19:40,797] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 13:19:40,798] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 13:19:40,798] pyhamilton.interface INFO started the server thread [2025-07-28 13:19:40,798] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 13:19:41,799] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 13:19:43,300] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 13:19:43,301] pyhamilton.interface INFO disconnected from server [2025-07-28 13:19:43,402] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 13:19:43,403] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 13:19:43,405] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 13:19:43,406] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 13:19:43,407] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 13:19:43,407] pyhamilton.interface INFO server thread exited [2025-07-28 13:19:43,409] root ERROR Traceback (most recent call last): [2025-07-28 13:19:43,410] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 32, in hhs_create_star_device(ham_int, 'ML_STAR', 1) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 13:19:43,410] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 24, in hhs_create_star_device response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field) [2025-07-28 13:19:43,411] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 679, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 13:19:43,411] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 698, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-07-28 13:19:43,411] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 404, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-07-28 13:19:43,411] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_CreateStarDevice","step-return1":0,"step-return2":0,"step-return3":"","step-return4":"","id":"0x1765250dd429"} ) [2025-07-28 13:22:34,590] root INFO ################################################################################################################## [2025-07-28 13:22:34,590] root INFO # # [2025-07-28 13:22:34,591] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-07-28 13:22:34,591] root INFO # # [2025-07-28 13:22:34,591] root INFO ################################################################################################################## [2025-07-28 13:22:34,592] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 13:22:34,592] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 13:22:34,592] pyhamilton.interface INFO started the server thread [2025-07-28 13:22:34,592] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 13:22:35,594] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 13:22:37,095] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 13:22:37,095] pyhamilton.interface INFO disconnected from server [2025-07-28 13:22:37,196] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 13:22:37,197] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 13:22:37,202] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 13:22:37,204] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 13:22:37,205] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 13:22:37,205] pyhamilton.interface INFO server thread exited [2025-07-28 13:22:37,209] root ERROR Traceback (most recent call last): [2025-07-28 13:22:37,211] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 32, in hhs_create_star_device(ham_int, 'ML_STAR', 1) ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 13:22:37,211] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 24, in hhs_create_star_device response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field) [2025-07-28 13:22:37,212] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 679, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 13:22:37,212] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 698, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-07-28 13:22:37,213] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 404, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-07-28 13:22:37,214] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_CreateStarDevice","step-return1":0,"step-return2":0,"step-return3":"","step-return4":"","id":"0x17652f69b7d6"} ) [2025-07-28 13:23:37,042] root INFO ################################################################################################################## [2025-07-28 13:23:37,043] root INFO # # [2025-07-28 13:23:37,043] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-07-28 13:23:37,043] root INFO # # [2025-07-28 13:23:37,044] root INFO ################################################################################################################## [2025-07-28 13:23:37,045] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 13:23:37,046] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 13:23:37,046] pyhamilton.interface INFO started the server thread [2025-07-28 13:23:37,046] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 13:23:38,048] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 13:23:39,549] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 13:23:39,550] pyhamilton.interface INFO disconnected from server [2025-07-28 13:23:39,650] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 13:23:39,651] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 13:23:39,654] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 13:23:39,656] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 13:23:39,656] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 13:23:39,657] pyhamilton.interface INFO server thread exited [2025-07-28 13:23:39,660] root ERROR Traceback (most recent call last): [2025-07-28 13:23:39,662] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 32, in hhs_set_simulation(ham_int, True) # Set simulation mode if needed ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ [2025-07-28 13:23:39,662] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 87, in hhs_set_simulation ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 13:23:39,663] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 679, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 13:23:39,663] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 698, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-07-28 13:23:39,663] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 404, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-07-28 13:23:39,664] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_SetSimulation","step-return1":0,"step-return2":"","step-return3":"","step-return4":"","id":"0x17653322b3a0"} ) [2025-07-28 13:32:10,352] root INFO ################################################################################################################## [2025-07-28 13:32:10,353] root INFO # # [2025-07-28 13:32:10,353] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-07-28 13:32:10,353] root INFO # # [2025-07-28 13:32:10,353] root INFO ################################################################################################################## [2025-07-28 13:32:10,355] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 13:32:10,355] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 13:32:10,356] pyhamilton.interface INFO started the server thread [2025-07-28 13:32:10,356] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 13:32:11,358] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 13:32:12,859] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 13:32:12,860] pyhamilton.interface INFO disconnected from server [2025-07-28 13:32:12,961] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 13:32:12,961] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 13:32:12,966] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 13:32:12,968] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 13:32:12,969] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 13:32:12,969] pyhamilton.interface INFO server thread exited [2025-07-28 13:32:12,971] root ERROR Traceback (most recent call last): [2025-07-28 13:32:12,973] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 32, in hhs_set_simulation(ham_int, True) # Set simulation mode if needed ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ [2025-07-28 13:32:12,974] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 87, in hhs_set_simulation ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 13:32:12,974] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 679, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 13:32:12,975] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 698, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-07-28 13:32:12,976] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 404, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-07-28 13:32:12,976] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_SetSimulation","step-return1":0,"step-return2":"","step-return3":"","step-return4":"","id":"0x176551bb2f74"} ) [2025-07-28 13:41:48,128] root INFO ################################################################################################################## [2025-07-28 13:41:48,129] root INFO # # [2025-07-28 13:41:48,129] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-07-28 13:41:48,129] root INFO # # [2025-07-28 13:41:48,129] root INFO ################################################################################################################## [2025-07-28 13:41:48,131] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 13:41:48,131] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 13:41:48,132] pyhamilton.interface INFO started the server thread [2025-07-28 13:41:48,132] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 13:41:49,134] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 13:41:50,635] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 13:41:50,636] pyhamilton.interface INFO disconnected from server [2025-07-28 13:41:50,736] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 13:41:50,737] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 13:41:50,741] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 13:41:50,743] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 13:41:50,744] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 13:41:50,744] pyhamilton.interface INFO server thread exited [2025-07-28 13:41:50,749] root ERROR Traceback (most recent call last): [2025-07-28 13:41:50,751] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 32, in hhs_set_simulation(ham_int, True) # Set simulation mode if needed ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ [2025-07-28 13:41:50,752] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 87, in hhs_set_simulation ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 13:41:50,752] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 679, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 13:41:50,753] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 698, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-07-28 13:41:50,754] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 404, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-07-28 13:41:50,754] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_SetSimulation","step-return1":0,"step-return2":"","step-return3":"","step-return4":"","id":"0x1765742b56d6"} ) [2025-07-28 13:43:02,616] root INFO ################################################################################################################## [2025-07-28 13:43:02,617] root INFO # # [2025-07-28 13:43:02,617] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-07-28 13:43:02,618] root INFO # # [2025-07-28 13:43:02,618] root INFO ################################################################################################################## [2025-07-28 13:43:02,619] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 13:43:02,621] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 13:43:02,621] pyhamilton.interface INFO started the server thread [2025-07-28 13:43:02,622] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 13:43:03,625] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 13:43:05,126] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 13:43:05,127] pyhamilton.interface INFO disconnected from server [2025-07-28 13:43:05,228] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 13:43:05,229] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 13:43:05,235] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 13:43:05,238] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 13:43:05,239] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 13:43:05,240] pyhamilton.interface INFO server thread exited [2025-07-28 13:43:05,244] root ERROR Traceback (most recent call last): [2025-07-28 13:43:05,246] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 32, in hhs_set_simulation(ham_int, True) # Set simulation mode if needed ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ [2025-07-28 13:43:05,246] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 87, in hhs_set_simulation ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 13:43:05,247] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 679, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 13:43:05,248] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 698, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-07-28 13:43:05,249] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 404, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-07-28 13:43:05,250] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_SetSimulation","step-return1":0,"step-return2":"","step-return3":"","step-return4":"","id":"0x1765789bfdbc"} ) [2025-07-28 13:44:35,266] root INFO ################################################################################################################## [2025-07-28 13:44:35,267] root INFO # # [2025-07-28 13:44:35,267] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-07-28 13:44:35,268] root INFO # # [2025-07-28 13:44:35,268] root INFO ################################################################################################################## [2025-07-28 13:44:35,269] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 13:44:35,270] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 13:44:35,270] pyhamilton.interface INFO started the server thread [2025-07-28 13:44:35,271] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 13:44:36,273] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 13:44:37,774] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 13:44:37,775] pyhamilton.interface INFO disconnected from server [2025-07-28 13:44:37,875] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 13:44:37,876] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 13:44:37,883] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 13:44:37,886] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 13:44:37,886] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 13:44:37,887] pyhamilton.interface INFO server thread exited [2025-07-28 13:44:37,891] root ERROR Traceback (most recent call last): [2025-07-28 13:44:37,894] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 32, in hhs_set_simulation(ham_int, True) # Set simulation mode if needed ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ [2025-07-28 13:44:37,894] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 87, in hhs_set_simulation ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 13:44:37,895] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 679, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 13:44:37,896] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 698, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-07-28 13:44:37,897] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 404, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-07-28 13:44:37,898] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_SetSimulation","step-return1":0,"step-return2":"","step-return3":"","step-return4":"","id":"0x17657e21afb1"} ) [2025-07-28 13:59:44,315] root INFO ################################################################################################################## [2025-07-28 13:59:44,316] root INFO # # [2025-07-28 13:59:44,316] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-07-28 13:59:44,316] root INFO # # [2025-07-28 13:59:44,316] root INFO ################################################################################################################## [2025-07-28 13:59:44,318] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 13:59:44,319] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 13:59:44,319] pyhamilton.interface INFO started the server thread [2025-07-28 13:59:44,319] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 13:59:45,321] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 13:59:46,823] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 13:59:46,824] pyhamilton.interface INFO disconnected from server [2025-07-28 13:59:46,925] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 13:59:46,926] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 13:59:46,933] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 13:59:46,936] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 13:59:46,937] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 13:59:46,938] pyhamilton.interface INFO server thread exited [2025-07-28 13:59:46,943] root ERROR Traceback (most recent call last): [2025-07-28 13:59:46,946] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 32, in hhs_set_simulation(ham_int, 1) # Set simulation mode if needed ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^ [2025-07-28 13:59:46,946] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 87, in hhs_set_simulation ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 13:59:46,947] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 679, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 13:59:46,948] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 698, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-07-28 13:59:46,949] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 404, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-07-28 13:59:46,950] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_SetSimulation","step-return1":0,"step-return2":"","step-return3":"","step-return4":"","id":"0x1765b450a926"} ) [2025-07-28 14:11:33,009] root INFO ################################################################################################################## [2025-07-28 14:11:33,010] root INFO # # [2025-07-28 14:11:33,010] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-07-28 14:11:33,010] root INFO # # [2025-07-28 14:11:33,010] root INFO ################################################################################################################## [2025-07-28 14:11:33,012] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 14:11:33,012] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 14:11:33,013] pyhamilton.interface INFO started the server thread [2025-07-28 14:11:33,013] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 14:11:34,016] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 14:11:35,516] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 14:11:35,517] pyhamilton.interface INFO disconnected from server [2025-07-28 14:11:35,618] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 14:11:35,619] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 14:11:35,626] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 14:11:35,630] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 14:11:35,631] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 14:11:35,631] pyhamilton.interface INFO server thread exited [2025-07-28 14:11:35,637] root ERROR Traceback (most recent call last): [2025-07-28 14:11:35,641] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 32, in hhs_set_simulation(ham_int, 1) # Set simulation mode if needed ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^ [2025-07-28 14:11:35,642] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 87, in hhs_set_simulation ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 14:11:35,643] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 679, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 14:11:35,643] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 698, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-07-28 14:11:35,644] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 404, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-07-28 14:11:35,645] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_SetSimulation","step-return1":0,"step-return2":"","step-return3":"","step-return4":"","id":"0x1765de8e7ad6"} ) [2025-07-28 14:45:37,562] root INFO ################################################################################################################## [2025-07-28 14:45:37,564] root INFO # # [2025-07-28 14:45:37,565] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-07-28 14:45:37,565] root INFO # # [2025-07-28 14:45:37,565] root INFO ################################################################################################################## [2025-07-28 14:45:37,566] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 14:45:37,568] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 14:45:37,568] pyhamilton.interface INFO started the server thread [2025-07-28 14:45:37,569] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 14:45:38,572] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 14:45:40,073] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 14:45:40,073] pyhamilton.interface INFO disconnected from server [2025-07-28 14:45:40,174] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 14:45:40,175] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 14:45:40,181] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 14:45:40,184] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 14:45:40,184] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 14:45:40,185] pyhamilton.interface INFO server thread exited [2025-07-28 14:45:40,187] root ERROR Traceback (most recent call last): [2025-07-28 14:45:40,189] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 32, in hhs_set_simulation(ham_int, 1) # Set simulation mode if needed ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^ [2025-07-28 14:45:40,189] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 87, in hhs_set_simulation ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 14:45:40,190] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 679, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-28 14:45:40,190] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 698, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-07-28 14:45:40,191] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 404, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-07-28 14:45:40,191] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_SetSimulation","step-return1":0,"step-return2":"","step-return3":"","step-return4":"","id":"0x1766586beed6"} ) [2025-07-28 14:50:41,780] root INFO ################################################################################################################## [2025-07-28 14:50:41,781] root INFO # # [2025-07-28 14:50:41,781] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-07-28 14:50:41,781] root INFO # # [2025-07-28 14:50:41,781] root INFO ################################################################################################################## [2025-07-28 14:50:41,782] pyhamilton.interface INFO starting a Hamilton interface [2025-07-28 14:50:41,782] pyhamilton.interface INFO started the oem application for simulation [2025-07-28 14:50:41,782] pyhamilton.interface INFO started the server thread [2025-07-28 14:50:41,782] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-28 14:50:45,786] pyhamilton.interface INFO sending end run command to simulator [2025-07-28 14:50:47,288] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-28 14:50:47,288] pyhamilton.interface INFO disconnected from server [2025-07-28 14:50:47,388] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-28 14:50:47,389] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-28 14:50:47,394] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-28 14:50:47,396] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-28 14:50:47,397] pyhamilton.interface INFO dummy get request sent to server [2025-07-28 14:50:47,398] pyhamilton.interface INFO server thread exited [2025-07-29 12:54:22,432] root INFO ############################################################################################################################# [2025-07-29 12:54:22,432] root INFO # # [2025-07-29 12:54:22,433] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 12:54:22,433] root INFO # # [2025-07-29 12:54:22,433] root INFO ############################################################################################################################# [2025-07-29 12:54:22,433] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 12:54:22,434] pyhamilton.interface INFO running in simulation mode [2025-07-29 12:54:22,434] pyhamilton.interface INFO started the server thread [2025-07-29 12:54:22,434] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 12:54:22,946] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8; TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16; TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24; TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32; TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40; TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44; TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48; TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52; TIP_50uLF_L_0001, 53; TIP_50uLF_L_0001, 54; TIP_50uLF_L_0001, 55; TIP_50uLF_L_0001, 56; TIP_50uLF_L_0001, 57; TIP_50uLF_L_0001, 58; TIP_50uLF_L_0001, 59; TIP_50uLF_L_0001, 60; TIP_50uLF_L_0001, 61; TIP_50uLF_L_0001, 62; TIP_50uLF_L_0001, 63; TIP_50uLF_L_0001, 64; TIP_50uLF_L_0001, 65; TIP_50uLF_L_0001, 66; TIP_50uLF_L_0001, 67; TIP_50uLF_L_0001, 68; TIP_50uLF_L_0001, 69; TIP_50uLF_L_0001, 70; TIP_50uLF_L_0001, 71; TIP_50uLF_L_0001, 72; TIP_50uLF_L_0001, 73; TIP_50uLF_L_0001, 74; TIP_50uLF_L_0001, 75; TIP_50uLF_L_0001, 76; TIP_50uLF_L_0001, 77; TIP_50uLF_L_0001, 78; TIP_50uLF_L_0001, 79; TIP_50uLF_L_0001, 80; TIP_50uLF_L_0001, 81; TIP_50uLF_L_0001, 82; TIP_50uLF_L_0001, 83; TIP_50uLF_L_0001, 84; TIP_50uLF_L_0001, 85; TIP_50uLF_L_0001, 86; TIP_50uLF_L_0001, 87; TIP_50uLF_L_0001, 88; TIP_50uLF_L_0001, 89; TIP_50uLF_L_0001, 90; TIP_50uLF_L_0001, 91; TIP_50uLF_L_0001, 92; TIP_50uLF_L_0001, 93; TIP_50uLF_L_0001, 94; TIP_50uLF_L_0001, 95; TIP_50uLF_L_0001, 96 [2025-07-29 12:54:22,946] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 12:54:22,946] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-29 12:54:22,946] pyhamilton.interface INFO disconnected from server [2025-07-29 12:54:23,047] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 12:54:23,048] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 12:54:23,054] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 12:54:23,058] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 12:54:23,058] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 12:54:23,059] pyhamilton.interface INFO server thread exited [2025-07-29 12:54:23,060] root ERROR Traceback (most recent call last): [2025-07-29 12:54:23,061] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 12:54:23,061] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 242, in multi_dispense tracked_tip_pick_up(ham_int, tips, num_tips) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 12:54:23,062] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_handling_wrappers.py", line 211, in tracked_tip_pick_up ham_int.tip_pick_up(tips_poss) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ [2025-07-29 12:54:23,062] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 913, in tip_pick_up raise ValueError('Can only pick up 8 tips at a time') [2025-07-29 12:54:23,063] root ERROR ValueError: Can only pick up 8 tips at a time [2025-07-29 12:55:16,187] root INFO ############################################################################################################################# [2025-07-29 12:55:16,187] root INFO # # [2025-07-29 12:55:16,187] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 12:55:16,187] root INFO # # [2025-07-29 12:55:16,187] root INFO ############################################################################################################################# [2025-07-29 12:55:16,188] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 12:55:16,188] pyhamilton.interface INFO running in simulation mode [2025-07-29 12:55:16,188] pyhamilton.interface INFO started the server thread [2025-07-29 12:55:16,188] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 12:55:16,693] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8; TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16; TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24; TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32; TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40; TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44; TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48; TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52; TIP_50uLF_L_0001, 53; TIP_50uLF_L_0001, 54; TIP_50uLF_L_0001, 55; TIP_50uLF_L_0001, 56; TIP_50uLF_L_0001, 57; TIP_50uLF_L_0001, 58; TIP_50uLF_L_0001, 59; TIP_50uLF_L_0001, 60; TIP_50uLF_L_0001, 61; TIP_50uLF_L_0001, 62; TIP_50uLF_L_0001, 63; TIP_50uLF_L_0001, 64; TIP_50uLF_L_0001, 65; TIP_50uLF_L_0001, 66; TIP_50uLF_L_0001, 67; TIP_50uLF_L_0001, 68; TIP_50uLF_L_0001, 69; TIP_50uLF_L_0001, 70; TIP_50uLF_L_0001, 71; TIP_50uLF_L_0001, 72; TIP_50uLF_L_0001, 73; TIP_50uLF_L_0001, 74; TIP_50uLF_L_0001, 75; TIP_50uLF_L_0001, 76; TIP_50uLF_L_0001, 77; TIP_50uLF_L_0001, 78; TIP_50uLF_L_0001, 79; TIP_50uLF_L_0001, 80; TIP_50uLF_L_0001, 81; TIP_50uLF_L_0001, 82; TIP_50uLF_L_0001, 83; TIP_50uLF_L_0001, 84; TIP_50uLF_L_0001, 85; TIP_50uLF_L_0001, 86; TIP_50uLF_L_0001, 87; TIP_50uLF_L_0001, 88; TIP_50uLF_L_0001, 89; TIP_50uLF_L_0001, 90; TIP_50uLF_L_0001, 91; TIP_50uLF_L_0001, 92; TIP_50uLF_L_0001, 93; TIP_50uLF_L_0001, 94; TIP_50uLF_L_0001, 95; TIP_50uLF_L_0001, 96 [2025-07-29 12:55:16,693] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 12:55:16,693] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-29 12:55:16,693] pyhamilton.interface INFO disconnected from server [2025-07-29 12:55:16,794] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 12:55:16,795] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 12:55:16,797] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 12:55:16,799] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 12:55:16,800] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 12:55:16,800] pyhamilton.interface INFO server thread exited [2025-07-29 12:55:16,802] root ERROR Traceback (most recent call last): [2025-07-29 12:55:16,803] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 12:55:16,804] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 242, in multi_dispense tracked_tip_pick_up(ham_int, tips, num_tips) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 12:55:16,804] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_handling_wrappers.py", line 211, in tracked_tip_pick_up ham_int.tip_pick_up(tips_poss) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ [2025-07-29 12:55:16,805] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 913, in tip_pick_up raise ValueError('Can only pick up 8 tips at a time') [2025-07-29 12:55:16,805] root ERROR ValueError: Can only pick up 8 tips at a time [2025-07-29 12:55:36,988] root INFO ############################################################################################################################# [2025-07-29 12:55:36,988] root INFO # # [2025-07-29 12:55:36,988] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 12:55:36,988] root INFO # # [2025-07-29 12:55:36,988] root INFO ############################################################################################################################# [2025-07-29 12:55:36,988] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 12:55:36,989] pyhamilton.interface INFO running in simulation mode [2025-07-29 12:55:36,989] pyhamilton.interface INFO started the server thread [2025-07-29 12:55:36,989] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 12:55:37,507] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8; TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16; TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24; TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32; TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40; TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44; TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48; TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52; TIP_50uLF_L_0001, 53; TIP_50uLF_L_0001, 54; TIP_50uLF_L_0001, 55; TIP_50uLF_L_0001, 56; TIP_50uLF_L_0001, 57; TIP_50uLF_L_0001, 58; TIP_50uLF_L_0001, 59; TIP_50uLF_L_0001, 60; TIP_50uLF_L_0001, 61; TIP_50uLF_L_0001, 62; TIP_50uLF_L_0001, 63; TIP_50uLF_L_0001, 64; TIP_50uLF_L_0001, 65; TIP_50uLF_L_0001, 66; TIP_50uLF_L_0001, 67; TIP_50uLF_L_0001, 68; TIP_50uLF_L_0001, 69; TIP_50uLF_L_0001, 70; TIP_50uLF_L_0001, 71; TIP_50uLF_L_0001, 72; TIP_50uLF_L_0001, 73; TIP_50uLF_L_0001, 74; TIP_50uLF_L_0001, 75; TIP_50uLF_L_0001, 76; TIP_50uLF_L_0001, 77; TIP_50uLF_L_0001, 78; TIP_50uLF_L_0001, 79; TIP_50uLF_L_0001, 80; TIP_50uLF_L_0001, 81; TIP_50uLF_L_0001, 82; TIP_50uLF_L_0001, 83; TIP_50uLF_L_0001, 84; TIP_50uLF_L_0001, 85; TIP_50uLF_L_0001, 86; TIP_50uLF_L_0001, 87; TIP_50uLF_L_0001, 88; TIP_50uLF_L_0001, 89; TIP_50uLF_L_0001, 90; TIP_50uLF_L_0001, 91; TIP_50uLF_L_0001, 92; TIP_50uLF_L_0001, 93; TIP_50uLF_L_0001, 94; TIP_50uLF_L_0001, 95; TIP_50uLF_L_0001, 96 [2025-07-29 12:55:37,507] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 12:55:37,507] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-29 12:55:37,508] pyhamilton.interface INFO disconnected from server [2025-07-29 12:55:37,608] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 12:55:37,609] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 12:55:37,612] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 12:55:37,614] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 12:55:37,615] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 12:55:37,615] pyhamilton.interface INFO server thread exited [2025-07-29 12:55:37,619] root ERROR Traceback (most recent call last): [2025-07-29 12:55:37,620] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 12:55:37,620] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 243, in multi_dispense tracked_tip_pick_up(ham_int, tips, num_tips) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 12:55:37,621] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_handling_wrappers.py", line 211, in tracked_tip_pick_up ham_int.tip_pick_up(tips_poss) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ [2025-07-29 12:55:37,621] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 913, in tip_pick_up raise ValueError('Can only pick up 8 tips at a time') [2025-07-29 12:55:37,621] root ERROR ValueError: Can only pick up 8 tips at a time [2025-07-29 12:56:03,847] root INFO ############################################################################################################################# [2025-07-29 12:56:03,848] root INFO # # [2025-07-29 12:56:03,848] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 12:56:03,848] root INFO # # [2025-07-29 12:56:03,848] root INFO ############################################################################################################################# [2025-07-29 12:56:03,848] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 12:56:03,848] pyhamilton.interface INFO running in simulation mode [2025-07-29 12:56:03,848] pyhamilton.interface INFO started the server thread [2025-07-29 12:56:03,848] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 12:56:04,357] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8; TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16; TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24; TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32; TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40; TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44; TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48; TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52; TIP_50uLF_L_0001, 53; TIP_50uLF_L_0001, 54; TIP_50uLF_L_0001, 55; TIP_50uLF_L_0001, 56; TIP_50uLF_L_0001, 57; TIP_50uLF_L_0001, 58; TIP_50uLF_L_0001, 59; TIP_50uLF_L_0001, 60; TIP_50uLF_L_0001, 61; TIP_50uLF_L_0001, 62; TIP_50uLF_L_0001, 63; TIP_50uLF_L_0001, 64; TIP_50uLF_L_0001, 65; TIP_50uLF_L_0001, 66; TIP_50uLF_L_0001, 67; TIP_50uLF_L_0001, 68; TIP_50uLF_L_0001, 69; TIP_50uLF_L_0001, 70; TIP_50uLF_L_0001, 71; TIP_50uLF_L_0001, 72; TIP_50uLF_L_0001, 73; TIP_50uLF_L_0001, 74; TIP_50uLF_L_0001, 75; TIP_50uLF_L_0001, 76; TIP_50uLF_L_0001, 77; TIP_50uLF_L_0001, 78; TIP_50uLF_L_0001, 79; TIP_50uLF_L_0001, 80; TIP_50uLF_L_0001, 81; TIP_50uLF_L_0001, 82; TIP_50uLF_L_0001, 83; TIP_50uLF_L_0001, 84; TIP_50uLF_L_0001, 85; TIP_50uLF_L_0001, 86; TIP_50uLF_L_0001, 87; TIP_50uLF_L_0001, 88; TIP_50uLF_L_0001, 89; TIP_50uLF_L_0001, 90; TIP_50uLF_L_0001, 91; TIP_50uLF_L_0001, 92; TIP_50uLF_L_0001, 93; TIP_50uLF_L_0001, 94; TIP_50uLF_L_0001, 95; TIP_50uLF_L_0001, 96 [2025-07-29 12:56:04,357] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 12:56:04,357] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-29 12:56:04,357] pyhamilton.interface INFO disconnected from server [2025-07-29 12:56:04,458] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 12:56:04,458] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 12:56:04,461] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 12:56:04,463] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 12:56:04,464] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 12:56:04,464] pyhamilton.interface INFO server thread exited [2025-07-29 12:56:04,467] root ERROR Traceback (most recent call last): [2025-07-29 12:56:04,468] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 12:56:04,469] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 243, in multi_dispense tracked_tip_pick_up(ham_int, tips, num_tips) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 12:56:04,469] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_handling_wrappers.py", line 211, in tracked_tip_pick_up ham_int.tip_pick_up(tips_poss) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ [2025-07-29 12:56:04,469] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 913, in tip_pick_up raise ValueError('Can only pick up 8 tips at a time') [2025-07-29 12:56:04,470] root ERROR ValueError: Can only pick up 8 tips at a time [2025-07-29 12:56:55,211] root INFO ############################################################################################################################# [2025-07-29 12:56:55,211] root INFO # # [2025-07-29 12:56:55,211] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 12:56:55,211] root INFO # # [2025-07-29 12:56:55,211] root INFO ############################################################################################################################# [2025-07-29 12:56:55,212] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 12:56:55,212] pyhamilton.interface INFO running in simulation mode [2025-07-29 12:56:55,212] pyhamilton.interface INFO started the server thread [2025-07-29 12:56:55,212] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 12:56:55,713] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8; TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16; TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24; TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32; TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40; TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44; TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48; TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52; TIP_50uLF_L_0001, 53; TIP_50uLF_L_0001, 54; TIP_50uLF_L_0001, 55; TIP_50uLF_L_0001, 56; TIP_50uLF_L_0001, 57; TIP_50uLF_L_0001, 58; TIP_50uLF_L_0001, 59; TIP_50uLF_L_0001, 60; TIP_50uLF_L_0001, 61; TIP_50uLF_L_0001, 62; TIP_50uLF_L_0001, 63; TIP_50uLF_L_0001, 64; TIP_50uLF_L_0001, 65; TIP_50uLF_L_0001, 66; TIP_50uLF_L_0001, 67; TIP_50uLF_L_0001, 68; TIP_50uLF_L_0001, 69; TIP_50uLF_L_0001, 70; TIP_50uLF_L_0001, 71; TIP_50uLF_L_0001, 72; TIP_50uLF_L_0001, 73; TIP_50uLF_L_0001, 74; TIP_50uLF_L_0001, 75; TIP_50uLF_L_0001, 76; TIP_50uLF_L_0001, 77; TIP_50uLF_L_0001, 78; TIP_50uLF_L_0001, 79; TIP_50uLF_L_0001, 80; TIP_50uLF_L_0001, 81; TIP_50uLF_L_0001, 82; TIP_50uLF_L_0001, 83; TIP_50uLF_L_0001, 84; TIP_50uLF_L_0001, 85; TIP_50uLF_L_0001, 86; TIP_50uLF_L_0001, 87; TIP_50uLF_L_0001, 88; TIP_50uLF_L_0001, 89; TIP_50uLF_L_0001, 90; TIP_50uLF_L_0001, 91; TIP_50uLF_L_0001, 92; TIP_50uLF_L_0001, 93; TIP_50uLF_L_0001, 94; TIP_50uLF_L_0001, 95; TIP_50uLF_L_0001, 96 [2025-07-29 12:56:55,713] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 12:56:55,714] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-29 12:56:55,714] pyhamilton.interface INFO disconnected from server [2025-07-29 12:56:55,814] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 12:56:55,815] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 12:56:55,817] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 12:56:55,819] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 12:56:55,820] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 12:56:55,820] pyhamilton.interface INFO server thread exited [2025-07-29 12:56:55,822] root ERROR Traceback (most recent call last): [2025-07-29 12:56:55,823] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 12:56:55,823] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 238, in multi_dispense tracked_tip_pick_up(ham_int, tips, num_tips) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 12:56:55,824] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_handling_wrappers.py", line 211, in tracked_tip_pick_up ham_int.tip_pick_up(tips_poss) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ [2025-07-29 12:56:55,824] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 913, in tip_pick_up raise ValueError('Can only pick up 8 tips at a time') [2025-07-29 12:56:55,824] root ERROR ValueError: Can only pick up 8 tips at a time [2025-07-29 14:21:04,946] root INFO ############################################################################################################################# [2025-07-29 14:21:04,946] root INFO # # [2025-07-29 14:21:04,946] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 14:21:04,946] root INFO # # [2025-07-29 14:21:04,946] root INFO ############################################################################################################################# [2025-07-29 14:21:04,947] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:21:04,947] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:21:04,947] pyhamilton.interface INFO started the server thread [2025-07-29 14:21:04,947] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:21:05,441] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-29 14:21:05,663] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:21:05,664] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-29 14:21:05,664] pyhamilton.interface INFO disconnected from server [2025-07-29 14:21:05,765] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:21:05,765] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 14:21:05,769] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 14:21:05,771] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 14:21:05,772] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:21:05,772] pyhamilton.interface INFO server thread exited [2025-07-29 14:21:05,775] root ERROR Traceback (most recent call last): [2025-07-29 14:21:05,776] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 14:21:05,776] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 243, in multi_dispense dispense_batches = build_dispense_batches(aspiration_volumes, column_dispense_positions, column_dispense_volumes) ^^^^^^^^^^^^^^^^^^ [2025-07-29 14:21:05,777] root ERROR UnboundLocalError: cannot access local variable 'aspiration_volumes' where it is not associated with a value [2025-07-29 14:22:29,527] root INFO ############################################################################################################################# [2025-07-29 14:22:29,528] root INFO # # [2025-07-29 14:22:29,528] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 14:22:29,528] root INFO # # [2025-07-29 14:22:29,528] root INFO ############################################################################################################################# [2025-07-29 14:22:29,529] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:22:29,529] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:22:29,529] pyhamilton.interface INFO started the server thread [2025-07-29 14:22:29,529] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:22:29,937] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-29 14:22:30,297] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:22:30,297] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a2393316b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:22:30,298] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0} [2025-07-29 14:22:30,298] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a23933412', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 0, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:22:30,299] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:22:30,299] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-29 14:22:30,299] pyhamilton.interface INFO disconnected from server [2025-07-29 14:22:30,400] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:22:30,401] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 14:22:30,404] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 14:22:30,406] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 14:22:30,407] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:22:30,407] pyhamilton.interface INFO server thread exited [2025-07-29 14:22:30,411] root ERROR Traceback (most recent call last): [2025-07-29 14:22:30,416] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 14:22:30,417] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 267, in multi_dispense response = ham_int.aspirate(positions, vols, liquidClass=liquid_class, mixCycles=0, mixVolume=0, liquidHeight=liquid_height, capacitiveLLD=1, aspirateMode=2, submergeDepth=2) [2025-07-29 14:22:30,417] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 797, in aspirate '; '.join((labware_pos_str(*pt) if pt else '(skip)' for pt in pos_tuples)) + ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 14:22:30,417] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 797, in '; '.join((labware_pos_str(*pt) if pt else '(skip)' for pt in pos_tuples)) + ~~~~~~~~~~~~~~~^^^^^ [2025-07-29 14:22:30,419] root ERROR TypeError: labware_pos_str() takes 2 positional arguments but 96 were given [2025-07-29 14:25:30,907] root INFO ############################################################################################################################# [2025-07-29 14:25:30,907] root INFO # # [2025-07-29 14:25:30,907] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 14:25:30,907] root INFO # # [2025-07-29 14:25:30,907] root INFO ############################################################################################################################# [2025-07-29 14:25:30,908] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:25:30,908] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:25:30,908] pyhamilton.interface INFO started the server thread [2025-07-29 14:25:30,908] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:25:31,323] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-29 14:25:31,568] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:25:31,569] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a2e612bd2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:25:31,569] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0} [2025-07-29 14:25:31,569] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a2e612ed8', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 0, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:25:31,570] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:25:31,571] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-29 14:25:31,571] pyhamilton.interface INFO disconnected from server [2025-07-29 14:25:31,671] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:25:31,672] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 14:25:31,675] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 14:25:31,677] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 14:25:31,678] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:25:31,678] pyhamilton.interface INFO server thread exited [2025-07-29 14:25:31,681] root ERROR Traceback (most recent call last): [2025-07-29 14:25:31,683] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 14:25:31,684] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 267, in multi_dispense response = ham_int.aspirate(positions, vols, liquidClass=liquid_class, mixCycles=0, mixVolume=0, liquidHeight=liquid_height, capacitiveLLD=1, aspirateMode=2, submergeDepth=2) [2025-07-29 14:25:31,684] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 797, in aspirate '; '.join((labware_pos_str(*pt) if pt else '(skip)' for pt in pos_tuples)) + ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 14:25:31,684] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 797, in '; '.join((labware_pos_str(*pt) if pt else '(skip)' for pt in pos_tuples)) + ~~~~~~~~~~~~~~~^^^^^ [2025-07-29 14:25:31,685] root ERROR TypeError: labware_pos_str() takes 2 positional arguments but 96 were given [2025-07-29 14:26:02,538] root INFO ############################################################################################################################# [2025-07-29 14:26:02,539] root INFO # # [2025-07-29 14:26:02,539] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 14:26:02,539] root INFO # # [2025-07-29 14:26:02,539] root INFO ############################################################################################################################# [2025-07-29 14:26:02,540] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:26:02,540] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:26:02,540] pyhamilton.interface INFO started the server thread [2025-07-29 14:26:02,540] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:26:02,952] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-29 14:26:03,171] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:26:03,172] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a304364a1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:26:03,172] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0} [2025-07-29 14:26:03,172] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a30436749', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 0, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:26:03,173] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:26:03,173] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-29 14:26:03,173] pyhamilton.interface INFO disconnected from server [2025-07-29 14:26:03,274] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:26:03,275] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 14:26:03,277] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 14:26:03,279] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 14:26:03,280] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:26:03,280] pyhamilton.interface INFO server thread exited [2025-07-29 14:26:03,283] root ERROR Traceback (most recent call last): [2025-07-29 14:26:03,285] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 14:26:03,287] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 268, in multi_dispense response = ham_int.aspirate(positions, vols, liquidClass=liquid_class, mixCycles=0, mixVolume=0, liquidHeight=liquid_height, capacitiveLLD=1, aspirateMode=2, submergeDepth=2) [2025-07-29 14:26:03,287] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 797, in aspirate '; '.join((labware_pos_str(*pt) if pt else '(skip)' for pt in pos_tuples)) + ~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 14:26:03,288] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 797, in '; '.join((labware_pos_str(*pt) if pt else '(skip)' for pt in pos_tuples)) + ~~~~~~~~~~~~~~~^^^^^ [2025-07-29 14:26:03,288] root ERROR TypeError: labware_pos_str() takes 2 positional arguments but 96 were given [2025-07-29 14:27:43,466] root INFO ############################################################################################################################# [2025-07-29 14:27:43,467] root INFO # # [2025-07-29 14:27:43,467] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 14:27:43,467] root INFO # # [2025-07-29 14:27:43,467] root INFO ############################################################################################################################# [2025-07-29 14:27:43,468] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:27:43,468] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:27:43,468] pyhamilton.interface INFO started the server thread [2025-07-29 14:27:43,468] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:27:43,880] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-29 14:27:44,239] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:27:44,239] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a3649906b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:27:44,240] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:27:44,240] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a36499338', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:27:44,241] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:27:44,241] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a364997b4', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:27:44,242] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:27:44,242] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-29 14:27:44,242] pyhamilton.interface INFO disconnected from server [2025-07-29 14:27:44,342] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:27:44,343] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 14:27:44,346] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 14:27:44,348] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 14:27:44,348] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:27:44,349] pyhamilton.interface INFO server thread exited [2025-07-29 14:27:44,351] root ERROR Traceback (most recent call last): [2025-07-29 14:27:44,353] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 14:27:44,353] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 279, in multi_dispense ham_int.eject_tips() ^^^^^^^^^^^^^^^^^^ [2025-07-29 14:27:44,354] root ERROR AttributeError: 'HamiltonInterface' object has no attribute 'eject_tips' [2025-07-29 14:28:35,379] root INFO ############################################################################################################################# [2025-07-29 14:28:35,380] root INFO # # [2025-07-29 14:28:35,380] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 14:28:35,380] root INFO # # [2025-07-29 14:28:35,380] root INFO ############################################################################################################################# [2025-07-29 14:28:35,380] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:28:35,381] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:28:35,381] pyhamilton.interface INFO started the server thread [2025-07-29 14:28:35,381] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:28:35,787] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-29 14:28:36,259] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:28:36,259] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a396351ea', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:28:36,259] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:28:36,260] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a39635530', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:28:36,261] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,261] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a396359d1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:28:36,261] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,262] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a39635ca6', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:28:36,262] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,262] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a39635eec', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:28:36,263] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,263] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a39636174', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:28:36,263] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,263] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a3963639b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:28:36,264] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,264] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a3963661a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:28:36,264] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,264] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a3963678e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:28:36,265] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,265] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a39636a13', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:28:36,265] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,266] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a39636c10', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:28:36,266] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,266] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a39636e9f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:28:36,267] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,267] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a396370b8', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:28:36,267] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,267] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a3963731c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:28:36,334] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-29 14:28:36,335] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a39647a40', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9;TIP_50uLF_L_0001, 10;TIP_50uLF_L_0001, 11;TIP_50uLF_L_0001, 12;TIP_50uLF_L_0001, 13;TIP_50uLF_L_0001, 14;TIP_50uLF_L_0001, 15;TIP_50uLF_L_0001, 16', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:28:36,335] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:28:36,335] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a39647cf4', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:28:36,336] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,337] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a396481e0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:28:36,337] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,337] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a3964848f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:28:36,338] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,338] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a3964868f', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:28:36,338] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,339] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a396489ee', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:28:36,339] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,339] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a39648c6c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:28:36,340] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,340] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a39648f2b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:28:36,340] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,341] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a39649125', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:28:36,341] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,341] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a39649398', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:28:36,342] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,342] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a396495b1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:28:36,342] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,342] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a39649847', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:28:36,343] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:28:36,343] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a39649a30', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:28:36,343] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:28:36,344] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a39649cb2', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:28:36,344] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:28:36,344] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-29 14:28:36,344] pyhamilton.interface INFO disconnected from server [2025-07-29 14:28:36,444] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:28:36,445] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 14:28:36,448] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 14:28:36,451] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 14:28:36,452] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:28:36,452] pyhamilton.interface INFO server thread exited [2025-07-29 14:32:53,248] root INFO ############################################################################################################################# [2025-07-29 14:32:53,249] root INFO # # [2025-07-29 14:32:53,249] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 14:32:53,249] root INFO # # [2025-07-29 14:32:53,249] root INFO ############################################################################################################################# [2025-07-29 14:32:53,249] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:32:53,249] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:32:53,250] pyhamilton.interface INFO started the server thread [2025-07-29 14:32:53,250] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:32:53,676] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-29 14:32:53,927] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:32:53,927] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a48bf0726', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:32:53,928] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:32:53,928] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a48bf0a03', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:32:53,929] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:32:53,929] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-29 14:32:53,929] pyhamilton.interface INFO disconnected from server [2025-07-29 14:32:54,030] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:32:54,030] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 14:32:54,034] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 14:32:54,036] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 14:32:54,036] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:32:54,037] pyhamilton.interface INFO server thread exited [2025-07-29 14:32:54,039] root ERROR Traceback (most recent call last): [2025-07-29 14:32:54,040] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 14:32:54,040] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 283, in multi_dispense print_transfers(aspiration_positions, column, column_volumes) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 14:32:54,040] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 100, in print_transfers source_plate, source_well_idx = source_well_tuple ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 14:32:54,041] root ERROR ValueError: too many values to unpack (expected 2) [2025-07-29 14:33:55,294] root INFO ############################################################################################################################# [2025-07-29 14:33:55,294] root INFO # # [2025-07-29 14:33:55,295] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 14:33:55,295] root INFO # # [2025-07-29 14:33:55,295] root INFO ############################################################################################################################# [2025-07-29 14:33:55,295] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:33:55,295] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:33:55,295] pyhamilton.interface INFO started the server thread [2025-07-29 14:33:55,295] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:33:55,684] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-29 14:33:55,924] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:33:55,924] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a4c71068d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:33:55,925] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:33:55,925] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a4c710977', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:33:55,926] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:33:55,926] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-29 14:33:55,926] pyhamilton.interface INFO disconnected from server [2025-07-29 14:33:56,027] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:33:56,027] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 14:33:56,030] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 14:33:56,032] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 14:33:56,033] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:33:56,033] pyhamilton.interface INFO server thread exited [2025-07-29 14:33:56,037] root ERROR Traceback (most recent call last): [2025-07-29 14:33:56,038] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 14:33:56,039] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 287, in multi_dispense print_transfers(aspiration_positions, column, column_volumes) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 14:33:56,040] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 104, in print_transfers source_plate, source_well_idx = source_well_tuple ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 14:33:56,041] root ERROR ValueError: too many values to unpack (expected 2) [2025-07-29 14:35:00,020] root INFO ############################################################################################################################# [2025-07-29 14:35:00,020] root INFO # # [2025-07-29 14:35:00,020] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 14:35:00,020] root INFO # # [2025-07-29 14:35:00,020] root INFO ############################################################################################################################# [2025-07-29 14:35:00,021] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:35:00,021] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:35:00,021] pyhamilton.interface INFO started the server thread [2025-07-29 14:35:00,021] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:35:00,416] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-29 14:35:00,771] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:35:00,771] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a504e81a8', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:35:00,771] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:35:00,772] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a504e8507', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:00,775] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,775] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a504e9280', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:00,776] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,776] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a504e95ad', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:00,779] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,779] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a504ea2ad', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:00,780] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,780] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a504ea52a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:00,783] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,783] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a504eb1cd', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:00,784] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,784] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a504eb470', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:00,786] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,786] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a504ebe55', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:00,787] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,787] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a504ec218', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:00,789] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,789] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a504ec824', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:00,789] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,790] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a504ecacd', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:00,790] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,791] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a504ecfc8', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:00,792] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,792] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a504ed404', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:00,861] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-29 14:35:00,861] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a504fe24c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9;TIP_50uLF_L_0001, 10;TIP_50uLF_L_0001, 11;TIP_50uLF_L_0001, 12;TIP_50uLF_L_0001, 13;TIP_50uLF_L_0001, 14;TIP_50uLF_L_0001, 15;TIP_50uLF_L_0001, 16', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:35:00,861] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:35:00,862] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a504fe4e6', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:00,865] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,865] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a504ff08c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:00,865] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,866] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a504ff3d5', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:00,867] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,867] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a504ffabb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:00,868] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,868] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a504ffe1c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:00,869] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,869] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a50500153', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:00,869] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,870] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a505003cf', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:00,870] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,870] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a505006f7', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:00,871] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,871] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a505009a0', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:00,872] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,872] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a50500ce1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:00,873] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,873] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a505010f8', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:00,874] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:00,874] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a505016ae', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:00,875] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:00,875] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a5050198e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:00,875] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:35:00,875] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-29 14:35:00,875] pyhamilton.interface INFO disconnected from server [2025-07-29 14:35:00,976] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:35:00,976] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 14:35:00,980] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 14:35:00,983] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 14:35:00,984] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:35:00,984] pyhamilton.interface INFO server thread exited [2025-07-29 14:35:19,885] root INFO ############################################################################################################################# [2025-07-29 14:35:19,885] root INFO # # [2025-07-29 14:35:19,885] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 14:35:19,885] root INFO # # [2025-07-29 14:35:19,885] root INFO ############################################################################################################################# [2025-07-29 14:35:19,886] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:35:19,886] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:35:19,886] pyhamilton.interface INFO started the server thread [2025-07-29 14:35:19,887] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:35:20,286] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-29 14:35:20,582] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:35:20,582] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a517cce7e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:35:20,583] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:35:20,583] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a517ccff6', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:20,584] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,584] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a517cd6eb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:20,585] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,585] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a517cda22', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:20,586] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,586] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a517cdd87', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:20,587] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,587] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a517ce086', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:20,588] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,588] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a517ce41c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:20,588] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,588] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a517ce694', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:20,590] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,591] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a517cef08', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:20,592] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,592] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a517cf363', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:20,592] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,593] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a517cf6b1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:20,593] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,593] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a517cf974', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:20,594] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,594] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a517cfce9', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:20,595] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,595] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a517cffd7', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:20,666] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-29 14:35:20,666] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a517e1519', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9;TIP_50uLF_L_0001, 10;TIP_50uLF_L_0001, 11;TIP_50uLF_L_0001, 12;TIP_50uLF_L_0001, 13;TIP_50uLF_L_0001, 14;TIP_50uLF_L_0001, 15;TIP_50uLF_L_0001, 16', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:35:20,666] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:35:20,666] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a517e1620', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:20,668] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,668] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a517e1edf', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:20,669] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,669] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a517e216e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:20,670] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,671] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a517e2767', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:20,671] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,671] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a517e2ac1', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:20,673] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,673] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a517e2fdc', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:20,674] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,674] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a517e33dc', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:20,675] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,675] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a517e39e7', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:20,676] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,676] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a517e3c65', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:20,678] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,678] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a517e4373', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:20,678] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,678] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a517e461d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:20,679] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:35:20,680] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a517e4a8d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:35:20,680] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:35:20,680] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a517e4d31', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:35:20,680] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:35:20,680] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-29 14:35:20,680] pyhamilton.interface INFO disconnected from server [2025-07-29 14:35:20,781] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:35:20,782] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 14:35:20,785] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 14:35:20,787] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 14:35:20,788] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:35:20,788] pyhamilton.interface INFO server thread exited [2025-07-29 14:36:07,694] root INFO ############################################################################################################################# [2025-07-29 14:36:07,694] root INFO # # [2025-07-29 14:36:07,694] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 14:36:07,694] root INFO # # [2025-07-29 14:36:07,694] root INFO ############################################################################################################################# [2025-07-29 14:36:07,695] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:36:07,695] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:36:07,695] pyhamilton.interface INFO started the server thread [2025-07-29 14:36:07,695] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:36:08,082] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-29 14:36:08,543] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:36:08,543] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a54589fd8', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:36:08,543] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:36:08,543] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a5458a11a', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:36:08,544] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,545] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a5458a73b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:36:08,545] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,545] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a5458aa0c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:36:08,547] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,547] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a5458b117', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:36:08,548] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,548] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a5458b3b9', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:36:08,550] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,550] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a5458bcc7', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:36:08,551] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,551] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a5458bf78', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:36:08,552] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,553] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a5458c629', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:36:08,553] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,553] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a5458c88b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:36:08,555] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,555] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a5458d041', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:36:08,556] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,556] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a5458d3b3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:36:08,557] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,557] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a5458d7f2', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:36:08,558] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,558] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a5458db6b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:36:08,620] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-29 14:36:08,620] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a5459ccec', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9;TIP_50uLF_L_0001, 10;TIP_50uLF_L_0001, 11;TIP_50uLF_L_0001, 12;TIP_50uLF_L_0001, 13;TIP_50uLF_L_0001, 14;TIP_50uLF_L_0001, 15;TIP_50uLF_L_0001, 16', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:36:08,620] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:36:08,620] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a5459cdb6', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:36:08,621] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,622] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a5459d404', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:36:08,622] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,622] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a5459d6c3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:36:08,623] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,623] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a5459da09', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:36:08,624] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,624] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a5459de31', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:36:08,625] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,625] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a5459e186', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:36:08,626] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,626] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a5459e451', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:36:08,627] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,627] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a5459e863', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:36:08,627] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,627] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a5459eac2', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:36:08,629] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,629] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a5459efde', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:36:08,629] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,629] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a5459f24c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:36:08,630] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:36:08,631] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a5459f6d7', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:36:08,631] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:36:08,631] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a5459f93a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:36:08,631] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:36:08,631] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-29 14:36:08,631] pyhamilton.interface INFO disconnected from server [2025-07-29 14:36:08,732] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:36:08,732] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 14:36:08,736] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 14:36:08,739] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 14:36:08,740] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:36:08,740] pyhamilton.interface INFO server thread exited [2025-07-29 14:41:06,703] root INFO ############################################################################################################################# [2025-07-29 14:41:06,703] root INFO # # [2025-07-29 14:41:06,703] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 14:41:06,703] root INFO # # [2025-07-29 14:41:06,703] root INFO ############################################################################################################################# [2025-07-29 14:41:06,704] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:41:06,704] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:41:06,704] pyhamilton.interface INFO started the server thread [2025-07-29 14:41:06,704] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:41:07,124] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-29 14:41:07,484] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:41:07,484] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a662a1c0f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:07,484] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:07,485] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a662a1d67', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:07,486] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:07,487] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a662a2542', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:07,487] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:07,487] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a662a2841', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:07,555] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-29 14:41:07,555] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a662b30d6', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9;TIP_50uLF_L_0001, 10;TIP_50uLF_L_0001, 11;TIP_50uLF_L_0001, 12;TIP_50uLF_L_0001, 13;TIP_50uLF_L_0001, 14;TIP_50uLF_L_0001, 15;TIP_50uLF_L_0001, 16', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:07,555] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:07,555] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a662b31e6', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:07,557] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:07,557] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a662b381e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:07,558] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:07,558] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a662b3b05', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:07,617] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-07-29 14:41:07,617] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a662c2390', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 17;TIP_50uLF_L_0001, 18;TIP_50uLF_L_0001, 19;TIP_50uLF_L_0001, 20;TIP_50uLF_L_0001, 21;TIP_50uLF_L_0001, 22;TIP_50uLF_L_0001, 23;TIP_50uLF_L_0001, 24', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:07,617] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:07,617] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a662c24ac', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:07,619] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:07,619] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a662c2af0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:07,620] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:07,620] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a662c2dcc', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:07,679] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32 [2025-07-29 14:41:07,679] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a662d14d4', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 25;TIP_50uLF_L_0001, 26;TIP_50uLF_L_0001, 27;TIP_50uLF_L_0001, 28;TIP_50uLF_L_0001, 29;TIP_50uLF_L_0001, 30;TIP_50uLF_L_0001, 31;TIP_50uLF_L_0001, 32', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:07,679] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:07,679] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a662d15a8', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:07,681] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:07,681] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a662d1c0e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:07,681] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:07,682] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a662d1f18', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:07,741] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40 [2025-07-29 14:41:07,741] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a662e08fc', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 33;TIP_50uLF_L_0001, 34;TIP_50uLF_L_0001, 35;TIP_50uLF_L_0001, 36;TIP_50uLF_L_0001, 37;TIP_50uLF_L_0001, 38;TIP_50uLF_L_0001, 39;TIP_50uLF_L_0001, 40', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:07,742] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:07,742] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a662e09cd', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:07,743] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:07,743] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a662e101c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:07,744] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:07,744] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a662e13e9', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:07,801] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44; TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48 [2025-07-29 14:41:07,801] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a662ef117', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 41;TIP_50uLF_L_0001, 42;TIP_50uLF_L_0001, 43;TIP_50uLF_L_0001, 44;TIP_50uLF_L_0001, 45;TIP_50uLF_L_0001, 46;TIP_50uLF_L_0001, 47;TIP_50uLF_L_0001, 48', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:07,801] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:07,801] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a662ef1e9', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:07,802] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:07,802] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a662ef756', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:07,803] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:07,803] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a662efa0c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:07,861] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52; TIP_50uLF_L_0001, 53; TIP_50uLF_L_0001, 54; TIP_50uLF_L_0001, 55; TIP_50uLF_L_0001, 56 [2025-07-29 14:41:07,861] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a662fdb31', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 49;TIP_50uLF_L_0001, 50;TIP_50uLF_L_0001, 51;TIP_50uLF_L_0001, 52;TIP_50uLF_L_0001, 53;TIP_50uLF_L_0001, 54;TIP_50uLF_L_0001, 55;TIP_50uLF_L_0001, 56', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:07,861] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:07,861] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a662fdc03', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:07,862] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:07,863] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a662fe25f', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:07,863] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:07,863] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a662fe5a8', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:07,919] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 57; TIP_50uLF_L_0001, 58; TIP_50uLF_L_0001, 59; TIP_50uLF_L_0001, 60; TIP_50uLF_L_0001, 61; TIP_50uLF_L_0001, 62; TIP_50uLF_L_0001, 63; TIP_50uLF_L_0001, 64 [2025-07-29 14:41:07,919] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a6630bfbb', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 57;TIP_50uLF_L_0001, 58;TIP_50uLF_L_0001, 59;TIP_50uLF_L_0001, 60;TIP_50uLF_L_0001, 61;TIP_50uLF_L_0001, 62;TIP_50uLF_L_0001, 63;TIP_50uLF_L_0001, 64', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:07,919] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:07,920] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a6630c096', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:07,921] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:07,921] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a6630c65e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:07,922] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:07,922] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a6630c97e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:07,979] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 65; TIP_50uLF_L_0001, 66; TIP_50uLF_L_0001, 67; TIP_50uLF_L_0001, 68; TIP_50uLF_L_0001, 69; TIP_50uLF_L_0001, 70; TIP_50uLF_L_0001, 71; TIP_50uLF_L_0001, 72 [2025-07-29 14:41:07,979] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a6631a9f7', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 65;TIP_50uLF_L_0001, 66;TIP_50uLF_L_0001, 67;TIP_50uLF_L_0001, 68;TIP_50uLF_L_0001, 69;TIP_50uLF_L_0001, 70;TIP_50uLF_L_0001, 71;TIP_50uLF_L_0001, 72', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:07,979] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:07,980] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a6631aac6', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:07,981] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:07,981] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a6631b041', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:07,981] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:07,982] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a6631b317', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:08,038] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 73; TIP_50uLF_L_0001, 74; TIP_50uLF_L_0001, 75; TIP_50uLF_L_0001, 76; TIP_50uLF_L_0001, 77; TIP_50uLF_L_0001, 78; TIP_50uLF_L_0001, 79; TIP_50uLF_L_0001, 80 [2025-07-29 14:41:08,038] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a66328eb8', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 73;TIP_50uLF_L_0001, 74;TIP_50uLF_L_0001, 75;TIP_50uLF_L_0001, 76;TIP_50uLF_L_0001, 77;TIP_50uLF_L_0001, 78;TIP_50uLF_L_0001, 79;TIP_50uLF_L_0001, 80', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:08,038] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:08,038] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a66328f87', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:08,039] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:08,039] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a66329501', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:08,040] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:08,040] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a66329837', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:08,099] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 81; TIP_50uLF_L_0001, 82; TIP_50uLF_L_0001, 83; TIP_50uLF_L_0001, 84; TIP_50uLF_L_0001, 85; TIP_50uLF_L_0001, 86; TIP_50uLF_L_0001, 87; TIP_50uLF_L_0001, 88 [2025-07-29 14:41:08,100] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a66337fc7', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 81;TIP_50uLF_L_0001, 82;TIP_50uLF_L_0001, 83;TIP_50uLF_L_0001, 84;TIP_50uLF_L_0001, 85;TIP_50uLF_L_0001, 86;TIP_50uLF_L_0001, 87;TIP_50uLF_L_0001, 88', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:08,100] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:08,100] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a6633808e', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:08,101] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:08,101] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a663386c0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:08,102] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:08,102] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a66338b1b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:08,172] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 89; TIP_50uLF_L_0001, 90; TIP_50uLF_L_0001, 91; TIP_50uLF_L_0001, 92; TIP_50uLF_L_0001, 93; TIP_50uLF_L_0001, 94; TIP_50uLF_L_0001, 95; TIP_50uLF_L_0001, 96 [2025-07-29 14:41:08,172] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a66349aa8', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 89;TIP_50uLF_L_0001, 90;TIP_50uLF_L_0001, 91;TIP_50uLF_L_0001, 92;TIP_50uLF_L_0001, 93;TIP_50uLF_L_0001, 94;TIP_50uLF_L_0001, 95;TIP_50uLF_L_0001, 96', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:08,172] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:08,172] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a66349b68', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:08,174] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:08,174] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a6634a268', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:08,175] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:08,175] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a6634a540', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:08,175] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:41:08,175] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-29 14:41:08,175] pyhamilton.interface INFO disconnected from server [2025-07-29 14:41:08,276] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:41:08,276] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 14:41:08,280] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 14:41:08,282] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 14:41:08,283] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:41:08,283] pyhamilton.interface INFO server thread exited [2025-07-29 14:41:18,727] root INFO ############################################################################################################################# [2025-07-29 14:41:18,727] root INFO # # [2025-07-29 14:41:18,727] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 14:41:18,727] root INFO # # [2025-07-29 14:41:18,727] root INFO ############################################################################################################################# [2025-07-29 14:41:18,727] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 14:41:18,727] pyhamilton.interface INFO running in simulation mode [2025-07-29 14:41:18,727] pyhamilton.interface INFO started the server thread [2025-07-29 14:41:18,728] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 14:41:19,137] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-29 14:41:19,448] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 14:41:19,448] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a66e0a921', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:19,448] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:19,448] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a66e0aa72', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:19,449] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:19,449] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a66e0addd', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:19,450] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:19,450] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a66e0b0b5', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:19,517] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-29 14:41:19,517] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a66e1b830', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9;TIP_50uLF_L_0001, 10;TIP_50uLF_L_0001, 11;TIP_50uLF_L_0001, 12;TIP_50uLF_L_0001, 13;TIP_50uLF_L_0001, 14;TIP_50uLF_L_0001, 15;TIP_50uLF_L_0001, 16', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:19,517] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:19,518] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a66e1b956', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:19,518] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:19,518] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a66e1bc97', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:19,519] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:19,519] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a66e1bf15', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:19,586] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-07-29 14:41:19,587] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a66e2c745', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 17;TIP_50uLF_L_0001, 18;TIP_50uLF_L_0001, 19;TIP_50uLF_L_0001, 20;TIP_50uLF_L_0001, 21;TIP_50uLF_L_0001, 22;TIP_50uLF_L_0001, 23;TIP_50uLF_L_0001, 24', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:19,587] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:19,587] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a66e2c80e', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:19,587] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:19,588] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a66e2cb5d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:19,588] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:19,588] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a66e2cdc6', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:19,648] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32 [2025-07-29 14:41:19,648] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a66e3b5b5', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 25;TIP_50uLF_L_0001, 26;TIP_50uLF_L_0001, 27;TIP_50uLF_L_0001, 28;TIP_50uLF_L_0001, 29;TIP_50uLF_L_0001, 30;TIP_50uLF_L_0001, 31;TIP_50uLF_L_0001, 32', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:19,648] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:19,648] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a66e3b67a', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:19,648] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:19,649] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a66e3b9ae', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:19,649] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:19,649] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a66e3bc26', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:19,708] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40 [2025-07-29 14:41:19,708] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a66e4a1b3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 33;TIP_50uLF_L_0001, 34;TIP_50uLF_L_0001, 35;TIP_50uLF_L_0001, 36;TIP_50uLF_L_0001, 37;TIP_50uLF_L_0001, 38;TIP_50uLF_L_0001, 39;TIP_50uLF_L_0001, 40', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:19,708] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:19,708] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a66e4a2e7', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:19,709] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:19,709] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a66e4a5cb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:19,710] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:19,710] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a66e4a820', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:19,772] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44; TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48 [2025-07-29 14:41:19,773] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a66e59d72', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 41;TIP_50uLF_L_0001, 42;TIP_50uLF_L_0001, 43;TIP_50uLF_L_0001, 44;TIP_50uLF_L_0001, 45;TIP_50uLF_L_0001, 46;TIP_50uLF_L_0001, 47;TIP_50uLF_L_0001, 48', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:19,773] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:19,773] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a66e59e37', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:19,773] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:19,774] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a66e5a1b4', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:19,774] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:19,774] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a66e5a459', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:19,835] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52; TIP_50uLF_L_0001, 53; TIP_50uLF_L_0001, 54; TIP_50uLF_L_0001, 55; TIP_50uLF_L_0001, 56 [2025-07-29 14:41:19,835] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a66e69331', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 49;TIP_50uLF_L_0001, 50;TIP_50uLF_L_0001, 51;TIP_50uLF_L_0001, 52;TIP_50uLF_L_0001, 53;TIP_50uLF_L_0001, 54;TIP_50uLF_L_0001, 55;TIP_50uLF_L_0001, 56', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:19,836] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:19,836] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a66e69431', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:19,836] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:19,836] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a66e69713', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:19,837] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:19,837] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a66e69975', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:19,895] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 57; TIP_50uLF_L_0001, 58; TIP_50uLF_L_0001, 59; TIP_50uLF_L_0001, 60; TIP_50uLF_L_0001, 61; TIP_50uLF_L_0001, 62; TIP_50uLF_L_0001, 63; TIP_50uLF_L_0001, 64 [2025-07-29 14:41:19,896] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a66e77e27', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 57;TIP_50uLF_L_0001, 58;TIP_50uLF_L_0001, 59;TIP_50uLF_L_0001, 60;TIP_50uLF_L_0001, 61;TIP_50uLF_L_0001, 62;TIP_50uLF_L_0001, 63;TIP_50uLF_L_0001, 64', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:19,896] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:19,896] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a66e77f04', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:19,896] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:19,897] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a66e781dc', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:19,897] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:19,897] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a66e78452', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:19,959] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 65; TIP_50uLF_L_0001, 66; TIP_50uLF_L_0001, 67; TIP_50uLF_L_0001, 68; TIP_50uLF_L_0001, 69; TIP_50uLF_L_0001, 70; TIP_50uLF_L_0001, 71; TIP_50uLF_L_0001, 72 [2025-07-29 14:41:19,959] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a66e874ab', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 65;TIP_50uLF_L_0001, 66;TIP_50uLF_L_0001, 67;TIP_50uLF_L_0001, 68;TIP_50uLF_L_0001, 69;TIP_50uLF_L_0001, 70;TIP_50uLF_L_0001, 71;TIP_50uLF_L_0001, 72', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:19,959] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:19,959] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a66e8756c', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:19,959] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:19,960] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a66e87837', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:19,960] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:19,960] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a66e87a87', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:20,021] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 73; TIP_50uLF_L_0001, 74; TIP_50uLF_L_0001, 75; TIP_50uLF_L_0001, 76; TIP_50uLF_L_0001, 77; TIP_50uLF_L_0001, 78; TIP_50uLF_L_0001, 79; TIP_50uLF_L_0001, 80 [2025-07-29 14:41:20,022] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a66e96a20', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 73;TIP_50uLF_L_0001, 74;TIP_50uLF_L_0001, 75;TIP_50uLF_L_0001, 76;TIP_50uLF_L_0001, 77;TIP_50uLF_L_0001, 78;TIP_50uLF_L_0001, 79;TIP_50uLF_L_0001, 80', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:20,022] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:20,022] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a66e96ae8', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:20,022] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:20,023] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a66e96dc8', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:20,023] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:20,023] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a66e97038', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:20,083] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 81; TIP_50uLF_L_0001, 82; TIP_50uLF_L_0001, 83; TIP_50uLF_L_0001, 84; TIP_50uLF_L_0001, 85; TIP_50uLF_L_0001, 86; TIP_50uLF_L_0001, 87; TIP_50uLF_L_0001, 88 [2025-07-29 14:41:20,084] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a66ea5c91', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 81;TIP_50uLF_L_0001, 82;TIP_50uLF_L_0001, 83;TIP_50uLF_L_0001, 84;TIP_50uLF_L_0001, 85;TIP_50uLF_L_0001, 86;TIP_50uLF_L_0001, 87;TIP_50uLF_L_0001, 88', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:20,084] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:20,084] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a66ea5d9c', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:20,084] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:20,085] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a66ea6072', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:20,085] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:20,085] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a66ea62c6', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:20,151] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 89; TIP_50uLF_L_0001, 90; TIP_50uLF_L_0001, 91; TIP_50uLF_L_0001, 92; TIP_50uLF_L_0001, 93; TIP_50uLF_L_0001, 94; TIP_50uLF_L_0001, 95; TIP_50uLF_L_0001, 96 [2025-07-29 14:41:20,151] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x177a66eb63fb', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 89;TIP_50uLF_L_0001, 90;TIP_50uLF_L_0001, 91;TIP_50uLF_L_0001, 92;TIP_50uLF_L_0001, 93;TIP_50uLF_L_0001, 94;TIP_50uLF_L_0001, 95;TIP_50uLF_L_0001, 96', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-07-29 14:41:20,151] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 14:41:20,151] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x177a66eb64c5', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:20,152] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 14:41:20,152] JSONLogger INFO {'command': 'channelDispense', 'id': '0x177a66eb67cb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-07-29 14:41:20,153] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 14:41:20,153] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x177a66eb6a2e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-07-29 14:41:20,153] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 14:41:20,153] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-07-29 14:41:20,153] pyhamilton.interface INFO disconnected from server [2025-07-29 14:41:20,254] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 14:41:20,254] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 14:41:20,260] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 14:41:20,262] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 14:41:20,264] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 14:41:20,264] pyhamilton.interface INFO server thread exited [2025-07-29 15:15:29,997] root INFO ############################################################################################################################# [2025-07-29 15:15:29,997] root INFO # # [2025-07-29 15:15:29,998] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 15:15:29,998] root INFO # # [2025-07-29 15:15:29,998] root INFO ############################################################################################################################# [2025-07-29 15:15:29,998] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 15:15:29,999] pyhamilton.interface INFO started the oem application for simulation [2025-07-29 15:15:29,999] pyhamilton.interface INFO started the server thread [2025-07-29 15:15:29,999] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 15:15:31,010] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-29 15:15:31,350] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 15:15:32,352] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:15:34,355] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:15:36,358] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 15:15:37,457] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-29 15:15:38,460] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:15:40,465] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:15:42,468] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 15:15:43,605] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-07-29 15:15:45,609] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:15:50,613] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:15:56,620] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 15:15:58,584] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 15:15:59,167] pyhamilton.interface INFO disconnected from server [2025-07-29 15:15:59,268] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 15:15:59,268] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 15:15:59,272] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 15:15:59,276] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 15:15:59,280] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 15:15:59,280] pyhamilton.interface INFO server thread exited [2025-07-29 15:15:59,287] root ERROR Traceback (most recent call last): [2025-07-29 15:15:59,290] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 56, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:15:59,290] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 305, in multi_dispense ham_int.tip_eject() ~~~~~~~~~~~~~~~~~^^ [2025-07-29 15:15:59,291] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 947, in tip_eject self.wait_on_response( ~~~~~~~~~~~~~~~~~~~~~^ self.send_command( ^^^^^^^^^^^^^^^^^^ ...<5 lines>... raise_first_exception=True ^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ [2025-07-29 15:15:59,292] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 668, in wait_on_response for _ in wait(delays=delays, timeout=timeout): ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:15:59,292] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\waiter\__init__.py", line 91, in __iter__ time.sleep(min(delay, remaining)) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:15:59,293] root ERROR KeyboardInterrupt [2025-07-29 15:15:59,293] root ERROR During handling of the above exception, another exception occurred: [2025-07-29 15:15:59,294] root ERROR Traceback (most recent call last): [2025-07-29 15:15:59,297] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 49, in with HamiltonInterface(windowed=True, simulating=False) as ham_int: ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:15:59,298] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 588, in __exit__ self.stop() ~~~~~~~~~^^ [2025-07-29 15:15:59,298] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 552, in stop self.wait_on_response(self.send_command(command='end', id=hex(0)), timeout=1.5) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:15:59,299] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 668, in wait_on_response for _ in wait(delays=delays, timeout=timeout): ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:15:59,299] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\waiter\__init__.py", line 91, in __iter__ time.sleep(min(delay, remaining)) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:15:59,299] root ERROR KeyboardInterrupt [2025-07-29 15:18:18,078] root INFO ############################################################################################################################# [2025-07-29 15:18:18,078] root INFO # # [2025-07-29 15:18:18,078] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 15:18:18,078] root INFO # # [2025-07-29 15:18:18,078] root INFO ############################################################################################################################# [2025-07-29 15:18:18,079] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 15:18:18,079] pyhamilton.interface INFO started the oem application for simulation [2025-07-29 15:18:18,079] pyhamilton.interface INFO started the server thread [2025-07-29 15:18:18,080] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 15:18:18,975] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-29 15:18:19,219] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 15:18:20,221] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:18:23,225] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:18:25,228] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 15:18:26,325] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-29 15:18:27,327] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:18:29,330] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:18:31,335] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 15:18:33,439] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-07-29 15:18:36,442] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:18:41,940] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 15:18:42,143] pyhamilton.interface INFO disconnected from server [2025-07-29 15:18:42,244] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 15:18:42,244] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 15:18:42,249] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 15:18:42,251] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 15:18:42,252] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 15:18:42,252] pyhamilton.interface INFO server thread exited [2025-07-29 15:18:42,258] root ERROR Traceback (most recent call last): [2025-07-29 15:18:42,261] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 56, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:18:42,262] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 291, in multi_dispense response = ham_int.aspirate(positions, vols, liquidClass=liquid_class, mixCycles=0, mixVolume=0, liquidHeight=liquid_height, capacitiveLLD=1, aspirateMode=2, submergeDepth=2) [2025-07-29 15:18:42,263] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 808, in aspirate response = self.wait_on_response( self.send_command( ...<7 lines>... return_data=['step-return2', 'step-return3'] ) [2025-07-29 15:18:42,264] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 668, in wait_on_response for _ in wait(delays=delays, timeout=timeout): ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:18:42,265] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\waiter\__init__.py", line 91, in __iter__ time.sleep(min(delay, remaining)) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:18:42,266] root ERROR KeyboardInterrupt [2025-07-29 15:18:42,266] root ERROR During handling of the above exception, another exception occurred: [2025-07-29 15:18:42,267] root ERROR Traceback (most recent call last): [2025-07-29 15:18:42,270] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 49, in with HamiltonInterface(windowed=True, simulating=False) as ham_int: ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:18:42,271] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 588, in __exit__ self.stop() ~~~~~~~~~^^ [2025-07-29 15:18:42,271] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 552, in stop self.wait_on_response(self.send_command(command='end', id=hex(0)), timeout=1.5) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:18:42,272] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 668, in wait_on_response for _ in wait(delays=delays, timeout=timeout): ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:18:42,273] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\waiter\__init__.py", line 91, in __iter__ time.sleep(min(delay, remaining)) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:18:42,274] root ERROR KeyboardInterrupt [2025-07-29 15:20:01,548] root INFO ############################################################################################################################# [2025-07-29 15:20:01,548] root INFO # # [2025-07-29 15:20:01,548] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 15:20:01,548] root INFO # # [2025-07-29 15:20:01,549] root INFO ############################################################################################################################# [2025-07-29 15:20:01,549] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 15:20:01,550] pyhamilton.interface INFO started the oem application for simulation [2025-07-29 15:20:01,550] pyhamilton.interface INFO started the server thread [2025-07-29 15:20:01,550] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 15:20:02,387] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-29 15:20:02,634] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-07-29 15:20:03,636] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:20:05,639] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:20:07,644] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 15:20:09,766] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-07-29 15:20:10,770] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:20:12,775] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:20:14,780] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 15:20:15,968] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-07-29 15:20:16,971] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:20:18,975] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:20:20,980] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 15:20:22,131] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32 [2025-07-29 15:20:25,136] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:20:31,142] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:20:38,149] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 15:20:41,247] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40 [2025-07-29 15:20:44,075] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 15:20:44,270] pyhamilton.interface INFO disconnected from server [2025-07-29 15:20:44,371] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 15:20:44,372] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 15:20:44,379] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 15:20:44,381] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 15:20:44,382] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 15:20:44,383] pyhamilton.interface INFO server thread exited [2025-07-29 15:20:44,387] root ERROR Traceback (most recent call last): [2025-07-29 15:20:44,389] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 56, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:20:44,389] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 280, in multi_dispense tracked_tip_pick_up(ham_int, tips, len(batch[0][0])) # Pick up tips for the first column of the batch ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:20:44,389] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_handling_wrappers.py", line 211, in tracked_tip_pick_up ham_int.tip_pick_up(tips_poss) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ [2025-07-29 15:20:44,390] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 915, in tip_pick_up self.wait_on_response( ~~~~~~~~~~~~~~~~~~~~~^ self.send_command( ^^^^^^^^^^^^^^^^^^ ...<5 lines>... raise_first_exception=True ^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ [2025-07-29 15:20:44,390] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 668, in wait_on_response for _ in wait(delays=delays, timeout=timeout): ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:20:44,391] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\waiter\__init__.py", line 91, in __iter__ time.sleep(min(delay, remaining)) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:20:44,392] root ERROR KeyboardInterrupt [2025-07-29 15:20:44,393] root ERROR During handling of the above exception, another exception occurred: [2025-07-29 15:20:44,393] root ERROR Traceback (most recent call last): [2025-07-29 15:20:44,396] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 49, in with HamiltonInterface(windowed=True, simulating=False) as ham_int: ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:20:44,397] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 588, in __exit__ self.stop() ~~~~~~~~~^^ [2025-07-29 15:20:44,398] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 552, in stop self.wait_on_response(self.send_command(command='end', id=hex(0)), timeout=1.5) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:20:44,399] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 668, in wait_on_response for _ in wait(delays=delays, timeout=timeout): ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:20:44,399] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\waiter\__init__.py", line 91, in __iter__ time.sleep(min(delay, remaining)) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:20:44,400] root ERROR KeyboardInterrupt [2025-07-29 15:23:09,600] root INFO ############################################################################################################################# [2025-07-29 15:23:09,601] root INFO # # [2025-07-29 15:23:09,601] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 15:23:09,601] root INFO # # [2025-07-29 15:23:09,601] root INFO ############################################################################################################################# [2025-07-29 15:23:09,602] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 15:23:09,602] pyhamilton.interface INFO started the oem application for simulation [2025-07-29 15:23:09,602] pyhamilton.interface INFO started the server thread [2025-07-29 15:23:09,603] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 15:23:10,567] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-29 15:23:10,785] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 1; HTF_L_0001, 2; HTF_L_0001, 3; HTF_L_0001, 4; HTF_L_0001, 5; HTF_L_0001, 6; HTF_L_0001, 7; HTF_L_0001, 8 [2025-07-29 15:23:11,786] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:23:14,788] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 15:23:16,290] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-29 15:23:16,290] pyhamilton.interface INFO disconnected from server [2025-07-29 15:23:16,390] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 15:23:16,391] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 15:23:16,394] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 15:23:16,396] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 15:23:16,397] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 15:23:16,398] pyhamilton.interface INFO server thread exited [2025-07-29 15:23:16,401] root ERROR Traceback (most recent call last): [2025-07-29 15:23:16,402] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 56, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:23:16,402] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 291, in multi_dispense response = ham_int.aspirate(positions, vols, liquidClass=liquid_class, mixCycles=0, mixVolume=0, liquidHeight=liquid_height, capacitiveLLD=1, aspirateMode=2, submergeDepth=2) [2025-07-29 15:23:16,403] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 808, in aspirate response = self.wait_on_response( self.send_command( ...<7 lines>... return_data=['step-return2', 'step-return3'] ) [2025-07-29 15:23:16,403] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 679, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:23:16,403] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 698, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-07-29 15:23:16,403] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 404, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-07-29 15:23:16,403] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"STAR-return","step-name":"channelAspirate","step-return1":"2","step-return2":"","step-return3":"","step-return4":"","id":"0x177afc9fe936"} ) [2025-07-29 15:23:50,330] root INFO ############################################################################################################################# [2025-07-29 15:23:50,331] root INFO # # [2025-07-29 15:23:50,331] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 15:23:50,332] root INFO # # [2025-07-29 15:23:50,332] root INFO ############################################################################################################################# [2025-07-29 15:23:50,333] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 15:23:50,333] pyhamilton.interface INFO started the oem application for simulation [2025-07-29 15:23:50,333] pyhamilton.interface INFO started the server thread [2025-07-29 15:23:50,333] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 15:23:51,271] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-29 15:23:51,421] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 15:23:52,922] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-29 15:23:52,922] pyhamilton.interface INFO disconnected from server [2025-07-29 15:23:53,023] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-07-29 15:23:53,023] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-07-29 15:23:53,026] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-07-29 15:23:53,028] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-07-29 15:23:53,029] pyhamilton.interface INFO dummy get request sent to server [2025-07-29 15:23:53,029] pyhamilton.interface INFO server thread exited [2025-07-29 15:23:53,031] root ERROR Traceback (most recent call last): [2025-07-29 15:23:53,032] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 56, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_1000ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:23:53,033] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 275, in multi_dispense dispense_batches = build_dispense_batches(max_channel_volumes, column_dispense_positions, column_dispense_volumes) [2025-07-29 15:23:53,033] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 61, in build_dispense_batches batch_positions = get_fitting_dispense_positions(aspiration_volumes, disp_vols, disp_pos) [2025-07-29 15:23:53,033] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 37, in get_fitting_dispense_positions if all(v <= a for v, a in zip(new_total, asp_vols)): ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-07-29 15:23:53,033] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 37, in if all(v <= a for v, a in zip(new_total, asp_vols)): ^^^^^^ [2025-07-29 15:23:53,033] root ERROR TypeError: '<=' not supported between instances of 'int' and 'NoneType' [2025-07-29 15:25:17,964] root INFO ############################################################################################################################# [2025-07-29 15:25:17,964] root INFO # # [2025-07-29 15:25:17,965] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-07-29 15:25:17,965] root INFO # # [2025-07-29 15:25:17,965] root INFO ############################################################################################################################# [2025-07-29 15:25:17,966] pyhamilton.interface INFO starting a Hamilton interface [2025-07-29 15:25:17,967] pyhamilton.interface INFO started the oem application for simulation [2025-07-29 15:25:17,968] pyhamilton.interface INFO started the server thread [2025-07-29 15:25:17,969] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-07-29 15:25:18,921] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-07-29 15:25:19,169] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 1; HTF_L_0001, 2; HTF_L_0001, 3; HTF_L_0001, 4; HTF_L_0001, 5; HTF_L_0001, 6; HTF_L_0001, 7; HTF_L_0001, 8 [2025-07-29 15:25:20,171] pyhamilton.interface INFO aspirate: Aspirate volumes [600, 600, 600, 600, 600, 600, 600, 600] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-07-29 15:25:23,178] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:25:25,182] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:25:27,185] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:25:29,189] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:25:31,197] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:25:32,202] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:25:36,206] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:25:42,213] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:25:47,219] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:25:52,223] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:25:57,228] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:26:03,234] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'HighVolumeFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-07-29 15:26:08,239] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-07-29 15:26:11,242] pyhamilton.interface INFO sending end run command to simulator [2025-07-29 15:26:12,743] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-07-29 15:26:12,744] pyhamilton.interface INFO disconnected from server [2025-07-29 15:26:12,845] pyhamilton.interface INFO server thread exited [2025-08-04 14:49:58,852] root INFO ############################################################################################################################# [2025-08-04 14:49:58,853] root INFO # # [2025-08-04 14:49:58,853] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-08-04 14:49:58,853] root INFO # # [2025-08-04 14:49:58,853] root INFO ############################################################################################################################# [2025-08-04 14:49:58,853] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 14:49:58,854] pyhamilton.interface INFO running in simulation mode [2025-08-04 14:49:58,854] pyhamilton.interface INFO started the server thread [2025-08-04 14:49:58,854] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 14:49:59,160] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-08-04 14:49:59,362] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-08-04 14:49:59,555] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-08-04 14:49:59,638] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 14:49:59,638] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-08-04 14:49:59,640] pyhamilton.interface INFO disconnected from server [2025-08-04 14:49:59,741] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 14:49:59,741] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-04 14:49:59,743] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-04 14:49:59,746] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-04 14:49:59,746] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 14:49:59,747] pyhamilton.interface INFO server thread exited [2025-08-04 14:49:59,748] root ERROR Traceback (most recent call last): [2025-08-04 14:49:59,749] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'HighVolumeFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-04 14:49:59,750] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 288, in multi_dispense raise ValueError(f"Tip type does not match liquid class: {tips.volume_capacity} != {get_liquid_class_volume(liquid_class)}") [2025-08-04 14:49:59,750] root ERROR ValueError: Tip type does not match liquid class: 50 != 1000 [2025-08-04 14:50:29,596] root INFO ############################################################################################################################# [2025-08-04 14:50:29,596] root INFO # # [2025-08-04 14:50:29,597] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-08-04 14:50:29,597] root INFO # # [2025-08-04 14:50:29,597] root INFO ############################################################################################################################# [2025-08-04 14:50:29,597] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 14:50:29,597] pyhamilton.interface INFO running in simulation mode [2025-08-04 14:50:29,597] pyhamilton.interface INFO started the server thread [2025-08-04 14:50:29,597] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 14:50:29,885] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-08-04 14:50:30,079] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-08-04 14:50:30,223] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 1; HTF_L_0001, 2; HTF_L_0001, 3; HTF_L_0001, 4; HTF_L_0001, 5; HTF_L_0001, 6; HTF_L_0001, 7; HTF_L_0001, 8 [2025-08-04 14:50:30,223] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f33ac1112e', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 1;HTF_L_0001, 2;HTF_L_0001, 3;HTF_L_0001, 4;HTF_L_0001, 5;HTF_L_0001, 6;HTF_L_0001, 7;HTF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 14:50:30,223] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:30,223] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f33ac11225', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:30,223] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:30,223] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f33ac112bf', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:30,223] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:30,223] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f33ac11344', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 14:50:30,323] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-08-04 14:50:30,466] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 9; HTF_L_0001, 10; HTF_L_0001, 11; HTF_L_0001, 12; HTF_L_0001, 13; HTF_L_0001, 14; HTF_L_0001, 15; HTF_L_0001, 16 [2025-08-04 14:50:30,466] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f33ac4c69e', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 9;HTF_L_0001, 10;HTF_L_0001, 11;HTF_L_0001, 12;HTF_L_0001, 13;HTF_L_0001, 14;HTF_L_0001, 15;HTF_L_0001, 16', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 14:50:30,466] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:30,466] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f33ac4c73c', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:30,466] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:30,466] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f33ac4c800', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:30,466] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:30,466] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f33ac4c887', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 14:50:30,564] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-08-04 14:50:30,708] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 17; HTF_L_0001, 18; HTF_L_0001, 19; HTF_L_0001, 20; HTF_L_0001, 21; HTF_L_0001, 22; HTF_L_0001, 23; HTF_L_0001, 24 [2025-08-04 14:50:30,708] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f33ac87ae0', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 17;HTF_L_0001, 18;HTF_L_0001, 19;HTF_L_0001, 20;HTF_L_0001, 21;HTF_L_0001, 22;HTF_L_0001, 23;HTF_L_0001, 24', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 14:50:30,709] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:30,709] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f33ac87b7e', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:30,709] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:30,709] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f33ac87c45', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:30,709] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:30,709] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f33ac87ccf', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 14:50:30,809] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-08-04 14:50:30,954] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 25; HTF_L_0001, 26; HTF_L_0001, 27; HTF_L_0001, 28; HTF_L_0001, 29; HTF_L_0001, 30; HTF_L_0001, 31; HTF_L_0001, 32 [2025-08-04 14:50:30,954] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f33acc3a49', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 25;HTF_L_0001, 26;HTF_L_0001, 27;HTF_L_0001, 28;HTF_L_0001, 29;HTF_L_0001, 30;HTF_L_0001, 31;HTF_L_0001, 32', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 14:50:30,954] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:30,954] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f33acc3ae6', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:30,954] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:30,954] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f33acc3ba2', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:30,954] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:30,955] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f33acc3c26', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 14:50:31,059] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-08-04 14:50:31,193] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 33; HTF_L_0001, 34; HTF_L_0001, 35; HTF_L_0001, 36; HTF_L_0001, 37; HTF_L_0001, 38; HTF_L_0001, 39; HTF_L_0001, 40 [2025-08-04 14:50:31,193] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f33acfe01c', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 33;HTF_L_0001, 34;HTF_L_0001, 35;HTF_L_0001, 36;HTF_L_0001, 37;HTF_L_0001, 38;HTF_L_0001, 39;HTF_L_0001, 40', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 14:50:31,193] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:31,193] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f33acfe0b9', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:31,193] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:31,193] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f33acfe144', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:31,193] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:31,194] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f33acfe1c5', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 14:50:31,358] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-08-04 14:50:31,652] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 41; HTF_L_0001, 42; HTF_L_0001, 43; HTF_L_0001, 44; HTF_L_0001, 45; HTF_L_0001, 46; HTF_L_0001, 47; HTF_L_0001, 48 [2025-08-04 14:50:31,652] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f33ad6e082', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 41;HTF_L_0001, 42;HTF_L_0001, 43;HTF_L_0001, 44;HTF_L_0001, 45;HTF_L_0001, 46;HTF_L_0001, 47;HTF_L_0001, 48', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 14:50:31,652] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:31,652] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f33ad6e119', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:31,652] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:31,652] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f33ad6e1c9', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:31,652] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:31,652] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f33ad6e24e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 14:50:32,215] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-08-04 14:50:32,533] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 49; HTF_L_0001, 50; HTF_L_0001, 51; HTF_L_0001, 52; HTF_L_0001, 53; HTF_L_0001, 54; HTF_L_0001, 55; HTF_L_0001, 56 [2025-08-04 14:50:32,533] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f33ae453bf', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 49;HTF_L_0001, 50;HTF_L_0001, 51;HTF_L_0001, 52;HTF_L_0001, 53;HTF_L_0001, 54;HTF_L_0001, 55;HTF_L_0001, 56', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 14:50:32,534] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:32,534] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f33ae45460', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:32,534] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:32,534] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f33ae454ed', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:32,534] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:32,534] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f33ae4556e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 14:50:33,157] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-08-04 14:50:33,451] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 57; HTF_L_0001, 58; HTF_L_0001, 59; HTF_L_0001, 60; HTF_L_0001, 61; HTF_L_0001, 62; HTF_L_0001, 63; HTF_L_0001, 64 [2025-08-04 14:50:33,452] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f33af2561e', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 57;HTF_L_0001, 58;HTF_L_0001, 59;HTF_L_0001, 60;HTF_L_0001, 61;HTF_L_0001, 62;HTF_L_0001, 63;HTF_L_0001, 64', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 14:50:33,452] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:33,452] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f33af256b4', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:33,452] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:33,452] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f33af25745', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:33,452] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:33,452] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f33af257c4', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 14:50:34,009] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-08-04 14:50:34,317] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 65; HTF_L_0001, 66; HTF_L_0001, 67; HTF_L_0001, 68; HTF_L_0001, 69; HTF_L_0001, 70; HTF_L_0001, 71; HTF_L_0001, 72 [2025-08-04 14:50:34,318] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f33aff8cd8', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 65;HTF_L_0001, 66;HTF_L_0001, 67;HTF_L_0001, 68;HTF_L_0001, 69;HTF_L_0001, 70;HTF_L_0001, 71;HTF_L_0001, 72', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 14:50:34,318] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:34,318] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f33aff8d71', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:34,318] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:34,318] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f33aff8df8', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:34,318] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:34,318] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f33aff8ea5', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 14:50:34,840] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-08-04 14:50:35,140] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 73; HTF_L_0001, 74; HTF_L_0001, 75; HTF_L_0001, 76; HTF_L_0001, 77; HTF_L_0001, 78; HTF_L_0001, 79; HTF_L_0001, 80 [2025-08-04 14:50:35,141] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f33b0c1be4', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 73;HTF_L_0001, 74;HTF_L_0001, 75;HTF_L_0001, 76;HTF_L_0001, 77;HTF_L_0001, 78;HTF_L_0001, 79;HTF_L_0001, 80', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 14:50:35,141] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:35,141] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f33b0c1c89', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:35,141] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:35,141] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f33b0c1d19', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:35,141] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:35,141] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f33b0c1d9c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 14:50:35,774] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-08-04 14:50:36,232] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 81; HTF_L_0001, 82; HTF_L_0001, 83; HTF_L_0001, 84; HTF_L_0001, 85; HTF_L_0001, 86; HTF_L_0001, 87; HTF_L_0001, 88 [2025-08-04 14:50:36,232] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f33b1cc200', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 81;HTF_L_0001, 82;HTF_L_0001, 83;HTF_L_0001, 84;HTF_L_0001, 85;HTF_L_0001, 86;HTF_L_0001, 87;HTF_L_0001, 88', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 14:50:36,232] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:36,232] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f33b1cc2cf', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:36,232] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:36,232] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f33b1cc395', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:36,232] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:36,232] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f33b1cc45e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 14:50:38,043] root ERROR C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py:35: UserWarning: pandas only supports SQLAlchemy connectable (engine/connection) or database string URI or sqlite3 DBAPI2 connection. Other DBAPI2 objects are not tested. Please consider using SQLAlchemy. df = pd.read_sql("SELECT * FROM LiquidClass", conn) [2025-08-04 14:50:38,655] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 89; HTF_L_0001, 90; HTF_L_0001, 91; HTF_L_0001, 92; HTF_L_0001, 93; HTF_L_0001, 94; HTF_L_0001, 95; HTF_L_0001, 96 [2025-08-04 14:50:38,655] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f33b41bbae', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 89;HTF_L_0001, 90;HTF_L_0001, 91;HTF_L_0001, 92;HTF_L_0001, 93;HTF_L_0001, 94;HTF_L_0001, 95;HTF_L_0001, 96', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 14:50:38,655] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 14:50:38,655] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f33b41bc79', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:38,655] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 14:50:38,655] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f33b41bd2a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 14:50:38,655] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 14:50:38,655] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f33b41bdd0', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 14:50:38,656] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 14:50:38,656] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-08-04 14:50:38,656] pyhamilton.interface INFO disconnected from server [2025-08-04 14:50:38,756] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 14:50:38,757] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-04 14:50:38,762] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-04 14:50:38,765] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-04 14:50:38,766] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 14:50:38,766] pyhamilton.interface INFO server thread exited [2025-08-04 14:55:35,654] root INFO ############################################################################################################################# [2025-08-04 14:55:35,654] root INFO # # [2025-08-04 14:55:35,654] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-08-04 14:55:35,654] root INFO # # [2025-08-04 14:55:35,654] root INFO ############################################################################################################################# [2025-08-04 14:55:35,655] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 14:55:35,655] pyhamilton.interface INFO running in simulation mode [2025-08-04 14:55:35,655] pyhamilton.interface INFO started the server thread [2025-08-04 14:55:35,655] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 14:55:35,685] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 14:55:35,685] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-08-04 14:55:35,685] pyhamilton.interface INFO disconnected from server [2025-08-04 14:55:35,786] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 14:55:35,786] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-04 14:55:35,788] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-04 14:55:35,790] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-04 14:55:35,790] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 14:55:35,791] pyhamilton.interface INFO server thread exited [2025-08-04 14:55:35,792] root ERROR Traceback (most recent call last): [2025-08-04 14:55:35,794] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-04 14:55:35,794] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 282, in multi_dispense dispense_batches = build_dispense_batches(max_channel_volumes, column_dispense_positions, column_dispense_volumes) [2025-08-04 14:55:35,794] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 61, in build_dispense_batches batch_positions = get_fitting_dispense_positions(aspiration_volumes, disp_vols, disp_pos) [2025-08-04 14:55:35,794] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 37, in get_fitting_dispense_positions if all(v <= a for v, a in zip(new_total, asp_vols)): ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-04 14:55:35,795] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 37, in if all(v <= a for v, a in zip(new_total, asp_vols)): ^^^^^^ [2025-08-04 14:55:35,795] root ERROR TypeError: '<=' not supported between instances of 'int' and 'NoneType' [2025-08-04 14:58:16,358] root INFO ############################################################################################################################# [2025-08-04 14:58:16,358] root INFO # # [2025-08-04 14:58:16,358] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-08-04 14:58:16,358] root INFO # # [2025-08-04 14:58:16,358] root INFO ############################################################################################################################# [2025-08-04 14:58:16,358] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 14:58:16,359] pyhamilton.interface INFO running in simulation mode [2025-08-04 14:58:16,359] pyhamilton.interface INFO started the server thread [2025-08-04 14:58:16,359] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 14:58:16,381] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 14:58:16,381] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-08-04 14:58:16,381] pyhamilton.interface INFO disconnected from server [2025-08-04 14:58:16,482] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 14:58:16,482] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-04 14:58:16,485] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-04 14:58:16,486] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-04 14:58:16,487] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 14:58:16,487] pyhamilton.interface INFO server thread exited [2025-08-04 14:58:16,489] root ERROR Traceback (most recent call last): [2025-08-04 14:58:16,490] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-04 14:58:16,491] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 284, in multi_dispense dispense_batches = build_dispense_batches(max_channel_volumes, column_dispense_positions, column_dispense_volumes) [2025-08-04 14:58:16,491] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 63, in build_dispense_batches batch_positions = get_fitting_dispense_positions(aspiration_volumes, disp_vols, disp_pos) [2025-08-04 14:58:16,491] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 39, in get_fitting_dispense_positions if all(v <= a for v, a in zip(new_total, asp_vols)): ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-04 14:58:16,492] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 39, in if all(v <= a for v, a in zip(new_total, asp_vols)): ^^^^^^ [2025-08-04 14:58:16,492] root ERROR TypeError: '<=' not supported between instances of 'int' and 'NoneType' [2025-08-04 15:01:20,150] root INFO ############################################################################################################################# [2025-08-04 15:01:20,150] root INFO # # [2025-08-04 15:01:20,151] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-08-04 15:01:20,151] root INFO # # [2025-08-04 15:01:20,151] root INFO ############################################################################################################################# [2025-08-04 15:01:20,151] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 15:01:20,151] pyhamilton.interface INFO running in simulation mode [2025-08-04 15:01:20,151] pyhamilton.interface INFO started the server thread [2025-08-04 15:01:20,151] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 15:01:20,172] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 15:01:20,173] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-08-04 15:01:20,173] pyhamilton.interface INFO disconnected from server [2025-08-04 15:01:20,274] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 15:01:20,275] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-04 15:01:20,278] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-04 15:01:20,280] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-04 15:01:20,281] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 15:01:20,281] pyhamilton.interface INFO server thread exited [2025-08-04 15:01:20,284] root ERROR Traceback (most recent call last): [2025-08-04 15:01:20,286] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-04 15:01:20,286] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 285, in multi_dispense dispense_batches = build_dispense_batches(max_channel_volumes, column_dispense_positions, column_dispense_volumes) [2025-08-04 15:01:20,287] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 63, in build_dispense_batches batch_positions = get_fitting_dispense_positions(aspiration_volumes, disp_vols, disp_pos) [2025-08-04 15:01:20,287] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 39, in get_fitting_dispense_positions if all(v <= a for v, a in zip(new_total, asp_vols)): ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-04 15:01:20,287] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 39, in if all(v <= a for v, a in zip(new_total, asp_vols)): ^^^^^^ [2025-08-04 15:01:20,288] root ERROR TypeError: '<=' not supported between instances of 'int' and 'NoneType' [2025-08-04 15:05:44,982] root INFO ############################################################################################################################# [2025-08-04 15:05:44,982] root INFO # # [2025-08-04 15:05:44,982] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-08-04 15:05:44,982] root INFO # # [2025-08-04 15:05:44,982] root INFO ############################################################################################################################# [2025-08-04 15:05:44,983] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 15:05:44,983] pyhamilton.interface INFO running in simulation mode [2025-08-04 15:05:44,983] pyhamilton.interface INFO started the server thread [2025-08-04 15:05:44,983] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 15:05:45,003] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 15:05:45,004] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-08-04 15:05:45,004] pyhamilton.interface INFO disconnected from server [2025-08-04 15:05:45,105] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 15:05:45,105] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-04 15:05:45,109] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-04 15:05:45,111] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-04 15:05:45,112] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 15:05:45,113] pyhamilton.interface INFO server thread exited [2025-08-04 15:05:45,115] root ERROR Traceback (most recent call last): [2025-08-04 15:05:45,117] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-04 15:05:45,118] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 285, in multi_dispense dispense_batches = build_dispense_batches(max_channel_volumes, column_dispense_positions, column_dispense_volumes) [2025-08-04 15:05:45,118] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 63, in build_dispense_batches batch_positions = get_fitting_dispense_positions(aspiration_volumes, disp_vols, disp_pos) [2025-08-04 15:05:45,118] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 39, in get_fitting_dispense_positions if all(v <= a for v, a in zip(new_total, asp_vols)): ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-04 15:05:45,119] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 39, in if all(v <= a for v, a in zip(new_total, asp_vols)): ^^^^^^ [2025-08-04 15:05:45,119] root ERROR TypeError: '<=' not supported between instances of 'int' and 'NoneType' [2025-08-04 15:07:18,430] root INFO ############################################################################################################################# [2025-08-04 15:07:18,430] root INFO # # [2025-08-04 15:07:18,430] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-08-04 15:07:18,430] root INFO # # [2025-08-04 15:07:18,430] root INFO ############################################################################################################################# [2025-08-04 15:07:18,431] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 15:07:18,431] pyhamilton.interface INFO running in simulation mode [2025-08-04 15:07:18,432] pyhamilton.interface INFO started the server thread [2025-08-04 15:07:18,432] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 15:07:18,455] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 15:07:18,456] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-08-04 15:07:18,456] pyhamilton.interface INFO disconnected from server [2025-08-04 15:07:18,556] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 15:07:18,557] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-04 15:07:18,559] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-04 15:07:18,561] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-04 15:07:18,561] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 15:07:18,561] pyhamilton.interface INFO server thread exited [2025-08-04 15:07:18,563] root ERROR Traceback (most recent call last): [2025-08-04 15:07:18,565] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-04 15:07:18,565] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 283, in multi_dispense dispense_batches = build_dispense_batches(max_channel_volumes, column_dispense_positions, column_dispense_volumes) [2025-08-04 15:07:18,566] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 61, in build_dispense_batches batch_positions = get_fitting_dispense_positions(aspiration_volumes, disp_vols, disp_pos) [2025-08-04 15:07:18,566] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 37, in get_fitting_dispense_positions if all(v <= a for v, a in zip(new_total, asp_vols)): ~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-04 15:07:18,566] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 37, in if all(v <= a for v, a in zip(new_total, asp_vols)): ^^^^^^ [2025-08-04 15:07:18,567] root ERROR TypeError: '<=' not supported between instances of 'int' and 'NoneType' [2025-08-04 15:08:40,503] root INFO ############################################################################################################################# [2025-08-04 15:08:40,503] root INFO # # [2025-08-04 15:08:40,503] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-08-04 15:08:40,503] root INFO # # [2025-08-04 15:08:40,503] root INFO ############################################################################################################################# [2025-08-04 15:08:40,504] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 15:08:40,504] pyhamilton.interface INFO running in simulation mode [2025-08-04 15:08:40,504] pyhamilton.interface INFO started the server thread [2025-08-04 15:08:40,504] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 15:08:40,521] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 15:08:40,522] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-08-04 15:08:40,522] pyhamilton.interface INFO disconnected from server [2025-08-04 15:08:40,622] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 15:08:40,623] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-04 15:08:40,626] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-04 15:08:40,628] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-04 15:08:40,629] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 15:08:40,629] pyhamilton.interface INFO server thread exited [2025-08-04 15:08:40,635] root ERROR Traceback (most recent call last): [2025-08-04 15:08:40,640] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-04 15:08:40,641] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 276, in multi_dispense max_volume_tips = get_liquid_class_volume(liquid_class) # Fetch the volume for the liquid class [2025-08-04 15:08:40,641] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py", line 34, in get_liquid_class_volume engine = create_engine(connection_url) [2025-08-04 15:08:40,642] root ERROR File "", line 2, in create_engine [2025-08-04 15:08:40,642] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\sqlalchemy\util\deprecations.py", line 281, in warned return fn(*args, **kwargs) # type: ignore[no-any-return] [2025-08-04 15:08:40,643] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\sqlalchemy\engine\create.py", line 553, in create_engine entrypoint = u._get_entrypoint() [2025-08-04 15:08:40,643] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\sqlalchemy\engine\url.py", line 772, in _get_entrypoint cls = registry.load(name) [2025-08-04 15:08:40,643] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\sqlalchemy\util\langhelpers.py", line 453, in load raise exc.NoSuchModuleError( "Can't load plugin: %s:%s" % (self.group, name) ) [2025-08-04 15:08:40,644] root ERROR sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:access.pyodbc [2025-08-04 15:10:39,763] root INFO ############################################################################################################################# [2025-08-04 15:10:39,763] root INFO # # [2025-08-04 15:10:39,763] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-08-04 15:10:39,763] root INFO # # [2025-08-04 15:10:39,763] root INFO ############################################################################################################################# [2025-08-04 15:10:39,764] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 15:10:39,764] pyhamilton.interface INFO running in simulation mode [2025-08-04 15:10:39,764] pyhamilton.interface INFO started the server thread [2025-08-04 15:10:39,765] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 15:10:39,788] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 15:10:39,789] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-08-04 15:10:39,789] pyhamilton.interface INFO disconnected from server [2025-08-04 15:10:39,890] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 15:10:39,890] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-04 15:10:39,893] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-04 15:10:39,895] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-04 15:10:39,896] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 15:10:39,896] pyhamilton.interface INFO server thread exited [2025-08-04 15:10:39,902] root ERROR Traceback (most recent call last): [2025-08-04 15:10:39,904] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-04 15:10:39,905] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 276, in multi_dispense max_volume_tips = get_liquid_class_volume(liquid_class) # Fetch the volume for the liquid class [2025-08-04 15:10:39,905] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py", line 28, in get_liquid_class_volume engine = create_engine(connection_uri) [2025-08-04 15:10:39,906] root ERROR File "", line 2, in create_engine [2025-08-04 15:10:39,907] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\sqlalchemy\util\deprecations.py", line 281, in warned return fn(*args, **kwargs) # type: ignore[no-any-return] [2025-08-04 15:10:39,907] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\sqlalchemy\engine\create.py", line 553, in create_engine entrypoint = u._get_entrypoint() [2025-08-04 15:10:39,908] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\sqlalchemy\engine\url.py", line 772, in _get_entrypoint cls = registry.load(name) [2025-08-04 15:10:39,908] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\sqlalchemy\util\langhelpers.py", line 453, in load raise exc.NoSuchModuleError( "Can't load plugin: %s:%s" % (self.group, name) ) [2025-08-04 15:10:39,909] root ERROR sqlalchemy.exc.NoSuchModuleError: Can't load plugin: sqlalchemy.dialects:access.pyodbc [2025-08-04 15:12:11,109] root INFO ############################################################################################################################# [2025-08-04 15:12:11,109] root INFO # # [2025-08-04 15:12:11,109] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-08-04 15:12:11,109] root INFO # # [2025-08-04 15:12:11,109] root INFO ############################################################################################################################# [2025-08-04 15:12:11,109] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 15:12:11,110] pyhamilton.interface INFO running in simulation mode [2025-08-04 15:12:11,110] pyhamilton.interface INFO started the server thread [2025-08-04 15:12:11,110] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 15:12:11,111] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 15:12:11,111] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-08-04 15:12:11,111] pyhamilton.interface INFO disconnected from server [2025-08-04 15:12:11,212] pyhamilton.interface INFO server thread exited [2025-08-04 15:12:11,214] root ERROR Traceback (most recent call last): [2025-08-04 15:12:11,216] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-04 15:12:11,216] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 276, in multi_dispense max_volume_tips = get_liquid_class_volume(liquid_class) # Fetch the volume for the liquid class [2025-08-04 15:12:11,216] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py", line 38, in get_liquid_class_volume engine = _build_engine(cfg.liquids_database) [2025-08-04 15:12:11,216] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py", line 18, in _build_engine _check_access_dialect() ~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-04 15:12:11,216] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_class_viewer.py", line 10, in _check_access_dialect raise ModuleNotFoundError( ...<2 lines>... ) [2025-08-04 15:12:11,216] root ERROR ModuleNotFoundError: SQLAlchemy Access dialect not found. Install with: pip install sqlalchemy-access [2025-08-04 15:12:58,290] root INFO ############################################################################################################################# [2025-08-04 15:12:58,290] root INFO # # [2025-08-04 15:12:58,290] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-08-04 15:12:58,290] root INFO # # [2025-08-04 15:12:58,290] root INFO ############################################################################################################################# [2025-08-04 15:12:58,291] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 15:12:58,291] pyhamilton.interface INFO running in simulation mode [2025-08-04 15:12:58,291] pyhamilton.interface INFO started the server thread [2025-08-04 15:12:58,291] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 15:12:59,190] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 1; HTF_L_0001, 2; HTF_L_0001, 3; HTF_L_0001, 4; HTF_L_0001, 5; HTF_L_0001, 6; HTF_L_0001, 7; HTF_L_0001, 8 [2025-08-04 15:12:59,190] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f38b28ac7f', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 1;HTF_L_0001, 2;HTF_L_0001, 3;HTF_L_0001, 4;HTF_L_0001, 5;HTF_L_0001, 6;HTF_L_0001, 7;HTF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:12:59,190] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:12:59,190] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f38b28ae1f', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:12:59,191] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:12:59,191] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f38b28af3b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:12:59,191] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:12:59,191] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f38b28afe9', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:12:59,484] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 9; HTF_L_0001, 10; HTF_L_0001, 11; HTF_L_0001, 12; HTF_L_0001, 13; HTF_L_0001, 14; HTF_L_0001, 15; HTF_L_0001, 16 [2025-08-04 15:12:59,484] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f38b2d290c', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 9;HTF_L_0001, 10;HTF_L_0001, 11;HTF_L_0001, 12;HTF_L_0001, 13;HTF_L_0001, 14;HTF_L_0001, 15;HTF_L_0001, 16', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:12:59,484] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:12:59,484] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f38b2d2a3f', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:12:59,485] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:12:59,485] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f38b2d2bd4', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:12:59,485] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:12:59,485] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f38b2d2c8a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:12:59,938] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 17; HTF_L_0001, 18; HTF_L_0001, 19; HTF_L_0001, 20; HTF_L_0001, 21; HTF_L_0001, 22; HTF_L_0001, 23; HTF_L_0001, 24 [2025-08-04 15:12:59,938] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f38b341861', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 17;HTF_L_0001, 18;HTF_L_0001, 19;HTF_L_0001, 20;HTF_L_0001, 21;HTF_L_0001, 22;HTF_L_0001, 23;HTF_L_0001, 24', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:12:59,939] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:12:59,939] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f38b341970', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:12:59,939] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:12:59,939] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f38b341a2b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:12:59,939] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:12:59,939] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f38b341c6d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:13:00,487] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 25; HTF_L_0001, 26; HTF_L_0001, 27; HTF_L_0001, 28; HTF_L_0001, 29; HTF_L_0001, 30; HTF_L_0001, 31; HTF_L_0001, 32 [2025-08-04 15:13:00,488] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f38b3c79eb', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 25;HTF_L_0001, 26;HTF_L_0001, 27;HTF_L_0001, 28;HTF_L_0001, 29;HTF_L_0001, 30;HTF_L_0001, 31;HTF_L_0001, 32', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:13:00,488] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:13:00,488] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f38b3c7b56', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:13:00,488] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:13:00,488] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f38b3c7caa', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:13:00,489] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:13:00,489] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f38b3c7d9a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:13:00,972] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 33; HTF_L_0001, 34; HTF_L_0001, 35; HTF_L_0001, 36; HTF_L_0001, 37; HTF_L_0001, 38; HTF_L_0001, 39; HTF_L_0001, 40 [2025-08-04 15:13:00,972] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f38b43dce1', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 33;HTF_L_0001, 34;HTF_L_0001, 35;HTF_L_0001, 36;HTF_L_0001, 37;HTF_L_0001, 38;HTF_L_0001, 39;HTF_L_0001, 40', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:13:00,972] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:13:00,972] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f38b43dde2', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:13:00,972] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:13:00,972] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f38b43ded2', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:13:00,972] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:13:00,972] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f38b43df91', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:13:01,497] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 41; HTF_L_0001, 42; HTF_L_0001, 43; HTF_L_0001, 44; HTF_L_0001, 45; HTF_L_0001, 46; HTF_L_0001, 47; HTF_L_0001, 48 [2025-08-04 15:13:01,497] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f38b4be034', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 41;HTF_L_0001, 42;HTF_L_0001, 43;HTF_L_0001, 44;HTF_L_0001, 45;HTF_L_0001, 46;HTF_L_0001, 47;HTF_L_0001, 48', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:13:01,497] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:13:01,497] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f38b4be0fb', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:13:01,497] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:13:01,497] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f38b4be1b0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:13:01,497] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:13:01,497] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f38b4be271', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:13:01,995] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 49; HTF_L_0001, 50; HTF_L_0001, 51; HTF_L_0001, 52; HTF_L_0001, 53; HTF_L_0001, 54; HTF_L_0001, 55; HTF_L_0001, 56 [2025-08-04 15:13:01,995] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f38b537b36', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 49;HTF_L_0001, 50;HTF_L_0001, 51;HTF_L_0001, 52;HTF_L_0001, 53;HTF_L_0001, 54;HTF_L_0001, 55;HTF_L_0001, 56', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:13:01,995] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:13:01,996] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f38b537bf2', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:13:01,996] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:13:01,996] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f38b537c9f', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:13:01,996] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:13:01,996] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f38b537d8f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:13:02,469] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 57; HTF_L_0001, 58; HTF_L_0001, 59; HTF_L_0001, 60; HTF_L_0001, 61; HTF_L_0001, 62; HTF_L_0001, 63; HTF_L_0001, 64 [2025-08-04 15:13:02,469] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f38b5ab5d4', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 57;HTF_L_0001, 58;HTF_L_0001, 59;HTF_L_0001, 60;HTF_L_0001, 61;HTF_L_0001, 62;HTF_L_0001, 63;HTF_L_0001, 64', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:13:02,469] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:13:02,469] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f38b5ab698', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:13:02,469] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:13:02,469] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f38b5ab74b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:13:02,470] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:13:02,470] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f38b5ab846', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:13:02,997] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 65; HTF_L_0001, 66; HTF_L_0001, 67; HTF_L_0001, 68; HTF_L_0001, 69; HTF_L_0001, 70; HTF_L_0001, 71; HTF_L_0001, 72 [2025-08-04 15:13:02,997] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f38b62c506', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 65;HTF_L_0001, 66;HTF_L_0001, 67;HTF_L_0001, 68;HTF_L_0001, 69;HTF_L_0001, 70;HTF_L_0001, 71;HTF_L_0001, 72', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:13:02,997] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:13:02,997] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f38b62c5c8', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:13:02,998] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:13:02,998] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f38b62c676', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:13:02,998] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:13:02,998] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f38b62c721', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:13:03,470] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 73; HTF_L_0001, 74; HTF_L_0001, 75; HTF_L_0001, 76; HTF_L_0001, 77; HTF_L_0001, 78; HTF_L_0001, 79; HTF_L_0001, 80 [2025-08-04 15:13:03,471] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f38b69fdfb', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 73;HTF_L_0001, 74;HTF_L_0001, 75;HTF_L_0001, 76;HTF_L_0001, 77;HTF_L_0001, 78;HTF_L_0001, 79;HTF_L_0001, 80', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:13:03,471] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:13:03,471] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f38b69feca', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:13:03,471] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:13:03,471] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f38b69ff7b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:13:03,471] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:13:03,471] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f38b6a0055', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:13:04,000] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 81; HTF_L_0001, 82; HTF_L_0001, 83; HTF_L_0001, 84; HTF_L_0001, 85; HTF_L_0001, 86; HTF_L_0001, 87; HTF_L_0001, 88 [2025-08-04 15:13:04,001] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f38b72147b', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 81;HTF_L_0001, 82;HTF_L_0001, 83;HTF_L_0001, 84;HTF_L_0001, 85;HTF_L_0001, 86;HTF_L_0001, 87;HTF_L_0001, 88', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:13:04,001] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:13:04,001] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f38b721577', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:13:04,001] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:13:04,001] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f38b721649', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:13:04,001] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:13:04,001] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f38b7216ff', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:13:04,559] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 89; HTF_L_0001, 90; HTF_L_0001, 91; HTF_L_0001, 92; HTF_L_0001, 93; HTF_L_0001, 94; HTF_L_0001, 95; HTF_L_0001, 96 [2025-08-04 15:13:04,559] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f38b7a98d9', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 89;HTF_L_0001, 90;HTF_L_0001, 91;HTF_L_0001, 92;HTF_L_0001, 93;HTF_L_0001, 94;HTF_L_0001, 95;HTF_L_0001, 96', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:13:04,559] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:13:04,559] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f38b7a99a3', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:13:04,559] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:13:04,559] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f38b7a9aaf', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:13:04,559] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:13:04,559] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f38b7a9b54', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:13:04,560] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 15:13:04,560] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-08-04 15:13:04,560] pyhamilton.interface INFO disconnected from server [2025-08-04 15:13:04,660] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 15:13:04,661] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-04 15:13:04,664] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-04 15:13:04,667] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-04 15:13:04,667] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 15:13:04,668] pyhamilton.interface INFO server thread exited [2025-08-04 15:16:58,433] root INFO ############################################################################################################################# [2025-08-04 15:16:58,433] root INFO # # [2025-08-04 15:16:58,433] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-08-04 15:16:58,433] root INFO # # [2025-08-04 15:16:58,433] root INFO ############################################################################################################################# [2025-08-04 15:16:58,433] pyhamilton.interface INFO starting a Hamilton interface [2025-08-04 15:16:58,434] pyhamilton.interface INFO running in simulation mode [2025-08-04 15:16:58,434] pyhamilton.interface INFO started the server thread [2025-08-04 15:16:58,434] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-04 15:16:59,302] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 1; HTF_L_0001, 2; HTF_L_0001, 3; HTF_L_0001, 4; HTF_L_0001, 5; HTF_L_0001, 6; HTF_L_0001, 7; HTF_L_0001, 8 [2025-08-04 15:16:59,302] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f399787ffa', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 1;HTF_L_0001, 2;HTF_L_0001, 3;HTF_L_0001, 4;HTF_L_0001, 5;HTF_L_0001, 6;HTF_L_0001, 7;HTF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:16:59,303] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:16:59,303] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f399788139', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:16:59,303] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:16:59,303] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f39978820e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:16:59,303] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:16:59,303] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f3997882b6', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:16:59,750] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 9; HTF_L_0001, 10; HTF_L_0001, 11; HTF_L_0001, 12; HTF_L_0001, 13; HTF_L_0001, 14; HTF_L_0001, 15; HTF_L_0001, 16 [2025-08-04 15:16:59,750] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f3997f54f1', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 9;HTF_L_0001, 10;HTF_L_0001, 11;HTF_L_0001, 12;HTF_L_0001, 13;HTF_L_0001, 14;HTF_L_0001, 15;HTF_L_0001, 16', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:16:59,750] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:16:59,750] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f3997f55d8', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:16:59,751] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:16:59,751] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f3997f56d4', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:16:59,751] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:16:59,751] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f3997f5789', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:17:00,280] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 17; HTF_L_0001, 18; HTF_L_0001, 19; HTF_L_0001, 20; HTF_L_0001, 21; HTF_L_0001, 22; HTF_L_0001, 23; HTF_L_0001, 24 [2025-08-04 15:17:00,280] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f399876af0', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 17;HTF_L_0001, 18;HTF_L_0001, 19;HTF_L_0001, 20;HTF_L_0001, 21;HTF_L_0001, 22;HTF_L_0001, 23;HTF_L_0001, 24', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:17:00,280] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:17:00,280] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f399876bb8', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:17:00,280] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:17:00,280] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f399876c67', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:17:00,281] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:17:00,281] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f399876e9e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:17:00,839] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 25; HTF_L_0001, 26; HTF_L_0001, 27; HTF_L_0001, 28; HTF_L_0001, 29; HTF_L_0001, 30; HTF_L_0001, 31; HTF_L_0001, 32 [2025-08-04 15:17:00,840] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f3998ff47a', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 25;HTF_L_0001, 26;HTF_L_0001, 27;HTF_L_0001, 28;HTF_L_0001, 29;HTF_L_0001, 30;HTF_L_0001, 31;HTF_L_0001, 32', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:17:00,840] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:17:00,840] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f3998ff5ab', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:17:00,840] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:17:00,840] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f3998ff678', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:17:00,840] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:17:00,840] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f3998ff71e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:17:01,391] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 33; HTF_L_0001, 34; HTF_L_0001, 35; HTF_L_0001, 36; HTF_L_0001, 37; HTF_L_0001, 38; HTF_L_0001, 39; HTF_L_0001, 40 [2025-08-04 15:17:01,391] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f399985eaf', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 33;HTF_L_0001, 34;HTF_L_0001, 35;HTF_L_0001, 36;HTF_L_0001, 37;HTF_L_0001, 38;HTF_L_0001, 39;HTF_L_0001, 40', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:17:01,391] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:17:01,391] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f399986028', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:17:01,392] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:17:01,392] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f399986176', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:17:01,392] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:17:01,392] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f399986281', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:17:01,960] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 41; HTF_L_0001, 42; HTF_L_0001, 43; HTF_L_0001, 44; HTF_L_0001, 45; HTF_L_0001, 46; HTF_L_0001, 47; HTF_L_0001, 48 [2025-08-04 15:17:01,960] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f399a10d2e', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 41;HTF_L_0001, 42;HTF_L_0001, 43;HTF_L_0001, 44;HTF_L_0001, 45;HTF_L_0001, 46;HTF_L_0001, 47;HTF_L_0001, 48', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:17:01,960] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:17:01,960] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f399a10def', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:17:01,960] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:17:01,960] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f399a10ea0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:17:01,960] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:17:01,961] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f399a10f4f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:17:02,441] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 49; HTF_L_0001, 50; HTF_L_0001, 51; HTF_L_0001, 52; HTF_L_0001, 53; HTF_L_0001, 54; HTF_L_0001, 55; HTF_L_0001, 56 [2025-08-04 15:17:02,441] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f399a86402', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 49;HTF_L_0001, 50;HTF_L_0001, 51;HTF_L_0001, 52;HTF_L_0001, 53;HTF_L_0001, 54;HTF_L_0001, 55;HTF_L_0001, 56', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:17:02,441] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:17:02,441] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f399a864bf', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:17:02,441] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:17:02,441] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f399a86570', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:17:02,441] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:17:02,442] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f399a86660', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:17:02,942] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 57; HTF_L_0001, 58; HTF_L_0001, 59; HTF_L_0001, 60; HTF_L_0001, 61; HTF_L_0001, 62; HTF_L_0001, 63; HTF_L_0001, 64 [2025-08-04 15:17:02,942] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f399b00a54', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 57;HTF_L_0001, 58;HTF_L_0001, 59;HTF_L_0001, 60;HTF_L_0001, 61;HTF_L_0001, 62;HTF_L_0001, 63;HTF_L_0001, 64', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:17:02,942] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:17:02,943] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f399b00b4f', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:17:02,943] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:17:02,943] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f399b00c50', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:17:02,943] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:17:02,943] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f399b00d02', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:17:03,441] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 65; HTF_L_0001, 66; HTF_L_0001, 67; HTF_L_0001, 68; HTF_L_0001, 69; HTF_L_0001, 70; HTF_L_0001, 71; HTF_L_0001, 72 [2025-08-04 15:17:03,441] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f399b7a823', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 65;HTF_L_0001, 66;HTF_L_0001, 67;HTF_L_0001, 68;HTF_L_0001, 69;HTF_L_0001, 70;HTF_L_0001, 71;HTF_L_0001, 72', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:17:03,442] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:17:03,442] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f399b7a8f9', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:17:03,442] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:17:03,442] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f399b7a9a9', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:17:03,442] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:17:03,442] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f399b7aa4e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:17:03,926] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 73; HTF_L_0001, 74; HTF_L_0001, 75; HTF_L_0001, 76; HTF_L_0001, 77; HTF_L_0001, 78; HTF_L_0001, 79; HTF_L_0001, 80 [2025-08-04 15:17:03,926] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f399bf0bc7', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 73;HTF_L_0001, 74;HTF_L_0001, 75;HTF_L_0001, 76;HTF_L_0001, 77;HTF_L_0001, 78;HTF_L_0001, 79;HTF_L_0001, 80', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:17:03,926] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:17:03,926] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f399bf0c8b', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:17:03,926] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:17:03,926] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f399bf0d3c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:17:03,926] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:17:03,926] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f399bf0df0', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:17:04,413] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 81; HTF_L_0001, 82; HTF_L_0001, 83; HTF_L_0001, 84; HTF_L_0001, 85; HTF_L_0001, 86; HTF_L_0001, 87; HTF_L_0001, 88 [2025-08-04 15:17:04,413] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f399c67aaa', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 81;HTF_L_0001, 82;HTF_L_0001, 83;HTF_L_0001, 84;HTF_L_0001, 85;HTF_L_0001, 86;HTF_L_0001, 87;HTF_L_0001, 88', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:17:04,413] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:17:04,413] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f399c67ba6', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:17:04,413] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:17:04,413] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f399c67c6b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:17:04,413] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:17:04,413] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f399c67d21', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:17:04,964] pyhamilton.interface INFO tip_pick_up: Pick up tips at HTF_L_0001, 89; HTF_L_0001, 90; HTF_L_0001, 91; HTF_L_0001, 92; HTF_L_0001, 93; HTF_L_0001, 94; HTF_L_0001, 95; HTF_L_0001, 96 [2025-08-04 15:17:04,964] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x17f399cee308', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 89;HTF_L_0001, 90;HTF_L_0001, 91;HTF_L_0001, 92;HTF_L_0001, 93;HTF_L_0001, 94;HTF_L_0001, 95;HTF_L_0001, 96', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-04 15:17:04,964] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-04 15:17:04,964] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x17f399cee3d1', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:17:04,964] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A12; MIDI_Pipette, B12; MIDI_Pipette, C12; MIDI_Pipette, D12; MIDI_Pipette, E12; MIDI_Pipette, F12; MIDI_Pipette, G12; MIDI_Pipette, H12] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-04 15:17:04,964] JSONLogger INFO {'command': 'channelDispense', 'id': '0x17f399cee480', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-04 15:17:04,964] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-04 15:17:04,964] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x17f399cee533', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-04 15:17:04,964] pyhamilton.interface INFO sending end run command to simulator [2025-08-04 15:17:04,965] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-08-04 15:17:04,965] pyhamilton.interface INFO disconnected from server [2025-08-04 15:17:05,065] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-04 15:17:05,066] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-04 15:17:05,071] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-04 15:17:05,073] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-04 15:17:05,074] pyhamilton.interface INFO dummy get request sent to server [2025-08-04 15:17:05,074] pyhamilton.interface INFO server thread exited [2025-08-05 14:34:38,897] root INFO ############################################################################################################################# [2025-08-05 14:34:38,899] root INFO # # [2025-08-05 14:34:38,899] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-08-05 14:34:38,899] root INFO # # [2025-08-05 14:34:38,899] root INFO ############################################################################################################################# [2025-08-05 14:34:38,900] pyhamilton.interface INFO starting a Hamilton interface [2025-08-05 14:34:38,901] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18071e8c723f') [2025-08-05 14:34:38,901] pyhamilton.interface INFO started the oem application for simulation [2025-08-05 14:34:38,901] pyhamilton.interface INFO started the server thread [2025-08-05 14:34:38,901] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-05 14:34:42,470] pyhamilton.interface INFO tip_pick_up: Pick up tips at STF_L_0001, 1; STF_L_0001, 2; STF_L_0001, 3; STF_L_0001, 4; STF_L_0001, 5; STF_L_0001, 6; STF_L_0001, 7; STF_L_0001, 8 [2025-08-05 14:34:51,476] pyhamilton.interface INFO aspirate: Aspirate volumes [300, 300, 300, 300, 300, 300, 300, 300] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-05 14:35:08,486] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:35:18,493] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:35:26,506] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:35:34,511] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:35:42,517] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:35:47,522] pyhamilton.interface INFO sending end run command to simulator [2025-08-05 14:35:49,023] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-05 14:35:49,023] pyhamilton.interface INFO disconnected from server [2025-08-05 14:35:49,124] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-05 14:35:49,125] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-05 14:35:49,128] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-05 14:35:49,130] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-05 14:35:49,131] pyhamilton.interface INFO dummy get request sent to server [2025-08-05 14:35:49,131] pyhamilton.interface INFO server thread exited [2025-08-05 14:35:49,134] root ERROR Traceback (most recent call last): [2025-08-05 14:35:49,138] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 57, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'StandardVolumeFilter_Water_DispenseJet_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-05 14:35:49,138] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 303, in multi_dispense response = ham_int.dispense(column, column_volumes, liquidClass=liquid_class, mixCycles=mix_cycles, mixVolume=0, liquidHeight=dispense_height, capacitiveLLD=0, liquidFollowing=0) [2025-08-05 14:35:49,138] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 916, in dispense response = self.wait_on_response( self.send_command( ...<7 lines>... return_data=['step-return2', 'step-return3'] ) [2025-08-05 14:35:49,138] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-05 14:35:49,138] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-05 14:35:49,138] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 414, in raise_first_exception raise HAMILTON_ERROR_MAP[firstErrorCode]() [2025-08-05 14:35:49,139] root ERROR pyhamilton.oemerr.NotAspiratedError [2025-08-05 14:46:36,520] root INFO ############################################################################################################################# [2025-08-05 14:46:36,520] root INFO # # [2025-08-05 14:46:36,521] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-08-05 14:46:36,521] root INFO # # [2025-08-05 14:46:36,521] root INFO ############################################################################################################################# [2025-08-05 14:46:36,523] pyhamilton.interface INFO starting a Hamilton interface [2025-08-05 14:46:36,524] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x180749528583') [2025-08-05 14:46:36,524] pyhamilton.interface INFO started the oem application for simulation [2025-08-05 14:46:36,525] pyhamilton.interface INFO started the server thread [2025-08-05 14:46:36,525] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-05 14:46:38,090] pyhamilton.interface INFO tip_pick_up: Pick up tips at STF_L_0001, 1; STF_L_0001, 2; STF_L_0001, 3; STF_L_0001, 4; STF_L_0001, 5; STF_L_0001, 6; STF_L_0001, 7; STF_L_0001, 8 [2025-08-05 14:46:47,097] pyhamilton.interface INFO aspirate: Aspirate volumes [300, 300, 300, 300, 300, 300, 300, 300] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-05 14:47:03,112] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:47:13,121] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:47:21,126] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:47:28,132] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:47:36,137] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:47:44,151] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-05 14:47:52,159] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 14:48:02,874] pyhamilton.interface INFO tip_pick_up: Pick up tips at STF_L_0001, 9; STF_L_0001, 10; STF_L_0001, 11; STF_L_0001, 12; STF_L_0001, 13; STF_L_0001, 14; STF_L_0001, 15; STF_L_0001, 16 [2025-08-05 14:48:17,885] pyhamilton.interface INFO sending end run command to simulator [2025-08-05 14:48:19,386] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-05 14:48:19,386] pyhamilton.interface INFO disconnected from server [2025-08-05 14:48:19,487] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-05 14:48:19,488] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-05 14:48:19,492] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-05 14:48:19,493] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-05 14:48:19,494] pyhamilton.interface INFO dummy get request sent to server [2025-08-05 14:48:19,494] pyhamilton.interface INFO server thread exited [2025-08-05 14:48:19,501] root ERROR Traceback (most recent call last): [2025-08-05 14:48:19,503] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_handling_wrappers.py", line 214, in tracked_tip_pick_up ham_int.tip_pick_up(tips_poss) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ [2025-08-05 14:48:19,503] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 961, in tip_pick_up self.wait_on_response( ~~~~~~~~~~~~~~~~~~~~~^ self.send_command( ^^^^^^^^^^^^^^^^^^ ...<5 lines>... raise_first_exception=True ^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ [2025-08-05 14:48:19,503] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-05 14:48:19,504] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-05 14:48:19,504] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 414, in raise_first_exception raise HAMILTON_ERROR_MAP[firstErrorCode]() [2025-08-05 14:48:19,504] root ERROR pyhamilton.oemerr.NoTipError [2025-08-05 14:48:19,504] root ERROR During handling of the above exception, another exception occurred: [2025-08-05 14:48:19,505] root ERROR Traceback (most recent call last): [2025-08-05 14:48:19,506] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 59, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'StandardVolumeFilter_Water_DispenseJet_Part') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-05 14:48:19,506] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 287, in multi_dispense tracked_tip_pick_up(ham_int, tips, n=8) # Pick up tips for the first column of the batch ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^ [2025-08-05 14:48:19,506] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_handling_wrappers.py", line 216, in tracked_tip_pick_up tips_tracker.mark_occupied(tips_poss) ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ [2025-08-05 14:48:19,507] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\managed_resources.py", line 116, in mark_occupied rack, _ = self.occupancy[index] ~~~~~~~~~~~~~~^^^^^^^ [2025-08-05 14:48:19,507] root ERROR TypeError: list indices must be integers or slices, not list [2025-08-05 14:52:51,795] root INFO ########################################################################################################################### [2025-08-05 14:52:51,795] root INFO # # [2025-08-05 14:52:51,795] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-08-05 14:52:51,796] root INFO # # [2025-08-05 14:52:51,796] root INFO ########################################################################################################################### [2025-08-05 14:52:51,797] pyhamilton.interface INFO starting a Hamilton interface [2025-08-05 14:52:51,798] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18075f54f850') [2025-08-05 14:52:51,798] pyhamilton.interface INFO started the oem application for simulation [2025-08-05 14:52:51,798] pyhamilton.interface INFO started the server thread [2025-08-05 14:52:51,798] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-05 14:52:53,101] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-08-05 14:53:02,678] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0, 0, 0, 0, 0] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-08-05 14:53:16,727] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-08-05 14:53:21,732] pyhamilton.interface INFO sending end run command to simulator [2025-08-05 14:53:23,232] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-05 14:53:23,233] pyhamilton.interface INFO disconnected from server [2025-08-05 14:53:23,333] pyhamilton.interface INFO server thread exited [2025-08-05 14:53:23,342] root ERROR Traceback (most recent call last): [2025-08-05 14:53:23,344] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_handling_wrappers.py", line 214, in tracked_tip_pick_up ham_int.tip_pick_up(tips_poss) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ [2025-08-05 14:53:23,344] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 961, in tip_pick_up self.wait_on_response( ~~~~~~~~~~~~~~~~~~~~~^ self.send_command( ^^^^^^^^^^^^^^^^^^ ...<5 lines>... raise_first_exception=True ^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ [2025-08-05 14:53:23,345] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-05 14:53:23,346] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-05 14:53:23,346] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 414, in raise_first_exception raise HAMILTON_ERROR_MAP[firstErrorCode]() [2025-08-05 14:53:23,347] root ERROR pyhamilton.oemerr.TipPresentError [2025-08-05 14:53:23,348] root ERROR During handling of the above exception, another exception occurred: [2025-08-05 14:53:23,348] root ERROR Traceback (most recent call last): [2025-08-05 14:53:23,349] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 36, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-05 14:53:23,349] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 204, in pip_transfer tracked_tip_pick_up(ham_int, tips, num_tips) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-05 14:53:23,349] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\liquid_handling_wrappers.py", line 216, in tracked_tip_pick_up tips_tracker.mark_occupied(tips_poss) ~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^ [2025-08-05 14:53:23,350] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\managed_resources.py", line 116, in mark_occupied rack, _ = self.occupancy[index] ~~~~~~~~~~~~~~^^^^^^^ [2025-08-05 14:53:23,350] root ERROR TypeError: list indices must be integers or slices, not list [2025-08-05 14:57:14,888] root INFO ########################################################################################################################### [2025-08-05 14:57:14,888] root INFO # # [2025-08-05 14:57:14,889] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-08-05 14:57:14,889] root INFO # # [2025-08-05 14:57:14,889] root INFO ########################################################################################################################### [2025-08-05 14:57:14,890] pyhamilton.interface INFO starting a Hamilton interface [2025-08-05 14:57:14,890] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18076f5f5689') [2025-08-05 14:57:14,890] pyhamilton.interface INFO started the oem application for simulation [2025-08-05 14:57:14,890] pyhamilton.interface INFO started the server thread [2025-08-05 14:57:14,890] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-05 14:57:16,186] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-08-05 14:57:25,661] pyhamilton.interface INFO aspirate: Aspirate volumes [0, 0, 0, 0, 0, 0, 0, 0] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'capacitiveLLD': 1} [2025-08-05 14:57:37,671] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 14:57:51,679] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-08-05 14:58:04,693] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 14:58:15,744] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-08-05 14:58:26,757] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 14:58:41,776] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-08-05 14:58:53,784] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 14:59:04,819] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-08-05 14:59:16,827] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 14:59:31,840] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-08-05 14:59:44,861] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 14:59:54,908] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32 [2025-08-05 15:00:05,916] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 15:00:20,931] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-08-05 15:00:33,949] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 15:00:44,001] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40 [2025-08-05 15:00:55,017] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 5, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 15:01:11,032] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 2, 'liquidFollowing': False} [2025-08-05 15:01:25,041] pyhamilton.interface INFO sending end run command to simulator [2025-08-05 15:01:26,542] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-05 15:01:26,543] pyhamilton.interface INFO disconnected from server [2025-08-05 15:01:26,643] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-05 15:01:26,644] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-05 15:01:26,647] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-05 15:01:26,649] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-05 15:01:26,650] pyhamilton.interface INFO dummy get request sent to server [2025-08-05 15:01:26,650] pyhamilton.interface INFO server thread exited [2025-08-05 15:01:26,654] root ERROR Traceback (most recent call last): [2025-08-05 15:01:26,656] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 36, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-05 15:01:26,656] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 223, in pip_transfer response = ham_int.dispense(column, column_volumes, liquidClass=liquid_class, mixCycles=mix_cycles, mixVolume=vol_mix_dispense, liquidHeight=dispense_height_from_bottom, capacitiveLLD=dispense_capacitative_LLD, liquidFollowing=liquid_following_dispense) [2025-08-05 15:01:26,656] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 916, in dispense response = self.wait_on_response( self.send_command( ...<7 lines>... return_data=['step-return2', 'step-return3'] ) [2025-08-05 15:01:26,657] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-05 15:01:26,657] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-05 15:01:26,657] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 414, in raise_first_exception raise HAMILTON_ERROR_MAP[firstErrorCode]() [2025-08-05 15:01:26,657] root ERROR pyhamilton.oemerr.LiquidLevelError [2025-08-05 15:11:22,980] root INFO ########################################################################################################################### [2025-08-05 15:11:22,981] root INFO # # [2025-08-05 15:11:22,981] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-08-05 15:11:22,982] root INFO # # [2025-08-05 15:11:22,982] root INFO ########################################################################################################################### [2025-08-05 15:11:22,982] pyhamilton.interface INFO starting a Hamilton interface [2025-08-05 15:11:22,983] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1807a1af02ad') [2025-08-05 15:11:22,983] pyhamilton.interface INFO started the oem application for simulation [2025-08-05 15:11:22,984] pyhamilton.interface INFO started the server thread [2025-08-05 15:11:22,984] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-05 15:11:24,103] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-08-05 15:11:34,507] pyhamilton.interface INFO sending end run command to simulator [2025-08-05 15:11:36,009] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-05 15:11:36,009] pyhamilton.interface INFO disconnected from server [2025-08-05 15:11:36,110] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-05 15:11:36,111] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-05 15:11:36,118] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-05 15:11:36,120] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-05 15:11:36,121] pyhamilton.interface INFO dummy get request sent to server [2025-08-05 15:11:36,121] pyhamilton.interface INFO server thread exited [2025-08-05 15:11:36,124] root ERROR Traceback (most recent call last): [2025-08-05 15:11:36,126] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 38, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty', aspirate_height_from_bottom=1, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dispense_height_from_bottom=1) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-05 15:11:36,127] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 196, in pip_transfer aspirate_mode = 2 if performed_additional_volume_transfer else 0 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-05 15:11:36,127] root ERROR UnboundLocalError: cannot access local variable 'performed_additional_volume_transfer' where it is not associated with a value [2025-08-05 15:13:16,485] root INFO ########################################################################################################################### [2025-08-05 15:13:16,485] root INFO # # [2025-08-05 15:13:16,485] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py # [2025-08-05 15:13:16,485] root INFO # # [2025-08-05 15:13:16,485] root INFO ########################################################################################################################### [2025-08-05 15:13:16,486] pyhamilton.interface INFO starting a Hamilton interface [2025-08-05 15:13:16,486] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1807a891838d') [2025-08-05 15:13:16,486] pyhamilton.interface INFO started the oem application for simulation [2025-08-05 15:13:16,487] pyhamilton.interface INFO started the server thread [2025-08-05 15:13:16,487] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-05 15:13:17,546] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-08-05 15:13:27,057] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 15:13:41,081] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'liquidFollowing': False} [2025-08-05 15:13:54,102] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 15:14:05,140] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 9; TIP_50uLF_L_0001, 10; TIP_50uLF_L_0001, 11; TIP_50uLF_L_0001, 12; TIP_50uLF_L_0001, 13; TIP_50uLF_L_0001, 14; TIP_50uLF_L_0001, 15; TIP_50uLF_L_0001, 16 [2025-08-05 15:14:17,148] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 15:14:34,169] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'liquidFollowing': False} [2025-08-05 15:14:49,190] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 15:15:01,264] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 17; TIP_50uLF_L_0001, 18; TIP_50uLF_L_0001, 19; TIP_50uLF_L_0001, 20; TIP_50uLF_L_0001, 21; TIP_50uLF_L_0001, 22; TIP_50uLF_L_0001, 23; TIP_50uLF_L_0001, 24 [2025-08-05 15:15:13,274] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 15:15:33,285] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'liquidFollowing': False} [2025-08-05 15:15:46,294] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 15:15:57,338] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 25; TIP_50uLF_L_0001, 26; TIP_50uLF_L_0001, 27; TIP_50uLF_L_0001, 28; TIP_50uLF_L_0001, 29; TIP_50uLF_L_0001, 30; TIP_50uLF_L_0001, 31; TIP_50uLF_L_0001, 32 [2025-08-05 15:16:08,347] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 15:16:23,368] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'liquidFollowing': False} [2025-08-05 15:16:37,377] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 15:16:49,437] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 33; TIP_50uLF_L_0001, 34; TIP_50uLF_L_0001, 35; TIP_50uLF_L_0001, 36; TIP_50uLF_L_0001, 37; TIP_50uLF_L_0001, 38; TIP_50uLF_L_0001, 39; TIP_50uLF_L_0001, 40 [2025-08-05 15:16:59,443] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 15:17:15,453] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'liquidFollowing': False} [2025-08-05 15:17:33,463] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 15:17:48,528] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 41; TIP_50uLF_L_0001, 42; TIP_50uLF_L_0001, 43; TIP_50uLF_L_0001, 44; TIP_50uLF_L_0001, 45; TIP_50uLF_L_0001, 46; TIP_50uLF_L_0001, 47; TIP_50uLF_L_0001, 48 [2025-08-05 15:18:02,541] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 15:18:25,579] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'liquidFollowing': False} [2025-08-05 15:18:45,609] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 15:18:59,674] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 49; TIP_50uLF_L_0001, 50; TIP_50uLF_L_0001, 51; TIP_50uLF_L_0001, 52; TIP_50uLF_L_0001, 53; TIP_50uLF_L_0001, 54; TIP_50uLF_L_0001, 55; TIP_50uLF_L_0001, 56 [2025-08-05 15:19:13,684] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'aspirateMode': 0, 'liquidFollowing': False} [2025-08-05 15:19:38,735] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 1, 'capacitiveLLD': 0, 'liquidFollowing': False} [2025-08-05 15:19:58,748] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-05 15:20:25,476] pyhamilton.interface INFO sending end run command to simulator [2025-08-05 15:20:25,654] pyhamilton.interface INFO disconnected from server [2025-08-05 15:20:25,754] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-05 15:20:25,755] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-05 15:20:25,760] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-05 15:20:25,762] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-05 15:20:25,763] pyhamilton.interface INFO dummy get request sent to server [2025-08-05 15:20:25,764] pyhamilton.interface INFO server thread exited [2025-08-05 15:20:25,776] root ERROR Traceback (most recent call last): [2025-08-05 15:20:25,784] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 38, in pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty', aspirate_height_from_bottom=1, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ dispense_height_from_bottom=1) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-05 15:20:25,785] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 231, in pip_transfer ham_int.tip_eject() ~~~~~~~~~~~~~~~~~^^ [2025-08-05 15:20:25,787] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 993, in tip_eject self.wait_on_response( ~~~~~~~~~~~~~~~~~~~~~^ self.send_command( ^^^^^^^^^^^^^^^^^^ ...<5 lines>... raise_first_exception=True ^^^^^^^^^^^^^^^^^^^^^^^^^^ ) ^ [2025-08-05 15:20:25,788] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 723, in wait_on_response for _ in wait(delays=delays, timeout=timeout): ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-05 15:20:25,789] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\waiter\__init__.py", line 91, in __iter__ time.sleep(min(delay, remaining)) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-05 15:20:25,791] root ERROR KeyboardInterrupt [2025-08-05 15:20:25,792] root ERROR During handling of the above exception, another exception occurred: [2025-08-05 15:20:25,793] root ERROR Traceback (most recent call last): [2025-08-05 15:20:25,797] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\pip_transfer.py", line 30, in with HamiltonInterface(windowed=True, simulating=False) as ham_int: ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-05 15:20:25,798] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 642, in __exit__ self.stop() ~~~~~~~~~^^ [2025-08-05 15:20:25,798] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 605, in stop self.wait_on_response(self.send_command(command='end', id=hex(0)), timeout=1.5) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-05 15:20:25,799] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 723, in wait_on_response for _ in wait(delays=delays, timeout=timeout): ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-05 15:20:25,799] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\waiter\__init__.py", line 91, in __iter__ time.sleep(min(delay, remaining)) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-05 15:20:25,799] root ERROR KeyboardInterrupt [2025-08-06 14:48:21,588] root INFO ################################################################################################################## [2025-08-06 14:48:21,589] root INFO # # [2025-08-06 14:48:21,589] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-08-06 14:48:21,589] root INFO # # [2025-08-06 14:48:21,590] root INFO ################################################################################################################## [2025-08-06 14:48:21,590] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 14:48:21,591] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b6d4ea40b') [2025-08-06 14:48:21,591] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 14:48:21,592] pyhamilton.interface INFO started the server thread [2025-08-06 14:48:21,592] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 14:48:22,593] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 14:48:24,095] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 14:48:24,095] pyhamilton.interface INFO disconnected from server [2025-08-06 14:48:24,196] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 14:48:24,197] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-06 14:48:24,202] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-06 14:48:24,204] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-06 14:48:24,205] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 14:48:24,205] pyhamilton.interface INFO server thread exited [2025-08-06 14:48:24,206] root ERROR Traceback (most recent call last): [2025-08-06 14:48:24,207] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 35, in device_id = hhs_create_usb_device(ham_int, 'ML_STAR', '1') [2025-08-06 14:48:24,207] root ERROR TypeError: hhs_create_usb_device() takes 2 positional arguments but 3 were given [2025-08-06 14:49:11,006] root INFO ################################################################################################################## [2025-08-06 14:49:11,007] root INFO # # [2025-08-06 14:49:11,007] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-08-06 14:49:11,007] root INFO # # [2025-08-06 14:49:11,008] root INFO ################################################################################################################## [2025-08-06 14:49:11,009] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 14:49:11,010] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b7040ab90') [2025-08-06 14:49:11,010] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 14:49:11,011] pyhamilton.interface INFO started the server thread [2025-08-06 14:49:11,011] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 14:49:13,014] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 14:49:14,515] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 14:49:14,515] pyhamilton.interface INFO disconnected from server [2025-08-06 14:49:14,616] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 14:49:14,616] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-06 14:49:14,619] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-06 14:49:14,620] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-06 14:49:14,621] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 14:49:14,621] pyhamilton.interface INFO server thread exited [2025-08-06 14:49:14,627] root ERROR Traceback (most recent call last): [2025-08-06 14:49:14,629] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 35, in device_id = hhs_create_usb_device(ham_int,'1') [2025-08-06 14:49:14,629] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 31, in hhs_create_usb_device response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2']) [2025-08-06 14:49:14,630] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-06 14:49:14,630] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-06 14:49:14,630] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 396, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-08-06 14:49:14,630] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_CreateUSBDevice","step-return1":0,"step-return2":0,"step-return3":"","step-return4":"","id":"0x181b71c66e54"} ) [2025-08-06 14:50:02,881] root INFO ################################################################################################################## [2025-08-06 14:50:02,882] root INFO # # [2025-08-06 14:50:02,882] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-08-06 14:50:02,883] root INFO # # [2025-08-06 14:50:02,883] root INFO ################################################################################################################## [2025-08-06 14:50:02,884] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 14:50:02,884] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b73678595') [2025-08-06 14:50:02,884] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 14:50:02,884] pyhamilton.interface INFO started the server thread [2025-08-06 14:50:02,884] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 14:50:05,887] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 14:50:07,389] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 14:50:07,389] pyhamilton.interface INFO disconnected from server [2025-08-06 14:50:07,490] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 14:50:07,491] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-06 14:50:07,499] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-06 14:50:07,501] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-06 14:50:07,502] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 14:50:07,502] pyhamilton.interface INFO server thread exited [2025-08-06 14:51:48,474] root INFO ################################################################################################################## [2025-08-06 14:51:48,475] root INFO # # [2025-08-06 14:51:48,475] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-08-06 14:51:48,476] root INFO # # [2025-08-06 14:51:48,476] root INFO ################################################################################################################## [2025-08-06 14:51:48,477] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 14:51:48,477] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b79b2b706') [2025-08-06 14:51:48,478] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 14:51:48,478] pyhamilton.interface INFO started the server thread [2025-08-06 14:51:48,478] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 14:52:03,487] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 14:52:04,988] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 14:52:04,989] pyhamilton.interface INFO disconnected from server [2025-08-06 14:52:05,089] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 14:52:05,090] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-06 14:52:05,096] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-06 14:52:05,098] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-06 14:52:05,099] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 14:52:05,099] pyhamilton.interface INFO server thread exited [2025-08-06 14:54:53,054] root INFO ################################################################################################################## [2025-08-06 14:54:53,055] root INFO # # [2025-08-06 14:54:53,055] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-08-06 14:54:53,055] root INFO # # [2025-08-06 14:54:53,055] root INFO ################################################################################################################## [2025-08-06 14:54:53,056] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 14:54:53,056] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b84b33288') [2025-08-06 14:54:53,056] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 14:54:53,057] pyhamilton.interface INFO started the server thread [2025-08-06 14:54:53,057] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 14:55:07,064] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 14:55:08,565] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 14:55:08,565] pyhamilton.interface INFO disconnected from server [2025-08-06 14:55:08,666] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 14:55:08,667] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-06 14:55:08,673] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-06 14:55:08,676] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-06 14:55:08,677] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 14:55:08,678] pyhamilton.interface INFO server thread exited [2025-08-06 14:58:40,872] root INFO ################################################################################################################## [2025-08-06 14:58:40,873] root INFO # # [2025-08-06 14:58:40,873] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-08-06 14:58:40,873] root INFO # # [2025-08-06 14:58:40,873] root INFO ################################################################################################################## [2025-08-06 14:58:40,874] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 14:58:40,874] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b92199482') [2025-08-06 14:58:40,874] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 14:58:40,875] pyhamilton.interface INFO started the server thread [2025-08-06 14:58:40,875] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 14:58:42,877] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 14:58:44,378] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 14:58:44,379] pyhamilton.interface INFO disconnected from server [2025-08-06 14:58:44,480] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 14:58:44,481] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-06 14:58:44,486] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-06 14:58:44,487] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-06 14:58:44,488] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 14:58:44,488] pyhamilton.interface INFO server thread exited [2025-08-06 14:58:44,491] root ERROR Traceback (most recent call last): [2025-08-06 14:58:44,492] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 35, in device_id = hhs_create_usb_device(ham_int,1) [2025-08-06 14:58:44,492] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 31, in hhs_create_usb_device response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2']) [2025-08-06 14:58:44,493] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-06 14:58:44,493] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-06 14:58:44,493] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 396, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-08-06 14:58:44,493] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_CreateUSBDevice","step-return1":0,"step-return2":1,"step-return3":"","step-return4":"","id":"0x181b93bdda85"} ) [2025-08-06 15:01:17,014] root INFO ################################################################################################################## [2025-08-06 15:01:17,014] root INFO # # [2025-08-06 15:01:17,015] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-08-06 15:01:17,015] root INFO # # [2025-08-06 15:01:17,016] root INFO ################################################################################################################## [2025-08-06 15:01:17,018] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 15:01:17,019] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181b9b95e3b0') [2025-08-06 15:01:17,019] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 15:01:17,019] pyhamilton.interface INFO started the server thread [2025-08-06 15:01:17,020] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 15:01:19,023] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 15:01:20,524] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 15:01:20,524] pyhamilton.interface INFO disconnected from server [2025-08-06 15:01:20,625] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 15:01:20,626] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-06 15:01:20,629] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-06 15:01:20,631] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-06 15:01:20,632] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 15:01:20,632] pyhamilton.interface INFO server thread exited [2025-08-06 15:01:20,634] root ERROR Traceback (most recent call last): [2025-08-06 15:01:20,636] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 35, in device_id = hhs_create_usb_device(ham_int, 1) [2025-08-06 15:01:20,636] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 31, in hhs_create_usb_device response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2']) [2025-08-06 15:01:20,636] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-06 15:01:20,637] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-06 15:01:20,637] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 396, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-08-06 15:01:20,637] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_CreateUSBDevice","step-return1":0,"step-return2":1,"step-return3":"","step-return4":"","id":"0x181b9d0c7495"} ) [2025-08-06 15:05:18,686] root INFO ################################################################################################################## [2025-08-06 15:05:18,686] root INFO # # [2025-08-06 15:05:18,687] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-08-06 15:05:18,687] root INFO # # [2025-08-06 15:05:18,687] root INFO ################################################################################################################## [2025-08-06 15:05:18,688] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 15:05:18,688] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181ba9fda420') [2025-08-06 15:05:18,688] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 15:05:18,688] pyhamilton.interface INFO started the server thread [2025-08-06 15:05:18,689] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 15:05:20,691] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 15:05:22,192] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 15:05:22,193] pyhamilton.interface INFO disconnected from server [2025-08-06 15:05:22,293] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 15:05:22,294] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-06 15:05:22,298] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-06 15:05:22,300] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-06 15:05:22,300] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 15:05:22,300] pyhamilton.interface INFO server thread exited [2025-08-06 15:05:22,302] root ERROR Traceback (most recent call last): [2025-08-06 15:05:22,304] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 35, in device_id = hhs_create_usb_device(ham_int, 1) [2025-08-06 15:05:22,304] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 31, in hhs_create_usb_device response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2']) [2025-08-06 15:05:22,304] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-06 15:05:22,305] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-06 15:05:22,305] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 396, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-08-06 15:05:22,305] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_CreateUSBDevice","step-return1":0,"step-return2":1,"step-return3":"","step-return4":"","id":"0x181bab74025f"} ) [2025-08-06 15:07:27,741] root INFO ################################################################################################################## [2025-08-06 15:07:27,742] root INFO # # [2025-08-06 15:07:27,742] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-08-06 15:07:27,742] root INFO # # [2025-08-06 15:07:27,742] root INFO ################################################################################################################## [2025-08-06 15:07:27,744] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 15:07:27,744] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bb1627fc3') [2025-08-06 15:07:27,744] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 15:07:27,745] pyhamilton.interface INFO started the server thread [2025-08-06 15:07:27,745] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 15:07:29,747] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 15:07:31,248] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 15:07:31,248] pyhamilton.interface INFO disconnected from server [2025-08-06 15:07:31,348] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 15:07:31,349] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-06 15:07:31,351] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-06 15:07:31,353] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-06 15:07:31,354] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 15:07:31,354] pyhamilton.interface INFO server thread exited [2025-08-06 15:07:31,358] root ERROR Traceback (most recent call last): [2025-08-06 15:07:31,361] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 35, in device_id = hhs_create_usb_device(ham_int, 1) [2025-08-06 15:07:31,361] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 31, in hhs_create_usb_device response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2']) [2025-08-06 15:07:31,361] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-06 15:07:31,362] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-06 15:07:31,362] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 396, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-08-06 15:07:31,362] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_CreateUSBDevice","step-return1":0,"step-return2":1,"step-return3":"","step-return4":"","id":"0x181bb325414d"} ) [2025-08-06 15:08:38,621] root INFO ################################################################################################################## [2025-08-06 15:08:38,621] root INFO # # [2025-08-06 15:08:38,622] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-08-06 15:08:38,622] root INFO # # [2025-08-06 15:08:38,622] root INFO ################################################################################################################## [2025-08-06 15:08:38,623] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 15:08:38,623] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bb5e82607') [2025-08-06 15:08:38,623] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 15:08:38,623] pyhamilton.interface INFO started the server thread [2025-08-06 15:08:38,624] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 15:08:41,627] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 15:08:43,128] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 15:08:43,129] pyhamilton.interface INFO disconnected from server [2025-08-06 15:08:43,230] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 15:08:43,230] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-06 15:08:43,236] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-06 15:08:43,238] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-06 15:08:43,239] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 15:08:43,239] pyhamilton.interface INFO server thread exited [2025-08-06 15:08:43,245] root ERROR Traceback (most recent call last): [2025-08-06 15:08:43,248] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 35, in device_id = hhs_create_usb_device(ham_int, 1) [2025-08-06 15:08:43,248] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 31, in hhs_create_usb_device response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2']) [2025-08-06 15:08:43,249] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-06 15:08:43,249] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-06 15:08:43,250] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 396, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-08-06 15:08:43,250] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_CreateUSBDevice","step-return1":0,"step-return2":1,"step-return3":"","step-return4":"","id":"0x181bb76e0dd2"} ) [2025-08-06 15:09:56,161] root INFO ################################################################################################################## [2025-08-06 15:09:56,161] root INFO # # [2025-08-06 15:09:56,161] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-08-06 15:09:56,161] root INFO # # [2025-08-06 15:09:56,162] root INFO ################################################################################################################## [2025-08-06 15:09:56,162] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 15:09:56,163] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bba8770ad') [2025-08-06 15:09:56,163] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 15:09:56,163] pyhamilton.interface INFO started the server thread [2025-08-06 15:09:56,163] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 15:09:59,165] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 15:10:00,666] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 15:10:00,666] pyhamilton.interface INFO disconnected from server [2025-08-06 15:10:00,767] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 15:10:00,768] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-06 15:10:00,775] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-06 15:10:00,778] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-06 15:10:00,779] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 15:10:00,779] pyhamilton.interface INFO server thread exited [2025-08-06 15:10:00,782] root ERROR Traceback (most recent call last): [2025-08-06 15:10:00,784] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 35, in device_id = hhs_create_usb_device(ham_int, 1) [2025-08-06 15:10:00,785] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 31, in hhs_create_usb_device response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2']) [2025-08-06 15:10:00,785] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-06 15:10:00,786] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-06 15:10:00,786] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 396, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-08-06 15:10:00,787] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_CreateUSBDevice","step-return1":0,"step-return2":1,"step-return3":"","step-return4":"","id":"0x181bbbfdeeab"} ) [2025-08-06 15:12:38,215] root INFO ################################################################################################################## [2025-08-06 15:12:38,216] root INFO # # [2025-08-06 15:12:38,216] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-08-06 15:12:38,217] root INFO # # [2025-08-06 15:12:38,217] root INFO ################################################################################################################## [2025-08-06 15:12:38,219] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 15:12:38,220] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bc42fdfc1') [2025-08-06 15:12:38,221] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 15:12:38,221] pyhamilton.interface INFO started the server thread [2025-08-06 15:12:38,222] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 15:12:40,225] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 15:12:41,727] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 15:12:41,728] pyhamilton.interface INFO disconnected from server [2025-08-06 15:12:41,829] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 15:12:41,830] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-06 15:12:41,835] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-06 15:12:41,837] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-06 15:12:41,839] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 15:12:41,839] pyhamilton.interface INFO server thread exited [2025-08-06 15:12:41,842] root ERROR Traceback (most recent call last): [2025-08-06 15:12:41,846] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 35, in device_id = hhs_create_usb_device(ham_int, 1) [2025-08-06 15:12:41,846] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 31, in hhs_create_usb_device response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2']) [2025-08-06 15:12:41,847] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-06 15:12:41,847] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-06 15:12:41,847] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 396, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-08-06 15:12:41,848] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_CreateUSBDevice","step-return1":0,"step-return2":1,"step-return3":"","step-return4":"","id":"0x181bc5a6c5f0"} ) [2025-08-06 15:14:31,895] root INFO ################################################################################################################## [2025-08-06 15:14:31,895] root INFO # # [2025-08-06 15:14:31,895] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-08-06 15:14:31,896] root INFO # # [2025-08-06 15:14:31,896] root INFO ################################################################################################################## [2025-08-06 15:14:31,897] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 15:14:31,898] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bcb061f4f') [2025-08-06 15:14:31,898] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 15:14:31,899] pyhamilton.interface INFO started the server thread [2025-08-06 15:14:31,899] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 15:14:33,902] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 15:14:35,403] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 15:14:35,403] pyhamilton.interface INFO disconnected from server [2025-08-06 15:14:35,504] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 15:14:35,505] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-06 15:14:35,509] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-06 15:14:35,510] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-06 15:14:35,511] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 15:14:35,512] pyhamilton.interface INFO server thread exited [2025-08-06 15:14:35,513] root ERROR Traceback (most recent call last): [2025-08-06 15:14:35,515] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 35, in device_id = hhs_create_usb_device(ham_int, 1) [2025-08-06 15:14:35,515] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 31, in hhs_create_usb_device response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2']) [2025-08-06 15:14:35,516] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-06 15:14:35,516] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-06 15:14:35,517] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 396, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-08-06 15:14:35,517] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_CreateUSBDevice","step-return1":0,"step-return2":1,"step-return3":"","step-return4":"","id":"0x181bcc6d5577"} ) [2025-08-06 15:16:33,402] root INFO ################################################################################################################## [2025-08-06 15:16:33,403] root INFO # # [2025-08-06 15:16:33,403] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-08-06 15:16:33,403] root INFO # # [2025-08-06 15:16:33,403] root INFO ################################################################################################################## [2025-08-06 15:16:33,404] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 15:16:33,404] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bd2442240') [2025-08-06 15:16:33,405] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 15:16:33,405] pyhamilton.interface INFO started the server thread [2025-08-06 15:16:33,405] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 15:16:39,408] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 5 sec while waiting for response id 0x181bd3ab5fe6') [2025-08-06 15:16:39,408] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 15:16:40,909] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 15:16:40,909] pyhamilton.interface INFO disconnected from server [2025-08-06 15:16:41,010] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 15:16:41,010] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-06 15:16:41,017] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-06 15:16:41,019] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-06 15:16:41,020] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 15:16:41,020] pyhamilton.interface INFO server thread exited [2025-08-06 15:16:41,023] root ERROR Traceback (most recent call last): [2025-08-06 15:16:41,024] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py", line 35, in device_id = hhs_create_usb_device(ham_int, 1) [2025-08-06 15:16:41,025] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 31, in hhs_create_usb_device response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2']) [2025-08-06 15:16:41,025] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 729, in wait_on_response self.log_and_raise(HamiltonTimeoutError('Timed out after ' + str(timeout) + ' sec while waiting for response id ' + str(id))) ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-06 15:16:41,025] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 790, in log_and_raise raise err [2025-08-06 15:16:41,025] root ERROR pyhamilton.oemerr.HamiltonTimeoutError: Timed out after 5 sec while waiting for response id 0x181bd3ab5fe6 [2025-08-06 15:18:28,293] root INFO ################################################################################################################## [2025-08-06 15:18:28,294] root INFO # # [2025-08-06 15:18:28,294] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-08-06 15:18:28,294] root INFO # # [2025-08-06 15:18:28,295] root INFO ################################################################################################################## [2025-08-06 15:18:28,295] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 15:18:28,297] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181bd90df881') [2025-08-06 15:18:28,297] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 15:18:28,298] pyhamilton.interface INFO started the server thread [2025-08-06 15:18:28,298] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 15:18:43,305] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 15:18:44,811] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 15:18:44,811] pyhamilton.interface INFO disconnected from server [2025-08-06 15:18:44,912] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 15:18:44,912] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-06 15:18:44,916] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-06 15:18:44,919] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-06 15:18:44,920] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 15:18:44,920] pyhamilton.interface INFO server thread exited [2025-08-06 15:20:38,206] root INFO ################################################################################################################## [2025-08-06 15:20:38,207] root INFO # # [2025-08-06 15:20:38,207] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\hhs.py # [2025-08-06 15:20:38,208] root INFO # # [2025-08-06 15:20:38,208] root INFO ################################################################################################################## [2025-08-06 15:20:38,209] pyhamilton.interface INFO starting a Hamilton interface [2025-08-06 15:20:38,209] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x181be0cc5705') [2025-08-06 15:20:38,210] pyhamilton.interface INFO started the oem application for simulation [2025-08-06 15:20:38,210] pyhamilton.interface INFO started the server thread [2025-08-06 15:20:38,210] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-06 15:21:03,222] pyhamilton.interface INFO sending end run command to simulator [2025-08-06 15:21:04,723] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-06 15:21:04,724] pyhamilton.interface INFO disconnected from server [2025-08-06 15:21:04,825] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-06 15:21:04,825] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-06 15:21:04,830] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-06 15:21:04,833] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-06 15:21:04,834] pyhamilton.interface INFO dummy get request sent to server [2025-08-06 15:21:04,835] pyhamilton.interface INFO server thread exited [2025-08-11 13:42:51,396] root INFO ############################################################################################################################################ [2025-08-11 13:42:51,399] root INFO # # [2025-08-11 13:42:51,399] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 13:42:51,399] root INFO # # [2025-08-11 13:42:51,399] root INFO ############################################################################################################################################ [2025-08-11 13:42:51,400] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 13:42:51,401] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x187f11b190ef') [2025-08-11 13:42:51,401] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 13:42:51,401] pyhamilton.interface INFO started the server thread [2025-08-11 13:42:51,401] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 13:43:25,405] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 30 sec while waiting for response id 0x187f19f513de') [2025-08-11 13:43:25,406] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 13:43:26,907] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 13:43:26,908] pyhamilton.interface INFO disconnected from server [2025-08-11 13:43:27,008] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 13:43:27,009] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 13:43:27,015] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 13:43:27,017] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 13:43:27,017] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 13:43:27,017] pyhamilton.interface INFO server thread exited [2025-08-11 13:43:27,019] root ERROR Traceback (most recent call last): [2025-08-11 13:43:27,021] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py", line 76, in odtc_initialize(ham_int, device_id) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^ [2025-08-11 13:43:27,021] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\odtc_wrappers.py", line 38, in odtc_initialize response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field) [2025-08-11 13:43:27,021] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 729, in wait_on_response self.log_and_raise(HamiltonTimeoutError('Timed out after ' + str(timeout) + ' sec while waiting for response id ' + str(id))) ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 13:43:27,021] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 790, in log_and_raise raise err [2025-08-11 13:43:27,022] root ERROR pyhamilton.oemerr.HamiltonTimeoutError: Timed out after 30 sec while waiting for response id 0x187f19f513de [2025-08-11 13:44:28,339] root INFO ############################################################################################################################################ [2025-08-11 13:44:28,339] root INFO # # [2025-08-11 13:44:28,340] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 13:44:28,340] root INFO # # [2025-08-11 13:44:28,340] root INFO ############################################################################################################################################ [2025-08-11 13:44:28,340] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 13:44:28,341] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x187f1e1816d5') [2025-08-11 13:44:28,341] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 13:44:28,341] pyhamilton.interface INFO started the server thread [2025-08-11 13:44:28,341] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 13:45:15,368] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 13:45:16,869] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 13:45:16,869] pyhamilton.interface INFO disconnected from server [2025-08-11 13:45:16,971] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 13:45:16,971] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 13:45:16,976] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 13:45:16,978] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 13:45:16,979] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 13:45:16,979] pyhamilton.interface INFO server thread exited [2025-08-11 13:46:27,736] root INFO ############################################################################################################################################ [2025-08-11 13:46:27,737] root INFO # # [2025-08-11 13:46:27,737] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 13:46:27,737] root INFO # # [2025-08-11 13:46:27,737] root INFO ############################################################################################################################################ [2025-08-11 13:46:27,739] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 13:46:27,740] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x187f250799e3') [2025-08-11 13:46:27,740] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 13:46:27,740] pyhamilton.interface INFO started the server thread [2025-08-11 13:46:27,740] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 13:47:01,745] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 30 sec while waiting for response id 0x187f26da2968') [2025-08-11 13:47:01,746] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 13:47:03,247] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 13:47:03,248] pyhamilton.interface INFO disconnected from server [2025-08-11 13:47:03,349] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 13:47:03,351] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 13:47:03,360] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 13:47:03,363] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 13:47:03,365] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 13:47:03,366] pyhamilton.interface INFO server thread exited [2025-08-11 13:47:03,370] root ERROR Traceback (most recent call last): [2025-08-11 13:47:03,378] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py", line 77, in odtc_open_door(ham_int, device_id) ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^ [2025-08-11 13:47:03,380] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\odtc_wrappers.py", line 106, in odtc_open_door response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=return_field) [2025-08-11 13:47:03,382] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 729, in wait_on_response self.log_and_raise(HamiltonTimeoutError('Timed out after ' + str(timeout) + ' sec while waiting for response id ' + str(id))) ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 13:47:03,383] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 790, in log_and_raise raise err [2025-08-11 13:47:03,383] root ERROR pyhamilton.oemerr.HamiltonTimeoutError: Timed out after 30 sec while waiting for response id 0x187f26da2968 [2025-08-11 13:49:35,740] root INFO ############################################################################################################################################ [2025-08-11 13:49:35,741] root INFO # # [2025-08-11 13:49:35,742] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 13:49:35,742] root INFO # # [2025-08-11 13:49:35,743] root INFO ############################################################################################################################################ [2025-08-11 13:49:35,744] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 13:49:35,745] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x187f306a8336') [2025-08-11 13:49:35,746] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 13:49:35,746] pyhamilton.interface INFO started the server thread [2025-08-11 13:49:35,746] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 13:49:42,752] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 13:49:44,254] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 13:49:44,254] pyhamilton.interface INFO disconnected from server [2025-08-11 13:49:44,355] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 13:49:44,355] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 13:49:44,360] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 13:49:44,362] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 13:49:44,363] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 13:49:44,363] pyhamilton.interface INFO server thread exited [2025-08-11 14:54:49,038] root INFO ############################################################################################################################################ [2025-08-11 14:54:49,039] root INFO # # [2025-08-11 14:54:49,039] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 14:54:49,039] root INFO # # [2025-08-11 14:54:49,039] root INFO ############################################################################################################################################ [2025-08-11 14:54:49,039] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 14:54:49,040] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188019a8f3ae') [2025-08-11 14:54:49,040] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 14:54:49,040] pyhamilton.interface INFO started the server thread [2025-08-11 14:54:49,040] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 14:54:52,042] pyhamilton.interface INFO move_plate: Moving plate HSP_Pipette2 to HSP_ODTC [2025-08-11 14:55:36,079] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 14:55:37,580] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 14:55:37,580] pyhamilton.interface INFO disconnected from server [2025-08-11 14:55:37,681] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 14:55:37,681] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 14:55:37,685] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 14:55:37,687] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 14:55:37,687] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 14:55:37,688] pyhamilton.interface INFO server thread exited [2025-08-11 14:59:49,290] root INFO ############################################################################################################################################ [2025-08-11 14:59:49,290] root INFO # # [2025-08-11 14:59:49,290] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 14:59:49,290] root INFO # # [2025-08-11 14:59:49,290] root INFO ############################################################################################################################################ [2025-08-11 14:59:49,291] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 14:59:49,291] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18802b348991') [2025-08-11 14:59:49,292] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 14:59:49,292] pyhamilton.interface INFO started the server thread [2025-08-11 14:59:49,292] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 14:59:54,304] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 14:59:55,805] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 14:59:55,806] pyhamilton.interface INFO disconnected from server [2025-08-11 14:59:55,907] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 14:59:55,909] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 14:59:55,912] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 14:59:55,914] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 14:59:55,915] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 14:59:55,915] pyhamilton.interface INFO server thread exited [2025-08-11 14:59:55,917] root ERROR Traceback (most recent call last): [2025-08-11 14:59:55,917] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py", line 83, in transport_resource(ham_int, LidStack.fetch_next(), 'Ham_ComfortLid_ODTC', ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 14:59:55,918] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\transport\transport.py", line 245, in transport_resource raise TypeError("source & destination must be DeckResource instances for iSWAP moves.") [2025-08-11 14:59:55,918] root ERROR TypeError: source & destination must be DeckResource instances for iSWAP moves. [2025-08-11 15:07:33,832] root INFO ############################################################################################################################################ [2025-08-11 15:07:33,833] root INFO # # [2025-08-11 15:07:33,833] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 15:07:33,834] root INFO # # [2025-08-11 15:07:33,834] root INFO ############################################################################################################################################ [2025-08-11 15:07:33,836] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:07:33,837] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1880474fb20b') [2025-08-11 15:07:33,837] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:07:33,837] pyhamilton.interface INFO started the server thread [2025-08-11 15:07:33,838] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:07:36,851] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:07:38,351] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:07:38,352] pyhamilton.interface INFO disconnected from server [2025-08-11 15:07:38,453] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:07:38,454] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 15:07:38,458] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 15:07:38,460] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 15:07:38,461] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:07:38,461] pyhamilton.interface INFO server thread exited [2025-08-11 15:07:38,465] root ERROR Traceback (most recent call last): [2025-08-11 15:07:38,467] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py", line 83, in transport_resource(ham_int, LidStack.fetch_next(), 'Ham_ComfortLid_ODTC', ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:07:38,467] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\transport\transport.py", line 246, in transport_resource return ham_int.move_plate( ~~~~~~~~~~~~~~~~~~^ source, ^^^^^^^ ...<4 lines>... **more_opts, ^^^^^^^^^^^^ ) ^ [2025-08-11 15:07:38,468] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 1169, in move_plate self.log('move_plate: Moving plate ' + source_plate.layout_name() + ' to ' + target_plate.layout_name()) ^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:07:38,468] root ERROR AttributeError: 'str' object has no attribute 'layout_name' [2025-08-11 15:10:17,854] root INFO ############################################################################################################################################ [2025-08-11 15:10:17,854] root INFO # # [2025-08-11 15:10:17,854] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 15:10:17,854] root INFO # # [2025-08-11 15:10:17,854] root INFO ############################################################################################################################################ [2025-08-11 15:10:17,855] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:10:17,855] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188050d99c78') [2025-08-11 15:10:17,855] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:10:17,855] pyhamilton.interface INFO started the server thread [2025-08-11 15:10:17,855] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:10:20,869] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_ParkPos_0004 to Ham_ComfortLid_ODTC [2025-08-11 15:10:20,869] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:10:22,370] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:10:22,371] pyhamilton.interface INFO disconnected from server [2025-08-11 15:10:22,471] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:10:22,472] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 15:10:22,477] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 15:10:22,479] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 15:10:22,480] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:10:22,480] pyhamilton.interface INFO server thread exited [2025-08-11 15:10:22,482] root ERROR Traceback (most recent call last): [2025-08-11 15:10:22,483] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py", line 83, in transport_resource(ham_int, LidStack.fetch_next(), 'Ham_ComfortLid_ODTC', ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:10:22,484] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\transport\transport.py", line 258, in transport_resource return ham_int.move_by_seq(source, ~~~~~~~~~~~~~~~~~~~^^^^^^^^ destination, ^^^^^^^^^^^^ ...<3 lines>... **more_opts, ^^^^^^^^^^^^ ) ^ [2025-08-11 15:10:22,484] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 1260, in move_by_seq cid = self.send_command(ISWAP_GET, plateSequence=source_plate_seq, inverseGrip=inv, ...<4 lines>... labwareOrientation=placeOrientation, **more_options) [2025-08-11 15:10:22,484] root ERROR TypeError: pyhamilton.interface.HamiltonInterface.send_command() got multiple values for keyword argument 'transportMode' [2025-08-11 15:12:26,555] root INFO ############################################################################################################################################ [2025-08-11 15:12:26,556] root INFO # # [2025-08-11 15:12:26,556] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 15:12:26,556] root INFO # # [2025-08-11 15:12:26,557] root INFO ############################################################################################################################################ [2025-08-11 15:12:26,558] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:12:26,559] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188058a3e9ee') [2025-08-11 15:12:26,559] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:12:26,560] pyhamilton.interface INFO started the server thread [2025-08-11 15:12:26,560] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:12:34,579] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_ParkPos_0004 to Ham_ComfortLid_ODTC [2025-08-11 15:12:34,579] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:12:36,080] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:12:36,080] pyhamilton.interface INFO disconnected from server [2025-08-11 15:12:36,181] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:12:36,181] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 15:12:36,185] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 15:12:36,186] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 15:12:36,187] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:12:36,187] pyhamilton.interface INFO server thread exited [2025-08-11 15:12:36,191] root ERROR Traceback (most recent call last): [2025-08-11 15:12:36,193] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py", line 83, in transport_resource(ham_int, LidStack.fetch_next(), 'Ham_ComfortLid_ODTC', ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:12:36,193] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\transport\transport.py", line 260, in transport_resource return ham_int.move_by_seq(source, ~~~~~~~~~~~~~~~~~~~^^^^^^^^ destination, ^^^^^^^^^^^^ ...<3 lines>... **more_opts, ^^^^^^^^^^^^ ) ^ [2025-08-11 15:12:36,194] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 1260, in move_by_seq cid = self.send_command(ISWAP_GET, plateSequence=source_plate_seq, inverseGrip=inv, ...<4 lines>... labwareOrientation=placeOrientation, **more_options) [2025-08-11 15:12:36,194] root ERROR TypeError: pyhamilton.interface.HamiltonInterface.send_command() got multiple values for keyword argument 'transportMode' [2025-08-11 15:13:44,137] root INFO ############################################################################################################################################ [2025-08-11 15:13:44,137] root INFO # # [2025-08-11 15:13:44,137] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 15:13:44,137] root INFO # # [2025-08-11 15:13:44,137] root INFO ############################################################################################################################################ [2025-08-11 15:13:44,138] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:13:44,139] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18805d52e2d5') [2025-08-11 15:13:44,139] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:13:44,139] pyhamilton.interface INFO started the server thread [2025-08-11 15:13:44,139] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:13:47,155] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_ParkPos_0004 to Ham_ComfortLid_ODTC [2025-08-11 15:13:50,157] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:13:51,658] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:13:51,658] pyhamilton.interface INFO disconnected from server [2025-08-11 15:13:51,759] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:13:51,759] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 15:13:51,762] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 15:13:51,764] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 15:13:51,764] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:13:51,764] pyhamilton.interface INFO server thread exited [2025-08-11 15:13:51,767] root ERROR Traceback (most recent call last): [2025-08-11 15:13:51,769] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py", line 83, in transport_resource(ham_int, LidStack.fetch_next(), 'Ham_ComfortLid_ODTC', ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:13:51,770] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\transport\transport.py", line 260, in transport_resource return ham_int.move_by_seq(source, ~~~~~~~~~~~~~~~~~~~^^^^^^^^ destination, ^^^^^^^^^^^^ ...<3 lines>... **more_opts, ^^^^^^^^^^^^ ) ^ [2025-08-11 15:13:51,770] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 1268, in move_by_seq self.wait_on_response(cid, raise_first_exception=True, timeout=120) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:13:51,770] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:13:51,770] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-11 15:13:51,771] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 396, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-08-11 15:13:51,771] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"STAR-return","step-name":"iSwapGet","step-return1":"2","step-return2":"","step-return3":"","step-return4":"","id":"0x18805ee83127"} ) [2025-08-11 15:15:43,579] root INFO ############################################################################################################################################ [2025-08-11 15:15:43,580] root INFO # # [2025-08-11 15:15:43,580] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 15:15:43,580] root INFO # # [2025-08-11 15:15:43,580] root INFO ############################################################################################################################################ [2025-08-11 15:15:43,581] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:15:43,582] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1880647189fd') [2025-08-11 15:15:43,582] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:15:43,582] pyhamilton.interface INFO started the server thread [2025-08-11 15:15:43,582] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:15:48,603] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 15:15:50,604] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:15:52,105] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:15:52,106] pyhamilton.interface INFO disconnected from server [2025-08-11 15:15:52,206] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:15:52,207] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 15:15:52,216] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 15:15:52,219] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 15:15:52,219] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:15:52,220] pyhamilton.interface INFO server thread exited [2025-08-11 15:15:52,226] root ERROR Traceback (most recent call last): [2025-08-11 15:15:52,230] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py", line 86, in transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC', ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:15:52,230] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\transport\transport.py", line 260, in transport_resource return ham_int.move_by_seq(source, ~~~~~~~~~~~~~~~~~~~^^^^^^^^ destination, ^^^^^^^^^^^^ ...<3 lines>... **more_opts, ^^^^^^^^^^^^ ) ^ [2025-08-11 15:15:52,231] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 1268, in move_by_seq self.wait_on_response(cid, raise_first_exception=True, timeout=120) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:15:52,231] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:15:52,232] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-11 15:15:52,232] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 396, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-08-11 15:15:52,233] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"STAR-return","step-name":"iSwapGet","step-return1":"2","step-return2":"","step-return3":"","step-return4":"","id":"0x18806625577f"} ) [2025-08-11 15:18:14,252] root INFO ############################################################################################################################################ [2025-08-11 15:18:14,253] root INFO # # [2025-08-11 15:18:14,253] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 15:18:14,253] root INFO # # [2025-08-11 15:18:14,253] root INFO ############################################################################################################################################ [2025-08-11 15:18:14,255] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:18:14,256] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18806d4e2351') [2025-08-11 15:18:14,257] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:18:14,257] pyhamilton.interface INFO started the server thread [2025-08-11 15:18:14,257] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:18:17,271] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 15:18:18,272] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:18:19,773] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:18:19,774] pyhamilton.interface INFO disconnected from server [2025-08-11 15:18:19,874] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:18:19,875] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 15:18:19,880] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 15:18:19,882] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 15:18:19,883] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:18:19,884] pyhamilton.interface INFO server thread exited [2025-08-11 15:18:19,888] root ERROR Traceback (most recent call last): [2025-08-11 15:18:19,892] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py", line 86, in transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC', ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:18:19,892] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\transport\transport.py", line 260, in transport_resource return ham_int.move_by_seq(source, ~~~~~~~~~~~~~~~~~~~^^^^^^^^ destination, ^^^^^^^^^^^^ ...<3 lines>... **more_opts, ^^^^^^^^^^^^ ) ^ [2025-08-11 15:18:19,893] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 1268, in move_by_seq self.wait_on_response(cid, raise_first_exception=True, timeout=120) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:18:19,894] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:18:19,895] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-11 15:18:19,895] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 396, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-08-11 15:18:19,896] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"STAR-return","step-name":"iSwapGet","step-return1":"2","step-return2":"","step-return3":"","step-return4":"","id":"0x18806f01d41a"} ) [2025-08-11 15:20:26,994] root INFO ############################################################################################################################################ [2025-08-11 15:20:26,994] root INFO # # [2025-08-11 15:20:26,995] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 15:20:26,995] root INFO # # [2025-08-11 15:20:26,995] root INFO ############################################################################################################################################ [2025-08-11 15:20:26,997] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:20:26,998] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18807537850f') [2025-08-11 15:20:26,999] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:20:26,999] pyhamilton.interface INFO started the server thread [2025-08-11 15:20:26,999] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:20:31,004] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004_lid to Ham_ComfortLid_ODTC_lid [2025-08-11 15:20:33,006] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:20:34,507] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:20:34,507] pyhamilton.interface INFO disconnected from server [2025-08-11 15:20:34,608] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:20:34,609] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 15:20:34,615] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 15:20:34,618] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 15:20:34,619] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:20:34,620] pyhamilton.interface INFO server thread exited [2025-08-11 15:20:34,626] root ERROR Traceback (most recent call last): [2025-08-11 15:20:34,630] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py", line 87, in transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC_lid', ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:20:34,631] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\transport\transport.py", line 260, in transport_resource return ham_int.move_by_seq(source, ~~~~~~~~~~~~~~~~~~~^^^^^^^^ destination, ^^^^^^^^^^^^ ...<3 lines>... **more_opts, ^^^^^^^^^^^^ ) ^ [2025-08-11 15:20:34,632] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 1268, in move_by_seq self.wait_on_response(cid, raise_first_exception=True, timeout=120) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:20:34,633] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:20:34,635] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-11 15:20:34,635] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 396, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-08-11 15:20:34,636] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"STAR-return","step-name":"iSwapGet","step-return1":"2","step-return2":"","step-return3":"","step-return4":"","id":"0x188076fa6ef3"} ) [2025-08-11 15:29:00,031] root INFO ############################################################################################################################################ [2025-08-11 15:29:00,031] root INFO # # [2025-08-11 15:29:00,032] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 15:29:00,032] root INFO # # [2025-08-11 15:29:00,032] root INFO ############################################################################################################################################ [2025-08-11 15:29:00,035] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:29:00,035] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188093bc932b') [2025-08-11 15:29:00,035] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:29:00,036] pyhamilton.interface INFO started the server thread [2025-08-11 15:29:00,036] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:29:04,040] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 15:29:04,040] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:29:05,541] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:29:05,542] pyhamilton.interface INFO disconnected from server [2025-08-11 15:29:05,643] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:29:05,644] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 15:29:05,649] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 15:29:05,651] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 15:29:05,651] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:29:05,651] pyhamilton.interface INFO server thread exited [2025-08-11 15:29:05,654] root ERROR Traceback (most recent call last): [2025-08-11 15:29:05,657] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py", line 87, in transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC', ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:29:05,657] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\transport\transport.py", line 260, in transport_resource return ham_int.move_by_seq(source, ~~~~~~~~~~~~~~~~~~~^^^^^^^^ destination, ^^^^^^^^^^^^ ...<3 lines>... **more_opts, ^^^^^^^^^^^^ ) ^ [2025-08-11 15:29:05,657] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 1273, in move_by_seq lidSequence = sourceLidSequence ~~~~~~~~~~~~~~~~~ **more_options) ^^~~~~~~~~~~~~ [2025-08-11 15:29:05,658] root ERROR TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'dict' [2025-08-11 15:30:47,346] root INFO ############################################################################################################################################ [2025-08-11 15:30:47,347] root INFO # # [2025-08-11 15:30:47,348] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 15:30:47,348] root INFO # # [2025-08-11 15:30:47,348] root INFO ############################################################################################################################################ [2025-08-11 15:30:47,349] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:30:47,350] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188099e4e911') [2025-08-11 15:30:47,350] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:30:47,351] pyhamilton.interface INFO started the server thread [2025-08-11 15:30:47,351] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:30:51,355] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 15:30:51,356] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:30:52,859] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:30:52,860] pyhamilton.interface INFO disconnected from server [2025-08-11 15:30:52,961] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:30:52,962] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 15:30:52,969] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 15:30:52,972] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 15:30:52,973] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:30:52,974] pyhamilton.interface INFO server thread exited [2025-08-11 15:30:52,979] root ERROR Traceback (most recent call last): [2025-08-11 15:30:52,984] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py", line 87, in transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC', ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:30:52,985] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\transport\transport.py", line 260, in transport_resource return ham_int.move_by_seq(source, ~~~~~~~~~~~~~~~~~~~^^^^^^^^ destination, ^^^^^^^^^^^^ ...<3 lines>... **more_opts, ^^^^^^^^^^^^ ) ^ [2025-08-11 15:30:52,985] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 1275, in move_by_seq lidSequence = sourceLidSequence ~~~~~~~~~~~~~~~~~ **more_options) ^^~~~~~~~~~~~~ [2025-08-11 15:30:52,986] root ERROR TypeError: unsupported operand type(s) for ** or pow(): 'str' and 'dict' [2025-08-11 15:32:19,740] root INFO ############################################################################################################################################ [2025-08-11 15:32:19,741] root INFO # # [2025-08-11 15:32:19,741] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 15:32:19,741] root INFO # # [2025-08-11 15:32:19,741] root INFO ############################################################################################################################################ [2025-08-11 15:32:19,742] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:32:19,743] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18809fc26e20') [2025-08-11 15:32:19,743] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:32:19,744] pyhamilton.interface INFO started the server thread [2025-08-11 15:32:19,744] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:32:22,747] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 15:32:45,768] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:32:47,268] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:32:47,269] pyhamilton.interface INFO disconnected from server [2025-08-11 15:32:47,370] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:32:47,371] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 15:32:47,375] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 15:32:47,377] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 15:32:47,378] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:32:47,378] pyhamilton.interface INFO server thread exited [2025-08-11 15:32:47,380] root ERROR Traceback (most recent call last): [2025-08-11 15:32:47,382] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py", line 87, in transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC', ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:32:47,382] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\transport\transport.py", line 260, in transport_resource return ham_int.move_by_seq(source, ~~~~~~~~~~~~~~~~~~~^^^^^^^^ destination, ^^^^^^^^^^^^ ...<3 lines>... **more_opts, ^^^^^^^^^^^^ ) ^ [2025-08-11 15:32:47,383] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 1286, in move_by_seq plateSequence=target_plate_seq, ^^^^^^^^^^^^^^^^ [2025-08-11 15:32:47,383] root ERROR NameError: name 'target_plate_seq' is not defined [2025-08-11 15:37:43,136] root INFO ############################################################################################################################################ [2025-08-11 15:37:43,137] root INFO # # [2025-08-11 15:37:43,137] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 15:37:43,137] root INFO # # [2025-08-11 15:37:43,137] root INFO ############################################################################################################################################ [2025-08-11 15:37:43,138] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:37:43,138] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1880b2db3647') [2025-08-11 15:37:43,139] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:37:43,139] pyhamilton.interface INFO started the server thread [2025-08-11 15:37:43,139] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:37:47,143] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 15:38:11,162] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:38:12,664] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:38:12,664] pyhamilton.interface INFO disconnected from server [2025-08-11 15:38:12,765] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 15:38:12,767] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 15:38:12,773] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 15:38:12,775] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 15:38:12,776] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 15:38:12,776] pyhamilton.interface INFO server thread exited [2025-08-11 15:38:12,780] root ERROR Traceback (most recent call last): [2025-08-11 15:38:12,782] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py", line 87, in transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC', ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:38:12,783] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\transport\transport.py", line 260, in transport_resource return ham_int.move_by_seq(source, ~~~~~~~~~~~~~~~~~~~^^^^^^^^ destination, ^^^^^^^^^^^^ ...<3 lines>... **more_opts, ^^^^^^^^^^^^ ) ^ [2025-08-11 15:38:12,784] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 1300, in move_by_seq self.wait_on_response(cid, raise_first_exception=True, timeout=120) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:38:12,784] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 15:38:12,785] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-11 15:38:12,785] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 396, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-08-11 15:38:12,785] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"STAR-return","step-name":"iSwapPlace","step-return1":"2","step-return2":"","step-return3":"","step-return4":"","id":"0x1880b61be548"} ) [2025-08-11 15:40:38,708] root INFO ############################################################################################################################################ [2025-08-11 15:40:38,708] root INFO # # [2025-08-11 15:40:38,708] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 15:40:38,709] root INFO # # [2025-08-11 15:40:38,709] root INFO ############################################################################################################################################ [2025-08-11 15:40:38,709] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:40:38,710] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1880bcc8e6ee') [2025-08-11 15:40:38,710] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:40:38,711] pyhamilton.interface INFO started the server thread [2025-08-11 15:40:38,711] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 15:40:42,716] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 15:41:20,735] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 15:41:22,236] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 15:41:22,237] pyhamilton.interface INFO disconnected from server [2025-08-11 15:41:22,338] pyhamilton.interface INFO server thread exited [2025-08-11 15:59:59,031] root INFO ############################################################################################################################################ [2025-08-11 15:59:59,033] root INFO # # [2025-08-11 15:59:59,034] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 15:59:59,034] root INFO # # [2025-08-11 15:59:59,034] root INFO ############################################################################################################################################ [2025-08-11 15:59:59,035] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 15:59:59,035] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188102b7fd05') [2025-08-11 15:59:59,035] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 15:59:59,036] pyhamilton.interface INFO started the server thread [2025-08-11 15:59:59,036] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 16:00:03,038] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 16:00:46,066] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 16:00:47,567] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 16:00:47,568] pyhamilton.interface INFO disconnected from server [2025-08-11 16:00:47,668] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 16:00:47,669] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 16:00:47,675] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 16:00:47,676] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 16:00:47,677] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 16:00:47,677] pyhamilton.interface INFO server thread exited [2025-08-11 17:40:05,520] root INFO ############################################################################################################################################ [2025-08-11 17:40:05,522] root INFO # # [2025-08-11 17:40:05,522] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 17:40:05,523] root INFO # # [2025-08-11 17:40:05,523] root INFO ############################################################################################################################################ [2025-08-11 17:40:05,524] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 17:40:05,526] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1882685d426d') [2025-08-11 17:40:05,526] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 17:40:05,526] pyhamilton.interface INFO started the server thread [2025-08-11 17:40:05,527] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 17:40:08,530] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 17:40:08,530] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 17:40:10,031] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 17:40:10,032] pyhamilton.interface INFO disconnected from server [2025-08-11 17:40:10,133] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 17:40:10,133] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 17:40:10,141] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 17:40:10,144] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 17:40:10,145] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 17:40:10,146] pyhamilton.interface INFO server thread exited [2025-08-11 17:40:10,150] root ERROR Traceback (most recent call last): [2025-08-11 17:40:10,151] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py", line 87, in transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC', ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 17:40:10,152] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\transport\transport.py", line 260, in transport_resource return ham_int.move_by_seq(source, ~~~~~~~~~~~~~~~~~~~^^^^^^^^ destination, ^^^^^^^^^^^^ ...<3 lines>... **more_opts, ^^^^^^^^^^^^ ) ^ [2025-08-11 17:40:10,152] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 1260, in move_by_seq cid = self.send_command(ISWAP_GET, plateSequence=source_plate_seq, inverseGrip=inv, ...<4 lines>... transportMode=0, **more_options) [2025-08-11 17:40:10,153] root ERROR TypeError: pyhamilton.interface.HamiltonInterface.send_command() got multiple values for keyword argument 'transportMode' [2025-08-11 17:42:49,473] root INFO ############################################################################################################################################ [2025-08-11 17:42:49,473] root INFO # # [2025-08-11 17:42:49,474] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 17:42:49,474] root INFO # # [2025-08-11 17:42:49,474] root INFO ############################################################################################################################################ [2025-08-11 17:42:49,475] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 17:42:49,476] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18826d0522e3') [2025-08-11 17:42:49,476] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 17:42:49,476] pyhamilton.interface INFO started the server thread [2025-08-11 17:42:49,476] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 17:42:56,482] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 17:42:56,482] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 17:42:57,983] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 17:42:57,984] pyhamilton.interface INFO disconnected from server [2025-08-11 17:42:58,085] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 17:42:58,086] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 17:42:58,090] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 17:42:58,092] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 17:42:58,093] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 17:42:58,093] pyhamilton.interface INFO server thread exited [2025-08-11 17:42:58,096] root ERROR Traceback (most recent call last): [2025-08-11 17:42:58,098] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py", line 87, in transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC', ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 17:42:58,099] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\transport\transport.py", line 260, in transport_resource return ham_int.move_by_seq(source, ~~~~~~~~~~~~~~~~~~~^^^^^^^^ destination, ^^^^^^^^^^^^ ...<3 lines>... **more_opts, ^^^^^^^^^^^^ ) ^ [2025-08-11 17:42:58,100] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 1260, in move_by_seq cid = self.send_command(ISWAP_GET, plateSequence=source_plate_seq, inverseGrip=inv, ...<3 lines>... labwareOrientation=placeOrientation, **more_options) [2025-08-11 17:42:58,100] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 680, in send_command send_cmd_dict = template.assemble_cmd(**cmd_dict) [2025-08-11 17:42:58,101] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 66, in assemble_cmd self.assert_valid_cmd(assembled_cmd) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ [2025-08-11 17:42:58,101] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 114, in assert_valid_cmd raise ValueError('\n'.join(prints)) [2025-08-11 17:42:58,102] root ERROR ValueError: Assert valid command "iSwapGet" failed: template parameter keys (left) do not match given keys (right) collisionControl collisionControl command command gripForce gripForce gripHeight gripHeight gripMode gripMode gripWidth gripWidth id id inverseGrip inverseGrip labwareOrientation labwareOrientation lidLabwarePositions (?) lid lidSequence lidLabwarePositions liftUpHeight lidSequence movementType liftUpHeight plateLabwarePositions movementType plateSequence plateLabwarePositions retractDistance plateSequence sequenceCounting retractDistance tolerance sequenceCounting toolSequence tolerance transportMode toolSequence widthBefore transportMode widthBefore [2025-08-11 17:46:19,479] root INFO ############################################################################################################################################ [2025-08-11 17:46:19,480] root INFO # # [2025-08-11 17:46:19,480] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 17:46:19,480] root INFO # # [2025-08-11 17:46:19,481] root INFO ############################################################################################################################################ [2025-08-11 17:46:19,482] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 17:46:19,483] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18827f066abf') [2025-08-11 17:46:19,484] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 17:46:19,484] pyhamilton.interface INFO started the server thread [2025-08-11 17:46:19,485] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 17:46:24,491] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 17:46:25,492] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 17:46:26,993] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 17:46:26,994] pyhamilton.interface INFO disconnected from server [2025-08-11 17:46:27,095] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 17:46:27,096] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 17:46:27,099] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 17:46:27,102] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 17:46:27,103] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 17:46:27,103] pyhamilton.interface INFO server thread exited [2025-08-11 17:46:27,107] root ERROR Traceback (most recent call last): [2025-08-11 17:46:27,110] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py", line 87, in transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC', ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 17:46:27,111] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\transport\transport.py", line 258, in transport_resource return ham_int.move_by_seq(source, ~~~~~~~~~~~~~~~~~~~^^^^^^^^ destination, ^^^^^^^^^^^^ ...<3 lines>... **more_opts, ^^^^^^^^^^^^ ) ^ [2025-08-11 17:46:27,111] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 1268, in move_by_seq self.wait_on_response(cid, raise_first_exception=True, timeout=120) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 17:46:27,112] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 17:46:27,113] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-11 17:46:27,114] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 396, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-08-11 17:46:27,115] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"STAR-return","step-name":"iSwapGet","step-return1":"2","step-return2":"","step-return3":"","step-return4":"","id":"0x188280ba0fd9"} ) [2025-08-11 17:48:42,518] root INFO ############################################################################################################################################ [2025-08-11 17:48:42,518] root INFO # # [2025-08-11 17:48:42,519] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 17:48:42,519] root INFO # # [2025-08-11 17:48:42,519] root INFO ############################################################################################################################################ [2025-08-11 17:48:42,519] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 17:48:42,520] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188287aba257') [2025-08-11 17:48:42,520] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 17:48:42,520] pyhamilton.interface INFO started the server thread [2025-08-11 17:48:42,520] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 17:48:46,523] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 17:48:47,524] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 17:48:49,025] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 17:48:49,025] pyhamilton.interface INFO disconnected from server [2025-08-11 17:48:49,126] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 17:48:49,126] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 17:48:49,130] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 17:48:49,133] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 17:48:49,133] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 17:48:49,134] pyhamilton.interface INFO server thread exited [2025-08-11 17:48:49,137] root ERROR Traceback (most recent call last): [2025-08-11 17:48:49,139] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py", line 87, in transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC', ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 17:48:49,140] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\transport\transport.py", line 258, in transport_resource return ham_int.move_by_seq(source, ~~~~~~~~~~~~~~~~~~~^^^^^^^^ destination, ^^^^^^^^^^^^ ...<3 lines>... **more_opts, ^^^^^^^^^^^^ ) ^ [2025-08-11 17:48:49,140] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 1268, in move_by_seq self.wait_on_response(cid, raise_first_exception=True, timeout=120) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 17:48:49,140] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 17:48:49,141] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-11 17:48:49,141] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 396, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-08-11 17:48:49,141] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"STAR-return","step-name":"iSwapGet","step-return1":"2","step-return2":"","step-return3":"","step-return4":"","id":"0x188289314b39"} ) [2025-08-11 17:51:12,132] root INFO ############################################################################################################################################ [2025-08-11 17:51:12,133] root INFO # # [2025-08-11 17:51:12,133] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 17:51:12,133] root INFO # # [2025-08-11 17:51:12,133] root INFO ############################################################################################################################################ [2025-08-11 17:51:12,134] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 17:51:12,135] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x188290782088') [2025-08-11 17:51:12,135] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 17:51:12,136] pyhamilton.interface INFO started the server thread [2025-08-11 17:51:12,136] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 17:51:15,139] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 17:51:56,162] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 17:51:57,663] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 17:51:57,664] pyhamilton.interface INFO disconnected from server [2025-08-11 17:51:57,764] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 17:51:57,765] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 17:51:57,768] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 17:51:57,770] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 17:51:57,771] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 17:51:57,772] pyhamilton.interface INFO server thread exited [2025-08-11 17:55:19,068] root INFO ############################################################################################################################################ [2025-08-11 17:55:19,069] root INFO # # [2025-08-11 17:55:19,069] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 17:55:19,069] root INFO # # [2025-08-11 17:55:19,069] root INFO ############################################################################################################################################ [2025-08-11 17:55:19,070] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 17:55:19,071] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x18829ee3b74b') [2025-08-11 17:55:19,072] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 17:55:19,072] pyhamilton.interface INFO started the server thread [2025-08-11 17:55:19,072] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 17:55:23,076] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 17:56:03,098] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 17:56:04,600] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 17:56:04,600] pyhamilton.interface INFO disconnected from server [2025-08-11 17:56:04,701] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 17:56:04,702] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 17:56:04,708] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 17:56:04,713] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 17:56:04,715] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 17:56:04,716] pyhamilton.interface INFO server thread exited [2025-08-11 17:57:14,353] root INFO ############################################################################################################################################ [2025-08-11 17:57:14,354] root INFO # # [2025-08-11 17:57:14,355] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 17:57:14,355] root INFO # # [2025-08-11 17:57:14,355] root INFO ############################################################################################################################################ [2025-08-11 17:57:14,356] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 17:57:14,357] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1882a5b36a1a') [2025-08-11 17:57:14,358] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 17:57:14,358] pyhamilton.interface INFO started the server thread [2025-08-11 17:57:14,358] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 17:57:17,363] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 17:57:57,384] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 17:57:58,886] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 17:57:58,886] pyhamilton.interface INFO disconnected from server [2025-08-11 17:57:58,987] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 17:57:58,988] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 17:57:58,991] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 17:57:58,992] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 17:57:58,992] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 17:57:58,993] pyhamilton.interface INFO server thread exited [2025-08-11 17:59:01,978] root INFO ############################################################################################################################################ [2025-08-11 17:59:01,979] root INFO # # [2025-08-11 17:59:01,980] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 17:59:01,980] root INFO # # [2025-08-11 17:59:01,980] root INFO ############################################################################################################################################ [2025-08-11 17:59:01,982] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 17:59:01,982] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1882abe0b70c') [2025-08-11 17:59:01,983] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 17:59:01,983] pyhamilton.interface INFO started the server thread [2025-08-11 17:59:01,984] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 17:59:05,988] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 17:59:46,012] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 17:59:47,513] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 17:59:47,514] pyhamilton.interface INFO disconnected from server [2025-08-11 17:59:47,614] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 17:59:47,615] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 17:59:47,620] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 17:59:47,622] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 17:59:47,623] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 17:59:47,624] pyhamilton.interface INFO server thread exited [2025-08-11 18:00:56,434] root INFO ############################################################################################################################################ [2025-08-11 18:00:56,435] root INFO # # [2025-08-11 18:00:56,435] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 18:00:56,436] root INFO # # [2025-08-11 18:00:56,436] root INFO ############################################################################################################################################ [2025-08-11 18:00:56,437] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 18:00:56,438] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1882b2e0fe5f') [2025-08-11 18:00:56,438] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 18:00:56,438] pyhamilton.interface INFO started the server thread [2025-08-11 18:00:56,439] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 18:00:59,442] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0004 to Ham_ComfortLid_ODTC [2025-08-11 18:01:12,451] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 18:01:13,952] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 18:01:13,952] pyhamilton.interface INFO disconnected from server [2025-08-11 18:01:14,053] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 18:01:14,054] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 18:01:14,057] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 18:01:14,060] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 18:01:14,061] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 18:01:14,061] pyhamilton.interface INFO server thread exited [2025-08-11 18:01:14,065] root ERROR Traceback (most recent call last): [2025-08-11 18:01:14,068] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py", line 87, in transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC', ~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 18:01:14,068] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\transport\transport.py", line 258, in transport_resource return ham_int.move_by_seq(source, ~~~~~~~~~~~~~~~~~~~^^^^^^^^ destination, ^^^^^^^^^^^^ ...<3 lines>... **more_opts, ^^^^^^^^^^^^ ) ^ [2025-08-11 18:01:14,068] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 1268, in move_by_seq self.wait_on_response(cid, raise_first_exception=True, timeout=120) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 18:01:14,068] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-11 18:01:14,069] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-11 18:01:14,069] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 414, in raise_first_exception raise HAMILTON_ERROR_MAP[firstErrorCode]() [2025-08-11 18:01:14,070] root ERROR pyhamilton.oemerr.LabwareError [2025-08-11 18:02:45,885] root INFO ############################################################################################################################################ [2025-08-11 18:02:45,886] root INFO # # [2025-08-11 18:02:45,887] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\thermal_cycler_with_transport.py # [2025-08-11 18:02:45,887] root INFO # # [2025-08-11 18:02:45,887] root INFO ############################################################################################################################################ [2025-08-11 18:02:45,889] pyhamilton.interface INFO starting a Hamilton interface [2025-08-11 18:02:45,890] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1882b994def7') [2025-08-11 18:02:45,890] pyhamilton.interface INFO started the oem application for simulation [2025-08-11 18:02:45,890] pyhamilton.interface INFO started the server thread [2025-08-11 18:02:45,890] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-11 18:02:48,909] pyhamilton.interface INFO move_by_seq: Moving plate Ham_ComfortLid_Stack_0003 to Ham_ComfortLid_ODTC [2025-08-11 18:03:31,930] pyhamilton.interface INFO sending end run command to simulator [2025-08-11 18:03:33,431] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-11 18:03:33,432] pyhamilton.interface INFO disconnected from server [2025-08-11 18:03:33,533] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-11 18:03:33,533] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-11 18:03:33,537] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-11 18:03:33,539] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-11 18:03:33,540] pyhamilton.interface INFO dummy get request sent to server [2025-08-11 18:03:33,540] pyhamilton.interface INFO server thread exited [2025-08-12 11:51:28,460] root INFO #################################################################################################################################### [2025-08-12 11:51:28,463] root INFO # # [2025-08-12 11:51:28,463] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\magnetic_bead_cleanup.py # [2025-08-12 11:51:28,463] root INFO # # [2025-08-12 11:51:28,464] root INFO #################################################################################################################################### [2025-08-12 11:51:28,465] pyhamilton.interface INFO starting a Hamilton interface [2025-08-12 11:51:28,467] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1891a1b9f449') [2025-08-12 11:51:28,467] pyhamilton.interface INFO started the oem application for simulation [2025-08-12 11:51:28,467] pyhamilton.interface INFO started the server thread [2025-08-12 11:51:28,468] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-12 11:51:33,472] pyhamilton.interface INFO sending end run command to simulator [2025-08-12 11:51:34,973] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-12 11:51:34,973] pyhamilton.interface INFO disconnected from server [2025-08-12 11:51:35,074] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-12 11:51:35,075] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-12 11:51:35,082] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-12 11:51:35,085] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-12 11:51:35,086] pyhamilton.interface INFO dummy get request sent to server [2025-08-12 11:51:35,086] pyhamilton.interface INFO server thread exited [2025-08-12 11:51:35,090] root ERROR Traceback (most recent call last): [2025-08-12 11:51:35,093] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\magnetic_bead_cleanup.py", line 92, in initialize(simulation=False) # Initialize the HamiltonInterface ~~~~~~~~~~^^^^^^^^^^^^^^^^^^ [2025-08-12 11:51:35,093] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\magnetic_bead_cleanup.py", line 84, in initialize hhs_create_usb_device(ham_int, _) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^ [2025-08-12 11:51:35,093] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 31, in hhs_create_usb_device response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2']) [2025-08-12 11:51:35,093] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-12 11:51:35,094] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-12 11:51:35,094] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 396, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-08-12 11:51:35,094] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_CreateUSBDevice","step-return1":0,"step-return2":0,"step-return3":"","step-return4":"","id":"0x1891a967b86b"} ) [2025-08-12 11:52:42,213] root INFO #################################################################################################################################### [2025-08-12 11:52:42,214] root INFO # # [2025-08-12 11:52:42,214] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\magnetic_bead_cleanup.py # [2025-08-12 11:52:42,214] root INFO # # [2025-08-12 11:52:42,214] root INFO #################################################################################################################################### [2025-08-12 11:52:42,216] pyhamilton.interface INFO starting a Hamilton interface [2025-08-12 11:52:42,217] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1891ac28d48b') [2025-08-12 11:52:42,217] pyhamilton.interface INFO started the oem application for simulation [2025-08-12 11:52:42,218] pyhamilton.interface INFO started the server thread [2025-08-12 11:52:42,218] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-12 11:52:48,229] pyhamilton.interface INFO sending end run command to simulator [2025-08-12 11:52:49,731] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-12 11:52:49,731] pyhamilton.interface INFO disconnected from server [2025-08-12 11:52:49,832] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-12 11:52:49,832] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-12 11:52:49,835] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-12 11:52:49,837] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-12 11:52:49,837] pyhamilton.interface INFO dummy get request sent to server [2025-08-12 11:52:49,838] pyhamilton.interface INFO server thread exited [2025-08-12 11:55:55,644] root INFO #################################################################################################################################### [2025-08-12 11:55:55,645] root INFO # # [2025-08-12 11:55:55,645] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\magnetic_bead_cleanup.py # [2025-08-12 11:55:55,645] root INFO # # [2025-08-12 11:55:55,645] root INFO #################################################################################################################################### [2025-08-12 11:55:55,647] pyhamilton.interface INFO starting a Hamilton interface [2025-08-12 11:55:55,648] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1891b763fb0c') [2025-08-12 11:55:55,648] pyhamilton.interface INFO started the oem application for simulation [2025-08-12 11:55:55,648] pyhamilton.interface INFO started the server thread [2025-08-12 11:55:55,648] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-12 11:56:56,016] pyhamilton.interface INFO sending end run command to simulator [2025-08-12 11:56:56,162] pyhamilton.interface INFO disconnected from server [2025-08-12 11:56:56,263] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-12 11:56:56,264] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-12 11:56:56,267] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-12 11:56:56,270] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-12 11:56:56,271] pyhamilton.interface INFO dummy get request sent to server [2025-08-12 11:56:56,271] pyhamilton.interface INFO server thread exited [2025-08-12 11:56:56,275] root ERROR Traceback (most recent call last): [2025-08-12 11:56:56,277] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\magnetic_bead_cleanup.py", line 89, in initialize hhs_stop_shaker(ham_int, node) ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ [2025-08-12 11:56:56,278] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 157, in hhs_stop_shaker ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout) ~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-12 11:56:56,279] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 723, in wait_on_response for _ in wait(delays=delays, timeout=timeout): ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-12 11:56:56,279] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\waiter\__init__.py", line 91, in __iter__ time.sleep(min(delay, remaining)) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-12 11:56:56,279] root ERROR KeyboardInterrupt [2025-08-12 11:56:56,280] root ERROR During handling of the above exception, another exception occurred: [2025-08-12 11:56:56,281] root ERROR Traceback (most recent call last): [2025-08-12 11:56:56,285] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\magnetic_bead_cleanup.py", line 96, in initialize(simulation=False) # Initialize the HamiltonInterface ~~~~~~~~~~^^^^^^^^^^^^^^^^^^ [2025-08-12 11:56:56,285] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\magnetic_bead_cleanup.py", line 78, in initialize with HamiltonInterface(windowed=True, simulating=False) as ham_int: ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-12 11:56:56,286] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 642, in __exit__ self.stop() ~~~~~~~~~^^ [2025-08-12 11:56:56,287] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 605, in stop self.wait_on_response(self.send_command(command='end', id=hex(0)), timeout=1.5) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-12 11:56:56,287] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 723, in wait_on_response for _ in wait(delays=delays, timeout=timeout): ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-12 11:56:56,288] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\waiter\__init__.py", line 91, in __iter__ time.sleep(min(delay, remaining)) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-12 11:56:56,289] root ERROR KeyboardInterrupt [2025-08-12 12:06:37,777] root INFO #################################################################################################################################### [2025-08-12 12:06:37,777] root INFO # # [2025-08-12 12:06:37,778] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\magnetic_bead_cleanup.py # [2025-08-12 12:06:37,778] root INFO # # [2025-08-12 12:06:37,778] root INFO #################################################################################################################################### [2025-08-12 12:06:37,779] pyhamilton.interface INFO starting a Hamilton interface [2025-08-12 12:06:37,780] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1891ddf67cab') [2025-08-12 12:06:37,780] pyhamilton.interface INFO started the oem application for simulation [2025-08-12 12:06:37,780] pyhamilton.interface INFO started the server thread [2025-08-12 12:06:37,781] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-12 12:06:39,783] pyhamilton.interface INFO sending end run command to simulator [2025-08-12 12:06:41,284] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-12 12:06:41,285] pyhamilton.interface INFO disconnected from server [2025-08-12 12:06:41,386] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-12 12:06:41,386] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-12 12:06:41,391] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-12 12:06:41,393] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-12 12:06:41,394] pyhamilton.interface INFO dummy get request sent to server [2025-08-12 12:06:41,394] pyhamilton.interface INFO server thread exited [2025-08-12 12:06:41,397] root ERROR Traceback (most recent call last): [2025-08-12 12:06:41,400] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\magnetic_bead_cleanup.py", line 96, in initialize(simulation=False) # Initialize the HamiltonInterface ~~~~~~~~~~^^^^^^^^^^^^^^^^^^ [2025-08-12 12:06:41,401] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\magnetic_bead_cleanup.py", line 84, in initialize hhs_create_usb_device(ham_int, node) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ [2025-08-12 12:06:41,401] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\hhs_wrappers.py", line 31, in hhs_create_usb_device response = ham.wait_on_response(cmd, raise_first_exception=True, timeout=std_timeout, return_data=['step-return2']) [2025-08-12 12:06:41,401] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 734, in wait_on_response return self.parse_response(server_response, raise_first_exception, return_data) ~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-12 12:06:41,401] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 753, in parse_response hamiltonResponse.raise_first_exception() ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^ [2025-08-12 12:06:41,402] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 396, in raise_first_exception raise HamiltonStepError('Hamilton step did not execute correctly; no error code given. ( response: ' + self.raw + ' )') [2025-08-12 12:06:41,402] root ERROR pyhamilton.oemerr.HamiltonStepError: Hamilton step did not execute correctly; no error code given. ( response: {"command":"HHS-return","step-name":"HHS_CreateUSBDevice","step-return1":0,"step-return2":1,"step-return3":"","step-return4":"","id":"0x1891df7c31ff"} ) [2025-08-12 12:07:56,284] root INFO #################################################################################################################################### [2025-08-12 12:07:56,285] root INFO # # [2025-08-12 12:07:56,285] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\magnetic_bead_cleanup.py # [2025-08-12 12:07:56,286] root INFO # # [2025-08-12 12:07:56,286] root INFO #################################################################################################################################### [2025-08-12 12:07:56,288] pyhamilton.interface INFO starting a Hamilton interface [2025-08-12 12:07:56,288] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1891e2b3a30d') [2025-08-12 12:07:56,289] pyhamilton.interface INFO started the oem application for simulation [2025-08-12 12:07:56,289] pyhamilton.interface INFO started the server thread [2025-08-12 12:07:56,289] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-12 12:09:30,337] pyhamilton.interface INFO sending end run command to simulator [2025-08-12 12:09:31,838] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-12 12:09:31,839] pyhamilton.interface INFO disconnected from server [2025-08-12 12:09:31,940] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-12 12:09:31,941] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-12 12:09:31,947] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-12 12:09:31,950] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-12 12:09:31,951] pyhamilton.interface INFO dummy get request sent to server [2025-08-12 12:09:31,951] pyhamilton.interface INFO server thread exited [2025-08-19 00:57:15,246] root INFO ############################################################################################################################# [2025-08-19 00:57:15,248] root INFO # # [2025-08-19 00:57:15,249] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py # [2025-08-19 00:57:15,249] root INFO # # [2025-08-19 00:57:15,249] root INFO ############################################################################################################################# [2025-08-19 00:57:15,250] pyhamilton.interface INFO starting a Hamilton interface [2025-08-19 00:57:15,250] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x19155546ca36') [2025-08-19 00:57:15,250] pyhamilton.interface INFO started the oem application for simulation [2025-08-19 00:57:15,250] pyhamilton.interface INFO started the server thread [2025-08-19 00:57:15,250] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-19 00:57:16,803] pyhamilton.interface INFO tip_pick_up: Pick up tips at STF_L_0001, 1; STF_L_0001, 2; STF_L_0001, 3; STF_L_0001, 4; STF_L_0001, 5; STF_L_0001, 6; STF_L_0001, 7; STF_L_0001, 8 [2025-08-19 00:57:17,804] pyhamilton.interface INFO aspirate: Aspirate volumes [300, 300, 300, 300, 300, 300, 300, 300] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-19 00:57:19,807] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:57:23,810] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:57:25,812] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A3; MIDI_Pipette, B3; MIDI_Pipette, C3; MIDI_Pipette, D3; MIDI_Pipette, E3; MIDI_Pipette, F3; MIDI_Pipette, G3; MIDI_Pipette, H3] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:57:27,815] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A4; MIDI_Pipette, B4; MIDI_Pipette, C4; MIDI_Pipette, D4; MIDI_Pipette, E4; MIDI_Pipette, F4; MIDI_Pipette, G4; MIDI_Pipette, H4] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:57:29,818] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A5; MIDI_Pipette, B5; MIDI_Pipette, C5; MIDI_Pipette, D5; MIDI_Pipette, E5; MIDI_Pipette, F5; MIDI_Pipette, G5; MIDI_Pipette, H5] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:57:32,821] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A6; MIDI_Pipette, B6; MIDI_Pipette, C6; MIDI_Pipette, D6; MIDI_Pipette, E6; MIDI_Pipette, F6; MIDI_Pipette, G6; MIDI_Pipette, H6] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:57:36,825] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-19 00:57:39,265] pyhamilton.interface INFO tip_pick_up: Pick up tips at STF_L_0001, 9; STF_L_0001, 10; STF_L_0001, 11; STF_L_0001, 12; STF_L_0001, 13; STF_L_0001, 14; STF_L_0001, 15; STF_L_0001, 16 [2025-08-19 00:57:41,267] pyhamilton.interface INFO aspirate: Aspirate volumes [300, 300, 300, 300, 300, 300, 300, 300] from positions [rgt_cont_60ml_BC_A00_0001, 1; rgt_cont_60ml_BC_A00_0001, 2; rgt_cont_60ml_BC_A00_0001, 3; rgt_cont_60ml_BC_A00_0001, 4; rgt_cont_60ml_BC_A00_0001, 5; rgt_cont_60ml_BC_A00_0001, 6; rgt_cont_60ml_BC_A00_0001, 7; rgt_cont_60ml_BC_A00_0001, 8] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 1, 'aspirateMode': 2, 'submergeDepth': 2} [2025-08-19 00:57:45,270] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A7; MIDI_Pipette, B7; MIDI_Pipette, C7; MIDI_Pipette, D7; MIDI_Pipette, E7; MIDI_Pipette, F7; MIDI_Pipette, G7; MIDI_Pipette, H7] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:57:48,273] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A8; MIDI_Pipette, B8; MIDI_Pipette, C8; MIDI_Pipette, D8; MIDI_Pipette, E8; MIDI_Pipette, F8; MIDI_Pipette, G8; MIDI_Pipette, H8] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:57:52,278] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A9; MIDI_Pipette, B9; MIDI_Pipette, C9; MIDI_Pipette, D9; MIDI_Pipette, E9; MIDI_Pipette, F9; MIDI_Pipette, G9; MIDI_Pipette, H9] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:57:55,282] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A10; MIDI_Pipette, B10; MIDI_Pipette, C10; MIDI_Pipette, D10; MIDI_Pipette, E10; MIDI_Pipette, F10; MIDI_Pipette, G10; MIDI_Pipette, H10] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:57:59,286] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A11; MIDI_Pipette, B11; MIDI_Pipette, C11; MIDI_Pipette, D11; MIDI_Pipette, E11; MIDI_Pipette, F11; MIDI_Pipette, G11; MIDI_Pipette, H11] with extra options {'liquidClass': 'StandardVolumeFilter_Water_DispenseJet_Part', 'mixCycles': 0, 'mixVolume': 0, 'liquidHeight': 0, 'capacitiveLLD': 0, 'liquidFollowing': 0} [2025-08-19 00:58:13,824] pyhamilton.interface INFO sending end run command to simulator [2025-08-19 00:58:14,038] pyhamilton.interface INFO disconnected from server [2025-08-19 00:58:14,139] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-19 00:58:14,140] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-19 00:58:14,143] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-19 00:58:14,146] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-19 00:58:14,147] pyhamilton.interface INFO dummy get request sent to server [2025-08-19 00:58:14,147] pyhamilton.interface INFO server thread exited [2025-08-19 00:58:14,152] root ERROR Traceback (most recent call last): [2025-08-19 00:58:14,156] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 59, in multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ liquid_class = 'StandardVolumeFilter_Water_DispenseJet_Part') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-19 00:58:14,156] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\pyhamilton_advanced\pipetting\pipetting.py", line 306, in multi_dispense response = ham_int.dispense(column, column_volumes, liquidClass=liquid_class, mixCycles=mix_cycles, mixVolume=0, liquidHeight=dispense_height, capacitiveLLD=0, liquidFollowing=0) [2025-08-19 00:58:14,156] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 917, in dispense response = self.wait_on_response( self.send_command( ...<7 lines>... return_data=['step-return2', 'step-return3'] ) [2025-08-19 00:58:14,156] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 723, in wait_on_response for _ in wait(delays=delays, timeout=timeout): ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-19 00:58:14,156] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\waiter\__init__.py", line 91, in __iter__ time.sleep(min(delay, remaining)) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-19 00:58:14,157] root ERROR KeyboardInterrupt [2025-08-19 00:58:14,157] root ERROR During handling of the above exception, another exception occurred: [2025-08-19 00:58:14,157] root ERROR Traceback (most recent call last): [2025-08-19 00:58:14,158] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\multi_dispense.py", line 52, in with HamiltonInterface(windowed=True, simulating=False) as ham_int: ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-19 00:58:14,159] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 642, in __exit__ self.stop() ~~~~~~~~~^^ [2025-08-19 00:58:14,159] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 605, in stop self.wait_on_response(self.send_command(command='end', id=hex(0)), timeout=1.5) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-19 00:58:14,160] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 723, in wait_on_response for _ in wait(delays=delays, timeout=timeout): ~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-19 00:58:14,160] root ERROR File "C:\Users\stefan.golas\AppData\Local\Programs\Python\Python313\Lib\site-packages\waiter\__init__.py", line 91, in __iter__ time.sleep(min(delay, remaining)) ~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-19 00:58:14,160] root ERROR KeyboardInterrupt [2025-08-19 15:25:31,066] root INFO ####################################################################################################################### [2025-08-19 15:25:31,069] root INFO # # [2025-08-19 15:25:31,069] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\ngs_demo.py # [2025-08-19 15:25:31,069] root INFO # # [2025-08-19 15:25:31,069] root INFO ####################################################################################################################### [2025-08-19 15:25:31,070] pyhamilton.interface INFO starting a Hamilton interface [2025-08-19 15:25:31,071] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1921764e7363') [2025-08-19 15:25:31,071] pyhamilton.interface INFO started the oem application for simulation [2025-08-19 15:25:31,071] pyhamilton.interface INFO started the server thread [2025-08-19 15:25:31,071] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-19 15:25:31,145] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-08-19 15:25:32,148] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquid_class': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-19 15:25:32,149] pyhamilton.interface INFO sending end run command to simulator [2025-08-19 15:25:33,650] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-19 15:25:33,650] pyhamilton.interface INFO disconnected from server [2025-08-19 15:25:33,751] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-19 15:25:33,751] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-19 15:25:33,759] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-19 15:25:33,761] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-19 15:25:33,762] pyhamilton.interface INFO dummy get request sent to server [2025-08-19 15:25:33,762] pyhamilton.interface INFO server thread exited [2025-08-19 15:25:33,764] root ERROR Traceback (most recent call last): [2025-08-19 15:25:33,766] root ERROR File "C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\ngs_demo.py", line 31, in ham_int.aspirate(aspiration_positions, vols=[50]*8, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty') ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [2025-08-19 15:25:33,766] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 867, in aspirate self.send_command( ~~~~~~~~~~~~~~~~~^ ASPIRATE, ^^^^^^^^^ ...<3 lines>... **more_options ^^^^^^^^^^^^^^ ), ^ [2025-08-19 15:25:33,767] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 680, in send_command send_cmd_dict = template.assemble_cmd(**cmd_dict) [2025-08-19 15:25:33,767] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 66, in assemble_cmd self.assert_valid_cmd(assembled_cmd) ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^ [2025-08-19 15:25:33,768] root ERROR File "C:\Users\stefan.golas\pyhamilton\pyhamilton\interface.py", line 114, in assert_valid_cmd raise ValueError('\n'.join(prints)) [2025-08-19 15:25:33,768] root ERROR ValueError: Assert valid command "channelAspirate" failed: template parameter keys (left) do not match given keys (right) airTransportRetractDist airTransportRetractDist aspPosAboveTouch aspPosAboveTouch aspirateMode aspirateMode aspirateSequence aspirateSequence capacitiveLLD capacitiveLLD channelUse channelUse channelVariable channelVariable command command id id labwarePositions labwarePositions liquidClass liquidClass liquidFollowing liquidFollowing liquidHeight liquidHeight maxLLdDifference (?) liquid_class mixCycles maxLLdDifference mixPosition mixCycles mixVolume mixPosition pressureLLD mixVolume sequenceCounting pressureLLD submergeDepth sequenceCounting touchOff submergeDepth volumes touchOff xDisplacement volumes yDisplacement xDisplacement zDisplacement yDisplacement zDisplacement [2025-08-19 15:26:15,619] root INFO ####################################################################################################################### [2025-08-19 15:26:15,619] root INFO # # [2025-08-19 15:26:15,619] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\ngs_demo.py # [2025-08-19 15:26:15,619] root INFO # # [2025-08-19 15:26:15,619] root INFO ####################################################################################################################### [2025-08-19 15:26:15,620] pyhamilton.interface INFO starting a Hamilton interface [2025-08-19 15:26:15,621] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x192178c9650d') [2025-08-19 15:26:15,621] pyhamilton.interface INFO started the oem application for simulation [2025-08-19 15:26:15,621] pyhamilton.interface INFO started the server thread [2025-08-19 15:26:15,621] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-19 15:26:15,717] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-08-19 15:26:16,719] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-19 15:26:19,723] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-19 15:26:21,726] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-19 15:26:22,727] pyhamilton.interface INFO sending end run command to simulator [2025-08-19 15:26:24,228] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-19 15:26:24,229] pyhamilton.interface INFO disconnected from server [2025-08-19 15:26:24,330] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-19 15:26:24,331] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-19 15:26:24,336] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-19 15:26:24,339] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-19 15:26:24,340] pyhamilton.interface INFO dummy get request sent to server [2025-08-19 15:26:24,340] pyhamilton.interface INFO server thread exited [2025-08-19 15:27:59,412] root INFO ####################################################################################################################### [2025-08-19 15:27:59,412] root INFO # # [2025-08-19 15:27:59,412] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\ngs_demo.py # [2025-08-19 15:27:59,412] root INFO # # [2025-08-19 15:27:59,412] root INFO ####################################################################################################################### [2025-08-19 15:27:59,413] pyhamilton.interface INFO starting a Hamilton interface [2025-08-19 15:27:59,413] pyhamilton.interface INFO running in simulation mode [2025-08-19 15:27:59,413] pyhamilton.interface INFO started the server thread [2025-08-19 15:27:59,413] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-19 15:27:59,477] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-08-19 15:27:59,477] JSONLogger INFO {'command': 'channelTipPickUp', 'id': '0x1921807096b5', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} [2025-08-19 15:27:59,478] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-19 15:27:59,478] JSONLogger INFO {'command': 'channelAspirate', 'id': '0x192180709aec', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 0, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-19 15:27:59,479] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-19 15:27:59,479] JSONLogger INFO {'command': 'channelDispense', 'id': '0x192180709d98', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-19 15:27:59,479] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-19 15:27:59,479] JSONLogger INFO {'command': 'channelTipEject', 'id': '0x192180709eae', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} [2025-08-19 15:27:59,479] pyhamilton.interface INFO sending end run command to simulator [2025-08-19 15:27:59,479] JSONLogger INFO {'command': 'end', 'id': '0x0'} [2025-08-19 15:27:59,479] pyhamilton.interface INFO disconnected from server [2025-08-19 15:27:59,580] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-19 15:27:59,580] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-19 15:27:59,583] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-19 15:27:59,585] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-19 15:27:59,586] pyhamilton.interface INFO dummy get request sent to server [2025-08-19 15:27:59,587] pyhamilton.interface INFO server thread exited [2025-08-19 15:31:07,020] root INFO ####################################################################################################################### [2025-08-19 15:31:07,020] root INFO # # [2025-08-19 15:31:07,021] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\ngs_demo.py # [2025-08-19 15:31:07,021] root INFO # # [2025-08-19 15:31:07,021] root INFO ####################################################################################################################### [2025-08-19 15:31:07,022] pyhamilton.interface INFO starting a Hamilton interface [2025-08-19 15:31:07,022] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x192181be7e79') [2025-08-19 15:31:07,022] pyhamilton.interface INFO started the oem application for simulation [2025-08-19 15:31:07,022] pyhamilton.interface INFO started the server thread [2025-08-19 15:31:07,022] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-19 15:31:07,173] pyhamilton.interface INFO tip_pick_up: Pick up tips at TIP_50uLF_L_0001, 1; TIP_50uLF_L_0001, 2; TIP_50uLF_L_0001, 3; TIP_50uLF_L_0001, 4; TIP_50uLF_L_0001, 5; TIP_50uLF_L_0001, 6; TIP_50uLF_L_0001, 7; TIP_50uLF_L_0001, 8 [2025-08-19 15:31:18,180] pyhamilton.interface INFO aspirate: Aspirate volumes [50, 50, 50, 50, 50, 50, 50, 50] from positions [MIDI_Pipette, A1; MIDI_Pipette, B1; MIDI_Pipette, C1; MIDI_Pipette, D1; MIDI_Pipette, E1; MIDI_Pipette, F1; MIDI_Pipette, G1; MIDI_Pipette, H1] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-19 15:31:34,205] pyhamilton.interface INFO dispense: Dispense volumes [50, 50, 50, 50, 50, 50, 50, 50] into positions [MIDI_Pipette, A2; MIDI_Pipette, B2; MIDI_Pipette, C2; MIDI_Pipette, D2; MIDI_Pipette, E2; MIDI_Pipette, F2; MIDI_Pipette, G2; MIDI_Pipette, H2] with extra options {'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} [2025-08-19 15:31:46,209] pyhamilton.interface INFO tip_eject: Eject tips to default waste [2025-08-19 15:31:57,238] pyhamilton.interface INFO sending end run command to simulator [2025-08-19 15:31:58,739] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-19 15:31:58,739] pyhamilton.interface INFO disconnected from server [2025-08-19 15:31:58,840] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-19 15:31:58,841] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-19 15:31:58,848] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-19 15:31:58,851] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-19 15:31:58,853] pyhamilton.interface INFO dummy get request sent to server [2025-08-19 15:31:58,854] pyhamilton.interface INFO server thread exited [2025-08-19 16:02:04,513] root INFO ####################################################################################################################### [2025-08-19 16:02:04,513] root INFO # # [2025-08-19 16:02:04,514] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\ngs_demo.py # [2025-08-19 16:02:04,514] root INFO # # [2025-08-19 16:02:04,514] root INFO ####################################################################################################################### [2025-08-19 16:02:04,515] pyhamilton.interface INFO starting a Hamilton interface [2025-08-19 16:02:04,515] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x1921f827c4ee') [2025-08-19 16:02:04,515] pyhamilton.interface INFO started the oem application for simulation [2025-08-19 16:02:04,516] pyhamilton.interface INFO started the server thread [2025-08-19 16:02:04,516] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-19 16:02:05,681] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-08-19 16:02:08,683] pyhamilton.interface INFO sending end run command to simulator [2025-08-19 16:02:10,184] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-19 16:02:10,184] pyhamilton.interface INFO disconnected from server [2025-08-19 16:02:10,285] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-19 16:02:10,285] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-19 16:02:10,288] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-19 16:02:10,290] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-19 16:02:10,290] pyhamilton.interface INFO dummy get request sent to server [2025-08-19 16:02:10,291] pyhamilton.interface INFO server thread exited [2025-08-26 14:48:58,945] root INFO ####################################################################################################################### [2025-08-26 14:48:58,948] root INFO # # [2025-08-26 14:48:58,949] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\ngs_demo.py # [2025-08-26 14:48:58,949] root INFO # # [2025-08-26 14:48:58,949] root INFO ####################################################################################################################### [2025-08-26 14:48:58,950] pyhamilton.interface INFO starting a Hamilton interface [2025-08-26 14:48:58,952] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x19adc367a1dc') [2025-08-26 14:48:58,952] pyhamilton.interface INFO started the oem application for simulation [2025-08-26 14:48:58,953] pyhamilton.interface INFO started the server thread [2025-08-26 14:48:58,953] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-26 14:49:00,889] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-08-26 14:49:03,893] pyhamilton.interface INFO sending end run command to simulator [2025-08-26 14:49:05,393] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-26 14:49:05,394] pyhamilton.interface INFO disconnected from server [2025-08-26 14:49:05,495] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-26 14:49:05,496] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-26 14:49:05,501] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-26 14:49:05,504] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-26 14:49:05,505] pyhamilton.interface INFO dummy get request sent to server [2025-08-26 14:49:05,505] pyhamilton.interface INFO server thread exited [2025-08-26 14:50:38,966] root INFO ####################################################################################################################### [2025-08-26 14:50:38,966] root INFO # # [2025-08-26 14:50:38,966] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\ngs_demo.py # [2025-08-26 14:50:38,966] root INFO # # [2025-08-26 14:50:38,966] root INFO ####################################################################################################################### [2025-08-26 14:50:38,968] pyhamilton.interface INFO starting a Hamilton interface [2025-08-26 14:50:38,968] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x19adcacc49cb') [2025-08-26 14:50:38,968] pyhamilton.interface INFO started the oem application for simulation [2025-08-26 14:50:38,968] pyhamilton.interface INFO started the server thread [2025-08-26 14:50:38,969] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-26 14:50:40,142] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-08-26 14:50:41,143] pyhamilton.interface INFO sending end run command to simulator [2025-08-26 14:50:42,643] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-26 14:50:42,644] pyhamilton.interface INFO disconnected from server [2025-08-26 14:50:42,744] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-26 14:50:42,744] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-26 14:50:42,746] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-26 14:50:42,747] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-26 14:50:42,747] pyhamilton.interface INFO dummy get request sent to server [2025-08-26 14:50:42,747] pyhamilton.interface INFO server thread exited [2025-08-26 14:51:25,290] root INFO ####################################################################################################################### [2025-08-26 14:51:25,290] root INFO # # [2025-08-26 14:51:25,291] root INFO # Begin execution of C:\Users\stefan.golas\pyhamilton_examples\examples\NGS\PacBio_HiFiPlex\tests\ngs_demo.py # [2025-08-26 14:51:25,291] root INFO # # [2025-08-26 14:51:25,291] root INFO ####################################################################################################################### [2025-08-26 14:51:25,292] pyhamilton.interface INFO starting a Hamilton interface [2025-08-26 14:51:25,293] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x19adcd70ccc8') [2025-08-26 14:51:25,293] pyhamilton.interface INFO started the oem application for simulation [2025-08-26 14:51:25,294] pyhamilton.interface INFO started the server thread [2025-08-26 14:51:25,294] pyhamilton.interface INFO initialize: Initializing Hamilton robot with options {} [2025-08-26 14:51:26,753] pyhamilton.interface INFO tip_pick_up_96: Pick up tips at TIP_50uLF_L_0001 [2025-08-26 14:51:27,755] pyhamilton.interface INFO sending end run command to simulator [2025-08-26 14:51:29,256] pyhamilton.interface ERROR HamiltonTimeoutError('Timed out after 1.5 sec while waiting for response id 0x0') [2025-08-26 14:51:29,256] pyhamilton.interface INFO disconnected from server [2025-08-26 14:51:29,357] pyhamilton.interface INFO server did not exit yet, sending dummy request to exit its loop [2025-08-26 14:51:29,358] urllib3.util.retry DEBUG Converted retries value: 20 -> Retry(total=20, connect=None, read=None, redirect=None, status=None) [2025-08-26 14:51:29,364] urllib3.connectionpool DEBUG Starting new HTTP connection (1): 127.0.0.1:3221 [2025-08-26 14:51:29,367] urllib3.connectionpool DEBUG http://127.0.0.1:3221 "GET / HTTP/1.1" 200 None [2025-08-26 14:51:29,367] pyhamilton.interface INFO dummy get request sent to server [2025-08-26 14:51:29,368] pyhamilton.interface INFO server thread exited ================================================ FILE: pyhamilton/ngs/tests/log/robot_json.log ================================================ {'command': 'channelTipPickUp', 'id': '0x17592e501c35', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17592e5817a2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x17592e582f13', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17592e58314d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17592e5835e1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17592e5838bb', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17592e5842c9', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17592e584523', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17592e584960', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17592e584e29', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17592e585996', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17592e585b7f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17592e585ed3', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17592e586190', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17592e586a6e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17592e586ca1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17592e5870ee', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17592e5873a3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17592e587f3a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17592e5880ee', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17592e588628', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17592e5888f3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17592e58968f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17592e58984e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17592e589cb7', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17592e589f77', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17592e58a9cf', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17592e58ac40', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17592e58b0b4', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17592e58b461', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17592e58be45', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17592e58c060', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17592e58c428', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17592e58c7a3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17592e58d461', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17592e58d5f3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17592e58db3c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17592e58de2e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17592e58e89c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17592e58ea13', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17592e58eea2', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17592e58f1b3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17592e58fb8a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17592e58fd33', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17592e5900e4', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17592e5903bc', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17592e590dde', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17592e590f9d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17592e5914cc', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17592e5917c9', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x175936e5cbdb', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175936ed730f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x175936ed88ab', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175936ed8a5a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175936ed8d57', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175936ed8fb1', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175936ed9f3e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175936eda105', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175936eda407', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175936eda68f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175936edafc7', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175936edb14e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175936edb423', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175936edb67a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175936edbee2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175936edc05f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175936edc2fc', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175936edc54a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175936edcdff', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175936edcf76', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175936edd270', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175936edd68e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175936ede150', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175936ede320', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175936ede608', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175936ede8ac', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175936edf1d7', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175936edf35d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175936edf5de', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175936edf829', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175936ee006d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175936ee020a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175936ee0482', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175936ee07a2', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175936ee0fa9', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175936ee1120', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175936ee1403', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175936ee1774', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175936ee219b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175936ee2336', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175936ee25d0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175936ee2814', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175936ee302f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175936ee31a1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175936ee3421', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175936ee365b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175936ee3e28', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175936ee3fac', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175936ee421b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175936ee446e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x17593cd84764', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17593ce26748', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x17593ce2842c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17593ce28683', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17593ce28a24', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17593ce28d7f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17593ce29832', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17593ce29a91', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17593ce29da3', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17593ce2a07f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17593ce2aa68', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17593ce2ac6c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17593ce2af87', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17593ce2b309', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17593ce2c43a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17593ce2c726', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17593ce2caf8', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17593ce2cda1', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17593ce2d822', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17593ce2da47', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17593ce2dd9d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17593ce2e069', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17593ce2eae3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17593ce2ed47', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17593ce2f083', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17593ce2f46d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17593ce30448', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17593ce30714', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17593ce30b26', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17593ce30de4', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17593ce31879', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17593ce31aab', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17593ce31da0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17593ce3215b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17593ce32c90', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17593ce32ecd', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17593ce331fe', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17593ce33693', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17593ce3460c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17593ce34823', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17593ce34b2d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17593ce34e59', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17593ce358bf', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17593ce35b5e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17593ce35e6a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17593ce3613f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17593ce36c4e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17593ce36ed6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17593ce37215', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17593ce374ee', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x1759409ade76', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175940a343fe', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x175940a355fb', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175940a35991', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175940a35c8d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175940a35f02', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175940a36869', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175940a36bf5', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175940a36ed8', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175940a3717e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175940a37b98', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175940a37ed6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175940a381ef', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175940a38446', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175940a38d20', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175940a3905f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175940a39314', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175940a395a2', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175940a3a09a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175940a3a3d5', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175940a3a664', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175940a3a89e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175940a3b257', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175940a3b5e2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175940a3b85f', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175940a3bad6', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175940a3c501', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175940a3c867', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175940a3cc2e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175940a3cf14', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175940a3d9e1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175940a3dd87', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175940a3e02f', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175940a3e357', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175940a3ee25', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175940a3f0fb', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175940a3f3a5', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175940a3f5ef', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175940a40013', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175940a402bc', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175940a40769', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175940a40ae0', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175940a41520', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175940a4186d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175940a41b18', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175940a41daf', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175940a42843', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175940a42b83', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175940a42e1a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175940a43051', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x175941646efe', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759416c2b7f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x1759416c40b1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759416c42b4', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759416c45a1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759416c482a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759416c5710', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759416c59af', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759416c5cc2', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759416c5f51', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759416c68a3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759416c6ad7', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759416c6d68', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759416c6fb6', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759416c7901', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759416c7bae', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759416c7e5c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759416c80b4', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759416c8a1b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759416c8c13', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759416c8edb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759416c9120', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759416c9b87', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759416c9d89', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759416c9fff', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759416ca24e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759416caca4', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759416cae90', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759416cb1ab', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759416cb406', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759416cbe87', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759416cc084', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759416cc31a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759416cc662', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759416cd033', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759416cd249', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759416cd4e7', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759416cd732', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759416ce159', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759416ce35d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759416ce610', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759416ce87d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759416cf4b2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759416cf6d2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759416cf9ea', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759416cfc96', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759416d0640', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759416d0842', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759416d0ac9', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759416d0d06', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x175943e21fbf', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175943e9c696', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x175943e9dbf6', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175943e9ddf4', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175943e9e14f', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175943e9e49e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175943e9efcc', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175943e9f1d6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175943e9f52f', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175943e9f869', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175943ea0504', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175943ea075a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175943ea0a52', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175943ea0df2', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175943ea1840', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175943ea1a01', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175943ea1d0b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175943ea2000', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175943ea2a84', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175943ea2c87', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175943ea2fe4', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175943ea32b3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175943ea3b6a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175943ea3d67', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175943ea4112', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175943ea441b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175943ea4e43', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175943ea5015', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175943ea52ec', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175943ea5585', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175943ea5f17', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175943ea6100', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175943ea639a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175943ea66d8', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175943ea6f5b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175943ea70f0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175943ea7365', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175943ea7597', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175943ea7edf', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175943ea809d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175943ea848c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175943ea8780', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175943ea90e3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175943ea9291', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175943ea952b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175943ea9796', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175943eaa06a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175943eaa242', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175943eaa4cc', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175943eaa70b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x175945e09485', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175945e9079e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x175945e91d14', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175945e9224e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175945e92706', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175945e92d1d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175945e93afc', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175945e93f32', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175945e942bb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175945e94573', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175945e94f55', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175945e9531c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175945e955ff', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175945e958bd', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175945e9638f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175945e968e8', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175945e96f17', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175945e972d6', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175945e97f69', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175945e9833a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175945e98798', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175945e98b35', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175945e9980b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175945e99c17', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175945e99f47', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175945e9a20c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175945e9b0a6', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175945e9b5cb', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175945e9ba0a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175945e9bd28', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175945e9c920', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175945e9ccaa', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175945e9cfa0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175945e9d342', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175945e9de0c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175945e9e1e6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175945e9e4cf', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175945e9e72c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175945e9f630', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175945e9fa2a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175945e9fed1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175945ea038a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175945ea0fb3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175945ea1358', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175945ea1795', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175945ea1b35', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175945ea25a0', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175945ea290b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175945ea2de3', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175945ea31b3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x175948a2b467', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175948aac873', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x175948aadc1c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175948aae087', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175948aae552', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175948aae909', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175948aaf4ee', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175948aaf8af', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175948aafb85', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175948aafe68', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175948ab0796', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175948ab0bcc', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175948ab0fec', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175948ab136c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175948ab1dc8', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175948ab2141', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175948ab24f8', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175948ab27c8', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175948ab3347', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175948ab3746', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175948ab3bd5', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175948ab3f85', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175948ab4cd9', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175948ab51ef', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175948ab5690', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175948ab5a26', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175948ab676c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175948ab6bed', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175948ab6f88', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175948ab7336', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175948ab7f45', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175948ab83df', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175948ab870c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175948ab8aa4', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175948ab956e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175948ab9a2f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175948ab9e88', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175948aba213', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175948abae00', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175948abb1e2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175948abb4e3', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175948abb785', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175948abc25b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175948abc637', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175948abc957', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175948abcbf0', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175948abd657', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175948abdacf', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175948abdec5', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175948abe194', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x175949ea0a6b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175949f1f7aa', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x175949f20f4e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175949f21257', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175949f21727', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175949f21a31', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175949f22509', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175949f226d7', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175949f229ae', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175949f22c9b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175949f23781', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175949f23a5f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175949f23dec', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175949f240e8', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175949f24b6d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175949f24dc5', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175949f250bc', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175949f25372', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175949f25e33', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175949f260e2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175949f26415', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175949f266de', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175949f272c5', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175949f27657', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175949f279d5', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175949f27cbf', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175949f2878c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175949f28a95', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175949f28ece', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175949f29193', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175949f29b88', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175949f29e5e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175949f2a137', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175949f2a505', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175949f2af97', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175949f2b264', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175949f2b6fb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175949f2b9f3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175949f2c419', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175949f2c634', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175949f2c90d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175949f2cbba', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175949f2d458', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175949f2d65e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175949f2d953', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175949f2dbd0', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175949f2e433', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175949f2e68c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175949f2e949', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175949f2ebc4', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x17594b0a0f64', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594b120985', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x17594b121f4d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594b122271', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594b1225a0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594b122936', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594b12327c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594b1236b4', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594b12398e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594b123c0c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594b12442c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594b12477c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594b124a55', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594b124d08', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594b125825', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594b125cb5', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594b125f90', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594b1261ee', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594b126acd', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594b126e71', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594b12712a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594b12737b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594b127c0d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594b1280b5', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594b12834e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594b1285d6', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594b128e6b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594b1291a7', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594b12953b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594b1297b0', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594b12a15f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594b12a501', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594b12a800', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594b12ab58', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594b12b463', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594b12b805', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594b12ba85', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594b12bcb9', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594b12c59c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594b12ca89', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594b12cd10', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594b12cfad', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594b12dbc5', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594b12e00b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594b12e3be', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594b12e781', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594b12f0cd', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594b12f497', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594b12f736', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594b12f9ea', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x17594c27df10', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594c2f7a4d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x17594c2f91dd', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594c2f9698', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594c2f9a03', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594c2f9cde', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594c2fa7c1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594c2fad14', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594c2fb1e2', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594c2fb5c9', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594c2fc27b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594c2fc6f2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594c2fcb09', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594c2fce49', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594c2fd991', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594c2fe000', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594c2fe39d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594c2fe6cb', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594c2ff44d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594c2ff9b0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594c2ffe17', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594c300202', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594c300db4', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594c301354', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594c3015ec', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594c301884', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594c302282', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594c3029ae', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594c302dfb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594c303182', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594c303df5', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594c304479', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594c30477e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594c304b1c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594c305452', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594c305a63', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594c305eb6', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594c3061a6', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594c306ca6', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594c30727a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594c3075e3', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594c3078f1', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594c30832a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594c308860', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594c308c57', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594c308ffc', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17594c3099ba', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17594c309f9e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17594c30a384', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17594c30a6f4', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x17595469a936', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175954730d1a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x175954732216', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175954732bce', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175954732efa', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759547331a8', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175954733b3a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595473452f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595473480f', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175954734a99', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759547357bf', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759547362ee', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759547365eb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175954736850', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175954737388', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175954738227', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759547386b1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175954738abb', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175954739912', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595473a64b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595473a9ac', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595473ac8b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595473b73f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595473c24c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595473c53e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595473c7e3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595473d31e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595473df2e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595473e23e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595473e49d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595473ef69', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595473fb21', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595473fde5', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175954740143', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175954740b4c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759547415c7', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175954741a71', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175954741d0d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175954742902', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175954743a63', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175954743d3d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175954743f9b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175954744a57', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759547459b0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759547460f5', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759547463ce', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175954746fb7', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595474790d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175954747d50', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595474803c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x1759597b0d0b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175959837ce1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x17595983914c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175959839b1d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175959839f46', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595983a252', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595983ac08', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595983b336', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595983b764', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595983bb6f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595983c718', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595983d296', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595983d747', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595983dbba', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595983e907', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595983fdd0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759598403f7', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759598408bb', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595984137e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759598426ff', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175959842db1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759598432f2', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175959844016', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175959845082', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759598453fa', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759598456ab', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595984616a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175959847689', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175959847bae', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595984809e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175959848e42', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759598492ce', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595984979a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175959849bd3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595984a6e7', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595984ba78', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595984be13', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595984c1d3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595984cf0f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595984dcb4', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595984df9c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595984e273', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595984edc5', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595984ff31', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x175959850454', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175959850981', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x175959851a52', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175959852ff1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759598533d1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x175959853799', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x17595c477472', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595c4f6c83', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x17595c4f83fa', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595c4f974b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595c4f9abb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595c4f9d82', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595c4fab38', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595c4fb62c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595c4fbab7', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595c4fbd87', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595c4fc8f1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595c4fd73d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595c4fda6d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595c4fdd69', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595c4fe839', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595c4ff7f7', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595c4ffbbf', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595c4ffe3c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595c500852', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595c501307', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595c5015bb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595c501809', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595c502ab8', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595c5037eb', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595c503cd2', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595c503f7c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595c505230', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595c506072', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595c506338', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595c5065a0', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595c5073a2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595c507fc9', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595c5082c2', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595c508673', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595c509512', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595c50a0b2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595c50a50f', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595c50a906', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595c50b739', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595c50c4b1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595c50c7aa', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595c50ca2d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595c50d5e3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595c50ed18', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595c50f048', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595c50f381', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17595c510466', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17595c511bc8', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17595c511f9c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17595c512324', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x175960699013', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17596071a414', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x17596071bc55', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x175964dee139', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175964e71339', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x175964e727ee', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x1759666e1bc2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17596676a636', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x17596676bd3c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x175968ae102d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175968b61d1c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x175968b6322c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175968b634b0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x17596c71931c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17596c797a01', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x17596c7990d3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17596c7995f4', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x17596e0205a3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17596e09e186', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x17596e09fabe', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17596e09fda0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x17598e8b432f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17598e9373e0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x17598e938961', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17598e938bf3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x175992b83504', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175992c047ed', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x175992c05e59', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175992c061e9', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x17599646c2a2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759964e1b6e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x1759964e311d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759964e3302', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x1759992f77e1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175999381414', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x17599938298b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x175999382b97', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x17599ce79143', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17599cef2982', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x17599cef414f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17599cef4439', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x17599e48a29e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17599e50584b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x17599e50703b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17599e507132', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x1759a313008c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a31aeac9', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x1759a31afe28', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a31aff28', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b0207', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b04b0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b07dc', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b0ab1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b0d77', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b0fdb', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b1206', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a31b145e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a31b16c3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a31b2341', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a31b242d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b26b6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b294c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b2ba5', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b2ddc', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b301c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b328f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b34d0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a31b3714', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a31b3958', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a31b4492', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a31b454e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b47e1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b4a93', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b4cbe', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b4eed', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b5131', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b5376', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b55a3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a31b57de', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a31b5a26', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a31b6615', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a31b66c6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b699f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b6ce4', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b6f27', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b715a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b73a2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b75d8', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b77fc', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a31b7a2a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a31b7cd6', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a31b8a30', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a31b8ae4', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b8ea2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b9125', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b9349', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b9585', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b97b1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b99cb', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31b9c00', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a31b9e1c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a31ba0b7', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a31bae00', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a31baebd', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31bb180', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31bb40b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31bb633', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31bb862', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31bbaa4', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31bbcc5', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31bbef3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a31bc109', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a31bc35e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a31bcf15', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a31bcfc2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31bd222', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31bd49e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31bd70d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31bd932', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31bdb65', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31bdd92', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31bdfc1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a31be1ee', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a31be43d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a31bf27b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a31bf33c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31bf603', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31bf8b7', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31bfb54', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31bfd9a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31bffcc', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c0209', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c0423', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a31c064d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a31c08a0', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a31c13c2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a31c147a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c1727', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c199e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c1be0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c1e23', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c205d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c2292', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c24c8', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a31c26ee', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a31c29f9', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a31c35fd', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a31c36b2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c3b0a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c3d86', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c3fce', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c4204', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c4450', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c4670', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c488f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a31c4ace', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a31c4ce9', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a31c58c6', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a31c5970', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c5be7', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c5e44', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c606e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c62a2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c64cf', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c6731', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c6971', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a31c6b93', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a31c6e9c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a31c7986', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a31c7a34', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c7ca3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c7f07', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c8157', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c83a1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c85f0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c882b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a31c8a4d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a31c8cc0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a31c8eee', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x1759a5ec218d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a5f3bc9b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x1759a5f3d5d7', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 2', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a5f3d8d2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f3df74', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f3e4cb', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f3ea3b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f3ef97', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f3f59d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f3fbd3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f40296', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a5f40886', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a5f40d6b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a5f42331', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 3', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a5f4273a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f42ed2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f43693', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f43cf8', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f443b6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f44873', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f44ed3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f455b1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a5f45b03', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a5f45f7a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a5f471d6', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 4', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a5f474a2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f47995', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f47e30', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f48377', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f487fb', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f48d23', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f491a7', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f495fb', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a5f49a59', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a5f49d92', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a5f4ac62', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a5f4aeb6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f4b35b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f4b821', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f4bc75', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f4c0b0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f4c54f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f4c98e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f4cdb1', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a5f4d1b0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a5f4d46d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a5f4e1d0', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 6', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a5f4e3ef', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f4e8e9', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f4ec81', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f4f0c8', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f4f493', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f4f85e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f4fc16', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f50083', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a5f504a0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a5f50828', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a5f518eb', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 7', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a5f51b21', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f51f13', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f522e5', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f52738', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f52b4b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f52f11', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f53330', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f5370f', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a5f53ae3', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a5f53dec', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a5f54d58', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 8', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a5f54f6d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f5537b', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f55761', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f55c08', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f55ff3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f56383', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f567b8', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f56bb3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a5f56f80', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a5f5721c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a5f58173', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a5f583f8', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f58882', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f58df8', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f59273', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f596f3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f59b46', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f59f79', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f5a3ae', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a5f5a8ea', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a5f5ac16', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a5f5bdd8', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 10', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a5f5c012', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f5c465', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f5c93a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f5cdb0', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f5d293', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f5d6ae', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f5dae2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f5deeb', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a5f5e32e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a5f5e61e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a5f5f65f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 11', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a5f5f8ec', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f5ff6a', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f60454', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f6090c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f60d02', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f611d3', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f6167d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f61b0d', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a5f61fa5', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a5f622ed', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a5f63339', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 12', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a5f63587', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f639ee', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f63e7c', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f642be', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f64746', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f64bc9', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f650a2', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f65532', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a5f65a04', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a5f65d76', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1759a5f66d1c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1759a5f66fcd', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '1000000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f674ef', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0100000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f679f6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0010000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f67f42', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0001000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f683f6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000100000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f688ab', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000010000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f68df6', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000001000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1759a5f6940e', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1', 'channelVariable': '0000000100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1759a5f69952', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1759a5f69cd8', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x17622ea9bed5', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17622ed49710', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0, 0, 0, 0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x17622ed4c0be', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17622ed4c183', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17622ed4c605', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17622ed4cb0a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17622ed4cdc3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17622ed4f207', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9;TIP_50uLF_L_0001, 10;TIP_50uLF_L_0001, 11;TIP_50uLF_L_0001, 12', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17622ed4f323', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17622ed4f5fe', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17622ed4f890', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17622ed4fae7', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17622ed52163', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13;TIP_50uLF_L_0001, 14;TIP_50uLF_L_0001, 15;TIP_50uLF_L_0001, 16', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17622ed5222a', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17622ed524f6', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17622ed527e5', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17622ed52a34', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17622ed54a97', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 17;TIP_50uLF_L_0001, 18;TIP_50uLF_L_0001, 19;TIP_50uLF_L_0001, 20', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17622ed54b4c', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17622ed54fc3', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17622ed553de', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17622ed5567f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17622ed5741a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 21;TIP_50uLF_L_0001, 22;TIP_50uLF_L_0001, 23;TIP_50uLF_L_0001, 24', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17622ed574d6', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17622ed57787', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17622ed579f8', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17622ed57c37', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17622ed5a099', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 25;TIP_50uLF_L_0001, 26;TIP_50uLF_L_0001, 27;TIP_50uLF_L_0001, 28', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17622ed5a14d', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17622ed5a412', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17622ed5a6ab', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17622ed5a8e7', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17622ed5ce9f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 29;TIP_50uLF_L_0001, 30;TIP_50uLF_L_0001, 31;TIP_50uLF_L_0001, 32', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17622ed5d037', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17622ed5d3ec', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17622ed5d69e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17622ed5da03', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17622ed5fee1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 33;TIP_50uLF_L_0001, 34;TIP_50uLF_L_0001, 35;TIP_50uLF_L_0001, 36', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17622ed60027', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17622ed60467', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17622ed608be', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17622ed60dcf', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17622ed63092', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 37;TIP_50uLF_L_0001, 38;TIP_50uLF_L_0001, 39;TIP_50uLF_L_0001, 40', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17622ed63151', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17622ed63422', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17622ed636c5', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17622ed63906', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17622ed65c4e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 41;TIP_50uLF_L_0001, 42;TIP_50uLF_L_0001, 43;TIP_50uLF_L_0001, 44', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17622ed65d95', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17622ed6612f', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17622ed66405', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17622ed66661', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17622ed686db', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 45;TIP_50uLF_L_0001, 46;TIP_50uLF_L_0001, 47;TIP_50uLF_L_0001, 48', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17622ed68858', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17622ed68ccc', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17622ed6908c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17622ed6941b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17622ed6bdec', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 49;TIP_50uLF_L_0001, 50;TIP_50uLF_L_0001, 51;TIP_50uLF_L_0001, 52', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17622ed6beab', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17622ed6c1bf', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17622ed6c42b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17622ed6c67a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x176243cff33a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176243d7e9c9', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0, 0, 0, 0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x176243d81ae1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176243d81d4a', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x176243d82234', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x176243d825ef', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x176243d82876', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x176243d84ef6', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9;TIP_50uLF_L_0001, 10;TIP_50uLF_L_0001, 11;TIP_50uLF_L_0001, 12', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176243d8515d', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x176243d85602', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x176243d85a28', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x176243d85ca9', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x176243d87fc1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13;TIP_50uLF_L_0001, 14;TIP_50uLF_L_0001, 15;TIP_50uLF_L_0001, 16', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176243d8835f', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x176243d88876', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x176243d88c12', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x176243d88e97', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x176243d8b0b9', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 17;TIP_50uLF_L_0001, 18;TIP_50uLF_L_0001, 19;TIP_50uLF_L_0001, 20', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176243d8b2dd', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x176243d8b7bd', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x176243d8bb6c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x176243d8bf15', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x176243d8e5da', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 21;TIP_50uLF_L_0001, 22;TIP_50uLF_L_0001, 23;TIP_50uLF_L_0001, 24', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176243d8eb5d', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x176243d8f077', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x176243d8f54a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x176243d8f814', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x176243d9217c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 25;TIP_50uLF_L_0001, 26;TIP_50uLF_L_0001, 27;TIP_50uLF_L_0001, 28', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176243d92337', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x176243d92736', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x176243d92b4b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x176243d92e14', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x176243d956a2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 29;TIP_50uLF_L_0001, 30;TIP_50uLF_L_0001, 31;TIP_50uLF_L_0001, 32', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176243d95878', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x176243d95e14', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x176243d9618d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x176243d96500', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x176243d983dd', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 33;TIP_50uLF_L_0001, 34;TIP_50uLF_L_0001, 35;TIP_50uLF_L_0001, 36', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176243d986c7', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x176243d98ac5', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x176243d98e64', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x176243d99125', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x176243d9b21f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 37;TIP_50uLF_L_0001, 38;TIP_50uLF_L_0001, 39;TIP_50uLF_L_0001, 40', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176243d9b40d', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x176243d9b76c', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x176243d9bab3', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x176243d9bd38', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x176243d9def3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 41;TIP_50uLF_L_0001, 42;TIP_50uLF_L_0001, 43;TIP_50uLF_L_0001, 44', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176243d9e10d', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x176243d9e482', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x176243d9e810', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x176243d9ea8e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x176243da0efd', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 45;TIP_50uLF_L_0001, 46;TIP_50uLF_L_0001, 47;TIP_50uLF_L_0001, 48', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176243da117c', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x176243da1800', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x176243da1c89', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x176243da1f79', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x176243da3ef1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 49;TIP_50uLF_L_0001, 50;TIP_50uLF_L_0001, 51;TIP_50uLF_L_0001, 52', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176243da40ee', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x176243da4464', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x176243da47fd', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x176243da4b1a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x176245fbc4a0', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17624605d88f', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0, 0, 0, 0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x17624606177d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176246061945', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x176246061d39', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17624606209c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x176246062369', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1762460646d0', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9;TIP_50uLF_L_0001, 10;TIP_50uLF_L_0001, 11;TIP_50uLF_L_0001, 12', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1762460648c4', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x176246064cac', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17624606504a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1762460652da', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17624606717d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13;TIP_50uLF_L_0001, 14;TIP_50uLF_L_0001, 15;TIP_50uLF_L_0001, 16', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176246067390', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x176246067872', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x176246067da5', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17624606803c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17624606a1dd', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 17;TIP_50uLF_L_0001, 18;TIP_50uLF_L_0001, 19;TIP_50uLF_L_0001, 20', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17624606a42a', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17624606a80f', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17624606ab85', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17624606ae2a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17624606d46e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 21;TIP_50uLF_L_0001, 22;TIP_50uLF_L_0001, 23;TIP_50uLF_L_0001, 24', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17624606d786', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17624606db37', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17624606dece', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17624606e139', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x176246070925', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 25;TIP_50uLF_L_0001, 26;TIP_50uLF_L_0001, 27;TIP_50uLF_L_0001, 28', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176246070b91', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x176246071099', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17624607143b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1762460716a1', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17624607382e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 29;TIP_50uLF_L_0001, 30;TIP_50uLF_L_0001, 31;TIP_50uLF_L_0001, 32', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176246073a7c', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1762460740c1', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17624607450b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x176246074a00', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x176246076d16', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 33;TIP_50uLF_L_0001, 34;TIP_50uLF_L_0001, 35;TIP_50uLF_L_0001, 36', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176246076f41', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17624607729b', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17624607760d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1762460778ed', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17624607a5c5', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 37;TIP_50uLF_L_0001, 38;TIP_50uLF_L_0001, 39;TIP_50uLF_L_0001, 40', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17624607a7a7', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17624607ab40', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17624607aeb9', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17624607b16e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17624607e1d4', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 41;TIP_50uLF_L_0001, 42;TIP_50uLF_L_0001, 43;TIP_50uLF_L_0001, 44', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17624607e3d8', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17624607e7e3', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17624607ed60', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17624607f029', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x176246081f7c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 45;TIP_50uLF_L_0001, 46;TIP_50uLF_L_0001, 47;TIP_50uLF_L_0001, 48', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17624608210b', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17624608257f', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x176246082998', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x176246082c60', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17624608598f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 49;TIP_50uLF_L_0001, 50;TIP_50uLF_L_0001, 51;TIP_50uLF_L_0001, 52', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176246085b97', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x176246085f81', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x176246086337', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1762460865fe', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x176249785e58', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176249826904', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [0, 0, 0, 0], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipPickUp', 'id': '0x17624982bb29', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17624982bd14', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17624982c19b', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17624982c59a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17624982c7e5', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17624982ef91', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9;TIP_50uLF_L_0001, 10;TIP_50uLF_L_0001, 11;TIP_50uLF_L_0001, 12', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17624982f218', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17624982f584', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17624982f8e1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17624982fb05', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x176249832b26', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 13;TIP_50uLF_L_0001, 14;TIP_50uLF_L_0001, 15;TIP_50uLF_L_0001, 16', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x1762498330e0', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x176249833559', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x176249833870', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x176249833a9d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x176249835cb2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 17;TIP_50uLF_L_0001, 18;TIP_50uLF_L_0001, 19;TIP_50uLF_L_0001, 20', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176249836010', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x176249836522', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x176249836913', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x176249836c2c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1762498388bc', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 21;TIP_50uLF_L_0001, 22;TIP_50uLF_L_0001, 23;TIP_50uLF_L_0001, 24', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176249838b56', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x176249839075', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17624983951c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1762498398ce', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17624983bf50', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 25;TIP_50uLF_L_0001, 26;TIP_50uLF_L_0001, 27;TIP_50uLF_L_0001, 28', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17624983c106', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17624983c4b6', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17624983c8d0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17624983cb3a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17624983fe5b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 29;TIP_50uLF_L_0001, 30;TIP_50uLF_L_0001, 31;TIP_50uLF_L_0001, 32', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17624984010f', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1762498404dd', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17624984094e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x176249840d97', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x176249843b54', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 33;TIP_50uLF_L_0001, 34;TIP_50uLF_L_0001, 35;TIP_50uLF_L_0001, 36', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176249843e24', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17624984442c', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17624984486b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x176249844bea', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x176249847b9a', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 37;TIP_50uLF_L_0001, 38;TIP_50uLF_L_0001, 39;TIP_50uLF_L_0001, 40', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176249847d64', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x1762498480d6', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x1762498483c7', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x1762498485f5', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17624984ab53', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 41;TIP_50uLF_L_0001, 42;TIP_50uLF_L_0001, 43;TIP_50uLF_L_0001, 44', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17624984ace4', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17624984b037', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17624984b351', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17624984b593', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17624984d495', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 45;TIP_50uLF_L_0001, 46;TIP_50uLF_L_0001, 47;TIP_50uLF_L_0001, 48', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17624984d6fc', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x17624984db1a', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17624984df2b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17624984e21f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x1762498501c8', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 49;TIP_50uLF_L_0001, 50;TIP_50uLF_L_0001, 51;TIP_50uLF_L_0001, 52', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x176249850438', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '1111000000000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelAspirate', 'id': '0x176249850919', 'aspirateSequence': '', 'labwarePositions': 'RGT_Beads, 1;RGT_Beads, 2;RGT_Beads, 3;RGT_Beads, 4', 'channelVariable': '0000111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 5, 'pressureLLD': 0, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x176249850cfc', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 2, 'liquidFollowing': False, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x176249850faf', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'end', 'id': '0x0'} {'command': 'end', 'id': '0x0'} {'command': 'end', 'id': '0x0'} {'command': 'end', 'id': '0x0'} {'command': 'end', 'id': '0x0'} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x177a2393316b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a23933412', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 0, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x177a2e612bd2', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a2e612ed8', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 0, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x177a304364a1', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a30436749', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 0, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x177a3649906b', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a36499338', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a364997b4', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x177a396351ea', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a39635530', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a396359d1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a39635ca6', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a39635eec', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a39636174', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a3963639b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a3963661a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a3963678e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a39636a13', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a39636c10', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a39636e9f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a396370b8', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a3963731c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a39647a40', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9;TIP_50uLF_L_0001, 10;TIP_50uLF_L_0001, 11;TIP_50uLF_L_0001, 12;TIP_50uLF_L_0001, 13;TIP_50uLF_L_0001, 14;TIP_50uLF_L_0001, 15;TIP_50uLF_L_0001, 16', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a39647cf4', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a396481e0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a3964848f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a3964868f', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a396489ee', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a39648c6c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a39648f2b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a39649125', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a39649398', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a396495b1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a39649847', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a39649a30', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a39649cb2', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x177a48bf0726', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a48bf0a03', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x177a4c71068d', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a4c710977', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x177a504e81a8', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a504e8507', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a504e9280', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a504e95ad', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a504ea2ad', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a504ea52a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a504eb1cd', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a504eb470', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a504ebe55', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a504ec218', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a504ec824', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a504ecacd', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a504ecfc8', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a504ed404', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a504fe24c', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9;TIP_50uLF_L_0001, 10;TIP_50uLF_L_0001, 11;TIP_50uLF_L_0001, 12;TIP_50uLF_L_0001, 13;TIP_50uLF_L_0001, 14;TIP_50uLF_L_0001, 15;TIP_50uLF_L_0001, 16', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a504fe4e6', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a504ff08c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a504ff3d5', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a504ffabb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a504ffe1c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a50500153', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a505003cf', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a505006f7', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a505009a0', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a50500ce1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a505010f8', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a505016ae', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a5050198e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x177a517cce7e', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a517ccff6', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a517cd6eb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a517cda22', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a517cdd87', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a517ce086', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a517ce41c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a517ce694', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a517cef08', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a517cf363', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a517cf6b1', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a517cf974', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a517cfce9', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a517cffd7', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a517e1519', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9;TIP_50uLF_L_0001, 10;TIP_50uLF_L_0001, 11;TIP_50uLF_L_0001, 12;TIP_50uLF_L_0001, 13;TIP_50uLF_L_0001, 14;TIP_50uLF_L_0001, 15;TIP_50uLF_L_0001, 16', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a517e1620', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a517e1edf', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a517e216e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a517e2767', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a517e2ac1', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a517e2fdc', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a517e33dc', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a517e39e7', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a517e3c65', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a517e4373', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a517e461d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a517e4a8d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a517e4d31', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x177a54589fd8', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a5458a11a', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a5458a73b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a5458aa0c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a5458b117', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a5458b3b9', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a5458bcc7', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a5458bf78', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a5458c629', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a5458c88b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a5458d041', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a5458d3b3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a5458d7f2', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a5458db6b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a5459ccec', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9;TIP_50uLF_L_0001, 10;TIP_50uLF_L_0001, 11;TIP_50uLF_L_0001, 12;TIP_50uLF_L_0001, 13;TIP_50uLF_L_0001, 14;TIP_50uLF_L_0001, 15;TIP_50uLF_L_0001, 16', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a5459cdb6', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a5459d404', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a5459d6c3', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a5459da09', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a5459de31', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a5459e186', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a5459e451', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a5459e863', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a5459eac2', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a5459efde', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a5459f24c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelDispense', 'id': '0x177a5459f6d7', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a5459f93a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x177a662a1c0f', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a662a1d67', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a662a2542', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a662a2841', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a662b30d6', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9;TIP_50uLF_L_0001, 10;TIP_50uLF_L_0001, 11;TIP_50uLF_L_0001, 12;TIP_50uLF_L_0001, 13;TIP_50uLF_L_0001, 14;TIP_50uLF_L_0001, 15;TIP_50uLF_L_0001, 16', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a662b31e6', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a662b381e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a662b3b05', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a662c2390', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 17;TIP_50uLF_L_0001, 18;TIP_50uLF_L_0001, 19;TIP_50uLF_L_0001, 20;TIP_50uLF_L_0001, 21;TIP_50uLF_L_0001, 22;TIP_50uLF_L_0001, 23;TIP_50uLF_L_0001, 24', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a662c24ac', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a662c2af0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a662c2dcc', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a662d14d4', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 25;TIP_50uLF_L_0001, 26;TIP_50uLF_L_0001, 27;TIP_50uLF_L_0001, 28;TIP_50uLF_L_0001, 29;TIP_50uLF_L_0001, 30;TIP_50uLF_L_0001, 31;TIP_50uLF_L_0001, 32', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a662d15a8', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a662d1c0e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a662d1f18', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a662e08fc', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 33;TIP_50uLF_L_0001, 34;TIP_50uLF_L_0001, 35;TIP_50uLF_L_0001, 36;TIP_50uLF_L_0001, 37;TIP_50uLF_L_0001, 38;TIP_50uLF_L_0001, 39;TIP_50uLF_L_0001, 40', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a662e09cd', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a662e101c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a662e13e9', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a662ef117', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 41;TIP_50uLF_L_0001, 42;TIP_50uLF_L_0001, 43;TIP_50uLF_L_0001, 44;TIP_50uLF_L_0001, 45;TIP_50uLF_L_0001, 46;TIP_50uLF_L_0001, 47;TIP_50uLF_L_0001, 48', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a662ef1e9', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a662ef756', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a662efa0c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a662fdb31', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 49;TIP_50uLF_L_0001, 50;TIP_50uLF_L_0001, 51;TIP_50uLF_L_0001, 52;TIP_50uLF_L_0001, 53;TIP_50uLF_L_0001, 54;TIP_50uLF_L_0001, 55;TIP_50uLF_L_0001, 56', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a662fdc03', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a662fe25f', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a662fe5a8', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a6630bfbb', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 57;TIP_50uLF_L_0001, 58;TIP_50uLF_L_0001, 59;TIP_50uLF_L_0001, 60;TIP_50uLF_L_0001, 61;TIP_50uLF_L_0001, 62;TIP_50uLF_L_0001, 63;TIP_50uLF_L_0001, 64', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a6630c096', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a6630c65e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a6630c97e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a6631a9f7', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 65;TIP_50uLF_L_0001, 66;TIP_50uLF_L_0001, 67;TIP_50uLF_L_0001, 68;TIP_50uLF_L_0001, 69;TIP_50uLF_L_0001, 70;TIP_50uLF_L_0001, 71;TIP_50uLF_L_0001, 72', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a6631aac6', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a6631b041', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a6631b317', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a66328eb8', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 73;TIP_50uLF_L_0001, 74;TIP_50uLF_L_0001, 75;TIP_50uLF_L_0001, 76;TIP_50uLF_L_0001, 77;TIP_50uLF_L_0001, 78;TIP_50uLF_L_0001, 79;TIP_50uLF_L_0001, 80', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a66328f87', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a66329501', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a66329837', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a66337fc7', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 81;TIP_50uLF_L_0001, 82;TIP_50uLF_L_0001, 83;TIP_50uLF_L_0001, 84;TIP_50uLF_L_0001, 85;TIP_50uLF_L_0001, 86;TIP_50uLF_L_0001, 87;TIP_50uLF_L_0001, 88', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a6633808e', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a663386c0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a66338b1b', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a66349aa8', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 89;TIP_50uLF_L_0001, 90;TIP_50uLF_L_0001, 91;TIP_50uLF_L_0001, 92;TIP_50uLF_L_0001, 93;TIP_50uLF_L_0001, 94;TIP_50uLF_L_0001, 95;TIP_50uLF_L_0001, 96', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a66349b68', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a6634a268', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a6634a540', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x177a66e0a921', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a66e0aa72', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a66e0addd', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a66e0b0b5', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a66e1b830', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 9;TIP_50uLF_L_0001, 10;TIP_50uLF_L_0001, 11;TIP_50uLF_L_0001, 12;TIP_50uLF_L_0001, 13;TIP_50uLF_L_0001, 14;TIP_50uLF_L_0001, 15;TIP_50uLF_L_0001, 16', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a66e1b956', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a66e1bc97', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a66e1bf15', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a66e2c745', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 17;TIP_50uLF_L_0001, 18;TIP_50uLF_L_0001, 19;TIP_50uLF_L_0001, 20;TIP_50uLF_L_0001, 21;TIP_50uLF_L_0001, 22;TIP_50uLF_L_0001, 23;TIP_50uLF_L_0001, 24', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a66e2c80e', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a66e2cb5d', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a66e2cdc6', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a66e3b5b5', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 25;TIP_50uLF_L_0001, 26;TIP_50uLF_L_0001, 27;TIP_50uLF_L_0001, 28;TIP_50uLF_L_0001, 29;TIP_50uLF_L_0001, 30;TIP_50uLF_L_0001, 31;TIP_50uLF_L_0001, 32', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a66e3b67a', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a66e3b9ae', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a66e3bc26', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a66e4a1b3', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 33;TIP_50uLF_L_0001, 34;TIP_50uLF_L_0001, 35;TIP_50uLF_L_0001, 36;TIP_50uLF_L_0001, 37;TIP_50uLF_L_0001, 38;TIP_50uLF_L_0001, 39;TIP_50uLF_L_0001, 40', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a66e4a2e7', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a66e4a5cb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a66e4a820', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a66e59d72', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 41;TIP_50uLF_L_0001, 42;TIP_50uLF_L_0001, 43;TIP_50uLF_L_0001, 44;TIP_50uLF_L_0001, 45;TIP_50uLF_L_0001, 46;TIP_50uLF_L_0001, 47;TIP_50uLF_L_0001, 48', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a66e59e37', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a66e5a1b4', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a66e5a459', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a66e69331', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 49;TIP_50uLF_L_0001, 50;TIP_50uLF_L_0001, 51;TIP_50uLF_L_0001, 52;TIP_50uLF_L_0001, 53;TIP_50uLF_L_0001, 54;TIP_50uLF_L_0001, 55;TIP_50uLF_L_0001, 56', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a66e69431', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a66e69713', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a66e69975', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a66e77e27', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 57;TIP_50uLF_L_0001, 58;TIP_50uLF_L_0001, 59;TIP_50uLF_L_0001, 60;TIP_50uLF_L_0001, 61;TIP_50uLF_L_0001, 62;TIP_50uLF_L_0001, 63;TIP_50uLF_L_0001, 64', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a66e77f04', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a66e781dc', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a66e78452', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a66e874ab', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 65;TIP_50uLF_L_0001, 66;TIP_50uLF_L_0001, 67;TIP_50uLF_L_0001, 68;TIP_50uLF_L_0001, 69;TIP_50uLF_L_0001, 70;TIP_50uLF_L_0001, 71;TIP_50uLF_L_0001, 72', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a66e8756c', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a66e87837', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a66e87a87', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a66e96a20', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 73;TIP_50uLF_L_0001, 74;TIP_50uLF_L_0001, 75;TIP_50uLF_L_0001, 76;TIP_50uLF_L_0001, 77;TIP_50uLF_L_0001, 78;TIP_50uLF_L_0001, 79;TIP_50uLF_L_0001, 80', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a66e96ae8', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a66e96dc8', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a66e97038', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a66ea5c91', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 81;TIP_50uLF_L_0001, 82;TIP_50uLF_L_0001, 83;TIP_50uLF_L_0001, 84;TIP_50uLF_L_0001, 85;TIP_50uLF_L_0001, 86;TIP_50uLF_L_0001, 87;TIP_50uLF_L_0001, 88', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a66ea5d9c', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a66ea6072', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a66ea62c6', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x177a66eb63fb', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 89;TIP_50uLF_L_0001, 90;TIP_50uLF_L_0001, 91;TIP_50uLF_L_0001, 92;TIP_50uLF_L_0001, 93;TIP_50uLF_L_0001, 94;TIP_50uLF_L_0001, 95;TIP_50uLF_L_0001, 96', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x177a66eb64c5', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x177a66eb67cb', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x177a66eb6a2e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x17f33ac1112e', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 1;HTF_L_0001, 2;HTF_L_0001, 3;HTF_L_0001, 4;HTF_L_0001, 5;HTF_L_0001, 6;HTF_L_0001, 7;HTF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f33ac11225', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f33ac112bf', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f33ac11344', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f33ac4c69e', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 9;HTF_L_0001, 10;HTF_L_0001, 11;HTF_L_0001, 12;HTF_L_0001, 13;HTF_L_0001, 14;HTF_L_0001, 15;HTF_L_0001, 16', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f33ac4c73c', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f33ac4c800', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f33ac4c887', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f33ac87ae0', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 17;HTF_L_0001, 18;HTF_L_0001, 19;HTF_L_0001, 20;HTF_L_0001, 21;HTF_L_0001, 22;HTF_L_0001, 23;HTF_L_0001, 24', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f33ac87b7e', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f33ac87c45', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f33ac87ccf', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f33acc3a49', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 25;HTF_L_0001, 26;HTF_L_0001, 27;HTF_L_0001, 28;HTF_L_0001, 29;HTF_L_0001, 30;HTF_L_0001, 31;HTF_L_0001, 32', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f33acc3ae6', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f33acc3ba2', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f33acc3c26', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f33acfe01c', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 33;HTF_L_0001, 34;HTF_L_0001, 35;HTF_L_0001, 36;HTF_L_0001, 37;HTF_L_0001, 38;HTF_L_0001, 39;HTF_L_0001, 40', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f33acfe0b9', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f33acfe144', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f33acfe1c5', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f33ad6e082', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 41;HTF_L_0001, 42;HTF_L_0001, 43;HTF_L_0001, 44;HTF_L_0001, 45;HTF_L_0001, 46;HTF_L_0001, 47;HTF_L_0001, 48', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f33ad6e119', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f33ad6e1c9', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f33ad6e24e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f33ae453bf', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 49;HTF_L_0001, 50;HTF_L_0001, 51;HTF_L_0001, 52;HTF_L_0001, 53;HTF_L_0001, 54;HTF_L_0001, 55;HTF_L_0001, 56', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f33ae45460', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f33ae454ed', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f33ae4556e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f33af2561e', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 57;HTF_L_0001, 58;HTF_L_0001, 59;HTF_L_0001, 60;HTF_L_0001, 61;HTF_L_0001, 62;HTF_L_0001, 63;HTF_L_0001, 64', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f33af256b4', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f33af25745', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f33af257c4', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f33aff8cd8', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 65;HTF_L_0001, 66;HTF_L_0001, 67;HTF_L_0001, 68;HTF_L_0001, 69;HTF_L_0001, 70;HTF_L_0001, 71;HTF_L_0001, 72', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f33aff8d71', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f33aff8df8', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f33aff8ea5', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f33b0c1be4', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 73;HTF_L_0001, 74;HTF_L_0001, 75;HTF_L_0001, 76;HTF_L_0001, 77;HTF_L_0001, 78;HTF_L_0001, 79;HTF_L_0001, 80', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f33b0c1c89', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f33b0c1d19', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f33b0c1d9c', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f33b1cc200', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 81;HTF_L_0001, 82;HTF_L_0001, 83;HTF_L_0001, 84;HTF_L_0001, 85;HTF_L_0001, 86;HTF_L_0001, 87;HTF_L_0001, 88', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f33b1cc2cf', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f33b1cc395', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f33b1cc45e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f33b41bbae', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 89;HTF_L_0001, 90;HTF_L_0001, 91;HTF_L_0001, 92;HTF_L_0001, 93;HTF_L_0001, 94;HTF_L_0001, 95;HTF_L_0001, 96', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f33b41bc79', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f33b41bd2a', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f33b41bdd0', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'end', 'id': '0x0'} {'command': 'end', 'id': '0x0'} {'command': 'end', 'id': '0x0'} {'command': 'end', 'id': '0x0'} {'command': 'end', 'id': '0x0'} {'command': 'end', 'id': '0x0'} {'command': 'end', 'id': '0x0'} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x17f38b28ac7f', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 1;HTF_L_0001, 2;HTF_L_0001, 3;HTF_L_0001, 4;HTF_L_0001, 5;HTF_L_0001, 6;HTF_L_0001, 7;HTF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f38b28ae1f', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f38b28af3b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f38b28afe9', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f38b2d290c', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 9;HTF_L_0001, 10;HTF_L_0001, 11;HTF_L_0001, 12;HTF_L_0001, 13;HTF_L_0001, 14;HTF_L_0001, 15;HTF_L_0001, 16', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f38b2d2a3f', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f38b2d2bd4', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f38b2d2c8a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f38b341861', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 17;HTF_L_0001, 18;HTF_L_0001, 19;HTF_L_0001, 20;HTF_L_0001, 21;HTF_L_0001, 22;HTF_L_0001, 23;HTF_L_0001, 24', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f38b341970', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f38b341a2b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f38b341c6d', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f38b3c79eb', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 25;HTF_L_0001, 26;HTF_L_0001, 27;HTF_L_0001, 28;HTF_L_0001, 29;HTF_L_0001, 30;HTF_L_0001, 31;HTF_L_0001, 32', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f38b3c7b56', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f38b3c7caa', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f38b3c7d9a', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f38b43dce1', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 33;HTF_L_0001, 34;HTF_L_0001, 35;HTF_L_0001, 36;HTF_L_0001, 37;HTF_L_0001, 38;HTF_L_0001, 39;HTF_L_0001, 40', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f38b43dde2', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f38b43ded2', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f38b43df91', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f38b4be034', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 41;HTF_L_0001, 42;HTF_L_0001, 43;HTF_L_0001, 44;HTF_L_0001, 45;HTF_L_0001, 46;HTF_L_0001, 47;HTF_L_0001, 48', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f38b4be0fb', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f38b4be1b0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f38b4be271', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f38b537b36', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 49;HTF_L_0001, 50;HTF_L_0001, 51;HTF_L_0001, 52;HTF_L_0001, 53;HTF_L_0001, 54;HTF_L_0001, 55;HTF_L_0001, 56', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f38b537bf2', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f38b537c9f', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f38b537d8f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f38b5ab5d4', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 57;HTF_L_0001, 58;HTF_L_0001, 59;HTF_L_0001, 60;HTF_L_0001, 61;HTF_L_0001, 62;HTF_L_0001, 63;HTF_L_0001, 64', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f38b5ab698', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f38b5ab74b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f38b5ab846', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f38b62c506', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 65;HTF_L_0001, 66;HTF_L_0001, 67;HTF_L_0001, 68;HTF_L_0001, 69;HTF_L_0001, 70;HTF_L_0001, 71;HTF_L_0001, 72', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f38b62c5c8', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f38b62c676', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f38b62c721', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f38b69fdfb', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 73;HTF_L_0001, 74;HTF_L_0001, 75;HTF_L_0001, 76;HTF_L_0001, 77;HTF_L_0001, 78;HTF_L_0001, 79;HTF_L_0001, 80', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f38b69feca', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f38b69ff7b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f38b6a0055', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f38b72147b', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 81;HTF_L_0001, 82;HTF_L_0001, 83;HTF_L_0001, 84;HTF_L_0001, 85;HTF_L_0001, 86;HTF_L_0001, 87;HTF_L_0001, 88', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f38b721577', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f38b721649', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f38b7216ff', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f38b7a98d9', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 89;HTF_L_0001, 90;HTF_L_0001, 91;HTF_L_0001, 92;HTF_L_0001, 93;HTF_L_0001, 94;HTF_L_0001, 95;HTF_L_0001, 96', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f38b7a99a3', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f38b7a9aaf', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f38b7a9b54', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x17f399787ffa', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 1;HTF_L_0001, 2;HTF_L_0001, 3;HTF_L_0001, 4;HTF_L_0001, 5;HTF_L_0001, 6;HTF_L_0001, 7;HTF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f399788139', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f39978820e', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f3997882b6', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f3997f54f1', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 9;HTF_L_0001, 10;HTF_L_0001, 11;HTF_L_0001, 12;HTF_L_0001, 13;HTF_L_0001, 14;HTF_L_0001, 15;HTF_L_0001, 16', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f3997f55d8', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f3997f56d4', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f3997f5789', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f399876af0', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 17;HTF_L_0001, 18;HTF_L_0001, 19;HTF_L_0001, 20;HTF_L_0001, 21;HTF_L_0001, 22;HTF_L_0001, 23;HTF_L_0001, 24', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f399876bb8', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f399876c67', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A3;MIDI_Pipette, B3;MIDI_Pipette, C3;MIDI_Pipette, D3;MIDI_Pipette, E3;MIDI_Pipette, F3;MIDI_Pipette, G3;MIDI_Pipette, H3', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f399876e9e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f3998ff47a', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 25;HTF_L_0001, 26;HTF_L_0001, 27;HTF_L_0001, 28;HTF_L_0001, 29;HTF_L_0001, 30;HTF_L_0001, 31;HTF_L_0001, 32', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f3998ff5ab', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f3998ff678', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A4;MIDI_Pipette, B4;MIDI_Pipette, C4;MIDI_Pipette, D4;MIDI_Pipette, E4;MIDI_Pipette, F4;MIDI_Pipette, G4;MIDI_Pipette, H4', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f3998ff71e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f399985eaf', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 33;HTF_L_0001, 34;HTF_L_0001, 35;HTF_L_0001, 36;HTF_L_0001, 37;HTF_L_0001, 38;HTF_L_0001, 39;HTF_L_0001, 40', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f399986028', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f399986176', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A5;MIDI_Pipette, B5;MIDI_Pipette, C5;MIDI_Pipette, D5;MIDI_Pipette, E5;MIDI_Pipette, F5;MIDI_Pipette, G5;MIDI_Pipette, H5', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f399986281', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f399a10d2e', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 41;HTF_L_0001, 42;HTF_L_0001, 43;HTF_L_0001, 44;HTF_L_0001, 45;HTF_L_0001, 46;HTF_L_0001, 47;HTF_L_0001, 48', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f399a10def', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f399a10ea0', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A6;MIDI_Pipette, B6;MIDI_Pipette, C6;MIDI_Pipette, D6;MIDI_Pipette, E6;MIDI_Pipette, F6;MIDI_Pipette, G6;MIDI_Pipette, H6', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f399a10f4f', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f399a86402', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 49;HTF_L_0001, 50;HTF_L_0001, 51;HTF_L_0001, 52;HTF_L_0001, 53;HTF_L_0001, 54;HTF_L_0001, 55;HTF_L_0001, 56', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f399a864bf', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f399a86570', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A7;MIDI_Pipette, B7;MIDI_Pipette, C7;MIDI_Pipette, D7;MIDI_Pipette, E7;MIDI_Pipette, F7;MIDI_Pipette, G7;MIDI_Pipette, H7', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f399a86660', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f399b00a54', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 57;HTF_L_0001, 58;HTF_L_0001, 59;HTF_L_0001, 60;HTF_L_0001, 61;HTF_L_0001, 62;HTF_L_0001, 63;HTF_L_0001, 64', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f399b00b4f', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f399b00c50', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A8;MIDI_Pipette, B8;MIDI_Pipette, C8;MIDI_Pipette, D8;MIDI_Pipette, E8;MIDI_Pipette, F8;MIDI_Pipette, G8;MIDI_Pipette, H8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f399b00d02', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f399b7a823', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 65;HTF_L_0001, 66;HTF_L_0001, 67;HTF_L_0001, 68;HTF_L_0001, 69;HTF_L_0001, 70;HTF_L_0001, 71;HTF_L_0001, 72', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f399b7a8f9', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f399b7a9a9', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A9;MIDI_Pipette, B9;MIDI_Pipette, C9;MIDI_Pipette, D9;MIDI_Pipette, E9;MIDI_Pipette, F9;MIDI_Pipette, G9;MIDI_Pipette, H9', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f399b7aa4e', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f399bf0bc7', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 73;HTF_L_0001, 74;HTF_L_0001, 75;HTF_L_0001, 76;HTF_L_0001, 77;HTF_L_0001, 78;HTF_L_0001, 79;HTF_L_0001, 80', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f399bf0c8b', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f399bf0d3c', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A10;MIDI_Pipette, B10;MIDI_Pipette, C10;MIDI_Pipette, D10;MIDI_Pipette, E10;MIDI_Pipette, F10;MIDI_Pipette, G10;MIDI_Pipette, H10', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f399bf0df0', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f399c67aaa', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 81;HTF_L_0001, 82;HTF_L_0001, 83;HTF_L_0001, 84;HTF_L_0001, 85;HTF_L_0001, 86;HTF_L_0001, 87;HTF_L_0001, 88', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f399c67ba6', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f399c67c6b', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A11;MIDI_Pipette, B11;MIDI_Pipette, C11;MIDI_Pipette, D11;MIDI_Pipette, E11;MIDI_Pipette, F11;MIDI_Pipette, G11;MIDI_Pipette, H11', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f399c67d21', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'channelTipPickUp', 'id': '0x17f399cee308', 'tipSequence': '', 'labwarePositions': 'HTF_L_0001, 89;HTF_L_0001, 90;HTF_L_0001, 91;HTF_L_0001, 92;HTF_L_0001, 93;HTF_L_0001, 94;HTF_L_0001, 95;HTF_L_0001, 96', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x17f399cee3d1', 'aspirateSequence': '', 'labwarePositions': 'rgt_cont_60ml_BC_A00_0001, 1;rgt_cont_60ml_BC_A00_0001, 2;rgt_cont_60ml_BC_A00_0001, 3;rgt_cont_60ml_BC_A00_0001, 4;rgt_cont_60ml_BC_A00_0001, 5;rgt_cont_60ml_BC_A00_0001, 6;rgt_cont_60ml_BC_A00_0001, 7;rgt_cont_60ml_BC_A00_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 2, 'capacitiveLLD': 1, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2, 'liquidHeight': 0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x17f399cee480', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A12;MIDI_Pipette, B12;MIDI_Pipette, C12;MIDI_Pipette, D12;MIDI_Pipette, E12;MIDI_Pipette, F12;MIDI_Pipette, G12;MIDI_Pipette, H12', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x17f399cee533', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} {'command': 'channelTipPickUp', 'id': '0x1921807096b5', 'tipSequence': '', 'labwarePositions': 'TIP_50uLF_L_0001, 1;TIP_50uLF_L_0001, 2;TIP_50uLF_L_0001, 3;TIP_50uLF_L_0001, 4;TIP_50uLF_L_0001, 5;TIP_50uLF_L_0001, 6;TIP_50uLF_L_0001, 7;TIP_50uLF_L_0001, 8', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1} {'command': 'channelAspirate', 'id': '0x192180709aec', 'aspirateSequence': '', 'labwarePositions': 'MIDI_Pipette, A1;MIDI_Pipette, B1;MIDI_Pipette, C1;MIDI_Pipette, D1;MIDI_Pipette, E1;MIDI_Pipette, F1;MIDI_Pipette, G1;MIDI_Pipette, H1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'aspirateMode': 0, 'capacitiveLLD': 0, 'pressureLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'maxLLdDifference': 0.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'aspPosAboveTouch': 0.0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelDispense', 'id': '0x192180709d98', 'dispenseSequence': '', 'labwarePositions': 'MIDI_Pipette, A2;MIDI_Pipette, B2;MIDI_Pipette, C2;MIDI_Pipette, D2;MIDI_Pipette, E2;MIDI_Pipette, F2;MIDI_Pipette, G2;MIDI_Pipette, H2', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'dispenseMode': 8, 'capacitiveLLD': 0, 'liquidFollowing': 0, 'submergeDepth': 2.0, 'liquidHeight': 1.0, 'mixCycles': 0, 'mixPosition': 0.0, 'mixVolume': 0.0, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0, 'airTransportRetractDist': 10.0, 'touchOff': 0, 'dispPositionAboveTouch': 0.0, 'zMoveAfterStep': 0, 'sideTouch': 0, 'volumes': [50, 50, 50, 50, 50, 50, 50, 50], 'liquidClass': 'Tip_50ulFilter_Water_DispenseSurface_Empty'} {'command': 'channelTipEject', 'id': '0x192180709eae', 'wasteSequence': '', 'labwarePositions': ', 1;, 1;, 1;, 1;, 1;, 1;, 1;, 1', 'channelVariable': '1111111100000000', 'sequenceCounting': 0, 'channelUse': 1, 'useDefaultWaste': 1, 'xDisplacement': 0.0, 'yDisplacement': 0.0, 'zDisplacement': 0.0} {'command': 'end', 'id': '0x0'} ================================================ FILE: pyhamilton/ngs/tests/magnetic_bead_cleanup.py ================================================ import os from pyhamilton import (HamiltonInterface, hhs_create_usb_device, hhs_set_simulation, normal_logging, odtc_execute_protocol, odtc_get_status, odtc_open_door, odtc_close_door, Plate96, Tip96, TrackedTips, hhs_start_shaker, hhs_stop_shaker, layout_item, LayoutManager, Reservoir60mL, StackedResources) from pyhamilton_advanced import (shear_plate_96, pip_mix, mix_plate, double_aspirate_supernatant_96, transfer_96, multi_dispense, pip_transfer, ethanol_wash, multi_dispense, transport_resource, GripDirection, GrippedResource, GripperParams) import time def magnetic_bead_cleanup(): pass lmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay') MIDI_Pipette = layout_item(lmgr, Plate96, 'MIDI_Pipette') HHS5_MIDI = layout_item(lmgr, Plate96, 'HHS5_MIDI') MIDI_OnMagnet = layout_item(lmgr, Plate96, 'MIDI_OnMagnet') LiquidWaste = layout_item(lmgr, Plate96, 'LiquidWaste_MPH') #Ethanol80 = layout_item(lmgr, Plate96, 'Ethanol80') #RGT_50 = layout_item(lmgr, Reservoir60mL, 'RGT_50') #Ethanol80 = [(RGT_50, 1)] # Position 1, 2mL tube #QIAseq_Beads = [(RGT_50, 5)] # Position 5, 2mL tube #Nuclease_Free_Water_positions = [(RGT_50, 7)] # Position 10, 2mL tube HSP_Stack = StackedResources.from_prefix( tracker_id="HSP_L", prefix="HSP_L", count=4, reset=True) Lid_Stack = StackedResources.from_prefix( tracker_id="LID_L", prefix="LID_L", count=2, reset=True) MIDI_Stack = StackedResources.from_prefix( tracker_id="MIDI_L", prefix="MIDI_L", count=4, reset=True) tracked_tips_50uL = TrackedTips.from_prefix( tracker_id="TIP_50uLF_L", volume_capacity=50, prefix="TIP_50uLF_L", count=8, tip_type=Tip96, lmgr=lmgr) tracked_tips_300uL = TrackedTips.from_prefix( tracker_id="STF_L", volume_capacity=300, prefix="STF_L", count=8, tip_type=Tip96, lmgr=lmgr) tracked_tips_1000uL = TrackedTips.from_prefix( tracker_id="HTF_L", volume_capacity=1000, prefix="HTF_L", count=2, tip_type=Tip96, lmgr=lmgr) num_samples = 24 class HHS: def __init__(self, node, layout_name): self.node = node self.layout_name = layout_name HHS_MIDI_1 = HHS(node=4, layout_name="HHS4_MIDI") HHS_MIDI_2 = HHS(node=5, layout_name="HHS5_MIDI") HHS_MIDI_3 = HHS(node=3, layout_name="HHS3_MIDI") HHS_HSP_1 = HHS(node=1, layout_name="HHS1_HSP") HHS_HSP_2 = HHS(node=2, layout_name="HHS2_HSP") def initialize_hhs(ham_int, simulating): hhs_set_simulation(ham_int, simulating) # Set simulation mode if needed for node in range(1,5): hhs_create_usb_device(ham_int, node) print(f"Created USB device for ML_STAR {node}") if __name__ == "__main__": with HamiltonInterface(windowed=True, simulating=False) as ham_int: # Magnetic bead cleanup workflow (assuming beads already bound to samples) # Starting with samples + beads already mixed in MIDI_Pipette ham_int.initialize() # Initialize the HamiltonInterface initialize_hhs(ham_int, simulating=False) # Initialize the HHS modules # Step 1: Transport to shaker for initial mixing transport_resource(ham_int, MIDI_Pipette.layout_name(), HHS_MIDI_1.layout_name, resource_type=GrippedResource.MIDI, core_gripper=True) # Step 2: Shake to ensure proper bead binding hhs_start_shaker(ham_int, HHS_MIDI_1.node, shaking_speed=1000) # 1000 RPM for 30 seconds time.sleep(30) hhs_stop_shaker(ham_int, HHS_MIDI_1.node) # Step 3: Transport to magnetic separation transport_resource(ham_int, HHS_MIDI_1.layout_name, 'MIDI_OnMagnet', grip_direction=GripDirection.FRONT, resource_type=GrippedResource.MIDI, core_gripper=True) """ # Step 4: Wait for magnetic separation time.sleep(60) # Allow beads to settle # Step 5: Remove supernatant (unbound material) supernatant_removal_volume = 50 # Adjust as needed double_aspirate_supernatant_96(ham_int, tracked_tips_300uL, MIDI_OnMagnet, LiquidWaste, supernatant_removal_volume, liquid_class='StandardVolumeFilter_Water_DispenseJet_Empty', aspirate_height_from_bottom=1) # Step 6: First ethanol wash # Move back to shaker for wash transport_resource(ham_int, 'MIDI_OnMagnet', 'HHS5_MIDI', grip_direction=GripDirection.FRONT, resource_type=GrippedResource.MIDI, core_gripper=True) # Add ethanol hhs5_positions = [(HHS5_MIDI, idx) for idx in range(num_samples)] post_shear_etoh_wash_volume = 200 # Adjust as needed pip_transfer(ham_int, tracked_tips_300uL, Ethanol80, hhs5_positions, [post_shear_etoh_wash_volume] * num_samples, liquid_class='StandardVolumeFilter_Water_DispenseJet_Empty', aspirate_height_from_bottom=1, dispense_height_from_bottom=1) # Shake with ethanol hhs_start_shaker(ham_int, 'HHS5_MIDI', 1000, 30) time.sleep(30) hhs_stop_shaker(ham_int, 'HHS5_MIDI') # Back to magnet transport_resource(ham_int, 'HHS5_MIDI', 'MIDI_OnMagnet', grip_direction=GripDirection.FRONT, resource_type=GrippedResource.MIDI, core_gripper=True) # Wait for separation time.sleep(60) # Remove ethanol supernatant double_aspirate_supernatant_96(ham_int, tracked_tips_300uL, magnet_positions, post_shear_etoh_wash_volume + 10, # Remove slightly more liquid_class='StandardVolumeFilter_Water_DispenseJet_Empty', aspirate_height_from_bottom=1) # Step 7: Second ethanol wash (repeat of step 6) transport_resource(ham_int, 'MIDI_OnMagnet', 'HHS5_MIDI', grip_direction=GripDirection.FRONT, resource_type=GrippedResource.MIDI, core_gripper=True) pip_transfer(ham_int, tracked_tips_300uL, Ethanol80, hhs5_positions, [post_shear_etoh_wash_volume] * num_samples, liquid_class='StandardVolumeFilter_Water_DispenseJet_Empty', aspirate_height_from_bottom=1, dispense_height_from_bottom=1) hhs_start_shaker(ham_int, 'HHS5_MIDI', 1000, 30) time.sleep(30) hhs_stop_shaker(ham_int, 'HHS5_MIDI') transport_resource(ham_int, 'HHS5_MIDI', 'MIDI_OnMagnet', grip_direction=GripDirection.FRONT, resource_type=GrippedResource.MIDI, core_gripper=True) time.sleep(60) double_aspirate_supernatant_96(ham_int, tracked_tips_300uL, magnet_positions, post_shear_etoh_wash_volume + 10, liquid_class='StandardVolumeFilter_Water_DispenseJet_Empty', aspirate_height_from_bottom=1) # Step 8: Air dry beads transport_resource(ham_int, 'MIDI_OnMagnet', 'HHS5_MIDI', grip_direction=GripDirection.FRONT, resource_type=GrippedResource.MIDI, core_gripper=True) time.sleep(300) # Air dry for 5 minutes # Step 9: Elution # Add elution buffer pip_transfer(ham_int, tracked_tips_300uL, NucleaseFreeWater, hhs5_positions, [post_shear_elution_buffer_volume] * num_samples, liquid_class='StandardVolumeFilter_Water_DispenseJet_Empty', aspirate_height_from_bottom=1, dispense_height_from_bottom=1) # Mix with elution buffer pip_mix(ham_int, tracked_tips_300uL, hhs5_positions, post_shear_elution_buffer_volume, mix_cycles=10, liquid_class='StandardVolumeFilter_Water_DispenseJet_Empty', mix_height_from_bottom=1) # Shake for elution hhs_start_shaker(ham_int, 'HHS5_MIDI', 1000, 30) time.sleep(30) hhs_stop_shaker(ham_int, 'HHS5_MIDI') # Final magnetic separation transport_resource(ham_int, 'HHS5_MIDI', 'MIDI_OnMagnet', grip_direction=GripDirection.FRONT, resource_type=GrippedResource.MIDI, core_gripper=True) time.sleep(60) # Step 10: Collect eluted samples # Get fresh plate for clean samples transport_resource(ham_int, HSP_Stack.fetch_next(), 'HSP_Pipette2', resource_type=GrippedResource.PCR, core_gripper=True) hsp_positions = [(HSP_Pipette2, idx) for idx in range(num_samples)] # Transfer eluted samples to clean plate transfer_96(ham_int, tracked_tips_300uL, magnet_positions, hsp_positions, [post_shear_elution_volume] * num_samples, liquid_class='StandardVolumeFilter_Water_DispenseJet_Empty', aspirate_height_from_bottom=1, dispense_height_from_bottom=1) # Step 11: Cleanup - move waste plate transport_resource(ham_int, 'MIDI_OnMagnet', 'MIDI_Waste', resource_type=GrippedResource.MIDI, core_gripper=True) """ ================================================ FILE: pyhamilton/ngs/tests/mix_plate.py ================================================ from pyhamilton import (HamiltonInterface, LayoutManager, Reservoir60mL, TrackedTips, StackedResources, Tip96, Plate96, layout_item, normal_logging) import os from pyhamilton_advanced import shear_plate_96, double_aspirate_supernatant_96, ethanol_wash, pip_transfer, mix_plate lmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay') # Perhaps import stack management MIDI_OffMagnet = layout_item(lmgr, Plate96, 'MIDI_Pipette') # Assuming this is defined elsewhere in the layout MagBeads_Container = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0001') ER_Mix = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0002') EDTA = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0003') tips = tip_tracker_50uL = TrackedTips.from_prefix( tracker_id="TIP_50uLF_L", prefix="TIP_50uLF_L", count=8, tip_type=Tip96, lmgr=lmgr, reset=True # Reset the tracker state ) # This works with HamiltonInterface(windowed=True, simulating=False) as ham_int: ham_int.initialize() normal_logging(ham_int, os.getcwd()) mix_plate(ham_int, tips, MIDI_OffMagnet, 100, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty') ================================================ FILE: pyhamilton/ngs/tests/multi_dispense.py ================================================ from pyhamilton import (HamiltonInterface, LayoutManager, Reservoir60mL, TrackedTips, StackedResources, Tip96, Plate96, layout_item, normal_logging) import os from pyhamilton_advanced import (shear_plate_96, double_aspirate_supernatant_96, ethanol_wash, pip_transfer, multi_dispense, build_dispense_batches, batch_columnwise_positions, split_aspiration_positions) lmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay') # Perhaps import stack management MIDI_OffMagnet = layout_item(lmgr, Plate96, 'MIDI_Pipette') # Assuming this is defined elsewhere in the layout MagBeads_Container = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0001') ER_Mix = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0002') EDTA = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0003') tips = tip_tracker_300uL = TrackedTips.from_prefix( tracker_id="STF_L", prefix="STF_L", volume_capacity=300, count=3, tip_type=Tip96, lmgr=lmgr, reset=True # Reset the tracker state ) def condense_volumes(lst, max_volume): total = sum(lst) return [max_volume] * (total // max_volume) + ([total % max_volume] if 0 < total % max_volume >= min(lst) else []) #dispense_positions = [(MIDI_OffMagnet, idx) for idx in range(96)] #dispense_volumes = [50]*96 # Assuming 50 uL for each sample #aspirate_positions = [(MagBeads_Container, idx) for idx in range(8)] #aspirate_volumes = condense_volumes(dispense_volumes, 200) #column_dispense_positions = batch_columnwise_positions(dispense_positions) # Batch dispense positions into columns of 8 #column_volumes_list = batch_columnwise_positions(dispense_volumes) #column_aspiration_positions = batch_columnwise_positions(aspirate_positions) # Batch aspiration positions into columns of 8 #column_aspiration_volumes_list = batch_columnwise_positions(aspirate_volumes) #column_aspiration_volumes = [300]*8 #batched_vols = build_dispense_batches(column_aspiration_volumes, column_dispense_positions, column_volumes_list) #print("Batched Volumes:", batched_vols) # Account for air transport volume in volume balance on the tips # Automated liquid class detection with integrated scale # TADM tool to pull up specific data for commands # Resource loading and error-proofing user inputs # Record every selection that the user makes in prompt windows # Error handling/ recovery # User prompts ## Radio buttons for step selection (start and stop) ## Input a worklist with list of samples ## Resource use calculations ## Visibility parameters for loading resources ## Specific tubes/ reagents on deck changing during run ## Variable start and stop selection # step_list = [function_1, function_2, function_3, ...] # for step in range(2,5): # step_list[step]() # Valid ranges, decision branching based on sample type # Start and stop points # User prompts related to steps chosen and relevant instruments # ODTC dynamic parameterization # Intermediate plating patterns and logic # Reagent plate creation specify tubes and volumes, reagent plate sequence specification # Time speedup for reagent plating (volume excess usage tradeoff compared to timing) # Firmware discussion with example ## Engineer firmware dispense command to prevent channel retract ## Firmware engine for custom commands (at what Z do you start, at what Z do you end) ## Mix by overturn ## Record that, go to bottom a configurable amount, aspirate a certain volume from there, go up to height and mix # Data tracking for trouble shooting ## cLLD for height tracking ## TADM ## If you are dispensing and you know what the liquid height should be, go to a fixed height ## Aspirate from reagent tube with cLLD and dispense to fixed height in sample container ## Reload tips while ODTC is working and general pre-defined tip reload prompts # Dead volume information management # Loading and user prompts, specific kit information <- top priority for NGS internal # Counterparts in EMEA convince these/ train how to use Python # Combined multi aspirate multi dispense for target volumes over the tip capacity in a single container # Start with known liquid classes that work well and pulling from database, good starting points for liquid class selection # Automated liquid class construction, correction curves for volumes # Predefined heights and other parameters for specific operations like bead aspiration similar to how the transport controller works, override potential for users # Pure Python tasks: randomizer, statistics, arbitrary data formats (xlsx, csv, JSON) # Python library for reading different data formats # Add tip support functionality (channel patterns, columnwise sequence inverting)'' # Highlight carrier X to simplify loading in loading dialog, other deck visibility functions (hxx 3D file, .x file) # Pre and post dispense with multidispense to enhance accuracy with HamiltonInterface(windowed=True, simulating=False) as ham_int: ham_int.initialize() normal_logging(ham_int, os.getcwd()) aspiration_positions = [(MagBeads_Container, idx) for idx in range(8)] dispense_positions = [(MIDI_OffMagnet, idx) for idx in range(96)] volumes = [50]*96 # multi_dispense(ham_int, tips, aspiration_positions, dispense_positions, volumes, liquid_class = 'StandardVolumeFilter_Water_DispenseJet_Part') ================================================ FILE: pyhamilton/ngs/tests/ngs_demo.py ================================================ from pyhamilton import (HamiltonInterface, LayoutManager, Reservoir60mL, TrackedTips, StackedResources, Tip96, Plate96, layout_item, normal_logging, tracked_tip_pick_up, tracked_tip_pick_up_96) import os from pyhamilton_advanced import (shear_plate_96, double_aspirate_supernatant_96, ethanol_wash, pip_transfer, multi_dispense, build_dispense_batches, batch_columnwise_positions, split_aspiration_positions) lmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay') MIDI_OffMagnet = layout_item(lmgr, Plate96, 'MIDI_Pipette') # Assuming this is defined elsewhere in the layout tips = tip_tracker_50uL = TrackedTips.from_prefix( tracker_id="TIP_50uLF_L", prefix="TIP_50uLF_L", volume_capacity=50, count=8, tip_type=Tip96, lmgr=lmgr, reset=True # Reset the tracker state ) with HamiltonInterface(windowed=True, simulating=False) as ham_int: ham_int.initialize() normal_logging(ham_int, os.getcwd()) tracked_tip_pick_up_96(ham_int, tip_tracker_50uL) ================================================ FILE: pyhamilton/ngs/tests/pip_transfer.py ================================================ from pyhamilton import (HamiltonInterface, LayoutManager, Reservoir60mL, TrackedTips, StackedResources, Tip96, Plate96, layout_item, normal_logging) import os from pyhamilton_advanced import shear_plate_96, double_aspirate_supernatant_96, ethanol_wash, pip_transfer lmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay') # Perhaps import stack management MIDI_OffMagnet = layout_item(lmgr, Plate96, 'MIDI_Pipette') # Assuming this is defined elsewhere in the layout MagBeads_Container = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0001') ER_Mix = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0002') EDTA = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0003') tips = tip_tracker_50uL = TrackedTips.from_prefix( tracker_id="TIP_50uLF_L", prefix="TIP_50uLF_L", volume_capacity=50, count=8, tip_type=Tip96, lmgr=lmgr, reset=True # Reset the tracker state ) # This seems to mostly work. We don't yet query the user for refilling troughs or try to accumulate residual volumes. # 50 seconds between dispense cycles with HamiltonInterface(windowed=True, simulating=False) as ham_int: ham_int.initialize() normal_logging(ham_int, os.getcwd()) aspiration_positions = [(MagBeads_Container, idx) for idx in range(8)] dispense_positions = [(MIDI_OffMagnet, idx) for idx in range(96)] volumes = [50]*96 pip_transfer(ham_int, tips, aspiration_positions, dispense_positions, volumes, liquid_class = 'Tip_50ulFilter_Water_DispenseSurface_Empty', aspirate_height_from_bottom=1, dispense_height_from_bottom=1) ================================================ FILE: pyhamilton/ngs/tests/set_labware_property.py ================================================ from pyhamilton import HamiltonInterface, TipType with HamiltonInterface(simulating=False, windowed=True) as ham_int: ham_int.initialize() ham_int.set_labware_property('TipSupport_0001', 'MlStarCore96TipRack', TipType.uL_300) ================================================ FILE: pyhamilton/ngs/tests/stacking.py ================================================ from pyhamilton import (HamiltonInterface, LayoutManager, Tip96, TrackedTips, resource_list_with_prefix, Tip96, Plate96, ResourceType, tip_pick_up, DeckResource, tracked_tip_pick_up, tracked_tip_pick_up_96, StackedResources, move_plate_using_gripper) from pyhamilton_advanced import (transport_resource, GripDirection, GrippedResource, GripperParams) BioRadHardShell_Stack = StackedResources.from_prefix("BioRadHardShell_Stack", "BioRadHardShell_Stack", 3) AbgeneMIDI_Stack = StackedResources.from_prefix("AbgeneMIDI_Stack1", "AbgeneMIDI_Stack1", 3) lmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay') # TODO: Don't eject core gripper tool between pickups with HamiltonInterface(windowed=True) as ham_int: ham_int.initialize() for _ in range(3): plate_seq = AbgeneMIDI_Stack.fetch_next() transport_resource(ham_int, plate_seq, 'HHS3_MIDI', resource_type=GrippedResource.MIDI, stack=True, core_gripper=True) ================================================ FILE: pyhamilton/ngs/tests/thermal_cycler/thermal_cycler_with_transport.py ================================================ from pyhamilton import (HamiltonInterface, LayoutManager, Plate96, Tip96, hhs_set_simulation, move_plate_using_gripper, hhs_create_star_device, hhs_create_usb_device, hhs_set_temp_param, hhs_start_temp_ctrl, hhs_stop_temp_ctrl, hhs_start_shaker, hhs_stop_shaker, TrackedTips, StackedResources, Reservoir60mL, normal_logging, layout_item, odtc_connect, odtc_initialize, odtc_close_door, odtc_download_protocol, odtc_evaluate_error, odtc_abort, odtc_reset, odtc_open_door, odtc_execute_protocol, odtc_get_status) from pyhamilton_advanced import (shear_plate_96, double_aspirate_supernatant_96, pip_mix, mix_plate, transfer_96, multi_dispense, pip_transfer, ethanol_wash, multi_dispense, transport_resource, GripDirection, GrippedResource, GripperParams) import time import os def thermal_cycle_with_plate_movement(ham_int, source_plate_sequence, odtc_location_sequence, lid_stack, protocol_file_path): """ Common pattern for thermal cycling: Move plate to thermal cycler, add lid, run program, remove lid, move back Args: ham_int: Hamilton interface object source_plate_name: Name of the source plate position (e.g., 'HSP_Pipette2') destination_plate_name: Name of the destination plate position (e.g., 'HSP_ODTC') lid_stack: StackedResources object for lids thermal_cycler: ODTC thermal cycler object """ # Open thermal cycler door odtc_open_door(ham_int, device_id) # Move plate from source to destination (usually ODTC) using iswap transport_resource(ham_int, source_plate_sequence, odtc_location_sequence, grip_direction=GripDirection.RIGHT, resource_type=GrippedResource.PCR, iswap=True) # Add lid to the plate lid = lid_stack.fetch_next() transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC', resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True) # Close door and run thermal cycler program odtc_close_door(ham_int, device_id) duration, resultID = odtc_execute_protocol(ham_int, device_id, protocol_file_path, priority=1) odtc_ready = False while not odtc_ready: odtc_ready = odtc_get_status(ham_int, device_id) == 'idle' time.sleep(5) odtc_get_status(ham_int, device_id) # Open door after program completion odtc_open_door(ham_int, device_id) # Remove lid from the plate transport_resource(ham_int, 'Ham_ComfortLid_ODTC', lid_stack.fetch_next_unoccupied(), resource_type=GrippedResource.LID, core_gripper=True) # Move plate back to source position using iswap transport_resource(ham_int, odtc_location_sequence, source_plate_sequence, resource_type=GrippedResource.PCR, iswap=True) return duration, resultID lmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay') LidStack = StackedResources.from_prefix( tracker_id="Ham_ComfortLid_Stack", prefix="Ham_ComfortLid_Stack", count=3, reset=True) HSP_Pipette2 = layout_item(lmgr, Plate96, 'HSP_Pipette2') HSP_ODTC = layout_item(lmgr, Plate96, 'HSP_ODTC') if __name__ == "__main__": with HamiltonInterface(windowed=True, simulating=False) as ham_int: ham_int.initialize() normal_logging(ham_int, os.getcwd()) # Create thermal cycler instance device_id = odtc_connect(ham_int, simulation_mode=False, local_ip='192.168.1.200', device_ip='192.168.1.50') odtc_initialize(ham_int, device_id) odtc_open_door(ham_int, device_id) transport_resource(ham_int, HSP_Pipette2, HSP_ODTC, grip_direction=GripDirection.RIGHT, resource_type=GrippedResource.PCR, iswap=True) # Move lid from lid stack to ODTC lid = LidStack.fetch_next() print("Lid fetched from stack:", lid) transport_resource(ham_int, lid, 'Ham_ComfortLid_ODTC', resource_type=GrippedResource.LID, grip_direction=GripDirection.RIGHT, iswap=True) duration, resultID = odtc_execute_protocol(ham_int, device_id, 'protocol.xml', priority=1) odtc_ready = False while not odtc_ready: odtc_ready = odtc_get_status(ham_int, device_id) == 'idle' time.sleep(5) odtc_get_status(ham_int, device_id) # Open door after program completion odtc_open_door(ham_int, device_id) ================================================ FILE: pyhamilton/ngs/tests/tip_support.py ================================================ from pyhamilton import HamiltonInterface, LayoutManager, Tip96, layout_item, Plate96, TrackedTips, tip_support_pickup_columns, TipSupportTracker lmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay') tip_support_resource = layout_item(lmgr, Tip96, 'TipSupport_0001') tracked_tips_50uL = TrackedTips.from_prefix( tracker_id="TIP_50uLF_L", volume_capacity=50, prefix="TIP_50uLF_L", count=8, tip_type=Tip96, lmgr=lmgr) tip_support = TipSupportTracker(tip_support_resource) with HamiltonInterface(simulating=False, windowed=True) as ham_int: ham_int.initialize() for _ in range(3): tip_support_pickup_columns(ham_int, tracked_tips_50uL, tip_support_tracker=tip_support, num_columns=4) ham_int.tip_eject_96() ================================================ FILE: pyhamilton/ngs/tests/tip_tracker.py ================================================ from pyhamilton import (HamiltonInterface, LayoutManager, Tip96, TrackedTips, resource_list_with_prefix, Tip96, Plate96, ResourceType, tip_pick_up, DeckResource, tracked_tip_pick_up, tracked_tip_pick_up_96) from typing import List, Tuple lmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay') #tips_50uL = resource_list_with_prefix(lmgr, 'TIP_50uLF_L_000', Tip96, 5) # Need zero padding for the resource names tips_50uL_tracker = TrackedTips.from_prefix( tracker_id="TIP_50uLF_L", prefix="TIP_50uLF_L", count=8, lmgr=lmgr, tip_type=Tip96, reset=False # Reset the tracker state ) #tips = tips_50uL_tracker.fetch_next(5) #print(f'Fetched tips: {tips}') with HamiltonInterface(windowed=True) as ham_int: ham_int.initialize() tracked_tip_pick_up(ham_int, tips_50uL_tracker, 5) ================================================ FILE: pyhamilton/ngs/tests/transfer_96.py ================================================ from pyhamilton import (HamiltonInterface, LayoutManager, Reservoir60mL, TrackedTips, StackedResources, Tip96, Plate96, layout_item, normal_logging) import os from pyhamilton_advanced import transfer_96 lmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay') # Perhaps import stack management MIDI_OffMagnet = layout_item(lmgr, Plate96, 'MIDI_Pipette') # Assuming this is defined elsewhere in the layout MIDI_OnMagnet = layout_item(lmgr, Plate96, 'MIDI_OnMagnet') # Assuming this is defined elsewhere in the layout MagBeads_Container = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0001') ER_Mix = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0002') EDTA = layout_item(lmgr, Reservoir60mL, 'rgt_cont_60ml_BC_A00_0003') tips = tip_tracker_50uL = TrackedTips.from_prefix( tracker_id="TIP_50uLF_L", prefix="TIP_50uLF_L", count=8, tip_type=Tip96, lmgr=lmgr, reset=True # Reset the tracker state ) # This works with HamiltonInterface(windowed=True, simulating=False) as ham_int: ham_int.initialize() normal_logging(ham_int, os.getcwd()) transfer_96(ham_int, tips, MIDI_OffMagnet, MIDI_OnMagnet, 20, liquid_class='Tip_50ulFilter_Water_DispenseSurface_Empty') ================================================ FILE: pyhamilton/ngs/tests/transport.py ================================================ from pyhamilton import HamiltonInterface, LayoutManager, Reservoir60mL, Tip96, layout_item, Plate96 from pyhamilton_advanced import transport_resource, GripDirection, GrippedResource, GripperParams lmgr = LayoutManager('PacBio_MultiPlexLibraryPrepDeck_v1.2.lay') HSP_Pipette2 = layout_item(lmgr, Plate96, 'HSP_Pipette2') HHS2_HSP = layout_item(lmgr, Plate96, 'HHS2_HSP') with HamiltonInterface(windowed=True, simulating=False) as ham_int: ham_int.initialize() # HSP Pipette 2 to HHS2 HSP transport_resource(ham_int, HSP_Pipette2.layout_name(), HHS2_HSP.layout_name(), core_gripper=True, resource_type=GrippedResource.PCR) ================================================ FILE: pyhamilton/odtc/__init__.py ================================================ from .odtc_protocol import ThermalCyclerProtocol ================================================ FILE: pyhamilton/odtc/odtc_protocol.py ================================================ import xml.etree.ElementTree as ET from datetime import datetime class ThermalCyclerProtocol: """ A class to programmatically generate thermal cycler protocols in XML format. """ def __init__(self, creator="stefan", variant=960000, plate_type=0, fluid_quantity=1): self.creator = creator self.variant = variant self.plate_type = plate_type self.fluid_quantity = fluid_quantity self.pre_method = { "methodName": "PreMethod", "TargetBlockTemperature": 25, "TargetLidTemp": 110 } self.steps = [] self.pid_set = { 1: { "PHeating": 60, "PCooling": 80, "IHeating": 250, "ICooling": 100, "DHeating": 10, "DCooling": 10, "PLid": 100, "ILid": 70 } } def add_step(self, plateau_temp, plateau_time, slope=1, overshoot_temp=0, overshoot_time=0, overshoot_slope1=0.1, overshoot_slope2=0.1, goto_number=0, loop_number=0, pid_number=1, lid_temp=110): """Adds a single step to the protocol.""" step_data = { "Number": len(self.steps) + 1, "Slope": slope, "PlateauTemperature": plateau_temp, "PlateauTime": plateau_time, "OverShootSlope1": overshoot_slope1, "OverShootTemperature": overshoot_temp, "OverShootTime": overshoot_time, "OverShootSlope2": overshoot_slope2, "GotoNumber": goto_number, "LoopNumber": loop_number, "PIDNumber": pid_number, "LidTemp": lid_temp, } self.steps.append(step_data) return self def add_pcr_cycle(self, denaturation_temp, denaturation_time, annealing_temp, annealing_time, extension_temp, extension_time, num_cycles): """Adds a complete PCR cycle block with looping.""" start_loop_step = len(self.steps) + 1 # Denaturation step self.add_step(denaturation_temp, denaturation_time) # Annealing step (part of the loop) self.add_step(annealing_temp, annealing_time) # Extension step (part of the loop, with loop parameters) self.add_step(extension_temp, extension_time, goto_number=start_loop_step, loop_number=num_cycles) return self def add_final_extension(self, temp, time): """Adds a final extension step.""" return self.add_step(temp, time) def set_pid_parameters(self, pid_number, p_heating, p_cooling, i_heating, i_cooling, d_heating, d_cooling, p_lid, i_lid): """Sets custom PID parameters for a given PID number.""" self.pid_set[pid_number] = { "PHeating": p_heating, "PCooling": p_cooling, "IHeating": i_heating, "ICooling": i_cooling, "DHeating": d_heating, "DCooling": d_cooling, "PLid": p_lid, "ILid": i_lid } return self def set_pre_method(self, block_temp=25, lid_temp=110): """Sets the pre-method parameters.""" self.pre_method["TargetBlockTemperature"] = block_temp self.pre_method["TargetLidTemp"] = lid_temp return self def generate_xml(self, filename="protocol.xml"): """Generates the XML file from the class data.""" method_set = ET.Element("MethodSet") # PreMethod pre_method = ET.SubElement(method_set, "PreMethod", methodName=self.pre_method["methodName"], creator=self.creator, dateTime=datetime.now().isoformat()) ET.SubElement(pre_method, "TargetBlockTemperature").text = str(self.pre_method["TargetBlockTemperature"]) ET.SubElement(pre_method, "TargetLidTemp").text = str(self.pre_method["TargetLidTemp"]) # Method method = ET.SubElement(method_set, "Method", methodName="Method", creator=self.creator, dateTime=datetime.now().isoformat()) ET.SubElement(method, "Variant").text = str(self.variant) ET.SubElement(method, "PlateType").text = str(self.plate_type) ET.SubElement(method, "FluidQuantity").text = str(self.fluid_quantity) ET.SubElement(method, "PostHeating").text = "true" ET.SubElement(method, "StartBlockTemperature").text = str(self.pre_method["TargetBlockTemperature"]) ET.SubElement(method, "StartLidTemperature").text = str(self.pre_method["TargetLidTemp"]) # Steps for step_data in self.steps: step = ET.SubElement(method, "Step") for key, value in step_data.items(): ET.SubElement(step, key).text = str(value) # PIDSet pid_set_elem = ET.SubElement(method, "PIDSet") for num, params in self.pid_set.items(): pid = ET.SubElement(pid_set_elem, "PID", number=str(num)) for key, value in params.items(): ET.SubElement(pid, key).text = str(value) # Write to file tree = ET.ElementTree(method_set) ET.indent(tree, space=" ", level=0) tree.write(filename, encoding="utf-8", xml_declaration=True) if __name__ == "__main__": # Create an instance of the class protocol = ThermalCyclerProtocol(creator="Your Name", fluid_quantity=25) # Build a standard PCR protocol using the class methods protocol.add_step(plateau_temp=95, plateau_time=120) protocol.add_pcr_cycle( denaturation_temp=95, denaturation_time=30, annealing_temp=60, annealing_time=30, extension_temp=72, extension_time=60, num_cycles=35 ) protocol.add_final_extension(temp=72, time=300) protocol.add_step(plateau_temp=4, plateau_time=600) # Generate the XML file protocol.generate_xml("pcr_protocol_class.xml") print("pcr_protocol_class.xml has been generated.") ================================================ FILE: pyhamilton/oemerr.py ================================================ """`pyhamilton`-specific exception definitions. """ class HamiltonError(Exception): """ Exceptions raised in package pyhamilton """ pass ########################################### ### BEGIN HAMILTON DECK RESOURCE ERRORS ### ########################################### class HamiltonDeckResourceError(HamiltonError): """ Error with any deck object in interface with robot. """ pass class ResourceUnavailableError(HamiltonDeckResourceError): """ Layout manager found deck resource type not present or all of this type assigned """ pass ####################################### ### BEGIN HAMILTON INTERFACE ERRORS ### ####################################### class HamiltonInterfaceError(HamiltonError): """ Error in any phase of communication with robot. """ pass class HamiltonTimeoutError(HamiltonInterfaceError): """ An asynchronous request to the Hamilton robot timed out. """ pass class InvalidErrCodeError(HamiltonInterfaceError): """ Error code returned from instrument not known. """ pass class HamiltonReturnParseError(HamiltonInterfaceError): """ Return string from instrument was malformed. """ pass ######################################################## ### BEGIN HAMILTON CODED STEP ERRORS, CODE MAP BELOW ### ######################################################## class HamiltonStepError(HamiltonError): """ Errors in steps executed by VENUS software coded in the Hamilton error specification. """ pass class HamiltonSyntaxError(HamiltonStepError): """ There is a wrong set of parameters or parameter ranges. """ pass class HardwareError(HamiltonStepError): """ Steps lost on one or more hardware components, or component not initialized or not functioning. """ pass class NotExecutedError(HamiltonStepError): """ There was an error in previous part command. """ pass class ClotError(HamiltonStepError): """ Blood clot detected. """ pass class BarcodeError(HamiltonStepError): """ Barcode could not be read or is missing. """ pass class InsufficientLiquidError(HamiltonStepError): """ Not enough liquid available. """ pass class TipPresentError(HamiltonStepError): """ A tip has already been picked up. """ pass class NoTipError(HamiltonStepError): """ Tip is missing or not picked up. """ pass class NoCarrierError(HamiltonStepError): """ No carrier present for loading. """ pass class ExecutionError(HamiltonStepError): """ A step or a part of a step could not be processed. """ pass class PressureLLDError(HamiltonStepError): """ A dispense with pressure liquid level detection is not allowed. """ pass class CalibrateError(HamiltonStepError): """ No capacitive signal detected during carrier calibration procedure. """ pass class UnloadError(HamiltonStepError): """ Not possible to unload the carrier due to occupied loading tray position. """ pass class PressureLLDError(HamiltonStepError): """ Pressure liquid level detection in a consecutive aspiration is not allowed. """ pass class ParameterError(HamiltonStepError): """ Dispense in jet mode with pressure liquid level detection is not allowed. """ pass class CoverOpenError(HamiltonStepError): """ Cover not closed or can not be locked. """ pass class ImproperAspirationOrDispenseError(HamiltonStepError): """ The pressure-based aspiration / dispensation control reported an error ( not enough liquid ). """ pass class WashLiquidError(HamiltonStepError): """ Waste full or no more wash liquid available. """ pass class TemperatureError(HamiltonStepError): """ Incubator temperature out of range. """ pass class TADMOvershotError(HamiltonStepError): """ Overshot of limits during aspirate or dispense. Note: On aspirate this error is returned as main error 17. On dispense this error is returned as main error 4. """ pass class LabwareError(HamiltonStepError): """ Labware not available. """ pass class LabwareGrippedError(HamiltonStepError): """ Labware already gripped. """ pass class LabwareLostError(HamiltonStepError): """ Labware lost during transport. """ pass class IllegalTargetPlatePositionError(HamiltonStepError): """ Cannot place plate, plate was gripped in a wrong direction. """ pass class IllegalInterventionError(HamiltonStepError): """ Cover was opened or a carrier was removed manually. """ pass class TADMUndershotError(HamiltonStepError): """ Undershot of limits during aspirate or dispense. Note: On aspirate this error is returned as main error 4. On dispense this error is returned as main error 17. """ pass class PositionError(HamiltonStepError): """ The position is out of range. """ pass class UnexpectedcLLDError(HamiltonStepError): """ The cLLD detected a liquid level above start height of liquid level search. """ pass class AreaAlreadyOccupiedError(HamiltonStepError): """ Instrument region already reserved. """ pass class ImpossibleToOccupyAreaError(HamiltonStepError): """ A region on the instrument cannot be reserved. """ pass class AntiDropControlError(HamiltonStepError): """ Anti drop controlling out of tolerance. """ pass class DecapperError(HamiltonStepError): """ Decapper lock error while screw / unscrew a cap by twister channels. """ pass class DecapperHandlingError(HamiltonStepError): """ Decapper station error while lock / unlock a cap. """ pass class SlaveError(HamiltonStepError): """ Slave error. """ pass class WrongCarrierError(HamiltonStepError): """ Wrong carrier barcode detected. """ pass class NoCarrierBarcodeError(HamiltonStepError): """ Carrier barcode could not be read or is missing. """ pass class LiquidLevelError(HamiltonStepError): """ Liquid surface not detected. This error is created from main / slave error 06/70, 06/73 and 06/87. """ pass class NotDetectedError(HamiltonStepError): """ Carrier not detected at deck end position. """ pass class NotAspiratedError(HamiltonStepError): """ Dispense volume exceeds the aspirated volume. This error is created from main / slave error 02/54. """ pass class ImproperDispensationError(HamiltonStepError): """ The dispensed volume is out of tolerance (may only occur for Nano Pipettor Dispense steps). This error is created from main / slave error 02/52 and 02/54. """ pass class NoLabwareError(HamiltonStepError): """ The labware to be loaded was not detected by autoload module. Note: May only occur on a Reload Carrier step if the labware property 'MlStarCarPosAreRecognizable' is set to 1. """ pass class UnexpectedLabwareError(HamiltonStepError): """ The labware contains unexpected barcode ( may only occur on a Reload Carrier step ). """ pass class WrongLabwareError(HamiltonStepError): """ The labware to be reloaded contains wrong barcode ( may only occur on a Reload Carrier step ). """ pass class BarcodeMaskError(HamiltonStepError): """ The barcode read doesn't match the barcode mask defined. """ pass class BarcodeNotUniqueError(HamiltonStepError): """ The barcode read is not unique. Previously loaded labware with same barcode was loaded without unique barcode check. """ pass class BarcodeAlreadyUsedError(HamiltonStepError): """ The barcode read is already loaded as unique barcode ( it's not possible to load the same barcode twice ). """ pass class KitLotExpiredError(HamiltonStepError): """ Kit Lot expired. """ pass class DelimiterError(HamiltonStepError): """ Barcode contains character which is used as delimiter in result string. """ pass HAMILTON_ERROR_MAP = { 1: HamiltonSyntaxError, 2: HardwareError, 3: NotExecutedError, 4: ClotError, 5: BarcodeError, 6: InsufficientLiquidError, 7: TipPresentError, 8: NoTipError, 9: NoCarrierError, 10: ExecutionError, 11: PressureLLDError, 12: CalibrateError, 13: UnloadError, 14: PressureLLDError, 15: ParameterError, 16: CoverOpenError, 17: ImproperAspirationOrDispenseError, 18: WashLiquidError, 19: TemperatureError, 20: TADMOvershotError, 21: LabwareError, 22: LabwareGrippedError, 23: LabwareLostError, 24: IllegalTargetPlatePositionError, 25: IllegalInterventionError, 26: TADMUndershotError, 27: PositionError, 28: UnexpectedcLLDError, 29: AreaAlreadyOccupiedError, 30: ImpossibleToOccupyAreaError, 31: AntiDropControlError, 32: DecapperError, 33: DecapperHandlingError, 99: SlaveError, 100: WrongCarrierError, 101: NoCarrierBarcodeError, 102: LiquidLevelError, 103: NotDetectedError, 104: NotAspiratedError, 105: ImproperDispensationError, 106: NoLabwareError, 107: UnexpectedLabwareError, 108: WrongLabwareError, 109: BarcodeMaskError, 110: BarcodeNotUniqueError, 111: BarcodeAlreadyUsedError, 112: KitLotExpiredError, 113: DelimiterError } """ Maps integer error codes from Hamilton step return data to the appropriate `pyhamilton` errors """ ================================================ FILE: pyhamilton/paths.py ================================================ import os from pyhamilton import PACKAGE_PATH LAY_BACKUP_DIR = os.path.join(PACKAGE_PATH, 'LAY-BACKUP') if not os.path.exists(LAY_BACKUP_DIR): os.mkdir(LAY_BACKUP_DIR) OEM_STAR_PATH = os.path.join(PACKAGE_PATH, 'star-oem') if not (os.path.exists(OEM_STAR_PATH) and os.path.exists(os.path.join(OEM_STAR_PATH, 'RunHSLExecutor.dll')) and os.path.exists(os.path.join(OEM_STAR_PATH, 'HSLHttp.dll'))): raise FileNotFoundError('pyhamilton requires .../site-packages/pyhamilton/STAR-OEM, distributed separately.') OEM_LAY_PATH = os.path.join(OEM_STAR_PATH, 'VENUS_Method', 'STAR_OEM_Test.lay') OEM_HSL_PATH = os.path.join(OEM_STAR_PATH, 'VENUS_Method', 'STAR_OEM_noFan.hsl') OEM_RUN_EXE_PATH = 'C:\\Program Files (x86)\\HAMILTON\\Bin\\HxRun.exe' ================================================ FILE: pyhamilton/pipetting/__init__.py ================================================ from .pipetting import (pip_transfer, shear_plate_96, mix_plate, multi_dispense, transfer_96, double_aspirate_supernatant_96, aspirate_all, pip_mix, ethanol_wash, build_dispense_batches, batch_columnwise_positions, distribute_positions_to_channel_ops, multi_dispense, multi_aspirate, pip_pool, mph_tip_pickup_support) ================================================ FILE: pyhamilton/pipetting/pipetting.py ================================================ from .trough_manager import manage_multiple_troughs from ..consumables import tracked_volume_aspirate, tracked_volume_aspirate_96 import time from ..liquid_class_db import get_liquid_class_volume from ..interface import HamiltonInterface from ..resources import DeckResource, LayoutManager, StackedResources, TrackedTips, TipSupportTracker from ..liquid_handling_wrappers import normal_logging, tip_support_pickup_columns, tracked_tip_pick_up, tracked_tip_pick_up_96 from typing import List, Tuple, Iterable, List def prewet_tips(ham_int, tip_type, dispense_mode): pass def condense_volumes(lst, vol, max_volume): total = sum(lst) return [max_volume] * (total // max_volume) + ([total % max_volume] if 0 < total % max_volume >= vol else []) def get_fitting_dispense_positions(asp_vols, disp_vols, disp_pos): running_total = [0] * len(asp_vols) result = [] for pos_block, vol_block in zip(disp_pos, disp_vols): new_total = [a + b for a, b in zip(running_total, vol_block)] if all(v <= a for v, a in zip(new_total, asp_vols)): running_total = new_total result.append((pos_block, vol_block)) else: break return result # Now build full batch list def build_dispense_batches(aspiration_volumes, all_dispense_positions, all_dispense_volumes): ''' Batch together multiple dispenses from a single aspiration based on tip volume capacity. Returns: List of tuples: (batch, aspiration_volumes) where batch = list of (positions, volumes) aspiration_volumes = list of total volumes needed per tip ''' batches = [] disp_vols = all_dispense_volumes[:] disp_pos = all_dispense_positions[:] while disp_vols: batch_positions = get_fitting_dispense_positions(aspiration_volumes, disp_vols, disp_pos) if not batch_positions: raise ValueError("Dispense volumes of {} exceed available aspiration volume of {}. Check tip capacity.".format(disp_vols, aspiration_volumes)) n = len(batch_positions) batch = batch_positions # Calculate how much volume per tip will be needed for this batch num_tips = len(batch[0][1]) # assuming 8 tips batch_asp_vols = [0] * num_tips for _, column_volumes in batch: for i in range(num_tips): batch_asp_vols[i] += column_volumes[i] batches.append((batch, batch_asp_vols)) disp_vols = disp_vols[n:] disp_pos = disp_pos[n:] return batches def distribute_positions_to_channel_ops(positions_to_distribute, reference_positions): ''' Expand the larger list of positions into a list of lists so we can sequentially operate on those positions using each of the channels. Use when there are <8 positions to aspirate or dispense from. Example: aspiration_positions = [(plate, 0), (plate, 1)] dispense_positions = [(plate, 0), (plate, 1), (plate, 2), (plate, 3), (plate, 4), (plate, 5), (plate, 6), (plate, 7)] Output: [ [(plate, 0), (plate, 1), None, None, None, None, None, None], [None, None, (plate, 0), (plate, 1), None, None, None, None], [None, None, None, None, (plate, 0), (plate, 1), None, None], [None, None, None, None, None, None, (plate, 0), (plate, 1)], ] ''' # Sanity check: the set of positions to distribute must not exceed the total channel slots if len(positions_to_distribute) > len(reference_positions): raise ValueError("Positions to distribute must be less than or equal to reference positions") num_reference_positions = len(reference_positions) # e.g. 8 channels on a pipette head num_positions_to_distribute = len(positions_to_distribute) # e.g. 2 wells to transfer result = [] # Slide the smaller set across the larger channel frame in steps # Step size = number of positions to distribute (so each group is aligned together) for i in range(0, num_reference_positions, num_positions_to_distribute): # Start with a "blank" row (all channels set to None) row = [None] * num_reference_positions # Place the positions into this row, offset by i for j, pos in enumerate(positions_to_distribute): if i + j < num_reference_positions: # don’t go past the channel frame row[i + j] = pos # Add this row to the list of operation sets result.append(row) return result def print_transfers(source_wells, destination_wells, vols): for source_well_tuple, destination_well_tuple, destination_vol in zip(source_wells, destination_wells, vols): if destination_well_tuple: dest_plate, dest_well_idx = destination_well_tuple else: dest_plate, dest_well_idx = None, None source_plate, source_well_idx = source_well_tuple dest_plate_name = dest_plate.layout_name() source_plate_name = source_plate.layout_name() print("Dispensing " + str(destination_vol) + " from " + str(source_plate_name) + " well " + str(source_well_idx) + " to " + str(dest_plate_name) + " well " + str(dest_well_idx)) print("\n") def batch_columnwise_positions(positions): ''' Convert a list into a list of lists where each sublist is length 8 or less ''' return [positions[i:i + 8] for i in range(0, len(positions), 8)] def split_volumes_by_max_volume(volumes, max_volume): result = [] remaining = volumes[:] while any(v > 0 for v in remaining): current = [] for i, vol in enumerate(remaining): if vol > 0: use = min(vol, max_volume) current.append(use) remaining[i] -= use else: current.append(0) result.append(current) return result def set_parallel_nones(positions, reference): ''' Set None values in the positions list to match the reference list. ''' # Copy the original positions to avoid modifying the input modified_positions = positions.copy() for i, ref in enumerate(reference): if ref is None: modified_positions[i] = None return modified_positions def pip_transfer(ham_int: HamiltonInterface, tips: List[Tuple[DeckResource, int]] | TrackedTips, source_positions: List[Tuple[DeckResource, int]], dispense_positions: List[Tuple[DeckResource, int]], volumes: List[float], liquid_class: str, prewet_cycles=0, mix_cycles=0, prewet_volume=0, vol_mix_dispense=0, aspiration_height=0, dispense_height=0, submerge_depth=2, liquid_following_aspiration=False, liquid_following_dispense=False): ''' Transfer liquid from source positions to dispense positions using pipetting. Handles pipetting logic for unmatched lengths of source and dispense positions. Arguments: - ham_int: HamiltonInterface instance - tips: List of tuples (DeckResource, int) or TrackedTips instance - source_positions: List of tuples (DeckResource, int) for aspiration positions Example: [ (source_plate, 1), (source_plate, 2), (source_plate, 3)... ] - dispense_positions: List of tuples (DeckResource, int) for dispense positions Example: [ (dest_plate, 1), (dest_plate, 2), (dest_plate, 3)... ] - volumes: List of volumes to dispense (should be matched to dispense_positions) ''' liquid_class_vol_capacity = get_liquid_class_volume(liquid_class, nominal=True) # Fetch the volume for the liquid class if max(volumes) > liquid_class_vol_capacity: raise ValueError(f"Volume exceeds tip capacity: {max(volumes)} > {liquid_class_vol_capacity}") if tips.volume_capacity != liquid_class_vol_capacity: raise ValueError(f"Liquid class does not match tip capacity: {liquid_class_vol_capacity} != {tips.volume_capacity}") if len(source_positions) > 8: raise ValueError("Source positions cannot exceed 8 with single aspiration.") aspirate_capacitative_LLD = 1 if aspiration_height == 0 else 0 total_volume_needed = 0 # Calculate total volume needed for the transfer performed_additional_volume_transfer = False #if aspirate_capacitative_LLD != 0: # troughs, performed_additional_volume_transfer = manage_multiple_troughs(ham_int, source_positions, total_volume_needed, liquid_class, 0, 0, check_volumes=True) aspirate_mode = 2 if performed_additional_volume_transfer else 0 column_dispense_positions = batch_columnwise_positions(dispense_positions) # Batch dispense positions into lists of length eight column_volumes_list = batch_columnwise_positions(volumes) # Batch volumes into lists of length eight for column, column_volumes in zip(column_dispense_positions, column_volumes_list): if isinstance(tips, TrackedTips): num_tips = len([pos for pos in column if pos is not None]) tracked_tip_pick_up(ham_int, tips, num_tips) else: ham_int.tip_pick_up(tips) aspiration_positions = distribute_positions_to_channel_ops(source_positions, column) # Aspirate sequentially because container has <8 positions for positions in aspiration_positions: vols = set_parallel_nones(column_volumes, positions) response = tracked_volume_aspirate(ham_int, positions, vols, liquidClass=liquid_class, mixCycles=prewet_cycles, mixVolume=prewet_volume, liquidHeight=aspiration_height, liquidFollowing=liquid_following_aspiration, capacitiveLLD=aspirate_capacitative_LLD, aspirateMode=aspirate_mode, submergeDepth=submerge_depth) aspirate_heights = response.liquidHeights dispense_capacitative_LLD = 2 if dispense_height == 0 else 0 response = ham_int.dispense(column, column_volumes, liquidClass=liquid_class, mixCycles=mix_cycles, mixVolume=vol_mix_dispense, liquidHeight=dispense_height, capacitiveLLD=dispense_capacitative_LLD, liquidFollowing=liquid_following_dispense) dispense_heights = response.liquidHeights ham_int.tip_eject() def pip_pool(ham_int: HamiltonInterface, tips: List[Tuple[DeckResource, int]] | TrackedTips, source_positions: List[Tuple[DeckResource, int]], dispense_positions: List[Tuple[DeckResource, int]], volumes: List[float], liquid_class: str, prewet_cycles=0, mix_cycles=0, prewet_volume=0, vol_mix_dispense=0, aspiration_height=0, dispense_height=0, tip_exchange_during_transfer=True, liquid_following_aspiration=False, liquid_following_dispense=False): ''' Transfer liquid from source positions to dispense positions using pipetting. Handles pipetting logic for unmatched lengths of source and dispense positions. Arguments: - ham_int: HamiltonInterface instance - tips: List of tuples (DeckResource, int) or TrackedTips instance - source_positions: List of tuples (DeckResource, int) for aspiration positions Example: [ (source_plate, 1), (source_plate, 2), (source_plate, 3)... ] - dispense_positions: List of tuples (DeckResource, int) for dispense positions Example: [ (dest_plate, 1), (dest_plate, 2), (dest_plate, 3)... ] - volumes: List of volumes to dispense (should be matched to dispense_positions) ''' liquid_class_vol_capacity = get_liquid_class_volume(liquid_class, nominal=True) # Fetch the volume for the liquid class if max(volumes) > liquid_class_vol_capacity: raise ValueError(f"Volume exceeds tip capacity: {max(volumes)} > {liquid_class_vol_capacity}") if tips.volume_capacity != liquid_class_vol_capacity: raise ValueError(f"Liquid class does not match tip capacity: {liquid_class_vol_capacity} != {tips.volume_capacity}") if len(dispense_positions) > 8: raise ValueError("Dispense positions cannot exceed 8 with single aspiration.") aspirate_capacitative_LLD = 5 if aspiration_height == 0 else 0 column_aspirate_positions = batch_columnwise_positions(source_positions) # Batch source positions into lists of length eight column_volumes_list = batch_columnwise_positions(volumes) # Batch volumes into lists of length eight for column, column_volumes in zip(column_aspirate_positions, column_volumes_list): if isinstance(tips, TrackedTips): num_tips = len([pos for pos in column if pos is not None]) tracked_tip_pick_up(ham_int, tips, num_tips) else: ham_int.tip_pick_up(tips) vols = set_parallel_nones(column_volumes, column) response = ham_int.aspirate(column, vols, liquidClass=liquid_class, mixCycles=0, mixVolume=0, liquidHeight=aspiration_height, capacitiveLLD=aspirate_capacitative_LLD, aspirateMode=2, submergeDepth=2) channel_mapped_dispense_positions = distribute_positions_to_channel_ops(dispense_positions, column) # Aspirate sequentially because container has <8 positions for positions in channel_mapped_dispense_positions: vols = set_parallel_nones(column_volumes, positions) aspirate_heights = response.liquidHeights dispense_capacitative_LLD = 2 if dispense_height == 0 else 0 response = ham_int.dispense(positions, vols, liquidClass=liquid_class, mixCycles=mix_cycles, mixVolume=vol_mix_dispense, liquidHeight=dispense_height, capacitiveLLD=dispense_capacitative_LLD, liquidFollowing=liquid_following_dispense) dispense_heights = response.liquidHeights ham_int.tip_eject() def shear_plate_96(ham_int: HamiltonInterface, tips:List[Tuple[DeckResource, int]] | TrackedTips, plate:DeckResource, mixing_volume:float, mix_cycles:int, liquid_class:str, liquid_height=0): ''' Shear DNA in plate with 96 channel head. ''' if isinstance(tips, TrackedTips): tracked_tip_pick_up_96(ham_int, tips) else: ham_int.tip_pick_up_96(tips) cLLD = 1 if liquid_height == 0 else 0 volume = 0 ham_int.aspirate_96(plate, volume, liquid_class,mix_volume = mixing_volume, mix_cycles=mix_cycles, liquid_height=liquid_height, capacitative_LLD=cLLD) ham_int.tip_eject_96() def mix_plate(ham_int: HamiltonInterface, tips:List[Tuple[DeckResource, int]] | TrackedTips, tip_support, num_samples, plate:DeckResource, mixing_volume:float, mix_cycles:int, liquid_class:str, liquid_height:float=0): ''' Mix plate with 96 channel head. ''' liquid_class_vol_capacity = get_liquid_class_volume(liquid_class, nominal=True) # Fetch the volume for the liquid class if tips.volume_capacity != liquid_class_vol_capacity: raise ValueError(f"Liquid class does not match tip capacity: {liquid_class_vol_capacity} != {tips.volume_capacity}") if mixing_volume > liquid_class_vol_capacity: raise ValueError(f"Mixing volume exceeds tip capacity: {mixing_volume} > {liquid_class_vol_capacity}") mph_tip_pickup_support(ham_int, tips, tip_support, num_tips=num_samples) cLLD, liquidFollowing = (5, True) if liquid_height == 0 else (0, False) ham_int.aspirate_96(plate, 0, liquidClass=liquid_class, mixCycles=mix_cycles, mixVolume=mixing_volume, liquidHeight=liquid_height, capacitiveLLD=cLLD, liquidFollowing=liquidFollowing) ham_int.tip_eject_96() def multi_dispense(ham_int: HamiltonInterface, tips:List[Tuple[DeckResource, int]] | TrackedTips, source_positions:List[Tuple[DeckResource, int]], dispense_positions:List[Tuple[DeckResource, int]], volumes:List[float], liquid_class:str, pre_aspirate_volume = 0, post_dispense_volume = 0, post_dispense_to_source = False, mix_cycles=0, aspiration_height=0, dispense_height=0): ''' Dispenses a reagent across multiple columns for each aspiration. This is useful for quickly plating out reagent from a source trough. source_positions: A list of tuples specifying the source positions for aspiration. Example: [ (source_plate, 1), (source_plate, 2), (source_plate, 3)... ] dispense_positions: A list of tuples specifying the destination positions for dispensing. Example: [ (dest_plate, 1), (dest_plate, 2), (dest_plate, 3)... ] ''' max_volume_tips = get_liquid_class_volume(liquid_class) # Fetch the volume for the liquid class column_dispense_positions = batch_columnwise_positions(dispense_positions) # Batch dispense positions into lists of length eight column_dispense_volumes = batch_columnwise_positions(volumes) # Batch volumes into lists of length eight max_channel_volumes = [max_volume_tips]*8 # Placeholder that can be changed to different numbers of channels dispense_batches = build_dispense_batches(max_channel_volumes, column_dispense_positions, column_dispense_volumes) for batch, batch_aspiration_volumes in dispense_batches: if isinstance(tips, TrackedTips): if tips.volume_capacity != get_liquid_class_volume(liquid_class, nominal=True): raise ValueError(f"Tip type does not match liquid class: {tips.volume_capacity} != {get_liquid_class_volume(liquid_class, nominal=True)}") tracked_tip_pick_up(ham_int, tips, n=8) # Pick up tips for the first column of the batch else: ham_int.pick_up_tips(tips) aspiration_positions = distribute_positions_to_channel_ops(source_positions, batch[0][0]) # First column of first batch for positions in aspiration_positions: vols = set_parallel_nones(batch_aspiration_volumes, positions) vols = [ (v + pre_aspirate_volume + post_dispense_volume) if v is not None else None for v in vols ] cLLD = 5 if aspiration_height == 0 else 0 tracked_volume_aspirate(ham_int, positions, vols, liquidClass=liquid_class, mixCycles=0, mixVolume=0, liquidHeight=aspiration_height, capacitiveLLD=cLLD, aspirateMode=2, submergeDepth=2) if pre_aspirate_volume > 0: pre_dispense_vols = [pre_aspirate_volume if v is not None else None for v in vols] ham_int.dispense(positions, pre_dispense_vols, liquidClass=liquid_class, liquidHeight=dispense_height) for column, column_volumes in batch: response = ham_int.dispense(column, column_volumes, liquidClass=liquid_class, mixCycles=mix_cycles, mixVolume=0, liquidHeight=dispense_height, capacitiveLLD=0, liquidFollowing=0) if post_dispense_volume > 0 and post_dispense_to_source: post_dispense_vols = [post_dispense_volume for v in vols if v is not None] ham_int.dispense(positions, post_dispense_vols, liquidClass=liquid_class, liquidHeight=dispense_height) ham_int.tip_eject() def multi_aspirate(ham_int: HamiltonInterface, tips:List[Tuple[DeckResource, int]] | TrackedTips, source_positions:List[Tuple[DeckResource, int]], dispense_positions:List[Tuple[DeckResource, int]], num_aspiration_cycles:int, volumes:List[float], liquid_class:str, mix_cycles=0, aspiration_height=0): ''' Plate out a reagent in volumes greater than the tip capacity with an outer loop over aspirations and an inner loop over dispenses. This works for plating out reagent from a source trough. ''' max_volume_tips = get_liquid_class_volume(liquid_class) # Fetch the volume for the liquid class liquid_class_vol_capacity = get_liquid_class_volume(liquid_class, nominal=True) # Fetch the volume for the liquid class if tips.volume_capacity != liquid_class_vol_capacity: raise ValueError(f"Liquid class does not match tip capacity: {liquid_class_vol_capacity} != {tips.volume_capacity}") column_dispense_positions = batch_columnwise_positions(dispense_positions) # Batch dispense positions into lists of length eight column_dispense_volumes = batch_columnwise_positions(volumes) # Batch volumes into lists of length eight max_channel_volumes = [max_volume_tips]*8 dispense_batches = build_dispense_batches(max_channel_volumes, column_dispense_positions, column_dispense_volumes) for aspiration_cycle in range(num_aspiration_cycles): if isinstance(tips, TrackedTips): if tips.volume_capacity != get_liquid_class_volume(liquid_class, nominal=True): raise ValueError(f"Tip type does not match liquid class: {tips.volume_capacity} != {get_liquid_class_volume(liquid_class, nominal=True)}") tracked_tip_pick_up(ham_int, tips, n=8) else: ham_int.pick_up_tips(tips) aspiration_positions = distribute_positions_to_channel_ops(source_positions, column_dispense_positions[0]) # First column of first batch, fix this later split_column_volumes = distribute_positions_to_channel_ops(volumes, column_dispense_positions[0]) for positions, vols in zip(aspiration_positions, split_column_volumes): vols = set_parallel_nones(volumes, positions) tracked_volume_aspirate(ham_int, aspiration_positions, vols, liquidClass=liquid_class, mixCycles=0, mixVolume=0, liquidHeight=aspiration_height, capacitiveLLD=1, aspirateMode=2, submergeDepth=2) for batch, batch_aspiration_volumes in dispense_batches: for column, column_volumes in batch: response = ham_int.dispense(column, column_volumes, liquidClass=liquid_class, mixCycles=0, mixVolume=0, liquidHeight=0, capacitiveLLD=0, liquidFollowing=0) def mph_tip_pickup_support(ham_int: HamiltonInterface, tips: TrackedTips, tip_support: TipSupportTracker, num_tips: int): ''' Pick up tips using the multi-channel head from a tip support resource. Requires TrackedTips to be specified in case the tips loaded on the support have to be switched out. ''' if isinstance(tips, TrackedTips): num_columns = num_tips//8 + 1*(num_tips % 8 > 0) tip_support_pickup_columns(ham_int, tips, tip_support, num_columns) else: ham_int.tip_pick_up_96(tips) def transfer_96(ham_int: HamiltonInterface, tips:List[Tuple[DeckResource,int]]|TrackedTips, tip_support:TipSupportTracker, num_samples:int, source_plate:DeckResource, target_plate:DeckResource, volume:float, liquid_class:str, aspiration_mix_cycles:int=0, aspiration_mix_volume:float=0, aspiration_height:float=0, dispense_mix_cycles:int=0, dispense_mix_volume:float=0, dispense_height:float=0): ''' Dispense to multiple positions with 96 channel head. ''' liquid_class_vol_capacity = get_liquid_class_volume(liquid_class, nominal=True) # Fetch the volume for the liquid class if volume > liquid_class_vol_capacity: raise ValueError(f"Volume exceeds tip capacity: {volume} > {liquid_class_vol_capacity}") if tips.volume_capacity != liquid_class_vol_capacity: raise ValueError(f"Liquid class does not match tip capacity: {liquid_class_vol_capacity} != {tips.volume_capacity}") mph_tip_pickup_support(ham_int, tips, tip_support, num_tips=num_samples) tracked_volume_aspirate_96(ham_int, source_plate, volume, liquidClass=liquid_class, mixCycles=aspiration_mix_cycles, mixVolume=aspiration_mix_volume, liquidHeight=aspiration_height) ham_int.dispense_96(target_plate, volume, liquidClass=liquid_class, liquidHeight=dispense_height, mixCycles=dispense_mix_cycles, mixVolume=dispense_mix_volume) ham_int.tip_eject_96() def double_aspirate_supernatant_96(ham_int: HamiltonInterface, tips: TrackedTips, tip_support: TipSupportTracker, num_samples:int, source_plate: DeckResource, destination_plate: DeckResource, first_volume: float, second_volume: float, liquid_class: str, second_aspiration_height: float=0.75, mix_cycles=0, dispense_height=0): ''' Double aspiration to remove supernatant from a plate with 96 channel head. Double aspiration is used to allow residual liquid to settle between aspirations. ''' liquid_class_vol_capacity = get_liquid_class_volume(liquid_class, nominal=True) # Fetch the volume for the liquid class volume = first_volume + second_volume if volume > liquid_class_vol_capacity: raise ValueError(f"Volume exceeds tip capacity: {volume} > {liquid_class_vol_capacity}") if tips.volume_capacity != liquid_class_vol_capacity: raise ValueError(f"Liquid class does not match tip capacity: {liquid_class_vol_capacity} != {tips.volume_capacity}") if second_aspiration_height<=0.5: raise ValueError(f"Second aspiration height must be greater than 0.5 mm to avoid bead disturbance: {second_aspiration_height} <= 0.5") mph_tip_pickup_support(ham_int, tips, tip_support, num_tips=num_samples) ham_int.aspirate_96(source_plate, first_volume, liquidClass=liquid_class, mixCycles=mix_cycles, capacitiveLLD=1, liquidFollowing=True, aspirateMode=2, submergeDepth=0.5) # First aspiration uses cLLD and liquid following ham_int.aspirate_96(source_plate, second_volume, liquidClass=liquid_class, mixCycles=mix_cycles, liquidHeight=second_aspiration_height, capacitiveLLD=0, aspirateMode=1) # Second aspiration uses fixed height, no liquid following total_volume = first_volume + second_volume ham_int.dispense_96(destination_plate, total_volume, liquidClass=liquid_class, liquidHeight=dispense_height, dispenseMode=4) ham_int.tip_eject_96() def ethanol_wash(ham_int: HamiltonInterface, tips: TrackedTips, tip_support: TipSupportTracker, num_samples: int, ethanol_plate: DeckResource, magnet_plate: DeckResource, waste_plate: DeckResource, wash_volume: float, first_removal_volume: float, second_removal_volume: float, liquid_class: str, mix_cycles=0, liquid_height=0): ''' Wash beads with ethanol twice and then remove supernatant.''' mph_tip_pickup_support(ham_int, tips, tip_support, num_tips=num_samples) # First ethanol wash tracked_volume_aspirate_96(ham_int, ethanol_plate, wash_volume, liquidClass=liquid_class, mixCycles=mix_cycles, liquidHeight=liquid_height, capacitiveLLD=1, submergeDepth=2) ham_int.dispense_96(magnet_plate, wash_volume, liquidClass=liquid_class, dispenseMode=4, liquidHeight=10, airTransportRetractDist=5) ham_int.tip_eject_96() time.sleep(5) # Brief incubation # Remove supernatant with double aspiration double_aspirate_supernatant_96(ham_int, tips, tip_support, num_samples, magnet_plate, waste_plate, first_removal_volume, second_removal_volume, second_aspiration_height=0.8, liquid_class=liquid_class, mix_cycles=mix_cycles, dispense_height=3) def pip_mix(ham_int: HamiltonInterface, tips: TrackedTips, positions_to_mix: List[Tuple[DeckResource, int]], liquid_class: str, mix_volume: float, mix_cycles=0, liquid_height=0): ''' Mix only without aspiration or dispense. Need to change this so it loops over columns. ''' if isinstance(tips, TrackedTips): if tips.volume_capacity != get_liquid_class_volume(liquid_class, nominal=True): raise ValueError(f"Tip type does not match liquid class: {tips.volume_capacity} != {get_liquid_class_volume(liquid_class, nominal=True)}") tracked_tip_pick_up(ham_int, tips, n=8) # Pick up tips for the first column of the batch else: ham_int.tip_pick_up(tips) # Let's batch positions to mix into columns of 8 mixing_columns = batch_columnwise_positions(positions_to_mix) for col in mixing_columns: col = col + [None]*(8 - len(col)) # Pad to length 8 # Create a volume list of zeros where col is not None and None where col is None zero_vols = [0 if pos is not None else None for pos in col] response = ham_int.aspirate(col, zero_vols, liquidClass=liquid_class, mixVolume=0, mixCycles=0, liquidHeight=0, capacitiveLLD=1) volumes = response.liquidVolumes mixing_volume = min(volumes)*0.75 # Calculate mixing volume based on volume in container if mixing_volume < 0: mixing_volume = max(5, min(volumes)) capacitative_LLD, liquidFollowing = (5, True) if liquid_height==0 else (0, False) ham_int.aspirate(col, zero_vols, liquidClass=liquid_class, mixVolume=mixing_volume, mixCycles=mix_cycles, liquidHeight=liquid_height, capacitiveLLD=capacitative_LLD, liquidFollowing=liquidFollowing) ham_int.tip_eject() # Delete everything below?? def aspirate_all_for_stamp(ham_int, tips, source_plate, volume, liquid_class, mix_cycles=0, liquid_height=0): ''' Aspirate all from a plate with 96 channel head for stamping. ''' ham_int.tip_pick_up_96(tips) ham_int.aspirate_96(source_plate, volume, liquid_class, mix_cycles=mix_cycles, liquid_height=liquid_height, capacitative_LLD=5, aspirateMode=2, submergeDepth=0.5) ham_int.dispense_96(source_plate, volume, liquid_class, liquidHeight=liquid_height, dispenseMode=4) ham_int.eject_tips_96() def aspirate_all(ham_int, tips, source_plate, volume, liquid_class, mix_cycles=0, liquid_height=0): ''' Aspirate all from a plate with 96 channel head. ''' ham_int.pick_up_tips_96(tips) ham_int.aspirate_96(source_plate, volume, liquid_class, mix_cycles=mix_cycles, liquid_height=liquid_height, capacitative_LLD=5) ham_int.eject_tips_96() if __name__ == "__main__": pass ================================================ FILE: pyhamilton/pipetting/trough_manager.py ================================================ from pyhamilton import HamiltonInterface from itertools import groupby def check_volumes_in_troughs(ham_int: HamiltonInterface, aspiration_positions, liquid_class): trough_volumes = [] aspiration_positions.sort(key=lambda x: x[0].layout_name()) troughs = [list(group) for _, group in groupby(aspiration_positions, key=lambda x: x[0])] for trough_positions in troughs: vols = [0 if pos is not None else None for pos in trough_positions] print(trough_positions) response = ham_int.aspirate(trough_positions, vols, liquidClass=liquid_class, capacitiveLLD=1) print(response.liquidVolumes) volume = min(response.liquidVolumes) trough_volumes.append((trough_positions, volume)) return trough_volumes def select_trough(ham_int: HamiltonInterface, aspiration_positions, volume, liquid_class, prealiquot_volume, postaliquot_volume): trough_volumes = check_volumes_in_troughs(ham_int, aspiration_positions, liquid_class) for trough_positions, vol in trough_volumes: if abs(vol) >= (volume + prealiquot_volume + postaliquot_volume): # We have to do abs because Venus simulator insanely returns negative volumes return trough_positions return None def prompt_insufficient_volume(ham_int, troughs, volume): pass def accumulate_residual_volume(ham_int, troughs, volumes): return total_volume = 0 for trough in troughs: heights = ham_int.aspirate(trough) vol = trough.height_to_volume(heights) total_volume += vol return total_volume def manage_multiple_troughs(ham_int, aspiration_positions, volume, liquid_class, prealiquot_volume, postaliquot_volume, check_volumes=True): performed_additional_volume_transfer = False trough = select_trough(ham_int, aspiration_positions, volume, liquid_class, prealiquot_volume, postaliquot_volume) if trough is None: # No trough has enough volume # volumes = prompt_insufficient_volume(ham_int, troughs, volume) performed_additional_volume_transfer = accumulate_residual_volume(ham_int, aspiration_positions, volume) trough = select_trough(ham_int, aspiration_positions, volume, liquid_class, prealiquot_volume, postaliquot_volume) else: return trough, performed_additional_volume_transfer ================================================ FILE: pyhamilton/resources/__init__.py ================================================ from .enums import * from .managed_resources import * from .deckresource import * ================================================ FILE: pyhamilton/resources/deckresource.py ================================================ """ Couplings to Hamilton deck layouts. Module `pyhamilton.deckresource` provides convenience classes and methods for interacting safely with Hamilton's Layout (`.lay`) files. It also implements transformations between well indexes and coordinates for a variety of labware, such as plates and tips. """ import string, shutil, os, string, re from datetime import datetime from pyhamilton import OEM_LAY_PATH, LAY_BACKUP_DIR from ..oemerr import ResourceUnavailableError from typing import List, Tuple, Union class ResourceType: """ Specifies a type of labware to extract using LayoutManager, and how. This class associates a resource class, such as `Plate96`, with either a literal labware identifier (`str`) that appears in the Hamilton Layout (`.lay`) file, or a pair of functions: one that identifies when a text line in a layout file could be assigned this resource, called `test`, and one that parses such a name out of the line, called `extract_name`. Typical usage: ``` plate_type = ResourceType(Plate96, 'Cos_96_Rd_0001') lmgr = LayoutManager('layout.lay') plate = lmgr.assign_unused_resource(plate_type) ``` Or: ``` plate_type = ResourceType(Plate96, LayoutManager.line_has_prefixed_name('Cos_96_Rd_'), LayoutManager.name_from_line) lmgr = LayoutManager('layout.lay') plate1 = lmgr.assign_unused_resource(plate_type) plate2 = lmgr.assign_unused_resource(plate_type) ``` Args: resource_class (class): a class that inherits from `DeckResource`. Instances of this class will be returned from `LayoutManager` when assigning resources, factory-style. *name_specifiers (list): This argument is unpacked with the "splat" operator (`*`) to enable polymorphism. One or the other of: - (two-argument form) an exact name (`str`) of a labware item that appears in the target layout file, or - (three-argument form) `test` and `extract_name` (see usage above): * `test`: a function [(`str`) -> `bool`] that identifies Layout file lines (`str`) that could be used to assign resources of this type * `extract_name`: a function [(`str`) -> `str`] that gets the desired name out of a line identified with `test`. """ def __init__(self, resource_class, *args): self.resource_class = resource_class self.not_found_msg = None try: specific_name, = args self.test = lambda line: specific_name in re.split(r'\W', line) self.extract_name = lambda line: specific_name self.not_found_msg = 'No exact match for name "' + specific_name + '" to assign a resource of type ' + resource_class.__name__ except ValueError: self.test, self.extract_name = args class LayoutManager: """Optionally activates a Hamilton layout and helps access its contents. A `LayoutManager` manages the consistent assignment of `DeckResource` objects to items in a Hamilton Layout file (`.lay`). A `LayoutManager` must be used to set the active pyhamilton layout file, but use of this class is strictly optional when sending `pyhamilton` commands using `send_command`; names may be passed as string literals in commands instead if they are known in advance. The advantage to specifying all labware using `ResourceManager` is that resource names are verified to be present in the active layout file at runtime, and guaranteed never used more than once, both of which are necessary to avoid silent Hamilton errors. Example usage: ``` lmgr = LayoutManager('layout.lay') plate = lmgr.assign_unused_resource(ResourceType(Plate24, 'plate_0')) culture_reservoir = lmgr.assign_unused_resource(ResourceType(Plate96, 'culture')) inducer_tips = lmgr.assign_unused_resource(ResourceType(Tip96, 'inducer_tips')) ``` """ _managers = {} @staticmethod def get_manager(checksum): """Return a `LayoutManager` previously instantiated for a layout file that has the specified checksum. Typically used when accessing the same layout file from multiple "threads" in the same process (using the `threading` module) to prevent name double-counting. Args: checksum (str): a checksum found at the end of a Hamilton Layout (`.lay`) file. """ return LayoutManager._managers[checksum] @staticmethod def initial_printable(line, start=0): if not line: return '' end = start while end < len(line) and line[end] in string.printable: end += 1 return line[start:end] @staticmethod def layline_objid(line): keys = 'ObjId', 'LabwareName' if 'Labware' in LayoutManager.layline_first_field(line): keys = 'Id', *keys for key in keys: try: start = line.index(key) + len(key) + 1 return LayoutManager.initial_printable(line, start) except ValueError: pass else: return None @staticmethod def layline_first_field(line): return LayoutManager.initial_printable(line) @staticmethod def field_starts_with(field, prefix): try: return field.index(prefix) == 0 except ValueError: return False @staticmethod def name_from_line(line): field = LayoutManager.layline_objid(line) if field: return field return LayoutManager.layline_first_field(line) @staticmethod def line_has_prefixed_name(prefix): def has_prefix(line): return LayoutManager.field_starts_with(LayoutManager.name_from_line(line), prefix) return has_prefix @staticmethod def _read_layfile_lines(layfile_path): buff = '' lines = [] with open(layfile_path, 'rb') as f: for c in f.read(): try: c = bytes([c]).decode('utf-8') except UnicodeDecodeError: continue buff += c if c in '\n\r\t': lines.append(buff.strip()) buff = '' if buff: lines.append(buff) return lines @staticmethod def _layfile_checksum(layfile_path): lay_lines = LayoutManager._read_layfile_lines(layfile_path) return lay_lines[-1].split('checksum=')[1].split('$$')[0] @staticmethod def layfiles_equal(lay_path_1, lay_path_2): return LayoutManager._layfile_checksum(lay_path_1) == LayoutManager._layfile_checksum(lay_path_2) def __init__(self, layfile_path, install=True): self.lines = self._read_layfile_lines(layfile_path) self.resources = {} self.checksum = self._layfile_checksum(layfile_path) self._managers[self.checksum] = self if install and not LayoutManager.layfiles_equal(layfile_path, OEM_LAY_PATH): print('BACKING UP AND INSTALLING NEW LAYFILE') shutil.copy2(layfile_path, os.path.join(LAY_BACKUP_DIR, datetime.today().strftime('%Y%m%d_%H%M%S_') + os.path.basename(layfile_path))) shutil.copy2(layfile_path, OEM_LAY_PATH) def assign_unused_resource(self, restype, order_key=None, reverse=False, verify_positions=True): """Create a new deck resource after finding and assigning an unused name that matches the resource type. This method searches through the layout file for one new layout name that matches the given resource type. It reserves this layout name permanently so that no later calls to `assign_unused_resource` can create a deck resource with the same layout name. Returns a `DeckResource`. Args: restype (ResourceType): The resource type, which consists of a resource class (descendent of `DeckResource`) and some string pattern matching functions to identify the desired layout names. order_key (Callable[[DeckResource], Comparable]): Optional; when multiple layout names match, specifies a function of one argument that is used to extract a comparison key from each candidate `DeckResource` object. The arg-min or arg-max of `order_key` will be returned, depending on `reverse`. By default, lexicographic order by layout name is used, which is suitable for most use cases, e.g. plates with layout names "pcr-plate-a", "pcr-plate-b", "pcr-plate-c", ... will be returned in the expected order. reverse (bool): Optional; use reverse-lexicographic order for layout names, useful for e.g. plate stacking applications, or reverse the order imposed by `order_key` if it is given. verify_positions (bool): Optional; if True (default), verifies that position IDs in the layout file match those generated by the resource class. Set to False to skip verification. Returns: A new instance of the resource class (descendent of `DeckResource`) from the given `ResourceType` `restype`. Raises: ResourceUnavailableError: no names in the layout file that have not already been assigned match the resource type ValueError: if verify_positions is True and position IDs don't match """ if order_key is None: order_key = lambda r: r.layout_name() if not isinstance(restype, ResourceType): raise TypeError('Must provide a ResourceType to be assigned') matching_ress = [] for line in self.lines: if restype.test(line): match_name = restype.extract_name(line) if match_name in self.resources: continue matching_ress.append(restype.resource_class(match_name)) if not matching_ress: msg = restype.not_found_msg or 'No unassigned resource of type ' + restype.resource_class.__name__ + ' available' raise ResourceUnavailableError(msg) choose = max if reverse else min new_res = choose(matching_ress, key=order_key) # Verify position IDs if requested if verify_positions: success, errors = self.verify_position_ids(new_res) if not success: error_msg = f"Position ID verification failed for resource '{new_res.layout_name()}':\n" error_msg += "\n".join(errors) #raise ValueError(error_msg) self.resources[new_res.layout_name()] = new_res return new_res def verify_position_ids(self, resource): """Verify that position IDs in layout file match resource.position_id() output. Args: resource (DeckResource): The resource to verify Returns: tuple: (bool, list) - (success, list of mismatches) """ layout_name = resource.layout_name() # Check if this resource type has position IDs # Try calling position_id(0) - if it raises NotImplementedError, skip verification try: resource.position_id(0) except NotImplementedError: return True, [] # Skip verification for resources without positions except (ValueError, IndexError, AssertionError): # These exceptions are fine - just means there are positions, we'll verify them pass # Find the line with this resource target_line = self._find_resource_line(layout_name) if not target_line: return False, [f"No layout line found for resource {layout_name}"] # Extract position IDs from the line layout_pos_ids = self._extract_position_ids_from_line(target_line, layout_name) # Generate expected position IDs from the resource expected_pos_ids = [] if hasattr(resource, '_num_items'): # Use the defined number of positions for idx in range(resource._num_items): expected_pos_ids.append(resource.position_id(idx)) else: # Fallback: try until we get an error (for resources without _num_items) idx = 0 while True: try: expected_pos_ids.append(resource.position_id(idx)) idx += 1 except (IndexError, AssertionError, AttributeError, ValueError): break layout_set = set(layout_pos_ids) expected_set = set(expected_pos_ids) if layout_set != expected_set: missing = expected_set - layout_set extra = layout_set - expected_set mismatches = [] if missing: mismatches.append(f"Missing in layout: {sorted(missing)}") if extra: mismatches.append(f"Extra in layout: {sorted(extra)}") return False, mismatches return True, [] def _find_resource_line(self, resource_name): """Find the line(s) containing position IDs for a given resource name.""" matching_lines = [] # Pattern 1: ObjId and name on same line (most common case) obj_pattern = rf"ObjId[\s\x00-\x1f]*{re.escape(resource_name)}(?:[\s\x00-\x1f]|Seq)" for i, line in enumerate(self.lines): if re.search(obj_pattern, line): matching_lines.append(line) # Pattern 2: Line starts with resource name (tab-split case) # The resource name is at the start because tab split it from "ObjId" on previous line start_pattern = rf"^{re.escape(resource_name)}[\s\x00-\x1f]" for i, line in enumerate(self.lines): if re.search(start_pattern, line) and 'PosId' in line: matching_lines.append(line) if matching_lines: if len(matching_lines) == 1: return matching_lines[0] else: # Multiple lines - concatenate merged = ''.join(matching_lines) return merged # Fallback: Name pattern name_pattern = rf"Seq\.\d+\.Name[\s\x00-\x1f]*{re.escape(resource_name)}(?:[\s\x00-\x1f]+|(?=Seq))" for i, line in enumerate(self.lines): if re.search(name_pattern, line): return line print(f"No matching patterns found!") return None @staticmethod def _extract_position_ids_from_line(line, obj_id): """Extract position IDs for a specific ObjId from a line.""" pos_ids = [] # Pattern 1: Standard case with ObjId prefix # Capture the position ID which is alphanumeric, stopping before control chars or uppercase letters starting new fields pattern1 = rf"ObjId[\s\x00-\x1f]*{re.escape(obj_id)}[\s\x00-\x1f]*Seq\.\d+\.Item\.\d+\.PosId[\s\x00-\x1f]*([A-Za-z0-9]+?)(?=[\s\x00-\x1f]|Seq|Item|Obj|Name|$)" for match in re.finditer(pattern1, line): pos_id = match.group(1) if pos_id: pos_ids.append(pos_id) # Pattern 2: Line starts with obj_id (tab-split case - first item only) pattern2 = rf"^{re.escape(obj_id)}[\s\x00-\x1f]*Seq\.\d+\.Item\.\d+\.PosId[\s\x00-\x1f]*([A-Za-z0-9]+?)(?=[\s\x00-\x1f]|Seq|Item|Obj|Name|$)" match = re.search(pattern2, line) if match: pos_id = match.group(1) if pos_id: # Only add if not already captured by pattern1 if pos_id not in pos_ids: pos_ids.insert(0, pos_id) return pos_ids class ResourceIterItem: def __init__(self, resource, index): self.parent_resource = resource self.index = index self.history = [] class Tip(ResourceIterItem): pass class Vessel(ResourceIterItem): ADD = 0 REMOVE = 1 def record_removal(self, ml, dest=None): if dest is not None and not isinstance(dest, Vessel): raise ValueError('Sources and destinations in Vessel contents records must be Vessels') self.history.append((Vessel.REMOVE, ml, dest)) def record_addition(self, ml, source): if not isinstance(source, Vessel): raise ValueError('Sources and destinations in Vessel contents records must be Vessels') self.history.append((Vessel.ADD, ml, source)) def current_volume(self): return sum((ml if direction == Vessel.ADD else -ml) for direction, ml, _ in self.history) class DeckResource: class align: VERTICAL = 'v' STD_96 = 'std_96' class types: TIP, VESSEL = range(2) def __init__(self, layout_name): raise NotImplementedError() def _alignment_delta(self, int_start, int_end): raise NotImplementedError() # (delta x, delta y, alignment properties list) def _assert_idx_in_range(self, idx_or_vessel): if isinstance(idx_or_vessel, Vessel): idx = idx_or_vessel.index else: idx = idx_or_vessel if not 0 <= idx < self._num_items: raise ValueError('Index ' + str(idx) + ' not in range for resource') def layout_name(self): """The layout name of this specific deck resource. Returns: The name (`str`) associated with this specific deck resource in the Hamilton Layout (`.lay`) file it came from. """ return self._layout_name # default; override if needed. (str) def position_id(self, idx): """The identifier used for one of a sequence of positions inside this labware. For labware with multiple positions, each position has a different identity, usually represented as a short string that will match the identifier scheme for this resource in the Hamilton Layout file it came from. The identifiers will usually be familiar from a laboratory setting. Examples - 96-well plates have 96 positions, each identified with a letter and a number like `'D4'`. For a `Plate96` instance named `plate`, `plate.position_id(0)` is `'A1'`, `plate.position_id(1)` is `'B1'`, and `plate.position_id(95)` is `'H12'`. - Hamilton racks of 96 tips have 96 positions, identified with integer strings like `'87'` that start with `'1'` at the top left tip and increase down columns (8 positions each) first. For a `Tip96` instance named `tips`, `tips.position_id(0)` is `'1'`, `tips.position_id(1)` is `'2'`, and `tips.position_id(95)` is `'96'`. Args: idx (int): the index into the sequence of positions. Note: `idx` is zero-indexed across all labware according to python convention, while most real-world labware positions are 1-indexed. Returns: The identifier (`str`) associated with the position `idx` specific deck resource in the Hamilton Layout (`.lay`) file it came from. Raises: NotImplementedError: The deck resource does not have positions. """ raise NotImplementedError() def alignment_delta(self, start, end): args = {'start':start, 'end':end} for pos in args: if isinstance(args[pos], Vessel): if args[pos].parent_resource is not self: raise ValueError('Positions provided as vessels, ' 'but do not belong to this resource') args[pos] = start.index else: try: args[pos] += 0 except TypeError: raise ValueError('Positions provided for delta must be integers or vessels') self._assert_idx_in_range(args[pos]) return self._alignment_delta(args['start'], args['end']) def __iter__(self): for i in self._items: yield i def assign_label(self, label: str): """Assign a custom label to this vessel for visualization purposes.""" self.custom_label = label return self class Standard96(DeckResource): """Labware types with 96 positions that use a letter-number id scheme like `'A1'`. """ def well_coords(self, idx): self._assert_idx_in_range(idx) return int(idx)//8, int(idx)%8 def _alignment_delta(self, start, end): [self._assert_idx_in_range(p) for p in (start, end)] xs, ys = self.well_coords(start) xe, ye = self.well_coords(end) return (xe - xs, ye - ys, [DeckResource.align.STD_96] + ([DeckResource.align.VERTICAL] if xs == xe and ys != ye else [])) def position_id(self, idx): x, y = self.well_coords(idx) return 'ABCDEFGH'[y] + str(x + 1) class Tip96(Standard96): def __init__(self, layout_name): self._layout_name = layout_name self._num_items = 96 self.resource_type = DeckResource.types.TIP self._items = [Tip(self, i) for i in range(self._num_items)] def position_id(self, idx): # tips use 1-indexed int ids descending columns first self._assert_idx_in_range(idx) return str(idx + 1) # switch to standard advance through row first # tips = lmgr.layout_item(Tip96, 'tips_0') def resource_list_with_prefix(layout_manager:LayoutManager, prefix:str, res_class:DeckResource, num_ress:int, order_key=None, reverse=False): def name_from_line(line): field = LayoutManager.layline_objid(line) if field: return field return LayoutManager.layline_first_field(line) layline_test = lambda line: LayoutManager.field_starts_with(name_from_line(line), prefix) res_type = ResourceType(res_class, layline_test, name_from_line) res_list = [layout_manager.assign_unused_resource(res_type, order_key=order_key, reverse=reverse) for _ in range(num_ress)] return res_list class BulkReagentPlate(Standard96): def __init__(self, layout_name): self._layout_name = layout_name self._num_items = 96 self.resource_type = DeckResource.types.VESSEL self._items = [Vessel(self, i) for i in range(self._num_items)] def position_id(self, idx): self._assert_idx_in_range(idx) return str(idx + 1) class Waste96(BulkReagentPlate): def __init__(self, layout_name): super().__init__(layout_name) class Plate96(Standard96): def __init__(self, layout_name): self._layout_name = layout_name self._num_items = 96 self.resource_type = DeckResource.types.VESSEL self._items = [Vessel(self, i) for i in range(self._num_items)] class Plate24(DeckResource): def __init__(self, layout_name): self._layout_name = layout_name self._num_items = 24 self.resource_type = DeckResource.types.VESSEL self._items = [Vessel(self, i) for i in range(self._num_items)] def well_coords(self, idx): self._assert_idx_in_range(idx) return int(idx)//4, int(idx)%4 def _alignment_delta(self, start, end): [self._assert_idx_in_range(p) for p in (start, end)] xs, ys = self.well_coords(start) xe, ye = self.well_coords(end) return (xe - xs, ye - ys, [DeckResource.align.VERTICAL] if xs == xe and ys != ye else []) def position_id(self, idx): x, y = self.well_coords(idx) return 'ABCD'[y] + str(x + 1) class Plate12(DeckResource): def __init__(self, layout_name): self._layout_name = layout_name self._num_items = 12 self.resource_type = DeckResource.types.VESSEL self._items = [Vessel(self, i) for i in range(self._num_items)] def well_coords(self, idx): self._assert_idx_in_range(idx) return int(idx)//3, int(idx)%3 def _alignment_delta(self, start, end): [self._assert_idx_in_range(p) for p in (start, end)] xs, ys = self.well_coords(start) xe, ye = self.well_coords(end) return (xe - xs, ye - ys, [DeckResource.align.VERTICAL] if xs == xe and ys != ye else []) def position_id(self, idx): x, y = self.well_coords(idx) return 'ABC'[y] + str(x + 1) class Plate6(DeckResource): def __init__(self, layout_name): self._layout_name = layout_name self._num_items = 6 self.resource_type = DeckResource.types.VESSEL self._items = [Vessel(self, i) for i in range(self._num_items)] def well_coords(self, idx): self._assert_idx_in_range(idx) return int(idx)//2, int(idx)%2 def _alignment_delta(self, start, end): [self._assert_idx_in_range(p) for p in (start, end)] xs, ys = self.well_coords(start) xe, ye = self.well_coords(end) return (xe - xs, ye - ys, [DeckResource.align.VERTICAL] if xs == xe and ys != ye else []) def position_id(self, idx): x, y = self.well_coords(idx) return 'AB'[y] + str(x + 1) class Plate384(DeckResource): def __init__(self, layout_name): self._layout_name = layout_name self._num_items = 384 self.resource_type = DeckResource.types.VESSEL self._items = [Vessel(self, i) for i in range(self._num_items)] def well_coords(self, idx): self._assert_idx_in_range(idx) return int(idx)//16, int(idx)%16 def _alignment_delta(self, start, end): [self._assert_idx_in_range(p) for p in (start, end)] xs, ys = self.well_coords(start) xe, ye = self.well_coords(end) return (xe - xs, ye - ys, [DeckResource.align.VERTICAL] if xs == xe and ys != ye else []) def position_id(self, idx): x, y = self.well_coords(idx) return 'ABCDEFGHIJKLMNOP'[y] + str(x + 1) class Plate1536(DeckResource): def __init__(self, layout_name): self._layout_name = layout_name self._num_items = 1536 self.resource_type = DeckResource.types.VESSEL self._items = [Vessel(self, i) for i in range(self._num_items)] def well_coords(self, idx): self._assert_idx_in_range(idx) return int(idx)//32, int(idx)%32 def _alignment_delta(self, start, end): [self._assert_idx_in_range(p) for p in (start, end)] xs, ys = self.well_coords(start) xe, ye = self.well_coords(end) return (xe - xs, ye - ys, [DeckResource.align.VERTICAL] if xs == xe and ys != ye else []) def position_id(self, idx): x, y = self.well_coords(idx) row_letters = list('ABCDEFGHIJKLMNOPQRSTUVWXYZ') + ['AA', 'AB', 'AC', 'AD', 'AE', 'AF'] return row_letters[y] + str(x + 1) class Reservoir60mL(DeckResource): def __init__(self, layout_name): self._layout_name = layout_name self._num_items = 8 self.resource_type = DeckResource.types.VESSEL self._items = [Vessel(self, i) for i in range(self._num_items)] def well_coords(self, idx): self._assert_idx_in_range(idx) return int(idx)//8, int(idx)%8 def _alignment_delta(self, start, end): [self._assert_idx_in_range(p) for p in (start, end)] xs, ys = self.well_coords(start) xe, ye = self.well_coords(end) return (xe - xs, ye - ys, [DeckResource.align.VERTICAL] if xs == xe and ys != ye else []) def position_id(self, idx): return '12345678'[idx] class LVKBalanceVial(DeckResource): def __init__(self, layout_name): self._layout_name = layout_name self._num_items = 1 self.resource_type = DeckResource.types.VESSEL self._items = [Vessel(self, i) for i in range(self._num_items)] def well_coords(self, idx): self._assert_idx_in_range(idx) return (0, 0) def _alignment_delta(self, start, end): [self._assert_idx_in_range(p) for p in (start, end)] xs, ys = self.well_coords(start) xe, ye = self.well_coords(end) return (xe - xs, ye - ys, []) def position_id(self, idx): return '1' class EppiCarrier32(DeckResource): def __init__(self, layout_name): self._layout_name = layout_name self._num_items = 32 self.positions = [str(i+1) for i in range(self._num_items)] self.resource_type = DeckResource.types.VESSEL self._items = [Vessel(self, i) for i in range(self._num_items)] def well_coords(self, idx): self._assert_idx_in_range(idx) return int(idx)//32, int(idx)%32 def _alignment_delta(self, start, end): [self._assert_idx_in_range(p) for p in (start, end)] xs, ys = self.well_coords(start) xe, ye = self.well_coords(end) return (xe - xs, ye - ys, [DeckResource.align.VERTICAL] if xs == xe and ys != ye else []) def position_id(self, idx): return self.positions[idx] class FalconCarrier24(DeckResource): def __init__(self, layout_name): self._layout_name = layout_name self._num_items = 24 self.positions = [str(i+1) for i in range(self._num_items)] self.resource_type = DeckResource.types.VESSEL self._items = [Vessel(self, i) for i in range(self._num_items)] def well_coords(self, idx): self._assert_idx_in_range(idx) return int(idx)//24, int(idx)%24 def _alignment_delta(self, start, end): [self._assert_idx_in_range(p) for p in (start, end)] xs, ys = self.well_coords(start) xe, ye = self.well_coords(end) return (xe - xs, ye - ys, [DeckResource.align.VERTICAL] if xs == xe and ys != ye else []) def position_id(self, idx): return self.positions[idx] class Lid(DeckResource): def __init__(self, layout_name): self._layout_name = layout_name def layout_item(lmgr, item_class, item_name): return lmgr.assign_unused_resource(ResourceType(item_class, item_name)) ================================================ FILE: pyhamilton/resources/enums.py ================================================ from enum import IntEnum from dataclasses import dataclass class TipType(IntEnum): """Hamilton tip types mapped to their database codes (values).""" uL_10 = 3 uL_300 = 1 uL_50 = 23 uL_1000 = 5 # Additional tip types from the table uL_300_base = 0 uL_10_with_filter = 2 uL_1000_with_filter = 4 needle_50_old = 6 needle_300_old = 7 needle_1000_old = 8 needle_10 = 11 needle_300 = 12 needle_1000 = 13 uL_30_for_384 = 15 uL_50_for_384 = 20 uL_50_with_filter = 22 uL_5000 = 25 rocket_300_for_384 = 28 uL_4000_with_filter = 29 uL_300_clear = 30 uL_50_clear = 31 uL_10_clear = 32 uL_50_conductive_for_384 = 33 piercing_250 = 35 slim_core_300 = 36 uL_50_clear_for_384 = 37 piercing_150_with_filter = 44 slim_core_300_with_filter = 45 @property def volume(self) -> int: """Return the volume in µL for this tip type.""" mapping = { TipType.uL_10: 10, TipType.uL_300: 300, TipType.uL_50: 50, TipType.uL_1000: 1000, TipType.uL_300_base: 300, TipType.uL_10_with_filter: 10, TipType.uL_1000_with_filter: 1000, TipType.needle_50_old: 50, TipType.needle_300_old: 300, TipType.needle_1000_old: 1000, TipType.needle_10: 10, TipType.needle_300: 300, TipType.needle_1000: 1000, TipType.uL_30_for_384: 30, TipType.uL_50_for_384: 50, TipType.uL_50_with_filter: 50, TipType.uL_5000: 5000, TipType.rocket_300_for_384: 300, TipType.uL_4000_with_filter: 4000, TipType.uL_300_clear: 300, TipType.uL_50_clear: 50, TipType.uL_10_clear: 10, TipType.uL_50_conductive_for_384: 50, TipType.piercing_250: 250, TipType.slim_core_300: 300, TipType.uL_50_clear_for_384: 50, TipType.piercing_150_with_filter: 150, TipType.slim_core_300_with_filter: 300, } return mapping[self] @classmethod def from_volume(cls, volume: int) -> "TipType": """Look up a TipType enum from a µL volume.""" reverse_map = { 10: cls.uL_10, 300: cls.uL_300, 50: cls.uL_50, 1000: cls.uL_1000, } try: return reverse_map[volume] except KeyError: raise ValueError(f"No TipType defined for volume {volume} µL") @property def has_filter(self) -> bool: """Return True if this tip type has a filter.""" filter_tips = { self.uL_10_with_filter, self.uL_1000_with_filter, self.uL_50_with_filter, self.uL_4000_with_filter, self.piercing_150_with_filter, self.slim_core_300_with_filter, } return self in filter_tips @property def is_needle(self) -> bool: """Return True if this is a needle tip type.""" needle_tips = { self.needle_50_old, self.needle_300_old, self.needle_1000_old, self.needle_10, self.needle_300, self.needle_1000, } return self in needle_tips @property def is_384_compatible(self) -> bool: """Return True if this tip is designed for 384-well plates.""" plate_384_tips = { self.uL_30_for_384, self.uL_50_for_384, self.rocket_300_for_384, self.uL_50_conductive_for_384, self.uL_50_clear_for_384, } return self in plate_384_tips ================================================ FILE: pyhamilton/resources/managed_resources.py ================================================ # Fully self‑contained implementation of TrackedTips + StackedResources # with on‑disk persistence (SQLite in ~/.pyhamilton/tip_tracker.db). from __future__ import annotations import string, shutil, os, string, re from datetime import datetime import sqlite3 from pathlib import Path from contextlib import contextmanager from collections import defaultdict from typing import List, Tuple, Optional, Dict, TypeVar, Type # ────────────────────────── HAMILTON imports ────────────────────────── from pyhamilton import OEM_LAY_PATH, LAY_BACKUP_DIR # noqa: F401 (kept for context) from ..oemerr import ResourceUnavailableError # noqa: F401 from .deckresource import (LayoutManager, ResourceType, # noqa: F401 Plate24, Plate96, Tip96, resource_list_with_prefix, layout_item, DeckResource) from ..interface import HamiltonInterface from .enums import TipType from .deckresource import LayoutManager # ────────────────────────── Persistence helpers ─────────────────────── _DOTDIR = Path.home() / ".pyhamilton" _DOTDIR.mkdir(parents=True, exist_ok=True) _DB_PATH = _DOTDIR / "tip_tracker.db" @contextmanager def _get_conn(): """Yield a SQLite connection with WAL enabled and autocommit on exit.""" conn = sqlite3.connect(_DB_PATH) conn.execute("PRAGMA journal_mode=WAL;") try: yield conn conn.commit() finally: conn.close() def _ensure_table() -> None: with _get_conn() as conn: conn.execute(""" CREATE TABLE IF NOT EXISTS tips( tracker_id TEXT, position_idx INTEGER, rack_name TEXT, occupied INTEGER, PRIMARY KEY (tracker_id, position_idx) ) """) _ensure_table() # one‑time at import # ────────────────────────── TrackedTips ────────────────────────── class TrackedTips: """ Persistently tracks individual tips across one or more DeckResources. State lives both in-memory (`self.occupancy`) and on disk (`~/.pyhamilton/tip_tracker.db`). All mutating operations sync to disk. """ # ------------------------------------------------------------------ def __init__(self, tip_racks: List[DeckResource], volume_capacity: int, tracker_id: str | None = None, reset: bool = True, ): """ Parameters ---------- tip_racks : list[DeckResource] The racks this tracker manages. tracker_id : str, optional Identifier used as the namespace inside the shared DB. Defaults to a deterministic hash of rack layout names. """ self.tip_racks : List[DeckResource] = tip_racks self.tracker_id : str = tracker_id or "|".join(r.layout_name() for r in tip_racks) self.volume_capacity: int = volume_capacity # Build default in‑RAM state (all tips occupied). self.occupancy: List[Tuple[DeckResource, bool]] = [] for rack in tip_racks: self.occupancy.extend([(rack, True) for _ in range(rack._num_items)]) # Reconcile with on‑disk data (or seed the DB if brand‑new). if reset: # optional hard‑reset switch self._flush_entire_state() self.restored_from_db = False else: self.restored_from_db = self._hydrate_from_db() # ----------------------------- Factories -------------------------- @classmethod def from_prefix(cls, tracker_id: str, volume_capacity: int, prefix : str, count : int, lmgr : LayoutManager, tip_type : ResourceType = Tip96, reset : bool = True) -> TrackedTips: """ Allocate `count` racks named f"{prefix}_{i:04d}" via `lmgr`, then return a new TrackedTips instance managing them. """ resources = [ lmgr.assign_unused_resource(ResourceType(tip_type, f"{prefix}_{i:04d}")) for i in range(1, count + 1) ] return cls(resources, volume_capacity=volume_capacity, tracker_id=tracker_id, reset=reset) # ------------------------ Public API ------------------------------ def mark_occupied(self, index: int) -> None: rack, _ = self.occupancy[index] self.occupancy[index] = (rack, True) self._update_row(index, True) def mark_unoccupied(self, index: int) -> None: rack, _ = self.occupancy[index] self.occupancy[index] = (rack, False) self._update_row(index, False) def is_occupied(self, index: int) -> bool: return self.occupancy[index][1] def count_remaining(self) -> int: return sum(1 for _, occ in self.occupancy if occ) def total_tips(self) -> int: return len(self.occupancy) def fetch_next(self, n: int) -> List[Tuple[DeckResource, int]]: """ Return and mark unoccupied the next `n` available tips. Output format: (DeckResource, position_within_rack). """ fetched: List[Tuple[int, DeckResource, int]] = [] for idx, (rack, occ) in enumerate(self.occupancy): if not occ: continue # Correct position inside this rack (0‑based) pos_in_rack = idx % rack._num_items # works for any rack size fetched.append((idx, rack, pos_in_rack)) if len(fetched) == n: break if len(fetched) < n: raise ValueError( f"Only {len(fetched)} tips available; {n} requested." ) # Mark the returned tips as used and sync to DB for idx, _, _ in fetched: self.mark_unoccupied(idx) # Strip the internal absolute index before returning return [(rack, pos) for _, rack, pos in fetched] def fetch_rack(self) -> Optional[DeckResource]: """ If an entire rack of 96 still‑occupied tips exists, return that rack and mark its tips unoccupied. Otherwise return None. """ by_rack: Dict[DeckResource, List[int]] = defaultdict(list) for idx, (rack, occ) in enumerate(self.occupancy): by_rack[rack].append(idx if occ else -1) # -1 for used for rack, indices in by_rack.items(): if len(indices) == 96 and all(i >= 0 for i in indices): for idx in indices: self.mark_unoccupied(idx) # syncs each tip return rack return None def fetch_rack_with_min_columns(self, min_columns: int) -> Optional[Tuple[DeckResource, List[int]]]: """ Return the first rack that has at least `min_columns` complete columns of occupied tips (anywhere in the rack). If found, returns a tuple of: (rack, occupancy_map) where `occupancy_map` is a list of 96 integers (1 = occupied, 0 = used) representing the rack's tips **before** they are marked unoccupied. Side-effect: If a qualifying rack is found, ALL tips in that rack are marked unoccupied. Parameters ---------- min_columns : int Minimum number of complete columns (of 8 tips) that must be occupied. Returns ------- Optional[Tuple[DeckResource, List[int]]] (rack, occupancy_map) if found; otherwise None. """ # Build rack → starting absolute index map once rack_start_indices = {rack: sum(r._num_items for r in self.tip_racks[:i]) for i, rack in enumerate(self.tip_racks)} for rack in self.tip_racks: rack_start = rack_start_indices[rack] # Snapshot occupancy for this rack (booleans, length 96 expected) occupancy_bools = [self.occupancy[rack_start + i][1] for i in range(96)] # Count full columns (12 columns × 8 rows layout assumed) full_columns = sum( 1 for col in range(12) if all(occupancy_bools[col * 8 + row] for row in range(8)) ) if full_columns >= min_columns: # Convert to 1/0 map BEFORE mutating state occupancy_map = [1 if b else 0 for b in occupancy_bools] # Mark all tips as unoccupied (persisted via mark_unoccupied) for i in range(96): self.mark_unoccupied(rack_start + i) return rack, occupancy_map raise Exception(f"No rack found with at least {min_columns} full columns.") def reset_all(self) -> None: """ Mark **every** tip in every managed rack as present/available again and persist that state to the on-disk SQLite table. This is functionally the same as constructing the tracker with ``reset=True``—but it can be invoked at any time after the object exists. Example ------- >>> tracker.reset_all() # all tips are now 'full' again """ # 1) Update the in-memory occupancy list for i, (rack, _) in enumerate(self.occupancy): self.occupancy[i] = (rack, True) # 2) Push the fresh state to disk in one shot self._flush_entire_state() def replace_tips(self, positions: List[Tuple[DeckResource, int]]) -> None: """ Mark the given tips as present/available again. Parameters ---------- positions : list[tuple[DeckResource, int]] A collection of (rack, pos_in_rack) pairs where `pos_in_rack` is 0-based within that rack. Raises ------ ValueError • If the rack is not managed by this tracker • If the position is out of range for that rack • If the tip at that location is already occupied """ # Build a mapping of rack → starting absolute index once rack_starts: Dict[DeckResource, int] = {} offset = 0 for rack in self.tip_racks: rack_starts[rack] = offset offset += rack._num_items for rack, pos_in_rack in positions: if rack not in rack_starts: raise ValueError(f"Rack {rack.layout_name()} not managed by this tracker.") if not (0 <= pos_in_rack < rack._num_items): raise ValueError(f"Position {pos_in_rack} out of range for rack {rack.layout_name()}.") abs_idx = rack_starts[rack] + pos_in_rack if self.is_occupied(abs_idx): raise ValueError(f"Tip at {rack.layout_name()}[{pos_in_rack}] is already occupied.") # Persistently mark the tip as available again self.mark_occupied(abs_idx) def fill_rack_from_occupancy_map(self, rack: DeckResource, occupancy_map: List[int]) -> None: """ Set the occupancy state of a specific rack based on the provided occupancy map. This method complements fetch_rack_with_min_columns() by allowing you to restore a rack's state from a previously captured occupancy map. Parameters ---------- rack : DeckResource The specific rack to update. Must be managed by this tracker. occupancy_map : List[int] A list of 96 integers where 1 = occupied/available and 0 = unoccupied/used. The list should match the rack's layout (12 columns × 8 rows). Raises ------ ValueError • If the rack is not managed by this tracker • If occupancy_map length doesn't match the rack size (expected 96) • If occupancy_map contains values other than 0 or 1 Example ------- >>> # Capture state before fetching >>> rack, old_occupancy = tracker.fetch_rack_with_min_columns(4) >>> # ... use the rack for some operations ... >>> # Later, restore the original state >>> tracker.fill_rack_from_occupancy_map(rack, old_occupancy) """ # Validate that we manage this rack if rack not in self.tip_racks: raise ValueError(f"Rack {rack.layout_name()} is not managed by this tracker.") # Validate occupancy map size if len(occupancy_map) != 96: raise ValueError(f"Occupancy map must have 96 entries, got {len(occupancy_map)}.") # Validate occupancy map values if not all(val in (0, 1) for val in occupancy_map): raise ValueError("Occupancy map must contain only 0 (unoccupied) or 1 (occupied) values.") # Find the starting absolute index for this rack rack_start_idx = 0 for r in self.tip_racks: if r == rack: break rack_start_idx += r._num_items else: # This shouldn't happen given our first check, but just in case raise ValueError(f"Rack {rack.layout_name()} not found in tip_racks.") # Update each position in the rack according to the occupancy map for pos_in_rack, should_be_occupied in enumerate(occupancy_map): abs_idx = rack_start_idx + pos_in_rack if should_be_occupied == 1: # Should be occupied/available if not self.is_occupied(abs_idx): self.mark_occupied(abs_idx) else: # Should be unoccupied/used if self.is_occupied(abs_idx): self.mark_unoccupied(abs_idx) # ------------------- Persistence internals ------------------------ def _hydrate_from_db(self) -> bool: with _get_conn() as conn: cur = conn.execute( "SELECT position_idx, rack_name, occupied " "FROM tips WHERE tracker_id = ?;", (self.tracker_id,) ) rows = cur.fetchall() if not rows: # first‑time tracker → seed DB self._flush_entire_state() return False # overwrite default RAM state with DB contents rack_map = {r.layout_name(): r for r in self.tip_racks} for pos, rack_name, occ_int in rows: rack = rack_map.get(rack_name) if rack is None: continue # stale DB row; ignore self.occupancy[pos] = (rack, bool(occ_int)) return True def _update_row(self, position_idx: int, occupied: bool) -> None: rack = self.occupancy[position_idx][0] with _get_conn() as conn: conn.execute("""INSERT OR REPLACE INTO tips (tracker_id, position_idx, rack_name, occupied) VALUES (?,?,?,?);""", (self.tracker_id, position_idx, rack.layout_name(), int(occupied))) def _flush_entire_state(self) -> None: with _get_conn() as conn: conn.executemany("""INSERT OR REPLACE INTO tips (tracker_id, position_idx, rack_name, occupied) VALUES (?,?,?,?);""", [(self.tracker_id, idx, rack.layout_name(), int(occ)) for idx, (rack, occ) in enumerate(self.occupancy)]) # ────────────────────────── StackedResources ────────────────────────── _STACKED_DB = _DOTDIR / "stacked_resources.db" # separate file so schemas stay tidy def _get_stacked_conn(): """SQLite connection for stacked‑resource tracking (WAL enabled).""" conn = sqlite3.connect(_STACKED_DB) conn.execute("PRAGMA journal_mode=WAL;") return conn def _ensure_stacked_table() -> None: with _get_stacked_conn() as conn: conn.execute(""" CREATE TABLE IF NOT EXISTS stacked( tracker_id TEXT, rack_name TEXT, slot_idx INTEGER, available INTEGER, PRIMARY KEY (tracker_id, rack_name, slot_idx) ) """) conn.commit() _ensure_stacked_table() # run at import time T = TypeVar('T', bound='DeckResource') class StackedResources: """ A persistent stack of named resources (as strings), supporting top-of-stack-first access and database-backed availability tracking. """ def __init__(self, resource_names: List[str], tracker_id: Optional[str], lmgr: Optional[LayoutManager], resource_type: Type[T], reset: bool = True): self.resource_names = list(resource_names) # fixed order definition self.tracker_id = tracker_id or "|".join(resource_names) self._stacked: List[str] = list(resource_names) self.resource_type = resource_type self.lmgr = lmgr if lmgr is not None: for rname in resource_names: resource_present_in_layfile = any([rname in line for line in lmgr.lines]) if not resource_present_in_layfile: raise ValueError(f"Resource '{rname}' not found in LayoutManager.") if reset: # Hard reset: clear any prior rows for this tracker_id and seed to "full" with _get_stacked_conn() as conn: conn.execute("DELETE FROM stacked WHERE tracker_id = ?;", (self.tracker_id,)) self._flush_entire_state(conn) conn.commit() else: # Rehydrate from DB if present; otherwise seed to full self._hydrate_from_db() @classmethod def from_prefix(cls, tracker_id: str, prefix : str, count : int, lmgr : LayoutManager, resource_type: Type[T], reset : bool = True) -> StackedResources: """ Create a stack with HIGHEST index at the TOP (fetched first). Example: count=4 → top: prefix_0004, prefix_0003, prefix_0002, prefix_0001 """ ascending = [f"{prefix}_{i:04d}" for i in range(1, count + 1)] top_first = list(reversed(ascending)) return cls(top_first, tracker_id=tracker_id, lmgr=lmgr, resource_type=resource_type, reset=reset) def get_stacked(self) -> List[str]: """Return the current list of available resources (top-first).""" return self._stacked def count(self) -> int: """Return the number of available resources.""" return len(self._stacked) def fetch_next(self) -> str: """ Pop and return the next resource from the top of the stack. Persistently marks it as unavailable and remembers it for put_back_top(). """ if len(self._stacked) < 1: raise ValueError(f"Only {len(self._stacked)} resources available; 1 requested.") rname = self._stacked.pop(0) self._last_fetched = rname self._update_row(rname, available=False) resource = self.resource_type(rname) return resource def put_back(self) -> str: """ Restore the next positional resource to the TOP of the stack, mark it available, and return its name. Logic: - self.resource_names is the canonical, top-first order (e.g. 0004,0003,0002,0001). - self._stacked is a subsequence (available ones). - Putting back picks the highest-priority *missing* name and inserts it at index 0. """ # Compute which names are currently missing (unavailable), in top-first order. missing = [r for r in self.resource_names if r not in self._stacked] if not missing: raise RuntimeError("Stack is already full; nothing to put back.") rname = missing[0] # highest-priority missing item self._stacked.insert(0, rname) self._update_row(rname, available=True) resource = self.resource_type(rname) return resource def reset_all(self) -> None: """ Reset all resources to available state and restore the full stack. This marks every resource as available again and rebuilds the stack to its original top-first order. This is functionally the same as constructing the tracker with ``reset=True``—but it can be invoked at any time after the object exists. Example ------- >>> stack.reset_all() # all resources are now available again """ # 1) Update the in-memory stack to full state self._stacked = list(self.resource_names) # 2) Push the fresh state to disk in one shot with _get_stacked_conn() as conn: # Clear existing entries for this tracker conn.execute("DELETE FROM stacked WHERE tracker_id = ?;", (self.tracker_id,)) # Write all resources as available self._flush_entire_state(conn) conn.commit() # ---------------------- Persistence Helpers ---------------------- def _hydrate_from_db(self) -> None: """Restore from DB or seed from initial list if new.""" with _get_stacked_conn() as conn: cur = conn.execute( "SELECT rack_name, available FROM stacked WHERE tracker_id = ?;", (self.tracker_id,)) rows = cur.fetchall() if not rows: self._flush_entire_state(conn) conn.commit() return valid_names = set(self.resource_names) availability = {r: bool(a) for r, a in rows if r in valid_names} self._stacked = [r for r in self.resource_names if availability.get(r, False)] def _update_row(self, rname: str, *, available: bool) -> None: """Insert or update a single row in the DB.""" with _get_stacked_conn() as conn: conn.execute("""INSERT OR REPLACE INTO stacked (tracker_id, rack_name, slot_idx, available) VALUES (?,?,NULL,?);""", (self.tracker_id, rname, int(available))) conn.commit() def _flush_entire_state(self, conn) -> None: """Write the full available list to the DB.""" conn.executemany("""INSERT OR REPLACE INTO stacked (tracker_id, rack_name, slot_idx, available) VALUES (?,?,NULL,?);""", [(self.tracker_id, rname, 1) for rname in self._stacked]) class TipSupportTracker: WELLS_PER_COL = 8 NUM_COLS = 12 TOTAL_WELLS = WELLS_PER_COL * NUM_COLS # 96 def __init__(self, resource): self.resource = resource self.occupancy = [0] * self.TOTAL_WELLS # 1 = available, 0 = empty self.tip_vol = None self.source_rack = None # set on add_rack self.source_tip_tracker = None # set on add_rack def _update_rack_in_tracker(self, rack, tip_occupancies, tip_tracker, tip_vol): """Load a full fresh rack into the support (assumes all wells have tips).""" self.occupancy = tip_occupancies self.tip_vol = tip_vol self.source_rack = rack self.source_tip_tracker = tip_tracker def remove_rack(self, rack=None): """Clear current rack state.""" self.occupancy = [0] * self.TOTAL_WELLS self.tip_vol = None self.source_rack = None def has_available_tips(self, num_tips: int) -> bool: return sum(self.occupancy) >= num_tips def _rightmost_indices_for_n_columns(self, n: int): if not (1 <= n <= self.NUM_COLS): raise ValueError(f"n must be between 1 and {self.NUM_COLS}, got {n}") full = [all(self.occupancy[c*self.WELLS_PER_COL + r] for r in range(self.WELLS_PER_COL)) for c in range(self.NUM_COLS)] cols = [c for c in range(self.NUM_COLS-1, -1, -1) if full[c]][:n] if len(cols) < n: raise ValueError(f"Only found {len(cols)} full columns; {n} requested.") return sorted(i for c in cols for i in range(c*self.WELLS_PER_COL, (c+1)*self.WELLS_PER_COL)) def fetch_n_columns(self, ham_int: HamiltonInterface, n: int, tip_tracker: TrackedTips): """ Returns (tips, leftmost_col_idx) where tips are the wells in the right-most n columns, and leftmost_col_idx is 1-based column index of the left-most column fetched. """ if self.source_rack is None: self.tip_support_add_rack(ham_int, tip_tracker, n) if self.tip_vol != tip_tracker.volume_capacity: print(f"Tip volume mismatch: support has {self.tip_vol}, tracker has {tip_tracker.volume_capacity}. Replacing rack.") self.tip_support_add_rack(ham_int, tip_tracker, n) try: indices = self._rightmost_indices_for_n_columns(n) except ValueError: self.tip_support_add_rack(ham_int, tip_tracker, n) indices = self._rightmost_indices_for_n_columns(n) # If available, mark and return if all(self.occupancy[i] == 1 for i in indices): for i in indices: self.occupancy[i] = 0 leftmost_col_idx = indices[0] // self.WELLS_PER_COL + 1 return leftmost_col_idx if not all(self.occupancy[i] == 1 for i in indices): raise RuntimeError(f"After replacing rack, still no right-most {n} columns available.") def tip_support_add_rack(self, ham_int: HamiltonInterface, tracked_tips: TrackedTips, num_columns: int): """ Eject current rack (if any), fetch another with >= num_columns available columns, and load it here. Assumes `tracked_tips.fetch_rack_with_min_columns` returns a rack object with tips in the left-most columns populated (or all). """ tip_rack, tip_occupancies = tracked_tips.fetch_rack_with_min_columns(num_columns) if self.source_rack is not None: # Place any currently-held tips back and eject the existing rack ham_int.tip_pick_up_96(self.resource) ham_int.tip_eject_96(self.source_rack) self.source_tip_tracker.fill_rack_from_occupancy_map(self.source_rack, self.occupancy) # Load the new rack into the support # We have to modify the labware property of the tip support at runtime ham_int.set_labware_property(self.resource.layout_name(), 'MlStarCore96TipRack', TipType.from_volume(tracked_tips.volume_capacity)) ham_int.tip_pick_up_96(tip_rack) ham_int.tip_eject_96(self.resource) self._update_rack_in_tracker(tip_rack, tip_occupancies, tracked_tips, tracked_tips.volume_capacity) ================================================ FILE: pyhamilton/run_venus_client.py ================================================ from pyhamilton.interface import run_hamilton_process from multiprocessing import Process import time import os import signal if __name__ == '__main__': oem_process = Process(target=run_hamilton_process, args=()) oem_process.start() while True: try: time.sleep(1) except: try: os.kill(oem_process.pid, signal.SIGTERM) oem_process.join() except PermissionError: time.sleep(1) ================================================ FILE: pyhamilton/star-oem/HslHamHeaterShakerLib.hs_ ================================================ // ====================================================================== // This is a part of the HSLHamHeaterShaker Library. // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // All rights reserved. // ====================================================================== // // Modification History // // 2008-09-11 tbenz > V1.0 first creation // // 2008-12-03 tbenz > V1.1 check of input parameter removed // // 2009-08-13 tbenz > V1.2 Initialize routine enlarget with close ond open plate lock // changed in function InitializeNode() // // 2013-03-06 tbenz > V4.4 No change in the library. // USB driver changed from UsbIoComm.dll to HxUsbComm.dll // this driver is trace into the same UsbCom.trc file than the phoenix software. // Version is new dependet of the software version. // // >>>>> if you change the version update HamHeaterShakerVersion too <<<< // // ********************************************************************** // This library version supports following hardware: // - Hamilton Heater Shaker PN 186280/02 // ********************************************************************** #ifndef __HSLHeaterShakerLibImpl_hsl__ #define __HSLHeaterShakerLibImpl_hsl__ 1 static const variable HamHeaterShakerVersion("Version: V4.4"); // ---------------------------------------------------------------------------------------------------- // Includes // ---------------------------------------------------------------------------------------------------- #ifndef __HSLStrLib_hsl__ #include "HSLStrLib.hsl" #endif #ifndef __HSLSynLib_hsl__ #include "HSLSynLib.hsl" #endif #ifndef __HSLMthLib_hsl__ #include "HSLMthLib.hsl" #endif // ---------------------------------------------------------------------------------------------------- // Device (for development only! Comment out for release version.) // ---------------------------------------------------------------------------------------------------- //device ML_STAR; // -------------------------------------------------------------------------------------- // Implementation of Hamilton Heater Shaker library // -------------------------------------------------------------------------------------- namespace HSLHamHeaterShaker { #ifndef __HSLStringTableLib_hsl__ #include "HSLStringTableLib.hs_" #endif // -------------------------------------------------------------------------------------- // Debugging and Developing (for development only! Comment out for release version.) // -------------------------------------------------------------------------------------- //#define _DEBUG 1 // specifies the debug version of the HSLHamHeaterShaker library // -------------------------------------------------------------------------------------- // Tracing // -------------------------------------------------------------------------------------- namespace TraceStatus { static const variable cmd_start(1); // action status for formated trace and step return static const variable cmd_complete(2); // action status for formated trace and step return static const variable cmd_error(3); // action status for formated trace and step return static const variable cmd_progress(4); // action status for formated trace and step return static const variable cmd_errComplete(5); // action status for formated trace and step return } // -------------------------------------------------------------------------------------- // Parameter definitions // -------------------------------------------------------------------------------------- namespace ShakingParam { static const variable directionLeft(0); // Shaking direction static const variable directionRight(1); // Shaking direction static const variable directionDefault(0); // Shaking direction static const variable speedParamLenght(4); // Length of firmware parameter string static const variable accelParamLenght(5); // Length of firmware parameter string static const variable timeParamLenght(5); // Length of firmware parameter string static const variable rampMin(630); // Accelerator ramp min static const variable rampMax(12500); // Accelerator ramp max static const variable rampDefault(1250); // Accelerator ramp default static const variable rpmMin(30); // min revolutions per minutes RPM (steps per second (48 steps == 1 revolution) static const variable rpmMax(2500); // max revolutions per minutes RPM static const variable rpmDefault(1000); // Revolutions per minutes RPM static const variable rmpStepFactor(1.25); // Factor to calculate RPM to steps (Steps = RPM / rmpStepFactor) static const variable shakingTimeMin(0); // min shaking time static const variable shakingTimeMax(30000); // max shaking time static const variable shakeTolMin(0); // min shaking tolerance static const variable shakeTolMax(100); // max shaking tolerance } namespace TemperateParam { static const variable startTimeOutDefault(1800);// Time before temperature will be checked static const variable startTimeOutMin(1); // Time before temperature will be checked static const variable startTimeOutMax(3600); // Time before temperature will be checked static const variable paramLength(4); // Length of all temperature step parameter static const variable tempStateOk(0); // Temperature was allways in temperature range static const variable tempStateOutOfRange(1); // Temperature was out of temperature range static const variable tempStateOutOfSecurity(2);// Temperature was out of security range static const variable tempStateTimeOut(3); // Temperature timeout static const variable tempMin(0.0); // min temperature static const variable tempMax(105.0); // max temperature static const variable tempToleranceDefault(2.0);// Tolerance of incubation time static const variable tempToleranceMin(0.0); // Tolerance of incubation time static const variable tempToleranceMax(100.0); // Tolerance of incubation time static const variable tempSecurityDefault(6.0); // Security range of incubation temperature (switch off heater if reached) static const variable tempSecurityMin(0.0); // Security range of incubation temperature (switch off heater if reached) static const variable tempSecurityMax(100.0); // Security range of incubation temperature (switch off heater if reached) static const variable tempTempRequestLength(13);// Length of temperature response string static const variable tempStateRequestLength(4);// Length of temperature state response string } // -------------------------------------------------------------------------------------- // Monitoring // -------------------------------------------------------------------------------------- namespace MonitorStatus { static const variable monitorOK(0); // no error static const variable monitorErrHeating(1); // heating out of range static const variable monitorErrShaking(2); // shaking out of range static const variable monitorErrHeatingAndShaking(3); // heating and shaking out of range } namespace MonitorAction { static const variable monitorActionMin(0); // min value static const variable monitorActionCont(0); // Continue static const variable monitorActionStop(1); // Stop Heating, shaking and monitoring static const variable monitorActionAbort(2); // Abort run static const variable monitorActionMax(2); // max value } // -------------------------------------------------------------------------------------- // Module local constants/variables // -------------------------------------------------------------------------------------- static const variable m_maxHHS(10); // node 0..9 static const variable m_firstStarNode(1); // node 1 and 2 for ML_Star static const variable m_lastStarNode(2); // node 1 and 2 for ML_Star static const variable m_firstUsbNode(1); // node 1 to 8 for USB (0..7) static const variable m_lastUsbNode(8); // node 1 to 8 for USB (0..7) static const variable m_firstDeviceNumber(1); // generated deviceNumber range static const variable m_lastDeviceNumber(m_maxHHS); // generated deviceNumber range static const variable m_usbMsgTimeout(240); // timeout for comand which are send to USB static const variable m_usbInitTimeout(15); // timeout for init comands which are send to USB static const variable m_OFF(0); static const variable m_ON(1); static const variable m_firmwareCmdLength(2); // length of firmware command without node (Tx) static const variable m_waitTimeOutSecurity(60); // Security time which will be added oto wait timeout of function waitShaker() static const variable m_starSimulateModeKey(18); // key for read simulate flag of STAR with GetCfgValueWithKey() static const variable m_shakingPropertyHeatAndShake(0); // HHS is usable for heating and shaking static const variable m_shakingPropertyOnlyHeat(1); // HHS is usable for heating only static const variable m_shakingPropertyOnlyShake(2); // HHS is usable for shaking only static const variable m_shakingPropertyNothing(3); // HHS is defined wrong, no shaking and no heating ???? // special error definition for direct check in step result string static const variable m_fwNoError("er00"); // no error static const variable m_fwCanError("er10"); // can error static const variable m_fwShNotInitError("er51"); // Shaker not initialized static const variable m_fwShStepLostError("er52"); // Shaker step lost static const variable m_fwPlNotInitError("er56"); // Plate lock not initialized static const variable m_fwPlStepLostError("er57"); // Plate lock step lost static const variable m_fwTimeoutError("er98"); // Time out during send of a command static const variable m_fwIsInitialized("qw1"); // QW answere, initialize = flag == 1 static const variable m_noStarConnectionError("er03"); // No connection to star // definition for USB component static variable m_hhsUsbObjectName("HamHeaterShakerUSB.USB"); // name of USB component // "{BD0DAB87-838B-44c5-A114-1CBA5BE0E45F}", bufferSize(4090), vendorId(2223), productId(32770), serialNumber(00)); static variable m_hhsUsbProductNum(32770); // productId and serialNumber as string static variable m_hhsUsbSerieNum("00"); // productId and serialNumber as string // -------------------------------------------------------------------------------------- // Module globale constants/variables // -------------------------------------------------------------------------------------- static global variable m_hhsCriticalSection(0); // critical section object for library synchronization static global object m_usbComObject; // USB device object // -------------------------------------------------------------------------------------- // Module local constants/variables which must be locked during set / get // -------------------------------------------------------------------------------------- static variable m_isStringTableInitialized(hslFalse); // flag for init string table static global variable m_initializedLib(hslFalse); // initialization state of the HSL HamHeaterShaker library static global variable m_isSimulate(hslFalse); // flag for simulate mode of heater shaker static global variable m_usbTrace(hslTrue); // flag vor trace the send and receive from USB device static global variable m_initializedHeater[](m_maxHHS); // initialization state of the used device static global variable m_shakingDirection[](m_maxHHS); // Shaking direction left/right (0/1) static global variable m_shakingAccRamp[](m_maxHHS); // Acceleration ramp (rpm) static global variable m_shakingTimeOut[](m_maxHHS); // Time out for waiting function after StartTimed 0 = not started static global variable m_tempStartTimeOut[](m_maxHHS); // Time to elapse until the time controlling is satrt static global variable m_tempToleranceRange[](m_maxHHS); // Tolerance of incubation temperature static global variable m_tempSecurityRange[](m_maxHHS); // Security tolerance before the heater is automatic switched off static global variable m_userShakingSpeed[](m_maxHHS); // The given speed from start function static global variable m_userTemperature[](m_maxHHS); // The given temperature from start function // device management // note: the assigned deviceNumber correspond with the array index (deviceNumber-1 == arrayIndex) static global variable m_deviceName[](m_maxHHS); // Name of ML_STAR or "USB" on USB static global variable m_nodeNumber[](m_maxHHS); // can node number 1 based static global object m_starDeviceObj[](m_maxHHS); // object of ML_STAR device, for USB use m_usbComObject static global variable m_isStarSimulate[](m_maxHHS); // ML_STAR is in simulate mode static global variable m_hhsSetting[](m_maxHHS); // 0..2, 0=both, 1=onlyHeat, 2=onlyShake static function saveAndCreateDeviceNumber(variable funcId, variable deviceName, object& starObject, variable isStarSimulate, variable usedNode); // m_initializedHeater value with data access lock static function isUsbConnected(variable funcId); static function isSimulate(variable funcId, variable deviceNumber, variable makeTrace ); // uses node from 0 to 9 static function isHeaterInitialized(variable deviceNumber); // uses node from 0 to 9 static function setHeaterInitialized(variable deviceNumber); static function isUsbTrace(); // definitions for Monitoring function static const variable m_minSampleInterval(5); static const variable m_maxSampleInterval(300); // Prepare the globals for the hsl thread. static global event m_monitorStartEvent; static global variable m_monitorDeviceNumber; static global variable m_monitorShakerMin; static global variable m_monitorShakerMax; static global variable m_monitorHeaterMin; static global variable m_monitorHeaterMax; static global variable m_monitorSampleInterval; static global variable m_monitorAction; static global event m_monitorEvent[](m_maxHHS); static global variable m_monitorResult[](m_maxHHS); // -------------------------------------------------------------------------------------- // Firmware Error Ids // -------------------------------------------------------------------------------------- namespace IDE { static const variable first(0); // guard static const variable noError(first); // No error static const variable retErr(first + 1); // fatalError static const variable retNotInitErr(first + 2); // node not initialized static const variable retNotConnectErr(first + 3); // device not connected static const variable canError(first + 4); // No communication to CAN node static const variable eepromError(first + 5); // No communication to EEPROM static const variable syntaxCmdError(first + 6); // Unknown command static const variable syntaxParUnkError(first + 7); // Unknown parameter. static const variable syntaxParRangeError(first + 8); // Parameter out of range. static const variable generalVoltError(first + 9); // Voltage outside permitted range static const variable generalStopError(first + 10); // Stop received static const variable generalAddrError(first + 11); // Wrong system address static const variable parallelError(first + 12); // Parallel commands are nor allowed static const variable shakerInitError(first + 13); // Shaker initialization failt static const variable shakerNotInitError(first + 14); // Shaker not initialized static const variable shakerStepLossError(first + 15); // Shaker step loss static const variable shakerStartModeError(first + 16); // Shaker is not started with timeout static const variable plateLockInitError(first + 17); // Plate lock initialization failt static const variable plateLockNotInitError(first + 18); // Plate lock not initialized static const variable plateLockStepLossError(first + 19); // Plate lock step loss static const variable tempNotStartError(first + 20); // Temperature controlling not started static const variable tempTimeoutError(first + 21); // Timeout of temperature supervision static const variable tempSuperRangeError(first + 22); // Temperature out of supervision range static const variable tempSecurRangeError(first + 23); // Temperature out of security range static const variable tempSensorError(first + 24); // Temperature out of security range static const variable commandSendTimeout(first + 25); // Time out occured on command ='%s' static const variable unknowFwError(first + 26); // Unknow firmware error = '%s' // none firmware errors static const variable noStringValue(first + 27); // Wrong type of parameter; '%s1(%s2)' must be a sting.. static const variable noIntegerValue(first + 28); // Wrong type of parameter; '%s1(%s2)' must be a whole number. static const variable noDoubleValue(first + 29); // Wrong type of parameter; '%s1(%s2)' must be a whole or decimal number. static const variable neededNodeNotAvailable(first + 30); // Node '%s1' not found, please set it to 0 on parameter '%s2' at position '%s3'. static const variable unknownResultFormat(first + 31); // Unknown format of firmware result string.\r\nExpected: '%s1'.\r\nReceived: '%s2'. static const variable wrongParameterLength(first + 32); // Wrong length of input parameter.\r\nParameter = '%s1' length (%s2).\r\nExpected lenght (%s3). static const variable last(first + 32); // guard } // -------------------------------------------------------------------------------------- // String Ids // -------------------------------------------------------------------------------------- namespace IDS { static const variable first(IDE::last + 1); // guard static const variable traceSource(first); // Text: "SYSTEM", source for formated trace static const variable helpFileName(first + 1); // Text: "HSLHAMHEATERSHAKERLIB%s.CHM", language independend language name static const variable sendMessageTitle(first + 2); // Text: "Send message = " static const variable receiveMessageTitle(first + 3); // Text: "Received answere = " static const variable setSimulate(first + 4); // Text: "Set simulate mode = " static const variable starNode(first + 5); // Text: "ML_Star node" static const variable usbNode(first + 6); // Text: "USB node" static const variable noUsbConnection(first + 7); // Text: "No connection to USB device." static const variable parameterOutOfRange(first + 8); // Text: "Parameter out of range; '%s1(%s2)' must be between [%s3..%s4]." static const variable neededNodeNotInitialized(first + 9); // Text: "Node '%s1' not initialized'." static const variable setTrace(first + 10); // Text: "Set USB trace mode = " static const variable firmwareVersion(first + 11); // Text: "%s1 '%s2' firmware version = " static const variable cannotCreateUsbPort(first + 12); // Text: "USB communication cannot be created." static const variable timeoutDuringWaitShaker(first + 13); // Text: "Time out during wait for end shaking. Shaking will be stop." static const variable progressSendTo(first + 14); // Text: "Send command to %s1 ( %s2 )." static const variable startTimeout(first + 15); // Text: "Start time out = " static const variable toleranceRange(first + 16); // Text: "Temperature range = " static const variable securityRange(first + 17); // Text: "Security range = " static const variable shakingDirection(first + 18); // Text: "Shaking direction = " static const variable shakingSpeed(first + 19); // Text: "Shaking speed = " static const variable shakingAccRamp(first + 20); // Text: "Shaking acceleration ramp = " static const variable sendToStar(first + 21); // Text: "HSLHamHeaterShakerLib::SendToStar" static const variable sendToUsb(first + 22); // Text: "HSLHamHeaterShakerLib::SendToUsb" static const variable invalidStarDevice(first + 23); // Text: "Parameter 'starDevice' contains an invalid object." static const variable invalidDeviceNumber(first + 24); // Text: "Parameter 'deviceNumber' contains an invalid value! \r\nMust be created with function CreateStarDevice() or CreateUsbDevice()" static const variable maxHHSReached(first + 25); // Text: "Cannot create the deviceNumber; Maximum count of usable HHS is reached." static const variable shakingNotActivated(first + 26); // Text: "Current HHS module on %s1 '%s2' cannot used as shaker."); static const variable heatingNotActivated(first + 27); // Text: "Current HHS module on %s1 '%s2' cannot used as heater."); static const variable monitoringShakingTitle(first + 28); // Text: "Current speed (RPM) = "); static const variable monitoringTempTitle(first + 29); // Text: "Current temperature = "); static const variable monitoringTempHeatUpTitle(first + 30);// Text: "Current temperature (heating up mode) = "); static const variable monitoringStateTitle(first + 31); // Text: "Current monitored state = "); static const variable monitoringWarning(first + 32); // Text: "Warning: "); static const variable monitoringShNotStart(first + 33); // Text: "Shaking not started, check of speed limit will be disabled!"); static const variable monitoringHeNotStart(first + 34); // Text: "Heating up not started, check of temperature limit will be disabled!"); static const variable monitoringAbort(first + 35); // Text: "Heating or shaking is out of range; Method will be abort!"); static const variable last(first + 35); // guard } // -------------------------------------------------------------------------------------- // Function Ids // -------------------------------------------------------------------------------------- namespace IDF { // do not change the sort of this list of function and his IDs static const variable first(IDS::last + 1); // guard static const variable CreateStarDevice(first); // Text: "HSLHamHeaterShakerLib - CreateStarDevice" static const variable CreateUsbDevice(first+1); // Text: "HSLHamHeaterShakerLib - CreateUsbDevice" static const variable Terminate(first + 2); // Text: "HSLHamHeaterShakerLib - Terminate" static const variable StartShaker(first + 3); // Text: "HSLHamHeaterShakerLib - StartShaker" static const variable StopShaker(first + 4); // Text: "HSLHamHeaterShakerLib - StopShaker" static const variable StartShakerTimed(first + 5); // Text: "HSLHamHeaterShakerLib - StartShakerTimed" static const variable WaitForShaker(first + 6); // Text: "HSLHamHeaterShakerLib - WaitForShaker" static const variable StartAllShaker(first + 7); // Text: "HSLHamHeaterShakerLib - StartAllShaker" static const variable StartAllShakerTimed(first + 8); // Text: "HSLHamHeaterShakerLib - StartAllShakerTimed" static const variable StopAllShaker(first + 9); // Text: "HSLHamHeaterShakerLib - StopAllShaker" static const variable SetShakerParameter(first + 10); // Text: "HSLHamHeaterShakerLib - SetShakerParameter" static const variable GetShakerParameter(first + 11); // Text: "HSLHamHeaterShakerLib - GetShakerParameter" static const variable GetShakerSpeed(first + 12); // Text: "HSLHamHeaterShakerLib - GetShakerSpeed" static const variable StartTempCtrl(first + 13); // Text: "HSLHamHeaterShakerLib - StartTempCtrl" static const variable StopTempCtrl(first + 14); // Text: "HSLHamHeaterShakerLib - StopTempCtrl" static const variable WaitForTempCtrl(first + 15); // Text: "HSLHamHeaterShakerLib - WaitForTempCtrl" static const variable GetTemperature(first + 16); // Text: "HSLHamHeaterShakerLib - GetTemperature" static const variable GetTemperatureState(first + 17); // Text: "HSLHamHeaterShakerLib - GetTemperatureState" static const variable SetTempParameter(first + 18); // Text: "HSLHamHeaterShakerLib - SetTempParameter" static const variable GetTempParameter(first + 19); // Text: "HSLHamHeaterShakerLib - GetTempParameter" static const variable SetPlateLock(first + 20); // Text: "HSLHamHeaterShakerLib - SetPlateLock" static const variable GetFirmwareVersion(first + 21); // Text: "HSLHamHeaterShakerLib - GetFirmwareVersion" static const variable GetSerialNumber(first + 22); // Text: "HSLHamHeaterShakerLib - GetSerialNumber" static const variable BeginMonitoring(first + 23); // Text: "HSLHamHeaterShakerLib - BeginMonitoring" static const variable EndMonitoring(first + 24); // Text: "HSLHamHeaterShakerLib - EndMonitoring" static const variable SendFirmwareCommand(first + 25); // Text: "HSLHamHeaterShakerLib - SendFirmwareCommand" static const variable SetSimulation(first + 26); // Text: "HSLHamHeaterShakerLib - SetSimulation" static const variable SetUSBTrace(first + 27); // Text: "HSLHamHeaterShakerLib - SetUSBTrace" static const variable Monitoring(first + 28); // Text: "HSLHamHeaterShakerLib - Monitoring" static const variable last(first + 28); // guard } // -------------------------------------------------------------------------------------- // Exception handling // -------------------------------------------------------------------------------------- namespace Error { static function Raise( // raises a runtime error variable errorId, // i: error id, one of IDE variable& fileName, // i: file name variable& funcName, // i: function name variable& lineNumber) // i: line number { variable description(""); string hlpFileName; // set error description if ("" == funcName) description = fileName + "(" + lineNumber + ") : " + StringTable::Load(errorId); else description = fileName + "(" + lineNumber + ") : " + funcName + "()\n" + StringTable::Load(errorId); err.SetDescription(description); hlpFileName = StringTable::Load(IDS::helpFileName); StrReplace(hlpFileName, "%s", GetLanguage()); // raise error err.Raise(errorId, err.GetDescription(), hlpFileName); } static function RaiseEx( // raises a runtime error variable errorId, // i: error id, one of IDE variable errorDesc, // i: error description variable& fileName, // i: file name variable& funcName, // i: function name variable& lineNumber) // i: line number { variable description(""); string hlpFileName; // set error description if ("" == funcName) description = fileName + "(" + lineNumber + ") : " + errorDesc; else description = fileName + "(" + lineNumber + ") : " + funcName + "()\n" + errorDesc; err.SetDescription(description); hlpFileName = StringTable::Load(IDS::helpFileName); StrReplace(hlpFileName, "%s", GetLanguage()); // raise error err.Raise(errorId, err.GetDescription(), hlpFileName); } static function RaiseLast() // re-throws the last runtime error { // re-raise error err.Raise(); } } /**************************************************************************************** * * Internal helper function declaration * ****************************************************************************************/ static function initHamHeaterShakerLib(variable funcId, variable deviceNumber, variable initShaker); static function checkStringInput(variable funcId, variable parameterName, variable input); static function checkIntegerInput(variable funcId, variable parameterName, variable input); static function checkIntegerInputRange(variable funcId, variable parameterName, variable input, variable min, variable max); static function checkDoubleInput(variable funcId, variable parameterName, variable input); static function checkDoubleInputRange(variable funcId, variable parameterName, variable input, variable min, variable max); static function isStarDevice(variable deviceNumber); static function getNodeFromDeviceNumber(variable deviceNumber); static function checkDeviceNumber(variable funcId, variable deviceNumber); static function setHHSSetting(variable funcId, variable deviceNumber, variable& hhsSetting); static function hasHeater(variable funcId, variable deviceNumber, variable throw); static function hasShaker(variable funcId, variable deviceNumber, variable throw); static function sendMsg(variable deviceNumber, variable command, variable parameter, variable timeOut, variable makeTrace); static function sendToUsb(variable deviceNumber, variable command, variable parameter, variable timeOut); static function sendToStar(variable deviceNumber, variable cmd, variable param, variable makeTrace); static function startTrace(variable funcName) void; static function progressTrace(variable funcName, variable progMsgTitle, variable progMsg) void; static function errorTrace(variable funcName, variable errMsg) void; static function errorCompleteTrace(variable funcName, variable errMsg) void; static function endTrace(variable funcName) void; static function getSendState(variable funcId, variable deviceNumber, variable isShaker); static function isFirmwError(variable funcId, string cmdResult, variable makeTrace); static function startPlateLockCmd(variable funcId, variable deviceNumber, variable plateLock); static function startShakingCmd(variable funcId, variable deviceNumber, variable command, variable parameter, variable isStart); synchronized function monitorHeaterShaker(); static function wait(variable waitTime); static function getCurrentShakerRPM(variable deviceNumber, variable makeTrace); static function getCurrentTemp(variable deviceNumber, variable makeTrace); static function pollingForRunningShaker(variable deviceNumber, variable maxPollingTime); static function pollingForRunningHeater(variable deviceNumber, variable maxPollingTime); static function OnAbortHHSLibrary(); static function versionTrace() void; // this function is used in InitializeLibrary() and uses index 0..10 static function traceFirmwareVersion(variable funcId, variable deviceNumber); static function sendToProgressTrace(variable funcName, variable deviceNumber) void; // get the given parameter with filled 0 before value static function formatParam(variable param, variable strWidth); // returns the given parameter normalized (*10) for firmware command as string static function normalizeParam(variable param, variable strWidth); /**************************************************************************************** * * Interface functions * ****************************************************************************************/ //==================================================================== // // Application function CreateStarDevice() // //-------------------------------------------------------------------- // Description: // Initialize shaker/heater module on ML_Star device. // Only NOT initialized nodes will be initialize, the function will // check first the initialization state before. //.................................................................... // Parameters: // in : starDevice : Used STAR device for node T1 and T2 of STAR // in : usedNode : Node which must be create and initialized. (1 or 2) // out: deviceNumber : generated device number which must be used in all other functions // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function CreateStarDevice( device& starDevice, // in: ML_STAR device variable usedNode, // in: node ID (1 or 2) variable& deviceNumber) // out: generated deviceNumber { variable funcRc(IDE::noError); variable funcId(IDF::CreateStarDevice); variable deviceName; variable isSimulate(m_ON); variable isStarSimulate(hslFalse); variable shakingProperty(0); object starObject; versionTrace(); startTrace(funcId); // check input parameter checkIntegerInputRange(funcId, "usedNode", usedNode, m_firstStarNode, m_lastStarNode); onerror goto DeviceError; deviceName = starDevice.GetInstrumentName(); isSimulate = starDevice.GetCfgValueWithKey(m_starSimulateModeKey); starObject = starDevice.GetCommandObject(); onerror goto 0; if(starObject.IsNull()) { string msg; variable funcName; // "Parameter 'starDevice' contains an invalid object." msg = StringTable::Load(IDS::invalidStarDevice); funcName = StringTable::Load(funcId); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } if(GetType(isSimulate) == "i") { if(isSimulate != m_OFF) isStarSimulate = hslTrue; } // initialize the library variables funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); if(0 < funcRc) return (funcRc); deviceNumber = saveAndCreateDeviceNumber(funcId, deviceName, starObject, isStarSimulate, usedNode); // initialize the shaker funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); DeviceError: { string msg; variable funcName; // "Parameter 'starDevice' contains an invalid object." msg = StringTable::Load(IDS::invalidStarDevice); funcName = StringTable::Load(funcId); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } } //==================================================================== // // Application function CreateUsbDevice() // //-------------------------------------------------------------------- // Description: // Initialize shaker/heater module on USB device. // Only NOT initialized nodes will be initialize, the function will // check first the initialization state before. //.................................................................... // Parameters: // in : usedNode : Node which must be create and initialized. (1 or 2) // out: deviceNumber : generated device number which must be used in all other functions // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function CreateUsbDevice( variable usedNode, // in: node ID (1..8) variable& deviceNumber) // out: generated deviceNumber { variable funcRc(IDE::noError); variable funcId(IDF::CreateUsbDevice); variable isStarSimulate(hslFalse); variable shakingProperty(0); object starObject; versionTrace(); startTrace(funcId); // check input parameter checkIntegerInputRange(funcId, "usedNode", usedNode, m_firstUsbNode, m_lastUsbNode); // initialize the library variables funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); if(0 < funcRc) return (funcRc); deviceNumber = saveAndCreateDeviceNumber(funcId, m_hhsUsbObjectName, starObject, isStarSimulate, usedNode); // initialize the shaker funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); } //==================================================================== // // Application function Terminate() // //-------------------------------------------------------------------- // Description: // Terminate the USB device connection. //.................................................................... // Parameters: // none // ................................................................... // return value: // none //.................................................................... // Remarks: // //==================================================================== function Terminate() void { variable funcId(IDF::Terminate); variable nodeIndex(0); startTrace(funcId); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); for( nodeIndex = 0; nodeIndex < m_maxHHS; nodeIndex++) { m_initializedHeater[nodeIndex] = hslFalse; m_deviceName[nodeIndex] = ""; m_nodeNumber[nodeIndex] = 0; m_hhsSetting[nodeIndex] = 0; } if(!m_usbComObject.IsNull()) { // release the usb object // run is crash in cae of multi thread and a call of ReleaseObject() while commands are send / receive // m_usbComObject.ReleaseObject(); } SynLeaveCriticalSection(m_hhsCriticalSection); endTrace(funcId); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function StartShaker() // //-------------------------------------------------------------------- // Description: // Lock plate and start shaking. // //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // shakingSpeed : Shaking speed in RPM round per minutes // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StartShaker(variable deviceNumber, variable shakingSpeed) { variable funcRc(IDE::noError); variable funcId(IDF::StartShaker); variable node; variable command("SB"); string parameter("st%s1sv%s2sr%s3"); string cmdResult; variable shakingDirection; variable shakingAccRamp; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); //tb 2008-12-03 checkIntegerInputRange(funcId, "shakingSpeed", shakingSpeed, ShakingParam::rpmMin, ShakingParam::rpmMax); checkIntegerInput(funcId, "shakingSpeed", shakingSpeed); funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON); if(0 < funcRc) return (funcRc); hasShaker(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); shakingDirection = m_shakingDirection.GetAt(deviceNumber-1); shakingAccRamp = m_shakingAccRamp.GetAt(deviceNumber-1); m_userShakingSpeed[deviceNumber-1] = shakingSpeed; SynLeaveCriticalSection(m_hhsCriticalSection); sendToProgressTrace(funcId, deviceNumber); // change RPM to steps shakingSpeed = Floor(MthRound(shakingSpeed / ShakingParam::rmpStepFactor, 0)); shakingAccRamp = Floor(MthRound(shakingAccRamp / ShakingParam::rmpStepFactor, 0)); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // add saved parameter StrReplace(parameter, "%s1", IStr(shakingDirection)); StrReplace(parameter, "%s2", formatParam(shakingSpeed, ShakingParam::speedParamLenght)); StrReplace(parameter, "%s3", formatParam(shakingAccRamp, ShakingParam::accelParamLenght)); // lock plate cmdResult = startPlateLockCmd(funcId, deviceNumber, m_ON); funcRc = isFirmwError(funcId, cmdResult, hslFalse); if(0 < funcRc) { // be sure that the plate lock is open startPlateLockCmd(funcId, deviceNumber, m_OFF); isFirmwError(funcId, cmdResult, hslTrue); return (funcRc); } // start shaker cmdResult = startShakingCmd(funcId, deviceNumber, command, parameter, hslTrue); funcRc = isFirmwError(funcId, cmdResult, hslFalse); if(0 < funcRc) { // be sure that the plate lock is open startPlateLockCmd(funcId, deviceNumber, m_OFF); isFirmwError(funcId, cmdResult, hslTrue); return (funcRc); } endTrace(funcId); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function StopShaker() // //-------------------------------------------------------------------- // Description: // Stop shaking and unlock plate. // //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StopShaker(variable deviceNumber) { variable funcRc(IDE::noError); variable funcId(IDF::StopShaker); variable command("SC"); variable parameter(""); string cmdResult; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasShaker(funcId, deviceNumber, 1); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // stop shaking cmdResult = startShakingCmd(funcId, deviceNumber, command, parameter, hslFalse); // open plate lock startPlateLockCmd(funcId, deviceNumber, m_OFF); SynEnterCriticalSection(m_hhsCriticalSection); m_userShakingSpeed[deviceNumber-1] = 0; m_shakingTimeOut[deviceNumber-1] = m_OFF; SynLeaveCriticalSection(m_hhsCriticalSection); // check error of stop shaker after open plate lock funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); } //==================================================================== // // Application function StartShakerTimed() // //-------------------------------------------------------------------- // Description: // Lock plate and start shaking with timed duration. //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // shakingSpeed : Shaking speed in RPM round per minutes // shakingTime : Shaking time in seconds // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StartShakerTimed( variable deviceNumber, variable shakingSpeed, variable shakingTime) { variable funcRc(IDE::noError); variable funcId(IDF::StartShakerTimed); variable command("ST"); string parameter("sd%s1st%s2sv%s3sr%s4"); string cmdResult; variable shakingDirection; variable shakingAccRamp; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); //tb 2008-12-03 checkIntegerInputRange(funcId, "shakingSpeed", shakingSpeed, ShakingParam::rpmMin, ShakingParam::rpmMax); checkIntegerInput(funcId, "shakingSpeed", shakingSpeed); //tb 2008-12-03 checkIntegerInputRange(funcId, "shakingTime", shakingTime, ShakingParam::shakingTimeMin, ShakingParam::shakingTimeMax); checkIntegerInput(funcId, "shakingTime", shakingTime); funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON); if(0 < funcRc) return (funcRc); hasShaker(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); shakingDirection = m_shakingDirection.GetAt(deviceNumber-1); shakingAccRamp = m_shakingAccRamp.GetAt(deviceNumber-1); m_shakingTimeOut[deviceNumber-1] = shakingTime; m_userShakingSpeed[deviceNumber-1] = shakingSpeed; SynLeaveCriticalSection(m_hhsCriticalSection); // change RPM to steps shakingSpeed = Floor(MthRound(shakingSpeed / ShakingParam::rmpStepFactor, 0)); shakingAccRamp = Floor(MthRound(shakingAccRamp / ShakingParam::rmpStepFactor, 0)); // add saved parameter StrReplace(parameter, "%s1", formatParam(shakingTime, ShakingParam::timeParamLenght)); StrReplace(parameter, "%s2", IStr(shakingDirection)); StrReplace(parameter, "%s3", formatParam(shakingSpeed, ShakingParam::speedParamLenght)); StrReplace(parameter, "%s4", formatParam(shakingAccRamp, ShakingParam::accelParamLenght)); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // lock plate cmdResult = startPlateLockCmd(funcId, deviceNumber, m_ON); funcRc = isFirmwError(funcId, cmdResult, hslFalse); if(0 < funcRc) { // be sure that the plate lock is open startPlateLockCmd(funcId, deviceNumber, m_OFF); isFirmwError(funcId, cmdResult, hslTrue); return (funcRc); } // start shaker timed cmdResult = startShakingCmd(funcId, deviceNumber, command, parameter, hslTrue); funcRc = isFirmwError(funcId, cmdResult, hslFalse); if(0 < funcRc) { // be sure that the plate lock is open startPlateLockCmd(funcId, deviceNumber, m_OFF); isFirmwError(funcId, cmdResult, hslTrue); return (funcRc); } endTrace(funcId); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function WaitForShaker() // //-------------------------------------------------------------------- // Description: // Waits until a timed shaking has end. //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function WaitForShaker(variable deviceNumber) { variable funcRc(IDE::noError); variable funcId(IDF::WaitForShaker); variable shakingTime(ShakingParam::shakingTimeMax); variable command("SW"); string parameter(""); string cmdResult; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasShaker(funcId, deviceNumber, 1); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (funcRc); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); shakingTime = m_shakingTimeOut.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); // add 60 seconds to the started shaking time (secure that the shaking time out is reached before the wait time out) shakingTime = shakingTime + m_waitTimeOutSecurity; #ifdef _DEBUG progressTrace(funcId, "Function timeout = ", IStr(shakingTime)); #endif // pollen pollingForRunningShaker(deviceNumber, shakingTime - m_waitTimeOutSecurity); // start wait for shaker cmdResult = sendMsg(deviceNumber, command, parameter, shakingTime, hslTrue); // shaker was started with StartShaker or StartAllShaker if(cmdResult.Find(m_fwNoError) < 0) { // stop shaker sendMsg(deviceNumber, "SC", "", m_usbMsgTimeout, hslTrue); } // open plate lock startPlateLockCmd(funcId, deviceNumber, m_OFF); SynEnterCriticalSection(m_hhsCriticalSection); m_userShakingSpeed[deviceNumber-1] = m_OFF; m_shakingTimeOut[deviceNumber-1] = m_OFF; SynLeaveCriticalSection(m_hhsCriticalSection); funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function StartAllShaker() // //-------------------------------------------------------------------- // Description: // Lock plate and start shaking for all initialized shaker. //.................................................................... // Parameters: // shakingSpeed : Shaking speed in RPM round per minutes // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StartAllShaker(variable shakingSpeed) { variable funcRc(IDE::retNotInitErr); variable funcId(IDF::StartAllShaker); variable deviceNumber(0); startTrace(funcId); // parameter are checked in StartShaker() function for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++) { if(isHeaterInitialized(deviceNumber)) { // call StartShaker with 1 base node funcRc = StartShaker(deviceNumber, shakingSpeed); if(0 < funcRc) { errorCompleteTrace(funcId, ""); return (funcRc); } funcRc = IDE::noError; } } if(0 < funcRc) { errorCompleteTrace(funcId, IDE::retNotInitErr); return (funcRc); } endTrace(funcId); return (funcRc); } //==================================================================== // // Application function StartAllShakerTimed() // //-------------------------------------------------------------------- // Description: // Lock plate and start shaking with timed duration for all initialized shaker. //.................................................................... // Parameters: // shakingSpeed : Shaking speed in RPM round per minutes // shakingTime : Shaking time in seconds // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StartAllShakerTimed(variable shakingSpeed, variable shakingTime) { variable funcRc(IDE::retNotInitErr); variable funcId(IDF::StartAllShakerTimed); variable deviceNumber(0); startTrace(funcId); // parameter are checked in StartShakerTimed() function for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++) { if(isHeaterInitialized(deviceNumber)) { // call StartShaker with 1 base node funcRc = StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); if(0 < funcRc) { errorCompleteTrace(funcId, ""); return (funcRc); } funcRc = IDE::noError; } } if(0 < funcRc) { errorCompleteTrace(funcId, IDE::retNotInitErr); return (funcRc); } endTrace(funcId); return (funcRc); } //==================================================================== // // Application function StopAllShaker() // //-------------------------------------------------------------------- // Description: // Stop shaking and unlock plate for all initialized shaker. // //.................................................................... // Parameters: // none // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StopAllShaker() { variable funcRc(IDE::retNotInitErr); variable funcId(IDF::StopAllShaker); variable deviceNumber(0); startTrace(funcId); for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++) { if(isHeaterInitialized(deviceNumber)) { // call StopShaker with 1 base node funcRc = StopShaker(deviceNumber); if(0 < funcRc) { errorCompleteTrace(funcId, ""); return (funcRc); } funcRc = IDE::noError; } } if(0 < funcRc) { errorCompleteTrace(funcId, IDE::retNotInitErr); return (funcRc); } endTrace(funcId); return (funcRc); } //==================================================================== // // Application function SetShakerParameter() // //-------------------------------------------------------------------- // Description: // Set the parameter for plate shaking //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // shakingDirection : Shaking direction left/right (0/1) // shakingAccRamp : Acceleration ramp (1..4) // ................................................................... // return value: // Raise : Wrong parameter //.................................................................... // Remarks: // //==================================================================== function SetShakerParameter( variable deviceNumber, variable shakingDirection, variable shakingAccRamp) void { variable funcId(IDF::SetShakerParameter); variable node; string nodeType; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); checkIntegerInputRange(funcId, "shakingDirection", shakingDirection, m_OFF, m_ON); //tb 2008-12-03 checkIntegerInputRange(funcId, "shakingAccRamp", shakingAccRamp, ShakingParam::rampMin, ShakingParam::rampMax); checkIntegerInput(funcId, "shakingAccRamp", shakingAccRamp); if(isStarDevice(deviceNumber)) nodeType = StringTable::Load(IDS::starNode); else nodeType = StringTable::Load(IDS::usbNode); node = getNodeFromDeviceNumber(deviceNumber); progressTrace(funcId, nodeType, IStr(node)); progressTrace(funcId, IDS::shakingDirection, IStr(shakingDirection)); progressTrace(funcId, IDS::shakingAccRamp, IStr(shakingAccRamp)); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasShaker(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); m_shakingDirection[deviceNumber-1] = shakingDirection; m_shakingAccRamp[deviceNumber-1] = shakingAccRamp; SynLeaveCriticalSection(m_hhsCriticalSection); endTrace(funcId); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function GetShakerParameter() // //-------------------------------------------------------------------- // Description: // Get the parameter for plate shaking //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // shakingDirection : Shaking direction left/right (0/1) // shakingAccRamp : Acceleration ramp (1..4) // ................................................................... // return value: // Raise : Wrong parameter //.................................................................... // Remarks: // //==================================================================== function GetShakerParameter( variable deviceNumber, variable& shakingDirection, variable& shakingAccRamp) void { variable funcId(IDF::GetShakerParameter); variable node; string nodeType; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); shakingDirection = ShakingParam::directionDefault; shakingAccRamp = ShakingParam::rampDefault; initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasShaker(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); shakingDirection = m_shakingDirection.GetAt(deviceNumber-1); shakingAccRamp = m_shakingAccRamp.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); node = getNodeFromDeviceNumber(deviceNumber); if(isStarDevice(deviceNumber)) nodeType = StringTable::Load(IDS::starNode); else nodeType = StringTable::Load(IDS::usbNode); progressTrace(funcId, nodeType, IStr(node)); progressTrace(funcId, IDS::shakingDirection, IStr(shakingDirection)); progressTrace(funcId, IDS::shakingAccRamp, IStr(shakingAccRamp)); endTrace(funcId); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function GetShakerSpeed() // //-------------------------------------------------------------------- // Description: // Lock plate and start shaking with timed duration. //.................................................................... // Parameters: // in : deviceNumber : device number which was generated on CreateXXDevice() // out: shakingSpeed : Shaking speed in RPM round per minutes // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function GetShakerSpeed( variable deviceNumber, variable& shakingSpeed) { variable funcRc(IDE::noError); variable funcId(IDF::GetShakerSpeed); startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); shakingSpeed = 0; funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON); if(0 < funcRc) return (funcRc); hasShaker(funcId, deviceNumber, 1); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); shakingSpeed = getCurrentShakerRPM(deviceNumber, hslTrue); endTrace(funcId); return (funcRc); } //==================================================================== // // Application function StartTempCtrl() // //-------------------------------------------------------------------- // Description: // Set incubation temperature and wait (if set) until temperature is reached //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // temperature : Incubation temperature // waitForTempReached : Flag for waiting until temperature is reached // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StartTempCtrl( variable deviceNumber, variable temperature, variable waitForTempReached) { variable funcRc(IDE::noError); variable funcId(IDF::StartTempCtrl); variable tempStartTimeOut; variable tempToleranceRange; variable tempSecurityRange; variable command("TA"); variable parameter("ta%s1tb%s2tc%s3td%s4"); variable cmdResult; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); //tb 2008-12-03 checkDoubleInputRange(funcId, "temperature", temperature, TemperateParam::tempMin, TemperateParam::tempMax); checkDoubleInput(funcId, "temperature", temperature); checkIntegerInputRange(funcId, "waitForTempReached", waitForTempReached, m_OFF, m_ON); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasHeater(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); tempStartTimeOut = m_tempStartTimeOut.GetAt(deviceNumber-1); tempToleranceRange = m_tempToleranceRange.GetAt(deviceNumber-1); tempSecurityRange = m_tempSecurityRange.GetAt(deviceNumber-1); m_userTemperature[deviceNumber-1] = temperature; SynLeaveCriticalSection(m_hhsCriticalSection); StrReplace(parameter, "%s1", normalizeParam(temperature, TemperateParam::paramLength)); StrReplace(parameter, "%s2", formatParam(tempStartTimeOut, TemperateParam::paramLength)); StrReplace(parameter, "%s3", normalizeParam(tempToleranceRange, TemperateParam::paramLength)); StrReplace(parameter, "%s4", normalizeParam(tempSecurityRange, TemperateParam::paramLength)); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslFalse); if(0 < funcRc) return (funcRc); // add 60 seconds to the started heat up time (secure that the heat up time out is reached before the wait time out) tempStartTimeOut = tempStartTimeOut + m_waitTimeOutSecurity; if(tempStartTimeOut < m_usbMsgTimeout) tempStartTimeOut = m_usbMsgTimeout; #ifdef _DEBUG progressTrace(funcId, "Function timeout = ", IStr(tempStartTimeOut)); #endif // set temperature cmdResult = sendMsg(deviceNumber, command, parameter, tempStartTimeOut, hslTrue); funcRc = isFirmwError(funcId, cmdResult, hslFalse); // command waits until temperature is in controlling mode if(waitForTempReached == m_ON && funcRc == IDE::noError) { pollingForRunningHeater(deviceNumber, tempStartTimeOut-m_waitTimeOutSecurity); // wait for temperature cmdResult = sendMsg(deviceNumber, "TW", "", m_usbMsgTimeout, hslTrue); } funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function StopTempCtrl() // //-------------------------------------------------------------------- // Description: // Set incubation temperature control off //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StopTempCtrl( variable deviceNumber) { variable funcRc(IDE::noError); variable funcId(IDF::StopTempCtrl); variable command("TO"); variable parameter(""); variable cmdResult; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasHeater(funcId, deviceNumber, 1); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslFalse); if(0 < funcRc) return (funcRc); // set temperature cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue); SynEnterCriticalSection(m_hhsCriticalSection); m_userTemperature[deviceNumber-1] = 0; SynLeaveCriticalSection(m_hhsCriticalSection); funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); } //==================================================================== // // Application function WaitForTempCtrl() // //-------------------------------------------------------------------- // Description: // Waits until the on StartTempCtrl() given temperature is reached //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function WaitForTempCtrl( variable deviceNumber) { variable funcRc(IDE::noError); variable funcId(IDF::WaitForTempCtrl); variable tempStartTimeOut; variable command("TW"); variable parameter(""); variable cmdResult; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasHeater(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); tempStartTimeOut = m_tempStartTimeOut.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); // add 60 seconds to the started heat up time (secure that the heat up time out is reached before the wait time out) tempStartTimeOut = tempStartTimeOut + m_waitTimeOutSecurity; if(tempStartTimeOut < m_usbMsgTimeout) tempStartTimeOut = m_usbMsgTimeout; #ifdef _DEBUG progressTrace(funcId, "Function timeout = ", IStr(tempStartTimeOut)); #endif sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslFalse); if(0 < funcRc) return (funcRc); // make a polling until temperature controlling is in controlling mode pollingForRunningHeater(deviceNumber, tempStartTimeOut-m_waitTimeOutSecurity); // wait for temperature is reached (get heating up errors) cmdResult = sendMsg(deviceNumber, command, parameter, tempStartTimeOut, hslTrue); funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function GetTemperature() // //-------------------------------------------------------------------- // Description: // Get the current temperatur //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // temperature : Actual carrier temperature // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function GetTemperature( variable deviceNumber, variable& temperature) { variable funcRc(IDE::noError); variable funcId(IDF::GetTemperature); startTrace(funcId); temperature = 0; checkDeviceNumber(funcId, deviceNumber); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasHeater(funcId, deviceNumber, 1); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslFalse); if(0 < funcRc) return (funcRc); temperature = getCurrentTemp(deviceNumber, hslTrue); endTrace(funcId); return (funcRc); } //==================================================================== // // Application function GetTemperatureState() // //-------------------------------------------------------------------- // Description: // Get the state of temperatur supervision //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // temperatureState : State of temperature supervision 0 = OK, 1 = out of range, 2 = out of security // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function GetTemperatureState( variable deviceNumber, variable& temperatureState) { variable funcRc(IDE::noError); variable funcId(IDF::GetTemperatureState); variable command("QE"); variable parameter(""); string cmdResult; variable startPos; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); temperatureState = TemperateParam::tempStateOk; initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasHeater(funcId, deviceNumber, 1); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslFalse); if(0 < funcRc) return (funcRc); // wait for temperature is reached cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue); funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); // format: qe## startPos = cmdResult.Find("qe"); if((cmdResult.GetLength() < TemperateParam::tempStateRequestLength) || (startPos < 0)) { variable errMsg; // "Unknown format of firmware result string.\r\nExpected: '%s1'.\r\nReceived: '%s2'." errMsg = StringTable::Load(IDE::unknownResultFormat); StrReplace(errMsg, "%s1", "qe##"); StrReplace(errMsg, "%s2", cmdResult); errorCompleteTrace(funcId, errMsg); return (IDE::unknownResultFormat); } // read both temperature and calculate the average // format: qe## ( 00, 62 or 63 ) if(cmdResult.Find("qe62") >= 0) temperatureState = TemperateParam::tempStateOutOfRange; else if(cmdResult.Find("qe63") >= 0) temperatureState = TemperateParam::tempStateOutOfSecurity; else if(cmdResult.Find("qe00") < 0) temperatureState = TemperateParam::tempStateTimeOut; endTrace(funcId); return (funcRc); } //==================================================================== // // Application function SetTempParameter() // //-------------------------------------------------------------------- // Description: // Set the parameter of temperatur supervision //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // startTimeout : Time which must elapse before temperature will be controlled // toleranceRange : Range of temperature tolerance // securityRange : Range of temperature security, on leave heater will be switched off // ................................................................... // return value: // Raise : An exception is throw on wrong parameter or time out //.................................................................... // Remarks: // //==================================================================== function SetTempParameter( variable deviceNumber, variable startTimeout, variable toleranceRange, variable securityRange) void { variable funcId(IDF::SetTempParameter); variable node; string nodeType; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); //tb 2008-12-03 checkIntegerInputRange(funcId, "startTimeout", startTimeout, TemperateParam::startTimeOutMin, TemperateParam::startTimeOutMax); checkIntegerInput(funcId, "startTimeout", startTimeout); //tb 2008-12-03 checkDoubleInputRange(funcId, "toleranceRange", toleranceRange, TemperateParam::tempToleranceMin, TemperateParam::tempToleranceMax); checkDoubleInput(funcId, "toleranceRange", toleranceRange); //tb 2008-12-03 checkDoubleInputRange(funcId, "securityRange", securityRange, TemperateParam::tempSecurityMin, TemperateParam::tempSecurityMax); checkDoubleInput(funcId, "securityRange", securityRange); if(isStarDevice(deviceNumber)) nodeType = StringTable::Load(IDS::starNode); else nodeType = StringTable::Load(IDS::usbNode); node = getNodeFromDeviceNumber(deviceNumber); progressTrace(funcId, nodeType, IStr(node)); progressTrace(funcId, IDS::startTimeout, IStr(startTimeout)); progressTrace(funcId, IDS::toleranceRange, FStr(toleranceRange, hslTrue)); progressTrace(funcId, IDS::securityRange, FStr(securityRange, hslTrue)); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasHeater(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); m_tempStartTimeOut[deviceNumber-1] = startTimeout; m_tempToleranceRange[deviceNumber-1] = toleranceRange; m_tempSecurityRange[deviceNumber-1] = securityRange; SynLeaveCriticalSection(m_hhsCriticalSection); endTrace(funcId); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function GetTempParameter() // //-------------------------------------------------------------------- // Description: // Get the parameter of temperatur supervision //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // startTimeout : Time which must elapse before temperature will be controlled // toleranceRange : Range of temperature tolerance // securityRange : Range of temperature security, on leave heater will be switched off // ................................................................... // return value: // Raise : An exception is throw on wrong parameter or time out //.................................................................... // Remarks: // //==================================================================== function GetTempParameter( variable deviceNumber, variable& startTimeout, variable& toleranceRange, variable& securityRange) void { variable funcId(IDF::GetTempParameter); variable node; string nodeType; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); // init output parameter startTimeout = TemperateParam::startTimeOutDefault; toleranceRange = TemperateParam::tempToleranceDefault; securityRange = TemperateParam::tempSecurityDefault; initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasHeater(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); // set output parameter startTimeout = m_tempStartTimeOut.GetAt(deviceNumber-1); toleranceRange = m_tempToleranceRange.GetAt(deviceNumber-1); securityRange = m_tempSecurityRange.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); if(isStarDevice(deviceNumber)) nodeType = StringTable::Load(IDS::starNode); else nodeType = StringTable::Load(IDS::usbNode); node = getNodeFromDeviceNumber(deviceNumber); progressTrace(funcId, nodeType, IStr(node)); progressTrace(funcId, IDS::startTimeout, IStr(startTimeout)); progressTrace(funcId, IDS::toleranceRange, FStr(toleranceRange, hslTrue)); progressTrace(funcId, IDS::securityRange, FStr(securityRange, hslTrue)); endTrace(funcId); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function SetPlateLock() // //-------------------------------------------------------------------- // Description: // Set the parameter for plate shaking // //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // plateLock : Lock / unlock flag // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function SetPlateLock( variable deviceNumber, variable plateLock) { variable funcRc(IDE::noError); variable funcId(IDF::SetPlateLock); variable cmdResult; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); checkIntegerInputRange(funcId, "plateLock", plateLock, m_OFF, m_ON); funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON); if(0 < funcRc) return (funcRc); sendToProgressTrace(funcId, deviceNumber); hasShaker(funcId, deviceNumber, 1); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // start lock command cmdResult = startPlateLockCmd(funcId, deviceNumber, plateLock); funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); } //==================================================================== // // Application function GetFirmwareVersion() // //-------------------------------------------------------------------- // Description: // Get firmware version of current HHS // //.................................................................... // Parameters: // in : deviceNumber : device number which was generated on CreateXXDevice() // out: firmwareVersion : firmware version format: "1.0P 1999-03-10" // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function GetFirmwareVersion( variable deviceNumber, variable& firmwareVersion) { variable funcRc(IDE::noError); variable funcId(IDF::GetFirmwareVersion); string answString; variable startPos; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); firmwareVersion = "0.0S 2008-01-01"; funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); if(0 < funcRc) return (funcRc); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // read the firmware version of current node answString = sendMsg(deviceNumber, "RF", "", m_usbInitTimeout, hslTrue); startPos = answString.Find("rf"); if(startPos >= 0) { firmwareVersion = answString.Right(answString.GetLength()-(startPos+2)); } endTrace(funcId); return (funcRc); } //==================================================================== // // Application function GetSerialNumber() // //-------------------------------------------------------------------- // Description: // Get serial number of current HHS // //.................................................................... // Parameters: // in : deviceNumber : device number which was generated on CreateXXDevice() // out: firmwareVersion : firmware serial number format: "####" // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function GetSerialNumber( variable deviceNumber, variable& serialNumber) { variable funcRc(IDE::noError); variable funcId(IDF::GetSerialNumber); string answString; variable startPos; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); serialNumber = "0000"; funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); if(0 < funcRc) return (funcRc); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // read the firmware version of current node answString = sendMsg(deviceNumber, "QT", "", m_usbInitTimeout, hslTrue); // format: qt######/##/#### part number, revision, serial number startPos = answString.Find("qt"); if(startPos >= 0 && answString.GetLength() > startPos+12) { serialNumber = answString.Mid((startPos+2+10), 4); } endTrace(funcId); return (funcRc); } //==================================================================== // // Application function BeginMonitoring() // //-------------------------------------------------------------------- // Description: // Get serial number of current HHS // //.................................................................... // Parameters: // in : deviceNumber : device number which was generated on CreateXXDevice() // in : shakerMin : Minimum RPM // in : shakerMax : Maximum RPM // in : sampleInterval : Interval in sec. for check RPM and temperature // in : action : Continue / Abort (0 / 1) // Note: Abort will only called on an error after temperature controlling is activated () // An abort will end only the current heater/shaker. // Note: heaterMin and heaterMax uses the parameter toleranceRange of SetTempParameter() // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function BeginMonitoring( variable deviceNumber, variable shakingToleranceRange, variable sampleInterval, variable action) { variable funcRc(IDE::noError); variable funcId(IDF::BeginMonitoring); string answString; variable startPos; event startEvent; variable sSpeed; variable hTemp; variable shakerMin(m_OFF); variable shakerMax(ShakingParam::rpmMax); variable heaterTempTol(m_OFF); variable heaterMin(TemperateParam::tempMin); variable heaterMax(TemperateParam::tempMax); variable node; variable nodeType; variable funcName; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); checkIntegerInputRange(funcId, "shakingToleranceRange", shakingToleranceRange, ShakingParam::shakeTolMin, ShakingParam::shakeTolMax); checkIntegerInputRange(funcId, "sampleInterval", sampleInterval, m_minSampleInterval, m_maxSampleInterval); checkIntegerInputRange(funcId, "action", action, MonitorAction::monitorActionMin, MonitorAction::monitorActionMax); funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); if(0 < funcRc) return (funcRc); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); sSpeed = m_userShakingSpeed.GetAt(deviceNumber-1); hTemp = m_userTemperature.GetAt(deviceNumber-1); heaterTempTol = m_tempToleranceRange.GetAt(deviceNumber-1); m_monitorResult.SetAt(deviceNumber-1, -1); SynLeaveCriticalSection(m_hhsCriticalSection); onerror goto 0; if(isStarDevice(deviceNumber)) nodeType = StringTable::Load(IDS::starNode); else nodeType = StringTable::Load(IDS::usbNode); node = getNodeFromDeviceNumber(deviceNumber); // if no shaker is initialized, set the maximum range if(hasShaker(funcId, deviceNumber, 0) && sSpeed > m_OFF) { shakerMin = sSpeed-shakingToleranceRange; if(shakerMin < 0) shakerMin = 0; shakerMax = sSpeed+shakingToleranceRange; } else if(sSpeed == m_OFF) { string moniText; moniText = StringTable::Load(IDS::monitoringShNotStart); StrReplace(moniText, "%s1", nodeType); StrReplace(moniText, "%s2", IStr(node)); // Shaking on %s1 ( %s2 ) not started, check of speed limit will be disabled! progressTrace(funcId, IDS::monitoringWarning, moniText); } if(hasHeater(funcId, deviceNumber, 0) && hTemp > m_OFF) { heaterMin = hTemp - heaterTempTol; if(heaterMin < m_OFF) heaterMin = m_OFF; heaterMax = hTemp + heaterTempTol; } else if(hTemp == m_OFF) { variable moniText; moniText = StringTable::Load(IDS::monitoringHeNotStart); StrReplace(moniText, "%s1", nodeType); StrReplace(moniText, "%s2", IStr(node)); // Heating up on %s1 ( %s2 ) not started, check of temperature limit will be disabled! progressTrace(funcId, IDS::monitoringWarning, moniText); } sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); // Prepare the globals for the hsl thread. m_monitorDeviceNumber = deviceNumber; m_monitorShakerMin = shakerMin; m_monitorShakerMax = shakerMax; m_monitorSampleInterval = sampleInterval; m_monitorAction = action; m_monitorResult[deviceNumber-1] = -1; m_monitorHeaterMin = heaterMin; m_monitorHeaterMax = heaterMax; Fork( "monitorHeaterShaker" ); // wait until thread has received the global data (maximum 10 seconds) m_monitorStartEvent.WaitEvent(10); SynLeaveCriticalSection(m_hhsCriticalSection); endTrace(funcId); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function EndMonitoring() // //-------------------------------------------------------------------- // Description: // Get serial number of current HHS // //.................................................................... // Parameters: // in : deviceNumber : device number which was generated on CreateXXDevice() // out: monitorResult : -1 = monitoring has not started or is not initialized // 0 = heating and shaking values were within specification // 1 = heating out of range // 2 = shaking out of range // 3 = heating and shaking out of range // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function EndMonitoring( variable deviceNumber, variable& monitorResult) { variable funcRc(IDE::noError); variable funcId(IDF::EndMonitoring); event intervalEvent; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); if(0 < funcRc) return (funcRc); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); intervalEvent = m_monitorEvent.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); intervalEvent.SetEvent(); SynEnterCriticalSection(m_hhsCriticalSection); monitorResult = m_monitorResult.GetAt(deviceNumber-1); m_monitorResult.SetAt(deviceNumber-1, -1); SynLeaveCriticalSection(m_hhsCriticalSection); endTrace(funcId); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function SetSimulation() // //-------------------------------------------------------------------- // Description: // Set the internal flag m_isSimulate. // If this flag is set, only parameter checks are made on all exported function // //.................................................................... // Parameters: // simulate : Flag for set the simulate mode, must be a number 0/1 // // ................................................................... // return value: // Raise : Wrong parameter //.................................................................... // Remarks: // //==================================================================== function SetSimulation(variable simulate) void { variable funcId(IDF::SetSimulation); startTrace(funcId); checkIntegerInputRange(funcId, "simulate", simulate, m_OFF, m_ON); progressTrace(funcId, IDS::setSimulate, IStr(simulate)); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); m_isSimulate = hslFalse; if(simulate == m_ON) m_isSimulate = hslTrue; SynLeaveCriticalSection(m_hhsCriticalSection); endTrace(funcId); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function SendFirmwareCommand() // //-------------------------------------------------------------------- // Description: // Send a command to the device // //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // command : Firmware command without node name ( 2 letter ) // parameter : Parameter dependent of the used command // ................................................................... // return value: // Raise : An exception is throw on wrong parameter or time out // string : Firmware command result data string //.................................................................... // Remarks: // //==================================================================== function SendFirmwareCommand( variable deviceNumber, variable command, variable parameter) { variable funcRc(IDE::noError); variable funcId(IDF::SendFirmwareCommand); string cmd; string cmdResult; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); checkStringInput(funcId, "command", command); checkStringInput(funcId, "parameter", parameter); // check for two character as command cmd = command; if(cmd.GetLength() != m_firmwareCmdLength) { variable funcName; string errMsg; // "Wrong length of input parameter.\r\nParameter = '%s1' length (%s2).\r\nExpected lenght (%s3)." errMsg = StringTable::Load(IDE::wrongParameterLength); StrReplace(errMsg, "%s1", "command"); StrReplace(errMsg, "%s2", IStr(cmd.GetLength())); StrReplace(errMsg, "%s3", IStr(m_firmwareCmdLength)); funcName = StringTable::Load(funcId); Error::RaiseEx(IDE::wrongParameterLength, errMsg, GetFileName(), funcName, GetLineNumber()); } funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON); if(0 < funcRc) return (funcRc); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // wait for temperature is reached cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue); endTrace(funcId); return (cmdResult); } //==================================================================== // // Application function SetUSBTrace() // //-------------------------------------------------------------------- // Description: // Set the parameter for plate shaking // //.................................................................... // Parameters: // trace : Trace on / off. 0 = off, 1 = on // ................................................................... // return value: // Raise : An exception is throw on wrong parameter or time out //.................................................................... // Remarks: // //==================================================================== function SetUSBTrace(variable trace) void { variable funcId(IDF::SetUSBTrace); startTrace(funcId); checkIntegerInputRange(funcId, "trace", trace, m_OFF, m_ON); progressTrace(funcId, IDS::setTrace, IStr(trace)); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); m_usbTrace = hslFalse; // set trace flag if(trace == 1) m_usbTrace = hslTrue; SynLeaveCriticalSection(m_hhsCriticalSection); endTrace(funcId); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } /**************************************************************************************** * * Internal helper function declaration * ****************************************************************************************/ // -------------------------------------------------------------------------------------- // Library Initialization and data access functions // -------------------------------------------------------------------------------------- static function initStringTable() void { // activate error handler onerror goto Unexpected; if(0 == m_hhsCriticalSection) m_hhsCriticalSection = SynInitializeCriticalSection(); SynEnterCriticalSection(m_hhsCriticalSection); if(!m_isStringTableInitialized) { StringTable::Init("HSLHamHeaterShakerStringTable"); m_isStringTableInitialized = hslTrue; } SynLeaveCriticalSection(m_hhsCriticalSection); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } static function InitializeNode(variable funcId, variable deviceNumber) { variable funcRc(IDE::noError); variable node; variable nodeNameId(IDS::starNode); // check if the library set to simulate if(isSimulate(funcId, deviceNumber, hslFalse)) return(funcRc); // init node if needed if(!isHeaterInitialized(deviceNumber)) { string answString; variable hhsSettings(-1); // on usb check connection if(!isStarDevice(deviceNumber)) { if(!isUsbConnected(funcId)) return (IDE::retNotConnectErr); nodeNameId = IDS::usbNode; } // ask for settings setHHSSetting(funcId, deviceNumber, hhsSettings); if(0 < funcRc) return (funcRc); // check if shaking activated if((hhsSettings != m_shakingPropertyHeatAndShake) && (hhsSettings != m_shakingPropertyOnlyShake)) return (funcRc); // init HHS on nodes if needed answString = sendMsg(deviceNumber, "QW", "", m_usbInitTimeout, hslTrue); if(isStarDevice(deviceNumber)) { funcRc = isFirmwError(funcId, answString, hslTrue); if(0 < funcRc) return (funcRc); } node = getNodeFromDeviceNumber(deviceNumber); // check for timeout, if timeout, only node 0 is installed without any other CAN nodes // if CAN error, this node is not available if((answString.Find(m_fwTimeoutError) >= 0) || (answString.Find(m_fwCanError) >= 0)) { // "%s1 '%s2' not available." string msg; string nodeName; variable funcName; msg = StringTable::Load(IDE::neededNodeNotAvailable); nodeName = StringTable::Load(nodeNameId); funcName = StringTable::Load(funcId); StrReplace(msg, "%s1", nodeName); StrReplace(msg, "%s2", IStr(node)); errorCompleteTrace(funcId, msg); if(answString.Find(m_fwTimeoutError) >= 0) Error::RaiseEx(IDE::neededNodeNotAvailable, msg, GetFileName(), funcName, GetLineNumber()); else Error::RaiseEx(IDE::canError, msg, GetFileName(), funcName, GetLineNumber()); } traceFirmwareVersion(funcId, deviceNumber); if(answString.Find(m_fwIsInitialized) >= 0) setHeaterInitialized(deviceNumber); else { // change of 2009/08/13 // answString = sendMsg(deviceNumber, "SI", "", m_usbInitTimeout, hslTrue); // if(answString.Find(m_fwNoError) >= 0) // { // answString = sendMsg(deviceNumber, "LI", "", m_usbInitTimeout, hslTrue); // if(answString.Find(m_fwNoError) >= 0) // setHeaterInitialized(deviceNumber); // } answString = sendMsg(deviceNumber, "LI", "", m_usbInitTimeout, hslTrue); sendMsg(deviceNumber, "LP", "lp1", m_usbInitTimeout, hslTrue); if(answString.Find(m_fwNoError) >= 0) { answString = sendMsg(deviceNumber, "SI", "", m_usbInitTimeout, hslTrue); if(answString.Find(m_fwNoError) >= 0) setHeaterInitialized(deviceNumber); sendMsg(deviceNumber, "LP", "lp0", m_usbInitTimeout, hslTrue); } // end change of 2009/08/13 funcRc = isFirmwError(funcId, answString, hslTrue); if(0 < funcRc) return (funcRc); } } return (funcRc); } static function initHamHeaterShakerLib(variable funcId, variable deviceNumber, variable initShaker) { variable funcRc(IDE::noError); initStringTable(); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); if(!m_initializedLib) { variable nodeIndex(0); RegisterAbortHandler("HSLHamHeaterShaker::OnAbortHHSLibrary"); m_monitorDeviceNumber = m_OFF; m_monitorShakerMin = m_OFF; m_monitorShakerMax = m_OFF; m_monitorSampleInterval = m_OFF; m_monitorAction = m_OFF; for( nodeIndex = 0; nodeIndex < m_maxHHS; nodeIndex++) { m_initializedHeater[nodeIndex] = hslFalse; m_shakingDirection[nodeIndex] = ShakingParam::directionDefault; m_shakingAccRamp[nodeIndex] = ShakingParam::rampDefault; m_shakingTimeOut[nodeIndex] = m_OFF; m_tempStartTimeOut[nodeIndex] = TemperateParam::startTimeOutDefault; m_tempToleranceRange[nodeIndex] = TemperateParam::tempToleranceDefault; m_tempSecurityRange[nodeIndex] = TemperateParam::tempSecurityDefault; m_userShakingSpeed[nodeIndex] = m_OFF; m_userTemperature[nodeIndex] = m_OFF; m_deviceName[nodeIndex] = ""; m_isStarSimulate[nodeIndex] = hslFalse; m_nodeNumber[nodeIndex] = m_OFF; m_hhsSetting[nodeIndex] = m_OFF; m_monitorResult[nodeIndex] = -1; } m_initializedLib = hslTrue; } SynLeaveCriticalSection(m_hhsCriticalSection); // check for node initialize, this call must be outside of CriticalSection if(initShaker > m_OFF) funcRc = InitializeNode(funcId, deviceNumber); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } static function isUsbConnected(variable funcId) { variable rc (hslFalse); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); if(!m_usbComObject.IsNull()) { if(m_usbComObject.Connected) rc = hslTrue; } SynLeaveCriticalSection(m_hhsCriticalSection); if(!rc) { variable msg; msg = StringTable::Load(IDS::noUsbConnection); errorCompleteTrace(funcId, msg); } return (rc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } static function isSimulate(variable funcId, variable deviceNumber, variable makeTrace) { variable retVal(hslFalse); variable starSimState(hslFalse); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); retVal = m_isSimulate; starSimState = m_isStarSimulate[deviceNumber-1]; SynLeaveCriticalSection(m_hhsCriticalSection); // if m_isSimulate is set, both devices are simulate // if m_isSimulate is not set, check if useMlStar and m_isStarSimulate is set if(retVal) { // if simulate, trace the function end if(makeTrace) endTrace(funcId); return (retVal); } if(starSimState) { // if simulate, trace the function end if(makeTrace) endTrace(funcId); return (hslTrue); } // simulation is not set return (retVal); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); return (retVal); } } // uses node from 1 to 10 static function isHeaterInitialized(variable deviceNumber) { variable retVal(hslFalse); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); retVal = m_initializedHeater.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); return (retVal); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); return (retVal); } } // uses node from 1 to 10 static function setHeaterInitialized(variable deviceNumber) { variable retVal(hslFalse); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); m_initializedHeater[deviceNumber-1] = hslTrue; SynLeaveCriticalSection(m_hhsCriticalSection); return (retVal); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); return (retVal); } } static function isUsbTrace() { variable retVal(hslFalse); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); retVal = m_usbTrace; SynLeaveCriticalSection(m_hhsCriticalSection); return (retVal); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); return (retVal); } } // -------------------------------------------------------------------------------------- // Communication functions // -------------------------------------------------------------------------------------- //==================================================================== // // Internal function getSendState() // //-------------------------------------------------------------------- // Description: // Check the connect and initialize state. // Must be call from each interface function which will send a command to the shaker //==================================================================== static function getSendState(variable funcId, variable deviceNumber, variable isShaker) { variable node; variable nodeTxt; node = getNodeFromDeviceNumber(deviceNumber); nodeTxt = StringTable::Load(IDS::starNode); if(!isStarDevice(deviceNumber)) { if(!isUsbConnected(funcId)) return (IDE::retNotConnectErr); nodeTxt = StringTable::Load(IDS::usbNode); } if(!isHeaterInitialized(deviceNumber) && isShaker) { // "%s1 '%s2' not initialized'." variable msg; msg = StringTable::Load(IDS::neededNodeNotInitialized); StrReplace(msg, "%s1", nodeTxt); StrReplace(msg, "%s2", IStr(node)); errorCompleteTrace(funcId, msg); return (IDE::retNotInitErr); } return (IDE::noError); } //==================================================================== // // Internal function sendMsg() // //-------------------------------------------------------------------- // Description: // Sends a command dependent of device to a star or to the usb. //==================================================================== static function sendMsg(variable deviceNumber, variable command, variable parameter, variable timeOut, variable makeTrace) { variable receMsg; if(isStarDevice(deviceNumber)) { receMsg = sendToStar(deviceNumber, command, parameter, makeTrace); } else { receMsg = sendToUsb(deviceNumber, command, parameter, timeOut); } return (receMsg); } //==================================================================== // // Internal function sendToUsb() // //-------------------------------------------------------------------- // Description: // Sends a command to the corresponding device node via USB. //==================================================================== static function sendToUsb(variable deviceNumber, variable command, variable parameter, variable timeOut) { variable node; variable sendMsg("T"); variable receMsg; string cmd(command); node = getNodeFromDeviceNumber(deviceNumber); sendMsg = sendMsg + IStr(node-1); // USB has an 0 bsed adderss node 0..7 sendMsg = sendMsg + command; sendMsg = sendMsg + parameter; if(isUsbTrace()) progressTrace(IDS::sendToUsb, IDS::sendMessageTitle, sendMsg); receMsg = m_usbComObject.Request(sendMsg, timeOut); // on request of firmware version do not trace the answere. // Answere is traced as firmware version in function traceFirmwareVersion() if(isUsbTrace() && (cmd.Find("RF") < 0)) progressTrace(IDS::sendToUsb, IDS::receiveMessageTitle, receMsg); return (receMsg); } //==================================================================== // // Internal function sendToStar() // //-------------------------------------------------------------------- // Description: // Sends a command to the corresponding device node via ML_STAR component. //==================================================================== static function sendToStar(variable deviceNumber, variable cmd, variable param, variable makeTrace) { variable stepShowNameKey(-534118376); variable globalKey(-534183935); variable orderKey(-534183816); variable parameterKey(-534183815); variable resultDataKey(-534118396); variable resultDataPos(4); variable node; object starObject; object parsIn; object parsOut; variable command("T"); variable parameter(param); variable result4; variable receMsg; string tempMsg; string tempCmd(cmd); variable errPos; // device node must be 1 or 2 -->> node must not be updated node = getNodeFromDeviceNumber(deviceNumber); onerror goto objectError; SynEnterCriticalSection(m_hhsCriticalSection); starObject = m_starDeviceObj.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); onerror goto 0; command = command + IStr(node); command = command + cmd; if(isUsbTrace() && makeTrace) { string sendMsg(command); sendMsg = sendMsg + param; progressTrace(IDS::sendToStar, IDS::sendMessageTitle, sendMsg); } // set the command at first of the receMsg receMsg = command; // activate error handler onerror goto Unexpected; // create data pars for the firmwareCommand parsIn.CreateObject("HXPARAMSLib.HxPars", hslFalse); parsOut.CreateObject("HXPARAMSLib.HxPars", hslFalse); parsIn.Add(2, "ParsCommandVersion"); parsIn.Add("FirmwareCommand", "StepName"); parsIn.Add(457, stepShowNameKey); parsIn.Add(0, "NbrOfErrors"); parsIn.Add(command, globalKey, orderKey); parsIn.Add(parameter, globalKey, parameterKey); // send command starObject.FirmwareCommand(parsIn, parsOut); result4 = parsOut.Item(resultDataKey, resultDataPos); parsIn.ReleaseObject(); parsOut.ReleaseObject(); receMsg = receMsg + result4; tempMsg = receMsg; // remove the master error erXX/XX so that the result string is the same than on USB command erXX errPos = tempMsg.Find("er"); if(errPos >= 0) { if(tempMsg.GetLength() > errPos + 4) { if(tempMsg.Mid(errPos+4, 1) == "/") { // the simulator returns er01/00 on a unknown command, // in this case, remove the slave error not the master error if(tempMsg.GetLength() >= errPos + 7) { // check slave error if(tempMsg.Mid(errPos+5, 2) == "00") { // use the master error, so that the return is not null receMsg = tempMsg.Left(errPos+4); receMsg = receMsg + tempMsg.Right(tempMsg.GetLength() - (errPos+7)); } else { // use the slave error receMsg = tempMsg.Left(errPos+2); receMsg = receMsg + tempMsg.Right(tempMsg.GetLength() - (errPos+5)); } } } } } // on request of firmware version do not trace the answere. // Answere is traced as firmware version in function traceFirmwareVersion() if(isUsbTrace() && (tempCmd.Find("RF") < 0) && makeTrace) progressTrace(IDS::sendToStar, IDS::receiveMessageTitle, receMsg); return (receMsg); Unexpected: { variable errId( err.GetId( ) ); parsIn.ReleaseObject(); parsOut.ReleaseObject(); // no connection if(errId == -1591212031 || errId == -1574764487) { receMsg = receMsg + "er0"; receMsg = receMsg + IStr(IDE::retNotConnectErr); } else Error::RaiseLast(); } // on request of firmware version do not trace the answere. // Answere is traced as firmware version in function traceFirmwareVersion() if(isUsbTrace() && (tempCmd.Find("RF") < 0)) progressTrace(IDS::sendToStar, IDS::receiveMessageTitle, receMsg); return (receMsg); objectError: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } return (receMsg); } //==================================================================== // // Internal function startPlateLockCmd() // //-------------------------------------------------------------------- // Description: // Lock / Unlock the plate // Will make a short error handling on not init and step loss error //==================================================================== static function startPlateLockCmd(variable funcId, variable deviceNumber, variable plateLock) { variable node; variable command("LP"); variable parameter("lp"); string cmdResult; node = getNodeFromDeviceNumber(deviceNumber); parameter = parameter + IStr(plateLock); // lock / unlock plate cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue); // check for init or staep lost error // On step lost, this drive is lost the init state and must be initialized again // The library internal initialization flag is set allready and must nod set again if((cmdResult.Find(m_fwPlNotInitError) >= 0) || (cmdResult.Find(m_fwPlStepLostError) >= 0)) { string cmdResult2; // init drive again cmdResult2 = sendMsg(deviceNumber, "LI", "", m_usbMsgTimeout, hslTrue); // init has end success if(cmdResult2.Find(m_fwNoError) >= 0) { // lock / unlock plate cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue); } } return (cmdResult); } //==================================================================== // // Internal function startShakingCmd() // //-------------------------------------------------------------------- // Description: // Start / Stop plate shaking // Will make a short error handling on not init and step loss error //==================================================================== static function startShakingCmd( variable funcId, variable deviceNumber, variable command, variable parameter, variable isStart) { string cmdResult; // send command cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue); // check for init or step lost error // On step lost, this drive is lost the init state and must be initialized again // The library internal initialization flag is set allready and must nod set again if((cmdResult.Find(m_fwShNotInitError) >= 0) || (cmdResult.Find(m_fwShStepLostError) >= 0)) { string cmdResult2; // init drive again cmdResult2 = sendMsg(deviceNumber, "SI", "", m_usbMsgTimeout, hslTrue); // if not start, do not repeat the main command and return the really returned error if(isStart) { // init has end success if(cmdResult2.Find(m_fwNoError) >= 0) { cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue); } } } return (cmdResult); } //==================================================================== // // Internal function setHHSSetting() // //-------------------------------------------------------------------- // Description: // Check the given deviceNumber from a interface function //==================================================================== static function setHHSSetting(variable funcId, variable deviceNumber, variable& hhsSetting) { string cmdResult; variable funcRc(IDE::noError); hhsSetting = 0; if(!isSimulate(0, deviceNumber, hslFalse)) { variable startPos(-1); // read the HHS settings cmdResult = sendMsg(deviceNumber, "QU", "", m_usbMsgTimeout, hslTrue); funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); startPos = cmdResult.Find("au"); if(startPos >= 0 && cmdResult.GetLength() >= 25) { variable shaker; variable heater; // cmdResult auswerten // format "TxQUau0 0 0 0 0 0 0 0 0 0" shaker = cmdResult.Mid(startPos+2, 1); heater = cmdResult.Mid(startPos+4, 1); if(shaker == "1" && heater == "1") hhsSetting = m_shakingPropertyNothing; else if(shaker == "1") hhsSetting = m_shakingPropertyOnlyHeat; else if(heater == "1") hhsSetting = m_shakingPropertyOnlyShake; } } onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); m_hhsSetting[deviceNumber-1] = hhsSetting; SynLeaveCriticalSection(m_hhsCriticalSection); return(funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } return (funcRc); } //==================================================================== // // Internal function hasHeater() // //-------------------------------------------------------------------- // Description: // Check if the heater is activated on current HHS //==================================================================== static function hasHeater(variable funcId, variable deviceNumber, variable throw) { variable hhsSettings(-1); variable funcRc(hslFalse); onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); hhsSettings = m_hhsSetting.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); if((hhsSettings == m_shakingPropertyHeatAndShake) || (hhsSettings == m_shakingPropertyOnlyHeat)) funcRc = hslTrue; if(funcRc == hslFalse && throw == 1) { // "Current HHS module on %s1 '%s2' cannot used as heater" variable nodeNameId(IDS::starNode); variable node; string msg; string nodeName; variable funcName; node = getNodeFromDeviceNumber(deviceNumber); if(!isStarDevice(deviceNumber)) nodeNameId = IDS::usbNode; msg = StringTable::Load(IDS::heatingNotActivated); nodeName = StringTable::Load(nodeNameId); funcName = StringTable::Load(funcId); StrReplace(msg, "%s1", nodeName); StrReplace(msg, "%s2", IStr(node)); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } return(funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } return (funcRc); } //==================================================================== // // Internal function hasShaker() // //-------------------------------------------------------------------- // Description: // Check if the heater is activated on current HHS //==================================================================== static function hasShaker(variable funcId, variable deviceNumber, variable throw) { variable hhsSettings(-1); variable funcRc(hslFalse); onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); hhsSettings = m_hhsSetting.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); if((hhsSettings == m_shakingPropertyHeatAndShake) || (hhsSettings == m_shakingPropertyOnlyShake)) funcRc = hslTrue; if(funcRc == hslFalse && throw) { // "Current HHS module on %s1 '%s2' cannot used as shaker." variable nodeNameId(IDS::starNode); variable node; string msg; string nodeName; variable funcName; node = getNodeFromDeviceNumber(deviceNumber); if(!isStarDevice(deviceNumber)) nodeNameId = IDS::usbNode; msg = StringTable::Load(IDS::shakingNotActivated); nodeName = StringTable::Load(nodeNameId); funcName = StringTable::Load(funcId); StrReplace(msg, "%s1", nodeName); StrReplace(msg, "%s2", IStr(node)); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } return(funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } return (funcRc); } // -------------------------------------------------------------------------------------- // Library traces // -------------------------------------------------------------------------------------- //==================================================================== // // Internal function versionTrace() // //-------------------------------------------------------------------- // Description: // Traces the start of a exported function //==================================================================== static function versionTrace() void { variable traceSource; initStringTable(); traceSource = StringTable::Load(IDS::traceSource); // source for formated trace FormatTrace(traceSource, "HSLHamHeaterShakerLib", TraceStatus::cmd_progress, HamHeaterShakerVersion); } //==================================================================== // // Internal function startTrace() // //-------------------------------------------------------------------- // Description: // Traces the start of a exported function //==================================================================== static function startTrace(variable funcName) void { variable traceSource; variable functionName; initStringTable(); traceSource = StringTable::Load(IDS::traceSource); // source for formated trace if(GetType(funcName) == "i") functionName = StringTable::Load(funcName); else functionName = funcName; FormatTrace(traceSource, functionName, TraceStatus::cmd_start); } //==================================================================== // // Internal function progressTrace() // //-------------------------------------------------------------------- // Description: // Traces a msg during a exported function is working //==================================================================== static function progressTrace(variable funcName, variable progMsgTitle, variable progMsg) void { variable traceSource; variable functionName; variable progressTitle; variable progressMsg; initStringTable(); traceSource = StringTable::Load(IDS::traceSource); // source for formated trace if(GetType(funcName) == "i") functionName = StringTable::Load(funcName); else functionName = funcName; if(GetType(progMsgTitle) == "i") progressTitle = StringTable::Load(progMsgTitle); else progressTitle = progMsgTitle; if(GetType(progMsg) == "i") progressMsg = StringTable::Load(progMsg); else progressMsg = progMsg; FormatTrace(traceSource, functionName, TraceStatus::cmd_progress, progressTitle, progressMsg); } //==================================================================== // // Internal function errorTrace() // //-------------------------------------------------------------------- // Description: // Traces an error msg during a exported function is working //==================================================================== static function errorTrace(variable funcName, variable errMsg) void { variable traceSource; variable functionName; variable errorMsg; initStringTable(); traceSource = StringTable::Load(IDS::traceSource); // source for formated trace if(GetType(funcName) == "i") functionName = StringTable::Load(funcName); else functionName = funcName; if(GetType(errMsg) == "i") errorMsg = StringTable::Load(errMsg); else errorMsg = errMsg; FormatTrace(traceSource, functionName, TraceStatus::cmd_error, errorMsg); } //==================================================================== // // Internal function errorCompleteTrace() // //-------------------------------------------------------------------- // Description: // Traces an error msg on end of an exported function //==================================================================== static function errorCompleteTrace(variable funcName, variable errMsg) void { variable traceSource; variable functionName; variable errorMsg; initStringTable(); traceSource = StringTable::Load(IDS::traceSource); // source for formated trace if(GetType(funcName) == "i") functionName = StringTable::Load(funcName); else functionName = funcName; if(GetType(errMsg) == "i") errorMsg = StringTable::Load(errMsg); else errorMsg = errMsg; FormatTrace(traceSource, functionName, TraceStatus::cmd_errComplete, errorMsg); } //==================================================================== // // Internal function endTrace() // //-------------------------------------------------------------------- // Description: // Traces the end of an exported function //==================================================================== static function endTrace(variable funcName) void { variable traceSource; variable functionName; initStringTable(); traceSource = StringTable::Load(IDS::traceSource); // source for formated trace if(GetType(funcName) == "i") functionName = StringTable::Load(funcName); else functionName = funcName; FormatTrace(traceSource, functionName, TraceStatus::cmd_complete); } //==================================================================== // // Internal function traceFirmwareVersion() // //-------------------------------------------------------------------- // Description: // Traces the firmware version of an used heater shaker //==================================================================== // this function is used in InitializeLibrary() and uses index 0..10 static function traceFirmwareVersion(variable funcId, variable deviceNumber) { variable nodeNameId(IDS::starNode); string answString; variable startPos(0); // read the firmware version of current node answString = sendMsg(deviceNumber, "RF", "", m_usbInitTimeout, hslTrue); if(!isStarDevice(deviceNumber)) nodeNameId = IDS::usbNode; startPos = answString.Find("rf"); if(startPos >= 0) { string fwVers; string title; string nodeName; variable node; node = getNodeFromDeviceNumber(deviceNumber); fwVers = answString.Right(answString.GetLength()-(startPos+2)); // Text: "%s1 '%s2' firmware version = " title = StringTable::Load(IDS::firmwareVersion); nodeName = StringTable::Load(nodeNameId); StrReplace(title, "%s1", nodeName); StrReplace(title, "%s2", IStr(node)); progressTrace(funcId, title, fwVers); } } //==================================================================== // // Internal function sendToProgressTrace() // //-------------------------------------------------------------------- // Description: // Traces a msg during a exported function is working //==================================================================== static function sendToProgressTrace( variable funcName, variable deviceNumber) void { variable traceSource; variable functionName; variable nodeNameId(IDS::starNode); string nodeName; variable progressMsg; variable node; initStringTable(); node = getNodeFromDeviceNumber(deviceNumber); if(!isStarDevice(deviceNumber)) nodeNameId = IDS::usbNode; nodeName = StringTable::Load(nodeNameId); traceSource = StringTable::Load(IDS::traceSource); // source for formated trace if(GetType(funcName) == "i") functionName = StringTable::Load(funcName); else functionName = funcName; // Text: "Start command to %s1(%s2)." progressMsg = StringTable::Load(IDS::progressSendTo); StrReplace(progressMsg, "%s1", nodeName); StrReplace(progressMsg, "%s2", IStr(node)); FormatTrace(traceSource, functionName, TraceStatus::cmd_progress, progressMsg); } // -------------------------------------------------------------------------------------- // Input parameter check function // -------------------------------------------------------------------------------------- //==================================================================== // // Internal function checkStringInput() // //-------------------------------------------------------------------- // Description: // Check an input parameter which must be a string //==================================================================== static function checkStringInput(variable funcId, variable parameterName, variable input) { if(GetType(input) != "s") { // Wrong type of parameter; '%s1(%s2)' must be a string. string msg; string param; variable funcName; msg = StringTable::Load(IDE::noStringValue); funcName = StringTable::Load(funcId); if(GetType(input) == "i") param = IStr(input); if(GetType(input) == "f") param = FStr(input, hslTrue); StrReplace(msg, "%s1", parameterName); StrReplace(msg, "%s2", param); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::noStringValue, msg, GetFileName(), funcName, GetLineNumber()); } } //==================================================================== // // Internal function checkDoubleInput() // //-------------------------------------------------------------------- // Description: // Check an input parameter which must be a double //==================================================================== static function checkDoubleInput( variable funcId, variable parameterName, variable input) { if((GetType(input) != "f") && (GetType(input) != "i")) { // Wrong type of parameter; '%s1(%s2)' must be a number. string msg; string param("'%s'"); variable funcName; msg = StringTable::Load(IDE::noDoubleValue); funcName = StringTable::Load(funcId); if(GetType(input) == "s") StrReplace(param, "%s", input); StrReplace(msg, "%s1", parameterName); StrReplace(msg, "%s2", param); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::noDoubleValue, msg, GetFileName(), funcName, GetLineNumber()); } } //==================================================================== // // Internal function checkDoubleInputRange() // //-------------------------------------------------------------------- // Description: // Check an input parameter which must be a double in a defined range //==================================================================== static function checkDoubleInputRange( variable funcId, variable parameterName, variable input, variable min, variable max) { checkDoubleInput(funcId, parameterName, input); if((input < min) || (input > max)) { // "Parameter out of range; '%s1(%s2)' must be between [%s3..%s4]." string msg; variable funcName; msg = StringTable::Load(IDS::parameterOutOfRange); funcName = StringTable::Load(funcId); StrReplace(msg, "%s1", parameterName); StrReplace(msg, "%s2", FStr(input, hslTrue)); StrReplace(msg, "%s3", FStr(min, hslTrue)); StrReplace(msg, "%s4", FStr(max, hslTrue)); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::syntaxParRangeError, msg, GetFileName(), funcName, GetLineNumber()); } } //==================================================================== // // Internal function checkIntegerInput() // //-------------------------------------------------------------------- // Description: // Check an input parameter which must be a integer //==================================================================== static function checkIntegerInput( variable funcId, variable parameterName, variable input) { if(GetType(input) != "i") { // Wrong type of parameter; '%s1(%s2)' must be a number. string msg; string param; variable funcName; msg = StringTable::Load(IDE::noIntegerValue); funcName = StringTable::Load(funcId); if(GetType(input) == "s") { param = "'"; param = param + input; param = param + "'"; } if(GetType(input) == "f") param = FStr(input, hslTrue); StrReplace(msg, "%s1", parameterName); StrReplace(msg, "%s2", param); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::noIntegerValue, msg, GetFileName(), funcName, GetLineNumber()); } } //==================================================================== // // Internal function checkIntegerInputRange() // //-------------------------------------------------------------------- // Description: // Check an input parameter which must be a integer in a defined range //==================================================================== static function checkIntegerInputRange( variable funcId, variable parameterName, variable input, variable min, variable max) { checkIntegerInput(funcId, parameterName, input); if((input < min) || (input > max)) { // "Parameter out of range; '%s1(%s2)' must be between [%s3..%s4]." string msg; variable funcName; msg = StringTable::Load(IDS::parameterOutOfRange); funcName = StringTable::Load(funcId); StrReplace(msg, "%s1", parameterName); StrReplace(msg, "%s2", IStr(input)); StrReplace(msg, "%s3", IStr(min)); StrReplace(msg, "%s4", IStr(max)); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::syntaxParRangeError, msg, GetFileName(), funcName, GetLineNumber()); } } //==================================================================== // // Internal function isStarDevice() // //-------------------------------------------------------------------- // Description: // Check if the used deviceNumber from a ML_STAR //==================================================================== static function isStarDevice(variable deviceNumber) { variable funcRc(hslFalse); variable devName; onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); devName = m_deviceName.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); // check for usb name if(devName != m_hhsUsbObjectName) { funcRc = hslTrue; } return(funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Internal function getNodeFromDeviceNumber() // //-------------------------------------------------------------------- // Description: // Retunrs the saved node ID dependent of the deviceNumber //==================================================================== static function getNodeFromDeviceNumber(variable deviceNumber) { variable usedNode; onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); usedNode = m_nodeNumber.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); return(usedNode); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Internal function checkDeviceNumber() // //-------------------------------------------------------------------- // Description: // Check the given deviceNumber from a interface function //==================================================================== static function checkDeviceNumber(variable funcId, variable deviceNumber) { variable devName, nodeNr; if((deviceNumber < m_firstDeviceNumber) || (deviceNumber > m_lastDeviceNumber)) { string msg; variable funcName; // "Parameter 'deviceNumber' contains an invalid value! \r\nMust be created with function CreateStarDevice() or CreateUsbDevice()" msg = StringTable::Load(IDS::invalidDeviceNumber); funcName = StringTable::Load(funcId); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); devName = m_deviceName.GetAt(deviceNumber-1); nodeNr = m_nodeNumber.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); // check for usb name if((devName == "") || (nodeNr == 0)) { string msg; variable funcName; // "Parameter 'deviceNumber' contains an invalid value! \r\nMust be created with function CreateStarDevice() or CreateUsbDevice()" msg = StringTable::Load(IDS::invalidDeviceNumber); funcName = StringTable::Load(funcId); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Internal function formatParam() // //-------------------------------------------------------------------- // Description: // Formats an numeric input to a string with leading 0 to lenth of strWidth //==================================================================== static function formatParam( variable param, // i: the paramter to normalize (integer) variable strWidth) // i: the width to be filled (integer) { string sParam; sParam = IStr(param); StrFillLeft(sParam, "0", strWidth); return (sParam); } //==================================================================== // // Internal function normalizeParam() // //-------------------------------------------------------------------- // Description: // Formats an numeric (double)input to 1/10 values and format it // to a string with leading 0 to lenth of strWidth //==================================================================== static function normalizeParam( // returns the given parameter normalized for firmware command as string variable param, // i: the paramter to normalize as float or integer variable strWidth) // i: the width to be filled (integer) { string sParam; sParam = IStr(Floor(MthRound(param*10, 0))); StrFillLeft(sParam, "0", strWidth); return (sParam); } // -------------------------------------------------------------------------------------- // Firmware error check function // -------------------------------------------------------------------------------------- //==================================================================== // // Internal function getFirmwErrorId() // //-------------------------------------------------------------------- // Description: // Reads the firmware error number from cmdResult string and convert it to a number //==================================================================== static function getFirmwErrorId(string cmdResult) { variable errNr(0); variable startPos(0); startPos = cmdResult.Find("er"); if((startPos >= 0) && ((startPos+4) <= cmdResult.GetLength())) { variable errNo; errNo = cmdResult.Mid((startPos+2), 2); errNr = IVal(errNo); } return (errNr); } //==================================================================== // // Internal function getErrIdFromFirmwareError() // //-------------------------------------------------------------------- // Description: // Converts the firmware error number to function return error number //==================================================================== static function getErrIdFromFirmwareError(string cmdResult) { variable firmwErrId(getFirmwErrorId(cmdResult)); if(0 == firmwErrId) return (IDE::noError); else if(1 == firmwErrId) return (IDE::retErr); else if(2 == firmwErrId) return (IDE::retNotInitErr); else if(3 == firmwErrId) return (IDE::retNotConnectErr); else if (10 == firmwErrId) return (IDE::canError); else if (20 == firmwErrId) return (IDE::eepromError); else if (30 == firmwErrId) return (IDE::syntaxCmdError); else if (31 == firmwErrId) return (IDE::syntaxParUnkError); else if (32 == firmwErrId) return (IDE::syntaxParRangeError); else if (35 == firmwErrId) return (IDE::generalVoltError); else if (36 == firmwErrId) return (IDE::generalStopError); else if (37 == firmwErrId) return (IDE::generalAddrError); else if (40 == firmwErrId) return (IDE::parallelError); else if (41 == firmwErrId) return (IDE::parallelError); else if (42 == firmwErrId) return (IDE::parallelError); else if (50 == firmwErrId) return (IDE::shakerInitError); else if (51 == firmwErrId) return (IDE::shakerNotInitError); else if (52 == firmwErrId) return (IDE::shakerStepLossError); else if (53 == firmwErrId) return (IDE::shakerStartModeError); else if (55 == firmwErrId) return (IDE::plateLockInitError); else if (56 == firmwErrId) return (IDE::plateLockNotInitError); else if (57 == firmwErrId) return (IDE::plateLockStepLossError); else if (60 == firmwErrId) return (IDE::tempNotStartError); else if (61 == firmwErrId) return (IDE::tempTimeoutError); else if (62 == firmwErrId) return (IDE::tempSuperRangeError); else if (63 == firmwErrId) return (IDE::tempSecurRangeError); else if (64 == firmwErrId) return (IDE::tempSensorError); else if (98 == firmwErrId) return (IDE::commandSendTimeout); else return (IDE::unknowFwError); } //==================================================================== // // Internal function isFirmwError() // //-------------------------------------------------------------------- // Description: // Check if an error is set in cmdResult string //==================================================================== static function isFirmwError(variable funcId, string cmdResult, variable makeTrace) { variable rc(IDE::noError); if(cmdResult.Find(m_fwNoError) == -1) { variable errId; variable errText; errId = getErrIdFromFirmwareError(cmdResult); // string erXX was not found (answere command) if(errId != IDE::noError) { rc = errId; errText = StringTable::Load(errId); // make an exception handling for errors which contains a %s part if(errId == IDE::unknowFwError) StrReplace(errText, "%s", IStr(getFirmwErrorId(cmdResult))); if(errId == IDE::commandSendTimeout) StrReplace(errText, "%s", cmdResult.Left(4)); if(makeTrace) errorCompleteTrace(funcId, errText); } } return (rc); } //==================================================================== // // Internal function saveAndCreateDeviceNumber() // //-------------------------------------------------------------------- // Description: // save the device parameter and create the deviceNumber which must // be used for each interface function //==================================================================== static function saveAndCreateDeviceNumber( variable funcId, variable deviceName, object& starObject, variable isStarSimulate, variable usedNode) { variable deviceNumber(0); variable index(0); onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); // USB set always the starObject parameter with a null object if(starObject.IsNull() && m_usbComObject.IsNull()) { // create the usb object without event m_usbComObject.ReleaseObject(); m_usbComObject.CreateObject(m_hhsUsbObjectName, hslFalse); if(!m_usbComObject.IsNull()) { // "{BD0DAB87-838B-44c5-A114-1CBA5BE0E45F}", bufferSize(4090), vendorId(2223), productId, mainSerialNumber); m_usbComObject.InitObject (m_hhsUsbProductNum, m_hhsUsbSerieNum); } else { string msg; variable funcName; SynLeaveCriticalSection(m_hhsCriticalSection); // "Parameter 'starDevice' contains an invalid object." msg = StringTable::Load(IDS::cannotCreateUsbPort); funcName = StringTable::Load(funcId); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } } // check if this node allready used for( index = 0; index < m_maxHHS; index++) { variable devN, nodeNum; devN = m_deviceName.GetAt(index); nodeNum = m_nodeNumber.GetAt(index); // if equal, node already exist if((devN == deviceName) && (nodeNum == usedNode)) deviceNumber = index+1; } if(deviceNumber == 0) { // node is not used, set it on the first free position for( index = 0; index < m_maxHHS; index++) { variable devN; devN = m_deviceName.GetAt(index); // if empty if(devN == "") { m_deviceName[index] = deviceName; m_starDeviceObj[index] = starObject; m_isStarSimulate[index] = isStarSimulate; m_nodeNumber[index] = usedNode; deviceNumber = index+1; break; } } } SynLeaveCriticalSection(m_hhsCriticalSection); if(deviceNumber == 0) { string msg; variable funcName; // "Parameter 'starDevice' contains an invalid object." msg = StringTable::Load(IDS::maxHHSReached); funcName = StringTable::Load(funcId); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } return(deviceNumber); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Internal function Wait() // //-------------------------------------------------------------------- // Description: // Wait the given time //==================================================================== static function wait(variable waitTime) { timer t; // Wait waitTime seconds t.SetTimer( waitTime ); t.WaitTimer( hslFalse, hslFalse ); } //==================================================================== // // Internal function getCurrentShakerRPM() // //-------------------------------------------------------------------- // Description: // Read the shaking speed of current HHS //==================================================================== static function getCurrentShakerRPM(variable deviceNumber, variable makeTrace) { variable shakingSpeed(0); variable command("RR"); string parameter(""); string cmdResult; variable startPos(0); // start request cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, makeTrace); // format: rr#### startPos = cmdResult.Find("rr"); if(startPos >= 0) { shakingSpeed = IVal(cmdResult.Mid((startPos+2), 4)); } return (shakingSpeed); } //==================================================================== // // Internal function getCurrentTemp() // //-------------------------------------------------------------------- // Description: // Read the shaking speed of current HHS //==================================================================== static function getCurrentTemp(variable deviceNumber, variable makeTrace) { variable temperature(0); variable command("RT"); variable parameter(""); string cmdResult; variable startPos; variable firstVal; variable secVal; variable averageVal; // wait for temperature is reached cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, makeTrace); // format: rt#### #### startPos = cmdResult.Find("rt"); if((startPos >= 0) && ((cmdResult.GetLength()-startPos) >= TemperateParam::tempTempRequestLength)) { // read both temperature and calculate the average // format: rt#### #### firstVal = FVal(cmdResult.Mid((startPos+2), 5)); secVal = FVal(cmdResult.Mid((startPos+8), 5)); // calculate the average in 1/10 degrees averageVal = ((firstVal + secVal) / 2) /10; temperature = MthRound(averageVal, 1); } return (temperature); } //==================================================================== // // Internal function MonitorHeaterShaker() // //-------------------------------------------------------------------- // Description: // Monitors temperature and speed of a HHS module //==================================================================== synchronized function monitorHeaterShaker() { variable monitorComplete( 0 ); event intervalEvent; variable currentStatus(-1); variable funcName; variable sTitle; variable hTitle; variable stateTitle; variable heatingUp(hslTrue); variable result; variable oldResult; variable notStopped(hslTrue); // action Stop not used // set the locals... variable devNumber(m_monitorDeviceNumber); variable hMin(m_monitorHeaterMin); variable hMax(m_monitorHeaterMax); variable sMin(m_monitorShakerMin); variable sMax(m_monitorShakerMax); variable interval(m_monitorSampleInterval); variable action(m_monitorAction); variable curRpm(sMin); // if not available, the speed must be OK variable curTemp(hMin); // if not available, the temperature must be OK variable node; variable nodeType; // reset globals m_monitorDeviceNumber = 0; m_monitorShakerMin = 0; m_monitorShakerMax = 0; m_monitorSampleInterval = 0; m_monitorAction = 0; m_monitorHeaterMin = 0; m_monitorHeaterMax = 0; m_monitorResult[devNumber-1] = -1; // set min max temperature dependend of current heater settings // critical section is set in StartMonotoring() function intervalEvent = m_monitorEvent.GetAt(devNumber-1); // free start semaphore m_monitorStartEvent.SetEvent(); initStringTable(); if(isStarDevice(devNumber)) nodeType = StringTable::Load(IDS::starNode); else nodeType = StringTable::Load(IDS::usbNode); nodeType = nodeType + " ("; node = getNodeFromDeviceNumber(devNumber); nodeType = nodeType + IStr(node); nodeType = nodeType + " )"; funcName = StringTable::Load(IDF::Monitoring); funcName = funcName + " "; funcName = funcName + nodeType; sTitle = StringTable::Load(IDS::monitoringShakingTitle); hTitle = StringTable::Load(IDS::monitoringTempTitle); stateTitle = StringTable::Load(IDS::monitoringStateTitle); while (monitorComplete == 0) { // WaitEvent returns 0 if still waiting or non-zero // if the event was triggered. monitorComplete = intervalEvent.WaitEvent( interval ); if( monitorComplete == 0 && notStopped) { if(hasShaker(0, devNumber, 0)) { variable title(sTitle); // read currect RPM curRpm = getCurrentShakerRPM(devNumber, hslFalse); progressTrace(funcName, title, IStr(curRpm)); } if(hasHeater(0, devNumber, 0)) { variable title(hTitle); if(heatingUp) { string cmdResult; variable partResult("qd1"); // ask if heater in state heating up cmdResult = sendMsg(devNumber, "QD", "", m_usbMsgTimeout, hslFalse); if(cmdResult.Find(partResult) < 0) heatingUp = hslFalse; if(heatingUp) title = StringTable::Load(IDS::monitoringTempHeatUpTitle); } // read current temperature curTemp = getCurrentTemp(devNumber, hslFalse); progressTrace(funcName, title, FStr(curTemp, hslTrue)); } SynEnterCriticalSection(m_hhsCriticalSection); result = m_monitorResult.GetAt(devNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); oldResult = result; // Calculate the current state of the heater/shaker if( (((curTemp < hMin) || (curTemp > hMax)) && !heatingUp) && ((curRpm < sMin) || (curRpm > sMax))) { currentStatus = MonitorStatus::monitorErrHeatingAndShaking; } else if ( ((curTemp < hMin) || (curTemp > hMax)) && !heatingUp ) { currentStatus = MonitorStatus::monitorErrHeating; } else if ( (curRpm < sMin) || (curRpm > sMax) ) { currentStatus = MonitorStatus::monitorErrShaking; } else { currentStatus = MonitorStatus::monitorOK; } // If the monitor status has previously not been set, set it. // Otherwise, use bitwise OR to merge the current result with the previous result if (result == -1) result = currentStatus; else result = currentStatus | result; SynEnterCriticalSection(m_hhsCriticalSection); m_monitorResult[devNumber-1] = result; SynLeaveCriticalSection(m_hhsCriticalSection); progressTrace(funcName, stateTitle, IStr(result)); if ( result != MonitorStatus::monitorOK ) { if ( action == MonitorAction::monitorActionStop ) { // stop shaking and heating if(hasShaker(0, devNumber, 0)) StopShaker(devNumber); if(hasHeater(0, devNumber, 0)) StopTempCtrl(devNumber); // end monitoring but leave in the loop for a correct end of the automatic semapore intervalEvent notStopped = hslFalse; } if(action == MonitorAction::monitorActionAbort) { errorTrace(funcName, IDS::monitoringAbort); abort; } } } } // end while return(0); } //==================================================================== // // Internal function pollingForRunningShaker() // //-------------------------------------------------------------------- // Description: // Polling until shaker has end shaked or time is elapsed // Polling is neccessary that during a long wait time an Abort() // command can be execute. //==================================================================== static function pollingForRunningShaker( variable deviceNumber, variable maxPollingTime) { string cmdResult; variable maxPTime(maxPollingTime); variable intervalTime(5); variable partResult("rd1"); if(maxPollingTime > 10) { // ask if shaker is running cmdResult = sendMsg(deviceNumber, "RD", "", m_usbMsgTimeout, hslFalse); while(cmdResult.Find(partResult) > 0 && maxPTime > 0) { maxPTime = maxPTime - intervalTime; wait(intervalTime); cmdResult = sendMsg(deviceNumber, "RD", "", m_usbMsgTimeout, hslFalse); } } } //==================================================================== // // Internal function pollingForRunningHeater() // //-------------------------------------------------------------------- // Description: // Polling until heater is in temperature controlling mode // Polling is neccessary that during a long wait time an Abort() // command can be execute. //==================================================================== static function pollingForRunningHeater( variable deviceNumber, variable maxPollingTime) { string cmdResult; variable maxPTime(maxPollingTime); variable intervalTime(10); variable partResult("qd1"); if(maxPollingTime > 10) { // ask if heater in state heating up cmdResult = sendMsg(deviceNumber, "QD", "", m_usbMsgTimeout, hslFalse); while(cmdResult.Find(partResult) > 0 && maxPTime > 0) { maxPTime = maxPTime - intervalTime; wait(intervalTime); cmdResult = sendMsg(deviceNumber, "QD", "", m_usbMsgTimeout, hslFalse); } } } //==================================================================== // // Internal function OnAbortHHSLibrary() // //-------------------------------------------------------------------- // Description: // Stop heating and shaking for all HHS module //==================================================================== static function OnAbortHHSLibrary() { variable deviceNumber; for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++) { if(isHeaterInitialized(deviceNumber)) { // call StartShaker with 1 base node StopShaker(deviceNumber); StopTempCtrl(deviceNumber); } } Terminate(); return; } } #endif // $$author=TBenz$$valid=1$$time=2013-03-06 12:47$$checksum=fc24f279$$length=082$$ ================================================ FILE: pyhamilton/star-oem/HslHamHeaterShakerLib.hsl ================================================ // ====================================================================== // This is a part of the HSLHamHeaterShaker Library. // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // All rights reserved. // ====================================================================== // // Modification History // // 2008-09-10 tbenz > first creation // // ********************************************************************** // This library version supports following hardware: // - HAM Heater Shaker (HHS) ML_STAR interface // - HAM Heater Shaker (HHS) USB interface // ********************************************************************** #ifndef __HSLHeaterShakerLib_hsl__ #define __HSLHeaterShakerLib_hsl__ 1 // Interface to HSLHamHeaterShaker library #ifndef HSL_RUNTIME namespace HSLHamHeaterShaker { function CreateStarDevice( device& starDevice, // in: ML_STAR device variable usedNode, // in: node ID (1 or 2) variable& deviceNumber) {} // out: generated deviceNumber function CreateUsbDevice( variable usedNode, // in: node ID (1..8) variable& deviceNumber) {} // out: generated deviceNumber function Terminate() void {} // Close the communication function StartShaker( variable deviceNumber, // in: assigned deviceNumber variable shakingSpeed) {} // in: RPM (30..2500) function StopShaker( variable deviceNumber) {} // in: assigned deviceNumber function StartShakerTimed( variable deviceNumber, // in: assigned deviceNumber variable shakingSpeed, // in RPM (30..2500) variable shakingTime) {} // in: time in seconds (1.. 30000) function WaitForShaker( variable deviceNumber) {} // in: assigned deviceNumber function StartAllShaker( variable shakingSpeed) {} // in RPM (30..2500) function StartAllShakerTimed( variable shakingSpeed, // in: RPM (30..2500) variable shakingTime) {} // in: time in seconds (1.. 30000) function StopAllShaker( ) {} function SetShakerParameter( variable deviceNumber, // in: assigned deviceNumber variable shakingDirection, // in: shaking dirction left / right (0 / 1) variable shakingAccRamp) void {} // in: Defines the acceleration ramp (rpm) (integer). function GetShakerParameter( variable deviceNumber, // in: assigned deviceNumber variable& shakingDirection, // out: shaking dirction left / right (0 / 1) variable& shakingAccRamp) void {} // out: Defines the acceleration ramp (rpm) (integer). function GetShakerSpeed( variable deviceNumber, // in: assigned deviceNumber variable& shakingSpeed) {} // out: current RPM function StartTempCtrl( variable deviceNumber, // in: assigned deviceNumber variable temperature, // in: Temperature in 1/10C. Range 0.0 .. 100.0 (not lower than ambient) variable waitForTempReached) {} // in: no wait / wait (0 / 1) function StopTempCtrl( variable deviceNumber) {} // in: assigned deviceNumber function WaitForTempCtrl( variable deviceNumber) {} // in: assigned deviceNumber function GetTemperature( variable deviceNumber, // in: assigned deviceNumber variable& temperature) {} // out: current temperature in 1/10C function GetTemperatureState( variable deviceNumber, // in: assigned deviceNumber variable& temperatureState) {} // out: temperature state 0..3 // 0 = No error, temperature was always in the defined range. // 1 = Temperature was or is out of temperature range. // 2 = Temperature was out of security range. Temperature controlling is switched off now. // 3 = Temperature time out during start of temperature controlling function SetTempParameter( variable deviceNumber, // in: assigned deviceNumber variable startTimeout, // in: Time before start temperature controlling (1..2500) variable toleranceRange, // in: Temperature tolerance in 1/10C. (0.0 .. 100.0), def: 2.0 variable securityRange) void {} // in: Temperature security in 1/10C. (0.0 .. 100.0), def: 6.0 function GetTempParameter( variable deviceNumber, // in: assigned deviceNumber variable& startTimeout, // out: Time before start temperature controlling. variable& toleranceRange, // out: Temperature tolerance in 1/10C. variable& securityRange) void {} // out: Temperature security in 1/10C. function SetPlateLock( variable deviceNumber, // in: assigned deviceNumber variable plateLock) {} // in: unlock / lock (0 / 1) function GetFirmwareVersion( variable deviceNumber, // in: assigned deviceNumber variable& firmwareVersion) void {} // out: Firmware version format: "1.0P 1999-03-10" function GetSerialNumber( variable deviceNumber, // in: assigned deviceNumber variable& serialNumber) void {} // out: Serial number format: "####" 4 digit number function BeginMonitoring( variable deviceNumber, // in: assigned deviceNumber variable shakingToleranceRange, // in: shaking tolerance variable sampleInterval, // in: Interval in sec. for check RPM and temperature variable action) void {} // in: Continue / Abort (0 / 1) // Note: Abort will only called on an error after temperature controlling is activated () // An abort will end only the current heater/shaker. // Note: heaterMin and heaterMax uses the parameter toleranceRange of SetTempParameter() function EndMonitoring( variable deviceNumber, // in: assigned deviceNumber variable& monitorResult) {} // out: Monitored result //-1 = monitoring has not started or is not initialized // 0 = all heating and shaking values were within specification // 1 = heating out of range // 2 = shaking out of range // 3 = heating and shaking out of range function SendFirmwareCommand( variable deviceNumber, // in: assigned deviceNumber variable command, // in: Firmware command e.g. "T1RF" variable parameter) {} // in: Firmware parameter dependent of command function SetSimulation( variable simulate) void {} // in: Run / Simulate (0 / 1) function SetUSBTrace( variable trace) void {} // in: No trace / trace (0 / 1) Set communication tracing for send and receive message from USB } // end of namespace HSLHamHeaterShaker #endif // ========================================================================== // Implementation of HSLHamHeaterShaker Library // ========================================================================== #ifdef HSL_RUNTIME #include "HSLHamHeaterShakerLib.hs_" #endif #endif /* end of #ifndef __HSLHamHeaterShakerLib_hsl__ */ // $$author=TBenz$$valid=1$$time=2013-03-06 12:47$$checksum=764d39dc$$length=082$$ ================================================ FILE: pyhamilton/star-oem/RunHSLExecutor.dll.config ================================================ ================================================ FILE: pyhamilton/star-oem/STAR_OEM.hsl ================================================ #include "STAR_OEM.res" global device HxFan ("STAR_OEM.lay", "HxFan", hslTrue); global device ML_STAR ("STAR_OEM.lay", "ML_STAR", hslTrue); namespace _Method { #include __filename__ ".sub" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HslHamHeaterShakerLib.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } object objHttp; object objJSONFromServer; object objJSONToServer; sequence lidSeq; sequence seq; sequence toolSeq; variable action; variable airTransportRetractDist; variable arrayOfVolumes[]; variable aspPosAboveTouch; variable aspirateMode; variable aspirateSequence; variable aspirateVolume; variable barcodeFileName; variable barcodeReadPositions; variable blnReturn; variable blnSuccess; variable capacitiveLLD; variable carrierName; variable chamber1LiquidChange; variable chamber1WashLiquid; variable chamber2LiquidChange; variable chamber2WashLiquid; variable channelUse; variable channelVariable; variable checkPlate; variable collisionControl; variable command; variable commandFromServer; variable deviceNumber; variable dispPositionAboveTouch; variable dispenseMode; variable dispenseSequence; variable dispenseVolume; variable ejectToolWhenFinish; variable fanSpeed; variable firmwareVersion; variable gripForce; variable gripHeight; variable gripMode; variable gripSpeed; variable gripWidth; variable gripperToolChannel; variable handle; variable handles[ ]; variable id; variable initializeAlways; variable intTrace; variable inverseGrip; variable labwareOrientation; variable labwarePositions; variable lidSequence; variable liftUpHeight; variable liquidClass; variable liquidFollowing; variable liquidHeight; variable loopCounterMain; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable monitorResult; variable movementType; variable msg; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable o_liquidLevels_mL[]; variable o_liquidLevels_mm[]; variable o_stepReturn1; variable o_stepReturn2; variable o_stepReturn3; variable o_stepReturn4; variable parameter; variable persistant; variable plateLock; variable platePressOnDistance; variable plateSequence; variable pressureLLD; variable rc(0); variable reducedPatternMode; variable refillAfterEmpty; variable retractDistance; variable sampleInterval; variable securityRange; variable sequenceCounting; variable serialNumber; variable shakingAccRamp; variable shakingDirection; variable shakingSpeed; variable shakingTime; variable shakingToleranceRange; variable showCollisionCheckDialog; variable sideTouch; variable simulate; variable startTimeout; variable submergeDepth; variable temperature; variable timeout(2*60); variable tipEjectToKnownPosition; variable tipSequence; variable tolerance; variable toleranceRange; variable toolSequence; variable touchOff; variable transportMode; variable useDefaultWaste; variable usedNode; variable v; variable waitForTempReached; variable wasteSequence; variable widthBefore; variable xAcceleration; variable zMoveAfterStep; variable zSpeed; namespace _Method { method main( ) void { STAR_OEM_TOOLKIT::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); blnReturn = HSLHttp::Initialize(objHttp); if (blnReturn != blnSuccess) { TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); return; } SendTextMessageToServer(Translate("Hi, I´m a VENUS method.")); onerror goto ErrorHandler; { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; commandFromServer = Translate(""); o_stepReturn1_t1 = Translate(""); o_stepReturn2_t1 = Translate(""); o_stepReturn3_t1 = Translate(""); o_stepReturn1_t14 = Translate(""); msg = waitForGUItoContinue(); Trace("JSON received from Server:", msg); HSLJsonLib::Create(objJSONFromServer); HSLJsonLib::ParseJson(objJSONFromServer, msg); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("id"), id); handle = Fork("doCommand"); if (0 == handle) err.Raise(0, "Failed to fork doCommand"); handles.AddAsLast(handle); // do anything else in the main thread rc = Join(handles, timeout); if (0 == rc) err.Raise(1, "Failed to join handles"); HSLJsonLib::Release(objJSONFromServer); if (commandFromServer == "end") { SendTextMessageToServer(Translate("Good Bye!")); break; } } } HSLHttp::Release(objHttp); STAR_OEM_TOOLKIT::_ExitLibrary(); return; ErrorHandler : { if (hslAbort == MessageBox( err.GetDescription(), "Error - Main", hslError|hslAbortRetryIgnore)) abort; resume next; } } } namespace _Method { function doCommand() { if (commandFromServer == "initialize") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); TrcTrace(Translate("Init step return:"), o_stepReturn); SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "channelTipPickUp") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); if (tipSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); BuildTempSequenceFromPositions(labwarePositions, seq); } else { DevGetSequenceRef(ML_STAR, tipSequence, seq); } STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn1_t1); TrcTrace(Translate("Tip pick up step return:"), o_stepReturn1_t1); SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "channelAspirate") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); Trace("Bookstart"); JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); Trace("Bookend"); JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); JSON_GetFloatValue(Translate("mixPosition"), mixPosition); JSON_GetFloatValue(Translate("mixVolume"), mixVolume); JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); if (aspirateSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); BuildTempSequenceFromPositions(labwarePositions, seq); } else { DevGetSequenceRef(ML_STAR, aspirateSequence, seq); } STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn1_t1, o_liquidLevels_mm, o_liquidLevels_mL); ArrayToString(o_liquidLevels_mm, o_stepReturn2_t1); ArrayToString(o_liquidLevels_mL, o_stepReturn3_t1); TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn1_t1); TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2_t1); TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3_t1); SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, o_stepReturn3_t1, Translate(""), id); } if (commandFromServer == "channelDispense") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); JSON_GetFloatValue(Translate("mixPosition"), mixPosition); JSON_GetFloatValue(Translate("mixVolume"), mixVolume); JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); if (dispenseSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); BuildTempSequenceFromPositions(labwarePositions, seq); } else { DevGetSequenceRef(ML_STAR, dispenseSequence, seq); } STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn1_t1, o_liquidLevels_mm, o_liquidLevels_mL); ArrayToString(o_liquidLevels_mm, o_stepReturn2_t1); ArrayToString(o_liquidLevels_mL, o_stepReturn3_t1); TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn1_t1); TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2_t1); TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3_t1); SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, o_stepReturn3_t1, Translate(""), id); } if (commandFromServer == "channelTipEject") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); if (useDefaultWaste == 0) { if (wasteSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); BuildTempSequenceFromPositions(labwarePositions, seq); } else { DevGetSequenceRef(ML_STAR, wasteSequence, seq); } } else { SeqCopySequence(seq, ML_STAR.Waste); } STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn1_t1); TrcTrace(Translate("Tip eject step return:"), o_stepReturn1_t1); SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "mph96TipPickUp") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); if (tipSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); BuildTempSequenceFromPositions(labwarePositions, seq); } else { DevGetSequenceRef(ML_STAR, tipSequence, seq); } STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn1_t1, o_stepReturn2_t1); TrcTrace(Translate("Tip pick up step return:"), o_stepReturn1_t1); SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, Translate(""), Translate(""), id); } if (commandFromServer == "mph96Aspirate") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); JSON_GetFloatValue(Translate("mixPosition"), mixPosition); JSON_GetFloatValue(Translate("mixVolume"), mixVolume); JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); if (aspirateSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); BuildTempSequenceFromPositions(labwarePositions, seq); } else { DevGetSequenceRef(ML_STAR, aspirateSequence, seq); } STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn1_t1, o_stepReturn2_t1, o_stepReturn3_t1, o_stepReturn1_t14); TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn1_t1); TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2_t1); TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3_t1); TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn1_t14); o_stepReturn2_t1 = StrFStr(o_stepReturn2_t1); o_stepReturn3_t1 = StrFStr(o_stepReturn3_t1); SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, o_stepReturn3_t1, o_stepReturn1_t14, id); } if (commandFromServer == "mph96Dispense") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); JSON_GetFloatValue(Translate("mixPosition"), mixPosition); JSON_GetFloatValue(Translate("mixVolume"), mixVolume); JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); if (dispenseSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); BuildTempSequenceFromPositions(labwarePositions, seq); } else { DevGetSequenceRef(ML_STAR, dispenseSequence, seq); } STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn1_t1, o_stepReturn2_t1, o_stepReturn3_t1, o_stepReturn1_t14); TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn1_t1); TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2_t1); TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3_t1); TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn1_t14); o_stepReturn2_t1 = StrFStr(o_stepReturn2_t1); o_stepReturn3_t1 = StrFStr(o_stepReturn3_t1); SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, o_stepReturn3_t1, o_stepReturn1_t14, id); } if (commandFromServer == "mph96TipEject") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); if (tipEjectToKnownPosition == 0) { if (wasteSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); BuildTempSequenceFromPositions(labwarePositions, seq); } else { DevGetSequenceRef(ML_STAR, wasteSequence, seq); } } else { SeqCopySequence(seq, ML_STAR.Waste); } STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn1_t1, o_stepReturn2_t1); TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn1_t1); TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2_t1); SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, Translate(""), Translate(""), id); } if (commandFromServer == "loadCarrier") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn1_t1, o_stepReturn2_t1, o_stepReturn3_t1, o_stepReturn1_t14, o_carrierBC, o_carrierPositionsBCs); TrcTrace(Translate("Load carrier step return:"), o_stepReturn1_t1); SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, o_stepReturn3_t1, o_stepReturn1_t14, id); } if (commandFromServer == "unloadCarrier") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn1_t1); TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn1_t1); SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "gripGet") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); JSON_GetFloatValue(Translate("gripWidth"), gripWidth); JSON_GetFloatValue(Translate("gripHeight"), gripHeight); JSON_GetFloatValue(Translate("widthBefore"), widthBefore); JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); JSON_GetFloatValue(Translate("zSpeed"), zSpeed); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); if (plateSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); if (labwarePositions != "") { BuildTempSequenceFromPositions(labwarePositions, seq); } } else { DevGetSequenceRef(ML_STAR, plateSequence, seq); } if (lidSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); if (labwarePositions != "") { BuildTempSequenceFromPositions(labwarePositions, seq); } } else { DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); } DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn1_t1); TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn1_t1); SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "gripMove") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); if (plateSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); if (labwarePositions != "") { BuildTempSequenceFromPositions(labwarePositions, seq); } } else { DevGetSequenceRef(ML_STAR, plateSequence, seq); } STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn1_t1); TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn1_t1); SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "gripPlace") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); JSON_GetFloatValue(Translate("zSpeed"), zSpeed); JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); if (plateSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); if (labwarePositions != "") { BuildTempSequenceFromPositions(labwarePositions, seq); } } else { DevGetSequenceRef(ML_STAR, plateSequence, seq); } if (lidSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); if (labwarePositions != "") { BuildTempSequenceFromPositions(labwarePositions, seq); } } else { DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); } DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn1_t1); TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn1_t1); SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "iSwapGet") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("inverseGrip"), inverseGrip); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); JSON_GetFloatValue(Translate("retractDistance"), retractDistance); JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); JSON_GetFloatValue(Translate("gripWidth"), gripWidth); JSON_GetFloatValue(Translate("tolerance"), tolerance); JSON_GetFloatValue(Translate("gripHeight"), gripHeight); JSON_GetFloatValue(Translate("widthBefore"), widthBefore); if (plateSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); if (labwarePositions != "") { BuildTempSequenceFromPositions(labwarePositions, seq); } } else { DevGetSequenceRef(ML_STAR, plateSequence, seq); } if (lidSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); if (labwarePositions != "") { BuildTempSequenceFromPositions(labwarePositions, seq); } } else { DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); } STAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn1_t1); TrcTrace(Translate("iSWAP Get - step return :"), o_stepReturn1_t1); SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "iSwapMove") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); if (plateSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); if (labwarePositions != "") { BuildTempSequenceFromPositions(labwarePositions, seq); } } else { DevGetSequenceRef(ML_STAR, plateSequence, seq); } STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn1_t1); TrcTrace(Translate("iSWAP Move - step return :"), o_stepReturn1_t1); SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "iSwapPlace") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); JSON_GetFloatValue(Translate("retractDistance"), retractDistance); JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); if (plateSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); if (labwarePositions != "") { BuildTempSequenceFromPositions(labwarePositions, seq); } } else { DevGetSequenceRef(ML_STAR, plateSequence, seq); } if (lidSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); if (labwarePositions != "") { BuildTempSequenceFromPositions(labwarePositions, seq); } } else { DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); } STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn1_t1); TrcTrace(Translate("iSWAP Place - step return :"), o_stepReturn1_t1); SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "iSwapPark") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("showCollisionCheckDialog"), showCollisionCheckDialog); STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn1_t1); TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn1_t1); SendStepReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_BeginMonitoring") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingToleranceRange"), shakingToleranceRange); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sampleInterval"), sampleInterval); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("action"), action); o_stepReturn1_t1 = 0; onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ; err.Clear(); HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action); errLabel_3202FD4CC34D478f892F31C7684340BE : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn1_t1); SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_CreateStarDevice") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); onerror goto errLabel_18D9C44C12554d56B5C39C21EA142EC8 ; err.Clear(); o_stepReturn1_t1 = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber); errLabel_18D9C44C12554d56B5C39C21EA142EC8 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn1_t1); TrcTrace(Translate("HHS create STAR device step return2 (device number):"), deviceNumber); SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, deviceNumber, Translate(""), Translate(""), id); } if (commandFromServer == "HHS_CreateUSBDevice") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ; err.Clear(); o_stepReturn1_t1 = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber); errLabel_98100824AA704d26AB40A6BADEF39F48 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } TrcTrace(Translate("HHS create USB device step return:"), o_stepReturn1_t1); TrcTrace(Translate("HHS create USB device step return2 (device number):"), deviceNumber); SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, deviceNumber, Translate(""), Translate(""), id); } if (commandFromServer == "HHS_EndMonitoring") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ; err.Clear(); o_stepReturn1_t1 = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult); errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } TrcTrace(Translate("HHS End Monitoring step return:"), o_stepReturn1_t1); SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, monitorResult, Translate(""), Translate(""), id); } if (commandFromServer == "HHS_GetFirmwareVersion") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ; err.Clear(); o_stepReturn1_t1 = 0; HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion); errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, firmwareVersion, Translate(""), Translate(""), id); } if (commandFromServer == "HHS_GetSerialNumber") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 ; err.Clear(); o_stepReturn1_t1 = 0; HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber); errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, serialNumber, Translate(""), Translate(""), id); } if (commandFromServer == "HHS_GetShakerParameter") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ; err.Clear(); o_stepReturn1_t1 = 0; HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2_t1, o_stepReturn3_t1); errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, o_stepReturn3_t1, Translate(""), id); } if (commandFromServer == "HHS_GetShakerSpeed") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ; err.Clear(); o_stepReturn1_t1 = 0; o_stepReturn1_t1 = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2_t1); errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, o_stepReturn3_t1, Translate(""), id); } if (commandFromServer == "HHS_GetTempParameter") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ; err.Clear(); o_stepReturn1_t1 = 0; HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2_t1, o_stepReturn3_t1, o_stepReturn1_t14); errLabel_C16E1CF8298042f0A01D1040DC911015 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, o_stepReturn3_t1, Translate(""), id); } if (commandFromServer == "HHS_GetTemperature") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ; err.Clear(); o_stepReturn1_t1 = 0; o_stepReturn1_t1 = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2_t1); errLabel_14A2AAD200434d69970AC483BD08B64F : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, Translate(""), Translate(""), id); } if (commandFromServer == "HHS_GetTemperatureState") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ; err.Clear(); o_stepReturn1_t1 = 0; o_stepReturn1_t1 = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2_t1); errLabel_50485390A50647818ED2D3934FBC87E3 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, o_stepReturn2_t1, Translate(""), Translate(""), id); } if (commandFromServer == "HHS_SendFirmwareCommand") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), command); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("parameter"), parameter); onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ; err.Clear(); o_stepReturn1_t1 = 0; o_stepReturn1_t1 = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter); errLabel_84EE5E4228B140f599748D1271CBB0F3 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_SetPlateLock") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("plateLock"), plateLock); onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ; err.Clear(); o_stepReturn1_t1 = 0; o_stepReturn1_t1 = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock); errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_SetShakerParameter") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingDirection"), shakingDirection); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingAccRamp"), shakingAccRamp); onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ; err.Clear(); o_stepReturn1_t1 = 0; HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp); errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_SetSimulation") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ; err.Clear(); o_stepReturn1_t1 = 0; HSLHamHeaterShaker::SetSimulation(simulate); errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_SetTempParameter") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("startTimeout"), startTimeout); HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("toleranceRange"), toleranceRange); HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("securityRange"), securityRange); onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ; err.Clear(); o_stepReturn1_t1 = 0; HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange); errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_SetUSBTrace") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("trace"), intTrace); onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ; err.Clear(); o_stepReturn1_t1 = 0; HSLHamHeaterShaker::SetUSBTrace(intTrace); errLabel_FE6D15E135D24fd7A06908E89474B650 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_StartAllShaker") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ; err.Clear(); o_stepReturn1_t1 = 0; o_stepReturn1_t1 = HSLHamHeaterShaker::StartAllShaker(shakingSpeed); errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_StartAllShakerTimed") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ; err.Clear(); o_stepReturn1_t1 = 0; o_stepReturn1_t1 = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime); errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_StartShaker") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ; err.Clear(); o_stepReturn1_t1 = 0; o_stepReturn1_t1 = HSLHamHeaterShaker::StartShaker(dispenseMode, shakingSpeed); errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_StartShakerTimed") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ; err.Clear(); o_stepReturn1_t1 = 0; o_stepReturn1_t1 = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); errLabel_29447729262E4e0f8B347F6640716D96 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_StartTempCtrl") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("temperature"), temperature); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("waitForTempReached"), waitForTempReached); onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ; err.Clear(); o_stepReturn1_t1 = 0; o_stepReturn1_t1 = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached); errLabel_764F491C76DA445383E5490AB126ADB4 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_StopAllShaker") { onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ; err.Clear(); o_stepReturn1_t1 = 0; o_stepReturn1_t1 = HSLHamHeaterShaker::StopAllShaker(); errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_StopShaker") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ; err.Clear(); o_stepReturn1_t1 = 0; o_stepReturn1_t1 = HSLHamHeaterShaker::StopAllShaker(); errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_StopTempCtrl") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_B5957B02990845739642D8C604B0B582 ; err.Clear(); o_stepReturn1_t1 = 0; o_stepReturn1_t1 = HSLHamHeaterShaker::StopTempCtrl(deviceNumber); errLabel_B5957B02990845739642D8C604B0B582 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_Terminate") { onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ; err.Clear(); o_stepReturn1_t1 = 0; HSLHamHeaterShaker::Terminate(); errLabel_919FCF7F89804c398972DAFE2605D286 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_WaitForShaker") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ; err.Clear(); o_stepReturn1_t1 = 0; o_stepReturn1_t1 = HSLHamHeaterShaker::WaitForShaker(deviceNumber); errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_WaitForTempCtrl") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ; err.Clear(); o_stepReturn1_t1 = 0; o_stepReturn1_t1 = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber); errLabel_088C7630997A4749A400740DA66CBA0C : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HxFanSet") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("persistant"), persistant); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); JSON_GetFloatValue(Translate("fanSpeed"), fanSpeed); onerror goto errLabel_AA4197CCBE624255B3C96A32C1894C99 ; err.Clear(); o_stepReturn1_t1 = 0; if (simulate == 0) { { HxFan.Simulate("13409ed4_ce79_4ef9_89deb34df8b6dd6a"); } } else { { HxFan.Simulate("be3ae73e_7395_494a_9aed80ff221436dc"); } } { HxFan.SetComPort("ffdf7428_8946_4751_8ec8a7e00f208208"); } if (persistant == 0) { { HxFan.SetContinuousMode("d081b2a8_b3ef_4a06_9d8d4d8c6cd1dd39"); } } else { { HxFan.SetContinuousMode("4914f72b_ecb0_4ab4_b458a744727e1642"); } } if (fanSpeed == 0) { { HxFan.SetFanOff("cef636fc_366e_46f7_9a8e1e25f716fa31"); } } else { { HxFan.SetFanSpeed("f2bbd127_49ad_44c1_aa03eba6244b4cfc"); } } { HxFan.CloseComPort("162f7d41_f11e_4261_8602596bf1b6e888"); } errLabel_AA4197CCBE624255B3C96A32C1894C99 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "CORE96WashEmpty") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("refillAfterEmpty"), refillAfterEmpty); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1WashLiquid"), chamber1WashLiquid); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1LiquidChange"), chamber1LiquidChange); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2WashLiquid"), chamber2WashLiquid); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2LiquidChange"), chamber2LiquidChange); onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ; err.Clear(); o_stepReturn1_t1 = 0; { variable arrRetValues[]; arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3("f4a1383e_67d1_4f19_92f3a5518acddda4"); } errLabel_EE8804FCDC214a06935DD0F4830020DB : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn1_t1 = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn1_t1, Translate(""), Translate(""), Translate(""), id); } } } ================================================ FILE: pyhamilton/star-oem/STAR_OEM.res ================================================ #pragma once global resource Res_Cyt6000_6wp(1, 0xff0000, Translate("Cyt6000_6wp")); global resource Res_CytC24_96wp(1, 0xffff, Translate("CytC24_96wp")); global resource Res_Cytomat24(360, 0xf0caa6, Translate("Cytomat24")); global resource Res_Cyto6002(3, 0xff0000, Translate("Cyto6002")); global resource Res_Cytomat6002(1, 0xff0000, Translate("Cytomat6002")); global resource Res_CeligoHandoff_96(1, 0xff, Translate("CeligoHandoff_96")); global resource Res_ReaderHandoff2_96(1, 0xffff, Translate("ReaderHandoff2_96")); global resource Res_ReaderHandoff_96(1, 0xff00ff, Translate("ReaderHandoff_96")); global resource Res_ML_STAR(1, 0xff0000, Translate("ML_STAR")); global resource Mediatrough(5, 0xff0000, Translate("PLT_CAR_2")); function Res_Cyt6000_6wp_map(variable unit) variable { return(unit); } function Res_Cyt6000_6wp_rmap(variable address) variable { return(address); } function Res_CytC24_96wp_map(variable unit) variable { return(unit); } function Res_CytC24_96wp_rmap(variable address) variable { return(address); } function Res_Cytomat24_map(variable unit) variable { return(unit); } function Res_Cytomat24_rmap(variable address) variable { return(address); } function Res_Cyto6002_map(variable unit) variable { variable ret; if ( unit == 1 ) ret = "Media1"; if ( unit == 2 ) ret = "Media2"; if ( unit == 3 ) ret = "Media3"; return(ret); } function Res_Cyto6002_rmap(variable address) variable { variable ret; if ( address == "Media1" ) ret = 1; if ( address == "Media2" ) ret = 2; if ( address == "Media3" ) ret = 3; return(ret); } function Res_Cytomat6002_map(variable unit) variable { return(unit); } function Res_Cytomat6002_rmap(variable address) variable { return(address); } function Res_CeligoHandoff_96_map(variable unit) variable { return(unit); } function Res_CeligoHandoff_96_rmap(variable address) variable { return(address); } function Res_ReaderHandoff2_96_map(variable unit) variable { return(unit); } function Res_ReaderHandoff2_96_rmap(variable address) variable { return(address); } function Res_ReaderHandoff_96_map(variable unit) variable { return(unit); } function Res_ReaderHandoff_96_rmap(variable address) variable { return(address); } function Res_ML_STAR_map(variable unit) variable { return(unit); } function Res_ML_STAR_rmap(variable address) variable { return(address); } function Mediatrough_map(variable unit) sequence { device dev("","", hslTrue); sequence ret; dev = GetDeviceRef("ML_STAR"); if ( unit == 1 ) ret = dev.Ham_DW_Rgt_L_0001; if ( unit == 2 ) ret = dev.Ham_DW_Rgt_L_0002; if ( unit == 3 ) ret = dev.Ham_DW_Rgt_L_0003; if ( unit == 4 ) ret = dev.Ham_DW_Rgt_L_0004; if ( unit == 5 ) ret = dev.Ham_DW_Rgt_L_0005; return(ret); } function Mediatrough_rmap(sequence address) variable { device dev("","", hslTrue); variable ret; dev = GetDeviceRef("ML_STAR"); if ( address.EqualsToSequence(dev.Ham_DW_Rgt_L_0001) ) ret = 1; if ( address.EqualsToSequence(dev.Ham_DW_Rgt_L_0002) ) ret = 2; if ( address.EqualsToSequence(dev.Ham_DW_Rgt_L_0003) ) ret = 3; if ( address.EqualsToSequence(dev.Ham_DW_Rgt_L_0004) ) ret = 4; if ( address.EqualsToSequence(dev.Ham_DW_Rgt_L_0005) ) ret = 5; return(ret); } namespace ResourceUnit { variable Res_Cyt6000_6wp; variable Res_CytC24_96wp; variable Res_Cytomat24; variable Res_Cyto6002; variable Res_Cytomat6002; variable Res_CeligoHandoff_96; variable Res_ReaderHandoff2_96; variable Res_ReaderHandoff_96; variable Res_ML_STAR; sequence Mediatrough; } // $$author=BenG$$valid=0$$time=2021-03-18 13:12$$checksum=9dfb7551$$length=081$$ ================================================ FILE: pyhamilton/star-oem/STAR_OEM.sub ================================================ function OnAbort( ) void ; function SendTextMessageToServer( variable str ) void ; private function ArrayToString( variable & i_array[], variable & o_str ) void ; private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ; private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ; private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ; private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; private function waitForGUItoContinue( ) variable ; function OnAbort( ) void { HSLHttp::Release(objHttp); } function SendTextMessageToServer( variable str ) void { private object objJSONObject; private variable strJSON; HSLJsonLib::Create(objJSONObject); HSLJsonLib::SetStringProperty(objJSONObject, Translate("command"), Translate("message")); HSLJsonLib::SetStringProperty(objJSONObject, Translate("text"), str); HSLJsonLib::GetJson(objJSONObject, strJSON); HSLJsonLib::Release(objJSONObject); HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); } private function waitForGUItoContinue( ) variable { private variable loopCounter1; private variable serverResponse; private timer timer1; serverResponse = Translate(""); SendTextMessageToServer(Translate("Waiting for server instructions...")); TrcTrace(Translate("Waiting for server instructions...."), Translate("")); { loopCounter1 = 0; while (1 == 1) { loopCounter1 = loopCounter1 + 1; if( 0 == timer1.SetTimer(0.1) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } serverResponse = HSLHttp::HttpGET(objHttp, Translate("http://localhost:3221"), Translate("")); if (serverResponse != "") { break; } if (loopCounter1 == 300) { break; } if( 0 == timer1.SetTimer(0.9) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } } } return (serverResponse); } private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { private variable strJSON; HSLJsonLib::Create(objJSONToServer); HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); HSLJsonLib::GetJson(objJSONToServer, strJSON); HSLJsonLib::Release(objJSONToServer); HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); } private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void { private variable n; private variable loopCounter1; private variable strSinglePosition; private variable arrayOfPositions[]; private variable arraySinglePosition[]; private variable labwareID; private variable positionID; { sequence __temp; o_seq = __temp; } arrayOfPositions.SetSize(0); StrTokenize(strPositions, Translate(";"), arrayOfPositions, 0); n=arrayOfPositions.GetSize(); SeqRemoveAll(o_seq); { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; arraySinglePosition.SetSize(0); strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1); StrTokenize(strSinglePosition, Translate(","), arraySinglePosition, 0); labwareID=arraySinglePosition.GetAt(1-1); positionID=arraySinglePosition.GetAt(2-1); SeqAdd(o_seq, labwareID, positionID); } } o_seq.SetCurrentPosition(1); } private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; posCurrent = -1; posLast = -1; strToAdd = ""; strEdit = strIn; if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); // Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } } private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void { private variable numOfVolumes; private variable numOfChannelsInVariable; private variable n; private variable loopCounter1; private variable arrSize; private variable loopCounter3; private variable strKeyName; o_arrayOfVolumes.SetSize( 0); strKeyName = Translate("volumes"); o_arrayOfVolumes.SetSize(0); arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName); if (arrSize > 0) { { for(loopCounter3 = 0; loopCounter3 < arrSize;) { loopCounter3 = loopCounter3 + 1; HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); o_arrayOfVolumes.AddAsLast(v); Trace("Volume received=", v); } } } else { JSON_GetFloatValue(strKeyName, v); o_arrayOfVolumes.AddAsLast(v); } numOfVolumes=o_arrayOfVolumes.GetSize(); numOfChannelsInVariable = StrGetLength(strChannels); if (numOfVolumes < numOfChannelsInVariable) { n = numOfChannelsInVariable - numOfVolumes; v = o_arrayOfVolumes.ElementAt( numOfVolumes -1); { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; o_arrayOfVolumes.AddAsLast(v); } } } } private function ArrayToString( variable & i_array[], variable & o_str ) void { private variable arraySize; private variable loopCounter1; o_str = 0; arraySize=i_array.GetSize(); o_str = Translate(""); { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; v=i_array.GetAt(loopCounter1-1); o_str = StrConcat2(o_str, v); if (loopCounter1 < arraySize) { o_str = StrConcat2(o_str, Translate(";")); } } } } private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void { private variable retVal; o_KeyFloatValue = 0; Trace("getfloatvalue"); retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); if (retVal > 0) { Trace("error getting float value, try with integer"); retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); Trace("error getting float value, tried with integer"); if (retVal > 0) { Trace("wtf ok i guess its zero"); o_KeyFloatValue = 0; } } } private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { private variable strJSON; private variable t_arrayStepReturns[]; private variable loopCounter1; private variable keyName; private variable varType; HSLJsonLib::Create(objJSONToServer); HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("HHS-return")); HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); t_arrayStepReturns.SetSize(0); t_arrayStepReturns.AddAsLast(stepReturn1); t_arrayStepReturns.AddAsLast(stepReturn2); t_arrayStepReturns.AddAsLast(stepReturn3); t_arrayStepReturns.AddAsLast(stepReturn4); { for(loopCounter1 = 0; loopCounter1 < 4;) { loopCounter1 = loopCounter1 + 1; keyName = StrConcat2(Translate("step-return"), loopCounter1); varType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1)); if (varType == "s") { HSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); } if (varType == "f") { HSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); } if (varType == "i") { HSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); } } } HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); HSLJsonLib::GetJson(objJSONToServer, strJSON); HSLJsonLib::Release(objJSONToServer); HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); } ================================================ FILE: pyhamilton/star-oem/STAR_OEM_toolkit.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 5/14/2023 1:36:46 PM #pragma once #ifndef HSL_RUNTIME namespace STAR_OEM_TOOLKIT { function _InitLibrary() { } function _ExitLibrary() { } function Carrier_Load( device & ML_STAR, variable carrierName, variable barcodeFileName, variable barcodeReadPositions, variable & o_stepReturn_CarrierBC, variable & o_stepReturn_PositionsBCs, variable & o_stepReturn_PositionsBCMasks, variable & o_stepReturn_PositionsIDs, variable & o_CarrierBC, variable & o_PositionsBCs[] ) void { } function Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void { } function Channels_1mL_COREGrippers_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable gripForce, variable gripperToolChannel, variable gripWidth, variable gripHeight, variable widthBefore, variable gripSpeed, variable Zspeed, variable checkPlate, variable & o_stepReturn ) void { } function Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void { } function Channels_1mL_COREGrippers_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable ejectToolWhenFinish, variable Zspeed, variable platePressOnDistance, variable xAcceleration, variable checkPlate, variable & o_stepReturn ) void { } function Channels_1mL_Dispense( device & ML_STAR, sequence & dispenseSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable zMoveAfterStep, variable sideTouch, variable dispPositionAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void { } function Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void { } function Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void { } function Channels_1ml_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable aspirateMode, variable capacitiveLLD, variable pressureLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable maxLLdDifference, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable aspPosAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void { } function Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode ) void { } function Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & ErrorCode ) void { } function Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode ) void { } function Inheco_TEC_StopTemperatureControl( ) void { } function Inheco_TEC_Terminate( variable StopAllDevices ) void { } function Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void { } function MPH96_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable aspirateVolume, variable channelVariable, variable liquidClass, variable sequenceCounting, variable aspirateMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void { } function MPH96_Dispense( device & ML_STAR, sequence & dispenseSequence, variable dispenseVolume, variable liquidClass, variable sequenceCounting, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable zMoveAfterStep, variable sideTouch, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void { } function MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void { } function MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void { } function SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void { } function TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate ) void { } function TiltModule_MoveToPosition( variable Module, variable Position ) void { } function iSWAP_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable gripForce, variable inverseGrip, variable collisionControl, variable gripMode, variable retractDistance, variable liftUpHeight, variable gripWidth, variable tolerance, variable gripHeight, variable widthBefore, variable & o_stepReturn ) void { } function iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void { } function iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void { } function iSWAP_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable collisionControl, variable retractDistance, variable liftUpHeight, variable & o_stepReturn ) void { } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=stefa$$valid=0$$time=2023-05-14 13:36$$checksum=17b1f0e8$$length=082$$ ================================================ FILE: pyhamilton/star-oem/STAR_OEM_toolkit.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "HSLErrLib.hsl" #include "HSLMlStarStepReturnLib.hsl" #include "HSLDevLib.hsl" #include "HSLDevLib.hsl" #include "HSLSeqLib.hsl" #include "HSLStrLib.hsl" #include "HSLTrcLib.hsl" #include "HSL_LiquidClassLib.hsl" #include "HSLInhecoTEC\\HSLInhecoTECLib.hsl" #include "HSLDaisyChainedTiltModule.hsl" #include "HSLDaisyChainedMediaLine.hsl" #include "HSLDaisyChainCommunication.hsl" #include "HSLBarcodeReader.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace STAR_OEM_TOOLKIT { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function Carrier_Load( device & ML_STAR, variable carrierName, variable barcodeFileName, variable barcodeReadPositions, variable & o_stepReturn_CarrierBC, variable & o_stepReturn_PositionsBCs, variable & o_stepReturn_PositionsBCMasks, variable & o_stepReturn_PositionsIDs, variable & o_CarrierBC, variable & o_PositionsBCs[] ) void ; function Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void ; function Channels_1mL_COREGrippers_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable gripForce, variable gripperToolChannel, variable gripWidth, variable gripHeight, variable widthBefore, variable gripSpeed, variable Zspeed, variable checkPlate, variable & o_stepReturn ) void ; function Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void ; function Channels_1mL_COREGrippers_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable ejectToolWhenFinish, variable Zspeed, variable platePressOnDistance, variable xAcceleration, variable checkPlate, variable & o_stepReturn ) void ; function Channels_1mL_Dispense( device & ML_STAR, sequence & dispenseSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable zMoveAfterStep, variable sideTouch, variable dispPositionAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void ; function Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void ; function Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void ; function Channels_1ml_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable aspirateMode, variable capacitiveLLD, variable pressureLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable maxLLdDifference, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable aspPosAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void ; function Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode ) void ; function Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & ErrorCode ) void ; function Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode ) void ; function Inheco_TEC_StopTemperatureControl( ) void ; function Inheco_TEC_Terminate( variable StopAllDevices ) void ; function Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void ; function MPH96_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable aspirateVolume, variable channelVariable, variable liquidClass, variable sequenceCounting, variable aspirateMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void ; function MPH96_Dispense( device & ML_STAR, sequence & dispenseSequence, variable dispenseVolume, variable liquidClass, variable sequenceCounting, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable zMoveAfterStep, variable sideTouch, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void ; function MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ; function MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ; private function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void ; function SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void ; function TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate ) void ; function TiltModule_MoveToPosition( variable Module, variable Position ) void ; function iSWAP_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable gripForce, variable inverseGrip, variable collisionControl, variable gripMode, variable retractDistance, variable liftUpHeight, variable gripWidth, variable tolerance, variable gripHeight, variable widthBefore, variable & o_stepReturn ) void ; function iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void ; function iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void ; function iSWAP_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable collisionControl, variable retractDistance, variable liftUpHeight, variable & o_stepReturn ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" // }} "" } // {{{ 5 "Channels_1ml_Aspirate" "Begin" function Channels_1ml_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable aspirateMode, variable capacitiveLLD, variable pressureLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable maxLLdDifference, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable aspPosAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void { // }} "" private variable numberOfPositions; private variable loopCounter1; private variable getLiquidLevels_return; private variable labwareID; private variable positionID; private variable lbwContainersAreConnected; private variable height; private variable calculatedVolume; // {{ 5 "Channels_1ml_Aspirate" "InitLocals" o_stepReturn = 0; o_liquidLevels_mm.SetSize( 0); o_liquidLevels_mL.SetSize( 0); // }} "" // {{ 90 1 0 "2df7cf67_eefd_4634_a6c81ca2eae358a9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_BE09000023754133A7DFF78508E9EC3D ; err.Clear(); // }} "" // {{ 91 1 0 "8fa2cdd5_d117_4559_be8f242119801835" "ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2("8fa2cdd5_d117_4559_be8f242119801835"); // Aspirate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 92 1 0 "2df7cf67_eefd_4634_a6c81ca2eae358a9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_BE09000023754133A7DFF78508E9EC3D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 93 1 0 "3dd2c518_6d0a_4d7b_a227743c1263caad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 94 1 0 "2df7cf67_eefd_4634_a6c81ca2eae358a9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 95 1 0 "a8ab29ff_eb70_45dc_a90f0ce07c2514bd" "ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}" { variable arrRetValues[]; arrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C("a8ab29ff_eb70_45dc_a90f0ce07c2514bd"); // GetLastLiquidLevel getLiquidLevels_return = arrRetValues[2]; } // }} "" // {{{ 96 1 0 "a37ce602_144b_4a72_98dbfe0c85169266" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn); // }} "" // {{ 97 1 0 "36e6f2a2_6d83_40ba_a0c6ff5caefcef66" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mm.SetSize(0); // }} "" // {{ 98 1 0 "ce4eba9f_c8e1_4c33_a9c369da4ce7c312" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mL.SetSize(0); // }} "" // {{ 99 1 0 "3fcceb5e_fea5_4776_94261cf223fe007f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < numberOfPositions;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 100 1 0 "c20a15a2_4a40_4214_9e2588af18355e98" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 101 1 0 "81636f39_7511_441a_8ab707955e5f2035" "{C1F3C015-47B3-4514-9407-AC2E65043419}" height = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return); // }} "" // {{ 102 1 0 "6b53ca04_1112_466f_89a23ed352e36004" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mm.AddAsLast(height); // }} "" // {{ 103 1 0 "c20a15a2_4a40_4214_9e2588af18355e98" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 104 1 0 "00f031c0_8454_45d1_9b17554c5e6df7bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 105 1 0 "9c1dd6a5_9b06_43fd_9fd194129c2f2a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn); // }} "" // {{{ 106 1 0 "e6930a03_b2a0_4569_bb51b2088cac413c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn); // }} "" // {{ 107 1 0 "06eeeac2_52c3_47cb_b78dde137d763a9a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 108 1 0 "53b884ef_873a_4201_882d0cc9f9d77d20" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwareID > "") { // }} "" // {{ 109 1 0 "a83a594a_307e_45dd_8a2583323efe8f45" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (positionID > "") { // }} "" // {{ 110 1 0 "83df5041_4b3c_406f_95690782a3a21861" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 111 1 0 "9af2cbf6_5306_4a14_827b32cae1054343" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_15E4EC7C03B0458dA8B196D2861D63BC ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 113 1 0 "9af2cbf6_5306_4a14_827b32cae1054343" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_15E4EC7C03B0458dA8B196D2861D63BC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 114 1 0 "9af2cbf6_5306_4a14_827b32cae1054343" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 115 1 0 "83df5041_4b3c_406f_95690782a3a21861" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 116 1 0 "450b7dae_efb3_416b_a62ef5c611c84cdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" calculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected); // }} "" // {{ 117 1 0 "ca4e0527_c377_4a7f_99b7deddb85bdfaf" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mL.AddAsLast(calculatedVolume); // }} "" // {{ 118 1 0 "a83a594a_307e_45dd_8a2583323efe8f45" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 119 1 0 "53b884ef_873a_4201_882d0cc9f9d77d20" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 120 1 0 "00f031c0_8454_45d1_9b17554c5e6df7bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 121 1 0 "3fcceb5e_fea5_4776_94261cf223fe007f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "Channels_1ml_Aspirate" "End" } // }} "" // {{{ 5 "Channels_1mL_TipPickUp" "Begin" function Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_TipPickUp" "InitLocals" o_stepReturn = 0; // }} "" // {{ 84 1 0 "bcca3c8a_7fce_4767_98fb4ac5db164ddd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_55CAD51E8CEB46d5827DF7367C49B35D ; err.Clear(); // }} "" // {{ 85 1 0 "72075d54_9924_47c4_a0154d7e90bb1065" "ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2("72075d54_9924_47c4_a0154d7e90bb1065"); // TipPickUp o_stepReturn = arrRetValues[2]; } // }} "" // {{ 86 1 0 "bcca3c8a_7fce_4767_98fb4ac5db164ddd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_55CAD51E8CEB46d5827DF7367C49B35D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 87 1 0 "7acd54b9_9bda_465f_9b10e23e8987fa26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 88 1 0 "bcca3c8a_7fce_4767_98fb4ac5db164ddd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_TipPickUp" "End" } // }} "" // {{{ 5 "Channels_1mL_Dispense" "Begin" function Channels_1mL_Dispense( device & ML_STAR, sequence & dispenseSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable zMoveAfterStep, variable sideTouch, variable dispPositionAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void { // }} "" private variable getLiquidLevels_return; private variable labwareID; private variable calculatedVolume; private variable height; private variable lbwContainersAreConnected; private variable positionID; private variable loopCounter1; private variable numberOfPositions; // {{ 5 "Channels_1mL_Dispense" "InitLocals" o_stepReturn = 0; o_liquidLevels_mm.SetSize( 0); o_liquidLevels_mL.SetSize( 0); // }} "" // {{ 45 1 0 "c6b9c3da_70bc_4aa8_841a67bf3e6c7859" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 ; err.Clear(); // }} "" // {{ 46 1 0 "ce9beee3_e67e_43c3_bfc64805ab990e08" "ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2("ce9beee3_e67e_43c3_bfc64805ab990e08"); // Dispense o_stepReturn = arrRetValues[2]; } // }} "" // {{ 47 1 0 "c6b9c3da_70bc_4aa8_841a67bf3e6c7859" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 48 1 0 "493334e8_4548_4149_82f058a4b51df641" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 49 1 0 "c6b9c3da_70bc_4aa8_841a67bf3e6c7859" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 50 1 0 "dd677141_96b6_4ccc_a1764ec36dc76b56" "ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}" { variable arrRetValues[]; arrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C("dd677141_96b6_4ccc_a1764ec36dc76b56"); // GetLastLiquidLevel getLiquidLevels_return = arrRetValues[2]; } // }} "" // {{{ 51 1 0 "4fd5463f_c617_4e2b_aa27d0a820bfe2c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn); // }} "" // {{ 52 1 0 "6cafca26_5df8_46c0_98d5a4e2a957163a" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mm.SetSize(0); // }} "" // {{ 53 1 0 "418d84ad_0fba_4ca8_8479b9c6dde94985" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mL.SetSize(0); // }} "" // {{ 54 1 0 "abfcc803_7e38_4c9d_ad7c8412ada32e1d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < numberOfPositions;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 55 1 0 "1cbaa070_2e26_4301_9831c6bc56227fcf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 56 1 0 "c8304522_b160_47ca_9780bfcfd85cf56a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" height = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return); // }} "" // {{ 57 1 0 "5c09e3e1_cd42_4687_940231f4491e28e1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mm.AddAsLast(height); // }} "" // {{ 58 1 0 "1cbaa070_2e26_4301_9831c6bc56227fcf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 59 1 0 "ed6c9c1d_db69_4c65_8a4324433bd43f03" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 60 1 0 "11b5458b_6926_471d_8cb7dde489f8a444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn); // }} "" // {{{ 61 1 0 "51ffe893_b0e5_4383_ac38b9be481a9bee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn); // }} "" // {{ 62 1 0 "b02dd957_c3d3_445f_b0e36cc6cab274af" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 63 1 0 "35647e0a_accb_4503_80bba06d7d2a3271" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwareID > "") { // }} "" // {{ 64 1 0 "693f6d8c_e7fa_419d_b923bb796e5548fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (positionID > "") { // }} "" // {{ 65 1 0 "086a404a_99f9_4215_81fcc4be65c886b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 66 1 0 "1b6d6482_1c62_4a3f_90dfdeaf8695fb92" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_16FB3828C9A34ba7A7078E29FEF48CFF ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 68 1 0 "1b6d6482_1c62_4a3f_90dfdeaf8695fb92" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_16FB3828C9A34ba7A7078E29FEF48CFF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 69 1 0 "1b6d6482_1c62_4a3f_90dfdeaf8695fb92" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 70 1 0 "086a404a_99f9_4215_81fcc4be65c886b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 71 1 0 "36cc23a5_3886_4312_adc5faa6d481a26c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" calculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected); // }} "" // {{ 72 1 0 "9f017e3d_a3f3_4f02_914d74e549a5f3be" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mL.AddAsLast(calculatedVolume); // }} "" // {{ 73 1 0 "693f6d8c_e7fa_419d_b923bb796e5548fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 74 1 0 "35647e0a_accb_4503_80bba06d7d2a3271" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 75 1 0 "ed6c9c1d_db69_4c65_8a4324433bd43f03" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 76 1 0 "abfcc803_7e38_4c9d_ad7c8412ada32e1d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "Channels_1mL_Dispense" "End" } // }} "" // {{{ 5 "Channels_1mL_TipEject" "Begin" function Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_TipEject" "InitLocals" o_stepReturn = 0; // }} "" // {{ 78 1 0 "68086392_46e4_4533_88368c1cf77ceb2d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_D52469807F754a359D17B8D31042C6A6 ; err.Clear(); // }} "" // {{ 79 1 0 "1a33c622_0a9b_473c_a857db709fcadb47" "ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2("1a33c622_0a9b_473c_a857db709fcadb47"); // TipEject o_stepReturn = arrRetValues[2]; } // }} "" // {{ 80 1 0 "68086392_46e4_4533_88368c1cf77ceb2d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_D52469807F754a359D17B8D31042C6A6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 81 1 0 "5284933d_2b98_4255_81ee24c4ca6624c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 82 1 0 "68086392_46e4_4533_88368c1cf77ceb2d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_TipEject" "End" } // }} "" // {{{ 5 "Carrier_Load" "Begin" function Carrier_Load( device & ML_STAR, variable carrierName, variable barcodeFileName, variable barcodeReadPositions, variable & o_stepReturn_CarrierBC, variable & o_stepReturn_PositionsBCs, variable & o_stepReturn_PositionsBCMasks, variable & o_stepReturn_PositionsIDs, variable & o_CarrierBC, variable & o_PositionsBCs[] ) void { // }} "" private variable numberOfPositions; private variable loopCounter1; private variable positionBC; // {{ 5 "Carrier_Load" "InitLocals" o_stepReturn_CarrierBC = 0; o_stepReturn_PositionsBCs = 0; o_stepReturn_PositionsBCMasks = 0; o_stepReturn_PositionsIDs = 0; o_CarrierBC = 0; o_PositionsBCs.SetSize( 0); // }} "" // {{ 1 1 0 "5c909756_0e7e_4404_9569fb2db3dd1158" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_6F7D183CCBCA490f840A10F79D2CB4F6 ; err.Clear(); // }} "" // {{ 2 1 0 "b445eca9_c441_45d7_b53f08a23b7b4b80" "ML_STAR:{54114402-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._54114402_7FA2_11D3_AD85_0004ACB1DCB2("b445eca9_c441_45d7_b53f08a23b7b4b80"); // LoadCarrier o_stepReturn_CarrierBC = arrRetValues[2]; o_stepReturn_PositionsBCs = arrRetValues[3]; o_stepReturn_PositionsBCMasks = arrRetValues[4]; o_stepReturn_PositionsIDs = arrRetValues[5]; } // }} "" // {{ 3 1 0 "5c909756_0e7e_4404_9569fb2db3dd1158" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_6F7D183CCBCA490f840A10F79D2CB4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 4 1 0 "6919be45_bdb7_46b6_a2ad892454bef1c7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_CarrierBC = ErrGetDataAt(3); // }} "" // {{{ 5 1 0 "d814f66e_6beb_47a8_a390d3b5ea839ba9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionsBCs = ErrGetDataAt(4); // }} "" // {{{ 6 1 0 "018a7d4d_f55c_435f_bfce516fc40cd0bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionsBCMasks = ErrGetDataAt(5); // }} "" // {{{ 7 1 0 "28252b10_bd1a_480c_8d84ce9739ca69ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionsIDs = ErrGetDataAt(6); // }} "" // {{ 8 1 0 "5c909756_0e7e_4404_9569fb2db3dd1158" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 9 1 0 "f7c4b6e5_401a_41ab_b920370ccc277a17" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 10 1 0 "91e50e7b_5626_4ab9_ad652563a737dba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_CarrierBC = StepReturn::GetStepData(1, o_stepReturn_CarrierBC); // }} "" // {{ 11 1 0 "f7c4b6e5_401a_41ab_b920370ccc277a17" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 12 1 0 "628b131a_a46c_40b8_b9a61700e818c0e7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 13 1 0 "6135f8c7_3486_4898_88c6e7154326c4df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn_PositionsBCs); // }} "" // {{ 14 1 0 "4cec9992_cb23_4182_894ee448e99b8d48" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_PositionsBCs.SetSize(0); // }} "" // {{ 15 1 0 "0249a50f_bae7_4b5c_86cdc25ab8f43639" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < numberOfPositions;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 16 1 0 "fe82471b_5e85_4598_90b8f672ef3cf690" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionBC = StepReturn::GetStepData(loopCounter1, o_stepReturn_PositionsBCs); // }} "" // {{ 17 1 0 "f0a92a30_0f95_4eb4_bdcf7e21db350ecb" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_PositionsBCs.AddAsLast(positionBC); // }} "" // {{ 18 1 0 "0249a50f_bae7_4b5c_86cdc25ab8f43639" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 19 1 0 "628b131a_a46c_40b8_b9a61700e818c0e7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "Carrier_Load" "End" } // }} "" // {{{ 5 "Carrier_Unload" "Begin" function Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void { // }} "" // {{ 5 "Carrier_Unload" "InitLocals" o_stepReturn = 0; // }} "" // {{ 21 1 0 "c21e08df_939e_41ef_9843a250f42bf239" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_040A2B30BAA84a018D3C82EF2B4AAB10 ; err.Clear(); // }} "" // {{ 22 1 0 "38494363_9fef_41a3_8cb17f349c9fe693" "ML_STAR:{54114400-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._54114400_7FA2_11D3_AD85_0004ACB1DCB2("38494363_9fef_41a3_8cb17f349c9fe693"); // UnloadCarrier o_stepReturn = arrRetValues[2]; } // }} "" // {{ 23 1 0 "c21e08df_939e_41ef_9843a250f42bf239" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_040A2B30BAA84a018D3C82EF2B4AAB10 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 24 1 0 "9aa00b86_389e_473d_bd928bce39259e60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 25 1 0 "c21e08df_939e_41ef_9843a250f42bf239" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Carrier_Unload" "End" } // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Get" "Begin" function Channels_1mL_COREGrippers_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable gripForce, variable gripperToolChannel, variable gripWidth, variable gripHeight, variable widthBefore, variable gripSpeed, variable Zspeed, variable checkPlate, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_COREGrippers_Get" "InitLocals" o_stepReturn = 0; // }} "" // {{ 27 1 0 "b30da27c_bef5_49a0_87d76c8049f31861" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90BF8C56374E469c817DB7B52FEE5D91 ; err.Clear(); // }} "" // {{ 28 1 0 "f1e43893_ada0_4b74_9035cad36fab5d4b" "ML_STAR:{A108628C-BEB7-4CB6-99FD-8523302C700F}" { variable arrRetValues[]; arrRetValues = ML_STAR._A108628C_BEB7_4CB6_99FD_8523302C700F("f1e43893_ada0_4b74_9035cad36fab5d4b"); // ZSwapGetPlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 29 1 0 "b30da27c_bef5_49a0_87d76c8049f31861" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90BF8C56374E469c817DB7B52FEE5D91 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 30 1 0 "5300695f_5b47_4f16_8312711c7c77441e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 31 1 0 "b30da27c_bef5_49a0_87d76c8049f31861" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Get" "End" } // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Place" "Begin" function Channels_1mL_COREGrippers_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable ejectToolWhenFinish, variable Zspeed, variable platePressOnDistance, variable xAcceleration, variable checkPlate, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_COREGrippers_Place" "InitLocals" o_stepReturn = 0; // }} "" // {{ 39 1 0 "b65dcae3_6ff9_4720_a4f35e99346d8975" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8675588E513E44cd8097542899F1DE5C ; err.Clear(); // }} "" // {{ 40 1 0 "3460f3d9_9fdb_4437_9cfa36d33b14f837" "ML_STAR:{9DF3DD4B-3B5E-4750-8989-04458D1B134B}" { variable arrRetValues[]; arrRetValues = ML_STAR._9DF3DD4B_3B5E_4750_8989_04458D1B134B("3460f3d9_9fdb_4437_9cfa36d33b14f837"); // ZSwapPlacePlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 41 1 0 "b65dcae3_6ff9_4720_a4f35e99346d8975" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8675588E513E44cd8097542899F1DE5C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 42 1 0 "1c1fcfa6_73ab_434d_965f40a7cb5827ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 43 1 0 "b65dcae3_6ff9_4720_a4f35e99346d8975" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Place" "End" } // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Move" "Begin" function Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_COREGrippers_Move" "InitLocals" o_stepReturn = 0; // }} "" // {{ 33 1 0 "ced13f47_fded_4378_af08e9af8f325393" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_17F7F9C2DD974e61B13F20ADC6F241A8 ; err.Clear(); // }} "" // {{ 34 1 0 "19ec48d7_0a4a_407e_a09c7d49db7da6d9" "ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}" { variable arrRetValues[]; arrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E("19ec48d7_0a4a_407e_a09c7d49db7da6d9"); // ZSwapMovePlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 35 1 0 "ced13f47_fded_4378_af08e9af8f325393" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_17F7F9C2DD974e61B13F20ADC6F241A8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 36 1 0 "b5f59ed6_6bf0_47b3_b8c295016cfa86e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 37 1 0 "ced13f47_fded_4378_af08e9af8f325393" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Move" "End" } // }} "" // {{{ 5 "iSWAP_Get" "Begin" function iSWAP_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable gripForce, variable inverseGrip, variable collisionControl, variable gripMode, variable retractDistance, variable liftUpHeight, variable gripWidth, variable tolerance, variable gripHeight, variable widthBefore, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Get" "InitLocals" o_stepReturn = 0; // }} "" // {{ 247 1 0 "53a14975_dd73_4964_8c8c9f0730a43a7a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ABA9DAA34A59470495CBB56841D2D81D ; err.Clear(); // }} "" // {{ 248 1 0 "285b84de_748a_400d_a828988b60f4c175" "ML_STAR:{CC819D7A-5DD8-4d13-A921-D74A06460F9E}" { variable arrRetValues[]; arrRetValues = ML_STAR._CC819D7A_5DD8_4d13_A921_D74A06460F9E("285b84de_748a_400d_a828988b60f4c175"); // GetPlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 249 1 0 "53a14975_dd73_4964_8c8c9f0730a43a7a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ABA9DAA34A59470495CBB56841D2D81D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 250 1 0 "298cdb09_c92e_4bb7_a2ecabeafcf27813" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 251 1 0 "53a14975_dd73_4964_8c8c9f0730a43a7a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Get" "End" } // }} "" // {{{ 5 "iSWAP_Place" "Begin" function iSWAP_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable collisionControl, variable retractDistance, variable liftUpHeight, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Place" "InitLocals" o_stepReturn = 0; // }} "" // {{ 265 1 0 "c9f8030c_ef60_485e_9b279138f7f6da52" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_22A12BE8BB2146fbB8824DF66137BF6C ; err.Clear(); // }} "" // {{ 266 1 0 "bcedff0a_3cba_458a_bedb1a743e5dd0bd" "ML_STAR:{E34155E5-7529-4b6b-AE3E-CDDA40789D55}" { variable arrRetValues[]; arrRetValues = ML_STAR._E34155E5_7529_4b6b_AE3E_CDDA40789D55("bcedff0a_3cba_458a_bedb1a743e5dd0bd"); // PutPlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 267 1 0 "c9f8030c_ef60_485e_9b279138f7f6da52" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_22A12BE8BB2146fbB8824DF66137BF6C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 268 1 0 "8aeb393a_337d_4788_b25408ee6915eb1c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 269 1 0 "c9f8030c_ef60_485e_9b279138f7f6da52" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Place" "End" } // }} "" // {{{ 5 "iSWAP_Move" "Begin" function iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Move" "InitLocals" o_stepReturn = 0; // }} "" // {{ 253 1 0 "65ac7a80_b8fd_4f3c_a9e6290ec6a707a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E8A019BC968240cbB4C8B7397BB2F043 ; err.Clear(); // }} "" // {{ 254 1 0 "d98672e5_cec6_49ef_92dfdaa4ec2da4f2" "ML_STAR:{862562D1-B5BB-48ce-B5E4-9E37F8ABB61E}" { variable arrRetValues[]; arrRetValues = ML_STAR._862562D1_B5BB_48ce_B5E4_9E37F8ABB61E("d98672e5_cec6_49ef_92dfdaa4ec2da4f2"); // MovePlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 255 1 0 "65ac7a80_b8fd_4f3c_a9e6290ec6a707a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E8A019BC968240cbB4C8B7397BB2F043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 256 1 0 "b69dc448_e2ef_4c62_b6dd3535487928f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 257 1 0 "65ac7a80_b8fd_4f3c_a9e6290ec6a707a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Move" "End" } // }} "" // {{{ 5 "iSWAP_Park" "Begin" function iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Park" "InitLocals" o_stepReturn = 0; // }} "" // {{ 259 1 0 "fae9e68f_ea34_4f4d_bb6f62c288b1e7b4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_47ED933D92B34914984C5D98423B4C94 ; err.Clear(); // }} "" // {{ 260 1 0 "ef5a4036_5d2f_4aae_86e669ef0581597f" "ML_STAR:{86F668D0-478C-41b6-A78B-8B6B8EAA54A7}" { variable arrRetValues[]; arrRetValues = ML_STAR._86F668D0_478C_41b6_A78B_8B6B8EAA54A7("ef5a4036_5d2f_4aae_86e669ef0581597f"); // ParkISwap o_stepReturn = arrRetValues[2]; } // }} "" // {{ 261 1 0 "fae9e68f_ea34_4f4d_bb6f62c288b1e7b4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_47ED933D92B34914984C5D98423B4C94 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 262 1 0 "974d3165_8b4f_469b_99a59625d159b561" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 263 1 0 "fae9e68f_ea34_4f4d_bb6f62c288b1e7b4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Park" "End" } // }} "" // {{{ 5 "MPH96_TipPickUp" "Begin" function MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void { // }} "" // {{ 5 "MPH96_TipPickUp" "InitLocals" o_stepReturn = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{ 205 1 0 "e2468a9b_8b3f_4977_bbdfbeb62da8eff3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_6640FC09A88C48daB6CB9FB2349BE364 ; err.Clear(); // }} "" // {{ 206 1 0 "b3913cc3_f1bb_4e9f_b3100faec37b186d" "ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}" { variable arrRetValues[]; arrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B("b3913cc3_f1bb_4e9f_b3100faec37b186d"); // Head96TipPickUp o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 207 1 0 "e2468a9b_8b3f_4977_bbdfbeb62da8eff3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_6640FC09A88C48daB6CB9FB2349BE364 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 208 1 0 "1df2d158_801c_4c9f_a8014869fa07863d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 209 1 0 "315f1e4b_8d32_430c_89413b8e4b5b135a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 210 1 0 "e2468a9b_8b3f_4977_bbdfbeb62da8eff3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPH96_TipPickUp" "End" } // }} "" // {{{ 5 "MPH96_Aspirate" "Begin" function MPH96_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable aspirateVolume, variable channelVariable, variable liquidClass, variable sequenceCounting, variable aspirateMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void { // }} "" private variable labwareID; private variable lbwContainersAreConnected; private variable positionID; // {{ 5 "MPH96_Aspirate" "InitLocals" o_stepReturn = 0; o_liquidLevel_mm = 0; o_liquidLevel_mL = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{{ 154 1 0 "0fc30c09_ddb7_4665_8739dbd8f0102fdc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = SeqGetLabwareId(aspirateSequence); // }} "" // {{{ 155 1 0 "14c1eb4e_ced0_45f2_a343bc0f3c668407" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = SeqGetPositionId(aspirateSequence); // }} "" // {{ 156 1 0 "7afd0547_a78c_4fb0_b040d35803532eb4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_00A0A59BF99B42a686A202BE72502D6C ; err.Clear(); // }} "" // {{ 157 1 0 "8d6fdce5_327c_491b_aebee60a715b6c6e" "ML_STAR:{827392A0-B7E8-4472-9ED3-B45B71B5D27A}" { variable arrRetValues[]; arrRetValues = ML_STAR._827392A0_B7E8_4472_9ED3_B45B71B5D27A("8d6fdce5_327c_491b_aebee60a715b6c6e"); // Head96Aspirate o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 158 1 0 "7afd0547_a78c_4fb0_b040d35803532eb4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_00A0A59BF99B42a686A202BE72502D6C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 159 1 0 "6c23fd1d_be57_4011_8fea4ea6459aeecf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 160 1 0 "ee52ace2_98fe_454f_841ae740168bebcd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 161 1 0 "7afd0547_a78c_4fb0_b040d35803532eb4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 162 1 0 "4efb91d8_0e10_400c_a4820b22b5ba22d5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 163 1 0 "8bf3cb1f_0b71_493d_bf300c05413fc543" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" MPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm); // }} "" // {{ 164 1 0 "4efb91d8_0e10_400c_a4820b22b5ba22d5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 165 1 0 "b82d3cc9_9e79_4547_800ffcbdb5ef0aa7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 166 1 0 "091a5303_35ee_4d82_a0b32d9ede26439d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 167 1 0 "64d5c65b_9fa5_44de_a21e4ee08c78310f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 168 1 0 "99cc0c51_635c_4f24_ac7aec94869f04a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_06FF5C7D72E044ac924A0658E57AC92A ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 170 1 0 "99cc0c51_635c_4f24_ac7aec94869f04a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_06FF5C7D72E044ac924A0658E57AC92A : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 171 1 0 "99cc0c51_635c_4f24_ac7aec94869f04a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 172 1 0 "64d5c65b_9fa5_44de_a21e4ee08c78310f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 173 1 0 "0b5e4cdb_1c92_4d18_a0bed95d854a0d94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected); // }} "" // {{ 174 1 0 "b82d3cc9_9e79_4547_800ffcbdb5ef0aa7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "MPH96_Aspirate" "End" } // }} "" // {{{ 5 "MPH_GetLastLLD_Level" "Begin" private function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void { // }} "" private variable flt_X_Coord; private variable flt_Y_Coord; private variable flt_Z_Coord; private variable flt_SubmergeDepthCORE; private variable str_FW_Digits; private variable flt_TipLength; private variable int_LLDheight; private variable flt_TipLength_corrected; private variable int_FW_Digits; private variable flt_StepSize; private variable int_Steps_mm; private variable str_ReturnValueH0RH; private variable flt_angle; private variable tipType; // {{ 5 "MPH_GetLastLLD_Level" "InitLocals" o_flt_LastLiquidLevel = 0; // }} "" // {{ 212 1 0 "f7c5b642_e642_4bd2_b342e8a2202f94b2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_SubmergeDepthCORE = 8.0; // }} "" // {{ 213 1 0 "b15f54b8_160d_4d5a_9470d19afc4b0155" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 214 1 0 "de2e1cfc_3be8_4752_b20a1221fc802c26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::Initialize(ML_STAR, 1); // }} "" // {{{ 215 1 0 "bf16ce46_b00c_46c3_93046a4e730e9868" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SelectLiquidClass(i_liquidClass); // }} "" // {{{ 216 1 0 "7d094f81_a8b9_4eb1_90a841201d1a4cca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" tipType = LiquidClassLib::GetLiquidClassParameter(LiquidClassLib::LIQUIDCLASS_PARAMS::TipType); // }} "" // {{ 217 1 0 "b15f54b8_160d_4d5a_9470d19afc4b0155" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 218 1 0 "a97af8ec_9af3_46fa_a150d41888290f6f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_TipLength_corrected = flt_TipLength - flt_SubmergeDepthCORE; // }} "" // {{{ 219 1 0 "8fc17eb7_3fbb_4a8e_b537d43144e8598c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePosition(ML_STAR, i_labwareID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_angle); // }} "" // {{ 220 1 0 "31649b83_68f7_49a0_974f7efa6232c07d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ReturnValueH0RH = Translate(""); // }} "" // {{ 221 1 0 "72f92b7c_2537_40be_bc5fe85726a39b19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_StepSize = 0.005; // }} "" // {{ 222 1 0 "b5a3458f_9eea_4501_a6aa86c0556ad194" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("b5a3458f_9eea_4501_a6aa86c0556ad194"); // FirmwareCommand str_ReturnValueH0RH = arrRetValues[3]; } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 223 1 0 "73c2ff19_ed4c_4c45_a9c5b56a6e84b044" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("str_ReturnValueH0RH: "), str_ReturnValueH0RH); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 224 1 0 "f6fe1f5f_39ae_4b71_83f733a5cf490b66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FW_Digits = StrRight(str_ReturnValueH0RH, 6); // }} "" // {{{ 225 1 0 "9883fcc4_3dcd_4199_816696b3668f733f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_FW_Digits = StrIVal(str_FW_Digits); // }} "" // {{ 226 1 0 "b427e920_22bd_492e_8c900ff3a99a649c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Steps_mm = int_FW_Digits * flt_StepSize; // }} "" // {{ 227 1 0 "bbe179b4_5c85_4ece_ba3738d8817cdfc5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_LLDheight = int_Steps_mm - flt_Z_Coord; // }} "" // {{ 228 1 0 "502175ce_b71d_406e_b155fea6f39d0fd0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_LastLiquidLevel = int_LLDheight - flt_TipLength_corrected; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 229 1 0 "3bcc328b_1906_4590_94e64b4e80f03d3a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("o_flt_LastLiquidLevel: "), o_flt_LastLiquidLevel); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 5 "MPH_GetLastLLD_Level" "End" } // }} "" // {{{ 5 "MPH96_Dispense" "Begin" function MPH96_Dispense( device & ML_STAR, sequence & dispenseSequence, variable dispenseVolume, variable liquidClass, variable sequenceCounting, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable zMoveAfterStep, variable sideTouch, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void { // }} "" private variable labwareID; private variable lbwContainersAreConnected; private variable positionID; // {{ 5 "MPH96_Dispense" "InitLocals" o_stepReturn = 0; o_liquidLevel_mm = 0; o_liquidLevel_mL = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{{ 176 1 0 "031805d0_c2b0_4435_9b8f6fbb101dc62d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = SeqGetLabwareId(dispenseSequence); // }} "" // {{{ 177 1 0 "c249d641_ef0f_4423_bc2d48f01c114665" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = SeqGetPositionId(dispenseSequence); // }} "" // {{ 178 1 0 "f3fb329d_c76d_48c9_ac660dbbc90096f1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 ; err.Clear(); // }} "" // {{ 179 1 0 "438b3cb3_7f3e_4d38_b993becaf0c2d66b" "ML_STAR:{A48573A5-62ED-4951-9EF9-03207EFE34FB}" { variable arrRetValues[]; arrRetValues = ML_STAR._A48573A5_62ED_4951_9EF9_03207EFE34FB("438b3cb3_7f3e_4d38_b993becaf0c2d66b"); // Head96Dispense o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 180 1 0 "f3fb329d_c76d_48c9_ac660dbbc90096f1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 181 1 0 "714a2035_eb8c_4e86_85aca8d69086952e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 182 1 0 "bc1347df_5f38_41ae_be3c240228e5944c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 183 1 0 "f3fb329d_c76d_48c9_ac660dbbc90096f1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 184 1 0 "a141b7db_3cc2_4626_998f5229ca08b364" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 185 1 0 "911c2699_0e84_425f_9e9384c7b6c75351" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" MPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm); // }} "" // {{ 186 1 0 "a141b7db_3cc2_4626_998f5229ca08b364" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 187 1 0 "c4c1eadb_9d04_43d3_871c72d3479cad7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 188 1 0 "17abaeba_05ec_4e18_a3843b54b3bdf6f3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 189 1 0 "1bdc4019_272b_4e0e_8f4935bcd3a782ec" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 190 1 0 "751de83b_d4e0_4859_8b3da1eeaf94bd85" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8D5E8778E7DF4b8f80958A5C14C29872 ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 192 1 0 "751de83b_d4e0_4859_8b3da1eeaf94bd85" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8D5E8778E7DF4b8f80958A5C14C29872 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 193 1 0 "751de83b_d4e0_4859_8b3da1eeaf94bd85" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 194 1 0 "1bdc4019_272b_4e0e_8f4935bcd3a782ec" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 195 1 0 "c826eb96_3570_4883_a8298bc890043c3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected); // }} "" // {{ 196 1 0 "c4c1eadb_9d04_43d3_871c72d3479cad7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "MPH96_Dispense" "End" } // }} "" // {{{ 5 "MPH96_TipEject" "Begin" function MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void { // }} "" // {{ 5 "MPH96_TipEject" "InitLocals" o_stepReturn = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{ 198 1 0 "96bd335e_14f8_47e2_bc54b638fde21919" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C33A74C211664afd9B08BCD3DD5339FC ; err.Clear(); // }} "" // {{ 199 1 0 "a8f4b6bb_e103_433a_b1360393d37e32b3" "ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}" { variable arrRetValues[]; arrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C("a8f4b6bb_e103_433a_b1360393d37e32b3"); // Head96TipEject o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 200 1 0 "96bd335e_14f8_47e2_bc54b638fde21919" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C33A74C211664afd9B08BCD3DD5339FC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 201 1 0 "71d45982_a084_4aaa_a34c6558755061d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 202 1 0 "9e9d44f5_b614_4fb4_b6d39860c83d879d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 203 1 0 "96bd335e_14f8_47e2_bc54b638fde21919" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPH96_TipEject" "End" } // }} "" // {{{ 5 "Initialize" "Begin" function Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void { // }} "" // {{ 5 "Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 148 1 0 "9967a99d_7b6f_4194_8ba1f49c05de08c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ED69C1C4A5D948beA7B65C38D8B5B80A ; err.Clear(); // }} "" // {{ 149 1 0 "dc7838fc_172e_45b4_89099f664d6d452e" "ML_STAR:{1C0C0CB0-7C87-11D3-AD83-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1C0C0CB0_7C87_11D3_AD83_0004ACB1DCB2("dc7838fc_172e_45b4_89099f664d6d452e"); // Initialize o_stepReturn = arrRetValues[2]; } // }} "" // {{ 150 1 0 "9967a99d_7b6f_4194_8ba1f49c05de08c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ED69C1C4A5D948beA7B65C38D8B5B80A : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 151 1 0 "6bd66132_cab8_473c_8437aa033b84ff48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 152 1 0 "9967a99d_7b6f_4194_8ba1f49c05de08c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Initialize" "End" } // }} "" // {{{ 5 "SendFirmwareCommand" "Begin" function SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void { // }} "" // {{ 5 "SendFirmwareCommand" "InitLocals" o_stepReturn = 0; // }} "" // {{ 231 1 0 "641377bb_9666_411c_91a21acd4e345a9d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_1F6E37B4AFEE4395A984238DCEB0E91C ; err.Clear(); // }} "" // {{ 232 1 0 "c616f5ea_baed_4075_a75531e82e045e2b" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("c616f5ea_baed_4075_a75531e82e045e2b"); // FirmwareCommand o_stepReturn = arrRetValues[3]; } // }} "" // {{ 233 1 0 "641377bb_9666_411c_91a21acd4e345a9d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_1F6E37B4AFEE4395A984238DCEB0E91C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 234 1 0 "305af0e7_7bac_4678_a0d1c7c3dd9900d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 235 1 0 "641377bb_9666_411c_91a21acd4e345a9d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "SendFirmwareCommand" "End" } // }} "" // {{{ 5 "TiltModule_Initialize" "Begin" function TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate ) void { // }} "" // {{ 5 "TiltModule_Initialize" "InitLocals" // }} "" // {{ 237 1 0 "bd83dcea_1e69_4096_ada97e91985fe887" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F7A233121EBD413184BEE5D2CD3510CA ; err.Clear(); // }} "" // {{{ 238 1 0 "7484a06f_e352_4e50_ba49b2ae66740aa9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLDaisyChainedTiltModule::Initialize(Module, Comport, TraceLevel, Simulate); // }} "" // {{ 239 1 0 "bd83dcea_1e69_4096_ada97e91985fe887" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F7A233121EBD413184BEE5D2CD3510CA : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 240 1 0 "bd83dcea_1e69_4096_ada97e91985fe887" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "TiltModule_Initialize" "End" } // }} "" // {{{ 5 "TiltModule_MoveToPosition" "Begin" function TiltModule_MoveToPosition( variable Module, variable Position ) void { // }} "" // {{ 5 "TiltModule_MoveToPosition" "InitLocals" // }} "" // {{ 242 1 0 "5c89ffd7_d851_4fe5_9e0f7c9c037a5420" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0D6035D57CBB40aa9CA31080E8506D64 ; err.Clear(); // }} "" // {{{ 243 1 0 "dc47af4b_38a7_4669_a34ededd16ef3599" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLDaisyChainedTiltModule::MoveToPosition(Module, Position); // }} "" // {{ 244 1 0 "5c89ffd7_d851_4fe5_9e0f7c9c037a5420" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0D6035D57CBB40aa9CA31080E8506D64 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 245 1 0 "5c89ffd7_d851_4fe5_9e0f7c9c037a5420" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "TiltModule_MoveToPosition" "End" } // }} "" // {{{ 5 "Inheco_TEC_Initialize" "Begin" function Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode ) void { // }} "" private variable ErrorCode; // {{ 5 "Inheco_TEC_Initialize" "InitLocals" // }} "" // {{ 123 1 0 "14151342_6460_4d8a_9e099b7fce1df805" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_CEBFA2C556164b82A4F638EE8CE505F6 ; err.Clear(); // }} "" // {{{ 124 1 0 "4a56221f_279f_41c2_8aa7d01ca0775b48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLInhecoTECLib::Initialize(ControllerID, SimulationMode, ErrorCode); // }} "" // {{ 125 1 0 "14151342_6460_4d8a_9e099b7fce1df805" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_CEBFA2C556164b82A4F638EE8CE505F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 126 1 0 "14151342_6460_4d8a_9e099b7fce1df805" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_Initialize" "End" } // }} "" // {{{ 5 "Inheco_TEC_StartTemperatureControl" "Begin" function Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode ) void { // }} "" // {{ 5 "Inheco_TEC_StartTemperatureControl" "InitLocals" ErrorCode = 0; // }} "" // {{ 133 1 0 "e149ca88_5fb5_4a10_a704093dac2f46c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EF764FBDA7474071A7B517987B9B2FC2 ; err.Clear(); // }} "" // {{{ 134 1 0 "165f1e92_bd94_4781_b9c2d2fecfc302dd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLInhecoTECLib::StartTemperatureControl(ControllerID, DeviceID, ErrorCode); // }} "" // {{ 135 1 0 "e149ca88_5fb5_4a10_a704093dac2f46c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EF764FBDA7474071A7B517987B9B2FC2 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 136 1 0 "e149ca88_5fb5_4a10_a704093dac2f46c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_StartTemperatureControl" "End" } // }} "" // {{{ 5 "Inheco_TEC_SetTarget" "Begin" function Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & ErrorCode ) void { // }} "" // {{ 5 "Inheco_TEC_SetTarget" "InitLocals" ErrorCode = 0; // }} "" // {{ 128 1 0 "2e50215a_6b40_4fa9_93fcfc303b6d44ac" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_56BA970A477C47bf90C6C3373DEB98B0 ; err.Clear(); // }} "" // {{{ 129 1 0 "68d33a63_3452_4fdb_88a49f4ca5677072" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLInhecoTECLib::SetTargetTemperature(ControllerID, DeviceID, TargetTemperature, ErrorCode); // }} "" // {{ 130 1 0 "2e50215a_6b40_4fa9_93fcfc303b6d44ac" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_56BA970A477C47bf90C6C3373DEB98B0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 131 1 0 "2e50215a_6b40_4fa9_93fcfc303b6d44ac" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_SetTarget" "End" } // }} "" // {{{ 5 "Inheco_TEC_StopTemperatureControl" "Begin" function Inheco_TEC_StopTemperatureControl( ) void { // }} "" private variable ErrorCode; private variable ControllerID; private variable DeviceID; // {{ 5 "Inheco_TEC_StopTemperatureControl" "InitLocals" // }} "" // {{ 138 1 0 "c29a0f01_2391_485c_a95211df9c9b7272" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E3152496BDA74f1681473505DC2B3A3E ; err.Clear(); // }} "" // {{{ 139 1 0 "93014b15_0695_49c7_a3bc4a788bf82474" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLInhecoTECLib::StopTemperatureControl(ControllerID, DeviceID, ErrorCode); // }} "" // {{ 140 1 0 "c29a0f01_2391_485c_a95211df9c9b7272" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E3152496BDA74f1681473505DC2B3A3E : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 141 1 0 "c29a0f01_2391_485c_a95211df9c9b7272" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_StopTemperatureControl" "End" } // }} "" // {{{ 5 "Inheco_TEC_Terminate" "Begin" function Inheco_TEC_Terminate( variable StopAllDevices ) void { // }} "" // {{ 5 "Inheco_TEC_Terminate" "InitLocals" // }} "" // {{ 143 1 0 "6f9054f4_5e87_4236_a046d345d0972e98" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_202B4C8C5EE24700B8BB7F3204BFB6ED ; err.Clear(); // }} "" // {{{ 144 1 0 "863ac80a_6720_4389_994aaee58cd89479" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLInhecoTECLib::Terminate(StopAllDevices); // }} "" // {{ 145 1 0 "6f9054f4_5e87_4236_a046d345d0972e98" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_202B4C8C5EE24700B8BB7F3204BFB6ED : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 146 1 0 "6f9054f4_5e87_4236_a046d345d0972e98" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_Terminate" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=stefa$$valid=0$$time=2023-05-14 13:36$$checksum=56a6d91d$$length=084$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/Hamilton pH Module Controller.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 2/27/2023 12:46:19 PM #pragma once #ifndef HSL_RUNTIME namespace HAMILTON_PH_MODULE_CONTROLLER { function _InitLibrary() { } function _ExitLibrary() { } function Calibrate( device & ML_STAR, variable i_intModuleID, sequence i_seqModule, sequence i_seqCalibrationPosition_1, sequence i_seqCalibrationPosition_2, sequence i_seqReferencePosition, variable i_intCalibrationTime, variable i_intMeasureTime, variable i_fltMeasureHeight, variable i_fltpH_Value_Calibration_Solution_1, variable i_fltpH_Value_Calibration_Solution_2, variable i_fltpH_Value_Reference_Solution, variable i_fltTemperature_Calibration_Solution_1, variable i_fltTemperature_Calibration_Solution_2, variable i_fltTemperature_Reference_Solution, variable i_blnCalibrateDynamically, variable & o_arrintCalibration_Slope_Ratios[], variable & o_arrfltpH_Values_Reference_Solution[] ) variable { return (0); } function Dry( device & ML_STAR, variable i_intModuleID ) variable { return (0); } function EnableExtendedLog( ) void { } function Initialize( device & ML_STAR, variable i_intPortNumber, variable & o_fltDefaultTemperature, variable & o_intModuleID ) variable { return (0); } function LastUsedConfigurationLoad( variable & o_intBluetoothPort, variable & o_intNumberOfWashCycles, variable & o_intNumberOfDryCycles, variable & o_intDryTime ) void { } function LastUsedConfigurationSave( variable i_intBluetoothPort, variable i_intNumberOfWashCycles, variable i_intNumberOfDryCycles, variable i_intDryTime ) void { } function Measure( device & ML_STAR, variable i_intModuleID, sequence i_seqMeasurement, variable i_fltMeasureHeight, variable i_strProbePattern, variable i_intMeasureTime, variable i_fltTemperature, variable & o_arrfltpHValues[] ) variable { return (0); } function MeasureCycle( device & ML_STAR, variable i_intModuleID, sequence i_seqMeasurement, variable i_fltMeasureHeight, variable i_strProbePattern, variable i_intMeasureTime, variable i_fltTemperature, variable & o_arrfltpHValues[] ) variable { return (0); } function ParkModule( device & ML_STAR, variable i_intModuleID, sequence i_seqModule ) variable { return (0); } function PickupModule( device & ML_STAR, variable i_intModuleID, sequence & i_seqModule ) variable { return (0); } function RequestBatteryData( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intChargeCounter, variable & o_intActualCharge ) variable { return (0); } function SetParameter( device & ML_STAR, sequence i_seqGripperPosition, sequence i_seqWashPosition, sequence i_seqDryPosition, variable i_intTransportChannel, variable i_intWashCycles, variable i_intDryCycles, variable i_intDryWaitTime ) variable { return (0); } function Terminate( variable i_intModuleID ) variable { return (0); } function Wash( device & ML_STAR, variable i_intModuleID ) variable { return (0); } function _Measure( device & ML_STAR, variable i_intModuleID, sequence i_seqMeasurement, variable i_blnShiftPositionByProbe, variable i_fltMeasureHeight, variable i_strProbePattern, variable i_intMeasureTime, variable i_fltTemperature, variable i_strCallingFunctionName, variable & o_arrfltpHValues[] ) variable { return (0); } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=stefa$$valid=0$$time=2023-02-27 12:46$$checksum=72151b8c$$length=082$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/Hamilton pH Module Controller.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "HSLStrLib.hsl" #include "HSLDevLib.hsl" #include "HSLTimLib.hsl" #include "HSLLabwrAccess\\HSLLabwrAccess.hsl" #include "HSLSeqLib.hsl" #include "Hamilton DriverTools\\Hamilton DriverTools.hsl" #include "HSLFilLib.hsl" #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" #include "Hamilton PH Module\\Hamilton pH Module.hsl" #include "Hamilton PH Module\\Hamilton pH Station Washer Module.hsl" #include "ASWStandard\\ASWGlobal\\ASWGlobal.hsl" #include "Hamilton PH Module\\Hamilton pH Station Dryer Module.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" #include "HSLPTLLib.hsl" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace HAMILTON_PH_MODULE_CONTROLLER { // }} "" sequence _seqGripper; variable _intTransportChannel; sequence _seqWasher; variable _intWasherModuleID; variable _intDryerModuleID; variable _fltOpenWidth; variable _fltGripHeight; variable _fltGripWidth; variable _intWashCycles; sequence _seqDryer; variable _strPathMeasurement; variable _strPathCalibration; variable _intDryCycles; variable _intDryWaitTime; variable _fltProbeOffsetY; variable _strProbePattern; variable _intTraceLevel(2); sequence _seqModule; variable _strSerialNumber; variable _strLibraryName("Hamilton pH Module Controller"); /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function Calibrate( device & ML_STAR, variable i_intModuleID, sequence i_seqModule, sequence i_seqCalibrationPosition_1, sequence i_seqCalibrationPosition_2, sequence i_seqReferencePosition, variable i_intCalibrationTime, variable i_intMeasureTime, variable i_fltMeasureHeight, variable i_fltpH_Value_Calibration_Solution_1, variable i_fltpH_Value_Calibration_Solution_2, variable i_fltpH_Value_Reference_Solution, variable i_fltTemperature_Calibration_Solution_1, variable i_fltTemperature_Calibration_Solution_2, variable i_fltTemperature_Reference_Solution, variable i_blnCalibrateDynamically, variable & o_arrintCalibration_Slope_Ratios[], variable & o_arrfltpH_Values_Reference_Solution[] ) variable ; function Dry( device & ML_STAR, variable i_intModuleID ) variable ; function EnableExtendedLog( ) void ; function Initialize( device & ML_STAR, variable i_intPortNumber, variable & o_fltDefaultTemperature, variable & o_intModuleID ) variable ; function LastUsedConfigurationLoad( variable & o_intBluetoothPort, variable & o_intNumberOfWashCycles, variable & o_intNumberOfDryCycles, variable & o_intDryTime ) void ; function LastUsedConfigurationSave( variable i_intBluetoothPort, variable i_intNumberOfWashCycles, variable i_intNumberOfDryCycles, variable i_intDryTime ) void ; function Measure( device & ML_STAR, variable i_intModuleID, sequence i_seqMeasurement, variable i_fltMeasureHeight, variable i_strProbePattern, variable i_intMeasureTime, variable i_fltTemperature, variable & o_arrfltpHValues[] ) variable ; function MeasureCycle( device & ML_STAR, variable i_intModuleID, sequence i_seqMeasurement, variable i_fltMeasureHeight, variable i_strProbePattern, variable i_intMeasureTime, variable i_fltTemperature, variable & o_arrfltpHValues[] ) variable ; function ParkModule( device & ML_STAR, variable i_intModuleID, sequence i_seqModule ) variable ; function PickupModule( device & ML_STAR, variable i_intModuleID, sequence & i_seqModule ) variable ; function RequestBatteryData( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intChargeCounter, variable & o_intActualCharge ) variable ; function SetParameter( device & ML_STAR, sequence i_seqGripperPosition, sequence i_seqWashPosition, sequence i_seqDryPosition, variable i_intTransportChannel, variable i_intWashCycles, variable i_intDryCycles, variable i_intDryWaitTime ) variable ; function Terminate( variable i_intModuleID ) variable ; function Wash( device & ML_STAR, variable i_intModuleID ) variable ; private function _CreateModulePosition( device & ML_STAR, sequence i_seqTargetPosition, variable i_fltDistanceFromBottom, variable i_blnShiftPositionByProbe, variable i_strPositionName, variable i_strCallingFunctionName, sequence & o_seqModulePosition ) variable ; private function _Dry( device & ML_STAR ) variable ; private function _LoadConfiguration( variable i_intCOMPortModule, variable & o_blnSimulationModeModule, variable & o_strModuleNameWasher, variable & o_blnSimulationModeWasher, variable & o_strModuleNameDryer, variable & o_blnSimulationModeDryer, variable & o_fltDefaultTemperature, variable & o_strProbePattern, variable & o_strPathCalibration, variable & o_strPathMeasurement, variable & o_strFilename ) variable ; function _Measure( device & ML_STAR, variable i_intModuleID, sequence i_seqMeasurement, variable i_blnShiftPositionByProbe, variable i_fltMeasureHeight, variable i_strProbePattern, variable i_intMeasureTime, variable i_fltTemperature, variable i_strCallingFunctionName, variable & o_arrfltpHValues[] ) variable ; private function _RequestBatteryData( variable i_intModuleID, variable i_strCallingFunctionName, variable i_intLowerLimit, variable & o_strReplacementDate, variable & o_intChargeLevel, variable & o_intChargeCounter ) variable ; private function _SuccessOrMoveBack( device & ML_STAR, variable i_blnSuccess, variable i_intModuleID, variable i_strFunctionName ) variable ; private function _Wash( device & ML_STAR ) variable ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" PTL::SetWashingStateDefault("RinseTime1", 5); PTL::SetWashingStateDefault("SoakTime1", 5); PTL::SetWashingStateDefault("FlowRate1", 11); PTL::SetWashingStateDefault("RinseTime2", 0); PTL::SetWashingStateDefault("SoakTime2", 0); PTL::SetWashingStateDefault("FlowRate2", 11); PTL::SetWashingStateDefault("DrainingTime", 10); PTL::SetWashingStateDefault("StartWashLiquid", 0); PTL::SetLoadingStateDefault("RecoveryOptionContinue", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionExclude", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionDefault", 0); PTL::SetLoadingStateDefault("KitLotCheckEnabled", hslFalse); // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" // }} "" } // {{{ 5 "MeasureCycle" "Begin" function MeasureCycle( device & ML_STAR, variable i_intModuleID, sequence i_seqMeasurement, variable i_fltMeasureHeight, variable i_strProbePattern, variable i_intMeasureTime, variable i_fltTemperature, variable & o_arrfltpHValues[] ) variable { // }} "" private variable strTrace; private variable strFunctionName; private variable blnSuccess; private variable blnMeasureSuccess; private variable strError; // {{ 5 "MeasureCycle" "InitLocals" o_arrfltpHValues.SetSize( 0); // }} "" Hamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName); // {{ 384 1 0 "302af67d_7018_417a_a330af0e2006c9e5" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 385 1 0 "9b05e863_98a8_4dc1_928690a00c3d3d12" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_DriverTools::CheckFloatRange(i_fltMeasureHeight, "i_fltMeasureHeight", 0.0, 100.0, strFunctionName, _strLibraryName); // }} "" // {{ 386 1 0 "dabebefb_f458_4ab8_979ed510edaef95f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 387 1 0 "c740695c_dabc_473a_abd78afc70446b66" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 388 1 0 "dabebefb_f458_4ab8_979ed510edaef95f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 389 1 0 "90976b96_68f8_4963_9efe618672294eff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intMeasureTime, "i_intMeasureTime", 1, 600, strFunctionName, _strLibraryName); // }} "" // {{ 390 1 0 "c16cad4c_ce54_4322_a13f0958c2ae440f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 391 1 0 "f076cecf_ed71_46b1_a32e14517cace1b4" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 392 1 0 "c16cad4c_ce54_4322_a13f0958c2ae440f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 393 1 0 "e12cddc3_b85e_41b4_8eadc6ff005c430b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 394 1 0 "43d28d43_8d87_47ec_974a2e514d5b6bbc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat4("i_fltMeasureHeight = ", i_fltMeasureHeight, ", i_strProbePattern = ", i_strProbePattern); // }} "" // {{{ 395 1 0 "f65b730e_242a_4a43_a6c3455570e48ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{ 396 1 0 "dfc1548c_bb43_41fe_88d2ef0a9ca151bc" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrfltpHValues.SetSize(4); // }} "" // {{ 397 1 0 "15415db8_e316_4e31_adf545d6524f76f2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 398 1 0 "8537985b_2ebf_4938_acb35905fe20fae3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnMeasureSuccess = _Measure(ML_STAR, i_intModuleID, i_seqMeasurement, ASWGLOBAL::BOOL::TRUE, i_fltMeasureHeight, i_strProbePattern, i_intMeasureTime, i_fltTemperature, strFunctionName, o_arrfltpHValues); // }} "" // {{{ 399 1 0 "637af85a_1c75_423c_9975652549853190" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _Wash(ML_STAR); // }} "" // {{{ 400 1 0 "ba639678_28e9_4495_9f695143d71ce7b7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName); // }} "" // {{ 401 1 0 "55c7056f_25f2_4b3a_8976af5b2600adaa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 402 1 0 "efc7e54f_0822_4742_980ca55dbd22686a" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 403 1 0 "55c7056f_25f2_4b3a_8976af5b2600adaa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 404 1 0 "e6103ee5_d4a0_4ee0_b5d95511ee6bfac6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _Dry(ML_STAR); // }} "" // {{{ 405 1 0 "c82d18cc_670f_42a1_ae89a6e9736f911b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName); // }} "" // {{ 406 1 0 "14fb8616_772a_4a65_8bc67d42e5d51397" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 407 1 0 "53ff9b76_7097_4c42_bcbcb9c89d444491" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 408 1 0 "14fb8616_772a_4a65_8bc67d42e5d51397" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 409 1 0 "15415db8_e316_4e31_adf545d6524f76f2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 410 1 0 "2d51de6b_8bcf_4b62_a260384134cf650c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 411 1 0 "7dc3e1bc_90c3_467d_bc5fc9a057e676a3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnMeasureSuccess = _SuccessOrMoveBack(ML_STAR, blnMeasureSuccess, i_intModuleID, strFunctionName); // }} "" // {{ 412 1 0 "8aceac6c_9800_43bc_888a1e124c0c51da" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnMeasureSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 413 1 0 "00e6df15_d5c7_4d57_81ae1d98bf7ee40e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Module::GetLastError(i_intModuleID, strError); // }} "" // {{{ 414 1 0 "5ba37b15_c387_4cc9_9ceef92871de841c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat4("Module reported the following error: '", strError, "'", ""); // }} "" // {{{ 415 1 0 "ae6bc682_c4fd_401d_b7f8a22057fa69e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, strTrace, strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 416 1 0 "f582dadf_400e_4710_9f572f64f27b906f" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 417 1 0 "8aceac6c_9800_43bc_888a1e124c0c51da" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 418 1 0 "29a1ce96_4688_4d06_801b81822005bd8f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 419 1 0 "5b4fc6dc_fee7_4b58_a5d05896dd02da2d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTraceArray(Hamilton_DriverTools::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, o_arrfltpHValues, "o_arrfltpHValues", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 420 1 0 "4ad31e4b_26d3_4e95_932105fad0f94910" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::TRUE); // }} "" // {{{ 5 "MeasureCycle" "End" } // }} "" // {{{ 5 "Terminate" "Begin" function Terminate( variable i_intModuleID ) variable { // }} "" private variable blnSuccess; private variable strFunctionName; // {{ 5 "Terminate" "InitLocals" // }} "" Hamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName); // {{ 507 1 0 "1a479425_a081_4f36_87db0266e45bc221" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 508 1 0 "447e50ab_4b85_4ed7_ba06188a6f46d629" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, "", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{ 509 1 0 "b6f863cc_35e8_47b8_92f2d3a6bb2c0915" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 510 1 0 "8ba336c1_da62_4138_a879419a583d1f8f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Module::Terminate(i_intModuleID); // }} "" // {{ 511 1 0 "71b134b5_b582_4e88_ba5606cbccd98072" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 512 1 0 "7b1ee6ec_83b7_451a_8566cc469e5a4e40" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, "Unable to terminate pH module", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 513 1 0 "5ac65c32_0754_48c3_baee8debc65b038b" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 514 1 0 "71b134b5_b582_4e88_ba5606cbccd98072" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 515 1 0 "e1b313b4_7692_491c_90e407ac6fe7e424" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 516 1 0 "b0ef64b5_710b_447f_bc6b9304557b1769" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 517 1 0 "c4bd2601_8e30_4fd6_ab373cb1748fa555" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::TRUE); // }} "" // {{{ 5 "Terminate" "End" } // }} "" // {{{ 5 "_CreateModulePosition" "Begin" private function _CreateModulePosition( device & ML_STAR, sequence i_seqTargetPosition, variable i_fltDistanceFromBottom, variable i_blnShiftPositionByProbe, variable i_strPositionName, variable i_strCallingFunctionName, sequence & o_seqModulePosition ) variable { // }} "" private variable blnSuccess; private variable strTrace; private variable strLabwareID; private variable intSuccess; private variable strPositionID; private variable fltModulePosR; private variable fltModulePosX; private variable fltModulePosY; private variable fltModulePosZ; private sequence _seqTemporaryPosition; private variable strConfigFile; private variable strFunctionName; // {{ 5 "_CreateModulePosition" "InitLocals" { sequence __temp; o_seqModulePosition = __temp; } // }} "" Hamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName); // {{{ 529 1 0 "4d9d1626_2ff1_4be8_9bf4498bfea4199d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevRemoveLabware(ML_STAR, i_strPositionName); // }} "" // {{{ 530 1 0 "dd63eb63_22a1_4804_94e459ab9f2ef8bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strConfigFile = FilGetLabwarePath(); // }} "" // {{{ 531 1 0 "a3af66ec_7e8b_44f9_bf6de64fc0c5b8f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strConfigFile = StrConcat2(strConfigFile, "\\Hamilton pH Module\\Ham_1_NB_Mod_pHModule.rck"); // }} "" // {{{ 532 1 0 "df2e5108_e2dd_427a_94d33686f9e61446" "{C1F3C015-47B3-4514-9407-AC2E65043419}" intSuccess = DevAddLabware(ML_STAR, i_strPositionName, strConfigFile, 100, 100, 100, 0); // }} "" // {{ 533 1 0 "41cf272a_7140_4956_b21c8a766857965c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (intSuccess == 0) { // }} "" // {{{ 534 1 0 "86d4d08f_53b7_417b_b24ca6d82b4ad9be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat4("Unable to create labware '", i_strPositionName, "' on the deck layout !", ""); // }} "" // {{{ 535 1 0 "24865c20_3700_4390_a83f50501184e336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, strTrace, strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 536 1 0 "b8c143d4_9cbb_4e13_86ad5e9a22580942" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 537 1 0 "41cf272a_7140_4956_b21c8a766857965c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 538 1 0 "bd2fbf6c_c322_4b5b_b423253c65ba6db2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(_seqTemporaryPosition, i_strPositionName, "1"); // }} "" // {{{ 539 1 0 "6a2ea6d9_817e_4a27_bcd6366d428eb87d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqResetSequenceIndexes(_seqTemporaryPosition); // }} "" // {{{ 540 1 0 "f5ccc40c_0031_4f0d_bb4bc68c63dfc172" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strLabwareID = SeqGetLabwareId(i_seqTargetPosition); // }} "" // {{{ 541 1 0 "2b43a2b6_9050_458a_b28c4ab9eaa1b6e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strPositionID = SeqGetPositionId(i_seqTargetPosition); // }} "" // {{{ 542 1 0 "1d6e5da4_1b78_436d_bcdbcd35f2b61d8e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" intSuccess = DevGetLabwarePositionEx(ML_STAR, strLabwareID, strPositionID, fltModulePosX, fltModulePosY, fltModulePosZ, fltModulePosR); // }} "" // {{ 543 1 0 "8c9917c9_646c_44f2_856de601173adea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (intSuccess == 0) { // }} "" // {{{ 544 1 0 "9127562d_f4c2_478a_b8a887bdc7f64fea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat4("Unable to retrieve position for labware '", strLabwareID, "' !", ""); // }} "" // {{{ 545 1 0 "9e22fc0a_54ba_45df_b3644ad23008a48a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, "", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 546 1 0 "5ca3a421_0b4e_442c_a7bd845a34c05729" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 547 1 0 "8c9917c9_646c_44f2_856de601173adea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 548 1 0 "58459cb0_e73d_4ee5_8e9a6d8605a0023d" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" fltModulePosX = fltModulePosX - 35.5; // }} "" // {{ 549 1 0 "9737e87d_1a93_4567_8dbc98124d5bbb27" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" fltModulePosY = fltModulePosY - 31; // }} "" // {{ 550 1 0 "26dd5c74_be39_416d_96308d09b992ffea" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_blnShiftPositionByProbe == ASWGLOBAL::BOOL::TRUE) { // }} "" // {{ 551 1 0 "cf518551_cbdf_44ea_adbb828b4ce29355" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" fltModulePosY = fltModulePosY + _fltProbeOffsetY; // }} "" // {{ 552 1 0 "26dd5c74_be39_416d_96308d09b992ffea" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 553 1 0 "2f3c8d7f_cd2a_4eec_aa30c91f20815f39" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" fltModulePosZ = fltModulePosZ + 1.0; // }} "" // {{ 554 1 0 "9906cc34_499c_497e_95bb244b8bd39b8b" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" fltModulePosZ = fltModulePosZ + i_fltDistanceFromBottom; // }} "" // {{{ 555 1 0 "4a2102f7_da62_40f6_aac8324768780112" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = HSLLabwrAccess::AbsolutePositionValuesSetForLabwareID(ML_STAR, i_strPositionName, fltModulePosX, fltModulePosY, fltModulePosZ, fltModulePosR); // }} "" // {{{ 556 1 0 "26ea9d68_fed7_4fde_952757f14617fe6c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(o_seqModulePosition, _seqTemporaryPosition); // }} "" // {{{ 557 1 0 "9d4b9e5e_a272_4b3c_95531347e9c2718c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqResetSequenceIndexes(o_seqModulePosition); // }} "" // {{{ 558 1 0 "4dbe366c_9a01_4db7_8b7af753558ba12d" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::TRUE); // }} "" // {{{ 5 "_CreateModulePosition" "End" } // }} "" // {{{ 5 "Calibrate" "Begin" function Calibrate( device & ML_STAR, variable i_intModuleID, sequence i_seqModule, sequence i_seqCalibrationPosition_1, sequence i_seqCalibrationPosition_2, sequence i_seqReferencePosition, variable i_intCalibrationTime, variable i_intMeasureTime, variable i_fltMeasureHeight, variable i_fltpH_Value_Calibration_Solution_1, variable i_fltpH_Value_Calibration_Solution_2, variable i_fltpH_Value_Reference_Solution, variable i_fltTemperature_Calibration_Solution_1, variable i_fltTemperature_Calibration_Solution_2, variable i_fltTemperature_Reference_Solution, variable i_blnCalibrateDynamically, variable & o_arrintCalibration_Slope_Ratios[], variable & o_arrfltpH_Values_Reference_Solution[] ) variable { // }} "" private variable strTrace; private variable blnSuccess; private sequence trpCalibration_1; private sequence trpCalibration_2; private variable blnCalibrationSuccess; private variable fltCalibrationSlope; private variable fltCalibrationTemperature; private variable intLoopCounterActualProbe; private variable fltCalibrationOffset; private variable intCutPosition; private variable strSingleProbe; private file hdlCalibrationFile; private variable strDate; private variable strTime; private variable intMeasurementCounter_Probe_1; private variable intMeasurementCounter_Probe_2; private variable intMeasurementCounter_Probe_3; private variable intMeasurementCounter_Probe_4; private variable intCalibrationSlopeRatio; private variable blnMeasureSuccess; private timer hdlWaitForSettling; private variable strError; private variable strSheetName; private variable intMeasurementCounter_Probe; private variable intChargeLevel; private variable intChargeCounter; private variable intUserChoice; private dialog customDialogE397764E225E462994B8ABC24DAEC074; private variable strProbeReplacementDate; private variable strBatteryReplacementDate; private dialog customDialog3498B3035DC64880812D3276C053592B; private variable strFunctionName; private variable fltpHHighValue; private variable fltpHHighVoltage; private variable fltpHLowValue; private variable fltpHLowVoltage; private variable fltpHValueMeasured; // {{ 5 "Calibrate" "InitLocals" o_arrintCalibration_Slope_Ratios.SetSize( 0); o_arrfltpH_Values_Reference_Solution.SetSize( 0); // }} "" Hamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName); // {{ 2 1 0 "a75a94b6_d04d_45a6_96c05fb45114d22c" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 3 1 0 "f09ccd16_fd9e_43b4_afe90ce07493e72e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_DriverTools::CheckFloatRange(i_fltMeasureHeight, "i_fltMeasureHeight", 0.0, 100.0, strFunctionName, _strLibraryName); // }} "" // {{ 4 1 0 "8e797683_3c6b_4db1_92470d2e393af705" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 5 1 0 "db5b0f2b_25cf_41d3_8239f8225499fae5" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 6 1 0 "8e797683_3c6b_4db1_92470d2e393af705" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 7 1 0 "91b6c16f_47e4_401d_ab59e5b5a457054e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_DriverTools::CheckFloatRange(i_fltpH_Value_Reference_Solution, "i_fltpH_Value_Reference_Solution", 0.0, 14.0, strFunctionName, _strLibraryName); // }} "" // {{ 8 1 0 "b732fe0d_369d_45aa_bc4118e2ca762090" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 9 1 0 "cc063389_f139_49f8_80ac639c47df23ca" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 10 1 0 "b732fe0d_369d_45aa_bc4118e2ca762090" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 11 1 0 "4fc4a524_ff7f_4214_bc5f8bad74e18684" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intCalibrationTime, "i_intCalibrationTime", 1, 600, strFunctionName, _strLibraryName); // }} "" // {{ 12 1 0 "3a6d66ba_bb19_4e38_bcf20362ba07dbe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 13 1 0 "5b9d5da5_7330_4238_827efb4c1de30911" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 14 1 0 "3a6d66ba_bb19_4e38_bcf20362ba07dbe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 15 1 0 "f6d1f90e_353b_4db8_b35dd12298a16e10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intMeasureTime, "i_intMeasureTime", 1, 600, strFunctionName, _strLibraryName); // }} "" // {{ 16 1 0 "8746e912_2a4e_4c18_a759ab32c774a4a4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 17 1 0 "781b28bf_e128_4d3d_a51e096044707163" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 18 1 0 "8746e912_2a4e_4c18_a759ab32c774a4a4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 19 1 0 "85232c06_27d7_4a1f_8437ea00d598fc08" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 20 1 0 "77be492b_5228_429f_80e29dc723a7c9a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat12("i_intCalibrationTime = ", i_intCalibrationTime, ", i_fltMeasureHeight = ", i_fltMeasureHeight, ", i_fltpH_Value_Calibration_Solution_1 = ", i_fltpH_Value_Calibration_Solution_1, ", i_fltpH_Value_Calibration_Solution_2 = ", i_fltpH_Value_Calibration_Solution_2, ", i_fltpH_Value_Reference_Solution = ", i_fltpH_Value_Reference_Solution, ", i_fltTemperature_Calibration_Solution_1 = ", i_fltTemperature_Calibration_Solution_1); // }} "" // {{{ 21 1 0 "ec8cbe5b_5276_46d1_8920e617bd22b0b0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat8(strTrace, ", i_fltTemperature_Calibration_Solution_2 = ", i_fltTemperature_Calibration_Solution_2, ", i_fltTemperature_Reference_Solution = ", i_fltTemperature_Reference_Solution, "", "", ""); // }} "" // {{{ 22 1 0 "0d4d779a_90bb_45c9_bc4c83f2df361f9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{ 23 1 0 "1677be60_0d63_4335_95f82be09bfee936" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrfltpH_Values_Reference_Solution.SetSize(4); // }} "" // {{ 24 1 0 "542862e0_5b96_4643_8c1b51589ee8b8bd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrintCalibration_Slope_Ratios.SetSize(4); // }} "" // {{ 25 1 0 "8c7589a8_17db_4e5a_9bba6933d5589fbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 26 1 0 "1dd75c07_4b42_4676_8acebf2ff237f6e8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _CreateModulePosition(ML_STAR, i_seqCalibrationPosition_1, i_fltMeasureHeight, ASWGLOBAL::BOOL::FALSE, "CalibrationPosition_1", strFunctionName, trpCalibration_1); // }} "" // {{ 27 1 0 "c4627d66_28ee_4f55_9209a29a6ec79f7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 28 1 0 "7ba09e72_5a9f_4276_97c1e89fac0735e1" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 29 1 0 "c4627d66_28ee_4f55_9209a29a6ec79f7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 30 1 0 "ab046727_b042_49fe_8d92d3a126bf7f93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _CreateModulePosition(ML_STAR, i_seqCalibrationPosition_2, i_fltMeasureHeight, ASWGLOBAL::BOOL::FALSE, "CalibrationPosition_2", strFunctionName, trpCalibration_2); // }} "" // {{ 31 1 0 "894cb5c8_c353_4b28_9d9639cd8a14f1ac" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 32 1 0 "73cee0e5_8e8e_44f0_93ba6e9158591b66" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 33 1 0 "894cb5c8_c353_4b28_9d9639cd8a14f1ac" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 34 1 0 "8c7589a8_17db_4e5a_9bba6933d5589fbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 35 1 0 "6b36a6b8_af09_40ce_9c202bb27cd0f257" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 36 1 0 "43342223_dc5e_4696_b079c8dc15e592a7" "ML_STAR:{A108628C-BEB7-4CB6-99FD-8523302C700F}" { variable arrRetValues[]; arrRetValues = ML_STAR._A108628C_BEB7_4CB6_99FD_8523302C700F("43342223_dc5e_4696_b079c8dc15e592a7"); // ZSwapGetPlate } // }} "" // {{{ 37 1 0 "3e96f5d0_b9ab_4a74_b9814197de4e9927" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(_seqModule, i_seqModule); // }} "" // {{{ 38 1 0 "34a869df_4cf5_4f32_a8bbc5e51dd94976" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _RequestBatteryData(i_intModuleID, strFunctionName, 3, strBatteryReplacementDate, intChargeLevel, intChargeCounter); // }} "" // {{{ 39 1 0 "01be3513_9055_45c5_976969b4fe0cd70f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName); // }} "" // {{ 40 1 0 "42ba5124_b9f9_42c5_82b8b49a8ada220b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 41 1 0 "9a2f038b_51ad_4303_be83b4812a0975f1" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 42 1 0 "42ba5124_b9f9_42c5_82b8b49a8ada220b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 43 1 0 "8672e0af_7f0c_4bce_9ebd4b56b20fbbde" "{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}" customDialog3498B3035DC64880812D3276C053592B.InitCustomDialog( "8672e0af_7f0c_4bce_9ebd4b56b20fbbde" ); customDialog3498B3035DC64880812D3276C053592B.SetCustomDialogProperty( "textBlock1.Text", strBatteryReplacementDate ); customDialog3498B3035DC64880812D3276C053592B.SetCustomDialogProperty( "textBlock4.Text", intChargeCounter ); customDialog3498B3035DC64880812D3276C053592B.SetCustomDialogProperty( "textBlock8.Text", intChargeLevel ); customDialog3498B3035DC64880812D3276C053592B.ShowCustomDialog(); intUserChoice = customDialog3498B3035DC64880812D3276C053592B.GetCustomDialogProperty( "ReturnValue" ); // }} "" // {{ 44 1 0 "61306bc0_7878_47c2_8e73dd6f01322dcd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (intUserChoice == ASWGLOBAL::DIALOG::CANCEL) { // }} "" // {{{ 45 1 0 "1c7a8b74_02a9_491f_907b6a53cd55d057" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _SuccessOrMoveBack(ML_STAR, ASWGLOBAL::BOOL::FALSE, i_intModuleID, strFunctionName); // }} "" // {{{ 46 1 0 "4af0895b_ff4d_44e2_94145de87e3a4a60" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 47 1 0 "61306bc0_7878_47c2_8e73dd6f01322dcd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 48 1 0 "902abb3b_2a2c_4af9_be508a238df34532" "ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}" { variable arrRetValues[]; arrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E("902abb3b_2a2c_4af9_be508a238df34532"); // ZSwapMovePlate } // }} "" // {{ 49 1 0 "4a5e6d9e_4abc_47c1_90ca06066d2a1a8f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_blnCalibrateDynamically == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{ 50 1 0 "0d68cd63_b05a_4004_a78bb4009ea7052b" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == hdlWaitForSettling.SetTimer(i_intCalibrationTime) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 51 1 0 "1baf21c5_25be_4a5f_ac5b21fe512dafff" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == hdlWaitForSettling.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 52 1 0 "4a5e6d9e_4abc_47c1_90ca06066d2a1a8f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 53 1 0 "efb76e52_5d29_47ca_a525b93e2dc88177" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Module::WakeUp(i_intModuleID); // }} "" // {{{ 54 1 0 "020a5323_8f52_43e3_a18a26785b0e5ac7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName); // }} "" // {{ 55 1 0 "eba9e3f2_1421_4c2c_abe62c5d9162d583" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 56 1 0 "c4d4516e_7977_4571_8cd3417d3248d0a0" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 57 1 0 "eba9e3f2_1421_4c2c_abe62c5d9162d583" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 58 1 0 "5fa664ad_d3db_4cd0_97bcb4e7c621590c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_blnCalibrateDynamically == ASWGLOBAL::BOOL::TRUE) { // }} "" // {{{ 59 1 0 "a4c53ea5_6bf2_4567_b3aac3393a352f21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnCalibrationSuccess = Hamilton_pH_Module::CalibrateDynamically(i_intModuleID, Hamilton_pH_Module::Calibration::LowerLevel, 1, i_intCalibrationTime, i_fltpH_Value_Calibration_Solution_1, i_fltTemperature_Calibration_Solution_1, _strProbePattern); // }} "" // {{ 60 1 0 "5fa664ad_d3db_4cd0_97bcb4e7c621590c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 61 1 0 "f93033c6_0170_4800_8382b44a050567a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnCalibrationSuccess = Hamilton_pH_Module::Calibrate(i_intModuleID, Hamilton_pH_Module::Calibration::LowerLevel, i_fltpH_Value_Calibration_Solution_1, i_fltTemperature_Calibration_Solution_1, _strProbePattern); // }} "" // {{ 62 1 0 "5fa664ad_d3db_4cd0_97bcb4e7c621590c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 63 1 0 "07e79fe0_c759_468a_975a4a2252212108" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Module::Sleep(i_intModuleID); // }} "" // {{{ 64 1 0 "a0eaf3ed_bceb_4ef3_a7c074b758e577dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _Wash(ML_STAR); // }} "" // {{{ 65 1 0 "e5bb8221_4bde_413b_b4c6bfeb9119d149" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName); // }} "" // {{ 66 1 0 "c0a95e69_a91a_4b5a_80a4b09001655452" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 67 1 0 "7b4de711_3043_47ea_98671492d21838ab" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 68 1 0 "c0a95e69_a91a_4b5a_80a4b09001655452" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 69 1 0 "87e51ec2_aa4b_49bf_91e98ce681f1f656" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _Dry(ML_STAR); // }} "" // {{{ 70 1 0 "680726af_4106_445a_8dcb758c9d1f83d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName); // }} "" // {{ 71 1 0 "0ed47700_207d_43f7_a353c5149469e32a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 72 1 0 "9c9b64fc_2e15_4552_9cbee93fe8f39050" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 73 1 0 "0ed47700_207d_43f7_a353c5149469e32a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 74 1 0 "6b36a6b8_af09_40ce_9c202bb27cd0f257" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 75 1 0 "fc87dd49_8ac4_459a_bb288fb226b16275" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnCalibrationSuccess = _SuccessOrMoveBack(ML_STAR, blnCalibrationSuccess, i_intModuleID, strFunctionName); // }} "" // {{ 76 1 0 "6229636d_c27b_470c_b8362586130c4766" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnCalibrationSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 77 1 0 "b1403713_002f_4d90_8f4dcb60cd807203" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 78 1 0 "6229636d_c27b_470c_b8362586130c4766" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 79 1 0 "be37c5e1_fc78_4482_a5a273b6837d8d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 80 1 0 "dc79ae91_06a6_46bb_b2c14c444d6fce75" "ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}" { variable arrRetValues[]; arrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E("dc79ae91_06a6_46bb_b2c14c444d6fce75"); // ZSwapMovePlate } // }} "" // {{ 81 1 0 "56d167d2_8619_458b_9f47e31be60e0501" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_blnCalibrateDynamically == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{ 82 1 0 "ddb19b64_b22a_42a4_a1ab8f508ae0c8f0" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == hdlWaitForSettling.SetTimer(i_intCalibrationTime) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 83 1 0 "90448365_e175_49b7_87ca397526516d83" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == hdlWaitForSettling.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 84 1 0 "56d167d2_8619_458b_9f47e31be60e0501" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 85 1 0 "2f9b2e7c_821e_4e98_a8db66c0df121dd3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Module::WakeUp(i_intModuleID); // }} "" // {{{ 86 1 0 "05ebb41d_c71c_4656_b469e40002209767" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName); // }} "" // {{ 87 1 0 "7459036c_92b3_487f_8fcaa7fdde27758c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnCalibrationSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 88 1 0 "ae0c64d2_4c0b_4186_be320a9cd0e2ba82" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 89 1 0 "7459036c_92b3_487f_8fcaa7fdde27758c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 90 1 0 "ab4c9ccc_be94_4d8f_a7a659cdd6cb17b7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_blnCalibrateDynamically == ASWGLOBAL::BOOL::TRUE) { // }} "" // {{{ 91 1 0 "91ff5afb_29af_438e_b7daaf149ca1f6ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnCalibrationSuccess = Hamilton_pH_Module::CalibrateDynamically(i_intModuleID, Hamilton_pH_Module::Calibration::UpperLevel, 1, i_intCalibrationTime, i_fltpH_Value_Calibration_Solution_2, i_fltTemperature_Calibration_Solution_2, _strProbePattern); // }} "" // {{ 92 1 0 "ab4c9ccc_be94_4d8f_a7a659cdd6cb17b7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 93 1 0 "c14396f9_c719_4298_9c17c033a71f0b03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnCalibrationSuccess = Hamilton_pH_Module::Calibrate(i_intModuleID, Hamilton_pH_Module::Calibration::UpperLevel, i_fltpH_Value_Calibration_Solution_2, i_fltTemperature_Calibration_Solution_2, _strProbePattern); // }} "" // {{ 94 1 0 "ab4c9ccc_be94_4d8f_a7a659cdd6cb17b7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 95 1 0 "e9717f69_72c6_4e04_8b888d921fcfbd5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Module::Sleep(i_intModuleID); // }} "" // {{{ 96 1 0 "2b5374e3_0dca_4fa0_a304d345b09b1fcd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _Wash(ML_STAR); // }} "" // {{{ 97 1 0 "a92da57f_dde4_4845_864f633a386da9eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName); // }} "" // {{ 98 1 0 "354a5773_03a4_41b7_8ddea316de34f1da" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 99 1 0 "c21054c7_37e1_449e_90901bf7e93d2af8" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 100 1 0 "354a5773_03a4_41b7_8ddea316de34f1da" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 101 1 0 "122a646e_0e29_4c55_9440275001192a10" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _Dry(ML_STAR); // }} "" // {{{ 102 1 0 "ae934075_236a_46c4_a91e4a1de38490c1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName); // }} "" // {{ 103 1 0 "91e29484_9a0f_436f_bc597c9478e47445" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 104 1 0 "163dbce4_eb65_4b88_bb885fb31c8b6f07" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 105 1 0 "91e29484_9a0f_436f_bc597c9478e47445" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 106 1 0 "be37c5e1_fc78_4482_a5a273b6837d8d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 107 1 0 "c412d187_007c_4c41_9f30cef01e1095e8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnCalibrationSuccess = _SuccessOrMoveBack(ML_STAR, blnCalibrationSuccess, i_intModuleID, strFunctionName); // }} "" // {{ 108 1 0 "e8f33b67_4058_4565_90b8167db93049d2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnCalibrationSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 109 1 0 "825d3e20_85c7_4f46_9c89d30056a60f71" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 110 1 0 "e8f33b67_4058_4565_90b8167db93049d2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 111 1 0 "36d79593_b37b_49f5_976dff6178298e73" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 112 1 0 "bc20bf66_41f4_4573_bc6cb282cfb97d6b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnMeasureSuccess = _Measure(ML_STAR, i_intModuleID, i_seqReferencePosition, ASWGLOBAL::BOOL::FALSE, i_fltMeasureHeight, _strProbePattern, i_intMeasureTime, i_fltTemperature_Reference_Solution, strFunctionName, o_arrfltpH_Values_Reference_Solution); // }} "" // {{{ 113 1 0 "44ec0f93_7861_44c7_bcb29b92b1750feb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _Wash(ML_STAR); // }} "" // {{{ 114 1 0 "43e5e2b4_67cd_4d50_8f714d418df177d7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName); // }} "" // {{ 115 1 0 "47e5f024_706e_4ad7_bc55dbfc36051d0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 116 1 0 "f5df7ec6_c344_4953_91e7746760e33961" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 117 1 0 "47e5f024_706e_4ad7_bc55dbfc36051d0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 118 1 0 "b21623d1_e47f_4190_9eb8f68d13897265" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _Dry(ML_STAR); // }} "" // {{{ 119 1 0 "2b24faa8_0cec_4511_a3854b68ed417a07" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName); // }} "" // {{ 120 1 0 "d142dada_f9ce_4955_8751de9065b91690" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 121 1 0 "9c98d792_3a09_4694_8dccdcdb0500632a" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 122 1 0 "d142dada_f9ce_4955_8751de9065b91690" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 123 1 0 "36d79593_b37b_49f5_976dff6178298e73" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 124 1 0 "26e7c14f_6b07_438d_b684496fd615ae7d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnMeasureSuccess = _SuccessOrMoveBack(ML_STAR, blnMeasureSuccess, i_intModuleID, strFunctionName); // }} "" // {{ 125 1 0 "8b1d1db2_d2c8_46ae_81f3c4eaddc714e5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnMeasureSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 126 1 0 "845c4613_20d8_4789_9b92107456f6ac88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Module::GetLastError(i_intModuleID, strError); // }} "" // {{{ 127 1 0 "d156f86d_0fda_4123_99cdb3c09883114c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat4("Module reported the following error: '", strError, "'", ""); // }} "" // {{{ 128 1 0 "52c542ab_b14f_4d0f_a7cdf7a88903c37a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, strTrace, strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 129 1 0 "233117cb_a465_4715_8966dcd2bb85eee7" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 130 1 0 "8b1d1db2_d2c8_46ae_81f3c4eaddc714e5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 131 1 0 "3d3c7e73_b3c7_4b0b_bb217d22d2e2cc77" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 132 1 0 "ff7edd57_052b_4a44_b33124209d206c55" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _RequestBatteryData(i_intModuleID, strFunctionName, 1, strBatteryReplacementDate, intChargeLevel, intChargeCounter); // }} "" // {{{ 133 1 0 "841f7d93_a0ba_428b_a66e19114ff89f5a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName); // }} "" // {{ 134 1 0 "c3ea4053_21fb_43f6_9adc92ffec4660f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 135 1 0 "5a59f38b_cd27_444a_8d0a12f0f47d3f96" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 136 1 0 "c3ea4053_21fb_43f6_9adc92ffec4660f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 137 1 0 "1573c752_d540_4042_a17eb084fdb49199" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 138 1 0 "adc762ae_c2fa_4b3e_af67932c785cf006" "ML_STAR:{9DF3DD4B-3B5E-4750-8989-04458D1B134B}" { variable arrRetValues[]; arrRetValues = ML_STAR._9DF3DD4B_3B5E_4750_8989_04458D1B134B("adc762ae_c2fa_4b3e_af67932c785cf006"); // ZSwapPlacePlate } // }} "" // {{{ 139 1 0 "d8cb46a3_cbd5_4f00_9a1404554ed6a759" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Module::WakeUp(i_intModuleID); // }} "" // {{ 140 1 0 "a7e68ca2_ff0e_4013_80c566d2cc1e6169" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 141 1 0 "7e9dc89c_a6ff_4da3_abc119a4955cb2dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Module::RequestProbeData(i_intModuleID, strProbeReplacementDate, intMeasurementCounter_Probe_1, intMeasurementCounter_Probe_2, intMeasurementCounter_Probe_3, intMeasurementCounter_Probe_4); // }} "" // {{ 142 1 0 "60d8189b_052e_48d4_a4828d3e5b9c02dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 143 1 0 "82e307b3_ff5d_4876_8d5adf121d1816a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, "Unable to retrieve probe data", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 144 1 0 "71402a00_c227_40f7_a0b4afade8d6bc3b" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 145 1 0 "60d8189b_052e_48d4_a4828d3e5b9c02dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 146 1 0 "c8f7d402_8cc4_4e12_8d02be6c6c5af100" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(intLoopCounterActualProbe = 0; intLoopCounterActualProbe < 4;) { intLoopCounterActualProbe = intLoopCounterActualProbe + 1; // }} "" // {{ 147 1 0 "afaead4b_bcdc_4c6a_ab47a49b9c17c8be" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" intCutPosition = intLoopCounterActualProbe - 1; // }} "" // {{{ 148 1 0 "613bccaa_f8dc_4490_9603030e7c311763" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strSingleProbe = StrMid(_strProbePattern, intCutPosition, 1); // }} "" // {{ 149 1 0 "ab5cf2ef_915b_4ffd_9cce54262e665738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (strSingleProbe == "1") { // }} "" // {{{ 150 1 0 "0bfd3ab4_d160_47c8_87949d8d7ea7a215" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Module::RequestCalibrationValues(i_intModuleID, intLoopCounterActualProbe, fltpHLowValue, fltpHLowVoltage, fltpHHighValue, fltpHHighVoltage, fltCalibrationTemperature, fltCalibrationOffset, fltCalibrationSlope, intCalibrationSlopeRatio); // }} "" // {{ 151 1 0 "b0be71de_2656_410b_a350db8d91a1e772" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 152 1 0 "4f3aa94e_db9c_43cf_9c583ddd56907555" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, "Unable to retrieve calibration values", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 153 1 0 "dd4013ab_8451_4c35_b69a94cf16976be7" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 154 1 0 "b0be71de_2656_410b_a350db8d91a1e772" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 155 1 0 "8272eb0f_39c3_4384_8ec669f20430301d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_arrintCalibration_Slope_Ratios[ intLoopCounterActualProbe -1] = intCalibrationSlopeRatio; // }} "" // {{{ 156 1 0 "88bee88f_9749_4f02_9f181c68effb7913" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strSheetName = StrConcat2("Probe_", intLoopCounterActualProbe); // }} "" // {{ 157 1 0 "4cc243a4_6587_4bad_883a16579d5ed49a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" fltpHValueMeasured = o_arrfltpH_Values_Reference_Solution.ElementAt( intLoopCounterActualProbe -1); // }} "" // {{{ 158 1 0 "ea861e0b_2241_4a5d_a336ec7bd9693443" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strDate = TimGetFormattedDate("%Y.%m.%d"); // }} "" // {{{ 159 1 0 "0c04f6d7_32fe_4bb8_8b1abf54db40e750" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTime = TimGetFormattedTime(""); // }} "" if(intLoopCounterActualProbe == 1) intMeasurementCounter_Probe = intMeasurementCounter_Probe_1; if(intLoopCounterActualProbe == 2) intMeasurementCounter_Probe = intMeasurementCounter_Probe_2; if(intLoopCounterActualProbe == 3) intMeasurementCounter_Probe = intMeasurementCounter_Probe_3; if(intLoopCounterActualProbe == 4) intMeasurementCounter_Probe = intMeasurementCounter_Probe_4; // {{ 161 1 0 "6e3e426a_95dc_4feb_a9d481e21e38885d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_1A2EA4305E1148d49F1B0C7D67810462 ; err.Clear(); // }} "" // {{ 162 1 0 "f93413d9_9203_4d7d_85adc96329474b0a" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" hdlCalibrationFile.AddField("Module_Info", _strSerialNumber, hslString, 255); hdlCalibrationFile.AddField("Date", strDate, hslString, 255); hdlCalibrationFile.AddField("Time", strTime, hslString, 255); hdlCalibrationFile.AddField("pH_Low", fltpHLowValue, hslFloat); hdlCalibrationFile.AddField("Voltage_Low", fltpHLowVoltage, hslFloat); hdlCalibrationFile.AddField("pH_High", fltpHHighValue, hslFloat); hdlCalibrationFile.AddField("Voltage_High", fltpHHighVoltage, hslFloat); hdlCalibrationFile.AddField("Temperature", fltCalibrationTemperature, hslFloat); hdlCalibrationFile.AddField("pH_Reference", i_fltpH_Value_Reference_Solution, hslFloat); hdlCalibrationFile.AddField("pH_Measured", fltpHValueMeasured, hslFloat); hdlCalibrationFile.AddField("Offset", fltCalibrationOffset, hslFloat); hdlCalibrationFile.AddField("Slope", fltCalibrationSlope, hslFloat); hdlCalibrationFile.AddField("Slope_Ratio", intCalibrationSlopeRatio, hslFloat); hdlCalibrationFile.AddField("Measurement_Counter", intMeasurementCounter_Probe, hslInteger); if( 0 == hdlCalibrationFile.Open(_strPathCalibration + " " + strSheetName, hslAppend) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, _strPathCalibration, "HxMetEdCompCmd"); } // }} "" // {{ 163 1 0 "ae6aa477_6f97_4ca7_8986b685df39eff2" "{B31F3537-5D80-11d4-A5EB-0050DA737D89}" if( 0 == hdlCalibrationFile.WriteRecord() ) { MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 164 1 0 "298f643e_45a1_47ca_aa3a6b409482af8f" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != hdlCalibrationFile.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } hdlCalibrationFile.RemoveFields(); // }} "" // {{ 165 1 0 "6e3e426a_95dc_4feb_a9d481e21e38885d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_1A2EA4305E1148d49F1B0C7D67810462 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 166 1 0 "34896e40_7cd7_4908_98d513911cf8dc4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat4("Unable to write configuration values to '", _strPathCalibration, "'!", ""); // }} "" // {{{ 167 1 0 "57d9ae3d_1e82_4dd4_9c45ee0f478cea6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, strTrace, strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 168 1 0 "d470d7bd_df7f_45b4_a78c37dd04fc7fb0" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 169 1 0 "6e3e426a_95dc_4feb_a9d481e21e38885d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 170 1 0 "ab5cf2ef_915b_4ffd_9cce54262e665738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 171 1 0 "c8f7d402_8cc4_4e12_8d02be6c6c5af100" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 172 1 0 "fb729bb9_bf02_4717_9deb72ad685c2aa4" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 173 1 0 "98e33ee1_61bc_4d9f_8445d727a2cb8f93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTraceArray(TRACELEVEL::ACTION::PROGRESS, TRACE_LEVEL_DEBUG, o_arrintCalibration_Slope_Ratios, "Calibration slope ratio", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 174 1 0 "e3f84986_3b45_4f67_926e42679446a4c7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTraceArray(TRACELEVEL::ACTION::PROGRESS, TRACE_LEVEL_DEBUG, o_arrfltpH_Values_Reference_Solution, "pH value reference solution", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 175 1 0 "408b3119_f614_46ee_bd9062f275523d8d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{ 176 1 0 "27f864c2_82ad_49cf_a34db3a0a0827567" "{998A7CCC-4374-484D-A6ED-E8A4F0EB71BA}" customDialogE397764E225E462994B8ABC24DAEC074.InitCustomDialog( "27f864c2_82ad_49cf_a34db3a0a0827567" ); customDialogE397764E225E462994B8ABC24DAEC074.SetCustomDialogProperty( "textBlock1.Text", strBatteryReplacementDate ); customDialogE397764E225E462994B8ABC24DAEC074.SetCustomDialogProperty( "textBlock4.Text", intChargeCounter ); customDialogE397764E225E462994B8ABC24DAEC074.SetCustomDialogProperty( "textBlock8.Text", intChargeLevel ); customDialogE397764E225E462994B8ABC24DAEC074.ShowCustomDialog(); // }} "" // {{{ 177 1 0 "d05ca655_4921_4d37_9391ef820b8bc138" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::TRUE); // }} "" // {{{ 5 "Calibrate" "End" } // }} "" // {{{ 5 "SetParameter" "Begin" function SetParameter( device & ML_STAR, sequence i_seqGripperPosition, sequence i_seqWashPosition, sequence i_seqDryPosition, variable i_intTransportChannel, variable i_intWashCycles, variable i_intDryCycles, variable i_intDryWaitTime ) variable { // }} "" private variable strTrace; private variable strFunctionName; private variable intMaxFrontChannel; private variable blnSuccess; // {{ 5 "SetParameter" "InitLocals" // }} "" Hamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName); // {{{ 467 1 0 "c3919f3f_1ad9_45b6_9086521838b10e15" "{C1F3C015-47B3-4514-9407-AC2E65043419}" _intTraceLevel = TRACELEVEL::GetTraceLevel(); // }} "" // {{ 468 1 0 "6cae84b7_575b_4590_988810014725c74f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 469 1 0 "82b940a9_7e0a_493a_825087d6219dd98e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" intMaxFrontChannel = DevGetCfgValueWithKey(ML_STAR, 1); // }} "" // {{{ 470 1 0 "872478a9_ce30_42e1_99017f1ba2fad04e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intTransportChannel, "i_intTransportChannel", 2, intMaxFrontChannel, strFunctionName, _strLibraryName); // }} "" // {{ 471 1 0 "6aa311c3_0426_4471_afa3f20c78656f81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 472 1 0 "9d128c6a_0471_42c1_b12e001ec8154ed3" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 473 1 0 "6aa311c3_0426_4471_afa3f20c78656f81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 474 1 0 "48637b1a_fd0e_49d2_bfa259eadfc527ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intDryCycles, "i_intDryCycles", 1, 5, strFunctionName, _strLibraryName); // }} "" // {{ 475 1 0 "3b05d6ba_60c0_4f87_a5740f4947f3cf40" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 476 1 0 "85059f69_4bbb_40af_97315395d173f177" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 477 1 0 "3b05d6ba_60c0_4f87_a5740f4947f3cf40" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 478 1 0 "02fa5967_6d75_40ca_97d817e4c2f8737a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intDryWaitTime, "i_intDryWaitTime", 0, 5, strFunctionName, _strLibraryName); // }} "" // {{ 479 1 0 "d057a4de_35e9_48ff_b843c483ea30063a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 480 1 0 "4de8db6e_5c60_420e_8011d9d3edb41163" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 481 1 0 "d057a4de_35e9_48ff_b843c483ea30063a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 482 1 0 "04b36ba7_59a2_4016_a53f07b6d114e375" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 483 1 0 "22d63c6e_99a6_40fc_8101d25940a5a052" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat8("'i_intTransportChannel = ", i_intTransportChannel, ", i_intWashCycles = ", i_intWashCycles, ", i_intDryCycles = ", i_intDryCycles, ", i_intDryWaitTime = ", i_intDryWaitTime); // }} "" // {{{ 484 1 0 "1e99c33b_bada_49d1_b74d6e72fc145be2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{ 485 1 0 "0765474b_e2e1_4ed0_831a37bea2537d20" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 486 1 0 "33f933d9_efcd_4a9b_9104e5d2aac4a622" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(_seqGripper, i_seqGripperPosition); // }} "" // {{{ 487 1 0 "298e66c1_a572_434e_851e51197a618e27" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _CreateModulePosition(ML_STAR, i_seqWashPosition, 4.0, ASWGLOBAL::BOOL::FALSE, "WasherPosition", strFunctionName, _seqWasher); // }} "" // {{ 488 1 0 "09eabec7_a39a_4cf0_99d7867347db4ba5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 489 1 0 "a69cbace_5c1d_4019_9dc62b6437c5c690" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 490 1 0 "09eabec7_a39a_4cf0_99d7867347db4ba5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 491 1 0 "ebc83232_f1b9_4edc_a3f313d9f4041619" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _CreateModulePosition(ML_STAR, i_seqDryPosition, 3.0, ASWGLOBAL::BOOL::FALSE, "DryerPosition", strFunctionName, _seqDryer); // }} "" // {{ 492 1 0 "3f5e2246_e8f2_40ea_afdf4f40cd5a4405" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 493 1 0 "655321c1_38f1_4246_91cc579a44db4a58" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 494 1 0 "3f5e2246_e8f2_40ea_afdf4f40cd5a4405" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 495 1 0 "0b9fd721_ffb1_444b_afeacb2918abc831" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _intTransportChannel = i_intTransportChannel; // }} "" // {{ 496 1 0 "ac3a26ef_a69b_4a5f_895902140cbf77c9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _intWashCycles = i_intWashCycles; // }} "" // {{ 497 1 0 "3c94939b_7bef_405e_86ceba3a5ce85f06" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _intDryCycles = i_intDryCycles; // }} "" // {{ 498 1 0 "71e91a9e_bf58_4545_85ccd01e2125a615" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _intDryWaitTime = i_intDryWaitTime; // }} "" // {{ 499 1 0 "5abfc42d_a597_4bde_9fe18dd21d58f648" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _fltGripHeight = 39.0; // }} "" // {{ 500 1 0 "d315e095_830c_4e75_9159addc2a5abb16" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _fltGripWidth = 81.0; // }} "" // {{ 501 1 0 "4996cc95_ee09_425f_a58937eb29105a79" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _fltOpenWidth = 90.0; // }} "" // {{ 502 1 0 "01a71fa2_2b34_4573_834a182c4e33040b" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 503 1 0 "f7005559_e27a_4c38_a2e7f0b6a3726b67" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 504 1 0 "0e7ad7da_e4fe_48f4_bd75a8101121e5f5" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::TRUE); // }} "" // {{{ 5 "SetParameter" "End" } // }} "" // {{{ 5 "Initialize" "Begin" function Initialize( device & ML_STAR, variable i_intPortNumber, variable & o_fltDefaultTemperature, variable & o_intModuleID ) variable { // }} "" private variable strTrace; private variable strFunctionName; private variable blnSuccess; private variable strConfigurationFile; private variable blnSimulationModeDryer; private variable blnSimulationModeModule; private variable blnSimulationModeWasher; private variable strModuleNameDryer; private variable strModuleNameWasher; private variable intHardwareNumber; private variable intPartNumber; private variable intRevision; private variable intSerialNumber; private variable strProbePatternErrors; private variable strLastProbe; private variable intLoopCounterCheckPattern; private variable intActualPosition; private variable blnProbePatternValid; private variable strSingleProbe; private variable strDate; private variable strModuleProbePattern; private variable blnOddNumber; private variable blnOffsetSet; private variable intProbePatternLength; // {{ 5 "Initialize" "InitLocals" o_fltDefaultTemperature = 0; o_intModuleID = 0; // }} "" Hamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName); // {{{ 194 1 0 "fd10a6eb_03ce_4f4c_b3eea7e302e82397" "{C1F3C015-47B3-4514-9407-AC2E65043419}" _intTraceLevel = TRACELEVEL::GetTraceLevel(); // }} "" // {{ 195 1 0 "f21e98f6_8ad2_4eb4_8550c54dac005768" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_intModuleID = -1; // }} "" // {{ 196 1 0 "597504e3_87c9_4d0a_be4f01dbcc685a0a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 197 1 0 "e3f859c0_01d2_470a_aa96ecf7957395eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intPortNumber, "i_intPortNumber", 1, 256, strFunctionName, _strLibraryName); // }} "" // {{ 198 1 0 "40511f9f_5125_45f1_b97d8e649dd15299" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 199 1 0 "1eb1d48c_f130_44fb_85eca8b2e2bcc180" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 200 1 0 "40511f9f_5125_45f1_b97d8e649dd15299" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 201 1 0 "1f2419ed_4161_4063_af289ac9c0e66193" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 202 1 0 "a00d1f54_66b2_4844_9f1dcbed24997bfc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat2("i_intPortNumber = ", 1); // }} "" // {{{ 203 1 0 "6b841d96_8845_455d_b87569d9622fea08" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{ 204 1 0 "56d691f5_999e_41ff_a15e675741745cb2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 205 1 0 "4e5ff082_3648_4d54_90a440423e83280c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _LoadConfiguration(i_intPortNumber, blnSimulationModeModule, strModuleNameWasher, blnSimulationModeWasher, strModuleNameDryer, blnSimulationModeDryer, o_fltDefaultTemperature, strModuleProbePattern, _strPathCalibration, _strPathMeasurement, strConfigurationFile); // }} "" // {{ 206 1 0 "c9f19e16_2419_4dfc_85da7d5414b67dc7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 207 1 0 "730c313f_c2c4_4b2a_82bfd0219a2e9257" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat4("Unable to load file '", strConfigurationFile, "' !", ""); // }} "" // {{{ 208 1 0 "999a06b6_58ff_4297_ab3f908797cd5efe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, strTrace, strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 209 1 0 "d46600f8_2755_4732_998b4b69079125fe" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 210 1 0 "c9f19e16_2419_4dfc_85da7d5414b67dc7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 211 1 0 "aa31bf20_2e1e_4c0d_aa09f1c1c6561164" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 212 1 0 "9d92c528_e7ca_4136_99f9ac005fa5c178" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strModuleProbePattern = "10101010"; // }} "" // {{ 213 1 0 "f7f011e2_8dda_4f59_b3ac0e4913c4f82f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" _strProbePattern = ""; // }} "" // {{ 214 1 0 "cdd21470_1995_4261_a0f8758f72d7fa4f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" blnOffsetSet = ASWGLOBAL::BOOL::FALSE; // }} "" // {{ 215 1 0 "fa337189_3f35_4d7a_8b97873b7a3188d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strProbePatternErrors = ""; // }} "" // {{ 216 1 0 "4824da5b_1bea_41fd_9c1997bad12a1796" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strLastProbe = ""; // }} "" // {{ 217 1 0 "9bb2c5de_6601_43dd_a892a38e133a6fc4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" blnProbePatternValid = ASWGLOBAL::BOOL::TRUE; // }} "" // {{ 218 1 0 "4963097c_a10e_4ab6_81a027884781bb8e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strProbePatternErrors = ""; // }} "" // {{{ 219 1 0 "bdf9fde0_5f30_4376_acbedccc08b91480" "{C1F3C015-47B3-4514-9407-AC2E65043419}" intProbePatternLength = StrGetLength(strModuleProbePattern); // }} "" // {{ 220 1 0 "f4e4e66a_36a1_490d_a51b015c5d6f429d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (intProbePatternLength != 8) { // }} "" // {{ 221 1 0 "04e778c5_2256_4174_b3020e750f22687f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strProbePatternErrors = "Invalid length of probe pattern - must be 8 characters long !"; // }} "" // {{ 222 1 0 "da830019_381f_4faa_a6f88e85e863ed22" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" blnProbePatternValid = ASWGLOBAL::BOOL::FALSE; // }} "" // {{ 223 1 0 "f4e4e66a_36a1_490d_a51b015c5d6f429d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 224 1 0 "27c12f85_7a95_4639_8ed481ad6ae10558" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(intLoopCounterCheckPattern = 0; intLoopCounterCheckPattern < intProbePatternLength;) { intLoopCounterCheckPattern = intLoopCounterCheckPattern + 1; // }} "" // {{ 225 1 0 "fb0d97de_1786_4cd8_985f5f87d4b8b744" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" intActualPosition = intLoopCounterCheckPattern - 1; // }} "" // {{{ 226 1 0 "fbc6eb31_8705_42be_a2eec639ae3bbf1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strSingleProbe = StrMid(strModuleProbePattern, intActualPosition, 1); // }} "" // {{ 227 1 0 "3dc6f318_8b55_4103_99023efc0a8b8799" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" blnOddNumber = intLoopCounterCheckPattern % 2; // }} "" // {{ 228 1 0 "75dbe91c_012c_49c1_af8f32a90083a4d9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnOddNumber == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{ 229 1 0 "697a793c_d761_47b9_8814cba6a64e9039" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (strSingleProbe == "0") { // }} "" // {{ 230 1 0 "d7950d64_4248_4a60_b2e4271a3cfc3f5c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (strLastProbe == "0") { // }} "" // {{{ 231 1 0 "98b69977_2bc8_4ef1_bf7b51e21e89fcf4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" _strProbePattern = StrConcat2(_strProbePattern, "0"); // }} "" // {{ 232 1 0 "d7950d64_4248_4a60_b2e4271a3cfc3f5c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 233 1 0 "431bc628_7f2f_4892_ae263dbccc648f46" "{C1F3C015-47B3-4514-9407-AC2E65043419}" _strProbePattern = StrConcat2(_strProbePattern, "1"); // }} "" // {{ 234 1 0 "d7950d64_4248_4a60_b2e4271a3cfc3f5c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 235 1 0 "697a793c_d761_47b9_8814cba6a64e9039" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 236 1 0 "39d2ad1d_6279_4523_bc308b48b897d489" "{C1F3C015-47B3-4514-9407-AC2E65043419}" _strProbePattern = StrConcat2(_strProbePattern, "1"); // }} "" // {{ 237 1 0 "697a793c_d761_47b9_8814cba6a64e9039" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 238 1 0 "75dbe91c_012c_49c1_af8f32a90083a4d9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 239 1 0 "a227a94a_df12_4e50_8d75b33a7d9a8639" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (strSingleProbe == "1") { // }} "" // {{ 240 1 0 "b97b15a5_c83a_44d4_9ded31b365e6a2f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (strLastProbe == "1") { // }} "" // {{{ 241 1 0 "e5af7238_660d_48dc_bf0171c7e0f66d42" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strProbePatternErrors = StrConcat4(strProbePatternErrors, " Invalid character on position ", intLoopCounterCheckPattern, " - probes have to be separated by empty position!"); // }} "" // {{ 242 1 0 "2509fdc6_c14b_4cd8_94af93679182844e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" blnProbePatternValid = ASWGLOBAL::BOOL::FALSE; // }} "" // {{ 243 1 0 "b97b15a5_c83a_44d4_9ded31b365e6a2f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 244 1 0 "8ffb5225_cd9c_430d_9e376c967b8513a0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strLastProbe = "1"; // }} "" // {{ 245 1 0 "4220f88c_27be_4c8a_8cc5c9228e4739cf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnOffsetSet == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{ 246 1 0 "f005ff88_2a54_484e_be03bc763cd342ff" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" _fltProbeOffsetY = intActualPosition * 9.0; // }} "" // {{ 247 1 0 "44c414b6_8947_43de_a52e112399dd64e1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" blnOffsetSet = ASWGLOBAL::BOOL::TRUE; // }} "" // {{ 248 1 0 "4220f88c_27be_4c8a_8cc5c9228e4739cf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 249 1 0 "a227a94a_df12_4e50_8d75b33a7d9a8639" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 250 1 0 "f3511d5d_96ab_40ca_888e3a6f7d7f87eb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (strSingleProbe == "0") { // }} "" // {{ 251 1 0 "a1cead41_72d4_44bf_92b610a5b0f709e2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strLastProbe = "0"; // }} "" // {{ 252 1 0 "f3511d5d_96ab_40ca_888e3a6f7d7f87eb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 253 1 0 "0c8338ac_79c9_462e_8a410a1b66a9154f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strProbePatternErrors = StrConcat4(strProbePatternErrors, " Invalid character on position ", intLoopCounterCheckPattern, " - only 0 and 1 are allowed!"); // }} "" // {{ 254 1 0 "5154897a_a379_4a92_ba5fbd7f9c6b48db" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" blnProbePatternValid = ASWGLOBAL::BOOL::FALSE; // }} "" // {{ 255 1 0 "f3511d5d_96ab_40ca_888e3a6f7d7f87eb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 256 1 0 "a227a94a_df12_4e50_8d75b33a7d9a8639" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 257 1 0 "27c12f85_7a95_4639_8ed481ad6ae10558" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 258 1 0 "d5446142_e7d0_4157_9c8678c03c8abfe8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (_strProbePattern == "0000") { // }} "" // {{{ 259 1 0 "e266c615_beea_485a_9e5d208572a19999" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strProbePatternErrors = StrConcat2(strProbePatternErrors, " Invalid probe pattern - supply at least one position with a probe (1)!"); // }} "" // {{ 260 1 0 "f1676e62_7b6d_43cc_a0120620a5029596" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" blnProbePatternValid = ASWGLOBAL::BOOL::FALSE; // }} "" // {{ 261 1 0 "d5446142_e7d0_4157_9c8678c03c8abfe8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 262 1 0 "7a3eed83_2abf_4edb_aac80f7f953b859f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnProbePatternValid == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 263 1 0 "dc65f9d2_42ac_4639_a1fdab7aafc048f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, strProbePatternErrors, strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 264 1 0 "abecc664_79e3_4d51_9bdd80195c7a944a" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 265 1 0 "7a3eed83_2abf_4edb_aac80f7f953b859f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 266 1 0 "46a3e7bf_a7ac_4a22_ae3417ea806b5c50" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat4("_strProbePattern = '", _strProbePattern, "'", ""); // }} "" // {{{ 267 1 0 "36858a52_db84_430b_b192cb4bd68d84f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::PROGRESS, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{ 268 1 0 "f3bcc0f4_8680_428f_9ca646cef426768d" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 269 1 0 "858ca5b4_6598_4b2a_9edf9d97b58310eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Station_Washer_Module::Initialize(ML_STAR, 0, strModuleNameWasher, blnSimulationModeWasher, _intWasherModuleID); // }} "" // {{ 270 1 0 "5e02c0eb_0d1a_41d7_86e3dc9a7d3839e7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 271 1 0 "62dc655b_8bcd_49e3_b1854bf36199a231" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, "Unable to initialize washer", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 272 1 0 "0ad31585_5569_4f58_9b6e34d95e4545f4" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 273 1 0 "5e02c0eb_0d1a_41d7_86e3dc9a7d3839e7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 274 1 0 "b181b67b_be20_4b12_8f8cb84c0e152a7a" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 275 1 0 "237ccad1_ec3d_4072_8501210ec64d0841" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Station_Dryer_Module::Initialize(ML_STAR, strModuleNameDryer, blnSimulationModeDryer, _intDryerModuleID); // }} "" // {{ 276 1 0 "9524043b_74c1_4a63_9bd6f06bb526e487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 277 1 0 "33377db5_4263_4425_a1b2e0c58a3179e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, "Unable to initialize dryer", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 278 1 0 "3562fa5f_883d_4168_993b9b8056e6fabb" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 279 1 0 "9524043b_74c1_4a63_9bd6f06bb526e487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 280 1 0 "ba66aa1b_ed8f_41ad_9d7e63665e3ca028" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 281 1 0 "6774c3a0_823e_4771_95d32c9837a53011" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Module::Initialize(1, 1, o_intModuleID); // }} "" // {{ 282 1 0 "38bc380c_11bb_435f_8200aa2331a3d5a4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 283 1 0 "536d67c5_9658_4343_b2b074aee9846344" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, "Unable to initialize pH module", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 284 1 0 "b18db47e_c853_424a_aae7e61bd78ecce3" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 285 1 0 "38bc380c_11bb_435f_8200aa2331a3d5a4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 286 1 0 "4b0109c8_df90_4d94_97b87a9e71483ebb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Module::WakeUp(o_intModuleID); // }} "" // {{ 287 1 0 "a71b4bb3_0b27_4106_87b374e692ab597a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 288 1 0 "915d024b_076e_49b6_bb7699d0edf62b68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, "Unable to wake up pH module", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 289 1 0 "0568212e_111a_4cf5_93b3887aec60ea08" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 290 1 0 "a71b4bb3_0b27_4106_87b374e692ab597a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 291 1 0 "d2deb7fc_aa23_416b_9508fde4eb9a550b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Module::RequestTechnicalData(o_intModuleID, intHardwareNumber, intPartNumber, intRevision, intSerialNumber); // }} "" // {{ 292 1 0 "4792d498_579b_44af_9294dec5de56e98c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 293 1 0 "84730f25_21d8_46f4_8e4f71476817a38d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, "Unable to initialize pH module", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 294 1 0 "d3a173e7_9282_426f_8f630442c5b331ff" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 295 1 0 "4792d498_579b_44af_9294dec5de56e98c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 296 1 0 "95a9457b_46ae_4fea_a5cf18f4acbdf11f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" _strSerialNumber = StrIStr(intSerialNumber); // }} "" // {{{ 297 1 0 "6c16068b_8bbe_4668_97e6ccfebdd15aa8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strDate = TimGetFormattedDate(""); // }} "" // {{{ 298 1 0 "14b5479d_c770_473d_b5e9fde2f0ad130f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" _strPathMeasurement = StrConcat4(_strPathMeasurement, "\\Measurement ", strDate, ".xls"); // }} "" // {{{ 299 1 0 "b1c6e0dc_64e7_461c_be079e651c3289e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" _strPathCalibration = StrConcat2(_strPathCalibration, "\\Calibration.xls"); // }} "" // {{ 300 1 0 "761d491f_a085_4e58_842bcca774d64701" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 301 1 0 "11bc32a3_ef37_4d78_9ac3bfbe39026e2f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat4("o_fltDefaultTemperature = ", o_fltDefaultTemperature, ", o_intModuleID = ", o_intModuleID); // }} "" // {{{ 302 1 0 "15651ee1_c41a_4518_b185f22be772e5dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 303 1 0 "cb14f674_a8e3_4553_8afb3d15359ba3e4" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::TRUE); // }} "" // {{{ 5 "Initialize" "End" } // }} "" // {{{ 5 "_SuccessOrMoveBack" "Begin" private function _SuccessOrMoveBack( device & ML_STAR, variable i_blnSuccess, variable i_intModuleID, variable i_strFunctionName ) variable { // }} "" private variable blnSuccess; // {{ 5 "_SuccessOrMoveBack" "InitLocals" // }} "" // {{ 697 1 0 "a69905a6_8417_4e0c_bfd6d328e95fc196" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (i_blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{ 698 1 0 "2663a6c3_bf34_4183_b8a45b4afcea44ef" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 699 1 0 "4c775765_8b6d_4bf6_957171d2dcb63b36" "ML_STAR:{9DF3DD4B-3B5E-4750-8989-04458D1B134B}" { variable arrRetValues[]; arrRetValues = ML_STAR._9DF3DD4B_3B5E_4750_8989_04458D1B134B("4c775765_8b6d_4bf6_957171d2dcb63b36"); // ZSwapPlacePlate } // }} "" // {{{ 700 1 0 "85604ab9_51a9_4112_bd952c69b552dc5d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Module::WakeUp(i_intModuleID); // }} "" // {{{ 701 1 0 "b661beaa_d3b7_48b3_9abdf0571ac8721a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, "", i_strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{ 702 1 0 "a69905a6_8417_4e0c_bfd6d328e95fc196" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 703 1 0 "3d426d95_9d5e_41d2_9265d81d12a6205e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (i_blnSuccess); // }} "" // {{{ 5 "_SuccessOrMoveBack" "End" } // }} "" // {{{ 5 "_Dry" "Begin" private function _Dry( device & ML_STAR ) variable { // }} "" private variable blnSuccess; private timer hdlDry; private variable strLabwareID; private variable fltPositionR; private variable fltPositionX; private variable fltPositionY; private variable fltPositionZ; private variable intLoopCounterDryCycles; // {{ 5 "_Dry" "InitLocals" // }} "" // {{{ 560 1 0 "0d2b90ea_9b11_4a0b_9ea6fe697d463bdf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strLabwareID = SeqGetLabwareId(_seqDryer); // }} "" // {{{ 561 1 0 "69c7fc12_f8ff_43f1_b5222f272b93060d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = HSLLabwrAccess::AbsolutePositionValuesGetForLabwareID(ML_STAR, strLabwareID, fltPositionX, fltPositionY, fltPositionZ, fltPositionR); // }} "" // {{ 562 1 0 "19c5a7bb_aec8_48c1_8dd15d640b770257" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 563 1 0 "2b673ec2_72f1_43cc_be1df85d70f947de" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 564 1 0 "19c5a7bb_aec8_48c1_8dd15d640b770257" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 565 1 0 "9e43bba3_482e_46ad_8c6280110dddbdae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = HSLLabwrAccess::AbsolutePositionValuesSetForLabwareID(ML_STAR, strLabwareID, fltPositionX, fltPositionY, 245.0, fltPositionR); // }} "" // {{ 566 1 0 "7f0fa33b_7a92_4829_b5f47ab1fc1e88cf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 567 1 0 "348bf9d1_e534_464f_b5b857a31008e4df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = HSLLabwrAccess::AbsolutePositionValuesSetForLabwareID(ML_STAR, strLabwareID, fltPositionX, fltPositionY, fltPositionZ, fltPositionR); // }} "" // {{{ 568 1 0 "a9e11d85_d1ba_4240_888a35d2db933795" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 569 1 0 "7f0fa33b_7a92_4829_b5f47ab1fc1e88cf" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 570 1 0 "908cdcbd_fc40_4a63_b40b00c20e1ceed9" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 571 1 0 "70a6fdc3_c6c6_4616_bd48d88d6fe462f6" "ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}" { variable arrRetValues[]; arrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E("70a6fdc3_c6c6_4616_bd48d88d6fe462f6"); // ZSwapMovePlate } // }} "" // {{{ 572 1 0 "2e557c3e_aa41_4698_8d9ea7a7741b1ed7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = HSLLabwrAccess::AbsolutePositionValuesSetForLabwareID(ML_STAR, strLabwareID, fltPositionX, fltPositionY, fltPositionZ, fltPositionR); // }} "" // {{ 573 1 0 "54bdc94b_bf2b_472f_a3de6a110cc4391f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 574 1 0 "be36442f_2a87_4988_877f4bba297faea6" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 575 1 0 "54bdc94b_bf2b_472f_a3de6a110cc4391f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 576 1 0 "5dddbd2c_3520_4a2d_9723829d22db7deb" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(intLoopCounterDryCycles = 0; intLoopCounterDryCycles < _intDryCycles;) { intLoopCounterDryCycles = intLoopCounterDryCycles + 1; // }} "" // {{ 577 1 0 "5bf311b3_f6b6_4bae_936734f58102eb2e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 578 1 0 "78178563_08ba_4bb5_b331cfcb5336ec42" "ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}" { variable arrRetValues[]; arrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E("78178563_08ba_4bb5_b331cfcb5336ec42"); // ZSwapMovePlate } // }} "" // {{{ 579 1 0 "86f5c2d2_6631_46f1_b468b6de809309aa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Station_Dryer_Module::StartDrying(ML_STAR, _intDryerModuleID); // }} "" // {{ 580 1 0 "0ab7cee7_1472_4b7d_80d7719f9a7c7b49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 581 1 0 "e66517b5_a55a_42ac_ad91831911c3de51" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 582 1 0 "0ab7cee7_1472_4b7d_80d7719f9a7c7b49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 583 1 0 "291b67d4_4046_44e5_97915e938e4ccfa1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (_intDryWaitTime > 0) { // }} "" // {{ 584 1 0 "c8e39fea_20c3_4409_b6af074453db1305" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == hdlDry.SetTimer(_intDryWaitTime) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 585 1 0 "5d1190f5_d1de_4f9f_8dacdfcb42a85e3b" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == hdlDry.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 586 1 0 "291b67d4_4046_44e5_97915e938e4ccfa1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 587 1 0 "b273ac03_fd2c_4d35_b51ea2a2ea6892e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = HSLLabwrAccess::AbsolutePositionValuesSetForLabwareID(ML_STAR, strLabwareID, fltPositionX, fltPositionY, 245.0, fltPositionR); // }} "" // {{ 588 1 0 "54008cce_4212_48eb_a696b4f983966bfb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 589 1 0 "cf2aea13_985a_4d70_8b106bc6df75816e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = HSLLabwrAccess::AbsolutePositionValuesSetForLabwareID(ML_STAR, strLabwareID, fltPositionX, fltPositionY, fltPositionZ, fltPositionR); // }} "" // {{{ 590 1 0 "c8e7694e_88ae_489f_8ffdd3b480c3f20c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Station_Dryer_Module::StopDrying(ML_STAR, _intDryerModuleID); // }} "" // {{{ 591 1 0 "0a01658a_482a_4380_9ca8f6bbd88ca48e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 592 1 0 "54008cce_4212_48eb_a696b4f983966bfb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 593 1 0 "6b251714_48d2_46c9_966b56ded7e4ab57" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 594 1 0 "0a838d6c_3e46_471a_9fe2a52cf1ba97e7" "ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}" { variable arrRetValues[]; arrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E("0a838d6c_3e46_471a_9fe2a52cf1ba97e7"); // ZSwapMovePlate } // }} "" // {{{ 595 1 0 "e7a9d998_7dc0_42c9_b5379f40c65c5621" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = HSLLabwrAccess::AbsolutePositionValuesSetForLabwareID(ML_STAR, strLabwareID, fltPositionX, fltPositionY, fltPositionZ, fltPositionR); // }} "" // {{ 596 1 0 "135fa1e9_be03_4d14_8eafeb35ff7ed562" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 597 1 0 "a457596e_3126_413d_8a94929d86854944" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Station_Dryer_Module::StopDrying(ML_STAR, _intDryerModuleID); // }} "" // {{{ 598 1 0 "9049268c_6697_4a75_b9148361d223d607" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 599 1 0 "135fa1e9_be03_4d14_8eafeb35ff7ed562" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 600 1 0 "f0984ebb_2710_424f_bb3b99834b55d558" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Station_Dryer_Module::StopDrying(ML_STAR, _intDryerModuleID); // }} "" // {{ 601 1 0 "8b341fce_5621_4331_8b3e5d0a657ec373" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 602 1 0 "df541f27_1f5a_4e5f_836a9810bbd2aced" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 603 1 0 "8b341fce_5621_4331_8b3e5d0a657ec373" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 604 1 0 "5dddbd2c_3520_4a2d_9723829d22db7deb" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 605 1 0 "a8b48bcc_116b_4499_8e56b76be7b2e8c8" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (blnSuccess); // }} "" // {{{ 5 "_Dry" "End" } // }} "" // {{{ 5 "RequestBatteryData" "Begin" function RequestBatteryData( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intChargeCounter, variable & o_intActualCharge ) variable { // }} "" private variable strTrace; private variable strFunctionName; private variable blnSuccess; private variable intBatteryCondition; // {{ 5 "RequestBatteryData" "InitLocals" o_strReplacementDate = 0; o_intChargeCounter = 0; o_intActualCharge = 0; // }} "" Hamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName); // {{ 448 1 0 "1cf3854c_6f53_4646_b3c9febedb6095ca" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 449 1 0 "6e5bde41_3b49_4927_9c0d88434c91121d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat2("i_intModuleID = ", i_intModuleID); // }} "" // {{{ 450 1 0 "59d7cd3e_0fdf_43b3_a1294fb065483598" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 451 1 0 "8940d100_26a4_4542_8b1bec869c023553" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Module::WakeUp(i_intModuleID); // }} "" // {{ 452 1 0 "019e4b83_dd38_4ea1_b25f5bceda08b40f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 453 1 0 "f125dc6b_9355_49ba_b6d3f0c21c509382" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, "Unable to wake up pH module", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 454 1 0 "173bd921_7583_4feb_80bfc1596a3d662f" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 455 1 0 "019e4b83_dd38_4ea1_b25f5bceda08b40f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 456 1 0 "affc1661_479c_4457_9d56a523d2f7e1a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Module::RequestBatteryData(i_intModuleID, o_strReplacementDate, o_intChargeCounter, intBatteryCondition, o_intActualCharge); // }} "" // {{ 457 1 0 "40d12385_5183_43e5_980b64757850566c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 458 1 0 "7c178d53_88e9_42ae_ace31c6c23f6f974" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, "Unable to retrieve battery data from pH module", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 459 1 0 "610cfdaf_6957_4cb3_8de3230665bd3177" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 460 1 0 "40d12385_5183_43e5_980b64757850566c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 461 1 0 "90a3ced7_4357_47e7_a2c3a3172dc343e3" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 462 1 0 "16a54fd8_29d1_417c_81850780d725964e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat8("o_strReplacementDate = '", o_strReplacementDate, "', o_intChargeCounter = ", o_intChargeCounter, ", o_intActualCharge = ", o_intActualCharge, "", ""); // }} "" // {{{ 463 1 0 "09d92a13_aa1b_4c80_a2e9b32da0b2cbc6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 464 1 0 "bd1358f6_b20d_43cf_82c0563dee510c22" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::TRUE); // }} "" // {{{ 5 "RequestBatteryData" "End" } // }} "" // {{{ 5 "_LoadConfiguration" "Begin" private function _LoadConfiguration( variable i_intCOMPortModule, variable & o_blnSimulationModeModule, variable & o_strModuleNameWasher, variable & o_blnSimulationModeWasher, variable & o_strModuleNameDryer, variable & o_blnSimulationModeDryer, variable & o_fltDefaultTemperature, variable & o_strProbePattern, variable & o_strPathCalibration, variable & o_strPathMeasurement, variable & o_strFilename ) variable { // }} "" private file hdlConfigFile; // {{ 5 "_LoadConfiguration" "InitLocals" o_blnSimulationModeModule = 0; o_strModuleNameWasher = 0; o_blnSimulationModeWasher = 0; o_strModuleNameDryer = 0; o_blnSimulationModeDryer = 0; o_fltDefaultTemperature = 0; o_strProbePattern = 0; o_strPathCalibration = 0; o_strPathMeasurement = 0; o_strFilename = 0; // }} "" // {{{ 607 1 0 "4b32d7fd_4c89_42f4_a31ee009e31563a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_strFilename = FilGetConfigPath(); // }} "" // {{{ 608 1 0 "0d3b4fbb_0c2e_4b19_8a7a2e8ea75d6eac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_strFilename = StrConcat4(o_strFilename, "\\Hamilton pH Module\\Configuration COM ", i_intCOMPortModule, ".xls"); // }} "" // {{ 609 1 0 "31575578_28e8_4511_bee730ed67c3900d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_D0BD1C6F02554d00ABDA856463B8CEA1 ; err.Clear(); // }} "" // {{ 610 1 0 "25fb475e_9fb7_4d32_90c6ba16c57ec661" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" hdlConfigFile.AddField("SimulationModeModule", o_blnSimulationModeModule, hslInteger); hdlConfigFile.AddField("ModuleNameWasher", o_strModuleNameWasher, hslString, 255); hdlConfigFile.AddField("SimulationModeWasher", o_blnSimulationModeWasher, hslInteger); hdlConfigFile.AddField("ModuleNameDryer", o_strModuleNameDryer, hslString, 255); hdlConfigFile.AddField("SimulationModeDryer", o_blnSimulationModeDryer, hslInteger); hdlConfigFile.AddField("DefaultTemperature", o_fltDefaultTemperature, hslFloat); hdlConfigFile.AddField("ProbePattern", o_strProbePattern, hslString, 255); hdlConfigFile.AddField("CalibrationPath", o_strPathCalibration, hslString, 255); hdlConfigFile.AddField("MeasurementPath", o_strPathMeasurement, hslString, 255); if( 0 == hdlConfigFile.Open(o_strFilename + " " + "Configuration", hslRead) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, o_strFilename, "HxMetEdCompCmd"); } // }} "" // {{ 611 1 0 "da284f2d_a708_4e12_9d811ca8236a0b61" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == hdlConfigFile.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 612 1 0 "2df3585a_29f6_4e17_8d0455e3f165a2ca" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != hdlConfigFile.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } hdlConfigFile.RemoveFields(); // }} "" // {{ 613 1 0 "31575578_28e8_4511_bee730ed67c3900d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_D0BD1C6F02554d00ABDA856463B8CEA1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 614 1 0 "64ab85d0_d2ab_426b_9500d287b7304ce6" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 615 1 0 "31575578_28e8_4511_bee730ed67c3900d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 616 1 0 "5b6351b6_9dc0_4528_9deff89ff1328e04" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::TRUE); // }} "" // {{{ 5 "_LoadConfiguration" "End" } // }} "" // {{{ 5 "LastUsedConfigurationSave" "Begin" function LastUsedConfigurationSave( variable i_intBluetoothPort, variable i_intNumberOfWashCycles, variable i_intNumberOfDryCycles, variable i_intDryTime ) void { // }} "" private variable strFileName; private variable strTrace; private variable strFunctionName; private file hdlLastPort; private variable blnSuccess; // {{ 5 "LastUsedConfigurationSave" "InitLocals" // }} "" Hamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName); // {{{ 326 1 0 "9975e128_043b_42bc_96ba0dde27cf93fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intBluetoothPort, "i_intBluetoothPort", 1, 256, strFunctionName, _strLibraryName); // }} "" // {{ 327 1 0 "ef566297_ea24_41dc_a1a3a3183b36686a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 328 1 0 "1232b270_2329_40ec_9b0ff158cfc70f91" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 329 1 0 "ef566297_ea24_41dc_a1a3a3183b36686a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 330 1 0 "b4726f18_728c_4653_ad69032e34a4d0f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intNumberOfWashCycles, "i_intNumberOfWashCycles", 1, 20, strFunctionName, _strLibraryName); // }} "" // {{ 331 1 0 "4f7f63c5_8e0e_4235_82c5db289f47e629" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 332 1 0 "71ec679f_6c41_48cf_992e1fcc7e65bf53" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 333 1 0 "4f7f63c5_8e0e_4235_82c5db289f47e629" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 334 1 0 "14cd43ff_e483_4eab_955a3c1e876c339d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intNumberOfDryCycles, "i_intNumberOfDryCycles", 1, 5, strFunctionName, _strLibraryName); // }} "" // {{ 335 1 0 "b95d80ac_3cfc_4350_91fe8b04799c43fb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 336 1 0 "799358bb_1b9a_4b7d_b328e5bb40a5d802" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 337 1 0 "b95d80ac_3cfc_4350_91fe8b04799c43fb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 338 1 0 "22a97d94_e0c7_4627_86a6a1b532e638e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intDryTime, "i_intDryTime", 0, 5, strFunctionName, _strLibraryName); // }} "" // {{ 339 1 0 "e77baa66_de46_4262_b36ffda5da96f3e2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 340 1 0 "63655353_c5a0_48be_aed55768a76740a6" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 341 1 0 "e77baa66_de46_4262_b36ffda5da96f3e2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 342 1 0 "365ef7d8_e81a_4b02_a2238e385be7f5c7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat8("i_intBluetoothPort = ", i_intBluetoothPort, ", i_intNumberOfWashCycles = ", i_intNumberOfWashCycles, ", i_intNumberOfDryCycles = ", i_intNumberOfDryCycles, ", i_intDryTime = ", i_intDryTime); // }} "" // {{{ 343 1 0 "088e340d_b392_4cb3_a2fbd24d5221065a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 344 1 0 "1c7cb62c_32a1_493c_8bd9e539da6dde13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFileName = FilGetConfigPath(); // }} "" // {{{ 345 1 0 "39525f45_fcdb_4240_ba9b4a575048072e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFileName = StrConcat2(strFileName, "\\Hamilton pH Module\\Last Configuration.xls"); // }} "" // {{ 346 1 0 "76018125_e22a_4948_a0af4986122cf0c6" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2CD9CFAFB22B4706A5AB34C0C1D5FEC8 ; err.Clear(); // }} "" // {{ 347 1 0 "b9f8f6c5_fd83_4512_be36be7926482a0d" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" hdlLastPort.AddField("BluetoothPort", i_intBluetoothPort, hslInteger); hdlLastPort.AddField("WashCycles", i_intNumberOfWashCycles, hslInteger); hdlLastPort.AddField("DryCycles", i_intNumberOfDryCycles, hslInteger); hdlLastPort.AddField("DryTime", i_intDryTime, hslInteger); if( 0 == hdlLastPort.Open(strFileName + " " + "Config", hslWrite) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, strFileName, "HxMetEdCompCmd"); } // }} "" // {{ 348 1 0 "81226538_bc4c_4608_b07316d36e4b9686" "{B31F3537-5D80-11d4-A5EB-0050DA737D89}" if( 0 == hdlLastPort.WriteRecord() ) { MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 349 1 0 "e5c3c2b5_497e_4dde_a8d7a0783a1c6d53" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != hdlLastPort.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } hdlLastPort.RemoveFields(); // }} "" // {{ 350 1 0 "76018125_e22a_4948_a0af4986122cf0c6" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2CD9CFAFB22B4706A5AB34C0C1D5FEC8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 351 1 0 "1e036b4c_9e26_4c55_b5fc14218322f4f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat4("Unable to write file '", strFileName, "' !", ""); // }} "" // {{{ 352 1 0 "ca8b2ab6_e977_41a0_950231532d7e5f87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, strTrace, strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 353 1 0 "43175949_db2d_4599_8c95fe9a75e022a7" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 354 1 0 "76018125_e22a_4948_a0af4986122cf0c6" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 355 1 0 "75eed8e4_928d_4485_ba947074c4bc7cb2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 5 "LastUsedConfigurationSave" "End" } // }} "" // {{{ 5 "LastUsedConfigurationLoad" "Begin" function LastUsedConfigurationLoad( variable & o_intBluetoothPort, variable & o_intNumberOfWashCycles, variable & o_intNumberOfDryCycles, variable & o_intDryTime ) void { // }} "" private variable strFileName; private variable strTrace; private variable strFunctionName; private file hdlLastPort; // {{ 5 "LastUsedConfigurationLoad" "InitLocals" o_intBluetoothPort = 0; o_intNumberOfWashCycles = 0; o_intNumberOfDryCycles = 0; o_intDryTime = 0; // }} "" Hamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName); // {{{ 306 1 0 "8b66be4e_22d3_49eb_86656fcafe23b7d1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, "", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 307 1 0 "a5642c3a_e11d_46b1_80072fdf0376cd79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFileName = FilGetConfigPath(); // }} "" // {{{ 308 1 0 "4a75f7d8_a6a5_4ebf_aaf639ff7ed562db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strFileName = StrConcat2(strFileName, "\\Hamilton pH Module\\Last Configuration.xls"); // }} "" // {{ 309 1 0 "79e3a4c7_b24e_47b5_a5ce3ba9cf739279" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E6D5175919C24c30A3B47D1C611A4754 ; err.Clear(); // }} "" // {{ 310 1 0 "adc5b986_1011_4c9f_8bb7e59aa67b3071" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" hdlLastPort.AddField("BluetoothPort", o_intBluetoothPort, hslInteger); hdlLastPort.AddField("WashCycles", o_intNumberOfWashCycles, hslInteger); hdlLastPort.AddField("DryCycles", o_intNumberOfDryCycles, hslInteger); hdlLastPort.AddField("DryTime", o_intDryTime, hslInteger); if( 0 == hdlLastPort.Open(strFileName + " " + "Config", hslRead) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, strFileName, "HxMetEdCompCmd"); } // }} "" // {{ 311 1 0 "debd5e3c_0fee_4f53_8d09f2487ba70525" "{B31F3536-5D80-11d4-A5EB-0050DA737D89}" if( 0 == hdlLastPort.ReadRecord() ) { MECC::RaiseRuntimeErrorEx(-1490157312, MECC::IDS::stepNameFileRead, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 312 1 0 "e61930a6_3ca2_471b_ae48d6c726020100" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != hdlLastPort.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } hdlLastPort.RemoveFields(); // }} "" // {{ 313 1 0 "79e3a4c7_b24e_47b5_a5ce3ba9cf739279" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E6D5175919C24c30A3B47D1C611A4754 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 314 1 0 "b7607d77_23db_4622_a4cb4d4e6ee389a0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_intBluetoothPort = 1; // }} "" // {{ 315 1 0 "108fc060_8c64_41d6_bd2a9b642f2bc86e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_intNumberOfWashCycles = 1; // }} "" // {{ 316 1 0 "59e0ab02_429d_464e_a35eade11b4dc6cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_intNumberOfDryCycles = 1; // }} "" // {{ 317 1 0 "13d1042b_ff5d_4e63_8b7f883ef0bdab88" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_intDryTime = 1; // }} "" // {{{ 318 1 0 "35e623e8_89b3_4168_bef796b1c9875d46" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat4("Unable to read file '", strFileName, "' !", ""); // }} "" // {{{ 319 1 0 "a35bdd8b_fd21_4b26_8f1e78b1092bc114" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, strTrace, strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 320 1 0 "e1f4647c_8675_4fd7_987bdf1713f2bd0d" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 321 1 0 "79e3a4c7_b24e_47b5_a5ce3ba9cf739279" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 322 1 0 "3b7aa23e_a64d_4ad4_a3bdb96ea58f6425" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat8("o_intBluetoothPort = ", o_intBluetoothPort, ", o_intNumberOfWashCycles = ", o_intNumberOfWashCycles, ", o_intNumberOfDryCycles = ", o_intNumberOfDryCycles, ", o_intDryTime = ", o_intDryTime); // }} "" // {{{ 323 1 0 "94557285_55ca_4a59_a15291227e09f9f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 5 "LastUsedConfigurationLoad" "End" } // }} "" // {{{ 5 "ParkModule" "Begin" function ParkModule( device & ML_STAR, variable i_intModuleID, sequence i_seqModule ) variable { // }} "" private variable strTrace; private variable strFunctionName; private variable blnSuccess; // {{ 5 "ParkModule" "InitLocals" // }} "" Hamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName); // {{ 423 1 0 "bdb56e8d_d97f_4fdd_9fe49c7968dc16d7" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 424 1 0 "3e48ff30_5c88_4669_a000b7409f9c6ad7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat2("i_intModuleID = ", i_intModuleID); // }} "" // {{{ 425 1 0 "55735329_be61_4285_8875a8ee4381f795" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{ 426 1 0 "fe53c8bf_06ae_4e05_81666f9269feee04" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 427 1 0 "7963fba0_dc3a_432e_ac1901e9f0aace47" "ML_STAR:{9DF3DD4B-3B5E-4750-8989-04458D1B134B}" { variable arrRetValues[]; arrRetValues = ML_STAR._9DF3DD4B_3B5E_4750_8989_04458D1B134B("7963fba0_dc3a_432e_ac1901e9f0aace47"); // ZSwapPlacePlate } // }} "" // {{{ 428 1 0 "b0e3b1e3_b884_44f0_a70b890463b5262f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Module::WakeUp(i_intModuleID); // }} "" // {{ 429 1 0 "5d4317f1_697e_47c1_86fe9e71edecc2d2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 430 1 0 "648a4ec1_d134_4fbe_b10855e8467881bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 431 1 0 "a4437016_a55d_49d0_a11f6474e04f3c92" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::TRUE); // }} "" // {{{ 5 "ParkModule" "End" } // }} "" // {{{ 5 "PickupModule" "Begin" function PickupModule( device & ML_STAR, variable i_intModuleID, sequence & i_seqModule ) variable { // }} "" private variable strFunctionName; private variable blnSuccess; // {{ 5 "PickupModule" "InitLocals" // }} "" Hamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName); // {{{ 434 1 0 "989ef92a_329f_40fc_a3c13d955c8cc07b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, "", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{ 435 1 0 "8915749a_a9ea_4f19_92d4f3c00390ae2d" "ML_STAR:{A108628C-BEB7-4CB6-99FD-8523302C700F}" { variable arrRetValues[]; arrRetValues = ML_STAR._A108628C_BEB7_4CB6_99FD_8523302C700F("8915749a_a9ea_4f19_92d4f3c00390ae2d"); // ZSwapGetPlate } // }} "" // {{{ 436 1 0 "fb58c184_d3ad_435a_a517811c0f166ff8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Module::Sleep(i_intModuleID); // }} "" // {{ 437 1 0 "dd4c2b13_ce57_41bd_98933a5f64851247" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{ 438 1 0 "1b76ef6a_b387_4cc6_8e640e214b2cad0f" "ML_STAR:{9DF3DD4B-3B5E-4750-8989-04458D1B134B}" { variable arrRetValues[]; arrRetValues = ML_STAR._9DF3DD4B_3B5E_4750_8989_04458D1B134B("1b76ef6a_b387_4cc6_8e640e214b2cad0f"); // ZSwapPlacePlate } // }} "" // {{{ 439 1 0 "30002c78_733e_4430_9e724b6916a48ddd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, "Unable to activate sleep mode!", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 440 1 0 "c73029b8_6ace_4f05_a378f73209038f9d" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 441 1 0 "dd4c2b13_ce57_41bd_98933a5f64851247" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 442 1 0 "2b3859e8_cfaf_411e_b31e4f23e52398d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(_seqModule, i_seqModule); // }} "" // {{ 443 1 0 "0aae52b5_abab_4e36_abe0a2263185a097" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 444 1 0 "be7ef304_17fe_4fb5_818608597bccc602" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 445 1 0 "18292cb8_9f15_47a7_956f6d0a76a90f84" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::TRUE); // }} "" // {{{ 5 "PickupModule" "End" } // }} "" // {{{ 5 "Dry" "Begin" function Dry( device & ML_STAR, variable i_intModuleID ) variable { // }} "" private variable strFunctionName; private variable blnSuccess; // {{ 5 "Dry" "InitLocals" // }} "" Hamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName); // {{{ 180 1 0 "15599550_2337_4e63_a1c1ff1872bd9ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, "", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 181 1 0 "b10b8370_ca54_4b2d_aa18a042e8086b0f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _Dry(ML_STAR); // }} "" // {{{ 182 1 0 "9ced083a_6cd6_4b00_97b633114d216ce2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName); // }} "" // {{ 183 1 0 "13da5c19_175f_4eb1_97d605ca33e96e77" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::TRUE) { // }} "" // {{{ 184 1 0 "01240c5f_4535_4528_bcc170e9f03ed121" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{ 185 1 0 "13da5c19_175f_4eb1_97d605ca33e96e77" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 186 1 0 "3e4cc210_0da4_487f_98c577e243b7a800" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (blnSuccess); // }} "" // {{{ 5 "Dry" "End" } // }} "" // {{{ 5 "_Wash" "Begin" private function _Wash( device & ML_STAR ) variable { // }} "" private variable blnSuccess; // {{ 5 "_Wash" "InitLocals" // }} "" // {{ 705 1 0 "fd0b3d02_84fc_4b49_8b85ab61b861b249" "ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}" { variable arrRetValues[]; arrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E("fd0b3d02_84fc_4b49_8b85ab61b861b249"); // ZSwapMovePlate } // }} "" // {{{ 706 1 0 "ceaec143_7d6a_48e6_bf71befd80b047bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Station_Washer_Module::Wash(ML_STAR, _intWasherModuleID, _intWashCycles); // }} "" // {{{ 707 1 0 "14157375_3fff_4bc2_9b3f7486e38fc72a" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (blnSuccess); // }} "" // {{{ 5 "_Wash" "End" } // }} "" // {{{ 5 "Wash" "Begin" function Wash( device & ML_STAR, variable i_intModuleID ) variable { // }} "" private variable strFunctionName; private variable blnSuccess; // {{ 5 "Wash" "InitLocals" // }} "" Hamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName); // {{{ 520 1 0 "fa46bbf7_2d96_406f_bd97daa694c03a90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, "", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 521 1 0 "38601eef_0254_4130_a7f19c6d741da0b5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _Wash(ML_STAR); // }} "" // {{{ 522 1 0 "cba5e430_3f04_48b7_9a33c09c0dca838f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName); // }} "" // {{ 523 1 0 "a79112d6_33f5_4639_99b3a25ba560915e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::TRUE) { // }} "" // {{{ 524 1 0 "70f6ebb1_d297_4778_96176e9b332585e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{ 525 1 0 "a79112d6_33f5_4639_99b3a25ba560915e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 526 1 0 "24f3c323_483a_4ecb_83531d46aea78ebe" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (blnSuccess); // }} "" // {{{ 5 "Wash" "End" } // }} "" // {{{ 5 "Measure" "Begin" function Measure( device & ML_STAR, variable i_intModuleID, sequence i_seqMeasurement, variable i_fltMeasureHeight, variable i_strProbePattern, variable i_intMeasureTime, variable i_fltTemperature, variable & o_arrfltpHValues[] ) variable { // }} "" private variable strTrace; private variable strFunctionName; private variable blnSuccess; private variable strError; // {{ 5 "Measure" "InitLocals" o_arrfltpHValues.SetSize( 0); // }} "" Hamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName); // {{ 358 1 0 "6e0a0690_18ce_48f9_a808a7b57948d4c4" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 359 1 0 "ad1a6a34_e9d6_4e72_b5237a21d4bef3d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_DriverTools::CheckFloatRange(i_fltMeasureHeight, "i_fltMeasureHeight", 0.0, 100.0, strFunctionName, _strLibraryName); // }} "" // {{ 360 1 0 "89470ac5_106a_4848_a4bbbbb43973f6e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 361 1 0 "feda3920_3922_4ed7_8042e953c18d1d0b" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 362 1 0 "89470ac5_106a_4848_a4bbbbb43973f6e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 363 1 0 "9508299f_e6a7_49e4_a801eb3772de91c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_DriverTools::CheckIntegerRange(i_intMeasureTime, "i_intMeasureTime", 1, 600, strFunctionName, _strLibraryName); // }} "" // {{ 364 1 0 "8a4ebd0d_36d5_4ef6_91fe34466db6018f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 365 1 0 "7acc5dad_68c0_475c_a6512164f6db39f5" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 366 1 0 "8a4ebd0d_36d5_4ef6_91fe34466db6018f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 367 1 0 "86d6bd8b_3523_4e8d_8903aa259721d56f" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 368 1 0 "b5de31fe_a42b_4f32_a97bd67a8ecb9e50" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat4("i_fltMeasureHeight = ", i_fltMeasureHeight, ", i_strProbePattern = ", i_strProbePattern); // }} "" // {{{ 369 1 0 "f8bb6ce1_d4a1_4426_83c3d12aa3a2c66c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, strTrace, strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{ 370 1 0 "f077925f_f893_4423_825df8f7d0645438" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrfltpHValues.SetSize(4); // }} "" // {{{ 371 1 0 "4e6bb66a_94f4_429f_96c6d4af714464ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _Measure(ML_STAR, i_intModuleID, i_seqMeasurement, ASWGLOBAL::BOOL::TRUE, i_fltMeasureHeight, i_strProbePattern, i_intMeasureTime, i_fltTemperature, strFunctionName, o_arrfltpHValues); // }} "" // {{{ 372 1 0 "62984c93_7ffa_417d_88a954a806dee1bf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _SuccessOrMoveBack(ML_STAR, blnSuccess, i_intModuleID, strFunctionName); // }} "" // {{ 373 1 0 "018dc4bc_a3bc_4c04_bcc0f357e3b60285" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 374 1 0 "9ad2947e_8ac7_448b_ba4431874a85936c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Module::GetLastError(i_intModuleID, strError); // }} "" // {{{ 375 1 0 "383bc43b_55e9_4598_b802249026abd64f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat4("Module reported the following error: '", strError, "'", ""); // }} "" // {{{ 376 1 0 "d2a649d9_ac10_4861_81811fba680a1de2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, strTrace, strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 377 1 0 "1ef12d32_384b_4d79_aae0146b9f438650" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 378 1 0 "018dc4bc_a3bc_4c04_bcc0f357e3b60285" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 379 1 0 "cdb5db27_abc8_44e8_966d1dd937d7796e" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 380 1 0 "5fca58c8_c8ba_45d3_90b6ba4a7cd49e46" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTraceArray(Hamilton_DriverTools::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, o_arrfltpHValues, "o_arrfltpHValues", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 381 1 0 "d5297bf7_bf4f_4916_99342000cb21112b" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::TRUE); // }} "" // {{{ 5 "Measure" "End" } // }} "" // {{{ 5 "_Measure" "Begin" function _Measure( device & ML_STAR, variable i_intModuleID, sequence i_seqMeasurement, variable i_blnShiftPositionByProbe, variable i_fltMeasureHeight, variable i_strProbePattern, variable i_intMeasureTime, variable i_fltTemperature, variable i_strCallingFunctionName, variable & o_arrfltpHValues[] ) variable { // }} "" private variable blnMeasureSuccess; private variable blnSuccess; private timer hdlWaitForSettling; private sequence trpMeasurement; private variable strTrace; private variable strTime; private variable strDate; private file hdlMeasurementFile; private variable intMeasurementCounterProbe_1; private variable intMeasurementCounterProbe_2; private variable intMeasurementCounterProbe_3; private variable intMeasurementCounterProbe_4; private variable intBatteryChargeLevel; private variable intBatteryChargeCounter; private variable strBatteryReplacementDate; private variable strBatteryChargeLevel; private variable strProbeReplacementDate; private variable intBatteryCondition; private variable fltpHValueProbe_1; private variable fltpHValueProbe_2; private variable fltpHValueProbe_3; private variable fltpHValueProbe_4; // {{ 5 "_Measure" "InitLocals" o_arrfltpHValues.SetSize( 0); // }} "" // {{ 618 1 0 "c76d1e0d_8770_4fb7_8fce2daa5b0cb9f4" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrfltpHValues.SetSize(4); // }} "" // {{ 619 1 0 "5266578e_3797_4593_871ab5c3b0c28490" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 620 1 0 "cd714cce_1b5b_49b9_83aaa5ccc2143f8b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" blnSuccess = _CreateModulePosition(ML_STAR, i_seqMeasurement, i_fltMeasureHeight, i_blnShiftPositionByProbe, "MeasurePosition", i_strCallingFunctionName, trpMeasurement); // }} "" // {{ 621 1 0 "7e55adbc_828c_4342_9f5d08d2ad975a18" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 622 1 0 "61f37379_4825_4db0_b64942e2d2adfa4b" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 623 1 0 "7e55adbc_828c_4342_9f5d08d2ad975a18" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 624 1 0 "5266578e_3797_4593_871ab5c3b0c28490" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 625 1 0 "8b55f35e_4fdf_44b3_98fdbfca83864001" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 626 1 0 "c11d7349_c318_4e5c_9f49f0369c235956" "ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}" { variable arrRetValues[]; arrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E("c11d7349_c318_4e5c_9f49f0369c235956"); // ZSwapMovePlate } // }} "" // {{ 627 1 0 "c26339a3_a41b_4c15_9229394863189bd8" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == hdlWaitForSettling.SetTimer(i_intMeasureTime) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 628 1 0 "a343b7ed_503f_4e1a_af2295f25c54a0c5" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == hdlWaitForSettling.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 629 1 0 "2b45797b_6ba1_4b51_a115a59c9d6dbb76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Module::WakeUp(i_intModuleID); // }} "" // {{ 630 1 0 "ae74995b_5505_4451_98e89188fa805ae6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 631 1 0 "6b2d98a5_c8c2_4fad_ae9e961a25c69caa" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 632 1 0 "ae74995b_5505_4451_98e89188fa805ae6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 633 1 0 "d0704d66_c2ac_4f60_b164ae115cddd57c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Module::RequestBatteryData(i_intModuleID, strBatteryReplacementDate, intBatteryChargeCounter, intBatteryCondition, intBatteryChargeLevel); // }} "" // {{ 634 1 0 "9aecf4c0_2613_4b56_81516ccc14a8dba6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 635 1 0 "379c983a_21f0_4cd0_a024b1350afe2f3f" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 636 1 0 "9aecf4c0_2613_4b56_81516ccc14a8dba6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 637 1 0 "d48c3018_45c3_4aec_ad7ecc93d06a3ad8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Module::RequestProbeData(i_intModuleID, strProbeReplacementDate, intMeasurementCounterProbe_1, intMeasurementCounterProbe_2, intMeasurementCounterProbe_3, intMeasurementCounterProbe_4); // }} "" // {{ 638 1 0 "ad72164d_c9be_47d5_a94bde46d641f28d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 639 1 0 "f8b9c4aa_3199_442c_86342c175e953243" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 640 1 0 "ad72164d_c9be_47d5_a94bde46d641f28d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 641 1 0 "d6f9bcdd_47d0_4685_ba03d45363da0c0d" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrfltpHValues.SetSize(4); // }} "" // {{{ 642 1 0 "f6d13269_41fb_4cfb_95ad5c4a9538a16f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnMeasureSuccess = Hamilton_pH_Module::Measure(i_intModuleID, i_fltTemperature, i_strProbePattern, o_arrfltpHValues.ElementAt( 1 -1), o_arrfltpHValues.ElementAt( 2 -1), o_arrfltpHValues.ElementAt( 3 -1), o_arrfltpHValues.ElementAt( 4 -1)); // }} "" // {{{ 643 1 0 "34761416_d271_42fd_87a50ea05bf7aca2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Module::Sleep(i_intModuleID); // }} "" // {{ 644 1 0 "7ad1e577_8dc9_463d_89104861e4c6ed5a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 645 1 0 "38304a53_1db4_408d_a4577905bb8a5e18" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 646 1 0 "7ad1e577_8dc9_463d_89104861e4c6ed5a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 647 1 0 "8b55f35e_4fdf_44b3_98fdbfca83864001" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 648 1 0 "0bff844d_1169_4c5e_9b96dc8b24d66418" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 649 1 0 "5694d5c0_5e2b_4699_b760fb7da122878f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnMeasureSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 650 1 0 "e9ef7414_1c62_4b4f_8055d54d5bdde46b" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 651 1 0 "5694d5c0_5e2b_4699_b760fb7da122878f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 652 1 0 "98dbcc81_e0b6_43d1_849a4b0f00537734" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 653 1 0 "a5fe9b4e_19ce_4fb1_a78387650adb5844" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strDate = TimGetFormattedDate("%Y.%m.%d"); // }} "" // {{{ 654 1 0 "4f64d98a_70e2_47a6_a81cf4c8d42a0c7c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTime = TimGetFormattedTime(""); // }} "" // {{{ 655 1 0 "81845ffe_dbb8_42e0_86a69512be087194" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strBatteryChargeLevel = StrConcat2(intBatteryChargeLevel, " %"); // }} "" // {{ 656 1 0 "250fd3c0_1929_40a6_a7fd456052d62cc2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" fltpHValueProbe_1 = o_arrfltpHValues.ElementAt( 1 -1); // }} "" // {{ 657 1 0 "1b5270e0_b139_4b3a_bb587da1df2de61f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" fltpHValueProbe_2 = o_arrfltpHValues.ElementAt( 2 -1); // }} "" // {{ 658 1 0 "ecde3863_5974_41de_88ae2f60dcf646e2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" fltpHValueProbe_3 = o_arrfltpHValues.ElementAt( 3 -1); // }} "" // {{ 659 1 0 "4231c767_f55a_4c19_a357098273c3a7d1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" fltpHValueProbe_4 = o_arrfltpHValues.ElementAt( 4 -1); // }} "" // {{ 660 1 0 "2565f487_566d_43b6_b781c746c3c5a568" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_AEBF2329738F4a4e9AD735DF874D45BA ; err.Clear(); // }} "" // {{ 661 1 0 "2d3756d0_d2aa_4520_b12632caf0eb507f" "{B31F3534-5D80-11d4-A5EB-0050DA737D89}" hdlMeasurementFile.AddField("Module_Info", _strSerialNumber, hslString, 255); hdlMeasurementFile.AddField("Battery replacement date", strBatteryReplacementDate, hslString, 255); hdlMeasurementFile.AddField("ChargeLevel", strBatteryChargeLevel, hslString, 255); hdlMeasurementFile.AddField("Function", i_strCallingFunctionName, hslString, 255); hdlMeasurementFile.AddField("Date", strDate, hslString, 255); hdlMeasurementFile.AddField("Time", strTime, hslString, 255); hdlMeasurementFile.AddField("Temperature", i_fltTemperature, hslFloat); hdlMeasurementFile.AddField("pH Probe 1", fltpHValueProbe_1, hslFloat); hdlMeasurementFile.AddField("pH Probe 2", fltpHValueProbe_2, hslFloat); hdlMeasurementFile.AddField("pH Probe 3", fltpHValueProbe_3, hslFloat); hdlMeasurementFile.AddField("pH Probe 4", fltpHValueProbe_4, hslFloat); hdlMeasurementFile.AddField("Probe replacement date", strProbeReplacementDate, hslString, 255); hdlMeasurementFile.AddField("Count Probe 1", intMeasurementCounterProbe_1, hslInteger); hdlMeasurementFile.AddField("Count Probe 2", intMeasurementCounterProbe_2, hslInteger); hdlMeasurementFile.AddField("Count Probe 3", intMeasurementCounterProbe_3, hslInteger); hdlMeasurementFile.AddField("Count Probe 4", intMeasurementCounterProbe_4, hslInteger); if( 0 == hdlMeasurementFile.Open(_strPathMeasurement + " " + "Measurements", hslAppend) ) { MECC::RaiseRuntimeErrorEx(-1523711743, MECC::IDS::stepNameFileOpen, MECC::IDS::errorStepFileOpenFailed, _strPathMeasurement, "HxMetEdCompCmd"); } // }} "" // {{ 662 1 0 "481cf3a7_d855_429f_a9c452769aa017b8" "{B31F3537-5D80-11d4-A5EB-0050DA737D89}" if( 0 == hdlMeasurementFile.WriteRecord() ) { MECC::RaiseRuntimeErrorEx(-1473380096, MECC::IDS::stepNameFileWrite, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 663 1 0 "f1343570_95a6_43a3_a9f5b2238567456e" "{B31F3538-5D80-11d4-A5EB-0050DA737D89}" if( 0 != hdlMeasurementFile.Close() ) { MECC::RaiseRuntimeErrorEx(-1456602880, MECC::IDS::stepNameFileClose, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } hdlMeasurementFile.RemoveFields(); // }} "" // {{ 664 1 0 "2565f487_566d_43b6_b781c746c3c5a568" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_AEBF2329738F4a4e9AD735DF874D45BA : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 665 1 0 "47286f1d_2aca_4f37_8d22f74225bbcf0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat4("Unable to write measurement values to '", _strPathMeasurement, "'!", ""); // }} "" // {{{ 666 1 0 "9bb62fdd_9e5d_4ed1_89444a798c9abb09" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, strTrace, i_strCallingFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 667 1 0 "fb975f24_e9fa_4a9b_ab9909ef2ff8bc15" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 668 1 0 "2565f487_566d_43b6_b781c746c3c5a568" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 669 1 0 "b4df3385_f8ba_4476_8c45b86b947a15a7" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 670 1 0 "01144484_7fad_4268_b3fc2214530c7c0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTraceArray(Hamilton_DriverTools::ACTION::PROGRESS, TRACE_LEVEL_DEBUG, o_arrfltpHValues, "measured pH value", i_strCallingFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 671 1 0 "ebb8dcd2_9754_464c_af82b1e2303aea2d" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::TRUE); // }} "" // {{{ 5 "_Measure" "End" } // }} "" // {{{ 5 "EnableExtendedLog" "Begin" function EnableExtendedLog( ) void { // }} "" private variable strFunctionName; // {{ 5 "EnableExtendedLog" "InitLocals" // }} "" Hamilton_DriverTools::ExtractFunctionName(GetFunctionName(), strFunctionName, _strLibraryName); // {{{ 189 1 0 "b4e07901_cb5c_43f6_82c306d36a3117d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::START, TRACE_LEVEL_DEBUG, "", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 190 1 0 "cda563b2_0460_4e97_a34d9204743dcfb4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Module::EnableExtendedLog(); // }} "" // {{{ 191 1 0 "a8564771_4e0c_465a_aff772460e8ed033" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE, TRACE_LEVEL_DEBUG, "", strFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 5 "EnableExtendedLog" "End" } // }} "" // {{{ 5 "_RequestBatteryData" "Begin" private function _RequestBatteryData( variable i_intModuleID, variable i_strCallingFunctionName, variable i_intLowerLimit, variable & o_strReplacementDate, variable & o_intChargeLevel, variable & o_intChargeCounter ) variable { // }} "" private variable strTrace; private variable blnSuccess; private variable intBatteryCondition; // {{ 5 "_RequestBatteryData" "InitLocals" o_strReplacementDate = 0; o_intChargeLevel = 0; o_intChargeCounter = 0; // }} "" // {{{ 673 1 0 "215276c7_0bb0_40aa_8dc22680c8098e01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Module::WakeUp(i_intModuleID); // }} "" // {{ 674 1 0 "9fbc7edc_b842_4bad_a5aab0767b8d24df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 675 1 0 "0db41f5c_ff80_4940_b63085c1f512bfe4" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 676 1 0 "9fbc7edc_b842_4bad_a5aab0767b8d24df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 677 1 0 "6407fe94_8b93_4eb7_857ff2f0b7849268" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Module::RequestBatteryData(i_intModuleID, o_strReplacementDate, o_intChargeCounter, intBatteryCondition, o_intChargeLevel); // }} "" // {{ 678 1 0 "2317c515_fc16_4710_a7df559c19a3b411" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 679 1 0 "ec2e92d1_e0bc_4bc7_9797403c4004fe16" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, "Unable to request battery data", i_strCallingFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 680 1 0 "42c2bde3_4737_4b18_9a6e40f163cfa9eb" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 681 1 0 "2317c515_fc16_4710_a7df559c19a3b411" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 682 1 0 "e94b442b_910c_48d7_91bd041b9dff23ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnSuccess = Hamilton_pH_Module::Sleep(i_intModuleID); // }} "" // {{ 683 1 0 "25c8b672_794e_45d6_9aeb5551ce39296d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnSuccess == ASWGLOBAL::BOOL::FALSE) { // }} "" // {{{ 684 1 0 "ee291419_5e3c_451c_ae8560c981c226f3" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 685 1 0 "25c8b672_794e_45d6_9aeb5551ce39296d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 686 1 0 "e8e0af37_f9f0_4407_b4fccad9f7ebae05" "{C1F3C015-47B3-4514-9407-AC2E65043419}" strTrace = StrConcat4("Battery charge level is ", o_intChargeLevel, " %", ""); // }} "" // {{{ 687 1 0 "f81f8d70_b735_4215_8ad2832c8a850d7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::PROGRESS, TRACE_LEVEL_DEBUG, strTrace, i_strCallingFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{ 688 1 0 "78e75451_d5b2_405a_8b4b1cf428c2f86c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (o_intChargeLevel < 25) { // }} "" // {{{ 689 1 0 "dab9bdcd_d3f3_4b7f_b54258c56d3d176b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::PROGRESS, TRACE_LEVEL_RELEASE, "Battery charge level is below 25%!", i_strCallingFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{ 690 1 0 "78e75451_d5b2_405a_8b4b1cf428c2f86c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 691 1 0 "aae3cf62_ff19_4fa9_8bfb290f07dde6b1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (o_intChargeLevel < i_intLowerLimit) { // }} "" // {{{ 692 1 0 "11528941_7661_48de_ab95210ec9b72b4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_DriverTools::StatusTrace(TRACELEVEL::ACTION::COMPLETE_WITH_ERROR, TRACE_LEVEL_RELEASE, "Battery charge level is 0%!", i_strCallingFunctionName, _intTraceLevel, _strLibraryName); // }} "" // {{{ 693 1 0 "2a959215_9344_4965_86e5858e94ebbe0f" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::FALSE); // }} "" // {{ 694 1 0 "aae3cf62_ff19_4fa9_8bfb290f07dde6b1" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 695 1 0 "7a479464_a1a8_40ec_90a513e51356175b" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (ASWGLOBAL::BOOL::TRUE); // }} "" // {{{ 5 "_RequestBatteryData" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=stefa$$valid=0$$time=2023-02-27 12:46$$checksum=e6d65b62$$length=084$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/HslHamHeaterShakerLib.hs_ ================================================ // ====================================================================== // This is a part of the HSLHamHeaterShaker Library. // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // All rights reserved. // ====================================================================== // // Modification History // // 2008-09-11 tbenz > V1.0 first creation // // 2008-12-03 tbenz > V1.1 check of input parameter removed // // 2009-08-13 tbenz > V1.2 Initialize routine enlarget with close ond open plate lock // changed in function InitializeNode() // // 2013-03-06 tbenz > V4.4 No change in the library. // USB driver changed from UsbIoComm.dll to HxUsbComm.dll // this driver is trace into the same UsbCom.trc file than the phoenix software. // Version is new dependet of the software version. // // >>>>> if you change the version update HamHeaterShakerVersion too <<<< // // ********************************************************************** // This library version supports following hardware: // - Hamilton Heater Shaker PN 186280/02 // ********************************************************************** #ifndef __HSLHeaterShakerLibImpl_hsl__ #define __HSLHeaterShakerLibImpl_hsl__ 1 static const variable HamHeaterShakerVersion("Version: V4.4"); // ---------------------------------------------------------------------------------------------------- // Includes // ---------------------------------------------------------------------------------------------------- #ifndef __HSLStrLib_hsl__ #include "HSLStrLib.hsl" #endif #ifndef __HSLSynLib_hsl__ #include "HSLSynLib.hsl" #endif #ifndef __HSLMthLib_hsl__ #include "HSLMthLib.hsl" #endif // ---------------------------------------------------------------------------------------------------- // Device (for development only! Comment out for release version.) // ---------------------------------------------------------------------------------------------------- //device ML_STAR; // -------------------------------------------------------------------------------------- // Implementation of Hamilton Heater Shaker library // -------------------------------------------------------------------------------------- namespace HSLHamHeaterShaker { #ifndef __HSLStringTableLib_hsl__ #include "HSLStringTableLib.hs_" #endif // -------------------------------------------------------------------------------------- // Debugging and Developing (for development only! Comment out for release version.) // -------------------------------------------------------------------------------------- //#define _DEBUG 1 // specifies the debug version of the HSLHamHeaterShaker library // -------------------------------------------------------------------------------------- // Tracing // -------------------------------------------------------------------------------------- namespace TraceStatus { static const variable cmd_start(1); // action status for formated trace and step return static const variable cmd_complete(2); // action status for formated trace and step return static const variable cmd_error(3); // action status for formated trace and step return static const variable cmd_progress(4); // action status for formated trace and step return static const variable cmd_errComplete(5); // action status for formated trace and step return } // -------------------------------------------------------------------------------------- // Parameter definitions // -------------------------------------------------------------------------------------- namespace ShakingParam { static const variable directionLeft(0); // Shaking direction static const variable directionRight(1); // Shaking direction static const variable directionDefault(0); // Shaking direction static const variable speedParamLenght(4); // Length of firmware parameter string static const variable accelParamLenght(5); // Length of firmware parameter string static const variable timeParamLenght(5); // Length of firmware parameter string static const variable rampMin(630); // Accelerator ramp min static const variable rampMax(12500); // Accelerator ramp max static const variable rampDefault(1250); // Accelerator ramp default static const variable rpmMin(30); // min revolutions per minutes RPM (steps per second (48 steps == 1 revolution) static const variable rpmMax(2500); // max revolutions per minutes RPM static const variable rpmDefault(1000); // Revolutions per minutes RPM static const variable rmpStepFactor(1.25); // Factor to calculate RPM to steps (Steps = RPM / rmpStepFactor) static const variable shakingTimeMin(0); // min shaking time static const variable shakingTimeMax(30000); // max shaking time static const variable shakeTolMin(0); // min shaking tolerance static const variable shakeTolMax(100); // max shaking tolerance } namespace TemperateParam { static const variable startTimeOutDefault(1800);// Time before temperature will be checked static const variable startTimeOutMin(1); // Time before temperature will be checked static const variable startTimeOutMax(3600); // Time before temperature will be checked static const variable paramLength(4); // Length of all temperature step parameter static const variable tempStateOk(0); // Temperature was allways in temperature range static const variable tempStateOutOfRange(1); // Temperature was out of temperature range static const variable tempStateOutOfSecurity(2);// Temperature was out of security range static const variable tempStateTimeOut(3); // Temperature timeout static const variable tempMin(0.0); // min temperature static const variable tempMax(105.0); // max temperature static const variable tempToleranceDefault(2.0);// Tolerance of incubation time static const variable tempToleranceMin(0.0); // Tolerance of incubation time static const variable tempToleranceMax(100.0); // Tolerance of incubation time static const variable tempSecurityDefault(6.0); // Security range of incubation temperature (switch off heater if reached) static const variable tempSecurityMin(0.0); // Security range of incubation temperature (switch off heater if reached) static const variable tempSecurityMax(100.0); // Security range of incubation temperature (switch off heater if reached) static const variable tempTempRequestLength(13);// Length of temperature response string static const variable tempStateRequestLength(4);// Length of temperature state response string } // -------------------------------------------------------------------------------------- // Monitoring // -------------------------------------------------------------------------------------- namespace MonitorStatus { static const variable monitorOK(0); // no error static const variable monitorErrHeating(1); // heating out of range static const variable monitorErrShaking(2); // shaking out of range static const variable monitorErrHeatingAndShaking(3); // heating and shaking out of range } namespace MonitorAction { static const variable monitorActionMin(0); // min value static const variable monitorActionCont(0); // Continue static const variable monitorActionStop(1); // Stop Heating, shaking and monitoring static const variable monitorActionAbort(2); // Abort run static const variable monitorActionMax(2); // max value } // -------------------------------------------------------------------------------------- // Module local constants/variables // -------------------------------------------------------------------------------------- static const variable m_maxHHS(10); // node 0..9 static const variable m_firstStarNode(1); // node 1 and 2 for ML_Star static const variable m_lastStarNode(2); // node 1 and 2 for ML_Star static const variable m_firstUsbNode(1); // node 1 to 8 for USB (0..7) static const variable m_lastUsbNode(8); // node 1 to 8 for USB (0..7) static const variable m_firstDeviceNumber(1); // generated deviceNumber range static const variable m_lastDeviceNumber(m_maxHHS); // generated deviceNumber range static const variable m_usbMsgTimeout(240); // timeout for comand which are send to USB static const variable m_usbInitTimeout(15); // timeout for init comands which are send to USB static const variable m_OFF(0); static const variable m_ON(1); static const variable m_firmwareCmdLength(2); // length of firmware command without node (Tx) static const variable m_waitTimeOutSecurity(60); // Security time which will be added oto wait timeout of function waitShaker() static const variable m_starSimulateModeKey(18); // key for read simulate flag of STAR with GetCfgValueWithKey() static const variable m_shakingPropertyHeatAndShake(0); // HHS is usable for heating and shaking static const variable m_shakingPropertyOnlyHeat(1); // HHS is usable for heating only static const variable m_shakingPropertyOnlyShake(2); // HHS is usable for shaking only static const variable m_shakingPropertyNothing(3); // HHS is defined wrong, no shaking and no heating ???? // special error definition for direct check in step result string static const variable m_fwNoError("er00"); // no error static const variable m_fwCanError("er10"); // can error static const variable m_fwShNotInitError("er51"); // Shaker not initialized static const variable m_fwShStepLostError("er52"); // Shaker step lost static const variable m_fwPlNotInitError("er56"); // Plate lock not initialized static const variable m_fwPlStepLostError("er57"); // Plate lock step lost static const variable m_fwTimeoutError("er98"); // Time out during send of a command static const variable m_fwIsInitialized("qw1"); // QW answere, initialize = flag == 1 static const variable m_noStarConnectionError("er03"); // No connection to star // definition for USB component static variable m_hhsUsbObjectName("HamHeaterShakerUSB.USB"); // name of USB component // "{BD0DAB87-838B-44c5-A114-1CBA5BE0E45F}", bufferSize(4090), vendorId(2223), productId(32770), serialNumber(00)); static variable m_hhsUsbProductNum(32770); // productId and serialNumber as string static variable m_hhsUsbSerieNum("00"); // productId and serialNumber as string // -------------------------------------------------------------------------------------- // Module globale constants/variables // -------------------------------------------------------------------------------------- static global variable m_hhsCriticalSection(0); // critical section object for library synchronization static global object m_usbComObject; // USB device object // -------------------------------------------------------------------------------------- // Module local constants/variables which must be locked during set / get // -------------------------------------------------------------------------------------- static variable m_isStringTableInitialized(hslFalse); // flag for init string table static global variable m_initializedLib(hslFalse); // initialization state of the HSL HamHeaterShaker library static global variable m_isSimulate(hslFalse); // flag for simulate mode of heater shaker static global variable m_usbTrace(hslTrue); // flag vor trace the send and receive from USB device static global variable m_initializedHeater[](m_maxHHS); // initialization state of the used device static global variable m_shakingDirection[](m_maxHHS); // Shaking direction left/right (0/1) static global variable m_shakingAccRamp[](m_maxHHS); // Acceleration ramp (rpm) static global variable m_shakingTimeOut[](m_maxHHS); // Time out for waiting function after StartTimed 0 = not started static global variable m_tempStartTimeOut[](m_maxHHS); // Time to elapse until the time controlling is satrt static global variable m_tempToleranceRange[](m_maxHHS); // Tolerance of incubation temperature static global variable m_tempSecurityRange[](m_maxHHS); // Security tolerance before the heater is automatic switched off static global variable m_userShakingSpeed[](m_maxHHS); // The given speed from start function static global variable m_userTemperature[](m_maxHHS); // The given temperature from start function // device management // note: the assigned deviceNumber correspond with the array index (deviceNumber-1 == arrayIndex) static global variable m_deviceName[](m_maxHHS); // Name of ML_STAR or "USB" on USB static global variable m_nodeNumber[](m_maxHHS); // can node number 1 based static global object m_starDeviceObj[](m_maxHHS); // object of ML_STAR device, for USB use m_usbComObject static global variable m_isStarSimulate[](m_maxHHS); // ML_STAR is in simulate mode static global variable m_hhsSetting[](m_maxHHS); // 0..2, 0=both, 1=onlyHeat, 2=onlyShake static function saveAndCreateDeviceNumber(variable funcId, variable deviceName, object& starObject, variable isStarSimulate, variable usedNode); // m_initializedHeater value with data access lock static function isUsbConnected(variable funcId); static function isSimulate(variable funcId, variable deviceNumber, variable makeTrace ); // uses node from 0 to 9 static function isHeaterInitialized(variable deviceNumber); // uses node from 0 to 9 static function setHeaterInitialized(variable deviceNumber); static function isUsbTrace(); // definitions for Monitoring function static const variable m_minSampleInterval(5); static const variable m_maxSampleInterval(300); // Prepare the globals for the hsl thread. static global event m_monitorStartEvent; static global variable m_monitorDeviceNumber; static global variable m_monitorShakerMin; static global variable m_monitorShakerMax; static global variable m_monitorHeaterMin; static global variable m_monitorHeaterMax; static global variable m_monitorSampleInterval; static global variable m_monitorAction; static global event m_monitorEvent[](m_maxHHS); static global variable m_monitorResult[](m_maxHHS); // -------------------------------------------------------------------------------------- // Firmware Error Ids // -------------------------------------------------------------------------------------- namespace IDE { static const variable first(0); // guard static const variable noError(first); // No error static const variable retErr(first + 1); // fatalError static const variable retNotInitErr(first + 2); // node not initialized static const variable retNotConnectErr(first + 3); // device not connected static const variable canError(first + 4); // No communication to CAN node static const variable eepromError(first + 5); // No communication to EEPROM static const variable syntaxCmdError(first + 6); // Unknown command static const variable syntaxParUnkError(first + 7); // Unknown parameter. static const variable syntaxParRangeError(first + 8); // Parameter out of range. static const variable generalVoltError(first + 9); // Voltage outside permitted range static const variable generalStopError(first + 10); // Stop received static const variable generalAddrError(first + 11); // Wrong system address static const variable parallelError(first + 12); // Parallel commands are nor allowed static const variable shakerInitError(first + 13); // Shaker initialization failt static const variable shakerNotInitError(first + 14); // Shaker not initialized static const variable shakerStepLossError(first + 15); // Shaker step loss static const variable shakerStartModeError(first + 16); // Shaker is not started with timeout static const variable plateLockInitError(first + 17); // Plate lock initialization failt static const variable plateLockNotInitError(first + 18); // Plate lock not initialized static const variable plateLockStepLossError(first + 19); // Plate lock step loss static const variable tempNotStartError(first + 20); // Temperature controlling not started static const variable tempTimeoutError(first + 21); // Timeout of temperature supervision static const variable tempSuperRangeError(first + 22); // Temperature out of supervision range static const variable tempSecurRangeError(first + 23); // Temperature out of security range static const variable tempSensorError(first + 24); // Temperature out of security range static const variable commandSendTimeout(first + 25); // Time out occured on command ='%s' static const variable unknowFwError(first + 26); // Unknow firmware error = '%s' // none firmware errors static const variable noStringValue(first + 27); // Wrong type of parameter; '%s1(%s2)' must be a sting.. static const variable noIntegerValue(first + 28); // Wrong type of parameter; '%s1(%s2)' must be a whole number. static const variable noDoubleValue(first + 29); // Wrong type of parameter; '%s1(%s2)' must be a whole or decimal number. static const variable neededNodeNotAvailable(first + 30); // Node '%s1' not found, please set it to 0 on parameter '%s2' at position '%s3'. static const variable unknownResultFormat(first + 31); // Unknown format of firmware result string.\r\nExpected: '%s1'.\r\nReceived: '%s2'. static const variable wrongParameterLength(first + 32); // Wrong length of input parameter.\r\nParameter = '%s1' length (%s2).\r\nExpected lenght (%s3). static const variable last(first + 32); // guard } // -------------------------------------------------------------------------------------- // String Ids // -------------------------------------------------------------------------------------- namespace IDS { static const variable first(IDE::last + 1); // guard static const variable traceSource(first); // Text: "SYSTEM", source for formated trace static const variable helpFileName(first + 1); // Text: "HSLHAMHEATERSHAKERLIB%s.CHM", language independend language name static const variable sendMessageTitle(first + 2); // Text: "Send message = " static const variable receiveMessageTitle(first + 3); // Text: "Received answere = " static const variable setSimulate(first + 4); // Text: "Set simulate mode = " static const variable starNode(first + 5); // Text: "ML_Star node" static const variable usbNode(first + 6); // Text: "USB node" static const variable noUsbConnection(first + 7); // Text: "No connection to USB device." static const variable parameterOutOfRange(first + 8); // Text: "Parameter out of range; '%s1(%s2)' must be between [%s3..%s4]." static const variable neededNodeNotInitialized(first + 9); // Text: "Node '%s1' not initialized'." static const variable setTrace(first + 10); // Text: "Set USB trace mode = " static const variable firmwareVersion(first + 11); // Text: "%s1 '%s2' firmware version = " static const variable cannotCreateUsbPort(first + 12); // Text: "USB communication cannot be created." static const variable timeoutDuringWaitShaker(first + 13); // Text: "Time out during wait for end shaking. Shaking will be stop." static const variable progressSendTo(first + 14); // Text: "Send command to %s1 ( %s2 )." static const variable startTimeout(first + 15); // Text: "Start time out = " static const variable toleranceRange(first + 16); // Text: "Temperature range = " static const variable securityRange(first + 17); // Text: "Security range = " static const variable shakingDirection(first + 18); // Text: "Shaking direction = " static const variable shakingSpeed(first + 19); // Text: "Shaking speed = " static const variable shakingAccRamp(first + 20); // Text: "Shaking acceleration ramp = " static const variable sendToStar(first + 21); // Text: "HSLHamHeaterShakerLib::SendToStar" static const variable sendToUsb(first + 22); // Text: "HSLHamHeaterShakerLib::SendToUsb" static const variable invalidStarDevice(first + 23); // Text: "Parameter 'starDevice' contains an invalid object." static const variable invalidDeviceNumber(first + 24); // Text: "Parameter 'deviceNumber' contains an invalid value! \r\nMust be created with function CreateStarDevice() or CreateUsbDevice()" static const variable maxHHSReached(first + 25); // Text: "Cannot create the deviceNumber; Maximum count of usable HHS is reached." static const variable shakingNotActivated(first + 26); // Text: "Current HHS module on %s1 '%s2' cannot used as shaker."); static const variable heatingNotActivated(first + 27); // Text: "Current HHS module on %s1 '%s2' cannot used as heater."); static const variable monitoringShakingTitle(first + 28); // Text: "Current speed (RPM) = "); static const variable monitoringTempTitle(first + 29); // Text: "Current temperature = "); static const variable monitoringTempHeatUpTitle(first + 30);// Text: "Current temperature (heating up mode) = "); static const variable monitoringStateTitle(first + 31); // Text: "Current monitored state = "); static const variable monitoringWarning(first + 32); // Text: "Warning: "); static const variable monitoringShNotStart(first + 33); // Text: "Shaking not started, check of speed limit will be disabled!"); static const variable monitoringHeNotStart(first + 34); // Text: "Heating up not started, check of temperature limit will be disabled!"); static const variable monitoringAbort(first + 35); // Text: "Heating or shaking is out of range; Method will be abort!"); static const variable last(first + 35); // guard } // -------------------------------------------------------------------------------------- // Function Ids // -------------------------------------------------------------------------------------- namespace IDF { // do not change the sort of this list of function and his IDs static const variable first(IDS::last + 1); // guard static const variable CreateStarDevice(first); // Text: "HSLHamHeaterShakerLib - CreateStarDevice" static const variable CreateUsbDevice(first+1); // Text: "HSLHamHeaterShakerLib - CreateUsbDevice" static const variable Terminate(first + 2); // Text: "HSLHamHeaterShakerLib - Terminate" static const variable StartShaker(first + 3); // Text: "HSLHamHeaterShakerLib - StartShaker" static const variable StopShaker(first + 4); // Text: "HSLHamHeaterShakerLib - StopShaker" static const variable StartShakerTimed(first + 5); // Text: "HSLHamHeaterShakerLib - StartShakerTimed" static const variable WaitForShaker(first + 6); // Text: "HSLHamHeaterShakerLib - WaitForShaker" static const variable StartAllShaker(first + 7); // Text: "HSLHamHeaterShakerLib - StartAllShaker" static const variable StartAllShakerTimed(first + 8); // Text: "HSLHamHeaterShakerLib - StartAllShakerTimed" static const variable StopAllShaker(first + 9); // Text: "HSLHamHeaterShakerLib - StopAllShaker" static const variable SetShakerParameter(first + 10); // Text: "HSLHamHeaterShakerLib - SetShakerParameter" static const variable GetShakerParameter(first + 11); // Text: "HSLHamHeaterShakerLib - GetShakerParameter" static const variable GetShakerSpeed(first + 12); // Text: "HSLHamHeaterShakerLib - GetShakerSpeed" static const variable StartTempCtrl(first + 13); // Text: "HSLHamHeaterShakerLib - StartTempCtrl" static const variable StopTempCtrl(first + 14); // Text: "HSLHamHeaterShakerLib - StopTempCtrl" static const variable WaitForTempCtrl(first + 15); // Text: "HSLHamHeaterShakerLib - WaitForTempCtrl" static const variable GetTemperature(first + 16); // Text: "HSLHamHeaterShakerLib - GetTemperature" static const variable GetTemperatureState(first + 17); // Text: "HSLHamHeaterShakerLib - GetTemperatureState" static const variable SetTempParameter(first + 18); // Text: "HSLHamHeaterShakerLib - SetTempParameter" static const variable GetTempParameter(first + 19); // Text: "HSLHamHeaterShakerLib - GetTempParameter" static const variable SetPlateLock(first + 20); // Text: "HSLHamHeaterShakerLib - SetPlateLock" static const variable GetFirmwareVersion(first + 21); // Text: "HSLHamHeaterShakerLib - GetFirmwareVersion" static const variable GetSerialNumber(first + 22); // Text: "HSLHamHeaterShakerLib - GetSerialNumber" static const variable BeginMonitoring(first + 23); // Text: "HSLHamHeaterShakerLib - BeginMonitoring" static const variable EndMonitoring(first + 24); // Text: "HSLHamHeaterShakerLib - EndMonitoring" static const variable SendFirmwareCommand(first + 25); // Text: "HSLHamHeaterShakerLib - SendFirmwareCommand" static const variable SetSimulation(first + 26); // Text: "HSLHamHeaterShakerLib - SetSimulation" static const variable SetUSBTrace(first + 27); // Text: "HSLHamHeaterShakerLib - SetUSBTrace" static const variable Monitoring(first + 28); // Text: "HSLHamHeaterShakerLib - Monitoring" static const variable last(first + 28); // guard } // -------------------------------------------------------------------------------------- // Exception handling // -------------------------------------------------------------------------------------- namespace Error { static function Raise( // raises a runtime error variable errorId, // i: error id, one of IDE variable& fileName, // i: file name variable& funcName, // i: function name variable& lineNumber) // i: line number { variable description(""); string hlpFileName; // set error description if ("" == funcName) description = fileName + "(" + lineNumber + ") : " + StringTable::Load(errorId); else description = fileName + "(" + lineNumber + ") : " + funcName + "()\n" + StringTable::Load(errorId); err.SetDescription(description); hlpFileName = StringTable::Load(IDS::helpFileName); StrReplace(hlpFileName, "%s", GetLanguage()); // raise error err.Raise(errorId, err.GetDescription(), hlpFileName); } static function RaiseEx( // raises a runtime error variable errorId, // i: error id, one of IDE variable errorDesc, // i: error description variable& fileName, // i: file name variable& funcName, // i: function name variable& lineNumber) // i: line number { variable description(""); string hlpFileName; // set error description if ("" == funcName) description = fileName + "(" + lineNumber + ") : " + errorDesc; else description = fileName + "(" + lineNumber + ") : " + funcName + "()\n" + errorDesc; err.SetDescription(description); hlpFileName = StringTable::Load(IDS::helpFileName); StrReplace(hlpFileName, "%s", GetLanguage()); // raise error err.Raise(errorId, err.GetDescription(), hlpFileName); } static function RaiseLast() // re-throws the last runtime error { // re-raise error err.Raise(); } } /**************************************************************************************** * * Internal helper function declaration * ****************************************************************************************/ static function initHamHeaterShakerLib(variable funcId, variable deviceNumber, variable initShaker); static function checkStringInput(variable funcId, variable parameterName, variable input); static function checkIntegerInput(variable funcId, variable parameterName, variable input); static function checkIntegerInputRange(variable funcId, variable parameterName, variable input, variable min, variable max); static function checkDoubleInput(variable funcId, variable parameterName, variable input); static function checkDoubleInputRange(variable funcId, variable parameterName, variable input, variable min, variable max); static function isStarDevice(variable deviceNumber); static function getNodeFromDeviceNumber(variable deviceNumber); static function checkDeviceNumber(variable funcId, variable deviceNumber); static function setHHSSetting(variable funcId, variable deviceNumber, variable& hhsSetting); static function hasHeater(variable funcId, variable deviceNumber, variable throw); static function hasShaker(variable funcId, variable deviceNumber, variable throw); static function sendMsg(variable deviceNumber, variable command, variable parameter, variable timeOut, variable makeTrace); static function sendToUsb(variable deviceNumber, variable command, variable parameter, variable timeOut); static function sendToStar(variable deviceNumber, variable cmd, variable param, variable makeTrace); static function startTrace(variable funcName) void; static function progressTrace(variable funcName, variable progMsgTitle, variable progMsg) void; static function errorTrace(variable funcName, variable errMsg) void; static function errorCompleteTrace(variable funcName, variable errMsg) void; static function endTrace(variable funcName) void; static function getSendState(variable funcId, variable deviceNumber, variable isShaker); static function isFirmwError(variable funcId, string cmdResult, variable makeTrace); static function startPlateLockCmd(variable funcId, variable deviceNumber, variable plateLock); static function startShakingCmd(variable funcId, variable deviceNumber, variable command, variable parameter, variable isStart); synchronized function monitorHeaterShaker(); static function wait(variable waitTime); static function getCurrentShakerRPM(variable deviceNumber, variable makeTrace); static function getCurrentTemp(variable deviceNumber, variable makeTrace); static function pollingForRunningShaker(variable deviceNumber, variable maxPollingTime); static function pollingForRunningHeater(variable deviceNumber, variable maxPollingTime); static function OnAbortHHSLibrary(); static function versionTrace() void; // this function is used in InitializeLibrary() and uses index 0..10 static function traceFirmwareVersion(variable funcId, variable deviceNumber); static function sendToProgressTrace(variable funcName, variable deviceNumber) void; // get the given parameter with filled 0 before value static function formatParam(variable param, variable strWidth); // returns the given parameter normalized (*10) for firmware command as string static function normalizeParam(variable param, variable strWidth); /**************************************************************************************** * * Interface functions * ****************************************************************************************/ //==================================================================== // // Application function CreateStarDevice() // //-------------------------------------------------------------------- // Description: // Initialize shaker/heater module on ML_Star device. // Only NOT initialized nodes will be initialize, the function will // check first the initialization state before. //.................................................................... // Parameters: // in : starDevice : Used STAR device for node T1 and T2 of STAR // in : usedNode : Node which must be create and initialized. (1 or 2) // out: deviceNumber : generated device number which must be used in all other functions // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function CreateStarDevice( device& starDevice, // in: ML_STAR device variable usedNode, // in: node ID (1 or 2) variable& deviceNumber) // out: generated deviceNumber { variable funcRc(IDE::noError); variable funcId(IDF::CreateStarDevice); variable deviceName; variable isSimulate(m_ON); variable isStarSimulate(hslFalse); variable shakingProperty(0); object starObject; versionTrace(); startTrace(funcId); // check input parameter checkIntegerInputRange(funcId, "usedNode", usedNode, m_firstStarNode, m_lastStarNode); onerror goto DeviceError; deviceName = starDevice.GetInstrumentName(); isSimulate = starDevice.GetCfgValueWithKey(m_starSimulateModeKey); starObject = starDevice.GetCommandObject(); onerror goto 0; if(starObject.IsNull()) { string msg; variable funcName; // "Parameter 'starDevice' contains an invalid object." msg = StringTable::Load(IDS::invalidStarDevice); funcName = StringTable::Load(funcId); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } if(GetType(isSimulate) == "i") { if(isSimulate != m_OFF) isStarSimulate = hslTrue; } // initialize the library variables funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); if(0 < funcRc) return (funcRc); deviceNumber = saveAndCreateDeviceNumber(funcId, deviceName, starObject, isStarSimulate, usedNode); // initialize the shaker funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); DeviceError: { string msg; variable funcName; // "Parameter 'starDevice' contains an invalid object." msg = StringTable::Load(IDS::invalidStarDevice); funcName = StringTable::Load(funcId); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } } //==================================================================== // // Application function CreateUsbDevice() // //-------------------------------------------------------------------- // Description: // Initialize shaker/heater module on USB device. // Only NOT initialized nodes will be initialize, the function will // check first the initialization state before. //.................................................................... // Parameters: // in : usedNode : Node which must be create and initialized. (1 or 2) // out: deviceNumber : generated device number which must be used in all other functions // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function CreateUsbDevice( variable usedNode, // in: node ID (1..8) variable& deviceNumber) // out: generated deviceNumber { variable funcRc(IDE::noError); variable funcId(IDF::CreateUsbDevice); variable isStarSimulate(hslFalse); variable shakingProperty(0); object starObject; versionTrace(); startTrace(funcId); // check input parameter checkIntegerInputRange(funcId, "usedNode", usedNode, m_firstUsbNode, m_lastUsbNode); // initialize the library variables funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); if(0 < funcRc) return (funcRc); deviceNumber = saveAndCreateDeviceNumber(funcId, m_hhsUsbObjectName, starObject, isStarSimulate, usedNode); // initialize the shaker funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); } //==================================================================== // // Application function Terminate() // //-------------------------------------------------------------------- // Description: // Terminate the USB device connection. //.................................................................... // Parameters: // none // ................................................................... // return value: // none //.................................................................... // Remarks: // //==================================================================== function Terminate() void { variable funcId(IDF::Terminate); variable nodeIndex(0); startTrace(funcId); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); for( nodeIndex = 0; nodeIndex < m_maxHHS; nodeIndex++) { m_initializedHeater[nodeIndex] = hslFalse; m_deviceName[nodeIndex] = ""; m_nodeNumber[nodeIndex] = 0; m_hhsSetting[nodeIndex] = 0; } if(!m_usbComObject.IsNull()) { // release the usb object // run is crash in cae of multi thread and a call of ReleaseObject() while commands are send / receive // m_usbComObject.ReleaseObject(); } SynLeaveCriticalSection(m_hhsCriticalSection); endTrace(funcId); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function StartShaker() // //-------------------------------------------------------------------- // Description: // Lock plate and start shaking. // //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // shakingSpeed : Shaking speed in RPM round per minutes // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StartShaker(variable deviceNumber, variable shakingSpeed) { variable funcRc(IDE::noError); variable funcId(IDF::StartShaker); variable node; variable command("SB"); string parameter("st%s1sv%s2sr%s3"); string cmdResult; variable shakingDirection; variable shakingAccRamp; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); //tb 2008-12-03 checkIntegerInputRange(funcId, "shakingSpeed", shakingSpeed, ShakingParam::rpmMin, ShakingParam::rpmMax); checkIntegerInput(funcId, "shakingSpeed", shakingSpeed); funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON); if(0 < funcRc) return (funcRc); hasShaker(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); shakingDirection = m_shakingDirection.GetAt(deviceNumber-1); shakingAccRamp = m_shakingAccRamp.GetAt(deviceNumber-1); m_userShakingSpeed[deviceNumber-1] = shakingSpeed; SynLeaveCriticalSection(m_hhsCriticalSection); sendToProgressTrace(funcId, deviceNumber); // change RPM to steps shakingSpeed = Floor(MthRound(shakingSpeed / ShakingParam::rmpStepFactor, 0)); shakingAccRamp = Floor(MthRound(shakingAccRamp / ShakingParam::rmpStepFactor, 0)); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // add saved parameter StrReplace(parameter, "%s1", IStr(shakingDirection)); StrReplace(parameter, "%s2", formatParam(shakingSpeed, ShakingParam::speedParamLenght)); StrReplace(parameter, "%s3", formatParam(shakingAccRamp, ShakingParam::accelParamLenght)); // lock plate cmdResult = startPlateLockCmd(funcId, deviceNumber, m_ON); funcRc = isFirmwError(funcId, cmdResult, hslFalse); if(0 < funcRc) { // be sure that the plate lock is open startPlateLockCmd(funcId, deviceNumber, m_OFF); isFirmwError(funcId, cmdResult, hslTrue); return (funcRc); } // start shaker cmdResult = startShakingCmd(funcId, deviceNumber, command, parameter, hslTrue); funcRc = isFirmwError(funcId, cmdResult, hslFalse); if(0 < funcRc) { // be sure that the plate lock is open startPlateLockCmd(funcId, deviceNumber, m_OFF); isFirmwError(funcId, cmdResult, hslTrue); return (funcRc); } endTrace(funcId); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function StopShaker() // //-------------------------------------------------------------------- // Description: // Stop shaking and unlock plate. // //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StopShaker(variable deviceNumber) { variable funcRc(IDE::noError); variable funcId(IDF::StopShaker); variable command("SC"); variable parameter(""); string cmdResult; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasShaker(funcId, deviceNumber, 1); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // stop shaking cmdResult = startShakingCmd(funcId, deviceNumber, command, parameter, hslFalse); // open plate lock startPlateLockCmd(funcId, deviceNumber, m_OFF); SynEnterCriticalSection(m_hhsCriticalSection); m_userShakingSpeed[deviceNumber-1] = 0; m_shakingTimeOut[deviceNumber-1] = m_OFF; SynLeaveCriticalSection(m_hhsCriticalSection); // check error of stop shaker after open plate lock funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); } //==================================================================== // // Application function StartShakerTimed() // //-------------------------------------------------------------------- // Description: // Lock plate and start shaking with timed duration. //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // shakingSpeed : Shaking speed in RPM round per minutes // shakingTime : Shaking time in seconds // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StartShakerTimed( variable deviceNumber, variable shakingSpeed, variable shakingTime) { variable funcRc(IDE::noError); variable funcId(IDF::StartShakerTimed); variable command("ST"); string parameter("sd%s1st%s2sv%s3sr%s4"); string cmdResult; variable shakingDirection; variable shakingAccRamp; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); //tb 2008-12-03 checkIntegerInputRange(funcId, "shakingSpeed", shakingSpeed, ShakingParam::rpmMin, ShakingParam::rpmMax); checkIntegerInput(funcId, "shakingSpeed", shakingSpeed); //tb 2008-12-03 checkIntegerInputRange(funcId, "shakingTime", shakingTime, ShakingParam::shakingTimeMin, ShakingParam::shakingTimeMax); checkIntegerInput(funcId, "shakingTime", shakingTime); funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON); if(0 < funcRc) return (funcRc); hasShaker(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); shakingDirection = m_shakingDirection.GetAt(deviceNumber-1); shakingAccRamp = m_shakingAccRamp.GetAt(deviceNumber-1); m_shakingTimeOut[deviceNumber-1] = shakingTime; m_userShakingSpeed[deviceNumber-1] = shakingSpeed; SynLeaveCriticalSection(m_hhsCriticalSection); // change RPM to steps shakingSpeed = Floor(MthRound(shakingSpeed / ShakingParam::rmpStepFactor, 0)); shakingAccRamp = Floor(MthRound(shakingAccRamp / ShakingParam::rmpStepFactor, 0)); // add saved parameter StrReplace(parameter, "%s1", formatParam(shakingTime, ShakingParam::timeParamLenght)); StrReplace(parameter, "%s2", IStr(shakingDirection)); StrReplace(parameter, "%s3", formatParam(shakingSpeed, ShakingParam::speedParamLenght)); StrReplace(parameter, "%s4", formatParam(shakingAccRamp, ShakingParam::accelParamLenght)); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // lock plate cmdResult = startPlateLockCmd(funcId, deviceNumber, m_ON); funcRc = isFirmwError(funcId, cmdResult, hslFalse); if(0 < funcRc) { // be sure that the plate lock is open startPlateLockCmd(funcId, deviceNumber, m_OFF); isFirmwError(funcId, cmdResult, hslTrue); return (funcRc); } // start shaker timed cmdResult = startShakingCmd(funcId, deviceNumber, command, parameter, hslTrue); funcRc = isFirmwError(funcId, cmdResult, hslFalse); if(0 < funcRc) { // be sure that the plate lock is open startPlateLockCmd(funcId, deviceNumber, m_OFF); isFirmwError(funcId, cmdResult, hslTrue); return (funcRc); } endTrace(funcId); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function WaitForShaker() // //-------------------------------------------------------------------- // Description: // Waits until a timed shaking has end. //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function WaitForShaker(variable deviceNumber) { variable funcRc(IDE::noError); variable funcId(IDF::WaitForShaker); variable shakingTime(ShakingParam::shakingTimeMax); variable command("SW"); string parameter(""); string cmdResult; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasShaker(funcId, deviceNumber, 1); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (funcRc); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); shakingTime = m_shakingTimeOut.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); // add 60 seconds to the started shaking time (secure that the shaking time out is reached before the wait time out) shakingTime = shakingTime + m_waitTimeOutSecurity; #ifdef _DEBUG progressTrace(funcId, "Function timeout = ", IStr(shakingTime)); #endif // pollen pollingForRunningShaker(deviceNumber, shakingTime - m_waitTimeOutSecurity); // start wait for shaker cmdResult = sendMsg(deviceNumber, command, parameter, shakingTime, hslTrue); // shaker was started with StartShaker or StartAllShaker if(cmdResult.Find(m_fwNoError) < 0) { // stop shaker sendMsg(deviceNumber, "SC", "", m_usbMsgTimeout, hslTrue); } // open plate lock startPlateLockCmd(funcId, deviceNumber, m_OFF); SynEnterCriticalSection(m_hhsCriticalSection); m_userShakingSpeed[deviceNumber-1] = m_OFF; m_shakingTimeOut[deviceNumber-1] = m_OFF; SynLeaveCriticalSection(m_hhsCriticalSection); funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function StartAllShaker() // //-------------------------------------------------------------------- // Description: // Lock plate and start shaking for all initialized shaker. //.................................................................... // Parameters: // shakingSpeed : Shaking speed in RPM round per minutes // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StartAllShaker(variable shakingSpeed) { variable funcRc(IDE::retNotInitErr); variable funcId(IDF::StartAllShaker); variable deviceNumber(0); startTrace(funcId); // parameter are checked in StartShaker() function for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++) { if(isHeaterInitialized(deviceNumber)) { // call StartShaker with 1 base node funcRc = StartShaker(deviceNumber, shakingSpeed); if(0 < funcRc) { errorCompleteTrace(funcId, ""); return (funcRc); } funcRc = IDE::noError; } } if(0 < funcRc) { errorCompleteTrace(funcId, IDE::retNotInitErr); return (funcRc); } endTrace(funcId); return (funcRc); } //==================================================================== // // Application function StartAllShakerTimed() // //-------------------------------------------------------------------- // Description: // Lock plate and start shaking with timed duration for all initialized shaker. //.................................................................... // Parameters: // shakingSpeed : Shaking speed in RPM round per minutes // shakingTime : Shaking time in seconds // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StartAllShakerTimed(variable shakingSpeed, variable shakingTime) { variable funcRc(IDE::retNotInitErr); variable funcId(IDF::StartAllShakerTimed); variable deviceNumber(0); startTrace(funcId); // parameter are checked in StartShakerTimed() function for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++) { if(isHeaterInitialized(deviceNumber)) { // call StartShaker with 1 base node funcRc = StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); if(0 < funcRc) { errorCompleteTrace(funcId, ""); return (funcRc); } funcRc = IDE::noError; } } if(0 < funcRc) { errorCompleteTrace(funcId, IDE::retNotInitErr); return (funcRc); } endTrace(funcId); return (funcRc); } //==================================================================== // // Application function StopAllShaker() // //-------------------------------------------------------------------- // Description: // Stop shaking and unlock plate for all initialized shaker. // //.................................................................... // Parameters: // none // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StopAllShaker() { variable funcRc(IDE::retNotInitErr); variable funcId(IDF::StopAllShaker); variable deviceNumber(0); startTrace(funcId); for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++) { if(isHeaterInitialized(deviceNumber)) { // call StopShaker with 1 base node funcRc = StopShaker(deviceNumber); if(0 < funcRc) { errorCompleteTrace(funcId, ""); return (funcRc); } funcRc = IDE::noError; } } if(0 < funcRc) { errorCompleteTrace(funcId, IDE::retNotInitErr); return (funcRc); } endTrace(funcId); return (funcRc); } //==================================================================== // // Application function SetShakerParameter() // //-------------------------------------------------------------------- // Description: // Set the parameter for plate shaking //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // shakingDirection : Shaking direction left/right (0/1) // shakingAccRamp : Acceleration ramp (1..4) // ................................................................... // return value: // Raise : Wrong parameter //.................................................................... // Remarks: // //==================================================================== function SetShakerParameter( variable deviceNumber, variable shakingDirection, variable shakingAccRamp) void { variable funcId(IDF::SetShakerParameter); variable node; string nodeType; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); checkIntegerInputRange(funcId, "shakingDirection", shakingDirection, m_OFF, m_ON); //tb 2008-12-03 checkIntegerInputRange(funcId, "shakingAccRamp", shakingAccRamp, ShakingParam::rampMin, ShakingParam::rampMax); checkIntegerInput(funcId, "shakingAccRamp", shakingAccRamp); if(isStarDevice(deviceNumber)) nodeType = StringTable::Load(IDS::starNode); else nodeType = StringTable::Load(IDS::usbNode); node = getNodeFromDeviceNumber(deviceNumber); progressTrace(funcId, nodeType, IStr(node)); progressTrace(funcId, IDS::shakingDirection, IStr(shakingDirection)); progressTrace(funcId, IDS::shakingAccRamp, IStr(shakingAccRamp)); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasShaker(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); m_shakingDirection[deviceNumber-1] = shakingDirection; m_shakingAccRamp[deviceNumber-1] = shakingAccRamp; SynLeaveCriticalSection(m_hhsCriticalSection); endTrace(funcId); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function GetShakerParameter() // //-------------------------------------------------------------------- // Description: // Get the parameter for plate shaking //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // shakingDirection : Shaking direction left/right (0/1) // shakingAccRamp : Acceleration ramp (1..4) // ................................................................... // return value: // Raise : Wrong parameter //.................................................................... // Remarks: // //==================================================================== function GetShakerParameter( variable deviceNumber, variable& shakingDirection, variable& shakingAccRamp) void { variable funcId(IDF::GetShakerParameter); variable node; string nodeType; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); shakingDirection = ShakingParam::directionDefault; shakingAccRamp = ShakingParam::rampDefault; initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasShaker(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); shakingDirection = m_shakingDirection.GetAt(deviceNumber-1); shakingAccRamp = m_shakingAccRamp.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); node = getNodeFromDeviceNumber(deviceNumber); if(isStarDevice(deviceNumber)) nodeType = StringTable::Load(IDS::starNode); else nodeType = StringTable::Load(IDS::usbNode); progressTrace(funcId, nodeType, IStr(node)); progressTrace(funcId, IDS::shakingDirection, IStr(shakingDirection)); progressTrace(funcId, IDS::shakingAccRamp, IStr(shakingAccRamp)); endTrace(funcId); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function GetShakerSpeed() // //-------------------------------------------------------------------- // Description: // Lock plate and start shaking with timed duration. //.................................................................... // Parameters: // in : deviceNumber : device number which was generated on CreateXXDevice() // out: shakingSpeed : Shaking speed in RPM round per minutes // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function GetShakerSpeed( variable deviceNumber, variable& shakingSpeed) { variable funcRc(IDE::noError); variable funcId(IDF::GetShakerSpeed); startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); shakingSpeed = 0; funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON); if(0 < funcRc) return (funcRc); hasShaker(funcId, deviceNumber, 1); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); shakingSpeed = getCurrentShakerRPM(deviceNumber, hslTrue); endTrace(funcId); return (funcRc); } //==================================================================== // // Application function StartTempCtrl() // //-------------------------------------------------------------------- // Description: // Set incubation temperature and wait (if set) until temperature is reached //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // temperature : Incubation temperature // waitForTempReached : Flag for waiting until temperature is reached // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StartTempCtrl( variable deviceNumber, variable temperature, variable waitForTempReached) { variable funcRc(IDE::noError); variable funcId(IDF::StartTempCtrl); variable tempStartTimeOut; variable tempToleranceRange; variable tempSecurityRange; variable command("TA"); variable parameter("ta%s1tb%s2tc%s3td%s4"); variable cmdResult; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); //tb 2008-12-03 checkDoubleInputRange(funcId, "temperature", temperature, TemperateParam::tempMin, TemperateParam::tempMax); checkDoubleInput(funcId, "temperature", temperature); checkIntegerInputRange(funcId, "waitForTempReached", waitForTempReached, m_OFF, m_ON); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasHeater(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); tempStartTimeOut = m_tempStartTimeOut.GetAt(deviceNumber-1); tempToleranceRange = m_tempToleranceRange.GetAt(deviceNumber-1); tempSecurityRange = m_tempSecurityRange.GetAt(deviceNumber-1); m_userTemperature[deviceNumber-1] = temperature; SynLeaveCriticalSection(m_hhsCriticalSection); StrReplace(parameter, "%s1", normalizeParam(temperature, TemperateParam::paramLength)); StrReplace(parameter, "%s2", formatParam(tempStartTimeOut, TemperateParam::paramLength)); StrReplace(parameter, "%s3", normalizeParam(tempToleranceRange, TemperateParam::paramLength)); StrReplace(parameter, "%s4", normalizeParam(tempSecurityRange, TemperateParam::paramLength)); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslFalse); if(0 < funcRc) return (funcRc); // add 60 seconds to the started heat up time (secure that the heat up time out is reached before the wait time out) tempStartTimeOut = tempStartTimeOut + m_waitTimeOutSecurity; if(tempStartTimeOut < m_usbMsgTimeout) tempStartTimeOut = m_usbMsgTimeout; #ifdef _DEBUG progressTrace(funcId, "Function timeout = ", IStr(tempStartTimeOut)); #endif // set temperature cmdResult = sendMsg(deviceNumber, command, parameter, tempStartTimeOut, hslTrue); funcRc = isFirmwError(funcId, cmdResult, hslFalse); // command waits until temperature is in controlling mode if(waitForTempReached == m_ON && funcRc == IDE::noError) { pollingForRunningHeater(deviceNumber, tempStartTimeOut-m_waitTimeOutSecurity); // wait for temperature cmdResult = sendMsg(deviceNumber, "TW", "", m_usbMsgTimeout, hslTrue); } funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function StopTempCtrl() // //-------------------------------------------------------------------- // Description: // Set incubation temperature control off //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StopTempCtrl( variable deviceNumber) { variable funcRc(IDE::noError); variable funcId(IDF::StopTempCtrl); variable command("TO"); variable parameter(""); variable cmdResult; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasHeater(funcId, deviceNumber, 1); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslFalse); if(0 < funcRc) return (funcRc); // set temperature cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue); SynEnterCriticalSection(m_hhsCriticalSection); m_userTemperature[deviceNumber-1] = 0; SynLeaveCriticalSection(m_hhsCriticalSection); funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); } //==================================================================== // // Application function WaitForTempCtrl() // //-------------------------------------------------------------------- // Description: // Waits until the on StartTempCtrl() given temperature is reached //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function WaitForTempCtrl( variable deviceNumber) { variable funcRc(IDE::noError); variable funcId(IDF::WaitForTempCtrl); variable tempStartTimeOut; variable command("TW"); variable parameter(""); variable cmdResult; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasHeater(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); tempStartTimeOut = m_tempStartTimeOut.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); // add 60 seconds to the started heat up time (secure that the heat up time out is reached before the wait time out) tempStartTimeOut = tempStartTimeOut + m_waitTimeOutSecurity; if(tempStartTimeOut < m_usbMsgTimeout) tempStartTimeOut = m_usbMsgTimeout; #ifdef _DEBUG progressTrace(funcId, "Function timeout = ", IStr(tempStartTimeOut)); #endif sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslFalse); if(0 < funcRc) return (funcRc); // make a polling until temperature controlling is in controlling mode pollingForRunningHeater(deviceNumber, tempStartTimeOut-m_waitTimeOutSecurity); // wait for temperature is reached (get heating up errors) cmdResult = sendMsg(deviceNumber, command, parameter, tempStartTimeOut, hslTrue); funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function GetTemperature() // //-------------------------------------------------------------------- // Description: // Get the current temperatur //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // temperature : Actual carrier temperature // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function GetTemperature( variable deviceNumber, variable& temperature) { variable funcRc(IDE::noError); variable funcId(IDF::GetTemperature); startTrace(funcId); temperature = 0; checkDeviceNumber(funcId, deviceNumber); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasHeater(funcId, deviceNumber, 1); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslFalse); if(0 < funcRc) return (funcRc); temperature = getCurrentTemp(deviceNumber, hslTrue); endTrace(funcId); return (funcRc); } //==================================================================== // // Application function GetTemperatureState() // //-------------------------------------------------------------------- // Description: // Get the state of temperatur supervision //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // temperatureState : State of temperature supervision 0 = OK, 1 = out of range, 2 = out of security // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function GetTemperatureState( variable deviceNumber, variable& temperatureState) { variable funcRc(IDE::noError); variable funcId(IDF::GetTemperatureState); variable command("QE"); variable parameter(""); string cmdResult; variable startPos; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); temperatureState = TemperateParam::tempStateOk; initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasHeater(funcId, deviceNumber, 1); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslFalse); if(0 < funcRc) return (funcRc); // wait for temperature is reached cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue); funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); // format: qe## startPos = cmdResult.Find("qe"); if((cmdResult.GetLength() < TemperateParam::tempStateRequestLength) || (startPos < 0)) { variable errMsg; // "Unknown format of firmware result string.\r\nExpected: '%s1'.\r\nReceived: '%s2'." errMsg = StringTable::Load(IDE::unknownResultFormat); StrReplace(errMsg, "%s1", "qe##"); StrReplace(errMsg, "%s2", cmdResult); errorCompleteTrace(funcId, errMsg); return (IDE::unknownResultFormat); } // read both temperature and calculate the average // format: qe## ( 00, 62 or 63 ) if(cmdResult.Find("qe62") >= 0) temperatureState = TemperateParam::tempStateOutOfRange; else if(cmdResult.Find("qe63") >= 0) temperatureState = TemperateParam::tempStateOutOfSecurity; else if(cmdResult.Find("qe00") < 0) temperatureState = TemperateParam::tempStateTimeOut; endTrace(funcId); return (funcRc); } //==================================================================== // // Application function SetTempParameter() // //-------------------------------------------------------------------- // Description: // Set the parameter of temperatur supervision //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // startTimeout : Time which must elapse before temperature will be controlled // toleranceRange : Range of temperature tolerance // securityRange : Range of temperature security, on leave heater will be switched off // ................................................................... // return value: // Raise : An exception is throw on wrong parameter or time out //.................................................................... // Remarks: // //==================================================================== function SetTempParameter( variable deviceNumber, variable startTimeout, variable toleranceRange, variable securityRange) void { variable funcId(IDF::SetTempParameter); variable node; string nodeType; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); //tb 2008-12-03 checkIntegerInputRange(funcId, "startTimeout", startTimeout, TemperateParam::startTimeOutMin, TemperateParam::startTimeOutMax); checkIntegerInput(funcId, "startTimeout", startTimeout); //tb 2008-12-03 checkDoubleInputRange(funcId, "toleranceRange", toleranceRange, TemperateParam::tempToleranceMin, TemperateParam::tempToleranceMax); checkDoubleInput(funcId, "toleranceRange", toleranceRange); //tb 2008-12-03 checkDoubleInputRange(funcId, "securityRange", securityRange, TemperateParam::tempSecurityMin, TemperateParam::tempSecurityMax); checkDoubleInput(funcId, "securityRange", securityRange); if(isStarDevice(deviceNumber)) nodeType = StringTable::Load(IDS::starNode); else nodeType = StringTable::Load(IDS::usbNode); node = getNodeFromDeviceNumber(deviceNumber); progressTrace(funcId, nodeType, IStr(node)); progressTrace(funcId, IDS::startTimeout, IStr(startTimeout)); progressTrace(funcId, IDS::toleranceRange, FStr(toleranceRange, hslTrue)); progressTrace(funcId, IDS::securityRange, FStr(securityRange, hslTrue)); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasHeater(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); m_tempStartTimeOut[deviceNumber-1] = startTimeout; m_tempToleranceRange[deviceNumber-1] = toleranceRange; m_tempSecurityRange[deviceNumber-1] = securityRange; SynLeaveCriticalSection(m_hhsCriticalSection); endTrace(funcId); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function GetTempParameter() // //-------------------------------------------------------------------- // Description: // Get the parameter of temperatur supervision //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // startTimeout : Time which must elapse before temperature will be controlled // toleranceRange : Range of temperature tolerance // securityRange : Range of temperature security, on leave heater will be switched off // ................................................................... // return value: // Raise : An exception is throw on wrong parameter or time out //.................................................................... // Remarks: // //==================================================================== function GetTempParameter( variable deviceNumber, variable& startTimeout, variable& toleranceRange, variable& securityRange) void { variable funcId(IDF::GetTempParameter); variable node; string nodeType; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); // init output parameter startTimeout = TemperateParam::startTimeOutDefault; toleranceRange = TemperateParam::tempToleranceDefault; securityRange = TemperateParam::tempSecurityDefault; initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasHeater(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); // set output parameter startTimeout = m_tempStartTimeOut.GetAt(deviceNumber-1); toleranceRange = m_tempToleranceRange.GetAt(deviceNumber-1); securityRange = m_tempSecurityRange.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); if(isStarDevice(deviceNumber)) nodeType = StringTable::Load(IDS::starNode); else nodeType = StringTable::Load(IDS::usbNode); node = getNodeFromDeviceNumber(deviceNumber); progressTrace(funcId, nodeType, IStr(node)); progressTrace(funcId, IDS::startTimeout, IStr(startTimeout)); progressTrace(funcId, IDS::toleranceRange, FStr(toleranceRange, hslTrue)); progressTrace(funcId, IDS::securityRange, FStr(securityRange, hslTrue)); endTrace(funcId); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function SetPlateLock() // //-------------------------------------------------------------------- // Description: // Set the parameter for plate shaking // //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // plateLock : Lock / unlock flag // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function SetPlateLock( variable deviceNumber, variable plateLock) { variable funcRc(IDE::noError); variable funcId(IDF::SetPlateLock); variable cmdResult; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); checkIntegerInputRange(funcId, "plateLock", plateLock, m_OFF, m_ON); funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON); if(0 < funcRc) return (funcRc); sendToProgressTrace(funcId, deviceNumber); hasShaker(funcId, deviceNumber, 1); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // start lock command cmdResult = startPlateLockCmd(funcId, deviceNumber, plateLock); funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); } //==================================================================== // // Application function GetFirmwareVersion() // //-------------------------------------------------------------------- // Description: // Get firmware version of current HHS // //.................................................................... // Parameters: // in : deviceNumber : device number which was generated on CreateXXDevice() // out: firmwareVersion : firmware version format: "1.0P 1999-03-10" // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function GetFirmwareVersion( variable deviceNumber, variable& firmwareVersion) { variable funcRc(IDE::noError); variable funcId(IDF::GetFirmwareVersion); string answString; variable startPos; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); firmwareVersion = "0.0S 2008-01-01"; funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); if(0 < funcRc) return (funcRc); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // read the firmware version of current node answString = sendMsg(deviceNumber, "RF", "", m_usbInitTimeout, hslTrue); startPos = answString.Find("rf"); if(startPos >= 0) { firmwareVersion = answString.Right(answString.GetLength()-(startPos+2)); } endTrace(funcId); return (funcRc); } //==================================================================== // // Application function GetSerialNumber() // //-------------------------------------------------------------------- // Description: // Get serial number of current HHS // //.................................................................... // Parameters: // in : deviceNumber : device number which was generated on CreateXXDevice() // out: firmwareVersion : firmware serial number format: "####" // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function GetSerialNumber( variable deviceNumber, variable& serialNumber) { variable funcRc(IDE::noError); variable funcId(IDF::GetSerialNumber); string answString; variable startPos; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); serialNumber = "0000"; funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); if(0 < funcRc) return (funcRc); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // read the firmware version of current node answString = sendMsg(deviceNumber, "QT", "", m_usbInitTimeout, hslTrue); // format: qt######/##/#### part number, revision, serial number startPos = answString.Find("qt"); if(startPos >= 0 && answString.GetLength() > startPos+12) { serialNumber = answString.Mid((startPos+2+10), 4); } endTrace(funcId); return (funcRc); } //==================================================================== // // Application function BeginMonitoring() // //-------------------------------------------------------------------- // Description: // Get serial number of current HHS // //.................................................................... // Parameters: // in : deviceNumber : device number which was generated on CreateXXDevice() // in : shakerMin : Minimum RPM // in : shakerMax : Maximum RPM // in : sampleInterval : Interval in sec. for check RPM and temperature // in : action : Continue / Abort (0 / 1) // Note: Abort will only called on an error after temperature controlling is activated () // An abort will end only the current heater/shaker. // Note: heaterMin and heaterMax uses the parameter toleranceRange of SetTempParameter() // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function BeginMonitoring( variable deviceNumber, variable shakingToleranceRange, variable sampleInterval, variable action) { variable funcRc(IDE::noError); variable funcId(IDF::BeginMonitoring); string answString; variable startPos; event startEvent; variable sSpeed; variable hTemp; variable shakerMin(m_OFF); variable shakerMax(ShakingParam::rpmMax); variable heaterTempTol(m_OFF); variable heaterMin(TemperateParam::tempMin); variable heaterMax(TemperateParam::tempMax); variable node; variable nodeType; variable funcName; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); checkIntegerInputRange(funcId, "shakingToleranceRange", shakingToleranceRange, ShakingParam::shakeTolMin, ShakingParam::shakeTolMax); checkIntegerInputRange(funcId, "sampleInterval", sampleInterval, m_minSampleInterval, m_maxSampleInterval); checkIntegerInputRange(funcId, "action", action, MonitorAction::monitorActionMin, MonitorAction::monitorActionMax); funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); if(0 < funcRc) return (funcRc); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); sSpeed = m_userShakingSpeed.GetAt(deviceNumber-1); hTemp = m_userTemperature.GetAt(deviceNumber-1); heaterTempTol = m_tempToleranceRange.GetAt(deviceNumber-1); m_monitorResult.SetAt(deviceNumber-1, -1); SynLeaveCriticalSection(m_hhsCriticalSection); onerror goto 0; if(isStarDevice(deviceNumber)) nodeType = StringTable::Load(IDS::starNode); else nodeType = StringTable::Load(IDS::usbNode); node = getNodeFromDeviceNumber(deviceNumber); // if no shaker is initialized, set the maximum range if(hasShaker(funcId, deviceNumber, 0) && sSpeed > m_OFF) { shakerMin = sSpeed-shakingToleranceRange; if(shakerMin < 0) shakerMin = 0; shakerMax = sSpeed+shakingToleranceRange; } else if(sSpeed == m_OFF) { string moniText; moniText = StringTable::Load(IDS::monitoringShNotStart); StrReplace(moniText, "%s1", nodeType); StrReplace(moniText, "%s2", IStr(node)); // Shaking on %s1 ( %s2 ) not started, check of speed limit will be disabled! progressTrace(funcId, IDS::monitoringWarning, moniText); } if(hasHeater(funcId, deviceNumber, 0) && hTemp > m_OFF) { heaterMin = hTemp - heaterTempTol; if(heaterMin < m_OFF) heaterMin = m_OFF; heaterMax = hTemp + heaterTempTol; } else if(hTemp == m_OFF) { variable moniText; moniText = StringTable::Load(IDS::monitoringHeNotStart); StrReplace(moniText, "%s1", nodeType); StrReplace(moniText, "%s2", IStr(node)); // Heating up on %s1 ( %s2 ) not started, check of temperature limit will be disabled! progressTrace(funcId, IDS::monitoringWarning, moniText); } sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); // Prepare the globals for the hsl thread. m_monitorDeviceNumber = deviceNumber; m_monitorShakerMin = shakerMin; m_monitorShakerMax = shakerMax; m_monitorSampleInterval = sampleInterval; m_monitorAction = action; m_monitorResult[deviceNumber-1] = -1; m_monitorHeaterMin = heaterMin; m_monitorHeaterMax = heaterMax; Fork( "monitorHeaterShaker" ); // wait until thread has received the global data (maximum 10 seconds) m_monitorStartEvent.WaitEvent(10); SynLeaveCriticalSection(m_hhsCriticalSection); endTrace(funcId); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function EndMonitoring() // //-------------------------------------------------------------------- // Description: // Get serial number of current HHS // //.................................................................... // Parameters: // in : deviceNumber : device number which was generated on CreateXXDevice() // out: monitorResult : -1 = monitoring has not started or is not initialized // 0 = heating and shaking values were within specification // 1 = heating out of range // 2 = shaking out of range // 3 = heating and shaking out of range // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function EndMonitoring( variable deviceNumber, variable& monitorResult) { variable funcRc(IDE::noError); variable funcId(IDF::EndMonitoring); event intervalEvent; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); if(0 < funcRc) return (funcRc); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); intervalEvent = m_monitorEvent.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); intervalEvent.SetEvent(); SynEnterCriticalSection(m_hhsCriticalSection); monitorResult = m_monitorResult.GetAt(deviceNumber-1); m_monitorResult.SetAt(deviceNumber-1, -1); SynLeaveCriticalSection(m_hhsCriticalSection); endTrace(funcId); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function SetSimulation() // //-------------------------------------------------------------------- // Description: // Set the internal flag m_isSimulate. // If this flag is set, only parameter checks are made on all exported function // //.................................................................... // Parameters: // simulate : Flag for set the simulate mode, must be a number 0/1 // // ................................................................... // return value: // Raise : Wrong parameter //.................................................................... // Remarks: // //==================================================================== function SetSimulation(variable simulate) void { variable funcId(IDF::SetSimulation); startTrace(funcId); checkIntegerInputRange(funcId, "simulate", simulate, m_OFF, m_ON); progressTrace(funcId, IDS::setSimulate, IStr(simulate)); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); m_isSimulate = hslFalse; if(simulate == m_ON) m_isSimulate = hslTrue; SynLeaveCriticalSection(m_hhsCriticalSection); endTrace(funcId); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function SendFirmwareCommand() // //-------------------------------------------------------------------- // Description: // Send a command to the device // //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // command : Firmware command without node name ( 2 letter ) // parameter : Parameter dependent of the used command // ................................................................... // return value: // Raise : An exception is throw on wrong parameter or time out // string : Firmware command result data string //.................................................................... // Remarks: // //==================================================================== function SendFirmwareCommand( variable deviceNumber, variable command, variable parameter) { variable funcRc(IDE::noError); variable funcId(IDF::SendFirmwareCommand); string cmd; string cmdResult; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); checkStringInput(funcId, "command", command); checkStringInput(funcId, "parameter", parameter); // check for two character as command cmd = command; if(cmd.GetLength() != m_firmwareCmdLength) { variable funcName; string errMsg; // "Wrong length of input parameter.\r\nParameter = '%s1' length (%s2).\r\nExpected lenght (%s3)." errMsg = StringTable::Load(IDE::wrongParameterLength); StrReplace(errMsg, "%s1", "command"); StrReplace(errMsg, "%s2", IStr(cmd.GetLength())); StrReplace(errMsg, "%s3", IStr(m_firmwareCmdLength)); funcName = StringTable::Load(funcId); Error::RaiseEx(IDE::wrongParameterLength, errMsg, GetFileName(), funcName, GetLineNumber()); } funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON); if(0 < funcRc) return (funcRc); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // wait for temperature is reached cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue); endTrace(funcId); return (cmdResult); } //==================================================================== // // Application function SetUSBTrace() // //-------------------------------------------------------------------- // Description: // Set the parameter for plate shaking // //.................................................................... // Parameters: // trace : Trace on / off. 0 = off, 1 = on // ................................................................... // return value: // Raise : An exception is throw on wrong parameter or time out //.................................................................... // Remarks: // //==================================================================== function SetUSBTrace(variable trace) void { variable funcId(IDF::SetUSBTrace); startTrace(funcId); checkIntegerInputRange(funcId, "trace", trace, m_OFF, m_ON); progressTrace(funcId, IDS::setTrace, IStr(trace)); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); m_usbTrace = hslFalse; // set trace flag if(trace == 1) m_usbTrace = hslTrue; SynLeaveCriticalSection(m_hhsCriticalSection); endTrace(funcId); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } /**************************************************************************************** * * Internal helper function declaration * ****************************************************************************************/ // -------------------------------------------------------------------------------------- // Library Initialization and data access functions // -------------------------------------------------------------------------------------- static function initStringTable() void { // activate error handler onerror goto Unexpected; if(0 == m_hhsCriticalSection) m_hhsCriticalSection = SynInitializeCriticalSection(); SynEnterCriticalSection(m_hhsCriticalSection); if(!m_isStringTableInitialized) { StringTable::Init("HSLHamHeaterShakerStringTable"); m_isStringTableInitialized = hslTrue; } SynLeaveCriticalSection(m_hhsCriticalSection); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } static function InitializeNode(variable funcId, variable deviceNumber) { variable funcRc(IDE::noError); variable node; variable nodeNameId(IDS::starNode); // check if the library set to simulate if(isSimulate(funcId, deviceNumber, hslFalse)) return(funcRc); // init node if needed if(!isHeaterInitialized(deviceNumber)) { string answString; variable hhsSettings(-1); // on usb check connection if(!isStarDevice(deviceNumber)) { if(!isUsbConnected(funcId)) return (IDE::retNotConnectErr); nodeNameId = IDS::usbNode; } // ask for settings setHHSSetting(funcId, deviceNumber, hhsSettings); if(0 < funcRc) return (funcRc); // check if shaking activated if((hhsSettings != m_shakingPropertyHeatAndShake) && (hhsSettings != m_shakingPropertyOnlyShake)) return (funcRc); // init HHS on nodes if needed answString = sendMsg(deviceNumber, "QW", "", m_usbInitTimeout, hslTrue); if(isStarDevice(deviceNumber)) { funcRc = isFirmwError(funcId, answString, hslTrue); if(0 < funcRc) return (funcRc); } node = getNodeFromDeviceNumber(deviceNumber); // check for timeout, if timeout, only node 0 is installed without any other CAN nodes // if CAN error, this node is not available if((answString.Find(m_fwTimeoutError) >= 0) || (answString.Find(m_fwCanError) >= 0)) { // "%s1 '%s2' not available." string msg; string nodeName; variable funcName; msg = StringTable::Load(IDE::neededNodeNotAvailable); nodeName = StringTable::Load(nodeNameId); funcName = StringTable::Load(funcId); StrReplace(msg, "%s1", nodeName); StrReplace(msg, "%s2", IStr(node)); errorCompleteTrace(funcId, msg); if(answString.Find(m_fwTimeoutError) >= 0) Error::RaiseEx(IDE::neededNodeNotAvailable, msg, GetFileName(), funcName, GetLineNumber()); else Error::RaiseEx(IDE::canError, msg, GetFileName(), funcName, GetLineNumber()); } traceFirmwareVersion(funcId, deviceNumber); if(answString.Find(m_fwIsInitialized) >= 0) setHeaterInitialized(deviceNumber); else { // change of 2009/08/13 // answString = sendMsg(deviceNumber, "SI", "", m_usbInitTimeout, hslTrue); // if(answString.Find(m_fwNoError) >= 0) // { // answString = sendMsg(deviceNumber, "LI", "", m_usbInitTimeout, hslTrue); // if(answString.Find(m_fwNoError) >= 0) // setHeaterInitialized(deviceNumber); // } answString = sendMsg(deviceNumber, "LI", "", m_usbInitTimeout, hslTrue); sendMsg(deviceNumber, "LP", "lp1", m_usbInitTimeout, hslTrue); if(answString.Find(m_fwNoError) >= 0) { answString = sendMsg(deviceNumber, "SI", "", m_usbInitTimeout, hslTrue); if(answString.Find(m_fwNoError) >= 0) setHeaterInitialized(deviceNumber); sendMsg(deviceNumber, "LP", "lp0", m_usbInitTimeout, hslTrue); } // end change of 2009/08/13 funcRc = isFirmwError(funcId, answString, hslTrue); if(0 < funcRc) return (funcRc); } } return (funcRc); } static function initHamHeaterShakerLib(variable funcId, variable deviceNumber, variable initShaker) { variable funcRc(IDE::noError); initStringTable(); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); if(!m_initializedLib) { variable nodeIndex(0); RegisterAbortHandler("HSLHamHeaterShaker::OnAbortHHSLibrary"); m_monitorDeviceNumber = m_OFF; m_monitorShakerMin = m_OFF; m_monitorShakerMax = m_OFF; m_monitorSampleInterval = m_OFF; m_monitorAction = m_OFF; for( nodeIndex = 0; nodeIndex < m_maxHHS; nodeIndex++) { m_initializedHeater[nodeIndex] = hslFalse; m_shakingDirection[nodeIndex] = ShakingParam::directionDefault; m_shakingAccRamp[nodeIndex] = ShakingParam::rampDefault; m_shakingTimeOut[nodeIndex] = m_OFF; m_tempStartTimeOut[nodeIndex] = TemperateParam::startTimeOutDefault; m_tempToleranceRange[nodeIndex] = TemperateParam::tempToleranceDefault; m_tempSecurityRange[nodeIndex] = TemperateParam::tempSecurityDefault; m_userShakingSpeed[nodeIndex] = m_OFF; m_userTemperature[nodeIndex] = m_OFF; m_deviceName[nodeIndex] = ""; m_isStarSimulate[nodeIndex] = hslFalse; m_nodeNumber[nodeIndex] = m_OFF; m_hhsSetting[nodeIndex] = m_OFF; m_monitorResult[nodeIndex] = -1; } m_initializedLib = hslTrue; } SynLeaveCriticalSection(m_hhsCriticalSection); // check for node initialize, this call must be outside of CriticalSection if(initShaker > m_OFF) funcRc = InitializeNode(funcId, deviceNumber); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } static function isUsbConnected(variable funcId) { variable rc (hslFalse); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); if(!m_usbComObject.IsNull()) { if(m_usbComObject.Connected) rc = hslTrue; } SynLeaveCriticalSection(m_hhsCriticalSection); if(!rc) { variable msg; msg = StringTable::Load(IDS::noUsbConnection); errorCompleteTrace(funcId, msg); } return (rc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } static function isSimulate(variable funcId, variable deviceNumber, variable makeTrace) { variable retVal(hslFalse); variable starSimState(hslFalse); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); retVal = m_isSimulate; starSimState = m_isStarSimulate[deviceNumber-1]; SynLeaveCriticalSection(m_hhsCriticalSection); // if m_isSimulate is set, both devices are simulate // if m_isSimulate is not set, check if useMlStar and m_isStarSimulate is set if(retVal) { // if simulate, trace the function end if(makeTrace) endTrace(funcId); return (retVal); } if(starSimState) { // if simulate, trace the function end if(makeTrace) endTrace(funcId); return (hslTrue); } // simulation is not set return (retVal); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); return (retVal); } } // uses node from 1 to 10 static function isHeaterInitialized(variable deviceNumber) { variable retVal(hslFalse); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); retVal = m_initializedHeater.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); return (retVal); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); return (retVal); } } // uses node from 1 to 10 static function setHeaterInitialized(variable deviceNumber) { variable retVal(hslFalse); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); m_initializedHeater[deviceNumber-1] = hslTrue; SynLeaveCriticalSection(m_hhsCriticalSection); return (retVal); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); return (retVal); } } static function isUsbTrace() { variable retVal(hslFalse); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); retVal = m_usbTrace; SynLeaveCriticalSection(m_hhsCriticalSection); return (retVal); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); return (retVal); } } // -------------------------------------------------------------------------------------- // Communication functions // -------------------------------------------------------------------------------------- //==================================================================== // // Internal function getSendState() // //-------------------------------------------------------------------- // Description: // Check the connect and initialize state. // Must be call from each interface function which will send a command to the shaker //==================================================================== static function getSendState(variable funcId, variable deviceNumber, variable isShaker) { variable node; variable nodeTxt; node = getNodeFromDeviceNumber(deviceNumber); nodeTxt = StringTable::Load(IDS::starNode); if(!isStarDevice(deviceNumber)) { if(!isUsbConnected(funcId)) return (IDE::retNotConnectErr); nodeTxt = StringTable::Load(IDS::usbNode); } if(!isHeaterInitialized(deviceNumber) && isShaker) { // "%s1 '%s2' not initialized'." variable msg; msg = StringTable::Load(IDS::neededNodeNotInitialized); StrReplace(msg, "%s1", nodeTxt); StrReplace(msg, "%s2", IStr(node)); errorCompleteTrace(funcId, msg); return (IDE::retNotInitErr); } return (IDE::noError); } //==================================================================== // // Internal function sendMsg() // //-------------------------------------------------------------------- // Description: // Sends a command dependent of device to a star or to the usb. //==================================================================== static function sendMsg(variable deviceNumber, variable command, variable parameter, variable timeOut, variable makeTrace) { variable receMsg; if(isStarDevice(deviceNumber)) { receMsg = sendToStar(deviceNumber, command, parameter, makeTrace); } else { receMsg = sendToUsb(deviceNumber, command, parameter, timeOut); } return (receMsg); } //==================================================================== // // Internal function sendToUsb() // //-------------------------------------------------------------------- // Description: // Sends a command to the corresponding device node via USB. //==================================================================== static function sendToUsb(variable deviceNumber, variable command, variable parameter, variable timeOut) { variable node; variable sendMsg("T"); variable receMsg; string cmd(command); node = getNodeFromDeviceNumber(deviceNumber); sendMsg = sendMsg + IStr(node-1); // USB has an 0 bsed adderss node 0..7 sendMsg = sendMsg + command; sendMsg = sendMsg + parameter; if(isUsbTrace()) progressTrace(IDS::sendToUsb, IDS::sendMessageTitle, sendMsg); receMsg = m_usbComObject.Request(sendMsg, timeOut); // on request of firmware version do not trace the answere. // Answere is traced as firmware version in function traceFirmwareVersion() if(isUsbTrace() && (cmd.Find("RF") < 0)) progressTrace(IDS::sendToUsb, IDS::receiveMessageTitle, receMsg); return (receMsg); } //==================================================================== // // Internal function sendToStar() // //-------------------------------------------------------------------- // Description: // Sends a command to the corresponding device node via ML_STAR component. //==================================================================== static function sendToStar(variable deviceNumber, variable cmd, variable param, variable makeTrace) { variable stepShowNameKey(-534118376); variable globalKey(-534183935); variable orderKey(-534183816); variable parameterKey(-534183815); variable resultDataKey(-534118396); variable resultDataPos(4); variable node; object starObject; object parsIn; object parsOut; variable command("T"); variable parameter(param); variable result4; variable receMsg; string tempMsg; string tempCmd(cmd); variable errPos; // device node must be 1 or 2 -->> node must not be updated node = getNodeFromDeviceNumber(deviceNumber); onerror goto objectError; SynEnterCriticalSection(m_hhsCriticalSection); starObject = m_starDeviceObj.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); onerror goto 0; command = command + IStr(node); command = command + cmd; if(isUsbTrace() && makeTrace) { string sendMsg(command); sendMsg = sendMsg + param; progressTrace(IDS::sendToStar, IDS::sendMessageTitle, sendMsg); } // set the command at first of the receMsg receMsg = command; // activate error handler onerror goto Unexpected; // create data pars for the firmwareCommand parsIn.CreateObject("HXPARAMSLib.HxPars", hslFalse); parsOut.CreateObject("HXPARAMSLib.HxPars", hslFalse); parsIn.Add(2, "ParsCommandVersion"); parsIn.Add("FirmwareCommand", "StepName"); parsIn.Add(457, stepShowNameKey); parsIn.Add(0, "NbrOfErrors"); parsIn.Add(command, globalKey, orderKey); parsIn.Add(parameter, globalKey, parameterKey); // send command starObject.FirmwareCommand(parsIn, parsOut); result4 = parsOut.Item(resultDataKey, resultDataPos); parsIn.ReleaseObject(); parsOut.ReleaseObject(); receMsg = receMsg + result4; tempMsg = receMsg; // remove the master error erXX/XX so that the result string is the same than on USB command erXX errPos = tempMsg.Find("er"); if(errPos >= 0) { if(tempMsg.GetLength() > errPos + 4) { if(tempMsg.Mid(errPos+4, 1) == "/") { // the simulator returns er01/00 on a unknown command, // in this case, remove the slave error not the master error if(tempMsg.GetLength() >= errPos + 7) { // check slave error if(tempMsg.Mid(errPos+5, 2) == "00") { // use the master error, so that the return is not null receMsg = tempMsg.Left(errPos+4); receMsg = receMsg + tempMsg.Right(tempMsg.GetLength() - (errPos+7)); } else { // use the slave error receMsg = tempMsg.Left(errPos+2); receMsg = receMsg + tempMsg.Right(tempMsg.GetLength() - (errPos+5)); } } } } } // on request of firmware version do not trace the answere. // Answere is traced as firmware version in function traceFirmwareVersion() if(isUsbTrace() && (tempCmd.Find("RF") < 0) && makeTrace) progressTrace(IDS::sendToStar, IDS::receiveMessageTitle, receMsg); return (receMsg); Unexpected: { variable errId( err.GetId( ) ); parsIn.ReleaseObject(); parsOut.ReleaseObject(); // no connection if(errId == -1591212031 || errId == -1574764487) { receMsg = receMsg + "er0"; receMsg = receMsg + IStr(IDE::retNotConnectErr); } else Error::RaiseLast(); } // on request of firmware version do not trace the answere. // Answere is traced as firmware version in function traceFirmwareVersion() if(isUsbTrace() && (tempCmd.Find("RF") < 0)) progressTrace(IDS::sendToStar, IDS::receiveMessageTitle, receMsg); return (receMsg); objectError: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } return (receMsg); } //==================================================================== // // Internal function startPlateLockCmd() // //-------------------------------------------------------------------- // Description: // Lock / Unlock the plate // Will make a short error handling on not init and step loss error //==================================================================== static function startPlateLockCmd(variable funcId, variable deviceNumber, variable plateLock) { variable node; variable command("LP"); variable parameter("lp"); string cmdResult; node = getNodeFromDeviceNumber(deviceNumber); parameter = parameter + IStr(plateLock); // lock / unlock plate cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue); // check for init or staep lost error // On step lost, this drive is lost the init state and must be initialized again // The library internal initialization flag is set allready and must nod set again if((cmdResult.Find(m_fwPlNotInitError) >= 0) || (cmdResult.Find(m_fwPlStepLostError) >= 0)) { string cmdResult2; // init drive again cmdResult2 = sendMsg(deviceNumber, "LI", "", m_usbMsgTimeout, hslTrue); // init has end success if(cmdResult2.Find(m_fwNoError) >= 0) { // lock / unlock plate cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue); } } return (cmdResult); } //==================================================================== // // Internal function startShakingCmd() // //-------------------------------------------------------------------- // Description: // Start / Stop plate shaking // Will make a short error handling on not init and step loss error //==================================================================== static function startShakingCmd( variable funcId, variable deviceNumber, variable command, variable parameter, variable isStart) { string cmdResult; // send command cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue); // check for init or step lost error // On step lost, this drive is lost the init state and must be initialized again // The library internal initialization flag is set allready and must nod set again if((cmdResult.Find(m_fwShNotInitError) >= 0) || (cmdResult.Find(m_fwShStepLostError) >= 0)) { string cmdResult2; // init drive again cmdResult2 = sendMsg(deviceNumber, "SI", "", m_usbMsgTimeout, hslTrue); // if not start, do not repeat the main command and return the really returned error if(isStart) { // init has end success if(cmdResult2.Find(m_fwNoError) >= 0) { cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue); } } } return (cmdResult); } //==================================================================== // // Internal function setHHSSetting() // //-------------------------------------------------------------------- // Description: // Check the given deviceNumber from a interface function //==================================================================== static function setHHSSetting(variable funcId, variable deviceNumber, variable& hhsSetting) { string cmdResult; variable funcRc(IDE::noError); hhsSetting = 0; if(!isSimulate(0, deviceNumber, hslFalse)) { variable startPos(-1); // read the HHS settings cmdResult = sendMsg(deviceNumber, "QU", "", m_usbMsgTimeout, hslTrue); funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); startPos = cmdResult.Find("au"); if(startPos >= 0 && cmdResult.GetLength() >= 25) { variable shaker; variable heater; // cmdResult auswerten // format "TxQUau0 0 0 0 0 0 0 0 0 0" shaker = cmdResult.Mid(startPos+2, 1); heater = cmdResult.Mid(startPos+4, 1); if(shaker == "1" && heater == "1") hhsSetting = m_shakingPropertyNothing; else if(shaker == "1") hhsSetting = m_shakingPropertyOnlyHeat; else if(heater == "1") hhsSetting = m_shakingPropertyOnlyShake; } } onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); m_hhsSetting[deviceNumber-1] = hhsSetting; SynLeaveCriticalSection(m_hhsCriticalSection); return(funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } return (funcRc); } //==================================================================== // // Internal function hasHeater() // //-------------------------------------------------------------------- // Description: // Check if the heater is activated on current HHS //==================================================================== static function hasHeater(variable funcId, variable deviceNumber, variable throw) { variable hhsSettings(-1); variable funcRc(hslFalse); onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); hhsSettings = m_hhsSetting.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); if((hhsSettings == m_shakingPropertyHeatAndShake) || (hhsSettings == m_shakingPropertyOnlyHeat)) funcRc = hslTrue; if(funcRc == hslFalse && throw == 1) { // "Current HHS module on %s1 '%s2' cannot used as heater" variable nodeNameId(IDS::starNode); variable node; string msg; string nodeName; variable funcName; node = getNodeFromDeviceNumber(deviceNumber); if(!isStarDevice(deviceNumber)) nodeNameId = IDS::usbNode; msg = StringTable::Load(IDS::heatingNotActivated); nodeName = StringTable::Load(nodeNameId); funcName = StringTable::Load(funcId); StrReplace(msg, "%s1", nodeName); StrReplace(msg, "%s2", IStr(node)); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } return(funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } return (funcRc); } //==================================================================== // // Internal function hasShaker() // //-------------------------------------------------------------------- // Description: // Check if the heater is activated on current HHS //==================================================================== static function hasShaker(variable funcId, variable deviceNumber, variable throw) { variable hhsSettings(-1); variable funcRc(hslFalse); onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); hhsSettings = m_hhsSetting.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); if((hhsSettings == m_shakingPropertyHeatAndShake) || (hhsSettings == m_shakingPropertyOnlyShake)) funcRc = hslTrue; if(funcRc == hslFalse && throw) { // "Current HHS module on %s1 '%s2' cannot used as shaker." variable nodeNameId(IDS::starNode); variable node; string msg; string nodeName; variable funcName; node = getNodeFromDeviceNumber(deviceNumber); if(!isStarDevice(deviceNumber)) nodeNameId = IDS::usbNode; msg = StringTable::Load(IDS::shakingNotActivated); nodeName = StringTable::Load(nodeNameId); funcName = StringTable::Load(funcId); StrReplace(msg, "%s1", nodeName); StrReplace(msg, "%s2", IStr(node)); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } return(funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } return (funcRc); } // -------------------------------------------------------------------------------------- // Library traces // -------------------------------------------------------------------------------------- //==================================================================== // // Internal function versionTrace() // //-------------------------------------------------------------------- // Description: // Traces the start of a exported function //==================================================================== static function versionTrace() void { variable traceSource; initStringTable(); traceSource = StringTable::Load(IDS::traceSource); // source for formated trace FormatTrace(traceSource, "HSLHamHeaterShakerLib", TraceStatus::cmd_progress, HamHeaterShakerVersion); } //==================================================================== // // Internal function startTrace() // //-------------------------------------------------------------------- // Description: // Traces the start of a exported function //==================================================================== static function startTrace(variable funcName) void { variable traceSource; variable functionName; initStringTable(); traceSource = StringTable::Load(IDS::traceSource); // source for formated trace if(GetType(funcName) == "i") functionName = StringTable::Load(funcName); else functionName = funcName; FormatTrace(traceSource, functionName, TraceStatus::cmd_start); } //==================================================================== // // Internal function progressTrace() // //-------------------------------------------------------------------- // Description: // Traces a msg during a exported function is working //==================================================================== static function progressTrace(variable funcName, variable progMsgTitle, variable progMsg) void { variable traceSource; variable functionName; variable progressTitle; variable progressMsg; initStringTable(); traceSource = StringTable::Load(IDS::traceSource); // source for formated trace if(GetType(funcName) == "i") functionName = StringTable::Load(funcName); else functionName = funcName; if(GetType(progMsgTitle) == "i") progressTitle = StringTable::Load(progMsgTitle); else progressTitle = progMsgTitle; if(GetType(progMsg) == "i") progressMsg = StringTable::Load(progMsg); else progressMsg = progMsg; FormatTrace(traceSource, functionName, TraceStatus::cmd_progress, progressTitle, progressMsg); } //==================================================================== // // Internal function errorTrace() // //-------------------------------------------------------------------- // Description: // Traces an error msg during a exported function is working //==================================================================== static function errorTrace(variable funcName, variable errMsg) void { variable traceSource; variable functionName; variable errorMsg; initStringTable(); traceSource = StringTable::Load(IDS::traceSource); // source for formated trace if(GetType(funcName) == "i") functionName = StringTable::Load(funcName); else functionName = funcName; if(GetType(errMsg) == "i") errorMsg = StringTable::Load(errMsg); else errorMsg = errMsg; FormatTrace(traceSource, functionName, TraceStatus::cmd_error, errorMsg); } //==================================================================== // // Internal function errorCompleteTrace() // //-------------------------------------------------------------------- // Description: // Traces an error msg on end of an exported function //==================================================================== static function errorCompleteTrace(variable funcName, variable errMsg) void { variable traceSource; variable functionName; variable errorMsg; initStringTable(); traceSource = StringTable::Load(IDS::traceSource); // source for formated trace if(GetType(funcName) == "i") functionName = StringTable::Load(funcName); else functionName = funcName; if(GetType(errMsg) == "i") errorMsg = StringTable::Load(errMsg); else errorMsg = errMsg; FormatTrace(traceSource, functionName, TraceStatus::cmd_errComplete, errorMsg); } //==================================================================== // // Internal function endTrace() // //-------------------------------------------------------------------- // Description: // Traces the end of an exported function //==================================================================== static function endTrace(variable funcName) void { variable traceSource; variable functionName; initStringTable(); traceSource = StringTable::Load(IDS::traceSource); // source for formated trace if(GetType(funcName) == "i") functionName = StringTable::Load(funcName); else functionName = funcName; FormatTrace(traceSource, functionName, TraceStatus::cmd_complete); } //==================================================================== // // Internal function traceFirmwareVersion() // //-------------------------------------------------------------------- // Description: // Traces the firmware version of an used heater shaker //==================================================================== // this function is used in InitializeLibrary() and uses index 0..10 static function traceFirmwareVersion(variable funcId, variable deviceNumber) { variable nodeNameId(IDS::starNode); string answString; variable startPos(0); // read the firmware version of current node answString = sendMsg(deviceNumber, "RF", "", m_usbInitTimeout, hslTrue); if(!isStarDevice(deviceNumber)) nodeNameId = IDS::usbNode; startPos = answString.Find("rf"); if(startPos >= 0) { string fwVers; string title; string nodeName; variable node; node = getNodeFromDeviceNumber(deviceNumber); fwVers = answString.Right(answString.GetLength()-(startPos+2)); // Text: "%s1 '%s2' firmware version = " title = StringTable::Load(IDS::firmwareVersion); nodeName = StringTable::Load(nodeNameId); StrReplace(title, "%s1", nodeName); StrReplace(title, "%s2", IStr(node)); progressTrace(funcId, title, fwVers); } } //==================================================================== // // Internal function sendToProgressTrace() // //-------------------------------------------------------------------- // Description: // Traces a msg during a exported function is working //==================================================================== static function sendToProgressTrace( variable funcName, variable deviceNumber) void { variable traceSource; variable functionName; variable nodeNameId(IDS::starNode); string nodeName; variable progressMsg; variable node; initStringTable(); node = getNodeFromDeviceNumber(deviceNumber); if(!isStarDevice(deviceNumber)) nodeNameId = IDS::usbNode; nodeName = StringTable::Load(nodeNameId); traceSource = StringTable::Load(IDS::traceSource); // source for formated trace if(GetType(funcName) == "i") functionName = StringTable::Load(funcName); else functionName = funcName; // Text: "Start command to %s1(%s2)." progressMsg = StringTable::Load(IDS::progressSendTo); StrReplace(progressMsg, "%s1", nodeName); StrReplace(progressMsg, "%s2", IStr(node)); FormatTrace(traceSource, functionName, TraceStatus::cmd_progress, progressMsg); } // -------------------------------------------------------------------------------------- // Input parameter check function // -------------------------------------------------------------------------------------- //==================================================================== // // Internal function checkStringInput() // //-------------------------------------------------------------------- // Description: // Check an input parameter which must be a string //==================================================================== static function checkStringInput(variable funcId, variable parameterName, variable input) { if(GetType(input) != "s") { // Wrong type of parameter; '%s1(%s2)' must be a string. string msg; string param; variable funcName; msg = StringTable::Load(IDE::noStringValue); funcName = StringTable::Load(funcId); if(GetType(input) == "i") param = IStr(input); if(GetType(input) == "f") param = FStr(input, hslTrue); StrReplace(msg, "%s1", parameterName); StrReplace(msg, "%s2", param); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::noStringValue, msg, GetFileName(), funcName, GetLineNumber()); } } //==================================================================== // // Internal function checkDoubleInput() // //-------------------------------------------------------------------- // Description: // Check an input parameter which must be a double //==================================================================== static function checkDoubleInput( variable funcId, variable parameterName, variable input) { if((GetType(input) != "f") && (GetType(input) != "i")) { // Wrong type of parameter; '%s1(%s2)' must be a number. string msg; string param("'%s'"); variable funcName; msg = StringTable::Load(IDE::noDoubleValue); funcName = StringTable::Load(funcId); if(GetType(input) == "s") StrReplace(param, "%s", input); StrReplace(msg, "%s1", parameterName); StrReplace(msg, "%s2", param); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::noDoubleValue, msg, GetFileName(), funcName, GetLineNumber()); } } //==================================================================== // // Internal function checkDoubleInputRange() // //-------------------------------------------------------------------- // Description: // Check an input parameter which must be a double in a defined range //==================================================================== static function checkDoubleInputRange( variable funcId, variable parameterName, variable input, variable min, variable max) { checkDoubleInput(funcId, parameterName, input); if((input < min) || (input > max)) { // "Parameter out of range; '%s1(%s2)' must be between [%s3..%s4]." string msg; variable funcName; msg = StringTable::Load(IDS::parameterOutOfRange); funcName = StringTable::Load(funcId); StrReplace(msg, "%s1", parameterName); StrReplace(msg, "%s2", FStr(input, hslTrue)); StrReplace(msg, "%s3", FStr(min, hslTrue)); StrReplace(msg, "%s4", FStr(max, hslTrue)); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::syntaxParRangeError, msg, GetFileName(), funcName, GetLineNumber()); } } //==================================================================== // // Internal function checkIntegerInput() // //-------------------------------------------------------------------- // Description: // Check an input parameter which must be a integer //==================================================================== static function checkIntegerInput( variable funcId, variable parameterName, variable input) { if(GetType(input) != "i") { // Wrong type of parameter; '%s1(%s2)' must be a number. string msg; string param; variable funcName; msg = StringTable::Load(IDE::noIntegerValue); funcName = StringTable::Load(funcId); if(GetType(input) == "s") { param = "'"; param = param + input; param = param + "'"; } if(GetType(input) == "f") param = FStr(input, hslTrue); StrReplace(msg, "%s1", parameterName); StrReplace(msg, "%s2", param); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::noIntegerValue, msg, GetFileName(), funcName, GetLineNumber()); } } //==================================================================== // // Internal function checkIntegerInputRange() // //-------------------------------------------------------------------- // Description: // Check an input parameter which must be a integer in a defined range //==================================================================== static function checkIntegerInputRange( variable funcId, variable parameterName, variable input, variable min, variable max) { checkIntegerInput(funcId, parameterName, input); if((input < min) || (input > max)) { // "Parameter out of range; '%s1(%s2)' must be between [%s3..%s4]." string msg; variable funcName; msg = StringTable::Load(IDS::parameterOutOfRange); funcName = StringTable::Load(funcId); StrReplace(msg, "%s1", parameterName); StrReplace(msg, "%s2", IStr(input)); StrReplace(msg, "%s3", IStr(min)); StrReplace(msg, "%s4", IStr(max)); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::syntaxParRangeError, msg, GetFileName(), funcName, GetLineNumber()); } } //==================================================================== // // Internal function isStarDevice() // //-------------------------------------------------------------------- // Description: // Check if the used deviceNumber from a ML_STAR //==================================================================== static function isStarDevice(variable deviceNumber) { variable funcRc(hslFalse); variable devName; onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); devName = m_deviceName.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); // check for usb name if(devName != m_hhsUsbObjectName) { funcRc = hslTrue; } return(funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Internal function getNodeFromDeviceNumber() // //-------------------------------------------------------------------- // Description: // Retunrs the saved node ID dependent of the deviceNumber //==================================================================== static function getNodeFromDeviceNumber(variable deviceNumber) { variable usedNode; onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); usedNode = m_nodeNumber.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); return(usedNode); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Internal function checkDeviceNumber() // //-------------------------------------------------------------------- // Description: // Check the given deviceNumber from a interface function //==================================================================== static function checkDeviceNumber(variable funcId, variable deviceNumber) { variable devName, nodeNr; if((deviceNumber < m_firstDeviceNumber) || (deviceNumber > m_lastDeviceNumber)) { string msg; variable funcName; // "Parameter 'deviceNumber' contains an invalid value! \r\nMust be created with function CreateStarDevice() or CreateUsbDevice()" msg = StringTable::Load(IDS::invalidDeviceNumber); funcName = StringTable::Load(funcId); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); devName = m_deviceName.GetAt(deviceNumber-1); nodeNr = m_nodeNumber.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); // check for usb name if((devName == "") || (nodeNr == 0)) { string msg; variable funcName; // "Parameter 'deviceNumber' contains an invalid value! \r\nMust be created with function CreateStarDevice() or CreateUsbDevice()" msg = StringTable::Load(IDS::invalidDeviceNumber); funcName = StringTable::Load(funcId); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Internal function formatParam() // //-------------------------------------------------------------------- // Description: // Formats an numeric input to a string with leading 0 to lenth of strWidth //==================================================================== static function formatParam( variable param, // i: the paramter to normalize (integer) variable strWidth) // i: the width to be filled (integer) { string sParam; sParam = IStr(param); StrFillLeft(sParam, "0", strWidth); return (sParam); } //==================================================================== // // Internal function normalizeParam() // //-------------------------------------------------------------------- // Description: // Formats an numeric (double)input to 1/10 values and format it // to a string with leading 0 to lenth of strWidth //==================================================================== static function normalizeParam( // returns the given parameter normalized for firmware command as string variable param, // i: the paramter to normalize as float or integer variable strWidth) // i: the width to be filled (integer) { string sParam; sParam = IStr(Floor(MthRound(param*10, 0))); StrFillLeft(sParam, "0", strWidth); return (sParam); } // -------------------------------------------------------------------------------------- // Firmware error check function // -------------------------------------------------------------------------------------- //==================================================================== // // Internal function getFirmwErrorId() // //-------------------------------------------------------------------- // Description: // Reads the firmware error number from cmdResult string and convert it to a number //==================================================================== static function getFirmwErrorId(string cmdResult) { variable errNr(0); variable startPos(0); startPos = cmdResult.Find("er"); if((startPos >= 0) && ((startPos+4) <= cmdResult.GetLength())) { variable errNo; errNo = cmdResult.Mid((startPos+2), 2); errNr = IVal(errNo); } return (errNr); } //==================================================================== // // Internal function getErrIdFromFirmwareError() // //-------------------------------------------------------------------- // Description: // Converts the firmware error number to function return error number //==================================================================== static function getErrIdFromFirmwareError(string cmdResult) { variable firmwErrId(getFirmwErrorId(cmdResult)); if(0 == firmwErrId) return (IDE::noError); else if(1 == firmwErrId) return (IDE::retErr); else if(2 == firmwErrId) return (IDE::retNotInitErr); else if(3 == firmwErrId) return (IDE::retNotConnectErr); else if (10 == firmwErrId) return (IDE::canError); else if (20 == firmwErrId) return (IDE::eepromError); else if (30 == firmwErrId) return (IDE::syntaxCmdError); else if (31 == firmwErrId) return (IDE::syntaxParUnkError); else if (32 == firmwErrId) return (IDE::syntaxParRangeError); else if (35 == firmwErrId) return (IDE::generalVoltError); else if (36 == firmwErrId) return (IDE::generalStopError); else if (37 == firmwErrId) return (IDE::generalAddrError); else if (40 == firmwErrId) return (IDE::parallelError); else if (41 == firmwErrId) return (IDE::parallelError); else if (42 == firmwErrId) return (IDE::parallelError); else if (50 == firmwErrId) return (IDE::shakerInitError); else if (51 == firmwErrId) return (IDE::shakerNotInitError); else if (52 == firmwErrId) return (IDE::shakerStepLossError); else if (53 == firmwErrId) return (IDE::shakerStartModeError); else if (55 == firmwErrId) return (IDE::plateLockInitError); else if (56 == firmwErrId) return (IDE::plateLockNotInitError); else if (57 == firmwErrId) return (IDE::plateLockStepLossError); else if (60 == firmwErrId) return (IDE::tempNotStartError); else if (61 == firmwErrId) return (IDE::tempTimeoutError); else if (62 == firmwErrId) return (IDE::tempSuperRangeError); else if (63 == firmwErrId) return (IDE::tempSecurRangeError); else if (64 == firmwErrId) return (IDE::tempSensorError); else if (98 == firmwErrId) return (IDE::commandSendTimeout); else return (IDE::unknowFwError); } //==================================================================== // // Internal function isFirmwError() // //-------------------------------------------------------------------- // Description: // Check if an error is set in cmdResult string //==================================================================== static function isFirmwError(variable funcId, string cmdResult, variable makeTrace) { variable rc(IDE::noError); if(cmdResult.Find(m_fwNoError) == -1) { variable errId; variable errText; errId = getErrIdFromFirmwareError(cmdResult); // string erXX was not found (answere command) if(errId != IDE::noError) { rc = errId; errText = StringTable::Load(errId); // make an exception handling for errors which contains a %s part if(errId == IDE::unknowFwError) StrReplace(errText, "%s", IStr(getFirmwErrorId(cmdResult))); if(errId == IDE::commandSendTimeout) StrReplace(errText, "%s", cmdResult.Left(4)); if(makeTrace) errorCompleteTrace(funcId, errText); } } return (rc); } //==================================================================== // // Internal function saveAndCreateDeviceNumber() // //-------------------------------------------------------------------- // Description: // save the device parameter and create the deviceNumber which must // be used for each interface function //==================================================================== static function saveAndCreateDeviceNumber( variable funcId, variable deviceName, object& starObject, variable isStarSimulate, variable usedNode) { variable deviceNumber(0); variable index(0); onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); // USB set always the starObject parameter with a null object if(starObject.IsNull() && m_usbComObject.IsNull()) { // create the usb object without event m_usbComObject.ReleaseObject(); m_usbComObject.CreateObject(m_hhsUsbObjectName, hslFalse); if(!m_usbComObject.IsNull()) { // "{BD0DAB87-838B-44c5-A114-1CBA5BE0E45F}", bufferSize(4090), vendorId(2223), productId, mainSerialNumber); m_usbComObject.InitObject (m_hhsUsbProductNum, m_hhsUsbSerieNum); } else { string msg; variable funcName; SynLeaveCriticalSection(m_hhsCriticalSection); // "Parameter 'starDevice' contains an invalid object." msg = StringTable::Load(IDS::cannotCreateUsbPort); funcName = StringTable::Load(funcId); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } } // check if this node allready used for( index = 0; index < m_maxHHS; index++) { variable devN, nodeNum; devN = m_deviceName.GetAt(index); nodeNum = m_nodeNumber.GetAt(index); // if equal, node already exist if((devN == deviceName) && (nodeNum == usedNode)) deviceNumber = index+1; } if(deviceNumber == 0) { // node is not used, set it on the first free position for( index = 0; index < m_maxHHS; index++) { variable devN; devN = m_deviceName.GetAt(index); // if empty if(devN == "") { m_deviceName[index] = deviceName; m_starDeviceObj[index] = starObject; m_isStarSimulate[index] = isStarSimulate; m_nodeNumber[index] = usedNode; deviceNumber = index+1; break; } } } SynLeaveCriticalSection(m_hhsCriticalSection); if(deviceNumber == 0) { string msg; variable funcName; // "Parameter 'starDevice' contains an invalid object." msg = StringTable::Load(IDS::maxHHSReached); funcName = StringTable::Load(funcId); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } return(deviceNumber); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Internal function Wait() // //-------------------------------------------------------------------- // Description: // Wait the given time //==================================================================== static function wait(variable waitTime) { timer t; // Wait waitTime seconds t.SetTimer( waitTime ); t.WaitTimer( hslFalse, hslFalse ); } //==================================================================== // // Internal function getCurrentShakerRPM() // //-------------------------------------------------------------------- // Description: // Read the shaking speed of current HHS //==================================================================== static function getCurrentShakerRPM(variable deviceNumber, variable makeTrace) { variable shakingSpeed(0); variable command("RR"); string parameter(""); string cmdResult; variable startPos(0); // start request cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, makeTrace); // format: rr#### startPos = cmdResult.Find("rr"); if(startPos >= 0) { shakingSpeed = IVal(cmdResult.Mid((startPos+2), 4)); } return (shakingSpeed); } //==================================================================== // // Internal function getCurrentTemp() // //-------------------------------------------------------------------- // Description: // Read the shaking speed of current HHS //==================================================================== static function getCurrentTemp(variable deviceNumber, variable makeTrace) { variable temperature(0); variable command("RT"); variable parameter(""); string cmdResult; variable startPos; variable firstVal; variable secVal; variable averageVal; // wait for temperature is reached cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, makeTrace); // format: rt#### #### startPos = cmdResult.Find("rt"); if((startPos >= 0) && ((cmdResult.GetLength()-startPos) >= TemperateParam::tempTempRequestLength)) { // read both temperature and calculate the average // format: rt#### #### firstVal = FVal(cmdResult.Mid((startPos+2), 5)); secVal = FVal(cmdResult.Mid((startPos+8), 5)); // calculate the average in 1/10 degrees averageVal = ((firstVal + secVal) / 2) /10; temperature = MthRound(averageVal, 1); } return (temperature); } //==================================================================== // // Internal function MonitorHeaterShaker() // //-------------------------------------------------------------------- // Description: // Monitors temperature and speed of a HHS module //==================================================================== synchronized function monitorHeaterShaker() { variable monitorComplete( 0 ); event intervalEvent; variable currentStatus(-1); variable funcName; variable sTitle; variable hTitle; variable stateTitle; variable heatingUp(hslTrue); variable result; variable oldResult; variable notStopped(hslTrue); // action Stop not used // set the locals... variable devNumber(m_monitorDeviceNumber); variable hMin(m_monitorHeaterMin); variable hMax(m_monitorHeaterMax); variable sMin(m_monitorShakerMin); variable sMax(m_monitorShakerMax); variable interval(m_monitorSampleInterval); variable action(m_monitorAction); variable curRpm(sMin); // if not available, the speed must be OK variable curTemp(hMin); // if not available, the temperature must be OK variable node; variable nodeType; // reset globals m_monitorDeviceNumber = 0; m_monitorShakerMin = 0; m_monitorShakerMax = 0; m_monitorSampleInterval = 0; m_monitorAction = 0; m_monitorHeaterMin = 0; m_monitorHeaterMax = 0; m_monitorResult[devNumber-1] = -1; // set min max temperature dependend of current heater settings // critical section is set in StartMonotoring() function intervalEvent = m_monitorEvent.GetAt(devNumber-1); // free start semaphore m_monitorStartEvent.SetEvent(); initStringTable(); if(isStarDevice(devNumber)) nodeType = StringTable::Load(IDS::starNode); else nodeType = StringTable::Load(IDS::usbNode); nodeType = nodeType + " ("; node = getNodeFromDeviceNumber(devNumber); nodeType = nodeType + IStr(node); nodeType = nodeType + " )"; funcName = StringTable::Load(IDF::Monitoring); funcName = funcName + " "; funcName = funcName + nodeType; sTitle = StringTable::Load(IDS::monitoringShakingTitle); hTitle = StringTable::Load(IDS::monitoringTempTitle); stateTitle = StringTable::Load(IDS::monitoringStateTitle); while (monitorComplete == 0) { // WaitEvent returns 0 if still waiting or non-zero // if the event was triggered. monitorComplete = intervalEvent.WaitEvent( interval ); if( monitorComplete == 0 && notStopped) { if(hasShaker(0, devNumber, 0)) { variable title(sTitle); // read currect RPM curRpm = getCurrentShakerRPM(devNumber, hslFalse); progressTrace(funcName, title, IStr(curRpm)); } if(hasHeater(0, devNumber, 0)) { variable title(hTitle); if(heatingUp) { string cmdResult; variable partResult("qd1"); // ask if heater in state heating up cmdResult = sendMsg(devNumber, "QD", "", m_usbMsgTimeout, hslFalse); if(cmdResult.Find(partResult) < 0) heatingUp = hslFalse; if(heatingUp) title = StringTable::Load(IDS::monitoringTempHeatUpTitle); } // read current temperature curTemp = getCurrentTemp(devNumber, hslFalse); progressTrace(funcName, title, FStr(curTemp, hslTrue)); } SynEnterCriticalSection(m_hhsCriticalSection); result = m_monitorResult.GetAt(devNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); oldResult = result; // Calculate the current state of the heater/shaker if( (((curTemp < hMin) || (curTemp > hMax)) && !heatingUp) && ((curRpm < sMin) || (curRpm > sMax))) { currentStatus = MonitorStatus::monitorErrHeatingAndShaking; } else if ( ((curTemp < hMin) || (curTemp > hMax)) && !heatingUp ) { currentStatus = MonitorStatus::monitorErrHeating; } else if ( (curRpm < sMin) || (curRpm > sMax) ) { currentStatus = MonitorStatus::monitorErrShaking; } else { currentStatus = MonitorStatus::monitorOK; } // If the monitor status has previously not been set, set it. // Otherwise, use bitwise OR to merge the current result with the previous result if (result == -1) result = currentStatus; else result = currentStatus | result; SynEnterCriticalSection(m_hhsCriticalSection); m_monitorResult[devNumber-1] = result; SynLeaveCriticalSection(m_hhsCriticalSection); progressTrace(funcName, stateTitle, IStr(result)); if ( result != MonitorStatus::monitorOK ) { if ( action == MonitorAction::monitorActionStop ) { // stop shaking and heating if(hasShaker(0, devNumber, 0)) StopShaker(devNumber); if(hasHeater(0, devNumber, 0)) StopTempCtrl(devNumber); // end monitoring but leave in the loop for a correct end of the automatic semapore intervalEvent notStopped = hslFalse; } if(action == MonitorAction::monitorActionAbort) { errorTrace(funcName, IDS::monitoringAbort); abort; } } } } // end while return(0); } //==================================================================== // // Internal function pollingForRunningShaker() // //-------------------------------------------------------------------- // Description: // Polling until shaker has end shaked or time is elapsed // Polling is neccessary that during a long wait time an Abort() // command can be execute. //==================================================================== static function pollingForRunningShaker( variable deviceNumber, variable maxPollingTime) { string cmdResult; variable maxPTime(maxPollingTime); variable intervalTime(5); variable partResult("rd1"); if(maxPollingTime > 10) { // ask if shaker is running cmdResult = sendMsg(deviceNumber, "RD", "", m_usbMsgTimeout, hslFalse); while(cmdResult.Find(partResult) > 0 && maxPTime > 0) { maxPTime = maxPTime - intervalTime; wait(intervalTime); cmdResult = sendMsg(deviceNumber, "RD", "", m_usbMsgTimeout, hslFalse); } } } //==================================================================== // // Internal function pollingForRunningHeater() // //-------------------------------------------------------------------- // Description: // Polling until heater is in temperature controlling mode // Polling is neccessary that during a long wait time an Abort() // command can be execute. //==================================================================== static function pollingForRunningHeater( variable deviceNumber, variable maxPollingTime) { string cmdResult; variable maxPTime(maxPollingTime); variable intervalTime(10); variable partResult("qd1"); if(maxPollingTime > 10) { // ask if heater in state heating up cmdResult = sendMsg(deviceNumber, "QD", "", m_usbMsgTimeout, hslFalse); while(cmdResult.Find(partResult) > 0 && maxPTime > 0) { maxPTime = maxPTime - intervalTime; wait(intervalTime); cmdResult = sendMsg(deviceNumber, "QD", "", m_usbMsgTimeout, hslFalse); } } } //==================================================================== // // Internal function OnAbortHHSLibrary() // //-------------------------------------------------------------------- // Description: // Stop heating and shaking for all HHS module //==================================================================== static function OnAbortHHSLibrary() { variable deviceNumber; for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++) { if(isHeaterInitialized(deviceNumber)) { // call StartShaker with 1 base node StopShaker(deviceNumber); StopTempCtrl(deviceNumber); } } Terminate(); return; } } #endif // $$author=TBenz$$valid=1$$time=2013-03-06 12:47$$checksum=fc24f279$$length=082$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/HslHamHeaterShakerLib.hsl ================================================ // ====================================================================== // This is a part of the HSLHamHeaterShaker Library. // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // All rights reserved. // ====================================================================== // // Modification History // // 2008-09-10 tbenz > first creation // // ********************************************************************** // This library version supports following hardware: // - HAM Heater Shaker (HHS) ML_STAR interface // - HAM Heater Shaker (HHS) USB interface // ********************************************************************** #ifndef __HSLHeaterShakerLib_hsl__ #define __HSLHeaterShakerLib_hsl__ 1 // Interface to HSLHamHeaterShaker library #ifndef HSL_RUNTIME namespace HSLHamHeaterShaker { function CreateStarDevice( device& starDevice, // in: ML_STAR device variable usedNode, // in: node ID (1 or 2) variable& deviceNumber) {} // out: generated deviceNumber function CreateUsbDevice( variable usedNode, // in: node ID (1..8) variable& deviceNumber) {} // out: generated deviceNumber function Terminate() void {} // Close the communication function StartShaker( variable deviceNumber, // in: assigned deviceNumber variable shakingSpeed) {} // in: RPM (30..2500) function StopShaker( variable deviceNumber) {} // in: assigned deviceNumber function StartShakerTimed( variable deviceNumber, // in: assigned deviceNumber variable shakingSpeed, // in RPM (30..2500) variable shakingTime) {} // in: time in seconds (1.. 30000) function WaitForShaker( variable deviceNumber) {} // in: assigned deviceNumber function StartAllShaker( variable shakingSpeed) {} // in RPM (30..2500) function StartAllShakerTimed( variable shakingSpeed, // in: RPM (30..2500) variable shakingTime) {} // in: time in seconds (1.. 30000) function StopAllShaker( ) {} function SetShakerParameter( variable deviceNumber, // in: assigned deviceNumber variable shakingDirection, // in: shaking dirction left / right (0 / 1) variable shakingAccRamp) void {} // in: Defines the acceleration ramp (rpm) (integer). function GetShakerParameter( variable deviceNumber, // in: assigned deviceNumber variable& shakingDirection, // out: shaking dirction left / right (0 / 1) variable& shakingAccRamp) void {} // out: Defines the acceleration ramp (rpm) (integer). function GetShakerSpeed( variable deviceNumber, // in: assigned deviceNumber variable& shakingSpeed) {} // out: current RPM function StartTempCtrl( variable deviceNumber, // in: assigned deviceNumber variable temperature, // in: Temperature in 1/10C. Range 0.0 .. 100.0 (not lower than ambient) variable waitForTempReached) {} // in: no wait / wait (0 / 1) function StopTempCtrl( variable deviceNumber) {} // in: assigned deviceNumber function WaitForTempCtrl( variable deviceNumber) {} // in: assigned deviceNumber function GetTemperature( variable deviceNumber, // in: assigned deviceNumber variable& temperature) {} // out: current temperature in 1/10C function GetTemperatureState( variable deviceNumber, // in: assigned deviceNumber variable& temperatureState) {} // out: temperature state 0..3 // 0 = No error, temperature was always in the defined range. // 1 = Temperature was or is out of temperature range. // 2 = Temperature was out of security range. Temperature controlling is switched off now. // 3 = Temperature time out during start of temperature controlling function SetTempParameter( variable deviceNumber, // in: assigned deviceNumber variable startTimeout, // in: Time before start temperature controlling (1..2500) variable toleranceRange, // in: Temperature tolerance in 1/10C. (0.0 .. 100.0), def: 2.0 variable securityRange) void {} // in: Temperature security in 1/10C. (0.0 .. 100.0), def: 6.0 function GetTempParameter( variable deviceNumber, // in: assigned deviceNumber variable& startTimeout, // out: Time before start temperature controlling. variable& toleranceRange, // out: Temperature tolerance in 1/10C. variable& securityRange) void {} // out: Temperature security in 1/10C. function SetPlateLock( variable deviceNumber, // in: assigned deviceNumber variable plateLock) {} // in: unlock / lock (0 / 1) function GetFirmwareVersion( variable deviceNumber, // in: assigned deviceNumber variable& firmwareVersion) void {} // out: Firmware version format: "1.0P 1999-03-10" function GetSerialNumber( variable deviceNumber, // in: assigned deviceNumber variable& serialNumber) void {} // out: Serial number format: "####" 4 digit number function BeginMonitoring( variable deviceNumber, // in: assigned deviceNumber variable shakingToleranceRange, // in: shaking tolerance variable sampleInterval, // in: Interval in sec. for check RPM and temperature variable action) void {} // in: Continue / Abort (0 / 1) // Note: Abort will only called on an error after temperature controlling is activated () // An abort will end only the current heater/shaker. // Note: heaterMin and heaterMax uses the parameter toleranceRange of SetTempParameter() function EndMonitoring( variable deviceNumber, // in: assigned deviceNumber variable& monitorResult) {} // out: Monitored result //-1 = monitoring has not started or is not initialized // 0 = all heating and shaking values were within specification // 1 = heating out of range // 2 = shaking out of range // 3 = heating and shaking out of range function SendFirmwareCommand( variable deviceNumber, // in: assigned deviceNumber variable command, // in: Firmware command e.g. "T1RF" variable parameter) {} // in: Firmware parameter dependent of command function SetSimulation( variable simulate) void {} // in: Run / Simulate (0 / 1) function SetUSBTrace( variable trace) void {} // in: No trace / trace (0 / 1) Set communication tracing for send and receive message from USB } // end of namespace HSLHamHeaterShaker #endif // ========================================================================== // Implementation of HSLHamHeaterShaker Library // ========================================================================== #ifdef HSL_RUNTIME #include "HSLHamHeaterShakerLib.hs_" #endif #endif /* end of #ifndef __HSLHamHeaterShakerLib_hsl__ */ // $$author=TBenz$$valid=1$$time=2013-03-06 12:47$$checksum=764d39dc$$length=082$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/STAR_OEM.hsl ================================================ namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HslHamHeaterShakerLib.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } #include "STAR_OEM.res" variable loopCounterMain; variable msg; object objJSONFromServer; variable commandFromServer; variable initializeAlways; variable o_stepReturn; object objJSONToServer; sequence seq; variable tipSequence; variable sequenceCounting; variable channelVariable; variable channelUse; variable labwarePositions; variable aspirateSequence; variable v; variable arrayOfVolumes[]; variable liquidClass; variable aspirateMode; variable capacitiveLLD; variable pressureLLD; variable liquidFollowing; variable submergeDepth; variable liquidHeight; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable airTransportRetractDist; variable touchOff; variable aspPosAboveTouch; variable o_liquidLevels_mm[]; variable o_liquidLevels_mL[]; variable o_stepReturn2; variable o_stepReturn3; variable dispenseMode; variable dispenseSequence; variable dispPositionAboveTouch; variable zMoveAfterStep; variable sideTouch; variable wasteSequence; variable useDefaultWaste; variable reducedPatternMode; variable aspirateVolume; variable o_stepReturn4; variable dispenseVolume; variable tipEjectToKnownPosition; variable carrierName; variable barcodeFileName; variable barcodeReadPositions; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable lidSequence; variable plateSequence; variable toolSequence; variable transportMode; variable widthBefore; variable gripHeight; variable gripWidth; variable gripSpeed; variable gripperToolChannel; variable checkPlate; variable zSpeed; variable gripForce; sequence lidSeq; sequence toolSeq; variable xAcceleration; variable platePressOnDistance; variable ejectToolWhenFinish; object objHttp; variable blnReturn; variable blnSuccess; variable usedNode; variable deviceNumber; variable action; variable sampleInterval; variable shakingToleranceRange; variable id; global device ML_STAR ("STAR_OEM.lay", "ML_STAR", hslTrue); variable monitorResult; variable firmwareVersion; variable serialNumber; variable command; variable parameter; variable plateLock; variable shakingAccRamp; variable shakingDirection; variable simulate; variable startTimeout; variable toleranceRange; variable securityRange; variable intTrace; variable shakingSpeed; variable shakingTime; variable temperature; variable waitForTempReached; variable inverseGrip; variable liftUpHeight; variable retractDistance; variable tolerance; variable labwareOrientation; variable movementType; variable collisionControl; variable gripMode; variable showCollisionCheckDialog; global device HxFan ("STAR_OEM.lay", "HxFan", hslTrue); variable fanSpeed; variable persistant; variable refillAfterEmpty; variable chamber1LiquidChange; variable chamber2WashLiquid; variable chamber1WashLiquid; variable chamber2LiquidChange; namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } namespace _Method { #include __filename__ ".sub" } namespace _Method { method main( ) void { STAR_OEM_TOOLKIT::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); blnReturn = HSLHttp::Initialize(objHttp); if (blnReturn != blnSuccess) { TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); return; } SendTextMessageToServer(Translate("Hi, Im a VENUS method.")); { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; commandFromServer = Translate(""); o_stepReturn = Translate(""); o_stepReturn2 = Translate(""); o_stepReturn3 = Translate(""); o_stepReturn4 = Translate(""); msg = waitForGUItoContinue(); Trace("JSON received from Server:", msg); HSLJsonLib::Create(objJSONFromServer); HSLJsonLib::ParseJson(objJSONFromServer, msg); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("id"), id); if (commandFromServer == "initialize") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); TrcTrace(Translate("Init step return:"), o_stepReturn); SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "channelTipPickUp") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); if (tipSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); BuildTempSequenceFromPositions(labwarePositions, seq); } else { DevGetSequenceRef(ML_STAR, tipSequence, seq); } STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn); TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "channelAspirate") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); Trace("Bookstart"); JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); Trace("Bookend"); JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); JSON_GetFloatValue(Translate("mixPosition"), mixPosition); JSON_GetFloatValue(Translate("mixVolume"), mixVolume); JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); if (aspirateSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); BuildTempSequenceFromPositions(labwarePositions, seq); } else { DevGetSequenceRef(ML_STAR, aspirateSequence, seq); } STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); ArrayToString(o_liquidLevels_mm, o_stepReturn2); ArrayToString(o_liquidLevels_mL, o_stepReturn3); TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); } if (commandFromServer == "channelDispense") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); JSON_GetFloatValue(Translate("mixPosition"), mixPosition); JSON_GetFloatValue(Translate("mixVolume"), mixVolume); JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); if (dispenseSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); BuildTempSequenceFromPositions(labwarePositions, seq); } else { DevGetSequenceRef(ML_STAR, dispenseSequence, seq); } STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); ArrayToString(o_liquidLevels_mm, o_stepReturn2); ArrayToString(o_liquidLevels_mL, o_stepReturn3); TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); } if (commandFromServer == "channelTipEject") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); if (useDefaultWaste == 0) { if (wasteSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); BuildTempSequenceFromPositions(labwarePositions, seq); } else { DevGetSequenceRef(ML_STAR, wasteSequence, seq); } } else { SeqCopySequence(seq, ML_STAR.Waste); } STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn); TrcTrace(Translate("Tip eject step return:"), o_stepReturn); SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "mph96TipPickUp") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); if (tipSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); BuildTempSequenceFromPositions(labwarePositions, seq); } else { DevGetSequenceRef(ML_STAR, tipSequence, seq); } STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2); TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); } if (commandFromServer == "mph96Aspirate") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); JSON_GetFloatValue(Translate("mixPosition"), mixPosition); JSON_GetFloatValue(Translate("mixVolume"), mixVolume); JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); if (aspirateSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); BuildTempSequenceFromPositions(labwarePositions, seq); } else { DevGetSequenceRef(ML_STAR, aspirateSequence, seq); } STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn4); o_stepReturn2 = StrFStr(o_stepReturn2); o_stepReturn3 = StrFStr(o_stepReturn3); SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); } if (commandFromServer == "mph96Dispense") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); JSON_GetFloatValue(Translate("mixPosition"), mixPosition); JSON_GetFloatValue(Translate("mixVolume"), mixVolume); JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); if (dispenseSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); BuildTempSequenceFromPositions(labwarePositions, seq); } else { DevGetSequenceRef(ML_STAR, dispenseSequence, seq); } STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn4); o_stepReturn2 = StrFStr(o_stepReturn2); o_stepReturn3 = StrFStr(o_stepReturn3); SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); } if (commandFromServer == "mph96TipEject") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); if (tipEjectToKnownPosition == 0) { if (wasteSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); BuildTempSequenceFromPositions(labwarePositions, seq); } else { DevGetSequenceRef(ML_STAR, wasteSequence, seq); } } else { SeqCopySequence(seq, ML_STAR.Waste); } STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2); TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn); TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2); SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); } if (commandFromServer == "loadCarrier") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs); TrcTrace(Translate("Load carrier step return:"), o_stepReturn); SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); } if (commandFromServer == "unloadCarrier") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn); TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn); SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "gripGet") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); JSON_GetFloatValue(Translate("gripWidth"), gripWidth); JSON_GetFloatValue(Translate("gripHeight"), gripHeight); JSON_GetFloatValue(Translate("widthBefore"), widthBefore); JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); JSON_GetFloatValue(Translate("zSpeed"), zSpeed); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); if (plateSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); if (labwarePositions != "") { BuildTempSequenceFromPositions(labwarePositions, seq); } } else { DevGetSequenceRef(ML_STAR, plateSequence, seq); } if (lidSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); if (labwarePositions != "") { BuildTempSequenceFromPositions(labwarePositions, seq); } } else { DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); } DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn); TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn); SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "gripMove") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); if (plateSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); if (labwarePositions != "") { BuildTempSequenceFromPositions(labwarePositions, seq); } } else { DevGetSequenceRef(ML_STAR, plateSequence, seq); } STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn); TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn); SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "gripPlace") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); JSON_GetFloatValue(Translate("zSpeed"), zSpeed); JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); if (plateSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); if (labwarePositions != "") { BuildTempSequenceFromPositions(labwarePositions, seq); } } else { DevGetSequenceRef(ML_STAR, plateSequence, seq); } if (lidSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); if (labwarePositions != "") { BuildTempSequenceFromPositions(labwarePositions, seq); } } else { DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); } DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn); TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn); SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "iSwapGet") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("inverseGrip"), inverseGrip); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); JSON_GetFloatValue(Translate("retractDistance"), retractDistance); JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); JSON_GetFloatValue(Translate("gripWidth"), gripWidth); JSON_GetFloatValue(Translate("tolerance"), tolerance); JSON_GetFloatValue(Translate("gripHeight"), gripHeight); JSON_GetFloatValue(Translate("widthBefore"), widthBefore); if (plateSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); if (labwarePositions != "") { BuildTempSequenceFromPositions(labwarePositions, seq); } } else { DevGetSequenceRef(ML_STAR, plateSequence, seq); } if (lidSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); if (labwarePositions != "") { BuildTempSequenceFromPositions(labwarePositions, seq); } } else { DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); } STAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn); TrcTrace(Translate("iSWAP Get - step return :"), o_stepReturn); SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "iSwapMove") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); if (plateSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); if (labwarePositions != "") { BuildTempSequenceFromPositions(labwarePositions, seq); } } else { DevGetSequenceRef(ML_STAR, plateSequence, seq); } STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn); TrcTrace(Translate("iSWAP Move - step return :"), o_stepReturn); SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "iSwapPlace") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); JSON_GetFloatValue(Translate("retractDistance"), retractDistance); JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); if (plateSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); if (labwarePositions != "") { BuildTempSequenceFromPositions(labwarePositions, seq); } } else { DevGetSequenceRef(ML_STAR, plateSequence, seq); } if (lidSequence == "") { HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); if (labwarePositions != "") { BuildTempSequenceFromPositions(labwarePositions, seq); } } else { DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); } STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn); TrcTrace(Translate("iSWAP Place - step return :"), o_stepReturn); SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "iSwapPark") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("showCollisionCheckDialog"), showCollisionCheckDialog); STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_BeginMonitoring") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingToleranceRange"), shakingToleranceRange); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sampleInterval"), sampleInterval); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("action"), action); o_stepReturn = 0; onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ; err.Clear(); HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action); errLabel_3202FD4CC34D478f892F31C7684340BE : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_CreateStarDevice") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); onerror goto errLabel_18D9C44C12554d56B5C39C21EA142EC8 ; err.Clear(); o_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber); errLabel_18D9C44C12554d56B5C39C21EA142EC8 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); TrcTrace(Translate("HHS create STAR device step return2 (device number):"), deviceNumber); SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); } if (commandFromServer == "HHS_CreateUSBDevice") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ; err.Clear(); o_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber); errLabel_98100824AA704d26AB40A6BADEF39F48 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } TrcTrace(Translate("HHS create USB device step return:"), o_stepReturn); TrcTrace(Translate("HHS create USB device step return2 (device number):"), deviceNumber); SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); } if (commandFromServer == "HHS_EndMonitoring") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ; err.Clear(); o_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult); errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } TrcTrace(Translate("HHS End Monitoring step return:"), o_stepReturn); SendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(""), Translate(""), id); } if (commandFromServer == "HHS_GetFirmwareVersion") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ; err.Clear(); o_stepReturn = 0; HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion); errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(""), Translate(""), id); } if (commandFromServer == "HHS_GetSerialNumber") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 ; err.Clear(); o_stepReturn = 0; HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber); errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(""), Translate(""), id); } if (commandFromServer == "HHS_GetShakerParameter") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ; err.Clear(); o_stepReturn = 0; HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3); errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); } if (commandFromServer == "HHS_GetShakerSpeed") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ; err.Clear(); o_stepReturn = 0; o_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2); errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); } if (commandFromServer == "HHS_GetTempParameter") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ; err.Clear(); o_stepReturn = 0; HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4); errLabel_C16E1CF8298042f0A01D1040DC911015 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); } if (commandFromServer == "HHS_GetTemperature") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ; err.Clear(); o_stepReturn = 0; o_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2); errLabel_14A2AAD200434d69970AC483BD08B64F : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); } if (commandFromServer == "HHS_GetTemperatureState") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ; err.Clear(); o_stepReturn = 0; o_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2); errLabel_50485390A50647818ED2D3934FBC87E3 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); } if (commandFromServer == "HHS_SendFirmwareCommand") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), command); HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("parameter"), parameter); onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ; err.Clear(); o_stepReturn = 0; o_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter); errLabel_84EE5E4228B140f599748D1271CBB0F3 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_SetPlateLock") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("plateLock"), plateLock); onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ; err.Clear(); o_stepReturn = 0; o_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock); errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_SetShakerParameter") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingDirection"), shakingDirection); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingAccRamp"), shakingAccRamp); onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ; err.Clear(); o_stepReturn = 0; HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp); errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_SetSimulation") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ; err.Clear(); o_stepReturn = 0; HSLHamHeaterShaker::SetSimulation(simulate); errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_SetTempParameter") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("startTimeout"), startTimeout); HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("toleranceRange"), toleranceRange); HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("securityRange"), securityRange); onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ; err.Clear(); o_stepReturn = 0; HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange); errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_SetUSBTrace") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("trace"), intTrace); onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ; err.Clear(); o_stepReturn = 0; HSLHamHeaterShaker::SetUSBTrace(intTrace); errLabel_FE6D15E135D24fd7A06908E89474B650 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_StartAllShaker") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ; err.Clear(); o_stepReturn = 0; o_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed); errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_StartAllShakerTimed") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ; err.Clear(); o_stepReturn = 0; o_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime); errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_StartShaker") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ; err.Clear(); o_stepReturn = 0; o_stepReturn = HSLHamHeaterShaker::StartShaker(dispenseMode, shakingSpeed); errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_StartShakerTimed") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ; err.Clear(); o_stepReturn = 0; o_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); errLabel_29447729262E4e0f8B347F6640716D96 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_StartTempCtrl") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("temperature"), temperature); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("waitForTempReached"), waitForTempReached); onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ; err.Clear(); o_stepReturn = 0; o_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached); errLabel_764F491C76DA445383E5490AB126ADB4 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_StopAllShaker") { onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ; err.Clear(); o_stepReturn = 0; o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_StopShaker") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ; err.Clear(); o_stepReturn = 0; o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_StopTempCtrl") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_B5957B02990845739642D8C604B0B582 ; err.Clear(); o_stepReturn = 0; o_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber); errLabel_B5957B02990845739642D8C604B0B582 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_Terminate") { onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ; err.Clear(); o_stepReturn = 0; HSLHamHeaterShaker::Terminate(); errLabel_919FCF7F89804c398972DAFE2605D286 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_WaitForShaker") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ; err.Clear(); o_stepReturn = 0; o_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber); errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HHS_WaitForTempCtrl") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ; err.Clear(); o_stepReturn = 0; o_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber); errLabel_088C7630997A4749A400740DA66CBA0C : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "HxFanSet") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("persistant"), persistant); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); JSON_GetFloatValue(Translate("fanSpeed"), fanSpeed); onerror goto errLabel_AA4197CCBE624255B3C96A32C1894C99 ; err.Clear(); o_stepReturn = 0; if (simulate == 0) { { HxFan.Simulate("13409ed4_ce79_4ef9_89deb34df8b6dd6a"); } } else { { HxFan.Simulate("be3ae73e_7395_494a_9aed80ff221436dc"); } } { HxFan.SetComPort("ffdf7428_8946_4751_8ec8a7e00f208208"); } if (persistant == 0) { { HxFan.SetContinuousMode("d081b2a8_b3ef_4a06_9d8d4d8c6cd1dd39"); } } else { { HxFan.SetContinuousMode("4914f72b_ecb0_4ab4_b458a744727e1642"); } } if (fanSpeed == 0) { { HxFan.SetFanOff("cef636fc_366e_46f7_9a8e1e25f716fa31"); } } else { { HxFan.SetFanSpeed("f2bbd127_49ad_44c1_aa03eba6244b4cfc"); } } { HxFan.CloseComPort("162f7d41_f11e_4261_8602596bf1b6e888"); } errLabel_AA4197CCBE624255B3C96A32C1894C99 : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } if (commandFromServer == "CORE96WashEmpty") { HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("refillAfterEmpty"), refillAfterEmpty); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1WashLiquid"), chamber1WashLiquid); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1LiquidChange"), chamber1LiquidChange); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2WashLiquid"), chamber2WashLiquid); HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2LiquidChange"), chamber2LiquidChange); onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ; err.Clear(); o_stepReturn = 0; { variable arrRetValues[]; arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3("f4a1383e_67d1_4f19_92f3a5518acddda4"); } errLabel_EE8804FCDC214a06935DD0F4830020DB : {} onerror goto 0; if (err.GetId() != 0) { o_stepReturn = 1; } SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); } HSLJsonLib::Release(objJSONFromServer); if (commandFromServer == "end") { SendTextMessageToServer(Translate("Good Bye!")); break; } } } HSLHttp::Release(objHttp); STAR_OEM_TOOLKIT::_ExitLibrary(); } } ================================================ FILE: pyhamilton/star-oem/VENUS_Method/STAR_OEM_HiG.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 2/10/2023 12:53:51 AM #pragma once #ifndef HSL_RUNTIME namespace STAR_OEM_HIG { function _InitLibrary() { } function _ExitLibrary() { } function HiG_AbortSpin( variable & o_stepReturn ) void { } function HiG_CloseShield( variable & o_stepReturn ) void { } function HiG_Connect( variable i_strDeviceName, variable i_strAdapterDeviceID, variable i_blnSimulationMode, variable & o_FirmwareVersion, variable & o_stepReturn ) void { } function HiG_Disconnect( variable & o_stepReturn ) void { } function HiG_Home( variable & o_stepReturn ) void { } function HiG_IsSpinning( variable & o_blnIsSpinning, variable & o_stepReturn ) void { } function HiG_OpenShield( variable i_intBucketIndex, variable & o_stepReturn ) void { } function HiG_OverrideSimulation( variable i_intBucketIndex, variable & o_stepReturn ) void { } function HiG_Spin( variable i_fltRotationalGs, variable i_floatAccelPercent, variable i_floatDecelPercent, variable i_floatTimeSeconds, variable & o_stepReturn ) void { } function HiG_SpinAndWait( variable i_fltRotationalGs, variable i_floatAccelPercent, variable i_floatDecelPercent, variable i_floatTimeSeconds, variable & o_stepReturn ) void { } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=stefa$$valid=0$$time=2023-02-10 00:53$$checksum=4f9d4cea$$length=082$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/STAR_OEM_HiG.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "Hamilton Centrifuge\\Hamilton Centrifuge.hsl" #include "HSLErrLib.hsl" #include "BioNex HiG\\HSLHiGCentrifugeLib.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace STAR_OEM_HIG { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function HiG_AbortSpin( variable & o_stepReturn ) void ; function HiG_CloseShield( variable & o_stepReturn ) void ; function HiG_Connect( variable i_strDeviceName, variable i_strAdapterDeviceID, variable i_blnSimulationMode, variable & o_FirmwareVersion, variable & o_stepReturn ) void ; function HiG_Disconnect( variable & o_stepReturn ) void ; function HiG_Home( variable & o_stepReturn ) void ; function HiG_IsSpinning( variable & o_blnIsSpinning, variable & o_stepReturn ) void ; function HiG_OpenShield( variable i_intBucketIndex, variable & o_stepReturn ) void ; function HiG_OverrideSimulation( variable i_intBucketIndex, variable & o_stepReturn ) void ; function HiG_Spin( variable i_fltRotationalGs, variable i_floatAccelPercent, variable i_floatDecelPercent, variable i_floatTimeSeconds, variable & o_stepReturn ) void ; function HiG_SpinAndWait( variable i_fltRotationalGs, variable i_floatAccelPercent, variable i_floatDecelPercent, variable i_floatTimeSeconds, variable & o_stepReturn ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" // }} "" } // {{{ 5 "HiG_Connect" "Begin" function HiG_Connect( variable i_strDeviceName, variable i_strAdapterDeviceID, variable i_blnSimulationMode, variable & o_FirmwareVersion, variable & o_stepReturn ) void { // }} "" // {{ 5 "HiG_Connect" "InitLocals" o_FirmwareVersion = 0; o_stepReturn = 0; // }} "" // {{ 17 1 0 "6c01257a_6d51_4c37_a1432588f52c8502" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_A3458F4E91F041578F0E9BBA05624597 ; err.Clear(); // }} "" // {{{ 18 1 0 "62a91bb5_c6af_44dc_94ce7587ba5a21eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHiGCentrifugeLib::Connect(i_strDeviceName, i_strAdapterDeviceID, i_blnSimulationMode, o_FirmwareVersion); // }} "" // {{ 19 1 0 "f82f8575_91c8_4987_9acffbc574b1da9d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 20 1 0 "6c01257a_6d51_4c37_a1432588f52c8502" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_A3458F4E91F041578F0E9BBA05624597 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 21 1 0 "2ebe99ff_59ee_4e23_a5ebaafc75995104" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 22 1 0 "4aca392c_a3ac_468c_9de56afa31c54a2b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 23 1 0 "6c01257a_6d51_4c37_a1432588f52c8502" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "HiG_Connect" "End" } // }} "" // {{{ 5 "HiG_Disconnect" "Begin" function HiG_Disconnect( variable & o_stepReturn ) void { // }} "" // {{ 5 "HiG_Disconnect" "InitLocals" o_stepReturn = 0; // }} "" // {{ 25 1 0 "6ee3c64d_38b2_4016_90477eb4c177aa8f" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2554F8A8B83E4de481F4E34848FBB5BD ; err.Clear(); // }} "" // {{{ 26 1 0 "2014b8e2_890e_430a_90c5c439e09ec44e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHiGCentrifugeLib::Disconnect(); // }} "" // {{ 27 1 0 "f2cb87f4_a27d_422c_90cc2f5710d08240" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 28 1 0 "6ee3c64d_38b2_4016_90477eb4c177aa8f" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2554F8A8B83E4de481F4E34848FBB5BD : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 29 1 0 "8aab6957_7062_471e_8ce10e0a01cc7235" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 30 1 0 "b00191e4_7e6d_4bdb_9299c703c49e0953" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 31 1 0 "6ee3c64d_38b2_4016_90477eb4c177aa8f" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "HiG_Disconnect" "End" } // }} "" // {{{ 5 "HiG_Home" "Begin" function HiG_Home( variable & o_stepReturn ) void { // }} "" // {{ 5 "HiG_Home" "InitLocals" o_stepReturn = 0; // }} "" // {{ 33 1 0 "742b4521_62be_4217_a74147e86d9d1e13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_CF84626F306643fe86233640BD835AA3 ; err.Clear(); // }} "" // {{{ 34 1 0 "ab6eb061_5f41_4619_94172c26d5e61b6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHiGCentrifugeLib::Home(); // }} "" // {{ 35 1 0 "686511ed_83b4_4dcb_94ecbd93d0c781c2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 36 1 0 "742b4521_62be_4217_a74147e86d9d1e13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_CF84626F306643fe86233640BD835AA3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 37 1 0 "d8b06ede_5b12_4d44_ad71c40b183e7cc7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 38 1 0 "a9945d13_52c7_4d85_81db1e10100778ac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 39 1 0 "742b4521_62be_4217_a74147e86d9d1e13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "HiG_Home" "End" } // }} "" // {{{ 5 "HiG_Spin" "Begin" function HiG_Spin( variable i_fltRotationalGs, variable i_floatAccelPercent, variable i_floatDecelPercent, variable i_floatTimeSeconds, variable & o_stepReturn ) void { // }} "" // {{ 5 "HiG_Spin" "InitLocals" o_stepReturn = 0; // }} "" // {{ 65 1 0 "9e934c5a_38d1_4579_b7da4db543283c2a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_81C3FBB0403345519501D52D4B54855C ; err.Clear(); // }} "" // {{{ 66 1 0 "2cf61d7f_ae32_4c88_ad7c2f096b5c1b1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHiGCentrifugeLib::Spin(i_fltRotationalGs, i_floatAccelPercent, i_floatDecelPercent, o_stepReturn); // }} "" // {{ 67 1 0 "7a18eb46_c522_43c6_8a2f65c78e29afa1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 68 1 0 "9e934c5a_38d1_4579_b7da4db543283c2a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_81C3FBB0403345519501D52D4B54855C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 69 1 0 "606ee3d0_0798_4626_8664a0d981c01c3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 70 1 0 "310bc5cb_0cca_4983_ac232ebbb86619b5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 71 1 0 "9e934c5a_38d1_4579_b7da4db543283c2a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "HiG_Spin" "End" } // }} "" // {{{ 5 "HiG_SpinAndWait" "Begin" function HiG_SpinAndWait( variable i_fltRotationalGs, variable i_floatAccelPercent, variable i_floatDecelPercent, variable i_floatTimeSeconds, variable & o_stepReturn ) void { // }} "" // {{ 5 "HiG_SpinAndWait" "InitLocals" o_stepReturn = 0; // }} "" // {{ 73 1 0 "cd49c442_6b35_4bfd_8ca5835565ea36a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3230B353B74B4f56A6EA6B16E024DFC7 ; err.Clear(); // }} "" // {{{ 74 1 0 "f0ff508d_e7f7_4b35_a7069cc26abab9f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHiGCentrifugeLib::SpinAndWait(i_floatAccelPercent, i_floatDecelPercent, i_fltRotationalGs, i_floatTimeSeconds); // }} "" // {{ 75 1 0 "8cc88c7d_f23c_4bcd_883481c6fa62403a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 76 1 0 "cd49c442_6b35_4bfd_8ca5835565ea36a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3230B353B74B4f56A6EA6B16E024DFC7 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 77 1 0 "10e8b96c_ef7f_4dcb_8b002997a482663b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 78 1 0 "d6dbf085_7f9e_42f7_aff0b7772c2a82df" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 79 1 0 "cd49c442_6b35_4bfd_8ca5835565ea36a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "HiG_SpinAndWait" "End" } // }} "" // {{{ 5 "HiG_CloseShield" "Begin" function HiG_CloseShield( variable & o_stepReturn ) void { // }} "" // {{ 5 "HiG_CloseShield" "InitLocals" o_stepReturn = 0; // }} "" // {{ 9 1 0 "fb4908c7_8a7f_4a1e_a1ab9b44a4c426ee" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_87BB4FE4C134476bBA167C0CB32CC929 ; err.Clear(); // }} "" // {{{ 10 1 0 "5d91f578_49e3_4aa5_887b97109acb9333" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHiGCentrifugeLib::CloseShield(); // }} "" // {{ 11 1 0 "d2b8005a_187f_4de0_b5dd5400afda3a7c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 12 1 0 "fb4908c7_8a7f_4a1e_a1ab9b44a4c426ee" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_87BB4FE4C134476bBA167C0CB32CC929 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 13 1 0 "97cda2f9_58c5_4ecf_a1159f4e34ecc0a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 14 1 0 "b1eefad7_e0e3_4855_9ee77885a5a42958" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 15 1 0 "fb4908c7_8a7f_4a1e_a1ab9b44a4c426ee" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "HiG_CloseShield" "End" } // }} "" // {{{ 5 "HiG_OpenShield" "Begin" function HiG_OpenShield( variable i_intBucketIndex, variable & o_stepReturn ) void { // }} "" // {{ 5 "HiG_OpenShield" "InitLocals" o_stepReturn = 0; // }} "" // {{ 49 1 0 "8930ef0b_5d22_4758_a3d825af6744e89f" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_AD1B5CDD4C214ee69FDDED9F2C7200AD ; err.Clear(); // }} "" // {{{ 50 1 0 "c269ef08_da66_4215_a2993ec0d6300727" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHiGCentrifugeLib::OpenShield(i_intBucketIndex); // }} "" // {{ 51 1 0 "5077f475_7e23_487e_b196d2a16e20a6d9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 52 1 0 "8930ef0b_5d22_4758_a3d825af6744e89f" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_AD1B5CDD4C214ee69FDDED9F2C7200AD : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 53 1 0 "f1d80e31_891d_4a93_a55b473dc491ea87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 54 1 0 "81e4888f_351b_4dcb_b5e510008c112691" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 55 1 0 "8930ef0b_5d22_4758_a3d825af6744e89f" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "HiG_OpenShield" "End" } // }} "" // {{{ 5 "HiG_OverrideSimulation" "Begin" function HiG_OverrideSimulation( variable i_intBucketIndex, variable & o_stepReturn ) void { // }} "" // {{ 5 "HiG_OverrideSimulation" "InitLocals" o_stepReturn = 0; // }} "" // {{ 57 1 0 "111e2e56_0bc7_4f33_bef49b514c5f863a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_4D073B76FF1D469397FFD2862084B997 ; err.Clear(); // }} "" // {{{ 58 1 0 "e841af00_ac83_4464_a3c5da7d5e4f1d2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHiGCentrifugeLib::OverrideSimulation(i_intBucketIndex); // }} "" // {{ 59 1 0 "8ae44414_048a_41a0_885a303a0255fe91" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 60 1 0 "111e2e56_0bc7_4f33_bef49b514c5f863a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_4D073B76FF1D469397FFD2862084B997 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 61 1 0 "bd0b1aee_b98c_4d47_b5aa679d13300ddb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 62 1 0 "ae437116_e672_44fb_8ccd227f00d05456" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 63 1 0 "111e2e56_0bc7_4f33_bef49b514c5f863a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "HiG_OverrideSimulation" "End" } // }} "" // {{{ 5 "HiG_AbortSpin" "Begin" function HiG_AbortSpin( variable & o_stepReturn ) void { // }} "" // {{ 5 "HiG_AbortSpin" "InitLocals" o_stepReturn = 0; // }} "" // {{ 1 1 0 "64eee699_ddb9_474b_8bba8dfd71b20e54" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_4049C9F506864463BE64AEC9D7EFCFDD ; err.Clear(); // }} "" // {{{ 2 1 0 "8a731828_faea_4eb5_af52ba9a12dc71f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHiGCentrifugeLib::AbortSpin(); // }} "" // {{ 3 1 0 "c8a1dd79_3716_4308_a095a18222dd6d60" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 4 1 0 "64eee699_ddb9_474b_8bba8dfd71b20e54" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_4049C9F506864463BE64AEC9D7EFCFDD : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 5 1 0 "4378acbd_dfb1_4f35_bb1ebe39afb0b5da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 6 1 0 "56c31bb8_38df_4687_b0454c9a9c5fa13f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 7 1 0 "64eee699_ddb9_474b_8bba8dfd71b20e54" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "HiG_AbortSpin" "End" } // }} "" // {{{ 5 "HiG_IsSpinning" "Begin" function HiG_IsSpinning( variable & o_blnIsSpinning, variable & o_stepReturn ) void { // }} "" // {{ 5 "HiG_IsSpinning" "InitLocals" o_blnIsSpinning = 0; o_stepReturn = 0; // }} "" // {{ 41 1 0 "ef865f14_9ee2_4188_bd78d78ac30bd35c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_320F46D440E34e41BFFD229607C390D0 ; err.Clear(); // }} "" // {{{ 42 1 0 "929bd795_ba3a_4316_8dde41d90e744132" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHiGCentrifugeLib::IsSpinning(o_blnIsSpinning); // }} "" // {{ 43 1 0 "babf83e4_2010_4c55_9b5d2aa1c38b7524" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 44 1 0 "ef865f14_9ee2_4188_bd78d78ac30bd35c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_320F46D440E34e41BFFD229607C390D0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 45 1 0 "62c24366_6439_4aab_bcd7b4f58c4c9c71" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 46 1 0 "037952c9_16ae_46ae_9740fabe839500f6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 47 1 0 "ef865f14_9ee2_4188_bd78d78ac30bd35c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "HiG_IsSpinning" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=stefa$$valid=0$$time=2023-02-10 00:53$$checksum=e1d2993d$$length=084$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/STAR_OEM_ODTC.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 1/28/2023 1:23:56 AM #pragma once #ifndef HSL_RUNTIME namespace STAR_OEM_ODTC { function _InitLibrary() { } function _ExitLibrary() { } function Abort( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { } function CloseDoor( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { } function Connect( variable i_strLocalIP, variable i_strDeviceIP, variable i_strDevicePort, variable i_blnSimulationMode, variable & o_intDeviceID, variable & o_strMessage, variable & o_stepReturn ) void { } function DownloadProtocol( variable i_intDeviceID, variable i_strLockID, variable i_strProtocolFile, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { } function EvaluateError( variable i_intErrorCode, variable & o_strErrorMessage, variable & o_stepReturn ) void { } function ExecuteMethod( variable i_intDeviceID, variable i_strLockID, variable i_strMethodName, variable i_intPriority, variable & o_intDuration, variable & o_intRequestID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { } function GetLastData( variable i_intDeviceID, variable i_strLockID, variable & o_strResult, variable & o_intSilLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { } function GetStatus( variable i_intDeviceID, variable & o_strDeviceID, variable & o_strState, variable & o_blnLocked, variable & o_strPMSId, variable & o_strCurrentTime, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { } function Initialize( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { } function OpenDoor( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { } function ReadActualTemperature( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_arrfltActualTemperatures[], variable & o_arrstrActualTemperatureNames[], variable & o_strTime, variable & o_stepReturn ) void { } function Reset( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable i_blnSimulateOnDeviceBase, variable i_intTimeToWait, variable i_strDeviceId, variable i_strPMSID, variable & o_stepReturn ) void { } function StopMethod( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable i_blnSimulateOnDeviceBase, variable i_intTimeToWait, variable i_strDeviceId, variable i_strPMSID, variable & o_stepReturn ) void { } function Terminate( variable i_intDeviceID, variable & o_strSiLAMessage, variable & o_stepReturn ) void { } function WaitForEndOfExecuteMethod( variable i_intDeviceID, variable i_intTimeOut, variable i_intRequestID, variable & o_intSilLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=stefa$$valid=0$$time=2023-01-28 01:23$$checksum=2cf7909a$$length=082$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/STAR_OEM_ODTC.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" #include "HSLErrLib.hsl" #include "Inheco ODTC\\Inheco ODTC.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace STAR_OEM_ODTC { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function Abort( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void ; function CloseDoor( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void ; function Connect( variable i_strLocalIP, variable i_strDeviceIP, variable i_strDevicePort, variable i_blnSimulationMode, variable & o_intDeviceID, variable & o_strMessage, variable & o_stepReturn ) void ; function DownloadProtocol( variable i_intDeviceID, variable i_strLockID, variable i_strProtocolFile, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void ; function EvaluateError( variable i_intErrorCode, variable & o_strErrorMessage, variable & o_stepReturn ) void ; function ExecuteMethod( variable i_intDeviceID, variable i_strLockID, variable i_strMethodName, variable i_intPriority, variable & o_intDuration, variable & o_intRequestID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void ; function GetLastData( variable i_intDeviceID, variable i_strLockID, variable & o_strResult, variable & o_intSilLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void ; function GetStatus( variable i_intDeviceID, variable & o_strDeviceID, variable & o_strState, variable & o_blnLocked, variable & o_strPMSId, variable & o_strCurrentTime, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void ; function Initialize( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void ; function OpenDoor( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void ; function ReadActualTemperature( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_arrfltActualTemperatures[], variable & o_arrstrActualTemperatureNames[], variable & o_strTime, variable & o_stepReturn ) void ; function Reset( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable i_blnSimulateOnDeviceBase, variable i_intTimeToWait, variable i_strDeviceId, variable i_strPMSID, variable & o_stepReturn ) void ; function StopMethod( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable i_blnSimulateOnDeviceBase, variable i_intTimeToWait, variable i_strDeviceId, variable i_strPMSID, variable & o_stepReturn ) void ; function Terminate( variable i_intDeviceID, variable & o_strSiLAMessage, variable & o_stepReturn ) void ; function WaitForEndOfExecuteMethod( variable i_intDeviceID, variable i_intTimeOut, variable i_intRequestID, variable & o_intSilLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" // }} "" } // {{{ 5 "Abort" "Begin" function Abort( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { // }} "" // {{ 5 "Abort" "InitLocals" o_intSiLAReturnValue = 0; o_strSiLAMessage = 0; o_stepReturn = 0; // }} "" // {{ 1 1 0 "792db77a_e0a2_43ed_a641c8791760ea31" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F9D5FD5CE0B048aa90976C5F1B9875B6 ; err.Clear(); // }} "" // {{{ 2 1 0 "4bf9a026_3315_4c06_95b1c755a18dd3a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Inheco_ODTC::Standard::Abort(i_intDeviceID, i_strLockID, o_intSiLAReturnValue, o_strSiLAMessage); // }} "" // {{ 3 1 0 "792db77a_e0a2_43ed_a641c8791760ea31" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F9D5FD5CE0B048aa90976C5F1B9875B6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 4 1 0 "77373db2_975d_4c7c_9f5bb6044221ad1b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 5 1 0 "792db77a_e0a2_43ed_a641c8791760ea31" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Abort" "End" } // }} "" // {{{ 5 "Connect" "Begin" function Connect( variable i_strLocalIP, variable i_strDeviceIP, variable i_strDevicePort, variable i_blnSimulationMode, variable & o_intDeviceID, variable & o_strMessage, variable & o_stepReturn ) void { // }} "" // {{ 5 "Connect" "InitLocals" o_intDeviceID = 0; o_strMessage = 0; o_stepReturn = 0; // }} "" // {{ 13 1 0 "2ce08ac5_7881_4789_b2fbe03a0e93e330" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_23FBC91941AF45aa97AE3BFF1A12A747 ; err.Clear(); // }} "" // {{{ 14 1 0 "e4b6589e_f9fa_4bd6_abe4bfeacf86e236" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Inheco_ODTC::Standard::Connect(i_strLocalIP, i_strDeviceIP, i_strDevicePort, i_blnSimulationMode, o_intDeviceID, o_strMessage); // }} "" // {{ 15 1 0 "2ce08ac5_7881_4789_b2fbe03a0e93e330" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_23FBC91941AF45aa97AE3BFF1A12A747 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 16 1 0 "2539720c_b5b4_4f2f_b85c858721beb7e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 17 1 0 "2ce08ac5_7881_4789_b2fbe03a0e93e330" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Connect" "End" } // }} "" // {{{ 5 "Initialize" "Begin" function Initialize( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { // }} "" // {{ 5 "Initialize" "InitLocals" o_intSiLAReturnValue = 0; o_strSiLAMessage = 0; o_stepReturn = 0; // }} "" // {{ 49 1 0 "a536d7eb_47fa_4de4_a1bd0b08c9399ad3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_AD2FCC1AF1F2494cBE28A6971B5704FF ; err.Clear(); // }} "" // {{{ 50 1 0 "670eca66_2a2b_4b65_a8f6c6b3d09fb02e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Inheco_ODTC::Standard::Initialize(i_intDeviceID, i_strLockID, o_intSiLAReturnValue, o_strSiLAMessage); // }} "" // {{ 51 1 0 "a536d7eb_47fa_4de4_a1bd0b08c9399ad3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_AD2FCC1AF1F2494cBE28A6971B5704FF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 52 1 0 "b0fe448a_d01c_4748_930679e1d35edafa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 53 1 0 "a536d7eb_47fa_4de4_a1bd0b08c9399ad3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Initialize" "End" } // }} "" // {{{ 5 "CloseDoor" "Begin" function CloseDoor( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { // }} "" // {{ 5 "CloseDoor" "InitLocals" o_intSiLAReturnValue = 0; o_strSiLAMessage = 0; o_stepReturn = 0; // }} "" // {{ 7 1 0 "ccbbdc64_5f24_4d88_8705aa00ec1f2f5d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2A3B0A0084BA4a07BE5BB42184B59B59 ; err.Clear(); // }} "" // {{{ 8 1 0 "f2d869df_15ca_4c27_b848e7aa67020f76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Inheco_ODTC::Standard::CloseDoor(i_intDeviceID, i_strLockID, o_intSiLAReturnValue, o_strSiLAMessage); // }} "" // {{ 9 1 0 "ccbbdc64_5f24_4d88_8705aa00ec1f2f5d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2A3B0A0084BA4a07BE5BB42184B59B59 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 10 1 0 "2f598319_adec_4c2c_84c1b2630bda8541" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 11 1 0 "ccbbdc64_5f24_4d88_8705aa00ec1f2f5d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "CloseDoor" "End" } // }} "" // {{{ 5 "DownloadProtocol" "Begin" function DownloadProtocol( variable i_intDeviceID, variable i_strLockID, variable i_strProtocolFile, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { // }} "" // {{ 5 "DownloadProtocol" "InitLocals" o_intSiLAReturnValue = 0; o_strSiLAMessage = 0; o_stepReturn = 0; // }} "" // {{ 19 1 0 "6f3bbe5d_d435_4cae_bfeacbab2ca334b7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FFA51897300143aa9AA62FE43AA5F1BC ; err.Clear(); // }} "" // {{{ 20 1 0 "eba94778_a195_4f45_94efd7e307c8fef3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Inheco_ODTC::Standard::DownloadProtocol(i_intDeviceID, i_strLockID, i_strProtocolFile, o_intSiLAReturnValue, o_strSiLAMessage); // }} "" // {{ 21 1 0 "6f3bbe5d_d435_4cae_bfeacbab2ca334b7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FFA51897300143aa9AA62FE43AA5F1BC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 22 1 0 "621cf572_028b_4211_96fc4eb380c92247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 23 1 0 "6f3bbe5d_d435_4cae_bfeacbab2ca334b7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "DownloadProtocol" "End" } // }} "" // {{{ 5 "EvaluateError" "Begin" function EvaluateError( variable i_intErrorCode, variable & o_strErrorMessage, variable & o_stepReturn ) void { // }} "" // {{ 5 "EvaluateError" "InitLocals" o_strErrorMessage = 0; o_stepReturn = 0; // }} "" // {{ 25 1 0 "0fd8e6e6_20df_4c32_9f0b09cae9fb0b4c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_715B8D695925477083289A562024E954 ; err.Clear(); // }} "" // {{{ 26 1 0 "fdafdec0_1668_48c1_9c1d93cdb5d4a10c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Inheco_ODTC::Standard::EvaluateError(i_intErrorCode, o_strErrorMessage); // }} "" // {{ 27 1 0 "0fd8e6e6_20df_4c32_9f0b09cae9fb0b4c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_715B8D695925477083289A562024E954 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 28 1 0 "22b810db_9751_42e9_b37fa0b2fe6c100a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 29 1 0 "0fd8e6e6_20df_4c32_9f0b09cae9fb0b4c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "EvaluateError" "End" } // }} "" // {{{ 5 "ExecuteMethod" "Begin" function ExecuteMethod( variable i_intDeviceID, variable i_strLockID, variable i_strMethodName, variable i_intPriority, variable & o_intDuration, variable & o_intRequestID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { // }} "" // {{ 5 "ExecuteMethod" "InitLocals" o_intDuration = 0; o_intRequestID = 0; o_intSiLAReturnValue = 0; o_strSiLAMessage = 0; o_stepReturn = 0; // }} "" // {{ 31 1 0 "0567c84c_492b_4576_8489198190403e7f" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_BDDACCD6036E42fbBA416D02B81DF4AF ; err.Clear(); // }} "" // {{{ 32 1 0 "0cecd05c_a4d5_4b00_ba71e0fc3e4c0925" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Inheco_ODTC::Standard::ExecuteMethod(i_intDeviceID, i_strLockID, i_strMethodName, i_intPriority, o_intDuration, o_intRequestID, o_intSiLAReturnValue, o_strSiLAMessage); // }} "" // {{ 33 1 0 "0567c84c_492b_4576_8489198190403e7f" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_BDDACCD6036E42fbBA416D02B81DF4AF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 34 1 0 "c1065cf3_9979_47d9_9efd70a2317dfaf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 35 1 0 "0567c84c_492b_4576_8489198190403e7f" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "ExecuteMethod" "End" } // }} "" // {{{ 5 "GetStatus" "Begin" function GetStatus( variable i_intDeviceID, variable & o_strDeviceID, variable & o_strState, variable & o_blnLocked, variable & o_strPMSId, variable & o_strCurrentTime, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { // }} "" // {{ 5 "GetStatus" "InitLocals" o_strDeviceID = 0; o_strState = 0; o_blnLocked = 0; o_strPMSId = 0; o_strCurrentTime = 0; o_intSiLAReturnValue = 0; o_strSiLAMessage = 0; o_stepReturn = 0; // }} "" // {{ 43 1 0 "5a4a9e28_0920_48d3_9b5e6118b2897902" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_A6252706DB6E47f1A1C8F059DB2074DE ; err.Clear(); // }} "" // {{{ 44 1 0 "9958f4eb_9c40_4439_83a0a066eebb4281" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Inheco_ODTC::Standard::GetStatus(i_intDeviceID, o_strDeviceID, o_strState, o_blnLocked, o_strPMSId, o_strCurrentTime, o_intSiLAReturnValue, o_strSiLAMessage); // }} "" // {{ 45 1 0 "5a4a9e28_0920_48d3_9b5e6118b2897902" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_A6252706DB6E47f1A1C8F059DB2074DE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 46 1 0 "f57cc1ce_0ea8_48f7_bc8b457254e795a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 47 1 0 "5a4a9e28_0920_48d3_9b5e6118b2897902" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "GetStatus" "End" } // }} "" // {{{ 5 "OpenDoor" "Begin" function OpenDoor( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { // }} "" // {{ 5 "OpenDoor" "InitLocals" o_intSiLAReturnValue = 0; o_strSiLAMessage = 0; o_stepReturn = 0; // }} "" // {{ 55 1 0 "72dfe05f_6413_49c3_92612d742857c02b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9FB694BC0C5C40ccB5BE71778E5D54C5 ; err.Clear(); // }} "" // {{{ 56 1 0 "ba3ff96f_7290_438c_baeb4e456b327d53" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Inheco_ODTC::Standard::OpenDoor(i_intDeviceID, i_strLockID, o_intSiLAReturnValue, o_strSiLAMessage); // }} "" // {{ 57 1 0 "72dfe05f_6413_49c3_92612d742857c02b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9FB694BC0C5C40ccB5BE71778E5D54C5 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 58 1 0 "32c0d228_4228_4f78_b24ed25bc5c87408" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 59 1 0 "72dfe05f_6413_49c3_92612d742857c02b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "OpenDoor" "End" } // }} "" // {{{ 5 "ReadActualTemperature" "Begin" function ReadActualTemperature( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable & o_arrfltActualTemperatures[], variable & o_arrstrActualTemperatureNames[], variable & o_strTime, variable & o_stepReturn ) void { // }} "" // {{ 5 "ReadActualTemperature" "InitLocals" o_intSiLAReturnValue = 0; o_strSiLAMessage = 0; o_arrfltActualTemperatures.SetSize( 0); o_arrstrActualTemperatureNames.SetSize( 0); o_strTime = 0; o_stepReturn = 0; // }} "" // {{ 61 1 0 "a88c2dee_c5a5_4c09_83245ae59dc0256f" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_AD52608801714a2fBA7716430DEC1F40 ; err.Clear(); // }} "" // {{{ 62 1 0 "834cc51a_7c7c_4b96_b6bbaa72ecf3abcb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Inheco_ODTC::Standard::ReadActualTemperature(i_intDeviceID, i_strLockID, o_strTime, o_arrfltActualTemperatures, o_arrstrActualTemperatureNames, o_intSiLAReturnValue, o_strSiLAMessage); // }} "" // {{ 63 1 0 "a88c2dee_c5a5_4c09_83245ae59dc0256f" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_AD52608801714a2fBA7716430DEC1F40 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 64 1 0 "de489174_dc78_4f22_a7ebf0a2e3cb4aef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 65 1 0 "a88c2dee_c5a5_4c09_83245ae59dc0256f" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "ReadActualTemperature" "End" } // }} "" // {{{ 5 "Reset" "Begin" function Reset( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable i_blnSimulateOnDeviceBase, variable i_intTimeToWait, variable i_strDeviceId, variable i_strPMSID, variable & o_stepReturn ) void { // }} "" // {{ 5 "Reset" "InitLocals" o_intSiLAReturnValue = 0; o_strSiLAMessage = 0; o_stepReturn = 0; // }} "" // {{ 67 1 0 "92ba2c66_baeb_4ae6_8f5e51aedd9f4640" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_88AB86F9A69A486386F4EDC51F4349A7 ; err.Clear(); // }} "" // {{{ 68 1 0 "3ea78baa_5233_459d_9d234aa98f81764a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Inheco_ODTC::Standard::Reset(i_intDeviceID, i_blnSimulateOnDeviceBase, i_intTimeToWait, i_strLockID, i_strDeviceId, i_strPMSID, o_intSiLAReturnValue, o_strSiLAMessage); // }} "" // {{ 69 1 0 "92ba2c66_baeb_4ae6_8f5e51aedd9f4640" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_88AB86F9A69A486386F4EDC51F4349A7 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 70 1 0 "306ee742_b8a3_48e8_8178464f6a97d399" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 71 1 0 "92ba2c66_baeb_4ae6_8f5e51aedd9f4640" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Reset" "End" } // }} "" // {{{ 5 "StopMethod" "Begin" function StopMethod( variable i_intDeviceID, variable i_strLockID, variable & o_intSiLAReturnValue, variable & o_strSiLAMessage, variable i_blnSimulateOnDeviceBase, variable i_intTimeToWait, variable i_strDeviceId, variable i_strPMSID, variable & o_stepReturn ) void { // }} "" // {{ 5 "StopMethod" "InitLocals" o_intSiLAReturnValue = 0; o_strSiLAMessage = 0; o_stepReturn = 0; // }} "" // {{ 73 1 0 "f31f04dd_6589_4f7f_8221bbc6fd05839c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_1DC28FD6D1624beaB4CF88AA0BA02FB6 ; err.Clear(); // }} "" // {{{ 74 1 0 "90aa34a3_c25a_4349_8cb2237eb4c41de7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Inheco_ODTC::Standard::StopMethod(i_intDeviceID, i_strLockID, o_intSiLAReturnValue, o_strSiLAMessage); // }} "" // {{ 75 1 0 "f31f04dd_6589_4f7f_8221bbc6fd05839c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_1DC28FD6D1624beaB4CF88AA0BA02FB6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 76 1 0 "27414829_59ce_428a_aecc194bf4449dcd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 77 1 0 "f31f04dd_6589_4f7f_8221bbc6fd05839c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "StopMethod" "End" } // }} "" // {{{ 5 "Terminate" "Begin" function Terminate( variable i_intDeviceID, variable & o_strSiLAMessage, variable & o_stepReturn ) void { // }} "" // {{ 5 "Terminate" "InitLocals" o_strSiLAMessage = 0; o_stepReturn = 0; // }} "" // {{ 79 1 0 "87d1861b_2500_423c_ac9f4cadcad50c04" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E7AA714265774e9fB42460A25D0EB8FE ; err.Clear(); // }} "" // {{{ 80 1 0 "94dd3d02_8444_4676_b889225ca42a7f82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Inheco_ODTC::Standard::Terminate(i_intDeviceID, o_strSiLAMessage); // }} "" // {{ 81 1 0 "87d1861b_2500_423c_ac9f4cadcad50c04" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E7AA714265774e9fB42460A25D0EB8FE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 82 1 0 "d7f0ccfa_1836_4068_87a4dcb994075e38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 83 1 0 "87d1861b_2500_423c_ac9f4cadcad50c04" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Terminate" "End" } // }} "" // {{{ 5 "WaitForEndOfExecuteMethod" "Begin" function WaitForEndOfExecuteMethod( variable i_intDeviceID, variable i_intTimeOut, variable i_intRequestID, variable & o_intSilLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { // }} "" // {{ 5 "WaitForEndOfExecuteMethod" "InitLocals" o_intSilLAReturnValue = 0; o_strSiLAMessage = 0; o_stepReturn = 0; // }} "" // {{ 85 1 0 "5c0f134b_aaf9_41ae_a1ba66f3035a7416" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_074C9EA54DAD4530AA6998C876739917 ; err.Clear(); // }} "" // {{{ 86 1 0 "a888f241_2619_4927_bbe9a7c6260f3cfa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Inheco_ODTC::Standard::WaitForEndOfExecuteMethod(i_intDeviceID, i_intTimeOut, i_intRequestID, o_intSilLAReturnValue, o_strSiLAMessage); // }} "" // {{ 87 1 0 "5c0f134b_aaf9_41ae_a1ba66f3035a7416" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_074C9EA54DAD4530AA6998C876739917 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 88 1 0 "1c2a9d5f_43f6_4bdd_94f45b469994e3c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 89 1 0 "5c0f134b_aaf9_41ae_a1ba66f3035a7416" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "WaitForEndOfExecuteMethod" "End" } // }} "" // {{{ 5 "GetLastData" "Begin" function GetLastData( variable i_intDeviceID, variable i_strLockID, variable & o_strResult, variable & o_intSilLAReturnValue, variable & o_strSiLAMessage, variable & o_stepReturn ) void { // }} "" private variable o_intDuration; private variable i_strMethodName; private variable o_intSiLAReturnValue; private variable o_intRequestID; private variable i_intPriority; // {{ 5 "GetLastData" "InitLocals" o_strResult = 0; o_intSilLAReturnValue = 0; o_strSiLAMessage = 0; o_stepReturn = 0; // }} "" // {{ 37 1 0 "f0d3a404_31c8_4e0d_b86a28bcab4fa26d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F06C130812434646BAC6E0ECB8CE1903 ; err.Clear(); // }} "" // {{{ 38 1 0 "d12c5a41_25da_4821_9028342fa5721a15" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Inheco_ODTC::Advanced::GetLastData(i_intDeviceID, i_strLockID, o_strResult, o_intSiLAReturnValue, o_strSiLAMessage); // }} "" // {{ 39 1 0 "f0d3a404_31c8_4e0d_b86a28bcab4fa26d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F06C130812434646BAC6E0ECB8CE1903 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 40 1 0 "298ff522_cdf2_47bd_86c3f4af33f6a5eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 41 1 0 "f0d3a404_31c8_4e0d_b86a28bcab4fa26d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "GetLastData" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=stefa$$valid=0$$time=2023-01-28 01:23$$checksum=9437437f$$length=084$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/STAR_OEM_Test.hsl ================================================ namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HslHamHeaterShakerLib.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } #include "STAR_OEM_Test.res" /* {{ 2 "LibraryInsertLine" "" */ // }} "" variable loopCounterMain; variable msg; object objJSONFromServer; variable commandFromServer; variable initializeAlways; variable o_stepReturn; object objJSONToServer; sequence seq; variable tipSequence; variable sequenceCounting; variable channelVariable; variable channelUse; variable labwarePositions; variable aspirateSequence; variable v; variable arrayOfVolumes[]; variable liquidClass; variable aspirateMode; variable capacitiveLLD; variable pressureLLD; variable liquidFollowing; variable submergeDepth; variable liquidHeight; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable airTransportRetractDist; variable touchOff; variable aspPosAboveTouch; variable o_liquidLevels_mm[]; variable o_liquidLevels_mL[]; variable o_stepReturn2; variable o_stepReturn3; variable dispenseMode; variable dispenseSequence; variable dispPositionAboveTouch; variable zMoveAfterStep; variable sideTouch; variable wasteSequence; variable useDefaultWaste; variable reducedPatternMode; variable aspirateVolume; variable o_stepReturn4; variable dispenseVolume; variable tipEjectToKnownPosition; variable carrierName; variable barcodeFileName; variable barcodeReadPositions; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable lidSequence; variable plateSequence; variable toolSequence; variable transportMode; variable widthBefore; variable gripHeight; variable gripWidth; variable gripSpeed; variable gripperToolChannel; variable checkPlate; variable zSpeed; variable gripForce; sequence lidSeq; sequence toolSeq; variable xAcceleration; variable platePressOnDistance; variable ejectToolWhenFinish; object objHttp; variable blnReturn; variable blnSuccess; variable usedNode; variable deviceNumber; variable action; variable sampleInterval; variable shakingToleranceRange; variable id; global device ML_STAR ("STAR_OEM_Test.lay", "ML_STAR", hslTrue); variable monitorResult; variable firmwareVersion; variable serialNumber; variable command; variable parameter; variable plateLock; variable shakingAccRamp; variable shakingDirection; variable simulate; variable startTimeout; variable toleranceRange; variable securityRange; variable intTrace; variable shakingSpeed; variable shakingTime; variable temperature; variable waitForTempReached; variable inverseGrip; variable liftUpHeight; variable retractDistance; variable tolerance; variable labwareOrientation; variable movementType; variable collisionControl; variable gripMode; variable showCollisionCheckDialog; global device HxFan ("STAR_OEM_Test.lay", "HxFan", hslTrue); variable fanSpeed; variable persistant; variable refillAfterEmpty; variable chamber1LiquidChange; variable chamber2WashLiquid; variable chamber1WashLiquid; variable chamber2LiquidChange; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" STAR_OEM_TOOLKIT::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{{ 1 1 0 "e7768ad9_4016_4422_bd83f5785d03ceda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnReturn = HSLHttp::Initialize(objHttp); // }} "" // {{ 2 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnReturn != blnSuccess) { // }} "" // {{{ 3 1 0 "62c131b4_44b9_4249_8e0a3205a25b21b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); // }} "" // {{{ 4 1 0 "fb18125e_b294_4554_912c3d447526996e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 5 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 6 1 0 "ee92e29b_e94c_46cf_a67851f3be61c805" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Hi, Im a VENUS method.")); // }} "" // {{ 7 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; // }} "" // {{ 8 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "de417132_351a_4ad8_80c71b1863d4a870" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" commandFromServer = Translate(""); // }} "" // {{ 10 1 0 "d9c97239_3c9d_4992_8fb5820ae5721d90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate(""); // }} "" // {{ 11 1 0 "57da7835_7495_4b16_8b82897289efbd11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn2 = Translate(""); // }} "" // {{ 12 1 0 "cf024fcc_3594_4355_b33f4bd8c8bdfb4e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn3 = Translate(""); // }} "" // {{ 13 1 0 "9ed0b80d_8518_474f_a94d8f843a6158fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn4 = Translate(""); // }} "" // {{ 14 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 15 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 16 1 0 "0257e5d3_7b99_47be_a062950a2b200664" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" msg = waitForGUItoContinue(); // }} "" Trace("JSON received from Server:", msg); // {{{ 18 1 0 "36be63f7_a79c_44a4_b1dc636a536612bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONFromServer); // }} "" // {{{ 19 1 0 "5c2b861d_97f9_4e18_a5fce25e78026299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::ParseJson(objJSONFromServer, msg); // }} "" // {{{ 20 1 0 "562abca5_8891_402a_b8a7c5ba56301a86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); // }} "" // {{{ 21 1 0 "cb002e33_cc71_4a25_890fa8f9f5d982a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("id"), id); // }} "" // {{ 22 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 23 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 24 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "initialize") { // }} "" // {{{ 25 1 0 "773dbb38_0414_403d_b2ff24100c7cf1fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); // }} "" // {{{ 26 1 0 "97af1c08_2914_4f72_b27c685f11b30bb6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); // }} "" // {{{ 27 1 0 "b3ab11e2_0297_446f_9cf37ca7c0c9d19f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Init step return:"), o_stepReturn); // }} "" // {{{ 28 1 0 "57d4e0cd_327e_4cac_8e83a7da6222dda0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 29 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 30 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 31 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 32 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 33 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipPickUp") { // }} "" // {{{ 34 1 0 "53e1cfb5_1fde_491f_bfd878eceda16ba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 35 1 0 "f0e9e31f_d871_4632_bd466e43fc38c771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 36 1 0 "e6311b13_2132_40e0_aff0b5556205c32a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 37 1 0 "cb659ed1_5f0c_41e8_8a060ec0b650c589" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{ 38 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 39 1 0 "6699226b_6c7b_4b79_95b8017162b433b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 40 1 0 "bd13798f_62e7_4dd2_8e91769d48d10fc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 41 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 42 1 0 "ce13caa6_634b_4dec_8a6c3ea74b144e95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 43 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 44 1 0 "29f69958_d99b_455a_93c7b0480bfd1658" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn); // }} "" // {{{ 45 1 0 "732425fd_a199_4354_8479d821ee834e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 46 1 0 "22f00193_1056_456e_a515d156eee56e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 47 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 48 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 49 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 50 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelAspirate") { // }} "" // {{ 51 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 52 1 0 "55ee3109_036b_4acb_8a15175f3316656f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 53 1 0 "a5b3e5ac_4910_4a4a_8e20bdb7f61836e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 54 1 0 "ce04189a_96e4_4bdc_aedc8a68bf64647b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 55 1 0 "882daff3_cc25_4778_aec6a937fc87347c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 56 1 0 "7f7b9f83_5611_4a3b_b5c120689696addb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 57 1 0 "39e464b7_0def_403b_a02f5dd2a358dbd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 58 1 0 "2e2739aa_8eb6_44e0_b887ea00b04acac0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 59 1 0 "9408edd8_3cee_43e0_976b4a6fabf5f4ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 60 1 0 "a2848877_3518_4d1d_95f77c1f313003e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); // }} "" // {{{ 61 1 0 "4b5ce3d0_91f4_4c14_aaf1cad34e0caf60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" Trace("Bookstart"); // {{{ 63 1 0 "12892ce3_3bc6_4165_b3b6ae0eacad20e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" Trace("Bookend"); // {{{ 65 1 0 "15bd5af3_2da1_420b_beb398dc2347a0ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 66 1 0 "4fe61fb4_bb39_4728_96b8c6959f4943ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); // }} "" // {{{ 67 1 0 "ba68c240_2397_4872_949ee1ee984595c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 68 1 0 "baac19fc_9f21_4e8c_b833f2a1ba2433f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 69 1 0 "253130f8_f599_4ef4_9d5a15e2cb89d1eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 70 1 0 "51233931_483f_4deb_a8627b909d6c9116" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 71 1 0 "3f8b6af1_7872_4a20_92bf2c4507ea9f31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); // }} "" // {{{ 72 1 0 "7dd1b818_5a89_4b03_82734e6f4d7b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{ 73 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 74 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 75 1 0 "cb2b67f0_7384_4a41_831de652f92d4c85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 76 1 0 "29a868b4_7800_4747_b14eaf0f2c10ba40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 77 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 78 1 0 "08f63789_65f1_4e7d_996dc22e8f33d416" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 79 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 80 1 0 "7cb70e6b_15bb_4380_b62150df065d208f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{{ 81 1 0 "e86187c0_0d19_453e_be1c5a401d0d5d93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 82 1 0 "d66c2dae_4cc3_4a31_bafe46d1dd63e790" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 83 1 0 "d23f143d_290d_4d0f_b368241a6a9adaed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 84 1 0 "0428e844_3191_4cde_b7f3544f34c833f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 85 1 0 "a7ca006f_941c_4b31_9749313ad9b4e079" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 86 1 0 "8c97ba72_f880_4504_baee8b8db3d13310" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 87 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 88 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 89 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 90 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelDispense") { // }} "" // {{ 91 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 92 1 0 "909bc255_6ca1_4700_bc102ccb34ae5be4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 93 1 0 "fd48dd93_9f42_4df0_9f659e27a5552543" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 94 1 0 "3ff3f492_86a5_40af_a3deabccbab3898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 95 1 0 "3cbb883f_48ae_40fe_afe67da944df94b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 96 1 0 "ab1033bc_1216_450a_9fb60655a1f1a21a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 97 1 0 "0bc1541f_26d5_44d6_8db6ae336fec17bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 98 1 0 "8c10cc29_c05e_4cea_9ed559249651e805" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 99 1 0 "3e0373da_7c7c_46ab_9b77fba19915662e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 100 1 0 "b98fdc49_cdcb_4f3c_81df0b76eafa1411" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 101 1 0 "7458d32a_402a_4215_b52378c78468ec80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 102 1 0 "5e14f2ce_c932_474b_be03f3c043c700e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 103 1 0 "c2010d1d_5a78_4871_a835a6613a1237bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 104 1 0 "d4a6e6a3_0158_45f1_9c359d8e48e01bed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 105 1 0 "011e9828_5413_40c1_80d0c3bdde1c6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 106 1 0 "2d7a4942_b2ce_43a2_8decf49fa0c9576c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 107 1 0 "b178ce99_db9e_4453_bed28d4ce0457bc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); // }} "" // {{{ 108 1 0 "1b38ad88_3c65_4e58_812f9ed32ce32485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{{ 109 1 0 "f34066f1_63f9_474f_8a9c41e56962dc74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 110 1 0 "6b94916e_355b_4ee9_8eb4f1b49c95fea4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 111 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 112 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 113 1 0 "e962dd26_3672_4418_bd3c40e9929929eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 114 1 0 "6257966a_6b39_41c8_a057a79b8e39cd4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 115 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 116 1 0 "3f230e40_8bd9_4235_b88cd0ca80799661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 117 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 118 1 0 "ac0ad5a7_d00b_46fe_a18f94f8dab3863c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{{ 119 1 0 "2753c24e_c4dc_402d_866b6bc8691ecc1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 120 1 0 "1ac127fd_b830_496f_b4d4b9671137ebff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 121 1 0 "3ee5d751_d3a5_468a_b539c4f0ff22023e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 122 1 0 "b86d492c_446f_4921_97140cfd462ace87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 123 1 0 "e049946d_6322_4b39_9c46a2d0eb345528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 124 1 0 "531432f5_ef8a_416e_8be28a07ae9b0d25" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 125 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 126 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 127 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 128 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipEject") { // }} "" // {{{ 129 1 0 "69be671e_7cdd_48d3_af136435754c1d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 130 1 0 "f3444c0f_4863_4fdd_94a025b682d8a6d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 131 1 0 "12ad2f39_c160_4afc_9f6ffce7e3ddb433" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 132 1 0 "2883bb64_2fe3_47ca_996e11434afc57cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 133 1 0 "10c3b13e_7129_4cfd_b88b29d0bbc31a28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); // }} "" // {{ 134 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (useDefaultWaste == 0) { // }} "" // {{ 135 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 136 1 0 "655bc92f_08a8_4c16_a0276997aec081ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 137 1 0 "a3a0b5ef_85c0_4552_a28b3356d7886eb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 138 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 139 1 0 "efadb8c3_c431_4ed4_a739a951c05ee518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 140 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 141 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 142 1 0 "2dda50b6_7f82_4e8a_a1d203715119213a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 143 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 144 1 0 "7fa61e34_a1f2_4b99_8f6bed13c6ce120f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn); // }} "" // {{{ 145 1 0 "a7db5128_f8e4_4afe_81f46b2cc86e608d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject step return:"), o_stepReturn); // }} "" // {{{ 146 1 0 "683607f4_928f_4cea_b901fe3502404424" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 147 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 148 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 149 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 150 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 151 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 152 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipPickUp") { // }} "" // {{{ 153 1 0 "1f82c33f_a085_47cc_85dbbde3e42a53c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 154 1 0 "9f9fe665_47a2_4a12_961460021d1f09f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 155 1 0 "743960d2_9d0f_4ccf_848662247e3211c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 156 1 0 "b737602c_63e8_4c4c_b47f40cb815914ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); // }} "" // {{ 157 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 158 1 0 "00bd1831_c335_40f5_b706f0ffadbe2890" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 159 1 0 "1f16418c_8fa7_44a5_a6db75dd9a79ee84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 160 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 161 1 0 "b66db4eb_9e79_4c19_909fd8d14d37cba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 162 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 163 1 0 "f3e7cbf6_0242_4463_8d4ed0db4667f7db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2); // }} "" // {{{ 164 1 0 "b080a5c6_324c_4aae_b5899dede6d863f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 165 1 0 "aa5a9c4b_0377_46ce_9b46883db15cbd7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 166 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 167 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 168 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 169 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Aspirate") { // }} "" // {{ 170 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 171 1 0 "373f30c8_ec07_4298_94d6ac75358ab1ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 172 1 0 "ef3ae377_e985_4ef6_93b005aa91c9b2b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 173 1 0 "d8eea65a_6e59_4c32_a47bae09779f9528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 174 1 0 "8eb02312_a070_491c_9758b3cdbdee0cfc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); // }} "" // {{{ 175 1 0 "6eaf8bee_b53f_4f01_87c1380bc345e386" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 176 1 0 "d9923a2f_e7cf_4f3e_81746e378a20baab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 177 1 0 "2c411993_e3fc_4753_9a90308b226078a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 178 1 0 "5d900896_b2b9_442b_b24294b9bbfbdaad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 179 1 0 "21149e9e_21c9_4ddd_93e07b693e3ab3fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 180 1 0 "bcefef03_102b_4887_adad59c2fb7ad551" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 181 1 0 "9665b0a3_35e8_47e9_b14ac1a4818cfa6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 182 1 0 "ff93d28b_afe9_47e7_9b6eb50d6845384f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 183 1 0 "ef43b824_fd38_42d4_9e932904dbf14813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 184 1 0 "b0378457_e370_448b_bfd6955c05e57bcb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{ 185 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 186 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 187 1 0 "615bcff6_e9d5_4303_a5d5826b2e2548dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 188 1 0 "cf4ad428_945e_4921_9441ee34cf9c96bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 189 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 190 1 0 "86397ec2_2ee5_4ec1_8bec47d8e87584b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 191 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 192 1 0 "48f88263_72c1_4df2_865181cffed9feee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 193 1 0 "f1b764e8_e556_4d08_bb83bdc12dc64a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 194 1 0 "164c104a_cf5f_46de_b23a098a18b3fdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 195 1 0 "ee779f77_51a9_46d7_b58b7bcaf13519f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 196 1 0 "e874eb6d_1e97_4590_95d9b10cb059c935" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn4); // }} "" // {{{ 197 1 0 "0ca1df86_a344_45fd_b384e13ba44c5ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 198 1 0 "2497228e_672e_4c95_9f31679fe87bbe1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 199 1 0 "e4930eee_c625_4acb_a81c05e149a1a218" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 200 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 201 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 202 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 203 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Dispense") { // }} "" // {{ 204 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 205 1 0 "78cba921_2a37_4b4a_91ef7fbe81fcddd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 206 1 0 "b58b4cbd_16e9_4444_9037061e29bc5614" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 207 1 0 "0ab910ec_826d_4c84_bac7ed9564f3bdab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 208 1 0 "84d664b7_70d0_4136_bdfd4de2aa760ad8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); // }} "" // {{{ 209 1 0 "18becc6a_2df4_4281_8b16ade9038979f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 210 1 0 "68c565db_e5ed_44e8_b3846a1d98034e76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 211 1 0 "6a4221a8_9488_48f9_8381b1bc0f0c960d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 212 1 0 "45dcb271_e326_42fc_b8684816d3ffdc93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 213 1 0 "14552b13_e77b_4fb7_9020445ecc5ade21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 214 1 0 "91783f87_af6f_446e_a74fb1725f17d282" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 215 1 0 "e2e7f702_1710_49eb_9b1046dbf4f143e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 216 1 0 "1817aa70_86fa_4318_a8e46569701623e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 217 1 0 "50bd6734_10d5_4291_b40eb708539514fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 218 1 0 "ad5fbb01_d809_4b7d_b858ed597709f28f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 219 1 0 "09566247_6b2d_4c73_b43fe303a30f89c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 220 1 0 "3ead74f7_3b5c_4b21_84d2488c2eceab73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 221 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 222 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 223 1 0 "835f8470_7e8c_40ff_a48abcc85d6b778b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 224 1 0 "059394fc_e924_4d57_b1b85f79f9947fa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 225 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 226 1 0 "6c4be3a7_a450_459c_90545a208f9f459f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 227 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 228 1 0 "c164a94e_2926_462e_9487870d403fe8b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 229 1 0 "86c0fb85_8aaf_4bec_9f6f1f642206487f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 230 1 0 "77047add_8050_4522_ad477b97455a8327" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 231 1 0 "5b2c6f23_9a69_489d_b52179c78c03e48f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 232 1 0 "a9a9244b_829f_4c5b_9a64f1018b029453" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn4); // }} "" // {{{ 233 1 0 "781580a9_199e_4373_b48bb55a97f8a463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 234 1 0 "1867ae44_25f8_4926_ae081e490fd5aa0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 235 1 0 "dbb3b30c_b4a1_4cf6_a24b62b63f155369" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 236 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 237 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 238 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 239 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipEject") { // }} "" // {{{ 240 1 0 "7cf9db16_d78c_4aa0_825cc3c2c22f287c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 241 1 0 "ccca7a97_c22a_4f20_b2d9a60d67850eee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 242 1 0 "a319f75e_77eb_4845_856516ce060213f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 243 1 0 "d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); // }} "" // {{ 244 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipEjectToKnownPosition == 0) { // }} "" // {{ 245 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 246 1 0 "24eeb6dd_1e20_422c_a1a8199cbca73b33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 247 1 0 "5197334f_cde5_4d52_9c528a0c4f7401b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 248 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 249 1 0 "110b82e1_8a5b_48e4_a3adbab701cffc8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 250 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 251 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 252 1 0 "fa32bbf8_8345_4897_aaf09d112d374893" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 253 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 254 1 0 "ef087a4e_684e_4d98_87109abf154fbc85" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2); // }} "" // {{{ 255 1 0 "328216cf_22dd_47a1_9f1ba089b1ac7702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn); // }} "" // {{{ 256 1 0 "53265943_7975_4275_ad98df313054f97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2); // }} "" // {{{ 257 1 0 "c13d9773_7daf_4c3c_9064fdd4f7c7008f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 258 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 259 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 260 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 261 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 262 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "loadCarrier") { // }} "" // {{{ 263 1 0 "76d739d0_ff4a_490b_9c47f411d29ef7a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 264 1 0 "ca623aa7_ed48_45fa_9f4055fb8e08c3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); // }} "" // {{{ 265 1 0 "64a8e193_7e7e_412e_8a0657f0e832eaef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); // }} "" // {{{ 266 1 0 "39e6aaef_5cce_4915_b5b6ede214c7371e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs); // }} "" // {{{ 267 1 0 "1d4d284f_fd1e_4f8a_a2158846ad6a67f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Load carrier step return:"), o_stepReturn); // }} "" // {{{ 268 1 0 "358b7fc3_40a2_418b_9d61d94eef1556f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 269 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 270 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 271 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 272 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "unloadCarrier") { // }} "" // {{{ 273 1 0 "797d23a7_c62a_471a_a52b10fea8bcc154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 274 1 0 "f1c35790_adb7_49eb_a96864d8b1d66cea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn); // }} "" // {{{ 275 1 0 "6e6ded71_3f99_46c5_9362117beb502a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn); // }} "" // {{{ 276 1 0 "8713fee4_6b93_4296_a5396254fd404d52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 277 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 278 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 279 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 280 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 281 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripGet") { // }} "" // {{ 282 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 283 1 0 "c4847ae5_e161_4f23_aa432eda22de28bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 284 1 0 "022a5cdd_3f4f_4e18_927c174fc57a68a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 285 1 0 "3e462067_5eb3_49c3_b7bf6a27de9ce3bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 286 1 0 "f7004881_3f0d_4621_a88d55dec8fc0d30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 287 1 0 "262b36ba_6d86_4009_bdc9a3881db7074e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 288 1 0 "be44b37f_7cec_4f69_81c223f2c30b120b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 289 1 0 "3dea3158_65f8_44bc_8d06a31ce3458dab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); // }} "" // {{{ 290 1 0 "308b2aa2_5970_4692_858049c6559d6ad0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 291 1 0 "756d0f81_3645_4a49_a0c2259581e11498" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 292 1 0 "cdbf11ba_b1f8_4016_811240a02705f1fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{{ 293 1 0 "625df597_c6c8_4e4a_b956e9580bfbc568" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); // }} "" // {{{ 294 1 0 "3576d134_8507_4e47_9c2bcc3dce8c026d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 295 1 0 "5b9c06ad_9081_4b6b_97e50cc87623b888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 296 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 297 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 298 1 0 "d1f3c2ac_9c68_4200_a3506bbbed8e42a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 299 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 300 1 0 "f1d1c43b_a9dd_4573_a69dd7c0e79eea40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 301 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 302 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 303 1 0 "4d304110_107e_412e_909bb84008a244de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 304 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 305 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 306 1 0 "72e31f7d_c091_4525_a5cf7001754b199d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 307 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 308 1 0 "47dfcbb5_d784_48bb_b36b97509434a3a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 309 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 310 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 311 1 0 "e6c53925_446e_468e_b0e0654b4b9d9a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 312 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 313 1 0 "c0cbb194_1b8b_4fe0_a0f706e03eaa0748" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 314 1 0 "46703217_a28e_42ce_b13c11d73ba34bfa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn); // }} "" // {{{ 315 1 0 "189164cc_2681_492f_83f072fb537648b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn); // }} "" // {{{ 316 1 0 "c8d6960a_f416_47b1_a29e2752973c0ec9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 317 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 318 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 319 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 320 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripMove") { // }} "" // {{ 321 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 322 1 0 "5755c338_faa3_4f0a_9acd4cd01a912862" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 323 1 0 "2849c819_a3dc_4328_8484ccc4785993d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{ 324 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 325 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 326 1 0 "e038f780_938f_4867_98f769488ca44b04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 327 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 328 1 0 "27439ab7_df5a_4e1b_99b64e6c9fd0d9f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 329 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 330 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 331 1 0 "e2da0756_7cea_44e7_963442343f3c0732" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 332 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 333 1 0 "90f602a1_fdc5_48fd_801269ecd2c3f9bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn); // }} "" // {{{ 334 1 0 "dc418b75_2d70_4034_84a767fba752b262" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn); // }} "" // {{{ 335 1 0 "6379549c_caf9_409f_b293abf77f1dcfbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 336 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 337 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 338 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 339 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripPlace") { // }} "" // {{ 340 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 341 1 0 "6f38d60b_6dc5_4159_ba30360f264222da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 342 1 0 "b6ef73cf_c89c_41cc_a3b72dc5aaf70f90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 343 1 0 "c7e5f5bd_edcc_4000_9be3db81af0c79fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 344 1 0 "91ff4c39_6a86_4eda_998a5461ef6c3cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 345 1 0 "341a6f8e_b4c8_4966_b9520322d1bc2e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 346 1 0 "32792c80_3b36_4a25_8fff6b99bfcf1919" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); // }} "" // {{{ 347 1 0 "b1e5d86e_c659_4d33_9e0f83fdb20b2cb5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 348 1 0 "76b26748_4e74_45f7_85a7dc102b5fd7b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); // }} "" // {{{ 349 1 0 "ee221e8a_a662_49d8_be2ef0ed631d9527" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 350 1 0 "cbefd54c_5f0a_4a16_a0199198529b71fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 351 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 352 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 353 1 0 "ac4e7090_c3c7_4707_8d98dc55262c294b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 354 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 355 1 0 "eb5776ad_c858_4ee8_ba31f47af19e76af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 356 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 357 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 358 1 0 "1f3eb006_1b10_427e_99d0b530f1afc2ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 359 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 360 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 361 1 0 "a04c5993_bf3e_46c7_92f24c8236636b00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 362 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 363 1 0 "2455f68c_be4e_4a21_9e9e78f78f6e8e3c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 364 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 365 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 366 1 0 "ad5d98b0_9e3d_4275_90ceef06ceca045d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 367 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 368 1 0 "3321537f_63fb_48a4_90e40a2fee1cc432" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 369 1 0 "8c7e60df_f040_45c6_a939d99bcd0ac23c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn); // }} "" // {{{ 370 1 0 "24e589a9_98d7_429d_90c8afe203e96ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn); // }} "" // {{{ 371 1 0 "9d94d038_d071_4339_aaace5a2e455b240" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 372 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 373 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 374 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 375 1 0 "e411727d_3702_4640_8cb2d7ab8b58a300" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 376 1 0 "ed119e90_c1cf_47e9_882c9179c7675524" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 377 1 0 "006e4737_2b28_4b29_88cabf15c00d0b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGet") { // }} "" // {{ 378 1 0 "7424658f_9b27_4ef0_96837fa8add4c1ac" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 379 1 0 "18dba370_9751_4c10_938c0dcc1f09476a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 380 1 0 "ba1314c5_bdbb_4947_b8ee11ecc5c9306e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 381 1 0 "2de0b12d_07d0_4e02_aeb0adc84a286d4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 382 1 0 "62251128_9c16_4b76_a74221e3e5485ec4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 383 1 0 "991ef31e_cf56_46cb_a1b5023d16177201" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 384 1 0 "a7e77649_9eb2_4bbe_8d4df91d28ca2833" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 385 1 0 "bce9279a_be9d_4a51_b382d782fe953b4f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 386 1 0 "cae1eeb4_415a_4ca2_9cbdc8fbd7bcb5ca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 387 1 0 "47122b9f_c6d0_4a2d_aab3313da595b6db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("inverseGrip"), inverseGrip); // }} "" // {{{ 388 1 0 "b3579536_edb4_4221_babfa43071cf483f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 389 1 0 "4a408dec_c225_49ad_bf9a34fc001001a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{{ 390 1 0 "254c5a0f_44da_4098_b535a89623fde4e9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 391 1 0 "ce8d1267_fa97_4dc5_a35fdb48eed4af6f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{{ 392 1 0 "267e45b6_811f_46eb_a5cf5dcb26fa4ab0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 393 1 0 "40e3aef8_bb0d_49d2_be4badbbed382613" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("tolerance"), tolerance); // }} "" // {{{ 394 1 0 "83550ea0_852b_4084_b34f7fcfd03b6bdf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 395 1 0 "48212cee_a3fa_4708_951f45d7135865bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{ 396 1 0 "7424658f_9b27_4ef0_96837fa8add4c1ac" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 397 1 0 "75be1853_53c2_40d4_968a231c3ec4efae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 398 1 0 "fbc3301f_ce0a_48d5_ad28d0de566e8968" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 399 1 0 "a6a66731_2fea_4358_8cc6545cbb29217a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 400 1 0 "ff2e3d36_c066_4d66_b6acbb2d01d07322" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 401 1 0 "a6a66731_2fea_4358_8cc6545cbb29217a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 402 1 0 "75be1853_53c2_40d4_968a231c3ec4efae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 403 1 0 "40ff9454_596f_42b1_a566d8ee6f7e392c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 404 1 0 "75be1853_53c2_40d4_968a231c3ec4efae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 405 1 0 "18e4b92e_69c6_4fb1_a5032c3224f92e52" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 406 1 0 "905809a6_70ea_4397_b8baecc2ca9a1bd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 407 1 0 "a70a035b_d0bc_4cc3_917340dffbf2ee6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 408 1 0 "3f92b115_b29a_4772_955189aa840c37db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 409 1 0 "a70a035b_d0bc_4cc3_917340dffbf2ee6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 410 1 0 "18e4b92e_69c6_4fb1_a5032c3224f92e52" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 411 1 0 "ca37a475_a69e_4367_aae015a113535d8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 412 1 0 "18e4b92e_69c6_4fb1_a5032c3224f92e52" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 413 1 0 "6767b91d_ea7b_4619_b57b512927b0cb6a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn); // }} "" // {{{ 414 1 0 "034d46bd_e017_4e49_bda2a918b966a9ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Get - step return :"), o_stepReturn); // }} "" // {{{ 415 1 0 "2167695b_833d_4537_b1ca621cd9cb254f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 416 1 0 "006e4737_2b28_4b29_88cabf15c00d0b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 417 1 0 "ed119e90_c1cf_47e9_882c9179c7675524" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 418 1 0 "2d45fcde_698f_4b1e_85c2b355d05ece3f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 419 1 0 "664c8ad8_1978_406c_ba006c21ee6cdc2e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapMove") { // }} "" // {{ 420 1 0 "8dc2ff24_58d0_4fb9_b4476261c7ec9f73" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 421 1 0 "4b09b616_7ad2_4d2f_a3f51c49956f7d25" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 422 1 0 "784d4df8_3b6e_41d3_ac01d0b30128d63d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 423 1 0 "ce22c98b_cefd_44e1_a21f17817fa26757" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{ 424 1 0 "8dc2ff24_58d0_4fb9_b4476261c7ec9f73" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 425 1 0 "192114b0_07b3_4dd4_b8580bbd0300657b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 426 1 0 "19bdcb09_5067_4650_a51d59790ea58358" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 427 1 0 "6bb5085c_63ec_4166_b16d4b088bf17a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 428 1 0 "bbcdaabe_ca2a_4ec9_9c13e083f812412a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 429 1 0 "6bb5085c_63ec_4166_b16d4b088bf17a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 430 1 0 "192114b0_07b3_4dd4_b8580bbd0300657b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 431 1 0 "69b92e0b_ba29_42dc_a6d5ea83701df138" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 432 1 0 "192114b0_07b3_4dd4_b8580bbd0300657b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 433 1 0 "4f9e972e_7acd_45bc_9ed8d7ec3835b42b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn); // }} "" // {{{ 434 1 0 "57844fa2_0bdc_4ba5_aea223c87eb45a0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Move - step return :"), o_stepReturn); // }} "" // {{{ 435 1 0 "cf9a830f_2fb4_44b1_8226f2041b55c305" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 436 1 0 "664c8ad8_1978_406c_ba006c21ee6cdc2e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 437 1 0 "2d45fcde_698f_4b1e_85c2b355d05ece3f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 438 1 0 "9d132be9_3327_43f0_861eab191b312efe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 439 1 0 "f6cc8299_2f28_46a6_9bb97037e5dc466a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPlace") { // }} "" // {{ 440 1 0 "ea361219_5a73_449b_9e9f28937269d164" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 441 1 0 "9271e4c5_3af5_416a_b4ff109847510419" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 442 1 0 "56a04f09_338f_4736_aca6e9c2d81e2c66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 443 1 0 "1e90c36e_9422_4cbb_8894ee0ca1ecb7a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 444 1 0 "2fb72d08_217e_46b5_974400449189f377" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 445 1 0 "83dd7d6c_87dd_4660_8113302408cde86f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 446 1 0 "3619d2e6_ca56_4e64_93bc2c4e763b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 447 1 0 "60a67018_c240_43a5_9f44311bc1e98746" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 448 1 0 "c33ebbef_42a4_46fd_9a8469f9e411c897" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 449 1 0 "20603c7b_d59a_4c57_96ee9752927ff64f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 450 1 0 "1e3f75b9_3592_485c_8b2d352f72a3c437" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{ 451 1 0 "ea361219_5a73_449b_9e9f28937269d164" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 452 1 0 "060f69c1_3a66_464e_8b4353f8f562116a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 453 1 0 "768ae6ad_e584_4b00_8ded5be49db3ac78" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 454 1 0 "e9be51d0_8991_4d2b_8f1e4353bb247c8c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 455 1 0 "2bdfa4de_1f49_4935_801ba5f52847fdc3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 456 1 0 "e9be51d0_8991_4d2b_8f1e4353bb247c8c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 457 1 0 "060f69c1_3a66_464e_8b4353f8f562116a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 458 1 0 "8ad7936f_b4fc_4d56_b2a69c2117a3e2c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 459 1 0 "060f69c1_3a66_464e_8b4353f8f562116a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 460 1 0 "1b9c4a3a_ce6f_4f69_bb890e9ead027750" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 461 1 0 "ae513bfa_0e69_4286_982d555c61b04bea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 462 1 0 "d58b1c9a_619d_4564_b7013ae9300a62c5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 463 1 0 "c6f18361_c2d4_497e_b3568731fe7f72c5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 464 1 0 "d58b1c9a_619d_4564_b7013ae9300a62c5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 465 1 0 "1b9c4a3a_ce6f_4f69_bb890e9ead027750" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 466 1 0 "a1ed641c_3701_495f_ab89e05bf92c5b2f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 467 1 0 "1b9c4a3a_ce6f_4f69_bb890e9ead027750" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 468 1 0 "f6d60a86_5450_40d3_be3b7f2c660e2fe7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn); // }} "" // {{{ 469 1 0 "4805700b_6f6f_426a_9bcbf4176c6fb71f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Place - step return :"), o_stepReturn); // }} "" // {{{ 470 1 0 "74998056_c8c5_4618_88757b8da6932071" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 471 1 0 "f6cc8299_2f28_46a6_9bb97037e5dc466a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 472 1 0 "9d132be9_3327_43f0_861eab191b312efe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 473 1 0 "3625fde9_51e1_4bb2_84181491a737c26b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 474 1 0 "82f46916_6725_423b_bde46572a3389992" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPark") { // }} "" // {{ 475 1 0 "bfcf1a15_a297_4990_80d9119c099d7671" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 476 1 0 "c7a26fdd_6c33_4ae6_a90ef3acfdc7f489" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("showCollisionCheckDialog"), showCollisionCheckDialog); // }} "" // {{ 477 1 0 "bfcf1a15_a297_4990_80d9119c099d7671" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 478 1 0 "34a065e0_018c_461b_87990a6c61147520" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{{ 479 1 0 "3c7ef19d_c34c_4a13_86e9e970b61a69e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 480 1 0 "cb13151a_7bef_4779_99b9954f02aea276" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 481 1 0 "82f46916_6725_423b_bde46572a3389992" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 482 1 0 "3625fde9_51e1_4bb2_84181491a737c26b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 483 1 0 "e411727d_3702_4640_8cb2d7ab8b58a300" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 484 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 485 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 486 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_BeginMonitoring") { // }} "" // {{{ 487 1 0 "7dd862dc_f7f1_4600_94ca9b83762673dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 488 1 0 "d37d14e5_261f_418c_81f754eb75bf4920" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingToleranceRange"), shakingToleranceRange); // }} "" // {{{ 489 1 0 "0919ceb3_189a_4885_93c8faeab9f9538b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sampleInterval"), sampleInterval); // }} "" // {{{ 490 1 0 "bc3a749e_e1bb_4c4a_9aac06834d85080f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("action"), action); // }} "" // {{ 491 1 0 "4e026721_fd49_4127_87fda5791fa13eff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 492 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ; err.Clear(); // }} "" // {{{ 493 1 0 "a2a0a3bb_c0cf_4123_afe36d1d51ae233c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action); // }} "" // {{ 494 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3202FD4CC34D478f892F31C7684340BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 495 1 0 "7066bb37_8c48_474d_8f467cf1f1e06a8d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 496 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 497 1 0 "c00b8635_652d_48ca_8d345ed070306b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 498 1 0 "85ac1487_5644_4bae_b032f5c191aa47c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 499 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 500 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 501 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 502 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateStarDevice") { // }} "" // {{{ 503 1 0 "4c3dfdd2_2dd6_4c5f_831f92590c13e82e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 504 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_18D9C44C12554d56B5C39C21EA142EC8 ; err.Clear(); // }} "" // {{{ 505 1 0 "cc3d4234_12d6_486a_a110c8ede0e3059b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber); // }} "" // {{ 506 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_18D9C44C12554d56B5C39C21EA142EC8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 507 1 0 "7f473860_0be7_4dc2_87423136869dd829" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 508 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 509 1 0 "7699b24c_5ec6_4cca_b1cb9aed9ce60247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 510 1 0 "85155966_9554_40cb_9693f9b0a11b25a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return2 (device number):"), deviceNumber); // }} "" // {{{ 511 1 0 "d049e779_0761_471d_9f7b8af0967d1633" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 512 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 513 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 514 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 515 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateUSBDevice") { // }} "" // {{{ 516 1 0 "72f0a762_2550_45ad_bea063f4f72a9fe9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 517 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ; err.Clear(); // }} "" // {{{ 518 1 0 "0cd1cef0_3091_48c3_b63490d3e80a5b45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber); // }} "" // {{ 519 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_98100824AA704d26AB40A6BADEF39F48 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 520 1 0 "53df6909_1d0e_4001_ac674452fec957bc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 521 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 522 1 0 "85d76321_871e_4d0e_bb460b7513742e62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return:"), o_stepReturn); // }} "" // {{{ 523 1 0 "d303212f_1f38_442d_a24eee709cf4cdc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return2 (device number):"), deviceNumber); // }} "" // {{{ 524 1 0 "7356ec1e_8437_4679_94613ac2bea4fe0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 525 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 526 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 527 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 528 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_EndMonitoring") { // }} "" // {{{ 529 1 0 "4293ef15_cfcd_4e29_b9b02afae2d471f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 530 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ; err.Clear(); // }} "" // {{{ 531 1 0 "96f15f32_4117_4a09_85dceac0fa769b43" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult); // }} "" // {{ 532 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 533 1 0 "6ba4b834_521a_46da_9ceb8ced08da95f5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 534 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 535 1 0 "ce89bf49_b865_4c3f_a97eba220b5a7d33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS End Monitoring step return:"), o_stepReturn); // }} "" // {{{ 536 1 0 "05229af2_f20a_42ce_908ec8445f3f9dd2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(""), Translate(""), id); // }} "" // {{ 537 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 538 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 539 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 540 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetFirmwareVersion") { // }} "" // {{{ 541 1 0 "942a1cc2_d956_47fa_9a9ffed1e856a632" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 542 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ; err.Clear(); // }} "" // {{ 543 1 0 "20e2b3e5_8664_4809_9bcf626c89196333" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 544 1 0 "c70f5e07_0eeb_45e5_af26714895e2df88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion); // }} "" // {{ 545 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 546 1 0 "38e3e61d_a654_46f5_87f53cf7dfc09446" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 547 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 548 1 0 "7de3b86c_c16d_4932_beedfb948b5d85f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(""), Translate(""), id); // }} "" // {{ 549 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 550 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 551 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 552 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetSerialNumber") { // }} "" // {{{ 553 1 0 "38b7d0d7_7cce_4157_8abc70dfb62eefa5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 554 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 ; err.Clear(); // }} "" // {{ 555 1 0 "d92781d1_27c2_48fb_acfd9cb32428e910" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 556 1 0 "0bbfb488_9723_4a08_9b90171dbec6117a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber); // }} "" // {{ 557 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 558 1 0 "19daab0c_59b0_4af8_a070bee39acf20c1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 559 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 560 1 0 "311e5a04_1ac3_443c_bdc51c5cdc4c44f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(""), Translate(""), id); // }} "" // {{ 561 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 562 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 563 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 564 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerParameter") { // }} "" // {{{ 565 1 0 "f3888a0b_86ea_4c4a_891e1755a6e78556" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 566 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ; err.Clear(); // }} "" // {{ 567 1 0 "df61bf49_7625_493f_ad06bbdbb36b494a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 568 1 0 "e993ed67_92ed_4c85_bd33f90aac53dfb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3); // }} "" // {{ 569 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 570 1 0 "accda6cd_138b_411c_bf3af9b152e986c8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 571 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 572 1 0 "6efd49bf_48c7_437b_8fee57487345eaee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 573 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 574 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 575 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 576 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerSpeed") { // }} "" // {{{ 577 1 0 "e1c29a26_0656_46e3_b0a412143047bd26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 578 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ; err.Clear(); // }} "" // {{ 579 1 0 "8d513473_33ad_47dc_a8c3ed9799195b58" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 580 1 0 "d7148e56_7fcc_471d_8c3a7abc2847db7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2); // }} "" // {{ 581 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 582 1 0 "ee004b75_f488_428e_99b02212bd478984" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 583 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 584 1 0 "41ba2513_e3c2_485c_821198419c3fe286" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 585 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 586 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 587 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 588 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTempParameter") { // }} "" // {{{ 589 1 0 "09fb30ea_33e9_486d_96945af4798859ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 590 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ; err.Clear(); // }} "" // {{ 591 1 0 "4f9610c2_a783_4586_b1725e8904e476cc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 592 1 0 "eea3f2ce_93c1_4efd_be90b89d775a6867" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 593 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C16E1CF8298042f0A01D1040DC911015 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 594 1 0 "ad6b8668_d455_40f9_9e64eac973c2db0c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 595 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 596 1 0 "81e3038e_a3ea_4252_a09b14cd3de477a3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 597 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 598 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 599 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 600 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperature") { // }} "" // {{{ 601 1 0 "01d1add6_c167_4137_8f0c285cd6ad9bed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 602 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ; err.Clear(); // }} "" // {{ 603 1 0 "a54c8c75_1172_46d3_a61e71fe7fea812d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 604 1 0 "4187d732_0d13_4590_99fa08572e32e2f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2); // }} "" // {{ 605 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_14A2AAD200434d69970AC483BD08B64F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 606 1 0 "e9f473e4_b341_4e28_8c5c444235409181" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 607 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 608 1 0 "234847f1_2f0a_4e64_856b9edefcebb425" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 609 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 610 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 611 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 612 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperatureState") { // }} "" // {{{ 613 1 0 "82a233ab_0392_4ebb_9a809d80aae38e44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 614 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ; err.Clear(); // }} "" // {{ 615 1 0 "19a32be3_7476_425d_a82433aead4637cf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 616 1 0 "7f7e0bd7_bea9_474d_92bce5d21da9a2a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2); // }} "" // {{ 617 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_50485390A50647818ED2D3934FBC87E3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 618 1 0 "81e1a27f_16e2_44ed_b7cd3b11ac866a97" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 619 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 620 1 0 "31a69f44_1a59_49ce_a78763f3aa936042" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 621 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 622 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 623 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 624 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SendFirmwareCommand") { // }} "" // {{{ 625 1 0 "11546c32_6ddd_4250_9b8750c9679e5b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 626 1 0 "06688598_f10e_41e9_8a2c6d3dff7b7aae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), command); // }} "" // {{{ 627 1 0 "15a58509_ec93_4677_b1858cadeac42d10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("parameter"), parameter); // }} "" // {{ 628 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ; err.Clear(); // }} "" // {{ 629 1 0 "84b0a5f3_5e82_4770_81998131d1071a7a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 630 1 0 "b63ba349_9a52_43ca_aec17e40c17d231b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter); // }} "" // {{ 631 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_84EE5E4228B140f599748D1271CBB0F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 632 1 0 "f46c286b_9141_4717_ac23994f8defc186" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 633 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 634 1 0 "8b5634c2_e1da_41d3_83c57142f4cae999" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 635 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 636 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 637 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 638 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetPlateLock") { // }} "" // {{{ 639 1 0 "927ddf67_5dbd_432b_b8cf6117a3109b06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 640 1 0 "a3eee1ac_7024_473b_a6eb8a2e9b461a66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("plateLock"), plateLock); // }} "" // {{ 641 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ; err.Clear(); // }} "" // {{ 642 1 0 "a9029174_cbad_4f9c_9ca65c3b9497d605" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 643 1 0 "27d47e3b_913b_4a0e_bdb50007a0e39d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock); // }} "" // {{ 644 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 645 1 0 "bb948751_9e18_4aa8_b86a3dd67208967f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 646 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 647 1 0 "945560ed_40bf_44a9_851fead4c1943f9f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 648 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 649 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 650 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 651 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetShakerParameter") { // }} "" // {{{ 652 1 0 "8a0e14c1_f6c6_4fb8_94094498cccd7991" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 653 1 0 "1810a83f_3fc2_4c49_9d5502fbdfc743e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingDirection"), shakingDirection); // }} "" // {{{ 654 1 0 "c3053579_8645_474f_8c05459eed975362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingAccRamp"), shakingAccRamp); // }} "" // {{ 655 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ; err.Clear(); // }} "" // {{ 656 1 0 "d7ecab6c_533b_4d98_97e3fd144551f6d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 657 1 0 "77463ac5_e629_4772_98004edef4016a6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp); // }} "" // {{ 658 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 659 1 0 "96075a25_a9b4_48ec_b53a90612b9d42a8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 660 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 661 1 0 "5ed72ec4_1b60_4258_969b44c995450ec1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 662 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 663 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 664 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 665 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetSimulation") { // }} "" // {{{ 666 1 0 "941f9e19_ca94_4ede_9719205aeb876593" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{ 667 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ; err.Clear(); // }} "" // {{ 668 1 0 "c8de89fe_7a53_4c03_bbe8ba85302b57ea" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 669 1 0 "41b0c1a2_60aa_4f16_8901c300e9a3dc14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetSimulation(simulate); // }} "" // {{ 670 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 671 1 0 "b9ad26f0_da3e_44e9_a29e1fa4b10f92f4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 672 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 673 1 0 "2e7a9d5f_51df_4c49_bb1986da7e14cd48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 674 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 675 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 676 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 677 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetTempParameter") { // }} "" // {{{ 678 1 0 "99447b6e_9293_483d_bbd7ddee96870904" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 679 1 0 "f55d7581_a005_45e4_9b3d7f7473323e6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("startTimeout"), startTimeout); // }} "" // {{{ 680 1 0 "7192db12_8543_4c8b_81b98b57ce21118d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("toleranceRange"), toleranceRange); // }} "" // {{{ 681 1 0 "8f6d922f_f2ae_43c6_8682df15e6b7c07c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("securityRange"), securityRange); // }} "" // {{ 682 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ; err.Clear(); // }} "" // {{ 683 1 0 "aecc8a3f_302a_4fd4_85780994769765dc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 684 1 0 "57eb738a_6eb2_4f04_b25bd7f7f64a8179" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange); // }} "" // {{ 685 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 686 1 0 "8a17da2c_6b74_4513_a05e482acef68552" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 687 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 688 1 0 "90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 689 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 690 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 691 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 692 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetUSBTrace") { // }} "" // {{{ 693 1 0 "0691ecbd_49b4_4590_91d60e614290ec34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("trace"), intTrace); // }} "" // {{ 694 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ; err.Clear(); // }} "" // {{ 695 1 0 "96a3924c_7b8c_441f_b05115a7adf0396f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 696 1 0 "24723a79_741b_46be_830fe654c08d6d1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetUSBTrace(intTrace); // }} "" // {{ 697 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FE6D15E135D24fd7A06908E89474B650 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 698 1 0 "29acd4b5_13fb_40fe_bc6d971aa6f115a7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 699 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 700 1 0 "cda0d06f_dce0_47ad_bbb419c58aba260e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 701 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 702 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 703 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 704 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShaker") { // }} "" // {{{ 705 1 0 "503e1c47_5f15_42bd_8eaad1057de68ef6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 706 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ; err.Clear(); // }} "" // {{ 707 1 0 "18981818_de5f_4fd3_b704a074fd37c9d8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 708 1 0 "7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed); // }} "" // {{ 709 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 710 1 0 "6fa8ea83_c7bd_4b3e_81768063f8126364" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 711 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 712 1 0 "ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 713 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 714 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 715 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 716 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShakerTimed") { // }} "" // {{{ 717 1 0 "db6b6c2e_da48_4c64_bdddc80ba5a28921" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 718 1 0 "f6f42906_5ded_4a05_8f9a11fac18f7f10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 719 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ; err.Clear(); // }} "" // {{ 720 1 0 "84efe41c_f9b0_4304_896c8b308bb07e76" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 721 1 0 "428d423d_1825_472f_a3aa303d028d0659" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime); // }} "" // {{ 722 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 723 1 0 "367927ae_ba00_4d5a_b9d8f5f9b3d208c3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 724 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 725 1 0 "d73f1476_bf95_4d48_89849f295a9e4d0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 726 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 727 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 728 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 729 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShaker") { // }} "" // {{{ 730 1 0 "f958f5a5_d1c5_4e9e_9262e708f24940c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 731 1 0 "2ce1189b_e54a_48c0_aafc2932409c0b9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 732 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ; err.Clear(); // }} "" // {{ 733 1 0 "7e6d8299_fab6_4435_8adf36d59ca04c7a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 734 1 0 "5fe75151_d308_441e_a049e85f45ca3966" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShaker(dispenseMode, shakingSpeed); // }} "" // {{ 735 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 736 1 0 "64e95a28_a6b6_4e1b_825867f05118aebc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 737 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 738 1 0 "4b0b48f9_3855_4eab_8f22b0902846d750" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 739 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 740 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 741 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 742 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShakerTimed") { // }} "" // {{{ 743 1 0 "858c7861_9fb0_490e_9646b9eb190706d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 744 1 0 "327bd0c6_60a8_4fd1_9ef81e2a21d904a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 745 1 0 "83a6d58d_c761_484f_871c9c2229a6d3d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 746 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ; err.Clear(); // }} "" // {{ 747 1 0 "08abdac2_e330_47c9_9b80d99dd0338c3d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 748 1 0 "22e55b69_c018_47f9_8e3ac169c190d2de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); // }} "" // {{ 749 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_29447729262E4e0f8B347F6640716D96 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 750 1 0 "a26bca7d_b38c_4413_b61d3da3fdfb077b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 751 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 752 1 0 "f539df09_de1d_4fd8_9ac041897fab0333" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 753 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 754 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 755 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 756 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartTempCtrl") { // }} "" // {{{ 757 1 0 "dc338e01_6b43_4fe3_bda98d2b0a1a65e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 758 1 0 "04239a09_93a5_4f75_80f95d178bdf9cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("temperature"), temperature); // }} "" // {{{ 759 1 0 "0387745b_87be_4ec6_912b0b4decaa257b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("waitForTempReached"), waitForTempReached); // }} "" // {{ 760 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ; err.Clear(); // }} "" // {{ 761 1 0 "0e03f515_b847_4dfd_8aa52f8b5f1135cd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 762 1 0 "4ba75dd5_935f_4f2c_a15605eafa47b808" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached); // }} "" // {{ 763 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_764F491C76DA445383E5490AB126ADB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 764 1 0 "e7b29c37_b63e_40fe_a3663d4eb8c7dc93" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 765 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 766 1 0 "bfde731d_b581_4488_b4cb7f4873675d7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 767 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 768 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 769 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 770 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopAllShaker") { // }} "" // {{ 771 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ; err.Clear(); // }} "" // {{ 772 1 0 "7ca275a0_4aed_4b67_9535646b2074ebaf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 773 1 0 "d112da95_7f27_47a3_9e24bc801bcc9afc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{ 774 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 775 1 0 "e87b7e6f_2610_44dd_b7d0262ac681e308" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 776 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 777 1 0 "5706daca_363f_417f_9103f7ddd16c1444" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 778 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 779 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 780 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 781 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopShaker") { // }} "" // {{{ 782 1 0 "1cdead0d_9944_446b_bd59d491b15242b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 783 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ; err.Clear(); // }} "" // {{ 784 1 0 "d02dc65a_05f9_4938_90df6cee1381d4dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 785 1 0 "75688e3b_5ed1_45d1_a4d8344ca19c3fd3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{ 786 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 787 1 0 "b5ede424_b7f1_4369_8610d54e626df620" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 788 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 789 1 0 "6ffd1f39_ec63_4f9c_a7687447aff79f80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 790 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 791 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 792 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 793 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopTempCtrl") { // }} "" // {{{ 794 1 0 "b16ab946_2ba9_4900_bd6f9ede31edf6ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 795 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B5957B02990845739642D8C604B0B582 ; err.Clear(); // }} "" // {{ 796 1 0 "e22c8ca0_6e3f_454b_8628dd4417a6fd78" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 797 1 0 "3a29dc5b_78cc_4ed1_ab9cd631701715e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber); // }} "" // {{ 798 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B5957B02990845739642D8C604B0B582 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 799 1 0 "c8c0c20e_b866_451e_9ecd69fdb0b0ed14" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 800 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 801 1 0 "11f3231a_40df_4c14_92585ab8016165e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 802 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 803 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 804 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 805 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_Terminate") { // }} "" // {{ 806 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ; err.Clear(); // }} "" // {{ 807 1 0 "e2f732a1_e433_4ab6_b3bdac9a4ca5bd19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 808 1 0 "910932e3_2b76_41cf_9dccecb799f2d649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::Terminate(); // }} "" // {{ 809 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_919FCF7F89804c398972DAFE2605D286 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 810 1 0 "44edbcbd_1012_457f_848d11750abdfeb2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 811 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 812 1 0 "4edde3c1_4f65_4403_a54985d84f6d80f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 813 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 814 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 815 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 816 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForShaker") { // }} "" // {{{ 817 1 0 "87872be5_4e84_4b7b_98a3e7147a66f6a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 818 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ; err.Clear(); // }} "" // {{ 819 1 0 "d5b14e5b_7d51_414e_af4dfb664c89e0c1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 820 1 0 "2eff956e_28cc_4094_8285d5ed00125a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber); // }} "" // {{ 821 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 822 1 0 "d60c31db_3b59_4498_8c47e4d2612443a4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 823 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 824 1 0 "96b99051_5c80_421c_a02e0bd238da1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 825 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 826 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 827 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 828 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForTempCtrl") { // }} "" // {{{ 829 1 0 "881e7d69_50e3_4e42_89eafece562ac009" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 830 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ; err.Clear(); // }} "" // {{ 831 1 0 "ffa29d3e_8248_4266_80661c264964da5f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 832 1 0 "421a52eb_128a_4b6b_8baafb6548b66bd8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber); // }} "" // {{ 833 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_088C7630997A4749A400740DA66CBA0C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 834 1 0 "8a92c1f7_b614_4c09_b5ada70145cb0a7c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 835 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 836 1 0 "aeb529e0_2eaf_4686_9528342b58318a5d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 837 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 838 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 839 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 840 1 0 "67dcb608_2751_40ce_8b7e4a0603faf2dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 841 1 0 "0f4bf0f0_7250_4df4_ad0fed77d22c4e31" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 842 1 0 "8c27106a_1679_43a9_bf5395da0b449aab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HxFanSet") { // }} "" // {{{ 843 1 0 "b4ddaff1_bbb9_4494_8b1bbd7274a5f7ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 844 1 0 "4c112600_c077_4cd1_97f013ebd6ba3dda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("persistant"), persistant); // }} "" // {{{ 845 1 0 "3e95190c_440f_432c_aaa7fd3a2fb355a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{{ 846 1 0 "1e8f47c7_db5a_4fa4_aee7981e3b80ca64" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("fanSpeed"), fanSpeed); // }} "" // {{ 847 1 0 "6e4ff03e_f972_4901_8442f6e992f211a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_AA4197CCBE624255B3C96A32C1894C99 ; err.Clear(); // }} "" // {{ 848 1 0 "126ff61c_704e_4f65_956d45a1882c292c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 849 1 0 "10161df1_6a13_4efe_8e94e9efb47fea5a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (simulate == 0) { // }} "" // {{ 850 1 0 "13409ed4_ce79_4ef9_89deb34df8b6dd6a" "HxFan:{6FE28420-ECCC-4DE2-8731-3A3A5D98EC19}" { HxFan.Simulate("13409ed4_ce79_4ef9_89deb34df8b6dd6a"); // Simulate } // }} "" // {{ 851 1 0 "10161df1_6a13_4efe_8e94e9efb47fea5a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 852 1 0 "be3ae73e_7395_494a_9aed80ff221436dc" "HxFan:{6FE28420-ECCC-4DE2-8731-3A3A5D98EC19}" { HxFan.Simulate("be3ae73e_7395_494a_9aed80ff221436dc"); // Simulate } // }} "" // {{ 853 1 0 "10161df1_6a13_4efe_8e94e9efb47fea5a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 854 1 0 "ffdf7428_8946_4751_8ec8a7e00f208208" "HxFan:{419861B2-AD5B-4F2E-8025-46B0E593A024}" { HxFan.SetComPort("ffdf7428_8946_4751_8ec8a7e00f208208"); // SetComPort } // }} "" // {{ 855 1 0 "1506decc_f2bf_47a0_a90687ef59450828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (persistant == 0) { // }} "" // {{ 856 1 0 "d081b2a8_b3ef_4a06_9d8d4d8c6cd1dd39" "HxFan:{166B9764-268C-487A-8D8C-EC3ED594717C}" { HxFan.SetContinuousMode("d081b2a8_b3ef_4a06_9d8d4d8c6cd1dd39"); // SetContinuousMode } // }} "" // {{ 857 1 0 "1506decc_f2bf_47a0_a90687ef59450828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 858 1 0 "4914f72b_ecb0_4ab4_b458a744727e1642" "HxFan:{166B9764-268C-487A-8D8C-EC3ED594717C}" { HxFan.SetContinuousMode("4914f72b_ecb0_4ab4_b458a744727e1642"); // SetContinuousMode } // }} "" // {{ 859 1 0 "1506decc_f2bf_47a0_a90687ef59450828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 860 1 0 "203cb0c4_cb6f_42c2_a34aa62a646c29cc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (fanSpeed == 0) { // }} "" // {{ 861 1 0 "cef636fc_366e_46f7_9a8e1e25f716fa31" "HxFan:{1581574C-5388-4E48-BC78-FEE50E8DCE05}" { HxFan.SetFanOff("cef636fc_366e_46f7_9a8e1e25f716fa31"); // SetFanOff } // }} "" // {{ 862 1 0 "203cb0c4_cb6f_42c2_a34aa62a646c29cc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 863 1 0 "f2bbd127_49ad_44c1_aa03eba6244b4cfc" "HxFan:{C3B1A3F9-BD5A-4660-842E-35830B4E80CA}" { HxFan.SetFanSpeed("f2bbd127_49ad_44c1_aa03eba6244b4cfc"); // SetFanSpeed } // }} "" // {{ 864 1 0 "203cb0c4_cb6f_42c2_a34aa62a646c29cc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 865 1 0 "6e4ff03e_f972_4901_8442f6e992f211a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_AA4197CCBE624255B3C96A32C1894C99 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 866 1 0 "8f5e46a2_b896_4dbc_a8eb3d63e6ee3d3d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 867 1 0 "6e4ff03e_f972_4901_8442f6e992f211a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 868 1 0 "0c83267c_5eb8_4165_96bd827e6dad924b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 869 1 0 "8c27106a_1679_43a9_bf5395da0b449aab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 870 1 0 "0f4bf0f0_7250_4df4_ad0fed77d22c4e31" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 871 1 0 "67dcb608_2751_40ce_8b7e4a0603faf2dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 872 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 873 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 874 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "CORE96WashEmpty") { // }} "" // {{{ 875 1 0 "88f95bdd_c2c5_4856_91e5f47f7431bdaf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("refillAfterEmpty"), refillAfterEmpty); // }} "" // {{{ 876 1 0 "d7a05a26_0b59_478a_a85f308173caf693" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1WashLiquid"), chamber1WashLiquid); // }} "" // {{{ 877 1 0 "8b1bd108_2b5a_4a2d_ace7b87920eae1b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1LiquidChange"), chamber1LiquidChange); // }} "" // {{{ 878 1 0 "d651fbf5_a4b8_490b_b869269338ccfcfa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2WashLiquid"), chamber2WashLiquid); // }} "" // {{{ 879 1 0 "79b1a205_d988_4171_9e1fb28ba362329b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2LiquidChange"), chamber2LiquidChange); // }} "" // {{ 880 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ; err.Clear(); // }} "" // {{ 881 1 0 "3fc645b3_f504_4b5e_93481425adf459b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 882 1 0 "123d7b87_745f_4511_a797d08711d13361" "ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}" { variable arrRetValues[]; arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3("123d7b87_745f_4511_a797d08711d13361"); // Head96EmptyWasher } // }} "" // {{ 883 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EE8804FCDC214a06935DD0F4830020DB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 884 1 0 "ab84bcc8_3da0_446b_84689087cc7a392f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 885 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 886 1 0 "dde0a413_b493_4b17_94990d1d5f2e2b2e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 887 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 888 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 889 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 890 1 0 "1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONFromServer); // }} "" // {{ 891 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 892 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "end") { // }} "" // {{{ 893 1 0 "6db67a5a_6aa2_4087_875823acfff0fac4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Good Bye!")); // }} "" // {{ 894 1 0 "4c7e40d6_02a6_451d_b28230ec71e40ce1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 895 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 896 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 897 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 898 1 0 "6fb90145_24c3_46ba_88b839e0215d0bf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{ 2 "AutoExitBlock" "" STAR_OEM_TOOLKIT::_ExitLibrary(); // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=Hamilton$$valid=0$$time=2019-03-18 18:17$$checksum=14112bd1$$length=085$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/STAR_OEM_Test.res ================================================ #pragma once global resource Res_mlstar(1, 0xff0000, Translate("mlstar")); global resource Res_HxFan(1, 0xff0000, Translate("HxFan")); global resource Res_ML_STARlet(1, 0xff0000, Translate("ML_STARlet")); function Res_mlstar_map(variable unit) variable { return(unit); } function Res_mlstar_rmap(variable address) variable { return(address); } function Res_HxFan_map(variable unit) variable { return(unit); } function Res_HxFan_rmap(variable address) variable { return(address); } function Res_ML_STARlet_map(variable unit) variable { return(unit); } function Res_ML_STARlet_rmap(variable address) variable { return(address); } namespace ResourceUnit { variable Res_mlstar; variable Res_HxFan; variable Res_ML_STARlet; } // $$author=Hamilton$$valid=0$$time=2024-09-06 14:25$$checksum=79960328$$length=085$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/STAR_OEM_Test.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" private function ArrayToString( variable & i_array[], variable & o_str ) void ; private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ; private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ; private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ; private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; function SendTextMessageToServer( variable str ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; private function waitForGUItoContinue( ) variable ; function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 1033 1 0 "c8aa765a_4840_468a_9e928b44fa79d891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{{ 5 "OnAbort" "End" } // }} "" // {{{ 5 "SendTextMessageToServer" "Begin" function SendTextMessageToServer( variable str ) void { // }} "" private object objJSONObject; private variable strJSON; // {{ 5 "SendTextMessageToServer" "InitLocals" // }} "" // {{{ 1001 1 0 "9d5f9d4a_c104_4b47_964b6d97f981a71e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONObject); // }} "" // {{{ 1002 1 0 "d0a04705_1adc_4919_b95168834c89f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("command"), Translate("message")); // }} "" // {{{ 1003 1 0 "7b9a6cd1_3eee_4085_b3f9548e43fc3424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("text"), str); // }} "" // {{{ 1004 1 0 "6a1c53cf_65ea_4f53_aa2e9111890fecf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONObject, strJSON); // }} "" // {{{ 1005 1 0 "bee8c148_b3ea_490b_8d93d8ed5f24939f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONObject); // }} "" // {{{ 1006 1 0 "b965a2fd_f821_4400_b4c777f558ed0772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendTextMessageToServer" "End" } // }} "" // {{{ 5 "waitForGUItoContinue" "Begin" private function waitForGUItoContinue( ) variable { // }} "" private variable loopCounter1; private variable serverResponse; private timer timer1; // {{ 5 "waitForGUItoContinue" "InitLocals" // }} "" // {{ 1014 1 0 "73328607_d06a_4d7d_8a5df64da06a1bde" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" serverResponse = Translate(""); // }} "" // {{{ 1015 1 0 "2342f8b3_4765_4edc_9fb9f46cbb1fd20b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Waiting for server instructions...")); // }} "" // {{{ 1016 1 0 "216e1039_788e_4830_8588933e6c542ba1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Waiting for server instructions...."), Translate("")); // }} "" // {{ 1017 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounter1 = 0; while (1 == 1) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1018 1 0 "5f15547c_3178_4f78_b5fea96f6a1c563b" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.1) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1019 1 0 "cd67277b_4386_4862_8429008a00601693" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 1020 1 0 "6ec592d0_fe02_41a9_8503db5ccf0e5544" "{C1F3C015-47B3-4514-9407-AC2E65043419}" serverResponse = HSLHttp::HttpGET(objHttp, Translate("http://localhost:3221"), Translate("")); // }} "" // {{ 1021 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (serverResponse != "") { // }} "" // {{ 1022 1 0 "b1e2e308_ee78_46d0_8a6832649536045e" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1023 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1024 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 == 300) { // }} "" // {{ 1025 1 0 "19e5c8f7_a1a9_4348_aa41a572942db630" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1026 1 0 "6be46368_bb3e_4ad8_82647d6f52af8c9b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1027 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1028 1 0 "8951a436_faf4_45df_a268dbb7ddb58c29" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.9) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1029 1 0 "52bb524e_27b1_4bbe_afcf26453d9eb66f" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1030 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1031 1 0 "809789b0_bd70_4c1f_b0d808ce120b1d99" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (serverResponse); // }} "" // {{{ 5 "waitForGUItoContinue" "End" } // }} "" // {{{ 5 "SendStepReturnToServer" "Begin" private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer" "InitLocals" // }} "" // {{{ 989 1 0 "2520bd9f_739d_4111_a27d89f8f73ec39e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 990 1 0 "aa6010ec_0628_49d5_a87e016b4a4fc7f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 991 1 0 "a97c5efa_0ce4_4358_9c51c1893f526b9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 992 1 0 "deceb871_e830_4b14_86e626f745ef083a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 993 1 0 "00afb5c2_b5db_4458_866a13b6cb332b68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 994 1 0 "e52bbd02_b31d_4278_a0f45991eab77d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 995 1 0 "19f99698_3777_4dcf_9fc765c3f221df4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 996 1 0 "329f8b9b_0798_44f8_9ee6b65ec58b0c44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 997 1 0 "7728ac0d_8630_4f61_94af076392758ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 998 1 0 "70d261f2_edc4_49a0_a5a074cd5ab92b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 999 1 0 "ee0dd62d_582f_4171_b08e37f6106d9b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer" "End" } // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "Begin" private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void { // }} "" private variable n; private variable loopCounter1; private variable strSinglePosition; private variable arrayOfPositions[]; private variable arraySinglePosition[]; private variable labwareID; private variable positionID; // {{ 5 "BuildTempSequenceFromPositions" "InitLocals" { sequence __temp; o_seq = __temp; } // }} "" // {{ 936 1 0 "d9022e13_e502_4969_a8ee79484e990801" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arrayOfPositions.SetSize(0); // }} "" // {{{ 937 1 0 "3e178082_8579_435f_a5db4481bb789d9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strPositions, Translate(";"), arrayOfPositions, 0); // }} "" // {{ 938 1 0 "5d735f26_db1b_4bea_9ee405f4167bb99f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" n=arrayOfPositions.GetSize(); // }} "" // {{{ 939 1 0 "f497f24b_fd39_417d_8703c0d54662309f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq); // }} "" // {{ 940 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 941 1 0 "fd645546_0433_46a0_8619026e338529fd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arraySinglePosition.SetSize(0); // }} "" // {{ 942 1 0 "91aeb0c4_3176_4356_a19a1027bcdb0af3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1); // }} "" // {{{ 943 1 0 "c2b42369_7829_4c62_b58880fce7867995" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strSinglePosition, Translate(","), arraySinglePosition, 0); // }} "" // {{ 944 1 0 "016f61c5_fd76_4c74_903df10a03070f7b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" labwareID=arraySinglePosition.GetAt(1-1); // }} "" // {{ 945 1 0 "886fc872_7c3a_4366_959db6d5f265ed7c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" positionID=arraySinglePosition.GetAt(2-1); // }} "" // {{{ 946 1 0 "766a54b4_4c5b_4991_9d8ceea62d26b216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq, labwareID, positionID); // }} "" // {{ 947 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 948 1 0 "0003c6e9_5b43_438d_bc93be342c3c6b55" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq.SetCurrentPosition(1); // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "End" } // }} "" // {{{ 5 "StrTokenize" "Begin" private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 1008 1 0 "500afe4c_98a8_4117_8c279b9994d0b626" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 1009 1 0 "6a0bd918_2fda_4e4c_a680454ce2576168" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 1010 1 0 "f65ed315_68ed_4ec0_ba0b3c217e692b25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 1011 1 0 "9476acee_e5bb_43d1_bbec232ed01bae08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); // Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "Begin" private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void { // }} "" private variable numOfVolumes; private variable numOfChannelsInVariable; private variable n; private variable loopCounter1; private variable arrSize; private variable loopCounter3; private variable strKeyName; // {{ 5 "BuildArrayOfVolumesForChannels" "InitLocals" o_arrayOfVolumes.SetSize( 0); // }} "" // {{ 910 1 0 "69288f91_eabd_4d15_af5361636ffacbf6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyName = Translate("volumes"); // }} "" // {{ 911 1 0 "bf4c1108_6751_41ee_8d3d3b1a9418548f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfVolumes.SetSize(0); // }} "" // {{{ 912 1 0 "a9cfa743_a769_46a3_b8d7e45a67b3d297" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName); // }} "" // {{ 913 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arrSize > 0) { // }} "" // {{ 914 1 0 "594bebbb_0d54_4893_b20d783de743dd44" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 915 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < arrSize;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{{ 916 1 0 "3bfc9004_2595_4917_b4edcdceed06f518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); // }} "" // {{ 917 1 0 "6be31b23_f55d_4d15_be6abc9ee4bef664" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" Trace("Volume received=", v); // {{ 919 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 920 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 921 1 0 "4a4891b3_f877_4b14_85196b7e820554b2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 922 1 0 "22c7c768_33c4_4975_909e9586375bfe8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(strKeyName, v); // }} "" // {{ 923 1 0 "4e01e62a_13a2_408e_9fbfb2300d5996ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 924 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 925 1 0 "cc565f65_a92a_43ef_9c052b7f5632aca5" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" numOfVolumes=o_arrayOfVolumes.GetSize(); // }} "" // {{{ 926 1 0 "e49355fb_3fe6_4c8d_930870416e36b708" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numOfChannelsInVariable = StrGetLength(strChannels); // }} "" // {{ 927 1 0 "804bc477_e950_4a14_af5f667c73cf5176" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 928 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (numOfVolumes < numOfChannelsInVariable) { // }} "" // {{ 929 1 0 "2e73355c_8b11_4423_b345807cae9d5db8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" n = numOfChannelsInVariable - numOfVolumes; // }} "" // {{ 930 1 0 "53a650d8_2fc1_4c5b_bd19eda433c2a81a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" v = o_arrayOfVolumes.ElementAt( numOfVolumes -1); // }} "" // {{ 931 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 932 1 0 "cd047b15_6a02_40f1_adfb116f6bf5d763" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 933 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 934 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "End" } // }} "" // {{{ 5 "ArrayToString" "Begin" private function ArrayToString( variable & i_array[], variable & o_str ) void { // }} "" private variable arraySize; private variable loopCounter1; // {{ 5 "ArrayToString" "InitLocals" o_str = 0; // }} "" // {{ 900 1 0 "1a220255_6ba4_40fb_be39a6a2f4e0065f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 901 1 0 "f821c4ff_f1a2_4ad7_9bd77dd8652567cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str = Translate(""); // }} "" // {{ 902 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 903 1 0 "afd84a84_8330_46e7_8308e16b5caa05e9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" v=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 904 1 0 "77436fd3_3c87_4f09_9a89259b15ef5bf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, v); // }} "" // {{ 905 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 < arraySize) { // }} "" // {{{ 906 1 0 "d14fd31e_5de8_46f9_bb359f38de9a08ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, Translate(";")); // }} "" // {{ 907 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 908 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "ArrayToString" "End" } // }} "" // {{{ 5 "JSON_GetFloatValue" "Begin" private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void { // }} "" private variable retVal; // {{ 5 "JSON_GetFloatValue" "InitLocals" o_KeyFloatValue = 0; // }} "" Trace("getfloatvalue"); // {{{ 951 1 0 "8f2f8625_6c9e_4c47_b4698d29df60004a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" // {{ 952 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("error getting float value, try with integer"); // {{ 954 1 0 "5a74df81_6685_4703_8b055144f8d74d45" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 955 1 0 "47bb8c98_9624_40ad_b765abfc6b0d0b49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" Trace("error getting float value, tried with integer"); // {{ 957 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("wtf ok i guess its zero"); // {{ 959 1 0 "5b8a3ec6_8ee4_4887_ab7df29fa494cdc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_KeyFloatValue = 0; // }} "" // {{ 960 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 961 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "JSON_GetFloatValue" "End" } // }} "" // {{{ 5 "SendHHSReturnToServer" "Begin" private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; private variable t_arrayStepReturns[]; private variable loopCounter1; private variable keyName; private variable varType; // {{ 5 "SendHHSReturnToServer" "InitLocals" // }} "" // {{{ 963 1 0 "6db3f932_ba70_4cf6_9c2a8636580fc754" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 964 1 0 "3cf8a985_83cc_418e_99293de9d9945d5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("HHS-return")); // }} "" // {{{ 965 1 0 "705c25bc_6db4_4eb9_b05b33999e110198" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{ 966 1 0 "5a9efc02_a11a_4c0c_b166e3b28800cc6c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" t_arrayStepReturns.SetSize(0); // }} "" // {{ 967 1 0 "5aa4f3a8_774f_4f35_ae7fa197ef920048" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn1); // }} "" // {{ 968 1 0 "00ac351d_bc51_41e5_b300af93d6893fa5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn2); // }} "" // {{ 969 1 0 "2aaf8702_2d08_48ee_be96815ca77463c9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn3); // }} "" // {{ 970 1 0 "67fcb56e_9f42_4739_a5ee322f12443a17" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn4); // }} "" // {{ 971 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < 4;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 972 1 0 "a23ae2ed_5b02_41a0_a69215d0b80fde4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" keyName = StrConcat2(Translate("step-return"), loopCounter1); // }} "" // {{{ 973 1 0 "9b92ac94_8c71_4b77_95ac0c691427c4bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" varType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 974 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "s") { // }} "" // {{{ 975 1 0 "1497ea6a_46ab_4ee8_b7951f24b533e644" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 976 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 977 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "f") { // }} "" // {{{ 978 1 0 "61772f9e_fea3_4011_bba06b7fe66e8b0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 979 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 980 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "i") { // }} "" // {{{ 981 1 0 "28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 982 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 983 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 984 1 0 "0a0447b8_96fb_495a_90dfa8f1e2c488ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 985 1 0 "b2a13d10_b443_4fc0_aa0baa2a23cddafe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 986 1 0 "0adf40b4_5c73_46d8_8e6042c6dfd32d86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 987 1 0 "5a5dabeb_e3ed_4730_ab86839e00f75077" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendHHSReturnToServer" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=Hamilton$$valid=0$$time=2019-03-18 18:17$$checksum=84c7831d$$length=087$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/STAR_OEM_noFan.hsl ================================================ namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HslHamHeaterShakerLib.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "SchedulingDev\\HSLAppsLib.hsl" } namespace _Method { #include "STAR_OEM_toolkit_pH.hs_" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" } namespace _Method { #include "STAR_OEM_toolkit_centrifuge.hs_" } namespace _Method { #include "STAR_OEM_toolkit_MPE.hs_" } namespace _Method { #include "Hamilton pH Module Controller.hs_" } #include "STAR_OEM_Test.res" namespace _Method { #include "HSL_LiquidClassLib.hsl" } namespace _Method { #include "Inheco ODTC\\Inheco ODTC.hsl" } namespace _Method { #include "Labware Properties\\Labware_Property_Query.hs_" } namespace _Method { #include "Hamilton MPE2\\HSLMPELib.hsl" } namespace _Method { #include "Hamilton Centrifuge\\Hamilton Centrifuge.hsl" } namespace _Method { #include "LiquidClassLibrary\\LiquidClassLibrary.hsl" } /* {{ 2 "LibraryInsertLine" "" */ // }} "" variable loopCounterMain; variable msg; object objJSONFromServer; variable commandFromServer; variable initializeAlways; variable o_stepReturn; object objJSONToServer; sequence seq; variable tipSequence; variable sequenceCounting; variable channelVariable; variable channelUse; variable labwarePositions; variable aspirateSequence; variable v; variable arrayOfVolumes[]; variable liquidClass; variable aspirateMode; variable capacitiveLLD; variable pressureLLD; variable liquidFollowing; variable submergeDepth; variable liquidHeight; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable airTransportRetractDist; variable touchOff; variable aspPosAboveTouch; variable o_liquidLevels_mm[]; variable o_liquidLevels_mL[]; variable o_stepReturn2; variable o_stepReturn3; variable dispenseMode; variable dispenseSequence; variable dispPositionAboveTouch; variable zMoveAfterStep; variable sideTouch; variable wasteSequence; variable useDefaultWaste; variable reducedPatternMode; variable aspirateVolume; variable o_stepReturn4; variable dispenseVolume; variable tipEjectToKnownPosition; variable carrierName; variable barcodeFileName; variable barcodeReadPositions; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable lidSequence; variable plateSequence; variable toolSequence; variable transportMode; variable widthBefore; variable gripHeight; variable gripWidth; variable gripSpeed; variable gripperToolChannel; variable checkPlate; variable zSpeed; variable gripForce; sequence lidSeq; sequence toolSeq; variable xAcceleration; variable platePressOnDistance; variable ejectToolWhenFinish; object objHttp; variable blnReturn; variable blnSuccess; variable usedNode; variable deviceNumber; variable action; variable sampleInterval; variable shakingToleranceRange; variable id; variable monitorResult; variable firmwareVersion; variable serialNumber; variable command; variable parameter; variable plateLock; variable shakingAccRamp; variable shakingDirection; variable simulate; variable startTimeout; variable toleranceRange; variable securityRange; variable intTrace; variable shakingSpeed; variable shakingTime; variable temperature; variable waitForTempReached; variable inverseGrip; variable liftUpHeight; variable retractDistance; variable tolerance; variable labwareOrientation; variable movementType; variable collisionControl; variable gripMode; variable showCollisionCheckDialog; //global device HxFan ("STAR_OEM_Test.lay", "HxFan", hslTrue); variable refillAfterEmpty; variable chamber1LiquidChange; variable chamber2WashLiquid; variable chamber1WashLiquid; variable chamber2LiquidChange; variable FirmwareCommand; variable FirmwareParameter; variable CommandListElement; variable CommandListLength; object FirmwareCmdDict; variable yDisplacement; variable zDisplacement; variable xDisplacement; variable yOrigin; variable xOrigin; variable zOrigin; variable ControllerID; variable SimulationMode; variable ErrorCode; variable DeviceID; variable TargetTemperature; variable StopAllDevices; variable TraceLevel; variable Comport; variable Simulate; variable ModuleName; variable Angle; variable inputSequence; variable barcode; variable seqFirstPosition; variable seqSecondPosition; global device ML_STAR ("STAR_OEM_Test.lay", "ML_STAR", hslTrue); variable ModuleID; variable probePattern; variable pH_probe_1; variable pH_probe_2; variable pH_probe_3; variable pH_probe_4; variable Variance; variable Timeout; variable CalibrationLevel; variable CalibrationValue; variable CalibrationTemperature; variable Precision; variable Temperature; variable ChargeCounter; variable ReplacementDate; variable BatteryCondition; variable ActualCharge; variable MeasurementCounter_Probe_1; variable MeasurementCounter_Probe_2; variable MeasurementCounter_Probe_3; variable MeasurementCounter_Probe_4; variable HardwareNumber; variable Revision; variable SerialNumber; variable PartNumber; variable Selector; variable VoltageData; variable Day; variable Year; variable Month; variable Charge; variable AutoCharge; variable AutoChargeLevel; variable Probe; variable Mode; variable ProbeNumber; variable pHHighValue; variable pHHighVoltage; variable pHLowValue; variable pHLowVoltage; variable CalibrationSlopeRatio; variable CalibrationOffset; variable CalibrationSlope; variable CycleNumber; variable NodeName; variable Label; variable AlwaysInitialize; variable intPresentPosition; variable Direction; variable CloseCoverAtEnd; variable ArrSpeed; variable ArrAcceleration; variable ArrDuration; variable i_ArrDuration[]; variable i_ArrAcceleration[]; variable i_ArrSpeed[]; variable Decelleration; variable Speed; variable Acceleration; variable MaxRunTime; variable SpeedSensorTrip; variable TimeLeft; variable GravitySensorTrip; variable CurrentSpeed; variable TemperatureSensorTrip; variable ProfileStatus; variable RotorDriveRunning; variable Deceleration; variable DeviceName; variable AdapterDeviceID; variable InstrumentName; variable PortNumber; variable MPEOptions; variable ComPort; variable BaudRate; variable CollectionPlateHeight; variable OffsetFromNozzles; variable NeedleOffset; variable WellVolume; variable FlowRate; variable SourceID; variable Needleoffset; variable PlateHeight; variable WellDepth; variable EvaporateTime; variable FollowRate; variable EvaporateTravelDistance; variable NozzleHeight; variable FilterHeight; variable WasteContainerID; variable FullReading; variable CapacityVolume; variable CalibrationDate; variable EmptyReading; variable blnReset; variable CurrentGasTemperature; variable Heating; variable CurrentEvaporatorTemperature; variable MinimumGasTemperature; variable MinimumEvaporatorTemperature; variable MaximumEvaporatorTemperature; variable MaximumGasTemperature; variable ManifoldPressureSensor; variable HighPressureSensor; variable InputPressureSensor; variable LowPressureSensor; variable MaximumTemperature; variable MinimumTemperature; variable VacuumActive; variable VacuumRunTime; variable DisableVacuumCheck; variable Smart; variable SensorReading; variable ControlPoints; variable ReturnPlate; variable Volume; variable Seconds; variable DefaultTemperature; variable MeasureTime; variable MeasureHeight; variable CalibrationValue1; variable TempSoln1; variable TempSoln2; variable CalibrationValue2; variable blnCalibrateDynamically; variable CalibrationValueRef; variable TempSolnRef; variable Module; variable Reference; variable Calibration1; variable Calibration2; sequence seqModule; sequence seqCalibration1; sequence seqCalibration2; sequence seqReference; variable CalibrationTime; variable arrCalibrationSlopeRatios[]; variable arrpHValuesReferenceSolution[]; variable CalibrationSlopeRatios; variable pHValuesReferenceSolution; variable BluetoothPort; variable NumDryCycles; variable NumWashCycles; variable DryTime; variable Gripper; sequence seqGripper; variable WashPosition; sequence seqWashPosition; variable DryPosition; sequence seqDryPosition; variable DryCycles; variable TransportChannel; variable WashCycles; variable arrpHValues[]; variable flt_pHValues; variable seqMeasure; variable ProbePattern; variable seqMeasurement; variable MeasurePositions; variable hssErrCode; variable LiqClassParameterName; variable LiqClassParameterValue; variable LiquidClassName; variable message; variable devicePort; variable deviceIP; variable localIP; variable simulationMode; variable deviceID; variable lockID; variable protocolFile; variable methodName; variable requestID; variable priority; variable duration; variable timeout; variable selector; variable propertyValue; variable propertyName; variable labwareID; variable TemplateLiquidClassName; variable tipType; variable o_CorrectionCurveNominal[]; variable o_CorrectionCurveCorrected[]; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" STAR_OEM_TOOLKIT::_InitLibrary(); STAR_OEM_TOOLKIT_PH::_InitLibrary(); STAR_OEM_TOOLKIT_CENTRIFUGE::_InitLibrary(); STAR_OEM_TOOLKIT_MPE::_InitLibrary(); HAMILTON_PH_MODULE_CONTROLLER::_InitLibrary(); LPQ::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{{ 1 1 0 "e7768ad9_4016_4422_bd83f5785d03ceda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnReturn = HSLHttp::Initialize(objHttp); // }} "" // {{ 2 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnReturn != blnSuccess) { // }} "" // {{{ 3 1 0 "62c131b4_44b9_4249_8e0a3205a25b21b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); // }} "" // {{{ 4 1 0 "fb18125e_b294_4554_912c3d447526996e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 5 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 6 1 0 "ee92e29b_e94c_46cf_a67851f3be61c805" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Hi, Im a VENUS method.")); // }} "" // {{ 7 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; // }} "" // {{ 8 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "de417132_351a_4ad8_80c71b1863d4a870" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" commandFromServer = Translate(""); // }} "" // {{ 10 1 0 "d9c97239_3c9d_4992_8fb5820ae5721d90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate(""); // }} "" // {{ 11 1 0 "57da7835_7495_4b16_8b82897289efbd11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn2 = Translate(""); // }} "" // {{ 12 1 0 "cf024fcc_3594_4355_b33f4bd8c8bdfb4e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn3 = Translate(""); // }} "" // {{ 13 1 0 "9ed0b80d_8518_474f_a94d8f843a6158fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn4 = Translate(""); // }} "" // {{ 14 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 15 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 16 1 0 "0257e5d3_7b99_47be_a062950a2b200664" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" msg = waitForGUItoContinue(); // }} "" Trace("JSON received from Server:", msg); // {{{ 18 1 0 "36be63f7_a79c_44a4_b1dc636a536612bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONFromServer); // }} "" // {{{ 19 1 0 "5c2b861d_97f9_4e18_a5fce25e78026299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::ParseJson(objJSONFromServer, msg); // }} "" // {{{ 20 1 0 "562abca5_8891_402a_b8a7c5ba56301a86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); // }} "" // {{{ 21 1 0 "cb002e33_cc71_4a25_890fa8f9f5d982a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("id"), id); // }} "" // {{ 22 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 23 1 0 "2c5f8910_21e4_4ad6_a93b69b1e4e47963" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 24 1 0 "86069428_e80c_4904_8812aad4657c5212" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "initialize") { // }} "" // {{{ 25 1 0 "8a7d692d_4f9d_4a02_b1f308aa4db9592e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); // }} "" // {{{ 26 1 0 "11b50fe6_feb2_4f6a_bc5d14c79a5c8cbb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); // }} "" // {{{ 27 1 0 "91101a35_f6be_4423_9ac694378c64b12f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::Initialize(ML_STAR, 0); // }} "" // {{{ 28 1 0 "db79d279_0647_47f2_8df6f88553aa210e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Init step return:"), o_stepReturn); // }} "" // {{{ 29 1 0 "4cd00bbc_dde4_4147_a564ff5dbd7dbc35" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 30 1 0 "86069428_e80c_4904_8812aad4657c5212" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 31 1 0 "2c5f8910_21e4_4ad6_a93b69b1e4e47963" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 32 1 0 "dfc80fbf_d3bf_402e_af38633bd83ca8e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 33 1 0 "1d2e7142_4ab8_4e46_bdf7685dda576569" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ping") { // }} "" // {{{ 34 1 0 "5bf99367_f465_4ed1_965c0d2abd185c1c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, Translate("0"), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 35 1 0 "1d2e7142_4ab8_4e46_bdf7685dda576569" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 36 1 0 "dfc80fbf_d3bf_402e_af38633bd83ca8e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 37 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 38 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 39 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipPickUp") { // }} "" // {{{ 40 1 0 "53e1cfb5_1fde_491f_bfd878eceda16ba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 41 1 0 "f0e9e31f_d871_4632_bd466e43fc38c771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 42 1 0 "e6311b13_2132_40e0_aff0b5556205c32a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 43 1 0 "cb659ed1_5f0c_41e8_8a060ec0b650c589" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{ 44 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 45 1 0 "6699226b_6c7b_4b79_95b8017162b433b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 46 1 0 "bd13798f_62e7_4dd2_8e91769d48d10fc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 47 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 48 1 0 "ce13caa6_634b_4dec_8a6c3ea74b144e95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 49 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 50 1 0 "29f69958_d99b_455a_93c7b0480bfd1658" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn); // }} "" // {{{ 51 1 0 "732425fd_a199_4354_8479d821ee834e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 52 1 0 "22f00193_1056_456e_a515d156eee56e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 53 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 54 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 55 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 56 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelAspirate") { // }} "" // {{ 57 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 58 1 0 "55ee3109_036b_4acb_8a15175f3316656f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 59 1 0 "a5b3e5ac_4910_4a4a_8e20bdb7f61836e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 60 1 0 "ce04189a_96e4_4bdc_aedc8a68bf64647b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 61 1 0 "882daff3_cc25_4778_aec6a937fc87347c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 62 1 0 "7f7b9f83_5611_4a3b_b5c120689696addb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 63 1 0 "39e464b7_0def_403b_a02f5dd2a358dbd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 64 1 0 "2e2739aa_8eb6_44e0_b887ea00b04acac0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 65 1 0 "9408edd8_3cee_43e0_976b4a6fabf5f4ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 66 1 0 "a2848877_3518_4d1d_95f77c1f313003e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); // }} "" // {{{ 67 1 0 "4b5ce3d0_91f4_4c14_aaf1cad34e0caf60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" Trace("Bookstart"); // {{{ 69 1 0 "12892ce3_3bc6_4165_b3b6ae0eacad20e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" Trace("Bookend"); // {{{ 71 1 0 "15bd5af3_2da1_420b_beb398dc2347a0ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 72 1 0 "4fe61fb4_bb39_4728_96b8c6959f4943ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); // }} "" // {{{ 73 1 0 "ba68c240_2397_4872_949ee1ee984595c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 74 1 0 "baac19fc_9f21_4e8c_b833f2a1ba2433f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 75 1 0 "253130f8_f599_4ef4_9d5a15e2cb89d1eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 76 1 0 "51233931_483f_4deb_a8627b909d6c9116" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 77 1 0 "bf0c65ba_7847_4768_92ebbe8adc6568c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 78 1 0 "30a6715c_b6c6_4d86_b5c02f3da440e309" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 79 1 0 "6eb82b6e_8093_461e_afc712cab07398dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 80 1 0 "3f8b6af1_7872_4a20_92bf2c4507ea9f31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); // }} "" // {{{ 81 1 0 "7dd1b818_5a89_4b03_82734e6f4d7b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{ 82 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 83 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 84 1 0 "cb2b67f0_7384_4a41_831de652f92d4c85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 85 1 0 "29a868b4_7800_4747_b14eaf0f2c10ba40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 86 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 87 1 0 "08f63789_65f1_4e7d_996dc22e8f33d416" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 88 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 89 1 0 "8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 90 1 0 "7cb70e6b_15bb_4380_b62150df065d208f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 91 1 0 "4714958b_0632_4de2_983c7fe9de68df6c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 92 1 0 "bd40f564_16d7_4037_aef8eebfe28a4362" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 93 1 0 "18bf536c_98f4_4345_86a103db4a9b68a1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 94 1 0 "d60cd9aa_083b_4487_8d6218cee02fa4cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 95 1 0 "e86187c0_0d19_453e_be1c5a401d0d5d93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 96 1 0 "d66c2dae_4cc3_4a31_bafe46d1dd63e790" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 97 1 0 "d23f143d_290d_4d0f_b368241a6a9adaed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 98 1 0 "13471b0a_aeec_48e7_828bb64fc2b4ba8e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Liquid levels (mm):"), o_stepReturn2); // }} "" // {{{ 99 1 0 "eb89fc5d_3c00_460c_86323f9401b94b40" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Liquid levels (mL):"), o_stepReturn3); // }} "" // {{{ 100 1 0 "8c97ba72_f880_4504_baee8b8db3d13310" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 101 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 102 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 103 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 104 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelDispense") { // }} "" // {{ 105 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 106 1 0 "909bc255_6ca1_4700_bc102ccb34ae5be4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 107 1 0 "fd48dd93_9f42_4df0_9f659e27a5552543" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 108 1 0 "3ff3f492_86a5_40af_a3deabccbab3898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 109 1 0 "3cbb883f_48ae_40fe_afe67da944df94b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 110 1 0 "ab1033bc_1216_450a_9fb60655a1f1a21a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 111 1 0 "0bc1541f_26d5_44d6_8db6ae336fec17bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 112 1 0 "8c10cc29_c05e_4cea_9ed559249651e805" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 113 1 0 "3e0373da_7c7c_46ab_9b77fba19915662e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 114 1 0 "b98fdc49_cdcb_4f3c_81df0b76eafa1411" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 115 1 0 "7458d32a_402a_4215_b52378c78468ec80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 116 1 0 "5e14f2ce_c932_474b_be03f3c043c700e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 117 1 0 "c2010d1d_5a78_4871_a835a6613a1237bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 118 1 0 "d4a6e6a3_0158_45f1_9c359d8e48e01bed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 119 1 0 "011e9828_5413_40c1_80d0c3bdde1c6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 120 1 0 "2d7a4942_b2ce_43a2_8decf49fa0c9576c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 121 1 0 "ad9f0bbf_e495_41c5_898a3be32bb16f2b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 122 1 0 "5c734886_aa50_424c_b89f6894bc37dd8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 123 1 0 "d1bc00cc_4286_4409_b1c49b6350e7e6ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 124 1 0 "b178ce99_db9e_4453_bed28d4ce0457bc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); // }} "" // {{{ 125 1 0 "1b38ad88_3c65_4e58_812f9ed32ce32485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{{ 126 1 0 "f34066f1_63f9_474f_8a9c41e56962dc74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 127 1 0 "6b94916e_355b_4ee9_8eb4f1b49c95fea4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 128 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 129 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 130 1 0 "e962dd26_3672_4418_bd3c40e9929929eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 131 1 0 "6257966a_6b39_41c8_a057a79b8e39cd4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 132 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 133 1 0 "3f230e40_8bd9_4235_b88cd0ca80799661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 134 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 135 1 0 "8d82ff40_d831_430b_97d97c01d2a4474e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 136 1 0 "ac0ad5a7_d00b_46fe_a18f94f8dab3863c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 137 1 0 "b7f86b6c_03a4_4e12_a05e5e8bdc958b75" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 138 1 0 "9bfa8704_2ae0_4a63_83d09fddbacfd336" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 139 1 0 "860b660a_6947_4c88_a2a039bf65040bf5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 140 1 0 "797f0eef_5bb2_4a2e_a178af74f4892bd7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 141 1 0 "2753c24e_c4dc_402d_866b6bc8691ecc1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 142 1 0 "1ac127fd_b830_496f_b4d4b9671137ebff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 143 1 0 "3ee5d751_d3a5_468a_b539c4f0ff22023e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 144 1 0 "b86d492c_446f_4921_97140cfd462ace87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 145 1 0 "e049946d_6322_4b39_9c46a2d0eb345528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 146 1 0 "531432f5_ef8a_416e_8be28a07ae9b0d25" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 147 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 148 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 149 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 150 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipEject") { // }} "" // {{{ 151 1 0 "69be671e_7cdd_48d3_af136435754c1d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 152 1 0 "f3444c0f_4863_4fdd_94a025b682d8a6d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 153 1 0 "12ad2f39_c160_4afc_9f6ffce7e3ddb433" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 154 1 0 "2883bb64_2fe3_47ca_996e11434afc57cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 155 1 0 "10c3b13e_7129_4cfd_b88b29d0bbc31a28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); // }} "" // {{{ 156 1 0 "f12cebf8_f377_4e29_9178b685b8637482" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 157 1 0 "53842548_1bc1_4cff_b1c7b9254000a8bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 158 1 0 "40577bba_0459_4794_a91070bf46ef5b5f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{ 159 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (useDefaultWaste == 0) { // }} "" // {{ 160 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 161 1 0 "655bc92f_08a8_4c16_a0276997aec081ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 162 1 0 "a3a0b5ef_85c0_4552_a28b3356d7886eb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 163 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 164 1 0 "efadb8c3_c431_4ed4_a739a951c05ee518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 165 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 166 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 167 1 0 "2dda50b6_7f82_4e8a_a1d203715119213a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 168 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 169 1 0 "33f8a21f_6ff1_4901_9c57a2c3bfc58f55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 170 1 0 "7fa61e34_a1f2_4b99_8f6bed13c6ce120f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn); // }} "" // {{ 171 1 0 "2e847c00_28a1_4b09_9ed5515ce7746892" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 172 1 0 "f40baab8_ec2e_4552_91ddf539ae8bfda9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 173 1 0 "2e65ae8a_e63b_4697_a998e72591e5c0c5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 174 1 0 "7672ebc2_4687_4107_a4fd6c56c422373e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 175 1 0 "a7db5128_f8e4_4afe_81f46b2cc86e608d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject step return:"), o_stepReturn); // }} "" // {{{ 176 1 0 "683607f4_928f_4cea_b901fe3502404424" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 177 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 178 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 179 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 180 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 181 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 182 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipPickUp") { // }} "" // {{{ 183 1 0 "1f82c33f_a085_47cc_85dbbde3e42a53c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 184 1 0 "9f9fe665_47a2_4a12_961460021d1f09f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 185 1 0 "743960d2_9d0f_4ccf_848662247e3211c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 186 1 0 "b737602c_63e8_4c4c_b47f40cb815914ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); // }} "" // {{ 187 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 188 1 0 "00bd1831_c335_40f5_b706f0ffadbe2890" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 189 1 0 "1f16418c_8fa7_44a5_a6db75dd9a79ee84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 190 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 191 1 0 "b66db4eb_9e79_4c19_909fd8d14d37cba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 192 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 193 1 0 "f3e7cbf6_0242_4463_8d4ed0db4667f7db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2); // }} "" // {{{ 194 1 0 "b080a5c6_324c_4aae_b5899dede6d863f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 195 1 0 "aa5a9c4b_0377_46ce_9b46883db15cbd7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 196 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 197 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 198 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 199 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Aspirate") { // }} "" // {{ 200 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 201 1 0 "373f30c8_ec07_4298_94d6ac75358ab1ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 202 1 0 "ef3ae377_e985_4ef6_93b005aa91c9b2b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 203 1 0 "d8eea65a_6e59_4c32_a47bae09779f9528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 204 1 0 "8eb02312_a070_491c_9758b3cdbdee0cfc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); // }} "" // {{{ 205 1 0 "6eaf8bee_b53f_4f01_87c1380bc345e386" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 206 1 0 "d9923a2f_e7cf_4f3e_81746e378a20baab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 207 1 0 "2c411993_e3fc_4753_9a90308b226078a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 208 1 0 "5d900896_b2b9_442b_b24294b9bbfbdaad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 209 1 0 "21149e9e_21c9_4ddd_93e07b693e3ab3fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 210 1 0 "bcefef03_102b_4887_adad59c2fb7ad551" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 211 1 0 "9665b0a3_35e8_47e9_b14ac1a4818cfa6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 212 1 0 "ff93d28b_afe9_47e7_9b6eb50d6845384f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 213 1 0 "ef43b824_fd38_42d4_9e932904dbf14813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 214 1 0 "b0378457_e370_448b_bfd6955c05e57bcb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{ 215 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 216 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 217 1 0 "615bcff6_e9d5_4303_a5d5826b2e2548dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 218 1 0 "cf4ad428_945e_4921_9441ee34cf9c96bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 219 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 220 1 0 "86397ec2_2ee5_4ec1_8bec47d8e87584b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 221 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 222 1 0 "48f88263_72c1_4df2_865181cffed9feee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 223 1 0 "f1b764e8_e556_4d08_bb83bdc12dc64a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 224 1 0 "164c104a_cf5f_46de_b23a098a18b3fdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 225 1 0 "ee779f77_51a9_46d7_b58b7bcaf13519f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 226 1 0 "e874eb6d_1e97_4590_95d9b10cb059c935" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn4); // }} "" // {{{ 227 1 0 "0ca1df86_a344_45fd_b384e13ba44c5ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 228 1 0 "2497228e_672e_4c95_9f31679fe87bbe1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 229 1 0 "e4930eee_c625_4acb_a81c05e149a1a218" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 230 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 231 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 232 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 233 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Dispense") { // }} "" // {{ 234 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 235 1 0 "78cba921_2a37_4b4a_91ef7fbe81fcddd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 236 1 0 "b58b4cbd_16e9_4444_9037061e29bc5614" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 237 1 0 "0ab910ec_826d_4c84_bac7ed9564f3bdab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 238 1 0 "84d664b7_70d0_4136_bdfd4de2aa760ad8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); // }} "" // {{{ 239 1 0 "18becc6a_2df4_4281_8b16ade9038979f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 240 1 0 "68c565db_e5ed_44e8_b3846a1d98034e76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 241 1 0 "6a4221a8_9488_48f9_8381b1bc0f0c960d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 242 1 0 "45dcb271_e326_42fc_b8684816d3ffdc93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 243 1 0 "14552b13_e77b_4fb7_9020445ecc5ade21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 244 1 0 "91783f87_af6f_446e_a74fb1725f17d282" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 245 1 0 "e2e7f702_1710_49eb_9b1046dbf4f143e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 246 1 0 "1817aa70_86fa_4318_a8e46569701623e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 247 1 0 "50bd6734_10d5_4291_b40eb708539514fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 248 1 0 "ad5fbb01_d809_4b7d_b858ed597709f28f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 249 1 0 "09566247_6b2d_4c73_b43fe303a30f89c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 250 1 0 "3ead74f7_3b5c_4b21_84d2488c2eceab73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 251 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 252 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 253 1 0 "835f8470_7e8c_40ff_a48abcc85d6b778b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 254 1 0 "059394fc_e924_4d57_b1b85f79f9947fa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 255 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 256 1 0 "6c4be3a7_a450_459c_90545a208f9f459f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 257 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 258 1 0 "c164a94e_2926_462e_9487870d403fe8b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 259 1 0 "86c0fb85_8aaf_4bec_9f6f1f642206487f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 260 1 0 "77047add_8050_4522_ad477b97455a8327" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 261 1 0 "5b2c6f23_9a69_489d_b52179c78c03e48f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 262 1 0 "a9a9244b_829f_4c5b_9a64f1018b029453" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn4); // }} "" // {{{ 263 1 0 "781580a9_199e_4373_b48bb55a97f8a463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 264 1 0 "1867ae44_25f8_4926_ae081e490fd5aa0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 265 1 0 "dbb3b30c_b4a1_4cf6_a24b62b63f155369" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 266 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 267 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 268 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 269 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipEject") { // }} "" // {{{ 270 1 0 "7cf9db16_d78c_4aa0_825cc3c2c22f287c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 271 1 0 "ccca7a97_c22a_4f20_b2d9a60d67850eee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 272 1 0 "a319f75e_77eb_4845_856516ce060213f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 273 1 0 "d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); // }} "" // {{ 274 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipEjectToKnownPosition == 0) { // }} "" // {{ 275 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 276 1 0 "24eeb6dd_1e20_422c_a1a8199cbca73b33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 277 1 0 "5197334f_cde5_4d52_9c528a0c4f7401b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 278 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 279 1 0 "110b82e1_8a5b_48e4_a3adbab701cffc8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 280 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 281 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 282 1 0 "fa32bbf8_8345_4897_aaf09d112d374893" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 283 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 284 1 0 "ef087a4e_684e_4d98_87109abf154fbc85" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2); // }} "" // {{{ 285 1 0 "328216cf_22dd_47a1_9f1ba089b1ac7702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn); // }} "" // {{{ 286 1 0 "53265943_7975_4275_ad98df313054f97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2); // }} "" // {{{ 287 1 0 "c13d9773_7daf_4c3c_9064fdd4f7c7008f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 288 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 289 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 290 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 291 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 292 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "loadCarrier") { // }} "" // {{{ 293 1 0 "76d739d0_ff4a_490b_9c47f411d29ef7a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 294 1 0 "ca623aa7_ed48_45fa_9f4055fb8e08c3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); // }} "" // {{{ 295 1 0 "64a8e193_7e7e_412e_8a0657f0e832eaef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); // }} "" // {{{ 296 1 0 "39e6aaef_5cce_4915_b5b6ede214c7371e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs); // }} "" // {{{ 297 1 0 "1d4d284f_fd1e_4f8a_a2158846ad6a67f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Load carrier step return:"), o_stepReturn); // }} "" // {{{ 298 1 0 "358b7fc3_40a2_418b_9d61d94eef1556f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 299 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 300 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 301 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 302 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "unloadCarrier") { // }} "" // {{{ 303 1 0 "797d23a7_c62a_471a_a52b10fea8bcc154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 304 1 0 "f1c35790_adb7_49eb_a96864d8b1d66cea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn); // }} "" // {{{ 305 1 0 "6e6ded71_3f99_46c5_9362117beb502a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn); // }} "" // {{{ 306 1 0 "8713fee4_6b93_4296_a5396254fd404d52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 307 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 308 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 309 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 310 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 311 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripGet") { // }} "" // {{ 312 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 313 1 0 "c4847ae5_e161_4f23_aa432eda22de28bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 314 1 0 "022a5cdd_3f4f_4e18_927c174fc57a68a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 315 1 0 "3e462067_5eb3_49c3_b7bf6a27de9ce3bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 316 1 0 "f7004881_3f0d_4621_a88d55dec8fc0d30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 317 1 0 "262b36ba_6d86_4009_bdc9a3881db7074e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 318 1 0 "be44b37f_7cec_4f69_81c223f2c30b120b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 319 1 0 "3dea3158_65f8_44bc_8d06a31ce3458dab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); // }} "" // {{{ 320 1 0 "308b2aa2_5970_4692_858049c6559d6ad0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 321 1 0 "756d0f81_3645_4a49_a0c2259581e11498" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 322 1 0 "cdbf11ba_b1f8_4016_811240a02705f1fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{{ 323 1 0 "625df597_c6c8_4e4a_b956e9580bfbc568" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); // }} "" // {{{ 324 1 0 "3576d134_8507_4e47_9c2bcc3dce8c026d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 325 1 0 "5b9c06ad_9081_4b6b_97e50cc87623b888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 326 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 327 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 328 1 0 "d1f3c2ac_9c68_4200_a3506bbbed8e42a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 329 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 330 1 0 "f1d1c43b_a9dd_4573_a69dd7c0e79eea40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 331 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 332 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 333 1 0 "4d304110_107e_412e_909bb84008a244de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 334 1 0 "8f8b1ba1_af12_4cdd_acf2096420ede259" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{ 335 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 336 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 337 1 0 "72e31f7d_c091_4525_a5cf7001754b199d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 338 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 339 1 0 "47dfcbb5_d784_48bb_b36b97509434a3a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 340 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 341 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 342 1 0 "e6c53925_446e_468e_b0e0654b4b9d9a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 343 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 344 1 0 "c0cbb194_1b8b_4fe0_a0f706e03eaa0748" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 345 1 0 "46703217_a28e_42ce_b13c11d73ba34bfa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn); // }} "" // {{{ 346 1 0 "189164cc_2681_492f_83f072fb537648b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn); // }} "" // {{{ 347 1 0 "c8d6960a_f416_47b1_a29e2752973c0ec9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 348 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 349 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 350 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 351 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripMove") { // }} "" // {{ 352 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 353 1 0 "5755c338_faa3_4f0a_9acd4cd01a912862" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 354 1 0 "2849c819_a3dc_4328_8484ccc4785993d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 355 1 0 "32f0a8f9_3af2_42a3_90f246cc874e0e8f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 356 1 0 "791b6e1a_07b8_49cb_8122670d0871189f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 357 1 0 "036d0d84_e161_4b03_8b828dcb6b44e437" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{ 358 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 359 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 360 1 0 "e038f780_938f_4867_98f769488ca44b04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 361 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 362 1 0 "6bd2d2a1_1051_4443_a1af9b68df2876b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{{ 363 1 0 "3d8767e5_5f31_4ce5_91a11e28045ec87a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 364 1 0 "e9e0b38e_13aa_40f9_8e470eb1de09eb19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("wrong"), Translate("nowwrongere")); // }} "" // {{ 365 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 366 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 367 1 0 "064a5c1b_f450_44d6_a2042ebde115527d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 368 1 0 "ee8b8050_164a_4de8_b6ce02120236efbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 369 1 0 "be0898fe_cdb8_4ac3_a9e991e26bdb6658" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here"), Translate("now here")); // }} "" // {{ 370 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 371 1 0 "ca4b75ee_26d9_4a3b_8e3366d575348125" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 372 1 0 "ea0afc75_5bc7_4c06_ac73c2f4d5f887a0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 373 1 0 "1965d128_c7f1_4206_87e4ca1ce70c1dff" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 374 1 0 "615cbdd3_e5f2_4bc0_bb3661a2482eb770" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 375 1 0 "86fc0696_8c53_4c05_a9c0eaa58f279054" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 376 1 0 "90f602a1_fdc5_48fd_801269ecd2c3f9bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn); // }} "" // {{{ 377 1 0 "dc418b75_2d70_4034_84a767fba752b262" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn); // }} "" // {{{ 378 1 0 "ae4414d3_a939_4fdb_a0ed06f1be1506e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here here"), Translate("nohhere")); // }} "" // {{{ 379 1 0 "6379549c_caf9_409f_b293abf77f1dcfbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 380 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 381 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 382 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 383 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripPlace") { // }} "" // {{ 384 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 385 1 0 "6f38d60b_6dc5_4159_ba30360f264222da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 386 1 0 "b6ef73cf_c89c_41cc_a3b72dc5aaf70f90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 387 1 0 "c7e5f5bd_edcc_4000_9be3db81af0c79fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 388 1 0 "91ff4c39_6a86_4eda_998a5461ef6c3cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 389 1 0 "341a6f8e_b4c8_4966_b9520322d1bc2e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 390 1 0 "32792c80_3b36_4a25_8fff6b99bfcf1919" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); // }} "" // {{{ 391 1 0 "b1e5d86e_c659_4d33_9e0f83fdb20b2cb5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 392 1 0 "76b26748_4e74_45f7_85a7dc102b5fd7b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); // }} "" // {{{ 393 1 0 "ee221e8a_a662_49d8_be2ef0ed631d9527" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 394 1 0 "cbefd54c_5f0a_4a16_a0199198529b71fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 395 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 396 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 397 1 0 "ac4e7090_c3c7_4707_8d98dc55262c294b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 398 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 399 1 0 "eb5776ad_c858_4ee8_ba31f47af19e76af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 400 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 401 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 402 1 0 "1f3eb006_1b10_427e_99d0b530f1afc2ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 403 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 404 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 405 1 0 "a04c5993_bf3e_46c7_92f24c8236636b00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 406 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 407 1 0 "2455f68c_be4e_4a21_9e9e78f78f6e8e3c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 408 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 409 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 410 1 0 "ad5d98b0_9e3d_4275_90ceef06ceca045d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 411 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 412 1 0 "3321537f_63fb_48a4_90e40a2fee1cc432" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 413 1 0 "8c7e60df_f040_45c6_a939d99bcd0ac23c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn); // }} "" // {{{ 414 1 0 "24e589a9_98d7_429d_90c8afe203e96ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn); // }} "" // {{{ 415 1 0 "9d94d038_d071_4339_aaace5a2e455b240" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 416 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 417 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 418 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 419 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 420 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 421 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGet") { // }} "" // {{ 422 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 423 1 0 "4a585a30_3a23_44cc_a0948963de716cba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 424 1 0 "da3a318b_1208_4329_be1faae95ecc2e03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 425 1 0 "1f51589f_347c_497b_a7338461d92076d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 426 1 0 "622e6765_4ee3_4df5_917ca140f8b7981b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 427 1 0 "9826612b_e564_4231_8f83fdfcbd374bdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 428 1 0 "fdb52557_ae6c_42b3_925073ab7ae7a5ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 429 1 0 "171639e0_98ad_4857_a5ac346039499a33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 430 1 0 "0d4077af_b1dc_4dea_a23a163c57d96248" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 431 1 0 "60732b74_8870_48e2_be03564159cf35b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("inverseGrip"), inverseGrip); // }} "" // {{{ 432 1 0 "ffa21840_da03_4682_b62a6910caf63f45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 433 1 0 "0af9b15f_4e1b_4353_a6261def96fea256" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{{ 434 1 0 "c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 435 1 0 "74d93b97_5d7f_4593_9aeb9d83d5466e6f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{{ 436 1 0 "28d636c0_47c0_4fac_8a7b67124fd8b9f5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 437 1 0 "6f62025f_9dde_4ae6_a6b6b69efed6e381" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("tolerance"), tolerance); // }} "" // {{{ 438 1 0 "f3d51abd_651e_4b15_93eb0cea0c0384be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 439 1 0 "1b72eb1e_c220_42e0_9a34675ddc971fe7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{ 440 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 441 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 442 1 0 "fd3fbb06_b08e_4790_8e3b785ca1f8ed4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 443 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 444 1 0 "87331d5f_01ff_43a8_a0a06487f28bb2b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 445 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 446 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 447 1 0 "5f12c00c_48c1_4e2f_a24b4ba435343a8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 448 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 449 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 450 1 0 "d3e5718a_eb78_4c1f_a6467f61ccbe82df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 451 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 452 1 0 "8ebcf09f_a943_4769_b3c659e368019a32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, lidSeq); // }} "" // {{ 453 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 454 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 455 1 0 "8ce5efe3_4525_4c77_bb64f9d8dcfb6a62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 456 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 457 1 0 "8ac111e1_df50_4fcb_b465e737713459d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn); // }} "" // {{{ 458 1 0 "d9104246_d843_4a6d_85a64aa07d019020" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Get - step return :"), o_stepReturn); // }} "" // {{{ 459 1 0 "7831c2d8_4b59_455a_a0dc5cae20f325a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 460 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 461 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 462 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 463 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapMove") { // }} "" // {{ 464 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 465 1 0 "3c315cea_4ff8_4efa_8e4a5cc86a9d84d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 466 1 0 "4e2cf15d_267b_47e0_895c36b714787e13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 467 1 0 "24d68fc9_cd59_471b_9c663c4121d1a931" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{ 468 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 469 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 470 1 0 "d372f898_6d32_4d80_ab4d58340d18681d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 471 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 472 1 0 "9e573132_bd29_4d08_a1784d0e26c48700" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 473 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 474 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 475 1 0 "48db1de6_2a87_4224_b1f13fa2a75b490a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 476 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 477 1 0 "1e8e9562_41c0_4df5_9de945c44d1e8d61" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn); // }} "" // {{{ 478 1 0 "a5de7c97_d49c_4f04_b1414f1aaace7f84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Move - step return :"), o_stepReturn); // }} "" // {{{ 479 1 0 "6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 480 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 481 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 482 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 483 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPlace") { // }} "" // {{ 484 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 485 1 0 "18e9697d_0efb_4840_94a65e2a82b4ca69" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 486 1 0 "b0c35970_122b_4119_92c3801f4b8e980b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 487 1 0 "6ed697af_a110_4104_941633e154ff0071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 488 1 0 "fec1982e_3636_412d_af2eda243438f7ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 489 1 0 "21de27ac_9dc3_415b_b1d1e49e80c53591" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 490 1 0 "652aeaa7_9a2f_4c11_8bc1fc58a97ffed7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 491 1 0 "e88a5df4_d9ad_4231_89a5a03f88d0ce77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 492 1 0 "8c5aee51_3156_4fcc_b1b167552b73476f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 493 1 0 "8c257b39_8c0b_410d_a4a4e38df904008c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 494 1 0 "91e9f4c6_b7fe_4b15_83c830df3385398a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{ 495 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 496 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 497 1 0 "226bb6d1_37a1_4076_9d96fb9df69c6068" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 498 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 499 1 0 "ec2fd48b_eab9_491e_867c0fc335eea81c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 500 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 501 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 502 1 0 "e590d9b6_f690_48db_b0109a10c228d5ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 503 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 504 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 505 1 0 "82559320_1e13_40c9_b283fdfa804df6a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 506 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 507 1 0 "420daa28_bf45_407a_bd576559af75c5d0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 508 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 509 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 510 1 0 "3ed6b704_3649_4c7d_8e7d30bdb038feab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 511 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 512 1 0 "41a130e8_a745_4a20_b124272093bf38e7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn); // }} "" // {{{ 513 1 0 "b4bdf08c_e218_4bec_98c0f41e6ec3a218" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Place - step return :"), o_stepReturn); // }} "" // {{{ 514 1 0 "346b983b_d261_4447_a7cebf782db4b4d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 515 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 516 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 517 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 518 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPark") { // }} "" // {{ 519 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 520 1 0 "73602d5e_7f8d_45dc_9c1f21d41c39d0bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("showCollisionCheckDialog"), showCollisionCheckDialog); // }} "" // {{ 521 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 522 1 0 "acf5767a_7e39_4072_8e062928938984cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{{ 523 1 0 "96b1bdf6_a3f3_4530_844fc77cbf7fb944" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 524 1 0 "d03fdac4_224f_4174_924fb518a623bf65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 525 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 526 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 527 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 528 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGetFirst") { // }} "" // {{ 529 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 530 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 531 1 0 "5f9f4b8d_3b3a_48ee_89ef334a70dcb72e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{ 532 1 0 "65648900_32b3_4035_9eb5916a3314f7e9" "ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}" { variable arrRetValues[]; arrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40("65648900_32b3_4035_9eb5916a3314f7e9"); // GetFirstPlatePosition } // }} "" // {{{ 533 1 0 "63380bb7_5afe_4d65_9dc5cdf334590b4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 534 1 0 "cdb18c48_14d5_430d_9f7202f782e069da" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 535 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 536 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 537 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 538 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 539 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "FirmwareCommand") { // }} "" // {{ 540 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 541 1 0 "5f5e5c89_0c1a_497b_80c550dbc4676208" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate("FirmwareCommandList")); // }} "" // {{ 542 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(CommandListElement = 0; CommandListElement < CommandListLength;) { CommandListElement = CommandListElement + 1; // }} "" // {{{ 543 1 0 "2c2e9953_5968_4384_8b2dad24b0960278" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate("FirmwareCommandList"), CommandListElement, FirmwareCmdDict); // }} "" // {{{ 544 1 0 "7f4d5cda_c10f_4317_ba7613cd10d2e90d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareCommand"), FirmwareCommand); // }} "" // {{{ 545 1 0 "cf155262_dfb4_46b4_aff762c7b4c18d8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareParameter"), FirmwareParameter); // }} "" // {{{ 546 1 0 "471df283_02f5_4daf_9c83999e3b1fd8e1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn); // }} "" // {{{ 547 1 0 "0b8e6d49_655f_42a7_bcfdeac76a40c6e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 548 1 0 "f49f31b3_d742_44ae_a6a076108c3f9ab4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 549 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 550 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 551 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 552 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 553 1 0 "193ad70f_ec03_47e5_b1f5ef9ff75805c0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 554 1 0 "a6d59995_3a30_4946_95b7dcf44c93cadd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "copyLiquidClass") { // }} "" // {{{ 555 1 0 "41d16181_0a85_4371_9ae49a51f5c69915" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("TemplateLiquidClass"), TemplateLiquidClassName); // }} "" // {{{ 556 1 0 "779a8c47_ee6a_4c72_89654140941f787a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("NewLiquidClass"), LiquidClassName); // }} "" // {{ 557 1 0 "a93bead5_0f4a_4083_a5e817513285742a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_882F8F1E3A2F447c9FE7F12AEB05BF0C ; err.Clear(); // }} "" // {{{ 558 1 0 "cfb86e51_5d1c_4fe8_8810b86541625fc8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLibrary::CopyLiquidClass(TemplateLiquidClassName, LiquidClassName); // }} "" // {{{ 559 1 0 "0fac8714_36cf_47b9_b066043de7021ea6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLibrary::SetStateOriginalLiquid(LiquidClassName, 0); // }} "" // {{{ 560 1 0 "dc932277_63ec_4be0_953e75a4baa49dc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLibrary::SetTadmMode(LiquidClassName, 1); // }} "" // {{ 561 1 0 "7903d8fa_3f98_482b_9fb44edbd3d235fc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 562 1 0 "a93bead5_0f4a_4083_a5e817513285742a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_882F8F1E3A2F447c9FE7F12AEB05BF0C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 563 1 0 "528f29aa_bc83_4e13_ab0f3bc6526d3a12" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 564 1 0 "a93bead5_0f4a_4083_a5e817513285742a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 565 1 0 "cde4b119_f65c_419c_a2599a95bffb28b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Liquid Class Set Parameter:"), o_stepReturn); // }} "" // {{{ 566 1 0 "63bf8781_1185_4c67_a95fc4396010439c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 567 1 0 "a6d59995_3a30_4946_95b7dcf44c93cadd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 568 1 0 "5861a5ed_1f9d_48fc_9f3d976bc1a13751" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "setAspirateParam") { // }} "" // {{{ 569 1 0 "d741f062_6b73_4365_ad9c8646a016138d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LiquidClass"), LiquidClassName); // }} "" // {{{ 570 1 0 "86836193_1dcb_460e_8db2dda6b775abd9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Parameter"), LiqClassParameterName); // }} "" // {{{ 571 1 0 "d94798d1_53c6_40de_b72c239404c94352" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Value"), LiqClassParameterValue); // }} "" // {{ 572 1 0 "cca3a5d2_6d84_4105_a976a70a83585972" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E1EAD148F3254941A251DC272F774AB4 ; err.Clear(); // }} "" // {{{ 573 1 0 "3f31be32_d184_4c20_a5127e5057f15149" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SelectLiquidClass(LiquidClassName); // }} "" // {{{ 574 1 0 "b75ad951_95b1_4114_864093345ffb2cdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SetLiquidClassAspirateParameter(LiqClassParameterName, LiqClassParameterValue); // }} "" // {{ 575 1 0 "a39ebf7f_8e12_47a6_aad54fd2890ba779" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 576 1 0 "cca3a5d2_6d84_4105_a976a70a83585972" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E1EAD148F3254941A251DC272F774AB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 577 1 0 "a14cc465_549a_4722_b3fb08ce2532a405" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 578 1 0 "cca3a5d2_6d84_4105_a976a70a83585972" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 579 1 0 "ec08039a_3b70_4854_894d57c13ffdc877" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 580 1 0 "5861a5ed_1f9d_48fc_9f3d976bc1a13751" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 581 1 0 "e9ac7022_fc3f_44ac_8d28a604227a3b1c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "setDispenseParam") { // }} "" // {{{ 582 1 0 "727ea790_c588_42b9_949801d8ebfe748a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LiquidClass"), LiquidClassName); // }} "" // {{{ 583 1 0 "f681f66f_1f4f_4e6a_9954420280b6eab1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Parameter"), LiqClassParameterName); // }} "" // {{{ 584 1 0 "59ff79d3_7b20_428d_a6f03bd61c3facc9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Value"), LiqClassParameterValue); // }} "" // {{ 585 1 0 "974491c1_043a_4905_8c29cf1701a05565" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_378C1B7A6F844a988D3A94047A45C979 ; err.Clear(); // }} "" // {{{ 586 1 0 "2beb1d1d_1186_4f0d_a80275cbe08520fe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SelectLiquidClass(LiquidClassName); // }} "" // {{{ 587 1 0 "29652115_b77d_4b91_914ffcbb9cdcc21e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SetLiquidClassDispenseParameter(LiqClassParameterName, LiqClassParameterValue); // }} "" // {{ 588 1 0 "52c4987a_feb1_4165_81763692ae2516b7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 589 1 0 "974491c1_043a_4905_8c29cf1701a05565" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_378C1B7A6F844a988D3A94047A45C979 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 590 1 0 "2eeb25d7_e592_4cb6_bc81cd0abc164d9f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 591 1 0 "974491c1_043a_4905_8c29cf1701a05565" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 592 1 0 "32d67fc0_3a9e_4528_9bcb1a5399c4707e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Liquid Class Set Parameter:"), o_stepReturn); // }} "" // {{{ 593 1 0 "f0192156_aca5_482d_bedd1ddeb7c7784e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 594 1 0 "e9ac7022_fc3f_44ac_8d28a604227a3b1c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 595 1 0 "a8b990cc_5893_46e5_9cc0f888fe39fae8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "setTipType") { // }} "" // {{{ 596 1 0 "4aa7b9ce_fd73_4a55_9a3c704bfb4c443d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LiquidClass"), LiquidClassName); // }} "" // {{{ 597 1 0 "2daab960_ba75_4c1e_94dea77f1c34330e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TipType"), tipType); // }} "" // {{ 598 1 0 "cee50056_b4b0_473b_8d775dd178dab21d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3A18CA152B674dd3A42B81C4D45F719E ; err.Clear(); // }} "" // {{{ 599 1 0 "b471ff31_4fdd_4a9f_87431e5741a9b969" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SelectLiquidClass(LiquidClassName); // }} "" // {{{ 600 1 0 "2a8e2856_535d_4806_bbe42ffb4cd0d2f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLibrary::SetLiquidClassTipType(LiquidClassName, tipType); // }} "" // {{ 601 1 0 "28e95405_685a_4032_b361461ff897189f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 602 1 0 "cee50056_b4b0_473b_8d775dd178dab21d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3A18CA152B674dd3A42B81C4D45F719E : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 603 1 0 "c7174915_16fd_40d8_b94eac8999f4eab7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 604 1 0 "cee50056_b4b0_473b_8d775dd178dab21d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 605 1 0 "d805e811_a796_44e9_93839b02b6d05f1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Liquid Class Set Parameter:"), o_stepReturn); // }} "" // {{{ 606 1 0 "da31069e_a165_4c2e_b95619cb57c4ae8a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 607 1 0 "a8b990cc_5893_46e5_9cc0f888fe39fae8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 608 1 0 "15824553_aa4e_4fcc_a2977b38faacf6bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "setDispenseMode") { // }} "" // {{{ 609 1 0 "53fea63c_3332_43fe_8289429227ec0090" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LiquidClass"), LiquidClassName); // }} "" // {{{ 610 1 0 "0595c7cc_b48b_4b94_8afdbfa04c5de730" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DispenseMode"), dispenseMode); // }} "" // {{ 611 1 0 "6c80418a_3204_4d66_85ab76ffbc47616a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3E8EB1A8287A454aB98F789757170AA7 ; err.Clear(); // }} "" // {{{ 612 1 0 "77ba368e_204a_47b6_adf9b0029a775fd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SelectLiquidClass(LiquidClassName); // }} "" // {{{ 613 1 0 "ced90b64_50ef_4921_971bc961bc61ca83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLibrary::SetLiquidClassDispenseMode(LiquidClassName, dispenseMode); // }} "" // {{ 614 1 0 "ad07ca17_ee17_45de_8ed922b7ba5da46a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 615 1 0 "6c80418a_3204_4d66_85ab76ffbc47616a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3E8EB1A8287A454aB98F789757170AA7 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 616 1 0 "7f31078d_254b_45ce_8e8a0640c9a5f542" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 617 1 0 "6c80418a_3204_4d66_85ab76ffbc47616a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 618 1 0 "0ed767ae_94e8_44b4_b195b90ced2f0a3b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Liquid Class Set Parameter:"), o_stepReturn); // }} "" // {{{ 619 1 0 "ab9ead1b_c4ea_4c3f_86734e292bf22f90" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 620 1 0 "15824553_aa4e_4fcc_a2977b38faacf6bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 621 1 0 "6e13030b_52d4_46d9_8b97a18bfa928ceb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "setCorrectionCurve") { // }} "" // {{{ 622 1 0 "acf6e2bc_4dd4_4df8_a5979c36e517d9a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LiquidClass"), LiquidClassName); // }} "" // {{ 623 1 0 "80a6e332_7817_4402_95ec1a52d3aeeadc" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_D2A2FEF9E80041369965564F6E773155 ; err.Clear(); // }} "" // {{{ 624 1 0 "6f21f996_18ec_41c5_8e819c3ec7c94e51" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SelectLiquidClass(LiquidClassName); // }} "" // {{{ 625 1 0 "c7459fcb_44b2_425b_95781b4a5efd8ee5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildCorrectionCurve(o_CorrectionCurveNominal, o_CorrectionCurveCorrected); // }} "" // {{{ 626 1 0 "d7541b18_c055_41bb_962867fe18557fc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLibrary::SetCorrectionCurve(LiquidClassName, o_CorrectionCurveNominal, o_CorrectionCurveCorrected); // }} "" // {{ 627 1 0 "e1d079ad_fe86_4da4_85f19e2f495b5725" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 628 1 0 "80a6e332_7817_4402_95ec1a52d3aeeadc" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_D2A2FEF9E80041369965564F6E773155 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 629 1 0 "4c552221_44c7_4dc6_9b4873e90826b521" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 630 1 0 "80a6e332_7817_4402_95ec1a52d3aeeadc" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 631 1 0 "e97b5df0_64fd_4af8_931944393d5ab474" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Liquid Class Set Parameter:"), o_stepReturn); // }} "" // {{{ 632 1 0 "28863a6d_6ab7_4fcb_8e6ce9e6de041625" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 633 1 0 "6e13030b_52d4_46d9_8b97a18bfa928ceb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 634 1 0 "193ad70f_ec03_47e5_b1f5ef9ff75805c0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 635 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 636 1 0 "2777cb67_3095_437b_9b54d34ead8fcab2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 637 1 0 "c397d56d_00f8_4e32_bf71c20e91dcac17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ConnectIP") { // }} "" // {{{ 638 1 0 "b450ee5c_4bce_435e_b562523f18ce0142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("InstrumentName"), InstrumentName); // }} "" // {{{ 639 1 0 "13c30b43_9a94_4cd1_a907aa21f01057cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PortNumber"), PortNumber); // }} "" // {{{ 640 1 0 "68ec12ae_0e01_4827_9460e39fddef7f4d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 641 1 0 "7c482f87_e50a_44d8_88516cf7d087dbde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MPEOptions"), MPEOptions); // }} "" // {{{ 642 1 0 "8d4e01b7_ef9e_4570_a2e08f31ecacc259" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingIP(InstrumentName, PortNumber, SimulationMode, MPEOptions, DeviceID, o_stepReturn); // }} "" // {{{ 643 1 0 "005f0b12_4fb1_48ba_bcfeb961b9419149" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeviceID = StrIStr(DeviceID); // }} "" // {{{ 644 1 0 "51077fef_f212_48a6_8f6c43d7d5f5df97" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 645 1 0 "97ff097f_9089_4ac0_82438cbd6f0a9c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Translate(""), Translate(""), id); // }} "" // {{ 646 1 0 "c397d56d_00f8_4e32_bf71c20e91dcac17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 647 1 0 "2777cb67_3095_437b_9b54d34ead8fcab2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 648 1 0 "62a26733_db4f_440f_9fb51db5fef61711" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 649 1 0 "0098c030_fe6b_49bb_92b77ef5a5c7372d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ConnectCOM") { // }} "" // {{{ 650 1 0 "e8776203_e1ed_4373_8a427cb0d8b8d29f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ComPort"), ComPort); // }} "" // {{{ 651 1 0 "4c600ed2_a490_4f3e_bdadfe3b174db193" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("BaudRate"), BaudRate); // }} "" // {{{ 652 1 0 "e77abf5c_e94e_469b_82ea0f774615a671" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 653 1 0 "aaebc2c7_eafc_456e_83386035ed203694" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MPEOptions"), MPEOptions); // }} "" // {{{ 654 1 0 "3b2a8a1c_5b74_4668_b7a5ca974a7658b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingCOM(ComPort, BaudRate, SimulationMode, MPEOptions, DeviceID, o_stepReturn); // }} "" // {{{ 655 1 0 "1a9f7ef9_8c04_4517_8d26efaa81d3eff7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 656 1 0 "104f0498_cc9f_4508_8f28e3b53675ef53" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 657 1 0 "0098c030_fe6b_49bb_92b77ef5a5c7372d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 658 1 0 "62a26733_db4f_440f_9fb51db5fef61711" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 659 1 0 "94f49f46_ad96_4874_9148653f8fa3302e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 660 1 0 "1abd6ad0_87b9_4459_b74e20f9717ebd2b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ClampFilterPlate") { // }} "" // {{{ 661 1 0 "bdc39916_5944_49a4_846784d94f27267f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 662 1 0 "cf252c80_073f_4e8b_85e84a546e80666b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ClampFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 663 1 0 "16a9c218_a7c3_403c_a7c005e96566f8d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 664 1 0 "de8afcf3_ec32_4067_895aceb7a7a650eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 665 1 0 "1abd6ad0_87b9_4459_b74e20f9717ebd2b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 666 1 0 "94f49f46_ad96_4874_9148653f8fa3302e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 667 1 0 "d19e0aae_3b5d_4b88_9b9fa6cd22d67f22" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 668 1 0 "421097a4_a57a_4dec_8b9257b5d77233e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_CollectionPlatePlaced") { // }} "" // {{{ 669 1 0 "ae857f70_e319_4ada_a8b086f120e84247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 670 1 0 "a173d887_781c_4262_9fa6c81e253bd32c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CollectionPlateHeight"), CollectionPlateHeight); // }} "" // {{{ 671 1 0 "7e167a7c_dfb2_4798_814039b7430ccbae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("OffsetFromNozzles"), OffsetFromNozzles); // }} "" // {{{ 672 1 0 "aa2d8e6c_c878_40f1_a1325cb8fe399514" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlatePlaced(DeviceID, CollectionPlateHeight, OffsetFromNozzles, o_stepReturn); // }} "" // {{{ 673 1 0 "6ad949b9_e02e_4686_be660950f5282aee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 674 1 0 "99fa8dd5_ac5f_4d13_91fb69b65d2bc0ea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 675 1 0 "421097a4_a57a_4dec_8b9257b5d77233e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 676 1 0 "d19e0aae_3b5d_4b88_9b9fa6cd22d67f22" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 677 1 0 "21b7e081_f229_400f_9a51a8b8a5412447" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 678 1 0 "b7625009_1717_4db6_8d24209ff3b8dbb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_CollectionPlateRemoved") { // }} "" // {{{ 679 1 0 "fc436f5c_aaba_4906_a4074c83d00f028c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 680 1 0 "65ba4a03_7064_45c5_8ae9ffb86a3234b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlateRemoved(DeviceID, o_stepReturn); // }} "" // {{{ 681 1 0 "39ef177a_96d2_411f_97c648ff2ed91ea8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 682 1 0 "cbdb85be_569e_40cb_93e3582de4fd718f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 683 1 0 "b7625009_1717_4db6_8d24209ff3b8dbb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 684 1 0 "21b7e081_f229_400f_9a51a8b8a5412447" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 685 1 0 "38689ea3_dc56_4d7c_88d585797b9d957e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 686 1 0 "ee3d4b03_3d8c_4718_9f927c1855c7346e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Disconnect") { // }} "" // {{{ 687 1 0 "acfb16ed_a9d1_4a63_a9c0106aff00758d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 688 1 0 "f0cbe63d_fe07_4cc6_8bcb70bf9c7de9ec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn); // }} "" // {{{ 689 1 0 "b23baddd_cdbc_45fd_8c093ab349a937f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 690 1 0 "1695a8ad_2f0f_48a1_a9d8534daaa45c88" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 691 1 0 "ee3d4b03_3d8c_4718_9f927c1855c7346e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 692 1 0 "38689ea3_dc56_4d7c_88d585797b9d957e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 693 1 0 "45f798d0_f63a_4141_9f0512725c85b742" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 694 1 0 "3d8efec9_ac55_4f4d_90f0259610f7394d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Dispense") { // }} "" // {{{ 695 1 0 "d9eb3796_7e12_47f9_b6636e222cb5d878" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 696 1 0 "b1b7d9a5_44ce_4588_b1315c2c2c0a6d6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 697 1 0 "e9efebdb_3e29_4a1f_9a03447005f6b247" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 698 1 0 "6812297a_3eee_4055_8de5373a96f6eb0c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 699 1 0 "b6c33a7b_d31f_4f02_8921532db5005869" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), NeedleOffset); // }} "" // {{{ 700 1 0 "f78d0de5_185c_4061_ad416fe94f5dba58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn); // }} "" // {{{ 701 1 0 "01ebd08b_bf22_4edc_b4101325c0ed5d7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 702 1 0 "46be0614_7064_45bf_962fe4fdb2d26ad3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 703 1 0 "3d8efec9_ac55_4f4d_90f0259610f7394d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 704 1 0 "45f798d0_f63a_4141_9f0512725c85b742" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 705 1 0 "c0d12f62_bf0c_4968_8cf8102df9290745" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 706 1 0 "e0397cd6_5fd2_4820_953df1804d2989f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Evaporate") { // }} "" // {{{ 707 1 0 "eff0d502_cbda_4d56_a060ee98b8acfa1b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 708 1 0 "358b8e75_dcca_4656_8f480e051d9768ac" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 709 1 0 "11f40dee_5289_4a85_b3065e4b85d93416" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 710 1 0 "e660629d_9388_44fa_9749984b17a66bc9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellDepth"), WellDepth); // }} "" // {{{ 711 1 0 "3a86a09d_a4ea_4a34_8573e644beb7c6a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 712 1 0 "6cc724c7_a4bf_4c46_948af3e23aaa8758" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 713 1 0 "6bba2cf9_561d_4a3f_87ee7949c7ce3fbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 714 1 0 "d305f425_1c51_43f7_9c5bd6ec76d64b05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 715 1 0 "e0397cd6_5fd2_4820_953df1804d2989f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 716 1 0 "c0d12f62_bf0c_4968_8cf8102df9290745" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 717 1 0 "54c61117_4dde_492d_91df73eafbdbdf0a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 718 1 0 "ea8576f1_52df_4787_b62e82c44a5b6131" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporatePrepare") { // }} "" // {{{ 719 1 0 "04b183eb_df7f_4775_a8db9b61d0822126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 720 1 0 "7ae5dae4_f3fe_42d9_b07c545e18248898" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 721 1 0 "67e84057_0c19_4600_b6bb1cda5b345f8d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 722 1 0 "31ab1ccb_49b6_45ab_886cb04421f727d1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellDepth"), WellDepth); // }} "" // {{{ 723 1 0 "f9f854b4_d03f_44fa_866ecad432e5ee59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 724 1 0 "0e37d7ed_b49b_42c3_b9306b90a8fbecba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 725 1 0 "bdc5441b_5578_4bb1_9a5511f8d6cb37a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 726 1 0 "82509201_581c_4a09_8c1fba65491074b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 727 1 0 "ea8576f1_52df_4787_b62e82c44a5b6131" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 728 1 0 "54c61117_4dde_492d_91df73eafbdbdf0a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 729 1 0 "f877f93d_359e_486f_aabbf156b38c0fd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 730 1 0 "be0cdb40_9439_44c4_9349319653177825" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporateEnd") { // }} "" // {{{ 731 1 0 "661eb571_7a3f_452f_8cd8e71af5633aa2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 732 1 0 "ce6d86eb_0d5e_4931_9b8ae8ab7b99d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 733 1 0 "407cb55f_f828_4adb_b9a1dcfb39934436" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_EvaporateEnd(DeviceID, Timeout, o_stepReturn); // }} "" // {{{ 734 1 0 "3281176b_4d2d_43ea_b218e196deacc5a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 735 1 0 "dc7eb698_c6ab_4bce_b2eae2a106e79c26" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 736 1 0 "be0cdb40_9439_44c4_9349319653177825" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 737 1 0 "f877f93d_359e_486f_aabbf156b38c0fd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 738 1 0 "77175285_9bc0_458e_bdb99486afa263f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 739 1 0 "1d9fee0e_9129_4e05_9387d48ad64ce5b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporateWithRate") { // }} "" // {{{ 740 1 0 "f74fcc26_c2be_481c_9b4822ade43b6399" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 741 1 0 "d104e730_2dfe_46de_9499ec6975f6d3ba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 742 1 0 "ef36faf4_19fc_4253_92c3ba78e66fa81b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 743 1 0 "4e02e5d8_e2c2_421e_9e232b4b54ffc755" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("EvaporateTravelDistance"), EvaporateTravelDistance); // }} "" // {{{ 744 1 0 "d5f4fc63_608e_48f5_be8989e9f0ed73d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 745 1 0 "ce2ba2cc_4f8f_4960_a2120a80bdee1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FollowRate"), FollowRate); // }} "" // {{{ 746 1 0 "72651c9a_a411_472d_9fbc4d5cf13dbe7f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 747 1 0 "6d1ded15_26bd_4832_a66e0a7ed7ae5de8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 748 1 0 "24da9a05_6ec1_4a5d_aa357161406c5b4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 749 1 0 "1d9fee0e_9129_4e05_9387d48ad64ce5b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 750 1 0 "77175285_9bc0_458e_bdb99486afa263f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 751 1 0 "18d62f91_3389_4a05_81dcd2b1f9f35eb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 752 1 0 "5517c3d2_626c_49ed_9f300f5eb7cad266" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterPlatePlaced") { // }} "" // {{{ 753 1 0 "6ad26884_293d_471f_87d63211dbb2130a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 754 1 0 "f712b14e_2361_4388_aaa3d1b6bdd76274" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FilterHeight"), FilterHeight); // }} "" // {{{ 755 1 0 "046c36b4_609e_41ad_802334b853237e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NozzleHeight"), NozzleHeight); // }} "" // {{{ 756 1 0 "9cd1e28f_9f73_4580_933330d72a187021" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_FilterPlatePlaced(DeviceID, FilterHeight, NozzleHeight, o_stepReturn); // }} "" // {{{ 757 1 0 "77cbd1e2_38c4_46cf_8a36d8bf2fd59668" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 758 1 0 "e9b09e36_5025_44eb_8a0241793ecb2130" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 759 1 0 "5517c3d2_626c_49ed_9f300f5eb7cad266" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 760 1 0 "18d62f91_3389_4a05_81dcd2b1f9f35eb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 761 1 0 "a8bdabef_328d_4914_85c9d5a5e206e280" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 762 1 0 "ba1982ca_d913_4372_a876d2c629a3da01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterPlateRemoved") { // }} "" // {{{ 763 1 0 "c8d80340_50aa_42c3_99a4c45d2c5a2e55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 764 1 0 "7ca7dac8_386f_4d72_a80c56436e8d337a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_FilterPlateRemoved(DeviceID, o_stepReturn); // }} "" // {{{ 765 1 0 "7815e103_9108_40ec_8c501ab868674b02" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 766 1 0 "7fab13f9_e6cb_4d15_9c7359f69f1452eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 767 1 0 "ba1982ca_d913_4372_a876d2c629a3da01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 768 1 0 "a8bdabef_328d_4914_85c9d5a5e206e280" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 769 1 0 "d93f150d_eae1_437f_a22a3b0c4c9072e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 770 1 0 "df5f2b51_da1c_47c3_83076cfc5952018e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Flush") { // }} "" // {{{ 771 1 0 "ebd897c5_30b8_4f3b_9955cc2c076a2cec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 772 1 0 "8a5b6ab5_73a5_448f_97d7f2f80f295781" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 773 1 0 "7618744c_4ba2_44a3_af152e17b8f23a82" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 774 1 0 "0b45dbd2_d2ac_4bbc_b063c7256c9e2f37" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 775 1 0 "7ebe8a95_b1cb_40d0_9bbf0caa753020ff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Flush(DeviceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn); // }} "" // {{{ 776 1 0 "f4745c1d_3edb_4f49_9389682fd5db4746" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 777 1 0 "84a474ac_82c0_447e_853e8a0e803cdc9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 778 1 0 "df5f2b51_da1c_47c3_83076cfc5952018e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 779 1 0 "d93f150d_eae1_437f_a22a3b0c4c9072e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 780 1 0 "117f1e32_da28_4bc8_ad90f5a4f2bef282" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 781 1 0 "467d4218_0310_4b7c_a0b5c6ba53779408" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetContainerCalibration") { // }} "" // {{{ 782 1 0 "8399e7aa_cf6e_40a4_94cbfd345e14133a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 783 1 0 "1b0cf945_ddeb_4f68_ad8567b71c28ba9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 784 1 0 "49eec349_8ea2_4006_8740931d862a8cc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetContainerCalibration(DeviceID, SourceID, CapacityVolume, EmptyReading, FullReading, CalibrationDate, o_stepReturn); // }} "" // {{{ 785 1 0 "c87d301f_8a12_4619_b911ef3098a17d58" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 786 1 0 "7e693f5e_19bf_4fe8_93ae99fb04f02aa3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CapacityVolume = StrFStr(CapacityVolume); // }} "" // {{{ 787 1 0 "8d684024_7a1e_41a0_aff0fbb060f288c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" EmptyReading = StrIStr(EmptyReading); // }} "" // {{{ 788 1 0 "e403fc76_66e2_4138_a91ad409fba41579" "{C1F3C015-47B3-4514-9407-AC2E65043419}" FullReading = StrIStr(FullReading); // }} "" // {{{ 789 1 0 "a338088c_aba6_4925_9499261419f3fd32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CapacityVolume, EmptyReading, FullReading, CalibrationDate, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 790 1 0 "467d4218_0310_4b7c_a0b5c6ba53779408" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 791 1 0 "117f1e32_da28_4bc8_ad90f5a4f2bef282" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 792 1 0 "28cc7be8_7ef9_43fd_a8b86cc9f0a88a77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 793 1 0 "883d189a_5580_49b9_92fa9f7ea0b841bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetHeaterStatus") { // }} "" // {{{ 794 1 0 "c3c00992_49fa_4e7a_930d860185676008" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 795 1 0 "a566cb57_a308_4f8d_ab4f730e5a7dcad6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Reset"), blnReset); // }} "" // {{{ 796 1 0 "6c9f1bfd_e7d9_49a3_9ffc43f57d0b87c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetCurrentHeaterStatus(DeviceID, blnReset, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, o_stepReturn); // }} "" // {{{ 797 1 0 "4e871da2_7414_4d04_af1133edc74f8ceb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 798 1 0 "17cbeaea_77c3_429f_852469beae65bff2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CurrentEvaporatorTemperature = StrFStr(CurrentEvaporatorTemperature); // }} "" // {{{ 799 1 0 "99e68adc_1ab2_44c2_99bb0d0791bb4b03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CurrentGasTemperature = StrFStr(CurrentGasTemperature); // }} "" // {{{ 800 1 0 "19ba4b88_434c_4874_adfb9c3ce28707c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Heating = StrIStr(Heating); // }} "" // {{{ 801 1 0 "8bfee3ed_2dfd_4096_95a3693ae02cb98b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 802 1 0 "883d189a_5580_49b9_92fa9f7ea0b841bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 803 1 0 "28cc7be8_7ef9_43fd_a8b86cc9f0a88a77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 804 1 0 "6161ab17_f584_4948_917386b1caf60999" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 805 1 0 "9f1343e7_8811_4e80_a8d30414ee14e3c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetHeaterRange") { // }} "" // {{{ 806 1 0 "ff106776_2ea1_4be4_bf299c1e9f4d6812" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 807 1 0 "d35c7d7b_4e20_4729_898cf76f032dbd77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Reset"), blnReset); // }} "" // {{{ 808 1 0 "eac04ccb_1d2f_4e47_a38e27549db3d0f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetHeaterTemperatureRange(DeviceID, blnReset, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, o_stepReturn); // }} "" // {{{ 809 1 0 "7e058389_5584_400d_af8f7683d9c64549" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 810 1 0 "cef6dc8b_b0ab_4b67_80965a20bad984a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumEvaporatorTemperature = StrFStr(MinimumEvaporatorTemperature); // }} "" // {{{ 811 1 0 "e95a4014_66ab_4bd9_9396f43fb303387c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumEvaporatorTemperature = StrFStr(MaximumEvaporatorTemperature); // }} "" // {{{ 812 1 0 "82d2e7b9_6b0f_4659_b3c4af2260f72b93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumGasTemperature = StrFStr(MinimumGasTemperature); // }} "" // {{{ 813 1 0 "9d086c63_6438_4455_839b70d859d33023" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumGasTemperature = StrFStr(MaximumGasTemperature); // }} "" // {{{ 814 1 0 "1c25f8f9_a087_4d7d_b537d06915cf733a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TargetTemperature = StrFStr(TargetTemperature); // }} "" // {{{ 815 1 0 "e0990ab5_662a_4046_a221118108390ad1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Heating = StrIStr(Heating); // }} "" // {{{ 816 1 0 "f32ac914_9488_4849_9b505cfae76c21a4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, Translate(""), Translate(""), id); // }} "" // {{ 817 1 0 "9f1343e7_8811_4e80_a8d30414ee14e3c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 818 1 0 "6161ab17_f584_4948_917386b1caf60999" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 819 1 0 "cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 820 1 0 "3be8b4d4_175f_4ea5_8a5c403023c23804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetPressureReadings") { // }} "" // {{{ 821 1 0 "d6ee9000_e96e_43ee_be294bac2de3cebd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 822 1 0 "62c2838f_1e9c_4f50_a8986bd6ab2e5735" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetPressureSensorReadings(DeviceID, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, o_stepReturn); // }} "" // {{{ 823 1 0 "9202b3b4_73ed_457a_8a0eb740d92668eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 824 1 0 "49fdda2e_2786_49cf_bbf53a56bb6cf951" "{C1F3C015-47B3-4514-9407-AC2E65043419}" InputPressureSensor = StrFStr(InputPressureSensor); // }} "" // {{{ 825 1 0 "5b345de1_5fff_4ef5_b48fac2958608067" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ManifoldPressureSensor = StrFStr(ManifoldPressureSensor); // }} "" // {{{ 826 1 0 "5083be24_6502_40dc_94e99eb7e72397de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HighPressureSensor = StrFStr(HighPressureSensor); // }} "" // {{{ 827 1 0 "c5d4f5bc_5388_4cac_a5c92cce84c5358c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LowPressureSensor = StrFStr(LowPressureSensor); // }} "" // {{{ 828 1 0 "93af4507_f837_4e4d_bd0cfa9d8f20db45" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 829 1 0 "3be8b4d4_175f_4ea5_8a5c403023c23804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 830 1 0 "cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 831 1 0 "8eb4fcd2_8586_4fdc_9eaa231938c2491c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 832 1 0 "fb5f809e_bea3_4152_8c23efc086a3f4c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetTemperatureRange") { // }} "" // {{{ 833 1 0 "04868a2f_2244_4262_b16ed3464405a2c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 834 1 0 "ac4b978a_8b0e_48c8_bfcc2cb81ada8852" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetTemperatureRange(DeviceID, MinimumTemperature, MaximumTemperature, o_stepReturn); // }} "" // {{{ 835 1 0 "878c4de8_f440_43d6_aa9a22d5f30c96bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 836 1 0 "9643b7dd_1445_4981_82306a0204482dcd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumTemperature = StrFStr(MinimumTemperature); // }} "" // {{{ 837 1 0 "5fb79249_c2be_45bc_a99aecb05a4cef34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumTemperature = StrFStr(MaximumTemperature); // }} "" // {{{ 838 1 0 "57512d47_ace9_4c17_a0287a31498292bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumTemperature, MaximumTemperature, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 839 1 0 "fb5f809e_bea3_4152_8c23efc086a3f4c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 840 1 0 "8eb4fcd2_8586_4fdc_9eaa231938c2491c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 841 1 0 "3f6b43d7_b3e1_4516_9a607047551e5f6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 842 1 0 "6be26021_e618_492e_8a3a5f94a52da0f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetVacuumStatus") { // }} "" // {{{ 843 1 0 "4db40245_36cd_40c8_b0602871bedce402" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 844 1 0 "cdd4bed1_2257_47d3_bb32dfb51dd99311" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetVacuumStatus(DeviceID, VacuumActive, o_stepReturn); // }} "" // {{{ 845 1 0 "434c4447_ccaa_4ae8_b5332ea4a5247979" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 846 1 0 "2758aebe_4437_4436_9ecd66602ecc20ea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" VacuumActive = StrIStr(VacuumActive); // }} "" // {{{ 847 1 0 "1a22fa96_1f2a_4efb_8d4d1070f05128b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, VacuumActive, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 848 1 0 "6be26021_e618_492e_8a3a5f94a52da0f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 849 1 0 "3f6b43d7_b3e1_4516_9a607047551e5f6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 850 1 0 "1fae7e92_6b1f_4f2a_8504e8aba7fe0846" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 851 1 0 "18c78d3a_83f1_4e2a_9721dc575c326856" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Initialize") { // }} "" // {{{ 852 1 0 "18e9c18e_3415_4f68_b3216e3a2bb3a082" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 853 1 0 "5335daba_8a63_418b_8286e19dbc73285e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Initialize(DeviceID, o_stepReturn); // }} "" // {{{ 854 1 0 "e9ab19e3_4828_4ead_93cb698560e3faff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 855 1 0 "67b12292_2128_495d_af7839b207477794" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 856 1 0 "18c78d3a_83f1_4e2a_9721dc575c326856" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 857 1 0 "1fae7e92_6b1f_4f2a_8504e8aba7fe0846" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 858 1 0 "d96ac0b7_1237_4603_ad86dfe4672ef89a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 859 1 0 "0addb922_82a5_48e4_bf52eeb97ac93f2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_InitializeWithParameters") { // }} "" // {{{ 860 1 0 "1c9e6c43_c0a4_4fa5_96eff1d2638b4426" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 861 1 0 "a9676aeb_9a8e_4f87_866088fd8da32782" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Smart"), Smart); // }} "" // {{{ 862 1 0 "b0f5b856_a01f_4937_bce0d90f8e48a0bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 863 1 0 "3d105105_b5a2_42bf_9008c50dfb529abf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("VacuumRunTime"), VacuumRunTime); // }} "" // {{{ 864 1 0 "1b067bb0_12d6_47c9_b86eb44ca7ac70a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 865 1 0 "abffb784_24c3_4278_9404e88b2a184ec3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 866 1 0 "7f31c229_eea4_4ebc_918ad520b4e80270" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 867 1 0 "0addb922_82a5_48e4_bf52eeb97ac93f2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 868 1 0 "d96ac0b7_1237_4603_ad86dfe4672ef89a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 869 1 0 "9e52a7cb_3167_4057_8d24d034c837de21" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 870 1 0 "5875c2d2_c94b_4860_9be1bc9f16bd64b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_SetSourceConfiguration") { // }} "" // {{{ 871 1 0 "77c0d7cc_1c53_47b5_af15f1eb5743701e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 872 1 0 "1150d6cb_b379_4fab_8bf98a17ac6ed92c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_SetSourceConfiguration(DeviceID, o_stepReturn); // }} "" // {{{ 873 1 0 "2ba32cb4_0177_497e_9a7f398e17134a01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 874 1 0 "a2b6bb52_3165_4bb9_986611d0b8594d1c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 875 1 0 "5875c2d2_c94b_4860_9be1bc9f16bd64b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 876 1 0 "9e52a7cb_3167_4057_8d24d034c837de21" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 877 1 0 "cf140f83_9405_4c31_aac2bda7e3c3644d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 878 1 0 "125ed949_ace4_48a0_a45208b5a26a9545" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetSourceConfiguration") { // }} "" // {{{ 879 1 0 "24cc9f9b_b984_4405_80b21f8bbad2c171" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 880 1 0 "105846b6_bda2_49d7_bb68c38e99c676ce" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetSourceConfiguration(DeviceID, o_stepReturn); // }} "" // {{{ 881 1 0 "8fd730db_f3ad_4187_819383f962b15dec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 882 1 0 "d5402a0c_e7d8_4021_98f2bc49164541bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 883 1 0 "125ed949_ace4_48a0_a45208b5a26a9545" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 884 1 0 "cf140f83_9405_4c31_aac2bda7e3c3644d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 885 1 0 "f0e280e8_46c7_4f0f_bce33a9d98578e01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 886 1 0 "656f66da_3ff6_4ceb_b3958dda3e826289" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_MeasureEmptyContainer") { // }} "" // {{{ 887 1 0 "23e6b66b_51c5_44d2_8107b570ab035bb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 888 1 0 "c791ded2_4daa_4097_811ad01cd9dbd85e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 889 1 0 "d4c8df90_fdb5_4fb4_a5ffe9e46525c9a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_MeasureEmptyContainer(DeviceID, SourceID, SensorReading, o_stepReturn); // }} "" // {{{ 890 1 0 "6766bf7d_aaa7_44dd_beb7bd1925733781" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SensorReading = StrIStr(SensorReading); // }} "" // {{{ 891 1 0 "f566d5c3_5839_4a53_aaa0e7e76d6a96d6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 892 1 0 "ca746d4d_adf9_4d6d_b0172f1cb9e3cefe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(""), Translate(""), id); // }} "" // {{ 893 1 0 "656f66da_3ff6_4ceb_b3958dda3e826289" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 894 1 0 "f0e280e8_46c7_4f0f_bce33a9d98578e01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 895 1 0 "5be53554_4034_4654_a74514eb0d84e4a0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 896 1 0 "ce68b054_3aea_4f0f_9742872cca60f368" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_MeasureFullContainer") { // }} "" // {{{ 897 1 0 "7ad49fa3_f8ed_4826_8c29ea54aff99447" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 898 1 0 "636296bf_cd25_4c6e_a97120b96714e0a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 899 1 0 "1025d7d1_0cb5_4c03_93a47206d7a73279" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_MeasureFullContainer(DeviceID, SourceID, SensorReading, o_stepReturn); // }} "" // {{{ 900 1 0 "14a2a705_9362_44f9_aacee14e4189bc2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SensorReading = StrIStr(SensorReading); // }} "" // {{{ 901 1 0 "64c67d08_dac7_49dc_8a3082c4658649d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 902 1 0 "08dbfd92_e2cd_4c53_8d8b8afb8f41b76a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(""), Translate(""), id); // }} "" // {{ 903 1 0 "ce68b054_3aea_4f0f_9742872cca60f368" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 904 1 0 "5be53554_4034_4654_a74514eb0d84e4a0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 905 1 0 "9e79226f_dd2d_49f1_9ab8ca9ddc07f66d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 906 1 0 "52fa4642_56e3_46b8_a5170d58a3d45e6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Prime") { // }} "" // {{{ 907 1 0 "d59e0e58_e6a4_49dc_b79c3b224f9250f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 908 1 0 "81800d57_5b2e_4f60_80fb02f54c6d898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 909 1 0 "6f11abee_b07f_4e3a_a91a2bb6132b9346" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 910 1 0 "65f68e8f_a3f8_4c0e_b02af46ef0830a94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 911 1 0 "92c62640_1748_47f5_a5b2d63033fab0fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 912 1 0 "bce1d424_198d_4a66_bb5cfcef4223a4c1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Prime(DeviceID, SourceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn); // }} "" // {{{ 913 1 0 "1d0fc35a_1e8f_492f_8115484ef5e4094c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 914 1 0 "7b33278e_8337_43df_80fb1df2dc8d7e27" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 915 1 0 "52fa4642_56e3_46b8_a5170d58a3d45e6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 916 1 0 "9e79226f_dd2d_49f1_9ab8ca9ddc07f66d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 917 1 0 "90d403df_555f_4782_bc0e9655c9dda244" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 918 1 0 "5d03c560_13d7_4f4a_97c5fcb059f5d281" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ProcessFilterToCollection") { // }} "" // {{{ 919 1 0 "327328cb_2c07_4cff_b99aff475bf220b0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 920 1 0 "c67ca153_084e_49de_aa07c55210f0743c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ControlPoints"), ControlPoints); // }} "" // {{{ 921 1 0 "3ccb3a1f_4958_435b_b896ebc512029a6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("ReturnPlate"), ReturnPlate); // }} "" // {{{ 922 1 0 "d9d5add8_e82e_4761_b5b96d5f19ec1723" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToCollectionPlate(DeviceID, ControlPoints, ReturnPlate, o_stepReturn); // }} "" // {{{ 923 1 0 "952f2d23_1b1e_4ff3_b0306759a52e52a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 924 1 0 "8d9318f1_ab21_410d_a9bfb449f75064ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 925 1 0 "5d03c560_13d7_4f4a_97c5fcb059f5d281" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 926 1 0 "90d403df_555f_4782_bc0e9655c9dda244" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 927 1 0 "8e0266d7_a3cc_479c_b67864f9bf0a850e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 928 1 0 "8d5a05ba_1847_47e1_9c2f5a7b692a6bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ProcessFilterToWaste") { // }} "" // {{{ 929 1 0 "45a60cc8_74a9_4d7c_9eae47c478baa5c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 930 1 0 "1549fe1a_4e94_418f_bb409f1556ef9241" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ControlPoints"), ControlPoints); // }} "" // {{{ 931 1 0 "6a1fdb1f_ef59_4c6d_998478bb54397381" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("ReturnPlate"), ReturnPlate); // }} "" // {{{ 932 1 0 "74579c6b_27e5_47a2_9358294506ae9b62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 933 1 0 "fbfbbfb6_9858_4eee_aecb1e386ef2ee6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 934 1 0 "e8ddd588_e12c_4e6a_9318d0626a183210" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToWasteContainer(DeviceID, ControlPoints, ReturnPlate, WasteContainerID, DisableVacuumCheck, o_stepReturn); // }} "" // {{{ 935 1 0 "104d821e_df7b_4d35_9358fdbad381b0c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 936 1 0 "930b1fd7_1382_4dd3_bec3f722282383d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 937 1 0 "8d5a05ba_1847_47e1_9c2f5a7b692a6bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 938 1 0 "8e0266d7_a3cc_479c_b67864f9bf0a850e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 939 1 0 "12fe0846_bf72_4286_8bd87488438262ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 940 1 0 "88ca5064_cc0c_42e8_8cf1b70855183b72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Disconnect") { // }} "" // {{{ 941 1 0 "469fd42b_7a31_4d98_91efb31d12064e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 942 1 0 "a37b4aa9_5d2f_4e3a_8134f806b1cc7204" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 943 1 0 "86edebb2_72b8_49f4_84f46c72b1cacaaa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 944 1 0 "d8835a8b_64ef_433a_8ca5a0a1a7302e05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 945 1 0 "88ca5064_cc0c_42e8_8cf1b70855183b72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 946 1 0 "12fe0846_bf72_4286_8bd87488438262ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 947 1 0 "0f50bc52_c930_4613_a737fe8df81950f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 948 1 0 "a4cfb4d0_9450_4bea_a67986a410d3d0ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_SaveContainerCalibration") { // }} "" // {{{ 949 1 0 "37f47b7e_5737_474b_907e35429bd3b21d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 950 1 0 "03cb3efd_4e78_47b4_8c863f235820287b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 951 1 0 "b4a3f09e_102f_45d2_a582493e7a8a228f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 952 1 0 "dce24d9b_3180_4f67_ab31767613c972ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 953 1 0 "a4cfb4d0_9450_4bea_a67986a410d3d0ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 954 1 0 "0f50bc52_c930_4613_a737fe8df81950f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 955 1 0 "1c67aaeb_23b3_4adc_8b6d8285f92b9619" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 956 1 0 "49d34248_b422_4716_b7759002c58bacb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StartContainerCalibration") { // }} "" // {{{ 957 1 0 "1a03095a_5902_4617_8f24e5d961eb85be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 958 1 0 "51b0d6df_b187_4cef_88ea5af60e98888f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 959 1 0 "c754fc8f_8a46_4c44_9ac4283328bd7a51" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Volume"), Volume); // }} "" // {{{ 960 1 0 "25291ac1_062d_4046_bf617e60aa36b67c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StartContainerCalibration(DeviceID, SourceID, Volume, o_stepReturn); // }} "" // {{{ 961 1 0 "bfce4774_8c8b_4403_8e0b05cc4d59500b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 962 1 0 "bc1476ec_35b7_4ec9_989c3db696569d39" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 963 1 0 "49d34248_b422_4716_b7759002c58bacb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 964 1 0 "1c67aaeb_23b3_4adc_8b6d8285f92b9619" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 965 1 0 "dbd9907a_199c_4651_90fe7cbb03cace83" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 966 1 0 "d748a994_8826_4dce_8d07e63e712b8463" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StartContainerCalibration") { // }} "" // {{{ 967 1 0 "6443322c_5eae_4730_a5933771d05f74fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 968 1 0 "0adc10ee_e236_40cc_851240df83158a48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 969 1 0 "661975a0_0aef_4017_bdd063beab2d6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Seconds"), Seconds); // }} "" // {{{ 970 1 0 "0e7caea8_5fcb_4b6c_954eb1ae00f391a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 971 1 0 "b681e1eb_fcbe_49e6_9116e45dfa6449ea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StartVacuum(DeviceID, WasteContainerID, Seconds, o_stepReturn); // }} "" // {{{ 972 1 0 "82d37b5c_3c66_495e_9db5a04e780cef4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 973 1 0 "182c0a15_8dbc_4c35_add3bac6dba81098" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 974 1 0 "d748a994_8826_4dce_8d07e63e712b8463" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 975 1 0 "dbd9907a_199c_4651_90fe7cbb03cace83" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 976 1 0 "4dfdb03a_1a13_4215_be00ca55de734fb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 977 1 0 "1d06fa20_af8b_41f5_b3f3daa03a904ebd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StopVacuum") { // }} "" // {{{ 978 1 0 "54fa31f5_5b7c_4668_927dc6f87a39b99e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 979 1 0 "0bf5dd1e_2e18_477b_adee0722aee70510" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StopVacuum(DeviceID, o_stepReturn); // }} "" // {{{ 980 1 0 "71f9a311_dfa0_4d62_8963c5c0ad21b5f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 981 1 0 "fe23d082_725d_444c_83290693ee1daf6a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 982 1 0 "1d06fa20_af8b_41f5_b3f3daa03a904ebd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 983 1 0 "4dfdb03a_1a13_4215_be00ca55de734fb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 984 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 985 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 986 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Initialize") { // }} "" // {{ 987 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 988 1 0 "6245a2d4_8148_417a_85b5d7c9ae63177a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 989 1 0 "5c0fe710_4afe_4b11_bf186cfe8dc87978" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{ 990 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 991 1 0 "110af9db_52cf_4a40_94724a7476c48d86" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn); // }} "" // {{{ 992 1 0 "af9bf513_7c00_47bf_aee50c7cdb333b5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Initialize: "), o_stepReturn); // }} "" // {{{ 993 1 0 "cf0a8758_8a16_429a_97f320a142945224" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 994 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 995 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StartTempControl") { // }} "" // {{ 996 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 997 1 0 "de87c5cd_92f6_45a8_9ebd6fe71ac65dbc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 998 1 0 "26949b4a_2c44_4548_8de048c4f48bd98d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 999 1 0 "8ae03ef4_8584_4957_a32601dc8599dadf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn); // }} "" // {{{ 1000 1 0 "934ba752_5ec3_489b_ae5a40dd1ea20440" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Start Temperature Control:"), o_stepReturn); // }} "" // {{{ 1001 1 0 "a3528747_6990_4387_8839b01b71c3b754" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1002 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1003 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1004 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_SetTarget") { // }} "" // {{ 1005 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1006 1 0 "55e81697_10a3_42fb_8777236a132ff0b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 1007 1 0 "0177c1a2_7380_4683_94ff93e2ed1299b2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1008 1 0 "15559e31_3f7a_4336_9cabca6758b7c253" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("TargetTemperature"), TargetTemperature); // }} "" // {{ 1009 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1010 1 0 "0dcffa9d_ea82_418b_be95240c1bfd0d77" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn); // }} "" // {{{ 1011 1 0 "e9b0b663_7dd3_4e55_b206572d2c8a92c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Set Target:"), o_stepReturn); // }} "" // {{{ 1012 1 0 "08ecb91c_e9c8_4c61_aca2c1f89fd97bab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1013 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1014 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StopTemperatureControl") { // }} "" // {{ 1015 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1016 1 0 "b67518d4_e443_4a8f_947e8c457680c63e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 1017 1 0 "045fda52_2303_4244_833066fb0005c21b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{ 1018 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1019 1 0 "1c8947fe_b7a1_455a_94e7672ad3593b08" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn); // }} "" // {{{ 1020 1 0 "285287f8_a3f9_43f0_9799c3ad98e59b9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco Stop Temperature Control:"), o_stepReturn); // }} "" // {{{ 1021 1 0 "88d1a80e_0aa9_4314_ba83bc772f71a589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1022 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1023 1 0 "e85120d2_0b88_4b5e_b37e002128567cbc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_GetTemperature") { // }} "" // {{ 1024 1 0 "ebf344f2_dcf5_4c81_a4ae7067b2ec0190" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1025 1 0 "391ca5a4_f7d3_4a99_86ff34fdacc1d77d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 1026 1 0 "06f8b4a9_d860_4c2d_af74b464bf671e7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1027 1 0 "a917eb9f_2e44_4f0a_b1e4a15cdac90f9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Selector"), selector); // }} "" // {{ 1028 1 0 "ebf344f2_dcf5_4c81_a4ae7067b2ec0190" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1029 1 0 "b52b6101_b5e9_4481_b85bc7e38d8c077a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_GetTemperature(DeviceID, ControllerID, selector, temperature, o_stepReturn); // }} "" // {{{ 1030 1 0 "79555af5_0e6e_48ed_b58b426b3fa726ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Terminate:"), o_stepReturn); // }} "" // {{{ 1031 1 0 "9df523bc_abf1_4a4c_ace23a567d372ae2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, temperature, Translate(""), Translate(""), id); // }} "" // {{ 1032 1 0 "e85120d2_0b88_4b5e_b37e002128567cbc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1033 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Terminate") { // }} "" // {{ 1034 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1035 1 0 "c963c353_41bc_4f4a_b74a666b28831950" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("StopAllDevices"), StopAllDevices); // }} "" // {{ 1036 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1037 1 0 "ea2ceb94_04fa_4204_96db2caf6871231f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn); // }} "" // {{{ 1038 1 0 "cd495cf5_43ff_4b30_b0baa1f2cd96cf0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Terminate:"), o_stepReturn); // }} "" // {{{ 1039 1 0 "bcce43cd_2b64_4caf_89bef8978a011dc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1040 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1041 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1042 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1043 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_Initialize") { // }} "" // {{ 1044 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1045 1 0 "d824843f_bf44_4e8b_bb434b50a8b65716" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 1046 1 0 "45b9f513_7eaf_4e63_ae92391c28cf15b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1047 1 0 "7f058eec_3092_45ce_862c43a3e0853c7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1048 1 0 "56a4490f_902b_4043_8172466a64e332bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Simulate"), Simulate); // }} "" // {{ 1049 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1050 1 0 "c44a492c_8123_465b_acd4ff374583777d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn); // }} "" // {{{ 1051 1 0 "a62df2e9_44bb_4099_a4d0597fbf0705de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Initialize:"), o_stepReturn); // }} "" // {{{ 1052 1 0 "de7bfb5a_b1fa_42ee_b461782a3c381af4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1053 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1054 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_MoveToPosition") { // }} "" // {{ 1055 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1056 1 0 "3092ee64_df80_4e56_b3cdffc0827e3c2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 1057 1 0 "4284a9cf_3ea6_42f5_ae1f62d82cd11ebe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Angle"), Angle); // }} "" // {{ 1058 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1059 1 0 "5b44092b_0faa_47ae_8005717c87a0f334" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn); // }} "" // {{{ 1060 1 0 "4d912417_89ed_44f2_941bfb44efed0e2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Move to Position:"), o_stepReturn); // }} "" // {{{ 1061 1 0 "0540bb67_399d_468d_853dd6ca4bb1c285" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1062 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1063 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1064 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1065 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "moveSequence") { // }} "" // {{{ 1066 1 0 "6e83eea3_8863_4ca0_9ff603380f0dc4d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("inputSequence"), inputSequence); // }} "" // {{{ 1067 1 0 "6b8903c6_6977_458a_8409f93724089454" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 1068 1 0 "77d9a84d_5987_4b3c_a76757ce15a19302" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 1069 1 0 "13c73535_4a98_49e2_ba1a02c30f02035b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 1070 1 0 "a33ebddb_88d8_4440_9a78132ed62d97f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, inputSequence, seq); // }} "" // {{{ 1071 1 0 "1dcc4914_aa2f_439e_8a2f431687c33852" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqFirstPosition = SeqGetPositionId(seq); // }} "" // {{{ 1072 1 0 "01f7bf35_3538_441d_98904fa827b05e68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 1073 1 0 "a37851fe_b9d0_42fa_9ccca7dd7b352a9c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{{ 1074 1 0 "fe9d84b8_86ec_4552_b187147351886cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqSecondPosition = SeqGetPositionId(seq); // }} "" // {{{ 1075 1 0 "5fa8b88a_cf88_49e1_8cb574503dc60e56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(seqFirstPosition, seqSecondPosition); // }} "" // {{{ 1076 1 0 "e590c4e1_91dd_41c0_82a254d4134fb734" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("First check"), Translate("Second check")); // }} "" // {{{ 1077 1 0 "2127d6de_e8bd_455a_88ad20e73b767061" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1078 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1079 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1080 1 0 "862dcce6_281b_41cb_8981fc71b8c79cb3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1081 1 0 "cdfa237b_f8b7_4287_9e37b3d87736cb2c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "setLabwareProperty") { // }} "" // {{{ 1082 1 0 "35e97b89_a76d_4606_81a9adb00f2d8bc5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LabwareID"), labwareID); // }} "" // {{{ 1083 1 0 "1d6ae5e3_94d4_431b_ab796dee414a4d07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("PropertyName"), propertyName); // }} "" // {{{ 1084 1 0 "cd182370_d62b_4ebc_8e3c35db68893b0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PropertyValue"), propertyValue); // }} "" // {{{ 1085 1 0 "6a22db04_3931_442f_9761fe45ccbc1ed4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" LPQ::ADJUST_SetPropertiesForLabwareID(ML_STAR, labwareID, propertyName, propertyValue); // }} "" // {{ 1086 1 0 "ce3ba160_7c18_40c8_9f0e30cc313e169c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{{ 1087 1 0 "684cf29d_e747_4b62_a3edd2256644b3e7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set labware ID"), Translate("")); // }} "" // {{{ 1088 1 0 "24751213_e6dc_41e6_845ee7ea4f47b569" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1089 1 0 "cdfa237b_f8b7_4287_9e37b3d87736cb2c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1090 1 0 "862dcce6_281b_41cb_8981fc71b8c79cb3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1091 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1092 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1093 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_measure") { // }} "" // {{{ 1094 1 0 "7c314622_d15c_42aa_a88b3d71caa33d0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1095 1 0 "9f15b042_95cd_4241_9b6262d3a4979ca7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1096 1 0 "34064a8d_5567_4fe5_b4349d0d061b9a1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1097 1 0 "0e34e118_df68_49fa_b3b9228d63deb6d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 1098 1 0 "025eece8_72cd_4190_a092d806fbab65a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 1099 1 0 "269c134a_bc59_4578_8da8bb7559f234a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 1100 1 0 "36ec28c1_360b_46e9_9243c01dbd3874e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 1101 1 0 "58445956_3204_41a3_a7acb03aaf25ccd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 1102 1 0 "465c2002_18cb_4ff2_9df9e423dbc6837c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1103 1 0 "40682224_6d73_4a7c_a2e33641f1768d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 1104 1 0 "e43a57a6_d83b_41d1_adf33f8f77ca7bc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 1105 1 0 "12a6bd74_f75b_44d1_b6f7c26d279d9610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 1106 1 0 "71b8f8bc_65c1_4e97_ab6eae03040f51dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 1107 1 0 "a8ca8abd_aa7a_412c_be527eb4e81efcb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1108 1 0 "a8647b92_b569_4a75_99a5333c438b3a23" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1109 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1110 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1111 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1112 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate_Dyn") { // }} "" // {{{ 1113 1 0 "de6a4eb0_04e1_47fc_86e27009d71152cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 1114 1 0 "5f551457_7af9_4567_bceacdf0018c9c38" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 1115 1 0 "60ee9fa5_c549_43a9_bbccdb0b14819583" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1116 1 0 "2211f515_9e69_4a1c_9603becd6fd866cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1117 1 0 "8449e1f4_6561_4b51_b91aa14423565eb2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 1118 1 0 "4429d4bb_e2fb_451f_8558de74111dbe3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Variance"), Variance); // }} "" // {{{ 1119 1 0 "a918fadc_db95_4e4b_9c445a903a59f17a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 1120 1 0 "7611bb65_5e77_408e_98384f0fec68e958" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 1121 1 0 "74418f44_640a_4b4b_88234a74841f1dbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate Dynamically"), o_stepReturn); // }} "" // {{{ 1122 1 0 "13218e03_9ac9_44ed_8af864397e865cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1123 1 0 "6257eb41_ce75_45b1_bea89bce20631222" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1124 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1125 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1126 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1127 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate") { // }} "" // {{{ 1128 1 0 "c7a809a1_1dc8_47c2_a8006c785355c50e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 1129 1 0 "27f7a889_0250_42a5_87699d0b0d52d36b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 1130 1 0 "b624fe53_a0c2_44e7_92eb12cc744fa799" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1131 1 0 "9f642188_0286_4e80_81cb485423a155c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1132 1 0 "c7530a85_7f29_4069_9a8e94318ffec0d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 1133 1 0 "849206a3_ea5c_4440_a08cdbcb81354e94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 1134 1 0 "9f9ab695_0d32_4bf4_bf5a4b0207a2c780" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 1135 1 0 "c1db8c11_4c25_4c9c_b424e06999583f09" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1136 1 0 "29e43762_b009_40ad_b93a5ac2372cca00" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1137 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1138 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1139 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1140 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Enable_Extended_Log") { // }} "" // {{{ 1141 1 0 "1791ad6e_39b2_4442_8b4470d0fc5497fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn); // }} "" // {{{ 1142 1 0 "b22a7836_ed52_4e9d_9e5df5babf8fa142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1143 1 0 "d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1144 1 0 "8d68d8f1_5b56_488b_a0676b4b50a35221" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1145 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1146 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1147 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1148 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Get_Last_Error") { // }} "" // {{{ 1149 1 0 "11bf85a6_3df2_4245_839282a900f3db71" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1150 1 0 "2c0b2633_5d81_41a1_aa90c51eb8d9d23d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn); // }} "" // {{{ 1151 1 0 "4d60f4e2_175b_4a4b_9b0bfb0f63211da0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Get Last Error"), o_stepReturn); // }} "" // {{{ 1152 1 0 "76df37d9_5928_4269_937630b417ad9a11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1153 1 0 "a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1154 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1155 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1156 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1157 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Initialize") { // }} "" // {{{ 1158 1 0 "a37d4042_a872_4da0_bf60a51312d5cc22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1159 1 0 "77530965_cb1f_4563_a1d848bb4faa3bb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1160 1 0 "295c3bab_f7f4_47d0_8075cf658ee0436f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn); // }} "" // {{{ 1161 1 0 "69f13066_cc39_48aa_85b093e1bc056907" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrIStr(o_stepReturn2); // }} "" // {{{ 1162 1 0 "3a9d7ad8_b8d0_45ee_9004e77ed5fbe471" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1163 1 0 "178d10c9_fe18_479a_b3e7922f87282612" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 1164 1 0 "66935de2_85a3_4ed0_95cddf772b15fb48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1165 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1166 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1167 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1168 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Measure_Dynamically") { // }} "" // {{{ 1169 1 0 "69eede79_0b96_4634_a4ed7995201d9b7d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1170 1 0 "6a018697_b8f4_4088_b8c650a2f028d197" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Precision"), Precision); // }} "" // {{{ 1171 1 0 "dfbe88b8_1dda_42ac_8175799123584051" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1172 1 0 "3ef27a25_aec7_4d5b_beb743b713c7526e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1173 1 0 "74a87116_8260_466d_a78e98fe0544a891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 1174 1 0 "425d37a5_2d55_4b09_a607303c754935db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure_Dynamically(ModuleID, Temperature, Precision, Timeout, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 1175 1 0 "0df3fc00_0550_45fa_b224d60b9bcd06c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 1176 1 0 "26992ae0_59eb_4678_ae304b460a7034db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 1177 1 0 "3beda7c9_5769_4578_b31431d2bab6d131" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 1178 1 0 "141952da_a201_4e85_9e446006849a95bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 1179 1 0 "f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1180 1 0 "5487a4f7_a9f8_448e_98b2cb671cb9c069" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 1181 1 0 "c8e7c221_d1e4_4818_b3e077f9aeb6a0a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 1182 1 0 "611376c4_8c68_46f2_8947cec12bb313f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 1183 1 0 "e113c0e5_7ab9_4244_86b73e7f24d2bfc8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 1184 1 0 "6286c2d7_a138_4844_bc77fd8a40a6a486" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1185 1 0 "39fd3518_8a14_43a1_8d41240f577c94eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1186 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1187 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1188 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1189 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Battery") { // }} "" // {{{ 1190 1 0 "c83f58ac_8db7_4477_bed8e57c9c784b8a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1191 1 0 "4b343bdb_fe40_4daa_8382b1265575e03a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn); // }} "" // {{{ 1192 1 0 "98f43381_9679_4d9f_b3d1238ed4c1d0c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1193 1 0 "b95371f0_7532_4426_b980d9824bf1d2b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ChargeCounter = StrIStr(ChargeCounter); // }} "" // {{{ 1194 1 0 "15324eca_50a4_4530_be7f08cdef0e6514" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BatteryCondition = StrIStr(BatteryCondition); // }} "" // {{{ 1195 1 0 "e694349e_13ad_46c1_b18f5eb4688f510e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ActualCharge = StrIStr(ActualCharge); // }} "" // {{{ 1196 1 0 "279c0c8e_1d53_437f_ac5e74b0ccffc7a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1197 1 0 "92db84c4_89c2_4902_819012506538681c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate("0"), Translate("0"), Translate("0"), Translate("0"), id); // }} "" // {{ 1198 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1199 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1200 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1201 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Calibration") { // }} "" // {{{ 1202 1 0 "250cbb57_43e2_4ca3_8ac97a4f8a848ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1203 1 0 "e2f361b4_fb8d_4bf8_b53c05720323632b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ProbeNumber"), ProbeNumber); // }} "" // {{{ 1204 1 0 "6e7357dd_030a_4f9d_b5cda736b409bbee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn); // }} "" // {{{ 1205 1 0 "aa859c68_b2ab_4304_9501a2d752587df6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowValue = StrFStr(pHLowValue); // }} "" // {{{ 1206 1 0 "7331e4fa_3e06_499a_84eed922b712aca5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowVoltage = StrFStr(pHLowVoltage); // }} "" // {{{ 1207 1 0 "3c2e720a_1c6e_4f09_afe077215aa438e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighValue = StrFStr(pHHighValue); // }} "" // {{{ 1208 1 0 "a9363a15_98fa_4a49_8451b25c27edea3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighVoltage = StrFStr(pHHighVoltage); // }} "" // {{{ 1209 1 0 "73007841_7490_489f_9c595a8e085e3a59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationTemperature = StrFStr(CalibrationTemperature); // }} "" // {{{ 1210 1 0 "49c841c4_b5cf_4ac7_9c2e87a2dc939210" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationOffset = StrFStr(CalibrationOffset); // }} "" // {{{ 1211 1 0 "d3535c95_47a6_46a6_80f73d15c4582508" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlope = StrFStr(CalibrationSlope); // }} "" // {{{ 1212 1 0 "a273e170_1488_4e16_884ae09c3a26d828" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio); // }} "" // {{{ 1213 1 0 "4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1214 1 0 "9ae40f13_d6cb_4a4e_9dc995de1da2d637" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Request Calibration Values"), o_stepReturn); // }} "" // {{{ 1215 1 0 "5aca9095_546e_4df5_b24364da04e44fe5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id); // }} "" // {{ 1216 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1217 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1218 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1219 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Probe_Data") { // }} "" // {{{ 1220 1 0 "04b155be_097f_4f2d_add1392fbf78b5f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1221 1 0 "c40a59cd_e266_4cc3_aa3dd3d526502930" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn); // }} "" // {{{ 1222 1 0 "306c68bb_ffd7_4233_b7f0c2c67678dfdf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1); // }} "" // {{{ 1223 1 0 "bbd1faef_5b8f_41ba_bf74a019b05da039" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2); // }} "" // {{{ 1224 1 0 "cb244d85_a14b_4bcb_ab81c5cdc38c6552" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3); // }} "" // {{{ 1225 1 0 "5476cf0c_49cc_4602_aec72872116d2e6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4); // }} "" // {{{ 1226 1 0 "6883841a_44f5_417f_8574566ed15ae444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), o_stepReturn); // }} "" // {{{ 1227 1 0 "fefec950_2bfa_429e_bdf791dc40dd0495" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1228 1 0 "0f6be956_31e3_4d1e_b232c4dc908ea6f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1229 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1230 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1231 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1232 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Technical_Data") { // }} "" // {{{ 1233 1 0 "3c80e1e2_a904_42ac_a3ddd5df5ca3a196" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1234 1 0 "8b2b24be_b84b_41b8_bd0f088f32554cb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 1235 1 0 "552e7bb6_cbdf_49ec_86ac28b54cae7f58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 1236 1 0 "1634fedb_a7e1_4130_ac1fb8d55f47b9e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HardwareNumber = StrIStr(HardwareNumber); // }} "" // {{{ 1237 1 0 "2cfb8725_b283_48b0_906a9741fe336744" "{C1F3C015-47B3-4514-9407-AC2E65043419}" PartNumber = StrIStr(PartNumber); // }} "" // {{{ 1238 1 0 "7b9a6dfa_9df8_40a8_9c0c39981dcf97e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Revision = StrIStr(Revision); // }} "" // {{{ 1239 1 0 "771c0483_6ea2_4299_81c7598839a5027b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SerialNumber = StrIStr(SerialNumber); // }} "" // {{{ 1240 1 0 "790984ff_e065_4212_a5c420f04d9f7e4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), o_stepReturn); // }} "" // {{{ 1241 1 0 "79aaa9cb_2db1_4f5d_8385023783e5cc82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1242 1 0 "371d6452_cf9d_4abe_9463f54ab7831231" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id); // }} "" // {{ 1243 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1244 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1245 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1246 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Voltage_Data") { // }} "" // {{{ 1247 1 0 "b6c0eb00_003a_45ed_9899c407d864455c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1248 1 0 "e4801131_30dc_4e2d_8ac9e80c0c13972c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Selector"), Selector); // }} "" // {{{ 1249 1 0 "ee48a65d_794b_411d_bb1668a267206d8b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn); // }} "" // {{{ 1250 1 0 "bf78a104_f3d4_45b6_a573a7219dcf05e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 1251 1 0 "ab32fbfb_2be2_4f6d_9c49def79adcfe31" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1252 1 0 "eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(""), Translate(""), id); // }} "" // {{ 1253 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1254 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1255 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1256 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 1257 1 0 "51fd11a2_c173_4d8a_be50512a820eb424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1258 1 0 "b1268215_064b_40bc_8b9e75cfc0edeac8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1259 1 0 "7665963b_aa9b_4a3c_ba522887f3b15ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1260 1 0 "8327c869_96c0_4394_9bf4c5b5c19f30d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1261 1 0 "5a5455ae_5598_4a29_8c5f621b0586ba79" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1262 1 0 "f534cbac_4de3_4425_85299c07c6ff73cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 1263 1 0 "12b0cc6a_4826_48ce_82c690ddf98441a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1264 1 0 "aee63add_2789_4971_b4867510d938caf6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1265 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1266 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1267 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1268 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Charge_Parameters") { // }} "" // {{{ 1269 1 0 "5e24703a_30cb_4538_aec7ba85b7c0d2a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1270 1 0 "31630603_a72b_4d8b_a21a501f5336c619" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Charge"), Charge); // }} "" // {{{ 1271 1 0 "41b8aa8b_7d8e_4351_ad9664e334fa00f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AutoCharge"), AutoCharge); // }} "" // {{{ 1272 1 0 "504d0d26_95ad_4181_a7c38162018496cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("AutoChargeLevel"), AutoChargeLevel); // }} "" // {{{ 1273 1 0 "576ecb10_c479_461f_9249f554f27e398b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn); // }} "" // {{{ 1274 1 0 "80503782_9e9a_4986_9e4bcdeac598c749" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Charge Parameters"), o_stepReturn); // }} "" // {{{ 1275 1 0 "ade249f5_6aa1_4939_90a22e6af0864e5e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1276 1 0 "4fb997db_4cdf_4b51_85bbb23941f19edb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1277 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1278 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1279 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1280 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Probe_Replacement_Date") { // }} "" // {{{ 1281 1 0 "eb0a7cc0_c83a_45a8_8bd6adbf05cadabe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1282 1 0 "c762429d_3619_4e70_9765fe207dab3d54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Probe"), Probe); // }} "" // {{{ 1283 1 0 "18bf75b8_9aa3_46d2_a3ad3bbab8c1e126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1284 1 0 "2b2bbaed_84c1_46d2_bd024b425aefa336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1285 1 0 "380453f0_b3e8_47ac_a06eb91552b3a11f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1286 1 0 "a8fcf799_ec41_4160_910a9c78e5395ae2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1287 1 0 "c95c2987_8098_48ed_9ad284801d556587" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Probe Replacement Date"), o_stepReturn); // }} "" // {{{ 1288 1 0 "4e986dcc_ee8e_4cc0_bb83628d0a0ec284" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1289 1 0 "d46fb139_6c48_4f2a_b09293a8a3509a12" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1290 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1291 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1292 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1293 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Shutdown") { // }} "" // {{{ 1294 1 0 "aec40299_6cef_4e16_ad88bccbdcae3b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1295 1 0 "c7715d80_e089_40ea_86fe6a446a2c9378" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Mode"), Mode); // }} "" // {{{ 1296 1 0 "212772c6_0ff7_41ef_9c35fb5828034d90" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn); // }} "" // {{{ 1297 1 0 "82055c44_b706_4c16_99b47c2a4ae600e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Shutdown"), o_stepReturn); // }} "" // {{{ 1298 1 0 "d76b0e51_c107_49cd_b6bcd25c44e4d066" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1299 1 0 "fbbaa73a_fa45_446d_8052e6e618fd2fad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1300 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1301 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1302 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1303 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Technical_Data") { // }} "" // {{{ 1304 1 0 "d6a005e1_4502_49d8_9a510afa4a2e833e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1305 1 0 "5ad112b0_da19_4b1b_a4649033defa7fef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 1306 1 0 "f4094e68_7940_4706_bae95f6277784476" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PartNumber"), PartNumber); // }} "" // {{{ 1307 1 0 "2b53f199_42d1_4808_a128c8ef4354e216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Revision"), Revision); // }} "" // {{{ 1308 1 0 "b5bf6715_e2e6_4e19_ad453dbb18396d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SerialNumber"), SerialNumber); // }} "" // {{{ 1309 1 0 "8cd5ff7f_9cb8_4f34_8afeb35175b47032" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 1310 1 0 "b60d9996_aa66_483d_b61518ffca638e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Technical Data"), o_stepReturn); // }} "" // {{{ 1311 1 0 "164f5289_e710_44eb_a1ea51e1622a7813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1312 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1313 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1314 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1315 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Trace_Level") { // }} "" // {{{ 1316 1 0 "dd6ba7d4_f5cc_4725_9776848c6e8343cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1317 1 0 "5a2c7ac9_8800_4926_96f26337aee59504" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1318 1 0 "88c51a62_4453_4cf5_ba0682a2cb1da767" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1319 1 0 "159aeb3e_3ed4_4ddc_a11cdfd939a7db7d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Trace Level"), o_stepReturn); // }} "" // {{{ 1320 1 0 "c3a5cc94_f346_4d04_a4be1fd04efbccc1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1321 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1322 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1323 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1324 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Sleep") { // }} "" // {{{ 1325 1 0 "153dc01b_be4b_403a_a40226aa4778c709" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1326 1 0 "a6f7384c_4c2e_4b3b_9682c00fb7a2f978" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn); // }} "" // {{{ 1327 1 0 "e82cf943_58b3_463e_a86afb9882353228" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Sleep"), o_stepReturn); // }} "" // {{{ 1328 1 0 "636ca48b_8789_40cc_8fb4dc35e8cbab54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1329 1 0 "5fb5b228_5342_414d_a548ac8dd5add837" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1330 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1331 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1332 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1333 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Terminate") { // }} "" // {{{ 1334 1 0 "b53cd271_035b_4870_961c552983b39351" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1335 1 0 "e133d234_4ccd_44cb_810d29742ee9f40e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn); // }} "" // {{{ 1336 1 0 "eb5a9614_5d18_44cd_83190a1d8eec2a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1337 1 0 "81b91833_cb16_43c5_a8935f9701536560" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1338 1 0 "add7dd5e_87e4_4ec1_a7b552234adc5d9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1339 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1340 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1341 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1342 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Wakeup") { // }} "" // {{{ 1343 1 0 "6b1d97c0_debd_402e_8c064a5c1fe48aca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1344 1 0 "09ffa3b4_530e_444f_943e5302e37f3fe0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn); // }} "" // {{{ 1345 1 0 "0d420182_40e4_43a8_872c5c81f7efa6d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1346 1 0 "f7bb0b0b_d222_43a7_b1b1236ab60e2847" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1347 1 0 "12251a91_a4ec_4a01_b041b503e2eef836" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1348 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1349 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1350 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1351 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Initialize") { // }} "" // {{{ 1352 1 0 "10713a72_dce4_482a_ad1d6d8db7bd210a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1353 1 0 "21f38719_99e7_4de4_bc16b312b6f57977" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1354 1 0 "75ac7c86_e474_45bc_8551fc9e302de4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 1355 1 0 "509760aa_ef16_454d_89cc23c0745d3c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 1356 1 0 "19e515a1_705c_45eb_b80e75767541c91a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1357 1 0 "a042f65b_875f_4b52_999c836815c84a6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1358 1 0 "f5fd2c44_2160_43fa_be88382bc9e0ff0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1359 1 0 "f2c8bfd1_3d33_4a00_84852ffbabef7b28" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1360 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1361 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1362 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1363 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Set_Trace") { // }} "" // {{{ 1364 1 0 "0029313d_525e_46ea_916912b33902e1eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1365 1 0 "ed79bcac_71ff_48ee_b968407f0dbdf4ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1366 1 0 "80f14967_56f1_4b78_9a3c9965460a9589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1367 1 0 "b3fdfb36_4bb4_4086_a19b5402f53fdd94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1368 1 0 "53206fbc_1492_4583_a2789c8083e49b46" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1369 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1370 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1371 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1372 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Wash") { // }} "" // {{{ 1373 1 0 "32bfd9a6_1ebc_4ca0_81e034f81d1af760" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1374 1 0 "a9208608_0099_4d5f_800d72adf563b9e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CycleNumber"), CycleNumber); // }} "" // {{{ 1375 1 0 "738f88ca_6ad7_4598_b1e4a3e1ccefcace" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn); // }} "" // {{{ 1376 1 0 "d009e19d_0560_4f89_b0f58bafa778b71b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Wash"), o_stepReturn); // }} "" // {{{ 1377 1 0 "49cdc51c_08eb_424b_920d3dcb647b2559" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1378 1 0 "2624b5a6_7428_4e88_a9b7fee8a8001e65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1379 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1380 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1381 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1382 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Terminate") { // }} "" // {{{ 1383 1 0 "e8e2fec9_d562_4524_b5d29880876bd109" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1384 1 0 "ad418c06_88fd_4649_9745bc00694fa53a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1385 1 0 "e8437e3c_0153_4bc0_86236a2e9849e22a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Terminate"), o_stepReturn); // }} "" // {{{ 1386 1 0 "32e4b0bc_48e5_4770_81a0113fdff8118a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1387 1 0 "c81e886b_51ec_42be_b2c989057781a5b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1388 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1389 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1390 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1391 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Initialize") { // }} "" // {{{ 1392 1 0 "b41d8294_bc5c_4346_999860e0f4cc913e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1393 1 0 "102abd73_15bb_472b_a1008b4eda35637e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1394 1 0 "58389380_f098_4c71_b61c0954f797753b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 1395 1 0 "2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 1396 1 0 "d95cbdf3_6278_437b_91525392a70e5356" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1397 1 0 "d35fefc8_f758_41da_a6073532f75cf092" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Initialize"), o_stepReturn); // }} "" // {{{ 1398 1 0 "e1deec6e_fc66_45bd_93821e20a78853fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1399 1 0 "01bdb50d_0f38_40e2_8993f814ea652b66" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1400 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1401 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1402 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1403 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Set_Trace") { // }} "" // {{{ 1404 1 0 "f7fc7449_63b2_4e8b_8d0eaf3f931e834d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1405 1 0 "ef77cea9_ef26_4525_bea967ec7f086b88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1406 1 0 "24784b11_b6f4_461e_b526cbbb677864ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1407 1 0 "d5ebe375_f7dd_45c2_b3e242a8edf4f175" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Dryer Trace Level"), o_stepReturn); // }} "" // {{{ 1408 1 0 "f61751e3_57be_4b1d_b8a1d370a4c1773c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1409 1 0 "d216caef_1c5d_4f05_8252d1a77df45535" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1410 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1411 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1412 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1413 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Start_Drying") { // }} "" // {{{ 1414 1 0 "45561f8e_cd7f_49d8_a8720b2ff7d0d932" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1415 1 0 "ecdddf7a_3c99_4f99_97b658f94a62554c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1416 1 0 "5a6daec0_a404_4a0a_ad9d88de43ac46c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Start Drying"), o_stepReturn); // }} "" // {{{ 1417 1 0 "e7173a44_d349_4ba2_8993647fbcd2eb1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1418 1 0 "17e3434b_dfff_457b_9aba0c22e9206cc7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1419 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1420 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1421 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1422 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Stop_Drying") { // }} "" // {{{ 1423 1 0 "f3eac478_54bb_4350_8c1811bf2ede8424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1424 1 0 "37262733_33d0_4723_94687e68249d1300" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1425 1 0 "6feb871c_61be_4812_a421af32d75f9871" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Stop Drying"), o_stepReturn); // }} "" // {{{ 1426 1 0 "2ba59e68_8358_4b86_a9108519bff6d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1427 1 0 "cbfcb2cb_00c9_445f_a28af2b6553efc31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1428 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1429 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1430 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1431 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Terminate") { // }} "" // {{{ 1432 1 0 "66453f41_07b7_4fd4_b2177e4994606836" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1433 1 0 "a5808bbd_63b3_4fc2_894ab4d4eb00b93d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID); // }} "" // {{{ 1434 1 0 "f844d13f_ecdb_465a_b0300a4976c0d809" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1435 1 0 "a28255b3_86ff_4928_abf87a7c3f930142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1436 1 0 "7e539911_cdda_4242_a337d58eba44508c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1437 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1438 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1439 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1440 1 0 "2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1441 1 0 "2dde624a_2df2_4014_8df18f6d92ed93b1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1442 1 0 "d6d5265b_416c_468f_a8f0a8225e294804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Initialize") { // }} "" // {{{ 1443 1 0 "32d149fa_c238_4e8c_9c9bfe8ca03b39ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PortNumber"), PortNumber); // }} "" // {{ 1444 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_43ECC15F92874e8a8FCA2A90F3412255 ; err.Clear(); // }} "" // {{{ 1445 1 0 "05f6e40b_f62a_4382_9b25ca234839aeb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::Initialize(ML_STAR, PortNumber, DefaultTemperature, ModuleID); // }} "" // {{ 1446 1 0 "b8eff0c4_8a87_4d69_8b1fc22443527e58" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1447 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_43ECC15F92874e8a8FCA2A90F3412255 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1448 1 0 "a6315690_dcdc_4faf_9764f4edcccee401" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1449 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1450 1 0 "b152d230_641d_44fd_82876d10beb25ffd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1451 1 0 "2178bb5d_1389_4bb3_92e038bed00ad7d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 1452 1 0 "0e8fa514_886c_42d7_a0fec5c2e0a40820" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1453 1 0 "d6d5265b_416c_468f_a8f0a8225e294804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1454 1 0 "2dde624a_2df2_4014_8df18f6d92ed93b1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1455 1 0 "a96843cd_6adb_45f6_86b4971bd2682521" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1456 1 0 "2a26b412_4bc5_49d9_b1cdc64938a3cf0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_MeasureCycle") { // }} "" // {{{ 1457 1 0 "e78c25fc_f856_4c7d_bb7f6056d2ae0e9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1458 1 0 "4c0064bb_0c23_4648_b57e5599878d63f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqMeasurement"), seqMeasurement); // }} "" // {{ 1459 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (seqMeasurement == "") { // }} "" // {{{ 1460 1 0 "a11073f7_18e2_4097_baf006ed44e74081" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("MeasurePositions"), MeasurePositions); // }} "" // {{{ 1461 1 0 "47d49bd0_0457_440d_b1d654c85ac3c5db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(MeasurePositions, seq); // }} "" // {{ 1462 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1463 1 0 "bbddeeab_2dc4_4931_900a5ec07aafe0be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, seqMeasure, seq); // }} "" // {{ 1464 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1465 1 0 "6b06d7c5_bf98_48d9_906ae705e4ce149b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("MeasureHeight"), MeasureHeight); // }} "" // {{{ 1466 1 0 "25fe4c02_a4e2_40cd_91289dc1c5c638b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ProbePattern"), ProbePattern); // }} "" // {{{ 1467 1 0 "02a9e02a_0596_4158_ac021180b0b5985c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MeasureTime"), MeasureTime); // }} "" // {{{ 1468 1 0 "f8080019_d032_4f0c_9ef8429bde9ee7df" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1469 1 0 "83142ee1_d831_4ff1_a6734844fe789421" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::MeasureCycle(ML_STAR, ModuleID, seq, MeasureHeight, ProbePattern, MeasureTime, Temperature, arrpHValues); // }} "" // {{{ 1470 1 0 "d4d4974a_23a2_43a2_851b478f0e7d24be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrpHValues, flt_pHValues); // }} "" // {{{ 1471 1 0 "bde9c162_a4cf_40fa_a663c6b78e029610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1472 1 0 "0a5c18e9_775d_4644_bdfcc536000642cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Measure Cycle"), o_stepReturn); // }} "" // {{{ 1473 1 0 "c1502c7b_2bd0_480c_a0ce6887e02484bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, flt_pHValues, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1474 1 0 "2a26b412_4bc5_49d9_b1cdc64938a3cf0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1475 1 0 "a96843cd_6adb_45f6_86b4971bd2682521" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1476 1 0 "e66a9dff_c0b5_4864_ad32fce97f16a3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1477 1 0 "5185a83c_8ff6_42f8_b1dc5fc006d041ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Calibrate") { // }} "" // {{{ 1478 1 0 "d9d7f7cb_394b_40ea_a037e16efc8e063c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1479 1 0 "0e65e09c_0178_403b_9eca768c440a479f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1480 1 0 "fedae8c3_0c9d_426f_a30e8fdfa1d2b056" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1481 1 0 "ad8456a9_07be_4852_b2bab182e7e17dae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqCalibration1"), Calibration1); // }} "" // {{{ 1482 1 0 "8b591ca2_adf8_4248_b5ac1fb2a84c21aa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Calibration1, seqCalibration1); // }} "" // {{{ 1483 1 0 "0f28a5e9_278c_4290_aa9ee416f829755a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqCalibration2"), Calibration2); // }} "" // {{{ 1484 1 0 "b57e28d3_0011_4657_bbceba83ca97b89a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Calibration2, seqCalibration2); // }} "" // {{{ 1485 1 0 "101798f0_c18a_411a_b29295d972cc9a6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqReference"), Reference); // }} "" // {{{ 1486 1 0 "1c415c8d_660d_41fe_a81fcfd6d8836038" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Reference, seqReference); // }} "" // {{{ 1487 1 0 "20510ceb_5840_48de_842a1b657fa7706d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationTime"), CalibrationTime); // }} "" // {{{ 1488 1 0 "ecd67637_3e8e_4d22_89b67b39e05342fe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MeasureTime"), MeasureTime); // }} "" // {{{ 1489 1 0 "148b5d07_b84d_4786_b1d0f9d5e5837491" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("MeasureHeight"), MeasureHeight); // }} "" // {{{ 1490 1 0 "938c1584_a353_4f03_ba14c9f33cc2c6a7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue1"), CalibrationValue1); // }} "" // {{{ 1491 1 0 "cda9048b_fe59_4db2_a1d08550795038f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue2"), CalibrationValue2); // }} "" // {{{ 1492 1 0 "5d669238_eb69_4080_8b789139b291be94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValueRef"), CalibrationValueRef); // }} "" // {{{ 1493 1 0 "4c7c9992_c2e0_445a_bee9cd7dd086e585" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSoln1"), TempSoln1); // }} "" // {{{ 1494 1 0 "9574a12d_456e_4fd6_9b51714dd88b4a1e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSoln2"), TempSoln2); // }} "" // {{{ 1495 1 0 "211f81c7_5561_45ce_8cf247e76fb0f65e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSolnRef"), TempSolnRef); // }} "" // {{{ 1496 1 0 "f812ea75_ed49_4a04_b4ab3dd67f1206ad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrateDynamically"), blnCalibrateDynamically); // }} "" // {{{ 1497 1 0 "178d95b8_13db_4493_a08cdaec1348c0e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1498 1 0 "d4d33c2d_2aee_4a51_ad36cb953d687c83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{ 1499 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F882CD31309846e3BD30959B418AB982 ; err.Clear(); // }} "" // {{{ 1500 1 0 "ff44fdd8_7acc_46f7_a7c3a207ad5d7bf8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Calibrate(ML_STAR, ModuleID, seqModule, seqCalibration1, seqCalibration2, seqReference, CalibrationTime, MeasureTime, MeasureHeight, CalibrationValue1, CalibrationValue2, CalibrationValueRef, TempSoln1, TempSoln2, TempSolnRef, blnCalibrateDynamically, arrCalibrationSlopeRatios, arrpHValuesReferenceSolution); // }} "" // {{ 1501 1 0 "18724129_2443_4271_a6316a42ef334c73" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1502 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F882CD31309846e3BD30959B418AB982 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1503 1 0 "d6c65e91_f6e8_47d9_aaf1810ffab1ffac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1504 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1505 1 0 "7375b9e4_01c3_49a1_810fb42149ed0eea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrCalibrationSlopeRatios, CalibrationSlopeRatios); // }} "" // {{{ 1506 1 0 "31ba6e89_258d_4deb_97352544c3b5c45c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrpHValuesReferenceSolution, pHValuesReferenceSolution); // }} "" // {{{ 1507 1 0 "924064ec_85ac_4b42_a5ff3eb8a6a5342f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 1508 1 0 "65bd0fe0_0efb_4335_b118b89e61b948ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1509 1 0 "5185a83c_8ff6_42f8_b1dc5fc006d041ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1510 1 0 "e66a9dff_c0b5_4864_ad32fce97f16a3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1511 1 0 "b6af2262_3e2f_4d3a_8efaa95d707f7c9b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1512 1 0 "190d0e3a_2978_407c_a8482f5f7e239261" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Dry") { // }} "" // {{{ 1513 1 0 "0f0bf03e_4950_40e7_b2899f9cabb79cb3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{ 1514 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_D19CA5AD1071407b84599779A41B51EA ; err.Clear(); // }} "" // {{{ 1515 1 0 "1885a8d9_8082_44ab_bfd7a217170187db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::Dry(ML_STAR, ModuleID); // }} "" // {{ 1516 1 0 "33dddcad_4489_4f31_8b4fea145ebbe77b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1517 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_D19CA5AD1071407b84599779A41B51EA : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1518 1 0 "d8f5d052_f205_4e22_8998e2d0d12790ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1519 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1520 1 0 "5521c0c7_c64b_4b49_9036f9bf6a7a83d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1521 1 0 "9e7864cd_a0bd_4ec6_8f733a2e7ab773bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1522 1 0 "190d0e3a_2978_407c_a8482f5f7e239261" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1523 1 0 "b6af2262_3e2f_4d3a_8efaa95d707f7c9b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1524 1 0 "98f952c5_628a_415d_a46b3e75e0c33d60" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1525 1 0 "370e55f1_98b7_4dfb_9640d7a634f44a8f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Wash") { // }} "" // {{{ 1526 1 0 "39b0590c_dc8d_4eb3_b8bfcab65235f494" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{ 1527 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 ; err.Clear(); // }} "" // {{{ 1528 1 0 "beaffdda_e52a_4f79_95659f907946752f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Wash(ML_STAR, ModuleID); // }} "" // {{ 1529 1 0 "58aab21a_307b_403b_980186d201a7c6ac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1530 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1531 1 0 "4cd2a753_2761_4d3c_9cd93c15fa19a47b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1532 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1533 1 0 "0af219f8_e5bc_4b14_a95fd7e3f2ccb712" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1534 1 0 "7b44ca9e_e6d7_4793_8f937fc518ecc41c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1535 1 0 "370e55f1_98b7_4dfb_9640d7a634f44a8f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1536 1 0 "98f952c5_628a_415d_a46b3e75e0c33d60" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1537 1 0 "3246255f_383b_4742_b7eb17cad21acec0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1538 1 0 "f70b31d7_c863_488a_90c4df10a4677c68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_SetParameters") { // }} "" // {{{ 1539 1 0 "7e5e111c_21f5_4c0b_9dd06d15aee64431" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqGripper"), Gripper); // }} "" // {{{ 1540 1 0 "8417ab78_f4b8_40aa_890f3b14e4204667" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Gripper, seqGripper); // }} "" // {{{ 1541 1 0 "f43d4896_c19a_4cc9_ad3c75f925788b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqWashPosition"), WashPosition); // }} "" // {{{ 1542 1 0 "ffcc2479_6c91_4038_bab179b027d4b03b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, WashPosition, seqWashPosition); // }} "" // {{{ 1543 1 0 "b731d1c6_30bc_4003_ba19e062e82293db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqDryPosition"), DryPosition); // }} "" // {{{ 1544 1 0 "a68ddb6b_780a_46ed_bcaa350f92f649fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, DryPosition, seqDryPosition); // }} "" // {{{ 1545 1 0 "020f31e6_e3ef_48f4_af0e175e60e00159" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TransportChannel"), TransportChannel); // }} "" // {{{ 1546 1 0 "1561e8c8_acaa_438f_9c7c57a5c196556f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WashCycles"), WashCycles); // }} "" // {{{ 1547 1 0 "7e0a9629_dce6_4ed9_81b854f636408ff0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryCycles"), DryCycles); // }} "" // {{{ 1548 1 0 "dacc3c17_6358_44f0_8ac4ad1fa0ae08b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryTime"), DryTime); // }} "" // {{{ 1549 1 0 "f86b35ff_9db7_4845_a3cfb7d04c520c3d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::SetParameter(ML_STAR, seqGripper, seqWashPosition, seqDryPosition, TransportChannel, WashCycles, DryCycles, DryTime); // }} "" // {{{ 1550 1 0 "ce0a2f35_ae58_4695_85513126a4acb791" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1551 1 0 "da69f49c_299d_435d_9d95dc10f7303ce9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1552 1 0 "bd10bc62_2ace_436a_a68acec8c1f9287b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1553 1 0 "f70b31d7_c863_488a_90c4df10a4677c68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1554 1 0 "3246255f_383b_4742_b7eb17cad21acec0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1555 1 0 "f19bf36e_3e74_4647_bd1c33a627d4634a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1556 1 0 "1aad8d75_d37e_4c4a_9b83799194c716fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Park") { // }} "" // {{{ 1557 1 0 "90471824_8967_4383_a722d29bfaf60113" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1558 1 0 "f6bbc2b1_c86d_4f64_abc12d3b740b1d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1559 1 0 "9341ffae_9e0c_43f9_b3ccedcfbadb07cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1560 1 0 "9e0a230a_fdb5_4eec_9cf3127779adb1d2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::ParkModule(ML_STAR, ModuleID, seqModule); // }} "" // {{{ 1561 1 0 "8aacb0d9_a918_426b_9717bd2febc1f74a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1562 1 0 "15592ad5_5751_4636_8a513ee3f27c7f11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1563 1 0 "6222366b_a5bf_4c73_8685a3cdebb4ff4f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1564 1 0 "1aad8d75_d37e_4c4a_9b83799194c716fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1565 1 0 "f19bf36e_3e74_4647_bd1c33a627d4634a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1566 1 0 "602611db_9ad3_4dbb_aae8e288d8e1c21f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1567 1 0 "a3bcbf9b_35d6_4291_9c4f146afb2924be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Pickup") { // }} "" // {{{ 1568 1 0 "347e06d8_9db7_4279_bf224e9ecf4299e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1569 1 0 "2b0761dc_e201_46b3_a590b52421cd8ee9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1570 1 0 "76631bc5_230e_4e20_87bf493887cddd0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1571 1 0 "2d3aba8b_cc4b_4be1_a83c30695fcf6dbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::PickupModule(ML_STAR, ModuleID, seqModule); // }} "" // {{{ 1572 1 0 "7879f9b5_2eea_4059_8e4bef3213e8decd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1573 1 0 "cb1582a1_3f8c_44fd_910a5f08dbe32b05" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1574 1 0 "a15fc9df_322f_4ce1_83228c63669e6b16" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1575 1 0 "a3bcbf9b_35d6_4291_9c4f146afb2924be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1576 1 0 "602611db_9ad3_4dbb_aae8e288d8e1c21f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1577 1 0 "3bc97044_ccb0_46b1_9516921492be9a5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1578 1 0 "dac7c2f7_1665_4a9c_82959eadd12ab417" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_ExtendedLog") { // }} "" // {{{ 1579 1 0 "d101eee8_9402_428a_aa576d531ed959c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::EnableExtendedLog(); // }} "" // {{{ 1580 1 0 "bc849548_9009_43ec_bb1b6c81c32132f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), 1); // }} "" // {{{ 1581 1 0 "0a496202_0f55_4f40_8b391260caa236ba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, 1, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1582 1 0 "dac7c2f7_1665_4a9c_82959eadd12ab417" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1583 1 0 "3bc97044_ccb0_46b1_9516921492be9a5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1584 1 0 "e397a319_e6cb_4188_b45c6ef45c974fba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1585 1 0 "bffc8683_40d3_4277_ac66bc7d43d675f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_LoadLastConfig") { // }} "" // {{ 1586 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B416552A06404ef48774D74059C2B182 ; err.Clear(); // }} "" // {{{ 1587 1 0 "154ec087_ea2e_4381_bb2e261ffad534f1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationLoad(BluetoothPort, NumWashCycles, NumDryCycles, DryTime); // }} "" // {{ 1588 1 0 "79340e9d_69d5_4911_b4601ae4754a16c4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1589 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B416552A06404ef48774D74059C2B182 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1590 1 0 "46420553_d90f_4dfa_b42c9d86856c288a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1591 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1592 1 0 "54b468e0_3ea0_4e83_9ffae95722c5cb9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BluetoothPort = StrIStr(BluetoothPort); // }} "" // {{{ 1593 1 0 "7bde202f_1c1b_4911_9f600ac6e1a5b57c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" NumWashCycles = StrIStr(NumWashCycles); // }} "" // {{{ 1594 1 0 "c5d427d2_0b0e_4f92_8c5b0b2cbfbfb4d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" NumDryCycles = StrIStr(NumDryCycles); // }} "" // {{{ 1595 1 0 "027378a7_4549_4d3f_b8d33aa4980be4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DryTime = StrIStr(DryTime); // }} "" // {{{ 1596 1 0 "fbda7cdb_3ed9_4a5c_907ce60556e0129b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), 1); // }} "" // {{{ 1597 1 0 "e454face_7eee_4c6e_a61e221c0e5d7fb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, BluetoothPort, NumWashCycles, NumDryCycles, DryTime, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1598 1 0 "bffc8683_40d3_4277_ac66bc7d43d675f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1599 1 0 "e397a319_e6cb_4188_b45c6ef45c974fba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1600 1 0 "dbcfe074_1fad_446d_addaa6c1b41a3a01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1601 1 0 "2bd801dc_3ffb_4b97_9f8af54ebda4fdae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_SaveLastConfig") { // }} "" // {{{ 1602 1 0 "aca4c717_812e_46f9_8eb5989a720adb24" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("BluetoothPort"), BluetoothPort); // }} "" // {{{ 1603 1 0 "1198edc8_1ec9_479d_a4e7fd71ed50cf8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("NumWashCycles"), NumWashCycles); // }} "" // {{{ 1604 1 0 "be958699_818e_43db_a757a67b7b54572a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("NumDryCycles"), NumDryCycles); // }} "" // {{{ 1605 1 0 "8751a2c3_e6ee_43bf_b21f5458aebf179a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryTime"), DryTime); // }} "" // {{ 1606 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_4973F03471994119A9F699CE6459CBFC ; err.Clear(); // }} "" // {{{ 1607 1 0 "1480ff51_54ea_4c38_befa457e23966aca" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationSave(BluetoothPort, NumWashCycles, NumDryCycles, DryTime); // }} "" // {{ 1608 1 0 "0e101f68_bc36_42fe_882a3951ef193f80" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1609 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_4973F03471994119A9F699CE6459CBFC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1610 1 0 "2e180d98_e746_4b84_b623b4d0e8e198fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1611 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1612 1 0 "cb24f9db_18c1_41af_b6f16900826be7be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 1613 1 0 "87c5e5f6_77ee_4519_879fdceaf21c1d7f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1614 1 0 "2bd801dc_3ffb_4b97_9f8af54ebda4fdae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1615 1 0 "dbcfe074_1fad_446d_addaa6c1b41a3a01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1616 1 0 "d30f6a39_499f_4b79_b2bfbdb6bb128b96" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1617 1 0 "25171dbf_33de_42a2_ad9b9d9639b5112a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 1618 1 0 "bdbbc648_a9fa_468f_b5d4d390115575eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1619 1 0 "1a74d7ad_0c35_454c_b161ede32468b2af" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1620 1 0 "c67afa78_dd60_451b_b2e31a2e6540f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1621 1 0 "2424dca1_971a_40f8_97b763c253560a2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1622 1 0 "8def2ba5_b51c_4e0c_b6ebfdd346a5beec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1623 1 0 "684d328d_214e_4955_bfe9ff0627b7f8cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 1624 1 0 "e6ec0fc8_d42c_4413_b2c2719c3cd18dc7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1625 1 0 "6f2273c4_1e1e_46f3_9ea6544d76383266" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1626 1 0 "25171dbf_33de_42a2_ad9b9d9639b5112a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1627 1 0 "d30f6a39_499f_4b79_b2bfbdb6bb128b96" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1628 1 0 "427cf00a_8c98_4fb4_8db6842164909152" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1629 1 0 "d75fbb16_6016_4c73_aecf79ca07dae29d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Terminate") { // }} "" // {{{ 1630 1 0 "b43cf782_b210_48c8_933f4cdfae78d050" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1631 1 0 "efbfd98d_c15d_4ac9_b94250ab4361a8b9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Terminate(ModuleID); // }} "" // {{{ 1632 1 0 "c918ad91_e33e_4f2f_9c6577fd8c93aaf4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1633 1 0 "2021a914_67dd_495e_9a9e4cf4438df298" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1634 1 0 "8d8842cd_e3b4_4397_92ad69593e9f7796" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1635 1 0 "d75fbb16_6016_4c73_aecf79ca07dae29d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1636 1 0 "427cf00a_8c98_4fb4_8db6842164909152" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1637 1 0 "2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1638 1 0 "6aa13f85_d8b8_4a2a_93232eeb15e0a01d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1639 1 0 "5edd27c8_de57_4980_b51d920a4d49d519" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1640 1 0 "e9d4ea17_6e30_44ae_88b03485525c4f92" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Initialize") { // }} "" // {{{ 1641 1 0 "2f9ae938_94b1_43c8_ade094614ef090a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("DeviceName"), DeviceName); // }} "" // {{{ 1642 1 0 "6cf1bcde_fb2a_4296_97b01233bdd9aa87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("AdapterDeviceID"), AdapterDeviceID); // }} "" // {{{ 1643 1 0 "58031a2b_13b4_4278_8e347d343a3bd1d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("NodeName"), NodeName); // }} "" // {{{ 1644 1 0 "20c35752_843f_4adb_904d5d26323821a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1645 1 0 "0b3f2efc_0773_4a25_84493465094ac5e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AlwaysInitialize"), AlwaysInitialize); // }} "" // {{{ 1646 1 0 "6ad8399f_eed7_4e65_98fe7d1432f0736b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Initialize(Label, NodeName, SimulationMode, AlwaysInitialize, o_stepReturn); // }} "" // {{{ 1647 1 0 "3a426d02_40f4_4c1f_b9061d37e5a4cd35" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1648 1 0 "01608cb1_fac5_42cd_bcfdf5fc7359c26d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1649 1 0 "0e3b4229_d57f_445f_a7c9d9140939367f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1650 1 0 "e9d4ea17_6e30_44ae_88b03485525c4f92" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1651 1 0 "5edd27c8_de57_4980_b51d920a4d49d519" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1652 1 0 "48cb330b_8197_439e_974791118048b53e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1653 1 0 "cc879722_4e99_410c_a8454d136f6aae6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Centrifuge") { // }} "" // {{{ 1654 1 0 "efe031a0_7aa0_4846_bf8969fbd7906970" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1655 1 0 "5965cb4a_0190_415d_862b773944074e57" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("CloseCoverAtEnd"), CloseCoverAtEnd); // }} "" // {{{ 1656 1 0 "1f94f31f_0ef0_403b_bda3b50c2fd9c38b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PresentPosition"), intPresentPosition); // }} "" // {{{ 1657 1 0 "dde8e447_4774_45bf_a244c5fab4041838" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Direction"), Direction); // }} "" // {{{ 1658 1 0 "cf0fab96_e65f_4e8a_85a809800b192075" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArraySpeed"), ArrSpeed); // }} "" // {{{ 1659 1 0 "0ca69f46_9c96_402e_9b1587ced7bff5c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArrayAcceleration"), ArrAcceleration); // }} "" // {{{ 1660 1 0 "d37afa07_2508_484d_81b6f153e1aa28ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArrayDuration"), ArrDuration); // }} "" // {{{ 1661 1 0 "6f8e9cca_35cb_4393_9f845b2135e8c2d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Deceleration"), Deceleration); // }} "" // {{{ 1662 1 0 "42d02aa8_5a1f_4144_b475d634885c1d4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrDuration, Translate(","), i_ArrDuration, 0); // }} "" // {{{ 1663 1 0 "252eacff_1b04_4607_9403f7ebc9935d0a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrSpeed, Translate(","), i_ArrSpeed, 0); // }} "" // {{{ 1664 1 0 "e1de1f59_a4b3_4220_a987c7e8e67e82c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrAcceleration, Translate(","), i_ArrAcceleration, 0); // }} "" // {{{ 1665 1 0 "085cc0ce_663a_4e79_8bf732421e2f56a9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrAcceleration, i_ArrAcceleration); // }} "" // {{{ 1666 1 0 "5f942567_121a_417c_be3e2449c5473b40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrSpeed, i_ArrSpeed); // }} "" // {{{ 1667 1 0 "f88bd247_c7e5_4823_bd5e37605974f825" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrDuration, i_ArrDuration); // }} "" // {{{ 1668 1 0 "82e32803_a688_4f29_8a1c94dead53e48e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Centrifuge(Label, CloseCoverAtEnd, intPresentPosition, Direction, i_ArrSpeed, i_ArrAcceleration, i_ArrDuration, Deceleration, o_stepReturn); // }} "" // {{{ 1669 1 0 "6541fb1d_df0a_4f0c_8474d211e4e4721a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1670 1 0 "ca37a7ce_edb5_4864_90dffb84cbb93071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1671 1 0 "54bf0b61_3ff3_4e00_8d35d876bfec98bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1672 1 0 "cc879722_4e99_410c_a8454d136f6aae6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1673 1 0 "48cb330b_8197_439e_974791118048b53e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1674 1 0 "ad0b08d4_17f2_49d0_a67860ea51423835" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1675 1 0 "5d8f135c_f0e2_4460_861984fe9a7fa710" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_GetStatus") { // }} "" // {{{ 1676 1 0 "1be02a3f_6880_42b3_b612e480fcd7e403" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1677 1 0 "5dcbef58_09da_4530_afb23e072fe81806" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_GetRotationStatus(Label, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, o_stepReturn); // }} "" // {{{ 1678 1 0 "07344966_2aca_47d5_94006574d009ab21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1679 1 0 "47572e7c_3ab2_48e3_be4d5f024ede7c41" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, Translate(""), id); // }} "" // {{ 1680 1 0 "5d8f135c_f0e2_4460_861984fe9a7fa710" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1681 1 0 "ad0b08d4_17f2_49d0_a67860ea51423835" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1682 1 0 "cd7ca6de_07b8_4d48_875925ee71386e46" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1683 1 0 "2acb9ae8_850a_4120_a212cb2a4a6200bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Open") { // }} "" // {{{ 1684 1 0 "6a9181eb_a95e_4e7b_a8df77f39d3519e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1685 1 0 "6f785fb2_5cc2_4924_b9e514e193d96143" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverOpen(Label, o_stepReturn); // }} "" // {{{ 1686 1 0 "d7ac8b69_b503_4f26_81756b6dc894d246" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1687 1 0 "d707b09f_2dc6_4b2f_9fdb84c07c07f2b2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1688 1 0 "2acb9ae8_850a_4120_a212cb2a4a6200bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1689 1 0 "cd7ca6de_07b8_4d48_875925ee71386e46" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1690 1 0 "0d7255ee_b967_4693_8d7375d684b4747f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1691 1 0 "10b7afeb_e804_457e_88b935a2b48a71c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Close") { // }} "" // {{{ 1692 1 0 "dbed33cf_5e9c_4102_b254b161284b15e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1693 1 0 "f7647d6b_38bb_4d38_895246f5ac76fe59" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverClose(Label, o_stepReturn); // }} "" // {{{ 1694 1 0 "77bb0b57_a308_455c_baabf680266f4336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1695 1 0 "0c3dee9e_33f9_4f79_99400f9368f6da14" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1696 1 0 "10b7afeb_e804_457e_88b935a2b48a71c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1697 1 0 "0d7255ee_b967_4693_8d7375d684b4747f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1698 1 0 "4dcf2947_ad5a_47e8_8c8214244ffcb3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1699 1 0 "81386c58_3b5a_4743_9453eb6a117234ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Start") { // }} "" // {{{ 1700 1 0 "44af1318_1d60_4a35_a5714accdc0c242a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1701 1 0 "25c1c841_9dea_4404_afbc9b3efc307343" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Direction"), Direction); // }} "" // {{{ 1702 1 0 "d5af29b3_1f52_48d0_be771ca87547a6c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Speed"), Speed); // }} "" // {{{ 1703 1 0 "0615f300_6c08_4978_beb5ebd0c96a686e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Acceleration"), Acceleration); // }} "" // {{{ 1704 1 0 "8f4f8eba_1777_4696_b1185b776105f4e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MaxRunTime"), MaxRunTime); // }} "" // {{{ 1705 1 0 "6d0a342b_4d08_47ec_81979a6bcb184434" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StartCentrifuge(Label, Direction, Speed, Acceleration, MaxRunTime, o_stepReturn); // }} "" // {{{ 1706 1 0 "562e3df1_ee9e_4ef5_a70c4247d08e453f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1707 1 0 "d3624dd6_4de0_4827_b501bde2ca9e3d5a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1708 1 0 "81386c58_3b5a_4743_9453eb6a117234ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1709 1 0 "4dcf2947_ad5a_47e8_8c8214244ffcb3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1710 1 0 "e9168cf2_c9e7_40a5_a52e0b9ad08f1fed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1711 1 0 "225ad45c_32fa_4f7d_af063f5ce1ab907c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Stop") { // }} "" // {{{ 1712 1 0 "e5891eba_60d8_49f6_af7be2af0aef66a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1713 1 0 "4008af1e_863b_4a5a_9b4b33d547b6fd7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Decelleration"), Decelleration); // }} "" // {{{ 1714 1 0 "667c83ad_57d3_4ce9_a2dca9287fb97d7e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StopCentrifuge(Label, Decelleration, o_stepReturn); // }} "" // {{{ 1715 1 0 "43ffc328_4600_41cb_a084d56b006fee8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1716 1 0 "263c82c5_d2f1_463f_b2f102d150ca0a0f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1717 1 0 "225ad45c_32fa_4f7d_af063f5ce1ab907c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1718 1 0 "e9168cf2_c9e7_40a5_a52e0b9ad08f1fed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1719 1 0 "551d8e94_670b_4472_b73600d28f237682" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1720 1 0 "bd20d1b8_d440_4b6f_9041a5b536904a0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Terminate") { // }} "" // {{{ 1721 1 0 "1e54be13_32c5_43bd_bcea8da753eedd90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1722 1 0 "c884c5b1_cb4e_4d38_907361a00b32d3f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Terminate(Label, o_stepReturn); // }} "" // {{{ 1723 1 0 "fa01d6ec_8920_4fd7_adbc2f6f4f106df5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1724 1 0 "1664cc0f_d416_47d5_aa13970ade2397b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1725 1 0 "bd20d1b8_d440_4b6f_9041a5b536904a0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1726 1 0 "551d8e94_670b_4472_b73600d28f237682" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1727 1 0 "6aa13f85_d8b8_4a2a_93232eeb15e0a01d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1728 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1729 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Initialize") { // }} "" // {{{ 1730 1 0 "5efffd73_f295_4d3c_aacd37c74d2bc015" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ComPort"), Comport); // }} "" // {{{ 1731 1 0 "cc8f22a1_0ae7_40ee_82d2e071b7344cf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn); // }} "" // {{{ 1732 1 0 "b6f33534_c173_4c6c_820d96a48fa50a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Barcode initialize:"), o_stepReturn); // }} "" // {{{ 1733 1 0 "138ad752_fbd8_457e_948dd436ddb65822" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1734 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1735 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Read") { // }} "" // {{{ 1736 1 0 "0b3c261e_a906_4464_b0e5caa3ec640056" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Read(barcode); // }} "" // {{{ 1737 1 0 "98aadc47_a5a2_433d_84530ad050155ccd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("BarcodeReader_Read"), barcode); // }} "" // {{{ 1738 1 0 "e3fc85ee_a6d7_4d98_a3f9076b947565cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, barcode, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1739 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1740 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1741 1 0 "c26c8847_2c11_4945_b054d8f2644e86b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1742 1 0 "15e9c2d6_5589_445c_9f6f0639817f59b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1743 1 0 "4c9cdca8_b426_45ef_aac6503a2895cea6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Connect") { // }} "" // {{{ 1744 1 0 "b42a901b_1182_460c_9c50f6feb592bf36" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LocalIP"), localIP); // }} "" // {{{ 1745 1 0 "93955616_9078_4907_9f8c9666af0e54e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("DeviceIP"), deviceIP); // }} "" // {{{ 1746 1 0 "a7149c18_ab34_4de7_8359308e12993da7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("DevicePort"), devicePort); // }} "" // {{{ 1747 1 0 "cdfe7d40_7ac9_4156_91b6f234d09ee95c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), simulationMode); // }} "" // {{ 1748 1 0 "16a5008b_ee09_42df_8fda21d366f4b13b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_899365F43C1F496cBBFC0A7ABFD23EBB ; err.Clear(); // }} "" // {{ 1749 1 0 "fcf1fc09_b503_4de9_80348961669da4e2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1750 1 0 "ceb0e582_bf24_4b4e_be8b44c0ccb88bf6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Inheco_ODTC::Standard::Connect(localIP, deviceIP, devicePort, simulationMode, deviceID, message); // }} "" // {{ 1751 1 0 "02eb480a_a818_44a3_86f19d7f370ae6a2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1752 1 0 "16a5008b_ee09_42df_8fda21d366f4b13b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_899365F43C1F496cBBFC0A7ABFD23EBB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1753 1 0 "16a5008b_ee09_42df_8fda21d366f4b13b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1754 1 0 "71896feb_20fb_4557_875b7ccdb2b0626b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Return: "), o_stepReturn); // }} "" // {{{ 1755 1 0 "6dda3734_9d4e_4aaf_bd808789af42ea73" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceID, message, Translate(""), id); // }} "" // {{ 1756 1 0 "4c9cdca8_b426_45ef_aac6503a2895cea6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1757 1 0 "15e9c2d6_5589_445c_9f6f0639817f59b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1758 1 0 "04472016_2334_4ac7_b97384c436334c47" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1759 1 0 "8b7534f2_d374_4cb4_b2f29ea0ad511934" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_CloseDoor") { // }} "" // {{{ 1760 1 0 "2b34c636_9773_4402_8fd0d80e8e59a895" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), deviceID); // }} "" // {{{ 1761 1 0 "4c2c8841_c6aa_4251_8a5ed1779b1765d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), lockID); // }} "" // {{{ 1762 1 0 "2e056cb3_6e45_472f_941192498b7c31ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DevicePort"), devicePort); // }} "" // {{ 1763 1 0 "75c4377e_b6a8_46a7_86cfdaf26b6d776c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_98A35EFCD37248b1B012607FF3DA1CE8 ; err.Clear(); // }} "" // {{ 1764 1 0 "cf693124_ada7_4227_83a65fd796aad473" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1765 1 0 "c528ef40_ed5d_44ea_872548cf37945e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Inheco_ODTC::Standard::CloseDoor(deviceID, lockID, o_stepReturn, Translate("")); // }} "" // {{ 1766 1 0 "65a3b89e_1b63_4b73_95bf01dc264bc0a1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1767 1 0 "75c4377e_b6a8_46a7_86cfdaf26b6d776c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_98A35EFCD37248b1B012607FF3DA1CE8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1768 1 0 "75c4377e_b6a8_46a7_86cfdaf26b6d776c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1769 1 0 "27f20475_7330_474c_af5ce01884a6fc00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Return: "), o_stepReturn); // }} "" // {{{ 1770 1 0 "b0b8a63a_0d26_4c0c_9a317c11debf8a6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceID, Translate(""), Translate(""), id); // }} "" // {{ 1771 1 0 "8b7534f2_d374_4cb4_b2f29ea0ad511934" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1772 1 0 "04472016_2334_4ac7_b97384c436334c47" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1773 1 0 "6d35cd31_d0bc_4ce0_86bac129341398b0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1774 1 0 "c407c1df_8f79_4d9d_aa67755a7c84d84c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Terminate") { // }} "" // {{{ 1775 1 0 "75ee861f_97cf_48bc_9b87bb7c11d4c405" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), deviceID); // }} "" // {{ 1776 1 0 "8ddb835b_1ada_4fae_8e1f8635e5672098" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E967888677E5436bBCE1B93EA5815BA3 ; err.Clear(); // }} "" // {{ 1777 1 0 "52f57dc1_aea4_42ba_9972baa4a1952ecd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1778 1 0 "aa96f9e7_7224_4444_abbc61e11b44980e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Inheco_ODTC::Standard::GetStatus(deviceID, Translate(""), o_stepReturn2, Translate(""), Translate(""), o_stepReturn3, o_stepReturn, Translate("")); // }} "" // {{ 1779 1 0 "e1dbe03c_f61a_40c4_9a59b445bf81afa8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1780 1 0 "8ddb835b_1ada_4fae_8e1f8635e5672098" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E967888677E5436bBCE1B93EA5815BA3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1781 1 0 "8ddb835b_1ada_4fae_8e1f8635e5672098" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 1782 1 0 "6179b193_b408_4db4_962fd10c6bd43051" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1783 1 0 "4af3db01_1de8_44f5_8eb16f75ddf0a00e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Return: "), o_stepReturn); // }} "" // {{{ 1784 1 0 "95a24b5f_90a1_4ced_a0835d6ab7d0a43e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1785 1 0 "c407c1df_8f79_4d9d_aa67755a7c84d84c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1786 1 0 "6d35cd31_d0bc_4ce0_86bac129341398b0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1787 1 0 "cea27f6a_6202_4806_aaa7a3b17e1cceeb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1788 1 0 "b9692b2d_afef_4eee_8cd6bbaa2b22ef70" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Abort") { // }} "" // {{{ 1789 1 0 "fe9456e9_c14d_4105_8de2fe0dfb6fff4f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), deviceID); // }} "" // {{{ 1790 1 0 "d015b775_0696_4d61_8f3fa2cdf262edab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), lockID); // }} "" // {{{ 1791 1 0 "1c2fb381_3517_466b_a24f2ea84b44de18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DevicePort"), devicePort); // }} "" // {{ 1792 1 0 "2fa27ab3_6c09_446c_b3d6c1286dd1e907" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_24DE853C218046a3ADA1DA3BBD18A629 ; err.Clear(); // }} "" // {{ 1793 1 0 "a5ff8727_9afc_4c1e_bb8ab84d41a7ded5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1794 1 0 "d0941df9_fe1a_442a_960b6bc41fca1ac1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Inheco_ODTC::Standard::Abort(deviceID, lockID, o_stepReturn, Translate("")); // }} "" // {{ 1795 1 0 "195b0a55_8f81_46fe_97a9dc143ebaf469" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1796 1 0 "2fa27ab3_6c09_446c_b3d6c1286dd1e907" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_24DE853C218046a3ADA1DA3BBD18A629 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1797 1 0 "2fa27ab3_6c09_446c_b3d6c1286dd1e907" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1798 1 0 "799f239d_180d_4bb6_a6a878f5a861068e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Return: "), o_stepReturn); // }} "" // {{{ 1799 1 0 "57049679_e6cf_4764_83c6956cef384cbc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceID, message, Translate(""), id); // }} "" // {{ 1800 1 0 "b9692b2d_afef_4eee_8cd6bbaa2b22ef70" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1801 1 0 "cea27f6a_6202_4806_aaa7a3b17e1cceeb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1802 1 0 "bbde16fa_1d73_4832_bc7d7ad46c5244e1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1803 1 0 "fcfa3eda_6490_4777_b35dae50357b68a0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_DownloadProtocol") { // }} "" // {{{ 1804 1 0 "81250e91_432e_48d0_ab518c1bb5da8ecd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), deviceID); // }} "" // {{{ 1805 1 0 "7ebb5dd7_0052_43af_882b3dd5a2415142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), lockID); // }} "" // {{{ 1806 1 0 "47317177_f36d_4638_b78eeccf729a96f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ProtocolFile"), protocolFile); // }} "" // {{ 1807 1 0 "c689daaa_a96b_4d66_9730c91434e7094a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E1B6F7DA02D44acbAD4BE64ABC64E74D ; err.Clear(); // }} "" // {{ 1808 1 0 "36ba761f_bdb0_45a3_b8c0badbf5dd96ab" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1809 1 0 "c80101c4_af9e_463a_896d4303268934e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Inheco_ODTC::Standard::DownloadProtocol(deviceID, lockID, protocolFile, o_stepReturn, Translate("")); // }} "" // {{ 1810 1 0 "6d95f288_f880_4c39_8f61befd840cb10a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1811 1 0 "c689daaa_a96b_4d66_9730c91434e7094a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E1B6F7DA02D44acbAD4BE64ABC64E74D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1812 1 0 "c689daaa_a96b_4d66_9730c91434e7094a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1813 1 0 "ecba2d11_3115_4243_a64074fe06076e96" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Return: "), o_stepReturn); // }} "" // {{{ 1814 1 0 "2e8d85c2_1553_4fde_adb81ef825d9b32d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1815 1 0 "fcfa3eda_6490_4777_b35dae50357b68a0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1816 1 0 "bbde16fa_1d73_4832_bc7d7ad46c5244e1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1817 1 0 "55c0c900_6871_4573_82b9938e7baa42e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1818 1 0 "d32734e6_9c91_415a_a6a53eaba40eaa3e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_ExecuteMethod") { // }} "" // {{{ 1819 1 0 "eff63a19_b029_49f2_8bab1ac42ef51240" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), deviceID); // }} "" // {{{ 1820 1 0 "8b13f168_f552_49a4_9dbdc74ba5fed2a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), lockID); // }} "" // {{{ 1821 1 0 "6256e4a8_da6b_43bf_bed0f1ae7c6f7d3a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("MethodName"), methodName); // }} "" // {{{ 1822 1 0 "d4b98bee_2d76_4522_b708589248c0e654" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Priority"), priority); // }} "" // {{ 1823 1 0 "99db9a23_1346_4161_8e1c68f410771f0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_D2AE7D31B0424f57A9167DDBE2CF30D1 ; err.Clear(); // }} "" // {{ 1824 1 0 "ed849a54_f9a3_40fe_8071436c107f85eb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1825 1 0 "f2fdd280_d272_4cc9_96022f3df788eda1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Inheco_ODTC::Standard::ExecuteMethod(deviceID, lockID, methodName, priority, duration, requestID, o_stepReturn, Translate("")); // }} "" // {{ 1826 1 0 "976fe86d_5a1f_4b91_8ae22c592dd1f8f0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1827 1 0 "99db9a23_1346_4161_8e1c68f410771f0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_D2AE7D31B0424f57A9167DDBE2CF30D1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1828 1 0 "99db9a23_1346_4161_8e1c68f410771f0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1829 1 0 "34c90e26_86ba_42a0_842eee0f57553ef3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Return: "), o_stepReturn); // }} "" // {{{ 1830 1 0 "ce59df92_f001_4c34_9d4fec898620ca47" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, duration, requestID, Translate(""), id); // }} "" // {{ 1831 1 0 "d32734e6_9c91_415a_a6a53eaba40eaa3e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1832 1 0 "55c0c900_6871_4573_82b9938e7baa42e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1833 1 0 "36d44529_a5b7_4ea6_9eb0fa9881323be7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1834 1 0 "6f1c7e60_6f87_4777_90d9ecc57da20644" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Initialize") { // }} "" // {{{ 1835 1 0 "06173b0e_46f2_4b81_809d6b2b7a2e6673" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), deviceID); // }} "" // {{{ 1836 1 0 "383a416b_7a79_4dff_a03b4bc9ea311d78" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), lockID); // }} "" // {{ 1837 1 0 "88994d6c_edc7_4102_9b6542e221104600" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_20CB63FD66CF4ea5929D0350D6A5F774 ; err.Clear(); // }} "" // {{ 1838 1 0 "11e4ed95_77ed_4e7a_aa715b052c88af28" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1839 1 0 "bdd41290_5cbf_4006_b5dd96522fb78859" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Inheco_ODTC::Standard::Initialize(deviceID, lockID, o_stepReturn, Translate("")); // }} "" // {{ 1840 1 0 "307ddff7_ff15_414a_8c98b6f1ef0a2b5f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1841 1 0 "88994d6c_edc7_4102_9b6542e221104600" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_20CB63FD66CF4ea5929D0350D6A5F774 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1842 1 0 "62f6fd20_e942_452f_85b06d21964397b5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1843 1 0 "88994d6c_edc7_4102_9b6542e221104600" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1844 1 0 "a9f5bbb4_1ebb_406f_89a9d1624652977a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Return: "), o_stepReturn); // }} "" // {{{ 1845 1 0 "54bc78fc_f428_4878_97860b3d1007a218" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1846 1 0 "6f1c7e60_6f87_4777_90d9ecc57da20644" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1847 1 0 "36d44529_a5b7_4ea6_9eb0fa9881323be7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1848 1 0 "cb500df2_c626_4a9d_9cb3b4a581e64d6a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1849 1 0 "843d5e01_a8ab_46f2_8bfb55bfc6367cbc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_OpenDoor") { // }} "" // {{{ 1850 1 0 "386d4caa_b6c4_408d_bc453580f02089da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), deviceID); // }} "" // {{{ 1851 1 0 "6f57bef3_9f3e_4b1f_b3a07faf26ee3110" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), lockID); // }} "" // {{ 1852 1 0 "10debdc1_8d3e_49c7_be0762aaf26c32cc" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_6BA09E86AB664b3e892F98E97F2910C8 ; err.Clear(); // }} "" // {{ 1853 1 0 "acbc3c46_2bc2_4204_b855623e16b37413" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1854 1 0 "6a0b242c_0e86_4d72_a842ff1b3299fde0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Inheco_ODTC::Standard::OpenDoor(deviceID, lockID, o_stepReturn, Translate("")); // }} "" // {{ 1855 1 0 "849a0ec5_4ea1_4f2f_8e0ae11e6f9cb7a3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1856 1 0 "10debdc1_8d3e_49c7_be0762aaf26c32cc" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_6BA09E86AB664b3e892F98E97F2910C8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1857 1 0 "10debdc1_8d3e_49c7_be0762aaf26c32cc" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1858 1 0 "0f2e84c5_c429_44c0_9abf7635046a446b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Return: "), o_stepReturn); // }} "" // {{{ 1859 1 0 "5d779f95_30c2_4634_bdb5901251385c11" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1860 1 0 "843d5e01_a8ab_46f2_8bfb55bfc6367cbc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1861 1 0 "cb500df2_c626_4a9d_9cb3b4a581e64d6a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1862 1 0 "ef7a40e3_cee8_4bd1_91324713f293a4d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1863 1 0 "888492c1_f818_41ee_96a72bdf8798cccc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_waitForEndOfExecuteMethod") { // }} "" // {{{ 1864 1 0 "44085f26_5b2c_4ac3_84928ea19e338ba9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), deviceID); // }} "" // {{{ 1865 1 0 "fb95387c_64e3_4af6_b4d7b0b69c02d39f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), lockID); // }} "" // {{{ 1866 1 0 "0c4f27e4_11bf_4141_be4a9cb76b52e80e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("RequestID"), requestID); // }} "" // {{ 1867 1 0 "921d4699_674f_47e7_97356ef90119416a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_435E9CD35EF249e58B828482589769E0 ; err.Clear(); // }} "" // {{ 1868 1 0 "c3b4e9f5_667f_400f_8ab8a2510bd2b7e6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1869 1 0 "a9a7b100_d412_43b7_972bc694b82d959c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Inheco_ODTC::Standard::WaitForEndOfExecuteMethod(deviceID, timeout, requestID, o_stepReturn, Translate("")); // }} "" // {{ 1870 1 0 "f477df33_3c5f_485f_bc61d59b6e5b70f4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1871 1 0 "921d4699_674f_47e7_97356ef90119416a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_435E9CD35EF249e58B828482589769E0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1872 1 0 "921d4699_674f_47e7_97356ef90119416a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1873 1 0 "f4e4a5b7_bf7b_4f09_bc8e5f91513aaa4d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Return: "), o_stepReturn); // }} "" // {{{ 1874 1 0 "a2582389_f9ce_451d_98578dfe7fafc84c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1875 1 0 "888492c1_f818_41ee_96a72bdf8798cccc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1876 1 0 "ef7a40e3_cee8_4bd1_91324713f293a4d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1877 1 0 "ef118189_0ff9_4311_a6023bd61fe99ee4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1878 1 0 "a736de0b_14af_4235_ae8b4dc5057cfa8c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Terminate") { // }} "" // {{{ 1879 1 0 "9bcea113_3491_4ed6_a4111f93ec051e08" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), deviceID); // }} "" // {{ 1880 1 0 "bc255b34_a0e8_4572_8e19d2a9c3d18d0d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_6B01BAACC0FD48dfB8840D0FFC335B09 ; err.Clear(); // }} "" // {{ 1881 1 0 "59941e76_2cb5_4271_be469625a426a9a4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1882 1 0 "be13102d_c514_4197_be7cac46ae712db2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Inheco_ODTC::Standard::Terminate(deviceID, Translate("")); // }} "" // {{ 1883 1 0 "3ff1d1af_ac7d_4a89_b7edb4e5f4da6887" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1884 1 0 "bc255b34_a0e8_4572_8e19d2a9c3d18d0d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_6B01BAACC0FD48dfB8840D0FFC335B09 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1885 1 0 "bc255b34_a0e8_4572_8e19d2a9c3d18d0d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 1886 1 0 "49e428d8_f2ec_4313_a2543b0266b3cfe7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1887 1 0 "475b54aa_4e8e_4c09_8360f969f25fc22f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Return: "), o_stepReturn); // }} "" // {{{ 1888 1 0 "9d3b7346_0019_4f6d_a29a3a79b8984553" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1889 1 0 "a736de0b_14af_4235_ae8b4dc5057cfa8c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1890 1 0 "ef118189_0ff9_4311_a6023bd61fe99ee4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1891 1 0 "c26c8847_2c11_4945_b054d8f2644e86b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1892 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1893 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1894 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_BeginMonitoring") { // }} "" // {{{ 1895 1 0 "7dd862dc_f7f1_4600_94ca9b83762673dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1896 1 0 "d37d14e5_261f_418c_81f754eb75bf4920" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingToleranceRange"), shakingToleranceRange); // }} "" // {{{ 1897 1 0 "0919ceb3_189a_4885_93c8faeab9f9538b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sampleInterval"), sampleInterval); // }} "" // {{{ 1898 1 0 "bc3a749e_e1bb_4c4a_9aac06834d85080f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("action"), action); // }} "" // {{ 1899 1 0 "98795c5d_e3e5_4d8c_bba032968c530136" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1900 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ; err.Clear(); // }} "" // {{{ 1901 1 0 "a2a0a3bb_c0cf_4123_afe36d1d51ae233c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action); // }} "" // {{ 1902 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3202FD4CC34D478f892F31C7684340BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1903 1 0 "435e7414_9170_4bf9_bd0ac83f0ab51fad" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1904 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1905 1 0 "c00b8635_652d_48ca_8d345ed070306b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1906 1 0 "85ac1487_5644_4bae_b032f5c191aa47c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1907 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1908 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1909 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1910 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateStarDevice") { // }} "" // {{{ 1911 1 0 "4c3dfdd2_2dd6_4c5f_831f92590c13e82e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1912 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ; err.Clear(); // }} "" // {{{ 1913 1 0 "cc3d4234_12d6_486a_a110c8ede0e3059b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber); // }} "" // {{ 1914 1 0 "f17e82ff_88ef_4685_bf6f75a8ca0e32f6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1915 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1916 1 0 "c0256452_8d47_4f97_9e9c2250a44934d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1917 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1918 1 0 "7699b24c_5ec6_4cca_b1cb9aed9ce60247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1919 1 0 "85155966_9554_40cb_9693f9b0a11b25a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1920 1 0 "d049e779_0761_471d_9f7b8af0967d1633" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1921 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1922 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1923 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1924 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateUSBDevice") { // }} "" // {{{ 1925 1 0 "72f0a762_2550_45ad_bea063f4f72a9fe9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1926 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ; err.Clear(); // }} "" // {{{ 1927 1 0 "6957e247_4f64_4971_8d90658c99adbb87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber); // }} "" // {{{ 1928 1 0 "34cc8f4a_c310_4eb7_b936c63f8401c523" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1929 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_98100824AA704d26AB40A6BADEF39F48 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1930 1 0 "058f8bb4_5fe3_4a6b_a36e899c2a89656f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1931 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1932 1 0 "a9b4c19d_dcc0_42d7_9a51e3241ef647f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return:"), o_stepReturn); // }} "" // {{{ 1933 1 0 "d303212f_1f38_442d_a24eee709cf4cdc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1934 1 0 "7356ec1e_8437_4679_94613ac2bea4fe0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1935 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1936 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1937 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1938 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_EndMonitoring") { // }} "" // {{{ 1939 1 0 "4293ef15_cfcd_4e29_b9b02afae2d471f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1940 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ; err.Clear(); // }} "" // {{{ 1941 1 0 "dd7d7b00_1e95_4e45_97a425f03a18ab04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult); // }} "" // {{{ 1942 1 0 "0021495f_472e_4321_9d1e81e8fbd43f0c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1943 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1944 1 0 "aabeb82e_70d9_42f7_901f3fe114094e0a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1945 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1946 1 0 "ce89bf49_b865_4c3f_a97eba220b5a7d33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS End Monitoring step return:"), o_stepReturn); // }} "" // {{{ 1947 1 0 "05229af2_f20a_42ce_908ec8445f3f9dd2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(""), Translate(""), id); // }} "" // {{ 1948 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1949 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1950 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1951 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetFirmwareVersion") { // }} "" // {{{ 1952 1 0 "942a1cc2_d956_47fa_9a9ffed1e856a632" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1953 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ; err.Clear(); // }} "" // {{ 1954 1 0 "f6b3cc8e_f852_4a96_9567a4fa67e846e8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1955 1 0 "c70f5e07_0eeb_45e5_af26714895e2df88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion); // }} "" // {{ 1956 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1957 1 0 "96886e69_ba07_45e3_96353112dc429afc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1958 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1959 1 0 "7de3b86c_c16d_4932_beedfb948b5d85f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(""), Translate(""), id); // }} "" // {{ 1960 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1961 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1962 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1963 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetSerialNumber") { // }} "" // {{{ 1964 1 0 "38b7d0d7_7cce_4157_8abc70dfb62eefa5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1965 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ; err.Clear(); // }} "" // {{ 1966 1 0 "08061228_63f2_47d2_a601ba16d6a1a142" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1967 1 0 "0bbfb488_9723_4a08_9b90171dbec6117a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber); // }} "" // {{ 1968 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2434A44DB44B48ff82A9F66DE34C5041 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1969 1 0 "4cf5e7f7_9567_4e6b_a206bf6f8962c785" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1970 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1971 1 0 "311e5a04_1ac3_443c_bdc51c5cdc4c44f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(""), Translate(""), id); // }} "" // {{ 1972 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1973 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1974 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1975 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerParameter") { // }} "" // {{{ 1976 1 0 "f3888a0b_86ea_4c4a_891e1755a6e78556" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1977 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ; err.Clear(); // }} "" // {{ 1978 1 0 "693cec94_9d14_4bff_8e4868a3b27f0245" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1979 1 0 "e993ed67_92ed_4c85_bd33f90aac53dfb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3); // }} "" // {{ 1980 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1981 1 0 "bd4bffe6_9161_4f42_b0b53307549f4286" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1982 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1983 1 0 "6efd49bf_48c7_437b_8fee57487345eaee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1984 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1985 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1986 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1987 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerSpeed") { // }} "" // {{{ 1988 1 0 "e1c29a26_0656_46e3_b0a412143047bd26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1989 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ; err.Clear(); // }} "" // {{{ 1990 1 0 "c0166b97_c0ae_417b_85c90c5ef42e5fc6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2); // }} "" // {{{ 1991 1 0 "73777071_2fd2_42b0_a7545c6a6a372194" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1992 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1993 1 0 "fb8e630b_9519_4b3d_94eabf1311546383" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1994 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1995 1 0 "41ba2513_e3c2_485c_821198419c3fe286" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1996 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1997 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1998 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1999 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTempParameter") { // }} "" // {{{ 2000 1 0 "09fb30ea_33e9_486d_96945af4798859ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 2001 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ; err.Clear(); // }} "" // {{ 2002 1 0 "7e342beb_ebbe_4873_bf53c50f29cbaa0e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 2003 1 0 "c8f45788_ef99_414d_a41d29a20583a067" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 2004 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C16E1CF8298042f0A01D1040DC911015 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2005 1 0 "b845f534_5a22_4076_b36069f70af90742" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2006 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2007 1 0 "4793211e_93d2_43e6_b4d25d7e0ae3e104" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 2008 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2009 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2010 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2011 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperature") { // }} "" // {{{ 2012 1 0 "01d1add6_c167_4137_8f0c285cd6ad9bed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 2013 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ; err.Clear(); // }} "" // {{{ 2014 1 0 "ecd6d069_96d7_4a72_9ffc0df77e7a1512" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2); // }} "" // {{{ 2015 1 0 "b05c868f_c25f_47a9_b533b13ab05fc962" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 2016 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_14A2AAD200434d69970AC483BD08B64F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2017 1 0 "cabbe1ee_c5d4_49dd_90875673900d6120" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2018 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2019 1 0 "234847f1_2f0a_4e64_856b9edefcebb425" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 2020 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2021 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2022 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2023 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperatureState") { // }} "" // {{{ 2024 1 0 "82a233ab_0392_4ebb_9a809d80aae38e44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 2025 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ; err.Clear(); // }} "" // {{{ 2026 1 0 "c99aa2b7_d8a6_4cee_a1fa1d731ef77d25" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2); // }} "" // {{{ 2027 1 0 "f2861b4d_28d2_4ee3_8b7c7763312067ab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 2028 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_50485390A50647818ED2D3934FBC87E3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2029 1 0 "f56ee559_1221_4f5a_ad332d0e44502aff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2030 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2031 1 0 "31a69f44_1a59_49ce_a78763f3aa936042" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 2032 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2033 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2034 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2035 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SendFirmwareCommand") { // }} "" // {{{ 2036 1 0 "11546c32_6ddd_4250_9b8750c9679e5b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 2037 1 0 "06688598_f10e_41e9_8a2c6d3dff7b7aae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), command); // }} "" // {{{ 2038 1 0 "15a58509_ec93_4677_b1858cadeac42d10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("parameter"), parameter); // }} "" // {{ 2039 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ; err.Clear(); // }} "" // {{{ 2040 1 0 "a650efc1_423b_4f75_9f0da083ee44ae9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter); // }} "" // {{{ 2041 1 0 "e1ef0806_8a47_46c1_972c9ed9e299eaad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 2042 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_84EE5E4228B140f599748D1271CBB0F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2043 1 0 "c9bd9645_5a05_4cc6_95997f787c8772d6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2044 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2045 1 0 "8b5634c2_e1da_41d3_83c57142f4cae999" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2046 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2047 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2048 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2049 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetPlateLock") { // }} "" // {{{ 2050 1 0 "927ddf67_5dbd_432b_b8cf6117a3109b06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 2051 1 0 "a3eee1ac_7024_473b_a6eb8a2e9b461a66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("plateLock"), plateLock); // }} "" // {{ 2052 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ; err.Clear(); // }} "" // {{{ 2053 1 0 "b417b8ce_5117_450e_93a9a6243c6011d8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock); // }} "" // {{{ 2054 1 0 "ed43cecb_7012_4fb9_a89d129de09bdadb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 2055 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2056 1 0 "4eb95522_37fd_4802_af85a620dc874526" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2057 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2058 1 0 "945560ed_40bf_44a9_851fead4c1943f9f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2059 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2060 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2061 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2062 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetShakerParameter") { // }} "" // {{{ 2063 1 0 "8a0e14c1_f6c6_4fb8_94094498cccd7991" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 2064 1 0 "1810a83f_3fc2_4c49_9d5502fbdfc743e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingDirection"), shakingDirection); // }} "" // {{{ 2065 1 0 "c3053579_8645_474f_8c05459eed975362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingAccRamp"), shakingAccRamp); // }} "" // {{ 2066 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ; err.Clear(); // }} "" // {{ 2067 1 0 "32b90a07_0607_448d_9767de1d96e31862" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 2068 1 0 "77463ac5_e629_4772_98004edef4016a6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp); // }} "" // {{ 2069 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2070 1 0 "5593fd2a_c1e7_4565_bcae82458768dd51" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2071 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2072 1 0 "5ed72ec4_1b60_4258_969b44c995450ec1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2073 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2074 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2075 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2076 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetSimulation") { // }} "" // {{{ 2077 1 0 "941f9e19_ca94_4ede_9719205aeb876593" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{ 2078 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ; err.Clear(); // }} "" // {{ 2079 1 0 "f56567fc_04c1_4645_aee22aa5f22a9f8c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 2080 1 0 "41b0c1a2_60aa_4f16_8901c300e9a3dc14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetSimulation(simulate); // }} "" // {{ 2081 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2082 1 0 "35803a11_c620_485a_8196cc2822dddb3f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2083 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2084 1 0 "2e7a9d5f_51df_4c49_bb1986da7e14cd48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2085 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2086 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2087 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2088 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetTempParameter") { // }} "" // {{{ 2089 1 0 "99447b6e_9293_483d_bbd7ddee96870904" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 2090 1 0 "f55d7581_a005_45e4_9b3d7f7473323e6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("startTimeout"), startTimeout); // }} "" // {{{ 2091 1 0 "7192db12_8543_4c8b_81b98b57ce21118d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("toleranceRange"), toleranceRange); // }} "" // {{{ 2092 1 0 "8f6d922f_f2ae_43c6_8682df15e6b7c07c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("securityRange"), securityRange); // }} "" // {{ 2093 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ; err.Clear(); // }} "" // {{ 2094 1 0 "a2342046_552f_4003_a1cc262161964a6e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 2095 1 0 "57eb738a_6eb2_4f04_b25bd7f7f64a8179" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange); // }} "" // {{ 2096 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2097 1 0 "94c928dd_6dcb_4540_a6cbfdf48e37430c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2098 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2099 1 0 "90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2100 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2101 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2102 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2103 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetUSBTrace") { // }} "" // {{{ 2104 1 0 "0691ecbd_49b4_4590_91d60e614290ec34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("trace"), intTrace); // }} "" // {{ 2105 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ; err.Clear(); // }} "" // {{ 2106 1 0 "aeed4685_8812_4dce_89e2c35429d4c401" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 2107 1 0 "24723a79_741b_46be_830fe654c08d6d1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetUSBTrace(intTrace); // }} "" // {{ 2108 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FE6D15E135D24fd7A06908E89474B650 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2109 1 0 "32d09876_dcdb_4d67_b5e72a63e14fec19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2110 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2111 1 0 "cda0d06f_dce0_47ad_bbb419c58aba260e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2112 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2113 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2114 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2115 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShaker") { // }} "" // {{{ 2116 1 0 "503e1c47_5f15_42bd_8eaad1057de68ef6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 2117 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ; err.Clear(); // }} "" // {{{ 2118 1 0 "73be1c30_4bfe_4a0f_aa560c8df5b091fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartAllShaker(shakingSpeed); // }} "" // {{{ 2119 1 0 "39ac643d_0305_4ec6_87fc196efe3d76f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 2120 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2121 1 0 "c35cdd37_7a73_4008_b9d0ac550c926428" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2122 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2123 1 0 "ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2124 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2125 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2126 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2127 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShakerTimed") { // }} "" // {{{ 2128 1 0 "db6b6c2e_da48_4c64_bdddc80ba5a28921" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 2129 1 0 "f6f42906_5ded_4a05_8f9a11fac18f7f10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 2130 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ; err.Clear(); // }} "" // {{{ 2131 1 0 "272104de_2e64_4a32_a88407b030437361" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime); // }} "" // {{{ 2132 1 0 "1362f66b_0efd_4eb5_935e84586a427637" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 2133 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2134 1 0 "ef7c31f9_e307_450a_851111f26afd2e91" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2135 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2136 1 0 "d73f1476_bf95_4d48_89849f295a9e4d0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2137 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2138 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2139 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2140 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShaker") { // }} "" // {{{ 2141 1 0 "f958f5a5_d1c5_4e9e_9262e708f24940c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 2142 1 0 "2ce1189b_e54a_48c0_aafc2932409c0b9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 2143 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ; err.Clear(); // }} "" // {{{ 2144 1 0 "cf1b40c4_5e9a_48bf_9390f6eab212315f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed); // }} "" // {{{ 2145 1 0 "2e7a5304_5ce9_4afb_93a4a8276dc86d74" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 2146 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2147 1 0 "9b93a06b_e4df_4eca_84467ca6c7f0c0ce" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2148 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2149 1 0 "4b0b48f9_3855_4eab_8f22b0902846d750" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2150 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2151 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2152 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2153 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShakerTimed") { // }} "" // {{{ 2154 1 0 "858c7861_9fb0_490e_9646b9eb190706d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 2155 1 0 "327bd0c6_60a8_4fd1_9ef81e2a21d904a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 2156 1 0 "83a6d58d_c761_484f_871c9c2229a6d3d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 2157 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ; err.Clear(); // }} "" // {{{ 2158 1 0 "4b29337f_c67c_4ecf_a205f4b70e60271a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); // }} "" // {{{ 2159 1 0 "40aad8b7_f42e_4ad1_b0f0c033ec666548" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 2160 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_29447729262E4e0f8B347F6640716D96 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2161 1 0 "f383d799_1d15_4348_8a2dc84422f46ff2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2162 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2163 1 0 "f539df09_de1d_4fd8_9ac041897fab0333" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2164 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2165 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2166 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2167 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartTempCtrl") { // }} "" // {{{ 2168 1 0 "dc338e01_6b43_4fe3_bda98d2b0a1a65e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 2169 1 0 "04239a09_93a5_4f75_80f95d178bdf9cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("temperature"), temperature); // }} "" // {{{ 2170 1 0 "0387745b_87be_4ec6_912b0b4decaa257b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("waitForTempReached"), waitForTempReached); // }} "" // {{ 2171 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ; err.Clear(); // }} "" // {{{ 2172 1 0 "dfb61f9c_103b_4c42_83e0779ea05cb180" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached); // }} "" // {{{ 2173 1 0 "e4829da3_d8b6_453f_a2be82213303e9f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 2174 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_764F491C76DA445383E5490AB126ADB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2175 1 0 "21dd8d34_e764_4a0f_b34ccecf089437dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2176 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2177 1 0 "bfde731d_b581_4488_b4cb7f4873675d7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2178 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2179 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2180 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2181 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopAllShaker") { // }} "" // {{ 2182 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ; err.Clear(); // }} "" // {{{ 2183 1 0 "ee3103a2_d7f3_488f_b7a95e2f2b56770a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{{ 2184 1 0 "a782313c_e15b_4340_bdda314f926e24cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 2185 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2186 1 0 "45d1f212_46b9_4976_83503edf5606c88e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2187 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2188 1 0 "5706daca_363f_417f_9103f7ddd16c1444" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2189 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2190 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2191 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2192 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopShaker") { // }} "" // {{{ 2193 1 0 "1cdead0d_9944_446b_bd59d491b15242b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 2194 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ; err.Clear(); // }} "" // {{{ 2195 1 0 "b5ecca33_fef4_4c14_9cf702c924839607" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StopShaker(deviceNumber); // }} "" // {{{ 2196 1 0 "49e72e72_8e49_49fd_8d212a6ccff1d2fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 2197 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2198 1 0 "1fe83710_037b_4157_82a99e6aaf08edcb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2199 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2200 1 0 "6ffd1f39_ec63_4f9c_a7687447aff79f80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2201 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2202 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2203 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2204 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopTempCtrl") { // }} "" // {{{ 2205 1 0 "b16ab946_2ba9_4900_bd6f9ede31edf6ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 2206 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B5957B02990845739642D8C604B0B582 ; err.Clear(); // }} "" // {{{ 2207 1 0 "d186dde8_c684_4550_a023d9023ff021d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StopTempCtrl(deviceNumber); // }} "" // {{{ 2208 1 0 "af12e4a9_cc0f_4a82_b9593d2b489756a8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 2209 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B5957B02990845739642D8C604B0B582 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2210 1 0 "28b1d8d1_83cc_4627_9146c7398c601938" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2211 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2212 1 0 "11f3231a_40df_4c14_92585ab8016165e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2213 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2214 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2215 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2216 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_Terminate") { // }} "" // {{ 2217 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ; err.Clear(); // }} "" // {{ 2218 1 0 "b1da178c_1267_4c8c_b1cd24bfa10a11fb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 2219 1 0 "910932e3_2b76_41cf_9dccecb799f2d649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::Terminate(); // }} "" // {{ 2220 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_919FCF7F89804c398972DAFE2605D286 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2221 1 0 "697e84e2_525e_4045_83bb3825b36f6b2f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2222 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2223 1 0 "4edde3c1_4f65_4403_a54985d84f6d80f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2224 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2225 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2226 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2227 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForShaker") { // }} "" // {{{ 2228 1 0 "87872be5_4e84_4b7b_98a3e7147a66f6a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 2229 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ; err.Clear(); // }} "" // {{{ 2230 1 0 "3b2abeec_38f4_46a6_a30b0d0126280ebc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::WaitForShaker(deviceNumber); // }} "" // {{{ 2231 1 0 "c4e94e42_8405_438b_921cfe4ba73e9976" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 2232 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2233 1 0 "c08ab14c_3879_4f65_ad7085e45f74a6df" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2234 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2235 1 0 "96b99051_5c80_421c_a02e0bd238da1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2236 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2237 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2238 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2239 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForTempCtrl") { // }} "" // {{{ 2240 1 0 "881e7d69_50e3_4e42_89eafece562ac009" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 2241 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ; err.Clear(); // }} "" // {{{ 2242 1 0 "5aa60a5a_db92_42e0_b3277a41cacb5336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber); // }} "" // {{{ 2243 1 0 "49cd8e9e_91bd_468c_aec57e3af40280fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 2244 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_088C7630997A4749A400740DA66CBA0C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2245 1 0 "de7dad67_0b6c_47eb_af5a68302431ff1e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2246 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2247 1 0 "aeb529e0_2eaf_4686_9528342b58318a5d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2248 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2249 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2250 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2251 1 0 "1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONFromServer); // }} "" // {{ 2252 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2253 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "end") { // }} "" // {{{ 2254 1 0 "6db67a5a_6aa2_4087_875823acfff0fac4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Good Bye!")); // }} "" // {{ 2255 1 0 "4c7e40d6_02a6_451d_b28230ec71e40ce1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2256 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2257 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2258 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2259 1 0 "6fb90145_24c3_46ba_88b839e0215d0bf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{ 2 "AutoExitBlock" "" STAR_OEM_TOOLKIT::_ExitLibrary(); STAR_OEM_TOOLKIT_PH::_ExitLibrary(); STAR_OEM_TOOLKIT_CENTRIFUGE::_ExitLibrary(); STAR_OEM_TOOLKIT_MPE::_ExitLibrary(); HAMILTON_PH_MODULE_CONTROLLER::_ExitLibrary(); LPQ::_ExitLibrary(); // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=Stefan.Golas$$valid=0$$time=2025-10-16 10:24$$checksum=9da6c249$$length=089$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/STAR_OEM_noFan.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" private function ArrayToString( variable & i_array[], variable & o_str ) void ; private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ; private function BuildCorrectionCurve( variable & o_correctionCurveNominalArray[], variable & o_correctionCurveCorrectedArray[] ) void ; private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ; private function ConvertHSSErrCode( variable hssErrCode ) variable ; private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ; private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void ; function SendTextMessageToServer( variable str ) void ; private function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; private function waitForGUItoContinue( ) variable ; function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 2442 1 0 "c8aa765a_4840_468a_9e928b44fa79d891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{{ 5 "OnAbort" "End" } // }} "" // {{{ 5 "SendTextMessageToServer" "Begin" function SendTextMessageToServer( variable str ) void { // }} "" private object objJSONObject; private variable strJSON; // {{ 5 "SendTextMessageToServer" "InitLocals" // }} "" // {{{ 2402 1 0 "9d5f9d4a_c104_4b47_964b6d97f981a71e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONObject); // }} "" // {{{ 2403 1 0 "d0a04705_1adc_4919_b95168834c89f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("command"), Translate("message")); // }} "" // {{{ 2404 1 0 "7b9a6cd1_3eee_4085_b3f9548e43fc3424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("text"), str); // }} "" // {{{ 2405 1 0 "6a1c53cf_65ea_4f53_aa2e9111890fecf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONObject, strJSON); // }} "" // {{{ 2406 1 0 "bee8c148_b3ea_490b_8d93d8ed5f24939f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONObject); // }} "" // {{{ 2407 1 0 "b965a2fd_f821_4400_b4c777f558ed0772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendTextMessageToServer" "End" } // }} "" // {{{ 5 "waitForGUItoContinue" "Begin" private function waitForGUItoContinue( ) variable { // }} "" private variable loopCounter1; private variable serverResponse; private timer timer1; // {{ 5 "waitForGUItoContinue" "InitLocals" // }} "" // {{ 2423 1 0 "73328607_d06a_4d7d_8a5df64da06a1bde" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" serverResponse = Translate(""); // }} "" // {{{ 2424 1 0 "2342f8b3_4765_4edc_9fb9f46cbb1fd20b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Waiting for server instructions...")); // }} "" // {{{ 2425 1 0 "216e1039_788e_4830_8588933e6c542ba1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Waiting for server instructions...."), Translate("")); // }} "" // {{ 2426 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounter1 = 0; while (1 == 1) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2427 1 0 "73659ac2_f808_47cc_89196cc3adc8efbf" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" timer1.SetTimerViewName(""); if( 0 == timer1.SetTimer(0.05) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2428 1 0 "cd67277b_4386_4862_8429008a00601693" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 2429 1 0 "6ec592d0_fe02_41a9_8503db5ccf0e5544" "{C1F3C015-47B3-4514-9407-AC2E65043419}" serverResponse = HSLHttp::HttpGET(objHttp, Translate("http://localhost:3221"), Translate("")); // }} "" // {{ 2430 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (serverResponse != "") { // }} "" // {{ 2431 1 0 "9be29cc7_ad35_4b87_9e95d31796325e12" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2432 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2433 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 == 300) { // }} "" // {{ 2434 1 0 "19e5c8f7_a1a9_4348_aa41a572942db630" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2435 1 0 "2a039f02_4c13_4f72_9ba40a3121b31262" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2436 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2437 1 0 "d221d799_ee85_4f6d_a40a06cc0a69a3de" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" timer1.SetTimerViewName(""); if( 0 == timer1.SetTimer(0.05) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2438 1 0 "52bb524e_27b1_4bbe_afcf26453d9eb66f" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2439 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2440 1 0 "809789b0_bd70_4c1f_b0d808ce120b1d99" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (serverResponse); // }} "" // {{{ 5 "waitForGUItoContinue" "End" } // }} "" // {{{ 5 "SendStepReturnToServer" "Begin" private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer" "InitLocals" // }} "" // {{{ 2373 1 0 "2520bd9f_739d_4111_a27d89f8f73ec39e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2374 1 0 "aa6010ec_0628_49d5_a87e016b4a4fc7f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 2375 1 0 "a97c5efa_0ce4_4358_9c51c1893f526b9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 2376 1 0 "deceb871_e830_4b14_86e626f745ef083a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 2377 1 0 "00afb5c2_b5db_4458_866a13b6cb332b68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 2378 1 0 "e52bbd02_b31d_4278_a0f45991eab77d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 2379 1 0 "19f99698_3777_4dcf_9fc765c3f221df4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 2380 1 0 "329f8b9b_0798_44f8_9ee6b65ec58b0c44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2381 1 0 "7728ac0d_8630_4f61_94af076392758ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2382 1 0 "70d261f2_edc4_49a0_a5a074cd5ab92b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2383 1 0 "ee0dd62d_582f_4171_b08e37f6106d9b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer" "End" } // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "Begin" private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void { // }} "" private variable n; private variable loopCounter1; private variable strSinglePosition; private variable arrayOfPositions[]; private variable arraySinglePosition[]; private variable labwareID; private variable positionID; // {{ 5 "BuildTempSequenceFromPositions" "InitLocals" { sequence __temp; o_seq = __temp; } // }} "" // {{ 2315 1 0 "d9022e13_e502_4969_a8ee79484e990801" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arrayOfPositions.SetSize(0); // }} "" // {{{ 2316 1 0 "3e178082_8579_435f_a5db4481bb789d9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strPositions, Translate(";"), arrayOfPositions, 0); // }} "" // {{ 2317 1 0 "5d735f26_db1b_4bea_9ee405f4167bb99f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" n=arrayOfPositions.GetSize(); // }} "" // {{{ 2318 1 0 "f497f24b_fd39_417d_8703c0d54662309f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq); // }} "" // {{ 2319 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2320 1 0 "fd645546_0433_46a0_8619026e338529fd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arraySinglePosition.SetSize(0); // }} "" // {{ 2321 1 0 "91aeb0c4_3176_4356_a19a1027bcdb0af3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1); // }} "" // {{{ 2322 1 0 "c2b42369_7829_4c62_b58880fce7867995" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strSinglePosition, Translate(","), arraySinglePosition, 0); // }} "" // {{ 2323 1 0 "016f61c5_fd76_4c74_903df10a03070f7b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" labwareID=arraySinglePosition.GetAt(1-1); // }} "" // {{ 2324 1 0 "886fc872_7c3a_4366_959db6d5f265ed7c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" positionID=arraySinglePosition.GetAt(2-1); // }} "" // {{{ 2325 1 0 "766a54b4_4c5b_4991_9d8ceea62d26b216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq, labwareID, positionID); // }} "" // {{ 2326 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2327 1 0 "0003c6e9_5b43_438d_bc93be342c3c6b55" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq.SetCurrentPosition(1); // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "End" } // }} "" // {{{ 5 "StrTokenize" "Begin" private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 2417 1 0 "500afe4c_98a8_4117_8c279b9994d0b626" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 2418 1 0 "6a0bd918_2fda_4e4c_a680454ce2576168" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 2419 1 0 "f65ed315_68ed_4ec0_ba0b3c217e692b25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 2420 1 0 "9476acee_e5bb_43d1_bbec232ed01bae08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); // Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "Begin" private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void { // }} "" private variable numOfVolumes; private variable numOfChannelsInVariable; private variable n; private variable loopCounter1; private variable arrSize; private variable loopCounter3; private variable strKeyName; // {{ 5 "BuildArrayOfVolumesForChannels" "InitLocals" o_arrayOfVolumes.SetSize( 0); // }} "" // {{ 2271 1 0 "69288f91_eabd_4d15_af5361636ffacbf6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyName = Translate("volumes"); // }} "" // {{ 2272 1 0 "bf4c1108_6751_41ee_8d3d3b1a9418548f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfVolumes.SetSize(0); // }} "" // {{{ 2273 1 0 "a9cfa743_a769_46a3_b8d7e45a67b3d297" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName); // }} "" // {{ 2274 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arrSize > 0) { // }} "" // {{ 2275 1 0 "594bebbb_0d54_4893_b20d783de743dd44" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2276 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < arrSize;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{{ 2277 1 0 "3bfc9004_2595_4917_b4edcdceed06f518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); // }} "" // {{ 2278 1 0 "6be31b23_f55d_4d15_be6abc9ee4bef664" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" Trace("Volume received=", v); // {{ 2280 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2281 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2282 1 0 "4a4891b3_f877_4b14_85196b7e820554b2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2283 1 0 "22c7c768_33c4_4975_909e9586375bfe8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(strKeyName, v); // }} "" // {{ 2284 1 0 "4e01e62a_13a2_408e_9fbfb2300d5996ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 2285 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2286 1 0 "cc565f65_a92a_43ef_9c052b7f5632aca5" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" numOfVolumes=o_arrayOfVolumes.GetSize(); // }} "" // {{{ 2287 1 0 "e49355fb_3fe6_4c8d_930870416e36b708" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numOfChannelsInVariable = StrGetLength(strChannels); // }} "" // {{ 2288 1 0 "804bc477_e950_4a14_af5f667c73cf5176" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2289 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (numOfVolumes < numOfChannelsInVariable) { // }} "" // {{ 2290 1 0 "2e73355c_8b11_4423_b345807cae9d5db8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" n = numOfChannelsInVariable - numOfVolumes; // }} "" // {{ 2291 1 0 "53a650d8_2fc1_4c5b_bd19eda433c2a81a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" v = o_arrayOfVolumes.ElementAt( numOfVolumes -1); // }} "" // {{ 2292 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2293 1 0 "cd047b15_6a02_40f1_adfb116f6bf5d763" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 2294 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2295 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "End" } // }} "" // {{{ 5 "ArrayToString" "Begin" private function ArrayToString( variable & i_array[], variable & o_str ) void { // }} "" private variable arraySize; private variable loopCounter1; // {{ 5 "ArrayToString" "InitLocals" o_str = 0; // }} "" // {{ 2261 1 0 "1a220255_6ba4_40fb_be39a6a2f4e0065f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 2262 1 0 "f821c4ff_f1a2_4ad7_9bd77dd8652567cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str = Translate(""); // }} "" // {{ 2263 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2264 1 0 "afd84a84_8330_46e7_8308e16b5caa05e9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" v=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 2265 1 0 "77436fd3_3c87_4f09_9a89259b15ef5bf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, v); // }} "" // {{ 2266 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 < arraySize) { // }} "" // {{{ 2267 1 0 "d14fd31e_5de8_46f9_bb359f38de9a08ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, Translate(";")); // }} "" // {{ 2268 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2269 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "ArrayToString" "End" } // }} "" // {{{ 5 "JSON_GetFloatValue" "Begin" private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void { // }} "" private variable retVal; // {{ 5 "JSON_GetFloatValue" "InitLocals" o_KeyFloatValue = 0; // }} "" Trace("getfloatvalue"); // {{{ 2335 1 0 "8f2f8625_6c9e_4c47_b4698d29df60004a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" // {{ 2336 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("error getting float value, try with integer"); // {{ 2338 1 0 "5a74df81_6685_4703_8b055144f8d74d45" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2339 1 0 "47bb8c98_9624_40ad_b765abfc6b0d0b49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" Trace("error getting float value, tried with integer"); // {{ 2341 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("wtf ok i guess its zero"); // {{ 2343 1 0 "5b8a3ec6_8ee4_4887_ab7df29fa494cdc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_KeyFloatValue = 0; // }} "" // {{ 2344 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2345 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "JSON_GetFloatValue" "End" } // }} "" // {{{ 5 "SendHHSReturnToServer" "Begin" private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; private variable t_arrayStepReturns[]; private variable loopCounter1; private variable keyName; private variable varType; // {{ 5 "SendHHSReturnToServer" "InitLocals" // }} "" // {{{ 2347 1 0 "6db3f932_ba70_4cf6_9c2a8636580fc754" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2348 1 0 "3cf8a985_83cc_418e_99293de9d9945d5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("HHS-return")); // }} "" // {{{ 2349 1 0 "705c25bc_6db4_4eb9_b05b33999e110198" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{ 2350 1 0 "5a9efc02_a11a_4c0c_b166e3b28800cc6c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" t_arrayStepReturns.SetSize(0); // }} "" // {{ 2351 1 0 "5aa4f3a8_774f_4f35_ae7fa197ef920048" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn1); // }} "" // {{ 2352 1 0 "00ac351d_bc51_41e5_b300af93d6893fa5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn2); // }} "" // {{ 2353 1 0 "2aaf8702_2d08_48ee_be96815ca77463c9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn3); // }} "" // {{ 2354 1 0 "67fcb56e_9f42_4739_a5ee322f12443a17" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn4); // }} "" // {{ 2355 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < 4;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 2356 1 0 "a23ae2ed_5b02_41a0_a69215d0b80fde4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" keyName = StrConcat2(Translate("step-return"), loopCounter1); // }} "" // {{{ 2357 1 0 "9b92ac94_8c71_4b77_95ac0c691427c4bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" varType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2358 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "s") { // }} "" // {{{ 2359 1 0 "1497ea6a_46ab_4ee8_b7951f24b533e644" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2360 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2361 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "f") { // }} "" // {{{ 2362 1 0 "61772f9e_fea3_4011_bba06b7fe66e8b0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2363 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2364 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "i") { // }} "" // {{{ 2365 1 0 "28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2366 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2367 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2368 1 0 "0a0447b8_96fb_495a_90dfa8f1e2c488ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2369 1 0 "b2a13d10_b443_4fc0_aa0baa2a23cddafe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2370 1 0 "0adf40b4_5c73_46d8_8e6042c6dfd32d86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2371 1 0 "5a5dabeb_e3ed_4730_ab86839e00f75077" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendHHSReturnToServer" "End" } // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "Begin" private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer_EightOutputs" "InitLocals" // }} "" // {{{ 2385 1 0 "a5a7b215_f4cb_4951_82e1faf532cd7222" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2386 1 0 "9480693e_99ec_4cfd_aa9c8f48e76ee42f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 2387 1 0 "3f068696_35bd_4060_8b291470a817f628" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 2388 1 0 "b68a52fb_e141_4e4c_b5e7bbcbf0c9817f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 2389 1 0 "8ab4a139_9629_43b7_98f13d1058881e4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 2390 1 0 "1417a4bd_aea8_4b36_8a7a05739a789ecf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 2391 1 0 "24b6213e_470e_468a_86dc55b44ff96b95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 2392 1 0 "42403d87_ddb6_4bee_8fc6ad09efb7573a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return5"), stepReturn5); // }} "" // {{{ 2393 1 0 "8493044a_674d_4139_90fa1c7a00050abc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return6"), stepReturn6); // }} "" // {{{ 2394 1 0 "b43cf915_ef0d_4d62_985deae88bcd6c18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return7"), stepReturn7); // }} "" // {{{ 2395 1 0 "584d78fd_87d0_4502_a6d089cfaf888318" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return8"), stepReturn8); // }} "" // {{{ 2396 1 0 "711dbc6f_e5c4_40a0_bef5785dc99707ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return9"), stepReturn9); // }} "" // {{{ 2397 1 0 "47856892_8af4_409f_88723a44ebe61362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2398 1 0 "e5054174_6f3f_4356_8dc30683be948abe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2399 1 0 "e21196c3_6b8f_47e5_a2888114650b2ec8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2400 1 0 "3fec97a3_9f33_4fef_afe5355188bf56d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "End" } // }} "" // {{{ 5 "StrArrayToInts" "Begin" private function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void { // }} "" private variable arraySize; private variable loopCounter1; private variable val; private variable o_arrayOfInts[]; // {{ 5 "StrArrayToInts" "InitLocals" o_intarray.SetSize( 0); // }} "" // {{ 2409 1 0 "d68ba554_ea5e_486c_90e45e6f46e051a7" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 2410 1 0 "2ceaf7fd_f918_493e_a519f9ccc1a58114" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfInts.SetSize(0); // }} "" // {{ 2411 1 0 "f1b90762_2d83_476f_b1cd6ef39b938b13" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2412 1 0 "832d04b5_dd9e_47f6_86628701b9ba44ef" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" val=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 2413 1 0 "a10f8b45_b69d_4a85_be5a713ea78ccd01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" val = APPSLIB::StrConvertToNumber(val); // }} "" // {{ 2414 1 0 "70dffb74_d5e0_4795_bc74a43dbf1c7d9b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_intarray.AddAsLast(val); // }} "" // {{ 2415 1 0 "f1b90762_2d83_476f_b1cd6ef39b938b13" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "StrArrayToInts" "End" } // }} "" // {{{ 5 "ConvertHSSErrCode" "Begin" private function ConvertHSSErrCode( variable hssErrCode ) variable { // }} "" // {{ 5 "ConvertHSSErrCode" "InitLocals" // }} "" // {{ 2329 1 0 "0390e8b9_f753_48cc_ba9811c6326b8cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (hssErrCode == 0) { // }} "" // {{{ 2330 1 0 "9f0ce7fc_13c6_4496_9d762a07174e50f1" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (1); // }} "" // {{ 2331 1 0 "0390e8b9_f753_48cc_ba9811c6326b8cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2332 1 0 "4c347e8c_4bce_4fd2_9771e3402c6f946d" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (0); // }} "" // {{{ 5 "ConvertHSSErrCode" "End" } // }} "" // {{{ 5 "BuildCorrectionCurve" "Begin" private function BuildCorrectionCurve( variable & o_correctionCurveNominalArray[], variable & o_correctionCurveCorrectedArray[] ) void { // }} "" private variable arrSize; private variable strKeyNameCorrectedArray; private variable strKeyNameNominalArray; private variable loopCounter4; private variable loopCounter5; // {{ 5 "BuildCorrectionCurve" "InitLocals" o_correctionCurveNominalArray.SetSize( 0); o_correctionCurveCorrectedArray.SetSize( 0); // }} "" // {{ 2297 1 0 "3a340a16_76d0_41c8_bf5b309ec73a108a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyNameNominalArray = Translate("NominalArray"); // }} "" // {{ 2298 1 0 "a6aacfd2_768d_4d11_a35ac71302a19735" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyNameCorrectedArray = Translate("CorrectedArray"); // }} "" // {{ 2299 1 0 "ccec7969_4f08_44f5_a700cb697b5b4a9b" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_correctionCurveNominalArray.SetSize(0); // }} "" // {{ 2300 1 0 "8fae3767_8a62_4fef_a2ba361eb65bc161" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_correctionCurveCorrectedArray.SetSize(0); // }} "" // {{{ 2301 1 0 "66b7fe15_499d_45c1_8c4066855948207d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyNameNominalArray); // }} "" Trace("Array size", arrSize); // {{ 2303 1 0 "44ad5a9b_2abd_4eeb_96ac3a1f40a428a5" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2304 1 0 "41839491_e238_46fb_942a943c436e50a5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter4 = 0; loopCounter4 < arrSize;) { loopCounter4 = loopCounter4 + 1; // }} "" // {{{ 2305 1 0 "5d0b24b8_e6d4_4bcf_8a4cedeee5886970" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyNameNominalArray, loopCounter4, v); // }} "" // {{ 2306 1 0 "4f623f9f_1df8_4fc8_9510e85004e8c0b7" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_correctionCurveNominalArray.AddAsLast(v); // }} "" Trace("Volume received=", v); // {{ 2308 1 0 "41839491_e238_46fb_942a943c436e50a5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2309 1 0 "d1f623e5_6dee_4326_91c1168e1518c23f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter5 = 0; loopCounter5 < arrSize;) { loopCounter5 = loopCounter5 + 1; // }} "" // {{{ 2310 1 0 "7563bc89_e7ee_4cca_89d1a0aac98487d8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyNameCorrectedArray, loopCounter5, v); // }} "" // {{ 2311 1 0 "db2fb533_67c2_4e19_b196e1920559617b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_correctionCurveCorrectedArray.AddAsLast(v); // }} "" Trace("Volume received=", v); // {{ 2313 1 0 "d1f623e5_6dee_4326_91c1168e1518c23f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "BuildCorrectionCurve" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=Stefan.Golas$$valid=0$$time=2025-10-16 10:24$$checksum=7eba9336$$length=091$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/STAR_OEM_toolkit.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 9/17/2025 6:52:03 PM #pragma once #ifndef HSL_RUNTIME namespace STAR_OEM_TOOLKIT { function _InitLibrary() { } function _ExitLibrary() { } function BarcodeReader_Initialize( variable COMPORT, variable & o_stepReturn ) void { } function BarcodeReader_Read( variable & barcode ) void { } function Carrier_Load( device & ML_STAR, variable carrierName, variable barcodeFileName, variable barcodeReadPositions, variable & o_stepReturn_CarrierBC, variable & o_stepReturn_PositionsBCs, variable & o_stepReturn_PositionsBCMasks, variable & o_stepReturn_PositionsIDs, variable & o_CarrierBC, variable & o_PositionsBCs[] ) void { } function Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void { } function Channels_1mL_COREGrippers_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable gripForce, variable gripperToolChannel, variable gripWidth, variable gripHeight, variable widthBefore, variable gripSpeed, variable Zspeed, variable checkPlate, variable & o_stepReturn ) void { } function Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void { } function Channels_1mL_COREGrippers_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable ejectToolWhenFinish, variable Zspeed, variable platePressOnDistance, variable xAcceleration, variable checkPlate, variable & o_stepReturn ) void { } function Channels_1mL_Dispense( device & ML_STAR, sequence & dispenseSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable zMoveAfterStep, variable sideTouch, variable dispPositionAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void { } function Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void { } function Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void { } function Channels_1ml_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable aspirateMode, variable capacitiveLLD, variable pressureLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable maxLLdDifference, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable aspPosAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void { } function Inheco_TEC_GetTemperature( variable controllerID, variable deviceID, variable selector, variable & o_stepReturn2, variable & o_stepReturn ) void { } function Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode, variable & o_stepReturn ) void { } function Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & o_stepReturn ) void { } function Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode, variable & o_stepReturn ) void { } function Inheco_TEC_StopTemperatureControl( variable ControllerID, variable DeviceID, variable & o_stepReturn ) void { } function Inheco_TEC_Terminate( variable StopAllDevices, variable & o_stepReturn ) void { } function Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void { } function MPH96_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable aspirateVolume, variable channelVariable, variable liquidClass, variable sequenceCounting, variable aspirateMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void { } function MPH96_Dispense( device & ML_STAR, sequence & dispenseSequence, variable dispenseVolume, variable liquidClass, variable sequenceCounting, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable zMoveAfterStep, variable sideTouch, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void { } function MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void { } function MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void { } function SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void { } function TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate, variable & o_stepReturn ) void { } function TiltModule_MoveToPosition( variable Module, variable Position, variable & o_stepReturn ) void { } function iSWAP_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable gripForce, variable inverseGrip, variable collisionControl, variable gripMode, variable retractDistance, variable liftUpHeight, variable gripWidth, variable tolerance, variable gripHeight, variable widthBefore, variable & o_stepReturn ) void { } function iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void { } function iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void { } function iSWAP_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable collisionControl, variable retractDistance, variable liftUpHeight, variable & o_stepReturn ) void { } function pH_Measure( variable i_intModuleID, variable i_fltTemperature, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void { } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=Stefan.Golas$$valid=0$$time=2025-09-17 18:52$$checksum=f3e6c611$$length=089$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/STAR_OEM_toolkit.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "HSLErrLib.hsl" #include "HSLMlStarStepReturnLib.hsl" #include "HSLDevLib.hsl" #include "HSLDevLib.hsl" #include "HSLSeqLib.hsl" #include "HSLStrLib.hsl" #include "HSLTrcLib.hsl" #include "HSL_LiquidClassLib.hsl" #include "HSLInhecoTEC\\HSLInhecoTECLib.hsl" #include "HSLDaisyChainedTiltModule.hsl" #include "HSLBarcodeReader.hsl" #include "HslHamHeaterShakerLib.hsl" #include "HSLDaisyChainedMediaLine.hsl" #include "HSLDaisyChainCommunication.hsl" #include "Hamilton pH Module\\Hamilton pH Module.hsl" #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" #include "Hamilton pH Module\\Hamilton pH Station Washer Module.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace STAR_OEM_TOOLKIT { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function BarcodeReader_Initialize( variable COMPORT, variable & o_stepReturn ) void ; function BarcodeReader_Read( variable & barcode ) void ; function Carrier_Load( device & ML_STAR, variable carrierName, variable barcodeFileName, variable barcodeReadPositions, variable & o_stepReturn_CarrierBC, variable & o_stepReturn_PositionsBCs, variable & o_stepReturn_PositionsBCMasks, variable & o_stepReturn_PositionsIDs, variable & o_CarrierBC, variable & o_PositionsBCs[] ) void ; function Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void ; function Channels_1mL_COREGrippers_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable gripForce, variable gripperToolChannel, variable gripWidth, variable gripHeight, variable widthBefore, variable gripSpeed, variable Zspeed, variable checkPlate, variable & o_stepReturn ) void ; function Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void ; function Channels_1mL_COREGrippers_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable ejectToolWhenFinish, variable Zspeed, variable platePressOnDistance, variable xAcceleration, variable checkPlate, variable & o_stepReturn ) void ; function Channels_1mL_Dispense( device & ML_STAR, sequence & dispenseSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable zMoveAfterStep, variable sideTouch, variable dispPositionAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void ; function Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void ; function Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void ; function Channels_1ml_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable aspirateMode, variable capacitiveLLD, variable pressureLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable maxLLdDifference, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable aspPosAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void ; function Inheco_TEC_GetTemperature( variable controllerID, variable deviceID, variable selector, variable & o_stepReturn2, variable & o_stepReturn ) void ; function Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode, variable & o_stepReturn ) void ; function Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & o_stepReturn ) void ; function Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode, variable & o_stepReturn ) void ; function Inheco_TEC_StopTemperatureControl( variable ControllerID, variable DeviceID, variable & o_stepReturn ) void ; function Inheco_TEC_Terminate( variable StopAllDevices, variable & o_stepReturn ) void ; function Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void ; function MPH96_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable aspirateVolume, variable channelVariable, variable liquidClass, variable sequenceCounting, variable aspirateMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void ; function MPH96_Dispense( device & ML_STAR, sequence & dispenseSequence, variable dispenseVolume, variable liquidClass, variable sequenceCounting, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable zMoveAfterStep, variable sideTouch, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void ; function MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ; function MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ; private function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void ; function SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void ; function TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate, variable & o_stepReturn ) void ; function TiltModule_MoveToPosition( variable Module, variable Position, variable & o_stepReturn ) void ; function iSWAP_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable gripForce, variable inverseGrip, variable collisionControl, variable gripMode, variable retractDistance, variable liftUpHeight, variable gripWidth, variable tolerance, variable gripHeight, variable widthBefore, variable & o_stepReturn ) void ; function iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void ; function iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void ; function iSWAP_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable collisionControl, variable retractDistance, variable liftUpHeight, variable & o_stepReturn ) void ; function pH_Measure( variable i_intModuleID, variable i_fltTemperature, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" // }} "" } // {{{ 5 "Channels_1ml_Aspirate" "Begin" function Channels_1ml_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable aspirateMode, variable capacitiveLLD, variable pressureLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable maxLLdDifference, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable aspPosAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void { // }} "" private variable numberOfPositions; private variable loopCounter1; private variable getLiquidLevels_return; private variable labwareID; private variable positionID; private variable lbwContainersAreConnected; private variable height; private variable calculatedVolume; // {{ 5 "Channels_1ml_Aspirate" "InitLocals" o_stepReturn = 0; o_liquidLevels_mm.SetSize( 0); o_liquidLevels_mL.SetSize( 0); // }} "" // {{ 107 1 0 "2df7cf67_eefd_4634_a6c81ca2eae358a9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_BE09000023754133A7DFF78508E9EC3D ; err.Clear(); // }} "" // {{ 108 1 0 "61c2af00_d7f3_4b2d_90f54ffba06126b4" "ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2("61c2af00_d7f3_4b2d_90f54ffba06126b4"); // Aspirate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 109 1 0 "2df7cf67_eefd_4634_a6c81ca2eae358a9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_BE09000023754133A7DFF78508E9EC3D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 110 1 0 "3dd2c518_6d0a_4d7b_a227743c1263caad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 111 1 0 "2df7cf67_eefd_4634_a6c81ca2eae358a9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 112 1 0 "a8ab29ff_eb70_45dc_a90f0ce07c2514bd" "ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}" { variable arrRetValues[]; arrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C("a8ab29ff_eb70_45dc_a90f0ce07c2514bd"); // GetLastLiquidLevel getLiquidLevels_return = arrRetValues[2]; } // }} "" // {{{ 113 1 0 "a37ce602_144b_4a72_98dbfe0c85169266" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn); // }} "" // {{ 114 1 0 "36e6f2a2_6d83_40ba_a0c6ff5caefcef66" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mm.SetSize(0); // }} "" // {{ 115 1 0 "ce4eba9f_c8e1_4c33_a9c369da4ce7c312" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mL.SetSize(0); // }} "" // {{ 116 1 0 "3fcceb5e_fea5_4776_94261cf223fe007f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < numberOfPositions;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 117 1 0 "c20a15a2_4a40_4214_9e2588af18355e98" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 118 1 0 "81636f39_7511_441a_8ab707955e5f2035" "{C1F3C015-47B3-4514-9407-AC2E65043419}" height = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return); // }} "" // {{ 119 1 0 "6b53ca04_1112_466f_89a23ed352e36004" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mm.AddAsLast(height); // }} "" // {{ 120 1 0 "c20a15a2_4a40_4214_9e2588af18355e98" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 121 1 0 "00f031c0_8454_45d1_9b17554c5e6df7bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 122 1 0 "9c1dd6a5_9b06_43fd_9fd194129c2f2a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn); // }} "" // {{{ 123 1 0 "e6930a03_b2a0_4569_bb51b2088cac413c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn); // }} "" // {{ 124 1 0 "06eeeac2_52c3_47cb_b78dde137d763a9a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 125 1 0 "53b884ef_873a_4201_882d0cc9f9d77d20" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwareID > "") { // }} "" // {{ 126 1 0 "a83a594a_307e_45dd_8a2583323efe8f45" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (positionID > "") { // }} "" // {{ 127 1 0 "83df5041_4b3c_406f_95690782a3a21861" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 128 1 0 "9af2cbf6_5306_4a14_827b32cae1054343" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_15E4EC7C03B0458dA8B196D2861D63BC ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 130 1 0 "9af2cbf6_5306_4a14_827b32cae1054343" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_15E4EC7C03B0458dA8B196D2861D63BC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 131 1 0 "9af2cbf6_5306_4a14_827b32cae1054343" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 132 1 0 "83df5041_4b3c_406f_95690782a3a21861" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 133 1 0 "450b7dae_efb3_416b_a62ef5c611c84cdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" calculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected); // }} "" // {{ 134 1 0 "ca4e0527_c377_4a7f_99b7deddb85bdfaf" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mL.AddAsLast(calculatedVolume); // }} "" // {{ 135 1 0 "a83a594a_307e_45dd_8a2583323efe8f45" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 136 1 0 "53b884ef_873a_4201_882d0cc9f9d77d20" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 137 1 0 "00f031c0_8454_45d1_9b17554c5e6df7bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 138 1 0 "3fcceb5e_fea5_4776_94261cf223fe007f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "Channels_1ml_Aspirate" "End" } // }} "" // {{{ 5 "Channels_1mL_TipPickUp" "Begin" function Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_TipPickUp" "InitLocals" o_stepReturn = 0; // }} "" // {{ 101 1 0 "bcca3c8a_7fce_4767_98fb4ac5db164ddd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_55CAD51E8CEB46d5827DF7367C49B35D ; err.Clear(); // }} "" // {{ 102 1 0 "72075d54_9924_47c4_a0154d7e90bb1065" "ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2("72075d54_9924_47c4_a0154d7e90bb1065"); // TipPickUp o_stepReturn = arrRetValues[2]; } // }} "" // {{ 103 1 0 "bcca3c8a_7fce_4767_98fb4ac5db164ddd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_55CAD51E8CEB46d5827DF7367C49B35D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 104 1 0 "7acd54b9_9bda_465f_9b10e23e8987fa26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 105 1 0 "bcca3c8a_7fce_4767_98fb4ac5db164ddd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_TipPickUp" "End" } // }} "" // {{{ 5 "Channels_1mL_Dispense" "Begin" function Channels_1mL_Dispense( device & ML_STAR, sequence & dispenseSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable zMoveAfterStep, variable sideTouch, variable dispPositionAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void { // }} "" private variable getLiquidLevels_return; private variable labwareID; private variable calculatedVolume; private variable height; private variable lbwContainersAreConnected; private variable positionID; private variable loopCounter1; private variable numberOfPositions; // {{ 5 "Channels_1mL_Dispense" "InitLocals" o_stepReturn = 0; o_liquidLevels_mm.SetSize( 0); o_liquidLevels_mL.SetSize( 0); // }} "" // {{ 62 1 0 "c6b9c3da_70bc_4aa8_841a67bf3e6c7859" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 ; err.Clear(); // }} "" // {{ 63 1 0 "ce9beee3_e67e_43c3_bfc64805ab990e08" "ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2("ce9beee3_e67e_43c3_bfc64805ab990e08"); // Dispense o_stepReturn = arrRetValues[2]; } // }} "" // {{ 64 1 0 "c6b9c3da_70bc_4aa8_841a67bf3e6c7859" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 65 1 0 "493334e8_4548_4149_82f058a4b51df641" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 66 1 0 "c6b9c3da_70bc_4aa8_841a67bf3e6c7859" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 67 1 0 "dd677141_96b6_4ccc_a1764ec36dc76b56" "ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}" { variable arrRetValues[]; arrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C("dd677141_96b6_4ccc_a1764ec36dc76b56"); // GetLastLiquidLevel getLiquidLevels_return = arrRetValues[2]; } // }} "" // {{{ 68 1 0 "4fd5463f_c617_4e2b_aa27d0a820bfe2c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn); // }} "" // {{ 69 1 0 "6cafca26_5df8_46c0_98d5a4e2a957163a" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mm.SetSize(0); // }} "" // {{ 70 1 0 "418d84ad_0fba_4ca8_8479b9c6dde94985" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mL.SetSize(0); // }} "" // {{ 71 1 0 "abfcc803_7e38_4c9d_ad7c8412ada32e1d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < numberOfPositions;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 72 1 0 "1cbaa070_2e26_4301_9831c6bc56227fcf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 73 1 0 "c8304522_b160_47ca_9780bfcfd85cf56a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" height = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return); // }} "" // {{ 74 1 0 "5c09e3e1_cd42_4687_940231f4491e28e1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mm.AddAsLast(height); // }} "" // {{ 75 1 0 "1cbaa070_2e26_4301_9831c6bc56227fcf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 76 1 0 "ed6c9c1d_db69_4c65_8a4324433bd43f03" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 77 1 0 "11b5458b_6926_471d_8cb7dde489f8a444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn); // }} "" // {{{ 78 1 0 "51ffe893_b0e5_4383_ac38b9be481a9bee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn); // }} "" // {{ 79 1 0 "b02dd957_c3d3_445f_b0e36cc6cab274af" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 80 1 0 "35647e0a_accb_4503_80bba06d7d2a3271" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwareID > "") { // }} "" // {{ 81 1 0 "693f6d8c_e7fa_419d_b923bb796e5548fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (positionID > "") { // }} "" // {{ 82 1 0 "086a404a_99f9_4215_81fcc4be65c886b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 83 1 0 "1b6d6482_1c62_4a3f_90dfdeaf8695fb92" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_16FB3828C9A34ba7A7078E29FEF48CFF ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 85 1 0 "1b6d6482_1c62_4a3f_90dfdeaf8695fb92" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_16FB3828C9A34ba7A7078E29FEF48CFF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 86 1 0 "1b6d6482_1c62_4a3f_90dfdeaf8695fb92" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 87 1 0 "086a404a_99f9_4215_81fcc4be65c886b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 88 1 0 "36cc23a5_3886_4312_adc5faa6d481a26c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" calculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected); // }} "" // {{ 89 1 0 "9f017e3d_a3f3_4f02_914d74e549a5f3be" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mL.AddAsLast(calculatedVolume); // }} "" // {{ 90 1 0 "693f6d8c_e7fa_419d_b923bb796e5548fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 91 1 0 "35647e0a_accb_4503_80bba06d7d2a3271" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 92 1 0 "ed6c9c1d_db69_4c65_8a4324433bd43f03" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 93 1 0 "abfcc803_7e38_4c9d_ad7c8412ada32e1d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "Channels_1mL_Dispense" "End" } // }} "" // {{{ 5 "Channels_1mL_TipEject" "Begin" function Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_TipEject" "InitLocals" o_stepReturn = 0; // }} "" // {{ 95 1 0 "68086392_46e4_4533_88368c1cf77ceb2d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_D52469807F754a359D17B8D31042C6A6 ; err.Clear(); // }} "" // {{ 96 1 0 "1a33c622_0a9b_473c_a857db709fcadb47" "ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2("1a33c622_0a9b_473c_a857db709fcadb47"); // TipEject o_stepReturn = arrRetValues[2]; } // }} "" // {{ 97 1 0 "68086392_46e4_4533_88368c1cf77ceb2d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_D52469807F754a359D17B8D31042C6A6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 98 1 0 "5284933d_2b98_4255_81ee24c4ca6624c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 99 1 0 "68086392_46e4_4533_88368c1cf77ceb2d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_TipEject" "End" } // }} "" // {{{ 5 "Carrier_Load" "Begin" function Carrier_Load( device & ML_STAR, variable carrierName, variable barcodeFileName, variable barcodeReadPositions, variable & o_stepReturn_CarrierBC, variable & o_stepReturn_PositionsBCs, variable & o_stepReturn_PositionsBCMasks, variable & o_stepReturn_PositionsIDs, variable & o_CarrierBC, variable & o_PositionsBCs[] ) void { // }} "" private variable numberOfPositions; private variable loopCounter1; private variable positionBC; // {{ 5 "Carrier_Load" "InitLocals" o_stepReturn_CarrierBC = 0; o_stepReturn_PositionsBCs = 0; o_stepReturn_PositionsBCMasks = 0; o_stepReturn_PositionsIDs = 0; o_CarrierBC = 0; o_PositionsBCs.SetSize( 0); // }} "" // {{ 18 1 0 "5c909756_0e7e_4404_9569fb2db3dd1158" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_6F7D183CCBCA490f840A10F79D2CB4F6 ; err.Clear(); // }} "" // {{ 19 1 0 "b445eca9_c441_45d7_b53f08a23b7b4b80" "ML_STAR:{54114402-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._54114402_7FA2_11D3_AD85_0004ACB1DCB2("b445eca9_c441_45d7_b53f08a23b7b4b80"); // LoadCarrier o_stepReturn_CarrierBC = arrRetValues[2]; o_stepReturn_PositionsBCs = arrRetValues[3]; o_stepReturn_PositionsBCMasks = arrRetValues[4]; o_stepReturn_PositionsIDs = arrRetValues[5]; } // }} "" // {{ 20 1 0 "5c909756_0e7e_4404_9569fb2db3dd1158" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_6F7D183CCBCA490f840A10F79D2CB4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 21 1 0 "6919be45_bdb7_46b6_a2ad892454bef1c7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_CarrierBC = ErrGetDataAt(3); // }} "" // {{{ 22 1 0 "d814f66e_6beb_47a8_a390d3b5ea839ba9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionsBCs = ErrGetDataAt(4); // }} "" // {{{ 23 1 0 "018a7d4d_f55c_435f_bfce516fc40cd0bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionsBCMasks = ErrGetDataAt(5); // }} "" // {{{ 24 1 0 "28252b10_bd1a_480c_8d84ce9739ca69ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionsIDs = ErrGetDataAt(6); // }} "" // {{ 25 1 0 "5c909756_0e7e_4404_9569fb2db3dd1158" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 26 1 0 "f7c4b6e5_401a_41ab_b920370ccc277a17" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 27 1 0 "91e50e7b_5626_4ab9_ad652563a737dba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_CarrierBC = StepReturn::GetStepData(1, o_stepReturn_CarrierBC); // }} "" // {{ 28 1 0 "f7c4b6e5_401a_41ab_b920370ccc277a17" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 29 1 0 "628b131a_a46c_40b8_b9a61700e818c0e7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 30 1 0 "6135f8c7_3486_4898_88c6e7154326c4df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn_PositionsBCs); // }} "" // {{ 31 1 0 "4cec9992_cb23_4182_894ee448e99b8d48" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_PositionsBCs.SetSize(0); // }} "" // {{ 32 1 0 "0249a50f_bae7_4b5c_86cdc25ab8f43639" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < numberOfPositions;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 33 1 0 "fe82471b_5e85_4598_90b8f672ef3cf690" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionBC = StepReturn::GetStepData(loopCounter1, o_stepReturn_PositionsBCs); // }} "" // {{ 34 1 0 "f0a92a30_0f95_4eb4_bdcf7e21db350ecb" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_PositionsBCs.AddAsLast(positionBC); // }} "" // {{ 35 1 0 "0249a50f_bae7_4b5c_86cdc25ab8f43639" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 36 1 0 "628b131a_a46c_40b8_b9a61700e818c0e7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "Carrier_Load" "End" } // }} "" // {{{ 5 "Carrier_Unload" "Begin" function Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void { // }} "" // {{ 5 "Carrier_Unload" "InitLocals" o_stepReturn = 0; // }} "" // {{ 38 1 0 "c21e08df_939e_41ef_9843a250f42bf239" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_040A2B30BAA84a018D3C82EF2B4AAB10 ; err.Clear(); // }} "" // {{ 39 1 0 "38494363_9fef_41a3_8cb17f349c9fe693" "ML_STAR:{54114400-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._54114400_7FA2_11D3_AD85_0004ACB1DCB2("38494363_9fef_41a3_8cb17f349c9fe693"); // UnloadCarrier o_stepReturn = arrRetValues[2]; } // }} "" // {{ 40 1 0 "c21e08df_939e_41ef_9843a250f42bf239" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_040A2B30BAA84a018D3C82EF2B4AAB10 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 41 1 0 "9aa00b86_389e_473d_bd928bce39259e60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 42 1 0 "c21e08df_939e_41ef_9843a250f42bf239" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Carrier_Unload" "End" } // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Get" "Begin" function Channels_1mL_COREGrippers_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable gripForce, variable gripperToolChannel, variable gripWidth, variable gripHeight, variable widthBefore, variable gripSpeed, variable Zspeed, variable checkPlate, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_COREGrippers_Get" "InitLocals" o_stepReturn = 0; // }} "" // {{ 44 1 0 "b30da27c_bef5_49a0_87d76c8049f31861" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90BF8C56374E469c817DB7B52FEE5D91 ; err.Clear(); // }} "" // {{ 45 1 0 "f1e43893_ada0_4b74_9035cad36fab5d4b" "ML_STAR:{A108628C-BEB7-4CB6-99FD-8523302C700F}" { variable arrRetValues[]; arrRetValues = ML_STAR._A108628C_BEB7_4CB6_99FD_8523302C700F("f1e43893_ada0_4b74_9035cad36fab5d4b"); // ZSwapGetPlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 46 1 0 "b30da27c_bef5_49a0_87d76c8049f31861" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90BF8C56374E469c817DB7B52FEE5D91 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 47 1 0 "5300695f_5b47_4f16_8312711c7c77441e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 48 1 0 "b30da27c_bef5_49a0_87d76c8049f31861" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Get" "End" } // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Place" "Begin" function Channels_1mL_COREGrippers_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable ejectToolWhenFinish, variable Zspeed, variable platePressOnDistance, variable xAcceleration, variable checkPlate, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_COREGrippers_Place" "InitLocals" o_stepReturn = 0; // }} "" // {{ 56 1 0 "b65dcae3_6ff9_4720_a4f35e99346d8975" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8675588E513E44cd8097542899F1DE5C ; err.Clear(); // }} "" // {{ 57 1 0 "3460f3d9_9fdb_4437_9cfa36d33b14f837" "ML_STAR:{9DF3DD4B-3B5E-4750-8989-04458D1B134B}" { variable arrRetValues[]; arrRetValues = ML_STAR._9DF3DD4B_3B5E_4750_8989_04458D1B134B("3460f3d9_9fdb_4437_9cfa36d33b14f837"); // ZSwapPlacePlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 58 1 0 "b65dcae3_6ff9_4720_a4f35e99346d8975" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8675588E513E44cd8097542899F1DE5C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 59 1 0 "1c1fcfa6_73ab_434d_965f40a7cb5827ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 60 1 0 "b65dcae3_6ff9_4720_a4f35e99346d8975" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Place" "End" } // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Move" "Begin" function Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_COREGrippers_Move" "InitLocals" o_stepReturn = 0; // }} "" // {{ 50 1 0 "ced13f47_fded_4378_af08e9af8f325393" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_17F7F9C2DD974e61B13F20ADC6F241A8 ; err.Clear(); // }} "" // {{ 51 1 0 "2ed0456d_387e_49b4_a5a8105447123f04" "ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}" { variable arrRetValues[]; arrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E("2ed0456d_387e_49b4_a5a8105447123f04"); // ZSwapMovePlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 52 1 0 "ced13f47_fded_4378_af08e9af8f325393" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_17F7F9C2DD974e61B13F20ADC6F241A8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 53 1 0 "b5f59ed6_6bf0_47b3_b8c295016cfa86e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 54 1 0 "ced13f47_fded_4378_af08e9af8f325393" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Move" "End" } // }} "" // {{{ 5 "iSWAP_Get" "Begin" function iSWAP_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable gripForce, variable inverseGrip, variable collisionControl, variable gripMode, variable retractDistance, variable liftUpHeight, variable gripWidth, variable tolerance, variable gripHeight, variable widthBefore, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Get" "InitLocals" o_stepReturn = 0; // }} "" // {{ 296 1 0 "53a14975_dd73_4964_8c8c9f0730a43a7a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ABA9DAA34A59470495CBB56841D2D81D ; err.Clear(); // }} "" // {{ 297 1 0 "285b84de_748a_400d_a828988b60f4c175" "ML_STAR:{CC819D7A-5DD8-4d13-A921-D74A06460F9E}" { variable arrRetValues[]; arrRetValues = ML_STAR._CC819D7A_5DD8_4d13_A921_D74A06460F9E("285b84de_748a_400d_a828988b60f4c175"); // GetPlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 298 1 0 "53a14975_dd73_4964_8c8c9f0730a43a7a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ABA9DAA34A59470495CBB56841D2D81D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 299 1 0 "298cdb09_c92e_4bb7_a2ecabeafcf27813" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 300 1 0 "53a14975_dd73_4964_8c8c9f0730a43a7a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Get" "End" } // }} "" // {{{ 5 "iSWAP_Place" "Begin" function iSWAP_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable collisionControl, variable retractDistance, variable liftUpHeight, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Place" "InitLocals" o_stepReturn = 0; // }} "" // {{ 314 1 0 "c9f8030c_ef60_485e_9b279138f7f6da52" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_22A12BE8BB2146fbB8824DF66137BF6C ; err.Clear(); // }} "" // {{ 315 1 0 "bcedff0a_3cba_458a_bedb1a743e5dd0bd" "ML_STAR:{E34155E5-7529-4b6b-AE3E-CDDA40789D55}" { variable arrRetValues[]; arrRetValues = ML_STAR._E34155E5_7529_4b6b_AE3E_CDDA40789D55("bcedff0a_3cba_458a_bedb1a743e5dd0bd"); // PutPlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 316 1 0 "c9f8030c_ef60_485e_9b279138f7f6da52" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_22A12BE8BB2146fbB8824DF66137BF6C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 317 1 0 "8aeb393a_337d_4788_b25408ee6915eb1c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 318 1 0 "c9f8030c_ef60_485e_9b279138f7f6da52" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Place" "End" } // }} "" // {{{ 5 "iSWAP_Move" "Begin" function iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Move" "InitLocals" o_stepReturn = 0; // }} "" // {{ 302 1 0 "65ac7a80_b8fd_4f3c_a9e6290ec6a707a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E8A019BC968240cbB4C8B7397BB2F043 ; err.Clear(); // }} "" // {{ 303 1 0 "d98672e5_cec6_49ef_92dfdaa4ec2da4f2" "ML_STAR:{862562D1-B5BB-48ce-B5E4-9E37F8ABB61E}" { variable arrRetValues[]; arrRetValues = ML_STAR._862562D1_B5BB_48ce_B5E4_9E37F8ABB61E("d98672e5_cec6_49ef_92dfdaa4ec2da4f2"); // MovePlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 304 1 0 "65ac7a80_b8fd_4f3c_a9e6290ec6a707a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E8A019BC968240cbB4C8B7397BB2F043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 305 1 0 "b69dc448_e2ef_4c62_b6dd3535487928f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 306 1 0 "65ac7a80_b8fd_4f3c_a9e6290ec6a707a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Move" "End" } // }} "" // {{{ 5 "iSWAP_Park" "Begin" function iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Park" "InitLocals" o_stepReturn = 0; // }} "" // {{ 308 1 0 "fae9e68f_ea34_4f4d_bb6f62c288b1e7b4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_47ED933D92B34914984C5D98423B4C94 ; err.Clear(); // }} "" // {{ 309 1 0 "ef5a4036_5d2f_4aae_86e669ef0581597f" "ML_STAR:{86F668D0-478C-41b6-A78B-8B6B8EAA54A7}" { variable arrRetValues[]; arrRetValues = ML_STAR._86F668D0_478C_41b6_A78B_8B6B8EAA54A7("ef5a4036_5d2f_4aae_86e669ef0581597f"); // ParkISwap o_stepReturn = arrRetValues[2]; } // }} "" // {{ 310 1 0 "fae9e68f_ea34_4f4d_bb6f62c288b1e7b4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_47ED933D92B34914984C5D98423B4C94 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 311 1 0 "974d3165_8b4f_469b_99a59625d159b561" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 312 1 0 "fae9e68f_ea34_4f4d_bb6f62c288b1e7b4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Park" "End" } // }} "" // {{{ 5 "MPH96_TipPickUp" "Begin" function MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void { // }} "" // {{ 5 "MPH96_TipPickUp" "InitLocals" o_stepReturn = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{ 246 1 0 "e2468a9b_8b3f_4977_bbdfbeb62da8eff3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_6640FC09A88C48daB6CB9FB2349BE364 ; err.Clear(); // }} "" // {{{ 247 1 0 "00de859c_7689_4100_85d2b03077e0d7a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(tipSequence); // }} "" // {{ 248 1 0 "b3913cc3_f1bb_4e9f_b3100faec37b186d" "ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}" { variable arrRetValues[]; arrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B("b3913cc3_f1bb_4e9f_b3100faec37b186d"); // Head96TipPickUp o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 249 1 0 "e2468a9b_8b3f_4977_bbdfbeb62da8eff3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_6640FC09A88C48daB6CB9FB2349BE364 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 250 1 0 "1df2d158_801c_4c9f_a8014869fa07863d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 251 1 0 "315f1e4b_8d32_430c_89413b8e4b5b135a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 252 1 0 "e2468a9b_8b3f_4977_bbdfbeb62da8eff3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPH96_TipPickUp" "End" } // }} "" // {{{ 5 "MPH96_Aspirate" "Begin" function MPH96_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable aspirateVolume, variable channelVariable, variable liquidClass, variable sequenceCounting, variable aspirateMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void { // }} "" private variable labwareID; private variable lbwContainersAreConnected; private variable positionID; // {{ 5 "MPH96_Aspirate" "InitLocals" o_stepReturn = 0; o_liquidLevel_mm = 0; o_liquidLevel_mL = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{{ 195 1 0 "0fc30c09_ddb7_4665_8739dbd8f0102fdc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = SeqGetLabwareId(aspirateSequence); // }} "" // {{{ 196 1 0 "14c1eb4e_ced0_45f2_a343bc0f3c668407" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = SeqGetPositionId(aspirateSequence); // }} "" // {{ 197 1 0 "7afd0547_a78c_4fb0_b040d35803532eb4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_00A0A59BF99B42a686A202BE72502D6C ; err.Clear(); // }} "" // {{ 198 1 0 "8d6fdce5_327c_491b_aebee60a715b6c6e" "ML_STAR:{827392A0-B7E8-4472-9ED3-B45B71B5D27A}" { variable arrRetValues[]; arrRetValues = ML_STAR._827392A0_B7E8_4472_9ED3_B45B71B5D27A("8d6fdce5_327c_491b_aebee60a715b6c6e"); // Head96Aspirate o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 199 1 0 "7afd0547_a78c_4fb0_b040d35803532eb4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_00A0A59BF99B42a686A202BE72502D6C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 200 1 0 "6c23fd1d_be57_4011_8fea4ea6459aeecf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 201 1 0 "ee52ace2_98fe_454f_841ae740168bebcd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 202 1 0 "7afd0547_a78c_4fb0_b040d35803532eb4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 203 1 0 "4efb91d8_0e10_400c_a4820b22b5ba22d5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 204 1 0 "8bf3cb1f_0b71_493d_bf300c05413fc543" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" MPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm); // }} "" // {{ 205 1 0 "4efb91d8_0e10_400c_a4820b22b5ba22d5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 206 1 0 "b82d3cc9_9e79_4547_800ffcbdb5ef0aa7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 207 1 0 "091a5303_35ee_4d82_a0b32d9ede26439d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 208 1 0 "64d5c65b_9fa5_44de_a21e4ee08c78310f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 209 1 0 "99cc0c51_635c_4f24_ac7aec94869f04a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_06FF5C7D72E044ac924A0658E57AC92A ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 211 1 0 "99cc0c51_635c_4f24_ac7aec94869f04a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_06FF5C7D72E044ac924A0658E57AC92A : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 212 1 0 "99cc0c51_635c_4f24_ac7aec94869f04a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 213 1 0 "64d5c65b_9fa5_44de_a21e4ee08c78310f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 214 1 0 "0b5e4cdb_1c92_4d18_a0bed95d854a0d94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected); // }} "" // {{ 215 1 0 "b82d3cc9_9e79_4547_800ffcbdb5ef0aa7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "MPH96_Aspirate" "End" } // }} "" // {{{ 5 "MPH_GetLastLLD_Level" "Begin" private function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void { // }} "" private variable flt_X_Coord; private variable flt_Y_Coord; private variable flt_Z_Coord; private variable flt_SubmergeDepthCORE; private variable str_FW_Digits; private variable flt_TipLength; private variable int_LLDheight; private variable flt_TipLength_corrected; private variable int_FW_Digits; private variable flt_StepSize; private variable int_Steps_mm; private variable str_ReturnValueH0RH; private variable flt_angle; private variable tipType; // {{ 5 "MPH_GetLastLLD_Level" "InitLocals" o_flt_LastLiquidLevel = 0; // }} "" // {{ 254 1 0 "f7c5b642_e642_4bd2_b342e8a2202f94b2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_SubmergeDepthCORE = 8.0; // }} "" // {{ 255 1 0 "b15f54b8_160d_4d5a_9470d19afc4b0155" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 256 1 0 "de2e1cfc_3be8_4752_b20a1221fc802c26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::Initialize(ML_STAR, 1); // }} "" // {{{ 257 1 0 "bf16ce46_b00c_46c3_93046a4e730e9868" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SelectLiquidClass(i_liquidClass); // }} "" // {{{ 258 1 0 "7d094f81_a8b9_4eb1_90a841201d1a4cca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" tipType = LiquidClassLib::GetLiquidClassParameter(LiquidClassLib::LIQUIDCLASS_PARAMS::TipType); // }} "" // {{ 259 1 0 "b15f54b8_160d_4d5a_9470d19afc4b0155" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 260 1 0 "a97af8ec_9af3_46fa_a150d41888290f6f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_TipLength_corrected = flt_TipLength - flt_SubmergeDepthCORE; // }} "" // {{{ 261 1 0 "8fc17eb7_3fbb_4a8e_b537d43144e8598c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePosition(ML_STAR, i_labwareID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_angle); // }} "" // {{ 262 1 0 "31649b83_68f7_49a0_974f7efa6232c07d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ReturnValueH0RH = Translate(""); // }} "" // {{ 263 1 0 "72f92b7c_2537_40be_bc5fe85726a39b19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_StepSize = 0.005; // }} "" // {{ 264 1 0 "b5a3458f_9eea_4501_a6aa86c0556ad194" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("b5a3458f_9eea_4501_a6aa86c0556ad194"); // FirmwareCommand str_ReturnValueH0RH = arrRetValues[3]; } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 265 1 0 "73c2ff19_ed4c_4c45_a9c5b56a6e84b044" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("str_ReturnValueH0RH: "), str_ReturnValueH0RH); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 266 1 0 "f6fe1f5f_39ae_4b71_83f733a5cf490b66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FW_Digits = StrRight(str_ReturnValueH0RH, 6); // }} "" // {{{ 267 1 0 "9883fcc4_3dcd_4199_816696b3668f733f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_FW_Digits = StrIVal(str_FW_Digits); // }} "" // {{ 268 1 0 "b427e920_22bd_492e_8c900ff3a99a649c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Steps_mm = int_FW_Digits * flt_StepSize; // }} "" // {{ 269 1 0 "bbe179b4_5c85_4ece_ba3738d8817cdfc5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_LLDheight = int_Steps_mm - flt_Z_Coord; // }} "" // {{ 270 1 0 "502175ce_b71d_406e_b155fea6f39d0fd0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_LastLiquidLevel = int_LLDheight - flt_TipLength_corrected; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 271 1 0 "3bcc328b_1906_4590_94e64b4e80f03d3a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("o_flt_LastLiquidLevel: "), o_flt_LastLiquidLevel); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 5 "MPH_GetLastLLD_Level" "End" } // }} "" // {{{ 5 "MPH96_Dispense" "Begin" function MPH96_Dispense( device & ML_STAR, sequence & dispenseSequence, variable dispenseVolume, variable liquidClass, variable sequenceCounting, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable zMoveAfterStep, variable sideTouch, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void { // }} "" private variable labwareID; private variable lbwContainersAreConnected; private variable positionID; // {{ 5 "MPH96_Dispense" "InitLocals" o_stepReturn = 0; o_liquidLevel_mm = 0; o_liquidLevel_mL = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{{ 217 1 0 "031805d0_c2b0_4435_9b8f6fbb101dc62d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = SeqGetLabwareId(dispenseSequence); // }} "" // {{{ 218 1 0 "c249d641_ef0f_4423_bc2d48f01c114665" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = SeqGetPositionId(dispenseSequence); // }} "" // {{ 219 1 0 "f3fb329d_c76d_48c9_ac660dbbc90096f1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 ; err.Clear(); // }} "" // {{ 220 1 0 "30023c25_d03e_4d52_86f122728a5fc04f" "ML_STAR:{A48573A5-62ED-4951-9EF9-03207EFE34FB}" { variable arrRetValues[]; arrRetValues = ML_STAR._A48573A5_62ED_4951_9EF9_03207EFE34FB("30023c25_d03e_4d52_86f122728a5fc04f"); // Head96Dispense o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 221 1 0 "f3fb329d_c76d_48c9_ac660dbbc90096f1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 222 1 0 "714a2035_eb8c_4e86_85aca8d69086952e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 223 1 0 "bc1347df_5f38_41ae_be3c240228e5944c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 224 1 0 "f3fb329d_c76d_48c9_ac660dbbc90096f1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 225 1 0 "a141b7db_3cc2_4626_998f5229ca08b364" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 226 1 0 "911c2699_0e84_425f_9e9384c7b6c75351" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" MPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm); // }} "" // {{ 227 1 0 "a141b7db_3cc2_4626_998f5229ca08b364" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 228 1 0 "c4c1eadb_9d04_43d3_871c72d3479cad7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 229 1 0 "17abaeba_05ec_4e18_a3843b54b3bdf6f3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 230 1 0 "1bdc4019_272b_4e0e_8f4935bcd3a782ec" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 231 1 0 "751de83b_d4e0_4859_8b3da1eeaf94bd85" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8D5E8778E7DF4b8f80958A5C14C29872 ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 233 1 0 "751de83b_d4e0_4859_8b3da1eeaf94bd85" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8D5E8778E7DF4b8f80958A5C14C29872 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 234 1 0 "751de83b_d4e0_4859_8b3da1eeaf94bd85" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 235 1 0 "1bdc4019_272b_4e0e_8f4935bcd3a782ec" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 236 1 0 "c826eb96_3570_4883_a8298bc890043c3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected); // }} "" // {{ 237 1 0 "c4c1eadb_9d04_43d3_871c72d3479cad7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "MPH96_Dispense" "End" } // }} "" // {{{ 5 "MPH96_TipEject" "Begin" function MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void { // }} "" // {{ 5 "MPH96_TipEject" "InitLocals" o_stepReturn = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{ 239 1 0 "96bd335e_14f8_47e2_bc54b638fde21919" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C33A74C211664afd9B08BCD3DD5339FC ; err.Clear(); // }} "" // {{ 240 1 0 "a8f4b6bb_e103_433a_b1360393d37e32b3" "ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}" { variable arrRetValues[]; arrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C("a8f4b6bb_e103_433a_b1360393d37e32b3"); // Head96TipEject o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 241 1 0 "96bd335e_14f8_47e2_bc54b638fde21919" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C33A74C211664afd9B08BCD3DD5339FC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 242 1 0 "71d45982_a084_4aaa_a34c6558755061d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 243 1 0 "9e9d44f5_b614_4fb4_b6d39860c83d879d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 244 1 0 "96bd335e_14f8_47e2_bc54b638fde21919" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPH96_TipEject" "End" } // }} "" // {{{ 5 "Initialize" "Begin" function Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void { // }} "" // {{ 5 "Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 189 1 0 "5e221a44_df82_4a4a_b132efe3882170c8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_7F7620635658430dB82A7401CB5C158F ; err.Clear(); // }} "" // {{ 190 1 0 "dc7838fc_172e_45b4_89099f664d6d452e" "ML_STAR:{1C0C0CB0-7C87-11D3-AD83-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1C0C0CB0_7C87_11D3_AD83_0004ACB1DCB2("dc7838fc_172e_45b4_89099f664d6d452e"); // Initialize o_stepReturn = arrRetValues[2]; } // }} "" // {{ 191 1 0 "5e221a44_df82_4a4a_b132efe3882170c8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_7F7620635658430dB82A7401CB5C158F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 192 1 0 "6bd66132_cab8_473c_8437aa033b84ff48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 193 1 0 "5e221a44_df82_4a4a_b132efe3882170c8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Initialize" "End" } // }} "" // {{{ 5 "SendFirmwareCommand" "Begin" function SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void { // }} "" // {{ 5 "SendFirmwareCommand" "InitLocals" o_stepReturn = 0; // }} "" // {{ 273 1 0 "641377bb_9666_411c_91a21acd4e345a9d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_1F6E37B4AFEE4395A984238DCEB0E91C ; err.Clear(); // }} "" // {{ 274 1 0 "c616f5ea_baed_4075_a75531e82e045e2b" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("c616f5ea_baed_4075_a75531e82e045e2b"); // FirmwareCommand o_stepReturn = arrRetValues[3]; } // }} "" // {{ 275 1 0 "0f7ff03f_40eb_4e9b_a2ff42a6b9e6d59a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0[01,00,00,0,,Waste,[02,00,00,0,,Waste,[03,00,00,0,,Waste,[04,00,00,0,,Waste,[05,00,00,0,,Waste,[06,00,00,0,,Waste,[07,00,00,0,,Waste,[08,00,00,0,,Waste,"); // }} "" // {{ 276 1 0 "641377bb_9666_411c_91a21acd4e345a9d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_1F6E37B4AFEE4395A984238DCEB0E91C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 277 1 0 "305af0e7_7bac_4678_a0d1c7c3dd9900d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 278 1 0 "641377bb_9666_411c_91a21acd4e345a9d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "SendFirmwareCommand" "End" } // }} "" // {{{ 5 "TiltModule_Initialize" "Begin" function TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate, variable & o_stepReturn ) void { // }} "" // {{ 5 "TiltModule_Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 280 1 0 "bd83dcea_1e69_4096_ada97e91985fe887" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F7A233121EBD413184BEE5D2CD3510CA ; err.Clear(); // }} "" // {{{ 281 1 0 "8f639116_952a_4b73_b3471e6a53e3906f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLDaisyChainedTiltModule::Initialize(Module, Comport, TraceLevel, Simulate); // }} "" // {{ 282 1 0 "3393edd2_b35c_4d28_9a34abe9b5cba597" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 283 1 0 "bd83dcea_1e69_4096_ada97e91985fe887" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F7A233121EBD413184BEE5D2CD3510CA : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 284 1 0 "60a9b619_1ae2_496a_89ca468bc3f8e964" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 285 1 0 "8e89b190_d2d8_4a7e_8d65313a1104b64f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 286 1 0 "bd83dcea_1e69_4096_ada97e91985fe887" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "TiltModule_Initialize" "End" } // }} "" // {{{ 5 "TiltModule_MoveToPosition" "Begin" function TiltModule_MoveToPosition( variable Module, variable Position, variable & o_stepReturn ) void { // }} "" // {{ 5 "TiltModule_MoveToPosition" "InitLocals" o_stepReturn = 0; // }} "" // {{ 288 1 0 "082df277_2e00_442a_9db2108834994949" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_089FA9D7B12A47b0BAD415A10EC82051 ; err.Clear(); // }} "" // {{{ 289 1 0 "2eb8fec9_f55f_4bdb_9e8f2458aae0ad13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLDaisyChainedTiltModule::MoveToPosition(Module, Position); // }} "" // {{ 290 1 0 "b1a780d0_ecf5_4978_85fb85d1c7090261" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 291 1 0 "082df277_2e00_442a_9db2108834994949" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_089FA9D7B12A47b0BAD415A10EC82051 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 292 1 0 "ce3475b4_ca3b_48ad_b9c7f3c1f1c2d5ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 293 1 0 "a8c3cab3_9bde_404e_b7d673e4d7906771" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 294 1 0 "082df277_2e00_442a_9db2108834994949" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "TiltModule_MoveToPosition" "End" } // }} "" // {{{ 5 "Inheco_TEC_Initialize" "Begin" function Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode, variable & o_stepReturn ) void { // }} "" private variable ErrorCode; // {{ 5 "Inheco_TEC_Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 148 1 0 "14151342_6460_4d8a_9e099b7fce1df805" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_CEBFA2C556164b82A4F638EE8CE505F6 ; err.Clear(); // }} "" // {{{ 149 1 0 "763b8c5e_7926_4aab_84bb556a1de548a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 150 1 0 "7d72bd09_5be5_4a70_8d06349990512cae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ControllerID"), ControllerID); // }} "" // {{{ 151 1 0 "e3c035a6_0376_4030_a0e519c3f0401e3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLInhecoTECLib::Initialize(ControllerID, SimulationMode, ErrorCode); // }} "" // {{ 152 1 0 "ff3d60d9_7d86_4591_b213ab2e2ec6b54f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 153 1 0 "14151342_6460_4d8a_9e099b7fce1df805" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_CEBFA2C556164b82A4F638EE8CE505F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 154 1 0 "f54e5f54_9845_4b71_959134357b62b308" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 155 1 0 "ad00a616_20b6_4fd1_b1b82f15bd592d39" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 156 1 0 "14151342_6460_4d8a_9e099b7fce1df805" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_Initialize" "End" } // }} "" // {{{ 5 "Inheco_TEC_StartTemperatureControl" "Begin" function Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode, variable & o_stepReturn ) void { // }} "" // {{ 5 "Inheco_TEC_StartTemperatureControl" "InitLocals" ErrorCode = 0; o_stepReturn = 0; // }} "" // {{ 166 1 0 "e149ca88_5fb5_4a10_a704093dac2f46c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EF764FBDA7474071A7B517987B9B2FC2 ; err.Clear(); // }} "" // {{{ 167 1 0 "dbb9a46a_b798_4546_8857499b498c024a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLInhecoTECLib::StartTemperatureControl(ControllerID, DeviceID, ErrorCode); // }} "" // {{ 168 1 0 "9962ba81_d090_4144_ad45cfdfb0a81848" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 169 1 0 "e149ca88_5fb5_4a10_a704093dac2f46c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EF764FBDA7474071A7B517987B9B2FC2 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 170 1 0 "1bea095e_8a1c_4a68_846e9362f2c251d6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 171 1 0 "94a7bec1_57e9_49ab_a6d3e430f8e69316" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 172 1 0 "e149ca88_5fb5_4a10_a704093dac2f46c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_StartTemperatureControl" "End" } // }} "" // {{{ 5 "Inheco_TEC_SetTarget" "Begin" function Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & o_stepReturn ) void { // }} "" // {{ 5 "Inheco_TEC_SetTarget" "InitLocals" o_stepReturn = 0; // }} "" // {{ 158 1 0 "2e50215a_6b40_4fa9_93fcfc303b6d44ac" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_56BA970A477C47bf90C6C3373DEB98B0 ; err.Clear(); // }} "" // {{{ 159 1 0 "aef982a0_8382_45fd_aec06a11e9859c17" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLInhecoTECLib::SetTargetTemperature(ControllerID, DeviceID, TargetTemperature, o_stepReturn); // }} "" // {{ 160 1 0 "469d7ad2_b7d8_4e9c_ac57ffe25631b189" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 161 1 0 "2e50215a_6b40_4fa9_93fcfc303b6d44ac" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_56BA970A477C47bf90C6C3373DEB98B0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 162 1 0 "666252c3_d904_4d59_af97abc58a445648" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 163 1 0 "360d64cc_734f_4a97_8c61eb77bf58c2c4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 164 1 0 "2e50215a_6b40_4fa9_93fcfc303b6d44ac" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_SetTarget" "End" } // }} "" // {{{ 5 "Inheco_TEC_StopTemperatureControl" "Begin" function Inheco_TEC_StopTemperatureControl( variable ControllerID, variable DeviceID, variable & o_stepReturn ) void { // }} "" private variable ErrorCode; // {{ 5 "Inheco_TEC_StopTemperatureControl" "InitLocals" o_stepReturn = 0; // }} "" // {{ 174 1 0 "c29a0f01_2391_485c_a95211df9c9b7272" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E3152496BDA74f1681473505DC2B3A3E ; err.Clear(); // }} "" // {{{ 175 1 0 "53a1b499_97d8_49ce_85f583fb81241149" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLInhecoTECLib::StopTemperatureControl(ControllerID, DeviceID, ErrorCode); // }} "" // {{ 176 1 0 "6663219d_f732_4334_ac9149ef5e378f41" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 177 1 0 "c29a0f01_2391_485c_a95211df9c9b7272" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E3152496BDA74f1681473505DC2B3A3E : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 178 1 0 "bf506361_d06d_402a_bce18579529327a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 179 1 0 "c29a0f01_2391_485c_a95211df9c9b7272" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_StopTemperatureControl" "End" } // }} "" // {{{ 5 "Inheco_TEC_Terminate" "Begin" function Inheco_TEC_Terminate( variable StopAllDevices, variable & o_stepReturn ) void { // }} "" // {{ 5 "Inheco_TEC_Terminate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 181 1 0 "6f9054f4_5e87_4236_a046d345d0972e98" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_202B4C8C5EE24700B8BB7F3204BFB6ED ; err.Clear(); // }} "" // {{{ 182 1 0 "3239a113_7650_4023_a9fad336d668211f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLInhecoTECLib::Terminate(StopAllDevices); // }} "" // {{ 183 1 0 "3b263a00_9a60_41fc_9972731eef692e35" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 184 1 0 "6f9054f4_5e87_4236_a046d345d0972e98" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_202B4C8C5EE24700B8BB7F3204BFB6ED : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 185 1 0 "06500de7_b6f0_46c9_83aa39385bd390ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 186 1 0 "1d548ec4_592f_4c53_bd10fcebbc4e29a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("step return in toolkit"), o_stepReturn); // }} "" // {{ 187 1 0 "6f9054f4_5e87_4236_a046d345d0972e98" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_Terminate" "End" } // }} "" // {{{ 5 "BarcodeReader_Initialize" "Begin" function BarcodeReader_Initialize( variable COMPORT, variable & o_stepReturn ) void { // }} "" // {{ 5 "BarcodeReader_Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 1 1 0 "d8b801e6_901b_4026_bdc28d79de1a8bc3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_A3B61CE3E767468e8D1B59076F3D78E4 ; err.Clear(); // }} "" // {{{ 2 1 0 "e0cfef2c_84b3_468a_a20006a3728a8260" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Trace"), COMPORT); // }} "" // {{{ 3 1 0 "e040e6e1_8d46_47ab_87603b90eec83a04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLBarcodeReader::SetComPort(COMPORT); // }} "" // {{{ 4 1 0 "97b56e2c_0824_4073_9e58f7230250d255" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLBarcodeReader::DelComBuffer(); // }} "" // {{ 5 1 0 "d56061ff_1640_4b1a_88dc262e7863d251" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0[01,00,00,0,,Waste,[02,00,00,0,,Waste,[03,00,00,0,,Waste,[04,00,00,0,,Waste,[05,00,00,0,,Waste,[06,00,00,0,,Waste,[07,00,00,0,,Waste,[08,00,00,0,,Waste,"); // }} "" // {{ 6 1 0 "d8b801e6_901b_4026_bdc28d79de1a8bc3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_A3B61CE3E767468e8D1B59076F3D78E4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 7 1 0 "02ecb8f2_684e_4ec1_a9840192e80e0f56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 8 1 0 "d8b801e6_901b_4026_bdc28d79de1a8bc3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "BarcodeReader_Initialize" "End" } // }} "" // {{{ 5 "BarcodeReader_Read" "Begin" function BarcodeReader_Read( variable & barcode ) void { // }} "" // {{ 5 "BarcodeReader_Read" "InitLocals" barcode = 0; // }} "" // {{ 10 1 0 "302bcc17_1365_443f_a46b0d164779f18e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F17E80F5B0F14da6AD3DC48FC7190CFC ; err.Clear(); // }} "" // {{{ 11 1 0 "f3cc7ab5_8df1_49cb_aaf121c9e2cc2d4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("attempting to read barcode "), Translate("attempting to read barcode")); // }} "" // {{{ 12 1 0 "7efa47d3_0206_455e_9c6a05f9f0aebc1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" barcode = HSLBarcodeReader::Read(); // }} "" // {{{ 13 1 0 "dd9a5270_3e4b_4b95_898bbad8823e8ea2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(barcode, Translate("this is the barcode")); // }} "" // {{ 14 1 0 "302bcc17_1365_443f_a46b0d164779f18e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F17E80F5B0F14da6AD3DC48FC7190CFC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 15 1 0 "1bcebdcc_4eed_4f44_b21a8924c1f94855" "{C1F3C015-47B3-4514-9407-AC2E65043419}" barcode = ErrGetDataAt(3); // }} "" // {{ 16 1 0 "302bcc17_1365_443f_a46b0d164779f18e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "BarcodeReader_Read" "End" } // }} "" // {{{ 5 "pH_Measure" "Begin" function pH_Measure( variable i_intModuleID, variable i_fltTemperature, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Measure" "InitLocals" o_fltpHProbe_1 = 0; o_fltpHProbe_2 = 0; o_fltpHProbe_3 = 0; o_fltpHProbe_4 = 0; o_stepReturn = 0; // }} "" // {{ 320 1 0 "ed7e1393_5f74_4f7a_9f24134bcc79cfea" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_485A52AE45C346adA048E7F329D0C390 ; err.Clear(); // }} "" // {{{ 321 1 0 "70294f1d_735f_43b0_bfff139b2e168d5d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::Measure(i_intModuleID, i_fltTemperature, i_strProbePattern, o_fltpHProbe_1, o_fltpHProbe_2, o_fltpHProbe_3, o_fltpHProbe_4); // }} "" // {{ 322 1 0 "ed7e1393_5f74_4f7a_9f24134bcc79cfea" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_485A52AE45C346adA048E7F329D0C390 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 323 1 0 "b81f548d_2601_402a_9a291d45b6b50706" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 324 1 0 "ed7e1393_5f74_4f7a_9f24134bcc79cfea" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Measure" "End" } // }} "" // {{{ 5 "Inheco_TEC_GetTemperature" "Begin" function Inheco_TEC_GetTemperature( variable controllerID, variable deviceID, variable selector, variable & o_stepReturn2, variable & o_stepReturn ) void { // }} "" // {{ 5 "Inheco_TEC_GetTemperature" "InitLocals" o_stepReturn2 = 0; o_stepReturn = 0; // }} "" // {{ 140 1 0 "da54d8e7_9189_4438_9594c15a1855363a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_60EB86D9560B4ffeB391B85D18EEEC63 ; err.Clear(); // }} "" // {{{ 141 1 0 "e81aae04_4de7_48d6_b932c08bcfc8a8ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLInhecoTECLib::GetActualDeviceTemperature(controllerID, deviceID, selector, o_stepReturn2, o_stepReturn); // }} "" // {{ 142 1 0 "380c60ec_4f9b_444a_923612af9dcd5f53" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 143 1 0 "da54d8e7_9189_4438_9594c15a1855363a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_60EB86D9560B4ffeB391B85D18EEEC63 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 144 1 0 "a047b3a4_8b5d_42f5_a23b3143dcfed445" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 145 1 0 "01aecd5b_6225_401f_83eced9bff3b7e30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("step return in toolkit"), o_stepReturn); // }} "" // {{ 146 1 0 "da54d8e7_9189_4438_9594c15a1855363a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_GetTemperature" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=Stefan.Golas$$valid=0$$time=2025-09-17 18:52$$checksum=7e3e6871$$length=091$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/STAR_OEM_toolkit_MPE.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 3/20/2023 9:12:05 AM #pragma once #ifndef HSL_RUNTIME namespace STAR_OEM_TOOLKIT_MPE { function _InitLibrary() { } function _ExitLibrary() { } function MPE2_ClampFilterPlate( variable i_intDeviceID, variable & o_stepReturn ) void { } function MPE2_ClearSourceConfiguration( variable i_intDeviceID, variable i_blnReset, variable & o_stepReturn ) void { } function MPE2_CollectionPlatePlaced( variable i_intDeviceID, variable i_floatCollectionPlateHeight, variable i_floatOffsetFromNozzles, variable & o_stepReturn ) void { } function MPE2_CollectionPlateRemoved( variable i_intDeviceID, variable & o_stepReturn ) void { } function MPE2_ConnectUsingCOM( variable i_intComPort, variable i_intBaudRate, variable i_blnSimulationMode, variable i_MpeOptions, variable & o_intDeviceID, variable & o_stepReturn ) void { } function MPE2_ConnectUsingIP( variable i_strInstrumentName, variable i_intPortNumber, variable i_blnSimulationMode, variable i_MpeOptions, variable & o_intDeviceID, variable & o_stepReturn ) void { } function MPE2_CustomDispense( variable i_intDeviceID, variable i_intSourceID, variable i_fltWellVolume, variable i_fltFlowRateAspirate, variable i_fltFlowRateDispense, variable i_fltNeedleOffset, variable i_fltEdgeToWellOffset, variable & i_ArrayWellToWellOffset[], variable i_intDelayBetweenAspirateAndDispense, variable i_intDelayBetweenDispense, variable & o_stepReturn ) void { } function MPE2_Disconnect( variable i_intDeviceID, variable & o_stepReturn ) void { } function MPE2_Dispense( variable i_intDeviceID, variable i_intSourceID, variable i_fltWellVolume, variable i_fltFlowRate, variable i_fltNeedleOffset, variable & o_stepReturn ) void { } function MPE2_Evaporate( variable i_intDeviceID, variable i_fltPlateHeight, variable i_fltNeedleOffset, variable i_fltWellDepth, variable i_intEvaporateTime, variable & o_stepReturn ) void { } function MPE2_EvaporateEnd( variable i_intDeviceID, variable i_intTimeOut, variable & o_stepReturn ) void { } function MPE2_EvaporatePrepare( variable i_intDeviceID, variable i_fltTemperature, variable i_fltPressure, variable i_intTimeOut, variable & o_stepReturn ) void { } function MPE2_EvaporateWithRate( variable i_intDeviceID, variable i_fltPlateHeight, variable i_fltNeedeOffset, variable i_fltEvaporatorTravelDistance, variable i_intEvaporateTime, variable i_fltFollowRate, variable & o_stepReturn ) void { } function MPE2_FilterPlatePlaced( variable i_intDeviceID, variable i_fltFilterHeight, variable i_fltNozzleHeight, variable & o_stepReturn ) void { } function MPE2_FilterPlateRemoved( variable i_intDeviceID, variable & o_stepReturn ) void { } function MPE2_Flush( variable i_intDeviceID, variable i_fltWellVolume, variable i_fltFlowRate, variable i_intWasteContainterID, variable & o_stepReturn ) void { } function MPE2_GetContainerCalibration( variable i_intDeviceID, variable i_intSourceID, variable & o_fltCapacityVolume, variable & o_intEmptyReading, variable & o_intFullReading, variable & o_strCalibrationDate, variable & o_stepReturn ) void { } function MPE2_GetCurrentHeaterStatus( variable i_intDeviceID, variable i_blnReset, variable & o_fltCurrentEvapTemperature, variable & o_fltCurrentGasTemp, variable & o_intHeating, variable & o_stepReturn ) void { } function MPE2_GetHeaterTemperatureRange( variable i_intDeviceID, variable i_blnReset, variable & o_fltMinEvapTemperature, variable & o_fltMaxEvapTemperature, variable & o_fltMinGasTemperature, variable & o_fltMaxGasTemperature, variable & o_fltTargetTemperature, variable & o_intHeating, variable & o_stepReturn ) void { } function MPE2_GetPressureSensorReadings( variable i_intDeviceID, variable & o_fltInputPressureSensor, variable & o_fltManifoldPressureSensor, variable & o_fltHighPressureSensor, variable & o_fltLowPressureSensor, variable & o_stepReturn ) void { } function MPE2_GetSourceConfiguration( variable i_intDeviceID, variable & o_stepReturn ) void { } function MPE2_GetTemperatureRange( variable i_intDeviceID, variable & o_fltIMinimumTemperature, variable & o_fltMaximumTemperature, variable & o_stepReturn ) void { } function MPE2_GetVacuumStatus( variable i_intDeviceID, variable & o_intVacuumActive, variable & o_stepReturn ) void { } function MPE2_Initialize( variable i_intDeviceID, variable & o_stepReturn ) void { } function MPE2_InitializeWithParameters( variable i_intDeviceID, variable i_blnSmart, variable i_intWasteContainerID, variable i_intVacuumRunTime, variable i_blnDisableVacuumCheck, variable & o_stepReturn ) void { } function MPE2_MeasureEmptyContainer( variable i_intDeviceID, variable i_intSourceID, variable & o_intSensorReading, variable & o_stepReturn ) void { } function MPE2_MeasureFullContainer( variable i_intDeviceID, variable i_intSourceID, variable & o_intSensorReading, variable & o_stepReturn ) void { } function MPE2_Prime( variable i_intDeviceID, variable i_intSourceID, variable i_fltWellVolume, variable i_fltFlowRate, variable i_intWasteContainerID, variable & o_stepReturn ) void { } function MPE2_ProcessFilterToCollectionPlate( variable i_intDeviceID, variable i_strControlPoints, variable i_blnReturnPlateToIntegrationArea, variable & o_stepReturn ) void { } function MPE2_ProcessFilterToWasteContainer( variable i_intDeviceID, variable i_strControlPoints, variable i_blnReturnPlateToIntegrationArea, variable i_intWasteContainerID, variable i_blnDisableVacuumCheck, variable & o_stepReturn ) void { } function MPE2_RetrieveFilterPlate( variable i_intDeviceID, variable & o_stepReturn ) void { } function MPE2_SaveContainerCalibration( variable i_intDeviceID, variable i_intSourceID, variable i_fltVolume, variable & o_stepReturn ) void { } function MPE2_SetSourceConfiguration( variable i_intDeviceID, variable & o_stepReturn ) void { } function MPE2_StartContainerCalibration( variable i_intDeviceID, variable i_intSourceID, variable i_fltVolume, variable & o_stepReturn ) void { } function MPE2_StartVacuum( variable i_intDeviceID, variable i_intWasteContainerID, variable i_blnDisableVacuum, variable & o_stepReturn ) void { } function MPE2_StopVacuum( variable i_intDeviceID, variable & o_stepReturn ) void { } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=stefa$$valid=0$$time=2023-03-20 09:12$$checksum=e411cbdc$$length=082$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/STAR_OEM_toolkit_MPE.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "Hamilton MPE2\\HSLMPELib.hsl" #include "HSLErrLib.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace STAR_OEM_TOOLKIT_MPE { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function MPE2_ClampFilterPlate( variable i_intDeviceID, variable & o_stepReturn ) void ; function MPE2_ClearSourceConfiguration( variable i_intDeviceID, variable i_blnReset, variable & o_stepReturn ) void ; function MPE2_CollectionPlatePlaced( variable i_intDeviceID, variable i_floatCollectionPlateHeight, variable i_floatOffsetFromNozzles, variable & o_stepReturn ) void ; function MPE2_CollectionPlateRemoved( variable i_intDeviceID, variable & o_stepReturn ) void ; function MPE2_ConnectUsingCOM( variable i_intComPort, variable i_intBaudRate, variable i_blnSimulationMode, variable i_MpeOptions, variable & o_intDeviceID, variable & o_stepReturn ) void ; function MPE2_ConnectUsingIP( variable i_strInstrumentName, variable i_intPortNumber, variable i_blnSimulationMode, variable i_MpeOptions, variable & o_intDeviceID, variable & o_stepReturn ) void ; function MPE2_CustomDispense( variable i_intDeviceID, variable i_intSourceID, variable i_fltWellVolume, variable i_fltFlowRateAspirate, variable i_fltFlowRateDispense, variable i_fltNeedleOffset, variable i_fltEdgeToWellOffset, variable & i_ArrayWellToWellOffset[], variable i_intDelayBetweenAspirateAndDispense, variable i_intDelayBetweenDispense, variable & o_stepReturn ) void ; function MPE2_Disconnect( variable i_intDeviceID, variable & o_stepReturn ) void ; function MPE2_Dispense( variable i_intDeviceID, variable i_intSourceID, variable i_fltWellVolume, variable i_fltFlowRate, variable i_fltNeedleOffset, variable & o_stepReturn ) void ; function MPE2_Evaporate( variable i_intDeviceID, variable i_fltPlateHeight, variable i_fltNeedleOffset, variable i_fltWellDepth, variable i_intEvaporateTime, variable & o_stepReturn ) void ; function MPE2_EvaporateEnd( variable i_intDeviceID, variable i_intTimeOut, variable & o_stepReturn ) void ; function MPE2_EvaporatePrepare( variable i_intDeviceID, variable i_fltTemperature, variable i_fltPressure, variable i_intTimeOut, variable & o_stepReturn ) void ; function MPE2_EvaporateWithRate( variable i_intDeviceID, variable i_fltPlateHeight, variable i_fltNeedeOffset, variable i_fltEvaporatorTravelDistance, variable i_intEvaporateTime, variable i_fltFollowRate, variable & o_stepReturn ) void ; function MPE2_FilterPlatePlaced( variable i_intDeviceID, variable i_fltFilterHeight, variable i_fltNozzleHeight, variable & o_stepReturn ) void ; function MPE2_FilterPlateRemoved( variable i_intDeviceID, variable & o_stepReturn ) void ; function MPE2_Flush( variable i_intDeviceID, variable i_fltWellVolume, variable i_fltFlowRate, variable i_intWasteContainterID, variable & o_stepReturn ) void ; function MPE2_GetContainerCalibration( variable i_intDeviceID, variable i_intSourceID, variable & o_fltCapacityVolume, variable & o_intEmptyReading, variable & o_intFullReading, variable & o_strCalibrationDate, variable & o_stepReturn ) void ; function MPE2_GetCurrentHeaterStatus( variable i_intDeviceID, variable i_blnReset, variable & o_fltCurrentEvapTemperature, variable & o_fltCurrentGasTemp, variable & o_intHeating, variable & o_stepReturn ) void ; function MPE2_GetHeaterTemperatureRange( variable i_intDeviceID, variable i_blnReset, variable & o_fltMinEvapTemperature, variable & o_fltMaxEvapTemperature, variable & o_fltMinGasTemperature, variable & o_fltMaxGasTemperature, variable & o_fltTargetTemperature, variable & o_intHeating, variable & o_stepReturn ) void ; function MPE2_GetPressureSensorReadings( variable i_intDeviceID, variable & o_fltInputPressureSensor, variable & o_fltManifoldPressureSensor, variable & o_fltHighPressureSensor, variable & o_fltLowPressureSensor, variable & o_stepReturn ) void ; function MPE2_GetSourceConfiguration( variable i_intDeviceID, variable & o_stepReturn ) void ; function MPE2_GetTemperatureRange( variable i_intDeviceID, variable & o_fltIMinimumTemperature, variable & o_fltMaximumTemperature, variable & o_stepReturn ) void ; function MPE2_GetVacuumStatus( variable i_intDeviceID, variable & o_intVacuumActive, variable & o_stepReturn ) void ; function MPE2_Initialize( variable i_intDeviceID, variable & o_stepReturn ) void ; function MPE2_InitializeWithParameters( variable i_intDeviceID, variable i_blnSmart, variable i_intWasteContainerID, variable i_intVacuumRunTime, variable i_blnDisableVacuumCheck, variable & o_stepReturn ) void ; function MPE2_MeasureEmptyContainer( variable i_intDeviceID, variable i_intSourceID, variable & o_intSensorReading, variable & o_stepReturn ) void ; function MPE2_MeasureFullContainer( variable i_intDeviceID, variable i_intSourceID, variable & o_intSensorReading, variable & o_stepReturn ) void ; function MPE2_Prime( variable i_intDeviceID, variable i_intSourceID, variable i_fltWellVolume, variable i_fltFlowRate, variable i_intWasteContainerID, variable & o_stepReturn ) void ; function MPE2_ProcessFilterToCollectionPlate( variable i_intDeviceID, variable i_strControlPoints, variable i_blnReturnPlateToIntegrationArea, variable & o_stepReturn ) void ; function MPE2_ProcessFilterToWasteContainer( variable i_intDeviceID, variable i_strControlPoints, variable i_blnReturnPlateToIntegrationArea, variable i_intWasteContainerID, variable i_blnDisableVacuumCheck, variable & o_stepReturn ) void ; function MPE2_RetrieveFilterPlate( variable i_intDeviceID, variable & o_stepReturn ) void ; function MPE2_SaveContainerCalibration( variable i_intDeviceID, variable i_intSourceID, variable i_fltVolume, variable & o_stepReturn ) void ; function MPE2_SetSourceConfiguration( variable i_intDeviceID, variable & o_stepReturn ) void ; function MPE2_StartContainerCalibration( variable i_intDeviceID, variable i_intSourceID, variable i_fltVolume, variable & o_stepReturn ) void ; function MPE2_StartVacuum( variable i_intDeviceID, variable i_intWasteContainerID, variable i_blnDisableVacuum, variable & o_stepReturn ) void ; function MPE2_StopVacuum( variable i_intDeviceID, variable & o_stepReturn ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" // }} "" } // {{{ 5 "MPE2_ConnectUsingIP" "Begin" function MPE2_ConnectUsingIP( variable i_strInstrumentName, variable i_intPortNumber, variable i_blnSimulationMode, variable i_MpeOptions, variable & o_intDeviceID, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_ConnectUsingIP" "InitLocals" o_intDeviceID = 0; o_stepReturn = 0; // }} "" // {{ 37 1 0 "25d6ad8d_b624_413d_b9c8fbd065552ebd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B45D37AB9865453f8D267565C503CBF3 ; err.Clear(); // }} "" // {{{ 38 1 0 "1d66cc34_9066_4fe3_b4a87427ba6f0914" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::ConnectUsingIP(i_strInstrumentName, i_intPortNumber, i_blnSimulationMode, o_intDeviceID, i_MpeOptions); // }} "" // {{ 39 1 0 "fb95730d_0f06_4a45_bbde46df15926dbc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 40 1 0 "25d6ad8d_b624_413d_b9c8fbd065552ebd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B45D37AB9865453f8D267565C503CBF3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 41 1 0 "0f463d24_2bdf_4631_ae9d743d289da56e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 42 1 0 "09f52338_1af1_49de_90e906eb9311c1d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 43 1 0 "25d6ad8d_b624_413d_b9c8fbd065552ebd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_ConnectUsingIP" "End" } // }} "" // {{{ 5 "MPE2_ConnectUsingCOM" "Begin" function MPE2_ConnectUsingCOM( variable i_intComPort, variable i_intBaudRate, variable i_blnSimulationMode, variable i_MpeOptions, variable & o_intDeviceID, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_ConnectUsingCOM" "InitLocals" o_intDeviceID = 0; o_stepReturn = 0; // }} "" // {{ 29 1 0 "33974866_cd66_4d0c_8d94e332df257b84" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0A1605DD6A0B467bB5C68AE1B5EB7B99 ; err.Clear(); // }} "" // {{{ 30 1 0 "373ed343_22ba_42f7_bde5da865be55351" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::ConnectUsingCOM(i_intComPort, i_intBaudRate, i_blnSimulationMode, o_intDeviceID, i_MpeOptions); // }} "" // {{ 31 1 0 "55a04d50_2226_4290_934dbac8a8892b66" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 32 1 0 "33974866_cd66_4d0c_8d94e332df257b84" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0A1605DD6A0B467bB5C68AE1B5EB7B99 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 33 1 0 "ba323870_aae2_4439_8d7a4fae7a90699f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 34 1 0 "82347ea9_2474_4ae5_9187947834cbc946" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 35 1 0 "33974866_cd66_4d0c_8d94e332df257b84" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_ConnectUsingCOM" "End" } // }} "" // {{{ 5 "MPE2_ClampFilterPlate" "Begin" function MPE2_ClampFilterPlate( variable i_intDeviceID, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_ClampFilterPlate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 1 1 0 "292911c5_1375_4f97_841a4d19c1506b0a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B9BC6AB18723482784ECE401DB7A4CE7 ; err.Clear(); // }} "" // {{{ 2 1 0 "d1f88e7c_e4e3_43bf_8e101f409cb24aed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::ClampFilterPlate(i_intDeviceID); // }} "" // {{ 3 1 0 "292911c5_1375_4f97_841a4d19c1506b0a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B9BC6AB18723482784ECE401DB7A4CE7 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 4 1 0 "6cb867bf_35c3_4e98_b9526e82a90fbb50" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 5 1 0 "292911c5_1375_4f97_841a4d19c1506b0a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_ClampFilterPlate" "End" } // }} "" // {{{ 5 "MPE2_ClearSourceConfiguration" "Begin" function MPE2_ClearSourceConfiguration( variable i_intDeviceID, variable i_blnReset, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_ClearSourceConfiguration" "InitLocals" o_stepReturn = 0; // }} "" // {{ 7 1 0 "3b7240cc_447f_49cf_b4a7a671e30cc883" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_14C621A3A7774a219921A7EA30C3AE4A ; err.Clear(); // }} "" // {{{ 8 1 0 "d9f544f1_ad2a_4d7d_ac29b068815812d1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::ClearSourceConfiguration(i_intDeviceID, i_blnReset); // }} "" // {{ 9 1 0 "3b7240cc_447f_49cf_b4a7a671e30cc883" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_14C621A3A7774a219921A7EA30C3AE4A : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 10 1 0 "308e58a3_a4af_4dec_8b50ce0f30ff87f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 11 1 0 "3b7240cc_447f_49cf_b4a7a671e30cc883" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_ClearSourceConfiguration" "End" } // }} "" // {{{ 5 "MPE2_CollectionPlatePlaced" "Begin" function MPE2_CollectionPlatePlaced( variable i_intDeviceID, variable i_floatCollectionPlateHeight, variable i_floatOffsetFromNozzles, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_CollectionPlatePlaced" "InitLocals" o_stepReturn = 0; // }} "" // {{ 13 1 0 "e247a842_deba_40e2_819ba4d561593de4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F681CA8B612845baB6A2A15C4048BBDB ; err.Clear(); // }} "" // {{{ 14 1 0 "094e7ba5_f7af_471d_bb15c6c14171a5fe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::CollectionPlatePlaced(i_intDeviceID, i_floatCollectionPlateHeight, i_floatOffsetFromNozzles); // }} "" // {{ 15 1 0 "0e3a99de_b99d_4490_a45fbe8d7c213f0d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 16 1 0 "e247a842_deba_40e2_819ba4d561593de4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F681CA8B612845baB6A2A15C4048BBDB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 17 1 0 "e8d0892f_03c3_45f2_8bcc6d696312cdcc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 18 1 0 "b0097368_49f6_496c_8e04d20d2bb9a460" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 19 1 0 "e247a842_deba_40e2_819ba4d561593de4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_CollectionPlatePlaced" "End" } // }} "" // {{{ 5 "MPE2_CollectionPlateRemoved" "Begin" function MPE2_CollectionPlateRemoved( variable i_intDeviceID, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_CollectionPlateRemoved" "InitLocals" o_stepReturn = 0; // }} "" // {{ 21 1 0 "5ef073f7_47af_4335_837d38844141e649" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_23B6CD8702354dd7B18650ACEB718731 ; err.Clear(); // }} "" // {{{ 22 1 0 "50d8f2c4_5d39_4da2_84af375eb6d2696e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::CollectionPlateRemoved(i_intDeviceID); // }} "" // {{ 23 1 0 "3c3967e3_1806_4556_9374c90327878318" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 24 1 0 "5ef073f7_47af_4335_837d38844141e649" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_23B6CD8702354dd7B18650ACEB718731 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 25 1 0 "013733d5_6d60_4cb9_bddb585c69eb475b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 26 1 0 "73d4b316_b387_4c69_b4b3be2f18cbc22e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 27 1 0 "5ef073f7_47af_4335_837d38844141e649" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_CollectionPlateRemoved" "End" } // }} "" // {{{ 5 "MPE2_CustomDispense" "Begin" function MPE2_CustomDispense( variable i_intDeviceID, variable i_intSourceID, variable i_fltWellVolume, variable i_fltFlowRateAspirate, variable i_fltFlowRateDispense, variable i_fltNeedleOffset, variable i_fltEdgeToWellOffset, variable & i_ArrayWellToWellOffset[], variable i_intDelayBetweenAspirateAndDispense, variable i_intDelayBetweenDispense, variable & o_stepReturn ) void { // }} "" private variable placeholder[]; // {{ 5 "MPE2_CustomDispense" "InitLocals" o_stepReturn = 0; // }} "" // {{ 45 1 0 "7d3f0609_f51f_4b89_9d051b6899c2eddb" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_30C099F478A34a0cA384182252B5B9C4 ; err.Clear(); // }} "" // {{{ 46 1 0 "cab84be0_0ff4_4fc1_a87c39eabe0e9f4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::CustomDispense(i_intDeviceID, i_intSourceID, i_fltWellVolume, i_fltFlowRateAspirate, i_fltFlowRateDispense, i_fltNeedleOffset, i_fltEdgeToWellOffset, placeholder, i_intDelayBetweenAspirateAndDispense, i_intDelayBetweenDispense); // }} "" // {{ 47 1 0 "217ae2bf_efd0_4c00_870b2f922afc7948" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 48 1 0 "7d3f0609_f51f_4b89_9d051b6899c2eddb" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_30C099F478A34a0cA384182252B5B9C4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 49 1 0 "d37b0c56_580b_4623_92e3a7f47c648caf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 50 1 0 "3ea35e5a_04a8_41f0_9d4af6796d59ca06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 51 1 0 "7d3f0609_f51f_4b89_9d051b6899c2eddb" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_CustomDispense" "End" } // }} "" // {{{ 5 "MPE2_Disconnect" "Begin" function MPE2_Disconnect( variable i_intDeviceID, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_Disconnect" "InitLocals" o_stepReturn = 0; // }} "" // {{ 53 1 0 "e6d7a1bd_5b6b_419a_b0abd775a7f9a652" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_D57FAA75DF034a7395286B7E463702DD ; err.Clear(); // }} "" // {{{ 54 1 0 "2a73a63c_396f_49b3_ae2d570aa5f6b668" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::Disconnect(i_intDeviceID); // }} "" // {{ 55 1 0 "9575d07b_1894_4d4a_a947c4f66fca18bf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 56 1 0 "e6d7a1bd_5b6b_419a_b0abd775a7f9a652" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_D57FAA75DF034a7395286B7E463702DD : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 57 1 0 "239e1e26_a9c2_4c3b_8cc68ca59f99d75e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 58 1 0 "c6f6b1e6_7712_4e65_a95f8a857e2eef6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 59 1 0 "e6d7a1bd_5b6b_419a_b0abd775a7f9a652" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_Disconnect" "End" } // }} "" // {{{ 5 "MPE2_Dispense" "Begin" function MPE2_Dispense( variable i_intDeviceID, variable i_intSourceID, variable i_fltWellVolume, variable i_fltFlowRate, variable i_fltNeedleOffset, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_Dispense" "InitLocals" o_stepReturn = 0; // }} "" // {{ 61 1 0 "0a982a7d_065b_4089_80d90879da8178e5" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_AB6F21A8AAEF47659993C076F4B8FC2D ; err.Clear(); // }} "" // {{{ 62 1 0 "1c62e09f_be7d_457d_bcb1d37aebc27789" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::Dispense(i_intDeviceID, i_intSourceID, i_fltWellVolume, i_fltFlowRate, i_fltNeedleOffset); // }} "" // {{ 63 1 0 "19107e39_ce93_4ab2_8740912fde2bde6c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 64 1 0 "0a982a7d_065b_4089_80d90879da8178e5" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_AB6F21A8AAEF47659993C076F4B8FC2D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 65 1 0 "7397839c_baa5_4adc_801bae285a5c0a71" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 66 1 0 "1f13e225_7852_4114_ad57826e258bb1a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 67 1 0 "0a982a7d_065b_4089_80d90879da8178e5" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_Dispense" "End" } // }} "" // {{{ 5 "MPE2_Evaporate" "Begin" function MPE2_Evaporate( variable i_intDeviceID, variable i_fltPlateHeight, variable i_fltNeedleOffset, variable i_fltWellDepth, variable i_intEvaporateTime, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_Evaporate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 69 1 0 "db8152b6_3f79_4c9a_8b6bfdd73361eaf2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_60B8BA2562A44bf3A577F2AD3FA487BF ; err.Clear(); // }} "" // {{{ 70 1 0 "860e25c4_7f07_4b6b_9848ce1ea1a81974" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::Evaporate(i_intDeviceID, i_fltPlateHeight, i_fltNeedleOffset, i_fltWellDepth, i_intEvaporateTime); // }} "" // {{ 71 1 0 "29e1d24b_9ce6_4cd2_91b6b8f0312e3e47" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 72 1 0 "db8152b6_3f79_4c9a_8b6bfdd73361eaf2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_60B8BA2562A44bf3A577F2AD3FA487BF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 73 1 0 "95456b21_f31b_4737_95bab1478080b35b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 74 1 0 "1012d202_2bc6_476f_8e352e733941528e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 75 1 0 "db8152b6_3f79_4c9a_8b6bfdd73361eaf2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_Evaporate" "End" } // }} "" // {{{ 5 "MPE2_EvaporateEnd" "Begin" function MPE2_EvaporateEnd( variable i_intDeviceID, variable i_intTimeOut, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_EvaporateEnd" "InitLocals" o_stepReturn = 0; // }} "" // {{ 77 1 0 "86f8e99f_232f_43fc_92c52f691bfc7fbe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_921CD36207214ddf9AF42654293BEAA9 ; err.Clear(); // }} "" // {{{ 78 1 0 "8cee9b80_5eb7_44a5_ba36365542dfd248" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::EvaporateEnd(i_intDeviceID, i_intTimeOut); // }} "" // {{ 79 1 0 "3755c12b_f49c_4f86_881bb7b9ca73515e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 80 1 0 "86f8e99f_232f_43fc_92c52f691bfc7fbe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_921CD36207214ddf9AF42654293BEAA9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 81 1 0 "d1216187_9471_45d2_91966f1559dc91d0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 82 1 0 "eb208701_575a_4163_837d9f06b10315eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 83 1 0 "86f8e99f_232f_43fc_92c52f691bfc7fbe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_EvaporateEnd" "End" } // }} "" // {{{ 5 "MPE2_EvaporatePrepare" "Begin" function MPE2_EvaporatePrepare( variable i_intDeviceID, variable i_fltTemperature, variable i_fltPressure, variable i_intTimeOut, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_EvaporatePrepare" "InitLocals" o_stepReturn = 0; // }} "" // {{ 85 1 0 "f5add80c_462c_4d99_b4efa626090c3172" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_D806382A051E4ed3BE9CF38530A5CB56 ; err.Clear(); // }} "" // {{{ 86 1 0 "819cec27_5116_49b4_a8be9262ed565cc8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::EvaporatePrepare(i_intDeviceID, i_fltTemperature, i_fltPressure, i_intTimeOut); // }} "" // {{ 87 1 0 "08cbe8b0_090f_4aa9_b5bd293beddd445d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 88 1 0 "f5add80c_462c_4d99_b4efa626090c3172" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_D806382A051E4ed3BE9CF38530A5CB56 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 89 1 0 "dea617c1_9e43_4d28_9dc5b84376e1f5bd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 90 1 0 "898862b3_eecd_4a66_b981bd7cfc8c383d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 91 1 0 "f5add80c_462c_4d99_b4efa626090c3172" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_EvaporatePrepare" "End" } // }} "" // {{{ 5 "MPE2_EvaporateWithRate" "Begin" function MPE2_EvaporateWithRate( variable i_intDeviceID, variable i_fltPlateHeight, variable i_fltNeedeOffset, variable i_fltEvaporatorTravelDistance, variable i_intEvaporateTime, variable i_fltFollowRate, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_EvaporateWithRate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 93 1 0 "7a6baecb_2670_4bc7_bd6ba13f1c0f19c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C2F4786CBE49457c8F1FD2D1E65FFB8B ; err.Clear(); // }} "" // {{{ 94 1 0 "07c824bc_76d2_4c02_8fe3de2c411bec05" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::EvaporateWithRate(i_intDeviceID, i_fltPlateHeight, i_fltNeedeOffset, i_fltEvaporatorTravelDistance, i_intEvaporateTime, i_fltFollowRate); // }} "" // {{ 95 1 0 "8f8943b5_de27_499a_ae45f3a44c499b0b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 96 1 0 "7a6baecb_2670_4bc7_bd6ba13f1c0f19c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C2F4786CBE49457c8F1FD2D1E65FFB8B : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 97 1 0 "1688d5cf_7980_4cec_babbcfeea55105e1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 98 1 0 "38643089_9805_470b_b5183bb293c9803e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 99 1 0 "7a6baecb_2670_4bc7_bd6ba13f1c0f19c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_EvaporateWithRate" "End" } // }} "" // {{{ 5 "MPE2_FilterPlatePlaced" "Begin" function MPE2_FilterPlatePlaced( variable i_intDeviceID, variable i_fltFilterHeight, variable i_fltNozzleHeight, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_FilterPlatePlaced" "InitLocals" o_stepReturn = 0; // }} "" // {{ 101 1 0 "10edfa89_f441_4cc1_b654e9e2a0c311ee" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_6937F735EA024567A9EF36334B4DAB1A ; err.Clear(); // }} "" // {{{ 102 1 0 "9c265cef_1b07_431a_9ce0d57ad3fdc3f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::FilterPlatePlaced(i_intDeviceID, i_fltFilterHeight, i_fltNozzleHeight); // }} "" // {{ 103 1 0 "f75e7041_d5aa_4fc4_910473cb7079df9b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 104 1 0 "10edfa89_f441_4cc1_b654e9e2a0c311ee" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_6937F735EA024567A9EF36334B4DAB1A : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 105 1 0 "b26203cc_8d0e_4ef9_a93dd85c93e994f5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 106 1 0 "f14a5e86_bd1c_4284_bfc23f45224d475b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 107 1 0 "10edfa89_f441_4cc1_b654e9e2a0c311ee" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_FilterPlatePlaced" "End" } // }} "" // {{{ 5 "MPE2_FilterPlateRemoved" "Begin" function MPE2_FilterPlateRemoved( variable i_intDeviceID, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_FilterPlateRemoved" "InitLocals" o_stepReturn = 0; // }} "" // {{ 109 1 0 "0da2e548_4f2d_49d6_9cf8999ed4ec75f0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_48D332A178664294B43DAB7864E46211 ; err.Clear(); // }} "" // {{{ 110 1 0 "c07a5e92_0138_48b4_83cb58e25b08c61d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::FilterPlateRemoved(i_intDeviceID); // }} "" // {{ 111 1 0 "093fa708_d24a_45e7_90a676efb5905d1d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 112 1 0 "0da2e548_4f2d_49d6_9cf8999ed4ec75f0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_48D332A178664294B43DAB7864E46211 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 113 1 0 "784531e5_8e45_4b9c_9e635f93a46f7a64" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 114 1 0 "c4db826a_c9c2_4602_9e2a263c4321a432" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 115 1 0 "0da2e548_4f2d_49d6_9cf8999ed4ec75f0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_FilterPlateRemoved" "End" } // }} "" // {{{ 5 "MPE2_Flush" "Begin" function MPE2_Flush( variable i_intDeviceID, variable i_fltWellVolume, variable i_fltFlowRate, variable i_intWasteContainterID, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_Flush" "InitLocals" o_stepReturn = 0; // }} "" // {{ 117 1 0 "b53983f0_cfbc_4b61_8c610a26933174e7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_7422216A381A4af68FEB9762A9B56A58 ; err.Clear(); // }} "" // {{{ 118 1 0 "a52cc6d2_3100_435f_a28922d736f711d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::Flush(i_intDeviceID, i_fltWellVolume, i_fltFlowRate, i_intWasteContainterID); // }} "" // {{ 119 1 0 "6d975e62_36dd_4e10_ad57d727cffb988c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 120 1 0 "b53983f0_cfbc_4b61_8c610a26933174e7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_7422216A381A4af68FEB9762A9B56A58 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 121 1 0 "fee54888_4d35_4eff_a3347691603f0ec9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 122 1 0 "b2f51e60_c527_46f2_85d238640fe8ea75" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 123 1 0 "b53983f0_cfbc_4b61_8c610a26933174e7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_Flush" "End" } // }} "" // {{{ 5 "MPE2_GetContainerCalibration" "Begin" function MPE2_GetContainerCalibration( variable i_intDeviceID, variable i_intSourceID, variable & o_fltCapacityVolume, variable & o_intEmptyReading, variable & o_intFullReading, variable & o_strCalibrationDate, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_GetContainerCalibration" "InitLocals" o_fltCapacityVolume = 0; o_intEmptyReading = 0; o_intFullReading = 0; o_strCalibrationDate = 0; o_stepReturn = 0; // }} "" // {{ 125 1 0 "39c3e710_91dd_47ef_b053382a5fc6b0fb" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8DC89D441DB840e2B98CC49344C30A3A ; err.Clear(); // }} "" // {{{ 126 1 0 "8244c056_535d_4fbd_a2c0ef4edabd2844" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::GetContainerCalibration(i_intDeviceID, i_intSourceID, o_fltCapacityVolume, o_intEmptyReading, o_intFullReading, o_strCalibrationDate); // }} "" // {{ 127 1 0 "664f032f_46e1_4e68_87219dc6a53b4dab" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 128 1 0 "39c3e710_91dd_47ef_b053382a5fc6b0fb" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8DC89D441DB840e2B98CC49344C30A3A : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 129 1 0 "ada4a7d0_3e54_448a_81ac98ffebe495fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 130 1 0 "56bd7db1_8eda_4e01_b0933fd3ca7cb0fe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 131 1 0 "39c3e710_91dd_47ef_b053382a5fc6b0fb" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_GetContainerCalibration" "End" } // }} "" // {{{ 5 "MPE2_GetCurrentHeaterStatus" "Begin" function MPE2_GetCurrentHeaterStatus( variable i_intDeviceID, variable i_blnReset, variable & o_fltCurrentEvapTemperature, variable & o_fltCurrentGasTemp, variable & o_intHeating, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_GetCurrentHeaterStatus" "InitLocals" o_fltCurrentEvapTemperature = 0; o_fltCurrentGasTemp = 0; o_intHeating = 0; o_stepReturn = 0; // }} "" // {{ 133 1 0 "1430b216_fa57_4c7c_a2a4a4a5e9c42085" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_14D4DD5BBFB54b79BFFD623954803BC5 ; err.Clear(); // }} "" // {{{ 134 1 0 "ead6e360_b41a_477a_8d7052314c7fa01a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::GetCurrentHeaterStatus(i_intDeviceID, i_blnReset, o_fltCurrentEvapTemperature, o_fltCurrentGasTemp, o_intHeating); // }} "" // {{ 135 1 0 "1de9759f_562d_482d_a27f935304460635" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 136 1 0 "1430b216_fa57_4c7c_a2a4a4a5e9c42085" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_14D4DD5BBFB54b79BFFD623954803BC5 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 137 1 0 "ba8b4663_add3_45fa_a101a514fc950259" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 138 1 0 "3fba07c9_79e3_4371_b618b18f0f021c3b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 139 1 0 "1430b216_fa57_4c7c_a2a4a4a5e9c42085" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_GetCurrentHeaterStatus" "End" } // }} "" // {{{ 5 "MPE2_GetHeaterTemperatureRange" "Begin" function MPE2_GetHeaterTemperatureRange( variable i_intDeviceID, variable i_blnReset, variable & o_fltMinEvapTemperature, variable & o_fltMaxEvapTemperature, variable & o_fltMinGasTemperature, variable & o_fltMaxGasTemperature, variable & o_fltTargetTemperature, variable & o_intHeating, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_GetHeaterTemperatureRange" "InitLocals" o_fltMinEvapTemperature = 0; o_fltMaxEvapTemperature = 0; o_fltMinGasTemperature = 0; o_fltMaxGasTemperature = 0; o_fltTargetTemperature = 0; o_intHeating = 0; o_stepReturn = 0; // }} "" // {{ 141 1 0 "8e6f3c55_f43b_495e_a2e139e99bf227c4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B5FC734DC7194adcADF53B6EF50B7C2E ; err.Clear(); // }} "" // {{{ 142 1 0 "7cc9bbc7_8d47_45ab_a4a716ef7c1c60e8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::GetHeaterTemperatureRange(i_intDeviceID, i_blnReset, o_fltMinEvapTemperature, o_fltMaxEvapTemperature, o_fltMinGasTemperature, o_fltMaxGasTemperature, o_fltTargetTemperature, o_intHeating); // }} "" // {{ 143 1 0 "c885ee08_1c44_4b36_9b6f38a67630aac0" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 144 1 0 "8e6f3c55_f43b_495e_a2e139e99bf227c4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B5FC734DC7194adcADF53B6EF50B7C2E : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 145 1 0 "fb376560_ef67_4556_932c85a5c8c30de5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 146 1 0 "5ad13f90_edc5_45cb_9501280f07641cad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 147 1 0 "8e6f3c55_f43b_495e_a2e139e99bf227c4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_GetHeaterTemperatureRange" "End" } // }} "" // {{{ 5 "MPE2_GetPressureSensorReadings" "Begin" function MPE2_GetPressureSensorReadings( variable i_intDeviceID, variable & o_fltInputPressureSensor, variable & o_fltManifoldPressureSensor, variable & o_fltHighPressureSensor, variable & o_fltLowPressureSensor, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_GetPressureSensorReadings" "InitLocals" o_fltInputPressureSensor = 0; o_fltManifoldPressureSensor = 0; o_fltHighPressureSensor = 0; o_fltLowPressureSensor = 0; o_stepReturn = 0; // }} "" // {{ 149 1 0 "6a8212ef_4c9e_44b1_8b9453bb049cf560" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_71175CEC1A41478190A080A3862E5559 ; err.Clear(); // }} "" // {{{ 150 1 0 "d09787c2_2c61_437c_bbe0e7e57d858bc1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::GetPressureSensorReadings(i_intDeviceID, o_fltInputPressureSensor, o_fltManifoldPressureSensor, o_fltHighPressureSensor, o_fltLowPressureSensor); // }} "" // {{ 151 1 0 "10edc65f_0f91_41d4_9286c3c4d645c3d9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 152 1 0 "6a8212ef_4c9e_44b1_8b9453bb049cf560" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_71175CEC1A41478190A080A3862E5559 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 153 1 0 "ab4dbdb6_285e_4cb7_9b8952e95d14c95e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 154 1 0 "cbca85f3_e8ed_48f7_aec8f72bc30bdd1e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 155 1 0 "6a8212ef_4c9e_44b1_8b9453bb049cf560" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_GetPressureSensorReadings" "End" } // }} "" // {{{ 5 "MPE2_GetTemperatureRange" "Begin" function MPE2_GetTemperatureRange( variable i_intDeviceID, variable & o_fltIMinimumTemperature, variable & o_fltMaximumTemperature, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_GetTemperatureRange" "InitLocals" o_fltIMinimumTemperature = 0; o_fltMaximumTemperature = 0; o_stepReturn = 0; // }} "" // {{ 165 1 0 "a4a0d027_b3e8_46d7_9025f28f5500ebc2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_1E0EDECAD00B417c85FE7336A820C112 ; err.Clear(); // }} "" // {{{ 166 1 0 "2007488c_6193_40bb_b32bc58fe66c66f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::GetTemperatureRange(i_intDeviceID, o_fltIMinimumTemperature, o_fltMaximumTemperature); // }} "" // {{ 167 1 0 "426211d5_4bcd_488e_95cbb36ff5a57f08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 168 1 0 "a4a0d027_b3e8_46d7_9025f28f5500ebc2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_1E0EDECAD00B417c85FE7336A820C112 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 169 1 0 "6c1719ef_67b3_4ebc_b7096d415e1fa5d4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 170 1 0 "fe9b374d_6f2c_461e_8d6942365cf811d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 171 1 0 "a4a0d027_b3e8_46d7_9025f28f5500ebc2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_GetTemperatureRange" "End" } // }} "" // {{{ 5 "MPE2_GetVacuumStatus" "Begin" function MPE2_GetVacuumStatus( variable i_intDeviceID, variable & o_intVacuumActive, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_GetVacuumStatus" "InitLocals" o_intVacuumActive = 0; o_stepReturn = 0; // }} "" // {{ 173 1 0 "46ad7b96_2d3e_44e4_85e9e902878d0443" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0C0C29A5B3E448db88A540CBF86F2040 ; err.Clear(); // }} "" // {{{ 174 1 0 "b702622a_556e_4202_861727a54cafeca5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::GetVacuumStatus(i_intDeviceID, o_intVacuumActive); // }} "" // {{ 175 1 0 "1a3a832a_27c7_4bba_bc82c567d65c6b62" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 176 1 0 "46ad7b96_2d3e_44e4_85e9e902878d0443" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0C0C29A5B3E448db88A540CBF86F2040 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 177 1 0 "4daa00cf_0131_482a_a97ab70071acf478" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 178 1 0 "e15ab814_7830_4714_8614a57cdc7cf1da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 179 1 0 "46ad7b96_2d3e_44e4_85e9e902878d0443" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_GetVacuumStatus" "End" } // }} "" // {{{ 5 "MPE2_Initialize" "Begin" function MPE2_Initialize( variable i_intDeviceID, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 181 1 0 "64a456e7_9ce1_4caf_974bf8cdb7567405" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E3E6123F67A8440b81A1CB3FB773F475 ; err.Clear(); // }} "" // {{{ 182 1 0 "b3bdacc5_6062_45d2_b78b25c972053f32" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::Initialize(i_intDeviceID); // }} "" // {{ 183 1 0 "51d8de8a_fe30_4901_af70cf184dc4780d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 184 1 0 "64a456e7_9ce1_4caf_974bf8cdb7567405" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E3E6123F67A8440b81A1CB3FB773F475 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 185 1 0 "bb5569ff_51fe_4eb0_962c5da51b174ead" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 186 1 0 "94dbe8af_15e1_4950_9c4c1277a3421150" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 187 1 0 "64a456e7_9ce1_4caf_974bf8cdb7567405" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_Initialize" "End" } // }} "" // {{{ 5 "MPE2_InitializeWithParameters" "Begin" function MPE2_InitializeWithParameters( variable i_intDeviceID, variable i_blnSmart, variable i_intWasteContainerID, variable i_intVacuumRunTime, variable i_blnDisableVacuumCheck, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_InitializeWithParameters" "InitLocals" o_stepReturn = 0; // }} "" // {{ 189 1 0 "91042743_807f_4abb_86f3f42d3bf418bc" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8AE9D781D73441019DD1D2DDC54F96B3 ; err.Clear(); // }} "" // {{{ 190 1 0 "7dadc297_f6e6_410c_a954d2c0152b17f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::InitializeWithParameters(i_intDeviceID, i_blnSmart, i_intWasteContainerID, i_intVacuumRunTime, i_blnDisableVacuumCheck); // }} "" // {{ 191 1 0 "465aee1b_7e04_4238_b1f13f71e0b78993" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 192 1 0 "91042743_807f_4abb_86f3f42d3bf418bc" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8AE9D781D73441019DD1D2DDC54F96B3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 193 1 0 "e5710a6e_ebb2_41b8_a0e0a9197b99fd28" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 194 1 0 "25152281_a7b5_4944_a0763d711ca61da9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 195 1 0 "91042743_807f_4abb_86f3f42d3bf418bc" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_InitializeWithParameters" "End" } // }} "" // {{{ 5 "MPE2_MeasureEmptyContainer" "Begin" function MPE2_MeasureEmptyContainer( variable i_intDeviceID, variable i_intSourceID, variable & o_intSensorReading, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_MeasureEmptyContainer" "InitLocals" o_intSensorReading = 0; o_stepReturn = 0; // }} "" // {{ 197 1 0 "80c494de_3649_400a_961c95619fc476f8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FDDB9556A57846bbB8A4A97764AA6E61 ; err.Clear(); // }} "" // {{{ 198 1 0 "80e6fece_cfa4_4e6c_b1a83470bb2c73ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::MeasureEmptyContainer(i_intDeviceID, i_intSourceID, o_intSensorReading); // }} "" // {{ 199 1 0 "e0635f3b_4a07_468a_bc54aa3e072a7841" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 200 1 0 "80c494de_3649_400a_961c95619fc476f8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FDDB9556A57846bbB8A4A97764AA6E61 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 201 1 0 "38672f75_56ae_412a_a5b6001ad4d6a034" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 202 1 0 "aab35969_5fda_4ea2_86905b983397d366" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 203 1 0 "80c494de_3649_400a_961c95619fc476f8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_MeasureEmptyContainer" "End" } // }} "" // {{{ 5 "MPE2_MeasureFullContainer" "Begin" function MPE2_MeasureFullContainer( variable i_intDeviceID, variable i_intSourceID, variable & o_intSensorReading, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_MeasureFullContainer" "InitLocals" o_intSensorReading = 0; o_stepReturn = 0; // }} "" // {{ 205 1 0 "43a9eedf_1299_4f7b_b9d16b4848df74fd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_A778E77EF45145b6B4E1D1A84D687FD1 ; err.Clear(); // }} "" // {{{ 206 1 0 "e49d64a9_be72_4dc4_86f640f5476e92bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::MeasureFullContainer(i_intDeviceID, i_intSourceID, o_intSensorReading); // }} "" // {{ 207 1 0 "6418291d_dba3_44e1_814d305d20272139" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 208 1 0 "43a9eedf_1299_4f7b_b9d16b4848df74fd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_A778E77EF45145b6B4E1D1A84D687FD1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 209 1 0 "f4c54faa_6288_49fd_b4b82e91c7eb9e0a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 210 1 0 "6b43c1eb_30e9_4de6_8d16a39e9d37618a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 211 1 0 "43a9eedf_1299_4f7b_b9d16b4848df74fd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_MeasureFullContainer" "End" } // }} "" // {{{ 5 "MPE2_Prime" "Begin" function MPE2_Prime( variable i_intDeviceID, variable i_intSourceID, variable i_fltWellVolume, variable i_fltFlowRate, variable i_intWasteContainerID, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_Prime" "InitLocals" o_stepReturn = 0; // }} "" // {{ 213 1 0 "21cd88bd_ccae_4f23_97b28c31a8887aba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_39A79B96B270434fBCD7B29192BB85C8 ; err.Clear(); // }} "" // {{{ 214 1 0 "2751a85b_8ed8_4eb5_90d5e8a098087323" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::Prime(i_intDeviceID, i_intSourceID, i_fltWellVolume, i_fltFlowRate, i_intWasteContainerID); // }} "" // {{ 215 1 0 "26f4beb4_e551_430e_90e489ffbfe90123" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 216 1 0 "21cd88bd_ccae_4f23_97b28c31a8887aba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_39A79B96B270434fBCD7B29192BB85C8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 217 1 0 "1f99379f_ec35_4d51_a84489a1dffb720d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 218 1 0 "9fc995e5_39fa_44ae_a5240377e35b61e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 219 1 0 "21cd88bd_ccae_4f23_97b28c31a8887aba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_Prime" "End" } // }} "" // {{{ 5 "MPE2_ProcessFilterToCollectionPlate" "Begin" function MPE2_ProcessFilterToCollectionPlate( variable i_intDeviceID, variable i_strControlPoints, variable i_blnReturnPlateToIntegrationArea, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_ProcessFilterToCollectionPlate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 221 1 0 "0040eb94_a5eb_4e2d_8e8b06f6234587f9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_60043F2A09014c5bABD65A8D266AF07E ; err.Clear(); // }} "" // {{{ 222 1 0 "646c3494_03c5_458b_ad63baffccc8c946" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::ProcessFilterToCollectionPlate(i_intDeviceID, i_strControlPoints, i_blnReturnPlateToIntegrationArea); // }} "" // {{ 223 1 0 "e9cba89a_28cc_42c2_957765c437a69d8c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 224 1 0 "0040eb94_a5eb_4e2d_8e8b06f6234587f9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_60043F2A09014c5bABD65A8D266AF07E : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 225 1 0 "1cb850d2_212a_4646_9c2b280b6a702b4d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 226 1 0 "64d78110_3e16_4dd2_9b388e243f521d8a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 227 1 0 "0040eb94_a5eb_4e2d_8e8b06f6234587f9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_ProcessFilterToCollectionPlate" "End" } // }} "" // {{{ 5 "MPE2_ProcessFilterToWasteContainer" "Begin" function MPE2_ProcessFilterToWasteContainer( variable i_intDeviceID, variable i_strControlPoints, variable i_blnReturnPlateToIntegrationArea, variable i_intWasteContainerID, variable i_blnDisableVacuumCheck, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_ProcessFilterToWasteContainer" "InitLocals" o_stepReturn = 0; // }} "" // {{ 229 1 0 "37e0026d_7bcd_4a48_809ee234f8187c7a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_DC797114D45344f195B613FD7BF608B4 ; err.Clear(); // }} "" // {{{ 230 1 0 "50c6c29e_b872_4c6e_b16840cf13ca6444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::ProcessFilterToWasteContainer(i_intDeviceID, i_strControlPoints, i_blnReturnPlateToIntegrationArea, i_intWasteContainerID, i_blnDisableVacuumCheck); // }} "" // {{ 231 1 0 "e91d529a_d5f7_4c1b_983091c7687a13fc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 232 1 0 "37e0026d_7bcd_4a48_809ee234f8187c7a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_DC797114D45344f195B613FD7BF608B4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 233 1 0 "14ba4e65_a9b4_49e2_ac1fc6b282d5d946" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 234 1 0 "0cd157a3_0317_4f9e_b2dc534f7202b215" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 235 1 0 "37e0026d_7bcd_4a48_809ee234f8187c7a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_ProcessFilterToWasteContainer" "End" } // }} "" // {{{ 5 "MPE2_RetrieveFilterPlate" "Begin" function MPE2_RetrieveFilterPlate( variable i_intDeviceID, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_RetrieveFilterPlate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 237 1 0 "4069e901_b501_4cd4_b2ef6e60398f2533" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_80489D0F73EC4cd88591B66B3726D225 ; err.Clear(); // }} "" // {{{ 238 1 0 "1db1eedc_0c00_43f2_ac02f5b83a1463b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::RetrieveFilterPlate(i_intDeviceID); // }} "" // {{ 239 1 0 "ef2aa949_5266_474b_a3d50146a47f4fdd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 240 1 0 "4069e901_b501_4cd4_b2ef6e60398f2533" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_80489D0F73EC4cd88591B66B3726D225 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 241 1 0 "75398ca5_77bb_4236_b564344d50bfe355" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 242 1 0 "3754702c_8d97_4643_9c91061936ffb1f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 243 1 0 "4069e901_b501_4cd4_b2ef6e60398f2533" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_RetrieveFilterPlate" "End" } // }} "" // {{{ 5 "MPE2_StartVacuum" "Begin" function MPE2_StartVacuum( variable i_intDeviceID, variable i_intWasteContainerID, variable i_blnDisableVacuum, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_StartVacuum" "InitLocals" o_stepReturn = 0; // }} "" // {{ 269 1 0 "ff5584ca_4111_430d_8b6ae58e1f1eb21f" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F00EA353D09D4f0cA555D89BEBF25FAC ; err.Clear(); // }} "" // {{{ 270 1 0 "112b18b5_e7e2_4287_b617efd06028e7d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::StartMPEVacuum(i_intDeviceID, i_intWasteContainerID, i_blnDisableVacuum); // }} "" // {{ 271 1 0 "247f00b4_277f_4013_b46dcd10e79aedec" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 272 1 0 "ff5584ca_4111_430d_8b6ae58e1f1eb21f" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F00EA353D09D4f0cA555D89BEBF25FAC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 273 1 0 "4300ed5b_9942_4b18_9768799049c929af" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 274 1 0 "a85acfdb_4e46_4c37_947cbbde35ec77a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 275 1 0 "ff5584ca_4111_430d_8b6ae58e1f1eb21f" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_StartVacuum" "End" } // }} "" // {{{ 5 "MPE2_StopVacuum" "Begin" function MPE2_StopVacuum( variable i_intDeviceID, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_StopVacuum" "InitLocals" o_stepReturn = 0; // }} "" // {{ 277 1 0 "2f3a388f_7afa_4753_ad873cc58639cea5" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E5132B584A4D473a9FCBF496236A214C ; err.Clear(); // }} "" // {{{ 278 1 0 "58394f46_9f2e_45bf_8284f7a2ae6d546d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::StopVacuum(i_intDeviceID); // }} "" // {{ 279 1 0 "b3dddbbe_e8c4_499a_9cda566534d33ec9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 280 1 0 "2f3a388f_7afa_4753_ad873cc58639cea5" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E5132B584A4D473a9FCBF496236A214C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 281 1 0 "a8ffa312_280e_4998_a80cdb721b6228e9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 282 1 0 "a587efb5_c061_49b6_8db0996cd37e5ff9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 283 1 0 "2f3a388f_7afa_4753_ad873cc58639cea5" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_StopVacuum" "End" } // }} "" // {{{ 5 "MPE2_StartContainerCalibration" "Begin" function MPE2_StartContainerCalibration( variable i_intDeviceID, variable i_intSourceID, variable i_fltVolume, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_StartContainerCalibration" "InitLocals" o_stepReturn = 0; // }} "" // {{ 261 1 0 "b9280d89_2ec3_48aa_bc5f49763b6d5a62" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_5571AB97B3CB41f2B6524DCFC97BB5EA ; err.Clear(); // }} "" // {{{ 262 1 0 "869a8f25_1148_4e47_8c02bc11322096b6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::StartContainerCalibration(i_intDeviceID, i_intSourceID, i_fltVolume); // }} "" // {{ 263 1 0 "859c3303_73c7_46b4_be6650c83d14cc6f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 264 1 0 "b9280d89_2ec3_48aa_bc5f49763b6d5a62" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_5571AB97B3CB41f2B6524DCFC97BB5EA : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 265 1 0 "82436c45_85bf_4662_a81288feda0471d7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 266 1 0 "c6caac0b_36d8_49e5_8a2e415b61f5f2ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 267 1 0 "b9280d89_2ec3_48aa_bc5f49763b6d5a62" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_StartContainerCalibration" "End" } // }} "" // {{{ 5 "MPE2_SaveContainerCalibration" "Begin" function MPE2_SaveContainerCalibration( variable i_intDeviceID, variable i_intSourceID, variable i_fltVolume, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_SaveContainerCalibration" "InitLocals" o_stepReturn = 0; // }} "" // {{ 245 1 0 "4a530735_b4e2_4487_a26d7ac0fe433402" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_6802A23190BD4089933F43C88C0070BC ; err.Clear(); // }} "" // {{{ 246 1 0 "679f7ba5_abc1_44a6_9dff38d36bce2c18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::SaveContainerCalibration(i_intDeviceID, i_intSourceID); // }} "" // {{ 247 1 0 "7b6bad9b_e99f_4ca5_a90dd84f73fce81d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 248 1 0 "4a530735_b4e2_4487_a26d7ac0fe433402" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_6802A23190BD4089933F43C88C0070BC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 249 1 0 "3065d222_d7a5_42bc_9f3c1c7d148d2b29" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 250 1 0 "fa53dd0b_215f_4394_a295bba14d0452ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 251 1 0 "4a530735_b4e2_4487_a26d7ac0fe433402" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_SaveContainerCalibration" "End" } // }} "" // {{{ 5 "MPE2_SetSourceConfiguration" "Begin" function MPE2_SetSourceConfiguration( variable i_intDeviceID, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_SetSourceConfiguration" "InitLocals" o_stepReturn = 0; // }} "" // {{ 253 1 0 "d20fc919_297b_4e0b_b53b0ba4f1d68b0a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C0840609B69A4036A6A031739EB19B75 ; err.Clear(); // }} "" // {{{ 254 1 0 "75b26d5c_305b_49a8_8edfb0c9beeb975a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::SetSourceConfiguration(i_intDeviceID); // }} "" // {{ 255 1 0 "09535670_06ed_4568_8c127eb34562001f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 256 1 0 "d20fc919_297b_4e0b_b53b0ba4f1d68b0a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C0840609B69A4036A6A031739EB19B75 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 257 1 0 "fe1f75cb_c29c_4e10_be2f71b1659f1ff9" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 258 1 0 "49655ee2_2eb5_45b1_8321f7b96832f2a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 259 1 0 "d20fc919_297b_4e0b_b53b0ba4f1d68b0a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_SetSourceConfiguration" "End" } // }} "" // {{{ 5 "MPE2_GetSourceConfiguration" "Begin" function MPE2_GetSourceConfiguration( variable i_intDeviceID, variable & o_stepReturn ) void { // }} "" // {{ 5 "MPE2_GetSourceConfiguration" "InitLocals" o_stepReturn = 0; // }} "" // {{ 157 1 0 "5d4eee28_a1c6_47ea_b0abd0ff06569f96" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_5E107BCD059D424dA568A0C2A4DC30A7 ; err.Clear(); // }} "" // {{{ 158 1 0 "ee1ffcc0_0794_462d_940649ca3479fbf7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLMPELib::GetSourceConfiguration(i_intDeviceID); // }} "" // {{ 159 1 0 "6d8f9da1_f744_40e4_9b70ef5d9a48070f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 160 1 0 "5d4eee28_a1c6_47ea_b0abd0ff06569f96" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_5E107BCD059D424dA568A0C2A4DC30A7 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 161 1 0 "bd314dbb_771c_41ed_88631530713e0ef6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 162 1 0 "36a11712_ce3a_46e2_b47f069c70d2bc22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 163 1 0 "5d4eee28_a1c6_47ea_b0abd0ff06569f96" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPE2_GetSourceConfiguration" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=stefa$$valid=0$$time=2023-03-20 09:12$$checksum=f551040f$$length=084$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/STAR_OEM_toolkit_centrifuge.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 2/10/2023 12:16:54 AM #pragma once #ifndef HSL_RUNTIME namespace STAR_OEM_TOOLKIT_CENTRIFUGE { function _InitLibrary() { } function _ExitLibrary() { } function HamiltonCentrifuge_Centrifuge( variable i_strLabel, variable i_blnCloseCoverAtEnd, variable i_intPresentPosition, variable i_intDirection, variable & i_intArrSpeed[], variable & i_intArrAccelleration[], variable & i_intArrDuration[], variable i_intDecelleration, variable & o_stepReturn ) void { } function HamiltonCentrifuge_CoverClose( variable i_strLabel, variable & o_stepReturn ) void { } function HamiltonCentrifuge_CoverOpen( variable i_strLabel, variable & o_stepReturn ) void { } function HamiltonCentrifuge_GetRotationStatus( variable i_strLabel, variable & o_blnRotorDriveRunning, variable & o_int_ProfileStatus, variable & o_intTimeLeft, variable & o_blnCurrentSpeed, variable & o_blnSpeedSensorTrip, variable & o_blnGravitySensorTrip, variable & o_blnTemperatureSensorTrip, variable & o_stepReturn ) void { } function HamiltonCentrifuge_Initialize( variable i_strLabel, variable i_strNodeName, variable i_blnSimulationMode, variable i_blnAlwaysInitialize, variable & o_stepReturn ) void { } function HamiltonCentrifuge_StartCentrifuge( variable i_strLabel, variable i_intDirection, variable i_intSpeed, variable i_intAcceleration, variable i_intMaxTime, variable & o_stepReturn ) void { } function HamiltonCentrifuge_StopCentrifuge( variable i_strLabel, variable i_intDecelleration, variable & o_stepReturn ) void { } function HamiltonCentrifuge_Terminate( variable i_strLabel, variable & o_stepReturn ) void { } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=stefa$$valid=0$$time=2023-02-10 00:16$$checksum=08b8e6bd$$length=082$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/STAR_OEM_toolkit_centrifuge.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "Hamilton Centrifuge\\Hamilton Centrifuge.hsl" #include "HSLBarcodeReader.hsl" #include "HSLErrLib.hsl" #include "HSLTrcLib.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace STAR_OEM_TOOLKIT_CENTRIFUGE { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function HamiltonCentrifuge_Centrifuge( variable i_strLabel, variable i_blnCloseCoverAtEnd, variable i_intPresentPosition, variable i_intDirection, variable & i_intArrSpeed[], variable & i_intArrAccelleration[], variable & i_intArrDuration[], variable i_intDecelleration, variable & o_stepReturn ) void ; function HamiltonCentrifuge_CoverClose( variable i_strLabel, variable & o_stepReturn ) void ; function HamiltonCentrifuge_CoverOpen( variable i_strLabel, variable & o_stepReturn ) void ; function HamiltonCentrifuge_GetRotationStatus( variable i_strLabel, variable & o_blnRotorDriveRunning, variable & o_int_ProfileStatus, variable & o_intTimeLeft, variable & o_blnCurrentSpeed, variable & o_blnSpeedSensorTrip, variable & o_blnGravitySensorTrip, variable & o_blnTemperatureSensorTrip, variable & o_stepReturn ) void ; function HamiltonCentrifuge_Initialize( variable i_strLabel, variable i_strNodeName, variable i_blnSimulationMode, variable i_blnAlwaysInitialize, variable & o_stepReturn ) void ; function HamiltonCentrifuge_StartCentrifuge( variable i_strLabel, variable i_intDirection, variable i_intSpeed, variable i_intAcceleration, variable i_intMaxTime, variable & o_stepReturn ) void ; function HamiltonCentrifuge_StopCentrifuge( variable i_strLabel, variable i_intDecelleration, variable & o_stepReturn ) void ; function HamiltonCentrifuge_Terminate( variable i_strLabel, variable & o_stepReturn ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" // }} "" } // {{{ 5 "HamiltonCentrifuge_Initialize" "Begin" function HamiltonCentrifuge_Initialize( variable i_strLabel, variable i_strNodeName, variable i_blnSimulationMode, variable i_blnAlwaysInitialize, variable & o_stepReturn ) void { // }} "" // {{ 5 "HamiltonCentrifuge_Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 25 1 0 "8f396cc9_60f7_4219_ac1c9fe2276fd3d4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_AB99818B6C9C4e01A2D3408A63DDB0B1 ; err.Clear(); // }} "" // {{{ 26 1 0 "c61b809a_6951_4a41_92b162d30da0e530" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HamiltonCentrifuge::Initialize(i_strLabel, i_strNodeName, i_blnSimulationMode, i_blnAlwaysInitialize); // }} "" // {{ 27 1 0 "8f396cc9_60f7_4219_ac1c9fe2276fd3d4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_AB99818B6C9C4e01A2D3408A63DDB0B1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 28 1 0 "d26c85f6_e647_41c0_808a53edea8c8982" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 29 1 0 "8f396cc9_60f7_4219_ac1c9fe2276fd3d4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "HamiltonCentrifuge_Initialize" "End" } // }} "" // {{{ 5 "HamiltonCentrifuge_Centrifuge" "Begin" function HamiltonCentrifuge_Centrifuge( variable i_strLabel, variable i_blnCloseCoverAtEnd, variable i_intPresentPosition, variable i_intDirection, variable & i_intArrSpeed[], variable & i_intArrAccelleration[], variable & i_intArrDuration[], variable i_intDecelleration, variable & o_stepReturn ) void { // }} "" // {{ 5 "HamiltonCentrifuge_Centrifuge" "InitLocals" o_stepReturn = 0; // }} "" // {{ 1 1 0 "d01bfc46_9e9c_4d7a_bd3fa6f791904929" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_A2C3EC70E5E846f58CD4FE2BBD93C9D9 ; err.Clear(); // }} "" // {{{ 2 1 0 "f14d3090_673c_4c70_9da421f87af4d75f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HamiltonCentrifuge::Centrifuge(i_strLabel, i_blnCloseCoverAtEnd, i_intPresentPosition, i_intDirection, i_intArrSpeed, i_intArrAccelleration, i_intArrDuration, i_intDecelleration); // }} "" // {{ 3 1 0 "d01bfc46_9e9c_4d7a_bd3fa6f791904929" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_A2C3EC70E5E846f58CD4FE2BBD93C9D9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 4 1 0 "c25dc277_d818_46fb_a5d49a65d6f867b7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 5 1 0 "d01bfc46_9e9c_4d7a_bd3fa6f791904929" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "HamiltonCentrifuge_Centrifuge" "End" } // }} "" // {{{ 5 "HamiltonCentrifuge_GetRotationStatus" "Begin" function HamiltonCentrifuge_GetRotationStatus( variable i_strLabel, variable & o_blnRotorDriveRunning, variable & o_int_ProfileStatus, variable & o_intTimeLeft, variable & o_blnCurrentSpeed, variable & o_blnSpeedSensorTrip, variable & o_blnGravitySensorTrip, variable & o_blnTemperatureSensorTrip, variable & o_stepReturn ) void { // }} "" // {{ 5 "HamiltonCentrifuge_GetRotationStatus" "InitLocals" o_blnRotorDriveRunning = 0; o_int_ProfileStatus = 0; o_intTimeLeft = 0; o_blnCurrentSpeed = 0; o_blnSpeedSensorTrip = 0; o_blnGravitySensorTrip = 0; o_blnTemperatureSensorTrip = 0; o_stepReturn = 0; // }} "" // {{ 19 1 0 "c30abb04_f50e_4df7_a1cfad44bbbf3bc5" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_419C19BCFC314cfc8125D61C4682527D ; err.Clear(); // }} "" // {{{ 20 1 0 "dab46c43_7e7d_478a_a949dcf4ed01fcf3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HamiltonCentrifuge::GetRotationDriveStatus(i_strLabel, o_blnRotorDriveRunning, o_int_ProfileStatus, o_intTimeLeft, o_blnCurrentSpeed, o_blnSpeedSensorTrip, o_blnGravitySensorTrip, o_blnTemperatureSensorTrip); // }} "" // {{ 21 1 0 "c30abb04_f50e_4df7_a1cfad44bbbf3bc5" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_419C19BCFC314cfc8125D61C4682527D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 22 1 0 "557851a9_1249_408d_9808213bccd348a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 23 1 0 "c30abb04_f50e_4df7_a1cfad44bbbf3bc5" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "HamiltonCentrifuge_GetRotationStatus" "End" } // }} "" // {{{ 5 "HamiltonCentrifuge_CoverOpen" "Begin" function HamiltonCentrifuge_CoverOpen( variable i_strLabel, variable & o_stepReturn ) void { // }} "" // {{ 5 "HamiltonCentrifuge_CoverOpen" "InitLocals" o_stepReturn = 0; // }} "" // {{ 13 1 0 "d58ac169_88cf_4fd1_91c7d27e79a79e4d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E484704EBD56486aB099BF985EAAF152 ; err.Clear(); // }} "" // {{{ 14 1 0 "13997326_7197_434f_89528b4f80fe763c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HamiltonCentrifuge::CoverOpen(i_strLabel); // }} "" // {{ 15 1 0 "d58ac169_88cf_4fd1_91c7d27e79a79e4d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E484704EBD56486aB099BF985EAAF152 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 16 1 0 "130626d7_a25f_491b_ac64c946c9398d2d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 17 1 0 "d58ac169_88cf_4fd1_91c7d27e79a79e4d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "HamiltonCentrifuge_CoverOpen" "End" } // }} "" // {{{ 5 "HamiltonCentrifuge_CoverClose" "Begin" function HamiltonCentrifuge_CoverClose( variable i_strLabel, variable & o_stepReturn ) void { // }} "" // {{ 5 "HamiltonCentrifuge_CoverClose" "InitLocals" o_stepReturn = 0; // }} "" // {{ 7 1 0 "675a6a59_5716_4aad_a7be67a44d621f27" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8DA249B863A24d38A5E8B6EDFAE8EC9C ; err.Clear(); // }} "" // {{{ 8 1 0 "3bde4bdd_f253_4ade_b11a3add924729fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HamiltonCentrifuge::CoverClose(i_strLabel); // }} "" // {{ 9 1 0 "675a6a59_5716_4aad_a7be67a44d621f27" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8DA249B863A24d38A5E8B6EDFAE8EC9C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 10 1 0 "90b316b5_8841_4665_906f0242b89acfba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 11 1 0 "675a6a59_5716_4aad_a7be67a44d621f27" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "HamiltonCentrifuge_CoverClose" "End" } // }} "" // {{{ 5 "HamiltonCentrifuge_StartCentrifuge" "Begin" function HamiltonCentrifuge_StartCentrifuge( variable i_strLabel, variable i_intDirection, variable i_intSpeed, variable i_intAcceleration, variable i_intMaxTime, variable & o_stepReturn ) void { // }} "" // {{ 5 "HamiltonCentrifuge_StartCentrifuge" "InitLocals" o_stepReturn = 0; // }} "" // {{ 31 1 0 "160054e2_9d07_4b06_8990696a6c21f633" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2925F4CEB30A4628823CE84322B9DA0D ; err.Clear(); // }} "" // {{{ 32 1 0 "59e1d420_00bc_4de5_ba19ef5907122ce0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HamiltonCentrifuge::StartCentrifuge(i_strLabel, i_intDirection, i_intSpeed, i_intAcceleration, i_intMaxTime); // }} "" // {{ 33 1 0 "160054e2_9d07_4b06_8990696a6c21f633" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2925F4CEB30A4628823CE84322B9DA0D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 34 1 0 "a65a3d22_f7ce_41e4_8f023e87df5f667f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 35 1 0 "160054e2_9d07_4b06_8990696a6c21f633" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "HamiltonCentrifuge_StartCentrifuge" "End" } // }} "" // {{{ 5 "HamiltonCentrifuge_StopCentrifuge" "Begin" function HamiltonCentrifuge_StopCentrifuge( variable i_strLabel, variable i_intDecelleration, variable & o_stepReturn ) void { // }} "" // {{ 5 "HamiltonCentrifuge_StopCentrifuge" "InitLocals" o_stepReturn = 0; // }} "" // {{ 37 1 0 "2b8f1369_657d_4eb0_b0dad38a7560b40e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9624A18BCC154f0c948BB09C882A91EA ; err.Clear(); // }} "" // {{{ 38 1 0 "0be0854d_0181_4ef4_93c17722d290c889" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HamiltonCentrifuge::StopCentrifuge(i_strLabel, i_intDecelleration); // }} "" // {{ 39 1 0 "2b8f1369_657d_4eb0_b0dad38a7560b40e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9624A18BCC154f0c948BB09C882A91EA : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 40 1 0 "a5c8e164_4da3_4a0b_9df26a767b13252e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 41 1 0 "2b8f1369_657d_4eb0_b0dad38a7560b40e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "HamiltonCentrifuge_StopCentrifuge" "End" } // }} "" // {{{ 5 "HamiltonCentrifuge_Terminate" "Begin" function HamiltonCentrifuge_Terminate( variable i_strLabel, variable & o_stepReturn ) void { // }} "" // {{ 5 "HamiltonCentrifuge_Terminate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 43 1 0 "8568f0bd_45dd_4b50_aa51ea5e57142996" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FB35381D1C594f7eA650BBCA433D2A47 ; err.Clear(); // }} "" // {{{ 44 1 0 "52061e8e_924b_4a10_8df3a8ab0848b707" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HamiltonCentrifuge::Terminate(o_stepReturn); // }} "" // {{ 45 1 0 "8568f0bd_45dd_4b50_aa51ea5e57142996" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FB35381D1C594f7eA650BBCA433D2A47 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 46 1 0 "0b776374_a1a1_40bb_bbc047db6c198c6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 47 1 0 "8568f0bd_45dd_4b50_aa51ea5e57142996" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "HamiltonCentrifuge_Terminate" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=stefa$$valid=0$$time=2023-02-10 00:16$$checksum=e58d0858$$length=084$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/STAR_OEM_toolkit_pH.hs_ ================================================ // this ALWAYS GENERATED file contains the sub-method library header // Generated at 10/28/2022 8:30:08 PM #pragma once #ifndef HSL_RUNTIME namespace STAR_OEM_TOOLKIT_PH { function _InitLibrary() { } function _ExitLibrary() { } function pH_Calibrate( variable i_intModuleID, variable i_intCalibrationLevel, variable i_fltCalibrationValue, variable i_fltCalibrationTemperature, variable i_strProbePattern, variable & o_stepReturn ) void { } function pH_Calibrate_Dynamically( variable i_intModuleID, variable i_intCalibrationLevel, variable i_intVariance, variable i_intTimeout, variable i_fltCalibrationValue, variable i_fltCalibrationTemperature, variable i_strProbePattern, variable & o_stepReturn ) void { } function pH_Dryer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void { } function pH_Dryer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void { } function pH_Dryer_StartDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void { } function pH_Dryer_StopDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void { } function pH_Dryer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void { } function pH_Enable_Extended_Log( variable & o_stepReturn ) void { } function pH_Get_Last_Error( variable i_intModuleID, variable & o_strLastError, variable & o_stepReturn ) void { } function pH_Initialize( variable i_intComport, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void { } function pH_Measure( variable i_intModuleID, variable i_fltTemperature, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void { } function pH_Measure_Dynamically( variable i_intModuleID, variable i_fltTemperature, variable i_fltPrecision, variable i_intTimeout, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void { } function pH_Request_Battery_Data( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intChargeCounter, variable & o_intBatteryCondition, variable & o_intActualCharge, variable & o_stepReturn ) void { } function pH_Request_Calibration_Values( variable i_intModuleID, variable i_intProbeNumber, variable & o_fltpHLowValue, variable & o_fltpHLowVoltage, variable & o_fltpHHighValue, variable & o_fltpHHighVoltage, variable & o_fltCalibrationTemperature, variable & o_fltCalibrationOffset, variable & o_fltCalibrationSlope, variable & o_intCalibrationSlopeRation, variable & o_stepReturn ) void { } function pH_Request_Probe_Data( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intMeasurementCounter_Probe_1, variable & o_intMeasurementCounter_Probe_2, variable & o_intMeasurementCounter_Probe_3, variable & o_intMeasurementCounter_Probe_4, variable & o_stepReturn ) void { } function pH_Request_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable & o_intPartNumber, variable & o_intRevision, variable & o_intSerialNumber, variable & o_stepReturn ) void { } function pH_Request_Voltage_Data( variable i_intModuleID, variable i_intSelector, variable & o_varVoltageData, variable & o_stepReturn ) void { } function pH_Set_Battery_Replacement_Date( variable i_intModuleID, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void { } function pH_Set_Charge_Parameters( variable i_intModuleID, variable i_blnCharge, variable i_blnAutoCharge, variable i_intChargeLevel, variable & o_stepReturn ) void { } function pH_Set_Probe_Replacement_Date( variable i_intModuleID, variable i_intProbe, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void { } function pH_Set_Shutdown( variable i_intModuleID, variable i_intMode, variable & o_stepReturn ) void { } function pH_Set_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable i_intPartNumber, variable i_intRevision, variable i_intSerialNumber, variable & o_stepReturn ) void { } function pH_Set_Trace_Level( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void { } function pH_Sleep( variable i_intModuleID, variable & o_stepReturn ) void { } function pH_Template( variable i_intModuleID, variable & o_stepReturn ) void { } function pH_Terminate( variable i_intModuleID, variable & o_stepReturn ) void { } function pH_Wakeup( variable i_intModuleID, variable & o_stepReturn ) void { } function pH_Washer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable o_intModuleID, variable & o_stepReturn ) void { } function pH_Washer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void { } function pH_Washer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void { } function pH_Washer_Wash( device & ML_STAR, variable i_intModuleID, variable i_intCycleNumber, variable & o_stepReturn ) void { } } // namespace #endif #ifdef HSL_RUNTIME #include __filename__ ".hsi" #endif // $$author=stefa$$valid=0$$time=2022-10-28 20:30$$checksum=0bd52d60$$length=082$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/STAR_OEM_toolkit_pH.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "Hamilton pH Module\\Hamilton pH Module.hsl" #include "HSLErrLib.hsl" #include "Hamilton pH Module\\Hamilton pH Station Washer Module.hsl" #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" #include "HSLPTLLib.hsl" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace STAR_OEM_TOOLKIT_PH { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function pH_Calibrate( variable i_intModuleID, variable i_intCalibrationLevel, variable i_fltCalibrationValue, variable i_fltCalibrationTemperature, variable i_strProbePattern, variable & o_stepReturn ) void ; function pH_Calibrate_Dynamically( variable i_intModuleID, variable i_intCalibrationLevel, variable i_intVariance, variable i_intTimeout, variable i_fltCalibrationValue, variable i_fltCalibrationTemperature, variable i_strProbePattern, variable & o_stepReturn ) void ; function pH_Dryer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void ; function pH_Dryer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void ; function pH_Dryer_StartDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Dryer_StopDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Dryer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Enable_Extended_Log( variable & o_stepReturn ) void ; function pH_Get_Last_Error( variable i_intModuleID, variable & o_strLastError, variable & o_stepReturn ) void ; function pH_Initialize( variable i_intComport, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void ; function pH_Measure( variable i_intModuleID, variable i_fltTemperature, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void ; function pH_Measure_Dynamically( variable i_intModuleID, variable i_fltTemperature, variable i_fltPrecision, variable i_intTimeout, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void ; function pH_Request_Battery_Data( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intChargeCounter, variable & o_intBatteryCondition, variable & o_intActualCharge, variable & o_stepReturn ) void ; function pH_Request_Calibration_Values( variable i_intModuleID, variable i_intProbeNumber, variable & o_fltpHLowValue, variable & o_fltpHLowVoltage, variable & o_fltpHHighValue, variable & o_fltpHHighVoltage, variable & o_fltCalibrationTemperature, variable & o_fltCalibrationOffset, variable & o_fltCalibrationSlope, variable & o_intCalibrationSlopeRation, variable & o_stepReturn ) void ; function pH_Request_Probe_Data( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intMeasurementCounter_Probe_1, variable & o_intMeasurementCounter_Probe_2, variable & o_intMeasurementCounter_Probe_3, variable & o_intMeasurementCounter_Probe_4, variable & o_stepReturn ) void ; function pH_Request_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable & o_intPartNumber, variable & o_intRevision, variable & o_intSerialNumber, variable & o_stepReturn ) void ; function pH_Request_Voltage_Data( variable i_intModuleID, variable i_intSelector, variable & o_varVoltageData, variable & o_stepReturn ) void ; function pH_Set_Battery_Replacement_Date( variable i_intModuleID, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void ; function pH_Set_Charge_Parameters( variable i_intModuleID, variable i_blnCharge, variable i_blnAutoCharge, variable i_intChargeLevel, variable & o_stepReturn ) void ; function pH_Set_Probe_Replacement_Date( variable i_intModuleID, variable i_intProbe, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void ; function pH_Set_Shutdown( variable i_intModuleID, variable i_intMode, variable & o_stepReturn ) void ; function pH_Set_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable i_intPartNumber, variable i_intRevision, variable i_intSerialNumber, variable & o_stepReturn ) void ; function pH_Set_Trace_Level( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void ; function pH_Sleep( variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Template( variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Terminate( variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Wakeup( variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Washer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable o_intModuleID, variable & o_stepReturn ) void ; function pH_Washer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void ; function pH_Washer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Washer_Wash( device & ML_STAR, variable i_intModuleID, variable i_intCycleNumber, variable & o_stepReturn ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" PTL::SetWashingStateDefault("RinseTime1", 5); PTL::SetWashingStateDefault("SoakTime1", 5); PTL::SetWashingStateDefault("FlowRate1", 11); PTL::SetWashingStateDefault("RinseTime2", 0); PTL::SetWashingStateDefault("SoakTime2", 0); PTL::SetWashingStateDefault("FlowRate2", 11); PTL::SetWashingStateDefault("DrainingTime", 10); PTL::SetWashingStateDefault("StartWashLiquid", 0); PTL::SetLoadingStateDefault("RecoveryOptionContinue", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionExclude", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionDefault", 0); PTL::SetLoadingStateDefault("KitLotCheckEnabled", hslFalse); // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" // }} "" } // {{{ 5 "pH_Measure" "Begin" function pH_Measure( variable i_intModuleID, variable i_fltTemperature, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Measure" "InitLocals" o_fltpHProbe_1 = 0; o_fltpHProbe_2 = 0; o_fltpHProbe_3 = 0; o_fltpHProbe_4 = 0; o_stepReturn = 0; // }} "" // {{ 61 1 0 "80d90406_e318_4f91_9ef3b6f12b798351" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2E2474F7607B4feb8948B25BBE3B49F3 ; err.Clear(); // }} "" // {{{ 62 1 0 "2394bca1_88c0_4399_ab04a338af9f5010" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::Measure(i_intModuleID, i_fltTemperature, i_strProbePattern, o_fltpHProbe_1, o_fltpHProbe_2, o_fltpHProbe_3, o_fltpHProbe_4); // }} "" // {{ 63 1 0 "80d90406_e318_4f91_9ef3b6f12b798351" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2E2474F7607B4feb8948B25BBE3B49F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 64 1 0 "d771a760_6814_4866_a12a03881c971346" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 65 1 0 "80d90406_e318_4f91_9ef3b6f12b798351" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Measure" "End" } // }} "" // {{{ 5 "pH_Calibrate" "Begin" function pH_Calibrate( variable i_intModuleID, variable i_intCalibrationLevel, variable i_fltCalibrationValue, variable i_fltCalibrationTemperature, variable i_strProbePattern, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Calibrate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 1 1 0 "03c80eb0_3f18_420c_96086b655439183a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ADDE389AF4C7414193E7475BFBC151C7 ; err.Clear(); // }} "" // {{{ 2 1 0 "9742609f_32c7_419d_8ec016c662c584c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::Calibrate(i_intModuleID, i_intCalibrationLevel, i_fltCalibrationValue, i_fltCalibrationTemperature, i_strProbePattern); // }} "" // {{ 3 1 0 "03c80eb0_3f18_420c_96086b655439183a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ADDE389AF4C7414193E7475BFBC151C7 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 4 1 0 "8904566e_857b_47da_868f8d8e8444f2bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 5 1 0 "03c80eb0_3f18_420c_96086b655439183a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Calibrate" "End" } // }} "" // {{{ 5 "pH_Template" "Begin" function pH_Template( variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Template" "InitLocals" o_stepReturn = 0; // }} "" // {{ 145 1 0 "dc3e048a_9bb1_4fcc_99ff096bd8ece583" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EBDA9B022DA24dd7955D30E2549FDE5B ; err.Clear(); // }} "" // {{ 146 1 0 "dc3e048a_9bb1_4fcc_99ff096bd8ece583" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EBDA9B022DA24dd7955D30E2549FDE5B : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 147 1 0 "a89bc761_6592_4106_a0acdd14e73bc5d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 148 1 0 "dc3e048a_9bb1_4fcc_99ff096bd8ece583" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Template" "End" } // }} "" // {{{ 5 "pH_Calibrate_Dynamically" "Begin" function pH_Calibrate_Dynamically( variable i_intModuleID, variable i_intCalibrationLevel, variable i_intVariance, variable i_intTimeout, variable i_fltCalibrationValue, variable i_fltCalibrationTemperature, variable i_strProbePattern, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Calibrate_Dynamically" "InitLocals" o_stepReturn = 0; // }} "" // {{ 7 1 0 "1464aeb3_96b1_4ec4_ab8008b4ad8e5c58" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_94CD08297F814239B0B11419D328505E ; err.Clear(); // }} "" // {{{ 8 1 0 "5f0f28e4_2d10_486d_a5f025fe43a57dfd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::CalibrateDynamically(i_intModuleID, i_intCalibrationLevel, i_intVariance, i_intTimeout, i_fltCalibrationValue, i_fltCalibrationTemperature, i_strProbePattern); // }} "" // {{ 9 1 0 "1464aeb3_96b1_4ec4_ab8008b4ad8e5c58" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_94CD08297F814239B0B11419D328505E : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 10 1 0 "276c7958_53d6_44c9_bdc01f6b0631af18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 11 1 0 "1464aeb3_96b1_4ec4_ab8008b4ad8e5c58" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Calibrate_Dynamically" "End" } // }} "" // {{{ 5 "pH_Enable_Extended_Log" "Begin" function pH_Enable_Extended_Log( variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Enable_Extended_Log" "InitLocals" o_stepReturn = 0; // }} "" // {{ 43 1 0 "f3a44791_8d5d_43fd_90d52cf307b0d397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_6213D20124C149648FFCCD6E66E53566 ; err.Clear(); // }} "" // {{{ 44 1 0 "cfadb79c_ec52_4a4c_8c613ef78f0d979e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Module::EnableExtendedLog(); // }} "" // {{ 45 1 0 "f3a44791_8d5d_43fd_90d52cf307b0d397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_6213D20124C149648FFCCD6E66E53566 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 46 1 0 "352e0c88_c061_4d35_a4aeefb9fd441f38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 47 1 0 "f3a44791_8d5d_43fd_90d52cf307b0d397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Enable_Extended_Log" "End" } // }} "" // {{{ 5 "pH_Get_Last_Error" "Begin" function pH_Get_Last_Error( variable i_intModuleID, variable & o_strLastError, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Get_Last_Error" "InitLocals" o_strLastError = 0; o_stepReturn = 0; // }} "" // {{ 49 1 0 "49163b05_332f_4bd8_b1a0875b42af9888" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_09FCEB2F0AAA4c5888E7D970B9EB0906 ; err.Clear(); // }} "" // {{{ 50 1 0 "1bbf5668_7da2_4593_a954eb5c20baf705" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::GetLastError(i_intModuleID, o_strLastError); // }} "" // {{ 51 1 0 "49163b05_332f_4bd8_b1a0875b42af9888" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_09FCEB2F0AAA4c5888E7D970B9EB0906 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 52 1 0 "1340b7b5_ecea_4308_8a8ee7d11c70edc2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 53 1 0 "49163b05_332f_4bd8_b1a0875b42af9888" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Get_Last_Error" "End" } // }} "" // {{{ 5 "pH_Initialize" "Begin" function pH_Initialize( variable i_intComport, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Initialize" "InitLocals" o_intModuleID = 0; o_stepReturn = 0; // }} "" // {{ 55 1 0 "b8217b02_6fd3_4298_892d2568d77c74e0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_970E55A20F9F4e42B517C5847AEB8E38 ; err.Clear(); // }} "" // {{{ 56 1 0 "297fb019_93d9_4b46_a56c3a32731a402d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::Initialize(i_intComport, i_blnSimulationMode, o_intModuleID); // }} "" // {{ 57 1 0 "b8217b02_6fd3_4298_892d2568d77c74e0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_970E55A20F9F4e42B517C5847AEB8E38 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 58 1 0 "911745ea_61cd_4f58_b8e0704906ebf222" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 59 1 0 "b8217b02_6fd3_4298_892d2568d77c74e0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Initialize" "End" } // }} "" // {{{ 5 "pH_Measure_Dynamically" "Begin" function pH_Measure_Dynamically( variable i_intModuleID, variable i_fltTemperature, variable i_fltPrecision, variable i_intTimeout, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Measure_Dynamically" "InitLocals" o_fltpHProbe_1 = 0; o_fltpHProbe_2 = 0; o_fltpHProbe_3 = 0; o_fltpHProbe_4 = 0; o_stepReturn = 0; // }} "" // {{ 67 1 0 "1fc3b06c_8e97_43c2_8dfc804da44c34e7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_AA203E903AF848e0B0529507465A94E1 ; err.Clear(); // }} "" // {{{ 68 1 0 "b4fb2269_5bd3_4f6c_8660501f53441522" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::MeasureDynamically(i_intModuleID, i_fltTemperature, i_fltPrecision, i_intTimeout, i_strProbePattern, o_fltpHProbe_1, o_fltpHProbe_2, o_fltpHProbe_3, o_fltpHProbe_4); // }} "" // {{ 69 1 0 "1fc3b06c_8e97_43c2_8dfc804da44c34e7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_AA203E903AF848e0B0529507465A94E1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 70 1 0 "b05cdfa7_6391_4ff4_81ed18ac5f6a52e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 71 1 0 "1fc3b06c_8e97_43c2_8dfc804da44c34e7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Measure_Dynamically" "End" } // }} "" // {{{ 5 "pH_Request_Battery_Data" "Begin" function pH_Request_Battery_Data( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intChargeCounter, variable & o_intBatteryCondition, variable & o_intActualCharge, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Request_Battery_Data" "InitLocals" o_strReplacementDate = 0; o_intChargeCounter = 0; o_intBatteryCondition = 0; o_intActualCharge = 0; o_stepReturn = 0; // }} "" // {{ 73 1 0 "847b4f5f_d886_41dc_9c81ac903c97a162" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_996D8DE608A04eacBD637370A8B07B64 ; err.Clear(); // }} "" // {{{ 74 1 0 "da6aa4ae_3fb0_4dcb_a2a72e6dbb23e4e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::RequestBatteryData(i_intModuleID, o_strReplacementDate, o_intChargeCounter, o_intBatteryCondition, o_intActualCharge); // }} "" // {{ 75 1 0 "847b4f5f_d886_41dc_9c81ac903c97a162" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_996D8DE608A04eacBD637370A8B07B64 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 76 1 0 "374fab67_3d2c_479b_824c5098139051de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 77 1 0 "847b4f5f_d886_41dc_9c81ac903c97a162" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Request_Battery_Data" "End" } // }} "" // {{{ 5 "pH_Request_Calibration_Values" "Begin" function pH_Request_Calibration_Values( variable i_intModuleID, variable i_intProbeNumber, variable & o_fltpHLowValue, variable & o_fltpHLowVoltage, variable & o_fltpHHighValue, variable & o_fltpHHighVoltage, variable & o_fltCalibrationTemperature, variable & o_fltCalibrationOffset, variable & o_fltCalibrationSlope, variable & o_intCalibrationSlopeRation, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Request_Calibration_Values" "InitLocals" o_fltpHLowValue = 0; o_fltpHLowVoltage = 0; o_fltpHHighValue = 0; o_fltpHHighVoltage = 0; o_fltCalibrationTemperature = 0; o_fltCalibrationOffset = 0; o_fltCalibrationSlope = 0; o_intCalibrationSlopeRation = 0; o_stepReturn = 0; // }} "" // {{ 79 1 0 "094d126e_7f40_4ffb_9e7c8e9df3ccc571" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_A458A465FAAE4354AE920AE0DDDD5DCA ; err.Clear(); // }} "" // {{{ 80 1 0 "be826faa_b99a_4b0d_8bcfd9b9e6f58c1c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::RequestCalibrationValues(i_intModuleID, i_intProbeNumber, o_fltpHLowValue, o_fltpHLowVoltage, o_fltpHHighValue, o_fltpHHighVoltage, o_fltCalibrationTemperature, o_fltCalibrationOffset, o_fltCalibrationSlope, o_intCalibrationSlopeRation); // }} "" // {{ 81 1 0 "094d126e_7f40_4ffb_9e7c8e9df3ccc571" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_A458A465FAAE4354AE920AE0DDDD5DCA : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 82 1 0 "3beb4db8_474e_4c8b_8c2a3a46b738bdbe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 83 1 0 "094d126e_7f40_4ffb_9e7c8e9df3ccc571" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Request_Calibration_Values" "End" } // }} "" // {{{ 5 "pH_Request_Probe_Data" "Begin" function pH_Request_Probe_Data( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intMeasurementCounter_Probe_1, variable & o_intMeasurementCounter_Probe_2, variable & o_intMeasurementCounter_Probe_3, variable & o_intMeasurementCounter_Probe_4, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Request_Probe_Data" "InitLocals" o_strReplacementDate = 0; o_intMeasurementCounter_Probe_1 = 0; o_intMeasurementCounter_Probe_2 = 0; o_intMeasurementCounter_Probe_3 = 0; o_intMeasurementCounter_Probe_4 = 0; o_stepReturn = 0; // }} "" // {{ 85 1 0 "a792a4ba_ffaa_496e_a9e84924e8d48769" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_A2F80039318F4807A9355EEE8F65F09D ; err.Clear(); // }} "" // {{{ 86 1 0 "39f96463_bf0a_478e_99d106ede0c66ca8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::RequestProbeData(i_intModuleID, o_strReplacementDate, o_intMeasurementCounter_Probe_1, o_intMeasurementCounter_Probe_2, o_intMeasurementCounter_Probe_3, o_intMeasurementCounter_Probe_4); // }} "" // {{ 87 1 0 "a792a4ba_ffaa_496e_a9e84924e8d48769" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_A2F80039318F4807A9355EEE8F65F09D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 88 1 0 "c289098d_bcc1_49b8_acdb3d5a56078d64" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 89 1 0 "a792a4ba_ffaa_496e_a9e84924e8d48769" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Request_Probe_Data" "End" } // }} "" // {{{ 5 "pH_Request_Technical_Data" "Begin" function pH_Request_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable & o_intPartNumber, variable & o_intRevision, variable & o_intSerialNumber, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Request_Technical_Data" "InitLocals" o_intPartNumber = 0; o_intRevision = 0; o_intSerialNumber = 0; o_stepReturn = 0; // }} "" // {{ 91 1 0 "ef7e5b04_2a8d_43c7_a579daaa255b35fc" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_903977FAFD2C4e8bB89D056988CC3EF4 ; err.Clear(); // }} "" // {{{ 92 1 0 "7b65b46f_5b72_4640_9861bacd4ace5643" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::RequestTechnicalData(i_intModuleID, i_intHardwareNumber, o_intPartNumber, o_intRevision, o_intSerialNumber); // }} "" // {{ 93 1 0 "ef7e5b04_2a8d_43c7_a579daaa255b35fc" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_903977FAFD2C4e8bB89D056988CC3EF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 94 1 0 "0381375a_eba4_4614_93c926558c2d7558" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 95 1 0 "ef7e5b04_2a8d_43c7_a579daaa255b35fc" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Request_Technical_Data" "End" } // }} "" // {{{ 5 "pH_Request_Voltage_Data" "Begin" function pH_Request_Voltage_Data( variable i_intModuleID, variable i_intSelector, variable & o_varVoltageData, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Request_Voltage_Data" "InitLocals" o_varVoltageData = 0; o_stepReturn = 0; // }} "" // {{ 97 1 0 "4db83f8d_771a_4c91_979c072c89b28ed1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_44952D3849BE4a219EFD38455D886E56 ; err.Clear(); // }} "" // {{{ 98 1 0 "4a76ad62_352e_40ca_81088288e34cdeee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Module::RequestVoltageData(i_intModuleID, i_intSelector, o_varVoltageData); // }} "" // {{ 99 1 0 "4db83f8d_771a_4c91_979c072c89b28ed1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_44952D3849BE4a219EFD38455D886E56 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 100 1 0 "043b5397_9bb9_4522_978d64f42943ee9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 101 1 0 "4db83f8d_771a_4c91_979c072c89b28ed1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Request_Voltage_Data" "End" } // }} "" // {{{ 5 "pH_Set_Battery_Replacement_Date" "Begin" function pH_Set_Battery_Replacement_Date( variable i_intModuleID, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Set_Battery_Replacement_Date" "InitLocals" o_stepReturn = 0; // }} "" // {{ 103 1 0 "28fa18e0_d7a7_4d5b_bce1e78a6bfdac57" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C13705D0B70B4e8eAA80912053CAC1F1 ; err.Clear(); // }} "" // {{{ 104 1 0 "b9ab604b_ca72_4ee2_b99c1a7872da4624" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::SetBatteryReplacementDate(i_intModuleID, i_intDay, i_intMonth, i_intYear); // }} "" // {{ 105 1 0 "28fa18e0_d7a7_4d5b_bce1e78a6bfdac57" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C13705D0B70B4e8eAA80912053CAC1F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 106 1 0 "bbb0d55f_6f61_4bd2_9477cf3936b9472e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 107 1 0 "28fa18e0_d7a7_4d5b_bce1e78a6bfdac57" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Set_Battery_Replacement_Date" "End" } // }} "" // {{{ 5 "pH_Set_Charge_Parameters" "Begin" function pH_Set_Charge_Parameters( variable i_intModuleID, variable i_blnCharge, variable i_blnAutoCharge, variable i_intChargeLevel, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Set_Charge_Parameters" "InitLocals" o_stepReturn = 0; // }} "" // {{ 109 1 0 "046ad941_806a_4ac7_b2f4ca60ae77c950" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_4A84194D248D4b0088B93676813BEE2D ; err.Clear(); // }} "" // {{{ 110 1 0 "c35f1bf8_8cea_4986_96ba8ef0097524c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::SetChargeParameters(i_intModuleID, i_blnCharge, i_blnAutoCharge, i_intChargeLevel); // }} "" // {{ 111 1 0 "046ad941_806a_4ac7_b2f4ca60ae77c950" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_4A84194D248D4b0088B93676813BEE2D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 112 1 0 "ed302be8_6fd1_4215_80f039adbe780f7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 113 1 0 "046ad941_806a_4ac7_b2f4ca60ae77c950" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Set_Charge_Parameters" "End" } // }} "" // {{{ 5 "pH_Set_Probe_Replacement_Date" "Begin" function pH_Set_Probe_Replacement_Date( variable i_intModuleID, variable i_intProbe, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Set_Probe_Replacement_Date" "InitLocals" o_stepReturn = 0; // }} "" // {{ 115 1 0 "048020e2_7cb7_4b0e_9d7951ebced9d9ca" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_244E236DDAAF4536B249F6D8792A60A2 ; err.Clear(); // }} "" // {{{ 116 1 0 "d9b9ef0e_6c6d_4272_97b55d209307f7e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::SetProbeReplacementDate(i_intModuleID, i_intProbe, i_intYear, i_intMonth, i_intDay); // }} "" // {{ 117 1 0 "048020e2_7cb7_4b0e_9d7951ebced9d9ca" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_244E236DDAAF4536B249F6D8792A60A2 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 118 1 0 "4ebc6879_cd2b_448a_b753ab26b9645392" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 119 1 0 "048020e2_7cb7_4b0e_9d7951ebced9d9ca" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Set_Probe_Replacement_Date" "End" } // }} "" // {{{ 5 "pH_Set_Shutdown" "Begin" function pH_Set_Shutdown( variable i_intModuleID, variable i_intMode, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Set_Shutdown" "InitLocals" o_stepReturn = 0; // }} "" // {{ 121 1 0 "9a1900c4_4658_4aa6_8f04356997560654" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_7907B9BE9B2647d09FEC0DD2979D5B14 ; err.Clear(); // }} "" // {{{ 122 1 0 "3b63fd46_6389_405c_8940455e9f127468" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::SetShutdown(i_intModuleID, i_intMode); // }} "" // {{ 123 1 0 "9a1900c4_4658_4aa6_8f04356997560654" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_7907B9BE9B2647d09FEC0DD2979D5B14 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 124 1 0 "804cd242_3933_4e99_a96c4367bbe3f9ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 125 1 0 "9a1900c4_4658_4aa6_8f04356997560654" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Set_Shutdown" "End" } // }} "" // {{{ 5 "pH_Set_Technical_Data" "Begin" function pH_Set_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable i_intPartNumber, variable i_intRevision, variable i_intSerialNumber, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Set_Technical_Data" "InitLocals" o_stepReturn = 0; // }} "" // {{ 127 1 0 "c02ce5b6_c9e6_47bf_95caba6446142317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_007BB8AFAE534922B6C5EA899698EA91 ; err.Clear(); // }} "" // {{{ 128 1 0 "8dd87239_734f_4123_90ead0ba65f0bbbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::SetTechnicalData(i_intModuleID, i_intHardwareNumber, i_intPartNumber, i_intRevision, i_intSerialNumber); // }} "" // {{ 129 1 0 "c02ce5b6_c9e6_47bf_95caba6446142317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_007BB8AFAE534922B6C5EA899698EA91 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 130 1 0 "ebf84842_e475_488c_9862aa5015f5fec3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 131 1 0 "c02ce5b6_c9e6_47bf_95caba6446142317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Set_Technical_Data" "End" } // }} "" // {{{ 5 "pH_Set_Trace_Level" "Begin" function pH_Set_Trace_Level( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Set_Trace_Level" "InitLocals" o_stepReturn = 0; // }} "" // {{ 133 1 0 "de8cbad8_49c8_46e7_a0700ca21c045a6c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E054D9949EA7480786FBA86809E1466A ; err.Clear(); // }} "" // {{{ 134 1 0 "6047012d_fb0a_4b7e_8aaf873bfe7845f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::SetTraceLevel(i_intModuleID, i_intTraceLevel); // }} "" // {{ 135 1 0 "de8cbad8_49c8_46e7_a0700ca21c045a6c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E054D9949EA7480786FBA86809E1466A : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 136 1 0 "555d191a_8248_46cf_8ea20adfafc8467f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 137 1 0 "de8cbad8_49c8_46e7_a0700ca21c045a6c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Set_Trace_Level" "End" } // }} "" // {{{ 5 "pH_Sleep" "Begin" function pH_Sleep( variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Sleep" "InitLocals" o_stepReturn = 0; // }} "" // {{ 139 1 0 "a89f0ae6_b4cb_4656_a2ccf7c867144e25" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_76094A1A6DE5412d86AB364ECCABC11C ; err.Clear(); // }} "" // {{{ 140 1 0 "2a282561_49e7_4e38_9a879c795b444f19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::Sleep(i_intModuleID); // }} "" // {{ 141 1 0 "a89f0ae6_b4cb_4656_a2ccf7c867144e25" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_76094A1A6DE5412d86AB364ECCABC11C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 142 1 0 "e0169354_be6f_4f1f_8bdafe388a9c4771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 143 1 0 "a89f0ae6_b4cb_4656_a2ccf7c867144e25" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Sleep" "End" } // }} "" // {{{ 5 "pH_Terminate" "Begin" function pH_Terminate( variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Terminate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 150 1 0 "668de1be_76f5_4b4b_9bdce72e242c1da9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2159C97E67DC41d2931B29ED5B108588 ; err.Clear(); // }} "" // {{{ 151 1 0 "5eafa92d_a6f8_43b4_85d53439a46b7150" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::Terminate(i_intModuleID); // }} "" // {{ 152 1 0 "668de1be_76f5_4b4b_9bdce72e242c1da9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2159C97E67DC41d2931B29ED5B108588 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 153 1 0 "c747eb9a_16b7_4375_a0b8c1fa3905f4e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 154 1 0 "668de1be_76f5_4b4b_9bdce72e242c1da9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Terminate" "End" } // }} "" // {{{ 5 "pH_Wakeup" "Begin" function pH_Wakeup( variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Wakeup" "InitLocals" o_stepReturn = 0; // }} "" // {{ 156 1 0 "a07b04fa_c851_41e7_b5a0a2399e165b7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_AC33764C04E24aa192975F20CE5661F3 ; err.Clear(); // }} "" // {{{ 157 1 0 "b874aa08_e28d_448b_bcb942611cb0081e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::WakeUp(i_intModuleID); // }} "" // {{ 158 1 0 "a07b04fa_c851_41e7_b5a0a2399e165b7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_AC33764C04E24aa192975F20CE5661F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 159 1 0 "0bb81b5c_7196_46bd_a008386d79a49a7b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 160 1 0 "a07b04fa_c851_41e7_b5a0a2399e165b7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Wakeup" "End" } // }} "" // {{{ 5 "pH_Washer_Initialize" "Begin" function pH_Washer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable o_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Washer_Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 162 1 0 "10f9829c_87f4_46c5_9b033ca5b5c71300" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_7FD13D87F8D74230A78B98C5B83581AE ; err.Clear(); // }} "" // {{{ 163 1 0 "73832845_cea9_4136_b893d93437a02f00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Washer_Module::Initialize(ML_STAR, i_intComport, i_strModuleName, i_blnSimulationMode, o_intModuleID); // }} "" // {{ 164 1 0 "10f9829c_87f4_46c5_9b033ca5b5c71300" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_7FD13D87F8D74230A78B98C5B83581AE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 165 1 0 "dba61f0e_40e0_4580_a0521efc45217200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 166 1 0 "10f9829c_87f4_46c5_9b033ca5b5c71300" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Washer_Initialize" "End" } // }} "" // {{{ 5 "pH_Washer_Set_Trace" "Begin" function pH_Washer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Washer_Set_Trace" "InitLocals" o_stepReturn = 0; // }} "" // {{ 168 1 0 "96553ed4_7e70_4640_9f84ae4898d745b6" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B6EDA3032F05464e9D3AC6C60F6B38DD ; err.Clear(); // }} "" // {{{ 169 1 0 "878952e6_2860_4a96_a9c8d7f2ae67c7a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Washer_Module::SetTraceLevel(i_intModuleID, i_intTraceLevel); // }} "" // {{ 170 1 0 "96553ed4_7e70_4640_9f84ae4898d745b6" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B6EDA3032F05464e9D3AC6C60F6B38DD : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 171 1 0 "0f963a42_c256_489a_aaa94e1febe27518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 172 1 0 "96553ed4_7e70_4640_9f84ae4898d745b6" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Washer_Set_Trace" "End" } // }} "" // {{{ 5 "pH_Washer_Terminate" "Begin" function pH_Washer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Washer_Terminate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 174 1 0 "d9a253c1_0910_4e9f_a187149052ec3a76" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3C057778551F44998B365E9253A02217 ; err.Clear(); // }} "" // {{{ 175 1 0 "d4227020_99a1_4aa0_9d6e084149e70033" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Washer_Module::Terminate(ML_STAR, i_intModuleID); // }} "" // {{ 176 1 0 "d9a253c1_0910_4e9f_a187149052ec3a76" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3C057778551F44998B365E9253A02217 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 177 1 0 "66061ca5_5cc5_4d0f_9202635c03ec1307" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 178 1 0 "d9a253c1_0910_4e9f_a187149052ec3a76" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Washer_Terminate" "End" } // }} "" // {{{ 5 "pH_Washer_Wash" "Begin" function pH_Washer_Wash( device & ML_STAR, variable i_intModuleID, variable i_intCycleNumber, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Washer_Wash" "InitLocals" o_stepReturn = 0; // }} "" // {{ 180 1 0 "f80ebec7_e999_4849_ba9dd4ea56ea0f57" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_78E848113B364c5bA57553087E6B301D ; err.Clear(); // }} "" // {{{ 181 1 0 "f05733be_cfcc_4ec8_b953e718e1850a9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Washer_Module::Wash(ML_STAR, i_intModuleID, i_intCycleNumber); // }} "" // {{ 182 1 0 "f80ebec7_e999_4849_ba9dd4ea56ea0f57" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_78E848113B364c5bA57553087E6B301D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 183 1 0 "c9e18e37_6611_4c12_8283218c23b61e2f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 184 1 0 "f80ebec7_e999_4849_ba9dd4ea56ea0f57" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Washer_Wash" "End" } // }} "" // {{{ 5 "pH_Dryer_Initialize" "Begin" function pH_Dryer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Dryer_Initialize" "InitLocals" o_intModuleID = 0; o_stepReturn = 0; // }} "" // {{ 13 1 0 "607202ca_06ee_4a0f_866a0d2c76d5cb28" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_5DF85C91FEE34492A487BBB5FD9647BE ; err.Clear(); // }} "" // {{{ 14 1 0 "05f15313_9f49_451a_95bbeb4c53196bc2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Dryer_Module::Initialize(ML_STAR, i_strModuleName, i_blnSimulationMode, o_intModuleID); // }} "" // {{ 15 1 0 "607202ca_06ee_4a0f_866a0d2c76d5cb28" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_5DF85C91FEE34492A487BBB5FD9647BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 16 1 0 "ab7a6bde_3380_4c1c_9e57ee94fd815540" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 17 1 0 "607202ca_06ee_4a0f_866a0d2c76d5cb28" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Dryer_Initialize" "End" } // }} "" // {{{ 5 "pH_Dryer_Set_Trace" "Begin" function pH_Dryer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Dryer_Set_Trace" "InitLocals" o_stepReturn = 0; // }} "" // {{ 19 1 0 "294bac48_145a_4d48_a51b4612dd3440c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C2938C2495A74c4cA632332F553DD428 ; err.Clear(); // }} "" // {{{ 20 1 0 "3cc57734_cda6_468c_a2c90189391dadd8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Dryer_Module::SetTraceLevel(i_intModuleID, i_intTraceLevel); // }} "" // {{ 21 1 0 "294bac48_145a_4d48_a51b4612dd3440c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C2938C2495A74c4cA632332F553DD428 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 22 1 0 "b9209d93_3ded_4c38_96bc13f91674c01c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 23 1 0 "294bac48_145a_4d48_a51b4612dd3440c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Dryer_Set_Trace" "End" } // }} "" // {{{ 5 "pH_Dryer_StartDrying" "Begin" function pH_Dryer_StartDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Dryer_StartDrying" "InitLocals" o_stepReturn = 0; // }} "" // {{ 25 1 0 "a3b51a95_0ff1_47ef_b688fd99b4c881ec" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_04151AE1B5D4492089F91C4D24DFB4D1 ; err.Clear(); // }} "" // {{{ 26 1 0 "689c20eb_6a9d_4a74_88f159552e3027f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Dryer_Module::StartDrying(ML_STAR, i_intModuleID); // }} "" // {{ 27 1 0 "a3b51a95_0ff1_47ef_b688fd99b4c881ec" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_04151AE1B5D4492089F91C4D24DFB4D1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 28 1 0 "adeee0f8_b525_41bd_a62b5edf9d117c6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 29 1 0 "a3b51a95_0ff1_47ef_b688fd99b4c881ec" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Dryer_StartDrying" "End" } // }} "" // {{{ 5 "pH_Dryer_StopDrying" "Begin" function pH_Dryer_StopDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Dryer_StopDrying" "InitLocals" o_stepReturn = 0; // }} "" // {{ 31 1 0 "29d5863e_4160_4760_b56b41dc758bdcd9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_A4169CBA98C24da39C38331F531BB852 ; err.Clear(); // }} "" // {{{ 32 1 0 "db4fe054_872e_4452_8835e28b39a4ad1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Dryer_Module::StopDrying(ML_STAR, i_intModuleID); // }} "" // {{ 33 1 0 "29d5863e_4160_4760_b56b41dc758bdcd9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_A4169CBA98C24da39C38331F531BB852 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 34 1 0 "47b1bc71_479a_474d_a5b3c1fe4e31d5e7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 35 1 0 "29d5863e_4160_4760_b56b41dc758bdcd9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Dryer_StopDrying" "End" } // }} "" // {{{ 5 "pH_Dryer_Terminate" "Begin" function pH_Dryer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Dryer_Terminate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 37 1 0 "75b21d84_d009_4e72_8a0184c15d4eb585" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_976FC1B840694cb598ACF66A1DAAA974 ; err.Clear(); // }} "" // {{{ 38 1 0 "59fd889e_96a4_4c23_a1f9d3304535be72" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, i_intModuleID); // }} "" // {{ 39 1 0 "75b21d84_d009_4e72_8a0184c15d4eb585" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_976FC1B840694cb598ACF66A1DAAA974 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 40 1 0 "6d67118e_7746_4fb9_aa5ef1f641c11cb5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 41 1 0 "75b21d84_d009_4e72_8a0184c15d4eb585" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Dryer_Terminate" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=stefa$$valid=0$$time=2022-10-28 20:30$$checksum=f397232e$$length=084$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/STAR_OEM_wFan.hsl ================================================ namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HslHamHeaterShakerLib.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } #include "STAR_OEM_Test.res" namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "SchedulingDev\\HSLAppsLib.hsl" } /* {{ 2 "LibraryInsertLine" "" */ // }} "" variable loopCounterMain; variable msg; object objJSONFromServer; variable commandFromServer; variable initializeAlways; variable o_stepReturn; object objJSONToServer; sequence seq; variable tipSequence; variable sequenceCounting; variable channelVariable; variable channelUse; variable labwarePositions; variable aspirateSequence; variable v; variable arrayOfVolumes[]; variable liquidClass; variable aspirateMode; variable capacitiveLLD; variable pressureLLD; variable liquidFollowing; variable submergeDepth; variable liquidHeight; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable airTransportRetractDist; variable touchOff; variable aspPosAboveTouch; variable o_liquidLevels_mm[]; variable o_liquidLevels_mL[]; variable o_stepReturn2; variable o_stepReturn3; variable dispenseMode; variable dispenseSequence; variable dispPositionAboveTouch; variable zMoveAfterStep; variable sideTouch; variable wasteSequence; variable useDefaultWaste; variable reducedPatternMode; variable aspirateVolume; variable o_stepReturn4; variable dispenseVolume; variable tipEjectToKnownPosition; variable carrierName; variable barcodeFileName; variable barcodeReadPositions; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable lidSequence; variable plateSequence; variable toolSequence; variable transportMode; variable widthBefore; variable gripHeight; variable gripWidth; variable gripSpeed; variable gripperToolChannel; variable checkPlate; variable zSpeed; variable gripForce; sequence lidSeq; sequence toolSeq; variable xAcceleration; variable platePressOnDistance; variable ejectToolWhenFinish; object objHttp; variable blnReturn; variable blnSuccess; variable usedNode; variable deviceNumber; variable action; variable sampleInterval; variable shakingToleranceRange; variable id; variable monitorResult; variable firmwareVersion; variable serialNumber; variable command; variable parameter; variable plateLock; variable shakingAccRamp; variable shakingDirection; variable simulate; variable startTimeout; variable toleranceRange; variable securityRange; variable intTrace; variable shakingSpeed; variable shakingTime; variable temperature; variable waitForTempReached; variable inverseGrip; variable liftUpHeight; variable retractDistance; variable tolerance; variable labwareOrientation; variable movementType; variable collisionControl; variable gripMode; variable showCollisionCheckDialog; //global device HxFan ("STAR_OEM_Test.lay", "HxFan", hslTrue); variable refillAfterEmpty; variable chamber1LiquidChange; variable chamber2WashLiquid; variable chamber1WashLiquid; variable chamber2LiquidChange; variable FirmwareCommand; variable FirmwareParameter; variable CommandListElement; variable CommandListLength; object FirmwareCmdDict; variable yDisplacement; variable zDisplacement; variable xDisplacement; variable yOrigin; variable xOrigin; variable zOrigin; variable ControllerID; variable SimulationMode; variable ErrorCode; variable DeviceID; variable TargetTemperature; variable StopAllDevices; variable TraceLevel; variable Comport; variable Simulate; variable ModuleName; variable Angle; variable inputSequence; variable barcode; variable seqFirstPosition; variable seqSecondPosition; global device ML_STAR ("STAR_OEM_Test.lay", "ML_STAR", hslTrue); global device HxFan ("STAR_OEM_Test.lay", "HxFan", hslTrue); variable fanSpeed; variable persistant; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" STAR_OEM_TOOLKIT::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{{ 1 1 0 "e7768ad9_4016_4422_bd83f5785d03ceda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnReturn = HSLHttp::Initialize(objHttp); // }} "" // {{ 2 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnReturn != blnSuccess) { // }} "" // {{{ 3 1 0 "62c131b4_44b9_4249_8e0a3205a25b21b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); // }} "" // {{{ 4 1 0 "fb18125e_b294_4554_912c3d447526996e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 5 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 6 1 0 "ee92e29b_e94c_46cf_a67851f3be61c805" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Hi, Im a VENUS method.")); // }} "" // {{ 7 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; // }} "" // {{ 8 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "de417132_351a_4ad8_80c71b1863d4a870" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" commandFromServer = Translate(""); // }} "" // {{ 10 1 0 "d9c97239_3c9d_4992_8fb5820ae5721d90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate(""); // }} "" // {{ 11 1 0 "57da7835_7495_4b16_8b82897289efbd11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn2 = Translate(""); // }} "" // {{ 12 1 0 "cf024fcc_3594_4355_b33f4bd8c8bdfb4e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn3 = Translate(""); // }} "" // {{ 13 1 0 "9ed0b80d_8518_474f_a94d8f843a6158fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn4 = Translate(""); // }} "" // {{ 14 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 15 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 16 1 0 "0257e5d3_7b99_47be_a062950a2b200664" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" msg = waitForGUItoContinue(); // }} "" Trace("JSON received from Server:", msg); // {{{ 18 1 0 "36be63f7_a79c_44a4_b1dc636a536612bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONFromServer); // }} "" // {{{ 19 1 0 "5c2b861d_97f9_4e18_a5fce25e78026299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::ParseJson(objJSONFromServer, msg); // }} "" // {{{ 20 1 0 "562abca5_8891_402a_b8a7c5ba56301a86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); // }} "" // {{{ 21 1 0 "cb002e33_cc71_4a25_890fa8f9f5d982a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("id"), id); // }} "" // {{ 22 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 23 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 24 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "initialize") { // }} "" // {{{ 25 1 0 "773dbb38_0414_403d_b2ff24100c7cf1fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); // }} "" // {{{ 26 1 0 "97af1c08_2914_4f72_b27c685f11b30bb6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); // }} "" // {{{ 27 1 0 "b3ab11e2_0297_446f_9cf37ca7c0c9d19f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Init step return:"), o_stepReturn); // }} "" // {{{ 28 1 0 "57d4e0cd_327e_4cac_8e83a7da6222dda0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 29 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 30 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 31 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 32 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 33 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipPickUp") { // }} "" // {{{ 34 1 0 "53e1cfb5_1fde_491f_bfd878eceda16ba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 35 1 0 "f0e9e31f_d871_4632_bd466e43fc38c771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 36 1 0 "e6311b13_2132_40e0_aff0b5556205c32a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 37 1 0 "cb659ed1_5f0c_41e8_8a060ec0b650c589" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{ 38 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 39 1 0 "6699226b_6c7b_4b79_95b8017162b433b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 40 1 0 "bd13798f_62e7_4dd2_8e91769d48d10fc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 41 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 42 1 0 "ce13caa6_634b_4dec_8a6c3ea74b144e95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 43 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 44 1 0 "29f69958_d99b_455a_93c7b0480bfd1658" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn); // }} "" // {{{ 45 1 0 "732425fd_a199_4354_8479d821ee834e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 46 1 0 "22f00193_1056_456e_a515d156eee56e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 47 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 48 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 49 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 50 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelAspirate") { // }} "" // {{ 51 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 52 1 0 "55ee3109_036b_4acb_8a15175f3316656f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 53 1 0 "a5b3e5ac_4910_4a4a_8e20bdb7f61836e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 54 1 0 "ce04189a_96e4_4bdc_aedc8a68bf64647b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 55 1 0 "882daff3_cc25_4778_aec6a937fc87347c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 56 1 0 "7f7b9f83_5611_4a3b_b5c120689696addb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 57 1 0 "39e464b7_0def_403b_a02f5dd2a358dbd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 58 1 0 "2e2739aa_8eb6_44e0_b887ea00b04acac0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 59 1 0 "9408edd8_3cee_43e0_976b4a6fabf5f4ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 60 1 0 "a2848877_3518_4d1d_95f77c1f313003e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); // }} "" // {{{ 61 1 0 "4b5ce3d0_91f4_4c14_aaf1cad34e0caf60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" Trace("Bookstart"); // {{{ 63 1 0 "12892ce3_3bc6_4165_b3b6ae0eacad20e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" Trace("Bookend"); // {{{ 65 1 0 "15bd5af3_2da1_420b_beb398dc2347a0ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 66 1 0 "4fe61fb4_bb39_4728_96b8c6959f4943ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); // }} "" // {{{ 67 1 0 "ba68c240_2397_4872_949ee1ee984595c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 68 1 0 "baac19fc_9f21_4e8c_b833f2a1ba2433f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 69 1 0 "253130f8_f599_4ef4_9d5a15e2cb89d1eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 70 1 0 "51233931_483f_4deb_a8627b909d6c9116" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 71 1 0 "bf0c65ba_7847_4768_92ebbe8adc6568c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 72 1 0 "30a6715c_b6c6_4d86_b5c02f3da440e309" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 73 1 0 "6eb82b6e_8093_461e_afc712cab07398dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 74 1 0 "3f8b6af1_7872_4a20_92bf2c4507ea9f31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); // }} "" // {{{ 75 1 0 "7dd1b818_5a89_4b03_82734e6f4d7b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{ 76 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 77 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 78 1 0 "cb2b67f0_7384_4a41_831de652f92d4c85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 79 1 0 "29a868b4_7800_4747_b14eaf0f2c10ba40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 80 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 81 1 0 "08f63789_65f1_4e7d_996dc22e8f33d416" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 82 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 83 1 0 "8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 84 1 0 "7cb70e6b_15bb_4380_b62150df065d208f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 85 1 0 "4714958b_0632_4de2_983c7fe9de68df6c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 86 1 0 "bd40f564_16d7_4037_aef8eebfe28a4362" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 87 1 0 "18bf536c_98f4_4345_86a103db4a9b68a1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 88 1 0 "d60cd9aa_083b_4487_8d6218cee02fa4cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 89 1 0 "e86187c0_0d19_453e_be1c5a401d0d5d93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 90 1 0 "d66c2dae_4cc3_4a31_bafe46d1dd63e790" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 91 1 0 "d23f143d_290d_4d0f_b368241a6a9adaed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 92 1 0 "0428e844_3191_4cde_b7f3544f34c833f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 93 1 0 "a7ca006f_941c_4b31_9749313ad9b4e079" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 94 1 0 "8c97ba72_f880_4504_baee8b8db3d13310" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 95 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 96 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 97 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 98 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelDispense") { // }} "" // {{ 99 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 100 1 0 "909bc255_6ca1_4700_bc102ccb34ae5be4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 101 1 0 "fd48dd93_9f42_4df0_9f659e27a5552543" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 102 1 0 "3ff3f492_86a5_40af_a3deabccbab3898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 103 1 0 "3cbb883f_48ae_40fe_afe67da944df94b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 104 1 0 "ab1033bc_1216_450a_9fb60655a1f1a21a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 105 1 0 "0bc1541f_26d5_44d6_8db6ae336fec17bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 106 1 0 "8c10cc29_c05e_4cea_9ed559249651e805" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 107 1 0 "3e0373da_7c7c_46ab_9b77fba19915662e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 108 1 0 "b98fdc49_cdcb_4f3c_81df0b76eafa1411" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 109 1 0 "7458d32a_402a_4215_b52378c78468ec80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 110 1 0 "5e14f2ce_c932_474b_be03f3c043c700e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 111 1 0 "c2010d1d_5a78_4871_a835a6613a1237bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 112 1 0 "d4a6e6a3_0158_45f1_9c359d8e48e01bed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 113 1 0 "011e9828_5413_40c1_80d0c3bdde1c6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 114 1 0 "2d7a4942_b2ce_43a2_8decf49fa0c9576c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 115 1 0 "ad9f0bbf_e495_41c5_898a3be32bb16f2b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 116 1 0 "5c734886_aa50_424c_b89f6894bc37dd8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 117 1 0 "d1bc00cc_4286_4409_b1c49b6350e7e6ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 118 1 0 "b178ce99_db9e_4453_bed28d4ce0457bc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); // }} "" // {{{ 119 1 0 "1b38ad88_3c65_4e58_812f9ed32ce32485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{{ 120 1 0 "f34066f1_63f9_474f_8a9c41e56962dc74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 121 1 0 "6b94916e_355b_4ee9_8eb4f1b49c95fea4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 122 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 123 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 124 1 0 "e962dd26_3672_4418_bd3c40e9929929eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 125 1 0 "6257966a_6b39_41c8_a057a79b8e39cd4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 126 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 127 1 0 "3f230e40_8bd9_4235_b88cd0ca80799661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 128 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 129 1 0 "8d82ff40_d831_430b_97d97c01d2a4474e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 130 1 0 "ac0ad5a7_d00b_46fe_a18f94f8dab3863c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 131 1 0 "b7f86b6c_03a4_4e12_a05e5e8bdc958b75" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 132 1 0 "9bfa8704_2ae0_4a63_83d09fddbacfd336" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 133 1 0 "860b660a_6947_4c88_a2a039bf65040bf5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 134 1 0 "797f0eef_5bb2_4a2e_a178af74f4892bd7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 135 1 0 "2753c24e_c4dc_402d_866b6bc8691ecc1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 136 1 0 "1ac127fd_b830_496f_b4d4b9671137ebff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 137 1 0 "3ee5d751_d3a5_468a_b539c4f0ff22023e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 138 1 0 "b86d492c_446f_4921_97140cfd462ace87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 139 1 0 "e049946d_6322_4b39_9c46a2d0eb345528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 140 1 0 "531432f5_ef8a_416e_8be28a07ae9b0d25" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 141 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 142 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 143 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 144 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipEject") { // }} "" // {{{ 145 1 0 "69be671e_7cdd_48d3_af136435754c1d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 146 1 0 "f3444c0f_4863_4fdd_94a025b682d8a6d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 147 1 0 "12ad2f39_c160_4afc_9f6ffce7e3ddb433" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 148 1 0 "2883bb64_2fe3_47ca_996e11434afc57cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 149 1 0 "10c3b13e_7129_4cfd_b88b29d0bbc31a28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); // }} "" // {{ 150 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (useDefaultWaste == 0) { // }} "" // {{ 151 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 152 1 0 "655bc92f_08a8_4c16_a0276997aec081ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 153 1 0 "a3a0b5ef_85c0_4552_a28b3356d7886eb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 154 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 155 1 0 "efadb8c3_c431_4ed4_a739a951c05ee518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 156 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 157 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 158 1 0 "2dda50b6_7f82_4e8a_a1d203715119213a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 159 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 160 1 0 "7fa61e34_a1f2_4b99_8f6bed13c6ce120f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn); // }} "" // {{{ 161 1 0 "a7db5128_f8e4_4afe_81f46b2cc86e608d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject step return:"), o_stepReturn); // }} "" // {{{ 162 1 0 "683607f4_928f_4cea_b901fe3502404424" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 163 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 164 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 165 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 166 1 0 "a48ecca7_58ae_4053_bcf55cb937c67cee" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 167 1 0 "abe1ccd9_4f62_4ba7_86704f85775601a9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 168 1 0 "2054eeee_4a5e_455d_ba88a5f72b6e2d20" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HxFanSet") { // }} "" // {{{ 169 1 0 "daa15756_3436_4933_a77343a6b74abdda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 170 1 0 "f7a65cdd_f556_4510_93dc393aab7117ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("persistant"), persistant); // }} "" // {{{ 171 1 0 "9aac0f80_77c6_4378_9edcafdb980a7a52" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{{ 172 1 0 "017efef4_a04a_4cd8_8b95c3627a4ca3f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("fanSpeed"), fanSpeed); // }} "" // {{ 173 1 0 "f4fe901f_0fea_4182_a9b32d3a52be8ba8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9524EA7A672749f5B1DC8547FF64D411 ; err.Clear(); // }} "" // {{ 174 1 0 "5289ef1c_0270_4bf7_87ecc95031ea60c2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 175 1 0 "2aac9555_3db2_42fe_95746d929bf7805c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (simulate == 0) { // }} "" // {{ 176 1 0 "15813370_102c_46f8_b0b9e10f69c94545" "HxFan:{6FE28420-ECCC-4DE2-8731-3A3A5D98EC19}" { HxFan.Simulate("15813370_102c_46f8_b0b9e10f69c94545"); // Simulate } // }} "" // {{ 177 1 0 "2aac9555_3db2_42fe_95746d929bf7805c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 178 1 0 "2bfa4c39_78dc_4c07_8df1587b789631e3" "HxFan:{6FE28420-ECCC-4DE2-8731-3A3A5D98EC19}" { HxFan.Simulate("2bfa4c39_78dc_4c07_8df1587b789631e3"); // Simulate } // }} "" // {{ 179 1 0 "2aac9555_3db2_42fe_95746d929bf7805c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 180 1 0 "ccac4a45_40dd_478b_8cd2a33b5bfc919f" "HxFan:{419861B2-AD5B-4F2E-8025-46B0E593A024}" { HxFan.SetComPort("ccac4a45_40dd_478b_8cd2a33b5bfc919f"); // SetComPort } // }} "" // {{ 181 1 0 "ec1a34ec_ccfa_435a_9b831bbbc700ae5b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (persistant == 0) { // }} "" // {{ 182 1 0 "c0e6fd40_d6ce_4eae_bc0fe29ab9018489" "HxFan:{166B9764-268C-487A-8D8C-EC3ED594717C}" { HxFan.SetContinuousMode("c0e6fd40_d6ce_4eae_bc0fe29ab9018489"); // SetContinuousMode } // }} "" // {{ 183 1 0 "ec1a34ec_ccfa_435a_9b831bbbc700ae5b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 184 1 0 "f8c79ed8_291c_4649_85b5273193fb1cee" "HxFan:{166B9764-268C-487A-8D8C-EC3ED594717C}" { HxFan.SetContinuousMode("f8c79ed8_291c_4649_85b5273193fb1cee"); // SetContinuousMode } // }} "" // {{ 185 1 0 "ec1a34ec_ccfa_435a_9b831bbbc700ae5b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 186 1 0 "1c42435f_bcfc_4ea5_ac419d4f416f2ea5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (fanSpeed == 0) { // }} "" // {{ 187 1 0 "f0ad384a_ad3d_442d_93a20fc5d001d549" "HxFan:{1581574C-5388-4E48-BC78-FEE50E8DCE05}" { HxFan.SetFanOff("f0ad384a_ad3d_442d_93a20fc5d001d549"); // SetFanOff } // }} "" // {{ 188 1 0 "1c42435f_bcfc_4ea5_ac419d4f416f2ea5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 189 1 0 "e7f06d9a_4b75_4e68_a44fd8d441335521" "HxFan:{C3B1A3F9-BD5A-4660-842E-35830B4E80CA}" { HxFan.SetFanSpeed("e7f06d9a_4b75_4e68_a44fd8d441335521"); // SetFanSpeed } // }} "" // {{ 190 1 0 "1c42435f_bcfc_4ea5_ac419d4f416f2ea5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 191 1 0 "f4fe901f_0fea_4182_a9b32d3a52be8ba8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9524EA7A672749f5B1DC8547FF64D411 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 192 1 0 "fffbd95d_1444_4be1_8415015a5e31cc7e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 193 1 0 "f4fe901f_0fea_4182_a9b32d3a52be8ba8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 194 1 0 "9cede215_17e8_434c_bb104c71289c7f70" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 195 1 0 "2054eeee_4a5e_455d_ba88a5f72b6e2d20" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 196 1 0 "abe1ccd9_4f62_4ba7_86704f85775601a9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 197 1 0 "a48ecca7_58ae_4053_bcf55cb937c67cee" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 198 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 199 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 200 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipPickUp") { // }} "" // {{{ 201 1 0 "1f82c33f_a085_47cc_85dbbde3e42a53c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 202 1 0 "9f9fe665_47a2_4a12_961460021d1f09f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 203 1 0 "743960d2_9d0f_4ccf_848662247e3211c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 204 1 0 "b737602c_63e8_4c4c_b47f40cb815914ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); // }} "" // {{ 205 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 206 1 0 "00bd1831_c335_40f5_b706f0ffadbe2890" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 207 1 0 "1f16418c_8fa7_44a5_a6db75dd9a79ee84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 208 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 209 1 0 "b66db4eb_9e79_4c19_909fd8d14d37cba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 210 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 211 1 0 "f3e7cbf6_0242_4463_8d4ed0db4667f7db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2); // }} "" // {{{ 212 1 0 "b080a5c6_324c_4aae_b5899dede6d863f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 213 1 0 "aa5a9c4b_0377_46ce_9b46883db15cbd7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 214 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 215 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 216 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 217 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Aspirate") { // }} "" // {{ 218 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 219 1 0 "373f30c8_ec07_4298_94d6ac75358ab1ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 220 1 0 "ef3ae377_e985_4ef6_93b005aa91c9b2b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 221 1 0 "d8eea65a_6e59_4c32_a47bae09779f9528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 222 1 0 "8eb02312_a070_491c_9758b3cdbdee0cfc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); // }} "" // {{{ 223 1 0 "6eaf8bee_b53f_4f01_87c1380bc345e386" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 224 1 0 "d9923a2f_e7cf_4f3e_81746e378a20baab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 225 1 0 "2c411993_e3fc_4753_9a90308b226078a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 226 1 0 "5d900896_b2b9_442b_b24294b9bbfbdaad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 227 1 0 "21149e9e_21c9_4ddd_93e07b693e3ab3fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 228 1 0 "bcefef03_102b_4887_adad59c2fb7ad551" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 229 1 0 "9665b0a3_35e8_47e9_b14ac1a4818cfa6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 230 1 0 "ff93d28b_afe9_47e7_9b6eb50d6845384f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 231 1 0 "ef43b824_fd38_42d4_9e932904dbf14813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 232 1 0 "b0378457_e370_448b_bfd6955c05e57bcb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{ 233 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 234 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 235 1 0 "615bcff6_e9d5_4303_a5d5826b2e2548dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 236 1 0 "cf4ad428_945e_4921_9441ee34cf9c96bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 237 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 238 1 0 "86397ec2_2ee5_4ec1_8bec47d8e87584b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 239 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 240 1 0 "48f88263_72c1_4df2_865181cffed9feee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 241 1 0 "f1b764e8_e556_4d08_bb83bdc12dc64a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 242 1 0 "164c104a_cf5f_46de_b23a098a18b3fdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 243 1 0 "ee779f77_51a9_46d7_b58b7bcaf13519f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 244 1 0 "e874eb6d_1e97_4590_95d9b10cb059c935" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn4); // }} "" // {{{ 245 1 0 "0ca1df86_a344_45fd_b384e13ba44c5ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 246 1 0 "2497228e_672e_4c95_9f31679fe87bbe1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 247 1 0 "e4930eee_c625_4acb_a81c05e149a1a218" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 248 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 249 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 250 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 251 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Dispense") { // }} "" // {{ 252 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 253 1 0 "78cba921_2a37_4b4a_91ef7fbe81fcddd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 254 1 0 "b58b4cbd_16e9_4444_9037061e29bc5614" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 255 1 0 "0ab910ec_826d_4c84_bac7ed9564f3bdab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 256 1 0 "84d664b7_70d0_4136_bdfd4de2aa760ad8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); // }} "" // {{{ 257 1 0 "18becc6a_2df4_4281_8b16ade9038979f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 258 1 0 "68c565db_e5ed_44e8_b3846a1d98034e76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 259 1 0 "6a4221a8_9488_48f9_8381b1bc0f0c960d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 260 1 0 "45dcb271_e326_42fc_b8684816d3ffdc93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 261 1 0 "14552b13_e77b_4fb7_9020445ecc5ade21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 262 1 0 "91783f87_af6f_446e_a74fb1725f17d282" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 263 1 0 "e2e7f702_1710_49eb_9b1046dbf4f143e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 264 1 0 "1817aa70_86fa_4318_a8e46569701623e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 265 1 0 "50bd6734_10d5_4291_b40eb708539514fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 266 1 0 "ad5fbb01_d809_4b7d_b858ed597709f28f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 267 1 0 "09566247_6b2d_4c73_b43fe303a30f89c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 268 1 0 "3ead74f7_3b5c_4b21_84d2488c2eceab73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 269 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 270 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 271 1 0 "835f8470_7e8c_40ff_a48abcc85d6b778b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 272 1 0 "059394fc_e924_4d57_b1b85f79f9947fa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 273 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 274 1 0 "6c4be3a7_a450_459c_90545a208f9f459f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 275 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 276 1 0 "c164a94e_2926_462e_9487870d403fe8b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 277 1 0 "86c0fb85_8aaf_4bec_9f6f1f642206487f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 278 1 0 "77047add_8050_4522_ad477b97455a8327" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 279 1 0 "5b2c6f23_9a69_489d_b52179c78c03e48f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 280 1 0 "a9a9244b_829f_4c5b_9a64f1018b029453" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn4); // }} "" // {{{ 281 1 0 "781580a9_199e_4373_b48bb55a97f8a463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 282 1 0 "1867ae44_25f8_4926_ae081e490fd5aa0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 283 1 0 "dbb3b30c_b4a1_4cf6_a24b62b63f155369" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 284 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 285 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 286 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 287 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipEject") { // }} "" // {{{ 288 1 0 "7cf9db16_d78c_4aa0_825cc3c2c22f287c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 289 1 0 "ccca7a97_c22a_4f20_b2d9a60d67850eee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 290 1 0 "a319f75e_77eb_4845_856516ce060213f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 291 1 0 "d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); // }} "" // {{ 292 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipEjectToKnownPosition == 0) { // }} "" // {{ 293 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 294 1 0 "24eeb6dd_1e20_422c_a1a8199cbca73b33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 295 1 0 "5197334f_cde5_4d52_9c528a0c4f7401b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 296 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 297 1 0 "110b82e1_8a5b_48e4_a3adbab701cffc8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 298 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 299 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 300 1 0 "fa32bbf8_8345_4897_aaf09d112d374893" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 301 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 302 1 0 "ef087a4e_684e_4d98_87109abf154fbc85" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2); // }} "" // {{{ 303 1 0 "328216cf_22dd_47a1_9f1ba089b1ac7702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn); // }} "" // {{{ 304 1 0 "53265943_7975_4275_ad98df313054f97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2); // }} "" // {{{ 305 1 0 "c13d9773_7daf_4c3c_9064fdd4f7c7008f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 306 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 307 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 308 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 309 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 310 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "loadCarrier") { // }} "" // {{{ 311 1 0 "76d739d0_ff4a_490b_9c47f411d29ef7a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 312 1 0 "ca623aa7_ed48_45fa_9f4055fb8e08c3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); // }} "" // {{{ 313 1 0 "64a8e193_7e7e_412e_8a0657f0e832eaef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); // }} "" // {{{ 314 1 0 "39e6aaef_5cce_4915_b5b6ede214c7371e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs); // }} "" // {{{ 315 1 0 "1d4d284f_fd1e_4f8a_a2158846ad6a67f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Load carrier step return:"), o_stepReturn); // }} "" // {{{ 316 1 0 "358b7fc3_40a2_418b_9d61d94eef1556f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 317 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 318 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 319 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 320 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "unloadCarrier") { // }} "" // {{{ 321 1 0 "797d23a7_c62a_471a_a52b10fea8bcc154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 322 1 0 "f1c35790_adb7_49eb_a96864d8b1d66cea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn); // }} "" // {{{ 323 1 0 "6e6ded71_3f99_46c5_9362117beb502a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn); // }} "" // {{{ 324 1 0 "8713fee4_6b93_4296_a5396254fd404d52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 325 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 326 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 327 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 328 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 329 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripGet") { // }} "" // {{ 330 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 331 1 0 "c4847ae5_e161_4f23_aa432eda22de28bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 332 1 0 "022a5cdd_3f4f_4e18_927c174fc57a68a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 333 1 0 "3e462067_5eb3_49c3_b7bf6a27de9ce3bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 334 1 0 "f7004881_3f0d_4621_a88d55dec8fc0d30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 335 1 0 "262b36ba_6d86_4009_bdc9a3881db7074e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 336 1 0 "be44b37f_7cec_4f69_81c223f2c30b120b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 337 1 0 "3dea3158_65f8_44bc_8d06a31ce3458dab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); // }} "" // {{{ 338 1 0 "308b2aa2_5970_4692_858049c6559d6ad0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 339 1 0 "756d0f81_3645_4a49_a0c2259581e11498" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 340 1 0 "cdbf11ba_b1f8_4016_811240a02705f1fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{{ 341 1 0 "625df597_c6c8_4e4a_b956e9580bfbc568" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); // }} "" // {{{ 342 1 0 "3576d134_8507_4e47_9c2bcc3dce8c026d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 343 1 0 "5b9c06ad_9081_4b6b_97e50cc87623b888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 344 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 345 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 346 1 0 "d1f3c2ac_9c68_4200_a3506bbbed8e42a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 347 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 348 1 0 "f1d1c43b_a9dd_4573_a69dd7c0e79eea40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 349 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 350 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 351 1 0 "4d304110_107e_412e_909bb84008a244de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 352 1 0 "8f8b1ba1_af12_4cdd_acf2096420ede259" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{ 353 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 354 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 355 1 0 "72e31f7d_c091_4525_a5cf7001754b199d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 356 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 357 1 0 "47dfcbb5_d784_48bb_b36b97509434a3a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 358 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 359 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 360 1 0 "e6c53925_446e_468e_b0e0654b4b9d9a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 361 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 362 1 0 "c0cbb194_1b8b_4fe0_a0f706e03eaa0748" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 363 1 0 "46703217_a28e_42ce_b13c11d73ba34bfa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn); // }} "" // {{{ 364 1 0 "189164cc_2681_492f_83f072fb537648b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn); // }} "" // {{{ 365 1 0 "c8d6960a_f416_47b1_a29e2752973c0ec9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 366 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 367 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 368 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 369 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripMove") { // }} "" // {{ 370 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 371 1 0 "5755c338_faa3_4f0a_9acd4cd01a912862" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 372 1 0 "2849c819_a3dc_4328_8484ccc4785993d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{ 373 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 374 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 375 1 0 "e038f780_938f_4867_98f769488ca44b04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 376 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 377 1 0 "27439ab7_df5a_4e1b_99b64e6c9fd0d9f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{{ 378 1 0 "3d8767e5_5f31_4ce5_91a11e28045ec87a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 379 1 0 "e9e0b38e_13aa_40f9_8e470eb1de09eb19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("wrong"), Translate("nowwrongere")); // }} "" // {{ 380 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 381 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 382 1 0 "e2da0756_7cea_44e7_963442343f3c0732" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 383 1 0 "ee8b8050_164a_4de8_b6ce02120236efbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 384 1 0 "be0898fe_cdb8_4ac3_a9e991e26bdb6658" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here"), Translate("now here")); // }} "" // {{ 385 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 386 1 0 "90f602a1_fdc5_48fd_801269ecd2c3f9bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn); // }} "" // {{{ 387 1 0 "dc418b75_2d70_4034_84a767fba752b262" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn); // }} "" // {{{ 388 1 0 "ae4414d3_a939_4fdb_a0ed06f1be1506e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here here"), Translate("nohhere")); // }} "" // {{{ 389 1 0 "6379549c_caf9_409f_b293abf77f1dcfbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 390 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 391 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 392 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 393 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripPlace") { // }} "" // {{ 394 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 395 1 0 "6f38d60b_6dc5_4159_ba30360f264222da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 396 1 0 "b6ef73cf_c89c_41cc_a3b72dc5aaf70f90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 397 1 0 "c7e5f5bd_edcc_4000_9be3db81af0c79fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 398 1 0 "91ff4c39_6a86_4eda_998a5461ef6c3cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 399 1 0 "341a6f8e_b4c8_4966_b9520322d1bc2e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 400 1 0 "32792c80_3b36_4a25_8fff6b99bfcf1919" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); // }} "" // {{{ 401 1 0 "b1e5d86e_c659_4d33_9e0f83fdb20b2cb5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 402 1 0 "76b26748_4e74_45f7_85a7dc102b5fd7b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); // }} "" // {{{ 403 1 0 "ee221e8a_a662_49d8_be2ef0ed631d9527" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 404 1 0 "cbefd54c_5f0a_4a16_a0199198529b71fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 405 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 406 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 407 1 0 "ac4e7090_c3c7_4707_8d98dc55262c294b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 408 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 409 1 0 "eb5776ad_c858_4ee8_ba31f47af19e76af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 410 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 411 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 412 1 0 "1f3eb006_1b10_427e_99d0b530f1afc2ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 413 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 414 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 415 1 0 "a04c5993_bf3e_46c7_92f24c8236636b00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 416 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 417 1 0 "2455f68c_be4e_4a21_9e9e78f78f6e8e3c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 418 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 419 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 420 1 0 "ad5d98b0_9e3d_4275_90ceef06ceca045d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 421 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 422 1 0 "3321537f_63fb_48a4_90e40a2fee1cc432" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 423 1 0 "8c7e60df_f040_45c6_a939d99bcd0ac23c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn); // }} "" // {{{ 424 1 0 "24e589a9_98d7_429d_90c8afe203e96ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn); // }} "" // {{{ 425 1 0 "9d94d038_d071_4339_aaace5a2e455b240" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 426 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 427 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 428 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 429 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 430 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 431 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGet") { // }} "" // {{ 432 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 433 1 0 "4a585a30_3a23_44cc_a0948963de716cba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 434 1 0 "da3a318b_1208_4329_be1faae95ecc2e03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 435 1 0 "1f51589f_347c_497b_a7338461d92076d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 436 1 0 "622e6765_4ee3_4df5_917ca140f8b7981b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 437 1 0 "9826612b_e564_4231_8f83fdfcbd374bdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 438 1 0 "fdb52557_ae6c_42b3_925073ab7ae7a5ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 439 1 0 "171639e0_98ad_4857_a5ac346039499a33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 440 1 0 "0d4077af_b1dc_4dea_a23a163c57d96248" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 441 1 0 "60732b74_8870_48e2_be03564159cf35b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("inverseGrip"), inverseGrip); // }} "" // {{{ 442 1 0 "ffa21840_da03_4682_b62a6910caf63f45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 443 1 0 "0af9b15f_4e1b_4353_a6261def96fea256" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{{ 444 1 0 "c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 445 1 0 "74d93b97_5d7f_4593_9aeb9d83d5466e6f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{{ 446 1 0 "28d636c0_47c0_4fac_8a7b67124fd8b9f5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 447 1 0 "6f62025f_9dde_4ae6_a6b6b69efed6e381" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("tolerance"), tolerance); // }} "" // {{{ 448 1 0 "f3d51abd_651e_4b15_93eb0cea0c0384be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 449 1 0 "1b72eb1e_c220_42e0_9a34675ddc971fe7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{ 450 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 451 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 452 1 0 "fd3fbb06_b08e_4790_8e3b785ca1f8ed4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 453 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 454 1 0 "87331d5f_01ff_43a8_a0a06487f28bb2b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 455 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 456 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 457 1 0 "5f12c00c_48c1_4e2f_a24b4ba435343a8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 458 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 459 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 460 1 0 "d3e5718a_eb78_4c1f_a6467f61ccbe82df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 461 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 462 1 0 "8ebcf09f_a943_4769_b3c659e368019a32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, lidSeq); // }} "" // {{ 463 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 464 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 465 1 0 "8ce5efe3_4525_4c77_bb64f9d8dcfb6a62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 466 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 467 1 0 "8ac111e1_df50_4fcb_b465e737713459d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn); // }} "" // {{{ 468 1 0 "d9104246_d843_4a6d_85a64aa07d019020" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Get - step return :"), o_stepReturn); // }} "" // {{{ 469 1 0 "7831c2d8_4b59_455a_a0dc5cae20f325a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 470 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 471 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 472 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 473 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapMove") { // }} "" // {{ 474 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 475 1 0 "3c315cea_4ff8_4efa_8e4a5cc86a9d84d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 476 1 0 "4e2cf15d_267b_47e0_895c36b714787e13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 477 1 0 "24d68fc9_cd59_471b_9c663c4121d1a931" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{ 478 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 479 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 480 1 0 "d372f898_6d32_4d80_ab4d58340d18681d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 481 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 482 1 0 "9e573132_bd29_4d08_a1784d0e26c48700" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 483 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 484 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 485 1 0 "48db1de6_2a87_4224_b1f13fa2a75b490a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 486 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 487 1 0 "1e8e9562_41c0_4df5_9de945c44d1e8d61" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn); // }} "" // {{{ 488 1 0 "a5de7c97_d49c_4f04_b1414f1aaace7f84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Move - step return :"), o_stepReturn); // }} "" // {{{ 489 1 0 "6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 490 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 491 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 492 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 493 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPlace") { // }} "" // {{ 494 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 495 1 0 "18e9697d_0efb_4840_94a65e2a82b4ca69" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 496 1 0 "b0c35970_122b_4119_92c3801f4b8e980b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 497 1 0 "6ed697af_a110_4104_941633e154ff0071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 498 1 0 "fec1982e_3636_412d_af2eda243438f7ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 499 1 0 "21de27ac_9dc3_415b_b1d1e49e80c53591" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 500 1 0 "652aeaa7_9a2f_4c11_8bc1fc58a97ffed7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 501 1 0 "e88a5df4_d9ad_4231_89a5a03f88d0ce77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 502 1 0 "8c5aee51_3156_4fcc_b1b167552b73476f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 503 1 0 "8c257b39_8c0b_410d_a4a4e38df904008c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 504 1 0 "91e9f4c6_b7fe_4b15_83c830df3385398a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{ 505 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 506 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 507 1 0 "226bb6d1_37a1_4076_9d96fb9df69c6068" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 508 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 509 1 0 "ec2fd48b_eab9_491e_867c0fc335eea81c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 510 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 511 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 512 1 0 "e590d9b6_f690_48db_b0109a10c228d5ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 513 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 514 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 515 1 0 "82559320_1e13_40c9_b283fdfa804df6a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 516 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 517 1 0 "420daa28_bf45_407a_bd576559af75c5d0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 518 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 519 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 520 1 0 "3ed6b704_3649_4c7d_8e7d30bdb038feab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 521 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 522 1 0 "41a130e8_a745_4a20_b124272093bf38e7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn); // }} "" // {{{ 523 1 0 "b4bdf08c_e218_4bec_98c0f41e6ec3a218" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Place - step return :"), o_stepReturn); // }} "" // {{{ 524 1 0 "346b983b_d261_4447_a7cebf782db4b4d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 525 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 526 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 527 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 528 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPark") { // }} "" // {{ 529 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 530 1 0 "73602d5e_7f8d_45dc_9c1f21d41c39d0bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("showCollisionCheckDialog"), showCollisionCheckDialog); // }} "" // {{ 531 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 532 1 0 "acf5767a_7e39_4072_8e062928938984cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{{ 533 1 0 "96b1bdf6_a3f3_4530_844fc77cbf7fb944" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 534 1 0 "d03fdac4_224f_4174_924fb518a623bf65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 535 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 536 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 537 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 538 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGetFirst") { // }} "" // {{ 539 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 540 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 541 1 0 "5f9f4b8d_3b3a_48ee_89ef334a70dcb72e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{ 542 1 0 "65648900_32b3_4035_9eb5916a3314f7e9" "ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}" { variable arrRetValues[]; arrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40("65648900_32b3_4035_9eb5916a3314f7e9"); // GetFirstPlatePosition } // }} "" // {{{ 543 1 0 "63380bb7_5afe_4d65_9dc5cdf334590b4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 544 1 0 "cdb18c48_14d5_430d_9f7202f782e069da" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 545 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 546 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 547 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 548 1 0 "bd4869b9_868e_4752_b0442af8ce334f90" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 549 1 0 "f85c89d5_d370_4d24_b13fe2cee71ee262" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "FirmwareCommand") { // }} "" // {{ 550 1 0 "4d6ccadc_66fe_48ca_913a7e0defd3a766" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 551 1 0 "e1385a03_1302_4ae1_9faaea69422d67f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate("FirmwareCommandList")); // }} "" // {{ 552 1 0 "6fa9115c_4e6b_4fcf_82fc2509f332fbca" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(CommandListElement = 0; CommandListElement < CommandListLength;) { CommandListElement = CommandListElement + 1; // }} "" // {{{ 553 1 0 "5af0317c_390a_4121_92fc6695bd45edd3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate("FirmwareCommandList"), CommandListElement, FirmwareCmdDict); // }} "" // {{{ 554 1 0 "8c9a281c_debc_4f33_9bd2cef6eedde57e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareCommand"), FirmwareCommand); // }} "" // {{{ 555 1 0 "3d50574c_65df_46db_976821037648878c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareParameter"), FirmwareParameter); // }} "" // {{{ 556 1 0 "642f5973_af08_450b_878d55fa1dc15b1c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn); // }} "" // {{{ 557 1 0 "c1b028b1_70dd_4627_a467661067398a2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 558 1 0 "f0c6a22f_59e2_41c2_954cb5b06a43aa42" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 559 1 0 "6fa9115c_4e6b_4fcf_82fc2509f332fbca" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 560 1 0 "4d6ccadc_66fe_48ca_913a7e0defd3a766" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 561 1 0 "f85c89d5_d370_4d24_b13fe2cee71ee262" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 562 1 0 "bd4869b9_868e_4752_b0442af8ce334f90" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 563 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 564 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Initialize") { // }} "" // {{ 565 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 566 1 0 "efe73491_e5b4_499e_9b3f298c8b7a6398" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 567 1 0 "5c0fe710_4afe_4b11_bf186cfe8dc87978" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{ 568 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 569 1 0 "110af9db_52cf_4a40_94724a7476c48d86" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn); // }} "" // {{{ 570 1 0 "af9bf513_7c00_47bf_aee50c7cdb333b5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Initialize: "), o_stepReturn); // }} "" // {{{ 571 1 0 "cf0a8758_8a16_429a_97f320a142945224" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 572 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 573 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StartTempControl") { // }} "" // {{ 574 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 575 1 0 "de87c5cd_92f6_45a8_9ebd6fe71ac65dbc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 576 1 0 "26949b4a_2c44_4548_8de048c4f48bd98d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 577 1 0 "8ae03ef4_8584_4957_a32601dc8599dadf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn); // }} "" // {{{ 578 1 0 "934ba752_5ec3_489b_ae5a40dd1ea20440" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Start Temperature Control:"), o_stepReturn); // }} "" // {{{ 579 1 0 "a3528747_6990_4387_8839b01b71c3b754" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 580 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 581 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 582 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_SetTarget") { // }} "" // {{ 583 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 584 1 0 "55e81697_10a3_42fb_8777236a132ff0b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 585 1 0 "0177c1a2_7380_4683_94ff93e2ed1299b2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 586 1 0 "15559e31_3f7a_4336_9cabca6758b7c253" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("TargetTemperature"), TargetTemperature); // }} "" // {{ 587 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 588 1 0 "0dcffa9d_ea82_418b_be95240c1bfd0d77" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn); // }} "" // {{{ 589 1 0 "e9b0b663_7dd3_4e55_b206572d2c8a92c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Set Target:"), o_stepReturn); // }} "" // {{{ 590 1 0 "08ecb91c_e9c8_4c61_aca2c1f89fd97bab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 591 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 592 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StopTemperatureControl") { // }} "" // {{ 593 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 594 1 0 "b67518d4_e443_4a8f_947e8c457680c63e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 595 1 0 "045fda52_2303_4244_833066fb0005c21b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{ 596 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 597 1 0 "1c8947fe_b7a1_455a_94e7672ad3593b08" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn); // }} "" // {{{ 598 1 0 "285287f8_a3f9_43f0_9799c3ad98e59b9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco Stop Temperature Control:"), o_stepReturn); // }} "" // {{{ 599 1 0 "88d1a80e_0aa9_4314_ba83bc772f71a589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 600 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 601 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Terminate") { // }} "" // {{ 602 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 603 1 0 "c963c353_41bc_4f4a_b74a666b28831950" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("StopAllDevices"), StopAllDevices); // }} "" // {{ 604 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 605 1 0 "ea2ceb94_04fa_4204_96db2caf6871231f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn); // }} "" // {{{ 606 1 0 "cd495cf5_43ff_4b30_b0baa1f2cd96cf0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Terminate:"), o_stepReturn); // }} "" // {{{ 607 1 0 "bcce43cd_2b64_4caf_89bef8978a011dc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 608 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 609 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 610 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 611 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_Initialize") { // }} "" // {{ 612 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 613 1 0 "d824843f_bf44_4e8b_bb434b50a8b65716" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 614 1 0 "45b9f513_7eaf_4e63_ae92391c28cf15b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 615 1 0 "7f058eec_3092_45ce_862c43a3e0853c7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 616 1 0 "56a4490f_902b_4043_8172466a64e332bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Simulate"), Simulate); // }} "" // {{ 617 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 618 1 0 "c44a492c_8123_465b_acd4ff374583777d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn); // }} "" // {{{ 619 1 0 "a62df2e9_44bb_4099_a4d0597fbf0705de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Initialize:"), o_stepReturn); // }} "" // {{{ 620 1 0 "de7bfb5a_b1fa_42ee_b461782a3c381af4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 621 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 622 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_MoveToPosition") { // }} "" // {{ 623 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 624 1 0 "3092ee64_df80_4e56_b3cdffc0827e3c2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 625 1 0 "4284a9cf_3ea6_42f5_ae1f62d82cd11ebe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Angle"), Angle); // }} "" // {{ 626 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 627 1 0 "5b44092b_0faa_47ae_8005717c87a0f334" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn); // }} "" // {{{ 628 1 0 "4d912417_89ed_44f2_941bfb44efed0e2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Move to Position:"), o_stepReturn); // }} "" // {{{ 629 1 0 "0540bb67_399d_468d_853dd6ca4bb1c285" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 630 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 631 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 632 1 0 "b5aacb13_c6f2_416d_a5dc16599dc22df9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 633 1 0 "47226864_6972_4d16_b2ad8a710b8446cb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "moveSequence") { // }} "" // {{{ 634 1 0 "441a15aa_b581_467d_b9fbbf9a122df9d1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("inputSequence"), inputSequence); // }} "" // {{{ 635 1 0 "a7bbaac0_7490_4d32_9befc0abf2f69020" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 636 1 0 "a94a75e5_7837_45a2_b2625523b4fbf752" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 637 1 0 "9e3eb27c_73a6_40ac_8e75350edfaa2c68" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 638 1 0 "40a90a47_9400_4ba4_90d2112b738e055a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, inputSequence, seq); // }} "" // {{{ 639 1 0 "f40721bc_ba84_4790_9b0eafab1f86ae89" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqFirstPosition = SeqGetPositionId(seq); // }} "" // {{{ 640 1 0 "78e0048a_9b5c_41db_bfc483bd893fae4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 641 1 0 "5410a63b_fd35_4eb9_8dea281acd2b00fb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 642 1 0 "6e99c005_b773_4b9c_a028bcf32c47a601" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqSecondPosition = SeqGetPositionId(seq); // }} "" // {{{ 643 1 0 "a0fded0f_3a56_426a_a363a5a1dfa118a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(seqFirstPosition, seqSecondPosition); // }} "" // {{{ 644 1 0 "9455b0fb_03c5_4685_85c22f4d3e970bfb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("First check"), Translate("Second check")); // }} "" // {{{ 645 1 0 "0521c2b3_3cc4_415a_b370ea31976340e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 646 1 0 "47226864_6972_4d16_b2ad8a710b8446cb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 647 1 0 "b5aacb13_c6f2_416d_a5dc16599dc22df9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 648 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 649 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Initialize") { // }} "" // {{{ 650 1 0 "5efffd73_f295_4d3c_aacd37c74d2bc015" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ComPort"), Comport); // }} "" // {{{ 651 1 0 "cc8f22a1_0ae7_40ee_82d2e071b7344cf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn); // }} "" // {{{ 652 1 0 "b6f33534_c173_4c6c_820d96a48fa50a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Barcode initialize:"), o_stepReturn); // }} "" // {{{ 653 1 0 "138ad752_fbd8_457e_948dd436ddb65822" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 654 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 655 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Read") { // }} "" // {{{ 656 1 0 "0b3c261e_a906_4464_b0e5caa3ec640056" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Read(barcode); // }} "" // {{{ 657 1 0 "98aadc47_a5a2_433d_84530ad050155ccd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("BarcodeReader_Read"), barcode); // }} "" // {{{ 658 1 0 "e3fc85ee_a6d7_4d98_a3f9076b947565cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, barcode, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 659 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 660 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 661 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 662 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 663 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_BeginMonitoring") { // }} "" // {{{ 664 1 0 "7dd862dc_f7f1_4600_94ca9b83762673dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 665 1 0 "d37d14e5_261f_418c_81f754eb75bf4920" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingToleranceRange"), shakingToleranceRange); // }} "" // {{{ 666 1 0 "0919ceb3_189a_4885_93c8faeab9f9538b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sampleInterval"), sampleInterval); // }} "" // {{{ 667 1 0 "bc3a749e_e1bb_4c4a_9aac06834d85080f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("action"), action); // }} "" // {{ 668 1 0 "4e026721_fd49_4127_87fda5791fa13eff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 669 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ; err.Clear(); // }} "" // {{{ 670 1 0 "a2a0a3bb_c0cf_4123_afe36d1d51ae233c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action); // }} "" // {{ 671 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3202FD4CC34D478f892F31C7684340BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 672 1 0 "7066bb37_8c48_474d_8f467cf1f1e06a8d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 673 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 674 1 0 "c00b8635_652d_48ca_8d345ed070306b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 675 1 0 "85ac1487_5644_4bae_b032f5c191aa47c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 676 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 677 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 678 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 679 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateStarDevice") { // }} "" // {{{ 680 1 0 "4c3dfdd2_2dd6_4c5f_831f92590c13e82e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 681 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_18D9C44C12554d56B5C39C21EA142EC8 ; err.Clear(); // }} "" // {{{ 682 1 0 "cc3d4234_12d6_486a_a110c8ede0e3059b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber); // }} "" // {{ 683 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_18D9C44C12554d56B5C39C21EA142EC8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 684 1 0 "7f473860_0be7_4dc2_87423136869dd829" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 685 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 686 1 0 "7699b24c_5ec6_4cca_b1cb9aed9ce60247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 687 1 0 "85155966_9554_40cb_9693f9b0a11b25a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return2 (device number):"), deviceNumber); // }} "" // {{{ 688 1 0 "d049e779_0761_471d_9f7b8af0967d1633" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 689 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 690 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 691 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 692 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateUSBDevice") { // }} "" // {{{ 693 1 0 "72f0a762_2550_45ad_bea063f4f72a9fe9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 694 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ; err.Clear(); // }} "" // {{{ 695 1 0 "0cd1cef0_3091_48c3_b63490d3e80a5b45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber); // }} "" // {{ 696 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_98100824AA704d26AB40A6BADEF39F48 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 697 1 0 "53df6909_1d0e_4001_ac674452fec957bc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 698 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 699 1 0 "85d76321_871e_4d0e_bb460b7513742e62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return:"), o_stepReturn); // }} "" // {{{ 700 1 0 "d303212f_1f38_442d_a24eee709cf4cdc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return2 (device number):"), deviceNumber); // }} "" // {{{ 701 1 0 "7356ec1e_8437_4679_94613ac2bea4fe0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 702 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 703 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 704 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 705 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_EndMonitoring") { // }} "" // {{{ 706 1 0 "4293ef15_cfcd_4e29_b9b02afae2d471f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 707 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ; err.Clear(); // }} "" // {{{ 708 1 0 "96f15f32_4117_4a09_85dceac0fa769b43" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult); // }} "" // {{ 709 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 710 1 0 "6ba4b834_521a_46da_9ceb8ced08da95f5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 711 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 712 1 0 "ce89bf49_b865_4c3f_a97eba220b5a7d33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS End Monitoring step return:"), o_stepReturn); // }} "" // {{{ 713 1 0 "05229af2_f20a_42ce_908ec8445f3f9dd2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(""), Translate(""), id); // }} "" // {{ 714 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 715 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 716 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 717 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetFirmwareVersion") { // }} "" // {{{ 718 1 0 "942a1cc2_d956_47fa_9a9ffed1e856a632" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 719 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ; err.Clear(); // }} "" // {{ 720 1 0 "20e2b3e5_8664_4809_9bcf626c89196333" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 721 1 0 "c70f5e07_0eeb_45e5_af26714895e2df88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion); // }} "" // {{ 722 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 723 1 0 "38e3e61d_a654_46f5_87f53cf7dfc09446" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 724 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 725 1 0 "7de3b86c_c16d_4932_beedfb948b5d85f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(""), Translate(""), id); // }} "" // {{ 726 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 727 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 728 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 729 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetSerialNumber") { // }} "" // {{{ 730 1 0 "38b7d0d7_7cce_4157_8abc70dfb62eefa5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 731 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 ; err.Clear(); // }} "" // {{ 732 1 0 "d92781d1_27c2_48fb_acfd9cb32428e910" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 733 1 0 "0bbfb488_9723_4a08_9b90171dbec6117a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber); // }} "" // {{ 734 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 735 1 0 "19daab0c_59b0_4af8_a070bee39acf20c1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 736 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 737 1 0 "311e5a04_1ac3_443c_bdc51c5cdc4c44f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(""), Translate(""), id); // }} "" // {{ 738 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 739 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 740 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 741 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerParameter") { // }} "" // {{{ 742 1 0 "f3888a0b_86ea_4c4a_891e1755a6e78556" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 743 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ; err.Clear(); // }} "" // {{ 744 1 0 "df61bf49_7625_493f_ad06bbdbb36b494a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 745 1 0 "e993ed67_92ed_4c85_bd33f90aac53dfb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3); // }} "" // {{ 746 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 747 1 0 "accda6cd_138b_411c_bf3af9b152e986c8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 748 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 749 1 0 "6efd49bf_48c7_437b_8fee57487345eaee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 750 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 751 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 752 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 753 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerSpeed") { // }} "" // {{{ 754 1 0 "e1c29a26_0656_46e3_b0a412143047bd26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 755 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ; err.Clear(); // }} "" // {{ 756 1 0 "8d513473_33ad_47dc_a8c3ed9799195b58" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 757 1 0 "d7148e56_7fcc_471d_8c3a7abc2847db7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2); // }} "" // {{ 758 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 759 1 0 "ee004b75_f488_428e_99b02212bd478984" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 760 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 761 1 0 "41ba2513_e3c2_485c_821198419c3fe286" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 762 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 763 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 764 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 765 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTempParameter") { // }} "" // {{{ 766 1 0 "09fb30ea_33e9_486d_96945af4798859ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 767 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ; err.Clear(); // }} "" // {{ 768 1 0 "4f9610c2_a783_4586_b1725e8904e476cc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 769 1 0 "eea3f2ce_93c1_4efd_be90b89d775a6867" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 770 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C16E1CF8298042f0A01D1040DC911015 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 771 1 0 "ad6b8668_d455_40f9_9e64eac973c2db0c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 772 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 773 1 0 "81e3038e_a3ea_4252_a09b14cd3de477a3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 774 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 775 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 776 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 777 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperature") { // }} "" // {{{ 778 1 0 "01d1add6_c167_4137_8f0c285cd6ad9bed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 779 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ; err.Clear(); // }} "" // {{ 780 1 0 "a54c8c75_1172_46d3_a61e71fe7fea812d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 781 1 0 "4187d732_0d13_4590_99fa08572e32e2f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2); // }} "" // {{ 782 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_14A2AAD200434d69970AC483BD08B64F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 783 1 0 "e9f473e4_b341_4e28_8c5c444235409181" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 784 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 785 1 0 "234847f1_2f0a_4e64_856b9edefcebb425" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 786 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 787 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 788 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 789 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperatureState") { // }} "" // {{{ 790 1 0 "82a233ab_0392_4ebb_9a809d80aae38e44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 791 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ; err.Clear(); // }} "" // {{ 792 1 0 "19a32be3_7476_425d_a82433aead4637cf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 793 1 0 "7f7e0bd7_bea9_474d_92bce5d21da9a2a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2); // }} "" // {{ 794 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_50485390A50647818ED2D3934FBC87E3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 795 1 0 "81e1a27f_16e2_44ed_b7cd3b11ac866a97" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 796 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 797 1 0 "31a69f44_1a59_49ce_a78763f3aa936042" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 798 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 799 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 800 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 801 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SendFirmwareCommand") { // }} "" // {{{ 802 1 0 "11546c32_6ddd_4250_9b8750c9679e5b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 803 1 0 "06688598_f10e_41e9_8a2c6d3dff7b7aae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), command); // }} "" // {{{ 804 1 0 "15a58509_ec93_4677_b1858cadeac42d10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("parameter"), parameter); // }} "" // {{ 805 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ; err.Clear(); // }} "" // {{ 806 1 0 "84b0a5f3_5e82_4770_81998131d1071a7a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 807 1 0 "b63ba349_9a52_43ca_aec17e40c17d231b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter); // }} "" // {{ 808 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_84EE5E4228B140f599748D1271CBB0F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 809 1 0 "f46c286b_9141_4717_ac23994f8defc186" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 810 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 811 1 0 "8b5634c2_e1da_41d3_83c57142f4cae999" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 812 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 813 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 814 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 815 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetPlateLock") { // }} "" // {{{ 816 1 0 "927ddf67_5dbd_432b_b8cf6117a3109b06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 817 1 0 "a3eee1ac_7024_473b_a6eb8a2e9b461a66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("plateLock"), plateLock); // }} "" // {{ 818 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ; err.Clear(); // }} "" // {{ 819 1 0 "a9029174_cbad_4f9c_9ca65c3b9497d605" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 820 1 0 "27d47e3b_913b_4a0e_bdb50007a0e39d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock); // }} "" // {{ 821 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 822 1 0 "bb948751_9e18_4aa8_b86a3dd67208967f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 823 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 824 1 0 "945560ed_40bf_44a9_851fead4c1943f9f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 825 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 826 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 827 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 828 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetShakerParameter") { // }} "" // {{{ 829 1 0 "8a0e14c1_f6c6_4fb8_94094498cccd7991" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 830 1 0 "1810a83f_3fc2_4c49_9d5502fbdfc743e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingDirection"), shakingDirection); // }} "" // {{{ 831 1 0 "c3053579_8645_474f_8c05459eed975362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingAccRamp"), shakingAccRamp); // }} "" // {{ 832 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ; err.Clear(); // }} "" // {{ 833 1 0 "d7ecab6c_533b_4d98_97e3fd144551f6d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 834 1 0 "77463ac5_e629_4772_98004edef4016a6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp); // }} "" // {{ 835 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 836 1 0 "96075a25_a9b4_48ec_b53a90612b9d42a8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 837 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 838 1 0 "5ed72ec4_1b60_4258_969b44c995450ec1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 839 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 840 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 841 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 842 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetSimulation") { // }} "" // {{{ 843 1 0 "941f9e19_ca94_4ede_9719205aeb876593" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{ 844 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ; err.Clear(); // }} "" // {{ 845 1 0 "c8de89fe_7a53_4c03_bbe8ba85302b57ea" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 846 1 0 "41b0c1a2_60aa_4f16_8901c300e9a3dc14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetSimulation(simulate); // }} "" // {{ 847 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 848 1 0 "b9ad26f0_da3e_44e9_a29e1fa4b10f92f4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 849 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 850 1 0 "2e7a9d5f_51df_4c49_bb1986da7e14cd48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 851 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 852 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 853 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 854 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetTempParameter") { // }} "" // {{{ 855 1 0 "99447b6e_9293_483d_bbd7ddee96870904" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 856 1 0 "f55d7581_a005_45e4_9b3d7f7473323e6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("startTimeout"), startTimeout); // }} "" // {{{ 857 1 0 "7192db12_8543_4c8b_81b98b57ce21118d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("toleranceRange"), toleranceRange); // }} "" // {{{ 858 1 0 "8f6d922f_f2ae_43c6_8682df15e6b7c07c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("securityRange"), securityRange); // }} "" // {{ 859 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ; err.Clear(); // }} "" // {{ 860 1 0 "aecc8a3f_302a_4fd4_85780994769765dc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 861 1 0 "57eb738a_6eb2_4f04_b25bd7f7f64a8179" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange); // }} "" // {{ 862 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 863 1 0 "8a17da2c_6b74_4513_a05e482acef68552" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 864 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 865 1 0 "90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 866 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 867 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 868 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 869 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetUSBTrace") { // }} "" // {{{ 870 1 0 "0691ecbd_49b4_4590_91d60e614290ec34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("trace"), intTrace); // }} "" // {{ 871 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ; err.Clear(); // }} "" // {{ 872 1 0 "96a3924c_7b8c_441f_b05115a7adf0396f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 873 1 0 "24723a79_741b_46be_830fe654c08d6d1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetUSBTrace(intTrace); // }} "" // {{ 874 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FE6D15E135D24fd7A06908E89474B650 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 875 1 0 "29acd4b5_13fb_40fe_bc6d971aa6f115a7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 876 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 877 1 0 "cda0d06f_dce0_47ad_bbb419c58aba260e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 878 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 879 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 880 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 881 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShaker") { // }} "" // {{{ 882 1 0 "503e1c47_5f15_42bd_8eaad1057de68ef6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 883 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ; err.Clear(); // }} "" // {{ 884 1 0 "18981818_de5f_4fd3_b704a074fd37c9d8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 885 1 0 "7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed); // }} "" // {{ 886 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 887 1 0 "6fa8ea83_c7bd_4b3e_81768063f8126364" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 888 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 889 1 0 "ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 890 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 891 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 892 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 893 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShakerTimed") { // }} "" // {{{ 894 1 0 "db6b6c2e_da48_4c64_bdddc80ba5a28921" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 895 1 0 "f6f42906_5ded_4a05_8f9a11fac18f7f10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 896 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ; err.Clear(); // }} "" // {{ 897 1 0 "84efe41c_f9b0_4304_896c8b308bb07e76" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 898 1 0 "428d423d_1825_472f_a3aa303d028d0659" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime); // }} "" // {{ 899 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 900 1 0 "367927ae_ba00_4d5a_b9d8f5f9b3d208c3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 901 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 902 1 0 "d73f1476_bf95_4d48_89849f295a9e4d0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 903 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 904 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 905 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 906 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShaker") { // }} "" // {{{ 907 1 0 "f958f5a5_d1c5_4e9e_9262e708f24940c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 908 1 0 "2ce1189b_e54a_48c0_aafc2932409c0b9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 909 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ; err.Clear(); // }} "" // {{ 910 1 0 "7e6d8299_fab6_4435_8adf36d59ca04c7a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 911 1 0 "5fe75151_d308_441e_a049e85f45ca3966" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShaker(dispenseMode, shakingSpeed); // }} "" // {{ 912 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 913 1 0 "64e95a28_a6b6_4e1b_825867f05118aebc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 914 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 915 1 0 "4b0b48f9_3855_4eab_8f22b0902846d750" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 916 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 917 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 918 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 919 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShakerTimed") { // }} "" // {{{ 920 1 0 "858c7861_9fb0_490e_9646b9eb190706d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 921 1 0 "327bd0c6_60a8_4fd1_9ef81e2a21d904a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 922 1 0 "83a6d58d_c761_484f_871c9c2229a6d3d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 923 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ; err.Clear(); // }} "" // {{ 924 1 0 "08abdac2_e330_47c9_9b80d99dd0338c3d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 925 1 0 "22e55b69_c018_47f9_8e3ac169c190d2de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); // }} "" // {{ 926 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_29447729262E4e0f8B347F6640716D96 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 927 1 0 "a26bca7d_b38c_4413_b61d3da3fdfb077b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 928 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 929 1 0 "f539df09_de1d_4fd8_9ac041897fab0333" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 930 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 931 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 932 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 933 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartTempCtrl") { // }} "" // {{{ 934 1 0 "dc338e01_6b43_4fe3_bda98d2b0a1a65e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 935 1 0 "04239a09_93a5_4f75_80f95d178bdf9cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("temperature"), temperature); // }} "" // {{{ 936 1 0 "0387745b_87be_4ec6_912b0b4decaa257b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("waitForTempReached"), waitForTempReached); // }} "" // {{ 937 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ; err.Clear(); // }} "" // {{ 938 1 0 "0e03f515_b847_4dfd_8aa52f8b5f1135cd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 939 1 0 "4ba75dd5_935f_4f2c_a15605eafa47b808" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached); // }} "" // {{ 940 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_764F491C76DA445383E5490AB126ADB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 941 1 0 "e7b29c37_b63e_40fe_a3663d4eb8c7dc93" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 942 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 943 1 0 "bfde731d_b581_4488_b4cb7f4873675d7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 944 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 945 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 946 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 947 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopAllShaker") { // }} "" // {{ 948 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ; err.Clear(); // }} "" // {{ 949 1 0 "7ca275a0_4aed_4b67_9535646b2074ebaf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 950 1 0 "d112da95_7f27_47a3_9e24bc801bcc9afc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{ 951 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 952 1 0 "e87b7e6f_2610_44dd_b7d0262ac681e308" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 953 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 954 1 0 "5706daca_363f_417f_9103f7ddd16c1444" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 955 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 956 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 957 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 958 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopShaker") { // }} "" // {{{ 959 1 0 "1cdead0d_9944_446b_bd59d491b15242b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 960 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ; err.Clear(); // }} "" // {{ 961 1 0 "d02dc65a_05f9_4938_90df6cee1381d4dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 962 1 0 "75688e3b_5ed1_45d1_a4d8344ca19c3fd3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{ 963 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 964 1 0 "b5ede424_b7f1_4369_8610d54e626df620" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 965 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 966 1 0 "6ffd1f39_ec63_4f9c_a7687447aff79f80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 967 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 968 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 969 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 970 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopTempCtrl") { // }} "" // {{{ 971 1 0 "b16ab946_2ba9_4900_bd6f9ede31edf6ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 972 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B5957B02990845739642D8C604B0B582 ; err.Clear(); // }} "" // {{ 973 1 0 "e22c8ca0_6e3f_454b_8628dd4417a6fd78" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 974 1 0 "3a29dc5b_78cc_4ed1_ab9cd631701715e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber); // }} "" // {{ 975 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B5957B02990845739642D8C604B0B582 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 976 1 0 "c8c0c20e_b866_451e_9ecd69fdb0b0ed14" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 977 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 978 1 0 "11f3231a_40df_4c14_92585ab8016165e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 979 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 980 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 981 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 982 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_Terminate") { // }} "" // {{ 983 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ; err.Clear(); // }} "" // {{ 984 1 0 "e2f732a1_e433_4ab6_b3bdac9a4ca5bd19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 985 1 0 "910932e3_2b76_41cf_9dccecb799f2d649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::Terminate(); // }} "" // {{ 986 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_919FCF7F89804c398972DAFE2605D286 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 987 1 0 "44edbcbd_1012_457f_848d11750abdfeb2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 988 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 989 1 0 "4edde3c1_4f65_4403_a54985d84f6d80f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 990 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 991 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 992 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 993 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForShaker") { // }} "" // {{{ 994 1 0 "87872be5_4e84_4b7b_98a3e7147a66f6a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 995 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ; err.Clear(); // }} "" // {{ 996 1 0 "d5b14e5b_7d51_414e_af4dfb664c89e0c1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 997 1 0 "2eff956e_28cc_4094_8285d5ed00125a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber); // }} "" // {{ 998 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 999 1 0 "d60c31db_3b59_4498_8c47e4d2612443a4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1000 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1001 1 0 "96b99051_5c80_421c_a02e0bd238da1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1002 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1003 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1004 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1005 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForTempCtrl") { // }} "" // {{{ 1006 1 0 "881e7d69_50e3_4e42_89eafece562ac009" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1007 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ; err.Clear(); // }} "" // {{ 1008 1 0 "ffa29d3e_8248_4266_80661c264964da5f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1009 1 0 "421a52eb_128a_4b6b_8baafb6548b66bd8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber); // }} "" // {{ 1010 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_088C7630997A4749A400740DA66CBA0C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1011 1 0 "8a92c1f7_b614_4c09_b5ada70145cb0a7c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1012 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1013 1 0 "aeb529e0_2eaf_4686_9528342b58318a5d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1014 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1015 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1016 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1017 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1018 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1019 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "CORE96WashEmpty") { // }} "" // {{{ 1020 1 0 "88f95bdd_c2c5_4856_91e5f47f7431bdaf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("refillAfterEmpty"), refillAfterEmpty); // }} "" // {{{ 1021 1 0 "d7a05a26_0b59_478a_a85f308173caf693" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1WashLiquid"), chamber1WashLiquid); // }} "" // {{{ 1022 1 0 "8b1bd108_2b5a_4a2d_ace7b87920eae1b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1LiquidChange"), chamber1LiquidChange); // }} "" // {{{ 1023 1 0 "d651fbf5_a4b8_490b_b869269338ccfcfa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2WashLiquid"), chamber2WashLiquid); // }} "" // {{{ 1024 1 0 "79b1a205_d988_4171_9e1fb28ba362329b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2LiquidChange"), chamber2LiquidChange); // }} "" // {{ 1025 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ; err.Clear(); // }} "" // {{ 1026 1 0 "3fc645b3_f504_4b5e_93481425adf459b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1027 1 0 "123d7b87_745f_4511_a797d08711d13361" "ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}" { variable arrRetValues[]; arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3("123d7b87_745f_4511_a797d08711d13361"); // Head96EmptyWasher } // }} "" // {{ 1028 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EE8804FCDC214a06935DD0F4830020DB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1029 1 0 "ab84bcc8_3da0_446b_84689087cc7a392f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1030 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1031 1 0 "dde0a413_b493_4b17_94990d1d5f2e2b2e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1032 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1033 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1034 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1035 1 0 "1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONFromServer); // }} "" // {{ 1036 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1037 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "end") { // }} "" // {{{ 1038 1 0 "6db67a5a_6aa2_4087_875823acfff0fac4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Good Bye!")); // }} "" // {{ 1039 1 0 "4c7e40d6_02a6_451d_b28230ec71e40ce1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1040 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1041 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1042 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1043 1 0 "6fb90145_24c3_46ba_88b839e0215d0bf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{ 2 "AutoExitBlock" "" STAR_OEM_TOOLKIT::_ExitLibrary(); // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=Hamilton$$valid=0$$time=2022-02-22 16:01$$checksum=573fc517$$length=085$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/STAR_OEM_wFan.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" private function ArrayToString( variable & i_array[], variable & o_str ) void ; private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ; private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ; private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ; private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; function SendTextMessageToServer( variable str ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; private function waitForGUItoContinue( ) variable ; function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 1178 1 0 "c8aa765a_4840_468a_9e928b44fa79d891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{{ 5 "OnAbort" "End" } // }} "" // {{{ 5 "SendTextMessageToServer" "Begin" function SendTextMessageToServer( variable str ) void { // }} "" private object objJSONObject; private variable strJSON; // {{ 5 "SendTextMessageToServer" "InitLocals" // }} "" // {{{ 1146 1 0 "9d5f9d4a_c104_4b47_964b6d97f981a71e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONObject); // }} "" // {{{ 1147 1 0 "d0a04705_1adc_4919_b95168834c89f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("command"), Translate("message")); // }} "" // {{{ 1148 1 0 "7b9a6cd1_3eee_4085_b3f9548e43fc3424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("text"), str); // }} "" // {{{ 1149 1 0 "6a1c53cf_65ea_4f53_aa2e9111890fecf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONObject, strJSON); // }} "" // {{{ 1150 1 0 "bee8c148_b3ea_490b_8d93d8ed5f24939f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONObject); // }} "" // {{{ 1151 1 0 "b965a2fd_f821_4400_b4c777f558ed0772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendTextMessageToServer" "End" } // }} "" // {{{ 5 "waitForGUItoContinue" "Begin" private function waitForGUItoContinue( ) variable { // }} "" private variable loopCounter1; private variable serverResponse; private timer timer1; // {{ 5 "waitForGUItoContinue" "InitLocals" // }} "" // {{ 1159 1 0 "73328607_d06a_4d7d_8a5df64da06a1bde" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" serverResponse = Translate(""); // }} "" // {{{ 1160 1 0 "2342f8b3_4765_4edc_9fb9f46cbb1fd20b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Waiting for server instructions...")); // }} "" // {{{ 1161 1 0 "216e1039_788e_4830_8588933e6c542ba1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Waiting for server instructions...."), Translate("")); // }} "" // {{ 1162 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounter1 = 0; while (1 == 1) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1163 1 0 "5f15547c_3178_4f78_b5fea96f6a1c563b" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.1) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1164 1 0 "cd67277b_4386_4862_8429008a00601693" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 1165 1 0 "6ec592d0_fe02_41a9_8503db5ccf0e5544" "{C1F3C015-47B3-4514-9407-AC2E65043419}" serverResponse = HSLHttp::HttpGET(objHttp, Translate("http://localhost:3221"), Translate("")); // }} "" // {{ 1166 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (serverResponse != "") { // }} "" // {{ 1167 1 0 "b1e2e308_ee78_46d0_8a6832649536045e" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1168 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1169 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 == 300) { // }} "" // {{ 1170 1 0 "19e5c8f7_a1a9_4348_aa41a572942db630" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1171 1 0 "6be46368_bb3e_4ad8_82647d6f52af8c9b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1172 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1173 1 0 "8951a436_faf4_45df_a268dbb7ddb58c29" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.9) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1174 1 0 "52bb524e_27b1_4bbe_afcf26453d9eb66f" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1175 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1176 1 0 "809789b0_bd70_4c1f_b0d808ce120b1d99" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (serverResponse); // }} "" // {{{ 5 "waitForGUItoContinue" "End" } // }} "" // {{{ 5 "SendStepReturnToServer" "Begin" private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer" "InitLocals" // }} "" // {{{ 1134 1 0 "2520bd9f_739d_4111_a27d89f8f73ec39e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 1135 1 0 "aa6010ec_0628_49d5_a87e016b4a4fc7f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 1136 1 0 "a97c5efa_0ce4_4358_9c51c1893f526b9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 1137 1 0 "deceb871_e830_4b14_86e626f745ef083a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 1138 1 0 "00afb5c2_b5db_4458_866a13b6cb332b68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 1139 1 0 "e52bbd02_b31d_4278_a0f45991eab77d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 1140 1 0 "19f99698_3777_4dcf_9fc765c3f221df4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 1141 1 0 "329f8b9b_0798_44f8_9ee6b65ec58b0c44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 1142 1 0 "7728ac0d_8630_4f61_94af076392758ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 1143 1 0 "70d261f2_edc4_49a0_a5a074cd5ab92b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 1144 1 0 "ee0dd62d_582f_4171_b08e37f6106d9b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer" "End" } // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "Begin" private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void { // }} "" private variable n; private variable loopCounter1; private variable strSinglePosition; private variable arrayOfPositions[]; private variable arraySinglePosition[]; private variable labwareID; private variable positionID; // {{ 5 "BuildTempSequenceFromPositions" "InitLocals" { sequence __temp; o_seq = __temp; } // }} "" // {{ 1081 1 0 "d9022e13_e502_4969_a8ee79484e990801" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arrayOfPositions.SetSize(0); // }} "" // {{{ 1082 1 0 "3e178082_8579_435f_a5db4481bb789d9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strPositions, Translate(";"), arrayOfPositions, 0); // }} "" // {{ 1083 1 0 "5d735f26_db1b_4bea_9ee405f4167bb99f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" n=arrayOfPositions.GetSize(); // }} "" // {{{ 1084 1 0 "f497f24b_fd39_417d_8703c0d54662309f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq); // }} "" // {{ 1085 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1086 1 0 "fd645546_0433_46a0_8619026e338529fd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arraySinglePosition.SetSize(0); // }} "" // {{ 1087 1 0 "91aeb0c4_3176_4356_a19a1027bcdb0af3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1); // }} "" // {{{ 1088 1 0 "c2b42369_7829_4c62_b58880fce7867995" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strSinglePosition, Translate(","), arraySinglePosition, 0); // }} "" // {{ 1089 1 0 "016f61c5_fd76_4c74_903df10a03070f7b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" labwareID=arraySinglePosition.GetAt(1-1); // }} "" // {{ 1090 1 0 "886fc872_7c3a_4366_959db6d5f265ed7c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" positionID=arraySinglePosition.GetAt(2-1); // }} "" // {{{ 1091 1 0 "766a54b4_4c5b_4991_9d8ceea62d26b216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq, labwareID, positionID); // }} "" // {{ 1092 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1093 1 0 "0003c6e9_5b43_438d_bc93be342c3c6b55" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq.SetCurrentPosition(1); // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "End" } // }} "" // {{{ 5 "StrTokenize" "Begin" private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 1153 1 0 "500afe4c_98a8_4117_8c279b9994d0b626" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 1154 1 0 "6a0bd918_2fda_4e4c_a680454ce2576168" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 1155 1 0 "f65ed315_68ed_4ec0_ba0b3c217e692b25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 1156 1 0 "9476acee_e5bb_43d1_bbec232ed01bae08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); // Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "Begin" private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void { // }} "" private variable numOfVolumes; private variable numOfChannelsInVariable; private variable n; private variable loopCounter1; private variable arrSize; private variable loopCounter3; private variable strKeyName; // {{ 5 "BuildArrayOfVolumesForChannels" "InitLocals" o_arrayOfVolumes.SetSize( 0); // }} "" // {{ 1055 1 0 "69288f91_eabd_4d15_af5361636ffacbf6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyName = Translate("volumes"); // }} "" // {{ 1056 1 0 "bf4c1108_6751_41ee_8d3d3b1a9418548f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfVolumes.SetSize(0); // }} "" // {{{ 1057 1 0 "a9cfa743_a769_46a3_b8d7e45a67b3d297" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName); // }} "" // {{ 1058 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arrSize > 0) { // }} "" // {{ 1059 1 0 "594bebbb_0d54_4893_b20d783de743dd44" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1060 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < arrSize;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{{ 1061 1 0 "3bfc9004_2595_4917_b4edcdceed06f518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); // }} "" // {{ 1062 1 0 "6be31b23_f55d_4d15_be6abc9ee4bef664" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" Trace("Volume received=", v); // {{ 1064 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1065 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1066 1 0 "4a4891b3_f877_4b14_85196b7e820554b2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1067 1 0 "22c7c768_33c4_4975_909e9586375bfe8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(strKeyName, v); // }} "" // {{ 1068 1 0 "4e01e62a_13a2_408e_9fbfb2300d5996ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 1069 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1070 1 0 "cc565f65_a92a_43ef_9c052b7f5632aca5" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" numOfVolumes=o_arrayOfVolumes.GetSize(); // }} "" // {{{ 1071 1 0 "e49355fb_3fe6_4c8d_930870416e36b708" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numOfChannelsInVariable = StrGetLength(strChannels); // }} "" // {{ 1072 1 0 "804bc477_e950_4a14_af5f667c73cf5176" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1073 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (numOfVolumes < numOfChannelsInVariable) { // }} "" // {{ 1074 1 0 "2e73355c_8b11_4423_b345807cae9d5db8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" n = numOfChannelsInVariable - numOfVolumes; // }} "" // {{ 1075 1 0 "53a650d8_2fc1_4c5b_bd19eda433c2a81a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" v = o_arrayOfVolumes.ElementAt( numOfVolumes -1); // }} "" // {{ 1076 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1077 1 0 "cd047b15_6a02_40f1_adfb116f6bf5d763" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 1078 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1079 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "End" } // }} "" // {{{ 5 "ArrayToString" "Begin" private function ArrayToString( variable & i_array[], variable & o_str ) void { // }} "" private variable arraySize; private variable loopCounter1; // {{ 5 "ArrayToString" "InitLocals" o_str = 0; // }} "" // {{ 1045 1 0 "1a220255_6ba4_40fb_be39a6a2f4e0065f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 1046 1 0 "f821c4ff_f1a2_4ad7_9bd77dd8652567cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str = Translate(""); // }} "" // {{ 1047 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1048 1 0 "afd84a84_8330_46e7_8308e16b5caa05e9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" v=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 1049 1 0 "77436fd3_3c87_4f09_9a89259b15ef5bf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, v); // }} "" // {{ 1050 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 < arraySize) { // }} "" // {{{ 1051 1 0 "d14fd31e_5de8_46f9_bb359f38de9a08ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, Translate(";")); // }} "" // {{ 1052 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1053 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "ArrayToString" "End" } // }} "" // {{{ 5 "JSON_GetFloatValue" "Begin" private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void { // }} "" private variable retVal; // {{ 5 "JSON_GetFloatValue" "InitLocals" o_KeyFloatValue = 0; // }} "" Trace("getfloatvalue"); // {{{ 1096 1 0 "8f2f8625_6c9e_4c47_b4698d29df60004a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" // {{ 1097 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("error getting float value, try with integer"); // {{ 1099 1 0 "5a74df81_6685_4703_8b055144f8d74d45" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1100 1 0 "47bb8c98_9624_40ad_b765abfc6b0d0b49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" Trace("error getting float value, tried with integer"); // {{ 1102 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("wtf ok i guess its zero"); // {{ 1104 1 0 "5b8a3ec6_8ee4_4887_ab7df29fa494cdc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_KeyFloatValue = 0; // }} "" // {{ 1105 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1106 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "JSON_GetFloatValue" "End" } // }} "" // {{{ 5 "SendHHSReturnToServer" "Begin" private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; private variable t_arrayStepReturns[]; private variable loopCounter1; private variable keyName; private variable varType; // {{ 5 "SendHHSReturnToServer" "InitLocals" // }} "" // {{{ 1108 1 0 "6db3f932_ba70_4cf6_9c2a8636580fc754" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 1109 1 0 "3cf8a985_83cc_418e_99293de9d9945d5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("HHS-return")); // }} "" // {{{ 1110 1 0 "705c25bc_6db4_4eb9_b05b33999e110198" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{ 1111 1 0 "5a9efc02_a11a_4c0c_b166e3b28800cc6c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" t_arrayStepReturns.SetSize(0); // }} "" // {{ 1112 1 0 "5aa4f3a8_774f_4f35_ae7fa197ef920048" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn1); // }} "" // {{ 1113 1 0 "00ac351d_bc51_41e5_b300af93d6893fa5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn2); // }} "" // {{ 1114 1 0 "2aaf8702_2d08_48ee_be96815ca77463c9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn3); // }} "" // {{ 1115 1 0 "67fcb56e_9f42_4739_a5ee322f12443a17" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn4); // }} "" // {{ 1116 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < 4;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 1117 1 0 "a23ae2ed_5b02_41a0_a69215d0b80fde4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" keyName = StrConcat2(Translate("step-return"), loopCounter1); // }} "" // {{{ 1118 1 0 "9b92ac94_8c71_4b77_95ac0c691427c4bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" varType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1119 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "s") { // }} "" // {{{ 1120 1 0 "1497ea6a_46ab_4ee8_b7951f24b533e644" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1121 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1122 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "f") { // }} "" // {{{ 1123 1 0 "61772f9e_fea3_4011_bba06b7fe66e8b0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1124 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1125 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "i") { // }} "" // {{{ 1126 1 0 "28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1127 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1128 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1129 1 0 "0a0447b8_96fb_495a_90dfa8f1e2c488ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 1130 1 0 "b2a13d10_b443_4fc0_aa0baa2a23cddafe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 1131 1 0 "0adf40b4_5c73_46d8_8e6042c6dfd32d86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 1132 1 0 "5a5dabeb_e3ed_4730_ab86839e00f75077" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendHHSReturnToServer" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=Hamilton$$valid=0$$time=2022-02-22 16:01$$checksum=5de09258$$length=087$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/testWasher.hsl ================================================ #include "Demo Methods\\BMG Reader Test.res" global device ML_STAR ("Demo Methods\\BMG Reader Test.lay", "ML_STAR", hslTrue); global device HxFan ("Demo Methods\\BMG Reader Test.lay", "HxFan", hslTrue); /* {{ 2 "LibraryInsertLine" "" */ // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLPTLLib.hsl" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" PTL::SetWashingStateDefault("RinseTime1", 5); PTL::SetWashingStateDefault("SoakTime1", 5); PTL::SetWashingStateDefault("FlowRate1", 11); PTL::SetWashingStateDefault("RinseTime2", 0); PTL::SetWashingStateDefault("SoakTime2", 0); PTL::SetWashingStateDefault("FlowRate2", 11); PTL::SetWashingStateDefault("DrainingTime", 10); PTL::SetWashingStateDefault("StartWashLiquid", 0); PTL::SetLoadingStateDefault("RecoveryOptionContinue", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionExclude", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionDefault", 0); PTL::SetLoadingStateDefault("KitLotCheckEnabled", hslFalse); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{ 1 1 0 "86aa3f41_f93c_45f5_9800c006eb699fcb" "ML_STAR:{1C0C0CB0-7C87-11D3-AD83-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1C0C0CB0_7C87_11D3_AD83_0004ACB1DCB2("86aa3f41_f93c_45f5_9800c006eb699fcb"); // Initialize } // }} "" // {{ 2 1 0 "9fe707ef_770d_4316_a1478e7beaf62f57" "ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}" { variable arrRetValues[]; arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3("9fe707ef_770d_4316_a1478e7beaf62f57"); // Head96EmptyWasher } // }} "" // {{ 2 "AutoExitBlock" "" // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=Hamilton$$valid=0$$time=2018-06-04 10:33$$checksum=2bc9847f$$length=087$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/testWasher.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 5 "OnAbort" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=Hamilton$$valid=0$$time=2018-06-04 10:33$$checksum=c334ce46$$length=087$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx1C7B.hsl ================================================ namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HslHamHeaterShakerLib.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } #include "STAR_OEM_Test.res" namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "SchedulingDev\\HSLAppsLib.hsl" } namespace _Method { #include "STAR_OEM_toolkit_pH.hs_" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" } namespace _Method { #include "STAR_OEM_ODTC.hs_" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Module.hsl" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Washer Module.hsl" } namespace _Method { #include "Inheco ODTC\\Inheco ODTC.hsl" } namespace _Method { #include "Hamilton MPE2\\HSLMPELib.hsl" } /* {{ 2 "LibraryInsertLine" "" */ // }} "" variable loopCounterMain; variable msg; object objJSONFromServer; variable commandFromServer; variable initializeAlways; variable o_stepReturn; object objJSONToServer; sequence seq; variable tipSequence; variable sequenceCounting; variable channelVariable; variable channelUse; variable labwarePositions; variable aspirateSequence; variable v; variable arrayOfVolumes[]; variable liquidClass; variable aspirateMode; variable capacitiveLLD; variable pressureLLD; variable liquidFollowing; variable submergeDepth; variable liquidHeight; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable airTransportRetractDist; variable touchOff; variable aspPosAboveTouch; variable o_liquidLevels_mm[]; variable o_liquidLevels_mL[]; variable o_stepReturn2; variable o_stepReturn3; variable dispenseMode; variable dispenseSequence; variable dispPositionAboveTouch; variable zMoveAfterStep; variable sideTouch; variable wasteSequence; variable useDefaultWaste; variable reducedPatternMode; variable aspirateVolume; variable o_stepReturn4; variable dispenseVolume; variable tipEjectToKnownPosition; variable carrierName; variable barcodeFileName; variable barcodeReadPositions; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable lidSequence; variable plateSequence; variable toolSequence; variable transportMode; variable widthBefore; variable gripHeight; variable gripWidth; variable gripSpeed; variable gripperToolChannel; variable checkPlate; variable zSpeed; variable gripForce; sequence lidSeq; sequence toolSeq; variable xAcceleration; variable platePressOnDistance; variable ejectToolWhenFinish; object objHttp; variable blnReturn; variable blnSuccess; variable usedNode; variable deviceNumber; variable action; variable sampleInterval; variable shakingToleranceRange; variable id; variable monitorResult; variable firmwareVersion; variable serialNumber; variable command; variable parameter; variable plateLock; variable shakingAccRamp; variable shakingDirection; variable simulate; variable startTimeout; variable toleranceRange; variable securityRange; variable intTrace; variable shakingSpeed; variable shakingTime; variable temperature; variable waitForTempReached; variable inverseGrip; variable liftUpHeight; variable retractDistance; variable tolerance; variable labwareOrientation; variable movementType; variable collisionControl; variable gripMode; variable showCollisionCheckDialog; //global device HxFan ("STAR_OEM_Test.lay", "HxFan", hslTrue); variable refillAfterEmpty; variable chamber1LiquidChange; variable chamber2WashLiquid; variable chamber1WashLiquid; variable chamber2LiquidChange; variable FirmwareCommand; variable FirmwareParameter; variable CommandListElement; variable CommandListLength; object FirmwareCmdDict; variable yDisplacement; variable zDisplacement; variable xDisplacement; variable yOrigin; variable xOrigin; variable zOrigin; variable ControllerID; variable SimulationMode; variable ErrorCode; variable DeviceID; variable TargetTemperature; variable StopAllDevices; variable TraceLevel; variable Comport; variable Simulate; variable ModuleName; variable Angle; variable inputSequence; variable barcode; variable seqFirstPosition; variable seqSecondPosition; global device ML_STAR ("STAR_OEM_Test.lay", "ML_STAR", hslTrue); variable ModuleID; variable probePattern; variable pH_probe_1; variable pH_probe_2; variable pH_probe_3; variable pH_probe_4; variable Variance; variable Timeout; variable CalibrationLevel; variable CalibrationValue; variable CalibrationTemperature; variable Precision; variable Temperature; variable ChargeCounter; variable ReplacementDate; variable BatteryCondition; variable ActualCharge; variable MeasurementCounter_Probe_1; variable MeasurementCounter_Probe_2; variable MeasurementCounter_Probe_3; variable MeasurementCounter_Probe_4; variable HardwareNumber; variable Revision; variable SerialNumber; variable PartNumber; variable Selector; variable VoltageData; variable Day; variable Year; variable Month; variable Charge; variable AutoCharge; variable AutoChargeLevel; variable Probe; variable Mode; variable ProbeNumber; variable pHHighValue; variable pHHighVoltage; variable pHLowValue; variable pHLowVoltage; variable CalibrationSlopeRatio; variable CalibrationOffset; variable CalibrationSlope; variable CycleNumber; variable LockID; variable SiLAMessage; variable SiLAReturnValue; variable DeviceIP; variable LocalIP; variable Message; variable DevicePort; variable ProtocolFile; variable ErrorMessage; variable MethodName; variable Priority; variable Duration; variable RequestID; variable Time; variable ActualTemperatures[]; variable ActualTemperatureNames[]; variable str_ActualTemperatureNames; variable str_ActualTemperatures; variable strDeviceID; variable TimeToWait; variable PMSID; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" STAR_OEM_TOOLKIT::_InitLibrary(); STAR_OEM_TOOLKIT_PH::_InitLibrary(); STAR_OEM_ODTC::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{{ 1 1 0 "e7768ad9_4016_4422_bd83f5785d03ceda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnReturn = HSLHttp::Initialize(objHttp); // }} "" // {{ 2 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnReturn != blnSuccess) { // }} "" // {{{ 3 1 0 "62c131b4_44b9_4249_8e0a3205a25b21b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); // }} "" // {{{ 4 1 0 "fb18125e_b294_4554_912c3d447526996e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 5 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 6 1 0 "ee92e29b_e94c_46cf_a67851f3be61c805" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Hi, Im a VENUS method.")); // }} "" // {{ 7 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; // }} "" // {{ 8 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "de417132_351a_4ad8_80c71b1863d4a870" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" commandFromServer = Translate(""); // }} "" // {{ 10 1 0 "d9c97239_3c9d_4992_8fb5820ae5721d90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate(""); // }} "" // {{ 11 1 0 "57da7835_7495_4b16_8b82897289efbd11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn2 = Translate(""); // }} "" // {{ 12 1 0 "cf024fcc_3594_4355_b33f4bd8c8bdfb4e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn3 = Translate(""); // }} "" // {{ 13 1 0 "9ed0b80d_8518_474f_a94d8f843a6158fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn4 = Translate(""); // }} "" // {{ 14 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 15 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 16 1 0 "0257e5d3_7b99_47be_a062950a2b200664" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" msg = waitForGUItoContinue(); // }} "" Trace("JSON received from Server:", msg); // {{{ 18 1 0 "36be63f7_a79c_44a4_b1dc636a536612bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONFromServer); // }} "" // {{{ 19 1 0 "5c2b861d_97f9_4e18_a5fce25e78026299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::ParseJson(objJSONFromServer, msg); // }} "" // {{{ 20 1 0 "562abca5_8891_402a_b8a7c5ba56301a86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); // }} "" // {{{ 21 1 0 "cb002e33_cc71_4a25_890fa8f9f5d982a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("id"), id); // }} "" // {{ 22 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 23 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 24 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "initialize") { // }} "" // {{{ 25 1 0 "773dbb38_0414_403d_b2ff24100c7cf1fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); // }} "" // {{{ 26 1 0 "97af1c08_2914_4f72_b27c685f11b30bb6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); // }} "" // {{{ 27 1 0 "b3ab11e2_0297_446f_9cf37ca7c0c9d19f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Init step return:"), o_stepReturn); // }} "" // {{{ 28 1 0 "57d4e0cd_327e_4cac_8e83a7da6222dda0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 29 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 30 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 31 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 32 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 33 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipPickUp") { // }} "" // {{{ 34 1 0 "53e1cfb5_1fde_491f_bfd878eceda16ba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 35 1 0 "f0e9e31f_d871_4632_bd466e43fc38c771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 36 1 0 "e6311b13_2132_40e0_aff0b5556205c32a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 37 1 0 "cb659ed1_5f0c_41e8_8a060ec0b650c589" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{ 38 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 39 1 0 "6699226b_6c7b_4b79_95b8017162b433b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 40 1 0 "bd13798f_62e7_4dd2_8e91769d48d10fc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 41 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 42 1 0 "ce13caa6_634b_4dec_8a6c3ea74b144e95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 43 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 44 1 0 "29f69958_d99b_455a_93c7b0480bfd1658" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn); // }} "" // {{{ 45 1 0 "732425fd_a199_4354_8479d821ee834e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 46 1 0 "22f00193_1056_456e_a515d156eee56e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 47 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 48 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 49 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 50 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelAspirate") { // }} "" // {{ 51 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 52 1 0 "55ee3109_036b_4acb_8a15175f3316656f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 53 1 0 "a5b3e5ac_4910_4a4a_8e20bdb7f61836e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 54 1 0 "ce04189a_96e4_4bdc_aedc8a68bf64647b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 55 1 0 "882daff3_cc25_4778_aec6a937fc87347c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 56 1 0 "7f7b9f83_5611_4a3b_b5c120689696addb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 57 1 0 "39e464b7_0def_403b_a02f5dd2a358dbd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 58 1 0 "2e2739aa_8eb6_44e0_b887ea00b04acac0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 59 1 0 "9408edd8_3cee_43e0_976b4a6fabf5f4ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 60 1 0 "a2848877_3518_4d1d_95f77c1f313003e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); // }} "" // {{{ 61 1 0 "4b5ce3d0_91f4_4c14_aaf1cad34e0caf60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" Trace("Bookstart"); // {{{ 63 1 0 "12892ce3_3bc6_4165_b3b6ae0eacad20e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" Trace("Bookend"); // {{{ 65 1 0 "15bd5af3_2da1_420b_beb398dc2347a0ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 66 1 0 "4fe61fb4_bb39_4728_96b8c6959f4943ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); // }} "" // {{{ 67 1 0 "ba68c240_2397_4872_949ee1ee984595c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 68 1 0 "baac19fc_9f21_4e8c_b833f2a1ba2433f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 69 1 0 "253130f8_f599_4ef4_9d5a15e2cb89d1eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 70 1 0 "51233931_483f_4deb_a8627b909d6c9116" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 71 1 0 "bf0c65ba_7847_4768_92ebbe8adc6568c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 72 1 0 "30a6715c_b6c6_4d86_b5c02f3da440e309" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 73 1 0 "6eb82b6e_8093_461e_afc712cab07398dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 74 1 0 "3f8b6af1_7872_4a20_92bf2c4507ea9f31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); // }} "" // {{{ 75 1 0 "7dd1b818_5a89_4b03_82734e6f4d7b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{ 76 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 77 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 78 1 0 "cb2b67f0_7384_4a41_831de652f92d4c85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 79 1 0 "29a868b4_7800_4747_b14eaf0f2c10ba40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 80 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 81 1 0 "08f63789_65f1_4e7d_996dc22e8f33d416" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 82 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 83 1 0 "8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 84 1 0 "7cb70e6b_15bb_4380_b62150df065d208f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 85 1 0 "4714958b_0632_4de2_983c7fe9de68df6c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 86 1 0 "bd40f564_16d7_4037_aef8eebfe28a4362" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 87 1 0 "18bf536c_98f4_4345_86a103db4a9b68a1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 88 1 0 "d60cd9aa_083b_4487_8d6218cee02fa4cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 89 1 0 "e86187c0_0d19_453e_be1c5a401d0d5d93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 90 1 0 "d66c2dae_4cc3_4a31_bafe46d1dd63e790" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 91 1 0 "d23f143d_290d_4d0f_b368241a6a9adaed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 92 1 0 "0428e844_3191_4cde_b7f3544f34c833f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 93 1 0 "a7ca006f_941c_4b31_9749313ad9b4e079" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 94 1 0 "8c97ba72_f880_4504_baee8b8db3d13310" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 95 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 96 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 97 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 98 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelDispense") { // }} "" // {{ 99 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 100 1 0 "909bc255_6ca1_4700_bc102ccb34ae5be4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 101 1 0 "fd48dd93_9f42_4df0_9f659e27a5552543" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 102 1 0 "3ff3f492_86a5_40af_a3deabccbab3898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 103 1 0 "3cbb883f_48ae_40fe_afe67da944df94b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 104 1 0 "ab1033bc_1216_450a_9fb60655a1f1a21a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 105 1 0 "0bc1541f_26d5_44d6_8db6ae336fec17bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 106 1 0 "8c10cc29_c05e_4cea_9ed559249651e805" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 107 1 0 "3e0373da_7c7c_46ab_9b77fba19915662e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 108 1 0 "b98fdc49_cdcb_4f3c_81df0b76eafa1411" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 109 1 0 "7458d32a_402a_4215_b52378c78468ec80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 110 1 0 "5e14f2ce_c932_474b_be03f3c043c700e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 111 1 0 "c2010d1d_5a78_4871_a835a6613a1237bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 112 1 0 "d4a6e6a3_0158_45f1_9c359d8e48e01bed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 113 1 0 "011e9828_5413_40c1_80d0c3bdde1c6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 114 1 0 "2d7a4942_b2ce_43a2_8decf49fa0c9576c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 115 1 0 "ad9f0bbf_e495_41c5_898a3be32bb16f2b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 116 1 0 "5c734886_aa50_424c_b89f6894bc37dd8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 117 1 0 "d1bc00cc_4286_4409_b1c49b6350e7e6ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 118 1 0 "b178ce99_db9e_4453_bed28d4ce0457bc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); // }} "" // {{{ 119 1 0 "1b38ad88_3c65_4e58_812f9ed32ce32485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{{ 120 1 0 "f34066f1_63f9_474f_8a9c41e56962dc74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 121 1 0 "6b94916e_355b_4ee9_8eb4f1b49c95fea4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 122 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 123 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 124 1 0 "e962dd26_3672_4418_bd3c40e9929929eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 125 1 0 "6257966a_6b39_41c8_a057a79b8e39cd4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 126 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 127 1 0 "3f230e40_8bd9_4235_b88cd0ca80799661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 128 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 129 1 0 "8d82ff40_d831_430b_97d97c01d2a4474e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 130 1 0 "ac0ad5a7_d00b_46fe_a18f94f8dab3863c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 131 1 0 "b7f86b6c_03a4_4e12_a05e5e8bdc958b75" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 132 1 0 "9bfa8704_2ae0_4a63_83d09fddbacfd336" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 133 1 0 "860b660a_6947_4c88_a2a039bf65040bf5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 134 1 0 "797f0eef_5bb2_4a2e_a178af74f4892bd7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 135 1 0 "2753c24e_c4dc_402d_866b6bc8691ecc1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 136 1 0 "1ac127fd_b830_496f_b4d4b9671137ebff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 137 1 0 "3ee5d751_d3a5_468a_b539c4f0ff22023e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 138 1 0 "b86d492c_446f_4921_97140cfd462ace87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 139 1 0 "e049946d_6322_4b39_9c46a2d0eb345528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 140 1 0 "531432f5_ef8a_416e_8be28a07ae9b0d25" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 141 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 142 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 143 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 144 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipEject") { // }} "" // {{{ 145 1 0 "69be671e_7cdd_48d3_af136435754c1d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 146 1 0 "f3444c0f_4863_4fdd_94a025b682d8a6d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 147 1 0 "12ad2f39_c160_4afc_9f6ffce7e3ddb433" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 148 1 0 "2883bb64_2fe3_47ca_996e11434afc57cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 149 1 0 "10c3b13e_7129_4cfd_b88b29d0bbc31a28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); // }} "" // {{ 150 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (useDefaultWaste == 0) { // }} "" // {{ 151 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 152 1 0 "655bc92f_08a8_4c16_a0276997aec081ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 153 1 0 "a3a0b5ef_85c0_4552_a28b3356d7886eb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 154 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 155 1 0 "efadb8c3_c431_4ed4_a739a951c05ee518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 156 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 157 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 158 1 0 "2dda50b6_7f82_4e8a_a1d203715119213a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 159 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 160 1 0 "7fa61e34_a1f2_4b99_8f6bed13c6ce120f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn); // }} "" // {{{ 161 1 0 "a7db5128_f8e4_4afe_81f46b2cc86e608d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject step return:"), o_stepReturn); // }} "" // {{{ 162 1 0 "683607f4_928f_4cea_b901fe3502404424" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 163 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 164 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 165 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 166 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 167 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 168 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipPickUp") { // }} "" // {{{ 169 1 0 "1f82c33f_a085_47cc_85dbbde3e42a53c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 170 1 0 "9f9fe665_47a2_4a12_961460021d1f09f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 171 1 0 "743960d2_9d0f_4ccf_848662247e3211c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 172 1 0 "b737602c_63e8_4c4c_b47f40cb815914ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); // }} "" // {{ 173 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 174 1 0 "00bd1831_c335_40f5_b706f0ffadbe2890" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 175 1 0 "1f16418c_8fa7_44a5_a6db75dd9a79ee84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 176 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 177 1 0 "b66db4eb_9e79_4c19_909fd8d14d37cba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 178 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 179 1 0 "f3e7cbf6_0242_4463_8d4ed0db4667f7db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2); // }} "" // {{{ 180 1 0 "b080a5c6_324c_4aae_b5899dede6d863f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 181 1 0 "aa5a9c4b_0377_46ce_9b46883db15cbd7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 182 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 183 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 184 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 185 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Aspirate") { // }} "" // {{ 186 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 187 1 0 "373f30c8_ec07_4298_94d6ac75358ab1ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 188 1 0 "ef3ae377_e985_4ef6_93b005aa91c9b2b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 189 1 0 "d8eea65a_6e59_4c32_a47bae09779f9528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 190 1 0 "8eb02312_a070_491c_9758b3cdbdee0cfc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); // }} "" // {{{ 191 1 0 "6eaf8bee_b53f_4f01_87c1380bc345e386" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 192 1 0 "d9923a2f_e7cf_4f3e_81746e378a20baab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 193 1 0 "2c411993_e3fc_4753_9a90308b226078a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 194 1 0 "5d900896_b2b9_442b_b24294b9bbfbdaad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 195 1 0 "21149e9e_21c9_4ddd_93e07b693e3ab3fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 196 1 0 "bcefef03_102b_4887_adad59c2fb7ad551" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 197 1 0 "9665b0a3_35e8_47e9_b14ac1a4818cfa6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 198 1 0 "ff93d28b_afe9_47e7_9b6eb50d6845384f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 199 1 0 "ef43b824_fd38_42d4_9e932904dbf14813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 200 1 0 "b0378457_e370_448b_bfd6955c05e57bcb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{ 201 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 202 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 203 1 0 "615bcff6_e9d5_4303_a5d5826b2e2548dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 204 1 0 "cf4ad428_945e_4921_9441ee34cf9c96bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 205 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 206 1 0 "86397ec2_2ee5_4ec1_8bec47d8e87584b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 207 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 208 1 0 "48f88263_72c1_4df2_865181cffed9feee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 209 1 0 "f1b764e8_e556_4d08_bb83bdc12dc64a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 210 1 0 "164c104a_cf5f_46de_b23a098a18b3fdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 211 1 0 "ee779f77_51a9_46d7_b58b7bcaf13519f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 212 1 0 "e874eb6d_1e97_4590_95d9b10cb059c935" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn4); // }} "" // {{{ 213 1 0 "0ca1df86_a344_45fd_b384e13ba44c5ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 214 1 0 "2497228e_672e_4c95_9f31679fe87bbe1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 215 1 0 "e4930eee_c625_4acb_a81c05e149a1a218" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 216 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 217 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 218 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 219 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Dispense") { // }} "" // {{ 220 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 221 1 0 "78cba921_2a37_4b4a_91ef7fbe81fcddd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 222 1 0 "b58b4cbd_16e9_4444_9037061e29bc5614" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 223 1 0 "0ab910ec_826d_4c84_bac7ed9564f3bdab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 224 1 0 "84d664b7_70d0_4136_bdfd4de2aa760ad8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); // }} "" // {{{ 225 1 0 "18becc6a_2df4_4281_8b16ade9038979f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 226 1 0 "68c565db_e5ed_44e8_b3846a1d98034e76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 227 1 0 "6a4221a8_9488_48f9_8381b1bc0f0c960d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 228 1 0 "45dcb271_e326_42fc_b8684816d3ffdc93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 229 1 0 "14552b13_e77b_4fb7_9020445ecc5ade21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 230 1 0 "91783f87_af6f_446e_a74fb1725f17d282" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 231 1 0 "e2e7f702_1710_49eb_9b1046dbf4f143e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 232 1 0 "1817aa70_86fa_4318_a8e46569701623e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 233 1 0 "50bd6734_10d5_4291_b40eb708539514fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 234 1 0 "ad5fbb01_d809_4b7d_b858ed597709f28f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 235 1 0 "09566247_6b2d_4c73_b43fe303a30f89c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 236 1 0 "3ead74f7_3b5c_4b21_84d2488c2eceab73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 237 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 238 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 239 1 0 "835f8470_7e8c_40ff_a48abcc85d6b778b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 240 1 0 "059394fc_e924_4d57_b1b85f79f9947fa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 241 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 242 1 0 "6c4be3a7_a450_459c_90545a208f9f459f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 243 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 244 1 0 "c164a94e_2926_462e_9487870d403fe8b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 245 1 0 "86c0fb85_8aaf_4bec_9f6f1f642206487f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 246 1 0 "77047add_8050_4522_ad477b97455a8327" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 247 1 0 "5b2c6f23_9a69_489d_b52179c78c03e48f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 248 1 0 "a9a9244b_829f_4c5b_9a64f1018b029453" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn4); // }} "" // {{{ 249 1 0 "781580a9_199e_4373_b48bb55a97f8a463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 250 1 0 "1867ae44_25f8_4926_ae081e490fd5aa0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 251 1 0 "dbb3b30c_b4a1_4cf6_a24b62b63f155369" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 252 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 253 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 254 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 255 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipEject") { // }} "" // {{{ 256 1 0 "7cf9db16_d78c_4aa0_825cc3c2c22f287c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 257 1 0 "ccca7a97_c22a_4f20_b2d9a60d67850eee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 258 1 0 "a319f75e_77eb_4845_856516ce060213f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 259 1 0 "d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); // }} "" // {{ 260 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipEjectToKnownPosition == 0) { // }} "" // {{ 261 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 262 1 0 "24eeb6dd_1e20_422c_a1a8199cbca73b33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 263 1 0 "5197334f_cde5_4d52_9c528a0c4f7401b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 264 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 265 1 0 "110b82e1_8a5b_48e4_a3adbab701cffc8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 266 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 267 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 268 1 0 "fa32bbf8_8345_4897_aaf09d112d374893" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 269 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 270 1 0 "ef087a4e_684e_4d98_87109abf154fbc85" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2); // }} "" // {{{ 271 1 0 "328216cf_22dd_47a1_9f1ba089b1ac7702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn); // }} "" // {{{ 272 1 0 "53265943_7975_4275_ad98df313054f97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2); // }} "" // {{{ 273 1 0 "c13d9773_7daf_4c3c_9064fdd4f7c7008f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 274 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 275 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 276 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 277 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 278 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "loadCarrier") { // }} "" // {{{ 279 1 0 "76d739d0_ff4a_490b_9c47f411d29ef7a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 280 1 0 "ca623aa7_ed48_45fa_9f4055fb8e08c3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); // }} "" // {{{ 281 1 0 "64a8e193_7e7e_412e_8a0657f0e832eaef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); // }} "" // {{{ 282 1 0 "39e6aaef_5cce_4915_b5b6ede214c7371e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs); // }} "" // {{{ 283 1 0 "1d4d284f_fd1e_4f8a_a2158846ad6a67f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Load carrier step return:"), o_stepReturn); // }} "" // {{{ 284 1 0 "358b7fc3_40a2_418b_9d61d94eef1556f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 285 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 286 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 287 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 288 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "unloadCarrier") { // }} "" // {{{ 289 1 0 "797d23a7_c62a_471a_a52b10fea8bcc154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 290 1 0 "f1c35790_adb7_49eb_a96864d8b1d66cea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn); // }} "" // {{{ 291 1 0 "6e6ded71_3f99_46c5_9362117beb502a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn); // }} "" // {{{ 292 1 0 "8713fee4_6b93_4296_a5396254fd404d52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 293 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 294 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 295 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 296 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 297 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripGet") { // }} "" // {{ 298 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 299 1 0 "c4847ae5_e161_4f23_aa432eda22de28bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 300 1 0 "022a5cdd_3f4f_4e18_927c174fc57a68a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 301 1 0 "3e462067_5eb3_49c3_b7bf6a27de9ce3bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 302 1 0 "f7004881_3f0d_4621_a88d55dec8fc0d30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 303 1 0 "262b36ba_6d86_4009_bdc9a3881db7074e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 304 1 0 "be44b37f_7cec_4f69_81c223f2c30b120b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 305 1 0 "3dea3158_65f8_44bc_8d06a31ce3458dab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); // }} "" // {{{ 306 1 0 "308b2aa2_5970_4692_858049c6559d6ad0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 307 1 0 "756d0f81_3645_4a49_a0c2259581e11498" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 308 1 0 "cdbf11ba_b1f8_4016_811240a02705f1fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{{ 309 1 0 "625df597_c6c8_4e4a_b956e9580bfbc568" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); // }} "" // {{{ 310 1 0 "3576d134_8507_4e47_9c2bcc3dce8c026d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 311 1 0 "5b9c06ad_9081_4b6b_97e50cc87623b888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 312 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 313 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 314 1 0 "d1f3c2ac_9c68_4200_a3506bbbed8e42a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 315 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 316 1 0 "f1d1c43b_a9dd_4573_a69dd7c0e79eea40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 317 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 318 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 319 1 0 "4d304110_107e_412e_909bb84008a244de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 320 1 0 "8f8b1ba1_af12_4cdd_acf2096420ede259" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{ 321 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 322 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 323 1 0 "72e31f7d_c091_4525_a5cf7001754b199d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 324 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 325 1 0 "47dfcbb5_d784_48bb_b36b97509434a3a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 326 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 327 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 328 1 0 "e6c53925_446e_468e_b0e0654b4b9d9a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 329 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 330 1 0 "c0cbb194_1b8b_4fe0_a0f706e03eaa0748" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 331 1 0 "46703217_a28e_42ce_b13c11d73ba34bfa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn); // }} "" // {{{ 332 1 0 "189164cc_2681_492f_83f072fb537648b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn); // }} "" // {{{ 333 1 0 "c8d6960a_f416_47b1_a29e2752973c0ec9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 334 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 335 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 336 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 337 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripMove") { // }} "" // {{ 338 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 339 1 0 "5755c338_faa3_4f0a_9acd4cd01a912862" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 340 1 0 "2849c819_a3dc_4328_8484ccc4785993d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 341 1 0 "32f0a8f9_3af2_42a3_90f246cc874e0e8f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 342 1 0 "791b6e1a_07b8_49cb_8122670d0871189f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 343 1 0 "036d0d84_e161_4b03_8b828dcb6b44e437" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{ 344 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 345 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 346 1 0 "e038f780_938f_4867_98f769488ca44b04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 347 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 348 1 0 "6bd2d2a1_1051_4443_a1af9b68df2876b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{{ 349 1 0 "3d8767e5_5f31_4ce5_91a11e28045ec87a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 350 1 0 "e9e0b38e_13aa_40f9_8e470eb1de09eb19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("wrong"), Translate("nowwrongere")); // }} "" // {{ 351 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 352 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 353 1 0 "064a5c1b_f450_44d6_a2042ebde115527d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 354 1 0 "ee8b8050_164a_4de8_b6ce02120236efbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 355 1 0 "be0898fe_cdb8_4ac3_a9e991e26bdb6658" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here"), Translate("now here")); // }} "" // {{ 356 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 357 1 0 "ca4b75ee_26d9_4a3b_8e3366d575348125" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 358 1 0 "ea0afc75_5bc7_4c06_ac73c2f4d5f887a0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 359 1 0 "1965d128_c7f1_4206_87e4ca1ce70c1dff" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 360 1 0 "615cbdd3_e5f2_4bc0_bb3661a2482eb770" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 361 1 0 "86fc0696_8c53_4c05_a9c0eaa58f279054" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 362 1 0 "90f602a1_fdc5_48fd_801269ecd2c3f9bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn); // }} "" // {{{ 363 1 0 "dc418b75_2d70_4034_84a767fba752b262" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn); // }} "" // {{{ 364 1 0 "ae4414d3_a939_4fdb_a0ed06f1be1506e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here here"), Translate("nohhere")); // }} "" // {{{ 365 1 0 "6379549c_caf9_409f_b293abf77f1dcfbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 366 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 367 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 368 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 369 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripPlace") { // }} "" // {{ 370 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 371 1 0 "6f38d60b_6dc5_4159_ba30360f264222da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 372 1 0 "b6ef73cf_c89c_41cc_a3b72dc5aaf70f90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 373 1 0 "c7e5f5bd_edcc_4000_9be3db81af0c79fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 374 1 0 "91ff4c39_6a86_4eda_998a5461ef6c3cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 375 1 0 "341a6f8e_b4c8_4966_b9520322d1bc2e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 376 1 0 "32792c80_3b36_4a25_8fff6b99bfcf1919" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); // }} "" // {{{ 377 1 0 "b1e5d86e_c659_4d33_9e0f83fdb20b2cb5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 378 1 0 "76b26748_4e74_45f7_85a7dc102b5fd7b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); // }} "" // {{{ 379 1 0 "ee221e8a_a662_49d8_be2ef0ed631d9527" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 380 1 0 "cbefd54c_5f0a_4a16_a0199198529b71fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 381 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 382 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 383 1 0 "ac4e7090_c3c7_4707_8d98dc55262c294b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 384 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 385 1 0 "eb5776ad_c858_4ee8_ba31f47af19e76af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 386 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 387 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 388 1 0 "1f3eb006_1b10_427e_99d0b530f1afc2ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 389 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 390 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 391 1 0 "a04c5993_bf3e_46c7_92f24c8236636b00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 392 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 393 1 0 "2455f68c_be4e_4a21_9e9e78f78f6e8e3c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 394 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 395 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 396 1 0 "ad5d98b0_9e3d_4275_90ceef06ceca045d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 397 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 398 1 0 "3321537f_63fb_48a4_90e40a2fee1cc432" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 399 1 0 "8c7e60df_f040_45c6_a939d99bcd0ac23c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn); // }} "" // {{{ 400 1 0 "24e589a9_98d7_429d_90c8afe203e96ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn); // }} "" // {{{ 401 1 0 "9d94d038_d071_4339_aaace5a2e455b240" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 402 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 403 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 404 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 405 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 406 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 407 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGet") { // }} "" // {{ 408 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 409 1 0 "4a585a30_3a23_44cc_a0948963de716cba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 410 1 0 "da3a318b_1208_4329_be1faae95ecc2e03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 411 1 0 "1f51589f_347c_497b_a7338461d92076d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 412 1 0 "622e6765_4ee3_4df5_917ca140f8b7981b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 413 1 0 "9826612b_e564_4231_8f83fdfcbd374bdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 414 1 0 "fdb52557_ae6c_42b3_925073ab7ae7a5ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 415 1 0 "171639e0_98ad_4857_a5ac346039499a33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 416 1 0 "0d4077af_b1dc_4dea_a23a163c57d96248" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 417 1 0 "60732b74_8870_48e2_be03564159cf35b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("inverseGrip"), inverseGrip); // }} "" // {{{ 418 1 0 "ffa21840_da03_4682_b62a6910caf63f45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 419 1 0 "0af9b15f_4e1b_4353_a6261def96fea256" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{{ 420 1 0 "c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 421 1 0 "74d93b97_5d7f_4593_9aeb9d83d5466e6f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{{ 422 1 0 "28d636c0_47c0_4fac_8a7b67124fd8b9f5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 423 1 0 "6f62025f_9dde_4ae6_a6b6b69efed6e381" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("tolerance"), tolerance); // }} "" // {{{ 424 1 0 "f3d51abd_651e_4b15_93eb0cea0c0384be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 425 1 0 "1b72eb1e_c220_42e0_9a34675ddc971fe7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{ 426 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 427 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 428 1 0 "fd3fbb06_b08e_4790_8e3b785ca1f8ed4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 429 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 430 1 0 "87331d5f_01ff_43a8_a0a06487f28bb2b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 431 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 432 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 433 1 0 "5f12c00c_48c1_4e2f_a24b4ba435343a8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 434 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 435 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 436 1 0 "d3e5718a_eb78_4c1f_a6467f61ccbe82df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 437 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 438 1 0 "8ebcf09f_a943_4769_b3c659e368019a32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, lidSeq); // }} "" // {{ 439 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 440 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 441 1 0 "8ce5efe3_4525_4c77_bb64f9d8dcfb6a62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 442 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 443 1 0 "8ac111e1_df50_4fcb_b465e737713459d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn); // }} "" // {{{ 444 1 0 "d9104246_d843_4a6d_85a64aa07d019020" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Get - step return :"), o_stepReturn); // }} "" // {{{ 445 1 0 "7831c2d8_4b59_455a_a0dc5cae20f325a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 446 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 447 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 448 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 449 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapMove") { // }} "" // {{ 450 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 451 1 0 "3c315cea_4ff8_4efa_8e4a5cc86a9d84d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 452 1 0 "4e2cf15d_267b_47e0_895c36b714787e13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 453 1 0 "24d68fc9_cd59_471b_9c663c4121d1a931" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{ 454 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 455 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 456 1 0 "d372f898_6d32_4d80_ab4d58340d18681d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 457 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 458 1 0 "9e573132_bd29_4d08_a1784d0e26c48700" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 459 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 460 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 461 1 0 "48db1de6_2a87_4224_b1f13fa2a75b490a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 462 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 463 1 0 "1e8e9562_41c0_4df5_9de945c44d1e8d61" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn); // }} "" // {{{ 464 1 0 "a5de7c97_d49c_4f04_b1414f1aaace7f84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Move - step return :"), o_stepReturn); // }} "" // {{{ 465 1 0 "6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 466 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 467 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 468 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 469 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPlace") { // }} "" // {{ 470 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 471 1 0 "18e9697d_0efb_4840_94a65e2a82b4ca69" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 472 1 0 "b0c35970_122b_4119_92c3801f4b8e980b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 473 1 0 "6ed697af_a110_4104_941633e154ff0071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 474 1 0 "fec1982e_3636_412d_af2eda243438f7ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 475 1 0 "21de27ac_9dc3_415b_b1d1e49e80c53591" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 476 1 0 "652aeaa7_9a2f_4c11_8bc1fc58a97ffed7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 477 1 0 "e88a5df4_d9ad_4231_89a5a03f88d0ce77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 478 1 0 "8c5aee51_3156_4fcc_b1b167552b73476f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 479 1 0 "8c257b39_8c0b_410d_a4a4e38df904008c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 480 1 0 "91e9f4c6_b7fe_4b15_83c830df3385398a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{ 481 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 482 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 483 1 0 "226bb6d1_37a1_4076_9d96fb9df69c6068" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 484 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 485 1 0 "ec2fd48b_eab9_491e_867c0fc335eea81c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 486 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 487 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 488 1 0 "e590d9b6_f690_48db_b0109a10c228d5ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 489 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 490 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 491 1 0 "82559320_1e13_40c9_b283fdfa804df6a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 492 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 493 1 0 "420daa28_bf45_407a_bd576559af75c5d0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 494 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 495 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 496 1 0 "3ed6b704_3649_4c7d_8e7d30bdb038feab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 497 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 498 1 0 "41a130e8_a745_4a20_b124272093bf38e7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn); // }} "" // {{{ 499 1 0 "b4bdf08c_e218_4bec_98c0f41e6ec3a218" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Place - step return :"), o_stepReturn); // }} "" // {{{ 500 1 0 "346b983b_d261_4447_a7cebf782db4b4d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 501 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 502 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 503 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 504 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPark") { // }} "" // {{ 505 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 506 1 0 "73602d5e_7f8d_45dc_9c1f21d41c39d0bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("showCollisionCheckDialog"), showCollisionCheckDialog); // }} "" // {{ 507 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 508 1 0 "acf5767a_7e39_4072_8e062928938984cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{{ 509 1 0 "96b1bdf6_a3f3_4530_844fc77cbf7fb944" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 510 1 0 "d03fdac4_224f_4174_924fb518a623bf65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 511 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 512 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 513 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 514 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGetFirst") { // }} "" // {{ 515 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 516 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 517 1 0 "5f9f4b8d_3b3a_48ee_89ef334a70dcb72e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{ 518 1 0 "65648900_32b3_4035_9eb5916a3314f7e9" "ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}" { variable arrRetValues[]; arrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40("65648900_32b3_4035_9eb5916a3314f7e9"); // GetFirstPlatePosition } // }} "" // {{{ 519 1 0 "63380bb7_5afe_4d65_9dc5cdf334590b4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 520 1 0 "cdb18c48_14d5_430d_9f7202f782e069da" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 521 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 522 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 523 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 524 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 525 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "FirmwareCommand") { // }} "" // {{ 526 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 527 1 0 "5f5e5c89_0c1a_497b_80c550dbc4676208" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate("FirmwareCommandList")); // }} "" // {{ 528 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(CommandListElement = 0; CommandListElement < CommandListLength;) { CommandListElement = CommandListElement + 1; // }} "" // {{{ 529 1 0 "2c2e9953_5968_4384_8b2dad24b0960278" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate("FirmwareCommandList"), CommandListElement, FirmwareCmdDict); // }} "" // {{{ 530 1 0 "7f4d5cda_c10f_4317_ba7613cd10d2e90d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareCommand"), FirmwareCommand); // }} "" // {{{ 531 1 0 "cf155262_dfb4_46b4_aff762c7b4c18d8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareParameter"), FirmwareParameter); // }} "" // {{{ 532 1 0 "471df283_02f5_4daf_9c83999e3b1fd8e1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn); // }} "" // {{{ 533 1 0 "0b8e6d49_655f_42a7_bcfdeac76a40c6e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 534 1 0 "f49f31b3_d742_44ae_a6a076108c3f9ab4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 535 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 536 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 537 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 538 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 539 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 540 1 0 "fc551e3b_1f4d_4d8d_8fed3ee38abdebdc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Initialize") { // }} "" // {{ 541 1 0 "4d6ccadc_66fe_48ca_913a7e0defd3a766" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 542 1 0 "e1385a03_1302_4ae1_9faaea69422d67f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate("FirmwareCommandList")); // }} "" // {{ 543 1 0 "6fa9115c_4e6b_4fcf_82fc2509f332fbca" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(CommandListElement = 0; CommandListElement < CommandListLength;) { CommandListElement = CommandListElement + 1; // }} "" // {{{ 544 1 0 "5af0317c_390a_4121_92fc6695bd45edd3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate("FirmwareCommandList"), CommandListElement, FirmwareCmdDict); // }} "" // {{{ 545 1 0 "8c9a281c_debc_4f33_9bd2cef6eedde57e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareCommand"), FirmwareCommand); // }} "" // {{{ 546 1 0 "3d50574c_65df_46db_976821037648878c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareParameter"), FirmwareParameter); // }} "" // {{{ 547 1 0 "642f5973_af08_450b_878d55fa1dc15b1c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn); // }} "" // {{{ 548 1 0 "c1b028b1_70dd_4627_a467661067398a2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 549 1 0 "f0c6a22f_59e2_41c2_954cb5b06a43aa42" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 550 1 0 "6fa9115c_4e6b_4fcf_82fc2509f332fbca" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 551 1 0 "4d6ccadc_66fe_48ca_913a7e0defd3a766" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 552 1 0 "fc551e3b_1f4d_4d8d_8fed3ee38abdebdc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 553 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 554 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 555 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Initialize") { // }} "" // {{ 556 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 557 1 0 "efe73491_e5b4_499e_9b3f298c8b7a6398" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 558 1 0 "5c0fe710_4afe_4b11_bf186cfe8dc87978" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{ 559 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 560 1 0 "110af9db_52cf_4a40_94724a7476c48d86" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn); // }} "" // {{{ 561 1 0 "af9bf513_7c00_47bf_aee50c7cdb333b5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Initialize: "), o_stepReturn); // }} "" // {{{ 562 1 0 "cf0a8758_8a16_429a_97f320a142945224" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 563 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 564 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StartTempControl") { // }} "" // {{ 565 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 566 1 0 "de87c5cd_92f6_45a8_9ebd6fe71ac65dbc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 567 1 0 "26949b4a_2c44_4548_8de048c4f48bd98d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 568 1 0 "8ae03ef4_8584_4957_a32601dc8599dadf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn); // }} "" // {{{ 569 1 0 "934ba752_5ec3_489b_ae5a40dd1ea20440" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Start Temperature Control:"), o_stepReturn); // }} "" // {{{ 570 1 0 "a3528747_6990_4387_8839b01b71c3b754" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 571 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 572 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 573 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_SetTarget") { // }} "" // {{ 574 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 575 1 0 "55e81697_10a3_42fb_8777236a132ff0b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 576 1 0 "0177c1a2_7380_4683_94ff93e2ed1299b2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 577 1 0 "15559e31_3f7a_4336_9cabca6758b7c253" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("TargetTemperature"), TargetTemperature); // }} "" // {{ 578 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 579 1 0 "0dcffa9d_ea82_418b_be95240c1bfd0d77" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn); // }} "" // {{{ 580 1 0 "e9b0b663_7dd3_4e55_b206572d2c8a92c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Set Target:"), o_stepReturn); // }} "" // {{{ 581 1 0 "08ecb91c_e9c8_4c61_aca2c1f89fd97bab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 582 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 583 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StopTemperatureControl") { // }} "" // {{ 584 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 585 1 0 "b67518d4_e443_4a8f_947e8c457680c63e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 586 1 0 "045fda52_2303_4244_833066fb0005c21b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{ 587 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 588 1 0 "1c8947fe_b7a1_455a_94e7672ad3593b08" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn); // }} "" // {{{ 589 1 0 "285287f8_a3f9_43f0_9799c3ad98e59b9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco Stop Temperature Control:"), o_stepReturn); // }} "" // {{{ 590 1 0 "88d1a80e_0aa9_4314_ba83bc772f71a589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 591 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 592 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Terminate") { // }} "" // {{ 593 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 594 1 0 "c963c353_41bc_4f4a_b74a666b28831950" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("StopAllDevices"), StopAllDevices); // }} "" // {{ 595 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 596 1 0 "ea2ceb94_04fa_4204_96db2caf6871231f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn); // }} "" // {{{ 597 1 0 "cd495cf5_43ff_4b30_b0baa1f2cd96cf0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Terminate:"), o_stepReturn); // }} "" // {{{ 598 1 0 "bcce43cd_2b64_4caf_89bef8978a011dc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 599 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 600 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 601 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 602 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_Initialize") { // }} "" // {{ 603 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 604 1 0 "d824843f_bf44_4e8b_bb434b50a8b65716" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 605 1 0 "45b9f513_7eaf_4e63_ae92391c28cf15b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 606 1 0 "7f058eec_3092_45ce_862c43a3e0853c7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 607 1 0 "56a4490f_902b_4043_8172466a64e332bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Simulate"), Simulate); // }} "" // {{ 608 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 609 1 0 "c44a492c_8123_465b_acd4ff374583777d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn); // }} "" // {{{ 610 1 0 "a62df2e9_44bb_4099_a4d0597fbf0705de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Initialize:"), o_stepReturn); // }} "" // {{{ 611 1 0 "de7bfb5a_b1fa_42ee_b461782a3c381af4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 612 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 613 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_MoveToPosition") { // }} "" // {{ 614 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 615 1 0 "3092ee64_df80_4e56_b3cdffc0827e3c2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 616 1 0 "4284a9cf_3ea6_42f5_ae1f62d82cd11ebe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Angle"), Angle); // }} "" // {{ 617 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 618 1 0 "5b44092b_0faa_47ae_8005717c87a0f334" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn); // }} "" // {{{ 619 1 0 "4d912417_89ed_44f2_941bfb44efed0e2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Move to Position:"), o_stepReturn); // }} "" // {{{ 620 1 0 "0540bb67_399d_468d_853dd6ca4bb1c285" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 621 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 622 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 623 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 624 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "moveSequence") { // }} "" // {{{ 625 1 0 "6e83eea3_8863_4ca0_9ff603380f0dc4d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("inputSequence"), inputSequence); // }} "" // {{{ 626 1 0 "6b8903c6_6977_458a_8409f93724089454" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 627 1 0 "77d9a84d_5987_4b3c_a76757ce15a19302" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 628 1 0 "13c73535_4a98_49e2_ba1a02c30f02035b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 629 1 0 "a33ebddb_88d8_4440_9a78132ed62d97f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, inputSequence, seq); // }} "" // {{{ 630 1 0 "1dcc4914_aa2f_439e_8a2f431687c33852" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqFirstPosition = SeqGetPositionId(seq); // }} "" // {{{ 631 1 0 "01f7bf35_3538_441d_98904fa827b05e68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 632 1 0 "a37851fe_b9d0_42fa_9ccca7dd7b352a9c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{{ 633 1 0 "fe9d84b8_86ec_4552_b187147351886cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqSecondPosition = SeqGetPositionId(seq); // }} "" // {{{ 634 1 0 "5fa8b88a_cf88_49e1_8cb574503dc60e56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(seqFirstPosition, seqSecondPosition); // }} "" // {{{ 635 1 0 "e590c4e1_91dd_41c0_82a254d4134fb734" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("First check"), Translate("Second check")); // }} "" // {{{ 636 1 0 "2127d6de_e8bd_455a_88ad20e73b767061" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 637 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 638 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 639 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 640 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 641 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_measure") { // }} "" // {{{ 642 1 0 "7c314622_d15c_42aa_a88b3d71caa33d0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 643 1 0 "9f15b042_95cd_4241_9b6262d3a4979ca7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 644 1 0 "34064a8d_5567_4fe5_b4349d0d061b9a1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 645 1 0 "0e34e118_df68_49fa_b3b9228d63deb6d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 646 1 0 "025eece8_72cd_4190_a092d806fbab65a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 647 1 0 "269c134a_bc59_4578_8da8bb7559f234a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 648 1 0 "36ec28c1_360b_46e9_9243c01dbd3874e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 649 1 0 "58445956_3204_41a3_a7acb03aaf25ccd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 650 1 0 "465c2002_18cb_4ff2_9df9e423dbc6837c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 651 1 0 "40682224_6d73_4a7c_a2e33641f1768d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 652 1 0 "e43a57a6_d83b_41d1_adf33f8f77ca7bc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 653 1 0 "12a6bd74_f75b_44d1_b6f7c26d279d9610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 654 1 0 "71b8f8bc_65c1_4e97_ab6eae03040f51dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 655 1 0 "a8ca8abd_aa7a_412c_be527eb4e81efcb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 656 1 0 "a8647b92_b569_4a75_99a5333c438b3a23" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 657 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 658 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 659 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 660 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate_Dyn") { // }} "" // {{{ 661 1 0 "de6a4eb0_04e1_47fc_86e27009d71152cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 662 1 0 "5f551457_7af9_4567_bceacdf0018c9c38" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 663 1 0 "60ee9fa5_c549_43a9_bbccdb0b14819583" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 664 1 0 "2211f515_9e69_4a1c_9603becd6fd866cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 665 1 0 "8449e1f4_6561_4b51_b91aa14423565eb2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 666 1 0 "4429d4bb_e2fb_451f_8558de74111dbe3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Variance"), Variance); // }} "" // {{{ 667 1 0 "a918fadc_db95_4e4b_9c445a903a59f17a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 668 1 0 "7611bb65_5e77_408e_98384f0fec68e958" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 669 1 0 "74418f44_640a_4b4b_88234a74841f1dbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate Dynamically"), o_stepReturn); // }} "" // {{{ 670 1 0 "13218e03_9ac9_44ed_8af864397e865cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 671 1 0 "6257eb41_ce75_45b1_bea89bce20631222" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 672 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 673 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 674 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 675 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate") { // }} "" // {{{ 676 1 0 "c7a809a1_1dc8_47c2_a8006c785355c50e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 677 1 0 "27f7a889_0250_42a5_87699d0b0d52d36b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 678 1 0 "b624fe53_a0c2_44e7_92eb12cc744fa799" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 679 1 0 "9f642188_0286_4e80_81cb485423a155c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 680 1 0 "c7530a85_7f29_4069_9a8e94318ffec0d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 681 1 0 "849206a3_ea5c_4440_a08cdbcb81354e94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 682 1 0 "9f9ab695_0d32_4bf4_bf5a4b0207a2c780" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 683 1 0 "c1db8c11_4c25_4c9c_b424e06999583f09" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 684 1 0 "29e43762_b009_40ad_b93a5ac2372cca00" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 685 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 686 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 687 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 688 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Enable_Extended_Log") { // }} "" // {{{ 689 1 0 "1791ad6e_39b2_4442_8b4470d0fc5497fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn); // }} "" // {{{ 690 1 0 "b22a7836_ed52_4e9d_9e5df5babf8fa142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 691 1 0 "d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 692 1 0 "8d68d8f1_5b56_488b_a0676b4b50a35221" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 693 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 694 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 695 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 696 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Get_Last_Error") { // }} "" // {{{ 697 1 0 "11bf85a6_3df2_4245_839282a900f3db71" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 698 1 0 "2c0b2633_5d81_41a1_aa90c51eb8d9d23d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn); // }} "" // {{{ 699 1 0 "4d60f4e2_175b_4a4b_9b0bfb0f63211da0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Get Last Error"), o_stepReturn); // }} "" // {{{ 700 1 0 "76df37d9_5928_4269_937630b417ad9a11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 701 1 0 "a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 702 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 703 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 704 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 705 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Initialize") { // }} "" // {{{ 706 1 0 "a37d4042_a872_4da0_bf60a51312d5cc22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 707 1 0 "77530965_cb1f_4563_a1d848bb4faa3bb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 708 1 0 "295c3bab_f7f4_47d0_8075cf658ee0436f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn); // }} "" // {{{ 709 1 0 "69f13066_cc39_48aa_85b093e1bc056907" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrIStr(o_stepReturn2); // }} "" // {{{ 710 1 0 "3a9d7ad8_b8d0_45ee_9004e77ed5fbe471" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 711 1 0 "178d10c9_fe18_479a_b3e7922f87282612" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 712 1 0 "66935de2_85a3_4ed0_95cddf772b15fb48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 713 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 714 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 715 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 716 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Measure_Dynamically") { // }} "" // {{{ 717 1 0 "69eede79_0b96_4634_a4ed7995201d9b7d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 718 1 0 "6a018697_b8f4_4088_b8c650a2f028d197" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Precision"), Precision); // }} "" // {{{ 719 1 0 "dfbe88b8_1dda_42ac_8175799123584051" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 720 1 0 "3ef27a25_aec7_4d5b_beb743b713c7526e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 721 1 0 "74a87116_8260_466d_a78e98fe0544a891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 722 1 0 "425d37a5_2d55_4b09_a607303c754935db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure_Dynamically(ModuleID, Temperature, Precision, Timeout, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 723 1 0 "0df3fc00_0550_45fa_b224d60b9bcd06c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 724 1 0 "26992ae0_59eb_4678_ae304b460a7034db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 725 1 0 "3beda7c9_5769_4578_b31431d2bab6d131" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 726 1 0 "141952da_a201_4e85_9e446006849a95bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 727 1 0 "f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 728 1 0 "5487a4f7_a9f8_448e_98b2cb671cb9c069" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 729 1 0 "c8e7c221_d1e4_4818_b3e077f9aeb6a0a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 730 1 0 "611376c4_8c68_46f2_8947cec12bb313f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 731 1 0 "e113c0e5_7ab9_4244_86b73e7f24d2bfc8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 732 1 0 "6286c2d7_a138_4844_bc77fd8a40a6a486" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 733 1 0 "39fd3518_8a14_43a1_8d41240f577c94eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 734 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 735 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 736 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 737 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Battery") { // }} "" // {{{ 738 1 0 "c83f58ac_8db7_4477_bed8e57c9c784b8a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 739 1 0 "4b343bdb_fe40_4daa_8382b1265575e03a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn); // }} "" // {{{ 740 1 0 "98f43381_9679_4d9f_b3d1238ed4c1d0c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 741 1 0 "b95371f0_7532_4426_b980d9824bf1d2b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ChargeCounter = StrIStr(ChargeCounter); // }} "" // {{{ 742 1 0 "15324eca_50a4_4530_be7f08cdef0e6514" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BatteryCondition = StrIStr(BatteryCondition); // }} "" // {{{ 743 1 0 "e694349e_13ad_46c1_b18f5eb4688f510e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ActualCharge = StrIStr(ActualCharge); // }} "" // {{{ 744 1 0 "279c0c8e_1d53_437f_ac5e74b0ccffc7a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 745 1 0 "92db84c4_89c2_4902_819012506538681c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate("0"), Translate("0"), Translate("0"), Translate("0"), id); // }} "" // {{ 746 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 747 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 748 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 749 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Calibration") { // }} "" // {{{ 750 1 0 "250cbb57_43e2_4ca3_8ac97a4f8a848ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 751 1 0 "e2f361b4_fb8d_4bf8_b53c05720323632b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ProbeNumber"), ProbeNumber); // }} "" // {{{ 752 1 0 "6e7357dd_030a_4f9d_b5cda736b409bbee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn); // }} "" // {{{ 753 1 0 "aa859c68_b2ab_4304_9501a2d752587df6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowValue = StrFStr(pHLowValue); // }} "" // {{{ 754 1 0 "7331e4fa_3e06_499a_84eed922b712aca5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowVoltage = StrFStr(pHLowVoltage); // }} "" // {{{ 755 1 0 "3c2e720a_1c6e_4f09_afe077215aa438e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighValue = StrFStr(pHHighValue); // }} "" // {{{ 756 1 0 "a9363a15_98fa_4a49_8451b25c27edea3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighVoltage = StrFStr(pHHighVoltage); // }} "" // {{{ 757 1 0 "73007841_7490_489f_9c595a8e085e3a59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationTemperature = StrFStr(CalibrationTemperature); // }} "" // {{{ 758 1 0 "49c841c4_b5cf_4ac7_9c2e87a2dc939210" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationOffset = StrFStr(CalibrationOffset); // }} "" // {{{ 759 1 0 "d3535c95_47a6_46a6_80f73d15c4582508" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlope = StrFStr(CalibrationSlope); // }} "" // {{{ 760 1 0 "a273e170_1488_4e16_884ae09c3a26d828" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio); // }} "" // {{{ 761 1 0 "4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 762 1 0 "9ae40f13_d6cb_4a4e_9dc995de1da2d637" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Request Calibration Values"), o_stepReturn); // }} "" // {{{ 763 1 0 "5aca9095_546e_4df5_b24364da04e44fe5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id); // }} "" // {{ 764 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 765 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 766 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 767 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Probe_Data") { // }} "" // {{{ 768 1 0 "04b155be_097f_4f2d_add1392fbf78b5f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 769 1 0 "c40a59cd_e266_4cc3_aa3dd3d526502930" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn); // }} "" // {{{ 770 1 0 "306c68bb_ffd7_4233_b7f0c2c67678dfdf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1); // }} "" // {{{ 771 1 0 "bbd1faef_5b8f_41ba_bf74a019b05da039" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2); // }} "" // {{{ 772 1 0 "cb244d85_a14b_4bcb_ab81c5cdc38c6552" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3); // }} "" // {{{ 773 1 0 "5476cf0c_49cc_4602_aec72872116d2e6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4); // }} "" // {{{ 774 1 0 "6883841a_44f5_417f_8574566ed15ae444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), o_stepReturn); // }} "" // {{{ 775 1 0 "fefec950_2bfa_429e_bdf791dc40dd0495" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 776 1 0 "0f6be956_31e3_4d1e_b232c4dc908ea6f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 777 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 778 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 779 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 780 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Technical_Data") { // }} "" // {{{ 781 1 0 "3c80e1e2_a904_42ac_a3ddd5df5ca3a196" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 782 1 0 "8b2b24be_b84b_41b8_bd0f088f32554cb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 783 1 0 "552e7bb6_cbdf_49ec_86ac28b54cae7f58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 784 1 0 "1634fedb_a7e1_4130_ac1fb8d55f47b9e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HardwareNumber = StrIStr(HardwareNumber); // }} "" // {{{ 785 1 0 "2cfb8725_b283_48b0_906a9741fe336744" "{C1F3C015-47B3-4514-9407-AC2E65043419}" PartNumber = StrIStr(PartNumber); // }} "" // {{{ 786 1 0 "7b9a6dfa_9df8_40a8_9c0c39981dcf97e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Revision = StrIStr(Revision); // }} "" // {{{ 787 1 0 "771c0483_6ea2_4299_81c7598839a5027b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SerialNumber = StrIStr(SerialNumber); // }} "" // {{{ 788 1 0 "790984ff_e065_4212_a5c420f04d9f7e4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), o_stepReturn); // }} "" // {{{ 789 1 0 "79aaa9cb_2db1_4f5d_8385023783e5cc82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 790 1 0 "371d6452_cf9d_4abe_9463f54ab7831231" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id); // }} "" // {{ 791 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 792 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 793 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 794 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Voltage_Data") { // }} "" // {{{ 795 1 0 "b6c0eb00_003a_45ed_9899c407d864455c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 796 1 0 "e4801131_30dc_4e2d_8ac9e80c0c13972c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Selector"), Selector); // }} "" // {{{ 797 1 0 "ee48a65d_794b_411d_bb1668a267206d8b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn); // }} "" // {{{ 798 1 0 "bf78a104_f3d4_45b6_a573a7219dcf05e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 799 1 0 "ab32fbfb_2be2_4f6d_9c49def79adcfe31" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 800 1 0 "eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(""), Translate(""), id); // }} "" // {{ 801 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 802 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 803 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 804 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 805 1 0 "51fd11a2_c173_4d8a_be50512a820eb424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 806 1 0 "b1268215_064b_40bc_8b9e75cfc0edeac8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 807 1 0 "7665963b_aa9b_4a3c_ba522887f3b15ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 808 1 0 "8327c869_96c0_4394_9bf4c5b5c19f30d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 809 1 0 "5a5455ae_5598_4a29_8c5f621b0586ba79" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 810 1 0 "f534cbac_4de3_4425_85299c07c6ff73cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 811 1 0 "12b0cc6a_4826_48ce_82c690ddf98441a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 812 1 0 "aee63add_2789_4971_b4867510d938caf6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 813 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 814 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 815 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 816 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Charge_Parameters") { // }} "" // {{{ 817 1 0 "5e24703a_30cb_4538_aec7ba85b7c0d2a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 818 1 0 "31630603_a72b_4d8b_a21a501f5336c619" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Charge"), Charge); // }} "" // {{{ 819 1 0 "41b8aa8b_7d8e_4351_ad9664e334fa00f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AutoCharge"), AutoCharge); // }} "" // {{{ 820 1 0 "504d0d26_95ad_4181_a7c38162018496cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("AutoChargeLevel"), AutoChargeLevel); // }} "" // {{{ 821 1 0 "576ecb10_c479_461f_9249f554f27e398b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn); // }} "" // {{{ 822 1 0 "80503782_9e9a_4986_9e4bcdeac598c749" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Charge Parameters"), o_stepReturn); // }} "" // {{{ 823 1 0 "ade249f5_6aa1_4939_90a22e6af0864e5e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 824 1 0 "4fb997db_4cdf_4b51_85bbb23941f19edb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 825 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 826 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 827 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 828 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Probe_Replacement_Date") { // }} "" // {{{ 829 1 0 "eb0a7cc0_c83a_45a8_8bd6adbf05cadabe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 830 1 0 "c762429d_3619_4e70_9765fe207dab3d54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Probe"), Probe); // }} "" // {{{ 831 1 0 "18bf75b8_9aa3_46d2_a3ad3bbab8c1e126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 832 1 0 "2b2bbaed_84c1_46d2_bd024b425aefa336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 833 1 0 "380453f0_b3e8_47ac_a06eb91552b3a11f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 834 1 0 "a8fcf799_ec41_4160_910a9c78e5395ae2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn); // }} "" // {{{ 835 1 0 "c95c2987_8098_48ed_9ad284801d556587" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Probe Replacement Date"), o_stepReturn); // }} "" // {{{ 836 1 0 "4e986dcc_ee8e_4cc0_bb83628d0a0ec284" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 837 1 0 "d46fb139_6c48_4f2a_b09293a8a3509a12" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 838 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 839 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 840 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 841 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Shutdown") { // }} "" // {{{ 842 1 0 "aec40299_6cef_4e16_ad88bccbdcae3b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 843 1 0 "c7715d80_e089_40ea_86fe6a446a2c9378" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Mode"), Mode); // }} "" // {{{ 844 1 0 "212772c6_0ff7_41ef_9c35fb5828034d90" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn); // }} "" // {{{ 845 1 0 "82055c44_b706_4c16_99b47c2a4ae600e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Shutdown"), o_stepReturn); // }} "" // {{{ 846 1 0 "d76b0e51_c107_49cd_b6bcd25c44e4d066" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 847 1 0 "fbbaa73a_fa45_446d_8052e6e618fd2fad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 848 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 849 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 850 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 851 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Technical_Data") { // }} "" // {{{ 852 1 0 "d6a005e1_4502_49d8_9a510afa4a2e833e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 853 1 0 "5ad112b0_da19_4b1b_a4649033defa7fef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 854 1 0 "f4094e68_7940_4706_bae95f6277784476" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PartNumber"), PartNumber); // }} "" // {{{ 855 1 0 "2b53f199_42d1_4808_a128c8ef4354e216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Revision"), Revision); // }} "" // {{{ 856 1 0 "b5bf6715_e2e6_4e19_ad453dbb18396d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SerialNumber"), SerialNumber); // }} "" // {{{ 857 1 0 "8cd5ff7f_9cb8_4f34_8afeb35175b47032" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 858 1 0 "b60d9996_aa66_483d_b61518ffca638e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Technical Data"), o_stepReturn); // }} "" // {{{ 859 1 0 "164f5289_e710_44eb_a1ea51e1622a7813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 860 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 861 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 862 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 863 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Trace_Level") { // }} "" // {{{ 864 1 0 "dd6ba7d4_f5cc_4725_9776848c6e8343cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 865 1 0 "5a2c7ac9_8800_4926_96f26337aee59504" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 866 1 0 "88c51a62_4453_4cf5_ba0682a2cb1da767" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 867 1 0 "159aeb3e_3ed4_4ddc_a11cdfd939a7db7d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Trace Level"), o_stepReturn); // }} "" // {{{ 868 1 0 "c3a5cc94_f346_4d04_a4be1fd04efbccc1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 869 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 870 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 871 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 872 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Sleep") { // }} "" // {{{ 873 1 0 "153dc01b_be4b_403a_a40226aa4778c709" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 874 1 0 "a6f7384c_4c2e_4b3b_9682c00fb7a2f978" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn); // }} "" // {{{ 875 1 0 "e82cf943_58b3_463e_a86afb9882353228" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Sleep"), o_stepReturn); // }} "" // {{{ 876 1 0 "636ca48b_8789_40cc_8fb4dc35e8cbab54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 877 1 0 "5fb5b228_5342_414d_a548ac8dd5add837" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 878 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 879 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 880 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 881 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Terminate") { // }} "" // {{{ 882 1 0 "b53cd271_035b_4870_961c552983b39351" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 883 1 0 "e133d234_4ccd_44cb_810d29742ee9f40e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn); // }} "" // {{{ 884 1 0 "eb5a9614_5d18_44cd_83190a1d8eec2a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 885 1 0 "81b91833_cb16_43c5_a8935f9701536560" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 886 1 0 "add7dd5e_87e4_4ec1_a7b552234adc5d9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 887 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 888 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 889 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 890 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Wakeup") { // }} "" // {{{ 891 1 0 "6b1d97c0_debd_402e_8c064a5c1fe48aca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 892 1 0 "09ffa3b4_530e_444f_943e5302e37f3fe0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn); // }} "" // {{{ 893 1 0 "0d420182_40e4_43a8_872c5c81f7efa6d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 894 1 0 "f7bb0b0b_d222_43a7_b1b1236ab60e2847" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 895 1 0 "12251a91_a4ec_4a01_b041b503e2eef836" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 896 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 897 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 898 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 899 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Initialize") { // }} "" // {{{ 900 1 0 "10713a72_dce4_482a_ad1d6d8db7bd210a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 901 1 0 "21f38719_99e7_4de4_bc16b312b6f57977" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 902 1 0 "75ac7c86_e474_45bc_8551fc9e302de4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 903 1 0 "509760aa_ef16_454d_89cc23c0745d3c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 904 1 0 "19e515a1_705c_45eb_b80e75767541c91a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 905 1 0 "a042f65b_875f_4b52_999c836815c84a6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 906 1 0 "f5fd2c44_2160_43fa_be88382bc9e0ff0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 907 1 0 "f2c8bfd1_3d33_4a00_84852ffbabef7b28" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 908 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 909 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 910 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 911 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Set_Trace") { // }} "" // {{{ 912 1 0 "0029313d_525e_46ea_916912b33902e1eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 913 1 0 "ed79bcac_71ff_48ee_b968407f0dbdf4ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 914 1 0 "80f14967_56f1_4b78_9a3c9965460a9589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 915 1 0 "b3fdfb36_4bb4_4086_a19b5402f53fdd94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 916 1 0 "53206fbc_1492_4583_a2789c8083e49b46" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 917 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 918 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 919 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 920 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Wash") { // }} "" // {{{ 921 1 0 "32bfd9a6_1ebc_4ca0_81e034f81d1af760" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 922 1 0 "a9208608_0099_4d5f_800d72adf563b9e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CycleNumber"), CycleNumber); // }} "" // {{{ 923 1 0 "738f88ca_6ad7_4598_b1e4a3e1ccefcace" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn); // }} "" // {{{ 924 1 0 "d009e19d_0560_4f89_b0f58bafa778b71b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Wash"), o_stepReturn); // }} "" // {{{ 925 1 0 "49cdc51c_08eb_424b_920d3dcb647b2559" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 926 1 0 "2624b5a6_7428_4e88_a9b7fee8a8001e65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 927 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 928 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 929 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 930 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Terminate") { // }} "" // {{{ 931 1 0 "e8e2fec9_d562_4524_b5d29880876bd109" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 932 1 0 "ad418c06_88fd_4649_9745bc00694fa53a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 933 1 0 "e8437e3c_0153_4bc0_86236a2e9849e22a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Terminate"), o_stepReturn); // }} "" // {{{ 934 1 0 "32e4b0bc_48e5_4770_81a0113fdff8118a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 935 1 0 "c81e886b_51ec_42be_b2c989057781a5b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 936 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 937 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 938 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 939 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Initialize") { // }} "" // {{{ 940 1 0 "b41d8294_bc5c_4346_999860e0f4cc913e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 941 1 0 "102abd73_15bb_472b_a1008b4eda35637e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 942 1 0 "58389380_f098_4c71_b61c0954f797753b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 943 1 0 "2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 944 1 0 "d95cbdf3_6278_437b_91525392a70e5356" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 945 1 0 "d35fefc8_f758_41da_a6073532f75cf092" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Initialize"), o_stepReturn); // }} "" // {{{ 946 1 0 "e1deec6e_fc66_45bd_93821e20a78853fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 947 1 0 "01bdb50d_0f38_40e2_8993f814ea652b66" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 948 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 949 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 950 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 951 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Set_Trace") { // }} "" // {{{ 952 1 0 "f7fc7449_63b2_4e8b_8d0eaf3f931e834d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 953 1 0 "ef77cea9_ef26_4525_bea967ec7f086b88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 954 1 0 "24784b11_b6f4_461e_b526cbbb677864ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 955 1 0 "d5ebe375_f7dd_45c2_b3e242a8edf4f175" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Dryer Trace Level"), o_stepReturn); // }} "" // {{{ 956 1 0 "f61751e3_57be_4b1d_b8a1d370a4c1773c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 957 1 0 "d216caef_1c5d_4f05_8252d1a77df45535" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 958 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 959 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 960 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 961 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Start_Drying") { // }} "" // {{{ 962 1 0 "45561f8e_cd7f_49d8_a8720b2ff7d0d932" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 963 1 0 "ecdddf7a_3c99_4f99_97b658f94a62554c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 964 1 0 "5a6daec0_a404_4a0a_ad9d88de43ac46c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Start Drying"), o_stepReturn); // }} "" // {{{ 965 1 0 "e7173a44_d349_4ba2_8993647fbcd2eb1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 966 1 0 "17e3434b_dfff_457b_9aba0c22e9206cc7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 967 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 968 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 969 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 970 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Stop_Drying") { // }} "" // {{{ 971 1 0 "f3eac478_54bb_4350_8c1811bf2ede8424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 972 1 0 "37262733_33d0_4723_94687e68249d1300" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 973 1 0 "6feb871c_61be_4812_a421af32d75f9871" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Stop Drying"), o_stepReturn); // }} "" // {{{ 974 1 0 "2ba59e68_8358_4b86_a9108519bff6d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 975 1 0 "cbfcb2cb_00c9_445f_a28af2b6553efc31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 976 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 977 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 978 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 979 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Terminate") { // }} "" // {{{ 980 1 0 "66453f41_07b7_4fd4_b2177e4994606836" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 981 1 0 "a5808bbd_63b3_4fc2_894ab4d4eb00b93d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID); // }} "" // {{{ 982 1 0 "f844d13f_ecdb_465a_b0300a4976c0d809" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 983 1 0 "a28255b3_86ff_4928_abf87a7c3f930142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 984 1 0 "7e539911_cdda_4242_a337d58eba44508c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 985 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 986 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 987 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 988 1 0 "c254f141_56e5_4dd6_867413cd84657042" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 989 1 0 "a5a0a6fa_f020_4f0c_892b14922a8a43d0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 990 1 0 "87bcb443_ba4e_4831_b6d85d5676ceae1f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Abort") { // }} "" // {{{ 991 1 0 "32d200eb_0ae6_409a_a27f1bd9e350adc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 992 1 0 "60937dfd_fa84_49e4_a6330092ff42006c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 993 1 0 "83aa31af_13e9_48fa_86a3688beb3a1be8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::Abort(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 994 1 0 "7094499b_8677_4e4c_acf20a22a53d4c8e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Abort"), o_stepReturn); // }} "" // {{{ 995 1 0 "37a6eb15_6c8d_473f_b9dffab95f789ac5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeviceID = StrIStr(DeviceID); // }} "" // {{{ 996 1 0 "ed56f986_bb0e_4e3d_b4d7300a7eeb0b58" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 997 1 0 "e98e447d_05f0_430c_afd0ba887aca6b76" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(""), id); // }} "" // {{ 998 1 0 "87bcb443_ba4e_4831_b6d85d5676ceae1f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 999 1 0 "a5a0a6fa_f020_4f0c_892b14922a8a43d0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1000 1 0 "ced572f9_f877_4613_993ac898da106542" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1001 1 0 "03a935ee_2760_4356_bd8073e8de6b173b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_CloseDoor") { // }} "" // {{{ 1002 1 0 "6a66458b_03aa_4556_a7119c29debe4db5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1003 1 0 "8835ccf5_7cde_492a_9d03a87f66212529" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1004 1 0 "52be61c1_07d8_46d7_971799c333aa010a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::CloseDoor(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 1005 1 0 "6051ed5f_5327_408e_ab4e4006ce62d8ba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Close Door"), o_stepReturn); // }} "" // {{{ 1006 1 0 "e77e745c_0fd9_4817_9c991dc6c147e97c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SiLAReturnValue = StrIStr(SiLAReturnValue); // }} "" // {{{ 1007 1 0 "6a920b48_4355_48b6_9fee746e310180ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1008 1 0 "f607e257_0faa_41ba_953a4eff67bb8a51" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(""), id); // }} "" // {{ 1009 1 0 "03a935ee_2760_4356_bd8073e8de6b173b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1010 1 0 "ced572f9_f877_4613_993ac898da106542" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1011 1 0 "5a50aa8a_9b8a_4c05_a38ab1ac0ea2f7c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1012 1 0 "83d25d49_d146_4249_9f0335e6f838ddb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Connect") { // }} "" // {{{ 1013 1 0 "ea96e218_a676_4c43_8187dccb61fdcfad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LocalIP"), LocalIP); // }} "" // {{{ 1014 1 0 "9f39afff_baf8_4c02_90919e91b050d9b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("DeviceIP"), DeviceIP); // }} "" // {{{ 1015 1 0 "ac76b36c_ea11_4135_b099c4da1dd83d48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("DevicePort"), DevicePort); // }} "" // {{{ 1016 1 0 "217e9a1b_a533_42fd_909df59d5d25c92a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1017 1 0 "47c48ac4_65f4_4ac5_9c5d4ff87e80792d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::Connect(LocalIP, DeviceIP, DevicePort, SimulationMode, DeviceID, Message, o_stepReturn); // }} "" // {{{ 1018 1 0 "44b7be8c_cda6_44d7_9a3512b3014b5aaa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Connect"), o_stepReturn); // }} "" // {{{ 1019 1 0 "988ae1b5_28c3_4982_a500bf7ceebf13f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Connect"), Message); // }} "" // {{{ 1020 1 0 "4806a116_031e_444f_bcf99da98fc2aa03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeviceID = StrIStr(DeviceID); // }} "" // {{{ 1021 1 0 "ecb51768_e47b_48e1_a68b612754c89d2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1022 1 0 "1045876f_9227_42d4_8f284b4615f7bd52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Message, Translate(""), id); // }} "" // {{ 1023 1 0 "83d25d49_d146_4249_9f0335e6f838ddb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1024 1 0 "5a50aa8a_9b8a_4c05_a38ab1ac0ea2f7c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1025 1 0 "170cad08_e039_423f_89bd02bf1417c189" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1026 1 0 "f37a1dca_bc87_4a1a_b736b41bf3acacbb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_DownloadProtocol") { // }} "" // {{{ 1027 1 0 "40cbc2ca_86a5_4676_8bcc39a2f6f075f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1028 1 0 "ca78a1d6_10a8_4411_8b063849d86a765f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1029 1 0 "2a2898df_3962_48ea_872e3cb37c538f1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ProtocolFile"), ProtocolFile); // }} "" // {{{ 1030 1 0 "61926133_1a9a_4ae7_919d1c60533131c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::DownloadProtocol(DeviceID, LockID, ProtocolFile, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 1031 1 0 "63ab11b5_28c5_4f1d_a7a32d8e3ec48cb1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Download Protocol"), o_stepReturn); // }} "" // {{{ 1032 1 0 "8ec284ea_82fb_4835_a7371e261781305c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SiLAReturnValue = StrIStr(SiLAReturnValue); // }} "" // {{{ 1033 1 0 "fd4faeae_7ccf_4aa6_a8abbca7275971c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1034 1 0 "8656e596_fb43_4c25_81f91e4348204c13" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(""), id); // }} "" // {{ 1035 1 0 "f37a1dca_bc87_4a1a_b736b41bf3acacbb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1036 1 0 "170cad08_e039_423f_89bd02bf1417c189" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1037 1 0 "95be4335_330f_498d_9cbb97fc242dae19" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1038 1 0 "f8b53e0a_3303_4063_8c4b05c22b482521" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_EvaluateError") { // }} "" // {{{ 1039 1 0 "e360752c_31f7_4bfc_85305c84dc5f7546" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ErrorCode"), ErrorCode); // }} "" // {{{ 1040 1 0 "0b3b8a56_af82_4264_b0c16517d839ebe4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::EvaluateError(ErrorCode, ErrorMessage, o_stepReturn); // }} "" // {{{ 1041 1 0 "639398d5_46e9_473e_b535a1b1e05aaf2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Evaluate Error"), o_stepReturn); // }} "" // {{{ 1042 1 0 "53eec77c_8020_45cb_a87b12aa6861c3ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1043 1 0 "7e52272f_d6bd_42c0_aaec9e3104211d0b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ErrorMessage, Translate(""), Translate(""), id); // }} "" // {{ 1044 1 0 "f8b53e0a_3303_4063_8c4b05c22b482521" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1045 1 0 "95be4335_330f_498d_9cbb97fc242dae19" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1046 1 0 "7df278e6_a78b_42de_82fff06047d78c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1047 1 0 "1a6a3b23_5cdf_4b08_9b878c81c0c034fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Execute") { // }} "" // {{{ 1048 1 0 "8747e547_373a_456a_b7c45f3fe0fa4962" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1049 1 0 "6ed86f44_9a40_4aec_a24da2c3e14c5cfc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1050 1 0 "c95214ca_8dc7_4e36_b861cd3cb7e88fce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("MethodName"), MethodName); // }} "" // {{{ 1051 1 0 "6354dcdf_bc96_4f43_8e24d16a07ef73a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Priority"), Priority); // }} "" // {{{ 1052 1 0 "f9e2fc96_8719_4db6_961a737c70234591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::ExecuteMethod(DeviceID, LockID, MethodName, Priority, Duration, RequestID, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 1053 1 0 "8eedb12b_8149_4adb_b4a36b25cb56997c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Download Protocol"), o_stepReturn); // }} "" // {{{ 1054 1 0 "2f5e22f5_6e53_4423_b3c5dcff878744ab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" RequestID = StrIStr(RequestID); // }} "" // {{{ 1055 1 0 "af3ce5c4_f396_4686_af8c35c3b1896cbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Duration = StrIStr(Duration); // }} "" // {{{ 1056 1 0 "56cb4cd9_4ad1_4fe3_938eb0863af7c9cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SiLAReturnValue = StrIStr(SiLAReturnValue); // }} "" // {{{ 1057 1 0 "42f6ed5e_78f5_47a7_80c65ef13fa2e465" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1058 1 0 "27d4d016_fe70_40d9_af54cd49911a2e7e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, Duration, RequestID, id); // }} "" // {{ 1059 1 0 "1a6a3b23_5cdf_4b08_9b878c81c0c034fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1060 1 0 "7df278e6_a78b_42de_82fff06047d78c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1061 1 0 "fe8ceaf6_1a4c_4c99_810b07e636105fa8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1062 1 0 "f8f85888_8577_4a10_b97ab15879e1b18f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_OpenDoor") { // }} "" // {{{ 1063 1 0 "3f5cc39f_b933_4665_a725e5d720270a1b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1064 1 0 "32818a09_3083_4b68_be177e73ea51bf2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1065 1 0 "ca47ad1d_7179_4e19_86fd05211f0416ec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::OpenDoor(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 1066 1 0 "721b0fe9_6b70_412e_b6184c3698366299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Open Door"), o_stepReturn); // }} "" // {{{ 1067 1 0 "b0647e1f_7f95_4f56_832807c0437add1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SiLAReturnValue = StrIStr(SiLAReturnValue); // }} "" // {{{ 1068 1 0 "071ab0f7_cca9_424c_a4c8b816b1e1a01d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1069 1 0 "8d79ee78_725d_4b1c_8da948ede755b62e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(""), id); // }} "" // {{ 1070 1 0 "f8f85888_8577_4a10_b97ab15879e1b18f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1071 1 0 "fe8ceaf6_1a4c_4c99_810b07e636105fa8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1072 1 0 "3c16909b_f92f_4869_be09f5ef2fb55e11" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1073 1 0 "3c157612_f55a_40ee_b823fe12e24332f4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Initialize") { // }} "" // {{{ 1074 1 0 "a152ec6a_17c0_4ab7_9d87710d8577b2f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1075 1 0 "1a35d7ba_f083_47be_92136e57f9ed3912" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1076 1 0 "3e352ec2_6234_4391_90eb2accc24b087c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::Initialize(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 1077 1 0 "42735754_1a4d_4010_a30f4c85204e159a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Open Door"), o_stepReturn); // }} "" // {{{ 1078 1 0 "5f865b77_d620_4d27_b1b98c39e384ad41" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SiLAReturnValue = StrIStr(SiLAReturnValue); // }} "" // {{{ 1079 1 0 "67cb5e45_ee7c_4838_b49f2f3f1f1757c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1080 1 0 "a9ef6ddb_28b3_420e_a501b6911c3a2769" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(""), id); // }} "" // {{ 1081 1 0 "3c157612_f55a_40ee_b823fe12e24332f4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1082 1 0 "3c16909b_f92f_4869_be09f5ef2fb55e11" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1083 1 0 "2918af2a_a130_45ea_b188aa281e864ea8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1084 1 0 "bf6ddca4_4a60_4455_8397f87f4d24b725" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_ReadActualTemperature") { // }} "" // {{{ 1085 1 0 "e6bea63f_c17b_410d_9822608c8267f985" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1086 1 0 "edacec9c_28b9_474f_b1558fa726ec2132" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1087 1 0 "7fd71047_b3fb_46f5_b5c9f44caec9dd8b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::ReadActualTemperature(DeviceID, LockID, SiLAReturnValue, SiLAMessage, ActualTemperatures, ActualTemperatureNames, Time, o_stepReturn); // }} "" // {{{ 1088 1 0 "2c27785b_ea35_4934_b654a42db98c118e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Read Temperature"), o_stepReturn); // }} "" // {{{ 1089 1 0 "4875b702_70e3_4f15_a162e186bb3e9c6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SiLAReturnValue = StrIStr(SiLAReturnValue); // }} "" // {{{ 1090 1 0 "2d1e6390_eb2e_42e2_848902a0a274a03f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(ActualTemperatures, str_ActualTemperatures); // }} "" // {{{ 1091 1 0 "120c6294_947e_4b65_b7dd22db08edad17" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(ActualTemperatureNames, str_ActualTemperatureNames); // }} "" // {{{ 1092 1 0 "7ba7e642_228e_4c42_91a540016b1ecb80" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1093 1 0 "89ab9aa6_c667_4fb4_9331cfc5de16392a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, str_ActualTemperatures, str_ActualTemperatureNames, SiLAReturnValue, id); // }} "" // {{ 1094 1 0 "bf6ddca4_4a60_4455_8397f87f4d24b725" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1095 1 0 "2918af2a_a130_45ea_b188aa281e864ea8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1096 1 0 "32f8d0ae_5127_4186_8dbecc8f7061190f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1097 1 0 "25b084db_1bed_428b_81ed9dbd2e6b4b60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Reset") { // }} "" // {{{ 1098 1 0 "54770d0a_c4d8_4bf5_923ea37b0a7bb99a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1099 1 0 "055ec305_2f32_4ed5_931e842d3f3dc35b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1100 1 0 "c8ec64df_4c79_4d3c_a7ebf0843fb669dd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TimeToWait"), TimeToWait); // }} "" // {{{ 1101 1 0 "7de11167_b4a1_4c1d_b459187603f47406" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1102 1 0 "c5acc94b_7623_41cc_8be567f94d4ef391" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("strDeviceID"), strDeviceID); // }} "" // {{{ 1103 1 0 "270c90b6_e23e_41ab_89787ba6b70e15e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("PMSID"), PMSID); // }} "" // {{{ 1104 1 0 "ce22a8c7_2622_4d15_a255b99991b3a19f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::Reset(DeviceID, LockID, SiLAReturnValue, SiLAMessage, SimulationMode, TimeToWait, strDeviceID, PMSID, o_stepReturn); // }} "" // {{{ 1105 1 0 "5f5f4ac1_af5a_4f5a_83d0452099476350" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Reset"), o_stepReturn); // }} "" // {{{ 1106 1 0 "91142402_f680_4164_b2867f68a77f19f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SiLAReturnValue = StrIStr(SiLAReturnValue); // }} "" // {{{ 1107 1 0 "65a340a5_cfe4_49e4_ae15c8fa6f9ca3a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Message = StrIStr(Message); // }} "" // {{{ 1108 1 0 "85ff8a84_cc36_4e57_ace1facda0037584" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1109 1 0 "7f85d4fa_6d5f_4c6c_9c6a0c94995fdfa4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(""), id); // }} "" // {{ 1110 1 0 "25b084db_1bed_428b_81ed9dbd2e6b4b60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1111 1 0 "32f8d0ae_5127_4186_8dbecc8f7061190f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1112 1 0 "45adfa7a_43f6_4879_94eecbbc7cd6241e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1113 1 0 "c7a1be4c_8922_45fe_a8d03b329ad39a3d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Terminate") { // }} "" // {{{ 1114 1 0 "5679fc2a_b149_4156_afe65b4260835f63" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1115 1 0 "492d5009_7311_49b9_88d37e5272f71a3a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::Terminate(DeviceID, SiLAMessage, o_stepReturn); // }} "" // {{{ 1116 1 0 "cde37514_c4cf_4ee2_94144ec6f2d8a602" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Open Door"), o_stepReturn); // }} "" // {{{ 1117 1 0 "7437d0c9_d030_4bc3_9892e6e67143d3a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1118 1 0 "56d42bd9_d271_4178_b988201f9be09dc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAMessage, Translate(""), Translate(""), id); // }} "" // {{ 1119 1 0 "c7a1be4c_8922_45fe_a8d03b329ad39a3d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1120 1 0 "45adfa7a_43f6_4879_94eecbbc7cd6241e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1121 1 0 "c254f141_56e5_4dd6_867413cd84657042" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1122 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1123 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Initialize") { // }} "" // {{{ 1124 1 0 "5efffd73_f295_4d3c_aacd37c74d2bc015" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ComPort"), Comport); // }} "" // {{{ 1125 1 0 "cc8f22a1_0ae7_40ee_82d2e071b7344cf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn); // }} "" // {{{ 1126 1 0 "b6f33534_c173_4c6c_820d96a48fa50a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Barcode initialize:"), o_stepReturn); // }} "" // {{{ 1127 1 0 "138ad752_fbd8_457e_948dd436ddb65822" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1128 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1129 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Read") { // }} "" // {{{ 1130 1 0 "0b3c261e_a906_4464_b0e5caa3ec640056" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Read(barcode); // }} "" // {{{ 1131 1 0 "98aadc47_a5a2_433d_84530ad050155ccd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("BarcodeReader_Read"), barcode); // }} "" // {{{ 1132 1 0 "e3fc85ee_a6d7_4d98_a3f9076b947565cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, barcode, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1133 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1134 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1135 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1136 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1137 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_BeginMonitoring") { // }} "" // {{{ 1138 1 0 "7dd862dc_f7f1_4600_94ca9b83762673dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1139 1 0 "d37d14e5_261f_418c_81f754eb75bf4920" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingToleranceRange"), shakingToleranceRange); // }} "" // {{{ 1140 1 0 "0919ceb3_189a_4885_93c8faeab9f9538b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sampleInterval"), sampleInterval); // }} "" // {{{ 1141 1 0 "bc3a749e_e1bb_4c4a_9aac06834d85080f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("action"), action); // }} "" // {{ 1142 1 0 "98795c5d_e3e5_4d8c_bba032968c530136" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1143 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ; err.Clear(); // }} "" // {{{ 1144 1 0 "a2a0a3bb_c0cf_4123_afe36d1d51ae233c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action); // }} "" // {{ 1145 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3202FD4CC34D478f892F31C7684340BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1146 1 0 "435e7414_9170_4bf9_bd0ac83f0ab51fad" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1147 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1148 1 0 "c00b8635_652d_48ca_8d345ed070306b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1149 1 0 "85ac1487_5644_4bae_b032f5c191aa47c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1150 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1151 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1152 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1153 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateStarDevice") { // }} "" // {{{ 1154 1 0 "4c3dfdd2_2dd6_4c5f_831f92590c13e82e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1155 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ; err.Clear(); // }} "" // {{{ 1156 1 0 "cc3d4234_12d6_486a_a110c8ede0e3059b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber); // }} "" // {{ 1157 1 0 "f17e82ff_88ef_4685_bf6f75a8ca0e32f6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1158 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1159 1 0 "c0256452_8d47_4f97_9e9c2250a44934d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1160 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1161 1 0 "7699b24c_5ec6_4cca_b1cb9aed9ce60247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1162 1 0 "85155966_9554_40cb_9693f9b0a11b25a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1163 1 0 "d049e779_0761_471d_9f7b8af0967d1633" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1164 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1165 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1166 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1167 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateUSBDevice") { // }} "" // {{{ 1168 1 0 "72f0a762_2550_45ad_bea063f4f72a9fe9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1169 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ; err.Clear(); // }} "" // {{{ 1170 1 0 "0cd1cef0_3091_48c3_b63490d3e80a5b45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber); // }} "" // {{ 1171 1 0 "1823653c_5e02_428a_badd7ca34d3aabf1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1172 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_98100824AA704d26AB40A6BADEF39F48 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1173 1 0 "058f8bb4_5fe3_4a6b_a36e899c2a89656f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1174 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1175 1 0 "a9b4c19d_dcc0_42d7_9a51e3241ef647f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return:"), o_stepReturn); // }} "" // {{{ 1176 1 0 "d303212f_1f38_442d_a24eee709cf4cdc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1177 1 0 "7356ec1e_8437_4679_94613ac2bea4fe0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1178 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1179 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1180 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1181 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_EndMonitoring") { // }} "" // {{{ 1182 1 0 "4293ef15_cfcd_4e29_b9b02afae2d471f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1183 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ; err.Clear(); // }} "" // {{{ 1184 1 0 "96f15f32_4117_4a09_85dceac0fa769b43" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult); // }} "" // {{ 1185 1 0 "9d9a3dcb_ddc9_47c5_a860665377ee3e86" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1186 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1187 1 0 "aabeb82e_70d9_42f7_901f3fe114094e0a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1188 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1189 1 0 "ce89bf49_b865_4c3f_a97eba220b5a7d33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS End Monitoring step return:"), o_stepReturn); // }} "" // {{{ 1190 1 0 "05229af2_f20a_42ce_908ec8445f3f9dd2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(""), Translate(""), id); // }} "" // {{ 1191 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1192 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1193 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1194 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetFirmwareVersion") { // }} "" // {{{ 1195 1 0 "942a1cc2_d956_47fa_9a9ffed1e856a632" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1196 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ; err.Clear(); // }} "" // {{ 1197 1 0 "f6b3cc8e_f852_4a96_9567a4fa67e846e8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1198 1 0 "c70f5e07_0eeb_45e5_af26714895e2df88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion); // }} "" // {{ 1199 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1200 1 0 "96886e69_ba07_45e3_96353112dc429afc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1201 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1202 1 0 "7de3b86c_c16d_4932_beedfb948b5d85f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(""), Translate(""), id); // }} "" // {{ 1203 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1204 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1205 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1206 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetSerialNumber") { // }} "" // {{{ 1207 1 0 "38b7d0d7_7cce_4157_8abc70dfb62eefa5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1208 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ; err.Clear(); // }} "" // {{ 1209 1 0 "08061228_63f2_47d2_a601ba16d6a1a142" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1210 1 0 "0bbfb488_9723_4a08_9b90171dbec6117a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber); // }} "" // {{ 1211 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2434A44DB44B48ff82A9F66DE34C5041 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1212 1 0 "4cf5e7f7_9567_4e6b_a206bf6f8962c785" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1213 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1214 1 0 "311e5a04_1ac3_443c_bdc51c5cdc4c44f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(""), Translate(""), id); // }} "" // {{ 1215 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1216 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1217 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1218 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerParameter") { // }} "" // {{{ 1219 1 0 "f3888a0b_86ea_4c4a_891e1755a6e78556" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1220 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ; err.Clear(); // }} "" // {{ 1221 1 0 "693cec94_9d14_4bff_8e4868a3b27f0245" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1222 1 0 "e993ed67_92ed_4c85_bd33f90aac53dfb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3); // }} "" // {{ 1223 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1224 1 0 "bd4bffe6_9161_4f42_b0b53307549f4286" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1225 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1226 1 0 "6efd49bf_48c7_437b_8fee57487345eaee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1227 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1228 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1229 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1230 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerSpeed") { // }} "" // {{{ 1231 1 0 "e1c29a26_0656_46e3_b0a412143047bd26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1232 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ; err.Clear(); // }} "" // {{ 1233 1 0 "949c257a_0d44_4a50_bb10d9b59e6a02c2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1234 1 0 "d7148e56_7fcc_471d_8c3a7abc2847db7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2); // }} "" // {{ 1235 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1236 1 0 "fb8e630b_9519_4b3d_94eabf1311546383" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1237 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1238 1 0 "41ba2513_e3c2_485c_821198419c3fe286" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1239 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1240 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1241 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1242 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTempParameter") { // }} "" // {{{ 1243 1 0 "09fb30ea_33e9_486d_96945af4798859ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1244 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ; err.Clear(); // }} "" // {{ 1245 1 0 "7e342beb_ebbe_4873_bf53c50f29cbaa0e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1246 1 0 "c8f45788_ef99_414d_a41d29a20583a067" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 1247 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C16E1CF8298042f0A01D1040DC911015 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1248 1 0 "b845f534_5a22_4076_b36069f70af90742" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1249 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1250 1 0 "4793211e_93d2_43e6_b4d25d7e0ae3e104" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 1251 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1252 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1253 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1254 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperature") { // }} "" // {{{ 1255 1 0 "01d1add6_c167_4137_8f0c285cd6ad9bed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1256 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ; err.Clear(); // }} "" // {{ 1257 1 0 "0bd6e3be_da2c_4500_973c9d6eae8e7ae6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1258 1 0 "4187d732_0d13_4590_99fa08572e32e2f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2); // }} "" // {{ 1259 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_14A2AAD200434d69970AC483BD08B64F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1260 1 0 "cabbe1ee_c5d4_49dd_90875673900d6120" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1261 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1262 1 0 "234847f1_2f0a_4e64_856b9edefcebb425" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1263 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1264 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1265 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1266 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperatureState") { // }} "" // {{{ 1267 1 0 "82a233ab_0392_4ebb_9a809d80aae38e44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1268 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ; err.Clear(); // }} "" // {{ 1269 1 0 "5b647db8_f1d6_4deb_9b859eb1dfda063d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1270 1 0 "7f7e0bd7_bea9_474d_92bce5d21da9a2a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2); // }} "" // {{ 1271 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_50485390A50647818ED2D3934FBC87E3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1272 1 0 "f56ee559_1221_4f5a_ad332d0e44502aff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1273 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1274 1 0 "31a69f44_1a59_49ce_a78763f3aa936042" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1275 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1276 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1277 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1278 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SendFirmwareCommand") { // }} "" // {{{ 1279 1 0 "11546c32_6ddd_4250_9b8750c9679e5b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1280 1 0 "06688598_f10e_41e9_8a2c6d3dff7b7aae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), command); // }} "" // {{{ 1281 1 0 "15a58509_ec93_4677_b1858cadeac42d10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("parameter"), parameter); // }} "" // {{ 1282 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ; err.Clear(); // }} "" // {{ 1283 1 0 "ad365bf1_c5e9_4c85_b1b623b20be98474" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1284 1 0 "b63ba349_9a52_43ca_aec17e40c17d231b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter); // }} "" // {{ 1285 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_84EE5E4228B140f599748D1271CBB0F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1286 1 0 "c9bd9645_5a05_4cc6_95997f787c8772d6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1287 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1288 1 0 "8b5634c2_e1da_41d3_83c57142f4cae999" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1289 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1290 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1291 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1292 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetPlateLock") { // }} "" // {{{ 1293 1 0 "927ddf67_5dbd_432b_b8cf6117a3109b06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1294 1 0 "a3eee1ac_7024_473b_a6eb8a2e9b461a66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("plateLock"), plateLock); // }} "" // {{ 1295 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ; err.Clear(); // }} "" // {{ 1296 1 0 "f307f49e_48c2_428e_80c1d57693f85156" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1297 1 0 "27d47e3b_913b_4a0e_bdb50007a0e39d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock); // }} "" // {{ 1298 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1299 1 0 "4eb95522_37fd_4802_af85a620dc874526" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1300 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1301 1 0 "945560ed_40bf_44a9_851fead4c1943f9f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1302 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1303 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1304 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1305 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetShakerParameter") { // }} "" // {{{ 1306 1 0 "8a0e14c1_f6c6_4fb8_94094498cccd7991" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1307 1 0 "1810a83f_3fc2_4c49_9d5502fbdfc743e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingDirection"), shakingDirection); // }} "" // {{{ 1308 1 0 "c3053579_8645_474f_8c05459eed975362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingAccRamp"), shakingAccRamp); // }} "" // {{ 1309 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ; err.Clear(); // }} "" // {{ 1310 1 0 "32b90a07_0607_448d_9767de1d96e31862" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1311 1 0 "77463ac5_e629_4772_98004edef4016a6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp); // }} "" // {{ 1312 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1313 1 0 "5593fd2a_c1e7_4565_bcae82458768dd51" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1314 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1315 1 0 "5ed72ec4_1b60_4258_969b44c995450ec1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1316 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1317 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1318 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1319 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetSimulation") { // }} "" // {{{ 1320 1 0 "941f9e19_ca94_4ede_9719205aeb876593" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{ 1321 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ; err.Clear(); // }} "" // {{ 1322 1 0 "f56567fc_04c1_4645_aee22aa5f22a9f8c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1323 1 0 "41b0c1a2_60aa_4f16_8901c300e9a3dc14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetSimulation(simulate); // }} "" // {{ 1324 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1325 1 0 "35803a11_c620_485a_8196cc2822dddb3f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1326 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1327 1 0 "2e7a9d5f_51df_4c49_bb1986da7e14cd48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1328 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1329 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1330 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1331 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetTempParameter") { // }} "" // {{{ 1332 1 0 "99447b6e_9293_483d_bbd7ddee96870904" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1333 1 0 "f55d7581_a005_45e4_9b3d7f7473323e6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("startTimeout"), startTimeout); // }} "" // {{{ 1334 1 0 "7192db12_8543_4c8b_81b98b57ce21118d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("toleranceRange"), toleranceRange); // }} "" // {{{ 1335 1 0 "8f6d922f_f2ae_43c6_8682df15e6b7c07c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("securityRange"), securityRange); // }} "" // {{ 1336 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ; err.Clear(); // }} "" // {{ 1337 1 0 "a2342046_552f_4003_a1cc262161964a6e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1338 1 0 "57eb738a_6eb2_4f04_b25bd7f7f64a8179" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange); // }} "" // {{ 1339 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1340 1 0 "94c928dd_6dcb_4540_a6cbfdf48e37430c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1341 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1342 1 0 "90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1343 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1344 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1345 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1346 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetUSBTrace") { // }} "" // {{{ 1347 1 0 "0691ecbd_49b4_4590_91d60e614290ec34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("trace"), intTrace); // }} "" // {{ 1348 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ; err.Clear(); // }} "" // {{ 1349 1 0 "aeed4685_8812_4dce_89e2c35429d4c401" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1350 1 0 "24723a79_741b_46be_830fe654c08d6d1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetUSBTrace(intTrace); // }} "" // {{ 1351 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FE6D15E135D24fd7A06908E89474B650 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1352 1 0 "32d09876_dcdb_4d67_b5e72a63e14fec19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1353 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1354 1 0 "cda0d06f_dce0_47ad_bbb419c58aba260e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1355 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1356 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1357 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1358 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShaker") { // }} "" // {{{ 1359 1 0 "503e1c47_5f15_42bd_8eaad1057de68ef6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1360 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ; err.Clear(); // }} "" // {{ 1361 1 0 "dab3ac84_179e_4fd8_9b00ad14f3ef613e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1362 1 0 "7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed); // }} "" // {{ 1363 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1364 1 0 "c35cdd37_7a73_4008_b9d0ac550c926428" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1365 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1366 1 0 "ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1367 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1368 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1369 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1370 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShakerTimed") { // }} "" // {{{ 1371 1 0 "db6b6c2e_da48_4c64_bdddc80ba5a28921" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1372 1 0 "f6f42906_5ded_4a05_8f9a11fac18f7f10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1373 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ; err.Clear(); // }} "" // {{ 1374 1 0 "523b190e_f70f_4a28_b16582e7161b390a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1375 1 0 "428d423d_1825_472f_a3aa303d028d0659" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime); // }} "" // {{ 1376 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1377 1 0 "ef7c31f9_e307_450a_851111f26afd2e91" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1378 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1379 1 0 "d73f1476_bf95_4d48_89849f295a9e4d0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1380 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1381 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1382 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1383 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShaker") { // }} "" // {{{ 1384 1 0 "f958f5a5_d1c5_4e9e_9262e708f24940c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1385 1 0 "2ce1189b_e54a_48c0_aafc2932409c0b9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1386 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ; err.Clear(); // }} "" // {{ 1387 1 0 "e043b61a_b8c5_46d4_9bf331f7566a8911" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1388 1 0 "a302e74e_d752_4ae6_b492a17f601bef41" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed); // }} "" // {{ 1389 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1390 1 0 "9b93a06b_e4df_4eca_84467ca6c7f0c0ce" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1391 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1392 1 0 "4b0b48f9_3855_4eab_8f22b0902846d750" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1393 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1394 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1395 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1396 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShakerTimed") { // }} "" // {{{ 1397 1 0 "858c7861_9fb0_490e_9646b9eb190706d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1398 1 0 "327bd0c6_60a8_4fd1_9ef81e2a21d904a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1399 1 0 "83a6d58d_c761_484f_871c9c2229a6d3d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1400 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ; err.Clear(); // }} "" // {{ 1401 1 0 "10af5b65_9ddd_4a4b_b040d8f5b6e642cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1402 1 0 "22e55b69_c018_47f9_8e3ac169c190d2de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); // }} "" // {{ 1403 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_29447729262E4e0f8B347F6640716D96 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1404 1 0 "f383d799_1d15_4348_8a2dc84422f46ff2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1405 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1406 1 0 "f539df09_de1d_4fd8_9ac041897fab0333" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1407 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1408 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1409 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1410 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartTempCtrl") { // }} "" // {{{ 1411 1 0 "dc338e01_6b43_4fe3_bda98d2b0a1a65e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1412 1 0 "04239a09_93a5_4f75_80f95d178bdf9cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("temperature"), temperature); // }} "" // {{{ 1413 1 0 "0387745b_87be_4ec6_912b0b4decaa257b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("waitForTempReached"), waitForTempReached); // }} "" // {{ 1414 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ; err.Clear(); // }} "" // {{ 1415 1 0 "497404d1_5fea_46f0_9598d8e1c1cb11ed" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1416 1 0 "4ba75dd5_935f_4f2c_a15605eafa47b808" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached); // }} "" // {{ 1417 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_764F491C76DA445383E5490AB126ADB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1418 1 0 "21dd8d34_e764_4a0f_b34ccecf089437dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1419 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1420 1 0 "bfde731d_b581_4488_b4cb7f4873675d7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1421 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1422 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1423 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1424 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopAllShaker") { // }} "" // {{ 1425 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ; err.Clear(); // }} "" // {{ 1426 1 0 "d8b2a327_d63a_46f2_8c273b2eedb8cb34" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1427 1 0 "d112da95_7f27_47a3_9e24bc801bcc9afc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{ 1428 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1429 1 0 "45d1f212_46b9_4976_83503edf5606c88e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1430 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1431 1 0 "5706daca_363f_417f_9103f7ddd16c1444" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1432 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1433 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1434 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1435 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopShaker") { // }} "" // {{{ 1436 1 0 "1cdead0d_9944_446b_bd59d491b15242b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1437 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ; err.Clear(); // }} "" // {{ 1438 1 0 "9d792f4f_4c49_4998_b21fd7f7d6a58fce" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1439 1 0 "b811fcbc_7d95_47c6_9c33e18415810e13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::StopShaker(deviceNumber); // }} "" // {{ 1440 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1441 1 0 "1fe83710_037b_4157_82a99e6aaf08edcb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1442 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1443 1 0 "6ffd1f39_ec63_4f9c_a7687447aff79f80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1444 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1445 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1446 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1447 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopTempCtrl") { // }} "" // {{{ 1448 1 0 "b16ab946_2ba9_4900_bd6f9ede31edf6ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1449 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B5957B02990845739642D8C604B0B582 ; err.Clear(); // }} "" // {{ 1450 1 0 "384c69b8_0ce8_4a27_af0a4060e6f1a01d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1451 1 0 "3a29dc5b_78cc_4ed1_ab9cd631701715e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber); // }} "" // {{ 1452 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B5957B02990845739642D8C604B0B582 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1453 1 0 "28b1d8d1_83cc_4627_9146c7398c601938" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1454 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1455 1 0 "11f3231a_40df_4c14_92585ab8016165e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1456 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1457 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1458 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1459 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_Terminate") { // }} "" // {{ 1460 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ; err.Clear(); // }} "" // {{ 1461 1 0 "b1da178c_1267_4c8c_b1cd24bfa10a11fb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1462 1 0 "910932e3_2b76_41cf_9dccecb799f2d649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::Terminate(); // }} "" // {{ 1463 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_919FCF7F89804c398972DAFE2605D286 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1464 1 0 "697e84e2_525e_4045_83bb3825b36f6b2f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1465 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1466 1 0 "4edde3c1_4f65_4403_a54985d84f6d80f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1467 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1468 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1469 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1470 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForShaker") { // }} "" // {{{ 1471 1 0 "87872be5_4e84_4b7b_98a3e7147a66f6a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1472 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ; err.Clear(); // }} "" // {{ 1473 1 0 "6c68258f_f870_4c46_b358dc4391ced463" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1474 1 0 "2eff956e_28cc_4094_8285d5ed00125a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber); // }} "" // {{ 1475 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1476 1 0 "c08ab14c_3879_4f65_ad7085e45f74a6df" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1477 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1478 1 0 "96b99051_5c80_421c_a02e0bd238da1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1479 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1480 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1481 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1482 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForTempCtrl") { // }} "" // {{{ 1483 1 0 "881e7d69_50e3_4e42_89eafece562ac009" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1484 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ; err.Clear(); // }} "" // {{ 1485 1 0 "f5db2a6b_8286_4195_844af45f48c61d3f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1486 1 0 "421a52eb_128a_4b6b_8baafb6548b66bd8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber); // }} "" // {{ 1487 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_088C7630997A4749A400740DA66CBA0C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1488 1 0 "de7dad67_0b6c_47eb_af5a68302431ff1e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1489 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1490 1 0 "aeb529e0_2eaf_4686_9528342b58318a5d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1491 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1492 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1493 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1494 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1495 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1496 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "CORE96WashEmpty") { // }} "" // {{{ 1497 1 0 "88f95bdd_c2c5_4856_91e5f47f7431bdaf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("refillAfterEmpty"), refillAfterEmpty); // }} "" // {{{ 1498 1 0 "d7a05a26_0b59_478a_a85f308173caf693" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1WashLiquid"), chamber1WashLiquid); // }} "" // {{{ 1499 1 0 "8b1bd108_2b5a_4a2d_ace7b87920eae1b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1LiquidChange"), chamber1LiquidChange); // }} "" // {{{ 1500 1 0 "d651fbf5_a4b8_490b_b869269338ccfcfa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2WashLiquid"), chamber2WashLiquid); // }} "" // {{{ 1501 1 0 "79b1a205_d988_4171_9e1fb28ba362329b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2LiquidChange"), chamber2LiquidChange); // }} "" // {{ 1502 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ; err.Clear(); // }} "" // {{ 1503 1 0 "3fc645b3_f504_4b5e_93481425adf459b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1504 1 0 "123d7b87_745f_4511_a797d08711d13361" "ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}" { variable arrRetValues[]; arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3("123d7b87_745f_4511_a797d08711d13361"); // Head96EmptyWasher } // }} "" // {{ 1505 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EE8804FCDC214a06935DD0F4830020DB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1506 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 1507 1 0 "d3d07dad_de12_4d0c_bd96c7caa06ff3ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1508 1 0 "84732f19_85e4_4b22_8e617b5e1c91f73c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Washer Return: "), o_stepReturn); // }} "" // {{{ 1509 1 0 "dde0a413_b493_4b17_94990d1d5f2e2b2e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1510 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1511 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1512 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1513 1 0 "1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONFromServer); // }} "" // {{ 1514 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1515 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "end") { // }} "" // {{{ 1516 1 0 "6db67a5a_6aa2_4087_875823acfff0fac4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Good Bye!")); // }} "" // {{ 1517 1 0 "4c7e40d6_02a6_451d_b28230ec71e40ce1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1518 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1519 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1520 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1521 1 0 "6fb90145_24c3_46ba_88b839e0215d0bf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{ 2 "AutoExitBlock" "" STAR_OEM_TOOLKIT::_ExitLibrary(); STAR_OEM_TOOLKIT_PH::_ExitLibrary(); STAR_OEM_ODTC::_ExitLibrary(); // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=stefa$$valid=0$$time=2023-01-24 20:18$$checksum=31080e67$$length=082$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx1C7B.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" private function ArrayToString( variable & i_array[], variable & o_str ) void ; private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ; private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ; private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ; private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void ; function SendTextMessageToServer( variable str ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; private function waitForGUItoContinue( ) variable ; function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 1673 1 0 "c8aa765a_4840_468a_9e928b44fa79d891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{{ 5 "OnAbort" "End" } // }} "" // {{{ 5 "SendTextMessageToServer" "Begin" function SendTextMessageToServer( variable str ) void { // }} "" private object objJSONObject; private variable strJSON; // {{ 5 "SendTextMessageToServer" "InitLocals" // }} "" // {{{ 1641 1 0 "9d5f9d4a_c104_4b47_964b6d97f981a71e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONObject); // }} "" // {{{ 1642 1 0 "d0a04705_1adc_4919_b95168834c89f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("command"), Translate("message")); // }} "" // {{{ 1643 1 0 "7b9a6cd1_3eee_4085_b3f9548e43fc3424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("text"), str); // }} "" // {{{ 1644 1 0 "6a1c53cf_65ea_4f53_aa2e9111890fecf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONObject, strJSON); // }} "" // {{{ 1645 1 0 "bee8c148_b3ea_490b_8d93d8ed5f24939f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONObject); // }} "" // {{{ 1646 1 0 "b965a2fd_f821_4400_b4c777f558ed0772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendTextMessageToServer" "End" } // }} "" // {{{ 5 "waitForGUItoContinue" "Begin" private function waitForGUItoContinue( ) variable { // }} "" private variable loopCounter1; private variable serverResponse; private timer timer1; // {{ 5 "waitForGUItoContinue" "InitLocals" // }} "" // {{ 1654 1 0 "73328607_d06a_4d7d_8a5df64da06a1bde" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" serverResponse = Translate(""); // }} "" // {{{ 1655 1 0 "2342f8b3_4765_4edc_9fb9f46cbb1fd20b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Waiting for server instructions...")); // }} "" // {{{ 1656 1 0 "216e1039_788e_4830_8588933e6c542ba1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Waiting for server instructions...."), Translate("")); // }} "" // {{ 1657 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounter1 = 0; while (1 == 1) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1658 1 0 "5f15547c_3178_4f78_b5fea96f6a1c563b" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.1) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1659 1 0 "cd67277b_4386_4862_8429008a00601693" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 1660 1 0 "6ec592d0_fe02_41a9_8503db5ccf0e5544" "{C1F3C015-47B3-4514-9407-AC2E65043419}" serverResponse = HSLHttp::HttpGET(objHttp, Translate("http://localhost:3221"), Translate("")); // }} "" // {{ 1661 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (serverResponse != "") { // }} "" // {{ 1662 1 0 "b1e2e308_ee78_46d0_8a6832649536045e" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1663 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1664 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 == 300) { // }} "" // {{ 1665 1 0 "19e5c8f7_a1a9_4348_aa41a572942db630" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1666 1 0 "6be46368_bb3e_4ad8_82647d6f52af8c9b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1667 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1668 1 0 "8951a436_faf4_45df_a268dbb7ddb58c29" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.9) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1669 1 0 "52bb524e_27b1_4bbe_afcf26453d9eb66f" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1670 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1671 1 0 "809789b0_bd70_4c1f_b0d808ce120b1d99" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (serverResponse); // }} "" // {{{ 5 "waitForGUItoContinue" "End" } // }} "" // {{{ 5 "SendStepReturnToServer" "Begin" private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer" "InitLocals" // }} "" // {{{ 1612 1 0 "2520bd9f_739d_4111_a27d89f8f73ec39e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 1613 1 0 "aa6010ec_0628_49d5_a87e016b4a4fc7f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 1614 1 0 "a97c5efa_0ce4_4358_9c51c1893f526b9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 1615 1 0 "deceb871_e830_4b14_86e626f745ef083a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 1616 1 0 "00afb5c2_b5db_4458_866a13b6cb332b68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 1617 1 0 "e52bbd02_b31d_4278_a0f45991eab77d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 1618 1 0 "19f99698_3777_4dcf_9fc765c3f221df4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 1619 1 0 "329f8b9b_0798_44f8_9ee6b65ec58b0c44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 1620 1 0 "7728ac0d_8630_4f61_94af076392758ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 1621 1 0 "70d261f2_edc4_49a0_a5a074cd5ab92b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 1622 1 0 "ee0dd62d_582f_4171_b08e37f6106d9b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer" "End" } // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "Begin" private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void { // }} "" private variable n; private variable loopCounter1; private variable strSinglePosition; private variable arrayOfPositions[]; private variable arraySinglePosition[]; private variable labwareID; private variable positionID; // {{ 5 "BuildTempSequenceFromPositions" "InitLocals" { sequence __temp; o_seq = __temp; } // }} "" // {{ 1559 1 0 "d9022e13_e502_4969_a8ee79484e990801" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arrayOfPositions.SetSize(0); // }} "" // {{{ 1560 1 0 "3e178082_8579_435f_a5db4481bb789d9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strPositions, Translate(";"), arrayOfPositions, 0); // }} "" // {{ 1561 1 0 "5d735f26_db1b_4bea_9ee405f4167bb99f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" n=arrayOfPositions.GetSize(); // }} "" // {{{ 1562 1 0 "f497f24b_fd39_417d_8703c0d54662309f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq); // }} "" // {{ 1563 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1564 1 0 "fd645546_0433_46a0_8619026e338529fd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arraySinglePosition.SetSize(0); // }} "" // {{ 1565 1 0 "91aeb0c4_3176_4356_a19a1027bcdb0af3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1); // }} "" // {{{ 1566 1 0 "c2b42369_7829_4c62_b58880fce7867995" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strSinglePosition, Translate(","), arraySinglePosition, 0); // }} "" // {{ 1567 1 0 "016f61c5_fd76_4c74_903df10a03070f7b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" labwareID=arraySinglePosition.GetAt(1-1); // }} "" // {{ 1568 1 0 "886fc872_7c3a_4366_959db6d5f265ed7c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" positionID=arraySinglePosition.GetAt(2-1); // }} "" // {{{ 1569 1 0 "766a54b4_4c5b_4991_9d8ceea62d26b216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq, labwareID, positionID); // }} "" // {{ 1570 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1571 1 0 "0003c6e9_5b43_438d_bc93be342c3c6b55" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq.SetCurrentPosition(1); // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "End" } // }} "" // {{{ 5 "StrTokenize" "Begin" private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 1648 1 0 "500afe4c_98a8_4117_8c279b9994d0b626" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 1649 1 0 "6a0bd918_2fda_4e4c_a680454ce2576168" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 1650 1 0 "f65ed315_68ed_4ec0_ba0b3c217e692b25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 1651 1 0 "9476acee_e5bb_43d1_bbec232ed01bae08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); // Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "Begin" private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void { // }} "" private variable numOfVolumes; private variable numOfChannelsInVariable; private variable n; private variable loopCounter1; private variable arrSize; private variable loopCounter3; private variable strKeyName; // {{ 5 "BuildArrayOfVolumesForChannels" "InitLocals" o_arrayOfVolumes.SetSize( 0); // }} "" // {{ 1533 1 0 "69288f91_eabd_4d15_af5361636ffacbf6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyName = Translate("volumes"); // }} "" // {{ 1534 1 0 "bf4c1108_6751_41ee_8d3d3b1a9418548f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfVolumes.SetSize(0); // }} "" // {{{ 1535 1 0 "a9cfa743_a769_46a3_b8d7e45a67b3d297" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName); // }} "" // {{ 1536 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arrSize > 0) { // }} "" // {{ 1537 1 0 "594bebbb_0d54_4893_b20d783de743dd44" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1538 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < arrSize;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{{ 1539 1 0 "3bfc9004_2595_4917_b4edcdceed06f518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); // }} "" // {{ 1540 1 0 "6be31b23_f55d_4d15_be6abc9ee4bef664" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" Trace("Volume received=", v); // {{ 1542 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1543 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1544 1 0 "4a4891b3_f877_4b14_85196b7e820554b2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1545 1 0 "22c7c768_33c4_4975_909e9586375bfe8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(strKeyName, v); // }} "" // {{ 1546 1 0 "4e01e62a_13a2_408e_9fbfb2300d5996ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 1547 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1548 1 0 "cc565f65_a92a_43ef_9c052b7f5632aca5" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" numOfVolumes=o_arrayOfVolumes.GetSize(); // }} "" // {{{ 1549 1 0 "e49355fb_3fe6_4c8d_930870416e36b708" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numOfChannelsInVariable = StrGetLength(strChannels); // }} "" // {{ 1550 1 0 "804bc477_e950_4a14_af5f667c73cf5176" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1551 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (numOfVolumes < numOfChannelsInVariable) { // }} "" // {{ 1552 1 0 "2e73355c_8b11_4423_b345807cae9d5db8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" n = numOfChannelsInVariable - numOfVolumes; // }} "" // {{ 1553 1 0 "53a650d8_2fc1_4c5b_bd19eda433c2a81a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" v = o_arrayOfVolumes.ElementAt( numOfVolumes -1); // }} "" // {{ 1554 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1555 1 0 "cd047b15_6a02_40f1_adfb116f6bf5d763" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 1556 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1557 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "End" } // }} "" // {{{ 5 "ArrayToString" "Begin" private function ArrayToString( variable & i_array[], variable & o_str ) void { // }} "" private variable arraySize; private variable loopCounter1; // {{ 5 "ArrayToString" "InitLocals" o_str = 0; // }} "" // {{ 1523 1 0 "1a220255_6ba4_40fb_be39a6a2f4e0065f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 1524 1 0 "f821c4ff_f1a2_4ad7_9bd77dd8652567cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str = Translate(""); // }} "" // {{ 1525 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1526 1 0 "afd84a84_8330_46e7_8308e16b5caa05e9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" v=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 1527 1 0 "77436fd3_3c87_4f09_9a89259b15ef5bf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, v); // }} "" // {{ 1528 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 < arraySize) { // }} "" // {{{ 1529 1 0 "d14fd31e_5de8_46f9_bb359f38de9a08ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, Translate(";")); // }} "" // {{ 1530 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1531 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "ArrayToString" "End" } // }} "" // {{{ 5 "JSON_GetFloatValue" "Begin" private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void { // }} "" private variable retVal; // {{ 5 "JSON_GetFloatValue" "InitLocals" o_KeyFloatValue = 0; // }} "" Trace("getfloatvalue"); // {{{ 1574 1 0 "8f2f8625_6c9e_4c47_b4698d29df60004a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" // {{ 1575 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("error getting float value, try with integer"); // {{ 1577 1 0 "5a74df81_6685_4703_8b055144f8d74d45" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1578 1 0 "47bb8c98_9624_40ad_b765abfc6b0d0b49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" Trace("error getting float value, tried with integer"); // {{ 1580 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("wtf ok i guess its zero"); // {{ 1582 1 0 "5b8a3ec6_8ee4_4887_ab7df29fa494cdc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_KeyFloatValue = 0; // }} "" // {{ 1583 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1584 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "JSON_GetFloatValue" "End" } // }} "" // {{{ 5 "SendHHSReturnToServer" "Begin" private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; private variable t_arrayStepReturns[]; private variable loopCounter1; private variable keyName; private variable varType; // {{ 5 "SendHHSReturnToServer" "InitLocals" // }} "" // {{{ 1586 1 0 "6db3f932_ba70_4cf6_9c2a8636580fc754" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 1587 1 0 "3cf8a985_83cc_418e_99293de9d9945d5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("HHS-return")); // }} "" // {{{ 1588 1 0 "705c25bc_6db4_4eb9_b05b33999e110198" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{ 1589 1 0 "5a9efc02_a11a_4c0c_b166e3b28800cc6c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" t_arrayStepReturns.SetSize(0); // }} "" // {{ 1590 1 0 "5aa4f3a8_774f_4f35_ae7fa197ef920048" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn1); // }} "" // {{ 1591 1 0 "00ac351d_bc51_41e5_b300af93d6893fa5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn2); // }} "" // {{ 1592 1 0 "2aaf8702_2d08_48ee_be96815ca77463c9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn3); // }} "" // {{ 1593 1 0 "67fcb56e_9f42_4739_a5ee322f12443a17" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn4); // }} "" // {{ 1594 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < 4;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 1595 1 0 "a23ae2ed_5b02_41a0_a69215d0b80fde4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" keyName = StrConcat2(Translate("step-return"), loopCounter1); // }} "" // {{{ 1596 1 0 "9b92ac94_8c71_4b77_95ac0c691427c4bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" varType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1597 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "s") { // }} "" // {{{ 1598 1 0 "1497ea6a_46ab_4ee8_b7951f24b533e644" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1599 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1600 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "f") { // }} "" // {{{ 1601 1 0 "61772f9e_fea3_4011_bba06b7fe66e8b0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1602 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1603 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "i") { // }} "" // {{{ 1604 1 0 "28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1605 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1606 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1607 1 0 "0a0447b8_96fb_495a_90dfa8f1e2c488ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 1608 1 0 "b2a13d10_b443_4fc0_aa0baa2a23cddafe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 1609 1 0 "0adf40b4_5c73_46d8_8e6042c6dfd32d86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 1610 1 0 "5a5dabeb_e3ed_4730_ab86839e00f75077" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendHHSReturnToServer" "End" } // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "Begin" private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer_EightOutputs" "InitLocals" // }} "" // {{{ 1624 1 0 "a5a7b215_f4cb_4951_82e1faf532cd7222" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 1625 1 0 "9480693e_99ec_4cfd_aa9c8f48e76ee42f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 1626 1 0 "3f068696_35bd_4060_8b291470a817f628" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 1627 1 0 "b68a52fb_e141_4e4c_b5e7bbcbf0c9817f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 1628 1 0 "8ab4a139_9629_43b7_98f13d1058881e4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 1629 1 0 "1417a4bd_aea8_4b36_8a7a05739a789ecf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 1630 1 0 "24b6213e_470e_468a_86dc55b44ff96b95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 1631 1 0 "42403d87_ddb6_4bee_8fc6ad09efb7573a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return5"), stepReturn5); // }} "" // {{{ 1632 1 0 "8493044a_674d_4139_90fa1c7a00050abc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return6"), stepReturn6); // }} "" // {{{ 1633 1 0 "b43cf915_ef0d_4d62_985deae88bcd6c18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return7"), stepReturn7); // }} "" // {{{ 1634 1 0 "584d78fd_87d0_4502_a6d089cfaf888318" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return8"), stepReturn8); // }} "" // {{{ 1635 1 0 "711dbc6f_e5c4_40a0_bef5785dc99707ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return9"), stepReturn9); // }} "" // {{{ 1636 1 0 "47856892_8af4_409f_88723a44ebe61362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 1637 1 0 "e5054174_6f3f_4356_8dc30683be948abe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 1638 1 0 "e21196c3_6b8f_47e5_a2888114650b2ec8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 1639 1 0 "3fec97a3_9f33_4fef_afe5355188bf56d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=stefa$$valid=0$$time=2023-01-24 20:18$$checksum=ea998bb2$$length=084$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx1C7B.tmp ================================================ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx1DE8.hsl ================================================ namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HslHamHeaterShakerLib.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "SchedulingDev\\HSLAppsLib.hsl" } namespace _Method { #include "STAR_OEM_toolkit_pH.hs_" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" } namespace _Method { #include "STAR_OEM_toolkit_centrifuge.hs_" } namespace _Method { #include "STAR_OEM_toolkit_MPE.hs_" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Module.hsl" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Washer Module.hsl" } namespace _Method { #include "Hamilton MPE2\\HSLMPELib.hsl" } namespace _Method { #include "Hamilton Centrifuge\\Hamilton Centrifuge.hsl" } namespace _Method { #include "Hamilton pH Module Controller.hs_" } #include "STAR_OEM_Test.res" /* {{ 2 "LibraryInsertLine" "" */ // }} "" variable loopCounterMain; variable msg; object objJSONFromServer; variable commandFromServer; variable initializeAlways; variable o_stepReturn; object objJSONToServer; sequence seq; variable tipSequence; variable sequenceCounting; variable channelVariable; variable channelUse; variable labwarePositions; variable aspirateSequence; variable v; variable arrayOfVolumes[]; variable liquidClass; variable aspirateMode; variable capacitiveLLD; variable pressureLLD; variable liquidFollowing; variable submergeDepth; variable liquidHeight; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable airTransportRetractDist; variable touchOff; variable aspPosAboveTouch; variable o_liquidLevels_mm[]; variable o_liquidLevels_mL[]; variable o_stepReturn2; variable o_stepReturn3; variable dispenseMode; variable dispenseSequence; variable dispPositionAboveTouch; variable zMoveAfterStep; variable sideTouch; variable wasteSequence; variable useDefaultWaste; variable reducedPatternMode; variable aspirateVolume; variable o_stepReturn4; variable dispenseVolume; variable tipEjectToKnownPosition; variable carrierName; variable barcodeFileName; variable barcodeReadPositions; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable lidSequence; variable plateSequence; variable toolSequence; variable transportMode; variable widthBefore; variable gripHeight; variable gripWidth; variable gripSpeed; variable gripperToolChannel; variable checkPlate; variable zSpeed; variable gripForce; sequence lidSeq; sequence toolSeq; variable xAcceleration; variable platePressOnDistance; variable ejectToolWhenFinish; object objHttp; variable blnReturn; variable blnSuccess; variable usedNode; variable deviceNumber; variable action; variable sampleInterval; variable shakingToleranceRange; variable id; variable monitorResult; variable firmwareVersion; variable serialNumber; variable command; variable parameter; variable plateLock; variable shakingAccRamp; variable shakingDirection; variable simulate; variable startTimeout; variable toleranceRange; variable securityRange; variable intTrace; variable shakingSpeed; variable shakingTime; variable temperature; variable waitForTempReached; variable inverseGrip; variable liftUpHeight; variable retractDistance; variable tolerance; variable labwareOrientation; variable movementType; variable collisionControl; variable gripMode; variable showCollisionCheckDialog; //global device HxFan ("STAR_OEM_Test.lay", "HxFan", hslTrue); variable refillAfterEmpty; variable chamber1LiquidChange; variable chamber2WashLiquid; variable chamber1WashLiquid; variable chamber2LiquidChange; variable FirmwareCommand; variable FirmwareParameter; variable CommandListElement; variable CommandListLength; object FirmwareCmdDict; variable yDisplacement; variable zDisplacement; variable xDisplacement; variable yOrigin; variable xOrigin; variable zOrigin; variable ControllerID; variable SimulationMode; variable ErrorCode; variable DeviceID; variable TargetTemperature; variable StopAllDevices; variable TraceLevel; variable Comport; variable Simulate; variable ModuleName; variable Angle; variable inputSequence; variable barcode; variable seqFirstPosition; variable seqSecondPosition; global device ML_STAR ("STAR_OEM_Test.lay", "ML_STAR", hslTrue); variable ModuleID; variable probePattern; variable pH_probe_1; variable pH_probe_2; variable pH_probe_3; variable pH_probe_4; variable Variance; variable Timeout; variable CalibrationLevel; variable CalibrationValue; variable CalibrationTemperature; variable Precision; variable Temperature; variable ChargeCounter; variable ReplacementDate; variable BatteryCondition; variable ActualCharge; variable MeasurementCounter_Probe_1; variable MeasurementCounter_Probe_2; variable MeasurementCounter_Probe_3; variable MeasurementCounter_Probe_4; variable HardwareNumber; variable Revision; variable SerialNumber; variable PartNumber; variable Selector; variable VoltageData; variable Day; variable Year; variable Month; variable Charge; variable AutoCharge; variable AutoChargeLevel; variable Probe; variable Mode; variable ProbeNumber; variable pHHighValue; variable pHHighVoltage; variable pHLowValue; variable pHLowVoltage; variable CalibrationSlopeRatio; variable CalibrationOffset; variable CalibrationSlope; variable CycleNumber; variable NodeName; variable Label; variable AlwaysInitialize; variable intPresentPosition; variable Direction; variable CloseCoverAtEnd; variable ArrSpeed; variable ArrAcceleration; variable ArrDuration; variable i_ArrDuration[]; variable i_ArrAcceleration[]; variable i_ArrSpeed[]; variable Decelleration; variable Speed; variable Acceleration; variable MaxRunTime; variable SpeedSensorTrip; variable TimeLeft; variable GravitySensorTrip; variable CurrentSpeed; variable TemperatureSensorTrip; variable ProfileStatus; variable RotorDriveRunning; variable Deceleration; variable DeviceName; variable AdapterDeviceID; variable InstrumentName; variable PortNumber; variable MPEOptions; variable ComPort; variable BaudRate; variable CollectionPlateHeight; variable OffsetFromNozzles; variable NeedleOffset; variable WellVolume; variable FlowRate; variable SourceID; variable Needleoffset; variable PlateHeight; variable WellDepth; variable EvaporateTime; variable FollowRate; variable EvaporateTravelDistance; variable NozzleHeight; variable FilterHeight; variable WasteContainerID; variable FullReading; variable CapacityVolume; variable CalibrationDate; variable EmptyReading; variable blnReset; variable CurrentGasTemperature; variable Heating; variable CurrentEvaporatorTemperature; variable MinimumGasTemperature; variable MinimumEvaporatorTemperature; variable MaximumEvaporatorTemperature; variable MaximumGasTemperature; variable ManifoldPressureSensor; variable HighPressureSensor; variable InputPressureSensor; variable LowPressureSensor; variable MaximumTemperature; variable MinimumTemperature; variable VacuumActive; variable VacuumRunTime; variable DisableVacuumCheck; variable Smart; variable SensorReading; variable ControlPoints; variable ReturnPlate; variable Volume; variable Seconds; variable DefaultTemperature; variable MeasureTime; variable MeasureHeight; variable CalibrationValue1; variable TempSoln1; variable TempSoln2; variable CalibrationValue2; variable blnCalibrateDynamically; variable CalibrationValueRef; variable TempSolnRef; variable Module; variable Reference; variable Calibration1; variable Calibration2; sequence seqModule; sequence seqCalibration1; sequence seqCalibration2; sequence seqReference; variable CalibrationTime; variable arrCalibrationSlopeRatios[]; variable arrpHValuesReferenceSolution[]; variable CalibrationSlopeRatios; variable pHValuesReferenceSolution; variable BluetoothPort; variable NumDryCycles; variable NumWashCycles; variable DryTime; variable Gripper; sequence seqGripper; variable WashPosition; sequence seqWashPosition; variable DryPosition; sequence seqDryPosition; variable DryCycles; variable TransportChannel; variable WashCycles; variable arrpHValues[]; variable flt_pHValues; variable seqMeasure; variable ProbePattern; variable seqMeasurement; variable MeasurePositions; variable hssErrCode; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" STAR_OEM_TOOLKIT::_InitLibrary(); STAR_OEM_TOOLKIT_PH::_InitLibrary(); STAR_OEM_TOOLKIT_CENTRIFUGE::_InitLibrary(); STAR_OEM_TOOLKIT_MPE::_InitLibrary(); HAMILTON_PH_MODULE_CONTROLLER::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{{ 1 1 0 "e7768ad9_4016_4422_bd83f5785d03ceda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnReturn = HSLHttp::Initialize(objHttp); // }} "" // {{ 2 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnReturn != blnSuccess) { // }} "" // {{{ 3 1 0 "62c131b4_44b9_4249_8e0a3205a25b21b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); // }} "" // {{{ 4 1 0 "fb18125e_b294_4554_912c3d447526996e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 5 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 6 1 0 "ee92e29b_e94c_46cf_a67851f3be61c805" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Hi, I�m a VENUS method.")); // }} "" // {{ 7 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; // }} "" // {{ 8 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "de417132_351a_4ad8_80c71b1863d4a870" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" commandFromServer = Translate(""); // }} "" // {{ 10 1 0 "d9c97239_3c9d_4992_8fb5820ae5721d90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate(""); // }} "" // {{ 11 1 0 "57da7835_7495_4b16_8b82897289efbd11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn2 = Translate(""); // }} "" // {{ 12 1 0 "cf024fcc_3594_4355_b33f4bd8c8bdfb4e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn3 = Translate(""); // }} "" // {{ 13 1 0 "9ed0b80d_8518_474f_a94d8f843a6158fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn4 = Translate(""); // }} "" // {{ 14 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 15 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 16 1 0 "0257e5d3_7b99_47be_a062950a2b200664" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" msg = waitForGUItoContinue(); // }} "" Trace("JSON received from Server:", msg); // {{{ 18 1 0 "36be63f7_a79c_44a4_b1dc636a536612bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONFromServer); // }} "" // {{{ 19 1 0 "5c2b861d_97f9_4e18_a5fce25e78026299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::ParseJson(objJSONFromServer, msg); // }} "" // {{{ 20 1 0 "562abca5_8891_402a_b8a7c5ba56301a86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); // }} "" // {{{ 21 1 0 "cb002e33_cc71_4a25_890fa8f9f5d982a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("id"), id); // }} "" // {{ 22 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 23 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 24 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "initialize") { // }} "" // {{{ 25 1 0 "773dbb38_0414_403d_b2ff24100c7cf1fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); // }} "" // {{{ 26 1 0 "97af1c08_2914_4f72_b27c685f11b30bb6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); // }} "" // {{{ 27 1 0 "b3ab11e2_0297_446f_9cf37ca7c0c9d19f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Init step return:"), o_stepReturn); // }} "" // {{{ 28 1 0 "57d4e0cd_327e_4cac_8e83a7da6222dda0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 29 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 30 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 31 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 32 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 33 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipPickUp") { // }} "" // {{{ 34 1 0 "53e1cfb5_1fde_491f_bfd878eceda16ba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 35 1 0 "f0e9e31f_d871_4632_bd466e43fc38c771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 36 1 0 "e6311b13_2132_40e0_aff0b5556205c32a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 37 1 0 "cb659ed1_5f0c_41e8_8a060ec0b650c589" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{ 38 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 39 1 0 "6699226b_6c7b_4b79_95b8017162b433b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 40 1 0 "bd13798f_62e7_4dd2_8e91769d48d10fc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 41 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 42 1 0 "ce13caa6_634b_4dec_8a6c3ea74b144e95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 43 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 44 1 0 "29f69958_d99b_455a_93c7b0480bfd1658" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn); // }} "" // {{{ 45 1 0 "732425fd_a199_4354_8479d821ee834e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 46 1 0 "22f00193_1056_456e_a515d156eee56e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 47 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 48 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 49 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 50 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelAspirate") { // }} "" // {{ 51 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 52 1 0 "55ee3109_036b_4acb_8a15175f3316656f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 53 1 0 "a5b3e5ac_4910_4a4a_8e20bdb7f61836e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 54 1 0 "ce04189a_96e4_4bdc_aedc8a68bf64647b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 55 1 0 "882daff3_cc25_4778_aec6a937fc87347c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 56 1 0 "7f7b9f83_5611_4a3b_b5c120689696addb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 57 1 0 "39e464b7_0def_403b_a02f5dd2a358dbd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 58 1 0 "2e2739aa_8eb6_44e0_b887ea00b04acac0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 59 1 0 "9408edd8_3cee_43e0_976b4a6fabf5f4ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 60 1 0 "a2848877_3518_4d1d_95f77c1f313003e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); // }} "" // {{{ 61 1 0 "4b5ce3d0_91f4_4c14_aaf1cad34e0caf60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" Trace("Bookstart"); // {{{ 63 1 0 "12892ce3_3bc6_4165_b3b6ae0eacad20e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" Trace("Bookend"); // {{{ 65 1 0 "15bd5af3_2da1_420b_beb398dc2347a0ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 66 1 0 "4fe61fb4_bb39_4728_96b8c6959f4943ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); // }} "" // {{{ 67 1 0 "ba68c240_2397_4872_949ee1ee984595c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 68 1 0 "baac19fc_9f21_4e8c_b833f2a1ba2433f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 69 1 0 "253130f8_f599_4ef4_9d5a15e2cb89d1eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 70 1 0 "51233931_483f_4deb_a8627b909d6c9116" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 71 1 0 "bf0c65ba_7847_4768_92ebbe8adc6568c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 72 1 0 "30a6715c_b6c6_4d86_b5c02f3da440e309" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 73 1 0 "6eb82b6e_8093_461e_afc712cab07398dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 74 1 0 "3f8b6af1_7872_4a20_92bf2c4507ea9f31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); // }} "" // {{{ 75 1 0 "7dd1b818_5a89_4b03_82734e6f4d7b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{ 76 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 77 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 78 1 0 "cb2b67f0_7384_4a41_831de652f92d4c85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 79 1 0 "29a868b4_7800_4747_b14eaf0f2c10ba40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 80 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 81 1 0 "08f63789_65f1_4e7d_996dc22e8f33d416" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 82 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 83 1 0 "8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 84 1 0 "7cb70e6b_15bb_4380_b62150df065d208f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 85 1 0 "4714958b_0632_4de2_983c7fe9de68df6c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 86 1 0 "bd40f564_16d7_4037_aef8eebfe28a4362" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 87 1 0 "18bf536c_98f4_4345_86a103db4a9b68a1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 88 1 0 "d60cd9aa_083b_4487_8d6218cee02fa4cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 89 1 0 "e86187c0_0d19_453e_be1c5a401d0d5d93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 90 1 0 "d66c2dae_4cc3_4a31_bafe46d1dd63e790" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 91 1 0 "d23f143d_290d_4d0f_b368241a6a9adaed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 92 1 0 "0428e844_3191_4cde_b7f3544f34c833f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 93 1 0 "a7ca006f_941c_4b31_9749313ad9b4e079" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 94 1 0 "8c97ba72_f880_4504_baee8b8db3d13310" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 95 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 96 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 97 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 98 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelDispense") { // }} "" // {{ 99 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 100 1 0 "909bc255_6ca1_4700_bc102ccb34ae5be4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 101 1 0 "fd48dd93_9f42_4df0_9f659e27a5552543" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 102 1 0 "3ff3f492_86a5_40af_a3deabccbab3898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 103 1 0 "3cbb883f_48ae_40fe_afe67da944df94b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 104 1 0 "ab1033bc_1216_450a_9fb60655a1f1a21a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 105 1 0 "0bc1541f_26d5_44d6_8db6ae336fec17bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 106 1 0 "8c10cc29_c05e_4cea_9ed559249651e805" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 107 1 0 "3e0373da_7c7c_46ab_9b77fba19915662e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 108 1 0 "b98fdc49_cdcb_4f3c_81df0b76eafa1411" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 109 1 0 "7458d32a_402a_4215_b52378c78468ec80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 110 1 0 "5e14f2ce_c932_474b_be03f3c043c700e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 111 1 0 "c2010d1d_5a78_4871_a835a6613a1237bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 112 1 0 "d4a6e6a3_0158_45f1_9c359d8e48e01bed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 113 1 0 "011e9828_5413_40c1_80d0c3bdde1c6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 114 1 0 "2d7a4942_b2ce_43a2_8decf49fa0c9576c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 115 1 0 "ad9f0bbf_e495_41c5_898a3be32bb16f2b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 116 1 0 "5c734886_aa50_424c_b89f6894bc37dd8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 117 1 0 "d1bc00cc_4286_4409_b1c49b6350e7e6ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 118 1 0 "b178ce99_db9e_4453_bed28d4ce0457bc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); // }} "" // {{{ 119 1 0 "1b38ad88_3c65_4e58_812f9ed32ce32485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{{ 120 1 0 "f34066f1_63f9_474f_8a9c41e56962dc74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 121 1 0 "6b94916e_355b_4ee9_8eb4f1b49c95fea4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 122 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 123 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 124 1 0 "e962dd26_3672_4418_bd3c40e9929929eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 125 1 0 "6257966a_6b39_41c8_a057a79b8e39cd4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 126 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 127 1 0 "3f230e40_8bd9_4235_b88cd0ca80799661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 128 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 129 1 0 "8d82ff40_d831_430b_97d97c01d2a4474e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 130 1 0 "ac0ad5a7_d00b_46fe_a18f94f8dab3863c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 131 1 0 "b7f86b6c_03a4_4e12_a05e5e8bdc958b75" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 132 1 0 "9bfa8704_2ae0_4a63_83d09fddbacfd336" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 133 1 0 "860b660a_6947_4c88_a2a039bf65040bf5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 134 1 0 "797f0eef_5bb2_4a2e_a178af74f4892bd7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 135 1 0 "2753c24e_c4dc_402d_866b6bc8691ecc1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 136 1 0 "1ac127fd_b830_496f_b4d4b9671137ebff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 137 1 0 "3ee5d751_d3a5_468a_b539c4f0ff22023e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 138 1 0 "b86d492c_446f_4921_97140cfd462ace87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 139 1 0 "e049946d_6322_4b39_9c46a2d0eb345528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 140 1 0 "531432f5_ef8a_416e_8be28a07ae9b0d25" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 141 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 142 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 143 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 144 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipEject") { // }} "" // {{{ 145 1 0 "69be671e_7cdd_48d3_af136435754c1d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 146 1 0 "f3444c0f_4863_4fdd_94a025b682d8a6d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 147 1 0 "12ad2f39_c160_4afc_9f6ffce7e3ddb433" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 148 1 0 "2883bb64_2fe3_47ca_996e11434afc57cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 149 1 0 "10c3b13e_7129_4cfd_b88b29d0bbc31a28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); // }} "" // {{ 150 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (useDefaultWaste == 0) { // }} "" // {{ 151 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 152 1 0 "655bc92f_08a8_4c16_a0276997aec081ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 153 1 0 "a3a0b5ef_85c0_4552_a28b3356d7886eb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 154 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 155 1 0 "efadb8c3_c431_4ed4_a739a951c05ee518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 156 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 157 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 158 1 0 "2dda50b6_7f82_4e8a_a1d203715119213a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 159 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 160 1 0 "7fa61e34_a1f2_4b99_8f6bed13c6ce120f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn); // }} "" // {{{ 161 1 0 "a7db5128_f8e4_4afe_81f46b2cc86e608d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject step return:"), o_stepReturn); // }} "" // {{{ 162 1 0 "683607f4_928f_4cea_b901fe3502404424" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 163 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 164 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 165 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 166 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 167 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 168 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipPickUp") { // }} "" // {{{ 169 1 0 "1f82c33f_a085_47cc_85dbbde3e42a53c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 170 1 0 "9f9fe665_47a2_4a12_961460021d1f09f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 171 1 0 "743960d2_9d0f_4ccf_848662247e3211c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 172 1 0 "b737602c_63e8_4c4c_b47f40cb815914ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); // }} "" // {{ 173 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 174 1 0 "00bd1831_c335_40f5_b706f0ffadbe2890" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 175 1 0 "1f16418c_8fa7_44a5_a6db75dd9a79ee84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 176 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 177 1 0 "b66db4eb_9e79_4c19_909fd8d14d37cba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 178 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 179 1 0 "f3e7cbf6_0242_4463_8d4ed0db4667f7db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2); // }} "" // {{{ 180 1 0 "b080a5c6_324c_4aae_b5899dede6d863f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 181 1 0 "aa5a9c4b_0377_46ce_9b46883db15cbd7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 182 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 183 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 184 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 185 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Aspirate") { // }} "" // {{ 186 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 187 1 0 "373f30c8_ec07_4298_94d6ac75358ab1ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 188 1 0 "ef3ae377_e985_4ef6_93b005aa91c9b2b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 189 1 0 "d8eea65a_6e59_4c32_a47bae09779f9528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 190 1 0 "8eb02312_a070_491c_9758b3cdbdee0cfc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); // }} "" // {{{ 191 1 0 "6eaf8bee_b53f_4f01_87c1380bc345e386" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 192 1 0 "d9923a2f_e7cf_4f3e_81746e378a20baab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 193 1 0 "2c411993_e3fc_4753_9a90308b226078a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 194 1 0 "5d900896_b2b9_442b_b24294b9bbfbdaad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 195 1 0 "21149e9e_21c9_4ddd_93e07b693e3ab3fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 196 1 0 "bcefef03_102b_4887_adad59c2fb7ad551" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 197 1 0 "9665b0a3_35e8_47e9_b14ac1a4818cfa6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 198 1 0 "ff93d28b_afe9_47e7_9b6eb50d6845384f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 199 1 0 "ef43b824_fd38_42d4_9e932904dbf14813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 200 1 0 "b0378457_e370_448b_bfd6955c05e57bcb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{ 201 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 202 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 203 1 0 "615bcff6_e9d5_4303_a5d5826b2e2548dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 204 1 0 "cf4ad428_945e_4921_9441ee34cf9c96bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 205 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 206 1 0 "86397ec2_2ee5_4ec1_8bec47d8e87584b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 207 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 208 1 0 "48f88263_72c1_4df2_865181cffed9feee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 209 1 0 "f1b764e8_e556_4d08_bb83bdc12dc64a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 210 1 0 "164c104a_cf5f_46de_b23a098a18b3fdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 211 1 0 "ee779f77_51a9_46d7_b58b7bcaf13519f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 212 1 0 "e874eb6d_1e97_4590_95d9b10cb059c935" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn4); // }} "" // {{{ 213 1 0 "0ca1df86_a344_45fd_b384e13ba44c5ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 214 1 0 "2497228e_672e_4c95_9f31679fe87bbe1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 215 1 0 "e4930eee_c625_4acb_a81c05e149a1a218" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 216 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 217 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 218 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 219 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Dispense") { // }} "" // {{ 220 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 221 1 0 "78cba921_2a37_4b4a_91ef7fbe81fcddd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 222 1 0 "b58b4cbd_16e9_4444_9037061e29bc5614" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 223 1 0 "0ab910ec_826d_4c84_bac7ed9564f3bdab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 224 1 0 "84d664b7_70d0_4136_bdfd4de2aa760ad8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); // }} "" // {{{ 225 1 0 "18becc6a_2df4_4281_8b16ade9038979f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 226 1 0 "68c565db_e5ed_44e8_b3846a1d98034e76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 227 1 0 "6a4221a8_9488_48f9_8381b1bc0f0c960d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 228 1 0 "45dcb271_e326_42fc_b8684816d3ffdc93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 229 1 0 "14552b13_e77b_4fb7_9020445ecc5ade21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 230 1 0 "91783f87_af6f_446e_a74fb1725f17d282" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 231 1 0 "e2e7f702_1710_49eb_9b1046dbf4f143e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 232 1 0 "1817aa70_86fa_4318_a8e46569701623e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 233 1 0 "50bd6734_10d5_4291_b40eb708539514fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 234 1 0 "ad5fbb01_d809_4b7d_b858ed597709f28f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 235 1 0 "09566247_6b2d_4c73_b43fe303a30f89c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 236 1 0 "3ead74f7_3b5c_4b21_84d2488c2eceab73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 237 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 238 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 239 1 0 "835f8470_7e8c_40ff_a48abcc85d6b778b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 240 1 0 "059394fc_e924_4d57_b1b85f79f9947fa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 241 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 242 1 0 "6c4be3a7_a450_459c_90545a208f9f459f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 243 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 244 1 0 "c164a94e_2926_462e_9487870d403fe8b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 245 1 0 "86c0fb85_8aaf_4bec_9f6f1f642206487f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 246 1 0 "77047add_8050_4522_ad477b97455a8327" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 247 1 0 "5b2c6f23_9a69_489d_b52179c78c03e48f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 248 1 0 "a9a9244b_829f_4c5b_9a64f1018b029453" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn4); // }} "" // {{{ 249 1 0 "781580a9_199e_4373_b48bb55a97f8a463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 250 1 0 "1867ae44_25f8_4926_ae081e490fd5aa0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 251 1 0 "dbb3b30c_b4a1_4cf6_a24b62b63f155369" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 252 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 253 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 254 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 255 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipEject") { // }} "" // {{{ 256 1 0 "7cf9db16_d78c_4aa0_825cc3c2c22f287c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 257 1 0 "ccca7a97_c22a_4f20_b2d9a60d67850eee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 258 1 0 "a319f75e_77eb_4845_856516ce060213f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 259 1 0 "d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); // }} "" // {{ 260 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipEjectToKnownPosition == 0) { // }} "" // {{ 261 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 262 1 0 "24eeb6dd_1e20_422c_a1a8199cbca73b33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 263 1 0 "5197334f_cde5_4d52_9c528a0c4f7401b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 264 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 265 1 0 "110b82e1_8a5b_48e4_a3adbab701cffc8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 266 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 267 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 268 1 0 "fa32bbf8_8345_4897_aaf09d112d374893" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 269 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 270 1 0 "ef087a4e_684e_4d98_87109abf154fbc85" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2); // }} "" // {{{ 271 1 0 "328216cf_22dd_47a1_9f1ba089b1ac7702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn); // }} "" // {{{ 272 1 0 "53265943_7975_4275_ad98df313054f97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2); // }} "" // {{{ 273 1 0 "c13d9773_7daf_4c3c_9064fdd4f7c7008f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 274 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 275 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 276 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 277 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 278 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "loadCarrier") { // }} "" // {{{ 279 1 0 "76d739d0_ff4a_490b_9c47f411d29ef7a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 280 1 0 "ca623aa7_ed48_45fa_9f4055fb8e08c3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); // }} "" // {{{ 281 1 0 "64a8e193_7e7e_412e_8a0657f0e832eaef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); // }} "" // {{{ 282 1 0 "39e6aaef_5cce_4915_b5b6ede214c7371e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs); // }} "" // {{{ 283 1 0 "1d4d284f_fd1e_4f8a_a2158846ad6a67f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Load carrier step return:"), o_stepReturn); // }} "" // {{{ 284 1 0 "358b7fc3_40a2_418b_9d61d94eef1556f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 285 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 286 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 287 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 288 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "unloadCarrier") { // }} "" // {{{ 289 1 0 "797d23a7_c62a_471a_a52b10fea8bcc154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 290 1 0 "f1c35790_adb7_49eb_a96864d8b1d66cea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn); // }} "" // {{{ 291 1 0 "6e6ded71_3f99_46c5_9362117beb502a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn); // }} "" // {{{ 292 1 0 "8713fee4_6b93_4296_a5396254fd404d52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 293 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 294 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 295 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 296 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 297 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripGet") { // }} "" // {{ 298 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 299 1 0 "c4847ae5_e161_4f23_aa432eda22de28bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 300 1 0 "022a5cdd_3f4f_4e18_927c174fc57a68a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 301 1 0 "3e462067_5eb3_49c3_b7bf6a27de9ce3bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 302 1 0 "f7004881_3f0d_4621_a88d55dec8fc0d30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 303 1 0 "262b36ba_6d86_4009_bdc9a3881db7074e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 304 1 0 "be44b37f_7cec_4f69_81c223f2c30b120b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 305 1 0 "3dea3158_65f8_44bc_8d06a31ce3458dab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); // }} "" // {{{ 306 1 0 "308b2aa2_5970_4692_858049c6559d6ad0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 307 1 0 "756d0f81_3645_4a49_a0c2259581e11498" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 308 1 0 "cdbf11ba_b1f8_4016_811240a02705f1fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{{ 309 1 0 "625df597_c6c8_4e4a_b956e9580bfbc568" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); // }} "" // {{{ 310 1 0 "3576d134_8507_4e47_9c2bcc3dce8c026d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 311 1 0 "5b9c06ad_9081_4b6b_97e50cc87623b888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 312 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 313 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 314 1 0 "d1f3c2ac_9c68_4200_a3506bbbed8e42a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 315 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 316 1 0 "f1d1c43b_a9dd_4573_a69dd7c0e79eea40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 317 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 318 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 319 1 0 "4d304110_107e_412e_909bb84008a244de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 320 1 0 "8f8b1ba1_af12_4cdd_acf2096420ede259" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{ 321 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 322 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 323 1 0 "72e31f7d_c091_4525_a5cf7001754b199d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 324 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 325 1 0 "47dfcbb5_d784_48bb_b36b97509434a3a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 326 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 327 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 328 1 0 "e6c53925_446e_468e_b0e0654b4b9d9a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 329 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 330 1 0 "c0cbb194_1b8b_4fe0_a0f706e03eaa0748" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 331 1 0 "46703217_a28e_42ce_b13c11d73ba34bfa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn); // }} "" // {{{ 332 1 0 "189164cc_2681_492f_83f072fb537648b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn); // }} "" // {{{ 333 1 0 "c8d6960a_f416_47b1_a29e2752973c0ec9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 334 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 335 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 336 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 337 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripMove") { // }} "" // {{ 338 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 339 1 0 "5755c338_faa3_4f0a_9acd4cd01a912862" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 340 1 0 "2849c819_a3dc_4328_8484ccc4785993d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 341 1 0 "32f0a8f9_3af2_42a3_90f246cc874e0e8f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 342 1 0 "791b6e1a_07b8_49cb_8122670d0871189f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 343 1 0 "036d0d84_e161_4b03_8b828dcb6b44e437" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{ 344 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 345 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 346 1 0 "e038f780_938f_4867_98f769488ca44b04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 347 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 348 1 0 "6bd2d2a1_1051_4443_a1af9b68df2876b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{{ 349 1 0 "3d8767e5_5f31_4ce5_91a11e28045ec87a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 350 1 0 "e9e0b38e_13aa_40f9_8e470eb1de09eb19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("wrong"), Translate("nowwrongere")); // }} "" // {{ 351 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 352 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 353 1 0 "064a5c1b_f450_44d6_a2042ebde115527d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 354 1 0 "ee8b8050_164a_4de8_b6ce02120236efbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 355 1 0 "be0898fe_cdb8_4ac3_a9e991e26bdb6658" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here"), Translate("now here")); // }} "" // {{ 356 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 357 1 0 "ca4b75ee_26d9_4a3b_8e3366d575348125" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 358 1 0 "ea0afc75_5bc7_4c06_ac73c2f4d5f887a0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 359 1 0 "1965d128_c7f1_4206_87e4ca1ce70c1dff" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 360 1 0 "615cbdd3_e5f2_4bc0_bb3661a2482eb770" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 361 1 0 "86fc0696_8c53_4c05_a9c0eaa58f279054" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 362 1 0 "90f602a1_fdc5_48fd_801269ecd2c3f9bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn); // }} "" // {{{ 363 1 0 "dc418b75_2d70_4034_84a767fba752b262" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn); // }} "" // {{{ 364 1 0 "ae4414d3_a939_4fdb_a0ed06f1be1506e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here here"), Translate("nohhere")); // }} "" // {{{ 365 1 0 "6379549c_caf9_409f_b293abf77f1dcfbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 366 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 367 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 368 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 369 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripPlace") { // }} "" // {{ 370 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 371 1 0 "6f38d60b_6dc5_4159_ba30360f264222da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 372 1 0 "b6ef73cf_c89c_41cc_a3b72dc5aaf70f90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 373 1 0 "c7e5f5bd_edcc_4000_9be3db81af0c79fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 374 1 0 "91ff4c39_6a86_4eda_998a5461ef6c3cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 375 1 0 "341a6f8e_b4c8_4966_b9520322d1bc2e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 376 1 0 "32792c80_3b36_4a25_8fff6b99bfcf1919" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); // }} "" // {{{ 377 1 0 "b1e5d86e_c659_4d33_9e0f83fdb20b2cb5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 378 1 0 "76b26748_4e74_45f7_85a7dc102b5fd7b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); // }} "" // {{{ 379 1 0 "ee221e8a_a662_49d8_be2ef0ed631d9527" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 380 1 0 "cbefd54c_5f0a_4a16_a0199198529b71fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 381 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 382 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 383 1 0 "ac4e7090_c3c7_4707_8d98dc55262c294b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 384 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 385 1 0 "eb5776ad_c858_4ee8_ba31f47af19e76af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 386 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 387 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 388 1 0 "1f3eb006_1b10_427e_99d0b530f1afc2ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 389 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 390 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 391 1 0 "a04c5993_bf3e_46c7_92f24c8236636b00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 392 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 393 1 0 "2455f68c_be4e_4a21_9e9e78f78f6e8e3c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 394 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 395 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 396 1 0 "ad5d98b0_9e3d_4275_90ceef06ceca045d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 397 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 398 1 0 "3321537f_63fb_48a4_90e40a2fee1cc432" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 399 1 0 "8c7e60df_f040_45c6_a939d99bcd0ac23c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn); // }} "" // {{{ 400 1 0 "24e589a9_98d7_429d_90c8afe203e96ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn); // }} "" // {{{ 401 1 0 "9d94d038_d071_4339_aaace5a2e455b240" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 402 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 403 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 404 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 405 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 406 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 407 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGet") { // }} "" // {{ 408 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 409 1 0 "4a585a30_3a23_44cc_a0948963de716cba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 410 1 0 "da3a318b_1208_4329_be1faae95ecc2e03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 411 1 0 "1f51589f_347c_497b_a7338461d92076d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 412 1 0 "622e6765_4ee3_4df5_917ca140f8b7981b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 413 1 0 "9826612b_e564_4231_8f83fdfcbd374bdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 414 1 0 "fdb52557_ae6c_42b3_925073ab7ae7a5ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 415 1 0 "171639e0_98ad_4857_a5ac346039499a33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 416 1 0 "0d4077af_b1dc_4dea_a23a163c57d96248" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 417 1 0 "60732b74_8870_48e2_be03564159cf35b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("inverseGrip"), inverseGrip); // }} "" // {{{ 418 1 0 "ffa21840_da03_4682_b62a6910caf63f45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 419 1 0 "0af9b15f_4e1b_4353_a6261def96fea256" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{{ 420 1 0 "c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 421 1 0 "74d93b97_5d7f_4593_9aeb9d83d5466e6f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{{ 422 1 0 "28d636c0_47c0_4fac_8a7b67124fd8b9f5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 423 1 0 "6f62025f_9dde_4ae6_a6b6b69efed6e381" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("tolerance"), tolerance); // }} "" // {{{ 424 1 0 "f3d51abd_651e_4b15_93eb0cea0c0384be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 425 1 0 "1b72eb1e_c220_42e0_9a34675ddc971fe7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{ 426 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 427 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 428 1 0 "fd3fbb06_b08e_4790_8e3b785ca1f8ed4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 429 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 430 1 0 "87331d5f_01ff_43a8_a0a06487f28bb2b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 431 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 432 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 433 1 0 "5f12c00c_48c1_4e2f_a24b4ba435343a8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 434 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 435 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 436 1 0 "d3e5718a_eb78_4c1f_a6467f61ccbe82df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 437 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 438 1 0 "8ebcf09f_a943_4769_b3c659e368019a32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, lidSeq); // }} "" // {{ 439 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 440 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 441 1 0 "8ce5efe3_4525_4c77_bb64f9d8dcfb6a62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 442 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 443 1 0 "8ac111e1_df50_4fcb_b465e737713459d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn); // }} "" // {{{ 444 1 0 "d9104246_d843_4a6d_85a64aa07d019020" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Get - step return :"), o_stepReturn); // }} "" // {{{ 445 1 0 "7831c2d8_4b59_455a_a0dc5cae20f325a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 446 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 447 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 448 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 449 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapMove") { // }} "" // {{ 450 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 451 1 0 "3c315cea_4ff8_4efa_8e4a5cc86a9d84d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 452 1 0 "4e2cf15d_267b_47e0_895c36b714787e13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 453 1 0 "24d68fc9_cd59_471b_9c663c4121d1a931" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{ 454 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 455 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 456 1 0 "d372f898_6d32_4d80_ab4d58340d18681d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 457 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 458 1 0 "9e573132_bd29_4d08_a1784d0e26c48700" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 459 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 460 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 461 1 0 "48db1de6_2a87_4224_b1f13fa2a75b490a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 462 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 463 1 0 "1e8e9562_41c0_4df5_9de945c44d1e8d61" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn); // }} "" // {{{ 464 1 0 "a5de7c97_d49c_4f04_b1414f1aaace7f84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Move - step return :"), o_stepReturn); // }} "" // {{{ 465 1 0 "6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 466 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 467 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 468 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 469 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPlace") { // }} "" // {{ 470 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 471 1 0 "18e9697d_0efb_4840_94a65e2a82b4ca69" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 472 1 0 "b0c35970_122b_4119_92c3801f4b8e980b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 473 1 0 "6ed697af_a110_4104_941633e154ff0071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 474 1 0 "fec1982e_3636_412d_af2eda243438f7ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 475 1 0 "21de27ac_9dc3_415b_b1d1e49e80c53591" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 476 1 0 "652aeaa7_9a2f_4c11_8bc1fc58a97ffed7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 477 1 0 "e88a5df4_d9ad_4231_89a5a03f88d0ce77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 478 1 0 "8c5aee51_3156_4fcc_b1b167552b73476f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 479 1 0 "8c257b39_8c0b_410d_a4a4e38df904008c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 480 1 0 "91e9f4c6_b7fe_4b15_83c830df3385398a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{ 481 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 482 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 483 1 0 "226bb6d1_37a1_4076_9d96fb9df69c6068" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 484 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 485 1 0 "ec2fd48b_eab9_491e_867c0fc335eea81c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 486 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 487 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 488 1 0 "e590d9b6_f690_48db_b0109a10c228d5ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 489 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 490 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 491 1 0 "82559320_1e13_40c9_b283fdfa804df6a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 492 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 493 1 0 "420daa28_bf45_407a_bd576559af75c5d0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 494 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 495 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 496 1 0 "3ed6b704_3649_4c7d_8e7d30bdb038feab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 497 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 498 1 0 "41a130e8_a745_4a20_b124272093bf38e7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn); // }} "" // {{{ 499 1 0 "b4bdf08c_e218_4bec_98c0f41e6ec3a218" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Place - step return :"), o_stepReturn); // }} "" // {{{ 500 1 0 "346b983b_d261_4447_a7cebf782db4b4d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 501 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 502 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 503 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 504 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPark") { // }} "" // {{ 505 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 506 1 0 "73602d5e_7f8d_45dc_9c1f21d41c39d0bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("showCollisionCheckDialog"), showCollisionCheckDialog); // }} "" // {{ 507 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 508 1 0 "acf5767a_7e39_4072_8e062928938984cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{{ 509 1 0 "96b1bdf6_a3f3_4530_844fc77cbf7fb944" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 510 1 0 "d03fdac4_224f_4174_924fb518a623bf65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 511 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 512 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 513 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 514 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGetFirst") { // }} "" // {{ 515 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 516 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 517 1 0 "5f9f4b8d_3b3a_48ee_89ef334a70dcb72e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{ 518 1 0 "65648900_32b3_4035_9eb5916a3314f7e9" "ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}" { variable arrRetValues[]; arrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40("65648900_32b3_4035_9eb5916a3314f7e9"); // GetFirstPlatePosition } // }} "" // {{{ 519 1 0 "63380bb7_5afe_4d65_9dc5cdf334590b4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 520 1 0 "cdb18c48_14d5_430d_9f7202f782e069da" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 521 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 522 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 523 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 524 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 525 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "FirmwareCommand") { // }} "" // {{ 526 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 527 1 0 "5f5e5c89_0c1a_497b_80c550dbc4676208" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate("FirmwareCommandList")); // }} "" // {{ 528 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(CommandListElement = 0; CommandListElement < CommandListLength;) { CommandListElement = CommandListElement + 1; // }} "" // {{{ 529 1 0 "2c2e9953_5968_4384_8b2dad24b0960278" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate("FirmwareCommandList"), CommandListElement, FirmwareCmdDict); // }} "" // {{{ 530 1 0 "7f4d5cda_c10f_4317_ba7613cd10d2e90d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareCommand"), FirmwareCommand); // }} "" // {{{ 531 1 0 "cf155262_dfb4_46b4_aff762c7b4c18d8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareParameter"), FirmwareParameter); // }} "" // {{{ 532 1 0 "471df283_02f5_4daf_9c83999e3b1fd8e1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn); // }} "" // {{{ 533 1 0 "0b8e6d49_655f_42a7_bcfdeac76a40c6e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 534 1 0 "f49f31b3_d742_44ae_a6a076108c3f9ab4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 535 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 536 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 537 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 538 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 539 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 540 1 0 "2777cb67_3095_437b_9b54d34ead8fcab2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 541 1 0 "c397d56d_00f8_4e32_bf71c20e91dcac17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ConnectIP") { // }} "" // {{{ 542 1 0 "b450ee5c_4bce_435e_b562523f18ce0142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("InstrumentName"), InstrumentName); // }} "" // {{{ 543 1 0 "13c30b43_9a94_4cd1_a907aa21f01057cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PortNumber"), PortNumber); // }} "" // {{{ 544 1 0 "68ec12ae_0e01_4827_9460e39fddef7f4d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 545 1 0 "7c482f87_e50a_44d8_88516cf7d087dbde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MPEOptions"), MPEOptions); // }} "" // {{{ 546 1 0 "8d4e01b7_ef9e_4570_a2e08f31ecacc259" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingIP(InstrumentName, PortNumber, SimulationMode, MPEOptions, DeviceID, o_stepReturn); // }} "" // {{{ 547 1 0 "005f0b12_4fb1_48ba_bcfeb961b9419149" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeviceID = StrIStr(DeviceID); // }} "" // {{{ 548 1 0 "51077fef_f212_48a6_8f6c43d7d5f5df97" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 549 1 0 "97ff097f_9089_4ac0_82438cbd6f0a9c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Translate(""), Translate(""), id); // }} "" // {{ 550 1 0 "c397d56d_00f8_4e32_bf71c20e91dcac17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 551 1 0 "2777cb67_3095_437b_9b54d34ead8fcab2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 552 1 0 "62a26733_db4f_440f_9fb51db5fef61711" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 553 1 0 "0098c030_fe6b_49bb_92b77ef5a5c7372d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ConnectCOM") { // }} "" // {{{ 554 1 0 "e8776203_e1ed_4373_8a427cb0d8b8d29f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ComPort"), ComPort); // }} "" // {{{ 555 1 0 "4c600ed2_a490_4f3e_bdadfe3b174db193" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("BaudRate"), BaudRate); // }} "" // {{{ 556 1 0 "e77abf5c_e94e_469b_82ea0f774615a671" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 557 1 0 "aaebc2c7_eafc_456e_83386035ed203694" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MPEOptions"), MPEOptions); // }} "" // {{{ 558 1 0 "3b2a8a1c_5b74_4668_b7a5ca974a7658b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingCOM(ComPort, BaudRate, SimulationMode, MPEOptions, DeviceID, o_stepReturn); // }} "" // {{{ 559 1 0 "1a9f7ef9_8c04_4517_8d26efaa81d3eff7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 560 1 0 "104f0498_cc9f_4508_8f28e3b53675ef53" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 561 1 0 "0098c030_fe6b_49bb_92b77ef5a5c7372d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 562 1 0 "62a26733_db4f_440f_9fb51db5fef61711" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 563 1 0 "94f49f46_ad96_4874_9148653f8fa3302e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 564 1 0 "1abd6ad0_87b9_4459_b74e20f9717ebd2b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ClampFilterPlate") { // }} "" // {{{ 565 1 0 "bdc39916_5944_49a4_846784d94f27267f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 566 1 0 "cf252c80_073f_4e8b_85e84a546e80666b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ClampFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 567 1 0 "16a9c218_a7c3_403c_a7c005e96566f8d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 568 1 0 "de8afcf3_ec32_4067_895aceb7a7a650eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 569 1 0 "1abd6ad0_87b9_4459_b74e20f9717ebd2b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 570 1 0 "94f49f46_ad96_4874_9148653f8fa3302e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 571 1 0 "d19e0aae_3b5d_4b88_9b9fa6cd22d67f22" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 572 1 0 "421097a4_a57a_4dec_8b9257b5d77233e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_CollectionPlatePlaced") { // }} "" // {{{ 573 1 0 "ae857f70_e319_4ada_a8b086f120e84247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 574 1 0 "a173d887_781c_4262_9fa6c81e253bd32c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CollectionPlateHeight"), CollectionPlateHeight); // }} "" // {{{ 575 1 0 "7e167a7c_dfb2_4798_814039b7430ccbae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("OffsetFromNozzles"), OffsetFromNozzles); // }} "" // {{{ 576 1 0 "aa2d8e6c_c878_40f1_a1325cb8fe399514" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlatePlaced(DeviceID, CollectionPlateHeight, OffsetFromNozzles, o_stepReturn); // }} "" // {{{ 577 1 0 "6ad949b9_e02e_4686_be660950f5282aee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 578 1 0 "99fa8dd5_ac5f_4d13_91fb69b65d2bc0ea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 579 1 0 "421097a4_a57a_4dec_8b9257b5d77233e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 580 1 0 "d19e0aae_3b5d_4b88_9b9fa6cd22d67f22" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 581 1 0 "21b7e081_f229_400f_9a51a8b8a5412447" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 582 1 0 "b7625009_1717_4db6_8d24209ff3b8dbb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_CollectionPlateRemoved") { // }} "" // {{{ 583 1 0 "fc436f5c_aaba_4906_a4074c83d00f028c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 584 1 0 "65ba4a03_7064_45c5_8ae9ffb86a3234b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlateRemoved(DeviceID, o_stepReturn); // }} "" // {{{ 585 1 0 "39ef177a_96d2_411f_97c648ff2ed91ea8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 586 1 0 "cbdb85be_569e_40cb_93e3582de4fd718f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 587 1 0 "b7625009_1717_4db6_8d24209ff3b8dbb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 588 1 0 "21b7e081_f229_400f_9a51a8b8a5412447" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 589 1 0 "38689ea3_dc56_4d7c_88d585797b9d957e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 590 1 0 "ee3d4b03_3d8c_4718_9f927c1855c7346e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Disconnect") { // }} "" // {{{ 591 1 0 "acfb16ed_a9d1_4a63_a9c0106aff00758d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 592 1 0 "f0cbe63d_fe07_4cc6_8bcb70bf9c7de9ec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn); // }} "" // {{{ 593 1 0 "b23baddd_cdbc_45fd_8c093ab349a937f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 594 1 0 "1695a8ad_2f0f_48a1_a9d8534daaa45c88" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 595 1 0 "ee3d4b03_3d8c_4718_9f927c1855c7346e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 596 1 0 "38689ea3_dc56_4d7c_88d585797b9d957e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 597 1 0 "45f798d0_f63a_4141_9f0512725c85b742" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 598 1 0 "3d8efec9_ac55_4f4d_90f0259610f7394d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Dispense") { // }} "" // {{{ 599 1 0 "d9eb3796_7e12_47f9_b6636e222cb5d878" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 600 1 0 "b1b7d9a5_44ce_4588_b1315c2c2c0a6d6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 601 1 0 "e9efebdb_3e29_4a1f_9a03447005f6b247" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 602 1 0 "6812297a_3eee_4055_8de5373a96f6eb0c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 603 1 0 "b6c33a7b_d31f_4f02_8921532db5005869" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), NeedleOffset); // }} "" // {{{ 604 1 0 "f78d0de5_185c_4061_ad416fe94f5dba58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn); // }} "" // {{{ 605 1 0 "01ebd08b_bf22_4edc_b4101325c0ed5d7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 606 1 0 "46be0614_7064_45bf_962fe4fdb2d26ad3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 607 1 0 "3d8efec9_ac55_4f4d_90f0259610f7394d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 608 1 0 "45f798d0_f63a_4141_9f0512725c85b742" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 609 1 0 "c0d12f62_bf0c_4968_8cf8102df9290745" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 610 1 0 "e0397cd6_5fd2_4820_953df1804d2989f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Evaporate") { // }} "" // {{{ 611 1 0 "eff0d502_cbda_4d56_a060ee98b8acfa1b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 612 1 0 "358b8e75_dcca_4656_8f480e051d9768ac" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 613 1 0 "11f40dee_5289_4a85_b3065e4b85d93416" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 614 1 0 "e660629d_9388_44fa_9749984b17a66bc9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellDepth"), WellDepth); // }} "" // {{{ 615 1 0 "3a86a09d_a4ea_4a34_8573e644beb7c6a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 616 1 0 "6cc724c7_a4bf_4c46_948af3e23aaa8758" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 617 1 0 "6bba2cf9_561d_4a3f_87ee7949c7ce3fbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 618 1 0 "d305f425_1c51_43f7_9c5bd6ec76d64b05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 619 1 0 "e0397cd6_5fd2_4820_953df1804d2989f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 620 1 0 "c0d12f62_bf0c_4968_8cf8102df9290745" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 621 1 0 "54c61117_4dde_492d_91df73eafbdbdf0a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 622 1 0 "ea8576f1_52df_4787_b62e82c44a5b6131" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporatePrepare") { // }} "" // {{{ 623 1 0 "04b183eb_df7f_4775_a8db9b61d0822126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 624 1 0 "7ae5dae4_f3fe_42d9_b07c545e18248898" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 625 1 0 "67e84057_0c19_4600_b6bb1cda5b345f8d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 626 1 0 "31ab1ccb_49b6_45ab_886cb04421f727d1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellDepth"), WellDepth); // }} "" // {{{ 627 1 0 "f9f854b4_d03f_44fa_866ecad432e5ee59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 628 1 0 "0e37d7ed_b49b_42c3_b9306b90a8fbecba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 629 1 0 "bdc5441b_5578_4bb1_9a5511f8d6cb37a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 630 1 0 "82509201_581c_4a09_8c1fba65491074b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 631 1 0 "ea8576f1_52df_4787_b62e82c44a5b6131" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 632 1 0 "54c61117_4dde_492d_91df73eafbdbdf0a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 633 1 0 "f877f93d_359e_486f_aabbf156b38c0fd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 634 1 0 "be0cdb40_9439_44c4_9349319653177825" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporateEnd") { // }} "" // {{{ 635 1 0 "661eb571_7a3f_452f_8cd8e71af5633aa2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 636 1 0 "ce6d86eb_0d5e_4931_9b8ae8ab7b99d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 637 1 0 "407cb55f_f828_4adb_b9a1dcfb39934436" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_EvaporateEnd(DeviceID, Timeout, o_stepReturn); // }} "" // {{{ 638 1 0 "3281176b_4d2d_43ea_b218e196deacc5a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 639 1 0 "dc7eb698_c6ab_4bce_b2eae2a106e79c26" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 640 1 0 "be0cdb40_9439_44c4_9349319653177825" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 641 1 0 "f877f93d_359e_486f_aabbf156b38c0fd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 642 1 0 "77175285_9bc0_458e_bdb99486afa263f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 643 1 0 "1d9fee0e_9129_4e05_9387d48ad64ce5b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporateWithRate") { // }} "" // {{{ 644 1 0 "f74fcc26_c2be_481c_9b4822ade43b6399" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 645 1 0 "d104e730_2dfe_46de_9499ec6975f6d3ba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 646 1 0 "ef36faf4_19fc_4253_92c3ba78e66fa81b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 647 1 0 "4e02e5d8_e2c2_421e_9e232b4b54ffc755" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("EvaporateTravelDistance"), EvaporateTravelDistance); // }} "" // {{{ 648 1 0 "d5f4fc63_608e_48f5_be8989e9f0ed73d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 649 1 0 "ce2ba2cc_4f8f_4960_a2120a80bdee1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FollowRate"), FollowRate); // }} "" // {{{ 650 1 0 "72651c9a_a411_472d_9fbc4d5cf13dbe7f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 651 1 0 "6d1ded15_26bd_4832_a66e0a7ed7ae5de8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 652 1 0 "24da9a05_6ec1_4a5d_aa357161406c5b4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 653 1 0 "1d9fee0e_9129_4e05_9387d48ad64ce5b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 654 1 0 "77175285_9bc0_458e_bdb99486afa263f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 655 1 0 "18d62f91_3389_4a05_81dcd2b1f9f35eb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 656 1 0 "5517c3d2_626c_49ed_9f300f5eb7cad266" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterPlatePlaced") { // }} "" // {{{ 657 1 0 "6ad26884_293d_471f_87d63211dbb2130a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 658 1 0 "f712b14e_2361_4388_aaa3d1b6bdd76274" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FilterHeight"), FilterHeight); // }} "" // {{{ 659 1 0 "046c36b4_609e_41ad_802334b853237e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NozzleHeight"), NozzleHeight); // }} "" // {{{ 660 1 0 "9cd1e28f_9f73_4580_933330d72a187021" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_FilterPlatePlaced(DeviceID, FilterHeight, NozzleHeight, o_stepReturn); // }} "" // {{{ 661 1 0 "77cbd1e2_38c4_46cf_8a36d8bf2fd59668" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 662 1 0 "e9b09e36_5025_44eb_8a0241793ecb2130" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 663 1 0 "5517c3d2_626c_49ed_9f300f5eb7cad266" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 664 1 0 "18d62f91_3389_4a05_81dcd2b1f9f35eb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 665 1 0 "a8bdabef_328d_4914_85c9d5a5e206e280" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 666 1 0 "ba1982ca_d913_4372_a876d2c629a3da01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterPlateRemoved") { // }} "" // {{{ 667 1 0 "c8d80340_50aa_42c3_99a4c45d2c5a2e55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 668 1 0 "7ca7dac8_386f_4d72_a80c56436e8d337a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_FilterPlateRemoved(DeviceID, o_stepReturn); // }} "" // {{{ 669 1 0 "7815e103_9108_40ec_8c501ab868674b02" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 670 1 0 "7fab13f9_e6cb_4d15_9c7359f69f1452eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 671 1 0 "ba1982ca_d913_4372_a876d2c629a3da01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 672 1 0 "a8bdabef_328d_4914_85c9d5a5e206e280" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 673 1 0 "d93f150d_eae1_437f_a22a3b0c4c9072e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 674 1 0 "df5f2b51_da1c_47c3_83076cfc5952018e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Flush") { // }} "" // {{{ 675 1 0 "ebd897c5_30b8_4f3b_9955cc2c076a2cec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 676 1 0 "8a5b6ab5_73a5_448f_97d7f2f80f295781" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 677 1 0 "7618744c_4ba2_44a3_af152e17b8f23a82" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 678 1 0 "0b45dbd2_d2ac_4bbc_b063c7256c9e2f37" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 679 1 0 "7ebe8a95_b1cb_40d0_9bbf0caa753020ff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Flush(DeviceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn); // }} "" // {{{ 680 1 0 "f4745c1d_3edb_4f49_9389682fd5db4746" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 681 1 0 "84a474ac_82c0_447e_853e8a0e803cdc9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 682 1 0 "df5f2b51_da1c_47c3_83076cfc5952018e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 683 1 0 "d93f150d_eae1_437f_a22a3b0c4c9072e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 684 1 0 "117f1e32_da28_4bc8_ad90f5a4f2bef282" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 685 1 0 "467d4218_0310_4b7c_a0b5c6ba53779408" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetContainerCalibration") { // }} "" // {{{ 686 1 0 "8399e7aa_cf6e_40a4_94cbfd345e14133a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 687 1 0 "1b0cf945_ddeb_4f68_ad8567b71c28ba9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 688 1 0 "49eec349_8ea2_4006_8740931d862a8cc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetContainerCalibration(DeviceID, SourceID, CapacityVolume, EmptyReading, FullReading, CalibrationDate, o_stepReturn); // }} "" // {{{ 689 1 0 "c87d301f_8a12_4619_b911ef3098a17d58" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 690 1 0 "7e693f5e_19bf_4fe8_93ae99fb04f02aa3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CapacityVolume = StrFStr(CapacityVolume); // }} "" // {{{ 691 1 0 "8d684024_7a1e_41a0_aff0fbb060f288c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" EmptyReading = StrIStr(EmptyReading); // }} "" // {{{ 692 1 0 "e403fc76_66e2_4138_a91ad409fba41579" "{C1F3C015-47B3-4514-9407-AC2E65043419}" FullReading = StrIStr(FullReading); // }} "" // {{{ 693 1 0 "a338088c_aba6_4925_9499261419f3fd32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CapacityVolume, EmptyReading, FullReading, CalibrationDate, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 694 1 0 "467d4218_0310_4b7c_a0b5c6ba53779408" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 695 1 0 "117f1e32_da28_4bc8_ad90f5a4f2bef282" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 696 1 0 "28cc7be8_7ef9_43fd_a8b86cc9f0a88a77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 697 1 0 "883d189a_5580_49b9_92fa9f7ea0b841bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetHeaterStatus") { // }} "" // {{{ 698 1 0 "c3c00992_49fa_4e7a_930d860185676008" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 699 1 0 "a566cb57_a308_4f8d_ab4f730e5a7dcad6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Reset"), blnReset); // }} "" // {{{ 700 1 0 "6c9f1bfd_e7d9_49a3_9ffc43f57d0b87c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetCurrentHeaterStatus(DeviceID, blnReset, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, o_stepReturn); // }} "" // {{{ 701 1 0 "4e871da2_7414_4d04_af1133edc74f8ceb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 702 1 0 "17cbeaea_77c3_429f_852469beae65bff2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CurrentEvaporatorTemperature = StrFStr(CurrentEvaporatorTemperature); // }} "" // {{{ 703 1 0 "99e68adc_1ab2_44c2_99bb0d0791bb4b03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CurrentGasTemperature = StrFStr(CurrentGasTemperature); // }} "" // {{{ 704 1 0 "19ba4b88_434c_4874_adfb9c3ce28707c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Heating = StrIStr(Heating); // }} "" // {{{ 705 1 0 "8bfee3ed_2dfd_4096_95a3693ae02cb98b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 706 1 0 "883d189a_5580_49b9_92fa9f7ea0b841bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 707 1 0 "28cc7be8_7ef9_43fd_a8b86cc9f0a88a77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 708 1 0 "6161ab17_f584_4948_917386b1caf60999" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 709 1 0 "9f1343e7_8811_4e80_a8d30414ee14e3c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetHeaterRange") { // }} "" // {{{ 710 1 0 "ff106776_2ea1_4be4_bf299c1e9f4d6812" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 711 1 0 "d35c7d7b_4e20_4729_898cf76f032dbd77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Reset"), blnReset); // }} "" // {{{ 712 1 0 "eac04ccb_1d2f_4e47_a38e27549db3d0f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetHeaterTemperatureRange(DeviceID, blnReset, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, o_stepReturn); // }} "" // {{{ 713 1 0 "7e058389_5584_400d_af8f7683d9c64549" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 714 1 0 "cef6dc8b_b0ab_4b67_80965a20bad984a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumEvaporatorTemperature = StrFStr(MinimumEvaporatorTemperature); // }} "" // {{{ 715 1 0 "e95a4014_66ab_4bd9_9396f43fb303387c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumEvaporatorTemperature = StrFStr(MaximumEvaporatorTemperature); // }} "" // {{{ 716 1 0 "82d2e7b9_6b0f_4659_b3c4af2260f72b93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumGasTemperature = StrFStr(MinimumGasTemperature); // }} "" // {{{ 717 1 0 "9d086c63_6438_4455_839b70d859d33023" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumGasTemperature = StrFStr(MaximumGasTemperature); // }} "" // {{{ 718 1 0 "1c25f8f9_a087_4d7d_b537d06915cf733a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TargetTemperature = StrFStr(TargetTemperature); // }} "" // {{{ 719 1 0 "e0990ab5_662a_4046_a221118108390ad1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Heating = StrIStr(Heating); // }} "" // {{{ 720 1 0 "f32ac914_9488_4849_9b505cfae76c21a4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, Translate(""), Translate(""), id); // }} "" // {{ 721 1 0 "9f1343e7_8811_4e80_a8d30414ee14e3c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 722 1 0 "6161ab17_f584_4948_917386b1caf60999" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 723 1 0 "cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 724 1 0 "3be8b4d4_175f_4ea5_8a5c403023c23804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetPressureReadings") { // }} "" // {{{ 725 1 0 "d6ee9000_e96e_43ee_be294bac2de3cebd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 726 1 0 "62c2838f_1e9c_4f50_a8986bd6ab2e5735" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetPressureSensorReadings(DeviceID, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, o_stepReturn); // }} "" // {{{ 727 1 0 "9202b3b4_73ed_457a_8a0eb740d92668eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 728 1 0 "49fdda2e_2786_49cf_bbf53a56bb6cf951" "{C1F3C015-47B3-4514-9407-AC2E65043419}" InputPressureSensor = StrFStr(InputPressureSensor); // }} "" // {{{ 729 1 0 "5b345de1_5fff_4ef5_b48fac2958608067" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ManifoldPressureSensor = StrFStr(ManifoldPressureSensor); // }} "" // {{{ 730 1 0 "5083be24_6502_40dc_94e99eb7e72397de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HighPressureSensor = StrFStr(HighPressureSensor); // }} "" // {{{ 731 1 0 "c5d4f5bc_5388_4cac_a5c92cce84c5358c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LowPressureSensor = StrFStr(LowPressureSensor); // }} "" // {{{ 732 1 0 "93af4507_f837_4e4d_bd0cfa9d8f20db45" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 733 1 0 "3be8b4d4_175f_4ea5_8a5c403023c23804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 734 1 0 "cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 735 1 0 "8eb4fcd2_8586_4fdc_9eaa231938c2491c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 736 1 0 "fb5f809e_bea3_4152_8c23efc086a3f4c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetTemperatureRange") { // }} "" // {{{ 737 1 0 "04868a2f_2244_4262_b16ed3464405a2c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 738 1 0 "ac4b978a_8b0e_48c8_bfcc2cb81ada8852" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetTemperatureRange(DeviceID, MinimumTemperature, MaximumTemperature, o_stepReturn); // }} "" // {{{ 739 1 0 "878c4de8_f440_43d6_aa9a22d5f30c96bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 740 1 0 "9643b7dd_1445_4981_82306a0204482dcd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumTemperature = StrFStr(MinimumTemperature); // }} "" // {{{ 741 1 0 "5fb79249_c2be_45bc_a99aecb05a4cef34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumTemperature = StrFStr(MaximumTemperature); // }} "" // {{{ 742 1 0 "57512d47_ace9_4c17_a0287a31498292bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumTemperature, MaximumTemperature, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 743 1 0 "fb5f809e_bea3_4152_8c23efc086a3f4c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 744 1 0 "8eb4fcd2_8586_4fdc_9eaa231938c2491c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 745 1 0 "3f6b43d7_b3e1_4516_9a607047551e5f6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 746 1 0 "6be26021_e618_492e_8a3a5f94a52da0f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetVacuumStatus") { // }} "" // {{{ 747 1 0 "4db40245_36cd_40c8_b0602871bedce402" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 748 1 0 "cdd4bed1_2257_47d3_bb32dfb51dd99311" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetVacuumStatus(DeviceID, VacuumActive, o_stepReturn); // }} "" // {{{ 749 1 0 "434c4447_ccaa_4ae8_b5332ea4a5247979" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 750 1 0 "2758aebe_4437_4436_9ecd66602ecc20ea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" VacuumActive = StrIStr(VacuumActive); // }} "" // {{{ 751 1 0 "1a22fa96_1f2a_4efb_8d4d1070f05128b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, VacuumActive, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 752 1 0 "6be26021_e618_492e_8a3a5f94a52da0f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 753 1 0 "3f6b43d7_b3e1_4516_9a607047551e5f6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 754 1 0 "1fae7e92_6b1f_4f2a_8504e8aba7fe0846" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 755 1 0 "18c78d3a_83f1_4e2a_9721dc575c326856" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Initialize") { // }} "" // {{{ 756 1 0 "18e9c18e_3415_4f68_b3216e3a2bb3a082" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 757 1 0 "5335daba_8a63_418b_8286e19dbc73285e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Initialize(DeviceID, o_stepReturn); // }} "" // {{{ 758 1 0 "e9ab19e3_4828_4ead_93cb698560e3faff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 759 1 0 "67b12292_2128_495d_af7839b207477794" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 760 1 0 "18c78d3a_83f1_4e2a_9721dc575c326856" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 761 1 0 "1fae7e92_6b1f_4f2a_8504e8aba7fe0846" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 762 1 0 "d96ac0b7_1237_4603_ad86dfe4672ef89a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 763 1 0 "0addb922_82a5_48e4_bf52eeb97ac93f2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_InitializeWithParameters") { // }} "" // {{{ 764 1 0 "1c9e6c43_c0a4_4fa5_96eff1d2638b4426" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 765 1 0 "a9676aeb_9a8e_4f87_866088fd8da32782" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Smart"), Smart); // }} "" // {{{ 766 1 0 "b0f5b856_a01f_4937_bce0d90f8e48a0bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 767 1 0 "3d105105_b5a2_42bf_9008c50dfb529abf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("VacuumRunTime"), VacuumRunTime); // }} "" // {{{ 768 1 0 "1b067bb0_12d6_47c9_b86eb44ca7ac70a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 769 1 0 "abffb784_24c3_4278_9404e88b2a184ec3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 770 1 0 "7f31c229_eea4_4ebc_918ad520b4e80270" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 771 1 0 "0addb922_82a5_48e4_bf52eeb97ac93f2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 772 1 0 "d96ac0b7_1237_4603_ad86dfe4672ef89a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 773 1 0 "9e52a7cb_3167_4057_8d24d034c837de21" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 774 1 0 "5875c2d2_c94b_4860_9be1bc9f16bd64b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_SetSourceConfiguration") { // }} "" // {{{ 775 1 0 "77c0d7cc_1c53_47b5_af15f1eb5743701e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 776 1 0 "1150d6cb_b379_4fab_8bf98a17ac6ed92c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_SetSourceConfiguration(DeviceID, o_stepReturn); // }} "" // {{{ 777 1 0 "2ba32cb4_0177_497e_9a7f398e17134a01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 778 1 0 "a2b6bb52_3165_4bb9_986611d0b8594d1c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 779 1 0 "5875c2d2_c94b_4860_9be1bc9f16bd64b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 780 1 0 "9e52a7cb_3167_4057_8d24d034c837de21" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 781 1 0 "cf140f83_9405_4c31_aac2bda7e3c3644d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 782 1 0 "125ed949_ace4_48a0_a45208b5a26a9545" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetSourceConfiguration") { // }} "" // {{{ 783 1 0 "24cc9f9b_b984_4405_80b21f8bbad2c171" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 784 1 0 "105846b6_bda2_49d7_bb68c38e99c676ce" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetSourceConfiguration(DeviceID, o_stepReturn); // }} "" // {{{ 785 1 0 "8fd730db_f3ad_4187_819383f962b15dec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 786 1 0 "d5402a0c_e7d8_4021_98f2bc49164541bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 787 1 0 "125ed949_ace4_48a0_a45208b5a26a9545" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 788 1 0 "cf140f83_9405_4c31_aac2bda7e3c3644d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 789 1 0 "f0e280e8_46c7_4f0f_bce33a9d98578e01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 790 1 0 "656f66da_3ff6_4ceb_b3958dda3e826289" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_MeasureEmptyContainer") { // }} "" // {{{ 791 1 0 "23e6b66b_51c5_44d2_8107b570ab035bb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 792 1 0 "c791ded2_4daa_4097_811ad01cd9dbd85e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 793 1 0 "d4c8df90_fdb5_4fb4_a5ffe9e46525c9a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_MeasureEmptyContainer(DeviceID, SourceID, SensorReading, o_stepReturn); // }} "" // {{{ 794 1 0 "6766bf7d_aaa7_44dd_beb7bd1925733781" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SensorReading = StrIStr(SensorReading); // }} "" // {{{ 795 1 0 "f566d5c3_5839_4a53_aaa0e7e76d6a96d6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 796 1 0 "ca746d4d_adf9_4d6d_b0172f1cb9e3cefe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(""), Translate(""), id); // }} "" // {{ 797 1 0 "656f66da_3ff6_4ceb_b3958dda3e826289" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 798 1 0 "f0e280e8_46c7_4f0f_bce33a9d98578e01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 799 1 0 "5be53554_4034_4654_a74514eb0d84e4a0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 800 1 0 "ce68b054_3aea_4f0f_9742872cca60f368" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_MeasureFullContainer") { // }} "" // {{{ 801 1 0 "7ad49fa3_f8ed_4826_8c29ea54aff99447" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 802 1 0 "636296bf_cd25_4c6e_a97120b96714e0a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 803 1 0 "1025d7d1_0cb5_4c03_93a47206d7a73279" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_MeasureFullContainer(DeviceID, SourceID, SensorReading, o_stepReturn); // }} "" // {{{ 804 1 0 "14a2a705_9362_44f9_aacee14e4189bc2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SensorReading = StrIStr(SensorReading); // }} "" // {{{ 805 1 0 "64c67d08_dac7_49dc_8a3082c4658649d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 806 1 0 "08dbfd92_e2cd_4c53_8d8b8afb8f41b76a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(""), Translate(""), id); // }} "" // {{ 807 1 0 "ce68b054_3aea_4f0f_9742872cca60f368" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 808 1 0 "5be53554_4034_4654_a74514eb0d84e4a0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 809 1 0 "9e79226f_dd2d_49f1_9ab8ca9ddc07f66d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 810 1 0 "52fa4642_56e3_46b8_a5170d58a3d45e6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Prime") { // }} "" // {{{ 811 1 0 "d59e0e58_e6a4_49dc_b79c3b224f9250f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 812 1 0 "81800d57_5b2e_4f60_80fb02f54c6d898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 813 1 0 "6f11abee_b07f_4e3a_a91a2bb6132b9346" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 814 1 0 "65f68e8f_a3f8_4c0e_b02af46ef0830a94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 815 1 0 "92c62640_1748_47f5_a5b2d63033fab0fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 816 1 0 "bce1d424_198d_4a66_bb5cfcef4223a4c1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Prime(DeviceID, SourceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn); // }} "" // {{{ 817 1 0 "1d0fc35a_1e8f_492f_8115484ef5e4094c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 818 1 0 "7b33278e_8337_43df_80fb1df2dc8d7e27" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 819 1 0 "52fa4642_56e3_46b8_a5170d58a3d45e6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 820 1 0 "9e79226f_dd2d_49f1_9ab8ca9ddc07f66d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 821 1 0 "90d403df_555f_4782_bc0e9655c9dda244" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 822 1 0 "5d03c560_13d7_4f4a_97c5fcb059f5d281" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ProcessFilterToCollection") { // }} "" // {{{ 823 1 0 "327328cb_2c07_4cff_b99aff475bf220b0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 824 1 0 "c67ca153_084e_49de_aa07c55210f0743c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ControlPoints"), ControlPoints); // }} "" // {{{ 825 1 0 "3ccb3a1f_4958_435b_b896ebc512029a6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("ReturnPlate"), ReturnPlate); // }} "" // {{{ 826 1 0 "d9d5add8_e82e_4761_b5b96d5f19ec1723" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToCollectionPlate(DeviceID, ControlPoints, ReturnPlate, o_stepReturn); // }} "" // {{{ 827 1 0 "952f2d23_1b1e_4ff3_b0306759a52e52a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 828 1 0 "8d9318f1_ab21_410d_a9bfb449f75064ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 829 1 0 "5d03c560_13d7_4f4a_97c5fcb059f5d281" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 830 1 0 "90d403df_555f_4782_bc0e9655c9dda244" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 831 1 0 "8e0266d7_a3cc_479c_b67864f9bf0a850e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 832 1 0 "8d5a05ba_1847_47e1_9c2f5a7b692a6bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ProcessFilterToWaste") { // }} "" // {{{ 833 1 0 "45a60cc8_74a9_4d7c_9eae47c478baa5c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 834 1 0 "1549fe1a_4e94_418f_bb409f1556ef9241" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ControlPoints"), ControlPoints); // }} "" // {{{ 835 1 0 "6a1fdb1f_ef59_4c6d_998478bb54397381" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("ReturnPlate"), ReturnPlate); // }} "" // {{{ 836 1 0 "74579c6b_27e5_47a2_9358294506ae9b62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 837 1 0 "fbfbbfb6_9858_4eee_aecb1e386ef2ee6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 838 1 0 "e8ddd588_e12c_4e6a_9318d0626a183210" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToWasteContainer(DeviceID, ControlPoints, ReturnPlate, WasteContainerID, DisableVacuumCheck, o_stepReturn); // }} "" // {{{ 839 1 0 "104d821e_df7b_4d35_9358fdbad381b0c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 840 1 0 "930b1fd7_1382_4dd3_bec3f722282383d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 841 1 0 "8d5a05ba_1847_47e1_9c2f5a7b692a6bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 842 1 0 "8e0266d7_a3cc_479c_b67864f9bf0a850e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 843 1 0 "12fe0846_bf72_4286_8bd87488438262ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 844 1 0 "88ca5064_cc0c_42e8_8cf1b70855183b72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Disconnect") { // }} "" // {{{ 845 1 0 "469fd42b_7a31_4d98_91efb31d12064e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 846 1 0 "a37b4aa9_5d2f_4e3a_8134f806b1cc7204" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 847 1 0 "86edebb2_72b8_49f4_84f46c72b1cacaaa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 848 1 0 "d8835a8b_64ef_433a_8ca5a0a1a7302e05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 849 1 0 "88ca5064_cc0c_42e8_8cf1b70855183b72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 850 1 0 "12fe0846_bf72_4286_8bd87488438262ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 851 1 0 "0f50bc52_c930_4613_a737fe8df81950f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 852 1 0 "a4cfb4d0_9450_4bea_a67986a410d3d0ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_SaveContainerCalibration") { // }} "" // {{{ 853 1 0 "37f47b7e_5737_474b_907e35429bd3b21d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 854 1 0 "03cb3efd_4e78_47b4_8c863f235820287b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 855 1 0 "b4a3f09e_102f_45d2_a582493e7a8a228f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 856 1 0 "dce24d9b_3180_4f67_ab31767613c972ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 857 1 0 "a4cfb4d0_9450_4bea_a67986a410d3d0ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 858 1 0 "0f50bc52_c930_4613_a737fe8df81950f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 859 1 0 "1c67aaeb_23b3_4adc_8b6d8285f92b9619" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 860 1 0 "49d34248_b422_4716_b7759002c58bacb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StartContainerCalibration") { // }} "" // {{{ 861 1 0 "1a03095a_5902_4617_8f24e5d961eb85be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 862 1 0 "51b0d6df_b187_4cef_88ea5af60e98888f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 863 1 0 "c754fc8f_8a46_4c44_9ac4283328bd7a51" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Volume"), Volume); // }} "" // {{{ 864 1 0 "25291ac1_062d_4046_bf617e60aa36b67c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StartContainerCalibration(DeviceID, SourceID, Volume, o_stepReturn); // }} "" // {{{ 865 1 0 "bfce4774_8c8b_4403_8e0b05cc4d59500b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 866 1 0 "bc1476ec_35b7_4ec9_989c3db696569d39" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 867 1 0 "49d34248_b422_4716_b7759002c58bacb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 868 1 0 "1c67aaeb_23b3_4adc_8b6d8285f92b9619" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 869 1 0 "dbd9907a_199c_4651_90fe7cbb03cace83" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 870 1 0 "d748a994_8826_4dce_8d07e63e712b8463" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StartContainerCalibration") { // }} "" // {{{ 871 1 0 "6443322c_5eae_4730_a5933771d05f74fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 872 1 0 "0adc10ee_e236_40cc_851240df83158a48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 873 1 0 "661975a0_0aef_4017_bdd063beab2d6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Seconds"), Seconds); // }} "" // {{{ 874 1 0 "0e7caea8_5fcb_4b6c_954eb1ae00f391a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 875 1 0 "b681e1eb_fcbe_49e6_9116e45dfa6449ea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StartVacuum(DeviceID, WasteContainerID, Seconds, o_stepReturn); // }} "" // {{{ 876 1 0 "82d37b5c_3c66_495e_9db5a04e780cef4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 877 1 0 "182c0a15_8dbc_4c35_add3bac6dba81098" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 878 1 0 "d748a994_8826_4dce_8d07e63e712b8463" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 879 1 0 "dbd9907a_199c_4651_90fe7cbb03cace83" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 880 1 0 "4dfdb03a_1a13_4215_be00ca55de734fb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 881 1 0 "1d06fa20_af8b_41f5_b3f3daa03a904ebd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StopVacuum") { // }} "" // {{{ 882 1 0 "54fa31f5_5b7c_4668_927dc6f87a39b99e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 883 1 0 "0bf5dd1e_2e18_477b_adee0722aee70510" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StopVacuum(DeviceID, o_stepReturn); // }} "" // {{{ 884 1 0 "71f9a311_dfa0_4d62_8963c5c0ad21b5f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 885 1 0 "fe23d082_725d_444c_83290693ee1daf6a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 886 1 0 "1d06fa20_af8b_41f5_b3f3daa03a904ebd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 887 1 0 "4dfdb03a_1a13_4215_be00ca55de734fb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 888 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 889 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 890 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Initialize") { // }} "" // {{ 891 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 892 1 0 "efe73491_e5b4_499e_9b3f298c8b7a6398" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 893 1 0 "5c0fe710_4afe_4b11_bf186cfe8dc87978" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{ 894 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 895 1 0 "110af9db_52cf_4a40_94724a7476c48d86" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn); // }} "" // {{{ 896 1 0 "af9bf513_7c00_47bf_aee50c7cdb333b5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Initialize: "), o_stepReturn); // }} "" // {{{ 897 1 0 "cf0a8758_8a16_429a_97f320a142945224" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 898 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 899 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StartTempControl") { // }} "" // {{ 900 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 901 1 0 "de87c5cd_92f6_45a8_9ebd6fe71ac65dbc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 902 1 0 "26949b4a_2c44_4548_8de048c4f48bd98d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 903 1 0 "8ae03ef4_8584_4957_a32601dc8599dadf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn); // }} "" // {{{ 904 1 0 "934ba752_5ec3_489b_ae5a40dd1ea20440" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Start Temperature Control:"), o_stepReturn); // }} "" // {{{ 905 1 0 "a3528747_6990_4387_8839b01b71c3b754" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 906 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 907 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 908 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_SetTarget") { // }} "" // {{ 909 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 910 1 0 "55e81697_10a3_42fb_8777236a132ff0b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 911 1 0 "0177c1a2_7380_4683_94ff93e2ed1299b2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 912 1 0 "15559e31_3f7a_4336_9cabca6758b7c253" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("TargetTemperature"), TargetTemperature); // }} "" // {{ 913 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 914 1 0 "0dcffa9d_ea82_418b_be95240c1bfd0d77" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn); // }} "" // {{{ 915 1 0 "e9b0b663_7dd3_4e55_b206572d2c8a92c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Set Target:"), o_stepReturn); // }} "" // {{{ 916 1 0 "08ecb91c_e9c8_4c61_aca2c1f89fd97bab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 917 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 918 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StopTemperatureControl") { // }} "" // {{ 919 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 920 1 0 "b67518d4_e443_4a8f_947e8c457680c63e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 921 1 0 "045fda52_2303_4244_833066fb0005c21b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{ 922 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 923 1 0 "1c8947fe_b7a1_455a_94e7672ad3593b08" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn); // }} "" // {{{ 924 1 0 "285287f8_a3f9_43f0_9799c3ad98e59b9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco Stop Temperature Control:"), o_stepReturn); // }} "" // {{{ 925 1 0 "88d1a80e_0aa9_4314_ba83bc772f71a589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 926 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 927 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Terminate") { // }} "" // {{ 928 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 929 1 0 "c963c353_41bc_4f4a_b74a666b28831950" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("StopAllDevices"), StopAllDevices); // }} "" // {{ 930 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 931 1 0 "ea2ceb94_04fa_4204_96db2caf6871231f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn); // }} "" // {{{ 932 1 0 "cd495cf5_43ff_4b30_b0baa1f2cd96cf0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Terminate:"), o_stepReturn); // }} "" // {{{ 933 1 0 "bcce43cd_2b64_4caf_89bef8978a011dc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 934 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 935 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 936 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 937 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_Initialize") { // }} "" // {{ 938 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 939 1 0 "d824843f_bf44_4e8b_bb434b50a8b65716" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 940 1 0 "45b9f513_7eaf_4e63_ae92391c28cf15b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 941 1 0 "7f058eec_3092_45ce_862c43a3e0853c7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 942 1 0 "56a4490f_902b_4043_8172466a64e332bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Simulate"), Simulate); // }} "" // {{ 943 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 944 1 0 "c44a492c_8123_465b_acd4ff374583777d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn); // }} "" // {{{ 945 1 0 "a62df2e9_44bb_4099_a4d0597fbf0705de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Initialize:"), o_stepReturn); // }} "" // {{{ 946 1 0 "de7bfb5a_b1fa_42ee_b461782a3c381af4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 947 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 948 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_MoveToPosition") { // }} "" // {{ 949 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 950 1 0 "3092ee64_df80_4e56_b3cdffc0827e3c2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 951 1 0 "4284a9cf_3ea6_42f5_ae1f62d82cd11ebe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Angle"), Angle); // }} "" // {{ 952 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 953 1 0 "5b44092b_0faa_47ae_8005717c87a0f334" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn); // }} "" // {{{ 954 1 0 "4d912417_89ed_44f2_941bfb44efed0e2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Move to Position:"), o_stepReturn); // }} "" // {{{ 955 1 0 "0540bb67_399d_468d_853dd6ca4bb1c285" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 956 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 957 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 958 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 959 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "moveSequence") { // }} "" // {{{ 960 1 0 "6e83eea3_8863_4ca0_9ff603380f0dc4d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("inputSequence"), inputSequence); // }} "" // {{{ 961 1 0 "6b8903c6_6977_458a_8409f93724089454" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 962 1 0 "77d9a84d_5987_4b3c_a76757ce15a19302" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 963 1 0 "13c73535_4a98_49e2_ba1a02c30f02035b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 964 1 0 "a33ebddb_88d8_4440_9a78132ed62d97f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, inputSequence, seq); // }} "" // {{{ 965 1 0 "1dcc4914_aa2f_439e_8a2f431687c33852" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqFirstPosition = SeqGetPositionId(seq); // }} "" // {{{ 966 1 0 "01f7bf35_3538_441d_98904fa827b05e68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 967 1 0 "a37851fe_b9d0_42fa_9ccca7dd7b352a9c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{{ 968 1 0 "fe9d84b8_86ec_4552_b187147351886cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqSecondPosition = SeqGetPositionId(seq); // }} "" // {{{ 969 1 0 "5fa8b88a_cf88_49e1_8cb574503dc60e56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(seqFirstPosition, seqSecondPosition); // }} "" // {{{ 970 1 0 "e590c4e1_91dd_41c0_82a254d4134fb734" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("First check"), Translate("Second check")); // }} "" // {{{ 971 1 0 "2127d6de_e8bd_455a_88ad20e73b767061" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 972 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 973 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 974 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 975 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 976 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_measure") { // }} "" // {{{ 977 1 0 "7c314622_d15c_42aa_a88b3d71caa33d0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 978 1 0 "9f15b042_95cd_4241_9b6262d3a4979ca7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 979 1 0 "34064a8d_5567_4fe5_b4349d0d061b9a1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 980 1 0 "0e34e118_df68_49fa_b3b9228d63deb6d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 981 1 0 "025eece8_72cd_4190_a092d806fbab65a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 982 1 0 "269c134a_bc59_4578_8da8bb7559f234a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 983 1 0 "36ec28c1_360b_46e9_9243c01dbd3874e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 984 1 0 "58445956_3204_41a3_a7acb03aaf25ccd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 985 1 0 "465c2002_18cb_4ff2_9df9e423dbc6837c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 986 1 0 "40682224_6d73_4a7c_a2e33641f1768d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 987 1 0 "e43a57a6_d83b_41d1_adf33f8f77ca7bc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 988 1 0 "12a6bd74_f75b_44d1_b6f7c26d279d9610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 989 1 0 "71b8f8bc_65c1_4e97_ab6eae03040f51dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 990 1 0 "a8ca8abd_aa7a_412c_be527eb4e81efcb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 991 1 0 "a8647b92_b569_4a75_99a5333c438b3a23" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 992 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 993 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 994 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 995 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate_Dyn") { // }} "" // {{{ 996 1 0 "de6a4eb0_04e1_47fc_86e27009d71152cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 997 1 0 "5f551457_7af9_4567_bceacdf0018c9c38" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 998 1 0 "60ee9fa5_c549_43a9_bbccdb0b14819583" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 999 1 0 "2211f515_9e69_4a1c_9603becd6fd866cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1000 1 0 "8449e1f4_6561_4b51_b91aa14423565eb2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 1001 1 0 "4429d4bb_e2fb_451f_8558de74111dbe3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Variance"), Variance); // }} "" // {{{ 1002 1 0 "a918fadc_db95_4e4b_9c445a903a59f17a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 1003 1 0 "7611bb65_5e77_408e_98384f0fec68e958" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 1004 1 0 "74418f44_640a_4b4b_88234a74841f1dbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate Dynamically"), o_stepReturn); // }} "" // {{{ 1005 1 0 "13218e03_9ac9_44ed_8af864397e865cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1006 1 0 "6257eb41_ce75_45b1_bea89bce20631222" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1007 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1008 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1009 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1010 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate") { // }} "" // {{{ 1011 1 0 "c7a809a1_1dc8_47c2_a8006c785355c50e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 1012 1 0 "27f7a889_0250_42a5_87699d0b0d52d36b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 1013 1 0 "b624fe53_a0c2_44e7_92eb12cc744fa799" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1014 1 0 "9f642188_0286_4e80_81cb485423a155c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1015 1 0 "c7530a85_7f29_4069_9a8e94318ffec0d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 1016 1 0 "849206a3_ea5c_4440_a08cdbcb81354e94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 1017 1 0 "9f9ab695_0d32_4bf4_bf5a4b0207a2c780" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 1018 1 0 "c1db8c11_4c25_4c9c_b424e06999583f09" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1019 1 0 "29e43762_b009_40ad_b93a5ac2372cca00" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1020 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1021 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1022 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1023 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Enable_Extended_Log") { // }} "" // {{{ 1024 1 0 "1791ad6e_39b2_4442_8b4470d0fc5497fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn); // }} "" // {{{ 1025 1 0 "b22a7836_ed52_4e9d_9e5df5babf8fa142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1026 1 0 "d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1027 1 0 "8d68d8f1_5b56_488b_a0676b4b50a35221" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1028 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1029 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1030 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1031 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Get_Last_Error") { // }} "" // {{{ 1032 1 0 "11bf85a6_3df2_4245_839282a900f3db71" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1033 1 0 "2c0b2633_5d81_41a1_aa90c51eb8d9d23d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn); // }} "" // {{{ 1034 1 0 "4d60f4e2_175b_4a4b_9b0bfb0f63211da0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Get Last Error"), o_stepReturn); // }} "" // {{{ 1035 1 0 "76df37d9_5928_4269_937630b417ad9a11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1036 1 0 "a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1037 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1038 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1039 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1040 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Initialize") { // }} "" // {{{ 1041 1 0 "a37d4042_a872_4da0_bf60a51312d5cc22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1042 1 0 "77530965_cb1f_4563_a1d848bb4faa3bb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1043 1 0 "295c3bab_f7f4_47d0_8075cf658ee0436f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn); // }} "" // {{{ 1044 1 0 "69f13066_cc39_48aa_85b093e1bc056907" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrIStr(o_stepReturn2); // }} "" // {{{ 1045 1 0 "3a9d7ad8_b8d0_45ee_9004e77ed5fbe471" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1046 1 0 "178d10c9_fe18_479a_b3e7922f87282612" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 1047 1 0 "66935de2_85a3_4ed0_95cddf772b15fb48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1048 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1049 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1050 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1051 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Measure_Dynamically") { // }} "" // {{{ 1052 1 0 "69eede79_0b96_4634_a4ed7995201d9b7d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1053 1 0 "6a018697_b8f4_4088_b8c650a2f028d197" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Precision"), Precision); // }} "" // {{{ 1054 1 0 "dfbe88b8_1dda_42ac_8175799123584051" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1055 1 0 "3ef27a25_aec7_4d5b_beb743b713c7526e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1056 1 0 "74a87116_8260_466d_a78e98fe0544a891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 1057 1 0 "425d37a5_2d55_4b09_a607303c754935db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure_Dynamically(ModuleID, Temperature, Precision, Timeout, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 1058 1 0 "0df3fc00_0550_45fa_b224d60b9bcd06c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 1059 1 0 "26992ae0_59eb_4678_ae304b460a7034db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 1060 1 0 "3beda7c9_5769_4578_b31431d2bab6d131" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 1061 1 0 "141952da_a201_4e85_9e446006849a95bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 1062 1 0 "f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1063 1 0 "5487a4f7_a9f8_448e_98b2cb671cb9c069" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 1064 1 0 "c8e7c221_d1e4_4818_b3e077f9aeb6a0a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 1065 1 0 "611376c4_8c68_46f2_8947cec12bb313f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 1066 1 0 "e113c0e5_7ab9_4244_86b73e7f24d2bfc8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 1067 1 0 "6286c2d7_a138_4844_bc77fd8a40a6a486" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1068 1 0 "39fd3518_8a14_43a1_8d41240f577c94eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1069 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1070 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1071 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1072 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Battery") { // }} "" // {{{ 1073 1 0 "c83f58ac_8db7_4477_bed8e57c9c784b8a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1074 1 0 "4b343bdb_fe40_4daa_8382b1265575e03a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn); // }} "" // {{{ 1075 1 0 "98f43381_9679_4d9f_b3d1238ed4c1d0c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1076 1 0 "b95371f0_7532_4426_b980d9824bf1d2b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ChargeCounter = StrIStr(ChargeCounter); // }} "" // {{{ 1077 1 0 "15324eca_50a4_4530_be7f08cdef0e6514" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BatteryCondition = StrIStr(BatteryCondition); // }} "" // {{{ 1078 1 0 "e694349e_13ad_46c1_b18f5eb4688f510e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ActualCharge = StrIStr(ActualCharge); // }} "" // {{{ 1079 1 0 "279c0c8e_1d53_437f_ac5e74b0ccffc7a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1080 1 0 "92db84c4_89c2_4902_819012506538681c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate("0"), Translate("0"), Translate("0"), Translate("0"), id); // }} "" // {{ 1081 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1082 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1083 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1084 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Calibration") { // }} "" // {{{ 1085 1 0 "250cbb57_43e2_4ca3_8ac97a4f8a848ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1086 1 0 "e2f361b4_fb8d_4bf8_b53c05720323632b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ProbeNumber"), ProbeNumber); // }} "" // {{{ 1087 1 0 "6e7357dd_030a_4f9d_b5cda736b409bbee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn); // }} "" // {{{ 1088 1 0 "aa859c68_b2ab_4304_9501a2d752587df6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowValue = StrFStr(pHLowValue); // }} "" // {{{ 1089 1 0 "7331e4fa_3e06_499a_84eed922b712aca5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowVoltage = StrFStr(pHLowVoltage); // }} "" // {{{ 1090 1 0 "3c2e720a_1c6e_4f09_afe077215aa438e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighValue = StrFStr(pHHighValue); // }} "" // {{{ 1091 1 0 "a9363a15_98fa_4a49_8451b25c27edea3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighVoltage = StrFStr(pHHighVoltage); // }} "" // {{{ 1092 1 0 "73007841_7490_489f_9c595a8e085e3a59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationTemperature = StrFStr(CalibrationTemperature); // }} "" // {{{ 1093 1 0 "49c841c4_b5cf_4ac7_9c2e87a2dc939210" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationOffset = StrFStr(CalibrationOffset); // }} "" // {{{ 1094 1 0 "d3535c95_47a6_46a6_80f73d15c4582508" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlope = StrFStr(CalibrationSlope); // }} "" // {{{ 1095 1 0 "a273e170_1488_4e16_884ae09c3a26d828" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio); // }} "" // {{{ 1096 1 0 "4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1097 1 0 "9ae40f13_d6cb_4a4e_9dc995de1da2d637" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Request Calibration Values"), o_stepReturn); // }} "" // {{{ 1098 1 0 "5aca9095_546e_4df5_b24364da04e44fe5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id); // }} "" // {{ 1099 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1100 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1101 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1102 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Probe_Data") { // }} "" // {{{ 1103 1 0 "04b155be_097f_4f2d_add1392fbf78b5f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1104 1 0 "c40a59cd_e266_4cc3_aa3dd3d526502930" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn); // }} "" // {{{ 1105 1 0 "306c68bb_ffd7_4233_b7f0c2c67678dfdf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1); // }} "" // {{{ 1106 1 0 "bbd1faef_5b8f_41ba_bf74a019b05da039" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2); // }} "" // {{{ 1107 1 0 "cb244d85_a14b_4bcb_ab81c5cdc38c6552" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3); // }} "" // {{{ 1108 1 0 "5476cf0c_49cc_4602_aec72872116d2e6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4); // }} "" // {{{ 1109 1 0 "6883841a_44f5_417f_8574566ed15ae444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), o_stepReturn); // }} "" // {{{ 1110 1 0 "fefec950_2bfa_429e_bdf791dc40dd0495" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1111 1 0 "0f6be956_31e3_4d1e_b232c4dc908ea6f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1112 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1113 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1114 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1115 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Technical_Data") { // }} "" // {{{ 1116 1 0 "3c80e1e2_a904_42ac_a3ddd5df5ca3a196" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1117 1 0 "8b2b24be_b84b_41b8_bd0f088f32554cb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 1118 1 0 "552e7bb6_cbdf_49ec_86ac28b54cae7f58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 1119 1 0 "1634fedb_a7e1_4130_ac1fb8d55f47b9e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HardwareNumber = StrIStr(HardwareNumber); // }} "" // {{{ 1120 1 0 "2cfb8725_b283_48b0_906a9741fe336744" "{C1F3C015-47B3-4514-9407-AC2E65043419}" PartNumber = StrIStr(PartNumber); // }} "" // {{{ 1121 1 0 "7b9a6dfa_9df8_40a8_9c0c39981dcf97e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Revision = StrIStr(Revision); // }} "" // {{{ 1122 1 0 "771c0483_6ea2_4299_81c7598839a5027b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SerialNumber = StrIStr(SerialNumber); // }} "" // {{{ 1123 1 0 "790984ff_e065_4212_a5c420f04d9f7e4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), o_stepReturn); // }} "" // {{{ 1124 1 0 "79aaa9cb_2db1_4f5d_8385023783e5cc82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1125 1 0 "371d6452_cf9d_4abe_9463f54ab7831231" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id); // }} "" // {{ 1126 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1127 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1128 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1129 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Voltage_Data") { // }} "" // {{{ 1130 1 0 "b6c0eb00_003a_45ed_9899c407d864455c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1131 1 0 "e4801131_30dc_4e2d_8ac9e80c0c13972c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Selector"), Selector); // }} "" // {{{ 1132 1 0 "ee48a65d_794b_411d_bb1668a267206d8b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn); // }} "" // {{{ 1133 1 0 "bf78a104_f3d4_45b6_a573a7219dcf05e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 1134 1 0 "ab32fbfb_2be2_4f6d_9c49def79adcfe31" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1135 1 0 "eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(""), Translate(""), id); // }} "" // {{ 1136 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1137 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1138 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1139 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 1140 1 0 "51fd11a2_c173_4d8a_be50512a820eb424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1141 1 0 "b1268215_064b_40bc_8b9e75cfc0edeac8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1142 1 0 "7665963b_aa9b_4a3c_ba522887f3b15ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1143 1 0 "8327c869_96c0_4394_9bf4c5b5c19f30d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1144 1 0 "5a5455ae_5598_4a29_8c5f621b0586ba79" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1145 1 0 "f534cbac_4de3_4425_85299c07c6ff73cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 1146 1 0 "12b0cc6a_4826_48ce_82c690ddf98441a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1147 1 0 "aee63add_2789_4971_b4867510d938caf6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1148 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1149 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1150 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1151 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Charge_Parameters") { // }} "" // {{{ 1152 1 0 "5e24703a_30cb_4538_aec7ba85b7c0d2a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1153 1 0 "31630603_a72b_4d8b_a21a501f5336c619" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Charge"), Charge); // }} "" // {{{ 1154 1 0 "41b8aa8b_7d8e_4351_ad9664e334fa00f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AutoCharge"), AutoCharge); // }} "" // {{{ 1155 1 0 "504d0d26_95ad_4181_a7c38162018496cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("AutoChargeLevel"), AutoChargeLevel); // }} "" // {{{ 1156 1 0 "576ecb10_c479_461f_9249f554f27e398b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn); // }} "" // {{{ 1157 1 0 "80503782_9e9a_4986_9e4bcdeac598c749" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Charge Parameters"), o_stepReturn); // }} "" // {{{ 1158 1 0 "ade249f5_6aa1_4939_90a22e6af0864e5e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1159 1 0 "4fb997db_4cdf_4b51_85bbb23941f19edb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1160 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1161 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1162 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1163 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Probe_Replacement_Date") { // }} "" // {{{ 1164 1 0 "eb0a7cc0_c83a_45a8_8bd6adbf05cadabe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1165 1 0 "c762429d_3619_4e70_9765fe207dab3d54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Probe"), Probe); // }} "" // {{{ 1166 1 0 "18bf75b8_9aa3_46d2_a3ad3bbab8c1e126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1167 1 0 "2b2bbaed_84c1_46d2_bd024b425aefa336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1168 1 0 "380453f0_b3e8_47ac_a06eb91552b3a11f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1169 1 0 "a8fcf799_ec41_4160_910a9c78e5395ae2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1170 1 0 "c95c2987_8098_48ed_9ad284801d556587" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Probe Replacement Date"), o_stepReturn); // }} "" // {{{ 1171 1 0 "4e986dcc_ee8e_4cc0_bb83628d0a0ec284" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1172 1 0 "d46fb139_6c48_4f2a_b09293a8a3509a12" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1173 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1174 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1175 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1176 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Shutdown") { // }} "" // {{{ 1177 1 0 "aec40299_6cef_4e16_ad88bccbdcae3b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1178 1 0 "c7715d80_e089_40ea_86fe6a446a2c9378" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Mode"), Mode); // }} "" // {{{ 1179 1 0 "212772c6_0ff7_41ef_9c35fb5828034d90" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn); // }} "" // {{{ 1180 1 0 "82055c44_b706_4c16_99b47c2a4ae600e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Shutdown"), o_stepReturn); // }} "" // {{{ 1181 1 0 "d76b0e51_c107_49cd_b6bcd25c44e4d066" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1182 1 0 "fbbaa73a_fa45_446d_8052e6e618fd2fad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1183 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1184 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1185 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1186 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Technical_Data") { // }} "" // {{{ 1187 1 0 "d6a005e1_4502_49d8_9a510afa4a2e833e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1188 1 0 "5ad112b0_da19_4b1b_a4649033defa7fef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 1189 1 0 "f4094e68_7940_4706_bae95f6277784476" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PartNumber"), PartNumber); // }} "" // {{{ 1190 1 0 "2b53f199_42d1_4808_a128c8ef4354e216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Revision"), Revision); // }} "" // {{{ 1191 1 0 "b5bf6715_e2e6_4e19_ad453dbb18396d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SerialNumber"), SerialNumber); // }} "" // {{{ 1192 1 0 "8cd5ff7f_9cb8_4f34_8afeb35175b47032" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 1193 1 0 "b60d9996_aa66_483d_b61518ffca638e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Technical Data"), o_stepReturn); // }} "" // {{{ 1194 1 0 "164f5289_e710_44eb_a1ea51e1622a7813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1195 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1196 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1197 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1198 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Trace_Level") { // }} "" // {{{ 1199 1 0 "dd6ba7d4_f5cc_4725_9776848c6e8343cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1200 1 0 "5a2c7ac9_8800_4926_96f26337aee59504" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1201 1 0 "88c51a62_4453_4cf5_ba0682a2cb1da767" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1202 1 0 "159aeb3e_3ed4_4ddc_a11cdfd939a7db7d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Trace Level"), o_stepReturn); // }} "" // {{{ 1203 1 0 "c3a5cc94_f346_4d04_a4be1fd04efbccc1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1204 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1205 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1206 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1207 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Sleep") { // }} "" // {{{ 1208 1 0 "153dc01b_be4b_403a_a40226aa4778c709" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1209 1 0 "a6f7384c_4c2e_4b3b_9682c00fb7a2f978" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn); // }} "" // {{{ 1210 1 0 "e82cf943_58b3_463e_a86afb9882353228" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Sleep"), o_stepReturn); // }} "" // {{{ 1211 1 0 "636ca48b_8789_40cc_8fb4dc35e8cbab54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1212 1 0 "5fb5b228_5342_414d_a548ac8dd5add837" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1213 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1214 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1215 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1216 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Terminate") { // }} "" // {{{ 1217 1 0 "b53cd271_035b_4870_961c552983b39351" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1218 1 0 "e133d234_4ccd_44cb_810d29742ee9f40e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn); // }} "" // {{{ 1219 1 0 "eb5a9614_5d18_44cd_83190a1d8eec2a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1220 1 0 "81b91833_cb16_43c5_a8935f9701536560" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1221 1 0 "add7dd5e_87e4_4ec1_a7b552234adc5d9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1222 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1223 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1224 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1225 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Wakeup") { // }} "" // {{{ 1226 1 0 "6b1d97c0_debd_402e_8c064a5c1fe48aca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1227 1 0 "09ffa3b4_530e_444f_943e5302e37f3fe0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn); // }} "" // {{{ 1228 1 0 "0d420182_40e4_43a8_872c5c81f7efa6d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1229 1 0 "f7bb0b0b_d222_43a7_b1b1236ab60e2847" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1230 1 0 "12251a91_a4ec_4a01_b041b503e2eef836" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1231 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1232 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1233 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1234 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Initialize") { // }} "" // {{{ 1235 1 0 "10713a72_dce4_482a_ad1d6d8db7bd210a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1236 1 0 "21f38719_99e7_4de4_bc16b312b6f57977" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1237 1 0 "75ac7c86_e474_45bc_8551fc9e302de4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 1238 1 0 "509760aa_ef16_454d_89cc23c0745d3c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 1239 1 0 "19e515a1_705c_45eb_b80e75767541c91a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1240 1 0 "a042f65b_875f_4b52_999c836815c84a6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1241 1 0 "f5fd2c44_2160_43fa_be88382bc9e0ff0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1242 1 0 "f2c8bfd1_3d33_4a00_84852ffbabef7b28" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1243 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1244 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1245 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1246 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Set_Trace") { // }} "" // {{{ 1247 1 0 "0029313d_525e_46ea_916912b33902e1eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1248 1 0 "ed79bcac_71ff_48ee_b968407f0dbdf4ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1249 1 0 "80f14967_56f1_4b78_9a3c9965460a9589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1250 1 0 "b3fdfb36_4bb4_4086_a19b5402f53fdd94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1251 1 0 "53206fbc_1492_4583_a2789c8083e49b46" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1252 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1253 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1254 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1255 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Wash") { // }} "" // {{{ 1256 1 0 "32bfd9a6_1ebc_4ca0_81e034f81d1af760" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1257 1 0 "a9208608_0099_4d5f_800d72adf563b9e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CycleNumber"), CycleNumber); // }} "" // {{{ 1258 1 0 "738f88ca_6ad7_4598_b1e4a3e1ccefcace" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn); // }} "" // {{{ 1259 1 0 "d009e19d_0560_4f89_b0f58bafa778b71b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Wash"), o_stepReturn); // }} "" // {{{ 1260 1 0 "49cdc51c_08eb_424b_920d3dcb647b2559" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1261 1 0 "2624b5a6_7428_4e88_a9b7fee8a8001e65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1262 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1263 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1264 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1265 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Terminate") { // }} "" // {{{ 1266 1 0 "e8e2fec9_d562_4524_b5d29880876bd109" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1267 1 0 "ad418c06_88fd_4649_9745bc00694fa53a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1268 1 0 "e8437e3c_0153_4bc0_86236a2e9849e22a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Terminate"), o_stepReturn); // }} "" // {{{ 1269 1 0 "32e4b0bc_48e5_4770_81a0113fdff8118a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1270 1 0 "c81e886b_51ec_42be_b2c989057781a5b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1271 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1272 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1273 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1274 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Initialize") { // }} "" // {{{ 1275 1 0 "b41d8294_bc5c_4346_999860e0f4cc913e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1276 1 0 "102abd73_15bb_472b_a1008b4eda35637e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1277 1 0 "58389380_f098_4c71_b61c0954f797753b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 1278 1 0 "2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 1279 1 0 "d95cbdf3_6278_437b_91525392a70e5356" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1280 1 0 "d35fefc8_f758_41da_a6073532f75cf092" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Initialize"), o_stepReturn); // }} "" // {{{ 1281 1 0 "e1deec6e_fc66_45bd_93821e20a78853fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1282 1 0 "01bdb50d_0f38_40e2_8993f814ea652b66" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1283 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1284 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1285 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1286 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Set_Trace") { // }} "" // {{{ 1287 1 0 "f7fc7449_63b2_4e8b_8d0eaf3f931e834d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1288 1 0 "ef77cea9_ef26_4525_bea967ec7f086b88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1289 1 0 "24784b11_b6f4_461e_b526cbbb677864ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1290 1 0 "d5ebe375_f7dd_45c2_b3e242a8edf4f175" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Dryer Trace Level"), o_stepReturn); // }} "" // {{{ 1291 1 0 "f61751e3_57be_4b1d_b8a1d370a4c1773c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1292 1 0 "d216caef_1c5d_4f05_8252d1a77df45535" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1293 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1294 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1295 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1296 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Start_Drying") { // }} "" // {{{ 1297 1 0 "45561f8e_cd7f_49d8_a8720b2ff7d0d932" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1298 1 0 "ecdddf7a_3c99_4f99_97b658f94a62554c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1299 1 0 "5a6daec0_a404_4a0a_ad9d88de43ac46c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Start Drying"), o_stepReturn); // }} "" // {{{ 1300 1 0 "e7173a44_d349_4ba2_8993647fbcd2eb1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1301 1 0 "17e3434b_dfff_457b_9aba0c22e9206cc7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1302 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1303 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1304 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1305 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Stop_Drying") { // }} "" // {{{ 1306 1 0 "f3eac478_54bb_4350_8c1811bf2ede8424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1307 1 0 "37262733_33d0_4723_94687e68249d1300" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1308 1 0 "6feb871c_61be_4812_a421af32d75f9871" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Stop Drying"), o_stepReturn); // }} "" // {{{ 1309 1 0 "2ba59e68_8358_4b86_a9108519bff6d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1310 1 0 "cbfcb2cb_00c9_445f_a28af2b6553efc31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1311 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1312 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1313 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1314 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Terminate") { // }} "" // {{{ 1315 1 0 "66453f41_07b7_4fd4_b2177e4994606836" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1316 1 0 "a5808bbd_63b3_4fc2_894ab4d4eb00b93d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID); // }} "" // {{{ 1317 1 0 "f844d13f_ecdb_465a_b0300a4976c0d809" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1318 1 0 "a28255b3_86ff_4928_abf87a7c3f930142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1319 1 0 "7e539911_cdda_4242_a337d58eba44508c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1320 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1321 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1322 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1323 1 0 "2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1324 1 0 "2dde624a_2df2_4014_8df18f6d92ed93b1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1325 1 0 "d6d5265b_416c_468f_a8f0a8225e294804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Initialize") { // }} "" // {{{ 1326 1 0 "32d149fa_c238_4e8c_9c9bfe8ca03b39ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PortNumber"), PortNumber); // }} "" // {{ 1327 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_43ECC15F92874e8a8FCA2A90F3412255 ; err.Clear(); // }} "" // {{{ 1328 1 0 "05f6e40b_f62a_4382_9b25ca234839aeb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::Initialize(ML_STAR, PortNumber, DefaultTemperature, ModuleID); // }} "" // {{ 1329 1 0 "b8eff0c4_8a87_4d69_8b1fc22443527e58" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1330 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_43ECC15F92874e8a8FCA2A90F3412255 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1331 1 0 "a6315690_dcdc_4faf_9764f4edcccee401" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1332 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1333 1 0 "b152d230_641d_44fd_82876d10beb25ffd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1334 1 0 "2178bb5d_1389_4bb3_92e038bed00ad7d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 1335 1 0 "0e8fa514_886c_42d7_a0fec5c2e0a40820" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1336 1 0 "d6d5265b_416c_468f_a8f0a8225e294804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1337 1 0 "2dde624a_2df2_4014_8df18f6d92ed93b1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1338 1 0 "a96843cd_6adb_45f6_86b4971bd2682521" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1339 1 0 "2a26b412_4bc5_49d9_b1cdc64938a3cf0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_MeasureCycle") { // }} "" // {{{ 1340 1 0 "e78c25fc_f856_4c7d_bb7f6056d2ae0e9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1341 1 0 "4c0064bb_0c23_4648_b57e5599878d63f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqMeasurement"), seqMeasurement); // }} "" // {{ 1342 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (seqMeasurement == "") { // }} "" // {{{ 1343 1 0 "a11073f7_18e2_4097_baf006ed44e74081" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("MeasurePositions"), MeasurePositions); // }} "" // {{{ 1344 1 0 "47d49bd0_0457_440d_b1d654c85ac3c5db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(MeasurePositions, seq); // }} "" // {{ 1345 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1346 1 0 "bbddeeab_2dc4_4931_900a5ec07aafe0be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, seqMeasure, seq); // }} "" // {{ 1347 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1348 1 0 "6b06d7c5_bf98_48d9_906ae705e4ce149b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("MeasureHeight"), MeasureHeight); // }} "" // {{{ 1349 1 0 "25fe4c02_a4e2_40cd_91289dc1c5c638b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ProbePattern"), ProbePattern); // }} "" // {{{ 1350 1 0 "02a9e02a_0596_4158_ac021180b0b5985c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MeasureTime"), MeasureTime); // }} "" // {{{ 1351 1 0 "f8080019_d032_4f0c_9ef8429bde9ee7df" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1352 1 0 "83142ee1_d831_4ff1_a6734844fe789421" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::MeasureCycle(ML_STAR, ModuleID, seq, MeasureHeight, ProbePattern, MeasureTime, Temperature, arrpHValues); // }} "" // {{{ 1353 1 0 "d4d4974a_23a2_43a2_851b478f0e7d24be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrpHValues, flt_pHValues); // }} "" // {{{ 1354 1 0 "bde9c162_a4cf_40fa_a663c6b78e029610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1355 1 0 "0a5c18e9_775d_4644_bdfcc536000642cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Measure Cycle"), o_stepReturn); // }} "" // {{{ 1356 1 0 "c1502c7b_2bd0_480c_a0ce6887e02484bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, flt_pHValues, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1357 1 0 "2a26b412_4bc5_49d9_b1cdc64938a3cf0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1358 1 0 "a96843cd_6adb_45f6_86b4971bd2682521" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1359 1 0 "e66a9dff_c0b5_4864_ad32fce97f16a3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1360 1 0 "5185a83c_8ff6_42f8_b1dc5fc006d041ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Calibrate") { // }} "" // {{{ 1361 1 0 "d9d7f7cb_394b_40ea_a037e16efc8e063c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1362 1 0 "0e65e09c_0178_403b_9eca768c440a479f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1363 1 0 "fedae8c3_0c9d_426f_a30e8fdfa1d2b056" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1364 1 0 "ad8456a9_07be_4852_b2bab182e7e17dae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqCalibration1"), Calibration1); // }} "" // {{{ 1365 1 0 "8b591ca2_adf8_4248_b5ac1fb2a84c21aa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Calibration1, seqCalibration1); // }} "" // {{{ 1366 1 0 "0f28a5e9_278c_4290_aa9ee416f829755a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqCalibration2"), Calibration2); // }} "" // {{{ 1367 1 0 "b57e28d3_0011_4657_bbceba83ca97b89a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Calibration2, seqCalibration2); // }} "" // {{{ 1368 1 0 "101798f0_c18a_411a_b29295d972cc9a6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqReference"), Reference); // }} "" // {{{ 1369 1 0 "1c415c8d_660d_41fe_a81fcfd6d8836038" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Reference, seqReference); // }} "" // {{{ 1370 1 0 "20510ceb_5840_48de_842a1b657fa7706d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationTime"), CalibrationTime); // }} "" // {{{ 1371 1 0 "ecd67637_3e8e_4d22_89b67b39e05342fe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MeasureTime"), MeasureTime); // }} "" // {{{ 1372 1 0 "148b5d07_b84d_4786_b1d0f9d5e5837491" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("MeasureHeight"), MeasureHeight); // }} "" // {{{ 1373 1 0 "938c1584_a353_4f03_ba14c9f33cc2c6a7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue1"), CalibrationValue1); // }} "" // {{{ 1374 1 0 "cda9048b_fe59_4db2_a1d08550795038f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue2"), CalibrationValue2); // }} "" // {{{ 1375 1 0 "5d669238_eb69_4080_8b789139b291be94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValueRef"), CalibrationValueRef); // }} "" // {{{ 1376 1 0 "4c7c9992_c2e0_445a_bee9cd7dd086e585" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSoln1"), TempSoln1); // }} "" // {{{ 1377 1 0 "9574a12d_456e_4fd6_9b51714dd88b4a1e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSoln2"), TempSoln2); // }} "" // {{{ 1378 1 0 "211f81c7_5561_45ce_8cf247e76fb0f65e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSolnRef"), TempSolnRef); // }} "" // {{{ 1379 1 0 "f812ea75_ed49_4a04_b4ab3dd67f1206ad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrateDynamically"), blnCalibrateDynamically); // }} "" // {{{ 1380 1 0 "178d95b8_13db_4493_a08cdaec1348c0e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1381 1 0 "d4d33c2d_2aee_4a51_ad36cb953d687c83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{ 1382 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F882CD31309846e3BD30959B418AB982 ; err.Clear(); // }} "" // {{{ 1383 1 0 "ff44fdd8_7acc_46f7_a7c3a207ad5d7bf8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Calibrate(ML_STAR, ModuleID, seqModule, seqCalibration1, seqCalibration2, seqReference, CalibrationTime, MeasureTime, MeasureHeight, CalibrationValue1, CalibrationValue2, CalibrationValueRef, TempSoln1, TempSoln2, TempSolnRef, blnCalibrateDynamically, arrCalibrationSlopeRatios, arrpHValuesReferenceSolution); // }} "" // {{ 1384 1 0 "18724129_2443_4271_a6316a42ef334c73" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1385 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F882CD31309846e3BD30959B418AB982 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1386 1 0 "d6c65e91_f6e8_47d9_aaf1810ffab1ffac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1387 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1388 1 0 "7375b9e4_01c3_49a1_810fb42149ed0eea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrCalibrationSlopeRatios, CalibrationSlopeRatios); // }} "" // {{{ 1389 1 0 "31ba6e89_258d_4deb_97352544c3b5c45c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrpHValuesReferenceSolution, pHValuesReferenceSolution); // }} "" // {{{ 1390 1 0 "924064ec_85ac_4b42_a5ff3eb8a6a5342f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 1391 1 0 "65bd0fe0_0efb_4335_b118b89e61b948ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1392 1 0 "5185a83c_8ff6_42f8_b1dc5fc006d041ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1393 1 0 "e66a9dff_c0b5_4864_ad32fce97f16a3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1394 1 0 "b6af2262_3e2f_4d3a_8efaa95d707f7c9b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1395 1 0 "190d0e3a_2978_407c_a8482f5f7e239261" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Dry") { // }} "" // {{{ 1396 1 0 "0f0bf03e_4950_40e7_b2899f9cabb79cb3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{ 1397 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_D19CA5AD1071407b84599779A41B51EA ; err.Clear(); // }} "" // {{{ 1398 1 0 "1885a8d9_8082_44ab_bfd7a217170187db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::Dry(ML_STAR, ModuleID); // }} "" // {{ 1399 1 0 "33dddcad_4489_4f31_8b4fea145ebbe77b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1400 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_D19CA5AD1071407b84599779A41B51EA : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1401 1 0 "d8f5d052_f205_4e22_8998e2d0d12790ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1402 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1403 1 0 "5521c0c7_c64b_4b49_9036f9bf6a7a83d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1404 1 0 "9e7864cd_a0bd_4ec6_8f733a2e7ab773bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1405 1 0 "190d0e3a_2978_407c_a8482f5f7e239261" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1406 1 0 "b6af2262_3e2f_4d3a_8efaa95d707f7c9b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1407 1 0 "98f952c5_628a_415d_a46b3e75e0c33d60" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1408 1 0 "370e55f1_98b7_4dfb_9640d7a634f44a8f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Wash") { // }} "" // {{{ 1409 1 0 "39b0590c_dc8d_4eb3_b8bfcab65235f494" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{ 1410 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 ; err.Clear(); // }} "" // {{{ 1411 1 0 "beaffdda_e52a_4f79_95659f907946752f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Wash(ML_STAR, ModuleID); // }} "" // {{ 1412 1 0 "58aab21a_307b_403b_980186d201a7c6ac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1413 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1414 1 0 "4cd2a753_2761_4d3c_9cd93c15fa19a47b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1415 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1416 1 0 "0af219f8_e5bc_4b14_a95fd7e3f2ccb712" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1417 1 0 "7b44ca9e_e6d7_4793_8f937fc518ecc41c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1418 1 0 "370e55f1_98b7_4dfb_9640d7a634f44a8f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1419 1 0 "98f952c5_628a_415d_a46b3e75e0c33d60" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1420 1 0 "3246255f_383b_4742_b7eb17cad21acec0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1421 1 0 "f70b31d7_c863_488a_90c4df10a4677c68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_SetParameters") { // }} "" // {{{ 1422 1 0 "7e5e111c_21f5_4c0b_9dd06d15aee64431" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqGripper"), Gripper); // }} "" // {{{ 1423 1 0 "8417ab78_f4b8_40aa_890f3b14e4204667" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Gripper, seqGripper); // }} "" // {{{ 1424 1 0 "f43d4896_c19a_4cc9_ad3c75f925788b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqWashPosition"), WashPosition); // }} "" // {{{ 1425 1 0 "ffcc2479_6c91_4038_bab179b027d4b03b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, WashPosition, seqWashPosition); // }} "" // {{{ 1426 1 0 "b731d1c6_30bc_4003_ba19e062e82293db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqDryPosition"), DryPosition); // }} "" // {{{ 1427 1 0 "a68ddb6b_780a_46ed_bcaa350f92f649fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, DryPosition, seqDryPosition); // }} "" // {{{ 1428 1 0 "020f31e6_e3ef_48f4_af0e175e60e00159" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TransportChannel"), TransportChannel); // }} "" // {{{ 1429 1 0 "1561e8c8_acaa_438f_9c7c57a5c196556f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WashCycles"), WashCycles); // }} "" // {{{ 1430 1 0 "7e0a9629_dce6_4ed9_81b854f636408ff0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryCycles"), DryCycles); // }} "" // {{{ 1431 1 0 "dacc3c17_6358_44f0_8ac4ad1fa0ae08b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryTime"), DryTime); // }} "" // {{{ 1432 1 0 "f86b35ff_9db7_4845_a3cfb7d04c520c3d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::SetParameter(ML_STAR, seqGripper, seqWashPosition, seqDryPosition, TransportChannel, WashCycles, DryCycles, DryTime); // }} "" // {{{ 1433 1 0 "ce0a2f35_ae58_4695_85513126a4acb791" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1434 1 0 "da69f49c_299d_435d_9d95dc10f7303ce9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1435 1 0 "bd10bc62_2ace_436a_a68acec8c1f9287b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1436 1 0 "f70b31d7_c863_488a_90c4df10a4677c68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1437 1 0 "3246255f_383b_4742_b7eb17cad21acec0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1438 1 0 "f19bf36e_3e74_4647_bd1c33a627d4634a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1439 1 0 "1aad8d75_d37e_4c4a_9b83799194c716fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Park") { // }} "" // {{{ 1440 1 0 "90471824_8967_4383_a722d29bfaf60113" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1441 1 0 "f6bbc2b1_c86d_4f64_abc12d3b740b1d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1442 1 0 "9341ffae_9e0c_43f9_b3ccedcfbadb07cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1443 1 0 "9e0a230a_fdb5_4eec_9cf3127779adb1d2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::ParkModule(ML_STAR, ModuleID, seqModule); // }} "" // {{{ 1444 1 0 "8aacb0d9_a918_426b_9717bd2febc1f74a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1445 1 0 "15592ad5_5751_4636_8a513ee3f27c7f11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1446 1 0 "6222366b_a5bf_4c73_8685a3cdebb4ff4f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1447 1 0 "1aad8d75_d37e_4c4a_9b83799194c716fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1448 1 0 "f19bf36e_3e74_4647_bd1c33a627d4634a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1449 1 0 "602611db_9ad3_4dbb_aae8e288d8e1c21f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1450 1 0 "a3bcbf9b_35d6_4291_9c4f146afb2924be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Pickup") { // }} "" // {{{ 1451 1 0 "347e06d8_9db7_4279_bf224e9ecf4299e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1452 1 0 "2b0761dc_e201_46b3_a590b52421cd8ee9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1453 1 0 "76631bc5_230e_4e20_87bf493887cddd0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1454 1 0 "2d3aba8b_cc4b_4be1_a83c30695fcf6dbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::PickupModule(ML_STAR, ModuleID, seqModule); // }} "" // {{{ 1455 1 0 "7879f9b5_2eea_4059_8e4bef3213e8decd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1456 1 0 "cb1582a1_3f8c_44fd_910a5f08dbe32b05" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1457 1 0 "a15fc9df_322f_4ce1_83228c63669e6b16" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1458 1 0 "a3bcbf9b_35d6_4291_9c4f146afb2924be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1459 1 0 "602611db_9ad3_4dbb_aae8e288d8e1c21f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1460 1 0 "3bc97044_ccb0_46b1_9516921492be9a5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1461 1 0 "dac7c2f7_1665_4a9c_82959eadd12ab417" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_ExtendedLog") { // }} "" // {{{ 1462 1 0 "d101eee8_9402_428a_aa576d531ed959c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::EnableExtendedLog(); // }} "" // {{{ 1463 1 0 "bc849548_9009_43ec_bb1b6c81c32132f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), 1); // }} "" // {{{ 1464 1 0 "0a496202_0f55_4f40_8b391260caa236ba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, 1, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1465 1 0 "dac7c2f7_1665_4a9c_82959eadd12ab417" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1466 1 0 "3bc97044_ccb0_46b1_9516921492be9a5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1467 1 0 "e397a319_e6cb_4188_b45c6ef45c974fba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1468 1 0 "bffc8683_40d3_4277_ac66bc7d43d675f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_LoadLastConfig") { // }} "" // {{ 1469 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B416552A06404ef48774D74059C2B182 ; err.Clear(); // }} "" // {{{ 1470 1 0 "154ec087_ea2e_4381_bb2e261ffad534f1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationLoad(BluetoothPort, NumWashCycles, NumDryCycles, DryTime); // }} "" // {{ 1471 1 0 "79340e9d_69d5_4911_b4601ae4754a16c4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1472 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B416552A06404ef48774D74059C2B182 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1473 1 0 "46420553_d90f_4dfa_b42c9d86856c288a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1474 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1475 1 0 "54b468e0_3ea0_4e83_9ffae95722c5cb9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BluetoothPort = StrIStr(BluetoothPort); // }} "" // {{{ 1476 1 0 "7bde202f_1c1b_4911_9f600ac6e1a5b57c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" NumWashCycles = StrIStr(NumWashCycles); // }} "" // {{{ 1477 1 0 "c5d427d2_0b0e_4f92_8c5b0b2cbfbfb4d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" NumDryCycles = StrIStr(NumDryCycles); // }} "" // {{{ 1478 1 0 "027378a7_4549_4d3f_b8d33aa4980be4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DryTime = StrIStr(DryTime); // }} "" // {{{ 1479 1 0 "fbda7cdb_3ed9_4a5c_907ce60556e0129b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), 1); // }} "" // {{{ 1480 1 0 "e454face_7eee_4c6e_a61e221c0e5d7fb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, BluetoothPort, NumWashCycles, NumDryCycles, DryTime, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1481 1 0 "bffc8683_40d3_4277_ac66bc7d43d675f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1482 1 0 "e397a319_e6cb_4188_b45c6ef45c974fba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1483 1 0 "dbcfe074_1fad_446d_addaa6c1b41a3a01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1484 1 0 "2bd801dc_3ffb_4b97_9f8af54ebda4fdae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_SaveLastConfig") { // }} "" // {{{ 1485 1 0 "aca4c717_812e_46f9_8eb5989a720adb24" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("BluetoothPort"), BluetoothPort); // }} "" // {{{ 1486 1 0 "1198edc8_1ec9_479d_a4e7fd71ed50cf8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("NumWashCycles"), NumWashCycles); // }} "" // {{{ 1487 1 0 "be958699_818e_43db_a757a67b7b54572a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("NumDryCycles"), NumDryCycles); // }} "" // {{{ 1488 1 0 "8751a2c3_e6ee_43bf_b21f5458aebf179a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryTime"), DryTime); // }} "" // {{ 1489 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_4973F03471994119A9F699CE6459CBFC ; err.Clear(); // }} "" // {{{ 1490 1 0 "1480ff51_54ea_4c38_befa457e23966aca" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationSave(BluetoothPort, NumWashCycles, NumDryCycles, DryTime); // }} "" // {{ 1491 1 0 "0e101f68_bc36_42fe_882a3951ef193f80" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1492 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_4973F03471994119A9F699CE6459CBFC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1493 1 0 "2e180d98_e746_4b84_b623b4d0e8e198fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1494 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1495 1 0 "cb24f9db_18c1_41af_b6f16900826be7be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 1496 1 0 "87c5e5f6_77ee_4519_879fdceaf21c1d7f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1497 1 0 "2bd801dc_3ffb_4b97_9f8af54ebda4fdae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1498 1 0 "dbcfe074_1fad_446d_addaa6c1b41a3a01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1499 1 0 "d30f6a39_499f_4b79_b2bfbdb6bb128b96" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1500 1 0 "25171dbf_33de_42a2_ad9b9d9639b5112a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 1501 1 0 "bdbbc648_a9fa_468f_b5d4d390115575eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1502 1 0 "1a74d7ad_0c35_454c_b161ede32468b2af" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1503 1 0 "c67afa78_dd60_451b_b2e31a2e6540f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1504 1 0 "2424dca1_971a_40f8_97b763c253560a2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1505 1 0 "8def2ba5_b51c_4e0c_b6ebfdd346a5beec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1506 1 0 "684d328d_214e_4955_bfe9ff0627b7f8cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 1507 1 0 "e6ec0fc8_d42c_4413_b2c2719c3cd18dc7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1508 1 0 "6f2273c4_1e1e_46f3_9ea6544d76383266" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1509 1 0 "25171dbf_33de_42a2_ad9b9d9639b5112a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1510 1 0 "d30f6a39_499f_4b79_b2bfbdb6bb128b96" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1511 1 0 "427cf00a_8c98_4fb4_8db6842164909152" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1512 1 0 "d75fbb16_6016_4c73_aecf79ca07dae29d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Terminate") { // }} "" // {{{ 1513 1 0 "b43cf782_b210_48c8_933f4cdfae78d050" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1514 1 0 "efbfd98d_c15d_4ac9_b94250ab4361a8b9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Terminate(ModuleID); // }} "" // {{{ 1515 1 0 "c918ad91_e33e_4f2f_9c6577fd8c93aaf4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1516 1 0 "2021a914_67dd_495e_9a9e4cf4438df298" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1517 1 0 "8d8842cd_e3b4_4397_92ad69593e9f7796" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1518 1 0 "d75fbb16_6016_4c73_aecf79ca07dae29d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1519 1 0 "427cf00a_8c98_4fb4_8db6842164909152" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1520 1 0 "2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1521 1 0 "6aa13f85_d8b8_4a2a_93232eeb15e0a01d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1522 1 0 "5edd27c8_de57_4980_b51d920a4d49d519" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1523 1 0 "e9d4ea17_6e30_44ae_88b03485525c4f92" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Initialize") { // }} "" // {{{ 1524 1 0 "2f9ae938_94b1_43c8_ade094614ef090a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("DeviceName"), DeviceName); // }} "" // {{{ 1525 1 0 "6cf1bcde_fb2a_4296_97b01233bdd9aa87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("AdapterDeviceID"), AdapterDeviceID); // }} "" // {{{ 1526 1 0 "58031a2b_13b4_4278_8e347d343a3bd1d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("NodeName"), NodeName); // }} "" // {{{ 1527 1 0 "20c35752_843f_4adb_904d5d26323821a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1528 1 0 "0b3f2efc_0773_4a25_84493465094ac5e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AlwaysInitialize"), AlwaysInitialize); // }} "" // {{{ 1529 1 0 "6ad8399f_eed7_4e65_98fe7d1432f0736b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Initialize(Label, NodeName, SimulationMode, AlwaysInitialize, o_stepReturn); // }} "" // {{{ 1530 1 0 "3a426d02_40f4_4c1f_b9061d37e5a4cd35" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1531 1 0 "01608cb1_fac5_42cd_bcfdf5fc7359c26d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1532 1 0 "0e3b4229_d57f_445f_a7c9d9140939367f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1533 1 0 "e9d4ea17_6e30_44ae_88b03485525c4f92" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1534 1 0 "5edd27c8_de57_4980_b51d920a4d49d519" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1535 1 0 "48cb330b_8197_439e_974791118048b53e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1536 1 0 "cc879722_4e99_410c_a8454d136f6aae6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Centrifuge") { // }} "" // {{{ 1537 1 0 "efe031a0_7aa0_4846_bf8969fbd7906970" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1538 1 0 "5965cb4a_0190_415d_862b773944074e57" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("CloseCoverAtEnd"), CloseCoverAtEnd); // }} "" // {{{ 1539 1 0 "1f94f31f_0ef0_403b_bda3b50c2fd9c38b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PresentPosition"), intPresentPosition); // }} "" // {{{ 1540 1 0 "dde8e447_4774_45bf_a244c5fab4041838" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Direction"), Direction); // }} "" // {{{ 1541 1 0 "cf0fab96_e65f_4e8a_85a809800b192075" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArraySpeed"), ArrSpeed); // }} "" // {{{ 1542 1 0 "0ca69f46_9c96_402e_9b1587ced7bff5c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArrayAcceleration"), ArrAcceleration); // }} "" // {{{ 1543 1 0 "d37afa07_2508_484d_81b6f153e1aa28ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArrayDuration"), ArrDuration); // }} "" // {{{ 1544 1 0 "6f8e9cca_35cb_4393_9f845b2135e8c2d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Deceleration"), Deceleration); // }} "" // {{{ 1545 1 0 "42d02aa8_5a1f_4144_b475d634885c1d4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrDuration, Translate(","), i_ArrDuration, 0); // }} "" // {{{ 1546 1 0 "252eacff_1b04_4607_9403f7ebc9935d0a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrSpeed, Translate(","), i_ArrSpeed, 0); // }} "" // {{{ 1547 1 0 "e1de1f59_a4b3_4220_a987c7e8e67e82c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrAcceleration, Translate(","), i_ArrAcceleration, 0); // }} "" // {{{ 1548 1 0 "085cc0ce_663a_4e79_8bf732421e2f56a9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrAcceleration, i_ArrAcceleration); // }} "" // {{{ 1549 1 0 "5f942567_121a_417c_be3e2449c5473b40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrSpeed, i_ArrSpeed); // }} "" // {{{ 1550 1 0 "f88bd247_c7e5_4823_bd5e37605974f825" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrDuration, i_ArrDuration); // }} "" // {{{ 1551 1 0 "82e32803_a688_4f29_8a1c94dead53e48e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Centrifuge(Label, CloseCoverAtEnd, intPresentPosition, Direction, i_ArrSpeed, i_ArrAcceleration, i_ArrDuration, Deceleration, o_stepReturn); // }} "" // {{{ 1552 1 0 "6541fb1d_df0a_4f0c_8474d211e4e4721a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1553 1 0 "ca37a7ce_edb5_4864_90dffb84cbb93071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1554 1 0 "54bf0b61_3ff3_4e00_8d35d876bfec98bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1555 1 0 "cc879722_4e99_410c_a8454d136f6aae6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1556 1 0 "48cb330b_8197_439e_974791118048b53e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1557 1 0 "ad0b08d4_17f2_49d0_a67860ea51423835" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1558 1 0 "5d8f135c_f0e2_4460_861984fe9a7fa710" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_GetStatus") { // }} "" // {{{ 1559 1 0 "1be02a3f_6880_42b3_b612e480fcd7e403" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1560 1 0 "5dcbef58_09da_4530_afb23e072fe81806" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_GetRotationStatus(Label, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, o_stepReturn); // }} "" // {{{ 1561 1 0 "07344966_2aca_47d5_94006574d009ab21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1562 1 0 "47572e7c_3ab2_48e3_be4d5f024ede7c41" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, Translate(""), id); // }} "" // {{ 1563 1 0 "5d8f135c_f0e2_4460_861984fe9a7fa710" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1564 1 0 "ad0b08d4_17f2_49d0_a67860ea51423835" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1565 1 0 "cd7ca6de_07b8_4d48_875925ee71386e46" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1566 1 0 "2acb9ae8_850a_4120_a212cb2a4a6200bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Open") { // }} "" // {{{ 1567 1 0 "6a9181eb_a95e_4e7b_a8df77f39d3519e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1568 1 0 "6f785fb2_5cc2_4924_b9e514e193d96143" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverOpen(Label, o_stepReturn); // }} "" // {{{ 1569 1 0 "d7ac8b69_b503_4f26_81756b6dc894d246" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1570 1 0 "d707b09f_2dc6_4b2f_9fdb84c07c07f2b2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1571 1 0 "2acb9ae8_850a_4120_a212cb2a4a6200bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1572 1 0 "cd7ca6de_07b8_4d48_875925ee71386e46" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1573 1 0 "0d7255ee_b967_4693_8d7375d684b4747f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1574 1 0 "10b7afeb_e804_457e_88b935a2b48a71c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Close") { // }} "" // {{{ 1575 1 0 "dbed33cf_5e9c_4102_b254b161284b15e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1576 1 0 "f7647d6b_38bb_4d38_895246f5ac76fe59" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverClose(Label, o_stepReturn); // }} "" // {{{ 1577 1 0 "77bb0b57_a308_455c_baabf680266f4336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1578 1 0 "0c3dee9e_33f9_4f79_99400f9368f6da14" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1579 1 0 "10b7afeb_e804_457e_88b935a2b48a71c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1580 1 0 "0d7255ee_b967_4693_8d7375d684b4747f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1581 1 0 "4dcf2947_ad5a_47e8_8c8214244ffcb3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1582 1 0 "81386c58_3b5a_4743_9453eb6a117234ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Start") { // }} "" // {{{ 1583 1 0 "44af1318_1d60_4a35_a5714accdc0c242a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1584 1 0 "25c1c841_9dea_4404_afbc9b3efc307343" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Direction"), Direction); // }} "" // {{{ 1585 1 0 "d5af29b3_1f52_48d0_be771ca87547a6c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Speed"), Speed); // }} "" // {{{ 1586 1 0 "0615f300_6c08_4978_beb5ebd0c96a686e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Acceleration"), Acceleration); // }} "" // {{{ 1587 1 0 "8f4f8eba_1777_4696_b1185b776105f4e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MaxRunTime"), MaxRunTime); // }} "" // {{{ 1588 1 0 "6d0a342b_4d08_47ec_81979a6bcb184434" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StartCentrifuge(Label, Direction, Speed, Acceleration, MaxRunTime, o_stepReturn); // }} "" // {{{ 1589 1 0 "562e3df1_ee9e_4ef5_a70c4247d08e453f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1590 1 0 "d3624dd6_4de0_4827_b501bde2ca9e3d5a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1591 1 0 "81386c58_3b5a_4743_9453eb6a117234ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1592 1 0 "4dcf2947_ad5a_47e8_8c8214244ffcb3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1593 1 0 "e9168cf2_c9e7_40a5_a52e0b9ad08f1fed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1594 1 0 "225ad45c_32fa_4f7d_af063f5ce1ab907c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Stop") { // }} "" // {{{ 1595 1 0 "e5891eba_60d8_49f6_af7be2af0aef66a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1596 1 0 "4008af1e_863b_4a5a_9b4b33d547b6fd7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Decelleration"), Decelleration); // }} "" // {{{ 1597 1 0 "667c83ad_57d3_4ce9_a2dca9287fb97d7e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StopCentrifuge(Label, Decelleration, o_stepReturn); // }} "" // {{{ 1598 1 0 "43ffc328_4600_41cb_a084d56b006fee8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1599 1 0 "263c82c5_d2f1_463f_b2f102d150ca0a0f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1600 1 0 "225ad45c_32fa_4f7d_af063f5ce1ab907c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1601 1 0 "e9168cf2_c9e7_40a5_a52e0b9ad08f1fed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1602 1 0 "551d8e94_670b_4472_b73600d28f237682" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1603 1 0 "bd20d1b8_d440_4b6f_9041a5b536904a0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Terminate") { // }} "" // {{{ 1604 1 0 "1e54be13_32c5_43bd_bcea8da753eedd90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1605 1 0 "c884c5b1_cb4e_4d38_907361a00b32d3f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Terminate(Label, o_stepReturn); // }} "" // {{{ 1606 1 0 "fa01d6ec_8920_4fd7_adbc2f6f4f106df5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1607 1 0 "1664cc0f_d416_47d5_aa13970ade2397b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1608 1 0 "bd20d1b8_d440_4b6f_9041a5b536904a0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1609 1 0 "551d8e94_670b_4472_b73600d28f237682" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1610 1 0 "6aa13f85_d8b8_4a2a_93232eeb15e0a01d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1611 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1612 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Initialize") { // }} "" // {{{ 1613 1 0 "5efffd73_f295_4d3c_aacd37c74d2bc015" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ComPort"), Comport); // }} "" // {{{ 1614 1 0 "cc8f22a1_0ae7_40ee_82d2e071b7344cf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn); // }} "" // {{{ 1615 1 0 "b6f33534_c173_4c6c_820d96a48fa50a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Barcode initialize:"), o_stepReturn); // }} "" // {{{ 1616 1 0 "138ad752_fbd8_457e_948dd436ddb65822" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1617 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1618 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Read") { // }} "" // {{{ 1619 1 0 "0b3c261e_a906_4464_b0e5caa3ec640056" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Read(barcode); // }} "" // {{{ 1620 1 0 "98aadc47_a5a2_433d_84530ad050155ccd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("BarcodeReader_Read"), barcode); // }} "" // {{{ 1621 1 0 "e3fc85ee_a6d7_4d98_a3f9076b947565cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, barcode, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1622 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1623 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1624 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1625 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1626 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_BeginMonitoring") { // }} "" // {{{ 1627 1 0 "7dd862dc_f7f1_4600_94ca9b83762673dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1628 1 0 "d37d14e5_261f_418c_81f754eb75bf4920" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingToleranceRange"), shakingToleranceRange); // }} "" // {{{ 1629 1 0 "0919ceb3_189a_4885_93c8faeab9f9538b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sampleInterval"), sampleInterval); // }} "" // {{{ 1630 1 0 "bc3a749e_e1bb_4c4a_9aac06834d85080f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("action"), action); // }} "" // {{ 1631 1 0 "98795c5d_e3e5_4d8c_bba032968c530136" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1632 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ; err.Clear(); // }} "" // {{{ 1633 1 0 "a2a0a3bb_c0cf_4123_afe36d1d51ae233c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action); // }} "" // {{ 1634 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3202FD4CC34D478f892F31C7684340BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1635 1 0 "435e7414_9170_4bf9_bd0ac83f0ab51fad" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1636 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1637 1 0 "c00b8635_652d_48ca_8d345ed070306b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1638 1 0 "85ac1487_5644_4bae_b032f5c191aa47c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1639 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1640 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1641 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1642 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateStarDevice") { // }} "" // {{{ 1643 1 0 "4c3dfdd2_2dd6_4c5f_831f92590c13e82e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1644 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ; err.Clear(); // }} "" // {{{ 1645 1 0 "cc3d4234_12d6_486a_a110c8ede0e3059b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber); // }} "" // {{ 1646 1 0 "f17e82ff_88ef_4685_bf6f75a8ca0e32f6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1647 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1648 1 0 "c0256452_8d47_4f97_9e9c2250a44934d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1649 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1650 1 0 "7699b24c_5ec6_4cca_b1cb9aed9ce60247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1651 1 0 "85155966_9554_40cb_9693f9b0a11b25a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1652 1 0 "d049e779_0761_471d_9f7b8af0967d1633" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1653 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1654 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1655 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1656 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateUSBDevice") { // }} "" // {{{ 1657 1 0 "72f0a762_2550_45ad_bea063f4f72a9fe9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1658 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ; err.Clear(); // }} "" // {{{ 1659 1 0 "6957e247_4f64_4971_8d90658c99adbb87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber); // }} "" // {{{ 1660 1 0 "34cc8f4a_c310_4eb7_b936c63f8401c523" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1661 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_98100824AA704d26AB40A6BADEF39F48 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1662 1 0 "058f8bb4_5fe3_4a6b_a36e899c2a89656f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1663 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1664 1 0 "a9b4c19d_dcc0_42d7_9a51e3241ef647f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return:"), o_stepReturn); // }} "" // {{{ 1665 1 0 "d303212f_1f38_442d_a24eee709cf4cdc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1666 1 0 "7356ec1e_8437_4679_94613ac2bea4fe0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1667 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1668 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1669 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1670 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_EndMonitoring") { // }} "" // {{{ 1671 1 0 "4293ef15_cfcd_4e29_b9b02afae2d471f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1672 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ; err.Clear(); // }} "" // {{{ 1673 1 0 "dd7d7b00_1e95_4e45_97a425f03a18ab04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult); // }} "" // {{{ 1674 1 0 "0021495f_472e_4321_9d1e81e8fbd43f0c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1675 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1676 1 0 "aabeb82e_70d9_42f7_901f3fe114094e0a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1677 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1678 1 0 "ce89bf49_b865_4c3f_a97eba220b5a7d33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS End Monitoring step return:"), o_stepReturn); // }} "" // {{{ 1679 1 0 "05229af2_f20a_42ce_908ec8445f3f9dd2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(""), Translate(""), id); // }} "" // {{ 1680 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1681 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1682 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1683 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetFirmwareVersion") { // }} "" // {{{ 1684 1 0 "942a1cc2_d956_47fa_9a9ffed1e856a632" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1685 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ; err.Clear(); // }} "" // {{ 1686 1 0 "f6b3cc8e_f852_4a96_9567a4fa67e846e8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1687 1 0 "c70f5e07_0eeb_45e5_af26714895e2df88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion); // }} "" // {{ 1688 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1689 1 0 "96886e69_ba07_45e3_96353112dc429afc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1690 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1691 1 0 "7de3b86c_c16d_4932_beedfb948b5d85f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(""), Translate(""), id); // }} "" // {{ 1692 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1693 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1694 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1695 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetSerialNumber") { // }} "" // {{{ 1696 1 0 "38b7d0d7_7cce_4157_8abc70dfb62eefa5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1697 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ; err.Clear(); // }} "" // {{ 1698 1 0 "08061228_63f2_47d2_a601ba16d6a1a142" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1699 1 0 "0bbfb488_9723_4a08_9b90171dbec6117a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber); // }} "" // {{ 1700 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2434A44DB44B48ff82A9F66DE34C5041 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1701 1 0 "4cf5e7f7_9567_4e6b_a206bf6f8962c785" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1702 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1703 1 0 "311e5a04_1ac3_443c_bdc51c5cdc4c44f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(""), Translate(""), id); // }} "" // {{ 1704 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1705 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1706 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1707 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerParameter") { // }} "" // {{{ 1708 1 0 "f3888a0b_86ea_4c4a_891e1755a6e78556" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1709 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ; err.Clear(); // }} "" // {{ 1710 1 0 "693cec94_9d14_4bff_8e4868a3b27f0245" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1711 1 0 "e993ed67_92ed_4c85_bd33f90aac53dfb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3); // }} "" // {{ 1712 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1713 1 0 "bd4bffe6_9161_4f42_b0b53307549f4286" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1714 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1715 1 0 "6efd49bf_48c7_437b_8fee57487345eaee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1716 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1717 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1718 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1719 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerSpeed") { // }} "" // {{{ 1720 1 0 "e1c29a26_0656_46e3_b0a412143047bd26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1721 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ; err.Clear(); // }} "" // {{{ 1722 1 0 "c0166b97_c0ae_417b_85c90c5ef42e5fc6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2); // }} "" // {{{ 1723 1 0 "73777071_2fd2_42b0_a7545c6a6a372194" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1724 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1725 1 0 "fb8e630b_9519_4b3d_94eabf1311546383" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1726 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1727 1 0 "41ba2513_e3c2_485c_821198419c3fe286" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1728 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1729 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1730 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1731 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTempParameter") { // }} "" // {{{ 1732 1 0 "09fb30ea_33e9_486d_96945af4798859ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1733 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ; err.Clear(); // }} "" // {{ 1734 1 0 "7e342beb_ebbe_4873_bf53c50f29cbaa0e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1735 1 0 "c8f45788_ef99_414d_a41d29a20583a067" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 1736 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C16E1CF8298042f0A01D1040DC911015 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1737 1 0 "b845f534_5a22_4076_b36069f70af90742" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1738 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1739 1 0 "4793211e_93d2_43e6_b4d25d7e0ae3e104" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 1740 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1741 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1742 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1743 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperature") { // }} "" // {{{ 1744 1 0 "01d1add6_c167_4137_8f0c285cd6ad9bed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1745 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ; err.Clear(); // }} "" // {{{ 1746 1 0 "ecd6d069_96d7_4a72_9ffc0df77e7a1512" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2); // }} "" // {{{ 1747 1 0 "b05c868f_c25f_47a9_b533b13ab05fc962" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1748 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_14A2AAD200434d69970AC483BD08B64F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1749 1 0 "cabbe1ee_c5d4_49dd_90875673900d6120" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1750 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1751 1 0 "234847f1_2f0a_4e64_856b9edefcebb425" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1752 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1753 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1754 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1755 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperatureState") { // }} "" // {{{ 1756 1 0 "82a233ab_0392_4ebb_9a809d80aae38e44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1757 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ; err.Clear(); // }} "" // {{{ 1758 1 0 "c99aa2b7_d8a6_4cee_a1fa1d731ef77d25" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2); // }} "" // {{{ 1759 1 0 "f2861b4d_28d2_4ee3_8b7c7763312067ab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1760 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_50485390A50647818ED2D3934FBC87E3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1761 1 0 "f56ee559_1221_4f5a_ad332d0e44502aff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1762 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1763 1 0 "31a69f44_1a59_49ce_a78763f3aa936042" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1764 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1765 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1766 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1767 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SendFirmwareCommand") { // }} "" // {{{ 1768 1 0 "11546c32_6ddd_4250_9b8750c9679e5b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1769 1 0 "06688598_f10e_41e9_8a2c6d3dff7b7aae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), command); // }} "" // {{{ 1770 1 0 "15a58509_ec93_4677_b1858cadeac42d10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("parameter"), parameter); // }} "" // {{ 1771 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ; err.Clear(); // }} "" // {{{ 1772 1 0 "a650efc1_423b_4f75_9f0da083ee44ae9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter); // }} "" // {{{ 1773 1 0 "e1ef0806_8a47_46c1_972c9ed9e299eaad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1774 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_84EE5E4228B140f599748D1271CBB0F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1775 1 0 "c9bd9645_5a05_4cc6_95997f787c8772d6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1776 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1777 1 0 "8b5634c2_e1da_41d3_83c57142f4cae999" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1778 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1779 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1780 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1781 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetPlateLock") { // }} "" // {{{ 1782 1 0 "927ddf67_5dbd_432b_b8cf6117a3109b06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1783 1 0 "a3eee1ac_7024_473b_a6eb8a2e9b461a66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("plateLock"), plateLock); // }} "" // {{ 1784 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ; err.Clear(); // }} "" // {{{ 1785 1 0 "b417b8ce_5117_450e_93a9a6243c6011d8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock); // }} "" // {{{ 1786 1 0 "ed43cecb_7012_4fb9_a89d129de09bdadb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1787 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1788 1 0 "4eb95522_37fd_4802_af85a620dc874526" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1789 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1790 1 0 "945560ed_40bf_44a9_851fead4c1943f9f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1791 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1792 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1793 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1794 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetShakerParameter") { // }} "" // {{{ 1795 1 0 "8a0e14c1_f6c6_4fb8_94094498cccd7991" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1796 1 0 "1810a83f_3fc2_4c49_9d5502fbdfc743e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingDirection"), shakingDirection); // }} "" // {{{ 1797 1 0 "c3053579_8645_474f_8c05459eed975362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingAccRamp"), shakingAccRamp); // }} "" // {{ 1798 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ; err.Clear(); // }} "" // {{ 1799 1 0 "32b90a07_0607_448d_9767de1d96e31862" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1800 1 0 "77463ac5_e629_4772_98004edef4016a6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp); // }} "" // {{ 1801 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1802 1 0 "5593fd2a_c1e7_4565_bcae82458768dd51" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1803 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1804 1 0 "5ed72ec4_1b60_4258_969b44c995450ec1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1805 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1806 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1807 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1808 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetSimulation") { // }} "" // {{{ 1809 1 0 "941f9e19_ca94_4ede_9719205aeb876593" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{ 1810 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ; err.Clear(); // }} "" // {{ 1811 1 0 "f56567fc_04c1_4645_aee22aa5f22a9f8c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1812 1 0 "41b0c1a2_60aa_4f16_8901c300e9a3dc14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetSimulation(simulate); // }} "" // {{ 1813 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1814 1 0 "35803a11_c620_485a_8196cc2822dddb3f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1815 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1816 1 0 "2e7a9d5f_51df_4c49_bb1986da7e14cd48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1817 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1818 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1819 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1820 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetTempParameter") { // }} "" // {{{ 1821 1 0 "99447b6e_9293_483d_bbd7ddee96870904" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1822 1 0 "f55d7581_a005_45e4_9b3d7f7473323e6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("startTimeout"), startTimeout); // }} "" // {{{ 1823 1 0 "7192db12_8543_4c8b_81b98b57ce21118d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("toleranceRange"), toleranceRange); // }} "" // {{{ 1824 1 0 "8f6d922f_f2ae_43c6_8682df15e6b7c07c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("securityRange"), securityRange); // }} "" // {{ 1825 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ; err.Clear(); // }} "" // {{ 1826 1 0 "a2342046_552f_4003_a1cc262161964a6e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1827 1 0 "57eb738a_6eb2_4f04_b25bd7f7f64a8179" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange); // }} "" // {{ 1828 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1829 1 0 "94c928dd_6dcb_4540_a6cbfdf48e37430c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1830 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1831 1 0 "90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1832 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1833 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1834 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1835 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetUSBTrace") { // }} "" // {{{ 1836 1 0 "0691ecbd_49b4_4590_91d60e614290ec34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("trace"), intTrace); // }} "" // {{ 1837 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ; err.Clear(); // }} "" // {{ 1838 1 0 "aeed4685_8812_4dce_89e2c35429d4c401" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1839 1 0 "24723a79_741b_46be_830fe654c08d6d1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetUSBTrace(intTrace); // }} "" // {{ 1840 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FE6D15E135D24fd7A06908E89474B650 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1841 1 0 "32d09876_dcdb_4d67_b5e72a63e14fec19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1842 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1843 1 0 "cda0d06f_dce0_47ad_bbb419c58aba260e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1844 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1845 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1846 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1847 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShaker") { // }} "" // {{{ 1848 1 0 "503e1c47_5f15_42bd_8eaad1057de68ef6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1849 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ; err.Clear(); // }} "" // {{{ 1850 1 0 "73be1c30_4bfe_4a0f_aa560c8df5b091fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartAllShaker(shakingSpeed); // }} "" // {{{ 1851 1 0 "39ac643d_0305_4ec6_87fc196efe3d76f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1852 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1853 1 0 "c35cdd37_7a73_4008_b9d0ac550c926428" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1854 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1855 1 0 "ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1856 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1857 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1858 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1859 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShakerTimed") { // }} "" // {{{ 1860 1 0 "db6b6c2e_da48_4c64_bdddc80ba5a28921" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1861 1 0 "f6f42906_5ded_4a05_8f9a11fac18f7f10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1862 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ; err.Clear(); // }} "" // {{{ 1863 1 0 "272104de_2e64_4a32_a88407b030437361" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime); // }} "" // {{{ 1864 1 0 "1362f66b_0efd_4eb5_935e84586a427637" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1865 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1866 1 0 "ef7c31f9_e307_450a_851111f26afd2e91" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1867 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1868 1 0 "d73f1476_bf95_4d48_89849f295a9e4d0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1869 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1870 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1871 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1872 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShaker") { // }} "" // {{{ 1873 1 0 "f958f5a5_d1c5_4e9e_9262e708f24940c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1874 1 0 "2ce1189b_e54a_48c0_aafc2932409c0b9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1875 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ; err.Clear(); // }} "" // {{{ 1876 1 0 "cf1b40c4_5e9a_48bf_9390f6eab212315f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed); // }} "" // {{{ 1877 1 0 "2e7a5304_5ce9_4afb_93a4a8276dc86d74" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1878 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1879 1 0 "9b93a06b_e4df_4eca_84467ca6c7f0c0ce" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1880 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1881 1 0 "4b0b48f9_3855_4eab_8f22b0902846d750" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1882 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1883 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1884 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1885 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShakerTimed") { // }} "" // {{{ 1886 1 0 "858c7861_9fb0_490e_9646b9eb190706d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1887 1 0 "327bd0c6_60a8_4fd1_9ef81e2a21d904a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1888 1 0 "83a6d58d_c761_484f_871c9c2229a6d3d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1889 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ; err.Clear(); // }} "" // {{{ 1890 1 0 "4b29337f_c67c_4ecf_a205f4b70e60271a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); // }} "" // {{{ 1891 1 0 "40aad8b7_f42e_4ad1_b0f0c033ec666548" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1892 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_29447729262E4e0f8B347F6640716D96 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1893 1 0 "f383d799_1d15_4348_8a2dc84422f46ff2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1894 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1895 1 0 "f539df09_de1d_4fd8_9ac041897fab0333" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1896 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1897 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1898 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1899 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartTempCtrl") { // }} "" // {{{ 1900 1 0 "dc338e01_6b43_4fe3_bda98d2b0a1a65e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1901 1 0 "04239a09_93a5_4f75_80f95d178bdf9cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("temperature"), temperature); // }} "" // {{{ 1902 1 0 "0387745b_87be_4ec6_912b0b4decaa257b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("waitForTempReached"), waitForTempReached); // }} "" // {{ 1903 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ; err.Clear(); // }} "" // {{{ 1904 1 0 "dfb61f9c_103b_4c42_83e0779ea05cb180" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached); // }} "" // {{{ 1905 1 0 "e4829da3_d8b6_453f_a2be82213303e9f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1906 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_764F491C76DA445383E5490AB126ADB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1907 1 0 "21dd8d34_e764_4a0f_b34ccecf089437dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1908 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1909 1 0 "bfde731d_b581_4488_b4cb7f4873675d7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1910 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1911 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1912 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1913 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopAllShaker") { // }} "" // {{ 1914 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ; err.Clear(); // }} "" // {{{ 1915 1 0 "ee3103a2_d7f3_488f_b7a95e2f2b56770a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{{ 1916 1 0 "a782313c_e15b_4340_bdda314f926e24cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1917 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1918 1 0 "45d1f212_46b9_4976_83503edf5606c88e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1919 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1920 1 0 "5706daca_363f_417f_9103f7ddd16c1444" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1921 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1922 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1923 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1924 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopShaker") { // }} "" // {{{ 1925 1 0 "1cdead0d_9944_446b_bd59d491b15242b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1926 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ; err.Clear(); // }} "" // {{{ 1927 1 0 "b5ecca33_fef4_4c14_9cf702c924839607" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StopShaker(deviceNumber); // }} "" // {{{ 1928 1 0 "49e72e72_8e49_49fd_8d212a6ccff1d2fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1929 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1930 1 0 "1fe83710_037b_4157_82a99e6aaf08edcb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1931 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1932 1 0 "6ffd1f39_ec63_4f9c_a7687447aff79f80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1933 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1934 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1935 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1936 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopTempCtrl") { // }} "" // {{{ 1937 1 0 "b16ab946_2ba9_4900_bd6f9ede31edf6ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1938 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B5957B02990845739642D8C604B0B582 ; err.Clear(); // }} "" // {{{ 1939 1 0 "d186dde8_c684_4550_a023d9023ff021d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StopTempCtrl(deviceNumber); // }} "" // {{{ 1940 1 0 "af12e4a9_cc0f_4a82_b9593d2b489756a8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1941 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B5957B02990845739642D8C604B0B582 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1942 1 0 "28b1d8d1_83cc_4627_9146c7398c601938" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1943 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1944 1 0 "11f3231a_40df_4c14_92585ab8016165e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1945 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1946 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1947 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1948 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_Terminate") { // }} "" // {{ 1949 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ; err.Clear(); // }} "" // {{ 1950 1 0 "b1da178c_1267_4c8c_b1cd24bfa10a11fb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1951 1 0 "910932e3_2b76_41cf_9dccecb799f2d649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::Terminate(); // }} "" // {{ 1952 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_919FCF7F89804c398972DAFE2605D286 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1953 1 0 "697e84e2_525e_4045_83bb3825b36f6b2f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1954 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1955 1 0 "4edde3c1_4f65_4403_a54985d84f6d80f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1956 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1957 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1958 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1959 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForShaker") { // }} "" // {{{ 1960 1 0 "87872be5_4e84_4b7b_98a3e7147a66f6a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1961 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ; err.Clear(); // }} "" // {{{ 1962 1 0 "3b2abeec_38f4_46a6_a30b0d0126280ebc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::WaitForShaker(deviceNumber); // }} "" // {{{ 1963 1 0 "c4e94e42_8405_438b_921cfe4ba73e9976" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1964 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1965 1 0 "c08ab14c_3879_4f65_ad7085e45f74a6df" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1966 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1967 1 0 "96b99051_5c80_421c_a02e0bd238da1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1968 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1969 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1970 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1971 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForTempCtrl") { // }} "" // {{{ 1972 1 0 "881e7d69_50e3_4e42_89eafece562ac009" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1973 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ; err.Clear(); // }} "" // {{{ 1974 1 0 "5aa60a5a_db92_42e0_b3277a41cacb5336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber); // }} "" // {{{ 1975 1 0 "49cd8e9e_91bd_468c_aec57e3af40280fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1976 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_088C7630997A4749A400740DA66CBA0C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1977 1 0 "de7dad67_0b6c_47eb_af5a68302431ff1e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1978 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1979 1 0 "aeb529e0_2eaf_4686_9528342b58318a5d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1980 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1981 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1982 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1983 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1984 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1985 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "CORE96WashEmpty") { // }} "" // {{{ 1986 1 0 "88f95bdd_c2c5_4856_91e5f47f7431bdaf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("refillAfterEmpty"), refillAfterEmpty); // }} "" // {{{ 1987 1 0 "d7a05a26_0b59_478a_a85f308173caf693" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1WashLiquid"), chamber1WashLiquid); // }} "" // {{{ 1988 1 0 "8b1bd108_2b5a_4a2d_ace7b87920eae1b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1LiquidChange"), chamber1LiquidChange); // }} "" // {{{ 1989 1 0 "d651fbf5_a4b8_490b_b869269338ccfcfa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2WashLiquid"), chamber2WashLiquid); // }} "" // {{{ 1990 1 0 "79b1a205_d988_4171_9e1fb28ba362329b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2LiquidChange"), chamber2LiquidChange); // }} "" // {{ 1991 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ; err.Clear(); // }} "" // {{ 1992 1 0 "3fc645b3_f504_4b5e_93481425adf459b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1993 1 0 "123d7b87_745f_4511_a797d08711d13361" "ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}" { variable arrRetValues[]; arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3("123d7b87_745f_4511_a797d08711d13361"); // Head96EmptyWasher } // }} "" // {{ 1994 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EE8804FCDC214a06935DD0F4830020DB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1995 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 1996 1 0 "d3d07dad_de12_4d0c_bd96c7caa06ff3ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1997 1 0 "84732f19_85e4_4b22_8e617b5e1c91f73c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Washer Return: "), o_stepReturn); // }} "" // {{{ 1998 1 0 "dde0a413_b493_4b17_94990d1d5f2e2b2e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1999 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2000 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2001 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2002 1 0 "1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONFromServer); // }} "" // {{ 2003 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2004 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "end") { // }} "" // {{{ 2005 1 0 "6db67a5a_6aa2_4087_875823acfff0fac4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Good Bye!")); // }} "" // {{ 2006 1 0 "4c7e40d6_02a6_451d_b28230ec71e40ce1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2007 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2008 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2009 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2010 1 0 "6fb90145_24c3_46ba_88b839e0215d0bf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{ 2 "AutoExitBlock" "" STAR_OEM_TOOLKIT::_ExitLibrary(); STAR_OEM_TOOLKIT_PH::_ExitLibrary(); STAR_OEM_TOOLKIT_CENTRIFUGE::_ExitLibrary(); STAR_OEM_TOOLKIT_MPE::_ExitLibrary(); HAMILTON_PH_MODULE_CONTROLLER::_ExitLibrary(); // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=Roboter$$valid=0$$time=2023-04-25 15:45$$checksum=6411032d$$length=084$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx1DE8.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" private function ArrayToString( variable & i_array[], variable & o_str ) void ; private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ; private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ; private function ConvertHSSErrCode( variable hssErrCode ) variable ; private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ; private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void ; function SendTextMessageToServer( variable str ) void ; private function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; private function waitForGUItoContinue( ) variable ; function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 2175 1 0 "c8aa765a_4840_468a_9e928b44fa79d891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{{ 5 "OnAbort" "End" } // }} "" // {{{ 5 "SendTextMessageToServer" "Begin" function SendTextMessageToServer( variable str ) void { // }} "" private object objJSONObject; private variable strJSON; // {{ 5 "SendTextMessageToServer" "InitLocals" // }} "" // {{{ 2135 1 0 "9d5f9d4a_c104_4b47_964b6d97f981a71e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONObject); // }} "" // {{{ 2136 1 0 "d0a04705_1adc_4919_b95168834c89f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("command"), Translate("message")); // }} "" // {{{ 2137 1 0 "7b9a6cd1_3eee_4085_b3f9548e43fc3424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("text"), str); // }} "" // {{{ 2138 1 0 "6a1c53cf_65ea_4f53_aa2e9111890fecf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONObject, strJSON); // }} "" // {{{ 2139 1 0 "bee8c148_b3ea_490b_8d93d8ed5f24939f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONObject); // }} "" // {{{ 2140 1 0 "b965a2fd_f821_4400_b4c777f558ed0772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendTextMessageToServer" "End" } // }} "" // {{{ 5 "waitForGUItoContinue" "Begin" private function waitForGUItoContinue( ) variable { // }} "" private variable loopCounter1; private variable serverResponse; private timer timer1; // {{ 5 "waitForGUItoContinue" "InitLocals" // }} "" // {{ 2156 1 0 "73328607_d06a_4d7d_8a5df64da06a1bde" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" serverResponse = Translate(""); // }} "" // {{{ 2157 1 0 "2342f8b3_4765_4edc_9fb9f46cbb1fd20b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Waiting for server instructions...")); // }} "" // {{{ 2158 1 0 "216e1039_788e_4830_8588933e6c542ba1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Waiting for server instructions...."), Translate("")); // }} "" // {{ 2159 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounter1 = 0; while (1 == 1) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2160 1 0 "5f15547c_3178_4f78_b5fea96f6a1c563b" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.1) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2161 1 0 "cd67277b_4386_4862_8429008a00601693" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 2162 1 0 "6ec592d0_fe02_41a9_8503db5ccf0e5544" "{C1F3C015-47B3-4514-9407-AC2E65043419}" serverResponse = HSLHttp::HttpGET(objHttp, Translate("http://localhost:3221"), Translate("")); // }} "" // {{ 2163 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (serverResponse != "") { // }} "" // {{ 2164 1 0 "b1e2e308_ee78_46d0_8a6832649536045e" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2165 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2166 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 == 300) { // }} "" // {{ 2167 1 0 "19e5c8f7_a1a9_4348_aa41a572942db630" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2168 1 0 "6be46368_bb3e_4ad8_82647d6f52af8c9b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2169 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2170 1 0 "8951a436_faf4_45df_a268dbb7ddb58c29" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.9) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2171 1 0 "52bb524e_27b1_4bbe_afcf26453d9eb66f" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2172 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2173 1 0 "809789b0_bd70_4c1f_b0d808ce120b1d99" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (serverResponse); // }} "" // {{{ 5 "waitForGUItoContinue" "End" } // }} "" // {{{ 5 "SendStepReturnToServer" "Begin" private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer" "InitLocals" // }} "" // {{{ 2106 1 0 "2520bd9f_739d_4111_a27d89f8f73ec39e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2107 1 0 "aa6010ec_0628_49d5_a87e016b4a4fc7f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 2108 1 0 "a97c5efa_0ce4_4358_9c51c1893f526b9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 2109 1 0 "deceb871_e830_4b14_86e626f745ef083a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 2110 1 0 "00afb5c2_b5db_4458_866a13b6cb332b68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 2111 1 0 "e52bbd02_b31d_4278_a0f45991eab77d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 2112 1 0 "19f99698_3777_4dcf_9fc765c3f221df4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 2113 1 0 "329f8b9b_0798_44f8_9ee6b65ec58b0c44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2114 1 0 "7728ac0d_8630_4f61_94af076392758ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2115 1 0 "70d261f2_edc4_49a0_a5a074cd5ab92b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2116 1 0 "ee0dd62d_582f_4171_b08e37f6106d9b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer" "End" } // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "Begin" private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void { // }} "" private variable n; private variable loopCounter1; private variable strSinglePosition; private variable arrayOfPositions[]; private variable arraySinglePosition[]; private variable labwareID; private variable positionID; // {{ 5 "BuildTempSequenceFromPositions" "InitLocals" { sequence __temp; o_seq = __temp; } // }} "" // {{ 2048 1 0 "d9022e13_e502_4969_a8ee79484e990801" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arrayOfPositions.SetSize(0); // }} "" // {{{ 2049 1 0 "3e178082_8579_435f_a5db4481bb789d9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strPositions, Translate(";"), arrayOfPositions, 0); // }} "" // {{ 2050 1 0 "5d735f26_db1b_4bea_9ee405f4167bb99f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" n=arrayOfPositions.GetSize(); // }} "" // {{{ 2051 1 0 "f497f24b_fd39_417d_8703c0d54662309f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq); // }} "" // {{ 2052 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2053 1 0 "fd645546_0433_46a0_8619026e338529fd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arraySinglePosition.SetSize(0); // }} "" // {{ 2054 1 0 "91aeb0c4_3176_4356_a19a1027bcdb0af3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1); // }} "" // {{{ 2055 1 0 "c2b42369_7829_4c62_b58880fce7867995" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strSinglePosition, Translate(","), arraySinglePosition, 0); // }} "" // {{ 2056 1 0 "016f61c5_fd76_4c74_903df10a03070f7b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" labwareID=arraySinglePosition.GetAt(1-1); // }} "" // {{ 2057 1 0 "886fc872_7c3a_4366_959db6d5f265ed7c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" positionID=arraySinglePosition.GetAt(2-1); // }} "" // {{{ 2058 1 0 "766a54b4_4c5b_4991_9d8ceea62d26b216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq, labwareID, positionID); // }} "" // {{ 2059 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2060 1 0 "0003c6e9_5b43_438d_bc93be342c3c6b55" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq.SetCurrentPosition(1); // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "End" } // }} "" // {{{ 5 "StrTokenize" "Begin" private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 2150 1 0 "500afe4c_98a8_4117_8c279b9994d0b626" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 2151 1 0 "6a0bd918_2fda_4e4c_a680454ce2576168" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 2152 1 0 "f65ed315_68ed_4ec0_ba0b3c217e692b25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 2153 1 0 "9476acee_e5bb_43d1_bbec232ed01bae08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); // Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "Begin" private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void { // }} "" private variable numOfVolumes; private variable numOfChannelsInVariable; private variable n; private variable loopCounter1; private variable arrSize; private variable loopCounter3; private variable strKeyName; // {{ 5 "BuildArrayOfVolumesForChannels" "InitLocals" o_arrayOfVolumes.SetSize( 0); // }} "" // {{ 2022 1 0 "69288f91_eabd_4d15_af5361636ffacbf6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyName = Translate("volumes"); // }} "" // {{ 2023 1 0 "bf4c1108_6751_41ee_8d3d3b1a9418548f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfVolumes.SetSize(0); // }} "" // {{{ 2024 1 0 "a9cfa743_a769_46a3_b8d7e45a67b3d297" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName); // }} "" // {{ 2025 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arrSize > 0) { // }} "" // {{ 2026 1 0 "594bebbb_0d54_4893_b20d783de743dd44" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2027 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < arrSize;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{{ 2028 1 0 "3bfc9004_2595_4917_b4edcdceed06f518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); // }} "" // {{ 2029 1 0 "6be31b23_f55d_4d15_be6abc9ee4bef664" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" Trace("Volume received=", v); // {{ 2031 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2032 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2033 1 0 "4a4891b3_f877_4b14_85196b7e820554b2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2034 1 0 "22c7c768_33c4_4975_909e9586375bfe8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(strKeyName, v); // }} "" // {{ 2035 1 0 "4e01e62a_13a2_408e_9fbfb2300d5996ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 2036 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2037 1 0 "cc565f65_a92a_43ef_9c052b7f5632aca5" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" numOfVolumes=o_arrayOfVolumes.GetSize(); // }} "" // {{{ 2038 1 0 "e49355fb_3fe6_4c8d_930870416e36b708" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numOfChannelsInVariable = StrGetLength(strChannels); // }} "" // {{ 2039 1 0 "804bc477_e950_4a14_af5f667c73cf5176" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2040 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (numOfVolumes < numOfChannelsInVariable) { // }} "" // {{ 2041 1 0 "2e73355c_8b11_4423_b345807cae9d5db8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" n = numOfChannelsInVariable - numOfVolumes; // }} "" // {{ 2042 1 0 "53a650d8_2fc1_4c5b_bd19eda433c2a81a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" v = o_arrayOfVolumes.ElementAt( numOfVolumes -1); // }} "" // {{ 2043 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2044 1 0 "cd047b15_6a02_40f1_adfb116f6bf5d763" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 2045 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2046 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "End" } // }} "" // {{{ 5 "ArrayToString" "Begin" private function ArrayToString( variable & i_array[], variable & o_str ) void { // }} "" private variable arraySize; private variable loopCounter1; // {{ 5 "ArrayToString" "InitLocals" o_str = 0; // }} "" // {{ 2012 1 0 "1a220255_6ba4_40fb_be39a6a2f4e0065f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 2013 1 0 "f821c4ff_f1a2_4ad7_9bd77dd8652567cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str = Translate(""); // }} "" // {{ 2014 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2015 1 0 "afd84a84_8330_46e7_8308e16b5caa05e9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" v=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 2016 1 0 "77436fd3_3c87_4f09_9a89259b15ef5bf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, v); // }} "" // {{ 2017 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 < arraySize) { // }} "" // {{{ 2018 1 0 "d14fd31e_5de8_46f9_bb359f38de9a08ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, Translate(";")); // }} "" // {{ 2019 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2020 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "ArrayToString" "End" } // }} "" // {{{ 5 "JSON_GetFloatValue" "Begin" private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void { // }} "" private variable retVal; // {{ 5 "JSON_GetFloatValue" "InitLocals" o_KeyFloatValue = 0; // }} "" Trace("getfloatvalue"); // {{{ 2068 1 0 "8f2f8625_6c9e_4c47_b4698d29df60004a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" // {{ 2069 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("error getting float value, try with integer"); // {{ 2071 1 0 "5a74df81_6685_4703_8b055144f8d74d45" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2072 1 0 "47bb8c98_9624_40ad_b765abfc6b0d0b49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" Trace("error getting float value, tried with integer"); // {{ 2074 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("wtf ok i guess its zero"); // {{ 2076 1 0 "5b8a3ec6_8ee4_4887_ab7df29fa494cdc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_KeyFloatValue = 0; // }} "" // {{ 2077 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2078 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "JSON_GetFloatValue" "End" } // }} "" // {{{ 5 "SendHHSReturnToServer" "Begin" private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; private variable t_arrayStepReturns[]; private variable loopCounter1; private variable keyName; private variable varType; // {{ 5 "SendHHSReturnToServer" "InitLocals" // }} "" // {{{ 2080 1 0 "6db3f932_ba70_4cf6_9c2a8636580fc754" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2081 1 0 "3cf8a985_83cc_418e_99293de9d9945d5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("HHS-return")); // }} "" // {{{ 2082 1 0 "705c25bc_6db4_4eb9_b05b33999e110198" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{ 2083 1 0 "5a9efc02_a11a_4c0c_b166e3b28800cc6c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" t_arrayStepReturns.SetSize(0); // }} "" // {{ 2084 1 0 "5aa4f3a8_774f_4f35_ae7fa197ef920048" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn1); // }} "" // {{ 2085 1 0 "00ac351d_bc51_41e5_b300af93d6893fa5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn2); // }} "" // {{ 2086 1 0 "2aaf8702_2d08_48ee_be96815ca77463c9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn3); // }} "" // {{ 2087 1 0 "67fcb56e_9f42_4739_a5ee322f12443a17" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn4); // }} "" // {{ 2088 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < 4;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 2089 1 0 "a23ae2ed_5b02_41a0_a69215d0b80fde4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" keyName = StrConcat2(Translate("step-return"), loopCounter1); // }} "" // {{{ 2090 1 0 "9b92ac94_8c71_4b77_95ac0c691427c4bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" varType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2091 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "s") { // }} "" // {{{ 2092 1 0 "1497ea6a_46ab_4ee8_b7951f24b533e644" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2093 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2094 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "f") { // }} "" // {{{ 2095 1 0 "61772f9e_fea3_4011_bba06b7fe66e8b0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2096 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2097 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "i") { // }} "" // {{{ 2098 1 0 "28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2099 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2100 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2101 1 0 "0a0447b8_96fb_495a_90dfa8f1e2c488ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2102 1 0 "b2a13d10_b443_4fc0_aa0baa2a23cddafe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2103 1 0 "0adf40b4_5c73_46d8_8e6042c6dfd32d86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2104 1 0 "5a5dabeb_e3ed_4730_ab86839e00f75077" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendHHSReturnToServer" "End" } // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "Begin" private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer_EightOutputs" "InitLocals" // }} "" // {{{ 2118 1 0 "a5a7b215_f4cb_4951_82e1faf532cd7222" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2119 1 0 "9480693e_99ec_4cfd_aa9c8f48e76ee42f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 2120 1 0 "3f068696_35bd_4060_8b291470a817f628" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 2121 1 0 "b68a52fb_e141_4e4c_b5e7bbcbf0c9817f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 2122 1 0 "8ab4a139_9629_43b7_98f13d1058881e4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 2123 1 0 "1417a4bd_aea8_4b36_8a7a05739a789ecf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 2124 1 0 "24b6213e_470e_468a_86dc55b44ff96b95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 2125 1 0 "42403d87_ddb6_4bee_8fc6ad09efb7573a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return5"), stepReturn5); // }} "" // {{{ 2126 1 0 "8493044a_674d_4139_90fa1c7a00050abc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return6"), stepReturn6); // }} "" // {{{ 2127 1 0 "b43cf915_ef0d_4d62_985deae88bcd6c18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return7"), stepReturn7); // }} "" // {{{ 2128 1 0 "584d78fd_87d0_4502_a6d089cfaf888318" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return8"), stepReturn8); // }} "" // {{{ 2129 1 0 "711dbc6f_e5c4_40a0_bef5785dc99707ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return9"), stepReturn9); // }} "" // {{{ 2130 1 0 "47856892_8af4_409f_88723a44ebe61362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2131 1 0 "e5054174_6f3f_4356_8dc30683be948abe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2132 1 0 "e21196c3_6b8f_47e5_a2888114650b2ec8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2133 1 0 "3fec97a3_9f33_4fef_afe5355188bf56d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "End" } // }} "" // {{{ 5 "StrArrayToInts" "Begin" private function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void { // }} "" private variable arraySize; private variable loopCounter1; private variable val; private variable o_arrayOfInts[]; // {{ 5 "StrArrayToInts" "InitLocals" o_intarray.SetSize( 0); // }} "" // {{ 2142 1 0 "d68ba554_ea5e_486c_90e45e6f46e051a7" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 2143 1 0 "2ceaf7fd_f918_493e_a519f9ccc1a58114" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfInts.SetSize(0); // }} "" // {{ 2144 1 0 "f1b90762_2d83_476f_b1cd6ef39b938b13" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2145 1 0 "832d04b5_dd9e_47f6_86628701b9ba44ef" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" val=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 2146 1 0 "a10f8b45_b69d_4a85_be5a713ea78ccd01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" val = APPSLIB::StrConvertToNumber(val); // }} "" // {{ 2147 1 0 "70dffb74_d5e0_4795_bc74a43dbf1c7d9b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_intarray.AddAsLast(val); // }} "" // {{ 2148 1 0 "f1b90762_2d83_476f_b1cd6ef39b938b13" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "StrArrayToInts" "End" } // }} "" // {{{ 5 "ConvertHSSErrCode" "Begin" private function ConvertHSSErrCode( variable hssErrCode ) variable { // }} "" // {{ 5 "ConvertHSSErrCode" "InitLocals" // }} "" // {{ 2062 1 0 "0390e8b9_f753_48cc_ba9811c6326b8cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (hssErrCode == 0) { // }} "" // {{{ 2063 1 0 "9f0ce7fc_13c6_4496_9d762a07174e50f1" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (1); // }} "" // {{ 2064 1 0 "0390e8b9_f753_48cc_ba9811c6326b8cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2065 1 0 "4c347e8c_4bce_4fd2_9771e3402c6f946d" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (0); // }} "" // {{{ 5 "ConvertHSSErrCode" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=Roboter$$valid=0$$time=2023-04-25 15:45$$checksum=526b92e7$$length=086$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx1DE8.tmp ================================================ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx2A1D.hsl ================================================ namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HslHamHeaterShakerLib.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "SchedulingDev\\HSLAppsLib.hsl" } namespace _Method { #include "STAR_OEM_toolkit_pH.hs_" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" } namespace _Method { #include "STAR_OEM_toolkit_centrifuge.hs_" } namespace _Method { #include "STAR_OEM_toolkit_MPE.hs_" } namespace _Method { #include "Hamilton pH Module Controller.hs_" } #include "STAR_OEM_Test.res" namespace _Method { #include "Hamilton MPE2\\HSLMPELib.hsl" } namespace _Method { #include "Hamilton Centrifuge\\Hamilton Centrifuge.hsl" } namespace _Method { #include "HSL_LiquidClassLib.hsl" } /* {{ 2 "LibraryInsertLine" "" */ // }} "" variable loopCounterMain; variable msg; object objJSONFromServer; variable commandFromServer; variable initializeAlways; variable o_stepReturn; object objJSONToServer; sequence seq; variable tipSequence; variable sequenceCounting; variable channelVariable; variable channelUse; variable labwarePositions; variable aspirateSequence; variable v; variable arrayOfVolumes[]; variable liquidClass; variable aspirateMode; variable capacitiveLLD; variable pressureLLD; variable liquidFollowing; variable submergeDepth; variable liquidHeight; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable airTransportRetractDist; variable touchOff; variable aspPosAboveTouch; variable o_liquidLevels_mm[]; variable o_liquidLevels_mL[]; variable o_stepReturn2; variable o_stepReturn3; variable dispenseMode; variable dispenseSequence; variable dispPositionAboveTouch; variable zMoveAfterStep; variable sideTouch; variable wasteSequence; variable useDefaultWaste; variable reducedPatternMode; variable aspirateVolume; variable o_stepReturn4; variable dispenseVolume; variable tipEjectToKnownPosition; variable carrierName; variable barcodeFileName; variable barcodeReadPositions; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable lidSequence; variable plateSequence; variable toolSequence; variable transportMode; variable widthBefore; variable gripHeight; variable gripWidth; variable gripSpeed; variable gripperToolChannel; variable checkPlate; variable zSpeed; variable gripForce; sequence lidSeq; sequence toolSeq; variable xAcceleration; variable platePressOnDistance; variable ejectToolWhenFinish; object objHttp; variable blnReturn; variable blnSuccess; variable usedNode; variable deviceNumber; variable action; variable sampleInterval; variable shakingToleranceRange; variable id; variable monitorResult; variable firmwareVersion; variable serialNumber; variable command; variable parameter; variable plateLock; variable shakingAccRamp; variable shakingDirection; variable simulate; variable startTimeout; variable toleranceRange; variable securityRange; variable intTrace; variable shakingSpeed; variable shakingTime; variable temperature; variable waitForTempReached; variable inverseGrip; variable liftUpHeight; variable retractDistance; variable tolerance; variable labwareOrientation; variable movementType; variable collisionControl; variable gripMode; variable showCollisionCheckDialog; //global device HxFan ("STAR_OEM_Test.lay", "HxFan", hslTrue); variable refillAfterEmpty; variable chamber1LiquidChange; variable chamber2WashLiquid; variable chamber1WashLiquid; variable chamber2LiquidChange; variable FirmwareCommand; variable FirmwareParameter; variable CommandListElement; variable CommandListLength; object FirmwareCmdDict; variable yDisplacement; variable zDisplacement; variable xDisplacement; variable yOrigin; variable xOrigin; variable zOrigin; variable ControllerID; variable SimulationMode; variable ErrorCode; variable DeviceID; variable TargetTemperature; variable StopAllDevices; variable TraceLevel; variable Comport; variable Simulate; variable ModuleName; variable Angle; variable inputSequence; variable barcode; variable seqFirstPosition; variable seqSecondPosition; global device ML_STAR ("STAR_OEM_Test.lay", "ML_STAR", hslTrue); variable ModuleID; variable probePattern; variable pH_probe_1; variable pH_probe_2; variable pH_probe_3; variable pH_probe_4; variable Variance; variable Timeout; variable CalibrationLevel; variable CalibrationValue; variable CalibrationTemperature; variable Precision; variable Temperature; variable ChargeCounter; variable ReplacementDate; variable BatteryCondition; variable ActualCharge; variable MeasurementCounter_Probe_1; variable MeasurementCounter_Probe_2; variable MeasurementCounter_Probe_3; variable MeasurementCounter_Probe_4; variable HardwareNumber; variable Revision; variable SerialNumber; variable PartNumber; variable Selector; variable VoltageData; variable Day; variable Year; variable Month; variable Charge; variable AutoCharge; variable AutoChargeLevel; variable Probe; variable Mode; variable ProbeNumber; variable pHHighValue; variable pHHighVoltage; variable pHLowValue; variable pHLowVoltage; variable CalibrationSlopeRatio; variable CalibrationOffset; variable CalibrationSlope; variable CycleNumber; variable NodeName; variable Label; variable AlwaysInitialize; variable intPresentPosition; variable Direction; variable CloseCoverAtEnd; variable ArrSpeed; variable ArrAcceleration; variable ArrDuration; variable i_ArrDuration[]; variable i_ArrAcceleration[]; variable i_ArrSpeed[]; variable Decelleration; variable Speed; variable Acceleration; variable MaxRunTime; variable SpeedSensorTrip; variable TimeLeft; variable GravitySensorTrip; variable CurrentSpeed; variable TemperatureSensorTrip; variable ProfileStatus; variable RotorDriveRunning; variable Deceleration; variable DeviceName; variable AdapterDeviceID; variable InstrumentName; variable PortNumber; variable MPEOptions; variable ComPort; variable BaudRate; variable CollectionPlateHeight; variable OffsetFromNozzles; variable NeedleOffset; variable WellVolume; variable FlowRate; variable SourceID; variable Needleoffset; variable PlateHeight; variable WellDepth; variable EvaporateTime; variable FollowRate; variable EvaporateTravelDistance; variable NozzleHeight; variable FilterHeight; variable WasteContainerID; variable FullReading; variable CapacityVolume; variable CalibrationDate; variable EmptyReading; variable blnReset; variable CurrentGasTemperature; variable Heating; variable CurrentEvaporatorTemperature; variable MinimumGasTemperature; variable MinimumEvaporatorTemperature; variable MaximumEvaporatorTemperature; variable MaximumGasTemperature; variable ManifoldPressureSensor; variable HighPressureSensor; variable InputPressureSensor; variable LowPressureSensor; variable MaximumTemperature; variable MinimumTemperature; variable VacuumActive; variable VacuumRunTime; variable DisableVacuumCheck; variable Smart; variable SensorReading; variable ControlPoints; variable ReturnPlate; variable Volume; variable Seconds; variable DefaultTemperature; variable MeasureTime; variable MeasureHeight; variable CalibrationValue1; variable TempSoln1; variable TempSoln2; variable CalibrationValue2; variable blnCalibrateDynamically; variable CalibrationValueRef; variable TempSolnRef; variable Module; variable Reference; variable Calibration1; variable Calibration2; sequence seqModule; sequence seqCalibration1; sequence seqCalibration2; sequence seqReference; variable CalibrationTime; variable arrCalibrationSlopeRatios[]; variable arrpHValuesReferenceSolution[]; variable CalibrationSlopeRatios; variable pHValuesReferenceSolution; variable BluetoothPort; variable NumDryCycles; variable NumWashCycles; variable DryTime; variable Gripper; sequence seqGripper; variable WashPosition; sequence seqWashPosition; variable DryPosition; sequence seqDryPosition; variable DryCycles; variable TransportChannel; variable WashCycles; variable arrpHValues[]; variable flt_pHValues; variable seqMeasure; variable ProbePattern; variable seqMeasurement; variable MeasurePositions; variable hssErrCode; variable LiqClassParameterName; variable LiqClassParameterValue; variable LiquidClassName; variable LiquidClassParameterValue; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" STAR_OEM_TOOLKIT::_InitLibrary(); STAR_OEM_TOOLKIT_PH::_InitLibrary(); STAR_OEM_TOOLKIT_CENTRIFUGE::_InitLibrary(); STAR_OEM_TOOLKIT_MPE::_InitLibrary(); HAMILTON_PH_MODULE_CONTROLLER::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{{ 1 1 0 "e7768ad9_4016_4422_bd83f5785d03ceda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnReturn = HSLHttp::Initialize(objHttp); // }} "" // {{ 2 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnReturn != blnSuccess) { // }} "" // {{{ 3 1 0 "62c131b4_44b9_4249_8e0a3205a25b21b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); // }} "" // {{{ 4 1 0 "fb18125e_b294_4554_912c3d447526996e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 5 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 6 1 0 "ee92e29b_e94c_46cf_a67851f3be61c805" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Hi, Im a VENUS method.")); // }} "" // {{ 7 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; // }} "" // {{ 8 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "de417132_351a_4ad8_80c71b1863d4a870" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" commandFromServer = Translate(""); // }} "" // {{ 10 1 0 "d9c97239_3c9d_4992_8fb5820ae5721d90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate(""); // }} "" // {{ 11 1 0 "57da7835_7495_4b16_8b82897289efbd11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn2 = Translate(""); // }} "" // {{ 12 1 0 "cf024fcc_3594_4355_b33f4bd8c8bdfb4e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn3 = Translate(""); // }} "" // {{ 13 1 0 "9ed0b80d_8518_474f_a94d8f843a6158fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn4 = Translate(""); // }} "" // {{ 14 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 15 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 16 1 0 "0257e5d3_7b99_47be_a062950a2b200664" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" msg = waitForGUItoContinue(); // }} "" Trace("JSON received from Server:", msg); // {{{ 18 1 0 "36be63f7_a79c_44a4_b1dc636a536612bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONFromServer); // }} "" // {{{ 19 1 0 "5c2b861d_97f9_4e18_a5fce25e78026299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::ParseJson(objJSONFromServer, msg); // }} "" // {{{ 20 1 0 "562abca5_8891_402a_b8a7c5ba56301a86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); // }} "" // {{{ 21 1 0 "cb002e33_cc71_4a25_890fa8f9f5d982a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("id"), id); // }} "" // {{ 22 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 23 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 24 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "initialize") { // }} "" // {{{ 25 1 0 "773dbb38_0414_403d_b2ff24100c7cf1fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); // }} "" // {{{ 26 1 0 "97af1c08_2914_4f72_b27c685f11b30bb6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); // }} "" // {{{ 27 1 0 "04505c20_428c_4440_8169ddcbaade8bbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::Initialize(ML_STAR, 0); // }} "" // {{{ 28 1 0 "b3ab11e2_0297_446f_9cf37ca7c0c9d19f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Init step return:"), o_stepReturn); // }} "" // {{{ 29 1 0 "57d4e0cd_327e_4cac_8e83a7da6222dda0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 30 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 31 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 32 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 33 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 34 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipPickUp") { // }} "" // {{{ 35 1 0 "53e1cfb5_1fde_491f_bfd878eceda16ba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 36 1 0 "f0e9e31f_d871_4632_bd466e43fc38c771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 37 1 0 "e6311b13_2132_40e0_aff0b5556205c32a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 38 1 0 "cb659ed1_5f0c_41e8_8a060ec0b650c589" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{ 39 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 40 1 0 "6699226b_6c7b_4b79_95b8017162b433b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 41 1 0 "bd13798f_62e7_4dd2_8e91769d48d10fc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 42 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 43 1 0 "ce13caa6_634b_4dec_8a6c3ea74b144e95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 44 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 45 1 0 "29f69958_d99b_455a_93c7b0480bfd1658" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn); // }} "" // {{{ 46 1 0 "732425fd_a199_4354_8479d821ee834e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 47 1 0 "22f00193_1056_456e_a515d156eee56e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 48 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 49 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 50 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 51 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelAspirate") { // }} "" // {{ 52 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 53 1 0 "55ee3109_036b_4acb_8a15175f3316656f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 54 1 0 "a5b3e5ac_4910_4a4a_8e20bdb7f61836e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 55 1 0 "ce04189a_96e4_4bdc_aedc8a68bf64647b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 56 1 0 "882daff3_cc25_4778_aec6a937fc87347c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 57 1 0 "7f7b9f83_5611_4a3b_b5c120689696addb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 58 1 0 "39e464b7_0def_403b_a02f5dd2a358dbd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 59 1 0 "2e2739aa_8eb6_44e0_b887ea00b04acac0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 60 1 0 "9408edd8_3cee_43e0_976b4a6fabf5f4ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 61 1 0 "a2848877_3518_4d1d_95f77c1f313003e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); // }} "" // {{{ 62 1 0 "4b5ce3d0_91f4_4c14_aaf1cad34e0caf60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" Trace("Bookstart"); // {{{ 64 1 0 "12892ce3_3bc6_4165_b3b6ae0eacad20e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" Trace("Bookend"); // {{{ 66 1 0 "15bd5af3_2da1_420b_beb398dc2347a0ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 67 1 0 "4fe61fb4_bb39_4728_96b8c6959f4943ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); // }} "" // {{{ 68 1 0 "ba68c240_2397_4872_949ee1ee984595c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 69 1 0 "baac19fc_9f21_4e8c_b833f2a1ba2433f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 70 1 0 "253130f8_f599_4ef4_9d5a15e2cb89d1eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 71 1 0 "51233931_483f_4deb_a8627b909d6c9116" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 72 1 0 "bf0c65ba_7847_4768_92ebbe8adc6568c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 73 1 0 "30a6715c_b6c6_4d86_b5c02f3da440e309" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 74 1 0 "6eb82b6e_8093_461e_afc712cab07398dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 75 1 0 "3f8b6af1_7872_4a20_92bf2c4507ea9f31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); // }} "" // {{{ 76 1 0 "7dd1b818_5a89_4b03_82734e6f4d7b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{ 77 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 78 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 79 1 0 "cb2b67f0_7384_4a41_831de652f92d4c85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 80 1 0 "29a868b4_7800_4747_b14eaf0f2c10ba40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 81 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 82 1 0 "08f63789_65f1_4e7d_996dc22e8f33d416" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 83 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 84 1 0 "8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 85 1 0 "7cb70e6b_15bb_4380_b62150df065d208f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 86 1 0 "4714958b_0632_4de2_983c7fe9de68df6c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 87 1 0 "bd40f564_16d7_4037_aef8eebfe28a4362" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 88 1 0 "18bf536c_98f4_4345_86a103db4a9b68a1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 89 1 0 "d60cd9aa_083b_4487_8d6218cee02fa4cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 90 1 0 "e86187c0_0d19_453e_be1c5a401d0d5d93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 91 1 0 "d66c2dae_4cc3_4a31_bafe46d1dd63e790" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 92 1 0 "d23f143d_290d_4d0f_b368241a6a9adaed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 93 1 0 "0428e844_3191_4cde_b7f3544f34c833f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 94 1 0 "a7ca006f_941c_4b31_9749313ad9b4e079" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 95 1 0 "8c97ba72_f880_4504_baee8b8db3d13310" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 96 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 97 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 98 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 99 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelDispense") { // }} "" // {{ 100 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 101 1 0 "909bc255_6ca1_4700_bc102ccb34ae5be4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 102 1 0 "fd48dd93_9f42_4df0_9f659e27a5552543" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 103 1 0 "3ff3f492_86a5_40af_a3deabccbab3898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 104 1 0 "3cbb883f_48ae_40fe_afe67da944df94b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 105 1 0 "ab1033bc_1216_450a_9fb60655a1f1a21a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 106 1 0 "0bc1541f_26d5_44d6_8db6ae336fec17bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 107 1 0 "8c10cc29_c05e_4cea_9ed559249651e805" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 108 1 0 "3e0373da_7c7c_46ab_9b77fba19915662e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 109 1 0 "b98fdc49_cdcb_4f3c_81df0b76eafa1411" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 110 1 0 "7458d32a_402a_4215_b52378c78468ec80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 111 1 0 "5e14f2ce_c932_474b_be03f3c043c700e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 112 1 0 "c2010d1d_5a78_4871_a835a6613a1237bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 113 1 0 "d4a6e6a3_0158_45f1_9c359d8e48e01bed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 114 1 0 "011e9828_5413_40c1_80d0c3bdde1c6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 115 1 0 "2d7a4942_b2ce_43a2_8decf49fa0c9576c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 116 1 0 "ad9f0bbf_e495_41c5_898a3be32bb16f2b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 117 1 0 "5c734886_aa50_424c_b89f6894bc37dd8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 118 1 0 "d1bc00cc_4286_4409_b1c49b6350e7e6ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 119 1 0 "b178ce99_db9e_4453_bed28d4ce0457bc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); // }} "" // {{{ 120 1 0 "1b38ad88_3c65_4e58_812f9ed32ce32485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{{ 121 1 0 "f34066f1_63f9_474f_8a9c41e56962dc74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 122 1 0 "6b94916e_355b_4ee9_8eb4f1b49c95fea4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 123 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 124 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 125 1 0 "e962dd26_3672_4418_bd3c40e9929929eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 126 1 0 "6257966a_6b39_41c8_a057a79b8e39cd4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 127 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 128 1 0 "3f230e40_8bd9_4235_b88cd0ca80799661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 129 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 130 1 0 "8d82ff40_d831_430b_97d97c01d2a4474e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 131 1 0 "ac0ad5a7_d00b_46fe_a18f94f8dab3863c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 132 1 0 "b7f86b6c_03a4_4e12_a05e5e8bdc958b75" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 133 1 0 "9bfa8704_2ae0_4a63_83d09fddbacfd336" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 134 1 0 "860b660a_6947_4c88_a2a039bf65040bf5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 135 1 0 "797f0eef_5bb2_4a2e_a178af74f4892bd7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 136 1 0 "2753c24e_c4dc_402d_866b6bc8691ecc1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 137 1 0 "1ac127fd_b830_496f_b4d4b9671137ebff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 138 1 0 "3ee5d751_d3a5_468a_b539c4f0ff22023e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 139 1 0 "b86d492c_446f_4921_97140cfd462ace87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 140 1 0 "e049946d_6322_4b39_9c46a2d0eb345528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 141 1 0 "531432f5_ef8a_416e_8be28a07ae9b0d25" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 142 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 143 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 144 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 145 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipEject") { // }} "" // {{{ 146 1 0 "69be671e_7cdd_48d3_af136435754c1d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 147 1 0 "f3444c0f_4863_4fdd_94a025b682d8a6d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 148 1 0 "12ad2f39_c160_4afc_9f6ffce7e3ddb433" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 149 1 0 "2883bb64_2fe3_47ca_996e11434afc57cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 150 1 0 "10c3b13e_7129_4cfd_b88b29d0bbc31a28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); // }} "" // {{ 151 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (useDefaultWaste == 0) { // }} "" // {{ 152 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 153 1 0 "655bc92f_08a8_4c16_a0276997aec081ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 154 1 0 "a3a0b5ef_85c0_4552_a28b3356d7886eb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 155 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 156 1 0 "efadb8c3_c431_4ed4_a739a951c05ee518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 157 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 158 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 159 1 0 "2dda50b6_7f82_4e8a_a1d203715119213a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 160 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 161 1 0 "7fa61e34_a1f2_4b99_8f6bed13c6ce120f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn); // }} "" // {{{ 162 1 0 "a7db5128_f8e4_4afe_81f46b2cc86e608d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject step return:"), o_stepReturn); // }} "" // {{{ 163 1 0 "683607f4_928f_4cea_b901fe3502404424" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 164 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 165 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 166 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 167 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 168 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 169 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipPickUp") { // }} "" // {{{ 170 1 0 "1f82c33f_a085_47cc_85dbbde3e42a53c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 171 1 0 "9f9fe665_47a2_4a12_961460021d1f09f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 172 1 0 "743960d2_9d0f_4ccf_848662247e3211c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 173 1 0 "b737602c_63e8_4c4c_b47f40cb815914ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); // }} "" // {{ 174 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 175 1 0 "00bd1831_c335_40f5_b706f0ffadbe2890" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 176 1 0 "1f16418c_8fa7_44a5_a6db75dd9a79ee84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 177 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 178 1 0 "b66db4eb_9e79_4c19_909fd8d14d37cba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 179 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 180 1 0 "f3e7cbf6_0242_4463_8d4ed0db4667f7db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2); // }} "" // {{{ 181 1 0 "b080a5c6_324c_4aae_b5899dede6d863f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 182 1 0 "aa5a9c4b_0377_46ce_9b46883db15cbd7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 183 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 184 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 185 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 186 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Aspirate") { // }} "" // {{ 187 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 188 1 0 "373f30c8_ec07_4298_94d6ac75358ab1ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 189 1 0 "ef3ae377_e985_4ef6_93b005aa91c9b2b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 190 1 0 "d8eea65a_6e59_4c32_a47bae09779f9528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 191 1 0 "8eb02312_a070_491c_9758b3cdbdee0cfc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); // }} "" // {{{ 192 1 0 "6eaf8bee_b53f_4f01_87c1380bc345e386" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 193 1 0 "d9923a2f_e7cf_4f3e_81746e378a20baab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 194 1 0 "2c411993_e3fc_4753_9a90308b226078a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 195 1 0 "5d900896_b2b9_442b_b24294b9bbfbdaad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 196 1 0 "21149e9e_21c9_4ddd_93e07b693e3ab3fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 197 1 0 "bcefef03_102b_4887_adad59c2fb7ad551" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 198 1 0 "9665b0a3_35e8_47e9_b14ac1a4818cfa6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 199 1 0 "ff93d28b_afe9_47e7_9b6eb50d6845384f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 200 1 0 "ef43b824_fd38_42d4_9e932904dbf14813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 201 1 0 "b0378457_e370_448b_bfd6955c05e57bcb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{ 202 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 203 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 204 1 0 "615bcff6_e9d5_4303_a5d5826b2e2548dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 205 1 0 "cf4ad428_945e_4921_9441ee34cf9c96bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 206 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 207 1 0 "86397ec2_2ee5_4ec1_8bec47d8e87584b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 208 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 209 1 0 "48f88263_72c1_4df2_865181cffed9feee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 210 1 0 "f1b764e8_e556_4d08_bb83bdc12dc64a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 211 1 0 "164c104a_cf5f_46de_b23a098a18b3fdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 212 1 0 "ee779f77_51a9_46d7_b58b7bcaf13519f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 213 1 0 "e874eb6d_1e97_4590_95d9b10cb059c935" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn4); // }} "" // {{{ 214 1 0 "0ca1df86_a344_45fd_b384e13ba44c5ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 215 1 0 "2497228e_672e_4c95_9f31679fe87bbe1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 216 1 0 "e4930eee_c625_4acb_a81c05e149a1a218" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 217 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 218 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 219 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 220 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Dispense") { // }} "" // {{ 221 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 222 1 0 "78cba921_2a37_4b4a_91ef7fbe81fcddd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 223 1 0 "b58b4cbd_16e9_4444_9037061e29bc5614" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 224 1 0 "0ab910ec_826d_4c84_bac7ed9564f3bdab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 225 1 0 "84d664b7_70d0_4136_bdfd4de2aa760ad8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); // }} "" // {{{ 226 1 0 "18becc6a_2df4_4281_8b16ade9038979f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 227 1 0 "68c565db_e5ed_44e8_b3846a1d98034e76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 228 1 0 "6a4221a8_9488_48f9_8381b1bc0f0c960d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 229 1 0 "45dcb271_e326_42fc_b8684816d3ffdc93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 230 1 0 "14552b13_e77b_4fb7_9020445ecc5ade21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 231 1 0 "91783f87_af6f_446e_a74fb1725f17d282" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 232 1 0 "e2e7f702_1710_49eb_9b1046dbf4f143e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 233 1 0 "1817aa70_86fa_4318_a8e46569701623e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 234 1 0 "50bd6734_10d5_4291_b40eb708539514fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 235 1 0 "ad5fbb01_d809_4b7d_b858ed597709f28f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 236 1 0 "09566247_6b2d_4c73_b43fe303a30f89c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 237 1 0 "3ead74f7_3b5c_4b21_84d2488c2eceab73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 238 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 239 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 240 1 0 "835f8470_7e8c_40ff_a48abcc85d6b778b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 241 1 0 "059394fc_e924_4d57_b1b85f79f9947fa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 242 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 243 1 0 "6c4be3a7_a450_459c_90545a208f9f459f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 244 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 245 1 0 "c164a94e_2926_462e_9487870d403fe8b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 246 1 0 "86c0fb85_8aaf_4bec_9f6f1f642206487f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 247 1 0 "77047add_8050_4522_ad477b97455a8327" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 248 1 0 "5b2c6f23_9a69_489d_b52179c78c03e48f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 249 1 0 "a9a9244b_829f_4c5b_9a64f1018b029453" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn4); // }} "" // {{{ 250 1 0 "781580a9_199e_4373_b48bb55a97f8a463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 251 1 0 "1867ae44_25f8_4926_ae081e490fd5aa0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 252 1 0 "dbb3b30c_b4a1_4cf6_a24b62b63f155369" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 253 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 254 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 255 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 256 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipEject") { // }} "" // {{{ 257 1 0 "7cf9db16_d78c_4aa0_825cc3c2c22f287c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 258 1 0 "ccca7a97_c22a_4f20_b2d9a60d67850eee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 259 1 0 "a319f75e_77eb_4845_856516ce060213f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 260 1 0 "d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); // }} "" // {{ 261 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipEjectToKnownPosition == 0) { // }} "" // {{ 262 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 263 1 0 "24eeb6dd_1e20_422c_a1a8199cbca73b33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 264 1 0 "5197334f_cde5_4d52_9c528a0c4f7401b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 265 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 266 1 0 "110b82e1_8a5b_48e4_a3adbab701cffc8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 267 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 268 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 269 1 0 "fa32bbf8_8345_4897_aaf09d112d374893" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 270 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 271 1 0 "ef087a4e_684e_4d98_87109abf154fbc85" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2); // }} "" // {{{ 272 1 0 "328216cf_22dd_47a1_9f1ba089b1ac7702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn); // }} "" // {{{ 273 1 0 "53265943_7975_4275_ad98df313054f97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2); // }} "" // {{{ 274 1 0 "c13d9773_7daf_4c3c_9064fdd4f7c7008f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 275 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 276 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 277 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 278 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 279 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "loadCarrier") { // }} "" // {{{ 280 1 0 "76d739d0_ff4a_490b_9c47f411d29ef7a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 281 1 0 "ca623aa7_ed48_45fa_9f4055fb8e08c3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); // }} "" // {{{ 282 1 0 "64a8e193_7e7e_412e_8a0657f0e832eaef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); // }} "" // {{{ 283 1 0 "39e6aaef_5cce_4915_b5b6ede214c7371e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs); // }} "" // {{{ 284 1 0 "1d4d284f_fd1e_4f8a_a2158846ad6a67f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Load carrier step return:"), o_stepReturn); // }} "" // {{{ 285 1 0 "358b7fc3_40a2_418b_9d61d94eef1556f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 286 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 287 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 288 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 289 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "unloadCarrier") { // }} "" // {{{ 290 1 0 "797d23a7_c62a_471a_a52b10fea8bcc154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 291 1 0 "f1c35790_adb7_49eb_a96864d8b1d66cea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn); // }} "" // {{{ 292 1 0 "6e6ded71_3f99_46c5_9362117beb502a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn); // }} "" // {{{ 293 1 0 "8713fee4_6b93_4296_a5396254fd404d52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 294 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 295 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 296 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 297 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 298 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripGet") { // }} "" // {{ 299 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 300 1 0 "c4847ae5_e161_4f23_aa432eda22de28bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 301 1 0 "022a5cdd_3f4f_4e18_927c174fc57a68a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 302 1 0 "3e462067_5eb3_49c3_b7bf6a27de9ce3bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 303 1 0 "f7004881_3f0d_4621_a88d55dec8fc0d30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 304 1 0 "262b36ba_6d86_4009_bdc9a3881db7074e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 305 1 0 "be44b37f_7cec_4f69_81c223f2c30b120b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 306 1 0 "3dea3158_65f8_44bc_8d06a31ce3458dab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); // }} "" // {{{ 307 1 0 "308b2aa2_5970_4692_858049c6559d6ad0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 308 1 0 "756d0f81_3645_4a49_a0c2259581e11498" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 309 1 0 "cdbf11ba_b1f8_4016_811240a02705f1fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{{ 310 1 0 "625df597_c6c8_4e4a_b956e9580bfbc568" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); // }} "" // {{{ 311 1 0 "3576d134_8507_4e47_9c2bcc3dce8c026d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 312 1 0 "5b9c06ad_9081_4b6b_97e50cc87623b888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 313 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 314 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 315 1 0 "d1f3c2ac_9c68_4200_a3506bbbed8e42a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 316 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 317 1 0 "f1d1c43b_a9dd_4573_a69dd7c0e79eea40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 318 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 319 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 320 1 0 "4d304110_107e_412e_909bb84008a244de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 321 1 0 "8f8b1ba1_af12_4cdd_acf2096420ede259" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{ 322 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 323 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 324 1 0 "72e31f7d_c091_4525_a5cf7001754b199d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 325 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 326 1 0 "47dfcbb5_d784_48bb_b36b97509434a3a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 327 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 328 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 329 1 0 "e6c53925_446e_468e_b0e0654b4b9d9a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 330 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 331 1 0 "c0cbb194_1b8b_4fe0_a0f706e03eaa0748" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 332 1 0 "46703217_a28e_42ce_b13c11d73ba34bfa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn); // }} "" // {{{ 333 1 0 "189164cc_2681_492f_83f072fb537648b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn); // }} "" // {{{ 334 1 0 "c8d6960a_f416_47b1_a29e2752973c0ec9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 335 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 336 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 337 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 338 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripMove") { // }} "" // {{ 339 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 340 1 0 "5755c338_faa3_4f0a_9acd4cd01a912862" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 341 1 0 "2849c819_a3dc_4328_8484ccc4785993d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 342 1 0 "32f0a8f9_3af2_42a3_90f246cc874e0e8f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 343 1 0 "791b6e1a_07b8_49cb_8122670d0871189f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 344 1 0 "036d0d84_e161_4b03_8b828dcb6b44e437" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{ 345 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 346 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 347 1 0 "e038f780_938f_4867_98f769488ca44b04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 348 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 349 1 0 "6bd2d2a1_1051_4443_a1af9b68df2876b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{{ 350 1 0 "3d8767e5_5f31_4ce5_91a11e28045ec87a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 351 1 0 "e9e0b38e_13aa_40f9_8e470eb1de09eb19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("wrong"), Translate("nowwrongere")); // }} "" // {{ 352 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 353 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 354 1 0 "064a5c1b_f450_44d6_a2042ebde115527d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 355 1 0 "ee8b8050_164a_4de8_b6ce02120236efbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 356 1 0 "be0898fe_cdb8_4ac3_a9e991e26bdb6658" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here"), Translate("now here")); // }} "" // {{ 357 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 358 1 0 "ca4b75ee_26d9_4a3b_8e3366d575348125" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 359 1 0 "ea0afc75_5bc7_4c06_ac73c2f4d5f887a0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 360 1 0 "1965d128_c7f1_4206_87e4ca1ce70c1dff" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 361 1 0 "615cbdd3_e5f2_4bc0_bb3661a2482eb770" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 362 1 0 "86fc0696_8c53_4c05_a9c0eaa58f279054" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 363 1 0 "90f602a1_fdc5_48fd_801269ecd2c3f9bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn); // }} "" // {{{ 364 1 0 "dc418b75_2d70_4034_84a767fba752b262" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn); // }} "" // {{{ 365 1 0 "ae4414d3_a939_4fdb_a0ed06f1be1506e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here here"), Translate("nohhere")); // }} "" // {{{ 366 1 0 "6379549c_caf9_409f_b293abf77f1dcfbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 367 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 368 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 369 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 370 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripPlace") { // }} "" // {{ 371 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 372 1 0 "6f38d60b_6dc5_4159_ba30360f264222da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 373 1 0 "b6ef73cf_c89c_41cc_a3b72dc5aaf70f90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 374 1 0 "c7e5f5bd_edcc_4000_9be3db81af0c79fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 375 1 0 "91ff4c39_6a86_4eda_998a5461ef6c3cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 376 1 0 "341a6f8e_b4c8_4966_b9520322d1bc2e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 377 1 0 "32792c80_3b36_4a25_8fff6b99bfcf1919" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); // }} "" // {{{ 378 1 0 "b1e5d86e_c659_4d33_9e0f83fdb20b2cb5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 379 1 0 "76b26748_4e74_45f7_85a7dc102b5fd7b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); // }} "" // {{{ 380 1 0 "ee221e8a_a662_49d8_be2ef0ed631d9527" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 381 1 0 "cbefd54c_5f0a_4a16_a0199198529b71fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 382 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 383 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 384 1 0 "ac4e7090_c3c7_4707_8d98dc55262c294b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 385 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 386 1 0 "eb5776ad_c858_4ee8_ba31f47af19e76af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 387 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 388 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 389 1 0 "1f3eb006_1b10_427e_99d0b530f1afc2ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 390 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 391 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 392 1 0 "a04c5993_bf3e_46c7_92f24c8236636b00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 393 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 394 1 0 "2455f68c_be4e_4a21_9e9e78f78f6e8e3c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 395 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 396 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 397 1 0 "ad5d98b0_9e3d_4275_90ceef06ceca045d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 398 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 399 1 0 "3321537f_63fb_48a4_90e40a2fee1cc432" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 400 1 0 "8c7e60df_f040_45c6_a939d99bcd0ac23c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn); // }} "" // {{{ 401 1 0 "24e589a9_98d7_429d_90c8afe203e96ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn); // }} "" // {{{ 402 1 0 "9d94d038_d071_4339_aaace5a2e455b240" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 403 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 404 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 405 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 406 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 407 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 408 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGet") { // }} "" // {{ 409 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 410 1 0 "4a585a30_3a23_44cc_a0948963de716cba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 411 1 0 "da3a318b_1208_4329_be1faae95ecc2e03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 412 1 0 "1f51589f_347c_497b_a7338461d92076d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 413 1 0 "622e6765_4ee3_4df5_917ca140f8b7981b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 414 1 0 "9826612b_e564_4231_8f83fdfcbd374bdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 415 1 0 "fdb52557_ae6c_42b3_925073ab7ae7a5ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 416 1 0 "171639e0_98ad_4857_a5ac346039499a33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 417 1 0 "0d4077af_b1dc_4dea_a23a163c57d96248" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 418 1 0 "60732b74_8870_48e2_be03564159cf35b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("inverseGrip"), inverseGrip); // }} "" // {{{ 419 1 0 "ffa21840_da03_4682_b62a6910caf63f45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 420 1 0 "0af9b15f_4e1b_4353_a6261def96fea256" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{{ 421 1 0 "c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 422 1 0 "74d93b97_5d7f_4593_9aeb9d83d5466e6f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{{ 423 1 0 "28d636c0_47c0_4fac_8a7b67124fd8b9f5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 424 1 0 "6f62025f_9dde_4ae6_a6b6b69efed6e381" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("tolerance"), tolerance); // }} "" // {{{ 425 1 0 "f3d51abd_651e_4b15_93eb0cea0c0384be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 426 1 0 "1b72eb1e_c220_42e0_9a34675ddc971fe7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{ 427 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 428 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 429 1 0 "fd3fbb06_b08e_4790_8e3b785ca1f8ed4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 430 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 431 1 0 "87331d5f_01ff_43a8_a0a06487f28bb2b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 432 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 433 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 434 1 0 "5f12c00c_48c1_4e2f_a24b4ba435343a8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 435 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 436 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 437 1 0 "d3e5718a_eb78_4c1f_a6467f61ccbe82df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 438 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 439 1 0 "8ebcf09f_a943_4769_b3c659e368019a32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, lidSeq); // }} "" // {{ 440 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 441 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 442 1 0 "8ce5efe3_4525_4c77_bb64f9d8dcfb6a62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 443 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 444 1 0 "8ac111e1_df50_4fcb_b465e737713459d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn); // }} "" // {{{ 445 1 0 "d9104246_d843_4a6d_85a64aa07d019020" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Get - step return :"), o_stepReturn); // }} "" // {{{ 446 1 0 "7831c2d8_4b59_455a_a0dc5cae20f325a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 447 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 448 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 449 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 450 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapMove") { // }} "" // {{ 451 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 452 1 0 "3c315cea_4ff8_4efa_8e4a5cc86a9d84d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 453 1 0 "4e2cf15d_267b_47e0_895c36b714787e13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 454 1 0 "24d68fc9_cd59_471b_9c663c4121d1a931" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{ 455 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 456 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 457 1 0 "d372f898_6d32_4d80_ab4d58340d18681d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 458 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 459 1 0 "9e573132_bd29_4d08_a1784d0e26c48700" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 460 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 461 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 462 1 0 "48db1de6_2a87_4224_b1f13fa2a75b490a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 463 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 464 1 0 "1e8e9562_41c0_4df5_9de945c44d1e8d61" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn); // }} "" // {{{ 465 1 0 "a5de7c97_d49c_4f04_b1414f1aaace7f84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Move - step return :"), o_stepReturn); // }} "" // {{{ 466 1 0 "6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 467 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 468 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 469 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 470 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPlace") { // }} "" // {{ 471 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 472 1 0 "18e9697d_0efb_4840_94a65e2a82b4ca69" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 473 1 0 "b0c35970_122b_4119_92c3801f4b8e980b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 474 1 0 "6ed697af_a110_4104_941633e154ff0071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 475 1 0 "fec1982e_3636_412d_af2eda243438f7ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 476 1 0 "21de27ac_9dc3_415b_b1d1e49e80c53591" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 477 1 0 "652aeaa7_9a2f_4c11_8bc1fc58a97ffed7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 478 1 0 "e88a5df4_d9ad_4231_89a5a03f88d0ce77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 479 1 0 "8c5aee51_3156_4fcc_b1b167552b73476f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 480 1 0 "8c257b39_8c0b_410d_a4a4e38df904008c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 481 1 0 "91e9f4c6_b7fe_4b15_83c830df3385398a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{ 482 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 483 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 484 1 0 "226bb6d1_37a1_4076_9d96fb9df69c6068" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 485 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 486 1 0 "ec2fd48b_eab9_491e_867c0fc335eea81c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 487 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 488 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 489 1 0 "e590d9b6_f690_48db_b0109a10c228d5ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 490 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 491 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 492 1 0 "82559320_1e13_40c9_b283fdfa804df6a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 493 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 494 1 0 "420daa28_bf45_407a_bd576559af75c5d0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 495 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 496 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 497 1 0 "3ed6b704_3649_4c7d_8e7d30bdb038feab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 498 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 499 1 0 "41a130e8_a745_4a20_b124272093bf38e7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn); // }} "" // {{{ 500 1 0 "b4bdf08c_e218_4bec_98c0f41e6ec3a218" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Place - step return :"), o_stepReturn); // }} "" // {{{ 501 1 0 "346b983b_d261_4447_a7cebf782db4b4d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 502 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 503 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 504 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 505 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPark") { // }} "" // {{ 506 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 507 1 0 "73602d5e_7f8d_45dc_9c1f21d41c39d0bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("showCollisionCheckDialog"), showCollisionCheckDialog); // }} "" // {{ 508 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 509 1 0 "acf5767a_7e39_4072_8e062928938984cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{{ 510 1 0 "96b1bdf6_a3f3_4530_844fc77cbf7fb944" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 511 1 0 "d03fdac4_224f_4174_924fb518a623bf65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 512 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 513 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 514 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 515 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGetFirst") { // }} "" // {{ 516 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 517 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 518 1 0 "5f9f4b8d_3b3a_48ee_89ef334a70dcb72e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{ 519 1 0 "65648900_32b3_4035_9eb5916a3314f7e9" "ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}" { variable arrRetValues[]; arrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40("65648900_32b3_4035_9eb5916a3314f7e9"); // GetFirstPlatePosition } // }} "" // {{{ 520 1 0 "63380bb7_5afe_4d65_9dc5cdf334590b4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 521 1 0 "cdb18c48_14d5_430d_9f7202f782e069da" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 522 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 523 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 524 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 525 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 526 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "FirmwareCommand") { // }} "" // {{ 527 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 528 1 0 "5f5e5c89_0c1a_497b_80c550dbc4676208" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate("FirmwareCommandList")); // }} "" // {{ 529 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(CommandListElement = 0; CommandListElement < CommandListLength;) { CommandListElement = CommandListElement + 1; // }} "" // {{{ 530 1 0 "2c2e9953_5968_4384_8b2dad24b0960278" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate("FirmwareCommandList"), CommandListElement, FirmwareCmdDict); // }} "" // {{{ 531 1 0 "7f4d5cda_c10f_4317_ba7613cd10d2e90d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareCommand"), FirmwareCommand); // }} "" // {{{ 532 1 0 "cf155262_dfb4_46b4_aff762c7b4c18d8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareParameter"), FirmwareParameter); // }} "" // {{{ 533 1 0 "471df283_02f5_4daf_9c83999e3b1fd8e1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn); // }} "" // {{{ 534 1 0 "0b8e6d49_655f_42a7_bcfdeac76a40c6e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 535 1 0 "f49f31b3_d742_44ae_a6a076108c3f9ab4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 536 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 537 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 538 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 539 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 540 1 0 "193ad70f_ec03_47e5_b1f5ef9ff75805c0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 541 1 0 "5861a5ed_1f9d_48fc_9f3d976bc1a13751" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "setAspirateParam") { // }} "" // {{{ 542 1 0 "d741f062_6b73_4365_ad9c8646a016138d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LiquidClass"), LiquidClassName); // }} "" // {{{ 543 1 0 "86836193_1dcb_460e_8db2dda6b775abd9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Parameter"), LiqClassParameterName); // }} "" // {{{ 544 1 0 "d94798d1_53c6_40de_b72c239404c94352" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Value"), LiqClassParameterValue); // }} "" // {{ 545 1 0 "cca3a5d2_6d84_4105_a976a70a83585972" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E1EAD148F3254941A251DC272F774AB4 ; err.Clear(); // }} "" // {{{ 546 1 0 "3f31be32_d184_4c20_a5127e5057f15149" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SelectLiquidClass(LiquidClassName); // }} "" // {{{ 547 1 0 "b75ad951_95b1_4114_864093345ffb2cdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SetLiquidClassAspirateParameter(LiqClassParameterName, LiqClassParameterValue); // }} "" // {{ 548 1 0 "39c793b0_ff2b_4f98_8777af88953926ed" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 549 1 0 "cca3a5d2_6d84_4105_a976a70a83585972" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E1EAD148F3254941A251DC272F774AB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 550 1 0 "edca8fd8_6dcd_4da1_83335a6ade44afe2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 551 1 0 "cca3a5d2_6d84_4105_a976a70a83585972" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 552 1 0 "9659fadc_8b56_42dd_84f93223c42fcac7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 553 1 0 "ec08039a_3b70_4854_894d57c13ffdc877" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 554 1 0 "5861a5ed_1f9d_48fc_9f3d976bc1a13751" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 555 1 0 "833dd647_9b77_4420_bcf4ca4df1d1919a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "setDispenseParam") { // }} "" // {{{ 556 1 0 "4aa7b9ce_fd73_4a55_9a3c704bfb4c443d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LiquidClass"), LiquidClassName); // }} "" // {{{ 557 1 0 "27e93e41_ad5f_4b74_a1844bb15c0dfdfc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Parameter"), LiqClassParameterName); // }} "" // {{{ 558 1 0 "10da81a6_cef8_4c18_9416f561b557ad45" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Value"), LiqClassParameterValue); // }} "" // {{ 559 1 0 "cee50056_b4b0_473b_8d775dd178dab21d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3A18CA152B674dd3A42B81C4D45F719E ; err.Clear(); // }} "" // {{{ 560 1 0 "b471ff31_4fdd_4a9f_87431e5741a9b969" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SelectLiquidClass(LiquidClassName); // }} "" // {{{ 561 1 0 "1478809d_e829_4040_a50d7b3a44944f4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SetLiquidClassAspirateParameter(LiqClassParameterName, LiqClassParameterValue); // }} "" // {{ 562 1 0 "2b0f0071_b3f4_427c_89691e712bb58085" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 563 1 0 "cee50056_b4b0_473b_8d775dd178dab21d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3A18CA152B674dd3A42B81C4D45F719E : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 564 1 0 "79e8bd1f_8c05_4c90_83e299e38c6c5f99" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 565 1 0 "cee50056_b4b0_473b_8d775dd178dab21d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 566 1 0 "d805e811_a796_44e9_93839b02b6d05f1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Liquid Class Set Parameter:"), o_stepReturn); // }} "" // {{{ 567 1 0 "da31069e_a165_4c2e_b95619cb57c4ae8a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 568 1 0 "833dd647_9b77_4420_bcf4ca4df1d1919a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 569 1 0 "193ad70f_ec03_47e5_b1f5ef9ff75805c0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 570 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 571 1 0 "2777cb67_3095_437b_9b54d34ead8fcab2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 572 1 0 "c397d56d_00f8_4e32_bf71c20e91dcac17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ConnectIP") { // }} "" // {{{ 573 1 0 "b450ee5c_4bce_435e_b562523f18ce0142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("InstrumentName"), InstrumentName); // }} "" // {{{ 574 1 0 "13c30b43_9a94_4cd1_a907aa21f01057cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PortNumber"), PortNumber); // }} "" // {{{ 575 1 0 "68ec12ae_0e01_4827_9460e39fddef7f4d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 576 1 0 "7c482f87_e50a_44d8_88516cf7d087dbde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MPEOptions"), MPEOptions); // }} "" // {{{ 577 1 0 "8d4e01b7_ef9e_4570_a2e08f31ecacc259" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingIP(InstrumentName, PortNumber, SimulationMode, MPEOptions, DeviceID, o_stepReturn); // }} "" // {{{ 578 1 0 "005f0b12_4fb1_48ba_bcfeb961b9419149" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeviceID = StrIStr(DeviceID); // }} "" // {{{ 579 1 0 "51077fef_f212_48a6_8f6c43d7d5f5df97" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 580 1 0 "97ff097f_9089_4ac0_82438cbd6f0a9c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Translate(""), Translate(""), id); // }} "" // {{ 581 1 0 "c397d56d_00f8_4e32_bf71c20e91dcac17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 582 1 0 "2777cb67_3095_437b_9b54d34ead8fcab2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 583 1 0 "62a26733_db4f_440f_9fb51db5fef61711" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 584 1 0 "0098c030_fe6b_49bb_92b77ef5a5c7372d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ConnectCOM") { // }} "" // {{{ 585 1 0 "e8776203_e1ed_4373_8a427cb0d8b8d29f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ComPort"), ComPort); // }} "" // {{{ 586 1 0 "4c600ed2_a490_4f3e_bdadfe3b174db193" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("BaudRate"), BaudRate); // }} "" // {{{ 587 1 0 "e77abf5c_e94e_469b_82ea0f774615a671" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 588 1 0 "aaebc2c7_eafc_456e_83386035ed203694" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MPEOptions"), MPEOptions); // }} "" // {{{ 589 1 0 "3b2a8a1c_5b74_4668_b7a5ca974a7658b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingCOM(ComPort, BaudRate, SimulationMode, MPEOptions, DeviceID, o_stepReturn); // }} "" // {{{ 590 1 0 "1a9f7ef9_8c04_4517_8d26efaa81d3eff7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 591 1 0 "104f0498_cc9f_4508_8f28e3b53675ef53" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 592 1 0 "0098c030_fe6b_49bb_92b77ef5a5c7372d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 593 1 0 "62a26733_db4f_440f_9fb51db5fef61711" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 594 1 0 "94f49f46_ad96_4874_9148653f8fa3302e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 595 1 0 "1abd6ad0_87b9_4459_b74e20f9717ebd2b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ClampFilterPlate") { // }} "" // {{{ 596 1 0 "bdc39916_5944_49a4_846784d94f27267f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 597 1 0 "cf252c80_073f_4e8b_85e84a546e80666b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ClampFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 598 1 0 "16a9c218_a7c3_403c_a7c005e96566f8d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 599 1 0 "de8afcf3_ec32_4067_895aceb7a7a650eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 600 1 0 "1abd6ad0_87b9_4459_b74e20f9717ebd2b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 601 1 0 "94f49f46_ad96_4874_9148653f8fa3302e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 602 1 0 "d19e0aae_3b5d_4b88_9b9fa6cd22d67f22" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 603 1 0 "421097a4_a57a_4dec_8b9257b5d77233e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_CollectionPlatePlaced") { // }} "" // {{{ 604 1 0 "ae857f70_e319_4ada_a8b086f120e84247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 605 1 0 "a173d887_781c_4262_9fa6c81e253bd32c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CollectionPlateHeight"), CollectionPlateHeight); // }} "" // {{{ 606 1 0 "7e167a7c_dfb2_4798_814039b7430ccbae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("OffsetFromNozzles"), OffsetFromNozzles); // }} "" // {{{ 607 1 0 "aa2d8e6c_c878_40f1_a1325cb8fe399514" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlatePlaced(DeviceID, CollectionPlateHeight, OffsetFromNozzles, o_stepReturn); // }} "" // {{{ 608 1 0 "6ad949b9_e02e_4686_be660950f5282aee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 609 1 0 "99fa8dd5_ac5f_4d13_91fb69b65d2bc0ea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 610 1 0 "421097a4_a57a_4dec_8b9257b5d77233e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 611 1 0 "d19e0aae_3b5d_4b88_9b9fa6cd22d67f22" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 612 1 0 "21b7e081_f229_400f_9a51a8b8a5412447" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 613 1 0 "b7625009_1717_4db6_8d24209ff3b8dbb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_CollectionPlateRemoved") { // }} "" // {{{ 614 1 0 "fc436f5c_aaba_4906_a4074c83d00f028c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 615 1 0 "65ba4a03_7064_45c5_8ae9ffb86a3234b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlateRemoved(DeviceID, o_stepReturn); // }} "" // {{{ 616 1 0 "39ef177a_96d2_411f_97c648ff2ed91ea8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 617 1 0 "cbdb85be_569e_40cb_93e3582de4fd718f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 618 1 0 "b7625009_1717_4db6_8d24209ff3b8dbb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 619 1 0 "21b7e081_f229_400f_9a51a8b8a5412447" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 620 1 0 "38689ea3_dc56_4d7c_88d585797b9d957e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 621 1 0 "ee3d4b03_3d8c_4718_9f927c1855c7346e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Disconnect") { // }} "" // {{{ 622 1 0 "acfb16ed_a9d1_4a63_a9c0106aff00758d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 623 1 0 "f0cbe63d_fe07_4cc6_8bcb70bf9c7de9ec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn); // }} "" // {{{ 624 1 0 "b23baddd_cdbc_45fd_8c093ab349a937f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 625 1 0 "1695a8ad_2f0f_48a1_a9d8534daaa45c88" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 626 1 0 "ee3d4b03_3d8c_4718_9f927c1855c7346e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 627 1 0 "38689ea3_dc56_4d7c_88d585797b9d957e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 628 1 0 "45f798d0_f63a_4141_9f0512725c85b742" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 629 1 0 "3d8efec9_ac55_4f4d_90f0259610f7394d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Dispense") { // }} "" // {{{ 630 1 0 "d9eb3796_7e12_47f9_b6636e222cb5d878" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 631 1 0 "b1b7d9a5_44ce_4588_b1315c2c2c0a6d6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 632 1 0 "e9efebdb_3e29_4a1f_9a03447005f6b247" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 633 1 0 "6812297a_3eee_4055_8de5373a96f6eb0c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 634 1 0 "b6c33a7b_d31f_4f02_8921532db5005869" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), NeedleOffset); // }} "" // {{{ 635 1 0 "f78d0de5_185c_4061_ad416fe94f5dba58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn); // }} "" // {{{ 636 1 0 "01ebd08b_bf22_4edc_b4101325c0ed5d7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 637 1 0 "46be0614_7064_45bf_962fe4fdb2d26ad3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 638 1 0 "3d8efec9_ac55_4f4d_90f0259610f7394d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 639 1 0 "45f798d0_f63a_4141_9f0512725c85b742" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 640 1 0 "c0d12f62_bf0c_4968_8cf8102df9290745" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 641 1 0 "e0397cd6_5fd2_4820_953df1804d2989f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Evaporate") { // }} "" // {{{ 642 1 0 "eff0d502_cbda_4d56_a060ee98b8acfa1b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 643 1 0 "358b8e75_dcca_4656_8f480e051d9768ac" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 644 1 0 "11f40dee_5289_4a85_b3065e4b85d93416" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 645 1 0 "e660629d_9388_44fa_9749984b17a66bc9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellDepth"), WellDepth); // }} "" // {{{ 646 1 0 "3a86a09d_a4ea_4a34_8573e644beb7c6a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 647 1 0 "6cc724c7_a4bf_4c46_948af3e23aaa8758" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 648 1 0 "6bba2cf9_561d_4a3f_87ee7949c7ce3fbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 649 1 0 "d305f425_1c51_43f7_9c5bd6ec76d64b05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 650 1 0 "e0397cd6_5fd2_4820_953df1804d2989f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 651 1 0 "c0d12f62_bf0c_4968_8cf8102df9290745" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 652 1 0 "54c61117_4dde_492d_91df73eafbdbdf0a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 653 1 0 "ea8576f1_52df_4787_b62e82c44a5b6131" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporatePrepare") { // }} "" // {{{ 654 1 0 "04b183eb_df7f_4775_a8db9b61d0822126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 655 1 0 "7ae5dae4_f3fe_42d9_b07c545e18248898" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 656 1 0 "67e84057_0c19_4600_b6bb1cda5b345f8d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 657 1 0 "31ab1ccb_49b6_45ab_886cb04421f727d1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellDepth"), WellDepth); // }} "" // {{{ 658 1 0 "f9f854b4_d03f_44fa_866ecad432e5ee59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 659 1 0 "0e37d7ed_b49b_42c3_b9306b90a8fbecba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 660 1 0 "bdc5441b_5578_4bb1_9a5511f8d6cb37a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 661 1 0 "82509201_581c_4a09_8c1fba65491074b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 662 1 0 "ea8576f1_52df_4787_b62e82c44a5b6131" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 663 1 0 "54c61117_4dde_492d_91df73eafbdbdf0a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 664 1 0 "f877f93d_359e_486f_aabbf156b38c0fd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 665 1 0 "be0cdb40_9439_44c4_9349319653177825" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporateEnd") { // }} "" // {{{ 666 1 0 "661eb571_7a3f_452f_8cd8e71af5633aa2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 667 1 0 "ce6d86eb_0d5e_4931_9b8ae8ab7b99d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 668 1 0 "407cb55f_f828_4adb_b9a1dcfb39934436" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_EvaporateEnd(DeviceID, Timeout, o_stepReturn); // }} "" // {{{ 669 1 0 "3281176b_4d2d_43ea_b218e196deacc5a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 670 1 0 "dc7eb698_c6ab_4bce_b2eae2a106e79c26" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 671 1 0 "be0cdb40_9439_44c4_9349319653177825" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 672 1 0 "f877f93d_359e_486f_aabbf156b38c0fd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 673 1 0 "77175285_9bc0_458e_bdb99486afa263f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 674 1 0 "1d9fee0e_9129_4e05_9387d48ad64ce5b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporateWithRate") { // }} "" // {{{ 675 1 0 "f74fcc26_c2be_481c_9b4822ade43b6399" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 676 1 0 "d104e730_2dfe_46de_9499ec6975f6d3ba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 677 1 0 "ef36faf4_19fc_4253_92c3ba78e66fa81b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 678 1 0 "4e02e5d8_e2c2_421e_9e232b4b54ffc755" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("EvaporateTravelDistance"), EvaporateTravelDistance); // }} "" // {{{ 679 1 0 "d5f4fc63_608e_48f5_be8989e9f0ed73d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 680 1 0 "ce2ba2cc_4f8f_4960_a2120a80bdee1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FollowRate"), FollowRate); // }} "" // {{{ 681 1 0 "72651c9a_a411_472d_9fbc4d5cf13dbe7f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 682 1 0 "6d1ded15_26bd_4832_a66e0a7ed7ae5de8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 683 1 0 "24da9a05_6ec1_4a5d_aa357161406c5b4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 684 1 0 "1d9fee0e_9129_4e05_9387d48ad64ce5b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 685 1 0 "77175285_9bc0_458e_bdb99486afa263f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 686 1 0 "18d62f91_3389_4a05_81dcd2b1f9f35eb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 687 1 0 "5517c3d2_626c_49ed_9f300f5eb7cad266" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterPlatePlaced") { // }} "" // {{{ 688 1 0 "6ad26884_293d_471f_87d63211dbb2130a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 689 1 0 "f712b14e_2361_4388_aaa3d1b6bdd76274" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FilterHeight"), FilterHeight); // }} "" // {{{ 690 1 0 "046c36b4_609e_41ad_802334b853237e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NozzleHeight"), NozzleHeight); // }} "" // {{{ 691 1 0 "9cd1e28f_9f73_4580_933330d72a187021" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_FilterPlatePlaced(DeviceID, FilterHeight, NozzleHeight, o_stepReturn); // }} "" // {{{ 692 1 0 "77cbd1e2_38c4_46cf_8a36d8bf2fd59668" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 693 1 0 "e9b09e36_5025_44eb_8a0241793ecb2130" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 694 1 0 "5517c3d2_626c_49ed_9f300f5eb7cad266" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 695 1 0 "18d62f91_3389_4a05_81dcd2b1f9f35eb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 696 1 0 "a8bdabef_328d_4914_85c9d5a5e206e280" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 697 1 0 "ba1982ca_d913_4372_a876d2c629a3da01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterPlateRemoved") { // }} "" // {{{ 698 1 0 "c8d80340_50aa_42c3_99a4c45d2c5a2e55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 699 1 0 "7ca7dac8_386f_4d72_a80c56436e8d337a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_FilterPlateRemoved(DeviceID, o_stepReturn); // }} "" // {{{ 700 1 0 "7815e103_9108_40ec_8c501ab868674b02" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 701 1 0 "7fab13f9_e6cb_4d15_9c7359f69f1452eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 702 1 0 "ba1982ca_d913_4372_a876d2c629a3da01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 703 1 0 "a8bdabef_328d_4914_85c9d5a5e206e280" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 704 1 0 "d93f150d_eae1_437f_a22a3b0c4c9072e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 705 1 0 "df5f2b51_da1c_47c3_83076cfc5952018e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Flush") { // }} "" // {{{ 706 1 0 "ebd897c5_30b8_4f3b_9955cc2c076a2cec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 707 1 0 "8a5b6ab5_73a5_448f_97d7f2f80f295781" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 708 1 0 "7618744c_4ba2_44a3_af152e17b8f23a82" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 709 1 0 "0b45dbd2_d2ac_4bbc_b063c7256c9e2f37" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 710 1 0 "7ebe8a95_b1cb_40d0_9bbf0caa753020ff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Flush(DeviceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn); // }} "" // {{{ 711 1 0 "f4745c1d_3edb_4f49_9389682fd5db4746" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 712 1 0 "84a474ac_82c0_447e_853e8a0e803cdc9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 713 1 0 "df5f2b51_da1c_47c3_83076cfc5952018e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 714 1 0 "d93f150d_eae1_437f_a22a3b0c4c9072e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 715 1 0 "117f1e32_da28_4bc8_ad90f5a4f2bef282" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 716 1 0 "467d4218_0310_4b7c_a0b5c6ba53779408" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetContainerCalibration") { // }} "" // {{{ 717 1 0 "8399e7aa_cf6e_40a4_94cbfd345e14133a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 718 1 0 "1b0cf945_ddeb_4f68_ad8567b71c28ba9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 719 1 0 "49eec349_8ea2_4006_8740931d862a8cc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetContainerCalibration(DeviceID, SourceID, CapacityVolume, EmptyReading, FullReading, CalibrationDate, o_stepReturn); // }} "" // {{{ 720 1 0 "c87d301f_8a12_4619_b911ef3098a17d58" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 721 1 0 "7e693f5e_19bf_4fe8_93ae99fb04f02aa3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CapacityVolume = StrFStr(CapacityVolume); // }} "" // {{{ 722 1 0 "8d684024_7a1e_41a0_aff0fbb060f288c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" EmptyReading = StrIStr(EmptyReading); // }} "" // {{{ 723 1 0 "e403fc76_66e2_4138_a91ad409fba41579" "{C1F3C015-47B3-4514-9407-AC2E65043419}" FullReading = StrIStr(FullReading); // }} "" // {{{ 724 1 0 "a338088c_aba6_4925_9499261419f3fd32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CapacityVolume, EmptyReading, FullReading, CalibrationDate, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 725 1 0 "467d4218_0310_4b7c_a0b5c6ba53779408" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 726 1 0 "117f1e32_da28_4bc8_ad90f5a4f2bef282" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 727 1 0 "28cc7be8_7ef9_43fd_a8b86cc9f0a88a77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 728 1 0 "883d189a_5580_49b9_92fa9f7ea0b841bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetHeaterStatus") { // }} "" // {{{ 729 1 0 "c3c00992_49fa_4e7a_930d860185676008" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 730 1 0 "a566cb57_a308_4f8d_ab4f730e5a7dcad6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Reset"), blnReset); // }} "" // {{{ 731 1 0 "6c9f1bfd_e7d9_49a3_9ffc43f57d0b87c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetCurrentHeaterStatus(DeviceID, blnReset, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, o_stepReturn); // }} "" // {{{ 732 1 0 "4e871da2_7414_4d04_af1133edc74f8ceb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 733 1 0 "17cbeaea_77c3_429f_852469beae65bff2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CurrentEvaporatorTemperature = StrFStr(CurrentEvaporatorTemperature); // }} "" // {{{ 734 1 0 "99e68adc_1ab2_44c2_99bb0d0791bb4b03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CurrentGasTemperature = StrFStr(CurrentGasTemperature); // }} "" // {{{ 735 1 0 "19ba4b88_434c_4874_adfb9c3ce28707c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Heating = StrIStr(Heating); // }} "" // {{{ 736 1 0 "8bfee3ed_2dfd_4096_95a3693ae02cb98b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 737 1 0 "883d189a_5580_49b9_92fa9f7ea0b841bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 738 1 0 "28cc7be8_7ef9_43fd_a8b86cc9f0a88a77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 739 1 0 "6161ab17_f584_4948_917386b1caf60999" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 740 1 0 "9f1343e7_8811_4e80_a8d30414ee14e3c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetHeaterRange") { // }} "" // {{{ 741 1 0 "ff106776_2ea1_4be4_bf299c1e9f4d6812" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 742 1 0 "d35c7d7b_4e20_4729_898cf76f032dbd77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Reset"), blnReset); // }} "" // {{{ 743 1 0 "eac04ccb_1d2f_4e47_a38e27549db3d0f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetHeaterTemperatureRange(DeviceID, blnReset, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, o_stepReturn); // }} "" // {{{ 744 1 0 "7e058389_5584_400d_af8f7683d9c64549" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 745 1 0 "cef6dc8b_b0ab_4b67_80965a20bad984a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumEvaporatorTemperature = StrFStr(MinimumEvaporatorTemperature); // }} "" // {{{ 746 1 0 "e95a4014_66ab_4bd9_9396f43fb303387c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumEvaporatorTemperature = StrFStr(MaximumEvaporatorTemperature); // }} "" // {{{ 747 1 0 "82d2e7b9_6b0f_4659_b3c4af2260f72b93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumGasTemperature = StrFStr(MinimumGasTemperature); // }} "" // {{{ 748 1 0 "9d086c63_6438_4455_839b70d859d33023" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumGasTemperature = StrFStr(MaximumGasTemperature); // }} "" // {{{ 749 1 0 "1c25f8f9_a087_4d7d_b537d06915cf733a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TargetTemperature = StrFStr(TargetTemperature); // }} "" // {{{ 750 1 0 "e0990ab5_662a_4046_a221118108390ad1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Heating = StrIStr(Heating); // }} "" // {{{ 751 1 0 "f32ac914_9488_4849_9b505cfae76c21a4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, Translate(""), Translate(""), id); // }} "" // {{ 752 1 0 "9f1343e7_8811_4e80_a8d30414ee14e3c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 753 1 0 "6161ab17_f584_4948_917386b1caf60999" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 754 1 0 "cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 755 1 0 "3be8b4d4_175f_4ea5_8a5c403023c23804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetPressureReadings") { // }} "" // {{{ 756 1 0 "d6ee9000_e96e_43ee_be294bac2de3cebd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 757 1 0 "62c2838f_1e9c_4f50_a8986bd6ab2e5735" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetPressureSensorReadings(DeviceID, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, o_stepReturn); // }} "" // {{{ 758 1 0 "9202b3b4_73ed_457a_8a0eb740d92668eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 759 1 0 "49fdda2e_2786_49cf_bbf53a56bb6cf951" "{C1F3C015-47B3-4514-9407-AC2E65043419}" InputPressureSensor = StrFStr(InputPressureSensor); // }} "" // {{{ 760 1 0 "5b345de1_5fff_4ef5_b48fac2958608067" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ManifoldPressureSensor = StrFStr(ManifoldPressureSensor); // }} "" // {{{ 761 1 0 "5083be24_6502_40dc_94e99eb7e72397de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HighPressureSensor = StrFStr(HighPressureSensor); // }} "" // {{{ 762 1 0 "c5d4f5bc_5388_4cac_a5c92cce84c5358c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LowPressureSensor = StrFStr(LowPressureSensor); // }} "" // {{{ 763 1 0 "93af4507_f837_4e4d_bd0cfa9d8f20db45" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 764 1 0 "3be8b4d4_175f_4ea5_8a5c403023c23804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 765 1 0 "cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 766 1 0 "8eb4fcd2_8586_4fdc_9eaa231938c2491c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 767 1 0 "fb5f809e_bea3_4152_8c23efc086a3f4c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetTemperatureRange") { // }} "" // {{{ 768 1 0 "04868a2f_2244_4262_b16ed3464405a2c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 769 1 0 "ac4b978a_8b0e_48c8_bfcc2cb81ada8852" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetTemperatureRange(DeviceID, MinimumTemperature, MaximumTemperature, o_stepReturn); // }} "" // {{{ 770 1 0 "878c4de8_f440_43d6_aa9a22d5f30c96bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 771 1 0 "9643b7dd_1445_4981_82306a0204482dcd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumTemperature = StrFStr(MinimumTemperature); // }} "" // {{{ 772 1 0 "5fb79249_c2be_45bc_a99aecb05a4cef34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumTemperature = StrFStr(MaximumTemperature); // }} "" // {{{ 773 1 0 "57512d47_ace9_4c17_a0287a31498292bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumTemperature, MaximumTemperature, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 774 1 0 "fb5f809e_bea3_4152_8c23efc086a3f4c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 775 1 0 "8eb4fcd2_8586_4fdc_9eaa231938c2491c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 776 1 0 "3f6b43d7_b3e1_4516_9a607047551e5f6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 777 1 0 "6be26021_e618_492e_8a3a5f94a52da0f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetVacuumStatus") { // }} "" // {{{ 778 1 0 "4db40245_36cd_40c8_b0602871bedce402" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 779 1 0 "cdd4bed1_2257_47d3_bb32dfb51dd99311" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetVacuumStatus(DeviceID, VacuumActive, o_stepReturn); // }} "" // {{{ 780 1 0 "434c4447_ccaa_4ae8_b5332ea4a5247979" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 781 1 0 "2758aebe_4437_4436_9ecd66602ecc20ea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" VacuumActive = StrIStr(VacuumActive); // }} "" // {{{ 782 1 0 "1a22fa96_1f2a_4efb_8d4d1070f05128b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, VacuumActive, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 783 1 0 "6be26021_e618_492e_8a3a5f94a52da0f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 784 1 0 "3f6b43d7_b3e1_4516_9a607047551e5f6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 785 1 0 "1fae7e92_6b1f_4f2a_8504e8aba7fe0846" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 786 1 0 "18c78d3a_83f1_4e2a_9721dc575c326856" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Initialize") { // }} "" // {{{ 787 1 0 "18e9c18e_3415_4f68_b3216e3a2bb3a082" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 788 1 0 "5335daba_8a63_418b_8286e19dbc73285e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Initialize(DeviceID, o_stepReturn); // }} "" // {{{ 789 1 0 "e9ab19e3_4828_4ead_93cb698560e3faff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 790 1 0 "67b12292_2128_495d_af7839b207477794" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 791 1 0 "18c78d3a_83f1_4e2a_9721dc575c326856" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 792 1 0 "1fae7e92_6b1f_4f2a_8504e8aba7fe0846" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 793 1 0 "d96ac0b7_1237_4603_ad86dfe4672ef89a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 794 1 0 "0addb922_82a5_48e4_bf52eeb97ac93f2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_InitializeWithParameters") { // }} "" // {{{ 795 1 0 "1c9e6c43_c0a4_4fa5_96eff1d2638b4426" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 796 1 0 "a9676aeb_9a8e_4f87_866088fd8da32782" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Smart"), Smart); // }} "" // {{{ 797 1 0 "b0f5b856_a01f_4937_bce0d90f8e48a0bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 798 1 0 "3d105105_b5a2_42bf_9008c50dfb529abf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("VacuumRunTime"), VacuumRunTime); // }} "" // {{{ 799 1 0 "1b067bb0_12d6_47c9_b86eb44ca7ac70a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 800 1 0 "abffb784_24c3_4278_9404e88b2a184ec3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 801 1 0 "7f31c229_eea4_4ebc_918ad520b4e80270" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 802 1 0 "0addb922_82a5_48e4_bf52eeb97ac93f2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 803 1 0 "d96ac0b7_1237_4603_ad86dfe4672ef89a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 804 1 0 "9e52a7cb_3167_4057_8d24d034c837de21" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 805 1 0 "5875c2d2_c94b_4860_9be1bc9f16bd64b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_SetSourceConfiguration") { // }} "" // {{{ 806 1 0 "77c0d7cc_1c53_47b5_af15f1eb5743701e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 807 1 0 "1150d6cb_b379_4fab_8bf98a17ac6ed92c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_SetSourceConfiguration(DeviceID, o_stepReturn); // }} "" // {{{ 808 1 0 "2ba32cb4_0177_497e_9a7f398e17134a01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 809 1 0 "a2b6bb52_3165_4bb9_986611d0b8594d1c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 810 1 0 "5875c2d2_c94b_4860_9be1bc9f16bd64b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 811 1 0 "9e52a7cb_3167_4057_8d24d034c837de21" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 812 1 0 "cf140f83_9405_4c31_aac2bda7e3c3644d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 813 1 0 "125ed949_ace4_48a0_a45208b5a26a9545" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetSourceConfiguration") { // }} "" // {{{ 814 1 0 "24cc9f9b_b984_4405_80b21f8bbad2c171" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 815 1 0 "105846b6_bda2_49d7_bb68c38e99c676ce" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetSourceConfiguration(DeviceID, o_stepReturn); // }} "" // {{{ 816 1 0 "8fd730db_f3ad_4187_819383f962b15dec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 817 1 0 "d5402a0c_e7d8_4021_98f2bc49164541bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 818 1 0 "125ed949_ace4_48a0_a45208b5a26a9545" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 819 1 0 "cf140f83_9405_4c31_aac2bda7e3c3644d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 820 1 0 "f0e280e8_46c7_4f0f_bce33a9d98578e01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 821 1 0 "656f66da_3ff6_4ceb_b3958dda3e826289" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_MeasureEmptyContainer") { // }} "" // {{{ 822 1 0 "23e6b66b_51c5_44d2_8107b570ab035bb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 823 1 0 "c791ded2_4daa_4097_811ad01cd9dbd85e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 824 1 0 "d4c8df90_fdb5_4fb4_a5ffe9e46525c9a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_MeasureEmptyContainer(DeviceID, SourceID, SensorReading, o_stepReturn); // }} "" // {{{ 825 1 0 "6766bf7d_aaa7_44dd_beb7bd1925733781" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SensorReading = StrIStr(SensorReading); // }} "" // {{{ 826 1 0 "f566d5c3_5839_4a53_aaa0e7e76d6a96d6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 827 1 0 "ca746d4d_adf9_4d6d_b0172f1cb9e3cefe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(""), Translate(""), id); // }} "" // {{ 828 1 0 "656f66da_3ff6_4ceb_b3958dda3e826289" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 829 1 0 "f0e280e8_46c7_4f0f_bce33a9d98578e01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 830 1 0 "5be53554_4034_4654_a74514eb0d84e4a0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 831 1 0 "ce68b054_3aea_4f0f_9742872cca60f368" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_MeasureFullContainer") { // }} "" // {{{ 832 1 0 "7ad49fa3_f8ed_4826_8c29ea54aff99447" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 833 1 0 "636296bf_cd25_4c6e_a97120b96714e0a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 834 1 0 "1025d7d1_0cb5_4c03_93a47206d7a73279" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_MeasureFullContainer(DeviceID, SourceID, SensorReading, o_stepReturn); // }} "" // {{{ 835 1 0 "14a2a705_9362_44f9_aacee14e4189bc2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SensorReading = StrIStr(SensorReading); // }} "" // {{{ 836 1 0 "64c67d08_dac7_49dc_8a3082c4658649d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 837 1 0 "08dbfd92_e2cd_4c53_8d8b8afb8f41b76a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(""), Translate(""), id); // }} "" // {{ 838 1 0 "ce68b054_3aea_4f0f_9742872cca60f368" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 839 1 0 "5be53554_4034_4654_a74514eb0d84e4a0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 840 1 0 "9e79226f_dd2d_49f1_9ab8ca9ddc07f66d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 841 1 0 "52fa4642_56e3_46b8_a5170d58a3d45e6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Prime") { // }} "" // {{{ 842 1 0 "d59e0e58_e6a4_49dc_b79c3b224f9250f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 843 1 0 "81800d57_5b2e_4f60_80fb02f54c6d898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 844 1 0 "6f11abee_b07f_4e3a_a91a2bb6132b9346" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 845 1 0 "65f68e8f_a3f8_4c0e_b02af46ef0830a94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 846 1 0 "92c62640_1748_47f5_a5b2d63033fab0fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 847 1 0 "bce1d424_198d_4a66_bb5cfcef4223a4c1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Prime(DeviceID, SourceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn); // }} "" // {{{ 848 1 0 "1d0fc35a_1e8f_492f_8115484ef5e4094c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 849 1 0 "7b33278e_8337_43df_80fb1df2dc8d7e27" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 850 1 0 "52fa4642_56e3_46b8_a5170d58a3d45e6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 851 1 0 "9e79226f_dd2d_49f1_9ab8ca9ddc07f66d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 852 1 0 "90d403df_555f_4782_bc0e9655c9dda244" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 853 1 0 "5d03c560_13d7_4f4a_97c5fcb059f5d281" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ProcessFilterToCollection") { // }} "" // {{{ 854 1 0 "327328cb_2c07_4cff_b99aff475bf220b0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 855 1 0 "c67ca153_084e_49de_aa07c55210f0743c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ControlPoints"), ControlPoints); // }} "" // {{{ 856 1 0 "3ccb3a1f_4958_435b_b896ebc512029a6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("ReturnPlate"), ReturnPlate); // }} "" // {{{ 857 1 0 "d9d5add8_e82e_4761_b5b96d5f19ec1723" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToCollectionPlate(DeviceID, ControlPoints, ReturnPlate, o_stepReturn); // }} "" // {{{ 858 1 0 "952f2d23_1b1e_4ff3_b0306759a52e52a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 859 1 0 "8d9318f1_ab21_410d_a9bfb449f75064ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 860 1 0 "5d03c560_13d7_4f4a_97c5fcb059f5d281" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 861 1 0 "90d403df_555f_4782_bc0e9655c9dda244" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 862 1 0 "8e0266d7_a3cc_479c_b67864f9bf0a850e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 863 1 0 "8d5a05ba_1847_47e1_9c2f5a7b692a6bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ProcessFilterToWaste") { // }} "" // {{{ 864 1 0 "45a60cc8_74a9_4d7c_9eae47c478baa5c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 865 1 0 "1549fe1a_4e94_418f_bb409f1556ef9241" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ControlPoints"), ControlPoints); // }} "" // {{{ 866 1 0 "6a1fdb1f_ef59_4c6d_998478bb54397381" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("ReturnPlate"), ReturnPlate); // }} "" // {{{ 867 1 0 "74579c6b_27e5_47a2_9358294506ae9b62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 868 1 0 "fbfbbfb6_9858_4eee_aecb1e386ef2ee6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 869 1 0 "e8ddd588_e12c_4e6a_9318d0626a183210" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToWasteContainer(DeviceID, ControlPoints, ReturnPlate, WasteContainerID, DisableVacuumCheck, o_stepReturn); // }} "" // {{{ 870 1 0 "104d821e_df7b_4d35_9358fdbad381b0c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 871 1 0 "930b1fd7_1382_4dd3_bec3f722282383d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 872 1 0 "8d5a05ba_1847_47e1_9c2f5a7b692a6bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 873 1 0 "8e0266d7_a3cc_479c_b67864f9bf0a850e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 874 1 0 "12fe0846_bf72_4286_8bd87488438262ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 875 1 0 "88ca5064_cc0c_42e8_8cf1b70855183b72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Disconnect") { // }} "" // {{{ 876 1 0 "469fd42b_7a31_4d98_91efb31d12064e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 877 1 0 "a37b4aa9_5d2f_4e3a_8134f806b1cc7204" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 878 1 0 "86edebb2_72b8_49f4_84f46c72b1cacaaa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 879 1 0 "d8835a8b_64ef_433a_8ca5a0a1a7302e05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 880 1 0 "88ca5064_cc0c_42e8_8cf1b70855183b72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 881 1 0 "12fe0846_bf72_4286_8bd87488438262ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 882 1 0 "0f50bc52_c930_4613_a737fe8df81950f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 883 1 0 "a4cfb4d0_9450_4bea_a67986a410d3d0ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_SaveContainerCalibration") { // }} "" // {{{ 884 1 0 "37f47b7e_5737_474b_907e35429bd3b21d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 885 1 0 "03cb3efd_4e78_47b4_8c863f235820287b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 886 1 0 "b4a3f09e_102f_45d2_a582493e7a8a228f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 887 1 0 "dce24d9b_3180_4f67_ab31767613c972ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 888 1 0 "a4cfb4d0_9450_4bea_a67986a410d3d0ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 889 1 0 "0f50bc52_c930_4613_a737fe8df81950f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 890 1 0 "1c67aaeb_23b3_4adc_8b6d8285f92b9619" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 891 1 0 "49d34248_b422_4716_b7759002c58bacb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StartContainerCalibration") { // }} "" // {{{ 892 1 0 "1a03095a_5902_4617_8f24e5d961eb85be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 893 1 0 "51b0d6df_b187_4cef_88ea5af60e98888f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 894 1 0 "c754fc8f_8a46_4c44_9ac4283328bd7a51" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Volume"), Volume); // }} "" // {{{ 895 1 0 "25291ac1_062d_4046_bf617e60aa36b67c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StartContainerCalibration(DeviceID, SourceID, Volume, o_stepReturn); // }} "" // {{{ 896 1 0 "bfce4774_8c8b_4403_8e0b05cc4d59500b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 897 1 0 "bc1476ec_35b7_4ec9_989c3db696569d39" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 898 1 0 "49d34248_b422_4716_b7759002c58bacb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 899 1 0 "1c67aaeb_23b3_4adc_8b6d8285f92b9619" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 900 1 0 "dbd9907a_199c_4651_90fe7cbb03cace83" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 901 1 0 "d748a994_8826_4dce_8d07e63e712b8463" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StartContainerCalibration") { // }} "" // {{{ 902 1 0 "6443322c_5eae_4730_a5933771d05f74fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 903 1 0 "0adc10ee_e236_40cc_851240df83158a48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 904 1 0 "661975a0_0aef_4017_bdd063beab2d6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Seconds"), Seconds); // }} "" // {{{ 905 1 0 "0e7caea8_5fcb_4b6c_954eb1ae00f391a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 906 1 0 "b681e1eb_fcbe_49e6_9116e45dfa6449ea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StartVacuum(DeviceID, WasteContainerID, Seconds, o_stepReturn); // }} "" // {{{ 907 1 0 "82d37b5c_3c66_495e_9db5a04e780cef4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 908 1 0 "182c0a15_8dbc_4c35_add3bac6dba81098" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 909 1 0 "d748a994_8826_4dce_8d07e63e712b8463" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 910 1 0 "dbd9907a_199c_4651_90fe7cbb03cace83" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 911 1 0 "4dfdb03a_1a13_4215_be00ca55de734fb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 912 1 0 "1d06fa20_af8b_41f5_b3f3daa03a904ebd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StopVacuum") { // }} "" // {{{ 913 1 0 "54fa31f5_5b7c_4668_927dc6f87a39b99e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 914 1 0 "0bf5dd1e_2e18_477b_adee0722aee70510" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StopVacuum(DeviceID, o_stepReturn); // }} "" // {{{ 915 1 0 "71f9a311_dfa0_4d62_8963c5c0ad21b5f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 916 1 0 "fe23d082_725d_444c_83290693ee1daf6a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 917 1 0 "1d06fa20_af8b_41f5_b3f3daa03a904ebd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 918 1 0 "4dfdb03a_1a13_4215_be00ca55de734fb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 919 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 920 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 921 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Initialize") { // }} "" // {{ 922 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 923 1 0 "efe73491_e5b4_499e_9b3f298c8b7a6398" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 924 1 0 "5c0fe710_4afe_4b11_bf186cfe8dc87978" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{ 925 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 926 1 0 "110af9db_52cf_4a40_94724a7476c48d86" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn); // }} "" // {{{ 927 1 0 "af9bf513_7c00_47bf_aee50c7cdb333b5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Initialize: "), o_stepReturn); // }} "" // {{{ 928 1 0 "cf0a8758_8a16_429a_97f320a142945224" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 929 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 930 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StartTempControl") { // }} "" // {{ 931 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 932 1 0 "de87c5cd_92f6_45a8_9ebd6fe71ac65dbc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 933 1 0 "26949b4a_2c44_4548_8de048c4f48bd98d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 934 1 0 "8ae03ef4_8584_4957_a32601dc8599dadf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn); // }} "" // {{{ 935 1 0 "934ba752_5ec3_489b_ae5a40dd1ea20440" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Start Temperature Control:"), o_stepReturn); // }} "" // {{{ 936 1 0 "a3528747_6990_4387_8839b01b71c3b754" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 937 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 938 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 939 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_SetTarget") { // }} "" // {{ 940 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 941 1 0 "55e81697_10a3_42fb_8777236a132ff0b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 942 1 0 "0177c1a2_7380_4683_94ff93e2ed1299b2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 943 1 0 "15559e31_3f7a_4336_9cabca6758b7c253" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("TargetTemperature"), TargetTemperature); // }} "" // {{ 944 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 945 1 0 "0dcffa9d_ea82_418b_be95240c1bfd0d77" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn); // }} "" // {{{ 946 1 0 "e9b0b663_7dd3_4e55_b206572d2c8a92c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Set Target:"), o_stepReturn); // }} "" // {{{ 947 1 0 "08ecb91c_e9c8_4c61_aca2c1f89fd97bab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 948 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 949 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StopTemperatureControl") { // }} "" // {{ 950 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 951 1 0 "b67518d4_e443_4a8f_947e8c457680c63e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 952 1 0 "045fda52_2303_4244_833066fb0005c21b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{ 953 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 954 1 0 "1c8947fe_b7a1_455a_94e7672ad3593b08" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn); // }} "" // {{{ 955 1 0 "285287f8_a3f9_43f0_9799c3ad98e59b9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco Stop Temperature Control:"), o_stepReturn); // }} "" // {{{ 956 1 0 "88d1a80e_0aa9_4314_ba83bc772f71a589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 957 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 958 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Terminate") { // }} "" // {{ 959 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 960 1 0 "c963c353_41bc_4f4a_b74a666b28831950" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("StopAllDevices"), StopAllDevices); // }} "" // {{ 961 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 962 1 0 "ea2ceb94_04fa_4204_96db2caf6871231f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn); // }} "" // {{{ 963 1 0 "cd495cf5_43ff_4b30_b0baa1f2cd96cf0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Terminate:"), o_stepReturn); // }} "" // {{{ 964 1 0 "bcce43cd_2b64_4caf_89bef8978a011dc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 965 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 966 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 967 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 968 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_Initialize") { // }} "" // {{ 969 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 970 1 0 "d824843f_bf44_4e8b_bb434b50a8b65716" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 971 1 0 "45b9f513_7eaf_4e63_ae92391c28cf15b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 972 1 0 "7f058eec_3092_45ce_862c43a3e0853c7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 973 1 0 "56a4490f_902b_4043_8172466a64e332bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Simulate"), Simulate); // }} "" // {{ 974 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 975 1 0 "c44a492c_8123_465b_acd4ff374583777d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn); // }} "" // {{{ 976 1 0 "a62df2e9_44bb_4099_a4d0597fbf0705de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Initialize:"), o_stepReturn); // }} "" // {{{ 977 1 0 "de7bfb5a_b1fa_42ee_b461782a3c381af4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 978 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 979 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_MoveToPosition") { // }} "" // {{ 980 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 981 1 0 "3092ee64_df80_4e56_b3cdffc0827e3c2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 982 1 0 "4284a9cf_3ea6_42f5_ae1f62d82cd11ebe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Angle"), Angle); // }} "" // {{ 983 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 984 1 0 "5b44092b_0faa_47ae_8005717c87a0f334" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn); // }} "" // {{{ 985 1 0 "4d912417_89ed_44f2_941bfb44efed0e2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Move to Position:"), o_stepReturn); // }} "" // {{{ 986 1 0 "0540bb67_399d_468d_853dd6ca4bb1c285" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 987 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 988 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 989 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 990 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "moveSequence") { // }} "" // {{{ 991 1 0 "6e83eea3_8863_4ca0_9ff603380f0dc4d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("inputSequence"), inputSequence); // }} "" // {{{ 992 1 0 "6b8903c6_6977_458a_8409f93724089454" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 993 1 0 "77d9a84d_5987_4b3c_a76757ce15a19302" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 994 1 0 "13c73535_4a98_49e2_ba1a02c30f02035b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 995 1 0 "a33ebddb_88d8_4440_9a78132ed62d97f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, inputSequence, seq); // }} "" // {{{ 996 1 0 "1dcc4914_aa2f_439e_8a2f431687c33852" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqFirstPosition = SeqGetPositionId(seq); // }} "" // {{{ 997 1 0 "01f7bf35_3538_441d_98904fa827b05e68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 998 1 0 "a37851fe_b9d0_42fa_9ccca7dd7b352a9c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{{ 999 1 0 "fe9d84b8_86ec_4552_b187147351886cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqSecondPosition = SeqGetPositionId(seq); // }} "" // {{{ 1000 1 0 "5fa8b88a_cf88_49e1_8cb574503dc60e56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(seqFirstPosition, seqSecondPosition); // }} "" // {{{ 1001 1 0 "e590c4e1_91dd_41c0_82a254d4134fb734" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("First check"), Translate("Second check")); // }} "" // {{{ 1002 1 0 "2127d6de_e8bd_455a_88ad20e73b767061" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1003 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1004 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1005 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1006 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1007 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_measure") { // }} "" // {{{ 1008 1 0 "7c314622_d15c_42aa_a88b3d71caa33d0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1009 1 0 "9f15b042_95cd_4241_9b6262d3a4979ca7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1010 1 0 "34064a8d_5567_4fe5_b4349d0d061b9a1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1011 1 0 "0e34e118_df68_49fa_b3b9228d63deb6d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 1012 1 0 "025eece8_72cd_4190_a092d806fbab65a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 1013 1 0 "269c134a_bc59_4578_8da8bb7559f234a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 1014 1 0 "36ec28c1_360b_46e9_9243c01dbd3874e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 1015 1 0 "58445956_3204_41a3_a7acb03aaf25ccd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 1016 1 0 "465c2002_18cb_4ff2_9df9e423dbc6837c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1017 1 0 "40682224_6d73_4a7c_a2e33641f1768d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 1018 1 0 "e43a57a6_d83b_41d1_adf33f8f77ca7bc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 1019 1 0 "12a6bd74_f75b_44d1_b6f7c26d279d9610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 1020 1 0 "71b8f8bc_65c1_4e97_ab6eae03040f51dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 1021 1 0 "a8ca8abd_aa7a_412c_be527eb4e81efcb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1022 1 0 "a8647b92_b569_4a75_99a5333c438b3a23" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1023 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1024 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1025 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1026 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate_Dyn") { // }} "" // {{{ 1027 1 0 "de6a4eb0_04e1_47fc_86e27009d71152cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 1028 1 0 "5f551457_7af9_4567_bceacdf0018c9c38" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 1029 1 0 "60ee9fa5_c549_43a9_bbccdb0b14819583" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1030 1 0 "2211f515_9e69_4a1c_9603becd6fd866cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1031 1 0 "8449e1f4_6561_4b51_b91aa14423565eb2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 1032 1 0 "4429d4bb_e2fb_451f_8558de74111dbe3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Variance"), Variance); // }} "" // {{{ 1033 1 0 "a918fadc_db95_4e4b_9c445a903a59f17a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 1034 1 0 "7611bb65_5e77_408e_98384f0fec68e958" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 1035 1 0 "74418f44_640a_4b4b_88234a74841f1dbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate Dynamically"), o_stepReturn); // }} "" // {{{ 1036 1 0 "13218e03_9ac9_44ed_8af864397e865cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1037 1 0 "6257eb41_ce75_45b1_bea89bce20631222" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1038 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1039 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1040 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1041 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate") { // }} "" // {{{ 1042 1 0 "c7a809a1_1dc8_47c2_a8006c785355c50e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 1043 1 0 "27f7a889_0250_42a5_87699d0b0d52d36b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 1044 1 0 "b624fe53_a0c2_44e7_92eb12cc744fa799" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1045 1 0 "9f642188_0286_4e80_81cb485423a155c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1046 1 0 "c7530a85_7f29_4069_9a8e94318ffec0d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 1047 1 0 "849206a3_ea5c_4440_a08cdbcb81354e94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 1048 1 0 "9f9ab695_0d32_4bf4_bf5a4b0207a2c780" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 1049 1 0 "c1db8c11_4c25_4c9c_b424e06999583f09" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1050 1 0 "29e43762_b009_40ad_b93a5ac2372cca00" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1051 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1052 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1053 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1054 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Enable_Extended_Log") { // }} "" // {{{ 1055 1 0 "1791ad6e_39b2_4442_8b4470d0fc5497fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn); // }} "" // {{{ 1056 1 0 "b22a7836_ed52_4e9d_9e5df5babf8fa142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1057 1 0 "d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1058 1 0 "8d68d8f1_5b56_488b_a0676b4b50a35221" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1059 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1060 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1061 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1062 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Get_Last_Error") { // }} "" // {{{ 1063 1 0 "11bf85a6_3df2_4245_839282a900f3db71" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1064 1 0 "2c0b2633_5d81_41a1_aa90c51eb8d9d23d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn); // }} "" // {{{ 1065 1 0 "4d60f4e2_175b_4a4b_9b0bfb0f63211da0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Get Last Error"), o_stepReturn); // }} "" // {{{ 1066 1 0 "76df37d9_5928_4269_937630b417ad9a11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1067 1 0 "a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1068 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1069 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1070 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1071 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Initialize") { // }} "" // {{{ 1072 1 0 "a37d4042_a872_4da0_bf60a51312d5cc22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1073 1 0 "77530965_cb1f_4563_a1d848bb4faa3bb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1074 1 0 "295c3bab_f7f4_47d0_8075cf658ee0436f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn); // }} "" // {{{ 1075 1 0 "69f13066_cc39_48aa_85b093e1bc056907" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrIStr(o_stepReturn2); // }} "" // {{{ 1076 1 0 "3a9d7ad8_b8d0_45ee_9004e77ed5fbe471" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1077 1 0 "178d10c9_fe18_479a_b3e7922f87282612" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 1078 1 0 "66935de2_85a3_4ed0_95cddf772b15fb48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1079 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1080 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1081 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1082 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Measure_Dynamically") { // }} "" // {{{ 1083 1 0 "69eede79_0b96_4634_a4ed7995201d9b7d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1084 1 0 "6a018697_b8f4_4088_b8c650a2f028d197" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Precision"), Precision); // }} "" // {{{ 1085 1 0 "dfbe88b8_1dda_42ac_8175799123584051" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1086 1 0 "3ef27a25_aec7_4d5b_beb743b713c7526e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1087 1 0 "74a87116_8260_466d_a78e98fe0544a891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 1088 1 0 "425d37a5_2d55_4b09_a607303c754935db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure_Dynamically(ModuleID, Temperature, Precision, Timeout, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 1089 1 0 "0df3fc00_0550_45fa_b224d60b9bcd06c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 1090 1 0 "26992ae0_59eb_4678_ae304b460a7034db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 1091 1 0 "3beda7c9_5769_4578_b31431d2bab6d131" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 1092 1 0 "141952da_a201_4e85_9e446006849a95bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 1093 1 0 "f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1094 1 0 "5487a4f7_a9f8_448e_98b2cb671cb9c069" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 1095 1 0 "c8e7c221_d1e4_4818_b3e077f9aeb6a0a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 1096 1 0 "611376c4_8c68_46f2_8947cec12bb313f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 1097 1 0 "e113c0e5_7ab9_4244_86b73e7f24d2bfc8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 1098 1 0 "6286c2d7_a138_4844_bc77fd8a40a6a486" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1099 1 0 "39fd3518_8a14_43a1_8d41240f577c94eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1100 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1101 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1102 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1103 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Battery") { // }} "" // {{{ 1104 1 0 "c83f58ac_8db7_4477_bed8e57c9c784b8a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1105 1 0 "4b343bdb_fe40_4daa_8382b1265575e03a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn); // }} "" // {{{ 1106 1 0 "98f43381_9679_4d9f_b3d1238ed4c1d0c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1107 1 0 "b95371f0_7532_4426_b980d9824bf1d2b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ChargeCounter = StrIStr(ChargeCounter); // }} "" // {{{ 1108 1 0 "15324eca_50a4_4530_be7f08cdef0e6514" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BatteryCondition = StrIStr(BatteryCondition); // }} "" // {{{ 1109 1 0 "e694349e_13ad_46c1_b18f5eb4688f510e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ActualCharge = StrIStr(ActualCharge); // }} "" // {{{ 1110 1 0 "279c0c8e_1d53_437f_ac5e74b0ccffc7a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1111 1 0 "92db84c4_89c2_4902_819012506538681c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate("0"), Translate("0"), Translate("0"), Translate("0"), id); // }} "" // {{ 1112 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1113 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1114 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1115 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Calibration") { // }} "" // {{{ 1116 1 0 "250cbb57_43e2_4ca3_8ac97a4f8a848ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1117 1 0 "e2f361b4_fb8d_4bf8_b53c05720323632b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ProbeNumber"), ProbeNumber); // }} "" // {{{ 1118 1 0 "6e7357dd_030a_4f9d_b5cda736b409bbee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn); // }} "" // {{{ 1119 1 0 "aa859c68_b2ab_4304_9501a2d752587df6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowValue = StrFStr(pHLowValue); // }} "" // {{{ 1120 1 0 "7331e4fa_3e06_499a_84eed922b712aca5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowVoltage = StrFStr(pHLowVoltage); // }} "" // {{{ 1121 1 0 "3c2e720a_1c6e_4f09_afe077215aa438e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighValue = StrFStr(pHHighValue); // }} "" // {{{ 1122 1 0 "a9363a15_98fa_4a49_8451b25c27edea3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighVoltage = StrFStr(pHHighVoltage); // }} "" // {{{ 1123 1 0 "73007841_7490_489f_9c595a8e085e3a59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationTemperature = StrFStr(CalibrationTemperature); // }} "" // {{{ 1124 1 0 "49c841c4_b5cf_4ac7_9c2e87a2dc939210" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationOffset = StrFStr(CalibrationOffset); // }} "" // {{{ 1125 1 0 "d3535c95_47a6_46a6_80f73d15c4582508" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlope = StrFStr(CalibrationSlope); // }} "" // {{{ 1126 1 0 "a273e170_1488_4e16_884ae09c3a26d828" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio); // }} "" // {{{ 1127 1 0 "4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1128 1 0 "9ae40f13_d6cb_4a4e_9dc995de1da2d637" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Request Calibration Values"), o_stepReturn); // }} "" // {{{ 1129 1 0 "5aca9095_546e_4df5_b24364da04e44fe5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id); // }} "" // {{ 1130 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1131 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1132 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1133 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Probe_Data") { // }} "" // {{{ 1134 1 0 "04b155be_097f_4f2d_add1392fbf78b5f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1135 1 0 "c40a59cd_e266_4cc3_aa3dd3d526502930" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn); // }} "" // {{{ 1136 1 0 "306c68bb_ffd7_4233_b7f0c2c67678dfdf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1); // }} "" // {{{ 1137 1 0 "bbd1faef_5b8f_41ba_bf74a019b05da039" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2); // }} "" // {{{ 1138 1 0 "cb244d85_a14b_4bcb_ab81c5cdc38c6552" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3); // }} "" // {{{ 1139 1 0 "5476cf0c_49cc_4602_aec72872116d2e6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4); // }} "" // {{{ 1140 1 0 "6883841a_44f5_417f_8574566ed15ae444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), o_stepReturn); // }} "" // {{{ 1141 1 0 "fefec950_2bfa_429e_bdf791dc40dd0495" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1142 1 0 "0f6be956_31e3_4d1e_b232c4dc908ea6f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1143 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1144 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1145 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1146 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Technical_Data") { // }} "" // {{{ 1147 1 0 "3c80e1e2_a904_42ac_a3ddd5df5ca3a196" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1148 1 0 "8b2b24be_b84b_41b8_bd0f088f32554cb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 1149 1 0 "552e7bb6_cbdf_49ec_86ac28b54cae7f58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 1150 1 0 "1634fedb_a7e1_4130_ac1fb8d55f47b9e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HardwareNumber = StrIStr(HardwareNumber); // }} "" // {{{ 1151 1 0 "2cfb8725_b283_48b0_906a9741fe336744" "{C1F3C015-47B3-4514-9407-AC2E65043419}" PartNumber = StrIStr(PartNumber); // }} "" // {{{ 1152 1 0 "7b9a6dfa_9df8_40a8_9c0c39981dcf97e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Revision = StrIStr(Revision); // }} "" // {{{ 1153 1 0 "771c0483_6ea2_4299_81c7598839a5027b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SerialNumber = StrIStr(SerialNumber); // }} "" // {{{ 1154 1 0 "790984ff_e065_4212_a5c420f04d9f7e4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), o_stepReturn); // }} "" // {{{ 1155 1 0 "79aaa9cb_2db1_4f5d_8385023783e5cc82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1156 1 0 "371d6452_cf9d_4abe_9463f54ab7831231" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id); // }} "" // {{ 1157 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1158 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1159 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1160 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Voltage_Data") { // }} "" // {{{ 1161 1 0 "b6c0eb00_003a_45ed_9899c407d864455c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1162 1 0 "e4801131_30dc_4e2d_8ac9e80c0c13972c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Selector"), Selector); // }} "" // {{{ 1163 1 0 "ee48a65d_794b_411d_bb1668a267206d8b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn); // }} "" // {{{ 1164 1 0 "bf78a104_f3d4_45b6_a573a7219dcf05e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 1165 1 0 "ab32fbfb_2be2_4f6d_9c49def79adcfe31" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1166 1 0 "eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(""), Translate(""), id); // }} "" // {{ 1167 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1168 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1169 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1170 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 1171 1 0 "51fd11a2_c173_4d8a_be50512a820eb424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1172 1 0 "b1268215_064b_40bc_8b9e75cfc0edeac8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1173 1 0 "7665963b_aa9b_4a3c_ba522887f3b15ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1174 1 0 "8327c869_96c0_4394_9bf4c5b5c19f30d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1175 1 0 "5a5455ae_5598_4a29_8c5f621b0586ba79" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1176 1 0 "f534cbac_4de3_4425_85299c07c6ff73cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 1177 1 0 "12b0cc6a_4826_48ce_82c690ddf98441a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1178 1 0 "aee63add_2789_4971_b4867510d938caf6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1179 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1180 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1181 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1182 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Charge_Parameters") { // }} "" // {{{ 1183 1 0 "5e24703a_30cb_4538_aec7ba85b7c0d2a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1184 1 0 "31630603_a72b_4d8b_a21a501f5336c619" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Charge"), Charge); // }} "" // {{{ 1185 1 0 "41b8aa8b_7d8e_4351_ad9664e334fa00f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AutoCharge"), AutoCharge); // }} "" // {{{ 1186 1 0 "504d0d26_95ad_4181_a7c38162018496cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("AutoChargeLevel"), AutoChargeLevel); // }} "" // {{{ 1187 1 0 "576ecb10_c479_461f_9249f554f27e398b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn); // }} "" // {{{ 1188 1 0 "80503782_9e9a_4986_9e4bcdeac598c749" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Charge Parameters"), o_stepReturn); // }} "" // {{{ 1189 1 0 "ade249f5_6aa1_4939_90a22e6af0864e5e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1190 1 0 "4fb997db_4cdf_4b51_85bbb23941f19edb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1191 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1192 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1193 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1194 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Probe_Replacement_Date") { // }} "" // {{{ 1195 1 0 "eb0a7cc0_c83a_45a8_8bd6adbf05cadabe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1196 1 0 "c762429d_3619_4e70_9765fe207dab3d54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Probe"), Probe); // }} "" // {{{ 1197 1 0 "18bf75b8_9aa3_46d2_a3ad3bbab8c1e126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1198 1 0 "2b2bbaed_84c1_46d2_bd024b425aefa336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1199 1 0 "380453f0_b3e8_47ac_a06eb91552b3a11f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1200 1 0 "a8fcf799_ec41_4160_910a9c78e5395ae2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1201 1 0 "c95c2987_8098_48ed_9ad284801d556587" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Probe Replacement Date"), o_stepReturn); // }} "" // {{{ 1202 1 0 "4e986dcc_ee8e_4cc0_bb83628d0a0ec284" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1203 1 0 "d46fb139_6c48_4f2a_b09293a8a3509a12" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1204 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1205 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1206 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1207 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Shutdown") { // }} "" // {{{ 1208 1 0 "aec40299_6cef_4e16_ad88bccbdcae3b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1209 1 0 "c7715d80_e089_40ea_86fe6a446a2c9378" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Mode"), Mode); // }} "" // {{{ 1210 1 0 "212772c6_0ff7_41ef_9c35fb5828034d90" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn); // }} "" // {{{ 1211 1 0 "82055c44_b706_4c16_99b47c2a4ae600e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Shutdown"), o_stepReturn); // }} "" // {{{ 1212 1 0 "d76b0e51_c107_49cd_b6bcd25c44e4d066" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1213 1 0 "fbbaa73a_fa45_446d_8052e6e618fd2fad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1214 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1215 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1216 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1217 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Technical_Data") { // }} "" // {{{ 1218 1 0 "d6a005e1_4502_49d8_9a510afa4a2e833e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1219 1 0 "5ad112b0_da19_4b1b_a4649033defa7fef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 1220 1 0 "f4094e68_7940_4706_bae95f6277784476" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PartNumber"), PartNumber); // }} "" // {{{ 1221 1 0 "2b53f199_42d1_4808_a128c8ef4354e216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Revision"), Revision); // }} "" // {{{ 1222 1 0 "b5bf6715_e2e6_4e19_ad453dbb18396d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SerialNumber"), SerialNumber); // }} "" // {{{ 1223 1 0 "8cd5ff7f_9cb8_4f34_8afeb35175b47032" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 1224 1 0 "b60d9996_aa66_483d_b61518ffca638e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Technical Data"), o_stepReturn); // }} "" // {{{ 1225 1 0 "164f5289_e710_44eb_a1ea51e1622a7813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1226 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1227 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1228 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1229 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Trace_Level") { // }} "" // {{{ 1230 1 0 "dd6ba7d4_f5cc_4725_9776848c6e8343cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1231 1 0 "5a2c7ac9_8800_4926_96f26337aee59504" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1232 1 0 "88c51a62_4453_4cf5_ba0682a2cb1da767" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1233 1 0 "159aeb3e_3ed4_4ddc_a11cdfd939a7db7d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Trace Level"), o_stepReturn); // }} "" // {{{ 1234 1 0 "c3a5cc94_f346_4d04_a4be1fd04efbccc1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1235 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1236 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1237 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1238 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Sleep") { // }} "" // {{{ 1239 1 0 "153dc01b_be4b_403a_a40226aa4778c709" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1240 1 0 "a6f7384c_4c2e_4b3b_9682c00fb7a2f978" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn); // }} "" // {{{ 1241 1 0 "e82cf943_58b3_463e_a86afb9882353228" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Sleep"), o_stepReturn); // }} "" // {{{ 1242 1 0 "636ca48b_8789_40cc_8fb4dc35e8cbab54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1243 1 0 "5fb5b228_5342_414d_a548ac8dd5add837" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1244 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1245 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1246 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1247 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Terminate") { // }} "" // {{{ 1248 1 0 "b53cd271_035b_4870_961c552983b39351" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1249 1 0 "e133d234_4ccd_44cb_810d29742ee9f40e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn); // }} "" // {{{ 1250 1 0 "eb5a9614_5d18_44cd_83190a1d8eec2a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1251 1 0 "81b91833_cb16_43c5_a8935f9701536560" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1252 1 0 "add7dd5e_87e4_4ec1_a7b552234adc5d9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1253 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1254 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1255 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1256 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Wakeup") { // }} "" // {{{ 1257 1 0 "6b1d97c0_debd_402e_8c064a5c1fe48aca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1258 1 0 "09ffa3b4_530e_444f_943e5302e37f3fe0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn); // }} "" // {{{ 1259 1 0 "0d420182_40e4_43a8_872c5c81f7efa6d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1260 1 0 "f7bb0b0b_d222_43a7_b1b1236ab60e2847" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1261 1 0 "12251a91_a4ec_4a01_b041b503e2eef836" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1262 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1263 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1264 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1265 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Initialize") { // }} "" // {{{ 1266 1 0 "10713a72_dce4_482a_ad1d6d8db7bd210a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1267 1 0 "21f38719_99e7_4de4_bc16b312b6f57977" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1268 1 0 "75ac7c86_e474_45bc_8551fc9e302de4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 1269 1 0 "509760aa_ef16_454d_89cc23c0745d3c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 1270 1 0 "19e515a1_705c_45eb_b80e75767541c91a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1271 1 0 "a042f65b_875f_4b52_999c836815c84a6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1272 1 0 "f5fd2c44_2160_43fa_be88382bc9e0ff0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1273 1 0 "f2c8bfd1_3d33_4a00_84852ffbabef7b28" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1274 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1275 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1276 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1277 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Set_Trace") { // }} "" // {{{ 1278 1 0 "0029313d_525e_46ea_916912b33902e1eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1279 1 0 "ed79bcac_71ff_48ee_b968407f0dbdf4ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1280 1 0 "80f14967_56f1_4b78_9a3c9965460a9589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1281 1 0 "b3fdfb36_4bb4_4086_a19b5402f53fdd94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1282 1 0 "53206fbc_1492_4583_a2789c8083e49b46" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1283 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1284 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1285 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1286 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Wash") { // }} "" // {{{ 1287 1 0 "32bfd9a6_1ebc_4ca0_81e034f81d1af760" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1288 1 0 "a9208608_0099_4d5f_800d72adf563b9e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CycleNumber"), CycleNumber); // }} "" // {{{ 1289 1 0 "738f88ca_6ad7_4598_b1e4a3e1ccefcace" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn); // }} "" // {{{ 1290 1 0 "d009e19d_0560_4f89_b0f58bafa778b71b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Wash"), o_stepReturn); // }} "" // {{{ 1291 1 0 "49cdc51c_08eb_424b_920d3dcb647b2559" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1292 1 0 "2624b5a6_7428_4e88_a9b7fee8a8001e65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1293 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1294 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1295 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1296 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Terminate") { // }} "" // {{{ 1297 1 0 "e8e2fec9_d562_4524_b5d29880876bd109" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1298 1 0 "ad418c06_88fd_4649_9745bc00694fa53a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1299 1 0 "e8437e3c_0153_4bc0_86236a2e9849e22a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Terminate"), o_stepReturn); // }} "" // {{{ 1300 1 0 "32e4b0bc_48e5_4770_81a0113fdff8118a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1301 1 0 "c81e886b_51ec_42be_b2c989057781a5b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1302 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1303 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1304 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1305 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Initialize") { // }} "" // {{{ 1306 1 0 "b41d8294_bc5c_4346_999860e0f4cc913e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1307 1 0 "102abd73_15bb_472b_a1008b4eda35637e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1308 1 0 "58389380_f098_4c71_b61c0954f797753b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 1309 1 0 "2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 1310 1 0 "d95cbdf3_6278_437b_91525392a70e5356" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1311 1 0 "d35fefc8_f758_41da_a6073532f75cf092" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Initialize"), o_stepReturn); // }} "" // {{{ 1312 1 0 "e1deec6e_fc66_45bd_93821e20a78853fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1313 1 0 "01bdb50d_0f38_40e2_8993f814ea652b66" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1314 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1315 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1316 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1317 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Set_Trace") { // }} "" // {{{ 1318 1 0 "f7fc7449_63b2_4e8b_8d0eaf3f931e834d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1319 1 0 "ef77cea9_ef26_4525_bea967ec7f086b88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1320 1 0 "24784b11_b6f4_461e_b526cbbb677864ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1321 1 0 "d5ebe375_f7dd_45c2_b3e242a8edf4f175" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Dryer Trace Level"), o_stepReturn); // }} "" // {{{ 1322 1 0 "f61751e3_57be_4b1d_b8a1d370a4c1773c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1323 1 0 "d216caef_1c5d_4f05_8252d1a77df45535" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1324 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1325 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1326 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1327 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Start_Drying") { // }} "" // {{{ 1328 1 0 "45561f8e_cd7f_49d8_a8720b2ff7d0d932" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1329 1 0 "ecdddf7a_3c99_4f99_97b658f94a62554c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1330 1 0 "5a6daec0_a404_4a0a_ad9d88de43ac46c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Start Drying"), o_stepReturn); // }} "" // {{{ 1331 1 0 "e7173a44_d349_4ba2_8993647fbcd2eb1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1332 1 0 "17e3434b_dfff_457b_9aba0c22e9206cc7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1333 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1334 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1335 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1336 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Stop_Drying") { // }} "" // {{{ 1337 1 0 "f3eac478_54bb_4350_8c1811bf2ede8424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1338 1 0 "37262733_33d0_4723_94687e68249d1300" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1339 1 0 "6feb871c_61be_4812_a421af32d75f9871" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Stop Drying"), o_stepReturn); // }} "" // {{{ 1340 1 0 "2ba59e68_8358_4b86_a9108519bff6d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1341 1 0 "cbfcb2cb_00c9_445f_a28af2b6553efc31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1342 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1343 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1344 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1345 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Terminate") { // }} "" // {{{ 1346 1 0 "66453f41_07b7_4fd4_b2177e4994606836" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1347 1 0 "a5808bbd_63b3_4fc2_894ab4d4eb00b93d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID); // }} "" // {{{ 1348 1 0 "f844d13f_ecdb_465a_b0300a4976c0d809" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1349 1 0 "a28255b3_86ff_4928_abf87a7c3f930142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1350 1 0 "7e539911_cdda_4242_a337d58eba44508c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1351 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1352 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1353 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1354 1 0 "2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1355 1 0 "2dde624a_2df2_4014_8df18f6d92ed93b1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1356 1 0 "d6d5265b_416c_468f_a8f0a8225e294804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Initialize") { // }} "" // {{{ 1357 1 0 "32d149fa_c238_4e8c_9c9bfe8ca03b39ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PortNumber"), PortNumber); // }} "" // {{ 1358 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_43ECC15F92874e8a8FCA2A90F3412255 ; err.Clear(); // }} "" // {{{ 1359 1 0 "05f6e40b_f62a_4382_9b25ca234839aeb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::Initialize(ML_STAR, PortNumber, DefaultTemperature, ModuleID); // }} "" // {{ 1360 1 0 "b8eff0c4_8a87_4d69_8b1fc22443527e58" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1361 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_43ECC15F92874e8a8FCA2A90F3412255 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1362 1 0 "a6315690_dcdc_4faf_9764f4edcccee401" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1363 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1364 1 0 "b152d230_641d_44fd_82876d10beb25ffd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1365 1 0 "2178bb5d_1389_4bb3_92e038bed00ad7d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 1366 1 0 "0e8fa514_886c_42d7_a0fec5c2e0a40820" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1367 1 0 "d6d5265b_416c_468f_a8f0a8225e294804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1368 1 0 "2dde624a_2df2_4014_8df18f6d92ed93b1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1369 1 0 "a96843cd_6adb_45f6_86b4971bd2682521" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1370 1 0 "2a26b412_4bc5_49d9_b1cdc64938a3cf0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_MeasureCycle") { // }} "" // {{{ 1371 1 0 "e78c25fc_f856_4c7d_bb7f6056d2ae0e9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1372 1 0 "4c0064bb_0c23_4648_b57e5599878d63f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqMeasurement"), seqMeasurement); // }} "" // {{ 1373 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (seqMeasurement == "") { // }} "" // {{{ 1374 1 0 "a11073f7_18e2_4097_baf006ed44e74081" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("MeasurePositions"), MeasurePositions); // }} "" // {{{ 1375 1 0 "47d49bd0_0457_440d_b1d654c85ac3c5db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(MeasurePositions, seq); // }} "" // {{ 1376 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1377 1 0 "bbddeeab_2dc4_4931_900a5ec07aafe0be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, seqMeasure, seq); // }} "" // {{ 1378 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1379 1 0 "6b06d7c5_bf98_48d9_906ae705e4ce149b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("MeasureHeight"), MeasureHeight); // }} "" // {{{ 1380 1 0 "25fe4c02_a4e2_40cd_91289dc1c5c638b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ProbePattern"), ProbePattern); // }} "" // {{{ 1381 1 0 "02a9e02a_0596_4158_ac021180b0b5985c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MeasureTime"), MeasureTime); // }} "" // {{{ 1382 1 0 "f8080019_d032_4f0c_9ef8429bde9ee7df" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1383 1 0 "83142ee1_d831_4ff1_a6734844fe789421" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::MeasureCycle(ML_STAR, ModuleID, seq, MeasureHeight, ProbePattern, MeasureTime, Temperature, arrpHValues); // }} "" // {{{ 1384 1 0 "d4d4974a_23a2_43a2_851b478f0e7d24be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrpHValues, flt_pHValues); // }} "" // {{{ 1385 1 0 "bde9c162_a4cf_40fa_a663c6b78e029610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1386 1 0 "0a5c18e9_775d_4644_bdfcc536000642cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Measure Cycle"), o_stepReturn); // }} "" // {{{ 1387 1 0 "c1502c7b_2bd0_480c_a0ce6887e02484bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, flt_pHValues, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1388 1 0 "2a26b412_4bc5_49d9_b1cdc64938a3cf0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1389 1 0 "a96843cd_6adb_45f6_86b4971bd2682521" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1390 1 0 "e66a9dff_c0b5_4864_ad32fce97f16a3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1391 1 0 "5185a83c_8ff6_42f8_b1dc5fc006d041ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Calibrate") { // }} "" // {{{ 1392 1 0 "d9d7f7cb_394b_40ea_a037e16efc8e063c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1393 1 0 "0e65e09c_0178_403b_9eca768c440a479f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1394 1 0 "fedae8c3_0c9d_426f_a30e8fdfa1d2b056" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1395 1 0 "ad8456a9_07be_4852_b2bab182e7e17dae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqCalibration1"), Calibration1); // }} "" // {{{ 1396 1 0 "8b591ca2_adf8_4248_b5ac1fb2a84c21aa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Calibration1, seqCalibration1); // }} "" // {{{ 1397 1 0 "0f28a5e9_278c_4290_aa9ee416f829755a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqCalibration2"), Calibration2); // }} "" // {{{ 1398 1 0 "b57e28d3_0011_4657_bbceba83ca97b89a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Calibration2, seqCalibration2); // }} "" // {{{ 1399 1 0 "101798f0_c18a_411a_b29295d972cc9a6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqReference"), Reference); // }} "" // {{{ 1400 1 0 "1c415c8d_660d_41fe_a81fcfd6d8836038" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Reference, seqReference); // }} "" // {{{ 1401 1 0 "20510ceb_5840_48de_842a1b657fa7706d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationTime"), CalibrationTime); // }} "" // {{{ 1402 1 0 "ecd67637_3e8e_4d22_89b67b39e05342fe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MeasureTime"), MeasureTime); // }} "" // {{{ 1403 1 0 "148b5d07_b84d_4786_b1d0f9d5e5837491" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("MeasureHeight"), MeasureHeight); // }} "" // {{{ 1404 1 0 "938c1584_a353_4f03_ba14c9f33cc2c6a7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue1"), CalibrationValue1); // }} "" // {{{ 1405 1 0 "cda9048b_fe59_4db2_a1d08550795038f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue2"), CalibrationValue2); // }} "" // {{{ 1406 1 0 "5d669238_eb69_4080_8b789139b291be94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValueRef"), CalibrationValueRef); // }} "" // {{{ 1407 1 0 "4c7c9992_c2e0_445a_bee9cd7dd086e585" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSoln1"), TempSoln1); // }} "" // {{{ 1408 1 0 "9574a12d_456e_4fd6_9b51714dd88b4a1e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSoln2"), TempSoln2); // }} "" // {{{ 1409 1 0 "211f81c7_5561_45ce_8cf247e76fb0f65e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSolnRef"), TempSolnRef); // }} "" // {{{ 1410 1 0 "f812ea75_ed49_4a04_b4ab3dd67f1206ad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrateDynamically"), blnCalibrateDynamically); // }} "" // {{{ 1411 1 0 "178d95b8_13db_4493_a08cdaec1348c0e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1412 1 0 "d4d33c2d_2aee_4a51_ad36cb953d687c83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{ 1413 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F882CD31309846e3BD30959B418AB982 ; err.Clear(); // }} "" // {{{ 1414 1 0 "ff44fdd8_7acc_46f7_a7c3a207ad5d7bf8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Calibrate(ML_STAR, ModuleID, seqModule, seqCalibration1, seqCalibration2, seqReference, CalibrationTime, MeasureTime, MeasureHeight, CalibrationValue1, CalibrationValue2, CalibrationValueRef, TempSoln1, TempSoln2, TempSolnRef, blnCalibrateDynamically, arrCalibrationSlopeRatios, arrpHValuesReferenceSolution); // }} "" // {{ 1415 1 0 "18724129_2443_4271_a6316a42ef334c73" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1416 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F882CD31309846e3BD30959B418AB982 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1417 1 0 "d6c65e91_f6e8_47d9_aaf1810ffab1ffac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1418 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1419 1 0 "7375b9e4_01c3_49a1_810fb42149ed0eea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrCalibrationSlopeRatios, CalibrationSlopeRatios); // }} "" // {{{ 1420 1 0 "31ba6e89_258d_4deb_97352544c3b5c45c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrpHValuesReferenceSolution, pHValuesReferenceSolution); // }} "" // {{{ 1421 1 0 "924064ec_85ac_4b42_a5ff3eb8a6a5342f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 1422 1 0 "65bd0fe0_0efb_4335_b118b89e61b948ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1423 1 0 "5185a83c_8ff6_42f8_b1dc5fc006d041ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1424 1 0 "e66a9dff_c0b5_4864_ad32fce97f16a3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1425 1 0 "b6af2262_3e2f_4d3a_8efaa95d707f7c9b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1426 1 0 "190d0e3a_2978_407c_a8482f5f7e239261" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Dry") { // }} "" // {{{ 1427 1 0 "0f0bf03e_4950_40e7_b2899f9cabb79cb3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{ 1428 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_D19CA5AD1071407b84599779A41B51EA ; err.Clear(); // }} "" // {{{ 1429 1 0 "1885a8d9_8082_44ab_bfd7a217170187db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::Dry(ML_STAR, ModuleID); // }} "" // {{ 1430 1 0 "33dddcad_4489_4f31_8b4fea145ebbe77b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1431 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_D19CA5AD1071407b84599779A41B51EA : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1432 1 0 "d8f5d052_f205_4e22_8998e2d0d12790ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1433 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1434 1 0 "5521c0c7_c64b_4b49_9036f9bf6a7a83d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1435 1 0 "9e7864cd_a0bd_4ec6_8f733a2e7ab773bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1436 1 0 "190d0e3a_2978_407c_a8482f5f7e239261" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1437 1 0 "b6af2262_3e2f_4d3a_8efaa95d707f7c9b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1438 1 0 "98f952c5_628a_415d_a46b3e75e0c33d60" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1439 1 0 "370e55f1_98b7_4dfb_9640d7a634f44a8f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Wash") { // }} "" // {{{ 1440 1 0 "39b0590c_dc8d_4eb3_b8bfcab65235f494" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{ 1441 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 ; err.Clear(); // }} "" // {{{ 1442 1 0 "beaffdda_e52a_4f79_95659f907946752f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Wash(ML_STAR, ModuleID); // }} "" // {{ 1443 1 0 "58aab21a_307b_403b_980186d201a7c6ac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1444 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1445 1 0 "4cd2a753_2761_4d3c_9cd93c15fa19a47b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1446 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1447 1 0 "0af219f8_e5bc_4b14_a95fd7e3f2ccb712" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1448 1 0 "7b44ca9e_e6d7_4793_8f937fc518ecc41c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1449 1 0 "370e55f1_98b7_4dfb_9640d7a634f44a8f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1450 1 0 "98f952c5_628a_415d_a46b3e75e0c33d60" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1451 1 0 "3246255f_383b_4742_b7eb17cad21acec0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1452 1 0 "f70b31d7_c863_488a_90c4df10a4677c68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_SetParameters") { // }} "" // {{{ 1453 1 0 "7e5e111c_21f5_4c0b_9dd06d15aee64431" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqGripper"), Gripper); // }} "" // {{{ 1454 1 0 "8417ab78_f4b8_40aa_890f3b14e4204667" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Gripper, seqGripper); // }} "" // {{{ 1455 1 0 "f43d4896_c19a_4cc9_ad3c75f925788b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqWashPosition"), WashPosition); // }} "" // {{{ 1456 1 0 "ffcc2479_6c91_4038_bab179b027d4b03b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, WashPosition, seqWashPosition); // }} "" // {{{ 1457 1 0 "b731d1c6_30bc_4003_ba19e062e82293db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqDryPosition"), DryPosition); // }} "" // {{{ 1458 1 0 "a68ddb6b_780a_46ed_bcaa350f92f649fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, DryPosition, seqDryPosition); // }} "" // {{{ 1459 1 0 "020f31e6_e3ef_48f4_af0e175e60e00159" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TransportChannel"), TransportChannel); // }} "" // {{{ 1460 1 0 "1561e8c8_acaa_438f_9c7c57a5c196556f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WashCycles"), WashCycles); // }} "" // {{{ 1461 1 0 "7e0a9629_dce6_4ed9_81b854f636408ff0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryCycles"), DryCycles); // }} "" // {{{ 1462 1 0 "dacc3c17_6358_44f0_8ac4ad1fa0ae08b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryTime"), DryTime); // }} "" // {{{ 1463 1 0 "f86b35ff_9db7_4845_a3cfb7d04c520c3d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::SetParameter(ML_STAR, seqGripper, seqWashPosition, seqDryPosition, TransportChannel, WashCycles, DryCycles, DryTime); // }} "" // {{{ 1464 1 0 "ce0a2f35_ae58_4695_85513126a4acb791" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1465 1 0 "da69f49c_299d_435d_9d95dc10f7303ce9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1466 1 0 "bd10bc62_2ace_436a_a68acec8c1f9287b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1467 1 0 "f70b31d7_c863_488a_90c4df10a4677c68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1468 1 0 "3246255f_383b_4742_b7eb17cad21acec0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1469 1 0 "f19bf36e_3e74_4647_bd1c33a627d4634a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1470 1 0 "1aad8d75_d37e_4c4a_9b83799194c716fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Park") { // }} "" // {{{ 1471 1 0 "90471824_8967_4383_a722d29bfaf60113" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1472 1 0 "f6bbc2b1_c86d_4f64_abc12d3b740b1d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1473 1 0 "9341ffae_9e0c_43f9_b3ccedcfbadb07cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1474 1 0 "9e0a230a_fdb5_4eec_9cf3127779adb1d2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::ParkModule(ML_STAR, ModuleID, seqModule); // }} "" // {{{ 1475 1 0 "8aacb0d9_a918_426b_9717bd2febc1f74a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1476 1 0 "15592ad5_5751_4636_8a513ee3f27c7f11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1477 1 0 "6222366b_a5bf_4c73_8685a3cdebb4ff4f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1478 1 0 "1aad8d75_d37e_4c4a_9b83799194c716fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1479 1 0 "f19bf36e_3e74_4647_bd1c33a627d4634a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1480 1 0 "602611db_9ad3_4dbb_aae8e288d8e1c21f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1481 1 0 "a3bcbf9b_35d6_4291_9c4f146afb2924be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Pickup") { // }} "" // {{{ 1482 1 0 "347e06d8_9db7_4279_bf224e9ecf4299e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1483 1 0 "2b0761dc_e201_46b3_a590b52421cd8ee9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1484 1 0 "76631bc5_230e_4e20_87bf493887cddd0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1485 1 0 "2d3aba8b_cc4b_4be1_a83c30695fcf6dbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::PickupModule(ML_STAR, ModuleID, seqModule); // }} "" // {{{ 1486 1 0 "7879f9b5_2eea_4059_8e4bef3213e8decd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1487 1 0 "cb1582a1_3f8c_44fd_910a5f08dbe32b05" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1488 1 0 "a15fc9df_322f_4ce1_83228c63669e6b16" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1489 1 0 "a3bcbf9b_35d6_4291_9c4f146afb2924be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1490 1 0 "602611db_9ad3_4dbb_aae8e288d8e1c21f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1491 1 0 "3bc97044_ccb0_46b1_9516921492be9a5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1492 1 0 "dac7c2f7_1665_4a9c_82959eadd12ab417" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_ExtendedLog") { // }} "" // {{{ 1493 1 0 "d101eee8_9402_428a_aa576d531ed959c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::EnableExtendedLog(); // }} "" // {{{ 1494 1 0 "bc849548_9009_43ec_bb1b6c81c32132f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), 1); // }} "" // {{{ 1495 1 0 "0a496202_0f55_4f40_8b391260caa236ba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, 1, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1496 1 0 "dac7c2f7_1665_4a9c_82959eadd12ab417" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1497 1 0 "3bc97044_ccb0_46b1_9516921492be9a5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1498 1 0 "e397a319_e6cb_4188_b45c6ef45c974fba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1499 1 0 "bffc8683_40d3_4277_ac66bc7d43d675f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_LoadLastConfig") { // }} "" // {{ 1500 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B416552A06404ef48774D74059C2B182 ; err.Clear(); // }} "" // {{{ 1501 1 0 "154ec087_ea2e_4381_bb2e261ffad534f1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationLoad(BluetoothPort, NumWashCycles, NumDryCycles, DryTime); // }} "" // {{ 1502 1 0 "79340e9d_69d5_4911_b4601ae4754a16c4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1503 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B416552A06404ef48774D74059C2B182 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1504 1 0 "46420553_d90f_4dfa_b42c9d86856c288a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1505 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1506 1 0 "54b468e0_3ea0_4e83_9ffae95722c5cb9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BluetoothPort = StrIStr(BluetoothPort); // }} "" // {{{ 1507 1 0 "7bde202f_1c1b_4911_9f600ac6e1a5b57c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" NumWashCycles = StrIStr(NumWashCycles); // }} "" // {{{ 1508 1 0 "c5d427d2_0b0e_4f92_8c5b0b2cbfbfb4d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" NumDryCycles = StrIStr(NumDryCycles); // }} "" // {{{ 1509 1 0 "027378a7_4549_4d3f_b8d33aa4980be4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DryTime = StrIStr(DryTime); // }} "" // {{{ 1510 1 0 "fbda7cdb_3ed9_4a5c_907ce60556e0129b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), 1); // }} "" // {{{ 1511 1 0 "e454face_7eee_4c6e_a61e221c0e5d7fb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, BluetoothPort, NumWashCycles, NumDryCycles, DryTime, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1512 1 0 "bffc8683_40d3_4277_ac66bc7d43d675f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1513 1 0 "e397a319_e6cb_4188_b45c6ef45c974fba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1514 1 0 "dbcfe074_1fad_446d_addaa6c1b41a3a01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1515 1 0 "2bd801dc_3ffb_4b97_9f8af54ebda4fdae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_SaveLastConfig") { // }} "" // {{{ 1516 1 0 "aca4c717_812e_46f9_8eb5989a720adb24" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("BluetoothPort"), BluetoothPort); // }} "" // {{{ 1517 1 0 "1198edc8_1ec9_479d_a4e7fd71ed50cf8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("NumWashCycles"), NumWashCycles); // }} "" // {{{ 1518 1 0 "be958699_818e_43db_a757a67b7b54572a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("NumDryCycles"), NumDryCycles); // }} "" // {{{ 1519 1 0 "8751a2c3_e6ee_43bf_b21f5458aebf179a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryTime"), DryTime); // }} "" // {{ 1520 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_4973F03471994119A9F699CE6459CBFC ; err.Clear(); // }} "" // {{{ 1521 1 0 "1480ff51_54ea_4c38_befa457e23966aca" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationSave(BluetoothPort, NumWashCycles, NumDryCycles, DryTime); // }} "" // {{ 1522 1 0 "0e101f68_bc36_42fe_882a3951ef193f80" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1523 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_4973F03471994119A9F699CE6459CBFC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1524 1 0 "2e180d98_e746_4b84_b623b4d0e8e198fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1525 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1526 1 0 "cb24f9db_18c1_41af_b6f16900826be7be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 1527 1 0 "87c5e5f6_77ee_4519_879fdceaf21c1d7f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1528 1 0 "2bd801dc_3ffb_4b97_9f8af54ebda4fdae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1529 1 0 "dbcfe074_1fad_446d_addaa6c1b41a3a01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1530 1 0 "d30f6a39_499f_4b79_b2bfbdb6bb128b96" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1531 1 0 "25171dbf_33de_42a2_ad9b9d9639b5112a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 1532 1 0 "bdbbc648_a9fa_468f_b5d4d390115575eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1533 1 0 "1a74d7ad_0c35_454c_b161ede32468b2af" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1534 1 0 "c67afa78_dd60_451b_b2e31a2e6540f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1535 1 0 "2424dca1_971a_40f8_97b763c253560a2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1536 1 0 "8def2ba5_b51c_4e0c_b6ebfdd346a5beec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1537 1 0 "684d328d_214e_4955_bfe9ff0627b7f8cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 1538 1 0 "e6ec0fc8_d42c_4413_b2c2719c3cd18dc7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1539 1 0 "6f2273c4_1e1e_46f3_9ea6544d76383266" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1540 1 0 "25171dbf_33de_42a2_ad9b9d9639b5112a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1541 1 0 "d30f6a39_499f_4b79_b2bfbdb6bb128b96" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1542 1 0 "427cf00a_8c98_4fb4_8db6842164909152" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1543 1 0 "d75fbb16_6016_4c73_aecf79ca07dae29d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Terminate") { // }} "" // {{{ 1544 1 0 "b43cf782_b210_48c8_933f4cdfae78d050" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1545 1 0 "efbfd98d_c15d_4ac9_b94250ab4361a8b9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Terminate(ModuleID); // }} "" // {{{ 1546 1 0 "c918ad91_e33e_4f2f_9c6577fd8c93aaf4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1547 1 0 "2021a914_67dd_495e_9a9e4cf4438df298" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1548 1 0 "8d8842cd_e3b4_4397_92ad69593e9f7796" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1549 1 0 "d75fbb16_6016_4c73_aecf79ca07dae29d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1550 1 0 "427cf00a_8c98_4fb4_8db6842164909152" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1551 1 0 "2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1552 1 0 "6aa13f85_d8b8_4a2a_93232eeb15e0a01d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1553 1 0 "5edd27c8_de57_4980_b51d920a4d49d519" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1554 1 0 "e9d4ea17_6e30_44ae_88b03485525c4f92" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Initialize") { // }} "" // {{{ 1555 1 0 "2f9ae938_94b1_43c8_ade094614ef090a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("DeviceName"), DeviceName); // }} "" // {{{ 1556 1 0 "6cf1bcde_fb2a_4296_97b01233bdd9aa87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("AdapterDeviceID"), AdapterDeviceID); // }} "" // {{{ 1557 1 0 "58031a2b_13b4_4278_8e347d343a3bd1d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("NodeName"), NodeName); // }} "" // {{{ 1558 1 0 "20c35752_843f_4adb_904d5d26323821a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1559 1 0 "0b3f2efc_0773_4a25_84493465094ac5e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AlwaysInitialize"), AlwaysInitialize); // }} "" // {{{ 1560 1 0 "6ad8399f_eed7_4e65_98fe7d1432f0736b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Initialize(Label, NodeName, SimulationMode, AlwaysInitialize, o_stepReturn); // }} "" // {{{ 1561 1 0 "3a426d02_40f4_4c1f_b9061d37e5a4cd35" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1562 1 0 "01608cb1_fac5_42cd_bcfdf5fc7359c26d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1563 1 0 "0e3b4229_d57f_445f_a7c9d9140939367f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1564 1 0 "e9d4ea17_6e30_44ae_88b03485525c4f92" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1565 1 0 "5edd27c8_de57_4980_b51d920a4d49d519" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1566 1 0 "48cb330b_8197_439e_974791118048b53e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1567 1 0 "cc879722_4e99_410c_a8454d136f6aae6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Centrifuge") { // }} "" // {{{ 1568 1 0 "efe031a0_7aa0_4846_bf8969fbd7906970" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1569 1 0 "5965cb4a_0190_415d_862b773944074e57" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("CloseCoverAtEnd"), CloseCoverAtEnd); // }} "" // {{{ 1570 1 0 "1f94f31f_0ef0_403b_bda3b50c2fd9c38b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PresentPosition"), intPresentPosition); // }} "" // {{{ 1571 1 0 "dde8e447_4774_45bf_a244c5fab4041838" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Direction"), Direction); // }} "" // {{{ 1572 1 0 "cf0fab96_e65f_4e8a_85a809800b192075" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArraySpeed"), ArrSpeed); // }} "" // {{{ 1573 1 0 "0ca69f46_9c96_402e_9b1587ced7bff5c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArrayAcceleration"), ArrAcceleration); // }} "" // {{{ 1574 1 0 "d37afa07_2508_484d_81b6f153e1aa28ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArrayDuration"), ArrDuration); // }} "" // {{{ 1575 1 0 "6f8e9cca_35cb_4393_9f845b2135e8c2d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Deceleration"), Deceleration); // }} "" // {{{ 1576 1 0 "42d02aa8_5a1f_4144_b475d634885c1d4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrDuration, Translate(","), i_ArrDuration, 0); // }} "" // {{{ 1577 1 0 "252eacff_1b04_4607_9403f7ebc9935d0a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrSpeed, Translate(","), i_ArrSpeed, 0); // }} "" // {{{ 1578 1 0 "e1de1f59_a4b3_4220_a987c7e8e67e82c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrAcceleration, Translate(","), i_ArrAcceleration, 0); // }} "" // {{{ 1579 1 0 "085cc0ce_663a_4e79_8bf732421e2f56a9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrAcceleration, i_ArrAcceleration); // }} "" // {{{ 1580 1 0 "5f942567_121a_417c_be3e2449c5473b40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrSpeed, i_ArrSpeed); // }} "" // {{{ 1581 1 0 "f88bd247_c7e5_4823_bd5e37605974f825" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrDuration, i_ArrDuration); // }} "" // {{{ 1582 1 0 "82e32803_a688_4f29_8a1c94dead53e48e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Centrifuge(Label, CloseCoverAtEnd, intPresentPosition, Direction, i_ArrSpeed, i_ArrAcceleration, i_ArrDuration, Deceleration, o_stepReturn); // }} "" // {{{ 1583 1 0 "6541fb1d_df0a_4f0c_8474d211e4e4721a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1584 1 0 "ca37a7ce_edb5_4864_90dffb84cbb93071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1585 1 0 "54bf0b61_3ff3_4e00_8d35d876bfec98bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1586 1 0 "cc879722_4e99_410c_a8454d136f6aae6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1587 1 0 "48cb330b_8197_439e_974791118048b53e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1588 1 0 "ad0b08d4_17f2_49d0_a67860ea51423835" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1589 1 0 "5d8f135c_f0e2_4460_861984fe9a7fa710" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_GetStatus") { // }} "" // {{{ 1590 1 0 "1be02a3f_6880_42b3_b612e480fcd7e403" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1591 1 0 "5dcbef58_09da_4530_afb23e072fe81806" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_GetRotationStatus(Label, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, o_stepReturn); // }} "" // {{{ 1592 1 0 "07344966_2aca_47d5_94006574d009ab21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1593 1 0 "47572e7c_3ab2_48e3_be4d5f024ede7c41" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, Translate(""), id); // }} "" // {{ 1594 1 0 "5d8f135c_f0e2_4460_861984fe9a7fa710" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1595 1 0 "ad0b08d4_17f2_49d0_a67860ea51423835" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1596 1 0 "cd7ca6de_07b8_4d48_875925ee71386e46" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1597 1 0 "2acb9ae8_850a_4120_a212cb2a4a6200bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Open") { // }} "" // {{{ 1598 1 0 "6a9181eb_a95e_4e7b_a8df77f39d3519e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1599 1 0 "6f785fb2_5cc2_4924_b9e514e193d96143" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverOpen(Label, o_stepReturn); // }} "" // {{{ 1600 1 0 "d7ac8b69_b503_4f26_81756b6dc894d246" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1601 1 0 "d707b09f_2dc6_4b2f_9fdb84c07c07f2b2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1602 1 0 "2acb9ae8_850a_4120_a212cb2a4a6200bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1603 1 0 "cd7ca6de_07b8_4d48_875925ee71386e46" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1604 1 0 "0d7255ee_b967_4693_8d7375d684b4747f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1605 1 0 "10b7afeb_e804_457e_88b935a2b48a71c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Close") { // }} "" // {{{ 1606 1 0 "dbed33cf_5e9c_4102_b254b161284b15e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1607 1 0 "f7647d6b_38bb_4d38_895246f5ac76fe59" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverClose(Label, o_stepReturn); // }} "" // {{{ 1608 1 0 "77bb0b57_a308_455c_baabf680266f4336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1609 1 0 "0c3dee9e_33f9_4f79_99400f9368f6da14" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1610 1 0 "10b7afeb_e804_457e_88b935a2b48a71c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1611 1 0 "0d7255ee_b967_4693_8d7375d684b4747f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1612 1 0 "4dcf2947_ad5a_47e8_8c8214244ffcb3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1613 1 0 "81386c58_3b5a_4743_9453eb6a117234ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Start") { // }} "" // {{{ 1614 1 0 "44af1318_1d60_4a35_a5714accdc0c242a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1615 1 0 "25c1c841_9dea_4404_afbc9b3efc307343" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Direction"), Direction); // }} "" // {{{ 1616 1 0 "d5af29b3_1f52_48d0_be771ca87547a6c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Speed"), Speed); // }} "" // {{{ 1617 1 0 "0615f300_6c08_4978_beb5ebd0c96a686e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Acceleration"), Acceleration); // }} "" // {{{ 1618 1 0 "8f4f8eba_1777_4696_b1185b776105f4e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MaxRunTime"), MaxRunTime); // }} "" // {{{ 1619 1 0 "6d0a342b_4d08_47ec_81979a6bcb184434" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StartCentrifuge(Label, Direction, Speed, Acceleration, MaxRunTime, o_stepReturn); // }} "" // {{{ 1620 1 0 "562e3df1_ee9e_4ef5_a70c4247d08e453f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1621 1 0 "d3624dd6_4de0_4827_b501bde2ca9e3d5a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1622 1 0 "81386c58_3b5a_4743_9453eb6a117234ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1623 1 0 "4dcf2947_ad5a_47e8_8c8214244ffcb3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1624 1 0 "e9168cf2_c9e7_40a5_a52e0b9ad08f1fed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1625 1 0 "225ad45c_32fa_4f7d_af063f5ce1ab907c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Stop") { // }} "" // {{{ 1626 1 0 "e5891eba_60d8_49f6_af7be2af0aef66a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1627 1 0 "4008af1e_863b_4a5a_9b4b33d547b6fd7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Decelleration"), Decelleration); // }} "" // {{{ 1628 1 0 "667c83ad_57d3_4ce9_a2dca9287fb97d7e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StopCentrifuge(Label, Decelleration, o_stepReturn); // }} "" // {{{ 1629 1 0 "43ffc328_4600_41cb_a084d56b006fee8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1630 1 0 "263c82c5_d2f1_463f_b2f102d150ca0a0f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1631 1 0 "225ad45c_32fa_4f7d_af063f5ce1ab907c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1632 1 0 "e9168cf2_c9e7_40a5_a52e0b9ad08f1fed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1633 1 0 "551d8e94_670b_4472_b73600d28f237682" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1634 1 0 "bd20d1b8_d440_4b6f_9041a5b536904a0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Terminate") { // }} "" // {{{ 1635 1 0 "1e54be13_32c5_43bd_bcea8da753eedd90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1636 1 0 "c884c5b1_cb4e_4d38_907361a00b32d3f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Terminate(Label, o_stepReturn); // }} "" // {{{ 1637 1 0 "fa01d6ec_8920_4fd7_adbc2f6f4f106df5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1638 1 0 "1664cc0f_d416_47d5_aa13970ade2397b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1639 1 0 "bd20d1b8_d440_4b6f_9041a5b536904a0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1640 1 0 "551d8e94_670b_4472_b73600d28f237682" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1641 1 0 "6aa13f85_d8b8_4a2a_93232eeb15e0a01d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1642 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1643 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Initialize") { // }} "" // {{{ 1644 1 0 "5efffd73_f295_4d3c_aacd37c74d2bc015" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ComPort"), Comport); // }} "" // {{{ 1645 1 0 "cc8f22a1_0ae7_40ee_82d2e071b7344cf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn); // }} "" // {{{ 1646 1 0 "b6f33534_c173_4c6c_820d96a48fa50a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Barcode initialize:"), o_stepReturn); // }} "" // {{{ 1647 1 0 "138ad752_fbd8_457e_948dd436ddb65822" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1648 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1649 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Read") { // }} "" // {{{ 1650 1 0 "0b3c261e_a906_4464_b0e5caa3ec640056" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Read(barcode); // }} "" // {{{ 1651 1 0 "98aadc47_a5a2_433d_84530ad050155ccd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("BarcodeReader_Read"), barcode); // }} "" // {{{ 1652 1 0 "e3fc85ee_a6d7_4d98_a3f9076b947565cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, barcode, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1653 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1654 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1655 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1656 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1657 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_BeginMonitoring") { // }} "" // {{{ 1658 1 0 "7dd862dc_f7f1_4600_94ca9b83762673dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1659 1 0 "d37d14e5_261f_418c_81f754eb75bf4920" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingToleranceRange"), shakingToleranceRange); // }} "" // {{{ 1660 1 0 "0919ceb3_189a_4885_93c8faeab9f9538b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sampleInterval"), sampleInterval); // }} "" // {{{ 1661 1 0 "bc3a749e_e1bb_4c4a_9aac06834d85080f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("action"), action); // }} "" // {{ 1662 1 0 "98795c5d_e3e5_4d8c_bba032968c530136" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1663 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ; err.Clear(); // }} "" // {{{ 1664 1 0 "a2a0a3bb_c0cf_4123_afe36d1d51ae233c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action); // }} "" // {{ 1665 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3202FD4CC34D478f892F31C7684340BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1666 1 0 "435e7414_9170_4bf9_bd0ac83f0ab51fad" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1667 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1668 1 0 "c00b8635_652d_48ca_8d345ed070306b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1669 1 0 "85ac1487_5644_4bae_b032f5c191aa47c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1670 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1671 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1672 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1673 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateStarDevice") { // }} "" // {{{ 1674 1 0 "4c3dfdd2_2dd6_4c5f_831f92590c13e82e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1675 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ; err.Clear(); // }} "" // {{{ 1676 1 0 "cc3d4234_12d6_486a_a110c8ede0e3059b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber); // }} "" // {{ 1677 1 0 "f17e82ff_88ef_4685_bf6f75a8ca0e32f6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1678 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1679 1 0 "c0256452_8d47_4f97_9e9c2250a44934d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1680 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1681 1 0 "7699b24c_5ec6_4cca_b1cb9aed9ce60247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1682 1 0 "85155966_9554_40cb_9693f9b0a11b25a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1683 1 0 "d049e779_0761_471d_9f7b8af0967d1633" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1684 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1685 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1686 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1687 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateUSBDevice") { // }} "" // {{{ 1688 1 0 "72f0a762_2550_45ad_bea063f4f72a9fe9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1689 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ; err.Clear(); // }} "" // {{{ 1690 1 0 "6957e247_4f64_4971_8d90658c99adbb87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber); // }} "" // {{{ 1691 1 0 "34cc8f4a_c310_4eb7_b936c63f8401c523" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1692 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_98100824AA704d26AB40A6BADEF39F48 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1693 1 0 "058f8bb4_5fe3_4a6b_a36e899c2a89656f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1694 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1695 1 0 "a9b4c19d_dcc0_42d7_9a51e3241ef647f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return:"), o_stepReturn); // }} "" // {{{ 1696 1 0 "d303212f_1f38_442d_a24eee709cf4cdc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1697 1 0 "7356ec1e_8437_4679_94613ac2bea4fe0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1698 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1699 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1700 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1701 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_EndMonitoring") { // }} "" // {{{ 1702 1 0 "4293ef15_cfcd_4e29_b9b02afae2d471f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1703 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ; err.Clear(); // }} "" // {{{ 1704 1 0 "dd7d7b00_1e95_4e45_97a425f03a18ab04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult); // }} "" // {{{ 1705 1 0 "0021495f_472e_4321_9d1e81e8fbd43f0c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1706 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1707 1 0 "aabeb82e_70d9_42f7_901f3fe114094e0a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1708 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1709 1 0 "ce89bf49_b865_4c3f_a97eba220b5a7d33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS End Monitoring step return:"), o_stepReturn); // }} "" // {{{ 1710 1 0 "05229af2_f20a_42ce_908ec8445f3f9dd2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(""), Translate(""), id); // }} "" // {{ 1711 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1712 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1713 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1714 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetFirmwareVersion") { // }} "" // {{{ 1715 1 0 "942a1cc2_d956_47fa_9a9ffed1e856a632" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1716 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ; err.Clear(); // }} "" // {{ 1717 1 0 "f6b3cc8e_f852_4a96_9567a4fa67e846e8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1718 1 0 "c70f5e07_0eeb_45e5_af26714895e2df88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion); // }} "" // {{ 1719 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1720 1 0 "96886e69_ba07_45e3_96353112dc429afc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1721 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1722 1 0 "7de3b86c_c16d_4932_beedfb948b5d85f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(""), Translate(""), id); // }} "" // {{ 1723 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1724 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1725 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1726 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetSerialNumber") { // }} "" // {{{ 1727 1 0 "38b7d0d7_7cce_4157_8abc70dfb62eefa5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1728 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ; err.Clear(); // }} "" // {{ 1729 1 0 "08061228_63f2_47d2_a601ba16d6a1a142" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1730 1 0 "0bbfb488_9723_4a08_9b90171dbec6117a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber); // }} "" // {{ 1731 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2434A44DB44B48ff82A9F66DE34C5041 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1732 1 0 "4cf5e7f7_9567_4e6b_a206bf6f8962c785" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1733 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1734 1 0 "311e5a04_1ac3_443c_bdc51c5cdc4c44f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(""), Translate(""), id); // }} "" // {{ 1735 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1736 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1737 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1738 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerParameter") { // }} "" // {{{ 1739 1 0 "f3888a0b_86ea_4c4a_891e1755a6e78556" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1740 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ; err.Clear(); // }} "" // {{ 1741 1 0 "693cec94_9d14_4bff_8e4868a3b27f0245" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1742 1 0 "e993ed67_92ed_4c85_bd33f90aac53dfb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3); // }} "" // {{ 1743 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1744 1 0 "bd4bffe6_9161_4f42_b0b53307549f4286" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1745 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1746 1 0 "6efd49bf_48c7_437b_8fee57487345eaee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1747 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1748 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1749 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1750 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerSpeed") { // }} "" // {{{ 1751 1 0 "e1c29a26_0656_46e3_b0a412143047bd26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1752 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ; err.Clear(); // }} "" // {{{ 1753 1 0 "c0166b97_c0ae_417b_85c90c5ef42e5fc6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2); // }} "" // {{{ 1754 1 0 "73777071_2fd2_42b0_a7545c6a6a372194" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1755 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1756 1 0 "fb8e630b_9519_4b3d_94eabf1311546383" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1757 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1758 1 0 "41ba2513_e3c2_485c_821198419c3fe286" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1759 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1760 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1761 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1762 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTempParameter") { // }} "" // {{{ 1763 1 0 "09fb30ea_33e9_486d_96945af4798859ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1764 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ; err.Clear(); // }} "" // {{ 1765 1 0 "7e342beb_ebbe_4873_bf53c50f29cbaa0e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1766 1 0 "c8f45788_ef99_414d_a41d29a20583a067" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 1767 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C16E1CF8298042f0A01D1040DC911015 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1768 1 0 "b845f534_5a22_4076_b36069f70af90742" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1769 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1770 1 0 "4793211e_93d2_43e6_b4d25d7e0ae3e104" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 1771 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1772 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1773 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1774 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperature") { // }} "" // {{{ 1775 1 0 "01d1add6_c167_4137_8f0c285cd6ad9bed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1776 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ; err.Clear(); // }} "" // {{{ 1777 1 0 "ecd6d069_96d7_4a72_9ffc0df77e7a1512" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2); // }} "" // {{{ 1778 1 0 "b05c868f_c25f_47a9_b533b13ab05fc962" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1779 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_14A2AAD200434d69970AC483BD08B64F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1780 1 0 "cabbe1ee_c5d4_49dd_90875673900d6120" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1781 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1782 1 0 "234847f1_2f0a_4e64_856b9edefcebb425" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1783 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1784 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1785 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1786 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperatureState") { // }} "" // {{{ 1787 1 0 "82a233ab_0392_4ebb_9a809d80aae38e44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1788 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ; err.Clear(); // }} "" // {{{ 1789 1 0 "c99aa2b7_d8a6_4cee_a1fa1d731ef77d25" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2); // }} "" // {{{ 1790 1 0 "f2861b4d_28d2_4ee3_8b7c7763312067ab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1791 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_50485390A50647818ED2D3934FBC87E3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1792 1 0 "f56ee559_1221_4f5a_ad332d0e44502aff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1793 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1794 1 0 "31a69f44_1a59_49ce_a78763f3aa936042" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1795 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1796 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1797 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1798 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SendFirmwareCommand") { // }} "" // {{{ 1799 1 0 "11546c32_6ddd_4250_9b8750c9679e5b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1800 1 0 "06688598_f10e_41e9_8a2c6d3dff7b7aae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), command); // }} "" // {{{ 1801 1 0 "15a58509_ec93_4677_b1858cadeac42d10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("parameter"), parameter); // }} "" // {{ 1802 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ; err.Clear(); // }} "" // {{{ 1803 1 0 "a650efc1_423b_4f75_9f0da083ee44ae9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter); // }} "" // {{{ 1804 1 0 "e1ef0806_8a47_46c1_972c9ed9e299eaad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1805 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_84EE5E4228B140f599748D1271CBB0F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1806 1 0 "c9bd9645_5a05_4cc6_95997f787c8772d6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1807 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1808 1 0 "8b5634c2_e1da_41d3_83c57142f4cae999" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1809 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1810 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1811 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1812 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetPlateLock") { // }} "" // {{{ 1813 1 0 "927ddf67_5dbd_432b_b8cf6117a3109b06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1814 1 0 "a3eee1ac_7024_473b_a6eb8a2e9b461a66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("plateLock"), plateLock); // }} "" // {{ 1815 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ; err.Clear(); // }} "" // {{{ 1816 1 0 "b417b8ce_5117_450e_93a9a6243c6011d8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock); // }} "" // {{{ 1817 1 0 "ed43cecb_7012_4fb9_a89d129de09bdadb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1818 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1819 1 0 "4eb95522_37fd_4802_af85a620dc874526" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1820 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1821 1 0 "945560ed_40bf_44a9_851fead4c1943f9f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1822 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1823 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1824 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1825 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetShakerParameter") { // }} "" // {{{ 1826 1 0 "8a0e14c1_f6c6_4fb8_94094498cccd7991" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1827 1 0 "1810a83f_3fc2_4c49_9d5502fbdfc743e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingDirection"), shakingDirection); // }} "" // {{{ 1828 1 0 "c3053579_8645_474f_8c05459eed975362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingAccRamp"), shakingAccRamp); // }} "" // {{ 1829 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ; err.Clear(); // }} "" // {{ 1830 1 0 "32b90a07_0607_448d_9767de1d96e31862" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1831 1 0 "77463ac5_e629_4772_98004edef4016a6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp); // }} "" // {{ 1832 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1833 1 0 "5593fd2a_c1e7_4565_bcae82458768dd51" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1834 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1835 1 0 "5ed72ec4_1b60_4258_969b44c995450ec1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1836 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1837 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1838 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1839 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetSimulation") { // }} "" // {{{ 1840 1 0 "941f9e19_ca94_4ede_9719205aeb876593" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{ 1841 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ; err.Clear(); // }} "" // {{ 1842 1 0 "f56567fc_04c1_4645_aee22aa5f22a9f8c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1843 1 0 "41b0c1a2_60aa_4f16_8901c300e9a3dc14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetSimulation(simulate); // }} "" // {{ 1844 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1845 1 0 "35803a11_c620_485a_8196cc2822dddb3f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1846 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1847 1 0 "2e7a9d5f_51df_4c49_bb1986da7e14cd48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1848 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1849 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1850 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1851 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetTempParameter") { // }} "" // {{{ 1852 1 0 "99447b6e_9293_483d_bbd7ddee96870904" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1853 1 0 "f55d7581_a005_45e4_9b3d7f7473323e6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("startTimeout"), startTimeout); // }} "" // {{{ 1854 1 0 "7192db12_8543_4c8b_81b98b57ce21118d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("toleranceRange"), toleranceRange); // }} "" // {{{ 1855 1 0 "8f6d922f_f2ae_43c6_8682df15e6b7c07c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("securityRange"), securityRange); // }} "" // {{ 1856 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ; err.Clear(); // }} "" // {{ 1857 1 0 "a2342046_552f_4003_a1cc262161964a6e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1858 1 0 "57eb738a_6eb2_4f04_b25bd7f7f64a8179" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange); // }} "" // {{ 1859 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1860 1 0 "94c928dd_6dcb_4540_a6cbfdf48e37430c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1861 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1862 1 0 "90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1863 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1864 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1865 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1866 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetUSBTrace") { // }} "" // {{{ 1867 1 0 "0691ecbd_49b4_4590_91d60e614290ec34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("trace"), intTrace); // }} "" // {{ 1868 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ; err.Clear(); // }} "" // {{ 1869 1 0 "aeed4685_8812_4dce_89e2c35429d4c401" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1870 1 0 "24723a79_741b_46be_830fe654c08d6d1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetUSBTrace(intTrace); // }} "" // {{ 1871 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FE6D15E135D24fd7A06908E89474B650 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1872 1 0 "32d09876_dcdb_4d67_b5e72a63e14fec19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1873 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1874 1 0 "cda0d06f_dce0_47ad_bbb419c58aba260e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1875 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1876 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1877 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1878 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShaker") { // }} "" // {{{ 1879 1 0 "503e1c47_5f15_42bd_8eaad1057de68ef6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1880 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ; err.Clear(); // }} "" // {{{ 1881 1 0 "73be1c30_4bfe_4a0f_aa560c8df5b091fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartAllShaker(shakingSpeed); // }} "" // {{{ 1882 1 0 "39ac643d_0305_4ec6_87fc196efe3d76f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1883 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1884 1 0 "c35cdd37_7a73_4008_b9d0ac550c926428" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1885 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1886 1 0 "ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1887 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1888 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1889 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1890 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShakerTimed") { // }} "" // {{{ 1891 1 0 "db6b6c2e_da48_4c64_bdddc80ba5a28921" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1892 1 0 "f6f42906_5ded_4a05_8f9a11fac18f7f10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1893 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ; err.Clear(); // }} "" // {{{ 1894 1 0 "272104de_2e64_4a32_a88407b030437361" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime); // }} "" // {{{ 1895 1 0 "1362f66b_0efd_4eb5_935e84586a427637" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1896 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1897 1 0 "ef7c31f9_e307_450a_851111f26afd2e91" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1898 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1899 1 0 "d73f1476_bf95_4d48_89849f295a9e4d0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1900 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1901 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1902 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1903 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShaker") { // }} "" // {{{ 1904 1 0 "f958f5a5_d1c5_4e9e_9262e708f24940c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1905 1 0 "2ce1189b_e54a_48c0_aafc2932409c0b9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1906 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ; err.Clear(); // }} "" // {{{ 1907 1 0 "cf1b40c4_5e9a_48bf_9390f6eab212315f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed); // }} "" // {{{ 1908 1 0 "2e7a5304_5ce9_4afb_93a4a8276dc86d74" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1909 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1910 1 0 "9b93a06b_e4df_4eca_84467ca6c7f0c0ce" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1911 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1912 1 0 "4b0b48f9_3855_4eab_8f22b0902846d750" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1913 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1914 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1915 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1916 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShakerTimed") { // }} "" // {{{ 1917 1 0 "858c7861_9fb0_490e_9646b9eb190706d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1918 1 0 "327bd0c6_60a8_4fd1_9ef81e2a21d904a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1919 1 0 "83a6d58d_c761_484f_871c9c2229a6d3d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1920 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ; err.Clear(); // }} "" // {{{ 1921 1 0 "4b29337f_c67c_4ecf_a205f4b70e60271a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); // }} "" // {{{ 1922 1 0 "40aad8b7_f42e_4ad1_b0f0c033ec666548" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1923 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_29447729262E4e0f8B347F6640716D96 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1924 1 0 "f383d799_1d15_4348_8a2dc84422f46ff2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1925 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1926 1 0 "f539df09_de1d_4fd8_9ac041897fab0333" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1927 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1928 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1929 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1930 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartTempCtrl") { // }} "" // {{{ 1931 1 0 "dc338e01_6b43_4fe3_bda98d2b0a1a65e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1932 1 0 "04239a09_93a5_4f75_80f95d178bdf9cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("temperature"), temperature); // }} "" // {{{ 1933 1 0 "0387745b_87be_4ec6_912b0b4decaa257b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("waitForTempReached"), waitForTempReached); // }} "" // {{ 1934 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ; err.Clear(); // }} "" // {{{ 1935 1 0 "dfb61f9c_103b_4c42_83e0779ea05cb180" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached); // }} "" // {{{ 1936 1 0 "e4829da3_d8b6_453f_a2be82213303e9f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1937 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_764F491C76DA445383E5490AB126ADB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1938 1 0 "21dd8d34_e764_4a0f_b34ccecf089437dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1939 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1940 1 0 "bfde731d_b581_4488_b4cb7f4873675d7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1941 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1942 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1943 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1944 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopAllShaker") { // }} "" // {{ 1945 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ; err.Clear(); // }} "" // {{{ 1946 1 0 "ee3103a2_d7f3_488f_b7a95e2f2b56770a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{{ 1947 1 0 "a782313c_e15b_4340_bdda314f926e24cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1948 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1949 1 0 "45d1f212_46b9_4976_83503edf5606c88e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1950 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1951 1 0 "5706daca_363f_417f_9103f7ddd16c1444" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1952 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1953 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1954 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1955 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopShaker") { // }} "" // {{{ 1956 1 0 "1cdead0d_9944_446b_bd59d491b15242b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1957 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ; err.Clear(); // }} "" // {{{ 1958 1 0 "b5ecca33_fef4_4c14_9cf702c924839607" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StopShaker(deviceNumber); // }} "" // {{{ 1959 1 0 "49e72e72_8e49_49fd_8d212a6ccff1d2fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1960 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1961 1 0 "1fe83710_037b_4157_82a99e6aaf08edcb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1962 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1963 1 0 "6ffd1f39_ec63_4f9c_a7687447aff79f80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1964 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1965 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1966 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1967 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopTempCtrl") { // }} "" // {{{ 1968 1 0 "b16ab946_2ba9_4900_bd6f9ede31edf6ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1969 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B5957B02990845739642D8C604B0B582 ; err.Clear(); // }} "" // {{{ 1970 1 0 "d186dde8_c684_4550_a023d9023ff021d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StopTempCtrl(deviceNumber); // }} "" // {{{ 1971 1 0 "af12e4a9_cc0f_4a82_b9593d2b489756a8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1972 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B5957B02990845739642D8C604B0B582 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1973 1 0 "28b1d8d1_83cc_4627_9146c7398c601938" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1974 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1975 1 0 "11f3231a_40df_4c14_92585ab8016165e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1976 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1977 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1978 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1979 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_Terminate") { // }} "" // {{ 1980 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ; err.Clear(); // }} "" // {{ 1981 1 0 "b1da178c_1267_4c8c_b1cd24bfa10a11fb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1982 1 0 "910932e3_2b76_41cf_9dccecb799f2d649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::Terminate(); // }} "" // {{ 1983 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_919FCF7F89804c398972DAFE2605D286 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1984 1 0 "697e84e2_525e_4045_83bb3825b36f6b2f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1985 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1986 1 0 "4edde3c1_4f65_4403_a54985d84f6d80f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1987 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1988 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1989 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1990 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForShaker") { // }} "" // {{{ 1991 1 0 "87872be5_4e84_4b7b_98a3e7147a66f6a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1992 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ; err.Clear(); // }} "" // {{{ 1993 1 0 "3b2abeec_38f4_46a6_a30b0d0126280ebc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::WaitForShaker(deviceNumber); // }} "" // {{{ 1994 1 0 "c4e94e42_8405_438b_921cfe4ba73e9976" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1995 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1996 1 0 "c08ab14c_3879_4f65_ad7085e45f74a6df" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1997 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1998 1 0 "96b99051_5c80_421c_a02e0bd238da1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1999 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2000 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2001 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2002 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForTempCtrl") { // }} "" // {{{ 2003 1 0 "881e7d69_50e3_4e42_89eafece562ac009" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 2004 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ; err.Clear(); // }} "" // {{{ 2005 1 0 "5aa60a5a_db92_42e0_b3277a41cacb5336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber); // }} "" // {{{ 2006 1 0 "49cd8e9e_91bd_468c_aec57e3af40280fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 2007 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_088C7630997A4749A400740DA66CBA0C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2008 1 0 "de7dad67_0b6c_47eb_af5a68302431ff1e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2009 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2010 1 0 "aeb529e0_2eaf_4686_9528342b58318a5d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2011 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2012 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2013 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2014 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2015 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2016 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "CORE96WashEmpty") { // }} "" // {{{ 2017 1 0 "88f95bdd_c2c5_4856_91e5f47f7431bdaf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("refillAfterEmpty"), refillAfterEmpty); // }} "" // {{{ 2018 1 0 "d7a05a26_0b59_478a_a85f308173caf693" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1WashLiquid"), chamber1WashLiquid); // }} "" // {{{ 2019 1 0 "8b1bd108_2b5a_4a2d_ace7b87920eae1b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1LiquidChange"), chamber1LiquidChange); // }} "" // {{{ 2020 1 0 "d651fbf5_a4b8_490b_b869269338ccfcfa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2WashLiquid"), chamber2WashLiquid); // }} "" // {{{ 2021 1 0 "79b1a205_d988_4171_9e1fb28ba362329b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2LiquidChange"), chamber2LiquidChange); // }} "" // {{ 2022 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ; err.Clear(); // }} "" // {{ 2023 1 0 "3fc645b3_f504_4b5e_93481425adf459b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2024 1 0 "123d7b87_745f_4511_a797d08711d13361" "ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}" { variable arrRetValues[]; arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3("123d7b87_745f_4511_a797d08711d13361"); // Head96EmptyWasher } // }} "" // {{ 2025 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EE8804FCDC214a06935DD0F4830020DB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2026 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 2027 1 0 "d3d07dad_de12_4d0c_bd96c7caa06ff3ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 2028 1 0 "84732f19_85e4_4b22_8e617b5e1c91f73c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Washer Return: "), o_stepReturn); // }} "" // {{{ 2029 1 0 "dde0a413_b493_4b17_94990d1d5f2e2b2e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2030 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2031 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2032 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2033 1 0 "1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONFromServer); // }} "" // {{ 2034 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2035 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "end") { // }} "" // {{{ 2036 1 0 "6db67a5a_6aa2_4087_875823acfff0fac4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Good Bye!")); // }} "" // {{ 2037 1 0 "4c7e40d6_02a6_451d_b28230ec71e40ce1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2038 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2039 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2040 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2041 1 0 "6fb90145_24c3_46ba_88b839e0215d0bf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{ 2 "AutoExitBlock" "" STAR_OEM_TOOLKIT::_ExitLibrary(); STAR_OEM_TOOLKIT_PH::_ExitLibrary(); STAR_OEM_TOOLKIT_CENTRIFUGE::_ExitLibrary(); STAR_OEM_TOOLKIT_MPE::_ExitLibrary(); HAMILTON_PH_MODULE_CONTROLLER::_ExitLibrary(); // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=stefa$$valid=0$$time=2023-05-14 14:31$$checksum=726c0442$$length=082$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx2A1D.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" private function ArrayToString( variable & i_array[], variable & o_str ) void ; private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ; private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ; private function ConvertHSSErrCode( variable hssErrCode ) variable ; private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ; private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void ; function SendTextMessageToServer( variable str ) void ; private function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; private function waitForGUItoContinue( ) variable ; function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 2206 1 0 "c8aa765a_4840_468a_9e928b44fa79d891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{{ 5 "OnAbort" "End" } // }} "" // {{{ 5 "SendTextMessageToServer" "Begin" function SendTextMessageToServer( variable str ) void { // }} "" private object objJSONObject; private variable strJSON; // {{ 5 "SendTextMessageToServer" "InitLocals" // }} "" // {{{ 2166 1 0 "9d5f9d4a_c104_4b47_964b6d97f981a71e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONObject); // }} "" // {{{ 2167 1 0 "d0a04705_1adc_4919_b95168834c89f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("command"), Translate("message")); // }} "" // {{{ 2168 1 0 "7b9a6cd1_3eee_4085_b3f9548e43fc3424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("text"), str); // }} "" // {{{ 2169 1 0 "6a1c53cf_65ea_4f53_aa2e9111890fecf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONObject, strJSON); // }} "" // {{{ 2170 1 0 "bee8c148_b3ea_490b_8d93d8ed5f24939f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONObject); // }} "" // {{{ 2171 1 0 "b965a2fd_f821_4400_b4c777f558ed0772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendTextMessageToServer" "End" } // }} "" // {{{ 5 "waitForGUItoContinue" "Begin" private function waitForGUItoContinue( ) variable { // }} "" private variable loopCounter1; private variable serverResponse; private timer timer1; // {{ 5 "waitForGUItoContinue" "InitLocals" // }} "" // {{ 2187 1 0 "73328607_d06a_4d7d_8a5df64da06a1bde" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" serverResponse = Translate(""); // }} "" // {{{ 2188 1 0 "2342f8b3_4765_4edc_9fb9f46cbb1fd20b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Waiting for server instructions...")); // }} "" // {{{ 2189 1 0 "216e1039_788e_4830_8588933e6c542ba1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Waiting for server instructions...."), Translate("")); // }} "" // {{ 2190 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounter1 = 0; while (1 == 1) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2191 1 0 "5f15547c_3178_4f78_b5fea96f6a1c563b" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.1) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2192 1 0 "cd67277b_4386_4862_8429008a00601693" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 2193 1 0 "6ec592d0_fe02_41a9_8503db5ccf0e5544" "{C1F3C015-47B3-4514-9407-AC2E65043419}" serverResponse = HSLHttp::HttpGET(objHttp, Translate("http://localhost:3221"), Translate("")); // }} "" // {{ 2194 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (serverResponse != "") { // }} "" // {{ 2195 1 0 "b1e2e308_ee78_46d0_8a6832649536045e" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2196 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2197 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 == 300) { // }} "" // {{ 2198 1 0 "19e5c8f7_a1a9_4348_aa41a572942db630" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2199 1 0 "6be46368_bb3e_4ad8_82647d6f52af8c9b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2200 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2201 1 0 "8951a436_faf4_45df_a268dbb7ddb58c29" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.9) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2202 1 0 "52bb524e_27b1_4bbe_afcf26453d9eb66f" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2203 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2204 1 0 "809789b0_bd70_4c1f_b0d808ce120b1d99" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (serverResponse); // }} "" // {{{ 5 "waitForGUItoContinue" "End" } // }} "" // {{{ 5 "SendStepReturnToServer" "Begin" private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer" "InitLocals" // }} "" // {{{ 2137 1 0 "2520bd9f_739d_4111_a27d89f8f73ec39e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2138 1 0 "aa6010ec_0628_49d5_a87e016b4a4fc7f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 2139 1 0 "a97c5efa_0ce4_4358_9c51c1893f526b9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 2140 1 0 "deceb871_e830_4b14_86e626f745ef083a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 2141 1 0 "00afb5c2_b5db_4458_866a13b6cb332b68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 2142 1 0 "e52bbd02_b31d_4278_a0f45991eab77d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 2143 1 0 "19f99698_3777_4dcf_9fc765c3f221df4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 2144 1 0 "329f8b9b_0798_44f8_9ee6b65ec58b0c44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2145 1 0 "7728ac0d_8630_4f61_94af076392758ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2146 1 0 "70d261f2_edc4_49a0_a5a074cd5ab92b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2147 1 0 "ee0dd62d_582f_4171_b08e37f6106d9b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer" "End" } // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "Begin" private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void { // }} "" private variable n; private variable loopCounter1; private variable strSinglePosition; private variable arrayOfPositions[]; private variable arraySinglePosition[]; private variable labwareID; private variable positionID; // {{ 5 "BuildTempSequenceFromPositions" "InitLocals" { sequence __temp; o_seq = __temp; } // }} "" // {{ 2079 1 0 "d9022e13_e502_4969_a8ee79484e990801" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arrayOfPositions.SetSize(0); // }} "" // {{{ 2080 1 0 "3e178082_8579_435f_a5db4481bb789d9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strPositions, Translate(";"), arrayOfPositions, 0); // }} "" // {{ 2081 1 0 "5d735f26_db1b_4bea_9ee405f4167bb99f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" n=arrayOfPositions.GetSize(); // }} "" // {{{ 2082 1 0 "f497f24b_fd39_417d_8703c0d54662309f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq); // }} "" // {{ 2083 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2084 1 0 "fd645546_0433_46a0_8619026e338529fd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arraySinglePosition.SetSize(0); // }} "" // {{ 2085 1 0 "91aeb0c4_3176_4356_a19a1027bcdb0af3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1); // }} "" // {{{ 2086 1 0 "c2b42369_7829_4c62_b58880fce7867995" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strSinglePosition, Translate(","), arraySinglePosition, 0); // }} "" // {{ 2087 1 0 "016f61c5_fd76_4c74_903df10a03070f7b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" labwareID=arraySinglePosition.GetAt(1-1); // }} "" // {{ 2088 1 0 "886fc872_7c3a_4366_959db6d5f265ed7c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" positionID=arraySinglePosition.GetAt(2-1); // }} "" // {{{ 2089 1 0 "766a54b4_4c5b_4991_9d8ceea62d26b216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq, labwareID, positionID); // }} "" // {{ 2090 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2091 1 0 "0003c6e9_5b43_438d_bc93be342c3c6b55" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq.SetCurrentPosition(1); // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "End" } // }} "" // {{{ 5 "StrTokenize" "Begin" private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 2181 1 0 "500afe4c_98a8_4117_8c279b9994d0b626" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 2182 1 0 "6a0bd918_2fda_4e4c_a680454ce2576168" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 2183 1 0 "f65ed315_68ed_4ec0_ba0b3c217e692b25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 2184 1 0 "9476acee_e5bb_43d1_bbec232ed01bae08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); // Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "Begin" private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void { // }} "" private variable numOfVolumes; private variable numOfChannelsInVariable; private variable n; private variable loopCounter1; private variable arrSize; private variable loopCounter3; private variable strKeyName; // {{ 5 "BuildArrayOfVolumesForChannels" "InitLocals" o_arrayOfVolumes.SetSize( 0); // }} "" // {{ 2053 1 0 "69288f91_eabd_4d15_af5361636ffacbf6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyName = Translate("volumes"); // }} "" // {{ 2054 1 0 "bf4c1108_6751_41ee_8d3d3b1a9418548f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfVolumes.SetSize(0); // }} "" // {{{ 2055 1 0 "a9cfa743_a769_46a3_b8d7e45a67b3d297" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName); // }} "" // {{ 2056 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arrSize > 0) { // }} "" // {{ 2057 1 0 "594bebbb_0d54_4893_b20d783de743dd44" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2058 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < arrSize;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{{ 2059 1 0 "3bfc9004_2595_4917_b4edcdceed06f518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); // }} "" // {{ 2060 1 0 "6be31b23_f55d_4d15_be6abc9ee4bef664" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" Trace("Volume received=", v); // {{ 2062 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2063 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2064 1 0 "4a4891b3_f877_4b14_85196b7e820554b2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2065 1 0 "22c7c768_33c4_4975_909e9586375bfe8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(strKeyName, v); // }} "" // {{ 2066 1 0 "4e01e62a_13a2_408e_9fbfb2300d5996ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 2067 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2068 1 0 "cc565f65_a92a_43ef_9c052b7f5632aca5" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" numOfVolumes=o_arrayOfVolumes.GetSize(); // }} "" // {{{ 2069 1 0 "e49355fb_3fe6_4c8d_930870416e36b708" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numOfChannelsInVariable = StrGetLength(strChannels); // }} "" // {{ 2070 1 0 "804bc477_e950_4a14_af5f667c73cf5176" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2071 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (numOfVolumes < numOfChannelsInVariable) { // }} "" // {{ 2072 1 0 "2e73355c_8b11_4423_b345807cae9d5db8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" n = numOfChannelsInVariable - numOfVolumes; // }} "" // {{ 2073 1 0 "53a650d8_2fc1_4c5b_bd19eda433c2a81a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" v = o_arrayOfVolumes.ElementAt( numOfVolumes -1); // }} "" // {{ 2074 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2075 1 0 "cd047b15_6a02_40f1_adfb116f6bf5d763" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 2076 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2077 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "End" } // }} "" // {{{ 5 "ArrayToString" "Begin" private function ArrayToString( variable & i_array[], variable & o_str ) void { // }} "" private variable arraySize; private variable loopCounter1; // {{ 5 "ArrayToString" "InitLocals" o_str = 0; // }} "" // {{ 2043 1 0 "1a220255_6ba4_40fb_be39a6a2f4e0065f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 2044 1 0 "f821c4ff_f1a2_4ad7_9bd77dd8652567cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str = Translate(""); // }} "" // {{ 2045 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2046 1 0 "afd84a84_8330_46e7_8308e16b5caa05e9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" v=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 2047 1 0 "77436fd3_3c87_4f09_9a89259b15ef5bf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, v); // }} "" // {{ 2048 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 < arraySize) { // }} "" // {{{ 2049 1 0 "d14fd31e_5de8_46f9_bb359f38de9a08ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, Translate(";")); // }} "" // {{ 2050 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2051 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "ArrayToString" "End" } // }} "" // {{{ 5 "JSON_GetFloatValue" "Begin" private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void { // }} "" private variable retVal; // {{ 5 "JSON_GetFloatValue" "InitLocals" o_KeyFloatValue = 0; // }} "" Trace("getfloatvalue"); // {{{ 2099 1 0 "8f2f8625_6c9e_4c47_b4698d29df60004a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" // {{ 2100 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("error getting float value, try with integer"); // {{ 2102 1 0 "5a74df81_6685_4703_8b055144f8d74d45" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2103 1 0 "47bb8c98_9624_40ad_b765abfc6b0d0b49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" Trace("error getting float value, tried with integer"); // {{ 2105 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("wtf ok i guess its zero"); // {{ 2107 1 0 "5b8a3ec6_8ee4_4887_ab7df29fa494cdc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_KeyFloatValue = 0; // }} "" // {{ 2108 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2109 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "JSON_GetFloatValue" "End" } // }} "" // {{{ 5 "SendHHSReturnToServer" "Begin" private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; private variable t_arrayStepReturns[]; private variable loopCounter1; private variable keyName; private variable varType; // {{ 5 "SendHHSReturnToServer" "InitLocals" // }} "" // {{{ 2111 1 0 "6db3f932_ba70_4cf6_9c2a8636580fc754" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2112 1 0 "3cf8a985_83cc_418e_99293de9d9945d5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("HHS-return")); // }} "" // {{{ 2113 1 0 "705c25bc_6db4_4eb9_b05b33999e110198" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{ 2114 1 0 "5a9efc02_a11a_4c0c_b166e3b28800cc6c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" t_arrayStepReturns.SetSize(0); // }} "" // {{ 2115 1 0 "5aa4f3a8_774f_4f35_ae7fa197ef920048" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn1); // }} "" // {{ 2116 1 0 "00ac351d_bc51_41e5_b300af93d6893fa5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn2); // }} "" // {{ 2117 1 0 "2aaf8702_2d08_48ee_be96815ca77463c9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn3); // }} "" // {{ 2118 1 0 "67fcb56e_9f42_4739_a5ee322f12443a17" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn4); // }} "" // {{ 2119 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < 4;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 2120 1 0 "a23ae2ed_5b02_41a0_a69215d0b80fde4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" keyName = StrConcat2(Translate("step-return"), loopCounter1); // }} "" // {{{ 2121 1 0 "9b92ac94_8c71_4b77_95ac0c691427c4bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" varType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2122 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "s") { // }} "" // {{{ 2123 1 0 "1497ea6a_46ab_4ee8_b7951f24b533e644" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2124 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2125 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "f") { // }} "" // {{{ 2126 1 0 "61772f9e_fea3_4011_bba06b7fe66e8b0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2127 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2128 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "i") { // }} "" // {{{ 2129 1 0 "28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2130 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2131 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2132 1 0 "0a0447b8_96fb_495a_90dfa8f1e2c488ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2133 1 0 "b2a13d10_b443_4fc0_aa0baa2a23cddafe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2134 1 0 "0adf40b4_5c73_46d8_8e6042c6dfd32d86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2135 1 0 "5a5dabeb_e3ed_4730_ab86839e00f75077" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendHHSReturnToServer" "End" } // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "Begin" private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer_EightOutputs" "InitLocals" // }} "" // {{{ 2149 1 0 "a5a7b215_f4cb_4951_82e1faf532cd7222" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2150 1 0 "9480693e_99ec_4cfd_aa9c8f48e76ee42f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 2151 1 0 "3f068696_35bd_4060_8b291470a817f628" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 2152 1 0 "b68a52fb_e141_4e4c_b5e7bbcbf0c9817f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 2153 1 0 "8ab4a139_9629_43b7_98f13d1058881e4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 2154 1 0 "1417a4bd_aea8_4b36_8a7a05739a789ecf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 2155 1 0 "24b6213e_470e_468a_86dc55b44ff96b95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 2156 1 0 "42403d87_ddb6_4bee_8fc6ad09efb7573a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return5"), stepReturn5); // }} "" // {{{ 2157 1 0 "8493044a_674d_4139_90fa1c7a00050abc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return6"), stepReturn6); // }} "" // {{{ 2158 1 0 "b43cf915_ef0d_4d62_985deae88bcd6c18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return7"), stepReturn7); // }} "" // {{{ 2159 1 0 "584d78fd_87d0_4502_a6d089cfaf888318" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return8"), stepReturn8); // }} "" // {{{ 2160 1 0 "711dbc6f_e5c4_40a0_bef5785dc99707ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return9"), stepReturn9); // }} "" // {{{ 2161 1 0 "47856892_8af4_409f_88723a44ebe61362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2162 1 0 "e5054174_6f3f_4356_8dc30683be948abe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2163 1 0 "e21196c3_6b8f_47e5_a2888114650b2ec8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2164 1 0 "3fec97a3_9f33_4fef_afe5355188bf56d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "End" } // }} "" // {{{ 5 "StrArrayToInts" "Begin" private function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void { // }} "" private variable arraySize; private variable loopCounter1; private variable val; private variable o_arrayOfInts[]; // {{ 5 "StrArrayToInts" "InitLocals" o_intarray.SetSize( 0); // }} "" // {{ 2173 1 0 "d68ba554_ea5e_486c_90e45e6f46e051a7" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 2174 1 0 "2ceaf7fd_f918_493e_a519f9ccc1a58114" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfInts.SetSize(0); // }} "" // {{ 2175 1 0 "f1b90762_2d83_476f_b1cd6ef39b938b13" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2176 1 0 "832d04b5_dd9e_47f6_86628701b9ba44ef" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" val=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 2177 1 0 "a10f8b45_b69d_4a85_be5a713ea78ccd01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" val = APPSLIB::StrConvertToNumber(val); // }} "" // {{ 2178 1 0 "70dffb74_d5e0_4795_bc74a43dbf1c7d9b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_intarray.AddAsLast(val); // }} "" // {{ 2179 1 0 "f1b90762_2d83_476f_b1cd6ef39b938b13" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "StrArrayToInts" "End" } // }} "" // {{{ 5 "ConvertHSSErrCode" "Begin" private function ConvertHSSErrCode( variable hssErrCode ) variable { // }} "" // {{ 5 "ConvertHSSErrCode" "InitLocals" // }} "" // {{ 2093 1 0 "0390e8b9_f753_48cc_ba9811c6326b8cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (hssErrCode == 0) { // }} "" // {{{ 2094 1 0 "9f0ce7fc_13c6_4496_9d762a07174e50f1" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (1); // }} "" // {{ 2095 1 0 "0390e8b9_f753_48cc_ba9811c6326b8cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2096 1 0 "4c347e8c_4bce_4fd2_9771e3402c6f946d" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (0); // }} "" // {{{ 5 "ConvertHSSErrCode" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=stefa$$valid=0$$time=2023-05-14 14:31$$checksum=4fdbf7d4$$length=084$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx2A1D.tmp ================================================ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx2D5B.hsl ================================================ namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HslHamHeaterShakerLib.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } #include "STAR_OEM_Test.res" namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "SchedulingDev\\HSLAppsLib.hsl" } namespace _Method { #include "STAR_OEM_toolkit_pH.hs_" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Module.hsl" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Washer Module.hsl" } /* {{ 2 "LibraryInsertLine" "" */ // }} "" variable loopCounterMain; variable msg; object objJSONFromServer; variable commandFromServer; variable initializeAlways; variable o_stepReturn; object objJSONToServer; sequence seq; variable tipSequence; variable sequenceCounting; variable channelVariable; variable channelUse; variable labwarePositions; variable aspirateSequence; variable v; variable arrayOfVolumes[]; variable liquidClass; variable aspirateMode; variable capacitiveLLD; variable pressureLLD; variable liquidFollowing; variable submergeDepth; variable liquidHeight; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable airTransportRetractDist; variable touchOff; variable aspPosAboveTouch; variable o_liquidLevels_mm[]; variable o_liquidLevels_mL[]; variable o_stepReturn2; variable o_stepReturn3; variable dispenseMode; variable dispenseSequence; variable dispPositionAboveTouch; variable zMoveAfterStep; variable sideTouch; variable wasteSequence; variable useDefaultWaste; variable reducedPatternMode; variable aspirateVolume; variable o_stepReturn4; variable dispenseVolume; variable tipEjectToKnownPosition; variable carrierName; variable barcodeFileName; variable barcodeReadPositions; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable lidSequence; variable plateSequence; variable toolSequence; variable transportMode; variable widthBefore; variable gripHeight; variable gripWidth; variable gripSpeed; variable gripperToolChannel; variable checkPlate; variable zSpeed; variable gripForce; sequence lidSeq; sequence toolSeq; variable xAcceleration; variable platePressOnDistance; variable ejectToolWhenFinish; object objHttp; variable blnReturn; variable blnSuccess; variable usedNode; variable deviceNumber; variable action; variable sampleInterval; variable shakingToleranceRange; variable id; variable monitorResult; variable firmwareVersion; variable serialNumber; variable command; variable parameter; variable plateLock; variable shakingAccRamp; variable shakingDirection; variable simulate; variable startTimeout; variable toleranceRange; variable securityRange; variable intTrace; variable shakingSpeed; variable shakingTime; variable temperature; variable waitForTempReached; variable inverseGrip; variable liftUpHeight; variable retractDistance; variable tolerance; variable labwareOrientation; variable movementType; variable collisionControl; variable gripMode; variable showCollisionCheckDialog; //global device HxFan ("STAR_OEM_Test.lay", "HxFan", hslTrue); variable refillAfterEmpty; variable chamber1LiquidChange; variable chamber2WashLiquid; variable chamber1WashLiquid; variable chamber2LiquidChange; variable FirmwareCommand; variable FirmwareParameter; variable CommandListElement; variable CommandListLength; object FirmwareCmdDict; variable yDisplacement; variable zDisplacement; variable xDisplacement; variable yOrigin; variable xOrigin; variable zOrigin; variable ControllerID; variable SimulationMode; variable ErrorCode; variable DeviceID; variable TargetTemperature; variable StopAllDevices; variable TraceLevel; variable Comport; variable Simulate; variable ModuleName; variable Angle; variable inputSequence; variable barcode; variable seqFirstPosition; variable seqSecondPosition; global device ML_STAR ("STAR_OEM_Test.lay", "ML_STAR", hslTrue); variable ModuleID; variable probePattern; variable pH_probe_1; variable pH_probe_2; variable pH_probe_3; variable pH_probe_4; variable Variance; variable Timeout; variable CalibrationLevel; variable CalibrationValue; variable CalibrationTemperature; variable Precision; variable Temperature; variable ChargeCounter; variable ReplacementDate; variable BatteryCondition; variable ActualCharge; variable MeasurementCounter_Probe_1; variable MeasurementCounter_Probe_2; variable MeasurementCounter_Probe_3; variable MeasurementCounter_Probe_4; variable HardwareNumber; variable Revision; variable SerialNumber; variable PartNumber; variable Selector; variable VoltageData; variable Day; variable Year; variable Month; variable Charge; variable AutoCharge; variable AutoChargeLevel; variable Probe; variable Mode; variable ProbeNumber; variable pHHighValue; variable pHHighVoltage; variable pHLowValue; variable pHLowVoltage; variable CalibrationSlopeRatio; variable CalibrationOffset; variable CalibrationSlope; variable CycleNumber; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" STAR_OEM_TOOLKIT::_InitLibrary(); STAR_OEM_TOOLKIT_PH::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{{ 1 1 0 "e7768ad9_4016_4422_bd83f5785d03ceda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnReturn = HSLHttp::Initialize(objHttp); // }} "" // {{ 2 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnReturn != blnSuccess) { // }} "" // {{{ 3 1 0 "62c131b4_44b9_4249_8e0a3205a25b21b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); // }} "" // {{{ 4 1 0 "fb18125e_b294_4554_912c3d447526996e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 5 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 6 1 0 "ee92e29b_e94c_46cf_a67851f3be61c805" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Hi, Im a VENUS method.")); // }} "" // {{ 7 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; // }} "" // {{ 8 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "de417132_351a_4ad8_80c71b1863d4a870" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" commandFromServer = Translate(""); // }} "" // {{ 10 1 0 "d9c97239_3c9d_4992_8fb5820ae5721d90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate(""); // }} "" // {{ 11 1 0 "57da7835_7495_4b16_8b82897289efbd11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn2 = Translate(""); // }} "" // {{ 12 1 0 "cf024fcc_3594_4355_b33f4bd8c8bdfb4e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn3 = Translate(""); // }} "" // {{ 13 1 0 "9ed0b80d_8518_474f_a94d8f843a6158fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn4 = Translate(""); // }} "" // {{ 14 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 15 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 16 1 0 "0257e5d3_7b99_47be_a062950a2b200664" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" msg = waitForGUItoContinue(); // }} "" Trace("JSON received from Server:", msg); // {{{ 18 1 0 "36be63f7_a79c_44a4_b1dc636a536612bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONFromServer); // }} "" // {{{ 19 1 0 "5c2b861d_97f9_4e18_a5fce25e78026299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::ParseJson(objJSONFromServer, msg); // }} "" // {{{ 20 1 0 "562abca5_8891_402a_b8a7c5ba56301a86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); // }} "" // {{{ 21 1 0 "cb002e33_cc71_4a25_890fa8f9f5d982a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("id"), id); // }} "" // {{ 22 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 23 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 24 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "initialize") { // }} "" // {{{ 25 1 0 "773dbb38_0414_403d_b2ff24100c7cf1fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); // }} "" // {{{ 26 1 0 "97af1c08_2914_4f72_b27c685f11b30bb6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); // }} "" // {{{ 27 1 0 "b3ab11e2_0297_446f_9cf37ca7c0c9d19f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Init step return:"), o_stepReturn); // }} "" // {{{ 28 1 0 "57d4e0cd_327e_4cac_8e83a7da6222dda0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 29 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 30 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 31 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 32 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 33 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipPickUp") { // }} "" // {{{ 34 1 0 "53e1cfb5_1fde_491f_bfd878eceda16ba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 35 1 0 "f0e9e31f_d871_4632_bd466e43fc38c771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 36 1 0 "e6311b13_2132_40e0_aff0b5556205c32a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 37 1 0 "cb659ed1_5f0c_41e8_8a060ec0b650c589" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{ 38 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 39 1 0 "6699226b_6c7b_4b79_95b8017162b433b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 40 1 0 "bd13798f_62e7_4dd2_8e91769d48d10fc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 41 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 42 1 0 "ce13caa6_634b_4dec_8a6c3ea74b144e95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 43 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 44 1 0 "29f69958_d99b_455a_93c7b0480bfd1658" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn); // }} "" // {{{ 45 1 0 "732425fd_a199_4354_8479d821ee834e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 46 1 0 "22f00193_1056_456e_a515d156eee56e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 47 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 48 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 49 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 50 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelAspirate") { // }} "" // {{ 51 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 52 1 0 "55ee3109_036b_4acb_8a15175f3316656f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 53 1 0 "a5b3e5ac_4910_4a4a_8e20bdb7f61836e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 54 1 0 "ce04189a_96e4_4bdc_aedc8a68bf64647b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 55 1 0 "882daff3_cc25_4778_aec6a937fc87347c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 56 1 0 "7f7b9f83_5611_4a3b_b5c120689696addb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 57 1 0 "39e464b7_0def_403b_a02f5dd2a358dbd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 58 1 0 "2e2739aa_8eb6_44e0_b887ea00b04acac0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 59 1 0 "9408edd8_3cee_43e0_976b4a6fabf5f4ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 60 1 0 "a2848877_3518_4d1d_95f77c1f313003e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); // }} "" // {{{ 61 1 0 "4b5ce3d0_91f4_4c14_aaf1cad34e0caf60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" Trace("Bookstart"); // {{{ 63 1 0 "12892ce3_3bc6_4165_b3b6ae0eacad20e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" Trace("Bookend"); // {{{ 65 1 0 "15bd5af3_2da1_420b_beb398dc2347a0ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 66 1 0 "4fe61fb4_bb39_4728_96b8c6959f4943ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); // }} "" // {{{ 67 1 0 "ba68c240_2397_4872_949ee1ee984595c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 68 1 0 "baac19fc_9f21_4e8c_b833f2a1ba2433f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 69 1 0 "253130f8_f599_4ef4_9d5a15e2cb89d1eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 70 1 0 "51233931_483f_4deb_a8627b909d6c9116" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 71 1 0 "bf0c65ba_7847_4768_92ebbe8adc6568c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 72 1 0 "30a6715c_b6c6_4d86_b5c02f3da440e309" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 73 1 0 "6eb82b6e_8093_461e_afc712cab07398dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 74 1 0 "3f8b6af1_7872_4a20_92bf2c4507ea9f31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); // }} "" // {{{ 75 1 0 "7dd1b818_5a89_4b03_82734e6f4d7b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{ 76 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 77 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 78 1 0 "cb2b67f0_7384_4a41_831de652f92d4c85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 79 1 0 "29a868b4_7800_4747_b14eaf0f2c10ba40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 80 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 81 1 0 "08f63789_65f1_4e7d_996dc22e8f33d416" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 82 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 83 1 0 "8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 84 1 0 "7cb70e6b_15bb_4380_b62150df065d208f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 85 1 0 "4714958b_0632_4de2_983c7fe9de68df6c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 86 1 0 "bd40f564_16d7_4037_aef8eebfe28a4362" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 87 1 0 "18bf536c_98f4_4345_86a103db4a9b68a1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 88 1 0 "d60cd9aa_083b_4487_8d6218cee02fa4cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 89 1 0 "e86187c0_0d19_453e_be1c5a401d0d5d93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 90 1 0 "d66c2dae_4cc3_4a31_bafe46d1dd63e790" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 91 1 0 "d23f143d_290d_4d0f_b368241a6a9adaed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 92 1 0 "0428e844_3191_4cde_b7f3544f34c833f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 93 1 0 "a7ca006f_941c_4b31_9749313ad9b4e079" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 94 1 0 "8c97ba72_f880_4504_baee8b8db3d13310" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 95 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 96 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 97 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 98 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelDispense") { // }} "" // {{ 99 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 100 1 0 "909bc255_6ca1_4700_bc102ccb34ae5be4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 101 1 0 "fd48dd93_9f42_4df0_9f659e27a5552543" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 102 1 0 "3ff3f492_86a5_40af_a3deabccbab3898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 103 1 0 "3cbb883f_48ae_40fe_afe67da944df94b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 104 1 0 "ab1033bc_1216_450a_9fb60655a1f1a21a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 105 1 0 "0bc1541f_26d5_44d6_8db6ae336fec17bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 106 1 0 "8c10cc29_c05e_4cea_9ed559249651e805" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 107 1 0 "3e0373da_7c7c_46ab_9b77fba19915662e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 108 1 0 "b98fdc49_cdcb_4f3c_81df0b76eafa1411" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 109 1 0 "7458d32a_402a_4215_b52378c78468ec80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 110 1 0 "5e14f2ce_c932_474b_be03f3c043c700e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 111 1 0 "c2010d1d_5a78_4871_a835a6613a1237bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 112 1 0 "d4a6e6a3_0158_45f1_9c359d8e48e01bed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 113 1 0 "011e9828_5413_40c1_80d0c3bdde1c6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 114 1 0 "2d7a4942_b2ce_43a2_8decf49fa0c9576c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 115 1 0 "ad9f0bbf_e495_41c5_898a3be32bb16f2b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 116 1 0 "5c734886_aa50_424c_b89f6894bc37dd8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 117 1 0 "d1bc00cc_4286_4409_b1c49b6350e7e6ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 118 1 0 "b178ce99_db9e_4453_bed28d4ce0457bc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); // }} "" // {{{ 119 1 0 "1b38ad88_3c65_4e58_812f9ed32ce32485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{{ 120 1 0 "f34066f1_63f9_474f_8a9c41e56962dc74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 121 1 0 "6b94916e_355b_4ee9_8eb4f1b49c95fea4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 122 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 123 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 124 1 0 "e962dd26_3672_4418_bd3c40e9929929eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 125 1 0 "6257966a_6b39_41c8_a057a79b8e39cd4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 126 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 127 1 0 "3f230e40_8bd9_4235_b88cd0ca80799661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 128 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 129 1 0 "8d82ff40_d831_430b_97d97c01d2a4474e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 130 1 0 "ac0ad5a7_d00b_46fe_a18f94f8dab3863c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 131 1 0 "b7f86b6c_03a4_4e12_a05e5e8bdc958b75" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 132 1 0 "9bfa8704_2ae0_4a63_83d09fddbacfd336" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 133 1 0 "860b660a_6947_4c88_a2a039bf65040bf5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 134 1 0 "797f0eef_5bb2_4a2e_a178af74f4892bd7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 135 1 0 "2753c24e_c4dc_402d_866b6bc8691ecc1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 136 1 0 "1ac127fd_b830_496f_b4d4b9671137ebff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 137 1 0 "3ee5d751_d3a5_468a_b539c4f0ff22023e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 138 1 0 "b86d492c_446f_4921_97140cfd462ace87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 139 1 0 "e049946d_6322_4b39_9c46a2d0eb345528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 140 1 0 "531432f5_ef8a_416e_8be28a07ae9b0d25" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 141 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 142 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 143 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 144 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipEject") { // }} "" // {{{ 145 1 0 "69be671e_7cdd_48d3_af136435754c1d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 146 1 0 "f3444c0f_4863_4fdd_94a025b682d8a6d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 147 1 0 "12ad2f39_c160_4afc_9f6ffce7e3ddb433" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 148 1 0 "2883bb64_2fe3_47ca_996e11434afc57cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 149 1 0 "10c3b13e_7129_4cfd_b88b29d0bbc31a28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); // }} "" // {{ 150 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (useDefaultWaste == 0) { // }} "" // {{ 151 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 152 1 0 "655bc92f_08a8_4c16_a0276997aec081ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 153 1 0 "a3a0b5ef_85c0_4552_a28b3356d7886eb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 154 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 155 1 0 "efadb8c3_c431_4ed4_a739a951c05ee518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 156 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 157 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 158 1 0 "2dda50b6_7f82_4e8a_a1d203715119213a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 159 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 160 1 0 "7fa61e34_a1f2_4b99_8f6bed13c6ce120f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn); // }} "" // {{{ 161 1 0 "a7db5128_f8e4_4afe_81f46b2cc86e608d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject step return:"), o_stepReturn); // }} "" // {{{ 162 1 0 "683607f4_928f_4cea_b901fe3502404424" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 163 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 164 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 165 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 166 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 167 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 168 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipPickUp") { // }} "" // {{{ 169 1 0 "1f82c33f_a085_47cc_85dbbde3e42a53c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 170 1 0 "9f9fe665_47a2_4a12_961460021d1f09f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 171 1 0 "743960d2_9d0f_4ccf_848662247e3211c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 172 1 0 "b737602c_63e8_4c4c_b47f40cb815914ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); // }} "" // {{ 173 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 174 1 0 "00bd1831_c335_40f5_b706f0ffadbe2890" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 175 1 0 "1f16418c_8fa7_44a5_a6db75dd9a79ee84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 176 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 177 1 0 "b66db4eb_9e79_4c19_909fd8d14d37cba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 178 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 179 1 0 "f3e7cbf6_0242_4463_8d4ed0db4667f7db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2); // }} "" // {{{ 180 1 0 "b080a5c6_324c_4aae_b5899dede6d863f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 181 1 0 "aa5a9c4b_0377_46ce_9b46883db15cbd7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 182 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 183 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 184 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 185 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Aspirate") { // }} "" // {{ 186 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 187 1 0 "373f30c8_ec07_4298_94d6ac75358ab1ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 188 1 0 "ef3ae377_e985_4ef6_93b005aa91c9b2b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 189 1 0 "d8eea65a_6e59_4c32_a47bae09779f9528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 190 1 0 "8eb02312_a070_491c_9758b3cdbdee0cfc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); // }} "" // {{{ 191 1 0 "6eaf8bee_b53f_4f01_87c1380bc345e386" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 192 1 0 "d9923a2f_e7cf_4f3e_81746e378a20baab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 193 1 0 "2c411993_e3fc_4753_9a90308b226078a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 194 1 0 "5d900896_b2b9_442b_b24294b9bbfbdaad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 195 1 0 "21149e9e_21c9_4ddd_93e07b693e3ab3fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 196 1 0 "bcefef03_102b_4887_adad59c2fb7ad551" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 197 1 0 "9665b0a3_35e8_47e9_b14ac1a4818cfa6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 198 1 0 "ff93d28b_afe9_47e7_9b6eb50d6845384f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 199 1 0 "ef43b824_fd38_42d4_9e932904dbf14813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 200 1 0 "b0378457_e370_448b_bfd6955c05e57bcb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{ 201 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 202 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 203 1 0 "615bcff6_e9d5_4303_a5d5826b2e2548dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 204 1 0 "cf4ad428_945e_4921_9441ee34cf9c96bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 205 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 206 1 0 "86397ec2_2ee5_4ec1_8bec47d8e87584b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 207 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 208 1 0 "48f88263_72c1_4df2_865181cffed9feee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 209 1 0 "f1b764e8_e556_4d08_bb83bdc12dc64a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 210 1 0 "164c104a_cf5f_46de_b23a098a18b3fdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 211 1 0 "ee779f77_51a9_46d7_b58b7bcaf13519f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 212 1 0 "e874eb6d_1e97_4590_95d9b10cb059c935" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn4); // }} "" // {{{ 213 1 0 "0ca1df86_a344_45fd_b384e13ba44c5ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 214 1 0 "2497228e_672e_4c95_9f31679fe87bbe1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 215 1 0 "e4930eee_c625_4acb_a81c05e149a1a218" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 216 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 217 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 218 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 219 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Dispense") { // }} "" // {{ 220 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 221 1 0 "78cba921_2a37_4b4a_91ef7fbe81fcddd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 222 1 0 "b58b4cbd_16e9_4444_9037061e29bc5614" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 223 1 0 "0ab910ec_826d_4c84_bac7ed9564f3bdab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 224 1 0 "84d664b7_70d0_4136_bdfd4de2aa760ad8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); // }} "" // {{{ 225 1 0 "18becc6a_2df4_4281_8b16ade9038979f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 226 1 0 "68c565db_e5ed_44e8_b3846a1d98034e76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 227 1 0 "6a4221a8_9488_48f9_8381b1bc0f0c960d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 228 1 0 "45dcb271_e326_42fc_b8684816d3ffdc93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 229 1 0 "14552b13_e77b_4fb7_9020445ecc5ade21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 230 1 0 "91783f87_af6f_446e_a74fb1725f17d282" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 231 1 0 "e2e7f702_1710_49eb_9b1046dbf4f143e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 232 1 0 "1817aa70_86fa_4318_a8e46569701623e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 233 1 0 "50bd6734_10d5_4291_b40eb708539514fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 234 1 0 "ad5fbb01_d809_4b7d_b858ed597709f28f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 235 1 0 "09566247_6b2d_4c73_b43fe303a30f89c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 236 1 0 "3ead74f7_3b5c_4b21_84d2488c2eceab73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 237 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 238 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 239 1 0 "835f8470_7e8c_40ff_a48abcc85d6b778b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 240 1 0 "059394fc_e924_4d57_b1b85f79f9947fa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 241 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 242 1 0 "6c4be3a7_a450_459c_90545a208f9f459f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 243 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 244 1 0 "c164a94e_2926_462e_9487870d403fe8b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 245 1 0 "86c0fb85_8aaf_4bec_9f6f1f642206487f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 246 1 0 "77047add_8050_4522_ad477b97455a8327" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 247 1 0 "5b2c6f23_9a69_489d_b52179c78c03e48f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 248 1 0 "a9a9244b_829f_4c5b_9a64f1018b029453" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn4); // }} "" // {{{ 249 1 0 "781580a9_199e_4373_b48bb55a97f8a463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 250 1 0 "1867ae44_25f8_4926_ae081e490fd5aa0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 251 1 0 "dbb3b30c_b4a1_4cf6_a24b62b63f155369" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 252 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 253 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 254 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 255 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipEject") { // }} "" // {{{ 256 1 0 "7cf9db16_d78c_4aa0_825cc3c2c22f287c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 257 1 0 "ccca7a97_c22a_4f20_b2d9a60d67850eee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 258 1 0 "a319f75e_77eb_4845_856516ce060213f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 259 1 0 "d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); // }} "" // {{ 260 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipEjectToKnownPosition == 0) { // }} "" // {{ 261 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 262 1 0 "24eeb6dd_1e20_422c_a1a8199cbca73b33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 263 1 0 "5197334f_cde5_4d52_9c528a0c4f7401b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 264 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 265 1 0 "110b82e1_8a5b_48e4_a3adbab701cffc8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 266 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 267 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 268 1 0 "fa32bbf8_8345_4897_aaf09d112d374893" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 269 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 270 1 0 "ef087a4e_684e_4d98_87109abf154fbc85" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2); // }} "" // {{{ 271 1 0 "328216cf_22dd_47a1_9f1ba089b1ac7702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn); // }} "" // {{{ 272 1 0 "53265943_7975_4275_ad98df313054f97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2); // }} "" // {{{ 273 1 0 "c13d9773_7daf_4c3c_9064fdd4f7c7008f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 274 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 275 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 276 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 277 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 278 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "loadCarrier") { // }} "" // {{{ 279 1 0 "76d739d0_ff4a_490b_9c47f411d29ef7a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 280 1 0 "ca623aa7_ed48_45fa_9f4055fb8e08c3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); // }} "" // {{{ 281 1 0 "64a8e193_7e7e_412e_8a0657f0e832eaef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); // }} "" // {{{ 282 1 0 "39e6aaef_5cce_4915_b5b6ede214c7371e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs); // }} "" // {{{ 283 1 0 "1d4d284f_fd1e_4f8a_a2158846ad6a67f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Load carrier step return:"), o_stepReturn); // }} "" // {{{ 284 1 0 "358b7fc3_40a2_418b_9d61d94eef1556f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 285 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 286 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 287 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 288 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "unloadCarrier") { // }} "" // {{{ 289 1 0 "797d23a7_c62a_471a_a52b10fea8bcc154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 290 1 0 "f1c35790_adb7_49eb_a96864d8b1d66cea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn); // }} "" // {{{ 291 1 0 "6e6ded71_3f99_46c5_9362117beb502a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn); // }} "" // {{{ 292 1 0 "8713fee4_6b93_4296_a5396254fd404d52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 293 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 294 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 295 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 296 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 297 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripGet") { // }} "" // {{ 298 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 299 1 0 "c4847ae5_e161_4f23_aa432eda22de28bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 300 1 0 "022a5cdd_3f4f_4e18_927c174fc57a68a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 301 1 0 "3e462067_5eb3_49c3_b7bf6a27de9ce3bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 302 1 0 "f7004881_3f0d_4621_a88d55dec8fc0d30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 303 1 0 "262b36ba_6d86_4009_bdc9a3881db7074e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 304 1 0 "be44b37f_7cec_4f69_81c223f2c30b120b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 305 1 0 "3dea3158_65f8_44bc_8d06a31ce3458dab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); // }} "" // {{{ 306 1 0 "308b2aa2_5970_4692_858049c6559d6ad0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 307 1 0 "756d0f81_3645_4a49_a0c2259581e11498" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 308 1 0 "cdbf11ba_b1f8_4016_811240a02705f1fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{{ 309 1 0 "625df597_c6c8_4e4a_b956e9580bfbc568" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); // }} "" // {{{ 310 1 0 "3576d134_8507_4e47_9c2bcc3dce8c026d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 311 1 0 "5b9c06ad_9081_4b6b_97e50cc87623b888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 312 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 313 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 314 1 0 "d1f3c2ac_9c68_4200_a3506bbbed8e42a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 315 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 316 1 0 "f1d1c43b_a9dd_4573_a69dd7c0e79eea40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 317 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 318 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 319 1 0 "4d304110_107e_412e_909bb84008a244de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 320 1 0 "8f8b1ba1_af12_4cdd_acf2096420ede259" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{ 321 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 322 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 323 1 0 "72e31f7d_c091_4525_a5cf7001754b199d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 324 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 325 1 0 "47dfcbb5_d784_48bb_b36b97509434a3a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 326 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 327 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 328 1 0 "e6c53925_446e_468e_b0e0654b4b9d9a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 329 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 330 1 0 "c0cbb194_1b8b_4fe0_a0f706e03eaa0748" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 331 1 0 "46703217_a28e_42ce_b13c11d73ba34bfa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn); // }} "" // {{{ 332 1 0 "189164cc_2681_492f_83f072fb537648b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn); // }} "" // {{{ 333 1 0 "c8d6960a_f416_47b1_a29e2752973c0ec9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 334 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 335 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 336 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 337 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripMove") { // }} "" // {{ 338 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 339 1 0 "5755c338_faa3_4f0a_9acd4cd01a912862" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 340 1 0 "2849c819_a3dc_4328_8484ccc4785993d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{ 341 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 342 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 343 1 0 "e038f780_938f_4867_98f769488ca44b04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 344 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 345 1 0 "27439ab7_df5a_4e1b_99b64e6c9fd0d9f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{{ 346 1 0 "3d8767e5_5f31_4ce5_91a11e28045ec87a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 347 1 0 "e9e0b38e_13aa_40f9_8e470eb1de09eb19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("wrong"), Translate("nowwrongere")); // }} "" // {{ 348 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 349 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 350 1 0 "e2da0756_7cea_44e7_963442343f3c0732" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 351 1 0 "ee8b8050_164a_4de8_b6ce02120236efbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 352 1 0 "be0898fe_cdb8_4ac3_a9e991e26bdb6658" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here"), Translate("now here")); // }} "" // {{ 353 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 354 1 0 "90f602a1_fdc5_48fd_801269ecd2c3f9bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn); // }} "" // {{{ 355 1 0 "dc418b75_2d70_4034_84a767fba752b262" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn); // }} "" // {{{ 356 1 0 "ae4414d3_a939_4fdb_a0ed06f1be1506e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here here"), Translate("nohhere")); // }} "" // {{{ 357 1 0 "6379549c_caf9_409f_b293abf77f1dcfbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 358 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 359 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 360 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 361 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripPlace") { // }} "" // {{ 362 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 363 1 0 "6f38d60b_6dc5_4159_ba30360f264222da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 364 1 0 "b6ef73cf_c89c_41cc_a3b72dc5aaf70f90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 365 1 0 "c7e5f5bd_edcc_4000_9be3db81af0c79fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 366 1 0 "91ff4c39_6a86_4eda_998a5461ef6c3cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 367 1 0 "341a6f8e_b4c8_4966_b9520322d1bc2e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 368 1 0 "32792c80_3b36_4a25_8fff6b99bfcf1919" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); // }} "" // {{{ 369 1 0 "b1e5d86e_c659_4d33_9e0f83fdb20b2cb5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 370 1 0 "76b26748_4e74_45f7_85a7dc102b5fd7b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); // }} "" // {{{ 371 1 0 "ee221e8a_a662_49d8_be2ef0ed631d9527" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 372 1 0 "cbefd54c_5f0a_4a16_a0199198529b71fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 373 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 374 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 375 1 0 "ac4e7090_c3c7_4707_8d98dc55262c294b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 376 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 377 1 0 "eb5776ad_c858_4ee8_ba31f47af19e76af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 378 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 379 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 380 1 0 "1f3eb006_1b10_427e_99d0b530f1afc2ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 381 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 382 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 383 1 0 "a04c5993_bf3e_46c7_92f24c8236636b00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 384 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 385 1 0 "2455f68c_be4e_4a21_9e9e78f78f6e8e3c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 386 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 387 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 388 1 0 "ad5d98b0_9e3d_4275_90ceef06ceca045d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 389 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 390 1 0 "3321537f_63fb_48a4_90e40a2fee1cc432" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 391 1 0 "8c7e60df_f040_45c6_a939d99bcd0ac23c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn); // }} "" // {{{ 392 1 0 "24e589a9_98d7_429d_90c8afe203e96ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn); // }} "" // {{{ 393 1 0 "9d94d038_d071_4339_aaace5a2e455b240" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 394 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 395 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 396 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 397 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 398 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 399 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGet") { // }} "" // {{ 400 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 401 1 0 "4a585a30_3a23_44cc_a0948963de716cba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 402 1 0 "da3a318b_1208_4329_be1faae95ecc2e03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 403 1 0 "1f51589f_347c_497b_a7338461d92076d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 404 1 0 "622e6765_4ee3_4df5_917ca140f8b7981b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 405 1 0 "9826612b_e564_4231_8f83fdfcbd374bdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 406 1 0 "fdb52557_ae6c_42b3_925073ab7ae7a5ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 407 1 0 "171639e0_98ad_4857_a5ac346039499a33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 408 1 0 "0d4077af_b1dc_4dea_a23a163c57d96248" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 409 1 0 "60732b74_8870_48e2_be03564159cf35b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("inverseGrip"), inverseGrip); // }} "" // {{{ 410 1 0 "ffa21840_da03_4682_b62a6910caf63f45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 411 1 0 "0af9b15f_4e1b_4353_a6261def96fea256" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{{ 412 1 0 "c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 413 1 0 "74d93b97_5d7f_4593_9aeb9d83d5466e6f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{{ 414 1 0 "28d636c0_47c0_4fac_8a7b67124fd8b9f5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 415 1 0 "6f62025f_9dde_4ae6_a6b6b69efed6e381" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("tolerance"), tolerance); // }} "" // {{{ 416 1 0 "f3d51abd_651e_4b15_93eb0cea0c0384be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 417 1 0 "1b72eb1e_c220_42e0_9a34675ddc971fe7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{ 418 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 419 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 420 1 0 "fd3fbb06_b08e_4790_8e3b785ca1f8ed4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 421 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 422 1 0 "87331d5f_01ff_43a8_a0a06487f28bb2b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 423 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 424 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 425 1 0 "5f12c00c_48c1_4e2f_a24b4ba435343a8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 426 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 427 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 428 1 0 "d3e5718a_eb78_4c1f_a6467f61ccbe82df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 429 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 430 1 0 "8ebcf09f_a943_4769_b3c659e368019a32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, lidSeq); // }} "" // {{ 431 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 432 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 433 1 0 "8ce5efe3_4525_4c77_bb64f9d8dcfb6a62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 434 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 435 1 0 "8ac111e1_df50_4fcb_b465e737713459d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn); // }} "" // {{{ 436 1 0 "d9104246_d843_4a6d_85a64aa07d019020" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Get - step return :"), o_stepReturn); // }} "" // {{{ 437 1 0 "7831c2d8_4b59_455a_a0dc5cae20f325a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 438 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 439 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 440 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 441 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapMove") { // }} "" // {{ 442 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 443 1 0 "3c315cea_4ff8_4efa_8e4a5cc86a9d84d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 444 1 0 "4e2cf15d_267b_47e0_895c36b714787e13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 445 1 0 "24d68fc9_cd59_471b_9c663c4121d1a931" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{ 446 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 447 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 448 1 0 "d372f898_6d32_4d80_ab4d58340d18681d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 449 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 450 1 0 "9e573132_bd29_4d08_a1784d0e26c48700" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 451 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 452 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 453 1 0 "48db1de6_2a87_4224_b1f13fa2a75b490a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 454 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 455 1 0 "1e8e9562_41c0_4df5_9de945c44d1e8d61" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn); // }} "" // {{{ 456 1 0 "a5de7c97_d49c_4f04_b1414f1aaace7f84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Move - step return :"), o_stepReturn); // }} "" // {{{ 457 1 0 "6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 458 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 459 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 460 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 461 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPlace") { // }} "" // {{ 462 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 463 1 0 "18e9697d_0efb_4840_94a65e2a82b4ca69" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 464 1 0 "b0c35970_122b_4119_92c3801f4b8e980b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 465 1 0 "6ed697af_a110_4104_941633e154ff0071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 466 1 0 "fec1982e_3636_412d_af2eda243438f7ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 467 1 0 "21de27ac_9dc3_415b_b1d1e49e80c53591" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 468 1 0 "652aeaa7_9a2f_4c11_8bc1fc58a97ffed7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 469 1 0 "e88a5df4_d9ad_4231_89a5a03f88d0ce77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 470 1 0 "8c5aee51_3156_4fcc_b1b167552b73476f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 471 1 0 "8c257b39_8c0b_410d_a4a4e38df904008c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 472 1 0 "91e9f4c6_b7fe_4b15_83c830df3385398a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{ 473 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 474 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 475 1 0 "226bb6d1_37a1_4076_9d96fb9df69c6068" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 476 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 477 1 0 "ec2fd48b_eab9_491e_867c0fc335eea81c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 478 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 479 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 480 1 0 "e590d9b6_f690_48db_b0109a10c228d5ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 481 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 482 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 483 1 0 "82559320_1e13_40c9_b283fdfa804df6a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 484 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 485 1 0 "420daa28_bf45_407a_bd576559af75c5d0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 486 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 487 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 488 1 0 "3ed6b704_3649_4c7d_8e7d30bdb038feab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 489 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 490 1 0 "41a130e8_a745_4a20_b124272093bf38e7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn); // }} "" // {{{ 491 1 0 "b4bdf08c_e218_4bec_98c0f41e6ec3a218" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Place - step return :"), o_stepReturn); // }} "" // {{{ 492 1 0 "346b983b_d261_4447_a7cebf782db4b4d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 493 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 494 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 495 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 496 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPark") { // }} "" // {{ 497 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 498 1 0 "73602d5e_7f8d_45dc_9c1f21d41c39d0bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("showCollisionCheckDialog"), showCollisionCheckDialog); // }} "" // {{ 499 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 500 1 0 "acf5767a_7e39_4072_8e062928938984cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{{ 501 1 0 "96b1bdf6_a3f3_4530_844fc77cbf7fb944" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 502 1 0 "d03fdac4_224f_4174_924fb518a623bf65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 503 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 504 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 505 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 506 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGetFirst") { // }} "" // {{ 507 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 508 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 509 1 0 "5f9f4b8d_3b3a_48ee_89ef334a70dcb72e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{ 510 1 0 "65648900_32b3_4035_9eb5916a3314f7e9" "ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}" { variable arrRetValues[]; arrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40("65648900_32b3_4035_9eb5916a3314f7e9"); // GetFirstPlatePosition } // }} "" // {{{ 511 1 0 "63380bb7_5afe_4d65_9dc5cdf334590b4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 512 1 0 "cdb18c48_14d5_430d_9f7202f782e069da" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 513 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 514 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 515 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 516 1 0 "bd4869b9_868e_4752_b0442af8ce334f90" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 517 1 0 "f85c89d5_d370_4d24_b13fe2cee71ee262" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "FirmwareCommand") { // }} "" // {{ 518 1 0 "4d6ccadc_66fe_48ca_913a7e0defd3a766" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 519 1 0 "e1385a03_1302_4ae1_9faaea69422d67f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate("FirmwareCommandList")); // }} "" // {{ 520 1 0 "6fa9115c_4e6b_4fcf_82fc2509f332fbca" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(CommandListElement = 0; CommandListElement < CommandListLength;) { CommandListElement = CommandListElement + 1; // }} "" // {{{ 521 1 0 "5af0317c_390a_4121_92fc6695bd45edd3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate("FirmwareCommandList"), CommandListElement, FirmwareCmdDict); // }} "" // {{{ 522 1 0 "8c9a281c_debc_4f33_9bd2cef6eedde57e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareCommand"), FirmwareCommand); // }} "" // {{{ 523 1 0 "3d50574c_65df_46db_976821037648878c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareParameter"), FirmwareParameter); // }} "" // {{{ 524 1 0 "642f5973_af08_450b_878d55fa1dc15b1c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn); // }} "" // {{{ 525 1 0 "c1b028b1_70dd_4627_a467661067398a2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 526 1 0 "f0c6a22f_59e2_41c2_954cb5b06a43aa42" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 527 1 0 "6fa9115c_4e6b_4fcf_82fc2509f332fbca" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 528 1 0 "4d6ccadc_66fe_48ca_913a7e0defd3a766" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 529 1 0 "f85c89d5_d370_4d24_b13fe2cee71ee262" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 530 1 0 "bd4869b9_868e_4752_b0442af8ce334f90" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 531 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 532 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Initialize") { // }} "" // {{ 533 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 534 1 0 "efe73491_e5b4_499e_9b3f298c8b7a6398" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 535 1 0 "5c0fe710_4afe_4b11_bf186cfe8dc87978" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{ 536 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 537 1 0 "110af9db_52cf_4a40_94724a7476c48d86" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn); // }} "" // {{{ 538 1 0 "af9bf513_7c00_47bf_aee50c7cdb333b5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Initialize: "), o_stepReturn); // }} "" // {{{ 539 1 0 "cf0a8758_8a16_429a_97f320a142945224" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 540 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 541 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StartTempControl") { // }} "" // {{ 542 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 543 1 0 "de87c5cd_92f6_45a8_9ebd6fe71ac65dbc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 544 1 0 "26949b4a_2c44_4548_8de048c4f48bd98d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 545 1 0 "8ae03ef4_8584_4957_a32601dc8599dadf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn); // }} "" // {{{ 546 1 0 "934ba752_5ec3_489b_ae5a40dd1ea20440" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Start Temperature Control:"), o_stepReturn); // }} "" // {{{ 547 1 0 "a3528747_6990_4387_8839b01b71c3b754" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 548 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 549 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 550 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_SetTarget") { // }} "" // {{ 551 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 552 1 0 "55e81697_10a3_42fb_8777236a132ff0b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 553 1 0 "0177c1a2_7380_4683_94ff93e2ed1299b2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 554 1 0 "15559e31_3f7a_4336_9cabca6758b7c253" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("TargetTemperature"), TargetTemperature); // }} "" // {{ 555 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 556 1 0 "0dcffa9d_ea82_418b_be95240c1bfd0d77" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn); // }} "" // {{{ 557 1 0 "e9b0b663_7dd3_4e55_b206572d2c8a92c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Set Target:"), o_stepReturn); // }} "" // {{{ 558 1 0 "08ecb91c_e9c8_4c61_aca2c1f89fd97bab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 559 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 560 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StopTemperatureControl") { // }} "" // {{ 561 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 562 1 0 "b67518d4_e443_4a8f_947e8c457680c63e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 563 1 0 "045fda52_2303_4244_833066fb0005c21b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{ 564 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 565 1 0 "1c8947fe_b7a1_455a_94e7672ad3593b08" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn); // }} "" // {{{ 566 1 0 "285287f8_a3f9_43f0_9799c3ad98e59b9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco Stop Temperature Control:"), o_stepReturn); // }} "" // {{{ 567 1 0 "88d1a80e_0aa9_4314_ba83bc772f71a589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 568 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 569 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Terminate") { // }} "" // {{ 570 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 571 1 0 "c963c353_41bc_4f4a_b74a666b28831950" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("StopAllDevices"), StopAllDevices); // }} "" // {{ 572 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 573 1 0 "ea2ceb94_04fa_4204_96db2caf6871231f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn); // }} "" // {{{ 574 1 0 "cd495cf5_43ff_4b30_b0baa1f2cd96cf0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Terminate:"), o_stepReturn); // }} "" // {{{ 575 1 0 "bcce43cd_2b64_4caf_89bef8978a011dc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 576 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 577 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 578 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 579 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_Initialize") { // }} "" // {{ 580 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 581 1 0 "d824843f_bf44_4e8b_bb434b50a8b65716" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 582 1 0 "45b9f513_7eaf_4e63_ae92391c28cf15b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 583 1 0 "7f058eec_3092_45ce_862c43a3e0853c7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 584 1 0 "56a4490f_902b_4043_8172466a64e332bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Simulate"), Simulate); // }} "" // {{ 585 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 586 1 0 "c44a492c_8123_465b_acd4ff374583777d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn); // }} "" // {{{ 587 1 0 "a62df2e9_44bb_4099_a4d0597fbf0705de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Initialize:"), o_stepReturn); // }} "" // {{{ 588 1 0 "de7bfb5a_b1fa_42ee_b461782a3c381af4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 589 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 590 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_MoveToPosition") { // }} "" // {{ 591 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 592 1 0 "3092ee64_df80_4e56_b3cdffc0827e3c2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 593 1 0 "4284a9cf_3ea6_42f5_ae1f62d82cd11ebe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Angle"), Angle); // }} "" // {{ 594 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 595 1 0 "5b44092b_0faa_47ae_8005717c87a0f334" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn); // }} "" // {{{ 596 1 0 "4d912417_89ed_44f2_941bfb44efed0e2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Move to Position:"), o_stepReturn); // }} "" // {{{ 597 1 0 "0540bb67_399d_468d_853dd6ca4bb1c285" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 598 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 599 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 600 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 601 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "moveSequence") { // }} "" // {{{ 602 1 0 "6e83eea3_8863_4ca0_9ff603380f0dc4d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("inputSequence"), inputSequence); // }} "" // {{{ 603 1 0 "6b8903c6_6977_458a_8409f93724089454" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 604 1 0 "77d9a84d_5987_4b3c_a76757ce15a19302" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 605 1 0 "13c73535_4a98_49e2_ba1a02c30f02035b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 606 1 0 "a33ebddb_88d8_4440_9a78132ed62d97f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, inputSequence, seq); // }} "" // {{{ 607 1 0 "1dcc4914_aa2f_439e_8a2f431687c33852" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqFirstPosition = SeqGetPositionId(seq); // }} "" // {{{ 608 1 0 "01f7bf35_3538_441d_98904fa827b05e68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 609 1 0 "a37851fe_b9d0_42fa_9ccca7dd7b352a9c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{{ 610 1 0 "fe9d84b8_86ec_4552_b187147351886cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqSecondPosition = SeqGetPositionId(seq); // }} "" // {{{ 611 1 0 "5fa8b88a_cf88_49e1_8cb574503dc60e56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(seqFirstPosition, seqSecondPosition); // }} "" // {{{ 612 1 0 "e590c4e1_91dd_41c0_82a254d4134fb734" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("First check"), Translate("Second check")); // }} "" // {{{ 613 1 0 "2127d6de_e8bd_455a_88ad20e73b767061" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 614 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 615 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 616 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 617 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 618 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_measure") { // }} "" // {{{ 619 1 0 "7c314622_d15c_42aa_a88b3d71caa33d0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 620 1 0 "9f15b042_95cd_4241_9b6262d3a4979ca7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 621 1 0 "34064a8d_5567_4fe5_b4349d0d061b9a1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 622 1 0 "0e34e118_df68_49fa_b3b9228d63deb6d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 623 1 0 "025eece8_72cd_4190_a092d806fbab65a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 624 1 0 "269c134a_bc59_4578_8da8bb7559f234a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 625 1 0 "36ec28c1_360b_46e9_9243c01dbd3874e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 626 1 0 "58445956_3204_41a3_a7acb03aaf25ccd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 627 1 0 "465c2002_18cb_4ff2_9df9e423dbc6837c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 628 1 0 "40682224_6d73_4a7c_a2e33641f1768d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 629 1 0 "e43a57a6_d83b_41d1_adf33f8f77ca7bc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 630 1 0 "12a6bd74_f75b_44d1_b6f7c26d279d9610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 631 1 0 "71b8f8bc_65c1_4e97_ab6eae03040f51dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 632 1 0 "a8ca8abd_aa7a_412c_be527eb4e81efcb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 633 1 0 "a8647b92_b569_4a75_99a5333c438b3a23" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 634 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 635 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 636 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 637 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate_Dyn") { // }} "" // {{{ 638 1 0 "de6a4eb0_04e1_47fc_86e27009d71152cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 639 1 0 "5f551457_7af9_4567_bceacdf0018c9c38" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 640 1 0 "60ee9fa5_c549_43a9_bbccdb0b14819583" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 641 1 0 "2211f515_9e69_4a1c_9603becd6fd866cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 642 1 0 "8449e1f4_6561_4b51_b91aa14423565eb2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 643 1 0 "4429d4bb_e2fb_451f_8558de74111dbe3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Variance"), Variance); // }} "" // {{{ 644 1 0 "a918fadc_db95_4e4b_9c445a903a59f17a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 645 1 0 "7611bb65_5e77_408e_98384f0fec68e958" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 646 1 0 "74418f44_640a_4b4b_88234a74841f1dbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate Dynamically"), o_stepReturn); // }} "" // {{{ 647 1 0 "13218e03_9ac9_44ed_8af864397e865cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 648 1 0 "6257eb41_ce75_45b1_bea89bce20631222" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 649 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 650 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 651 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 652 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate") { // }} "" // {{{ 653 1 0 "c7a809a1_1dc8_47c2_a8006c785355c50e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 654 1 0 "27f7a889_0250_42a5_87699d0b0d52d36b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 655 1 0 "b624fe53_a0c2_44e7_92eb12cc744fa799" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 656 1 0 "9f642188_0286_4e80_81cb485423a155c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 657 1 0 "c7530a85_7f29_4069_9a8e94318ffec0d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 658 1 0 "849206a3_ea5c_4440_a08cdbcb81354e94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 659 1 0 "9f9ab695_0d32_4bf4_bf5a4b0207a2c780" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 660 1 0 "c1db8c11_4c25_4c9c_b424e06999583f09" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 661 1 0 "29e43762_b009_40ad_b93a5ac2372cca00" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 662 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 663 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 664 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 665 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Enable_Extended_Log") { // }} "" // {{{ 666 1 0 "1791ad6e_39b2_4442_8b4470d0fc5497fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn); // }} "" // {{{ 667 1 0 "b22a7836_ed52_4e9d_9e5df5babf8fa142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 668 1 0 "d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 669 1 0 "8d68d8f1_5b56_488b_a0676b4b50a35221" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 670 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 671 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 672 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 673 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Get_Last_Error") { // }} "" // {{{ 674 1 0 "11bf85a6_3df2_4245_839282a900f3db71" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 675 1 0 "2c0b2633_5d81_41a1_aa90c51eb8d9d23d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn); // }} "" // {{{ 676 1 0 "4d60f4e2_175b_4a4b_9b0bfb0f63211da0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Get Last Error"), o_stepReturn); // }} "" // {{{ 677 1 0 "76df37d9_5928_4269_937630b417ad9a11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 678 1 0 "a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 679 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 680 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 681 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 682 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Initialize") { // }} "" // {{{ 683 1 0 "a37d4042_a872_4da0_bf60a51312d5cc22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 684 1 0 "77530965_cb1f_4563_a1d848bb4faa3bb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 685 1 0 "295c3bab_f7f4_47d0_8075cf658ee0436f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn); // }} "" // {{{ 686 1 0 "69f13066_cc39_48aa_85b093e1bc056907" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrIStr(o_stepReturn2); // }} "" // {{{ 687 1 0 "3a9d7ad8_b8d0_45ee_9004e77ed5fbe471" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 688 1 0 "178d10c9_fe18_479a_b3e7922f87282612" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 689 1 0 "66935de2_85a3_4ed0_95cddf772b15fb48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 690 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 691 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 692 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 693 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Measure_Dynamically") { // }} "" // {{{ 694 1 0 "69eede79_0b96_4634_a4ed7995201d9b7d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 695 1 0 "6a018697_b8f4_4088_b8c650a2f028d197" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Precision"), Precision); // }} "" // {{{ 696 1 0 "dfbe88b8_1dda_42ac_8175799123584051" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 697 1 0 "3ef27a25_aec7_4d5b_beb743b713c7526e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 698 1 0 "74a87116_8260_466d_a78e98fe0544a891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 699 1 0 "425d37a5_2d55_4b09_a607303c754935db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure_Dynamically(ModuleID, Temperature, Precision, Timeout, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 700 1 0 "0df3fc00_0550_45fa_b224d60b9bcd06c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 701 1 0 "26992ae0_59eb_4678_ae304b460a7034db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 702 1 0 "3beda7c9_5769_4578_b31431d2bab6d131" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 703 1 0 "141952da_a201_4e85_9e446006849a95bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 704 1 0 "f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 705 1 0 "5487a4f7_a9f8_448e_98b2cb671cb9c069" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 706 1 0 "c8e7c221_d1e4_4818_b3e077f9aeb6a0a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 707 1 0 "611376c4_8c68_46f2_8947cec12bb313f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 708 1 0 "e113c0e5_7ab9_4244_86b73e7f24d2bfc8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 709 1 0 "6286c2d7_a138_4844_bc77fd8a40a6a486" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 710 1 0 "39fd3518_8a14_43a1_8d41240f577c94eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 711 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 712 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 713 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 714 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Battery") { // }} "" // {{{ 715 1 0 "c83f58ac_8db7_4477_bed8e57c9c784b8a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 716 1 0 "4b343bdb_fe40_4daa_8382b1265575e03a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn); // }} "" // {{{ 717 1 0 "98f43381_9679_4d9f_b3d1238ed4c1d0c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 718 1 0 "b95371f0_7532_4426_b980d9824bf1d2b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ChargeCounter = StrIStr(ChargeCounter); // }} "" // {{{ 719 1 0 "15324eca_50a4_4530_be7f08cdef0e6514" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BatteryCondition = StrIStr(BatteryCondition); // }} "" // {{{ 720 1 0 "e694349e_13ad_46c1_b18f5eb4688f510e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ActualCharge = StrIStr(ActualCharge); // }} "" // {{{ 721 1 0 "279c0c8e_1d53_437f_ac5e74b0ccffc7a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 722 1 0 "92db84c4_89c2_4902_819012506538681c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate("0"), Translate("0"), Translate("0"), Translate("0"), id); // }} "" // {{ 723 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 724 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 725 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 726 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Calibration") { // }} "" // {{{ 727 1 0 "250cbb57_43e2_4ca3_8ac97a4f8a848ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 728 1 0 "e2f361b4_fb8d_4bf8_b53c05720323632b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ProbeNumber"), ProbeNumber); // }} "" // {{{ 729 1 0 "6e7357dd_030a_4f9d_b5cda736b409bbee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn); // }} "" // {{{ 730 1 0 "aa859c68_b2ab_4304_9501a2d752587df6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowValue = StrFStr(pHLowValue); // }} "" // {{{ 731 1 0 "7331e4fa_3e06_499a_84eed922b712aca5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowVoltage = StrFStr(pHLowVoltage); // }} "" // {{{ 732 1 0 "3c2e720a_1c6e_4f09_afe077215aa438e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighValue = StrFStr(pHHighValue); // }} "" // {{{ 733 1 0 "a9363a15_98fa_4a49_8451b25c27edea3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighVoltage = StrFStr(pHHighVoltage); // }} "" // {{{ 734 1 0 "73007841_7490_489f_9c595a8e085e3a59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationTemperature = StrFStr(CalibrationTemperature); // }} "" // {{{ 735 1 0 "49c841c4_b5cf_4ac7_9c2e87a2dc939210" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationOffset = StrFStr(CalibrationOffset); // }} "" // {{{ 736 1 0 "d3535c95_47a6_46a6_80f73d15c4582508" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlope = StrFStr(CalibrationSlope); // }} "" // {{{ 737 1 0 "a273e170_1488_4e16_884ae09c3a26d828" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio); // }} "" // {{{ 738 1 0 "4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 739 1 0 "9ae40f13_d6cb_4a4e_9dc995de1da2d637" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Request Calibration Values"), o_stepReturn); // }} "" // {{{ 740 1 0 "5aca9095_546e_4df5_b24364da04e44fe5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id); // }} "" // {{ 741 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 742 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 743 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 744 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Probe_Data") { // }} "" // {{{ 745 1 0 "04b155be_097f_4f2d_add1392fbf78b5f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 746 1 0 "c40a59cd_e266_4cc3_aa3dd3d526502930" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn); // }} "" // {{{ 747 1 0 "306c68bb_ffd7_4233_b7f0c2c67678dfdf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1); // }} "" // {{{ 748 1 0 "bbd1faef_5b8f_41ba_bf74a019b05da039" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2); // }} "" // {{{ 749 1 0 "cb244d85_a14b_4bcb_ab81c5cdc38c6552" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3); // }} "" // {{{ 750 1 0 "5476cf0c_49cc_4602_aec72872116d2e6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4); // }} "" // {{{ 751 1 0 "6883841a_44f5_417f_8574566ed15ae444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), o_stepReturn); // }} "" // {{{ 752 1 0 "fefec950_2bfa_429e_bdf791dc40dd0495" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 753 1 0 "0f6be956_31e3_4d1e_b232c4dc908ea6f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 754 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 755 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 756 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 757 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Technical_Data") { // }} "" // {{{ 758 1 0 "3c80e1e2_a904_42ac_a3ddd5df5ca3a196" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 759 1 0 "8b2b24be_b84b_41b8_bd0f088f32554cb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 760 1 0 "552e7bb6_cbdf_49ec_86ac28b54cae7f58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 761 1 0 "1634fedb_a7e1_4130_ac1fb8d55f47b9e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HardwareNumber = StrIStr(HardwareNumber); // }} "" // {{{ 762 1 0 "2cfb8725_b283_48b0_906a9741fe336744" "{C1F3C015-47B3-4514-9407-AC2E65043419}" PartNumber = StrIStr(PartNumber); // }} "" // {{{ 763 1 0 "7b9a6dfa_9df8_40a8_9c0c39981dcf97e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Revision = StrIStr(Revision); // }} "" // {{{ 764 1 0 "771c0483_6ea2_4299_81c7598839a5027b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SerialNumber = StrIStr(SerialNumber); // }} "" // {{{ 765 1 0 "790984ff_e065_4212_a5c420f04d9f7e4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), o_stepReturn); // }} "" // {{{ 766 1 0 "79aaa9cb_2db1_4f5d_8385023783e5cc82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 767 1 0 "371d6452_cf9d_4abe_9463f54ab7831231" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id); // }} "" // {{ 768 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 769 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 770 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 771 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Voltage_Data") { // }} "" // {{{ 772 1 0 "b6c0eb00_003a_45ed_9899c407d864455c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 773 1 0 "e4801131_30dc_4e2d_8ac9e80c0c13972c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Selector"), Selector); // }} "" // {{{ 774 1 0 "ee48a65d_794b_411d_bb1668a267206d8b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn); // }} "" // {{{ 775 1 0 "bf78a104_f3d4_45b6_a573a7219dcf05e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 776 1 0 "ab32fbfb_2be2_4f6d_9c49def79adcfe31" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 777 1 0 "eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(""), Translate(""), id); // }} "" // {{ 778 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 779 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 780 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 781 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 782 1 0 "51fd11a2_c173_4d8a_be50512a820eb424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 783 1 0 "b1268215_064b_40bc_8b9e75cfc0edeac8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 784 1 0 "7665963b_aa9b_4a3c_ba522887f3b15ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 785 1 0 "8327c869_96c0_4394_9bf4c5b5c19f30d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 786 1 0 "5a5455ae_5598_4a29_8c5f621b0586ba79" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 787 1 0 "f534cbac_4de3_4425_85299c07c6ff73cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 788 1 0 "12b0cc6a_4826_48ce_82c690ddf98441a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 789 1 0 "aee63add_2789_4971_b4867510d938caf6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 790 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 791 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 792 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 793 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Charge_Parameters") { // }} "" // {{{ 794 1 0 "5e24703a_30cb_4538_aec7ba85b7c0d2a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 795 1 0 "31630603_a72b_4d8b_a21a501f5336c619" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Charge"), Charge); // }} "" // {{{ 796 1 0 "41b8aa8b_7d8e_4351_ad9664e334fa00f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AutoCharge"), AutoCharge); // }} "" // {{{ 797 1 0 "504d0d26_95ad_4181_a7c38162018496cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("AutoChargeLevel"), AutoChargeLevel); // }} "" // {{{ 798 1 0 "576ecb10_c479_461f_9249f554f27e398b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn); // }} "" // {{{ 799 1 0 "80503782_9e9a_4986_9e4bcdeac598c749" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Charge Parameters"), o_stepReturn); // }} "" // {{{ 800 1 0 "ade249f5_6aa1_4939_90a22e6af0864e5e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 801 1 0 "4fb997db_4cdf_4b51_85bbb23941f19edb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 802 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 803 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 804 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 805 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Probe_Replacement_Date") { // }} "" // {{{ 806 1 0 "eb0a7cc0_c83a_45a8_8bd6adbf05cadabe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 807 1 0 "c762429d_3619_4e70_9765fe207dab3d54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Probe"), Probe); // }} "" // {{{ 808 1 0 "18bf75b8_9aa3_46d2_a3ad3bbab8c1e126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 809 1 0 "2b2bbaed_84c1_46d2_bd024b425aefa336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 810 1 0 "380453f0_b3e8_47ac_a06eb91552b3a11f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 811 1 0 "a8fcf799_ec41_4160_910a9c78e5395ae2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn); // }} "" // {{{ 812 1 0 "c95c2987_8098_48ed_9ad284801d556587" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Probe Replacement Date"), o_stepReturn); // }} "" // {{{ 813 1 0 "4e986dcc_ee8e_4cc0_bb83628d0a0ec284" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 814 1 0 "d46fb139_6c48_4f2a_b09293a8a3509a12" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 815 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 816 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 817 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 818 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Shutdown") { // }} "" // {{{ 819 1 0 "aec40299_6cef_4e16_ad88bccbdcae3b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 820 1 0 "c7715d80_e089_40ea_86fe6a446a2c9378" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Mode"), Mode); // }} "" // {{{ 821 1 0 "212772c6_0ff7_41ef_9c35fb5828034d90" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn); // }} "" // {{{ 822 1 0 "82055c44_b706_4c16_99b47c2a4ae600e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Shutdown"), o_stepReturn); // }} "" // {{{ 823 1 0 "d76b0e51_c107_49cd_b6bcd25c44e4d066" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 824 1 0 "fbbaa73a_fa45_446d_8052e6e618fd2fad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 825 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 826 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 827 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 828 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Technical_Data") { // }} "" // {{{ 829 1 0 "d6a005e1_4502_49d8_9a510afa4a2e833e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 830 1 0 "5ad112b0_da19_4b1b_a4649033defa7fef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 831 1 0 "f4094e68_7940_4706_bae95f6277784476" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PartNumber"), PartNumber); // }} "" // {{{ 832 1 0 "2b53f199_42d1_4808_a128c8ef4354e216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Revision"), Revision); // }} "" // {{{ 833 1 0 "b5bf6715_e2e6_4e19_ad453dbb18396d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SerialNumber"), SerialNumber); // }} "" // {{{ 834 1 0 "8cd5ff7f_9cb8_4f34_8afeb35175b47032" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 835 1 0 "b60d9996_aa66_483d_b61518ffca638e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Technical Data"), o_stepReturn); // }} "" // {{{ 836 1 0 "164f5289_e710_44eb_a1ea51e1622a7813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 837 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 838 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 839 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 840 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Trace_Level") { // }} "" // {{{ 841 1 0 "dd6ba7d4_f5cc_4725_9776848c6e8343cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 842 1 0 "5a2c7ac9_8800_4926_96f26337aee59504" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 843 1 0 "88c51a62_4453_4cf5_ba0682a2cb1da767" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 844 1 0 "159aeb3e_3ed4_4ddc_a11cdfd939a7db7d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Trace Level"), o_stepReturn); // }} "" // {{{ 845 1 0 "c3a5cc94_f346_4d04_a4be1fd04efbccc1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 846 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 847 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 848 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 849 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Sleep") { // }} "" // {{{ 850 1 0 "153dc01b_be4b_403a_a40226aa4778c709" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 851 1 0 "a6f7384c_4c2e_4b3b_9682c00fb7a2f978" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn); // }} "" // {{{ 852 1 0 "e82cf943_58b3_463e_a86afb9882353228" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Sleep"), o_stepReturn); // }} "" // {{{ 853 1 0 "636ca48b_8789_40cc_8fb4dc35e8cbab54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 854 1 0 "5fb5b228_5342_414d_a548ac8dd5add837" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 855 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 856 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 857 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 858 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Terminate") { // }} "" // {{{ 859 1 0 "b53cd271_035b_4870_961c552983b39351" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 860 1 0 "e133d234_4ccd_44cb_810d29742ee9f40e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn); // }} "" // {{{ 861 1 0 "eb5a9614_5d18_44cd_83190a1d8eec2a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 862 1 0 "81b91833_cb16_43c5_a8935f9701536560" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 863 1 0 "add7dd5e_87e4_4ec1_a7b552234adc5d9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 864 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 865 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 866 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 867 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Wakeup") { // }} "" // {{{ 868 1 0 "6b1d97c0_debd_402e_8c064a5c1fe48aca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 869 1 0 "09ffa3b4_530e_444f_943e5302e37f3fe0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn); // }} "" // {{{ 870 1 0 "0d420182_40e4_43a8_872c5c81f7efa6d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 871 1 0 "f7bb0b0b_d222_43a7_b1b1236ab60e2847" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 872 1 0 "12251a91_a4ec_4a01_b041b503e2eef836" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 873 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 874 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 875 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 876 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Initialize") { // }} "" // {{{ 877 1 0 "10713a72_dce4_482a_ad1d6d8db7bd210a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 878 1 0 "21f38719_99e7_4de4_bc16b312b6f57977" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 879 1 0 "75ac7c86_e474_45bc_8551fc9e302de4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 880 1 0 "509760aa_ef16_454d_89cc23c0745d3c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 881 1 0 "19e515a1_705c_45eb_b80e75767541c91a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 882 1 0 "a042f65b_875f_4b52_999c836815c84a6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 883 1 0 "f5fd2c44_2160_43fa_be88382bc9e0ff0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 884 1 0 "f2c8bfd1_3d33_4a00_84852ffbabef7b28" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 885 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 886 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 887 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 888 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Set_Trace") { // }} "" // {{{ 889 1 0 "0029313d_525e_46ea_916912b33902e1eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 890 1 0 "ed79bcac_71ff_48ee_b968407f0dbdf4ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 891 1 0 "80f14967_56f1_4b78_9a3c9965460a9589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 892 1 0 "b3fdfb36_4bb4_4086_a19b5402f53fdd94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 893 1 0 "53206fbc_1492_4583_a2789c8083e49b46" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 894 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 895 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 896 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 897 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Wash") { // }} "" // {{{ 898 1 0 "32bfd9a6_1ebc_4ca0_81e034f81d1af760" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 899 1 0 "a9208608_0099_4d5f_800d72adf563b9e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CycleNumber"), CycleNumber); // }} "" // {{{ 900 1 0 "738f88ca_6ad7_4598_b1e4a3e1ccefcace" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn); // }} "" // {{{ 901 1 0 "d009e19d_0560_4f89_b0f58bafa778b71b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Wash"), o_stepReturn); // }} "" // {{{ 902 1 0 "49cdc51c_08eb_424b_920d3dcb647b2559" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 903 1 0 "2624b5a6_7428_4e88_a9b7fee8a8001e65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 904 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 905 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 906 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 907 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Terminate") { // }} "" // {{{ 908 1 0 "e8e2fec9_d562_4524_b5d29880876bd109" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 909 1 0 "ad418c06_88fd_4649_9745bc00694fa53a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 910 1 0 "e8437e3c_0153_4bc0_86236a2e9849e22a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Terminate"), o_stepReturn); // }} "" // {{{ 911 1 0 "32e4b0bc_48e5_4770_81a0113fdff8118a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 912 1 0 "c81e886b_51ec_42be_b2c989057781a5b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 913 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 914 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 915 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 916 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Initialize") { // }} "" // {{{ 917 1 0 "b41d8294_bc5c_4346_999860e0f4cc913e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 918 1 0 "102abd73_15bb_472b_a1008b4eda35637e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 919 1 0 "58389380_f098_4c71_b61c0954f797753b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 920 1 0 "2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 921 1 0 "d95cbdf3_6278_437b_91525392a70e5356" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 922 1 0 "d35fefc8_f758_41da_a6073532f75cf092" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Initialize"), o_stepReturn); // }} "" // {{{ 923 1 0 "e1deec6e_fc66_45bd_93821e20a78853fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 924 1 0 "01bdb50d_0f38_40e2_8993f814ea652b66" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 925 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 926 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 927 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 928 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Set_Trace") { // }} "" // {{{ 929 1 0 "f7fc7449_63b2_4e8b_8d0eaf3f931e834d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 930 1 0 "ef77cea9_ef26_4525_bea967ec7f086b88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 931 1 0 "24784b11_b6f4_461e_b526cbbb677864ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 932 1 0 "d5ebe375_f7dd_45c2_b3e242a8edf4f175" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Dryer Trace Level"), o_stepReturn); // }} "" // {{{ 933 1 0 "f61751e3_57be_4b1d_b8a1d370a4c1773c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 934 1 0 "d216caef_1c5d_4f05_8252d1a77df45535" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 935 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 936 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 937 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 938 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Start_Drying") { // }} "" // {{{ 939 1 0 "45561f8e_cd7f_49d8_a8720b2ff7d0d932" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 940 1 0 "ecdddf7a_3c99_4f99_97b658f94a62554c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 941 1 0 "5a6daec0_a404_4a0a_ad9d88de43ac46c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Start Drying"), o_stepReturn); // }} "" // {{{ 942 1 0 "e7173a44_d349_4ba2_8993647fbcd2eb1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 943 1 0 "17e3434b_dfff_457b_9aba0c22e9206cc7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 944 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 945 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 946 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 947 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Stop_Drying") { // }} "" // {{{ 948 1 0 "f3eac478_54bb_4350_8c1811bf2ede8424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 949 1 0 "37262733_33d0_4723_94687e68249d1300" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 950 1 0 "6feb871c_61be_4812_a421af32d75f9871" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Stop Drying"), o_stepReturn); // }} "" // {{{ 951 1 0 "2ba59e68_8358_4b86_a9108519bff6d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 952 1 0 "cbfcb2cb_00c9_445f_a28af2b6553efc31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 953 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 954 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 955 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 956 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Terminate") { // }} "" // {{{ 957 1 0 "66453f41_07b7_4fd4_b2177e4994606836" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 958 1 0 "a5808bbd_63b3_4fc2_894ab4d4eb00b93d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID); // }} "" // {{{ 959 1 0 "f844d13f_ecdb_465a_b0300a4976c0d809" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 960 1 0 "a28255b3_86ff_4928_abf87a7c3f930142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 961 1 0 "7e539911_cdda_4242_a337d58eba44508c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 962 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 963 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 964 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 965 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 966 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Initialize") { // }} "" // {{{ 967 1 0 "5efffd73_f295_4d3c_aacd37c74d2bc015" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ComPort"), Comport); // }} "" // {{{ 968 1 0 "cc8f22a1_0ae7_40ee_82d2e071b7344cf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn); // }} "" // {{{ 969 1 0 "b6f33534_c173_4c6c_820d96a48fa50a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Barcode initialize:"), o_stepReturn); // }} "" // {{{ 970 1 0 "138ad752_fbd8_457e_948dd436ddb65822" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 971 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 972 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Read") { // }} "" // {{{ 973 1 0 "0b3c261e_a906_4464_b0e5caa3ec640056" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Read(barcode); // }} "" // {{{ 974 1 0 "98aadc47_a5a2_433d_84530ad050155ccd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("BarcodeReader_Read"), barcode); // }} "" // {{{ 975 1 0 "e3fc85ee_a6d7_4d98_a3f9076b947565cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, barcode, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 976 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 977 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 978 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 979 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 980 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_BeginMonitoring") { // }} "" // {{{ 981 1 0 "7dd862dc_f7f1_4600_94ca9b83762673dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 982 1 0 "d37d14e5_261f_418c_81f754eb75bf4920" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingToleranceRange"), shakingToleranceRange); // }} "" // {{{ 983 1 0 "0919ceb3_189a_4885_93c8faeab9f9538b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sampleInterval"), sampleInterval); // }} "" // {{{ 984 1 0 "bc3a749e_e1bb_4c4a_9aac06834d85080f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("action"), action); // }} "" // {{ 985 1 0 "4e026721_fd49_4127_87fda5791fa13eff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 986 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ; err.Clear(); // }} "" // {{{ 987 1 0 "a2a0a3bb_c0cf_4123_afe36d1d51ae233c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action); // }} "" // {{ 988 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3202FD4CC34D478f892F31C7684340BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 989 1 0 "7066bb37_8c48_474d_8f467cf1f1e06a8d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 990 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 991 1 0 "c00b8635_652d_48ca_8d345ed070306b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 992 1 0 "85ac1487_5644_4bae_b032f5c191aa47c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 993 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 994 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 995 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 996 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateStarDevice") { // }} "" // {{{ 997 1 0 "4c3dfdd2_2dd6_4c5f_831f92590c13e82e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 998 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_18D9C44C12554d56B5C39C21EA142EC8 ; err.Clear(); // }} "" // {{{ 999 1 0 "cc3d4234_12d6_486a_a110c8ede0e3059b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber); // }} "" // {{ 1000 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_18D9C44C12554d56B5C39C21EA142EC8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1001 1 0 "7f473860_0be7_4dc2_87423136869dd829" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1002 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1003 1 0 "7699b24c_5ec6_4cca_b1cb9aed9ce60247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1004 1 0 "85155966_9554_40cb_9693f9b0a11b25a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1005 1 0 "d049e779_0761_471d_9f7b8af0967d1633" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1006 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1007 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1008 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1009 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateUSBDevice") { // }} "" // {{{ 1010 1 0 "72f0a762_2550_45ad_bea063f4f72a9fe9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1011 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ; err.Clear(); // }} "" // {{{ 1012 1 0 "0cd1cef0_3091_48c3_b63490d3e80a5b45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber); // }} "" // {{ 1013 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_98100824AA704d26AB40A6BADEF39F48 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1014 1 0 "53df6909_1d0e_4001_ac674452fec957bc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1015 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1016 1 0 "85d76321_871e_4d0e_bb460b7513742e62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return:"), o_stepReturn); // }} "" // {{{ 1017 1 0 "d303212f_1f38_442d_a24eee709cf4cdc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1018 1 0 "7356ec1e_8437_4679_94613ac2bea4fe0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1019 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1020 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1021 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1022 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_EndMonitoring") { // }} "" // {{{ 1023 1 0 "4293ef15_cfcd_4e29_b9b02afae2d471f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1024 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ; err.Clear(); // }} "" // {{{ 1025 1 0 "96f15f32_4117_4a09_85dceac0fa769b43" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult); // }} "" // {{ 1026 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1027 1 0 "6ba4b834_521a_46da_9ceb8ced08da95f5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1028 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1029 1 0 "ce89bf49_b865_4c3f_a97eba220b5a7d33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS End Monitoring step return:"), o_stepReturn); // }} "" // {{{ 1030 1 0 "05229af2_f20a_42ce_908ec8445f3f9dd2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(""), Translate(""), id); // }} "" // {{ 1031 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1032 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1033 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1034 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetFirmwareVersion") { // }} "" // {{{ 1035 1 0 "942a1cc2_d956_47fa_9a9ffed1e856a632" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1036 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ; err.Clear(); // }} "" // {{ 1037 1 0 "20e2b3e5_8664_4809_9bcf626c89196333" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1038 1 0 "c70f5e07_0eeb_45e5_af26714895e2df88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion); // }} "" // {{ 1039 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1040 1 0 "38e3e61d_a654_46f5_87f53cf7dfc09446" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1041 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1042 1 0 "7de3b86c_c16d_4932_beedfb948b5d85f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(""), Translate(""), id); // }} "" // {{ 1043 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1044 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1045 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1046 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetSerialNumber") { // }} "" // {{{ 1047 1 0 "38b7d0d7_7cce_4157_8abc70dfb62eefa5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1048 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 ; err.Clear(); // }} "" // {{ 1049 1 0 "d92781d1_27c2_48fb_acfd9cb32428e910" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1050 1 0 "0bbfb488_9723_4a08_9b90171dbec6117a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber); // }} "" // {{ 1051 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1052 1 0 "19daab0c_59b0_4af8_a070bee39acf20c1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1053 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1054 1 0 "311e5a04_1ac3_443c_bdc51c5cdc4c44f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(""), Translate(""), id); // }} "" // {{ 1055 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1056 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1057 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1058 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerParameter") { // }} "" // {{{ 1059 1 0 "f3888a0b_86ea_4c4a_891e1755a6e78556" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1060 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ; err.Clear(); // }} "" // {{ 1061 1 0 "df61bf49_7625_493f_ad06bbdbb36b494a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1062 1 0 "e993ed67_92ed_4c85_bd33f90aac53dfb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3); // }} "" // {{ 1063 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1064 1 0 "accda6cd_138b_411c_bf3af9b152e986c8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1065 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1066 1 0 "6efd49bf_48c7_437b_8fee57487345eaee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1067 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1068 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1069 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1070 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerSpeed") { // }} "" // {{{ 1071 1 0 "e1c29a26_0656_46e3_b0a412143047bd26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1072 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ; err.Clear(); // }} "" // {{ 1073 1 0 "8d513473_33ad_47dc_a8c3ed9799195b58" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1074 1 0 "d7148e56_7fcc_471d_8c3a7abc2847db7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2); // }} "" // {{ 1075 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1076 1 0 "ee004b75_f488_428e_99b02212bd478984" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1077 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1078 1 0 "41ba2513_e3c2_485c_821198419c3fe286" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1079 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1080 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1081 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1082 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTempParameter") { // }} "" // {{{ 1083 1 0 "09fb30ea_33e9_486d_96945af4798859ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1084 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ; err.Clear(); // }} "" // {{ 1085 1 0 "4f9610c2_a783_4586_b1725e8904e476cc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1086 1 0 "eea3f2ce_93c1_4efd_be90b89d775a6867" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 1087 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C16E1CF8298042f0A01D1040DC911015 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1088 1 0 "ad6b8668_d455_40f9_9e64eac973c2db0c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1089 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1090 1 0 "81e3038e_a3ea_4252_a09b14cd3de477a3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1091 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1092 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1093 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1094 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperature") { // }} "" // {{{ 1095 1 0 "01d1add6_c167_4137_8f0c285cd6ad9bed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1096 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ; err.Clear(); // }} "" // {{ 1097 1 0 "a54c8c75_1172_46d3_a61e71fe7fea812d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1098 1 0 "4187d732_0d13_4590_99fa08572e32e2f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2); // }} "" // {{ 1099 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_14A2AAD200434d69970AC483BD08B64F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1100 1 0 "e9f473e4_b341_4e28_8c5c444235409181" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1101 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1102 1 0 "234847f1_2f0a_4e64_856b9edefcebb425" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1103 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1104 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1105 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1106 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperatureState") { // }} "" // {{{ 1107 1 0 "82a233ab_0392_4ebb_9a809d80aae38e44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1108 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ; err.Clear(); // }} "" // {{ 1109 1 0 "19a32be3_7476_425d_a82433aead4637cf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1110 1 0 "7f7e0bd7_bea9_474d_92bce5d21da9a2a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2); // }} "" // {{ 1111 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_50485390A50647818ED2D3934FBC87E3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1112 1 0 "81e1a27f_16e2_44ed_b7cd3b11ac866a97" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1113 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1114 1 0 "31a69f44_1a59_49ce_a78763f3aa936042" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1115 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1116 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1117 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1118 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SendFirmwareCommand") { // }} "" // {{{ 1119 1 0 "11546c32_6ddd_4250_9b8750c9679e5b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1120 1 0 "06688598_f10e_41e9_8a2c6d3dff7b7aae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), command); // }} "" // {{{ 1121 1 0 "15a58509_ec93_4677_b1858cadeac42d10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("parameter"), parameter); // }} "" // {{ 1122 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ; err.Clear(); // }} "" // {{ 1123 1 0 "84b0a5f3_5e82_4770_81998131d1071a7a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1124 1 0 "b63ba349_9a52_43ca_aec17e40c17d231b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter); // }} "" // {{ 1125 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_84EE5E4228B140f599748D1271CBB0F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1126 1 0 "f46c286b_9141_4717_ac23994f8defc186" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1127 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1128 1 0 "8b5634c2_e1da_41d3_83c57142f4cae999" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1129 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1130 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1131 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1132 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetPlateLock") { // }} "" // {{{ 1133 1 0 "927ddf67_5dbd_432b_b8cf6117a3109b06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1134 1 0 "a3eee1ac_7024_473b_a6eb8a2e9b461a66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("plateLock"), plateLock); // }} "" // {{ 1135 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ; err.Clear(); // }} "" // {{ 1136 1 0 "a9029174_cbad_4f9c_9ca65c3b9497d605" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1137 1 0 "27d47e3b_913b_4a0e_bdb50007a0e39d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock); // }} "" // {{ 1138 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1139 1 0 "bb948751_9e18_4aa8_b86a3dd67208967f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1140 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1141 1 0 "945560ed_40bf_44a9_851fead4c1943f9f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1142 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1143 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1144 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1145 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetShakerParameter") { // }} "" // {{{ 1146 1 0 "8a0e14c1_f6c6_4fb8_94094498cccd7991" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1147 1 0 "1810a83f_3fc2_4c49_9d5502fbdfc743e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingDirection"), shakingDirection); // }} "" // {{{ 1148 1 0 "c3053579_8645_474f_8c05459eed975362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingAccRamp"), shakingAccRamp); // }} "" // {{ 1149 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ; err.Clear(); // }} "" // {{ 1150 1 0 "d7ecab6c_533b_4d98_97e3fd144551f6d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1151 1 0 "77463ac5_e629_4772_98004edef4016a6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp); // }} "" // {{ 1152 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1153 1 0 "96075a25_a9b4_48ec_b53a90612b9d42a8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1154 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1155 1 0 "5ed72ec4_1b60_4258_969b44c995450ec1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1156 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1157 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1158 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1159 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetSimulation") { // }} "" // {{{ 1160 1 0 "941f9e19_ca94_4ede_9719205aeb876593" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{ 1161 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ; err.Clear(); // }} "" // {{ 1162 1 0 "c8de89fe_7a53_4c03_bbe8ba85302b57ea" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1163 1 0 "41b0c1a2_60aa_4f16_8901c300e9a3dc14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetSimulation(simulate); // }} "" // {{ 1164 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1165 1 0 "b9ad26f0_da3e_44e9_a29e1fa4b10f92f4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1166 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1167 1 0 "2e7a9d5f_51df_4c49_bb1986da7e14cd48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1168 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1169 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1170 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1171 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetTempParameter") { // }} "" // {{{ 1172 1 0 "99447b6e_9293_483d_bbd7ddee96870904" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1173 1 0 "f55d7581_a005_45e4_9b3d7f7473323e6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("startTimeout"), startTimeout); // }} "" // {{{ 1174 1 0 "7192db12_8543_4c8b_81b98b57ce21118d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("toleranceRange"), toleranceRange); // }} "" // {{{ 1175 1 0 "8f6d922f_f2ae_43c6_8682df15e6b7c07c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("securityRange"), securityRange); // }} "" // {{ 1176 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ; err.Clear(); // }} "" // {{ 1177 1 0 "aecc8a3f_302a_4fd4_85780994769765dc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1178 1 0 "57eb738a_6eb2_4f04_b25bd7f7f64a8179" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange); // }} "" // {{ 1179 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1180 1 0 "8a17da2c_6b74_4513_a05e482acef68552" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1181 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1182 1 0 "90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1183 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1184 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1185 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1186 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetUSBTrace") { // }} "" // {{{ 1187 1 0 "0691ecbd_49b4_4590_91d60e614290ec34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("trace"), intTrace); // }} "" // {{ 1188 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ; err.Clear(); // }} "" // {{ 1189 1 0 "96a3924c_7b8c_441f_b05115a7adf0396f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1190 1 0 "24723a79_741b_46be_830fe654c08d6d1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetUSBTrace(intTrace); // }} "" // {{ 1191 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FE6D15E135D24fd7A06908E89474B650 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1192 1 0 "29acd4b5_13fb_40fe_bc6d971aa6f115a7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1193 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1194 1 0 "cda0d06f_dce0_47ad_bbb419c58aba260e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1195 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1196 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1197 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1198 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShaker") { // }} "" // {{{ 1199 1 0 "503e1c47_5f15_42bd_8eaad1057de68ef6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1200 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ; err.Clear(); // }} "" // {{ 1201 1 0 "18981818_de5f_4fd3_b704a074fd37c9d8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1202 1 0 "7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed); // }} "" // {{ 1203 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1204 1 0 "6fa8ea83_c7bd_4b3e_81768063f8126364" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1205 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1206 1 0 "ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1207 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1208 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1209 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1210 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShakerTimed") { // }} "" // {{{ 1211 1 0 "db6b6c2e_da48_4c64_bdddc80ba5a28921" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1212 1 0 "f6f42906_5ded_4a05_8f9a11fac18f7f10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1213 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ; err.Clear(); // }} "" // {{ 1214 1 0 "84efe41c_f9b0_4304_896c8b308bb07e76" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1215 1 0 "428d423d_1825_472f_a3aa303d028d0659" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime); // }} "" // {{ 1216 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1217 1 0 "367927ae_ba00_4d5a_b9d8f5f9b3d208c3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1218 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1219 1 0 "d73f1476_bf95_4d48_89849f295a9e4d0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1220 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1221 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1222 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1223 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShaker") { // }} "" // {{{ 1224 1 0 "f958f5a5_d1c5_4e9e_9262e708f24940c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1225 1 0 "2ce1189b_e54a_48c0_aafc2932409c0b9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1226 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ; err.Clear(); // }} "" // {{ 1227 1 0 "7e6d8299_fab6_4435_8adf36d59ca04c7a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1228 1 0 "5fe75151_d308_441e_a049e85f45ca3966" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShaker(dispenseMode, shakingSpeed); // }} "" // {{ 1229 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1230 1 0 "64e95a28_a6b6_4e1b_825867f05118aebc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1231 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1232 1 0 "4b0b48f9_3855_4eab_8f22b0902846d750" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1233 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1234 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1235 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1236 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShakerTimed") { // }} "" // {{{ 1237 1 0 "858c7861_9fb0_490e_9646b9eb190706d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1238 1 0 "327bd0c6_60a8_4fd1_9ef81e2a21d904a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1239 1 0 "83a6d58d_c761_484f_871c9c2229a6d3d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1240 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ; err.Clear(); // }} "" // {{ 1241 1 0 "08abdac2_e330_47c9_9b80d99dd0338c3d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1242 1 0 "22e55b69_c018_47f9_8e3ac169c190d2de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); // }} "" // {{ 1243 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_29447729262E4e0f8B347F6640716D96 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1244 1 0 "a26bca7d_b38c_4413_b61d3da3fdfb077b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1245 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1246 1 0 "f539df09_de1d_4fd8_9ac041897fab0333" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1247 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1248 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1249 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1250 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartTempCtrl") { // }} "" // {{{ 1251 1 0 "dc338e01_6b43_4fe3_bda98d2b0a1a65e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1252 1 0 "04239a09_93a5_4f75_80f95d178bdf9cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("temperature"), temperature); // }} "" // {{{ 1253 1 0 "0387745b_87be_4ec6_912b0b4decaa257b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("waitForTempReached"), waitForTempReached); // }} "" // {{ 1254 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ; err.Clear(); // }} "" // {{ 1255 1 0 "0e03f515_b847_4dfd_8aa52f8b5f1135cd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1256 1 0 "4ba75dd5_935f_4f2c_a15605eafa47b808" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached); // }} "" // {{ 1257 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_764F491C76DA445383E5490AB126ADB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1258 1 0 "e7b29c37_b63e_40fe_a3663d4eb8c7dc93" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1259 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1260 1 0 "bfde731d_b581_4488_b4cb7f4873675d7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1261 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1262 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1263 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1264 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopAllShaker") { // }} "" // {{ 1265 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ; err.Clear(); // }} "" // {{ 1266 1 0 "7ca275a0_4aed_4b67_9535646b2074ebaf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1267 1 0 "d112da95_7f27_47a3_9e24bc801bcc9afc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{ 1268 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1269 1 0 "e87b7e6f_2610_44dd_b7d0262ac681e308" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1270 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1271 1 0 "5706daca_363f_417f_9103f7ddd16c1444" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1272 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1273 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1274 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1275 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopShaker") { // }} "" // {{{ 1276 1 0 "1cdead0d_9944_446b_bd59d491b15242b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1277 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ; err.Clear(); // }} "" // {{ 1278 1 0 "d02dc65a_05f9_4938_90df6cee1381d4dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1279 1 0 "75688e3b_5ed1_45d1_a4d8344ca19c3fd3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{ 1280 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1281 1 0 "b5ede424_b7f1_4369_8610d54e626df620" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1282 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1283 1 0 "6ffd1f39_ec63_4f9c_a7687447aff79f80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1284 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1285 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1286 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1287 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopTempCtrl") { // }} "" // {{{ 1288 1 0 "b16ab946_2ba9_4900_bd6f9ede31edf6ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1289 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B5957B02990845739642D8C604B0B582 ; err.Clear(); // }} "" // {{ 1290 1 0 "e22c8ca0_6e3f_454b_8628dd4417a6fd78" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1291 1 0 "3a29dc5b_78cc_4ed1_ab9cd631701715e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber); // }} "" // {{ 1292 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B5957B02990845739642D8C604B0B582 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1293 1 0 "c8c0c20e_b866_451e_9ecd69fdb0b0ed14" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1294 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1295 1 0 "11f3231a_40df_4c14_92585ab8016165e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1296 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1297 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1298 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1299 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_Terminate") { // }} "" // {{ 1300 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ; err.Clear(); // }} "" // {{ 1301 1 0 "e2f732a1_e433_4ab6_b3bdac9a4ca5bd19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1302 1 0 "910932e3_2b76_41cf_9dccecb799f2d649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::Terminate(); // }} "" // {{ 1303 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_919FCF7F89804c398972DAFE2605D286 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1304 1 0 "44edbcbd_1012_457f_848d11750abdfeb2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1305 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1306 1 0 "4edde3c1_4f65_4403_a54985d84f6d80f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1307 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1308 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1309 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1310 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForShaker") { // }} "" // {{{ 1311 1 0 "87872be5_4e84_4b7b_98a3e7147a66f6a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1312 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ; err.Clear(); // }} "" // {{ 1313 1 0 "d5b14e5b_7d51_414e_af4dfb664c89e0c1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1314 1 0 "2eff956e_28cc_4094_8285d5ed00125a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber); // }} "" // {{ 1315 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1316 1 0 "d60c31db_3b59_4498_8c47e4d2612443a4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1317 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1318 1 0 "96b99051_5c80_421c_a02e0bd238da1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1319 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1320 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1321 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1322 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForTempCtrl") { // }} "" // {{{ 1323 1 0 "881e7d69_50e3_4e42_89eafece562ac009" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1324 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ; err.Clear(); // }} "" // {{ 1325 1 0 "ffa29d3e_8248_4266_80661c264964da5f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1326 1 0 "421a52eb_128a_4b6b_8baafb6548b66bd8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber); // }} "" // {{ 1327 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_088C7630997A4749A400740DA66CBA0C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1328 1 0 "8a92c1f7_b614_4c09_b5ada70145cb0a7c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1329 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1330 1 0 "aeb529e0_2eaf_4686_9528342b58318a5d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1331 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1332 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1333 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1334 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1335 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1336 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "CORE96WashEmpty") { // }} "" // {{{ 1337 1 0 "88f95bdd_c2c5_4856_91e5f47f7431bdaf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("refillAfterEmpty"), refillAfterEmpty); // }} "" // {{{ 1338 1 0 "d7a05a26_0b59_478a_a85f308173caf693" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1WashLiquid"), chamber1WashLiquid); // }} "" // {{{ 1339 1 0 "8b1bd108_2b5a_4a2d_ace7b87920eae1b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1LiquidChange"), chamber1LiquidChange); // }} "" // {{{ 1340 1 0 "d651fbf5_a4b8_490b_b869269338ccfcfa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2WashLiquid"), chamber2WashLiquid); // }} "" // {{{ 1341 1 0 "79b1a205_d988_4171_9e1fb28ba362329b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2LiquidChange"), chamber2LiquidChange); // }} "" // {{ 1342 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ; err.Clear(); // }} "" // {{ 1343 1 0 "3fc645b3_f504_4b5e_93481425adf459b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1344 1 0 "123d7b87_745f_4511_a797d08711d13361" "ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}" { variable arrRetValues[]; arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3("123d7b87_745f_4511_a797d08711d13361"); // Head96EmptyWasher } // }} "" // {{ 1345 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EE8804FCDC214a06935DD0F4830020DB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1346 1 0 "ab84bcc8_3da0_446b_84689087cc7a392f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1347 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1348 1 0 "dde0a413_b493_4b17_94990d1d5f2e2b2e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1349 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1350 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1351 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1352 1 0 "1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONFromServer); // }} "" // {{ 1353 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1354 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "end") { // }} "" // {{{ 1355 1 0 "6db67a5a_6aa2_4087_875823acfff0fac4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Good Bye!")); // }} "" // {{ 1356 1 0 "4c7e40d6_02a6_451d_b28230ec71e40ce1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1357 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1358 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1359 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1360 1 0 "6fb90145_24c3_46ba_88b839e0215d0bf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{ 2 "AutoExitBlock" "" STAR_OEM_TOOLKIT::_ExitLibrary(); STAR_OEM_TOOLKIT_PH::_ExitLibrary(); // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=stefa$$valid=0$$time=2022-10-28 20:34$$checksum=79280978$$length=082$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx2D5B.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" private function ArrayToString( variable & i_array[], variable & o_str ) void ; private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ; private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ; private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ; private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void ; function SendTextMessageToServer( variable str ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; private function waitForGUItoContinue( ) variable ; function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 1512 1 0 "c8aa765a_4840_468a_9e928b44fa79d891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{{ 5 "OnAbort" "End" } // }} "" // {{{ 5 "SendTextMessageToServer" "Begin" function SendTextMessageToServer( variable str ) void { // }} "" private object objJSONObject; private variable strJSON; // {{ 5 "SendTextMessageToServer" "InitLocals" // }} "" // {{{ 1480 1 0 "9d5f9d4a_c104_4b47_964b6d97f981a71e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONObject); // }} "" // {{{ 1481 1 0 "d0a04705_1adc_4919_b95168834c89f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("command"), Translate("message")); // }} "" // {{{ 1482 1 0 "7b9a6cd1_3eee_4085_b3f9548e43fc3424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("text"), str); // }} "" // {{{ 1483 1 0 "6a1c53cf_65ea_4f53_aa2e9111890fecf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONObject, strJSON); // }} "" // {{{ 1484 1 0 "bee8c148_b3ea_490b_8d93d8ed5f24939f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONObject); // }} "" // {{{ 1485 1 0 "b965a2fd_f821_4400_b4c777f558ed0772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendTextMessageToServer" "End" } // }} "" // {{{ 5 "waitForGUItoContinue" "Begin" private function waitForGUItoContinue( ) variable { // }} "" private variable loopCounter1; private variable serverResponse; private timer timer1; // {{ 5 "waitForGUItoContinue" "InitLocals" // }} "" // {{ 1493 1 0 "73328607_d06a_4d7d_8a5df64da06a1bde" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" serverResponse = Translate(""); // }} "" // {{{ 1494 1 0 "2342f8b3_4765_4edc_9fb9f46cbb1fd20b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Waiting for server instructions...")); // }} "" // {{{ 1495 1 0 "216e1039_788e_4830_8588933e6c542ba1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Waiting for server instructions...."), Translate("")); // }} "" // {{ 1496 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounter1 = 0; while (1 == 1) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1497 1 0 "5f15547c_3178_4f78_b5fea96f6a1c563b" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.1) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1498 1 0 "cd67277b_4386_4862_8429008a00601693" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 1499 1 0 "6ec592d0_fe02_41a9_8503db5ccf0e5544" "{C1F3C015-47B3-4514-9407-AC2E65043419}" serverResponse = HSLHttp::HttpGET(objHttp, Translate("http://localhost:3221"), Translate("")); // }} "" // {{ 1500 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (serverResponse != "") { // }} "" // {{ 1501 1 0 "b1e2e308_ee78_46d0_8a6832649536045e" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1502 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1503 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 == 300) { // }} "" // {{ 1504 1 0 "19e5c8f7_a1a9_4348_aa41a572942db630" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1505 1 0 "6be46368_bb3e_4ad8_82647d6f52af8c9b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1506 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1507 1 0 "8951a436_faf4_45df_a268dbb7ddb58c29" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.9) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1508 1 0 "52bb524e_27b1_4bbe_afcf26453d9eb66f" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1509 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1510 1 0 "809789b0_bd70_4c1f_b0d808ce120b1d99" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (serverResponse); // }} "" // {{{ 5 "waitForGUItoContinue" "End" } // }} "" // {{{ 5 "SendStepReturnToServer" "Begin" private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer" "InitLocals" // }} "" // {{{ 1451 1 0 "2520bd9f_739d_4111_a27d89f8f73ec39e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 1452 1 0 "aa6010ec_0628_49d5_a87e016b4a4fc7f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 1453 1 0 "a97c5efa_0ce4_4358_9c51c1893f526b9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 1454 1 0 "deceb871_e830_4b14_86e626f745ef083a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 1455 1 0 "00afb5c2_b5db_4458_866a13b6cb332b68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 1456 1 0 "e52bbd02_b31d_4278_a0f45991eab77d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 1457 1 0 "19f99698_3777_4dcf_9fc765c3f221df4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 1458 1 0 "329f8b9b_0798_44f8_9ee6b65ec58b0c44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 1459 1 0 "7728ac0d_8630_4f61_94af076392758ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 1460 1 0 "70d261f2_edc4_49a0_a5a074cd5ab92b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 1461 1 0 "ee0dd62d_582f_4171_b08e37f6106d9b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer" "End" } // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "Begin" private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void { // }} "" private variable n; private variable loopCounter1; private variable strSinglePosition; private variable arrayOfPositions[]; private variable arraySinglePosition[]; private variable labwareID; private variable positionID; // {{ 5 "BuildTempSequenceFromPositions" "InitLocals" { sequence __temp; o_seq = __temp; } // }} "" // {{ 1398 1 0 "d9022e13_e502_4969_a8ee79484e990801" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arrayOfPositions.SetSize(0); // }} "" // {{{ 1399 1 0 "3e178082_8579_435f_a5db4481bb789d9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strPositions, Translate(";"), arrayOfPositions, 0); // }} "" // {{ 1400 1 0 "5d735f26_db1b_4bea_9ee405f4167bb99f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" n=arrayOfPositions.GetSize(); // }} "" // {{{ 1401 1 0 "f497f24b_fd39_417d_8703c0d54662309f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq); // }} "" // {{ 1402 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1403 1 0 "fd645546_0433_46a0_8619026e338529fd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arraySinglePosition.SetSize(0); // }} "" // {{ 1404 1 0 "91aeb0c4_3176_4356_a19a1027bcdb0af3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1); // }} "" // {{{ 1405 1 0 "c2b42369_7829_4c62_b58880fce7867995" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strSinglePosition, Translate(","), arraySinglePosition, 0); // }} "" // {{ 1406 1 0 "016f61c5_fd76_4c74_903df10a03070f7b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" labwareID=arraySinglePosition.GetAt(1-1); // }} "" // {{ 1407 1 0 "886fc872_7c3a_4366_959db6d5f265ed7c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" positionID=arraySinglePosition.GetAt(2-1); // }} "" // {{{ 1408 1 0 "766a54b4_4c5b_4991_9d8ceea62d26b216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq, labwareID, positionID); // }} "" // {{ 1409 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1410 1 0 "0003c6e9_5b43_438d_bc93be342c3c6b55" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq.SetCurrentPosition(1); // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "End" } // }} "" // {{{ 5 "StrTokenize" "Begin" private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 1487 1 0 "500afe4c_98a8_4117_8c279b9994d0b626" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 1488 1 0 "6a0bd918_2fda_4e4c_a680454ce2576168" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 1489 1 0 "f65ed315_68ed_4ec0_ba0b3c217e692b25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 1490 1 0 "9476acee_e5bb_43d1_bbec232ed01bae08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); // Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "Begin" private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void { // }} "" private variable numOfVolumes; private variable numOfChannelsInVariable; private variable n; private variable loopCounter1; private variable arrSize; private variable loopCounter3; private variable strKeyName; // {{ 5 "BuildArrayOfVolumesForChannels" "InitLocals" o_arrayOfVolumes.SetSize( 0); // }} "" // {{ 1372 1 0 "69288f91_eabd_4d15_af5361636ffacbf6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyName = Translate("volumes"); // }} "" // {{ 1373 1 0 "bf4c1108_6751_41ee_8d3d3b1a9418548f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfVolumes.SetSize(0); // }} "" // {{{ 1374 1 0 "a9cfa743_a769_46a3_b8d7e45a67b3d297" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName); // }} "" // {{ 1375 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arrSize > 0) { // }} "" // {{ 1376 1 0 "594bebbb_0d54_4893_b20d783de743dd44" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1377 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < arrSize;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{{ 1378 1 0 "3bfc9004_2595_4917_b4edcdceed06f518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); // }} "" // {{ 1379 1 0 "6be31b23_f55d_4d15_be6abc9ee4bef664" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" Trace("Volume received=", v); // {{ 1381 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1382 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1383 1 0 "4a4891b3_f877_4b14_85196b7e820554b2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1384 1 0 "22c7c768_33c4_4975_909e9586375bfe8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(strKeyName, v); // }} "" // {{ 1385 1 0 "4e01e62a_13a2_408e_9fbfb2300d5996ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 1386 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1387 1 0 "cc565f65_a92a_43ef_9c052b7f5632aca5" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" numOfVolumes=o_arrayOfVolumes.GetSize(); // }} "" // {{{ 1388 1 0 "e49355fb_3fe6_4c8d_930870416e36b708" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numOfChannelsInVariable = StrGetLength(strChannels); // }} "" // {{ 1389 1 0 "804bc477_e950_4a14_af5f667c73cf5176" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1390 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (numOfVolumes < numOfChannelsInVariable) { // }} "" // {{ 1391 1 0 "2e73355c_8b11_4423_b345807cae9d5db8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" n = numOfChannelsInVariable - numOfVolumes; // }} "" // {{ 1392 1 0 "53a650d8_2fc1_4c5b_bd19eda433c2a81a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" v = o_arrayOfVolumes.ElementAt( numOfVolumes -1); // }} "" // {{ 1393 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1394 1 0 "cd047b15_6a02_40f1_adfb116f6bf5d763" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 1395 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1396 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "End" } // }} "" // {{{ 5 "ArrayToString" "Begin" private function ArrayToString( variable & i_array[], variable & o_str ) void { // }} "" private variable arraySize; private variable loopCounter1; // {{ 5 "ArrayToString" "InitLocals" o_str = 0; // }} "" // {{ 1362 1 0 "1a220255_6ba4_40fb_be39a6a2f4e0065f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 1363 1 0 "f821c4ff_f1a2_4ad7_9bd77dd8652567cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str = Translate(""); // }} "" // {{ 1364 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1365 1 0 "afd84a84_8330_46e7_8308e16b5caa05e9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" v=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 1366 1 0 "77436fd3_3c87_4f09_9a89259b15ef5bf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, v); // }} "" // {{ 1367 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 < arraySize) { // }} "" // {{{ 1368 1 0 "d14fd31e_5de8_46f9_bb359f38de9a08ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, Translate(";")); // }} "" // {{ 1369 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1370 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "ArrayToString" "End" } // }} "" // {{{ 5 "JSON_GetFloatValue" "Begin" private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void { // }} "" private variable retVal; // {{ 5 "JSON_GetFloatValue" "InitLocals" o_KeyFloatValue = 0; // }} "" Trace("getfloatvalue"); // {{{ 1413 1 0 "8f2f8625_6c9e_4c47_b4698d29df60004a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" // {{ 1414 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("error getting float value, try with integer"); // {{ 1416 1 0 "5a74df81_6685_4703_8b055144f8d74d45" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1417 1 0 "47bb8c98_9624_40ad_b765abfc6b0d0b49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" Trace("error getting float value, tried with integer"); // {{ 1419 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("wtf ok i guess its zero"); // {{ 1421 1 0 "5b8a3ec6_8ee4_4887_ab7df29fa494cdc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_KeyFloatValue = 0; // }} "" // {{ 1422 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1423 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "JSON_GetFloatValue" "End" } // }} "" // {{{ 5 "SendHHSReturnToServer" "Begin" private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; private variable t_arrayStepReturns[]; private variable loopCounter1; private variable keyName; private variable varType; // {{ 5 "SendHHSReturnToServer" "InitLocals" // }} "" // {{{ 1425 1 0 "6db3f932_ba70_4cf6_9c2a8636580fc754" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 1426 1 0 "3cf8a985_83cc_418e_99293de9d9945d5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("HHS-return")); // }} "" // {{{ 1427 1 0 "705c25bc_6db4_4eb9_b05b33999e110198" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{ 1428 1 0 "5a9efc02_a11a_4c0c_b166e3b28800cc6c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" t_arrayStepReturns.SetSize(0); // }} "" // {{ 1429 1 0 "5aa4f3a8_774f_4f35_ae7fa197ef920048" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn1); // }} "" // {{ 1430 1 0 "00ac351d_bc51_41e5_b300af93d6893fa5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn2); // }} "" // {{ 1431 1 0 "2aaf8702_2d08_48ee_be96815ca77463c9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn3); // }} "" // {{ 1432 1 0 "67fcb56e_9f42_4739_a5ee322f12443a17" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn4); // }} "" // {{ 1433 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < 4;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 1434 1 0 "a23ae2ed_5b02_41a0_a69215d0b80fde4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" keyName = StrConcat2(Translate("step-return"), loopCounter1); // }} "" // {{{ 1435 1 0 "9b92ac94_8c71_4b77_95ac0c691427c4bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" varType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1436 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "s") { // }} "" // {{{ 1437 1 0 "1497ea6a_46ab_4ee8_b7951f24b533e644" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1438 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1439 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "f") { // }} "" // {{{ 1440 1 0 "61772f9e_fea3_4011_bba06b7fe66e8b0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1441 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1442 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "i") { // }} "" // {{{ 1443 1 0 "28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1444 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1445 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1446 1 0 "0a0447b8_96fb_495a_90dfa8f1e2c488ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 1447 1 0 "b2a13d10_b443_4fc0_aa0baa2a23cddafe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 1448 1 0 "0adf40b4_5c73_46d8_8e6042c6dfd32d86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 1449 1 0 "5a5dabeb_e3ed_4730_ab86839e00f75077" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendHHSReturnToServer" "End" } // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "Begin" private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer_EightOutputs" "InitLocals" // }} "" // {{{ 1463 1 0 "a5a7b215_f4cb_4951_82e1faf532cd7222" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 1464 1 0 "9480693e_99ec_4cfd_aa9c8f48e76ee42f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 1465 1 0 "3f068696_35bd_4060_8b291470a817f628" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 1466 1 0 "b68a52fb_e141_4e4c_b5e7bbcbf0c9817f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 1467 1 0 "8ab4a139_9629_43b7_98f13d1058881e4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 1468 1 0 "1417a4bd_aea8_4b36_8a7a05739a789ecf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 1469 1 0 "24b6213e_470e_468a_86dc55b44ff96b95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 1470 1 0 "42403d87_ddb6_4bee_8fc6ad09efb7573a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return5"), stepReturn5); // }} "" // {{{ 1471 1 0 "8493044a_674d_4139_90fa1c7a00050abc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return6"), stepReturn6); // }} "" // {{{ 1472 1 0 "b43cf915_ef0d_4d62_985deae88bcd6c18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return7"), stepReturn7); // }} "" // {{{ 1473 1 0 "584d78fd_87d0_4502_a6d089cfaf888318" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return8"), stepReturn8); // }} "" // {{{ 1474 1 0 "711dbc6f_e5c4_40a0_bef5785dc99707ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return9"), stepReturn9); // }} "" // {{{ 1475 1 0 "47856892_8af4_409f_88723a44ebe61362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 1476 1 0 "e5054174_6f3f_4356_8dc30683be948abe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 1477 1 0 "e21196c3_6b8f_47e5_a2888114650b2ec8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 1478 1 0 "3fec97a3_9f33_4fef_afe5355188bf56d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=stefa$$valid=0$$time=2022-10-28 20:34$$checksum=a4132343$$length=084$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx2D5B.tmp ================================================ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx305.hsl ================================================ namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HslHamHeaterShakerLib.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "SchedulingDev\\HSLAppsLib.hsl" } namespace _Method { #include "STAR_OEM_toolkit_pH.hs_" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" } namespace _Method { #include "STAR_OEM_toolkit_centrifuge.hs_" } namespace _Method { #include "STAR_OEM_toolkit_MPE.hs_" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Module.hsl" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Washer Module.hsl" } namespace _Method { #include "Hamilton MPE2\\HSLMPELib.hsl" } namespace _Method { #include "Hamilton Centrifuge\\Hamilton Centrifuge.hsl" } namespace _Method { #include "Hamilton pH Module Controller.hs_" } #include "STAR_OEM_Test.res" /* {{ 2 "LibraryInsertLine" "" */ // }} "" variable loopCounterMain; variable msg; object objJSONFromServer; variable commandFromServer; variable initializeAlways; variable o_stepReturn; object objJSONToServer; sequence seq; variable tipSequence; variable sequenceCounting; variable channelVariable; variable channelUse; variable labwarePositions; variable aspirateSequence; variable v; variable arrayOfVolumes[]; variable liquidClass; variable aspirateMode; variable capacitiveLLD; variable pressureLLD; variable liquidFollowing; variable submergeDepth; variable liquidHeight; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable airTransportRetractDist; variable touchOff; variable aspPosAboveTouch; variable o_liquidLevels_mm[]; variable o_liquidLevels_mL[]; variable o_stepReturn2; variable o_stepReturn3; variable dispenseMode; variable dispenseSequence; variable dispPositionAboveTouch; variable zMoveAfterStep; variable sideTouch; variable wasteSequence; variable useDefaultWaste; variable reducedPatternMode; variable aspirateVolume; variable o_stepReturn4; variable dispenseVolume; variable tipEjectToKnownPosition; variable carrierName; variable barcodeFileName; variable barcodeReadPositions; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable lidSequence; variable plateSequence; variable toolSequence; variable transportMode; variable widthBefore; variable gripHeight; variable gripWidth; variable gripSpeed; variable gripperToolChannel; variable checkPlate; variable zSpeed; variable gripForce; sequence lidSeq; sequence toolSeq; variable xAcceleration; variable platePressOnDistance; variable ejectToolWhenFinish; object objHttp; variable blnReturn; variable blnSuccess; variable usedNode; variable deviceNumber; variable action; variable sampleInterval; variable shakingToleranceRange; variable id; variable monitorResult; variable firmwareVersion; variable serialNumber; variable command; variable parameter; variable plateLock; variable shakingAccRamp; variable shakingDirection; variable simulate; variable startTimeout; variable toleranceRange; variable securityRange; variable intTrace; variable shakingSpeed; variable shakingTime; variable temperature; variable waitForTempReached; variable inverseGrip; variable liftUpHeight; variable retractDistance; variable tolerance; variable labwareOrientation; variable movementType; variable collisionControl; variable gripMode; variable showCollisionCheckDialog; //global device HxFan ("STAR_OEM_Test.lay", "HxFan", hslTrue); variable refillAfterEmpty; variable chamber1LiquidChange; variable chamber2WashLiquid; variable chamber1WashLiquid; variable chamber2LiquidChange; variable FirmwareCommand; variable FirmwareParameter; variable CommandListElement; variable CommandListLength; object FirmwareCmdDict; variable yDisplacement; variable zDisplacement; variable xDisplacement; variable yOrigin; variable xOrigin; variable zOrigin; variable ControllerID; variable SimulationMode; variable ErrorCode; variable DeviceID; variable TargetTemperature; variable StopAllDevices; variable TraceLevel; variable Comport; variable Simulate; variable ModuleName; variable Angle; variable inputSequence; variable barcode; variable seqFirstPosition; variable seqSecondPosition; global device ML_STAR ("STAR_OEM_Test.lay", "ML_STAR", hslTrue); variable ModuleID; variable probePattern; variable pH_probe_1; variable pH_probe_2; variable pH_probe_3; variable pH_probe_4; variable Variance; variable Timeout; variable CalibrationLevel; variable CalibrationValue; variable CalibrationTemperature; variable Precision; variable Temperature; variable ChargeCounter; variable ReplacementDate; variable BatteryCondition; variable ActualCharge; variable MeasurementCounter_Probe_1; variable MeasurementCounter_Probe_2; variable MeasurementCounter_Probe_3; variable MeasurementCounter_Probe_4; variable HardwareNumber; variable Revision; variable SerialNumber; variable PartNumber; variable Selector; variable VoltageData; variable Day; variable Year; variable Month; variable Charge; variable AutoCharge; variable AutoChargeLevel; variable Probe; variable Mode; variable ProbeNumber; variable pHHighValue; variable pHHighVoltage; variable pHLowValue; variable pHLowVoltage; variable CalibrationSlopeRatio; variable CalibrationOffset; variable CalibrationSlope; variable CycleNumber; variable NodeName; variable Label; variable AlwaysInitialize; variable intPresentPosition; variable Direction; variable CloseCoverAtEnd; variable ArrSpeed; variable ArrAcceleration; variable ArrDuration; variable i_ArrDuration[]; variable i_ArrAcceleration[]; variable i_ArrSpeed[]; variable Decelleration; variable Speed; variable Acceleration; variable MaxRunTime; variable SpeedSensorTrip; variable TimeLeft; variable GravitySensorTrip; variable CurrentSpeed; variable TemperatureSensorTrip; variable ProfileStatus; variable RotorDriveRunning; variable Deceleration; variable DeviceName; variable AdapterDeviceID; variable InstrumentName; variable PortNumber; variable MPEOptions; variable ComPort; variable BaudRate; variable CollectionPlateHeight; variable OffsetFromNozzles; variable NeedleOffset; variable WellVolume; variable FlowRate; variable SourceID; variable Needleoffset; variable PlateHeight; variable WellDepth; variable EvaporateTime; variable FollowRate; variable EvaporateTravelDistance; variable NozzleHeight; variable FilterHeight; variable WasteContainerID; variable FullReading; variable CapacityVolume; variable CalibrationDate; variable EmptyReading; variable blnReset; variable CurrentGasTemperature; variable Heating; variable CurrentEvaporatorTemperature; variable MinimumGasTemperature; variable MinimumEvaporatorTemperature; variable MaximumEvaporatorTemperature; variable MaximumGasTemperature; variable ManifoldPressureSensor; variable HighPressureSensor; variable InputPressureSensor; variable LowPressureSensor; variable MaximumTemperature; variable MinimumTemperature; variable VacuumActive; variable VacuumRunTime; variable DisableVacuumCheck; variable Smart; variable SensorReading; variable ControlPoints; variable ReturnPlate; variable Volume; variable Seconds; variable DefaultTemperature; variable MeasureTime; variable MeasureHeight; variable CalibrationValue1; variable TempSoln1; variable TempSoln2; variable CalibrationValue2; variable blnCalibrateDynamically; variable CalibrationValueRef; variable TempSolnRef; variable Module; variable Reference; variable Calibration1; variable Calibration2; sequence seqModule; sequence seqCalibration1; sequence seqCalibration2; sequence seqReference; variable CalibrationTime; variable arrCalibrationSlopeRatios[]; variable arrpHValuesReferenceSolution[]; variable CalibrationSlopeRatios; variable pHValuesReferenceSolution; variable BluetoothPort; variable NumDryCycles; variable NumWashCycles; variable DryTime; variable Gripper; sequence seqGripper; variable WashPosition; sequence seqWashPosition; variable DryPosition; sequence seqDryPosition; variable DryCycles; variable TransportChannel; variable WashCycles; variable Measurement; variable arrpHValues[]; variable flt_pHValues; variable seqMeasure; variable measurePositions; variable ProbePattern; variable seqMeasurement; variable poss; variable measurementPositions; variable MeasurePositions; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" STAR_OEM_TOOLKIT::_InitLibrary(); STAR_OEM_TOOLKIT_PH::_InitLibrary(); STAR_OEM_TOOLKIT_CENTRIFUGE::_InitLibrary(); STAR_OEM_TOOLKIT_MPE::_InitLibrary(); HAMILTON_PH_MODULE_CONTROLLER::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{{ 1 1 0 "e7768ad9_4016_4422_bd83f5785d03ceda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnReturn = HSLHttp::Initialize(objHttp); // }} "" // {{ 2 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnReturn != blnSuccess) { // }} "" // {{{ 3 1 0 "62c131b4_44b9_4249_8e0a3205a25b21b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); // }} "" // {{{ 4 1 0 "fb18125e_b294_4554_912c3d447526996e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 5 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 6 1 0 "ee92e29b_e94c_46cf_a67851f3be61c805" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Hi, Im a VENUS method.")); // }} "" // {{ 7 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; // }} "" // {{ 8 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "de417132_351a_4ad8_80c71b1863d4a870" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" commandFromServer = Translate(""); // }} "" // {{ 10 1 0 "d9c97239_3c9d_4992_8fb5820ae5721d90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate(""); // }} "" // {{ 11 1 0 "57da7835_7495_4b16_8b82897289efbd11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn2 = Translate(""); // }} "" // {{ 12 1 0 "cf024fcc_3594_4355_b33f4bd8c8bdfb4e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn3 = Translate(""); // }} "" // {{ 13 1 0 "9ed0b80d_8518_474f_a94d8f843a6158fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn4 = Translate(""); // }} "" // {{ 14 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 15 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 16 1 0 "0257e5d3_7b99_47be_a062950a2b200664" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" msg = waitForGUItoContinue(); // }} "" Trace("JSON received from Server:", msg); // {{{ 18 1 0 "36be63f7_a79c_44a4_b1dc636a536612bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONFromServer); // }} "" // {{{ 19 1 0 "5c2b861d_97f9_4e18_a5fce25e78026299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::ParseJson(objJSONFromServer, msg); // }} "" // {{{ 20 1 0 "562abca5_8891_402a_b8a7c5ba56301a86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); // }} "" // {{{ 21 1 0 "cb002e33_cc71_4a25_890fa8f9f5d982a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("id"), id); // }} "" // {{ 22 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 23 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 24 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "initialize") { // }} "" // {{{ 25 1 0 "773dbb38_0414_403d_b2ff24100c7cf1fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); // }} "" // {{{ 26 1 0 "97af1c08_2914_4f72_b27c685f11b30bb6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); // }} "" // {{{ 27 1 0 "b3ab11e2_0297_446f_9cf37ca7c0c9d19f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Init step return:"), o_stepReturn); // }} "" // {{{ 28 1 0 "57d4e0cd_327e_4cac_8e83a7da6222dda0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 29 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 30 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 31 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 32 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 33 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipPickUp") { // }} "" // {{{ 34 1 0 "53e1cfb5_1fde_491f_bfd878eceda16ba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 35 1 0 "f0e9e31f_d871_4632_bd466e43fc38c771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 36 1 0 "e6311b13_2132_40e0_aff0b5556205c32a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 37 1 0 "cb659ed1_5f0c_41e8_8a060ec0b650c589" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{ 38 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 39 1 0 "6699226b_6c7b_4b79_95b8017162b433b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 40 1 0 "bd13798f_62e7_4dd2_8e91769d48d10fc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 41 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 42 1 0 "ce13caa6_634b_4dec_8a6c3ea74b144e95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 43 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 44 1 0 "29f69958_d99b_455a_93c7b0480bfd1658" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn); // }} "" // {{{ 45 1 0 "732425fd_a199_4354_8479d821ee834e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 46 1 0 "22f00193_1056_456e_a515d156eee56e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 47 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 48 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 49 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 50 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelAspirate") { // }} "" // {{ 51 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 52 1 0 "55ee3109_036b_4acb_8a15175f3316656f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 53 1 0 "a5b3e5ac_4910_4a4a_8e20bdb7f61836e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 54 1 0 "ce04189a_96e4_4bdc_aedc8a68bf64647b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 55 1 0 "882daff3_cc25_4778_aec6a937fc87347c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 56 1 0 "7f7b9f83_5611_4a3b_b5c120689696addb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 57 1 0 "39e464b7_0def_403b_a02f5dd2a358dbd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 58 1 0 "2e2739aa_8eb6_44e0_b887ea00b04acac0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 59 1 0 "9408edd8_3cee_43e0_976b4a6fabf5f4ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 60 1 0 "a2848877_3518_4d1d_95f77c1f313003e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); // }} "" // {{{ 61 1 0 "4b5ce3d0_91f4_4c14_aaf1cad34e0caf60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" Trace("Bookstart"); // {{{ 63 1 0 "12892ce3_3bc6_4165_b3b6ae0eacad20e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" Trace("Bookend"); // {{{ 65 1 0 "15bd5af3_2da1_420b_beb398dc2347a0ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 66 1 0 "4fe61fb4_bb39_4728_96b8c6959f4943ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); // }} "" // {{{ 67 1 0 "ba68c240_2397_4872_949ee1ee984595c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 68 1 0 "baac19fc_9f21_4e8c_b833f2a1ba2433f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 69 1 0 "253130f8_f599_4ef4_9d5a15e2cb89d1eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 70 1 0 "51233931_483f_4deb_a8627b909d6c9116" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 71 1 0 "bf0c65ba_7847_4768_92ebbe8adc6568c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 72 1 0 "30a6715c_b6c6_4d86_b5c02f3da440e309" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 73 1 0 "6eb82b6e_8093_461e_afc712cab07398dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 74 1 0 "3f8b6af1_7872_4a20_92bf2c4507ea9f31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); // }} "" // {{{ 75 1 0 "7dd1b818_5a89_4b03_82734e6f4d7b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{ 76 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 77 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 78 1 0 "cb2b67f0_7384_4a41_831de652f92d4c85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 79 1 0 "29a868b4_7800_4747_b14eaf0f2c10ba40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 80 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 81 1 0 "08f63789_65f1_4e7d_996dc22e8f33d416" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 82 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 83 1 0 "8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 84 1 0 "7cb70e6b_15bb_4380_b62150df065d208f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 85 1 0 "4714958b_0632_4de2_983c7fe9de68df6c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 86 1 0 "bd40f564_16d7_4037_aef8eebfe28a4362" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 87 1 0 "18bf536c_98f4_4345_86a103db4a9b68a1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 88 1 0 "d60cd9aa_083b_4487_8d6218cee02fa4cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 89 1 0 "e86187c0_0d19_453e_be1c5a401d0d5d93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 90 1 0 "d66c2dae_4cc3_4a31_bafe46d1dd63e790" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 91 1 0 "d23f143d_290d_4d0f_b368241a6a9adaed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 92 1 0 "0428e844_3191_4cde_b7f3544f34c833f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 93 1 0 "a7ca006f_941c_4b31_9749313ad9b4e079" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 94 1 0 "8c97ba72_f880_4504_baee8b8db3d13310" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 95 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 96 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 97 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 98 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelDispense") { // }} "" // {{ 99 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 100 1 0 "909bc255_6ca1_4700_bc102ccb34ae5be4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 101 1 0 "fd48dd93_9f42_4df0_9f659e27a5552543" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 102 1 0 "3ff3f492_86a5_40af_a3deabccbab3898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 103 1 0 "3cbb883f_48ae_40fe_afe67da944df94b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 104 1 0 "ab1033bc_1216_450a_9fb60655a1f1a21a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 105 1 0 "0bc1541f_26d5_44d6_8db6ae336fec17bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 106 1 0 "8c10cc29_c05e_4cea_9ed559249651e805" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 107 1 0 "3e0373da_7c7c_46ab_9b77fba19915662e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 108 1 0 "b98fdc49_cdcb_4f3c_81df0b76eafa1411" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 109 1 0 "7458d32a_402a_4215_b52378c78468ec80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 110 1 0 "5e14f2ce_c932_474b_be03f3c043c700e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 111 1 0 "c2010d1d_5a78_4871_a835a6613a1237bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 112 1 0 "d4a6e6a3_0158_45f1_9c359d8e48e01bed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 113 1 0 "011e9828_5413_40c1_80d0c3bdde1c6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 114 1 0 "2d7a4942_b2ce_43a2_8decf49fa0c9576c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 115 1 0 "ad9f0bbf_e495_41c5_898a3be32bb16f2b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 116 1 0 "5c734886_aa50_424c_b89f6894bc37dd8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 117 1 0 "d1bc00cc_4286_4409_b1c49b6350e7e6ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 118 1 0 "b178ce99_db9e_4453_bed28d4ce0457bc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); // }} "" // {{{ 119 1 0 "1b38ad88_3c65_4e58_812f9ed32ce32485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{{ 120 1 0 "f34066f1_63f9_474f_8a9c41e56962dc74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 121 1 0 "6b94916e_355b_4ee9_8eb4f1b49c95fea4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 122 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 123 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 124 1 0 "e962dd26_3672_4418_bd3c40e9929929eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 125 1 0 "6257966a_6b39_41c8_a057a79b8e39cd4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 126 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 127 1 0 "3f230e40_8bd9_4235_b88cd0ca80799661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 128 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 129 1 0 "8d82ff40_d831_430b_97d97c01d2a4474e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 130 1 0 "ac0ad5a7_d00b_46fe_a18f94f8dab3863c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 131 1 0 "b7f86b6c_03a4_4e12_a05e5e8bdc958b75" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 132 1 0 "9bfa8704_2ae0_4a63_83d09fddbacfd336" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 133 1 0 "860b660a_6947_4c88_a2a039bf65040bf5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 134 1 0 "797f0eef_5bb2_4a2e_a178af74f4892bd7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 135 1 0 "2753c24e_c4dc_402d_866b6bc8691ecc1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 136 1 0 "1ac127fd_b830_496f_b4d4b9671137ebff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 137 1 0 "3ee5d751_d3a5_468a_b539c4f0ff22023e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 138 1 0 "b86d492c_446f_4921_97140cfd462ace87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 139 1 0 "e049946d_6322_4b39_9c46a2d0eb345528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 140 1 0 "531432f5_ef8a_416e_8be28a07ae9b0d25" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 141 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 142 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 143 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 144 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipEject") { // }} "" // {{{ 145 1 0 "69be671e_7cdd_48d3_af136435754c1d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 146 1 0 "f3444c0f_4863_4fdd_94a025b682d8a6d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 147 1 0 "12ad2f39_c160_4afc_9f6ffce7e3ddb433" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 148 1 0 "2883bb64_2fe3_47ca_996e11434afc57cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 149 1 0 "10c3b13e_7129_4cfd_b88b29d0bbc31a28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); // }} "" // {{ 150 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (useDefaultWaste == 0) { // }} "" // {{ 151 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 152 1 0 "655bc92f_08a8_4c16_a0276997aec081ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 153 1 0 "a3a0b5ef_85c0_4552_a28b3356d7886eb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 154 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 155 1 0 "efadb8c3_c431_4ed4_a739a951c05ee518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 156 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 157 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 158 1 0 "2dda50b6_7f82_4e8a_a1d203715119213a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 159 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 160 1 0 "7fa61e34_a1f2_4b99_8f6bed13c6ce120f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn); // }} "" // {{{ 161 1 0 "a7db5128_f8e4_4afe_81f46b2cc86e608d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject step return:"), o_stepReturn); // }} "" // {{{ 162 1 0 "683607f4_928f_4cea_b901fe3502404424" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 163 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 164 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 165 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 166 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 167 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 168 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipPickUp") { // }} "" // {{{ 169 1 0 "1f82c33f_a085_47cc_85dbbde3e42a53c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 170 1 0 "9f9fe665_47a2_4a12_961460021d1f09f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 171 1 0 "743960d2_9d0f_4ccf_848662247e3211c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 172 1 0 "b737602c_63e8_4c4c_b47f40cb815914ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); // }} "" // {{ 173 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 174 1 0 "00bd1831_c335_40f5_b706f0ffadbe2890" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 175 1 0 "1f16418c_8fa7_44a5_a6db75dd9a79ee84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 176 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 177 1 0 "b66db4eb_9e79_4c19_909fd8d14d37cba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 178 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 179 1 0 "f3e7cbf6_0242_4463_8d4ed0db4667f7db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2); // }} "" // {{{ 180 1 0 "b080a5c6_324c_4aae_b5899dede6d863f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 181 1 0 "aa5a9c4b_0377_46ce_9b46883db15cbd7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 182 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 183 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 184 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 185 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Aspirate") { // }} "" // {{ 186 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 187 1 0 "373f30c8_ec07_4298_94d6ac75358ab1ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 188 1 0 "ef3ae377_e985_4ef6_93b005aa91c9b2b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 189 1 0 "d8eea65a_6e59_4c32_a47bae09779f9528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 190 1 0 "8eb02312_a070_491c_9758b3cdbdee0cfc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); // }} "" // {{{ 191 1 0 "6eaf8bee_b53f_4f01_87c1380bc345e386" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 192 1 0 "d9923a2f_e7cf_4f3e_81746e378a20baab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 193 1 0 "2c411993_e3fc_4753_9a90308b226078a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 194 1 0 "5d900896_b2b9_442b_b24294b9bbfbdaad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 195 1 0 "21149e9e_21c9_4ddd_93e07b693e3ab3fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 196 1 0 "bcefef03_102b_4887_adad59c2fb7ad551" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 197 1 0 "9665b0a3_35e8_47e9_b14ac1a4818cfa6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 198 1 0 "ff93d28b_afe9_47e7_9b6eb50d6845384f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 199 1 0 "ef43b824_fd38_42d4_9e932904dbf14813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 200 1 0 "b0378457_e370_448b_bfd6955c05e57bcb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{ 201 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 202 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 203 1 0 "615bcff6_e9d5_4303_a5d5826b2e2548dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 204 1 0 "cf4ad428_945e_4921_9441ee34cf9c96bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 205 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 206 1 0 "86397ec2_2ee5_4ec1_8bec47d8e87584b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 207 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 208 1 0 "48f88263_72c1_4df2_865181cffed9feee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 209 1 0 "f1b764e8_e556_4d08_bb83bdc12dc64a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 210 1 0 "164c104a_cf5f_46de_b23a098a18b3fdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 211 1 0 "ee779f77_51a9_46d7_b58b7bcaf13519f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 212 1 0 "e874eb6d_1e97_4590_95d9b10cb059c935" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn4); // }} "" // {{{ 213 1 0 "0ca1df86_a344_45fd_b384e13ba44c5ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 214 1 0 "2497228e_672e_4c95_9f31679fe87bbe1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 215 1 0 "e4930eee_c625_4acb_a81c05e149a1a218" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 216 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 217 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 218 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 219 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Dispense") { // }} "" // {{ 220 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 221 1 0 "78cba921_2a37_4b4a_91ef7fbe81fcddd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 222 1 0 "b58b4cbd_16e9_4444_9037061e29bc5614" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 223 1 0 "0ab910ec_826d_4c84_bac7ed9564f3bdab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 224 1 0 "84d664b7_70d0_4136_bdfd4de2aa760ad8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); // }} "" // {{{ 225 1 0 "18becc6a_2df4_4281_8b16ade9038979f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 226 1 0 "68c565db_e5ed_44e8_b3846a1d98034e76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 227 1 0 "6a4221a8_9488_48f9_8381b1bc0f0c960d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 228 1 0 "45dcb271_e326_42fc_b8684816d3ffdc93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 229 1 0 "14552b13_e77b_4fb7_9020445ecc5ade21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 230 1 0 "91783f87_af6f_446e_a74fb1725f17d282" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 231 1 0 "e2e7f702_1710_49eb_9b1046dbf4f143e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 232 1 0 "1817aa70_86fa_4318_a8e46569701623e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 233 1 0 "50bd6734_10d5_4291_b40eb708539514fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 234 1 0 "ad5fbb01_d809_4b7d_b858ed597709f28f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 235 1 0 "09566247_6b2d_4c73_b43fe303a30f89c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 236 1 0 "3ead74f7_3b5c_4b21_84d2488c2eceab73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 237 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 238 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 239 1 0 "835f8470_7e8c_40ff_a48abcc85d6b778b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 240 1 0 "059394fc_e924_4d57_b1b85f79f9947fa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 241 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 242 1 0 "6c4be3a7_a450_459c_90545a208f9f459f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 243 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 244 1 0 "c164a94e_2926_462e_9487870d403fe8b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 245 1 0 "86c0fb85_8aaf_4bec_9f6f1f642206487f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 246 1 0 "77047add_8050_4522_ad477b97455a8327" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 247 1 0 "5b2c6f23_9a69_489d_b52179c78c03e48f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 248 1 0 "a9a9244b_829f_4c5b_9a64f1018b029453" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn4); // }} "" // {{{ 249 1 0 "781580a9_199e_4373_b48bb55a97f8a463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 250 1 0 "1867ae44_25f8_4926_ae081e490fd5aa0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 251 1 0 "dbb3b30c_b4a1_4cf6_a24b62b63f155369" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 252 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 253 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 254 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 255 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipEject") { // }} "" // {{{ 256 1 0 "7cf9db16_d78c_4aa0_825cc3c2c22f287c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 257 1 0 "ccca7a97_c22a_4f20_b2d9a60d67850eee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 258 1 0 "a319f75e_77eb_4845_856516ce060213f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 259 1 0 "d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); // }} "" // {{ 260 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipEjectToKnownPosition == 0) { // }} "" // {{ 261 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 262 1 0 "24eeb6dd_1e20_422c_a1a8199cbca73b33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 263 1 0 "5197334f_cde5_4d52_9c528a0c4f7401b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 264 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 265 1 0 "110b82e1_8a5b_48e4_a3adbab701cffc8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 266 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 267 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 268 1 0 "fa32bbf8_8345_4897_aaf09d112d374893" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 269 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 270 1 0 "ef087a4e_684e_4d98_87109abf154fbc85" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2); // }} "" // {{{ 271 1 0 "328216cf_22dd_47a1_9f1ba089b1ac7702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn); // }} "" // {{{ 272 1 0 "53265943_7975_4275_ad98df313054f97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2); // }} "" // {{{ 273 1 0 "c13d9773_7daf_4c3c_9064fdd4f7c7008f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 274 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 275 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 276 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 277 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 278 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "loadCarrier") { // }} "" // {{{ 279 1 0 "76d739d0_ff4a_490b_9c47f411d29ef7a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 280 1 0 "ca623aa7_ed48_45fa_9f4055fb8e08c3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); // }} "" // {{{ 281 1 0 "64a8e193_7e7e_412e_8a0657f0e832eaef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); // }} "" // {{{ 282 1 0 "39e6aaef_5cce_4915_b5b6ede214c7371e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs); // }} "" // {{{ 283 1 0 "1d4d284f_fd1e_4f8a_a2158846ad6a67f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Load carrier step return:"), o_stepReturn); // }} "" // {{{ 284 1 0 "358b7fc3_40a2_418b_9d61d94eef1556f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 285 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 286 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 287 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 288 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "unloadCarrier") { // }} "" // {{{ 289 1 0 "797d23a7_c62a_471a_a52b10fea8bcc154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 290 1 0 "f1c35790_adb7_49eb_a96864d8b1d66cea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn); // }} "" // {{{ 291 1 0 "6e6ded71_3f99_46c5_9362117beb502a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn); // }} "" // {{{ 292 1 0 "8713fee4_6b93_4296_a5396254fd404d52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 293 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 294 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 295 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 296 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 297 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripGet") { // }} "" // {{ 298 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 299 1 0 "c4847ae5_e161_4f23_aa432eda22de28bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 300 1 0 "022a5cdd_3f4f_4e18_927c174fc57a68a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 301 1 0 "3e462067_5eb3_49c3_b7bf6a27de9ce3bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 302 1 0 "f7004881_3f0d_4621_a88d55dec8fc0d30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 303 1 0 "262b36ba_6d86_4009_bdc9a3881db7074e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 304 1 0 "be44b37f_7cec_4f69_81c223f2c30b120b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 305 1 0 "3dea3158_65f8_44bc_8d06a31ce3458dab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); // }} "" // {{{ 306 1 0 "308b2aa2_5970_4692_858049c6559d6ad0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 307 1 0 "756d0f81_3645_4a49_a0c2259581e11498" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 308 1 0 "cdbf11ba_b1f8_4016_811240a02705f1fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{{ 309 1 0 "625df597_c6c8_4e4a_b956e9580bfbc568" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); // }} "" // {{{ 310 1 0 "3576d134_8507_4e47_9c2bcc3dce8c026d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 311 1 0 "5b9c06ad_9081_4b6b_97e50cc87623b888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 312 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 313 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 314 1 0 "d1f3c2ac_9c68_4200_a3506bbbed8e42a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 315 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 316 1 0 "f1d1c43b_a9dd_4573_a69dd7c0e79eea40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 317 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 318 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 319 1 0 "4d304110_107e_412e_909bb84008a244de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 320 1 0 "8f8b1ba1_af12_4cdd_acf2096420ede259" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{ 321 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 322 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 323 1 0 "72e31f7d_c091_4525_a5cf7001754b199d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 324 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 325 1 0 "47dfcbb5_d784_48bb_b36b97509434a3a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 326 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 327 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 328 1 0 "e6c53925_446e_468e_b0e0654b4b9d9a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 329 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 330 1 0 "c0cbb194_1b8b_4fe0_a0f706e03eaa0748" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 331 1 0 "46703217_a28e_42ce_b13c11d73ba34bfa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn); // }} "" // {{{ 332 1 0 "189164cc_2681_492f_83f072fb537648b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn); // }} "" // {{{ 333 1 0 "c8d6960a_f416_47b1_a29e2752973c0ec9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 334 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 335 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 336 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 337 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripMove") { // }} "" // {{ 338 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 339 1 0 "5755c338_faa3_4f0a_9acd4cd01a912862" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 340 1 0 "2849c819_a3dc_4328_8484ccc4785993d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 341 1 0 "32f0a8f9_3af2_42a3_90f246cc874e0e8f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 342 1 0 "791b6e1a_07b8_49cb_8122670d0871189f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 343 1 0 "036d0d84_e161_4b03_8b828dcb6b44e437" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{ 344 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 345 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 346 1 0 "e038f780_938f_4867_98f769488ca44b04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 347 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 348 1 0 "6bd2d2a1_1051_4443_a1af9b68df2876b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{{ 349 1 0 "3d8767e5_5f31_4ce5_91a11e28045ec87a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 350 1 0 "e9e0b38e_13aa_40f9_8e470eb1de09eb19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("wrong"), Translate("nowwrongere")); // }} "" // {{ 351 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 352 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 353 1 0 "064a5c1b_f450_44d6_a2042ebde115527d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 354 1 0 "ee8b8050_164a_4de8_b6ce02120236efbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 355 1 0 "be0898fe_cdb8_4ac3_a9e991e26bdb6658" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here"), Translate("now here")); // }} "" // {{ 356 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 357 1 0 "ca4b75ee_26d9_4a3b_8e3366d575348125" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 358 1 0 "ea0afc75_5bc7_4c06_ac73c2f4d5f887a0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 359 1 0 "1965d128_c7f1_4206_87e4ca1ce70c1dff" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 360 1 0 "615cbdd3_e5f2_4bc0_bb3661a2482eb770" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 361 1 0 "86fc0696_8c53_4c05_a9c0eaa58f279054" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 362 1 0 "90f602a1_fdc5_48fd_801269ecd2c3f9bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn); // }} "" // {{{ 363 1 0 "dc418b75_2d70_4034_84a767fba752b262" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn); // }} "" // {{{ 364 1 0 "ae4414d3_a939_4fdb_a0ed06f1be1506e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here here"), Translate("nohhere")); // }} "" // {{{ 365 1 0 "6379549c_caf9_409f_b293abf77f1dcfbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 366 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 367 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 368 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 369 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripPlace") { // }} "" // {{ 370 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 371 1 0 "6f38d60b_6dc5_4159_ba30360f264222da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 372 1 0 "b6ef73cf_c89c_41cc_a3b72dc5aaf70f90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 373 1 0 "c7e5f5bd_edcc_4000_9be3db81af0c79fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 374 1 0 "91ff4c39_6a86_4eda_998a5461ef6c3cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 375 1 0 "341a6f8e_b4c8_4966_b9520322d1bc2e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 376 1 0 "32792c80_3b36_4a25_8fff6b99bfcf1919" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); // }} "" // {{{ 377 1 0 "b1e5d86e_c659_4d33_9e0f83fdb20b2cb5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 378 1 0 "76b26748_4e74_45f7_85a7dc102b5fd7b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); // }} "" // {{{ 379 1 0 "ee221e8a_a662_49d8_be2ef0ed631d9527" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 380 1 0 "cbefd54c_5f0a_4a16_a0199198529b71fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 381 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 382 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 383 1 0 "ac4e7090_c3c7_4707_8d98dc55262c294b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 384 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 385 1 0 "eb5776ad_c858_4ee8_ba31f47af19e76af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 386 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 387 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 388 1 0 "1f3eb006_1b10_427e_99d0b530f1afc2ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 389 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 390 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 391 1 0 "a04c5993_bf3e_46c7_92f24c8236636b00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 392 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 393 1 0 "2455f68c_be4e_4a21_9e9e78f78f6e8e3c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 394 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 395 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 396 1 0 "ad5d98b0_9e3d_4275_90ceef06ceca045d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 397 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 398 1 0 "3321537f_63fb_48a4_90e40a2fee1cc432" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 399 1 0 "8c7e60df_f040_45c6_a939d99bcd0ac23c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn); // }} "" // {{{ 400 1 0 "24e589a9_98d7_429d_90c8afe203e96ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn); // }} "" // {{{ 401 1 0 "9d94d038_d071_4339_aaace5a2e455b240" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 402 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 403 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 404 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 405 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 406 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 407 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGet") { // }} "" // {{ 408 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 409 1 0 "4a585a30_3a23_44cc_a0948963de716cba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 410 1 0 "da3a318b_1208_4329_be1faae95ecc2e03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 411 1 0 "1f51589f_347c_497b_a7338461d92076d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 412 1 0 "622e6765_4ee3_4df5_917ca140f8b7981b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 413 1 0 "9826612b_e564_4231_8f83fdfcbd374bdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 414 1 0 "fdb52557_ae6c_42b3_925073ab7ae7a5ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 415 1 0 "171639e0_98ad_4857_a5ac346039499a33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 416 1 0 "0d4077af_b1dc_4dea_a23a163c57d96248" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 417 1 0 "60732b74_8870_48e2_be03564159cf35b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("inverseGrip"), inverseGrip); // }} "" // {{{ 418 1 0 "ffa21840_da03_4682_b62a6910caf63f45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 419 1 0 "0af9b15f_4e1b_4353_a6261def96fea256" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{{ 420 1 0 "c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 421 1 0 "74d93b97_5d7f_4593_9aeb9d83d5466e6f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{{ 422 1 0 "28d636c0_47c0_4fac_8a7b67124fd8b9f5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 423 1 0 "6f62025f_9dde_4ae6_a6b6b69efed6e381" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("tolerance"), tolerance); // }} "" // {{{ 424 1 0 "f3d51abd_651e_4b15_93eb0cea0c0384be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 425 1 0 "1b72eb1e_c220_42e0_9a34675ddc971fe7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{ 426 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 427 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 428 1 0 "fd3fbb06_b08e_4790_8e3b785ca1f8ed4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 429 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 430 1 0 "87331d5f_01ff_43a8_a0a06487f28bb2b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 431 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 432 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 433 1 0 "5f12c00c_48c1_4e2f_a24b4ba435343a8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 434 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 435 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 436 1 0 "d3e5718a_eb78_4c1f_a6467f61ccbe82df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 437 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 438 1 0 "8ebcf09f_a943_4769_b3c659e368019a32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, lidSeq); // }} "" // {{ 439 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 440 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 441 1 0 "8ce5efe3_4525_4c77_bb64f9d8dcfb6a62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 442 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 443 1 0 "8ac111e1_df50_4fcb_b465e737713459d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn); // }} "" // {{{ 444 1 0 "d9104246_d843_4a6d_85a64aa07d019020" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Get - step return :"), o_stepReturn); // }} "" // {{{ 445 1 0 "7831c2d8_4b59_455a_a0dc5cae20f325a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 446 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 447 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 448 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 449 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapMove") { // }} "" // {{ 450 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 451 1 0 "3c315cea_4ff8_4efa_8e4a5cc86a9d84d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 452 1 0 "4e2cf15d_267b_47e0_895c36b714787e13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 453 1 0 "24d68fc9_cd59_471b_9c663c4121d1a931" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{ 454 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 455 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 456 1 0 "d372f898_6d32_4d80_ab4d58340d18681d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 457 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 458 1 0 "9e573132_bd29_4d08_a1784d0e26c48700" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 459 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 460 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 461 1 0 "48db1de6_2a87_4224_b1f13fa2a75b490a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 462 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 463 1 0 "1e8e9562_41c0_4df5_9de945c44d1e8d61" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn); // }} "" // {{{ 464 1 0 "a5de7c97_d49c_4f04_b1414f1aaace7f84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Move - step return :"), o_stepReturn); // }} "" // {{{ 465 1 0 "6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 466 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 467 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 468 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 469 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPlace") { // }} "" // {{ 470 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 471 1 0 "18e9697d_0efb_4840_94a65e2a82b4ca69" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 472 1 0 "b0c35970_122b_4119_92c3801f4b8e980b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 473 1 0 "6ed697af_a110_4104_941633e154ff0071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 474 1 0 "fec1982e_3636_412d_af2eda243438f7ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 475 1 0 "21de27ac_9dc3_415b_b1d1e49e80c53591" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 476 1 0 "652aeaa7_9a2f_4c11_8bc1fc58a97ffed7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 477 1 0 "e88a5df4_d9ad_4231_89a5a03f88d0ce77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 478 1 0 "8c5aee51_3156_4fcc_b1b167552b73476f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 479 1 0 "8c257b39_8c0b_410d_a4a4e38df904008c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 480 1 0 "91e9f4c6_b7fe_4b15_83c830df3385398a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{ 481 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 482 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 483 1 0 "226bb6d1_37a1_4076_9d96fb9df69c6068" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 484 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 485 1 0 "ec2fd48b_eab9_491e_867c0fc335eea81c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 486 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 487 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 488 1 0 "e590d9b6_f690_48db_b0109a10c228d5ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 489 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 490 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 491 1 0 "82559320_1e13_40c9_b283fdfa804df6a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 492 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 493 1 0 "420daa28_bf45_407a_bd576559af75c5d0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 494 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 495 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 496 1 0 "3ed6b704_3649_4c7d_8e7d30bdb038feab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 497 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 498 1 0 "41a130e8_a745_4a20_b124272093bf38e7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn); // }} "" // {{{ 499 1 0 "b4bdf08c_e218_4bec_98c0f41e6ec3a218" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Place - step return :"), o_stepReturn); // }} "" // {{{ 500 1 0 "346b983b_d261_4447_a7cebf782db4b4d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 501 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 502 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 503 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 504 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPark") { // }} "" // {{ 505 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 506 1 0 "73602d5e_7f8d_45dc_9c1f21d41c39d0bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("showCollisionCheckDialog"), showCollisionCheckDialog); // }} "" // {{ 507 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 508 1 0 "acf5767a_7e39_4072_8e062928938984cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{{ 509 1 0 "96b1bdf6_a3f3_4530_844fc77cbf7fb944" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 510 1 0 "d03fdac4_224f_4174_924fb518a623bf65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 511 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 512 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 513 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 514 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGetFirst") { // }} "" // {{ 515 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 516 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 517 1 0 "5f9f4b8d_3b3a_48ee_89ef334a70dcb72e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{ 518 1 0 "65648900_32b3_4035_9eb5916a3314f7e9" "ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}" { variable arrRetValues[]; arrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40("65648900_32b3_4035_9eb5916a3314f7e9"); // GetFirstPlatePosition } // }} "" // {{{ 519 1 0 "63380bb7_5afe_4d65_9dc5cdf334590b4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 520 1 0 "cdb18c48_14d5_430d_9f7202f782e069da" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 521 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 522 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 523 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 524 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 525 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "FirmwareCommand") { // }} "" // {{ 526 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 527 1 0 "5f5e5c89_0c1a_497b_80c550dbc4676208" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate("FirmwareCommandList")); // }} "" // {{ 528 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(CommandListElement = 0; CommandListElement < CommandListLength;) { CommandListElement = CommandListElement + 1; // }} "" // {{{ 529 1 0 "2c2e9953_5968_4384_8b2dad24b0960278" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate("FirmwareCommandList"), CommandListElement, FirmwareCmdDict); // }} "" // {{{ 530 1 0 "7f4d5cda_c10f_4317_ba7613cd10d2e90d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareCommand"), FirmwareCommand); // }} "" // {{{ 531 1 0 "cf155262_dfb4_46b4_aff762c7b4c18d8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareParameter"), FirmwareParameter); // }} "" // {{{ 532 1 0 "471df283_02f5_4daf_9c83999e3b1fd8e1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn); // }} "" // {{{ 533 1 0 "0b8e6d49_655f_42a7_bcfdeac76a40c6e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 534 1 0 "f49f31b3_d742_44ae_a6a076108c3f9ab4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 535 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 536 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 537 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 538 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 539 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 540 1 0 "2777cb67_3095_437b_9b54d34ead8fcab2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 541 1 0 "c397d56d_00f8_4e32_bf71c20e91dcac17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ConnectIP") { // }} "" // {{{ 542 1 0 "b450ee5c_4bce_435e_b562523f18ce0142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("InstrumentName"), InstrumentName); // }} "" // {{{ 543 1 0 "13c30b43_9a94_4cd1_a907aa21f01057cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PortNumber"), PortNumber); // }} "" // {{{ 544 1 0 "68ec12ae_0e01_4827_9460e39fddef7f4d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 545 1 0 "7c482f87_e50a_44d8_88516cf7d087dbde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MPEOptions"), MPEOptions); // }} "" // {{{ 546 1 0 "8d4e01b7_ef9e_4570_a2e08f31ecacc259" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingIP(InstrumentName, PortNumber, SimulationMode, MPEOptions, DeviceID, o_stepReturn); // }} "" // {{{ 547 1 0 "005f0b12_4fb1_48ba_bcfeb961b9419149" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeviceID = StrIStr(DeviceID); // }} "" // {{{ 548 1 0 "51077fef_f212_48a6_8f6c43d7d5f5df97" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 549 1 0 "97ff097f_9089_4ac0_82438cbd6f0a9c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Translate(""), Translate(""), id); // }} "" // {{ 550 1 0 "c397d56d_00f8_4e32_bf71c20e91dcac17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 551 1 0 "2777cb67_3095_437b_9b54d34ead8fcab2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 552 1 0 "62a26733_db4f_440f_9fb51db5fef61711" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 553 1 0 "0098c030_fe6b_49bb_92b77ef5a5c7372d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ConnectCOM") { // }} "" // {{{ 554 1 0 "e8776203_e1ed_4373_8a427cb0d8b8d29f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ComPort"), ComPort); // }} "" // {{{ 555 1 0 "4c600ed2_a490_4f3e_bdadfe3b174db193" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("BaudRate"), BaudRate); // }} "" // {{{ 556 1 0 "e77abf5c_e94e_469b_82ea0f774615a671" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 557 1 0 "aaebc2c7_eafc_456e_83386035ed203694" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MPEOptions"), MPEOptions); // }} "" // {{{ 558 1 0 "3b2a8a1c_5b74_4668_b7a5ca974a7658b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingCOM(ComPort, BaudRate, SimulationMode, MPEOptions, DeviceID, o_stepReturn); // }} "" // {{{ 559 1 0 "1a9f7ef9_8c04_4517_8d26efaa81d3eff7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 560 1 0 "104f0498_cc9f_4508_8f28e3b53675ef53" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 561 1 0 "0098c030_fe6b_49bb_92b77ef5a5c7372d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 562 1 0 "62a26733_db4f_440f_9fb51db5fef61711" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 563 1 0 "94f49f46_ad96_4874_9148653f8fa3302e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 564 1 0 "1abd6ad0_87b9_4459_b74e20f9717ebd2b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ClampFilterPlate") { // }} "" // {{{ 565 1 0 "bdc39916_5944_49a4_846784d94f27267f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 566 1 0 "cf252c80_073f_4e8b_85e84a546e80666b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ClampFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 567 1 0 "16a9c218_a7c3_403c_a7c005e96566f8d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 568 1 0 "de8afcf3_ec32_4067_895aceb7a7a650eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 569 1 0 "1abd6ad0_87b9_4459_b74e20f9717ebd2b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 570 1 0 "94f49f46_ad96_4874_9148653f8fa3302e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 571 1 0 "d19e0aae_3b5d_4b88_9b9fa6cd22d67f22" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 572 1 0 "421097a4_a57a_4dec_8b9257b5d77233e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_CollectionPlatePlaced") { // }} "" // {{{ 573 1 0 "ae857f70_e319_4ada_a8b086f120e84247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 574 1 0 "a173d887_781c_4262_9fa6c81e253bd32c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CollectionPlateHeight"), CollectionPlateHeight); // }} "" // {{{ 575 1 0 "7e167a7c_dfb2_4798_814039b7430ccbae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("OffsetFromNozzles"), OffsetFromNozzles); // }} "" // {{{ 576 1 0 "aa2d8e6c_c878_40f1_a1325cb8fe399514" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlatePlaced(DeviceID, CollectionPlateHeight, OffsetFromNozzles, o_stepReturn); // }} "" // {{{ 577 1 0 "6ad949b9_e02e_4686_be660950f5282aee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 578 1 0 "99fa8dd5_ac5f_4d13_91fb69b65d2bc0ea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 579 1 0 "421097a4_a57a_4dec_8b9257b5d77233e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 580 1 0 "d19e0aae_3b5d_4b88_9b9fa6cd22d67f22" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 581 1 0 "21b7e081_f229_400f_9a51a8b8a5412447" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 582 1 0 "b7625009_1717_4db6_8d24209ff3b8dbb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_CollectionPlateRemoved") { // }} "" // {{{ 583 1 0 "fc436f5c_aaba_4906_a4074c83d00f028c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 584 1 0 "65ba4a03_7064_45c5_8ae9ffb86a3234b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlateRemoved(DeviceID, o_stepReturn); // }} "" // {{{ 585 1 0 "39ef177a_96d2_411f_97c648ff2ed91ea8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 586 1 0 "cbdb85be_569e_40cb_93e3582de4fd718f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 587 1 0 "b7625009_1717_4db6_8d24209ff3b8dbb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 588 1 0 "21b7e081_f229_400f_9a51a8b8a5412447" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 589 1 0 "38689ea3_dc56_4d7c_88d585797b9d957e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 590 1 0 "ee3d4b03_3d8c_4718_9f927c1855c7346e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Disconnect") { // }} "" // {{{ 591 1 0 "acfb16ed_a9d1_4a63_a9c0106aff00758d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 592 1 0 "f0cbe63d_fe07_4cc6_8bcb70bf9c7de9ec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn); // }} "" // {{{ 593 1 0 "b23baddd_cdbc_45fd_8c093ab349a937f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 594 1 0 "1695a8ad_2f0f_48a1_a9d8534daaa45c88" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 595 1 0 "ee3d4b03_3d8c_4718_9f927c1855c7346e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 596 1 0 "38689ea3_dc56_4d7c_88d585797b9d957e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 597 1 0 "45f798d0_f63a_4141_9f0512725c85b742" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 598 1 0 "3d8efec9_ac55_4f4d_90f0259610f7394d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Dispense") { // }} "" // {{{ 599 1 0 "d9eb3796_7e12_47f9_b6636e222cb5d878" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 600 1 0 "b1b7d9a5_44ce_4588_b1315c2c2c0a6d6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 601 1 0 "e9efebdb_3e29_4a1f_9a03447005f6b247" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 602 1 0 "6812297a_3eee_4055_8de5373a96f6eb0c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 603 1 0 "b6c33a7b_d31f_4f02_8921532db5005869" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), NeedleOffset); // }} "" // {{{ 604 1 0 "f78d0de5_185c_4061_ad416fe94f5dba58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn); // }} "" // {{{ 605 1 0 "01ebd08b_bf22_4edc_b4101325c0ed5d7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 606 1 0 "46be0614_7064_45bf_962fe4fdb2d26ad3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 607 1 0 "3d8efec9_ac55_4f4d_90f0259610f7394d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 608 1 0 "45f798d0_f63a_4141_9f0512725c85b742" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 609 1 0 "c0d12f62_bf0c_4968_8cf8102df9290745" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 610 1 0 "e0397cd6_5fd2_4820_953df1804d2989f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Evaporate") { // }} "" // {{{ 611 1 0 "eff0d502_cbda_4d56_a060ee98b8acfa1b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 612 1 0 "358b8e75_dcca_4656_8f480e051d9768ac" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 613 1 0 "11f40dee_5289_4a85_b3065e4b85d93416" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 614 1 0 "e660629d_9388_44fa_9749984b17a66bc9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellDepth"), WellDepth); // }} "" // {{{ 615 1 0 "3a86a09d_a4ea_4a34_8573e644beb7c6a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 616 1 0 "6cc724c7_a4bf_4c46_948af3e23aaa8758" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 617 1 0 "6bba2cf9_561d_4a3f_87ee7949c7ce3fbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 618 1 0 "d305f425_1c51_43f7_9c5bd6ec76d64b05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 619 1 0 "e0397cd6_5fd2_4820_953df1804d2989f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 620 1 0 "c0d12f62_bf0c_4968_8cf8102df9290745" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 621 1 0 "54c61117_4dde_492d_91df73eafbdbdf0a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 622 1 0 "ea8576f1_52df_4787_b62e82c44a5b6131" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporatePrepare") { // }} "" // {{{ 623 1 0 "04b183eb_df7f_4775_a8db9b61d0822126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 624 1 0 "7ae5dae4_f3fe_42d9_b07c545e18248898" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 625 1 0 "67e84057_0c19_4600_b6bb1cda5b345f8d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 626 1 0 "31ab1ccb_49b6_45ab_886cb04421f727d1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellDepth"), WellDepth); // }} "" // {{{ 627 1 0 "f9f854b4_d03f_44fa_866ecad432e5ee59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 628 1 0 "0e37d7ed_b49b_42c3_b9306b90a8fbecba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 629 1 0 "bdc5441b_5578_4bb1_9a5511f8d6cb37a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 630 1 0 "82509201_581c_4a09_8c1fba65491074b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 631 1 0 "ea8576f1_52df_4787_b62e82c44a5b6131" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 632 1 0 "54c61117_4dde_492d_91df73eafbdbdf0a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 633 1 0 "f877f93d_359e_486f_aabbf156b38c0fd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 634 1 0 "be0cdb40_9439_44c4_9349319653177825" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporateEnd") { // }} "" // {{{ 635 1 0 "661eb571_7a3f_452f_8cd8e71af5633aa2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 636 1 0 "ce6d86eb_0d5e_4931_9b8ae8ab7b99d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 637 1 0 "407cb55f_f828_4adb_b9a1dcfb39934436" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_EvaporateEnd(DeviceID, Timeout, o_stepReturn); // }} "" // {{{ 638 1 0 "3281176b_4d2d_43ea_b218e196deacc5a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 639 1 0 "dc7eb698_c6ab_4bce_b2eae2a106e79c26" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 640 1 0 "be0cdb40_9439_44c4_9349319653177825" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 641 1 0 "f877f93d_359e_486f_aabbf156b38c0fd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 642 1 0 "77175285_9bc0_458e_bdb99486afa263f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 643 1 0 "1d9fee0e_9129_4e05_9387d48ad64ce5b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporateWithRate") { // }} "" // {{{ 644 1 0 "f74fcc26_c2be_481c_9b4822ade43b6399" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 645 1 0 "d104e730_2dfe_46de_9499ec6975f6d3ba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 646 1 0 "ef36faf4_19fc_4253_92c3ba78e66fa81b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 647 1 0 "4e02e5d8_e2c2_421e_9e232b4b54ffc755" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("EvaporateTravelDistance"), EvaporateTravelDistance); // }} "" // {{{ 648 1 0 "d5f4fc63_608e_48f5_be8989e9f0ed73d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 649 1 0 "ce2ba2cc_4f8f_4960_a2120a80bdee1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FollowRate"), FollowRate); // }} "" // {{{ 650 1 0 "72651c9a_a411_472d_9fbc4d5cf13dbe7f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 651 1 0 "6d1ded15_26bd_4832_a66e0a7ed7ae5de8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 652 1 0 "24da9a05_6ec1_4a5d_aa357161406c5b4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 653 1 0 "1d9fee0e_9129_4e05_9387d48ad64ce5b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 654 1 0 "77175285_9bc0_458e_bdb99486afa263f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 655 1 0 "18d62f91_3389_4a05_81dcd2b1f9f35eb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 656 1 0 "5517c3d2_626c_49ed_9f300f5eb7cad266" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterPlatePlaced") { // }} "" // {{{ 657 1 0 "6ad26884_293d_471f_87d63211dbb2130a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 658 1 0 "f712b14e_2361_4388_aaa3d1b6bdd76274" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FilterHeight"), FilterHeight); // }} "" // {{{ 659 1 0 "046c36b4_609e_41ad_802334b853237e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NozzleHeight"), NozzleHeight); // }} "" // {{{ 660 1 0 "9cd1e28f_9f73_4580_933330d72a187021" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_FilterPlatePlaced(DeviceID, FilterHeight, NozzleHeight, o_stepReturn); // }} "" // {{{ 661 1 0 "77cbd1e2_38c4_46cf_8a36d8bf2fd59668" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 662 1 0 "e9b09e36_5025_44eb_8a0241793ecb2130" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 663 1 0 "5517c3d2_626c_49ed_9f300f5eb7cad266" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 664 1 0 "18d62f91_3389_4a05_81dcd2b1f9f35eb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 665 1 0 "a8bdabef_328d_4914_85c9d5a5e206e280" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 666 1 0 "ba1982ca_d913_4372_a876d2c629a3da01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterPlateRemoved") { // }} "" // {{{ 667 1 0 "c8d80340_50aa_42c3_99a4c45d2c5a2e55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 668 1 0 "7ca7dac8_386f_4d72_a80c56436e8d337a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_FilterPlateRemoved(DeviceID, o_stepReturn); // }} "" // {{{ 669 1 0 "7815e103_9108_40ec_8c501ab868674b02" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 670 1 0 "7fab13f9_e6cb_4d15_9c7359f69f1452eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 671 1 0 "ba1982ca_d913_4372_a876d2c629a3da01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 672 1 0 "a8bdabef_328d_4914_85c9d5a5e206e280" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 673 1 0 "d93f150d_eae1_437f_a22a3b0c4c9072e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 674 1 0 "df5f2b51_da1c_47c3_83076cfc5952018e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Flush") { // }} "" // {{{ 675 1 0 "ebd897c5_30b8_4f3b_9955cc2c076a2cec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 676 1 0 "8a5b6ab5_73a5_448f_97d7f2f80f295781" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 677 1 0 "7618744c_4ba2_44a3_af152e17b8f23a82" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 678 1 0 "0b45dbd2_d2ac_4bbc_b063c7256c9e2f37" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 679 1 0 "7ebe8a95_b1cb_40d0_9bbf0caa753020ff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Flush(DeviceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn); // }} "" // {{{ 680 1 0 "f4745c1d_3edb_4f49_9389682fd5db4746" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 681 1 0 "84a474ac_82c0_447e_853e8a0e803cdc9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 682 1 0 "df5f2b51_da1c_47c3_83076cfc5952018e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 683 1 0 "d93f150d_eae1_437f_a22a3b0c4c9072e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 684 1 0 "117f1e32_da28_4bc8_ad90f5a4f2bef282" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 685 1 0 "467d4218_0310_4b7c_a0b5c6ba53779408" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetContainerCalibration") { // }} "" // {{{ 686 1 0 "8399e7aa_cf6e_40a4_94cbfd345e14133a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 687 1 0 "1b0cf945_ddeb_4f68_ad8567b71c28ba9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 688 1 0 "49eec349_8ea2_4006_8740931d862a8cc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetContainerCalibration(DeviceID, SourceID, CapacityVolume, EmptyReading, FullReading, CalibrationDate, o_stepReturn); // }} "" // {{{ 689 1 0 "c87d301f_8a12_4619_b911ef3098a17d58" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 690 1 0 "7e693f5e_19bf_4fe8_93ae99fb04f02aa3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CapacityVolume = StrFStr(CapacityVolume); // }} "" // {{{ 691 1 0 "8d684024_7a1e_41a0_aff0fbb060f288c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" EmptyReading = StrIStr(EmptyReading); // }} "" // {{{ 692 1 0 "e403fc76_66e2_4138_a91ad409fba41579" "{C1F3C015-47B3-4514-9407-AC2E65043419}" FullReading = StrIStr(FullReading); // }} "" // {{{ 693 1 0 "a338088c_aba6_4925_9499261419f3fd32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CapacityVolume, EmptyReading, FullReading, CalibrationDate, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 694 1 0 "467d4218_0310_4b7c_a0b5c6ba53779408" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 695 1 0 "117f1e32_da28_4bc8_ad90f5a4f2bef282" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 696 1 0 "28cc7be8_7ef9_43fd_a8b86cc9f0a88a77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 697 1 0 "883d189a_5580_49b9_92fa9f7ea0b841bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetHeaterStatus") { // }} "" // {{{ 698 1 0 "c3c00992_49fa_4e7a_930d860185676008" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 699 1 0 "a566cb57_a308_4f8d_ab4f730e5a7dcad6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Reset"), blnReset); // }} "" // {{{ 700 1 0 "6c9f1bfd_e7d9_49a3_9ffc43f57d0b87c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetCurrentHeaterStatus(DeviceID, blnReset, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, o_stepReturn); // }} "" // {{{ 701 1 0 "4e871da2_7414_4d04_af1133edc74f8ceb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 702 1 0 "17cbeaea_77c3_429f_852469beae65bff2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CurrentEvaporatorTemperature = StrFStr(CurrentEvaporatorTemperature); // }} "" // {{{ 703 1 0 "99e68adc_1ab2_44c2_99bb0d0791bb4b03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CurrentGasTemperature = StrFStr(CurrentGasTemperature); // }} "" // {{{ 704 1 0 "19ba4b88_434c_4874_adfb9c3ce28707c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Heating = StrIStr(Heating); // }} "" // {{{ 705 1 0 "8bfee3ed_2dfd_4096_95a3693ae02cb98b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 706 1 0 "883d189a_5580_49b9_92fa9f7ea0b841bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 707 1 0 "28cc7be8_7ef9_43fd_a8b86cc9f0a88a77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 708 1 0 "6161ab17_f584_4948_917386b1caf60999" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 709 1 0 "9f1343e7_8811_4e80_a8d30414ee14e3c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetHeaterRange") { // }} "" // {{{ 710 1 0 "ff106776_2ea1_4be4_bf299c1e9f4d6812" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 711 1 0 "d35c7d7b_4e20_4729_898cf76f032dbd77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Reset"), blnReset); // }} "" // {{{ 712 1 0 "eac04ccb_1d2f_4e47_a38e27549db3d0f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetHeaterTemperatureRange(DeviceID, blnReset, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, o_stepReturn); // }} "" // {{{ 713 1 0 "7e058389_5584_400d_af8f7683d9c64549" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 714 1 0 "cef6dc8b_b0ab_4b67_80965a20bad984a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumEvaporatorTemperature = StrFStr(MinimumEvaporatorTemperature); // }} "" // {{{ 715 1 0 "e95a4014_66ab_4bd9_9396f43fb303387c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumEvaporatorTemperature = StrFStr(MaximumEvaporatorTemperature); // }} "" // {{{ 716 1 0 "82d2e7b9_6b0f_4659_b3c4af2260f72b93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumGasTemperature = StrFStr(MinimumGasTemperature); // }} "" // {{{ 717 1 0 "9d086c63_6438_4455_839b70d859d33023" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumGasTemperature = StrFStr(MaximumGasTemperature); // }} "" // {{{ 718 1 0 "1c25f8f9_a087_4d7d_b537d06915cf733a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TargetTemperature = StrFStr(TargetTemperature); // }} "" // {{{ 719 1 0 "e0990ab5_662a_4046_a221118108390ad1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Heating = StrIStr(Heating); // }} "" // {{{ 720 1 0 "f32ac914_9488_4849_9b505cfae76c21a4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, Translate(""), Translate(""), id); // }} "" // {{ 721 1 0 "9f1343e7_8811_4e80_a8d30414ee14e3c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 722 1 0 "6161ab17_f584_4948_917386b1caf60999" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 723 1 0 "cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 724 1 0 "3be8b4d4_175f_4ea5_8a5c403023c23804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetPressureReadings") { // }} "" // {{{ 725 1 0 "d6ee9000_e96e_43ee_be294bac2de3cebd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 726 1 0 "62c2838f_1e9c_4f50_a8986bd6ab2e5735" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetPressureSensorReadings(DeviceID, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, o_stepReturn); // }} "" // {{{ 727 1 0 "9202b3b4_73ed_457a_8a0eb740d92668eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 728 1 0 "49fdda2e_2786_49cf_bbf53a56bb6cf951" "{C1F3C015-47B3-4514-9407-AC2E65043419}" InputPressureSensor = StrFStr(InputPressureSensor); // }} "" // {{{ 729 1 0 "5b345de1_5fff_4ef5_b48fac2958608067" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ManifoldPressureSensor = StrFStr(ManifoldPressureSensor); // }} "" // {{{ 730 1 0 "5083be24_6502_40dc_94e99eb7e72397de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HighPressureSensor = StrFStr(HighPressureSensor); // }} "" // {{{ 731 1 0 "c5d4f5bc_5388_4cac_a5c92cce84c5358c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LowPressureSensor = StrFStr(LowPressureSensor); // }} "" // {{{ 732 1 0 "93af4507_f837_4e4d_bd0cfa9d8f20db45" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 733 1 0 "3be8b4d4_175f_4ea5_8a5c403023c23804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 734 1 0 "cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 735 1 0 "8eb4fcd2_8586_4fdc_9eaa231938c2491c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 736 1 0 "fb5f809e_bea3_4152_8c23efc086a3f4c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetTemperatureRange") { // }} "" // {{{ 737 1 0 "04868a2f_2244_4262_b16ed3464405a2c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 738 1 0 "ac4b978a_8b0e_48c8_bfcc2cb81ada8852" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetTemperatureRange(DeviceID, MinimumTemperature, MaximumTemperature, o_stepReturn); // }} "" // {{{ 739 1 0 "878c4de8_f440_43d6_aa9a22d5f30c96bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 740 1 0 "9643b7dd_1445_4981_82306a0204482dcd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumTemperature = StrFStr(MinimumTemperature); // }} "" // {{{ 741 1 0 "5fb79249_c2be_45bc_a99aecb05a4cef34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumTemperature = StrFStr(MaximumTemperature); // }} "" // {{{ 742 1 0 "57512d47_ace9_4c17_a0287a31498292bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumTemperature, MaximumTemperature, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 743 1 0 "fb5f809e_bea3_4152_8c23efc086a3f4c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 744 1 0 "8eb4fcd2_8586_4fdc_9eaa231938c2491c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 745 1 0 "3f6b43d7_b3e1_4516_9a607047551e5f6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 746 1 0 "6be26021_e618_492e_8a3a5f94a52da0f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetVacuumStatus") { // }} "" // {{{ 747 1 0 "4db40245_36cd_40c8_b0602871bedce402" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 748 1 0 "cdd4bed1_2257_47d3_bb32dfb51dd99311" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetVacuumStatus(DeviceID, VacuumActive, o_stepReturn); // }} "" // {{{ 749 1 0 "434c4447_ccaa_4ae8_b5332ea4a5247979" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 750 1 0 "2758aebe_4437_4436_9ecd66602ecc20ea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" VacuumActive = StrIStr(VacuumActive); // }} "" // {{{ 751 1 0 "1a22fa96_1f2a_4efb_8d4d1070f05128b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, VacuumActive, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 752 1 0 "6be26021_e618_492e_8a3a5f94a52da0f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 753 1 0 "3f6b43d7_b3e1_4516_9a607047551e5f6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 754 1 0 "1fae7e92_6b1f_4f2a_8504e8aba7fe0846" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 755 1 0 "18c78d3a_83f1_4e2a_9721dc575c326856" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Initialize") { // }} "" // {{{ 756 1 0 "18e9c18e_3415_4f68_b3216e3a2bb3a082" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 757 1 0 "5335daba_8a63_418b_8286e19dbc73285e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Initialize(DeviceID, o_stepReturn); // }} "" // {{{ 758 1 0 "e9ab19e3_4828_4ead_93cb698560e3faff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 759 1 0 "67b12292_2128_495d_af7839b207477794" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 760 1 0 "18c78d3a_83f1_4e2a_9721dc575c326856" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 761 1 0 "1fae7e92_6b1f_4f2a_8504e8aba7fe0846" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 762 1 0 "d96ac0b7_1237_4603_ad86dfe4672ef89a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 763 1 0 "0addb922_82a5_48e4_bf52eeb97ac93f2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_InitializeWithParameters") { // }} "" // {{{ 764 1 0 "1c9e6c43_c0a4_4fa5_96eff1d2638b4426" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 765 1 0 "a9676aeb_9a8e_4f87_866088fd8da32782" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Smart"), Smart); // }} "" // {{{ 766 1 0 "b0f5b856_a01f_4937_bce0d90f8e48a0bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 767 1 0 "3d105105_b5a2_42bf_9008c50dfb529abf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("VacuumRunTime"), VacuumRunTime); // }} "" // {{{ 768 1 0 "1b067bb0_12d6_47c9_b86eb44ca7ac70a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 769 1 0 "abffb784_24c3_4278_9404e88b2a184ec3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 770 1 0 "7f31c229_eea4_4ebc_918ad520b4e80270" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 771 1 0 "0addb922_82a5_48e4_bf52eeb97ac93f2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 772 1 0 "d96ac0b7_1237_4603_ad86dfe4672ef89a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 773 1 0 "9e52a7cb_3167_4057_8d24d034c837de21" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 774 1 0 "5875c2d2_c94b_4860_9be1bc9f16bd64b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_SetSourceConfiguration") { // }} "" // {{{ 775 1 0 "77c0d7cc_1c53_47b5_af15f1eb5743701e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 776 1 0 "1150d6cb_b379_4fab_8bf98a17ac6ed92c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_SetSourceConfiguration(DeviceID, o_stepReturn); // }} "" // {{{ 777 1 0 "2ba32cb4_0177_497e_9a7f398e17134a01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 778 1 0 "a2b6bb52_3165_4bb9_986611d0b8594d1c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 779 1 0 "5875c2d2_c94b_4860_9be1bc9f16bd64b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 780 1 0 "9e52a7cb_3167_4057_8d24d034c837de21" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 781 1 0 "cf140f83_9405_4c31_aac2bda7e3c3644d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 782 1 0 "125ed949_ace4_48a0_a45208b5a26a9545" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetSourceConfiguration") { // }} "" // {{{ 783 1 0 "24cc9f9b_b984_4405_80b21f8bbad2c171" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 784 1 0 "105846b6_bda2_49d7_bb68c38e99c676ce" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetSourceConfiguration(DeviceID, o_stepReturn); // }} "" // {{{ 785 1 0 "8fd730db_f3ad_4187_819383f962b15dec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 786 1 0 "d5402a0c_e7d8_4021_98f2bc49164541bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 787 1 0 "125ed949_ace4_48a0_a45208b5a26a9545" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 788 1 0 "cf140f83_9405_4c31_aac2bda7e3c3644d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 789 1 0 "f0e280e8_46c7_4f0f_bce33a9d98578e01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 790 1 0 "656f66da_3ff6_4ceb_b3958dda3e826289" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_MeasureEmptyContainer") { // }} "" // {{{ 791 1 0 "23e6b66b_51c5_44d2_8107b570ab035bb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 792 1 0 "c791ded2_4daa_4097_811ad01cd9dbd85e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 793 1 0 "d4c8df90_fdb5_4fb4_a5ffe9e46525c9a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_MeasureEmptyContainer(DeviceID, SourceID, SensorReading, o_stepReturn); // }} "" // {{{ 794 1 0 "6766bf7d_aaa7_44dd_beb7bd1925733781" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SensorReading = StrIStr(SensorReading); // }} "" // {{{ 795 1 0 "f566d5c3_5839_4a53_aaa0e7e76d6a96d6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 796 1 0 "ca746d4d_adf9_4d6d_b0172f1cb9e3cefe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(""), Translate(""), id); // }} "" // {{ 797 1 0 "656f66da_3ff6_4ceb_b3958dda3e826289" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 798 1 0 "f0e280e8_46c7_4f0f_bce33a9d98578e01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 799 1 0 "5be53554_4034_4654_a74514eb0d84e4a0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 800 1 0 "ce68b054_3aea_4f0f_9742872cca60f368" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_MeasureFullContainer") { // }} "" // {{{ 801 1 0 "7ad49fa3_f8ed_4826_8c29ea54aff99447" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 802 1 0 "636296bf_cd25_4c6e_a97120b96714e0a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 803 1 0 "1025d7d1_0cb5_4c03_93a47206d7a73279" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_MeasureFullContainer(DeviceID, SourceID, SensorReading, o_stepReturn); // }} "" // {{{ 804 1 0 "14a2a705_9362_44f9_aacee14e4189bc2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SensorReading = StrIStr(SensorReading); // }} "" // {{{ 805 1 0 "64c67d08_dac7_49dc_8a3082c4658649d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 806 1 0 "08dbfd92_e2cd_4c53_8d8b8afb8f41b76a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(""), Translate(""), id); // }} "" // {{ 807 1 0 "ce68b054_3aea_4f0f_9742872cca60f368" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 808 1 0 "5be53554_4034_4654_a74514eb0d84e4a0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 809 1 0 "9e79226f_dd2d_49f1_9ab8ca9ddc07f66d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 810 1 0 "52fa4642_56e3_46b8_a5170d58a3d45e6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Prime") { // }} "" // {{{ 811 1 0 "d59e0e58_e6a4_49dc_b79c3b224f9250f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 812 1 0 "81800d57_5b2e_4f60_80fb02f54c6d898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 813 1 0 "6f11abee_b07f_4e3a_a91a2bb6132b9346" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 814 1 0 "65f68e8f_a3f8_4c0e_b02af46ef0830a94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 815 1 0 "92c62640_1748_47f5_a5b2d63033fab0fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 816 1 0 "bce1d424_198d_4a66_bb5cfcef4223a4c1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Prime(DeviceID, SourceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn); // }} "" // {{{ 817 1 0 "1d0fc35a_1e8f_492f_8115484ef5e4094c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 818 1 0 "7b33278e_8337_43df_80fb1df2dc8d7e27" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 819 1 0 "52fa4642_56e3_46b8_a5170d58a3d45e6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 820 1 0 "9e79226f_dd2d_49f1_9ab8ca9ddc07f66d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 821 1 0 "90d403df_555f_4782_bc0e9655c9dda244" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 822 1 0 "6f58ba5c_3565_4ac3_8325c7d865499fef" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterToCollection") { // }} "" // {{{ 823 1 0 "327328cb_2c07_4cff_b99aff475bf220b0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 824 1 0 "c67ca153_084e_49de_aa07c55210f0743c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ControlPoints"), ControlPoints); // }} "" // {{{ 825 1 0 "3ccb3a1f_4958_435b_b896ebc512029a6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("ReturnPlate"), ReturnPlate); // }} "" // {{{ 826 1 0 "d9d5add8_e82e_4761_b5b96d5f19ec1723" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToCollectionPlate(DeviceID, ControlPoints, ReturnPlate, o_stepReturn); // }} "" // {{{ 827 1 0 "952f2d23_1b1e_4ff3_b0306759a52e52a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 828 1 0 "8d9318f1_ab21_410d_a9bfb449f75064ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 829 1 0 "6f58ba5c_3565_4ac3_8325c7d865499fef" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 830 1 0 "90d403df_555f_4782_bc0e9655c9dda244" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 831 1 0 "8e0266d7_a3cc_479c_b67864f9bf0a850e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 832 1 0 "9c5d9740_c35c_46a4_bf36695ba9a70bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterToWaste") { // }} "" // {{{ 833 1 0 "45a60cc8_74a9_4d7c_9eae47c478baa5c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 834 1 0 "1549fe1a_4e94_418f_bb409f1556ef9241" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ControlPoints"), ControlPoints); // }} "" // {{{ 835 1 0 "6a1fdb1f_ef59_4c6d_998478bb54397381" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("ReturnPlate"), ReturnPlate); // }} "" // {{{ 836 1 0 "74579c6b_27e5_47a2_9358294506ae9b62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 837 1 0 "fbfbbfb6_9858_4eee_aecb1e386ef2ee6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 838 1 0 "e8ddd588_e12c_4e6a_9318d0626a183210" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToWasteContainer(DeviceID, ControlPoints, ReturnPlate, WasteContainerID, DisableVacuumCheck, o_stepReturn); // }} "" // {{{ 839 1 0 "104d821e_df7b_4d35_9358fdbad381b0c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 840 1 0 "930b1fd7_1382_4dd3_bec3f722282383d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 841 1 0 "9c5d9740_c35c_46a4_bf36695ba9a70bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 842 1 0 "8e0266d7_a3cc_479c_b67864f9bf0a850e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 843 1 0 "12fe0846_bf72_4286_8bd87488438262ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 844 1 0 "88ca5064_cc0c_42e8_8cf1b70855183b72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Disconnect") { // }} "" // {{{ 845 1 0 "469fd42b_7a31_4d98_91efb31d12064e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 846 1 0 "a37b4aa9_5d2f_4e3a_8134f806b1cc7204" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 847 1 0 "86edebb2_72b8_49f4_84f46c72b1cacaaa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 848 1 0 "d8835a8b_64ef_433a_8ca5a0a1a7302e05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 849 1 0 "88ca5064_cc0c_42e8_8cf1b70855183b72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 850 1 0 "12fe0846_bf72_4286_8bd87488438262ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 851 1 0 "0f50bc52_c930_4613_a737fe8df81950f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 852 1 0 "a4cfb4d0_9450_4bea_a67986a410d3d0ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_SaveContainerCalibration") { // }} "" // {{{ 853 1 0 "37f47b7e_5737_474b_907e35429bd3b21d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 854 1 0 "03cb3efd_4e78_47b4_8c863f235820287b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 855 1 0 "b4a3f09e_102f_45d2_a582493e7a8a228f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 856 1 0 "dce24d9b_3180_4f67_ab31767613c972ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 857 1 0 "a4cfb4d0_9450_4bea_a67986a410d3d0ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 858 1 0 "0f50bc52_c930_4613_a737fe8df81950f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 859 1 0 "1c67aaeb_23b3_4adc_8b6d8285f92b9619" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 860 1 0 "49d34248_b422_4716_b7759002c58bacb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StartContainerCalibration") { // }} "" // {{{ 861 1 0 "1a03095a_5902_4617_8f24e5d961eb85be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 862 1 0 "51b0d6df_b187_4cef_88ea5af60e98888f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 863 1 0 "c754fc8f_8a46_4c44_9ac4283328bd7a51" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Volume"), Volume); // }} "" // {{{ 864 1 0 "25291ac1_062d_4046_bf617e60aa36b67c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StartContainerCalibration(DeviceID, SourceID, Volume, o_stepReturn); // }} "" // {{{ 865 1 0 "bfce4774_8c8b_4403_8e0b05cc4d59500b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 866 1 0 "bc1476ec_35b7_4ec9_989c3db696569d39" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 867 1 0 "49d34248_b422_4716_b7759002c58bacb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 868 1 0 "1c67aaeb_23b3_4adc_8b6d8285f92b9619" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 869 1 0 "dbd9907a_199c_4651_90fe7cbb03cace83" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 870 1 0 "d748a994_8826_4dce_8d07e63e712b8463" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StartContainerCalibration") { // }} "" // {{{ 871 1 0 "6443322c_5eae_4730_a5933771d05f74fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 872 1 0 "0adc10ee_e236_40cc_851240df83158a48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 873 1 0 "661975a0_0aef_4017_bdd063beab2d6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Seconds"), Seconds); // }} "" // {{{ 874 1 0 "0e7caea8_5fcb_4b6c_954eb1ae00f391a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 875 1 0 "b681e1eb_fcbe_49e6_9116e45dfa6449ea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StartVacuum(DeviceID, WasteContainerID, Seconds, o_stepReturn); // }} "" // {{{ 876 1 0 "82d37b5c_3c66_495e_9db5a04e780cef4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 877 1 0 "182c0a15_8dbc_4c35_add3bac6dba81098" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 878 1 0 "d748a994_8826_4dce_8d07e63e712b8463" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 879 1 0 "dbd9907a_199c_4651_90fe7cbb03cace83" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 880 1 0 "4dfdb03a_1a13_4215_be00ca55de734fb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 881 1 0 "1d06fa20_af8b_41f5_b3f3daa03a904ebd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StopVacuum") { // }} "" // {{{ 882 1 0 "54fa31f5_5b7c_4668_927dc6f87a39b99e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 883 1 0 "0bf5dd1e_2e18_477b_adee0722aee70510" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StopVacuum(DeviceID, o_stepReturn); // }} "" // {{{ 884 1 0 "71f9a311_dfa0_4d62_8963c5c0ad21b5f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 885 1 0 "fe23d082_725d_444c_83290693ee1daf6a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 886 1 0 "1d06fa20_af8b_41f5_b3f3daa03a904ebd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 887 1 0 "4dfdb03a_1a13_4215_be00ca55de734fb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 888 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 889 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 890 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Initialize") { // }} "" // {{ 891 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 892 1 0 "efe73491_e5b4_499e_9b3f298c8b7a6398" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 893 1 0 "5c0fe710_4afe_4b11_bf186cfe8dc87978" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{ 894 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 895 1 0 "110af9db_52cf_4a40_94724a7476c48d86" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn); // }} "" // {{{ 896 1 0 "af9bf513_7c00_47bf_aee50c7cdb333b5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Initialize: "), o_stepReturn); // }} "" // {{{ 897 1 0 "cf0a8758_8a16_429a_97f320a142945224" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 898 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 899 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StartTempControl") { // }} "" // {{ 900 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 901 1 0 "de87c5cd_92f6_45a8_9ebd6fe71ac65dbc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 902 1 0 "26949b4a_2c44_4548_8de048c4f48bd98d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 903 1 0 "8ae03ef4_8584_4957_a32601dc8599dadf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn); // }} "" // {{{ 904 1 0 "934ba752_5ec3_489b_ae5a40dd1ea20440" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Start Temperature Control:"), o_stepReturn); // }} "" // {{{ 905 1 0 "a3528747_6990_4387_8839b01b71c3b754" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 906 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 907 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 908 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_SetTarget") { // }} "" // {{ 909 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 910 1 0 "55e81697_10a3_42fb_8777236a132ff0b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 911 1 0 "0177c1a2_7380_4683_94ff93e2ed1299b2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 912 1 0 "15559e31_3f7a_4336_9cabca6758b7c253" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("TargetTemperature"), TargetTemperature); // }} "" // {{ 913 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 914 1 0 "0dcffa9d_ea82_418b_be95240c1bfd0d77" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn); // }} "" // {{{ 915 1 0 "e9b0b663_7dd3_4e55_b206572d2c8a92c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Set Target:"), o_stepReturn); // }} "" // {{{ 916 1 0 "08ecb91c_e9c8_4c61_aca2c1f89fd97bab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 917 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 918 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StopTemperatureControl") { // }} "" // {{ 919 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 920 1 0 "b67518d4_e443_4a8f_947e8c457680c63e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 921 1 0 "045fda52_2303_4244_833066fb0005c21b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{ 922 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 923 1 0 "1c8947fe_b7a1_455a_94e7672ad3593b08" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn); // }} "" // {{{ 924 1 0 "285287f8_a3f9_43f0_9799c3ad98e59b9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco Stop Temperature Control:"), o_stepReturn); // }} "" // {{{ 925 1 0 "88d1a80e_0aa9_4314_ba83bc772f71a589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 926 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 927 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Terminate") { // }} "" // {{ 928 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 929 1 0 "c963c353_41bc_4f4a_b74a666b28831950" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("StopAllDevices"), StopAllDevices); // }} "" // {{ 930 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 931 1 0 "ea2ceb94_04fa_4204_96db2caf6871231f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn); // }} "" // {{{ 932 1 0 "cd495cf5_43ff_4b30_b0baa1f2cd96cf0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Terminate:"), o_stepReturn); // }} "" // {{{ 933 1 0 "bcce43cd_2b64_4caf_89bef8978a011dc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 934 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 935 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 936 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 937 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_Initialize") { // }} "" // {{ 938 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 939 1 0 "d824843f_bf44_4e8b_bb434b50a8b65716" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 940 1 0 "45b9f513_7eaf_4e63_ae92391c28cf15b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 941 1 0 "7f058eec_3092_45ce_862c43a3e0853c7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 942 1 0 "56a4490f_902b_4043_8172466a64e332bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Simulate"), Simulate); // }} "" // {{ 943 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 944 1 0 "c44a492c_8123_465b_acd4ff374583777d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn); // }} "" // {{{ 945 1 0 "a62df2e9_44bb_4099_a4d0597fbf0705de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Initialize:"), o_stepReturn); // }} "" // {{{ 946 1 0 "de7bfb5a_b1fa_42ee_b461782a3c381af4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 947 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 948 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_MoveToPosition") { // }} "" // {{ 949 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 950 1 0 "3092ee64_df80_4e56_b3cdffc0827e3c2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 951 1 0 "4284a9cf_3ea6_42f5_ae1f62d82cd11ebe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Angle"), Angle); // }} "" // {{ 952 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 953 1 0 "5b44092b_0faa_47ae_8005717c87a0f334" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn); // }} "" // {{{ 954 1 0 "4d912417_89ed_44f2_941bfb44efed0e2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Move to Position:"), o_stepReturn); // }} "" // {{{ 955 1 0 "0540bb67_399d_468d_853dd6ca4bb1c285" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 956 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 957 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 958 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 959 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "moveSequence") { // }} "" // {{{ 960 1 0 "6e83eea3_8863_4ca0_9ff603380f0dc4d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("inputSequence"), inputSequence); // }} "" // {{{ 961 1 0 "6b8903c6_6977_458a_8409f93724089454" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 962 1 0 "77d9a84d_5987_4b3c_a76757ce15a19302" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 963 1 0 "13c73535_4a98_49e2_ba1a02c30f02035b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 964 1 0 "a33ebddb_88d8_4440_9a78132ed62d97f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, inputSequence, seq); // }} "" // {{{ 965 1 0 "1dcc4914_aa2f_439e_8a2f431687c33852" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqFirstPosition = SeqGetPositionId(seq); // }} "" // {{{ 966 1 0 "01f7bf35_3538_441d_98904fa827b05e68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 967 1 0 "a37851fe_b9d0_42fa_9ccca7dd7b352a9c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{{ 968 1 0 "fe9d84b8_86ec_4552_b187147351886cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqSecondPosition = SeqGetPositionId(seq); // }} "" // {{{ 969 1 0 "5fa8b88a_cf88_49e1_8cb574503dc60e56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(seqFirstPosition, seqSecondPosition); // }} "" // {{{ 970 1 0 "e590c4e1_91dd_41c0_82a254d4134fb734" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("First check"), Translate("Second check")); // }} "" // {{{ 971 1 0 "2127d6de_e8bd_455a_88ad20e73b767061" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 972 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 973 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 974 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 975 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 976 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_measure") { // }} "" // {{{ 977 1 0 "7c314622_d15c_42aa_a88b3d71caa33d0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 978 1 0 "9f15b042_95cd_4241_9b6262d3a4979ca7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 979 1 0 "34064a8d_5567_4fe5_b4349d0d061b9a1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 980 1 0 "0e34e118_df68_49fa_b3b9228d63deb6d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 981 1 0 "025eece8_72cd_4190_a092d806fbab65a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 982 1 0 "269c134a_bc59_4578_8da8bb7559f234a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 983 1 0 "36ec28c1_360b_46e9_9243c01dbd3874e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 984 1 0 "58445956_3204_41a3_a7acb03aaf25ccd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 985 1 0 "465c2002_18cb_4ff2_9df9e423dbc6837c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 986 1 0 "40682224_6d73_4a7c_a2e33641f1768d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 987 1 0 "e43a57a6_d83b_41d1_adf33f8f77ca7bc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 988 1 0 "12a6bd74_f75b_44d1_b6f7c26d279d9610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 989 1 0 "71b8f8bc_65c1_4e97_ab6eae03040f51dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 990 1 0 "a8ca8abd_aa7a_412c_be527eb4e81efcb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 991 1 0 "a8647b92_b569_4a75_99a5333c438b3a23" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 992 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 993 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 994 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 995 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate_Dyn") { // }} "" // {{{ 996 1 0 "de6a4eb0_04e1_47fc_86e27009d71152cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 997 1 0 "5f551457_7af9_4567_bceacdf0018c9c38" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 998 1 0 "60ee9fa5_c549_43a9_bbccdb0b14819583" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 999 1 0 "2211f515_9e69_4a1c_9603becd6fd866cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1000 1 0 "8449e1f4_6561_4b51_b91aa14423565eb2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 1001 1 0 "4429d4bb_e2fb_451f_8558de74111dbe3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Variance"), Variance); // }} "" // {{{ 1002 1 0 "a918fadc_db95_4e4b_9c445a903a59f17a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 1003 1 0 "7611bb65_5e77_408e_98384f0fec68e958" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 1004 1 0 "74418f44_640a_4b4b_88234a74841f1dbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate Dynamically"), o_stepReturn); // }} "" // {{{ 1005 1 0 "13218e03_9ac9_44ed_8af864397e865cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1006 1 0 "6257eb41_ce75_45b1_bea89bce20631222" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1007 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1008 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1009 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1010 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate") { // }} "" // {{{ 1011 1 0 "c7a809a1_1dc8_47c2_a8006c785355c50e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 1012 1 0 "27f7a889_0250_42a5_87699d0b0d52d36b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 1013 1 0 "b624fe53_a0c2_44e7_92eb12cc744fa799" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1014 1 0 "9f642188_0286_4e80_81cb485423a155c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1015 1 0 "c7530a85_7f29_4069_9a8e94318ffec0d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 1016 1 0 "849206a3_ea5c_4440_a08cdbcb81354e94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 1017 1 0 "9f9ab695_0d32_4bf4_bf5a4b0207a2c780" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 1018 1 0 "c1db8c11_4c25_4c9c_b424e06999583f09" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1019 1 0 "29e43762_b009_40ad_b93a5ac2372cca00" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1020 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1021 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1022 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1023 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Enable_Extended_Log") { // }} "" // {{{ 1024 1 0 "1791ad6e_39b2_4442_8b4470d0fc5497fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn); // }} "" // {{{ 1025 1 0 "b22a7836_ed52_4e9d_9e5df5babf8fa142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1026 1 0 "d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1027 1 0 "8d68d8f1_5b56_488b_a0676b4b50a35221" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1028 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1029 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1030 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1031 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Get_Last_Error") { // }} "" // {{{ 1032 1 0 "11bf85a6_3df2_4245_839282a900f3db71" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1033 1 0 "2c0b2633_5d81_41a1_aa90c51eb8d9d23d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn); // }} "" // {{{ 1034 1 0 "4d60f4e2_175b_4a4b_9b0bfb0f63211da0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Get Last Error"), o_stepReturn); // }} "" // {{{ 1035 1 0 "76df37d9_5928_4269_937630b417ad9a11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1036 1 0 "a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1037 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1038 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1039 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1040 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Initialize") { // }} "" // {{{ 1041 1 0 "a37d4042_a872_4da0_bf60a51312d5cc22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1042 1 0 "77530965_cb1f_4563_a1d848bb4faa3bb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1043 1 0 "295c3bab_f7f4_47d0_8075cf658ee0436f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn); // }} "" // {{{ 1044 1 0 "69f13066_cc39_48aa_85b093e1bc056907" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrIStr(o_stepReturn2); // }} "" // {{{ 1045 1 0 "3a9d7ad8_b8d0_45ee_9004e77ed5fbe471" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1046 1 0 "178d10c9_fe18_479a_b3e7922f87282612" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 1047 1 0 "66935de2_85a3_4ed0_95cddf772b15fb48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1048 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1049 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1050 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1051 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Measure_Dynamically") { // }} "" // {{{ 1052 1 0 "69eede79_0b96_4634_a4ed7995201d9b7d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1053 1 0 "6a018697_b8f4_4088_b8c650a2f028d197" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Precision"), Precision); // }} "" // {{{ 1054 1 0 "dfbe88b8_1dda_42ac_8175799123584051" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1055 1 0 "3ef27a25_aec7_4d5b_beb743b713c7526e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1056 1 0 "74a87116_8260_466d_a78e98fe0544a891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 1057 1 0 "425d37a5_2d55_4b09_a607303c754935db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure_Dynamically(ModuleID, Temperature, Precision, Timeout, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 1058 1 0 "0df3fc00_0550_45fa_b224d60b9bcd06c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 1059 1 0 "26992ae0_59eb_4678_ae304b460a7034db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 1060 1 0 "3beda7c9_5769_4578_b31431d2bab6d131" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 1061 1 0 "141952da_a201_4e85_9e446006849a95bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 1062 1 0 "f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1063 1 0 "5487a4f7_a9f8_448e_98b2cb671cb9c069" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 1064 1 0 "c8e7c221_d1e4_4818_b3e077f9aeb6a0a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 1065 1 0 "611376c4_8c68_46f2_8947cec12bb313f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 1066 1 0 "e113c0e5_7ab9_4244_86b73e7f24d2bfc8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 1067 1 0 "6286c2d7_a138_4844_bc77fd8a40a6a486" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1068 1 0 "39fd3518_8a14_43a1_8d41240f577c94eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1069 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1070 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1071 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1072 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Battery") { // }} "" // {{{ 1073 1 0 "c83f58ac_8db7_4477_bed8e57c9c784b8a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1074 1 0 "4b343bdb_fe40_4daa_8382b1265575e03a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn); // }} "" // {{{ 1075 1 0 "98f43381_9679_4d9f_b3d1238ed4c1d0c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1076 1 0 "b95371f0_7532_4426_b980d9824bf1d2b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ChargeCounter = StrIStr(ChargeCounter); // }} "" // {{{ 1077 1 0 "15324eca_50a4_4530_be7f08cdef0e6514" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BatteryCondition = StrIStr(BatteryCondition); // }} "" // {{{ 1078 1 0 "e694349e_13ad_46c1_b18f5eb4688f510e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ActualCharge = StrIStr(ActualCharge); // }} "" // {{{ 1079 1 0 "279c0c8e_1d53_437f_ac5e74b0ccffc7a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1080 1 0 "92db84c4_89c2_4902_819012506538681c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate("0"), Translate("0"), Translate("0"), Translate("0"), id); // }} "" // {{ 1081 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1082 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1083 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1084 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Calibration") { // }} "" // {{{ 1085 1 0 "250cbb57_43e2_4ca3_8ac97a4f8a848ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1086 1 0 "e2f361b4_fb8d_4bf8_b53c05720323632b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ProbeNumber"), ProbeNumber); // }} "" // {{{ 1087 1 0 "6e7357dd_030a_4f9d_b5cda736b409bbee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn); // }} "" // {{{ 1088 1 0 "aa859c68_b2ab_4304_9501a2d752587df6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowValue = StrFStr(pHLowValue); // }} "" // {{{ 1089 1 0 "7331e4fa_3e06_499a_84eed922b712aca5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowVoltage = StrFStr(pHLowVoltage); // }} "" // {{{ 1090 1 0 "3c2e720a_1c6e_4f09_afe077215aa438e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighValue = StrFStr(pHHighValue); // }} "" // {{{ 1091 1 0 "a9363a15_98fa_4a49_8451b25c27edea3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighVoltage = StrFStr(pHHighVoltage); // }} "" // {{{ 1092 1 0 "73007841_7490_489f_9c595a8e085e3a59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationTemperature = StrFStr(CalibrationTemperature); // }} "" // {{{ 1093 1 0 "49c841c4_b5cf_4ac7_9c2e87a2dc939210" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationOffset = StrFStr(CalibrationOffset); // }} "" // {{{ 1094 1 0 "d3535c95_47a6_46a6_80f73d15c4582508" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlope = StrFStr(CalibrationSlope); // }} "" // {{{ 1095 1 0 "a273e170_1488_4e16_884ae09c3a26d828" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio); // }} "" // {{{ 1096 1 0 "4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1097 1 0 "9ae40f13_d6cb_4a4e_9dc995de1da2d637" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Request Calibration Values"), o_stepReturn); // }} "" // {{{ 1098 1 0 "5aca9095_546e_4df5_b24364da04e44fe5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id); // }} "" // {{ 1099 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1100 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1101 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1102 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Probe_Data") { // }} "" // {{{ 1103 1 0 "04b155be_097f_4f2d_add1392fbf78b5f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1104 1 0 "c40a59cd_e266_4cc3_aa3dd3d526502930" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn); // }} "" // {{{ 1105 1 0 "306c68bb_ffd7_4233_b7f0c2c67678dfdf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1); // }} "" // {{{ 1106 1 0 "bbd1faef_5b8f_41ba_bf74a019b05da039" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2); // }} "" // {{{ 1107 1 0 "cb244d85_a14b_4bcb_ab81c5cdc38c6552" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3); // }} "" // {{{ 1108 1 0 "5476cf0c_49cc_4602_aec72872116d2e6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4); // }} "" // {{{ 1109 1 0 "6883841a_44f5_417f_8574566ed15ae444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), o_stepReturn); // }} "" // {{{ 1110 1 0 "fefec950_2bfa_429e_bdf791dc40dd0495" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1111 1 0 "0f6be956_31e3_4d1e_b232c4dc908ea6f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1112 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1113 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1114 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1115 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Technical_Data") { // }} "" // {{{ 1116 1 0 "3c80e1e2_a904_42ac_a3ddd5df5ca3a196" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1117 1 0 "8b2b24be_b84b_41b8_bd0f088f32554cb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 1118 1 0 "552e7bb6_cbdf_49ec_86ac28b54cae7f58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 1119 1 0 "1634fedb_a7e1_4130_ac1fb8d55f47b9e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HardwareNumber = StrIStr(HardwareNumber); // }} "" // {{{ 1120 1 0 "2cfb8725_b283_48b0_906a9741fe336744" "{C1F3C015-47B3-4514-9407-AC2E65043419}" PartNumber = StrIStr(PartNumber); // }} "" // {{{ 1121 1 0 "7b9a6dfa_9df8_40a8_9c0c39981dcf97e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Revision = StrIStr(Revision); // }} "" // {{{ 1122 1 0 "771c0483_6ea2_4299_81c7598839a5027b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SerialNumber = StrIStr(SerialNumber); // }} "" // {{{ 1123 1 0 "790984ff_e065_4212_a5c420f04d9f7e4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), o_stepReturn); // }} "" // {{{ 1124 1 0 "79aaa9cb_2db1_4f5d_8385023783e5cc82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1125 1 0 "371d6452_cf9d_4abe_9463f54ab7831231" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id); // }} "" // {{ 1126 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1127 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1128 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1129 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Voltage_Data") { // }} "" // {{{ 1130 1 0 "b6c0eb00_003a_45ed_9899c407d864455c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1131 1 0 "e4801131_30dc_4e2d_8ac9e80c0c13972c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Selector"), Selector); // }} "" // {{{ 1132 1 0 "ee48a65d_794b_411d_bb1668a267206d8b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn); // }} "" // {{{ 1133 1 0 "bf78a104_f3d4_45b6_a573a7219dcf05e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 1134 1 0 "ab32fbfb_2be2_4f6d_9c49def79adcfe31" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1135 1 0 "eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(""), Translate(""), id); // }} "" // {{ 1136 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1137 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1138 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1139 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 1140 1 0 "51fd11a2_c173_4d8a_be50512a820eb424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1141 1 0 "b1268215_064b_40bc_8b9e75cfc0edeac8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1142 1 0 "7665963b_aa9b_4a3c_ba522887f3b15ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1143 1 0 "8327c869_96c0_4394_9bf4c5b5c19f30d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1144 1 0 "5a5455ae_5598_4a29_8c5f621b0586ba79" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1145 1 0 "f534cbac_4de3_4425_85299c07c6ff73cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 1146 1 0 "12b0cc6a_4826_48ce_82c690ddf98441a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1147 1 0 "aee63add_2789_4971_b4867510d938caf6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1148 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1149 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1150 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1151 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Charge_Parameters") { // }} "" // {{{ 1152 1 0 "5e24703a_30cb_4538_aec7ba85b7c0d2a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1153 1 0 "31630603_a72b_4d8b_a21a501f5336c619" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Charge"), Charge); // }} "" // {{{ 1154 1 0 "41b8aa8b_7d8e_4351_ad9664e334fa00f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AutoCharge"), AutoCharge); // }} "" // {{{ 1155 1 0 "504d0d26_95ad_4181_a7c38162018496cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("AutoChargeLevel"), AutoChargeLevel); // }} "" // {{{ 1156 1 0 "576ecb10_c479_461f_9249f554f27e398b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn); // }} "" // {{{ 1157 1 0 "80503782_9e9a_4986_9e4bcdeac598c749" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Charge Parameters"), o_stepReturn); // }} "" // {{{ 1158 1 0 "ade249f5_6aa1_4939_90a22e6af0864e5e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1159 1 0 "4fb997db_4cdf_4b51_85bbb23941f19edb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1160 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1161 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1162 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1163 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Probe_Replacement_Date") { // }} "" // {{{ 1164 1 0 "eb0a7cc0_c83a_45a8_8bd6adbf05cadabe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1165 1 0 "c762429d_3619_4e70_9765fe207dab3d54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Probe"), Probe); // }} "" // {{{ 1166 1 0 "18bf75b8_9aa3_46d2_a3ad3bbab8c1e126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1167 1 0 "2b2bbaed_84c1_46d2_bd024b425aefa336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1168 1 0 "380453f0_b3e8_47ac_a06eb91552b3a11f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1169 1 0 "a8fcf799_ec41_4160_910a9c78e5395ae2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1170 1 0 "c95c2987_8098_48ed_9ad284801d556587" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Probe Replacement Date"), o_stepReturn); // }} "" // {{{ 1171 1 0 "4e986dcc_ee8e_4cc0_bb83628d0a0ec284" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1172 1 0 "d46fb139_6c48_4f2a_b09293a8a3509a12" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1173 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1174 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1175 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1176 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Shutdown") { // }} "" // {{{ 1177 1 0 "aec40299_6cef_4e16_ad88bccbdcae3b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1178 1 0 "c7715d80_e089_40ea_86fe6a446a2c9378" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Mode"), Mode); // }} "" // {{{ 1179 1 0 "212772c6_0ff7_41ef_9c35fb5828034d90" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn); // }} "" // {{{ 1180 1 0 "82055c44_b706_4c16_99b47c2a4ae600e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Shutdown"), o_stepReturn); // }} "" // {{{ 1181 1 0 "d76b0e51_c107_49cd_b6bcd25c44e4d066" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1182 1 0 "fbbaa73a_fa45_446d_8052e6e618fd2fad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1183 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1184 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1185 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1186 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Technical_Data") { // }} "" // {{{ 1187 1 0 "d6a005e1_4502_49d8_9a510afa4a2e833e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1188 1 0 "5ad112b0_da19_4b1b_a4649033defa7fef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 1189 1 0 "f4094e68_7940_4706_bae95f6277784476" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PartNumber"), PartNumber); // }} "" // {{{ 1190 1 0 "2b53f199_42d1_4808_a128c8ef4354e216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Revision"), Revision); // }} "" // {{{ 1191 1 0 "b5bf6715_e2e6_4e19_ad453dbb18396d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SerialNumber"), SerialNumber); // }} "" // {{{ 1192 1 0 "8cd5ff7f_9cb8_4f34_8afeb35175b47032" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 1193 1 0 "b60d9996_aa66_483d_b61518ffca638e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Technical Data"), o_stepReturn); // }} "" // {{{ 1194 1 0 "164f5289_e710_44eb_a1ea51e1622a7813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1195 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1196 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1197 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1198 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Trace_Level") { // }} "" // {{{ 1199 1 0 "dd6ba7d4_f5cc_4725_9776848c6e8343cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1200 1 0 "5a2c7ac9_8800_4926_96f26337aee59504" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1201 1 0 "88c51a62_4453_4cf5_ba0682a2cb1da767" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1202 1 0 "159aeb3e_3ed4_4ddc_a11cdfd939a7db7d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Trace Level"), o_stepReturn); // }} "" // {{{ 1203 1 0 "c3a5cc94_f346_4d04_a4be1fd04efbccc1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1204 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1205 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1206 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1207 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Sleep") { // }} "" // {{{ 1208 1 0 "153dc01b_be4b_403a_a40226aa4778c709" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1209 1 0 "a6f7384c_4c2e_4b3b_9682c00fb7a2f978" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn); // }} "" // {{{ 1210 1 0 "e82cf943_58b3_463e_a86afb9882353228" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Sleep"), o_stepReturn); // }} "" // {{{ 1211 1 0 "636ca48b_8789_40cc_8fb4dc35e8cbab54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1212 1 0 "5fb5b228_5342_414d_a548ac8dd5add837" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1213 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1214 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1215 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1216 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Terminate") { // }} "" // {{{ 1217 1 0 "b53cd271_035b_4870_961c552983b39351" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1218 1 0 "e133d234_4ccd_44cb_810d29742ee9f40e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn); // }} "" // {{{ 1219 1 0 "eb5a9614_5d18_44cd_83190a1d8eec2a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1220 1 0 "81b91833_cb16_43c5_a8935f9701536560" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1221 1 0 "add7dd5e_87e4_4ec1_a7b552234adc5d9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1222 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1223 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1224 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1225 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Wakeup") { // }} "" // {{{ 1226 1 0 "6b1d97c0_debd_402e_8c064a5c1fe48aca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1227 1 0 "09ffa3b4_530e_444f_943e5302e37f3fe0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn); // }} "" // {{{ 1228 1 0 "0d420182_40e4_43a8_872c5c81f7efa6d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1229 1 0 "f7bb0b0b_d222_43a7_b1b1236ab60e2847" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1230 1 0 "12251a91_a4ec_4a01_b041b503e2eef836" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1231 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1232 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1233 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1234 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Initialize") { // }} "" // {{{ 1235 1 0 "10713a72_dce4_482a_ad1d6d8db7bd210a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1236 1 0 "21f38719_99e7_4de4_bc16b312b6f57977" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1237 1 0 "75ac7c86_e474_45bc_8551fc9e302de4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 1238 1 0 "509760aa_ef16_454d_89cc23c0745d3c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 1239 1 0 "19e515a1_705c_45eb_b80e75767541c91a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1240 1 0 "a042f65b_875f_4b52_999c836815c84a6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1241 1 0 "f5fd2c44_2160_43fa_be88382bc9e0ff0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1242 1 0 "f2c8bfd1_3d33_4a00_84852ffbabef7b28" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1243 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1244 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1245 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1246 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Set_Trace") { // }} "" // {{{ 1247 1 0 "0029313d_525e_46ea_916912b33902e1eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1248 1 0 "ed79bcac_71ff_48ee_b968407f0dbdf4ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1249 1 0 "80f14967_56f1_4b78_9a3c9965460a9589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1250 1 0 "b3fdfb36_4bb4_4086_a19b5402f53fdd94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1251 1 0 "53206fbc_1492_4583_a2789c8083e49b46" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1252 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1253 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1254 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1255 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Wash") { // }} "" // {{{ 1256 1 0 "32bfd9a6_1ebc_4ca0_81e034f81d1af760" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1257 1 0 "a9208608_0099_4d5f_800d72adf563b9e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CycleNumber"), CycleNumber); // }} "" // {{{ 1258 1 0 "738f88ca_6ad7_4598_b1e4a3e1ccefcace" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn); // }} "" // {{{ 1259 1 0 "d009e19d_0560_4f89_b0f58bafa778b71b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Wash"), o_stepReturn); // }} "" // {{{ 1260 1 0 "49cdc51c_08eb_424b_920d3dcb647b2559" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1261 1 0 "2624b5a6_7428_4e88_a9b7fee8a8001e65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1262 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1263 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1264 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1265 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Terminate") { // }} "" // {{{ 1266 1 0 "e8e2fec9_d562_4524_b5d29880876bd109" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1267 1 0 "ad418c06_88fd_4649_9745bc00694fa53a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1268 1 0 "e8437e3c_0153_4bc0_86236a2e9849e22a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Terminate"), o_stepReturn); // }} "" // {{{ 1269 1 0 "32e4b0bc_48e5_4770_81a0113fdff8118a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1270 1 0 "c81e886b_51ec_42be_b2c989057781a5b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1271 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1272 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1273 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1274 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Initialize") { // }} "" // {{{ 1275 1 0 "b41d8294_bc5c_4346_999860e0f4cc913e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1276 1 0 "102abd73_15bb_472b_a1008b4eda35637e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1277 1 0 "58389380_f098_4c71_b61c0954f797753b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 1278 1 0 "2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 1279 1 0 "d95cbdf3_6278_437b_91525392a70e5356" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1280 1 0 "d35fefc8_f758_41da_a6073532f75cf092" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Initialize"), o_stepReturn); // }} "" // {{{ 1281 1 0 "e1deec6e_fc66_45bd_93821e20a78853fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1282 1 0 "01bdb50d_0f38_40e2_8993f814ea652b66" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1283 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1284 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1285 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1286 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Set_Trace") { // }} "" // {{{ 1287 1 0 "f7fc7449_63b2_4e8b_8d0eaf3f931e834d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1288 1 0 "ef77cea9_ef26_4525_bea967ec7f086b88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1289 1 0 "24784b11_b6f4_461e_b526cbbb677864ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1290 1 0 "d5ebe375_f7dd_45c2_b3e242a8edf4f175" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Dryer Trace Level"), o_stepReturn); // }} "" // {{{ 1291 1 0 "f61751e3_57be_4b1d_b8a1d370a4c1773c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1292 1 0 "d216caef_1c5d_4f05_8252d1a77df45535" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1293 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1294 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1295 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1296 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Start_Drying") { // }} "" // {{{ 1297 1 0 "45561f8e_cd7f_49d8_a8720b2ff7d0d932" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1298 1 0 "ecdddf7a_3c99_4f99_97b658f94a62554c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1299 1 0 "5a6daec0_a404_4a0a_ad9d88de43ac46c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Start Drying"), o_stepReturn); // }} "" // {{{ 1300 1 0 "e7173a44_d349_4ba2_8993647fbcd2eb1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1301 1 0 "17e3434b_dfff_457b_9aba0c22e9206cc7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1302 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1303 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1304 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1305 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Stop_Drying") { // }} "" // {{{ 1306 1 0 "f3eac478_54bb_4350_8c1811bf2ede8424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1307 1 0 "37262733_33d0_4723_94687e68249d1300" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1308 1 0 "6feb871c_61be_4812_a421af32d75f9871" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Stop Drying"), o_stepReturn); // }} "" // {{{ 1309 1 0 "2ba59e68_8358_4b86_a9108519bff6d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1310 1 0 "cbfcb2cb_00c9_445f_a28af2b6553efc31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1311 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1312 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1313 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1314 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Terminate") { // }} "" // {{{ 1315 1 0 "66453f41_07b7_4fd4_b2177e4994606836" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1316 1 0 "a5808bbd_63b3_4fc2_894ab4d4eb00b93d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID); // }} "" // {{{ 1317 1 0 "f844d13f_ecdb_465a_b0300a4976c0d809" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1318 1 0 "a28255b3_86ff_4928_abf87a7c3f930142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1319 1 0 "7e539911_cdda_4242_a337d58eba44508c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1320 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1321 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1322 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1323 1 0 "2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1324 1 0 "2dde624a_2df2_4014_8df18f6d92ed93b1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1325 1 0 "d6d5265b_416c_468f_a8f0a8225e294804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Initialize") { // }} "" // {{{ 1326 1 0 "32d149fa_c238_4e8c_9c9bfe8ca03b39ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PortNumber"), PortNumber); // }} "" // {{ 1327 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_43ECC15F92874e8a8FCA2A90F3412255 ; err.Clear(); // }} "" // {{{ 1328 1 0 "05f6e40b_f62a_4382_9b25ca234839aeb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::Initialize(ML_STAR, PortNumber, DefaultTemperature, ModuleID); // }} "" // {{ 1329 1 0 "b8eff0c4_8a87_4d69_8b1fc22443527e58" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1330 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_43ECC15F92874e8a8FCA2A90F3412255 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1331 1 0 "a6315690_dcdc_4faf_9764f4edcccee401" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1332 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1333 1 0 "b152d230_641d_44fd_82876d10beb25ffd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1334 1 0 "2178bb5d_1389_4bb3_92e038bed00ad7d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 1335 1 0 "0e8fa514_886c_42d7_a0fec5c2e0a40820" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1336 1 0 "d6d5265b_416c_468f_a8f0a8225e294804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1337 1 0 "2dde624a_2df2_4014_8df18f6d92ed93b1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1338 1 0 "a96843cd_6adb_45f6_86b4971bd2682521" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1339 1 0 "2a26b412_4bc5_49d9_b1cdc64938a3cf0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_MeasureCycle") { // }} "" // {{{ 1340 1 0 "e78c25fc_f856_4c7d_bb7f6056d2ae0e9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1341 1 0 "4c0064bb_0c23_4648_b57e5599878d63f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqMeasurement"), seqMeasurement); // }} "" // {{ 1342 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (seqMeasurement == "") { // }} "" // {{{ 1343 1 0 "a11073f7_18e2_4097_baf006ed44e74081" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("MeasurePositions"), MeasurePositions); // }} "" // {{{ 1344 1 0 "47d49bd0_0457_440d_b1d654c85ac3c5db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(MeasurePositions, seq); // }} "" // {{ 1345 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1346 1 0 "bbddeeab_2dc4_4931_900a5ec07aafe0be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, seqMeasure, seq); // }} "" // {{ 1347 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1348 1 0 "6b06d7c5_bf98_48d9_906ae705e4ce149b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("MeasureHeight"), MeasureHeight); // }} "" // {{{ 1349 1 0 "25fe4c02_a4e2_40cd_91289dc1c5c638b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ProbePattern"), ProbePattern); // }} "" // {{{ 1350 1 0 "02a9e02a_0596_4158_ac021180b0b5985c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MeasureTime"), MeasureTime); // }} "" // {{{ 1351 1 0 "f8080019_d032_4f0c_9ef8429bde9ee7df" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1352 1 0 "83142ee1_d831_4ff1_a6734844fe789421" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::MeasureCycle(ML_STAR, ModuleID, seq, MeasureHeight, ProbePattern, MeasureTime, Temperature, arrpHValues); // }} "" // {{{ 1353 1 0 "d4d4974a_23a2_43a2_851b478f0e7d24be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrpHValues, flt_pHValues); // }} "" // {{{ 1354 1 0 "bde9c162_a4cf_40fa_a663c6b78e029610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1355 1 0 "0a5c18e9_775d_4644_bdfcc536000642cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Measure Cycle"), o_stepReturn); // }} "" // {{{ 1356 1 0 "c1502c7b_2bd0_480c_a0ce6887e02484bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, flt_pHValues, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1357 1 0 "2a26b412_4bc5_49d9_b1cdc64938a3cf0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1358 1 0 "a96843cd_6adb_45f6_86b4971bd2682521" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1359 1 0 "e66a9dff_c0b5_4864_ad32fce97f16a3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1360 1 0 "5185a83c_8ff6_42f8_b1dc5fc006d041ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Calibrate") { // }} "" // {{{ 1361 1 0 "d9d7f7cb_394b_40ea_a037e16efc8e063c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1362 1 0 "0e65e09c_0178_403b_9eca768c440a479f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1363 1 0 "fedae8c3_0c9d_426f_a30e8fdfa1d2b056" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1364 1 0 "ad8456a9_07be_4852_b2bab182e7e17dae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqCalibration1"), Calibration1); // }} "" // {{{ 1365 1 0 "8b591ca2_adf8_4248_b5ac1fb2a84c21aa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Calibration1, seqCalibration1); // }} "" // {{{ 1366 1 0 "0f28a5e9_278c_4290_aa9ee416f829755a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqCalibration2"), Calibration2); // }} "" // {{{ 1367 1 0 "b57e28d3_0011_4657_bbceba83ca97b89a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Calibration2, seqCalibration2); // }} "" // {{{ 1368 1 0 "101798f0_c18a_411a_b29295d972cc9a6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqReference"), Reference); // }} "" // {{{ 1369 1 0 "1c415c8d_660d_41fe_a81fcfd6d8836038" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Reference, seqReference); // }} "" // {{{ 1370 1 0 "20510ceb_5840_48de_842a1b657fa7706d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationTime"), CalibrationTime); // }} "" // {{{ 1371 1 0 "ecd67637_3e8e_4d22_89b67b39e05342fe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MeasureTime"), MeasureTime); // }} "" // {{{ 1372 1 0 "148b5d07_b84d_4786_b1d0f9d5e5837491" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("MeasureHeight"), MeasureHeight); // }} "" // {{{ 1373 1 0 "938c1584_a353_4f03_ba14c9f33cc2c6a7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue1"), CalibrationValue1); // }} "" // {{{ 1374 1 0 "cda9048b_fe59_4db2_a1d08550795038f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue2"), CalibrationValue2); // }} "" // {{{ 1375 1 0 "5d669238_eb69_4080_8b789139b291be94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValueRef"), CalibrationValueRef); // }} "" // {{{ 1376 1 0 "4c7c9992_c2e0_445a_bee9cd7dd086e585" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSoln1"), TempSoln1); // }} "" // {{{ 1377 1 0 "9574a12d_456e_4fd6_9b51714dd88b4a1e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSoln2"), TempSoln2); // }} "" // {{{ 1378 1 0 "211f81c7_5561_45ce_8cf247e76fb0f65e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSolnRef"), TempSolnRef); // }} "" // {{{ 1379 1 0 "f812ea75_ed49_4a04_b4ab3dd67f1206ad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrateDynamically"), blnCalibrateDynamically); // }} "" // {{{ 1380 1 0 "178d95b8_13db_4493_a08cdaec1348c0e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1381 1 0 "d4d33c2d_2aee_4a51_ad36cb953d687c83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{ 1382 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F882CD31309846e3BD30959B418AB982 ; err.Clear(); // }} "" // {{{ 1383 1 0 "ff44fdd8_7acc_46f7_a7c3a207ad5d7bf8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Calibrate(ML_STAR, ModuleID, seqModule, seqCalibration1, seqCalibration2, seqReference, CalibrationTime, MeasureTime, MeasureHeight, CalibrationValue1, CalibrationValue2, CalibrationValueRef, TempSoln1, TempSoln2, TempSolnRef, blnCalibrateDynamically, arrCalibrationSlopeRatios, arrpHValuesReferenceSolution); // }} "" // {{ 1384 1 0 "18724129_2443_4271_a6316a42ef334c73" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1385 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F882CD31309846e3BD30959B418AB982 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1386 1 0 "d6c65e91_f6e8_47d9_aaf1810ffab1ffac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1387 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1388 1 0 "7375b9e4_01c3_49a1_810fb42149ed0eea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrCalibrationSlopeRatios, CalibrationSlopeRatios); // }} "" // {{{ 1389 1 0 "31ba6e89_258d_4deb_97352544c3b5c45c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrpHValuesReferenceSolution, pHValuesReferenceSolution); // }} "" // {{{ 1390 1 0 "924064ec_85ac_4b42_a5ff3eb8a6a5342f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 1391 1 0 "65bd0fe0_0efb_4335_b118b89e61b948ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1392 1 0 "5185a83c_8ff6_42f8_b1dc5fc006d041ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1393 1 0 "e66a9dff_c0b5_4864_ad32fce97f16a3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1394 1 0 "b6af2262_3e2f_4d3a_8efaa95d707f7c9b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1395 1 0 "190d0e3a_2978_407c_a8482f5f7e239261" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Dry") { // }} "" // {{{ 1396 1 0 "0f0bf03e_4950_40e7_b2899f9cabb79cb3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{ 1397 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_D19CA5AD1071407b84599779A41B51EA ; err.Clear(); // }} "" // {{{ 1398 1 0 "1885a8d9_8082_44ab_bfd7a217170187db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::Dry(ML_STAR, ModuleID); // }} "" // {{ 1399 1 0 "33dddcad_4489_4f31_8b4fea145ebbe77b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1400 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_D19CA5AD1071407b84599779A41B51EA : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1401 1 0 "d8f5d052_f205_4e22_8998e2d0d12790ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1402 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1403 1 0 "5521c0c7_c64b_4b49_9036f9bf6a7a83d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1404 1 0 "9e7864cd_a0bd_4ec6_8f733a2e7ab773bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1405 1 0 "190d0e3a_2978_407c_a8482f5f7e239261" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1406 1 0 "b6af2262_3e2f_4d3a_8efaa95d707f7c9b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1407 1 0 "98f952c5_628a_415d_a46b3e75e0c33d60" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1408 1 0 "370e55f1_98b7_4dfb_9640d7a634f44a8f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Wash") { // }} "" // {{{ 1409 1 0 "39b0590c_dc8d_4eb3_b8bfcab65235f494" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{ 1410 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 ; err.Clear(); // }} "" // {{{ 1411 1 0 "beaffdda_e52a_4f79_95659f907946752f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Wash(ML_STAR, ModuleID); // }} "" // {{ 1412 1 0 "58aab21a_307b_403b_980186d201a7c6ac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1413 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1414 1 0 "4cd2a753_2761_4d3c_9cd93c15fa19a47b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1415 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1416 1 0 "0af219f8_e5bc_4b14_a95fd7e3f2ccb712" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1417 1 0 "7b44ca9e_e6d7_4793_8f937fc518ecc41c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1418 1 0 "370e55f1_98b7_4dfb_9640d7a634f44a8f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1419 1 0 "98f952c5_628a_415d_a46b3e75e0c33d60" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1420 1 0 "3246255f_383b_4742_b7eb17cad21acec0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1421 1 0 "f70b31d7_c863_488a_90c4df10a4677c68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_SetParameters") { // }} "" // {{{ 1422 1 0 "7e5e111c_21f5_4c0b_9dd06d15aee64431" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqGripper"), Gripper); // }} "" // {{{ 1423 1 0 "8417ab78_f4b8_40aa_890f3b14e4204667" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Gripper, seqGripper); // }} "" // {{{ 1424 1 0 "f43d4896_c19a_4cc9_ad3c75f925788b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqWashPosition"), WashPosition); // }} "" // {{{ 1425 1 0 "ffcc2479_6c91_4038_bab179b027d4b03b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, WashPosition, seqWashPosition); // }} "" // {{{ 1426 1 0 "b731d1c6_30bc_4003_ba19e062e82293db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqDryPosition"), DryPosition); // }} "" // {{{ 1427 1 0 "a68ddb6b_780a_46ed_bcaa350f92f649fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, DryPosition, seqDryPosition); // }} "" // {{{ 1428 1 0 "020f31e6_e3ef_48f4_af0e175e60e00159" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TransportChannel"), TransportChannel); // }} "" // {{{ 1429 1 0 "1561e8c8_acaa_438f_9c7c57a5c196556f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WashCycles"), WashCycles); // }} "" // {{{ 1430 1 0 "7e0a9629_dce6_4ed9_81b854f636408ff0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryCycles"), DryCycles); // }} "" // {{{ 1431 1 0 "dacc3c17_6358_44f0_8ac4ad1fa0ae08b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryTime"), DryTime); // }} "" // {{{ 1432 1 0 "f86b35ff_9db7_4845_a3cfb7d04c520c3d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::SetParameter(ML_STAR, seqGripper, seqWashPosition, seqDryPosition, TransportChannel, WashCycles, DryCycles, DryTime); // }} "" // {{{ 1433 1 0 "ce0a2f35_ae58_4695_85513126a4acb791" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1434 1 0 "da69f49c_299d_435d_9d95dc10f7303ce9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1435 1 0 "bd10bc62_2ace_436a_a68acec8c1f9287b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1436 1 0 "f70b31d7_c863_488a_90c4df10a4677c68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1437 1 0 "3246255f_383b_4742_b7eb17cad21acec0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1438 1 0 "f19bf36e_3e74_4647_bd1c33a627d4634a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1439 1 0 "1aad8d75_d37e_4c4a_9b83799194c716fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Park") { // }} "" // {{{ 1440 1 0 "90471824_8967_4383_a722d29bfaf60113" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1441 1 0 "f6bbc2b1_c86d_4f64_abc12d3b740b1d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1442 1 0 "9341ffae_9e0c_43f9_b3ccedcfbadb07cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1443 1 0 "9e0a230a_fdb5_4eec_9cf3127779adb1d2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::ParkModule(ML_STAR, ModuleID, seqModule); // }} "" // {{{ 1444 1 0 "8aacb0d9_a918_426b_9717bd2febc1f74a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1445 1 0 "15592ad5_5751_4636_8a513ee3f27c7f11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1446 1 0 "6222366b_a5bf_4c73_8685a3cdebb4ff4f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1447 1 0 "1aad8d75_d37e_4c4a_9b83799194c716fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1448 1 0 "f19bf36e_3e74_4647_bd1c33a627d4634a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1449 1 0 "602611db_9ad3_4dbb_aae8e288d8e1c21f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1450 1 0 "a3bcbf9b_35d6_4291_9c4f146afb2924be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Pickup") { // }} "" // {{{ 1451 1 0 "347e06d8_9db7_4279_bf224e9ecf4299e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1452 1 0 "2b0761dc_e201_46b3_a590b52421cd8ee9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1453 1 0 "76631bc5_230e_4e20_87bf493887cddd0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1454 1 0 "2d3aba8b_cc4b_4be1_a83c30695fcf6dbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::PickupModule(ML_STAR, ModuleID, seqModule); // }} "" // {{{ 1455 1 0 "7879f9b5_2eea_4059_8e4bef3213e8decd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1456 1 0 "cb1582a1_3f8c_44fd_910a5f08dbe32b05" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1457 1 0 "a15fc9df_322f_4ce1_83228c63669e6b16" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1458 1 0 "a3bcbf9b_35d6_4291_9c4f146afb2924be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1459 1 0 "602611db_9ad3_4dbb_aae8e288d8e1c21f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1460 1 0 "3bc97044_ccb0_46b1_9516921492be9a5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1461 1 0 "dac7c2f7_1665_4a9c_82959eadd12ab417" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_ExtendedLog") { // }} "" // {{{ 1462 1 0 "d101eee8_9402_428a_aa576d531ed959c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::EnableExtendedLog(); // }} "" // {{{ 1463 1 0 "bc849548_9009_43ec_bb1b6c81c32132f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), 1); // }} "" // {{{ 1464 1 0 "0a496202_0f55_4f40_8b391260caa236ba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, 1, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1465 1 0 "dac7c2f7_1665_4a9c_82959eadd12ab417" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1466 1 0 "3bc97044_ccb0_46b1_9516921492be9a5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1467 1 0 "e397a319_e6cb_4188_b45c6ef45c974fba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1468 1 0 "bffc8683_40d3_4277_ac66bc7d43d675f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_LoadLastConfig") { // }} "" // {{ 1469 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B416552A06404ef48774D74059C2B182 ; err.Clear(); // }} "" // {{{ 1470 1 0 "154ec087_ea2e_4381_bb2e261ffad534f1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationLoad(BluetoothPort, NumWashCycles, NumDryCycles, DryTime); // }} "" // {{ 1471 1 0 "79340e9d_69d5_4911_b4601ae4754a16c4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1472 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B416552A06404ef48774D74059C2B182 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1473 1 0 "46420553_d90f_4dfa_b42c9d86856c288a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1474 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1475 1 0 "54b468e0_3ea0_4e83_9ffae95722c5cb9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BluetoothPort = StrIStr(BluetoothPort); // }} "" // {{{ 1476 1 0 "7bde202f_1c1b_4911_9f600ac6e1a5b57c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" NumWashCycles = StrIStr(NumWashCycles); // }} "" // {{{ 1477 1 0 "c5d427d2_0b0e_4f92_8c5b0b2cbfbfb4d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" NumDryCycles = StrIStr(NumDryCycles); // }} "" // {{{ 1478 1 0 "027378a7_4549_4d3f_b8d33aa4980be4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DryTime = StrIStr(DryTime); // }} "" // {{{ 1479 1 0 "fbda7cdb_3ed9_4a5c_907ce60556e0129b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), 1); // }} "" // {{{ 1480 1 0 "e454face_7eee_4c6e_a61e221c0e5d7fb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, BluetoothPort, NumWashCycles, NumDryCycles, DryTime, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1481 1 0 "bffc8683_40d3_4277_ac66bc7d43d675f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1482 1 0 "e397a319_e6cb_4188_b45c6ef45c974fba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1483 1 0 "dbcfe074_1fad_446d_addaa6c1b41a3a01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1484 1 0 "2bd801dc_3ffb_4b97_9f8af54ebda4fdae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_SaveLastConfig") { // }} "" // {{{ 1485 1 0 "aca4c717_812e_46f9_8eb5989a720adb24" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("BluetoothPort"), BluetoothPort); // }} "" // {{{ 1486 1 0 "1198edc8_1ec9_479d_a4e7fd71ed50cf8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("NumWashCycles"), NumWashCycles); // }} "" // {{{ 1487 1 0 "be958699_818e_43db_a757a67b7b54572a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("NumDryCycles"), NumDryCycles); // }} "" // {{{ 1488 1 0 "8751a2c3_e6ee_43bf_b21f5458aebf179a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryTime"), DryTime); // }} "" // {{ 1489 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_4973F03471994119A9F699CE6459CBFC ; err.Clear(); // }} "" // {{{ 1490 1 0 "1480ff51_54ea_4c38_befa457e23966aca" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationSave(BluetoothPort, NumWashCycles, NumDryCycles, DryTime); // }} "" // {{ 1491 1 0 "0e101f68_bc36_42fe_882a3951ef193f80" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1492 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_4973F03471994119A9F699CE6459CBFC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1493 1 0 "2e180d98_e746_4b84_b623b4d0e8e198fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1494 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1495 1 0 "cb24f9db_18c1_41af_b6f16900826be7be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 1496 1 0 "87c5e5f6_77ee_4519_879fdceaf21c1d7f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1497 1 0 "2bd801dc_3ffb_4b97_9f8af54ebda4fdae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1498 1 0 "dbcfe074_1fad_446d_addaa6c1b41a3a01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1499 1 0 "d30f6a39_499f_4b79_b2bfbdb6bb128b96" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1500 1 0 "25171dbf_33de_42a2_ad9b9d9639b5112a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 1501 1 0 "bdbbc648_a9fa_468f_b5d4d390115575eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1502 1 0 "1a74d7ad_0c35_454c_b161ede32468b2af" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1503 1 0 "c67afa78_dd60_451b_b2e31a2e6540f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1504 1 0 "2424dca1_971a_40f8_97b763c253560a2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1505 1 0 "8def2ba5_b51c_4e0c_b6ebfdd346a5beec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1506 1 0 "684d328d_214e_4955_bfe9ff0627b7f8cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 1507 1 0 "e6ec0fc8_d42c_4413_b2c2719c3cd18dc7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1508 1 0 "6f2273c4_1e1e_46f3_9ea6544d76383266" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1509 1 0 "25171dbf_33de_42a2_ad9b9d9639b5112a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1510 1 0 "d30f6a39_499f_4b79_b2bfbdb6bb128b96" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1511 1 0 "427cf00a_8c98_4fb4_8db6842164909152" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1512 1 0 "d75fbb16_6016_4c73_aecf79ca07dae29d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Terminate") { // }} "" // {{{ 1513 1 0 "b43cf782_b210_48c8_933f4cdfae78d050" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1514 1 0 "efbfd98d_c15d_4ac9_b94250ab4361a8b9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Terminate(ModuleID); // }} "" // {{{ 1515 1 0 "c918ad91_e33e_4f2f_9c6577fd8c93aaf4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1516 1 0 "2021a914_67dd_495e_9a9e4cf4438df298" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1517 1 0 "8d8842cd_e3b4_4397_92ad69593e9f7796" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1518 1 0 "d75fbb16_6016_4c73_aecf79ca07dae29d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1519 1 0 "427cf00a_8c98_4fb4_8db6842164909152" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1520 1 0 "2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1521 1 0 "6aa13f85_d8b8_4a2a_93232eeb15e0a01d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1522 1 0 "5edd27c8_de57_4980_b51d920a4d49d519" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1523 1 0 "e9d4ea17_6e30_44ae_88b03485525c4f92" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Initialize") { // }} "" // {{{ 1524 1 0 "2f9ae938_94b1_43c8_ade094614ef090a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("DeviceName"), DeviceName); // }} "" // {{{ 1525 1 0 "6cf1bcde_fb2a_4296_97b01233bdd9aa87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("AdapterDeviceID"), AdapterDeviceID); // }} "" // {{{ 1526 1 0 "58031a2b_13b4_4278_8e347d343a3bd1d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("NodeName"), NodeName); // }} "" // {{{ 1527 1 0 "20c35752_843f_4adb_904d5d26323821a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1528 1 0 "0b3f2efc_0773_4a25_84493465094ac5e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AlwaysInitialize"), AlwaysInitialize); // }} "" // {{{ 1529 1 0 "6ad8399f_eed7_4e65_98fe7d1432f0736b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Initialize(Label, NodeName, SimulationMode, AlwaysInitialize, o_stepReturn); // }} "" // {{{ 1530 1 0 "3a426d02_40f4_4c1f_b9061d37e5a4cd35" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1531 1 0 "01608cb1_fac5_42cd_bcfdf5fc7359c26d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1532 1 0 "0e3b4229_d57f_445f_a7c9d9140939367f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1533 1 0 "e9d4ea17_6e30_44ae_88b03485525c4f92" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1534 1 0 "5edd27c8_de57_4980_b51d920a4d49d519" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1535 1 0 "48cb330b_8197_439e_974791118048b53e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1536 1 0 "cc879722_4e99_410c_a8454d136f6aae6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Centrifuge") { // }} "" // {{{ 1537 1 0 "efe031a0_7aa0_4846_bf8969fbd7906970" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1538 1 0 "5965cb4a_0190_415d_862b773944074e57" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("CloseCoverAtEnd"), CloseCoverAtEnd); // }} "" // {{{ 1539 1 0 "1f94f31f_0ef0_403b_bda3b50c2fd9c38b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PresentPosition"), intPresentPosition); // }} "" // {{{ 1540 1 0 "dde8e447_4774_45bf_a244c5fab4041838" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Direction"), Direction); // }} "" // {{{ 1541 1 0 "cf0fab96_e65f_4e8a_85a809800b192075" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArraySpeed"), ArrSpeed); // }} "" // {{{ 1542 1 0 "0ca69f46_9c96_402e_9b1587ced7bff5c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArrayAcceleration"), ArrAcceleration); // }} "" // {{{ 1543 1 0 "d37afa07_2508_484d_81b6f153e1aa28ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArrayDuration"), ArrDuration); // }} "" // {{{ 1544 1 0 "6f8e9cca_35cb_4393_9f845b2135e8c2d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Deceleration"), Deceleration); // }} "" // {{{ 1545 1 0 "42d02aa8_5a1f_4144_b475d634885c1d4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrDuration, Translate(","), i_ArrDuration, 0); // }} "" // {{{ 1546 1 0 "252eacff_1b04_4607_9403f7ebc9935d0a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrSpeed, Translate(","), i_ArrSpeed, 0); // }} "" // {{{ 1547 1 0 "e1de1f59_a4b3_4220_a987c7e8e67e82c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrAcceleration, Translate(","), i_ArrAcceleration, 0); // }} "" // {{{ 1548 1 0 "085cc0ce_663a_4e79_8bf732421e2f56a9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrAcceleration, i_ArrAcceleration); // }} "" // {{{ 1549 1 0 "5f942567_121a_417c_be3e2449c5473b40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrSpeed, i_ArrSpeed); // }} "" // {{{ 1550 1 0 "f88bd247_c7e5_4823_bd5e37605974f825" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrDuration, i_ArrDuration); // }} "" // {{{ 1551 1 0 "82e32803_a688_4f29_8a1c94dead53e48e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Centrifuge(Label, CloseCoverAtEnd, intPresentPosition, Direction, i_ArrSpeed, i_ArrAcceleration, i_ArrDuration, Deceleration, o_stepReturn); // }} "" // {{{ 1552 1 0 "6541fb1d_df0a_4f0c_8474d211e4e4721a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1553 1 0 "ca37a7ce_edb5_4864_90dffb84cbb93071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1554 1 0 "54bf0b61_3ff3_4e00_8d35d876bfec98bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1555 1 0 "cc879722_4e99_410c_a8454d136f6aae6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1556 1 0 "48cb330b_8197_439e_974791118048b53e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1557 1 0 "ad0b08d4_17f2_49d0_a67860ea51423835" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1558 1 0 "5d8f135c_f0e2_4460_861984fe9a7fa710" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_GetStatus") { // }} "" // {{{ 1559 1 0 "1be02a3f_6880_42b3_b612e480fcd7e403" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1560 1 0 "5dcbef58_09da_4530_afb23e072fe81806" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_GetRotationStatus(Label, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, o_stepReturn); // }} "" // {{{ 1561 1 0 "07344966_2aca_47d5_94006574d009ab21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1562 1 0 "47572e7c_3ab2_48e3_be4d5f024ede7c41" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, Translate(""), id); // }} "" // {{ 1563 1 0 "5d8f135c_f0e2_4460_861984fe9a7fa710" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1564 1 0 "ad0b08d4_17f2_49d0_a67860ea51423835" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1565 1 0 "cd7ca6de_07b8_4d48_875925ee71386e46" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1566 1 0 "2acb9ae8_850a_4120_a212cb2a4a6200bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Open") { // }} "" // {{{ 1567 1 0 "6a9181eb_a95e_4e7b_a8df77f39d3519e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1568 1 0 "6f785fb2_5cc2_4924_b9e514e193d96143" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverOpen(Label, o_stepReturn); // }} "" // {{{ 1569 1 0 "d7ac8b69_b503_4f26_81756b6dc894d246" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1570 1 0 "d707b09f_2dc6_4b2f_9fdb84c07c07f2b2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1571 1 0 "2acb9ae8_850a_4120_a212cb2a4a6200bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1572 1 0 "cd7ca6de_07b8_4d48_875925ee71386e46" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1573 1 0 "0d7255ee_b967_4693_8d7375d684b4747f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1574 1 0 "10b7afeb_e804_457e_88b935a2b48a71c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Close") { // }} "" // {{{ 1575 1 0 "dbed33cf_5e9c_4102_b254b161284b15e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1576 1 0 "f7647d6b_38bb_4d38_895246f5ac76fe59" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverClose(Label, o_stepReturn); // }} "" // {{{ 1577 1 0 "77bb0b57_a308_455c_baabf680266f4336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1578 1 0 "0c3dee9e_33f9_4f79_99400f9368f6da14" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1579 1 0 "10b7afeb_e804_457e_88b935a2b48a71c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1580 1 0 "0d7255ee_b967_4693_8d7375d684b4747f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1581 1 0 "4dcf2947_ad5a_47e8_8c8214244ffcb3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1582 1 0 "81386c58_3b5a_4743_9453eb6a117234ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Start") { // }} "" // {{{ 1583 1 0 "44af1318_1d60_4a35_a5714accdc0c242a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1584 1 0 "25c1c841_9dea_4404_afbc9b3efc307343" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Direction"), Direction); // }} "" // {{{ 1585 1 0 "d5af29b3_1f52_48d0_be771ca87547a6c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Speed"), Speed); // }} "" // {{{ 1586 1 0 "0615f300_6c08_4978_beb5ebd0c96a686e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Acceleration"), Acceleration); // }} "" // {{{ 1587 1 0 "8f4f8eba_1777_4696_b1185b776105f4e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MaxRunTime"), MaxRunTime); // }} "" // {{{ 1588 1 0 "6d0a342b_4d08_47ec_81979a6bcb184434" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StartCentrifuge(Label, Direction, Speed, Acceleration, MaxRunTime, o_stepReturn); // }} "" // {{{ 1589 1 0 "562e3df1_ee9e_4ef5_a70c4247d08e453f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1590 1 0 "d3624dd6_4de0_4827_b501bde2ca9e3d5a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1591 1 0 "81386c58_3b5a_4743_9453eb6a117234ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1592 1 0 "4dcf2947_ad5a_47e8_8c8214244ffcb3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1593 1 0 "e9168cf2_c9e7_40a5_a52e0b9ad08f1fed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1594 1 0 "225ad45c_32fa_4f7d_af063f5ce1ab907c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Stop") { // }} "" // {{{ 1595 1 0 "e5891eba_60d8_49f6_af7be2af0aef66a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1596 1 0 "4008af1e_863b_4a5a_9b4b33d547b6fd7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Decelleration"), Decelleration); // }} "" // {{{ 1597 1 0 "667c83ad_57d3_4ce9_a2dca9287fb97d7e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StopCentrifuge(Label, Decelleration, o_stepReturn); // }} "" // {{{ 1598 1 0 "43ffc328_4600_41cb_a084d56b006fee8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1599 1 0 "263c82c5_d2f1_463f_b2f102d150ca0a0f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1600 1 0 "225ad45c_32fa_4f7d_af063f5ce1ab907c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1601 1 0 "e9168cf2_c9e7_40a5_a52e0b9ad08f1fed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1602 1 0 "551d8e94_670b_4472_b73600d28f237682" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1603 1 0 "bd20d1b8_d440_4b6f_9041a5b536904a0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Terminate") { // }} "" // {{{ 1604 1 0 "1e54be13_32c5_43bd_bcea8da753eedd90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1605 1 0 "c884c5b1_cb4e_4d38_907361a00b32d3f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Terminate(Label, o_stepReturn); // }} "" // {{{ 1606 1 0 "fa01d6ec_8920_4fd7_adbc2f6f4f106df5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1607 1 0 "1664cc0f_d416_47d5_aa13970ade2397b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1608 1 0 "bd20d1b8_d440_4b6f_9041a5b536904a0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1609 1 0 "551d8e94_670b_4472_b73600d28f237682" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1610 1 0 "6aa13f85_d8b8_4a2a_93232eeb15e0a01d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1611 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1612 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Initialize") { // }} "" // {{{ 1613 1 0 "5efffd73_f295_4d3c_aacd37c74d2bc015" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ComPort"), Comport); // }} "" // {{{ 1614 1 0 "cc8f22a1_0ae7_40ee_82d2e071b7344cf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn); // }} "" // {{{ 1615 1 0 "b6f33534_c173_4c6c_820d96a48fa50a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Barcode initialize:"), o_stepReturn); // }} "" // {{{ 1616 1 0 "138ad752_fbd8_457e_948dd436ddb65822" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1617 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1618 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Read") { // }} "" // {{{ 1619 1 0 "0b3c261e_a906_4464_b0e5caa3ec640056" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Read(barcode); // }} "" // {{{ 1620 1 0 "98aadc47_a5a2_433d_84530ad050155ccd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("BarcodeReader_Read"), barcode); // }} "" // {{{ 1621 1 0 "e3fc85ee_a6d7_4d98_a3f9076b947565cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, barcode, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1622 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1623 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1624 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1625 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1626 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_BeginMonitoring") { // }} "" // {{{ 1627 1 0 "7dd862dc_f7f1_4600_94ca9b83762673dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1628 1 0 "d37d14e5_261f_418c_81f754eb75bf4920" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingToleranceRange"), shakingToleranceRange); // }} "" // {{{ 1629 1 0 "0919ceb3_189a_4885_93c8faeab9f9538b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sampleInterval"), sampleInterval); // }} "" // {{{ 1630 1 0 "bc3a749e_e1bb_4c4a_9aac06834d85080f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("action"), action); // }} "" // {{ 1631 1 0 "98795c5d_e3e5_4d8c_bba032968c530136" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1632 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ; err.Clear(); // }} "" // {{{ 1633 1 0 "a2a0a3bb_c0cf_4123_afe36d1d51ae233c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action); // }} "" // {{ 1634 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3202FD4CC34D478f892F31C7684340BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1635 1 0 "435e7414_9170_4bf9_bd0ac83f0ab51fad" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1636 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1637 1 0 "c00b8635_652d_48ca_8d345ed070306b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1638 1 0 "85ac1487_5644_4bae_b032f5c191aa47c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1639 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1640 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1641 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1642 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateStarDevice") { // }} "" // {{{ 1643 1 0 "4c3dfdd2_2dd6_4c5f_831f92590c13e82e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1644 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ; err.Clear(); // }} "" // {{{ 1645 1 0 "cc3d4234_12d6_486a_a110c8ede0e3059b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber); // }} "" // {{ 1646 1 0 "f17e82ff_88ef_4685_bf6f75a8ca0e32f6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1647 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1648 1 0 "c0256452_8d47_4f97_9e9c2250a44934d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1649 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1650 1 0 "7699b24c_5ec6_4cca_b1cb9aed9ce60247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1651 1 0 "85155966_9554_40cb_9693f9b0a11b25a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1652 1 0 "d049e779_0761_471d_9f7b8af0967d1633" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1653 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1654 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1655 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1656 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateUSBDevice") { // }} "" // {{{ 1657 1 0 "72f0a762_2550_45ad_bea063f4f72a9fe9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1658 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ; err.Clear(); // }} "" // {{{ 1659 1 0 "0cd1cef0_3091_48c3_b63490d3e80a5b45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber); // }} "" // {{ 1660 1 0 "1823653c_5e02_428a_badd7ca34d3aabf1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1661 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_98100824AA704d26AB40A6BADEF39F48 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1662 1 0 "058f8bb4_5fe3_4a6b_a36e899c2a89656f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1663 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1664 1 0 "a9b4c19d_dcc0_42d7_9a51e3241ef647f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return:"), o_stepReturn); // }} "" // {{{ 1665 1 0 "d303212f_1f38_442d_a24eee709cf4cdc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1666 1 0 "7356ec1e_8437_4679_94613ac2bea4fe0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1667 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1668 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1669 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1670 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_EndMonitoring") { // }} "" // {{{ 1671 1 0 "4293ef15_cfcd_4e29_b9b02afae2d471f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1672 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ; err.Clear(); // }} "" // {{{ 1673 1 0 "96f15f32_4117_4a09_85dceac0fa769b43" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult); // }} "" // {{ 1674 1 0 "9d9a3dcb_ddc9_47c5_a860665377ee3e86" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1675 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1676 1 0 "aabeb82e_70d9_42f7_901f3fe114094e0a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1677 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1678 1 0 "ce89bf49_b865_4c3f_a97eba220b5a7d33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS End Monitoring step return:"), o_stepReturn); // }} "" // {{{ 1679 1 0 "05229af2_f20a_42ce_908ec8445f3f9dd2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(""), Translate(""), id); // }} "" // {{ 1680 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1681 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1682 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1683 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetFirmwareVersion") { // }} "" // {{{ 1684 1 0 "942a1cc2_d956_47fa_9a9ffed1e856a632" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1685 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ; err.Clear(); // }} "" // {{ 1686 1 0 "f6b3cc8e_f852_4a96_9567a4fa67e846e8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1687 1 0 "c70f5e07_0eeb_45e5_af26714895e2df88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion); // }} "" // {{ 1688 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1689 1 0 "96886e69_ba07_45e3_96353112dc429afc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1690 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1691 1 0 "7de3b86c_c16d_4932_beedfb948b5d85f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(""), Translate(""), id); // }} "" // {{ 1692 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1693 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1694 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1695 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetSerialNumber") { // }} "" // {{{ 1696 1 0 "38b7d0d7_7cce_4157_8abc70dfb62eefa5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1697 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ; err.Clear(); // }} "" // {{ 1698 1 0 "08061228_63f2_47d2_a601ba16d6a1a142" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1699 1 0 "0bbfb488_9723_4a08_9b90171dbec6117a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber); // }} "" // {{ 1700 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2434A44DB44B48ff82A9F66DE34C5041 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1701 1 0 "4cf5e7f7_9567_4e6b_a206bf6f8962c785" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1702 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1703 1 0 "311e5a04_1ac3_443c_bdc51c5cdc4c44f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(""), Translate(""), id); // }} "" // {{ 1704 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1705 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1706 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1707 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerParameter") { // }} "" // {{{ 1708 1 0 "f3888a0b_86ea_4c4a_891e1755a6e78556" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1709 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ; err.Clear(); // }} "" // {{ 1710 1 0 "693cec94_9d14_4bff_8e4868a3b27f0245" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1711 1 0 "e993ed67_92ed_4c85_bd33f90aac53dfb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3); // }} "" // {{ 1712 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1713 1 0 "bd4bffe6_9161_4f42_b0b53307549f4286" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1714 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1715 1 0 "6efd49bf_48c7_437b_8fee57487345eaee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1716 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1717 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1718 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1719 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerSpeed") { // }} "" // {{{ 1720 1 0 "e1c29a26_0656_46e3_b0a412143047bd26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1721 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ; err.Clear(); // }} "" // {{ 1722 1 0 "949c257a_0d44_4a50_bb10d9b59e6a02c2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1723 1 0 "d7148e56_7fcc_471d_8c3a7abc2847db7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2); // }} "" // {{ 1724 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1725 1 0 "fb8e630b_9519_4b3d_94eabf1311546383" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1726 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1727 1 0 "41ba2513_e3c2_485c_821198419c3fe286" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1728 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1729 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1730 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1731 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTempParameter") { // }} "" // {{{ 1732 1 0 "09fb30ea_33e9_486d_96945af4798859ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1733 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ; err.Clear(); // }} "" // {{ 1734 1 0 "7e342beb_ebbe_4873_bf53c50f29cbaa0e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1735 1 0 "c8f45788_ef99_414d_a41d29a20583a067" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 1736 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C16E1CF8298042f0A01D1040DC911015 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1737 1 0 "b845f534_5a22_4076_b36069f70af90742" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1738 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1739 1 0 "4793211e_93d2_43e6_b4d25d7e0ae3e104" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 1740 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1741 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1742 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1743 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperature") { // }} "" // {{{ 1744 1 0 "01d1add6_c167_4137_8f0c285cd6ad9bed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1745 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ; err.Clear(); // }} "" // {{ 1746 1 0 "0bd6e3be_da2c_4500_973c9d6eae8e7ae6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1747 1 0 "4187d732_0d13_4590_99fa08572e32e2f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2); // }} "" // {{ 1748 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_14A2AAD200434d69970AC483BD08B64F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1749 1 0 "cabbe1ee_c5d4_49dd_90875673900d6120" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1750 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1751 1 0 "234847f1_2f0a_4e64_856b9edefcebb425" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1752 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1753 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1754 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1755 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperatureState") { // }} "" // {{{ 1756 1 0 "82a233ab_0392_4ebb_9a809d80aae38e44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1757 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ; err.Clear(); // }} "" // {{ 1758 1 0 "5b647db8_f1d6_4deb_9b859eb1dfda063d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1759 1 0 "7f7e0bd7_bea9_474d_92bce5d21da9a2a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2); // }} "" // {{ 1760 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_50485390A50647818ED2D3934FBC87E3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1761 1 0 "f56ee559_1221_4f5a_ad332d0e44502aff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1762 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1763 1 0 "31a69f44_1a59_49ce_a78763f3aa936042" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1764 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1765 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1766 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1767 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SendFirmwareCommand") { // }} "" // {{{ 1768 1 0 "11546c32_6ddd_4250_9b8750c9679e5b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1769 1 0 "06688598_f10e_41e9_8a2c6d3dff7b7aae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), command); // }} "" // {{{ 1770 1 0 "15a58509_ec93_4677_b1858cadeac42d10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("parameter"), parameter); // }} "" // {{ 1771 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ; err.Clear(); // }} "" // {{ 1772 1 0 "ad365bf1_c5e9_4c85_b1b623b20be98474" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1773 1 0 "b63ba349_9a52_43ca_aec17e40c17d231b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter); // }} "" // {{ 1774 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_84EE5E4228B140f599748D1271CBB0F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1775 1 0 "c9bd9645_5a05_4cc6_95997f787c8772d6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1776 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1777 1 0 "8b5634c2_e1da_41d3_83c57142f4cae999" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1778 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1779 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1780 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1781 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetPlateLock") { // }} "" // {{{ 1782 1 0 "927ddf67_5dbd_432b_b8cf6117a3109b06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1783 1 0 "a3eee1ac_7024_473b_a6eb8a2e9b461a66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("plateLock"), plateLock); // }} "" // {{ 1784 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ; err.Clear(); // }} "" // {{ 1785 1 0 "f307f49e_48c2_428e_80c1d57693f85156" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1786 1 0 "27d47e3b_913b_4a0e_bdb50007a0e39d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock); // }} "" // {{ 1787 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1788 1 0 "4eb95522_37fd_4802_af85a620dc874526" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1789 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1790 1 0 "945560ed_40bf_44a9_851fead4c1943f9f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1791 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1792 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1793 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1794 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetShakerParameter") { // }} "" // {{{ 1795 1 0 "8a0e14c1_f6c6_4fb8_94094498cccd7991" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1796 1 0 "1810a83f_3fc2_4c49_9d5502fbdfc743e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingDirection"), shakingDirection); // }} "" // {{{ 1797 1 0 "c3053579_8645_474f_8c05459eed975362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingAccRamp"), shakingAccRamp); // }} "" // {{ 1798 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ; err.Clear(); // }} "" // {{ 1799 1 0 "32b90a07_0607_448d_9767de1d96e31862" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1800 1 0 "77463ac5_e629_4772_98004edef4016a6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp); // }} "" // {{ 1801 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1802 1 0 "5593fd2a_c1e7_4565_bcae82458768dd51" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1803 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1804 1 0 "5ed72ec4_1b60_4258_969b44c995450ec1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1805 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1806 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1807 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1808 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetSimulation") { // }} "" // {{{ 1809 1 0 "941f9e19_ca94_4ede_9719205aeb876593" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{ 1810 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ; err.Clear(); // }} "" // {{ 1811 1 0 "f56567fc_04c1_4645_aee22aa5f22a9f8c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1812 1 0 "41b0c1a2_60aa_4f16_8901c300e9a3dc14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetSimulation(simulate); // }} "" // {{ 1813 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1814 1 0 "35803a11_c620_485a_8196cc2822dddb3f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1815 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1816 1 0 "2e7a9d5f_51df_4c49_bb1986da7e14cd48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1817 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1818 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1819 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1820 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetTempParameter") { // }} "" // {{{ 1821 1 0 "99447b6e_9293_483d_bbd7ddee96870904" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1822 1 0 "f55d7581_a005_45e4_9b3d7f7473323e6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("startTimeout"), startTimeout); // }} "" // {{{ 1823 1 0 "7192db12_8543_4c8b_81b98b57ce21118d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("toleranceRange"), toleranceRange); // }} "" // {{{ 1824 1 0 "8f6d922f_f2ae_43c6_8682df15e6b7c07c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("securityRange"), securityRange); // }} "" // {{ 1825 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ; err.Clear(); // }} "" // {{ 1826 1 0 "a2342046_552f_4003_a1cc262161964a6e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1827 1 0 "57eb738a_6eb2_4f04_b25bd7f7f64a8179" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange); // }} "" // {{ 1828 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1829 1 0 "94c928dd_6dcb_4540_a6cbfdf48e37430c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1830 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1831 1 0 "90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1832 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1833 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1834 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1835 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetUSBTrace") { // }} "" // {{{ 1836 1 0 "0691ecbd_49b4_4590_91d60e614290ec34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("trace"), intTrace); // }} "" // {{ 1837 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ; err.Clear(); // }} "" // {{ 1838 1 0 "aeed4685_8812_4dce_89e2c35429d4c401" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1839 1 0 "24723a79_741b_46be_830fe654c08d6d1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetUSBTrace(intTrace); // }} "" // {{ 1840 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FE6D15E135D24fd7A06908E89474B650 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1841 1 0 "32d09876_dcdb_4d67_b5e72a63e14fec19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1842 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1843 1 0 "cda0d06f_dce0_47ad_bbb419c58aba260e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1844 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1845 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1846 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1847 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShaker") { // }} "" // {{{ 1848 1 0 "503e1c47_5f15_42bd_8eaad1057de68ef6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1849 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ; err.Clear(); // }} "" // {{ 1850 1 0 "dab3ac84_179e_4fd8_9b00ad14f3ef613e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1851 1 0 "7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed); // }} "" // {{ 1852 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1853 1 0 "c35cdd37_7a73_4008_b9d0ac550c926428" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1854 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1855 1 0 "ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1856 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1857 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1858 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1859 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShakerTimed") { // }} "" // {{{ 1860 1 0 "db6b6c2e_da48_4c64_bdddc80ba5a28921" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1861 1 0 "f6f42906_5ded_4a05_8f9a11fac18f7f10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1862 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ; err.Clear(); // }} "" // {{ 1863 1 0 "523b190e_f70f_4a28_b16582e7161b390a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1864 1 0 "428d423d_1825_472f_a3aa303d028d0659" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime); // }} "" // {{ 1865 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1866 1 0 "ef7c31f9_e307_450a_851111f26afd2e91" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1867 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1868 1 0 "d73f1476_bf95_4d48_89849f295a9e4d0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1869 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1870 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1871 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1872 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShaker") { // }} "" // {{{ 1873 1 0 "f958f5a5_d1c5_4e9e_9262e708f24940c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1874 1 0 "2ce1189b_e54a_48c0_aafc2932409c0b9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1875 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ; err.Clear(); // }} "" // {{ 1876 1 0 "e043b61a_b8c5_46d4_9bf331f7566a8911" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1877 1 0 "a302e74e_d752_4ae6_b492a17f601bef41" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed); // }} "" // {{ 1878 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1879 1 0 "9b93a06b_e4df_4eca_84467ca6c7f0c0ce" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1880 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1881 1 0 "4b0b48f9_3855_4eab_8f22b0902846d750" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1882 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1883 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1884 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1885 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShakerTimed") { // }} "" // {{{ 1886 1 0 "858c7861_9fb0_490e_9646b9eb190706d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1887 1 0 "327bd0c6_60a8_4fd1_9ef81e2a21d904a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1888 1 0 "83a6d58d_c761_484f_871c9c2229a6d3d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1889 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ; err.Clear(); // }} "" // {{ 1890 1 0 "10af5b65_9ddd_4a4b_b040d8f5b6e642cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1891 1 0 "22e55b69_c018_47f9_8e3ac169c190d2de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); // }} "" // {{ 1892 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_29447729262E4e0f8B347F6640716D96 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1893 1 0 "f383d799_1d15_4348_8a2dc84422f46ff2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1894 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1895 1 0 "f539df09_de1d_4fd8_9ac041897fab0333" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1896 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1897 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1898 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1899 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartTempCtrl") { // }} "" // {{{ 1900 1 0 "dc338e01_6b43_4fe3_bda98d2b0a1a65e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1901 1 0 "04239a09_93a5_4f75_80f95d178bdf9cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("temperature"), temperature); // }} "" // {{{ 1902 1 0 "0387745b_87be_4ec6_912b0b4decaa257b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("waitForTempReached"), waitForTempReached); // }} "" // {{ 1903 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ; err.Clear(); // }} "" // {{ 1904 1 0 "497404d1_5fea_46f0_9598d8e1c1cb11ed" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1905 1 0 "4ba75dd5_935f_4f2c_a15605eafa47b808" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached); // }} "" // {{ 1906 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_764F491C76DA445383E5490AB126ADB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1907 1 0 "21dd8d34_e764_4a0f_b34ccecf089437dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1908 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1909 1 0 "bfde731d_b581_4488_b4cb7f4873675d7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1910 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1911 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1912 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1913 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopAllShaker") { // }} "" // {{ 1914 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ; err.Clear(); // }} "" // {{ 1915 1 0 "d8b2a327_d63a_46f2_8c273b2eedb8cb34" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1916 1 0 "d112da95_7f27_47a3_9e24bc801bcc9afc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{ 1917 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1918 1 0 "45d1f212_46b9_4976_83503edf5606c88e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1919 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1920 1 0 "5706daca_363f_417f_9103f7ddd16c1444" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1921 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1922 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1923 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1924 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopShaker") { // }} "" // {{{ 1925 1 0 "1cdead0d_9944_446b_bd59d491b15242b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1926 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ; err.Clear(); // }} "" // {{ 1927 1 0 "9d792f4f_4c49_4998_b21fd7f7d6a58fce" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1928 1 0 "b811fcbc_7d95_47c6_9c33e18415810e13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::StopShaker(deviceNumber); // }} "" // {{ 1929 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1930 1 0 "1fe83710_037b_4157_82a99e6aaf08edcb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1931 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1932 1 0 "6ffd1f39_ec63_4f9c_a7687447aff79f80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1933 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1934 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1935 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1936 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopTempCtrl") { // }} "" // {{{ 1937 1 0 "b16ab946_2ba9_4900_bd6f9ede31edf6ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1938 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B5957B02990845739642D8C604B0B582 ; err.Clear(); // }} "" // {{ 1939 1 0 "384c69b8_0ce8_4a27_af0a4060e6f1a01d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1940 1 0 "3a29dc5b_78cc_4ed1_ab9cd631701715e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber); // }} "" // {{ 1941 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B5957B02990845739642D8C604B0B582 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1942 1 0 "28b1d8d1_83cc_4627_9146c7398c601938" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1943 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1944 1 0 "11f3231a_40df_4c14_92585ab8016165e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1945 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1946 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1947 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1948 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_Terminate") { // }} "" // {{ 1949 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ; err.Clear(); // }} "" // {{ 1950 1 0 "b1da178c_1267_4c8c_b1cd24bfa10a11fb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1951 1 0 "910932e3_2b76_41cf_9dccecb799f2d649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::Terminate(); // }} "" // {{ 1952 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_919FCF7F89804c398972DAFE2605D286 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1953 1 0 "697e84e2_525e_4045_83bb3825b36f6b2f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1954 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1955 1 0 "4edde3c1_4f65_4403_a54985d84f6d80f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1956 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1957 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1958 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1959 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForShaker") { // }} "" // {{{ 1960 1 0 "87872be5_4e84_4b7b_98a3e7147a66f6a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1961 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ; err.Clear(); // }} "" // {{ 1962 1 0 "6c68258f_f870_4c46_b358dc4391ced463" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1963 1 0 "2eff956e_28cc_4094_8285d5ed00125a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber); // }} "" // {{ 1964 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1965 1 0 "c08ab14c_3879_4f65_ad7085e45f74a6df" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1966 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1967 1 0 "96b99051_5c80_421c_a02e0bd238da1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1968 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1969 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1970 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1971 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForTempCtrl") { // }} "" // {{{ 1972 1 0 "881e7d69_50e3_4e42_89eafece562ac009" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1973 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ; err.Clear(); // }} "" // {{ 1974 1 0 "f5db2a6b_8286_4195_844af45f48c61d3f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1975 1 0 "421a52eb_128a_4b6b_8baafb6548b66bd8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber); // }} "" // {{ 1976 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_088C7630997A4749A400740DA66CBA0C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1977 1 0 "de7dad67_0b6c_47eb_af5a68302431ff1e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1978 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1979 1 0 "aeb529e0_2eaf_4686_9528342b58318a5d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1980 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1981 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1982 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1983 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1984 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1985 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "CORE96WashEmpty") { // }} "" // {{{ 1986 1 0 "88f95bdd_c2c5_4856_91e5f47f7431bdaf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("refillAfterEmpty"), refillAfterEmpty); // }} "" // {{{ 1987 1 0 "d7a05a26_0b59_478a_a85f308173caf693" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1WashLiquid"), chamber1WashLiquid); // }} "" // {{{ 1988 1 0 "8b1bd108_2b5a_4a2d_ace7b87920eae1b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1LiquidChange"), chamber1LiquidChange); // }} "" // {{{ 1989 1 0 "d651fbf5_a4b8_490b_b869269338ccfcfa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2WashLiquid"), chamber2WashLiquid); // }} "" // {{{ 1990 1 0 "79b1a205_d988_4171_9e1fb28ba362329b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2LiquidChange"), chamber2LiquidChange); // }} "" // {{ 1991 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ; err.Clear(); // }} "" // {{ 1992 1 0 "3fc645b3_f504_4b5e_93481425adf459b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1993 1 0 "123d7b87_745f_4511_a797d08711d13361" "ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}" { variable arrRetValues[]; arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3("123d7b87_745f_4511_a797d08711d13361"); // Head96EmptyWasher } // }} "" // {{ 1994 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EE8804FCDC214a06935DD0F4830020DB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1995 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 1996 1 0 "d3d07dad_de12_4d0c_bd96c7caa06ff3ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1997 1 0 "84732f19_85e4_4b22_8e617b5e1c91f73c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Washer Return: "), o_stepReturn); // }} "" // {{{ 1998 1 0 "dde0a413_b493_4b17_94990d1d5f2e2b2e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1999 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2000 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2001 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2002 1 0 "1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONFromServer); // }} "" // {{ 2003 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2004 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "end") { // }} "" // {{{ 2005 1 0 "6db67a5a_6aa2_4087_875823acfff0fac4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Good Bye!")); // }} "" // {{ 2006 1 0 "4c7e40d6_02a6_451d_b28230ec71e40ce1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2007 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2008 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2009 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2010 1 0 "6fb90145_24c3_46ba_88b839e0215d0bf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{ 2 "AutoExitBlock" "" STAR_OEM_TOOLKIT::_ExitLibrary(); STAR_OEM_TOOLKIT_PH::_ExitLibrary(); STAR_OEM_TOOLKIT_CENTRIFUGE::_ExitLibrary(); STAR_OEM_TOOLKIT_MPE::_ExitLibrary(); HAMILTON_PH_MODULE_CONTROLLER::_ExitLibrary(); // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=stefa$$valid=0$$time=2023-03-02 10:47$$checksum=da16688a$$length=082$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx305.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" private function ArrayToString( variable & i_array[], variable & o_str ) void ; private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ; private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ; private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ; private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void ; function SendTextMessageToServer( variable str ) void ; private function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; private function waitForGUItoContinue( ) variable ; function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 2170 1 0 "c8aa765a_4840_468a_9e928b44fa79d891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{{ 5 "OnAbort" "End" } // }} "" // {{{ 5 "SendTextMessageToServer" "Begin" function SendTextMessageToServer( variable str ) void { // }} "" private object objJSONObject; private variable strJSON; // {{ 5 "SendTextMessageToServer" "InitLocals" // }} "" // {{{ 2130 1 0 "9d5f9d4a_c104_4b47_964b6d97f981a71e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONObject); // }} "" // {{{ 2131 1 0 "d0a04705_1adc_4919_b95168834c89f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("command"), Translate("message")); // }} "" // {{{ 2132 1 0 "7b9a6cd1_3eee_4085_b3f9548e43fc3424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("text"), str); // }} "" // {{{ 2133 1 0 "6a1c53cf_65ea_4f53_aa2e9111890fecf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONObject, strJSON); // }} "" // {{{ 2134 1 0 "bee8c148_b3ea_490b_8d93d8ed5f24939f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONObject); // }} "" // {{{ 2135 1 0 "b965a2fd_f821_4400_b4c777f558ed0772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendTextMessageToServer" "End" } // }} "" // {{{ 5 "waitForGUItoContinue" "Begin" private function waitForGUItoContinue( ) variable { // }} "" private variable loopCounter1; private variable serverResponse; private timer timer1; // {{ 5 "waitForGUItoContinue" "InitLocals" // }} "" // {{ 2151 1 0 "73328607_d06a_4d7d_8a5df64da06a1bde" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" serverResponse = Translate(""); // }} "" // {{{ 2152 1 0 "2342f8b3_4765_4edc_9fb9f46cbb1fd20b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Waiting for server instructions...")); // }} "" // {{{ 2153 1 0 "216e1039_788e_4830_8588933e6c542ba1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Waiting for server instructions...."), Translate("")); // }} "" // {{ 2154 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounter1 = 0; while (1 == 1) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2155 1 0 "5f15547c_3178_4f78_b5fea96f6a1c563b" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.1) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2156 1 0 "cd67277b_4386_4862_8429008a00601693" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 2157 1 0 "6ec592d0_fe02_41a9_8503db5ccf0e5544" "{C1F3C015-47B3-4514-9407-AC2E65043419}" serverResponse = HSLHttp::HttpGET(objHttp, Translate("http://localhost:3221"), Translate("")); // }} "" // {{ 2158 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (serverResponse != "") { // }} "" // {{ 2159 1 0 "b1e2e308_ee78_46d0_8a6832649536045e" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2160 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2161 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 == 300) { // }} "" // {{ 2162 1 0 "19e5c8f7_a1a9_4348_aa41a572942db630" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2163 1 0 "6be46368_bb3e_4ad8_82647d6f52af8c9b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2164 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2165 1 0 "8951a436_faf4_45df_a268dbb7ddb58c29" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.9) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2166 1 0 "52bb524e_27b1_4bbe_afcf26453d9eb66f" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2167 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2168 1 0 "809789b0_bd70_4c1f_b0d808ce120b1d99" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (serverResponse); // }} "" // {{{ 5 "waitForGUItoContinue" "End" } // }} "" // {{{ 5 "SendStepReturnToServer" "Begin" private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer" "InitLocals" // }} "" // {{{ 2101 1 0 "2520bd9f_739d_4111_a27d89f8f73ec39e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2102 1 0 "aa6010ec_0628_49d5_a87e016b4a4fc7f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 2103 1 0 "a97c5efa_0ce4_4358_9c51c1893f526b9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 2104 1 0 "deceb871_e830_4b14_86e626f745ef083a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 2105 1 0 "00afb5c2_b5db_4458_866a13b6cb332b68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 2106 1 0 "e52bbd02_b31d_4278_a0f45991eab77d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 2107 1 0 "19f99698_3777_4dcf_9fc765c3f221df4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 2108 1 0 "329f8b9b_0798_44f8_9ee6b65ec58b0c44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2109 1 0 "7728ac0d_8630_4f61_94af076392758ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2110 1 0 "70d261f2_edc4_49a0_a5a074cd5ab92b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2111 1 0 "ee0dd62d_582f_4171_b08e37f6106d9b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer" "End" } // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "Begin" private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void { // }} "" private variable n; private variable loopCounter1; private variable strSinglePosition; private variable arrayOfPositions[]; private variable arraySinglePosition[]; private variable labwareID; private variable positionID; // {{ 5 "BuildTempSequenceFromPositions" "InitLocals" { sequence __temp; o_seq = __temp; } // }} "" // {{ 2048 1 0 "d9022e13_e502_4969_a8ee79484e990801" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arrayOfPositions.SetSize(0); // }} "" // {{{ 2049 1 0 "3e178082_8579_435f_a5db4481bb789d9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strPositions, Translate(";"), arrayOfPositions, 0); // }} "" // {{ 2050 1 0 "5d735f26_db1b_4bea_9ee405f4167bb99f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" n=arrayOfPositions.GetSize(); // }} "" // {{{ 2051 1 0 "f497f24b_fd39_417d_8703c0d54662309f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq); // }} "" // {{ 2052 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2053 1 0 "fd645546_0433_46a0_8619026e338529fd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arraySinglePosition.SetSize(0); // }} "" // {{ 2054 1 0 "91aeb0c4_3176_4356_a19a1027bcdb0af3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1); // }} "" // {{{ 2055 1 0 "c2b42369_7829_4c62_b58880fce7867995" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strSinglePosition, Translate(","), arraySinglePosition, 0); // }} "" // {{ 2056 1 0 "016f61c5_fd76_4c74_903df10a03070f7b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" labwareID=arraySinglePosition.GetAt(1-1); // }} "" // {{ 2057 1 0 "886fc872_7c3a_4366_959db6d5f265ed7c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" positionID=arraySinglePosition.GetAt(2-1); // }} "" // {{{ 2058 1 0 "766a54b4_4c5b_4991_9d8ceea62d26b216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq, labwareID, positionID); // }} "" // {{ 2059 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2060 1 0 "0003c6e9_5b43_438d_bc93be342c3c6b55" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq.SetCurrentPosition(1); // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "End" } // }} "" // {{{ 5 "StrTokenize" "Begin" private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 2145 1 0 "500afe4c_98a8_4117_8c279b9994d0b626" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 2146 1 0 "6a0bd918_2fda_4e4c_a680454ce2576168" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 2147 1 0 "f65ed315_68ed_4ec0_ba0b3c217e692b25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 2148 1 0 "9476acee_e5bb_43d1_bbec232ed01bae08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); // Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "Begin" private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void { // }} "" private variable numOfVolumes; private variable numOfChannelsInVariable; private variable n; private variable loopCounter1; private variable arrSize; private variable loopCounter3; private variable strKeyName; // {{ 5 "BuildArrayOfVolumesForChannels" "InitLocals" o_arrayOfVolumes.SetSize( 0); // }} "" // {{ 2022 1 0 "69288f91_eabd_4d15_af5361636ffacbf6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyName = Translate("volumes"); // }} "" // {{ 2023 1 0 "bf4c1108_6751_41ee_8d3d3b1a9418548f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfVolumes.SetSize(0); // }} "" // {{{ 2024 1 0 "a9cfa743_a769_46a3_b8d7e45a67b3d297" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName); // }} "" // {{ 2025 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arrSize > 0) { // }} "" // {{ 2026 1 0 "594bebbb_0d54_4893_b20d783de743dd44" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2027 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < arrSize;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{{ 2028 1 0 "3bfc9004_2595_4917_b4edcdceed06f518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); // }} "" // {{ 2029 1 0 "6be31b23_f55d_4d15_be6abc9ee4bef664" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" Trace("Volume received=", v); // {{ 2031 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2032 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2033 1 0 "4a4891b3_f877_4b14_85196b7e820554b2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2034 1 0 "22c7c768_33c4_4975_909e9586375bfe8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(strKeyName, v); // }} "" // {{ 2035 1 0 "4e01e62a_13a2_408e_9fbfb2300d5996ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 2036 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2037 1 0 "cc565f65_a92a_43ef_9c052b7f5632aca5" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" numOfVolumes=o_arrayOfVolumes.GetSize(); // }} "" // {{{ 2038 1 0 "e49355fb_3fe6_4c8d_930870416e36b708" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numOfChannelsInVariable = StrGetLength(strChannels); // }} "" // {{ 2039 1 0 "804bc477_e950_4a14_af5f667c73cf5176" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2040 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (numOfVolumes < numOfChannelsInVariable) { // }} "" // {{ 2041 1 0 "2e73355c_8b11_4423_b345807cae9d5db8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" n = numOfChannelsInVariable - numOfVolumes; // }} "" // {{ 2042 1 0 "53a650d8_2fc1_4c5b_bd19eda433c2a81a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" v = o_arrayOfVolumes.ElementAt( numOfVolumes -1); // }} "" // {{ 2043 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2044 1 0 "cd047b15_6a02_40f1_adfb116f6bf5d763" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 2045 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2046 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "End" } // }} "" // {{{ 5 "ArrayToString" "Begin" private function ArrayToString( variable & i_array[], variable & o_str ) void { // }} "" private variable arraySize; private variable loopCounter1; // {{ 5 "ArrayToString" "InitLocals" o_str = 0; // }} "" // {{ 2012 1 0 "1a220255_6ba4_40fb_be39a6a2f4e0065f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 2013 1 0 "f821c4ff_f1a2_4ad7_9bd77dd8652567cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str = Translate(""); // }} "" // {{ 2014 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2015 1 0 "afd84a84_8330_46e7_8308e16b5caa05e9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" v=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 2016 1 0 "77436fd3_3c87_4f09_9a89259b15ef5bf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, v); // }} "" // {{ 2017 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 < arraySize) { // }} "" // {{{ 2018 1 0 "d14fd31e_5de8_46f9_bb359f38de9a08ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, Translate(";")); // }} "" // {{ 2019 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2020 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "ArrayToString" "End" } // }} "" // {{{ 5 "JSON_GetFloatValue" "Begin" private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void { // }} "" private variable retVal; // {{ 5 "JSON_GetFloatValue" "InitLocals" o_KeyFloatValue = 0; // }} "" Trace("getfloatvalue"); // {{{ 2063 1 0 "8f2f8625_6c9e_4c47_b4698d29df60004a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" // {{ 2064 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("error getting float value, try with integer"); // {{ 2066 1 0 "5a74df81_6685_4703_8b055144f8d74d45" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2067 1 0 "47bb8c98_9624_40ad_b765abfc6b0d0b49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" Trace("error getting float value, tried with integer"); // {{ 2069 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("wtf ok i guess its zero"); // {{ 2071 1 0 "5b8a3ec6_8ee4_4887_ab7df29fa494cdc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_KeyFloatValue = 0; // }} "" // {{ 2072 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2073 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "JSON_GetFloatValue" "End" } // }} "" // {{{ 5 "SendHHSReturnToServer" "Begin" private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; private variable t_arrayStepReturns[]; private variable loopCounter1; private variable keyName; private variable varType; // {{ 5 "SendHHSReturnToServer" "InitLocals" // }} "" // {{{ 2075 1 0 "6db3f932_ba70_4cf6_9c2a8636580fc754" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2076 1 0 "3cf8a985_83cc_418e_99293de9d9945d5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("HHS-return")); // }} "" // {{{ 2077 1 0 "705c25bc_6db4_4eb9_b05b33999e110198" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{ 2078 1 0 "5a9efc02_a11a_4c0c_b166e3b28800cc6c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" t_arrayStepReturns.SetSize(0); // }} "" // {{ 2079 1 0 "5aa4f3a8_774f_4f35_ae7fa197ef920048" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn1); // }} "" // {{ 2080 1 0 "00ac351d_bc51_41e5_b300af93d6893fa5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn2); // }} "" // {{ 2081 1 0 "2aaf8702_2d08_48ee_be96815ca77463c9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn3); // }} "" // {{ 2082 1 0 "67fcb56e_9f42_4739_a5ee322f12443a17" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn4); // }} "" // {{ 2083 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < 4;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 2084 1 0 "a23ae2ed_5b02_41a0_a69215d0b80fde4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" keyName = StrConcat2(Translate("step-return"), loopCounter1); // }} "" // {{{ 2085 1 0 "9b92ac94_8c71_4b77_95ac0c691427c4bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" varType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2086 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "s") { // }} "" // {{{ 2087 1 0 "1497ea6a_46ab_4ee8_b7951f24b533e644" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2088 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2089 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "f") { // }} "" // {{{ 2090 1 0 "61772f9e_fea3_4011_bba06b7fe66e8b0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2091 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2092 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "i") { // }} "" // {{{ 2093 1 0 "28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2094 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2095 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2096 1 0 "0a0447b8_96fb_495a_90dfa8f1e2c488ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2097 1 0 "b2a13d10_b443_4fc0_aa0baa2a23cddafe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2098 1 0 "0adf40b4_5c73_46d8_8e6042c6dfd32d86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2099 1 0 "5a5dabeb_e3ed_4730_ab86839e00f75077" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendHHSReturnToServer" "End" } // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "Begin" private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer_EightOutputs" "InitLocals" // }} "" // {{{ 2113 1 0 "a5a7b215_f4cb_4951_82e1faf532cd7222" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2114 1 0 "9480693e_99ec_4cfd_aa9c8f48e76ee42f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 2115 1 0 "3f068696_35bd_4060_8b291470a817f628" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 2116 1 0 "b68a52fb_e141_4e4c_b5e7bbcbf0c9817f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 2117 1 0 "8ab4a139_9629_43b7_98f13d1058881e4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 2118 1 0 "1417a4bd_aea8_4b36_8a7a05739a789ecf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 2119 1 0 "24b6213e_470e_468a_86dc55b44ff96b95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 2120 1 0 "42403d87_ddb6_4bee_8fc6ad09efb7573a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return5"), stepReturn5); // }} "" // {{{ 2121 1 0 "8493044a_674d_4139_90fa1c7a00050abc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return6"), stepReturn6); // }} "" // {{{ 2122 1 0 "b43cf915_ef0d_4d62_985deae88bcd6c18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return7"), stepReturn7); // }} "" // {{{ 2123 1 0 "584d78fd_87d0_4502_a6d089cfaf888318" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return8"), stepReturn8); // }} "" // {{{ 2124 1 0 "711dbc6f_e5c4_40a0_bef5785dc99707ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return9"), stepReturn9); // }} "" // {{{ 2125 1 0 "47856892_8af4_409f_88723a44ebe61362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2126 1 0 "e5054174_6f3f_4356_8dc30683be948abe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2127 1 0 "e21196c3_6b8f_47e5_a2888114650b2ec8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2128 1 0 "3fec97a3_9f33_4fef_afe5355188bf56d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "End" } // }} "" // {{{ 5 "StrArrayToInts" "Begin" private function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void { // }} "" private variable arraySize; private variable loopCounter1; private variable val; private variable o_arrayOfInts[]; // {{ 5 "StrArrayToInts" "InitLocals" o_intarray.SetSize( 0); // }} "" // {{ 2137 1 0 "d68ba554_ea5e_486c_90e45e6f46e051a7" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 2138 1 0 "2ceaf7fd_f918_493e_a519f9ccc1a58114" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfInts.SetSize(0); // }} "" // {{ 2139 1 0 "f1b90762_2d83_476f_b1cd6ef39b938b13" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2140 1 0 "832d04b5_dd9e_47f6_86628701b9ba44ef" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" val=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 2141 1 0 "a10f8b45_b69d_4a85_be5a713ea78ccd01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" val = APPSLIB::StrConvertToNumber(val); // }} "" // {{ 2142 1 0 "70dffb74_d5e0_4795_bc74a43dbf1c7d9b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_intarray.AddAsLast(val); // }} "" // {{ 2143 1 0 "f1b90762_2d83_476f_b1cd6ef39b938b13" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "StrArrayToInts" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=stefa$$valid=0$$time=2023-03-02 10:47$$checksum=c7ebfcf8$$length=084$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx305.tmp ================================================ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx393D.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "HSLErrLib.hsl" #include "HSLMlStarStepReturnLib.hsl" #include "HSLDevLib.hsl" #include "HSLDevLib.hsl" #include "HSLSeqLib.hsl" #include "HSLStrLib.hsl" #include "HSLTrcLib.hsl" #include "HSL_LiquidClassLib.hsl" #include "HSLInhecoTEC\\HSLInhecoTECLib.hsl" #include "HSLDaisyChainedTiltModule.hsl" #include "HSLBarcodeReader.hsl" #include "HslHamHeaterShakerLib.hsl" #include "HSLDaisyChainedMediaLine.hsl" #include "HSLDaisyChainCommunication.hsl" #include "Hamilton pH Module\\Hamilton pH Module.hsl" #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" #include "Hamilton pH Module\\Hamilton pH Station Washer Module.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace STAR_OEM_TOOLKIT { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function BarcodeReader_Initialize( variable COMPORT, variable & o_stepReturn ) void ; function BarcodeReader_Read( variable & barcode ) void ; function Carrier_Load( device & ML_STAR, variable carrierName, variable barcodeFileName, variable barcodeReadPositions, variable & o_stepReturn_CarrierBC, variable & o_stepReturn_PositionsBCs, variable & o_stepReturn_PositionsBCMasks, variable & o_stepReturn_PositionsIDs, variable & o_CarrierBC, variable & o_PositionsBCs[] ) void ; function Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void ; function Channels_1mL_COREGrippers_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable gripForce, variable gripperToolChannel, variable gripWidth, variable gripHeight, variable widthBefore, variable gripSpeed, variable Zspeed, variable checkPlate, variable & o_stepReturn ) void ; function Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void ; function Channels_1mL_COREGrippers_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable ejectToolWhenFinish, variable Zspeed, variable platePressOnDistance, variable xAcceleration, variable checkPlate, variable & o_stepReturn ) void ; function Channels_1mL_Dispense( device & ML_STAR, sequence & dispenseSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable zMoveAfterStep, variable sideTouch, variable dispPositionAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void ; function Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void ; function Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void ; function Channels_1ml_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable aspirateMode, variable capacitiveLLD, variable pressureLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable maxLLdDifference, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable aspPosAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void ; function Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode, variable & o_stepReturn ) void ; function Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & o_stepReturn ) void ; function Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode, variable & o_stepReturn ) void ; function Inheco_TEC_StopTemperatureControl( variable ControllerID, variable DeviceID, variable & o_stepReturn ) void ; function Inheco_TEC_Terminate( variable StopAllDevices, variable & o_stepReturn ) void ; function Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void ; function MPH96_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable aspirateVolume, variable channelVariable, variable liquidClass, variable sequenceCounting, variable aspirateMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void ; function MPH96_Dispense( device & ML_STAR, sequence & dispenseSequence, variable dispenseVolume, variable liquidClass, variable sequenceCounting, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable zMoveAfterStep, variable sideTouch, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void ; function MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ; function MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ; private function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void ; function SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void ; function TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate, variable & o_stepReturn ) void ; function TiltModule_MoveToPosition( variable Module, variable Position, variable & o_stepReturn ) void ; function iSWAP_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable gripForce, variable inverseGrip, variable collisionControl, variable gripMode, variable retractDistance, variable liftUpHeight, variable gripWidth, variable tolerance, variable gripHeight, variable widthBefore, variable & o_stepReturn ) void ; function iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void ; function iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void ; function iSWAP_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable collisionControl, variable retractDistance, variable liftUpHeight, variable & o_stepReturn ) void ; function pH_Measure( variable i_intModuleID, variable i_fltTemperature, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" // }} "" } // {{{ 5 "Channels_1ml_Aspirate" "Begin" function Channels_1ml_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable aspirateMode, variable capacitiveLLD, variable pressureLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable maxLLdDifference, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable aspPosAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void { // }} "" private variable numberOfPositions; private variable loopCounter1; private variable getLiquidLevels_return; private variable labwareID; private variable positionID; private variable lbwContainersAreConnected; private variable height; private variable calculatedVolume; // {{ 5 "Channels_1ml_Aspirate" "InitLocals" o_stepReturn = 0; o_liquidLevels_mm.SetSize( 0); o_liquidLevels_mL.SetSize( 0); // }} "" // {{ 107 1 0 "2df7cf67_eefd_4634_a6c81ca2eae358a9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_BE09000023754133A7DFF78508E9EC3D ; err.Clear(); // }} "" // {{ 108 1 0 "61c2af00_d7f3_4b2d_90f54ffba06126b4" "ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2("61c2af00_d7f3_4b2d_90f54ffba06126b4"); // Aspirate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 109 1 0 "2df7cf67_eefd_4634_a6c81ca2eae358a9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_BE09000023754133A7DFF78508E9EC3D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 110 1 0 "3dd2c518_6d0a_4d7b_a227743c1263caad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 111 1 0 "2df7cf67_eefd_4634_a6c81ca2eae358a9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 112 1 0 "a8ab29ff_eb70_45dc_a90f0ce07c2514bd" "ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}" { variable arrRetValues[]; arrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C("a8ab29ff_eb70_45dc_a90f0ce07c2514bd"); // GetLastLiquidLevel getLiquidLevels_return = arrRetValues[2]; } // }} "" // {{{ 113 1 0 "a37ce602_144b_4a72_98dbfe0c85169266" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn); // }} "" // {{ 114 1 0 "36e6f2a2_6d83_40ba_a0c6ff5caefcef66" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mm.SetSize(0); // }} "" // {{ 115 1 0 "ce4eba9f_c8e1_4c33_a9c369da4ce7c312" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mL.SetSize(0); // }} "" // {{ 116 1 0 "3fcceb5e_fea5_4776_94261cf223fe007f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < numberOfPositions;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 117 1 0 "c20a15a2_4a40_4214_9e2588af18355e98" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 118 1 0 "81636f39_7511_441a_8ab707955e5f2035" "{C1F3C015-47B3-4514-9407-AC2E65043419}" height = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return); // }} "" // {{ 119 1 0 "6b53ca04_1112_466f_89a23ed352e36004" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mm.AddAsLast(height); // }} "" // {{ 120 1 0 "c20a15a2_4a40_4214_9e2588af18355e98" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 121 1 0 "00f031c0_8454_45d1_9b17554c5e6df7bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 122 1 0 "9c1dd6a5_9b06_43fd_9fd194129c2f2a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn); // }} "" // {{{ 123 1 0 "e6930a03_b2a0_4569_bb51b2088cac413c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn); // }} "" // {{ 124 1 0 "06eeeac2_52c3_47cb_b78dde137d763a9a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 125 1 0 "53b884ef_873a_4201_882d0cc9f9d77d20" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwareID > "") { // }} "" // {{ 126 1 0 "a83a594a_307e_45dd_8a2583323efe8f45" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (positionID > "") { // }} "" // {{ 127 1 0 "83df5041_4b3c_406f_95690782a3a21861" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 128 1 0 "9af2cbf6_5306_4a14_827b32cae1054343" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_15E4EC7C03B0458dA8B196D2861D63BC ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 130 1 0 "9af2cbf6_5306_4a14_827b32cae1054343" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_15E4EC7C03B0458dA8B196D2861D63BC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 131 1 0 "9af2cbf6_5306_4a14_827b32cae1054343" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 132 1 0 "83df5041_4b3c_406f_95690782a3a21861" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 133 1 0 "450b7dae_efb3_416b_a62ef5c611c84cdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" calculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected); // }} "" // {{ 134 1 0 "ca4e0527_c377_4a7f_99b7deddb85bdfaf" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mL.AddAsLast(calculatedVolume); // }} "" // {{ 135 1 0 "a83a594a_307e_45dd_8a2583323efe8f45" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 136 1 0 "53b884ef_873a_4201_882d0cc9f9d77d20" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 137 1 0 "00f031c0_8454_45d1_9b17554c5e6df7bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 138 1 0 "3fcceb5e_fea5_4776_94261cf223fe007f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "Channels_1ml_Aspirate" "End" } // }} "" // {{{ 5 "Channels_1mL_TipPickUp" "Begin" function Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_TipPickUp" "InitLocals" o_stepReturn = 0; // }} "" // {{ 101 1 0 "bcca3c8a_7fce_4767_98fb4ac5db164ddd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_55CAD51E8CEB46d5827DF7367C49B35D ; err.Clear(); // }} "" // {{ 102 1 0 "72075d54_9924_47c4_a0154d7e90bb1065" "ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2("72075d54_9924_47c4_a0154d7e90bb1065"); // TipPickUp o_stepReturn = arrRetValues[2]; } // }} "" // {{ 103 1 0 "bcca3c8a_7fce_4767_98fb4ac5db164ddd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_55CAD51E8CEB46d5827DF7367C49B35D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 104 1 0 "7acd54b9_9bda_465f_9b10e23e8987fa26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 105 1 0 "bcca3c8a_7fce_4767_98fb4ac5db164ddd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_TipPickUp" "End" } // }} "" // {{{ 5 "Channels_1mL_Dispense" "Begin" function Channels_1mL_Dispense( device & ML_STAR, sequence & dispenseSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable zMoveAfterStep, variable sideTouch, variable dispPositionAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void { // }} "" private variable getLiquidLevels_return; private variable labwareID; private variable calculatedVolume; private variable height; private variable lbwContainersAreConnected; private variable positionID; private variable loopCounter1; private variable numberOfPositions; // {{ 5 "Channels_1mL_Dispense" "InitLocals" o_stepReturn = 0; o_liquidLevels_mm.SetSize( 0); o_liquidLevels_mL.SetSize( 0); // }} "" // {{ 62 1 0 "c6b9c3da_70bc_4aa8_841a67bf3e6c7859" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 ; err.Clear(); // }} "" // {{ 63 1 0 "ce9beee3_e67e_43c3_bfc64805ab990e08" "ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2("ce9beee3_e67e_43c3_bfc64805ab990e08"); // Dispense o_stepReturn = arrRetValues[2]; } // }} "" // {{ 64 1 0 "c6b9c3da_70bc_4aa8_841a67bf3e6c7859" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 65 1 0 "493334e8_4548_4149_82f058a4b51df641" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 66 1 0 "c6b9c3da_70bc_4aa8_841a67bf3e6c7859" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 67 1 0 "dd677141_96b6_4ccc_a1764ec36dc76b56" "ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}" { variable arrRetValues[]; arrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C("dd677141_96b6_4ccc_a1764ec36dc76b56"); // GetLastLiquidLevel getLiquidLevels_return = arrRetValues[2]; } // }} "" // {{{ 68 1 0 "4fd5463f_c617_4e2b_aa27d0a820bfe2c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn); // }} "" // {{ 69 1 0 "6cafca26_5df8_46c0_98d5a4e2a957163a" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mm.SetSize(0); // }} "" // {{ 70 1 0 "418d84ad_0fba_4ca8_8479b9c6dde94985" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mL.SetSize(0); // }} "" // {{ 71 1 0 "abfcc803_7e38_4c9d_ad7c8412ada32e1d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < numberOfPositions;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 72 1 0 "1cbaa070_2e26_4301_9831c6bc56227fcf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 73 1 0 "c8304522_b160_47ca_9780bfcfd85cf56a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" height = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return); // }} "" // {{ 74 1 0 "5c09e3e1_cd42_4687_940231f4491e28e1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mm.AddAsLast(height); // }} "" // {{ 75 1 0 "1cbaa070_2e26_4301_9831c6bc56227fcf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 76 1 0 "ed6c9c1d_db69_4c65_8a4324433bd43f03" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 77 1 0 "11b5458b_6926_471d_8cb7dde489f8a444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn); // }} "" // {{{ 78 1 0 "51ffe893_b0e5_4383_ac38b9be481a9bee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn); // }} "" // {{ 79 1 0 "b02dd957_c3d3_445f_b0e36cc6cab274af" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 80 1 0 "35647e0a_accb_4503_80bba06d7d2a3271" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwareID > "") { // }} "" // {{ 81 1 0 "693f6d8c_e7fa_419d_b923bb796e5548fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (positionID > "") { // }} "" // {{ 82 1 0 "086a404a_99f9_4215_81fcc4be65c886b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 83 1 0 "1b6d6482_1c62_4a3f_90dfdeaf8695fb92" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_16FB3828C9A34ba7A7078E29FEF48CFF ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 85 1 0 "1b6d6482_1c62_4a3f_90dfdeaf8695fb92" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_16FB3828C9A34ba7A7078E29FEF48CFF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 86 1 0 "1b6d6482_1c62_4a3f_90dfdeaf8695fb92" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 87 1 0 "086a404a_99f9_4215_81fcc4be65c886b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 88 1 0 "36cc23a5_3886_4312_adc5faa6d481a26c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" calculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected); // }} "" // {{ 89 1 0 "9f017e3d_a3f3_4f02_914d74e549a5f3be" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mL.AddAsLast(calculatedVolume); // }} "" // {{ 90 1 0 "693f6d8c_e7fa_419d_b923bb796e5548fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 91 1 0 "35647e0a_accb_4503_80bba06d7d2a3271" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 92 1 0 "ed6c9c1d_db69_4c65_8a4324433bd43f03" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 93 1 0 "abfcc803_7e38_4c9d_ad7c8412ada32e1d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "Channels_1mL_Dispense" "End" } // }} "" // {{{ 5 "Channels_1mL_TipEject" "Begin" function Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_TipEject" "InitLocals" o_stepReturn = 0; // }} "" // {{ 95 1 0 "68086392_46e4_4533_88368c1cf77ceb2d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_D52469807F754a359D17B8D31042C6A6 ; err.Clear(); // }} "" // {{ 96 1 0 "1a33c622_0a9b_473c_a857db709fcadb47" "ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2("1a33c622_0a9b_473c_a857db709fcadb47"); // TipEject o_stepReturn = arrRetValues[2]; } // }} "" // {{ 97 1 0 "68086392_46e4_4533_88368c1cf77ceb2d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_D52469807F754a359D17B8D31042C6A6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 98 1 0 "5284933d_2b98_4255_81ee24c4ca6624c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 99 1 0 "68086392_46e4_4533_88368c1cf77ceb2d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_TipEject" "End" } // }} "" // {{{ 5 "Carrier_Load" "Begin" function Carrier_Load( device & ML_STAR, variable carrierName, variable barcodeFileName, variable barcodeReadPositions, variable & o_stepReturn_CarrierBC, variable & o_stepReturn_PositionsBCs, variable & o_stepReturn_PositionsBCMasks, variable & o_stepReturn_PositionsIDs, variable & o_CarrierBC, variable & o_PositionsBCs[] ) void { // }} "" private variable numberOfPositions; private variable loopCounter1; private variable positionBC; // {{ 5 "Carrier_Load" "InitLocals" o_stepReturn_CarrierBC = 0; o_stepReturn_PositionsBCs = 0; o_stepReturn_PositionsBCMasks = 0; o_stepReturn_PositionsIDs = 0; o_CarrierBC = 0; o_PositionsBCs.SetSize( 0); // }} "" // {{ 18 1 0 "5c909756_0e7e_4404_9569fb2db3dd1158" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_6F7D183CCBCA490f840A10F79D2CB4F6 ; err.Clear(); // }} "" // {{ 19 1 0 "b445eca9_c441_45d7_b53f08a23b7b4b80" "ML_STAR:{54114402-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._54114402_7FA2_11D3_AD85_0004ACB1DCB2("b445eca9_c441_45d7_b53f08a23b7b4b80"); // LoadCarrier o_stepReturn_CarrierBC = arrRetValues[2]; o_stepReturn_PositionsBCs = arrRetValues[3]; o_stepReturn_PositionsBCMasks = arrRetValues[4]; o_stepReturn_PositionsIDs = arrRetValues[5]; } // }} "" // {{ 20 1 0 "5c909756_0e7e_4404_9569fb2db3dd1158" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_6F7D183CCBCA490f840A10F79D2CB4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 21 1 0 "6919be45_bdb7_46b6_a2ad892454bef1c7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_CarrierBC = ErrGetDataAt(3); // }} "" // {{{ 22 1 0 "d814f66e_6beb_47a8_a390d3b5ea839ba9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionsBCs = ErrGetDataAt(4); // }} "" // {{{ 23 1 0 "018a7d4d_f55c_435f_bfce516fc40cd0bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionsBCMasks = ErrGetDataAt(5); // }} "" // {{{ 24 1 0 "28252b10_bd1a_480c_8d84ce9739ca69ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionsIDs = ErrGetDataAt(6); // }} "" // {{ 25 1 0 "5c909756_0e7e_4404_9569fb2db3dd1158" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 26 1 0 "f7c4b6e5_401a_41ab_b920370ccc277a17" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 27 1 0 "91e50e7b_5626_4ab9_ad652563a737dba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_CarrierBC = StepReturn::GetStepData(1, o_stepReturn_CarrierBC); // }} "" // {{ 28 1 0 "f7c4b6e5_401a_41ab_b920370ccc277a17" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 29 1 0 "628b131a_a46c_40b8_b9a61700e818c0e7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 30 1 0 "6135f8c7_3486_4898_88c6e7154326c4df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn_PositionsBCs); // }} "" // {{ 31 1 0 "4cec9992_cb23_4182_894ee448e99b8d48" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_PositionsBCs.SetSize(0); // }} "" // {{ 32 1 0 "0249a50f_bae7_4b5c_86cdc25ab8f43639" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < numberOfPositions;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 33 1 0 "fe82471b_5e85_4598_90b8f672ef3cf690" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionBC = StepReturn::GetStepData(loopCounter1, o_stepReturn_PositionsBCs); // }} "" // {{ 34 1 0 "f0a92a30_0f95_4eb4_bdcf7e21db350ecb" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_PositionsBCs.AddAsLast(positionBC); // }} "" // {{ 35 1 0 "0249a50f_bae7_4b5c_86cdc25ab8f43639" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 36 1 0 "628b131a_a46c_40b8_b9a61700e818c0e7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "Carrier_Load" "End" } // }} "" // {{{ 5 "Carrier_Unload" "Begin" function Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void { // }} "" // {{ 5 "Carrier_Unload" "InitLocals" o_stepReturn = 0; // }} "" // {{ 38 1 0 "c21e08df_939e_41ef_9843a250f42bf239" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_040A2B30BAA84a018D3C82EF2B4AAB10 ; err.Clear(); // }} "" // {{ 39 1 0 "38494363_9fef_41a3_8cb17f349c9fe693" "ML_STAR:{54114400-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._54114400_7FA2_11D3_AD85_0004ACB1DCB2("38494363_9fef_41a3_8cb17f349c9fe693"); // UnloadCarrier o_stepReturn = arrRetValues[2]; } // }} "" // {{ 40 1 0 "c21e08df_939e_41ef_9843a250f42bf239" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_040A2B30BAA84a018D3C82EF2B4AAB10 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 41 1 0 "9aa00b86_389e_473d_bd928bce39259e60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 42 1 0 "c21e08df_939e_41ef_9843a250f42bf239" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Carrier_Unload" "End" } // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Get" "Begin" function Channels_1mL_COREGrippers_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable gripForce, variable gripperToolChannel, variable gripWidth, variable gripHeight, variable widthBefore, variable gripSpeed, variable Zspeed, variable checkPlate, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_COREGrippers_Get" "InitLocals" o_stepReturn = 0; // }} "" // {{ 44 1 0 "b30da27c_bef5_49a0_87d76c8049f31861" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90BF8C56374E469c817DB7B52FEE5D91 ; err.Clear(); // }} "" // {{ 45 1 0 "f1e43893_ada0_4b74_9035cad36fab5d4b" "ML_STAR:{A108628C-BEB7-4CB6-99FD-8523302C700F}" { variable arrRetValues[]; arrRetValues = ML_STAR._A108628C_BEB7_4CB6_99FD_8523302C700F("f1e43893_ada0_4b74_9035cad36fab5d4b"); // ZSwapGetPlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 46 1 0 "b30da27c_bef5_49a0_87d76c8049f31861" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90BF8C56374E469c817DB7B52FEE5D91 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 47 1 0 "5300695f_5b47_4f16_8312711c7c77441e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 48 1 0 "b30da27c_bef5_49a0_87d76c8049f31861" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Get" "End" } // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Place" "Begin" function Channels_1mL_COREGrippers_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable ejectToolWhenFinish, variable Zspeed, variable platePressOnDistance, variable xAcceleration, variable checkPlate, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_COREGrippers_Place" "InitLocals" o_stepReturn = 0; // }} "" // {{ 56 1 0 "b65dcae3_6ff9_4720_a4f35e99346d8975" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8675588E513E44cd8097542899F1DE5C ; err.Clear(); // }} "" // {{ 57 1 0 "3460f3d9_9fdb_4437_9cfa36d33b14f837" "ML_STAR:{9DF3DD4B-3B5E-4750-8989-04458D1B134B}" { variable arrRetValues[]; arrRetValues = ML_STAR._9DF3DD4B_3B5E_4750_8989_04458D1B134B("3460f3d9_9fdb_4437_9cfa36d33b14f837"); // ZSwapPlacePlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 58 1 0 "b65dcae3_6ff9_4720_a4f35e99346d8975" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8675588E513E44cd8097542899F1DE5C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 59 1 0 "1c1fcfa6_73ab_434d_965f40a7cb5827ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 60 1 0 "b65dcae3_6ff9_4720_a4f35e99346d8975" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Place" "End" } // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Move" "Begin" function Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_COREGrippers_Move" "InitLocals" o_stepReturn = 0; // }} "" // {{ 50 1 0 "ced13f47_fded_4378_af08e9af8f325393" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_17F7F9C2DD974e61B13F20ADC6F241A8 ; err.Clear(); // }} "" // {{ 51 1 0 "2ed0456d_387e_49b4_a5a8105447123f04" "ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}" { variable arrRetValues[]; arrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E("2ed0456d_387e_49b4_a5a8105447123f04"); // ZSwapMovePlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 52 1 0 "ced13f47_fded_4378_af08e9af8f325393" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_17F7F9C2DD974e61B13F20ADC6F241A8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 53 1 0 "b5f59ed6_6bf0_47b3_b8c295016cfa86e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 54 1 0 "ced13f47_fded_4378_af08e9af8f325393" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Move" "End" } // }} "" // {{{ 5 "iSWAP_Get" "Begin" function iSWAP_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable gripForce, variable inverseGrip, variable collisionControl, variable gripMode, variable retractDistance, variable liftUpHeight, variable gripWidth, variable tolerance, variable gripHeight, variable widthBefore, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Get" "InitLocals" o_stepReturn = 0; // }} "" // {{ 285 1 0 "53a14975_dd73_4964_8c8c9f0730a43a7a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ABA9DAA34A59470495CBB56841D2D81D ; err.Clear(); // }} "" // {{ 286 1 0 "285b84de_748a_400d_a828988b60f4c175" "ML_STAR:{CC819D7A-5DD8-4d13-A921-D74A06460F9E}" { variable arrRetValues[]; arrRetValues = ML_STAR._CC819D7A_5DD8_4d13_A921_D74A06460F9E("285b84de_748a_400d_a828988b60f4c175"); // GetPlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 287 1 0 "53a14975_dd73_4964_8c8c9f0730a43a7a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ABA9DAA34A59470495CBB56841D2D81D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 288 1 0 "298cdb09_c92e_4bb7_a2ecabeafcf27813" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 289 1 0 "53a14975_dd73_4964_8c8c9f0730a43a7a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Get" "End" } // }} "" // {{{ 5 "iSWAP_Place" "Begin" function iSWAP_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable collisionControl, variable retractDistance, variable liftUpHeight, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Place" "InitLocals" o_stepReturn = 0; // }} "" // {{ 303 1 0 "c9f8030c_ef60_485e_9b279138f7f6da52" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_22A12BE8BB2146fbB8824DF66137BF6C ; err.Clear(); // }} "" // {{ 304 1 0 "bcedff0a_3cba_458a_bedb1a743e5dd0bd" "ML_STAR:{E34155E5-7529-4b6b-AE3E-CDDA40789D55}" { variable arrRetValues[]; arrRetValues = ML_STAR._E34155E5_7529_4b6b_AE3E_CDDA40789D55("bcedff0a_3cba_458a_bedb1a743e5dd0bd"); // PutPlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 305 1 0 "c9f8030c_ef60_485e_9b279138f7f6da52" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_22A12BE8BB2146fbB8824DF66137BF6C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 306 1 0 "8aeb393a_337d_4788_b25408ee6915eb1c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 307 1 0 "c9f8030c_ef60_485e_9b279138f7f6da52" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Place" "End" } // }} "" // {{{ 5 "iSWAP_Move" "Begin" function iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Move" "InitLocals" o_stepReturn = 0; // }} "" // {{ 291 1 0 "65ac7a80_b8fd_4f3c_a9e6290ec6a707a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E8A019BC968240cbB4C8B7397BB2F043 ; err.Clear(); // }} "" // {{ 292 1 0 "d98672e5_cec6_49ef_92dfdaa4ec2da4f2" "ML_STAR:{862562D1-B5BB-48ce-B5E4-9E37F8ABB61E}" { variable arrRetValues[]; arrRetValues = ML_STAR._862562D1_B5BB_48ce_B5E4_9E37F8ABB61E("d98672e5_cec6_49ef_92dfdaa4ec2da4f2"); // MovePlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 293 1 0 "65ac7a80_b8fd_4f3c_a9e6290ec6a707a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E8A019BC968240cbB4C8B7397BB2F043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 294 1 0 "b69dc448_e2ef_4c62_b6dd3535487928f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 295 1 0 "65ac7a80_b8fd_4f3c_a9e6290ec6a707a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Move" "End" } // }} "" // {{{ 5 "iSWAP_Park" "Begin" function iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Park" "InitLocals" o_stepReturn = 0; // }} "" // {{ 297 1 0 "fae9e68f_ea34_4f4d_bb6f62c288b1e7b4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_47ED933D92B34914984C5D98423B4C94 ; err.Clear(); // }} "" // {{ 298 1 0 "ef5a4036_5d2f_4aae_86e669ef0581597f" "ML_STAR:{86F668D0-478C-41b6-A78B-8B6B8EAA54A7}" { variable arrRetValues[]; arrRetValues = ML_STAR._86F668D0_478C_41b6_A78B_8B6B8EAA54A7("ef5a4036_5d2f_4aae_86e669ef0581597f"); // ParkISwap o_stepReturn = arrRetValues[2]; } // }} "" // {{ 299 1 0 "fae9e68f_ea34_4f4d_bb6f62c288b1e7b4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_47ED933D92B34914984C5D98423B4C94 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 300 1 0 "974d3165_8b4f_469b_99a59625d159b561" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 301 1 0 "fae9e68f_ea34_4f4d_bb6f62c288b1e7b4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Park" "End" } // }} "" // {{{ 5 "MPH96_TipPickUp" "Begin" function MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void { // }} "" // {{ 5 "MPH96_TipPickUp" "InitLocals" o_stepReturn = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{ 236 1 0 "e2468a9b_8b3f_4977_bbdfbeb62da8eff3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_6640FC09A88C48daB6CB9FB2349BE364 ; err.Clear(); // }} "" // {{ 237 1 0 "b3913cc3_f1bb_4e9f_b3100faec37b186d" "ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}" { variable arrRetValues[]; arrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B("b3913cc3_f1bb_4e9f_b3100faec37b186d"); // Head96TipPickUp o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 238 1 0 "e2468a9b_8b3f_4977_bbdfbeb62da8eff3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_6640FC09A88C48daB6CB9FB2349BE364 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 239 1 0 "1df2d158_801c_4c9f_a8014869fa07863d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 240 1 0 "315f1e4b_8d32_430c_89413b8e4b5b135a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 241 1 0 "e2468a9b_8b3f_4977_bbdfbeb62da8eff3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPH96_TipPickUp" "End" } // }} "" // {{{ 5 "MPH96_Aspirate" "Begin" function MPH96_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable aspirateVolume, variable channelVariable, variable liquidClass, variable sequenceCounting, variable aspirateMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void { // }} "" private variable labwareID; private variable lbwContainersAreConnected; private variable positionID; // {{ 5 "MPH96_Aspirate" "InitLocals" o_stepReturn = 0; o_liquidLevel_mm = 0; o_liquidLevel_mL = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{{ 185 1 0 "0fc30c09_ddb7_4665_8739dbd8f0102fdc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = SeqGetLabwareId(aspirateSequence); // }} "" // {{{ 186 1 0 "14c1eb4e_ced0_45f2_a343bc0f3c668407" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = SeqGetPositionId(aspirateSequence); // }} "" // {{ 187 1 0 "7afd0547_a78c_4fb0_b040d35803532eb4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_00A0A59BF99B42a686A202BE72502D6C ; err.Clear(); // }} "" // {{ 188 1 0 "8d6fdce5_327c_491b_aebee60a715b6c6e" "ML_STAR:{827392A0-B7E8-4472-9ED3-B45B71B5D27A}" { variable arrRetValues[]; arrRetValues = ML_STAR._827392A0_B7E8_4472_9ED3_B45B71B5D27A("8d6fdce5_327c_491b_aebee60a715b6c6e"); // Head96Aspirate o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 189 1 0 "7afd0547_a78c_4fb0_b040d35803532eb4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_00A0A59BF99B42a686A202BE72502D6C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 190 1 0 "6c23fd1d_be57_4011_8fea4ea6459aeecf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 191 1 0 "ee52ace2_98fe_454f_841ae740168bebcd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 192 1 0 "7afd0547_a78c_4fb0_b040d35803532eb4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 193 1 0 "4efb91d8_0e10_400c_a4820b22b5ba22d5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 194 1 0 "8bf3cb1f_0b71_493d_bf300c05413fc543" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" MPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm); // }} "" // {{ 195 1 0 "4efb91d8_0e10_400c_a4820b22b5ba22d5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 196 1 0 "b82d3cc9_9e79_4547_800ffcbdb5ef0aa7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 197 1 0 "091a5303_35ee_4d82_a0b32d9ede26439d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 198 1 0 "64d5c65b_9fa5_44de_a21e4ee08c78310f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 199 1 0 "99cc0c51_635c_4f24_ac7aec94869f04a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_06FF5C7D72E044ac924A0658E57AC92A ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 201 1 0 "99cc0c51_635c_4f24_ac7aec94869f04a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_06FF5C7D72E044ac924A0658E57AC92A : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 202 1 0 "99cc0c51_635c_4f24_ac7aec94869f04a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 203 1 0 "64d5c65b_9fa5_44de_a21e4ee08c78310f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 204 1 0 "0b5e4cdb_1c92_4d18_a0bed95d854a0d94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected); // }} "" // {{ 205 1 0 "b82d3cc9_9e79_4547_800ffcbdb5ef0aa7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "MPH96_Aspirate" "End" } // }} "" // {{{ 5 "MPH_GetLastLLD_Level" "Begin" private function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void { // }} "" private variable flt_X_Coord; private variable flt_Y_Coord; private variable flt_Z_Coord; private variable flt_SubmergeDepthCORE; private variable str_FW_Digits; private variable flt_TipLength; private variable int_LLDheight; private variable flt_TipLength_corrected; private variable int_FW_Digits; private variable flt_StepSize; private variable int_Steps_mm; private variable str_ReturnValueH0RH; private variable flt_angle; private variable tipType; // {{ 5 "MPH_GetLastLLD_Level" "InitLocals" o_flt_LastLiquidLevel = 0; // }} "" // {{ 243 1 0 "f7c5b642_e642_4bd2_b342e8a2202f94b2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_SubmergeDepthCORE = 8.0; // }} "" // {{ 244 1 0 "b15f54b8_160d_4d5a_9470d19afc4b0155" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 245 1 0 "de2e1cfc_3be8_4752_b20a1221fc802c26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::Initialize(ML_STAR, 1); // }} "" // {{{ 246 1 0 "bf16ce46_b00c_46c3_93046a4e730e9868" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SelectLiquidClass(i_liquidClass); // }} "" // {{{ 247 1 0 "7d094f81_a8b9_4eb1_90a841201d1a4cca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" tipType = LiquidClassLib::GetLiquidClassParameter(LiquidClassLib::LIQUIDCLASS_PARAMS::TipType); // }} "" // {{ 248 1 0 "b15f54b8_160d_4d5a_9470d19afc4b0155" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 249 1 0 "a97af8ec_9af3_46fa_a150d41888290f6f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_TipLength_corrected = flt_TipLength - flt_SubmergeDepthCORE; // }} "" // {{{ 250 1 0 "8fc17eb7_3fbb_4a8e_b537d43144e8598c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePosition(ML_STAR, i_labwareID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_angle); // }} "" // {{ 251 1 0 "31649b83_68f7_49a0_974f7efa6232c07d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ReturnValueH0RH = Translate(""); // }} "" // {{ 252 1 0 "72f92b7c_2537_40be_bc5fe85726a39b19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_StepSize = 0.005; // }} "" // {{ 253 1 0 "b5a3458f_9eea_4501_a6aa86c0556ad194" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("b5a3458f_9eea_4501_a6aa86c0556ad194"); // FirmwareCommand str_ReturnValueH0RH = arrRetValues[3]; } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 254 1 0 "73c2ff19_ed4c_4c45_a9c5b56a6e84b044" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("str_ReturnValueH0RH: "), str_ReturnValueH0RH); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 255 1 0 "f6fe1f5f_39ae_4b71_83f733a5cf490b66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FW_Digits = StrRight(str_ReturnValueH0RH, 6); // }} "" // {{{ 256 1 0 "9883fcc4_3dcd_4199_816696b3668f733f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_FW_Digits = StrIVal(str_FW_Digits); // }} "" // {{ 257 1 0 "b427e920_22bd_492e_8c900ff3a99a649c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Steps_mm = int_FW_Digits * flt_StepSize; // }} "" // {{ 258 1 0 "bbe179b4_5c85_4ece_ba3738d8817cdfc5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_LLDheight = int_Steps_mm - flt_Z_Coord; // }} "" // {{ 259 1 0 "502175ce_b71d_406e_b155fea6f39d0fd0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_LastLiquidLevel = int_LLDheight - flt_TipLength_corrected; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 260 1 0 "3bcc328b_1906_4590_94e64b4e80f03d3a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("o_flt_LastLiquidLevel: "), o_flt_LastLiquidLevel); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 5 "MPH_GetLastLLD_Level" "End" } // }} "" // {{{ 5 "MPH96_Dispense" "Begin" function MPH96_Dispense( device & ML_STAR, sequence & dispenseSequence, variable dispenseVolume, variable liquidClass, variable sequenceCounting, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable zMoveAfterStep, variable sideTouch, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void { // }} "" private variable labwareID; private variable lbwContainersAreConnected; private variable positionID; // {{ 5 "MPH96_Dispense" "InitLocals" o_stepReturn = 0; o_liquidLevel_mm = 0; o_liquidLevel_mL = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{{ 207 1 0 "031805d0_c2b0_4435_9b8f6fbb101dc62d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = SeqGetLabwareId(dispenseSequence); // }} "" // {{{ 208 1 0 "c249d641_ef0f_4423_bc2d48f01c114665" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = SeqGetPositionId(dispenseSequence); // }} "" // {{ 209 1 0 "f3fb329d_c76d_48c9_ac660dbbc90096f1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 ; err.Clear(); // }} "" // {{ 210 1 0 "30023c25_d03e_4d52_86f122728a5fc04f" "ML_STAR:{A48573A5-62ED-4951-9EF9-03207EFE34FB}" { variable arrRetValues[]; arrRetValues = ML_STAR._A48573A5_62ED_4951_9EF9_03207EFE34FB("30023c25_d03e_4d52_86f122728a5fc04f"); // Head96Dispense o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 211 1 0 "f3fb329d_c76d_48c9_ac660dbbc90096f1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 212 1 0 "714a2035_eb8c_4e86_85aca8d69086952e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 213 1 0 "bc1347df_5f38_41ae_be3c240228e5944c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 214 1 0 "f3fb329d_c76d_48c9_ac660dbbc90096f1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 215 1 0 "a141b7db_3cc2_4626_998f5229ca08b364" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 216 1 0 "911c2699_0e84_425f_9e9384c7b6c75351" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" MPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm); // }} "" // {{ 217 1 0 "a141b7db_3cc2_4626_998f5229ca08b364" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 218 1 0 "c4c1eadb_9d04_43d3_871c72d3479cad7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 219 1 0 "17abaeba_05ec_4e18_a3843b54b3bdf6f3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 220 1 0 "1bdc4019_272b_4e0e_8f4935bcd3a782ec" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 221 1 0 "751de83b_d4e0_4859_8b3da1eeaf94bd85" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8D5E8778E7DF4b8f80958A5C14C29872 ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 223 1 0 "751de83b_d4e0_4859_8b3da1eeaf94bd85" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8D5E8778E7DF4b8f80958A5C14C29872 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 224 1 0 "751de83b_d4e0_4859_8b3da1eeaf94bd85" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 225 1 0 "1bdc4019_272b_4e0e_8f4935bcd3a782ec" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 226 1 0 "c826eb96_3570_4883_a8298bc890043c3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected); // }} "" // {{ 227 1 0 "c4c1eadb_9d04_43d3_871c72d3479cad7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "MPH96_Dispense" "End" } // }} "" // {{{ 5 "MPH96_TipEject" "Begin" function MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void { // }} "" // {{ 5 "MPH96_TipEject" "InitLocals" o_stepReturn = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{ 229 1 0 "96bd335e_14f8_47e2_bc54b638fde21919" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C33A74C211664afd9B08BCD3DD5339FC ; err.Clear(); // }} "" // {{ 230 1 0 "a8f4b6bb_e103_433a_b1360393d37e32b3" "ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}" { variable arrRetValues[]; arrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C("a8f4b6bb_e103_433a_b1360393d37e32b3"); // Head96TipEject o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 231 1 0 "96bd335e_14f8_47e2_bc54b638fde21919" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C33A74C211664afd9B08BCD3DD5339FC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 232 1 0 "71d45982_a084_4aaa_a34c6558755061d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 233 1 0 "9e9d44f5_b614_4fb4_b6d39860c83d879d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 234 1 0 "96bd335e_14f8_47e2_bc54b638fde21919" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPH96_TipEject" "End" } // }} "" // {{{ 5 "Initialize" "Begin" function Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void { // }} "" // {{ 5 "Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 179 1 0 "5e221a44_df82_4a4a_b132efe3882170c8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_7F7620635658430dB82A7401CB5C158F ; err.Clear(); // }} "" // {{ 180 1 0 "dc7838fc_172e_45b4_89099f664d6d452e" "ML_STAR:{1C0C0CB0-7C87-11D3-AD83-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1C0C0CB0_7C87_11D3_AD83_0004ACB1DCB2("dc7838fc_172e_45b4_89099f664d6d452e"); // Initialize o_stepReturn = arrRetValues[2]; } // }} "" // {{ 181 1 0 "5e221a44_df82_4a4a_b132efe3882170c8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_7F7620635658430dB82A7401CB5C158F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 182 1 0 "6bd66132_cab8_473c_8437aa033b84ff48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 183 1 0 "5e221a44_df82_4a4a_b132efe3882170c8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Initialize" "End" } // }} "" // {{{ 5 "SendFirmwareCommand" "Begin" function SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void { // }} "" // {{ 5 "SendFirmwareCommand" "InitLocals" o_stepReturn = 0; // }} "" // {{ 262 1 0 "641377bb_9666_411c_91a21acd4e345a9d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_1F6E37B4AFEE4395A984238DCEB0E91C ; err.Clear(); // }} "" // {{ 263 1 0 "c616f5ea_baed_4075_a75531e82e045e2b" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("c616f5ea_baed_4075_a75531e82e045e2b"); // FirmwareCommand o_stepReturn = arrRetValues[3]; } // }} "" // {{ 264 1 0 "0f7ff03f_40eb_4e9b_a2ff42a6b9e6d59a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0[01,00,00,0,,Waste,[02,00,00,0,,Waste,[03,00,00,0,,Waste,[04,00,00,0,,Waste,[05,00,00,0,,Waste,[06,00,00,0,,Waste,[07,00,00,0,,Waste,[08,00,00,0,,Waste,"); // }} "" // {{ 265 1 0 "641377bb_9666_411c_91a21acd4e345a9d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_1F6E37B4AFEE4395A984238DCEB0E91C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 266 1 0 "305af0e7_7bac_4678_a0d1c7c3dd9900d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 267 1 0 "641377bb_9666_411c_91a21acd4e345a9d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "SendFirmwareCommand" "End" } // }} "" // {{{ 5 "TiltModule_Initialize" "Begin" function TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate, variable & o_stepReturn ) void { // }} "" // {{ 5 "TiltModule_Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 269 1 0 "bd83dcea_1e69_4096_ada97e91985fe887" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F7A233121EBD413184BEE5D2CD3510CA ; err.Clear(); // }} "" // {{{ 270 1 0 "8f639116_952a_4b73_b3471e6a53e3906f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLDaisyChainedTiltModule::Initialize(Module, Comport, TraceLevel, Simulate); // }} "" // {{ 271 1 0 "3393edd2_b35c_4d28_9a34abe9b5cba597" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 272 1 0 "bd83dcea_1e69_4096_ada97e91985fe887" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F7A233121EBD413184BEE5D2CD3510CA : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 273 1 0 "60a9b619_1ae2_496a_89ca468bc3f8e964" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 274 1 0 "8e89b190_d2d8_4a7e_8d65313a1104b64f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 275 1 0 "bd83dcea_1e69_4096_ada97e91985fe887" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "TiltModule_Initialize" "End" } // }} "" // {{{ 5 "TiltModule_MoveToPosition" "Begin" function TiltModule_MoveToPosition( variable Module, variable Position, variable & o_stepReturn ) void { // }} "" // {{ 5 "TiltModule_MoveToPosition" "InitLocals" o_stepReturn = 0; // }} "" // {{ 277 1 0 "082df277_2e00_442a_9db2108834994949" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_089FA9D7B12A47b0BAD415A10EC82051 ; err.Clear(); // }} "" // {{{ 278 1 0 "2eb8fec9_f55f_4bdb_9e8f2458aae0ad13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLDaisyChainedTiltModule::MoveToPosition(Module, Position); // }} "" // {{ 279 1 0 "b1a780d0_ecf5_4978_85fb85d1c7090261" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 280 1 0 "082df277_2e00_442a_9db2108834994949" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_089FA9D7B12A47b0BAD415A10EC82051 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 281 1 0 "ce3475b4_ca3b_48ad_b9c7f3c1f1c2d5ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 282 1 0 "a8c3cab3_9bde_404e_b7d673e4d7906771" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 283 1 0 "082df277_2e00_442a_9db2108834994949" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "TiltModule_MoveToPosition" "End" } // }} "" // {{{ 5 "Inheco_TEC_Initialize" "Begin" function Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode, variable & o_stepReturn ) void { // }} "" private variable ErrorCode; // {{ 5 "Inheco_TEC_Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 140 1 0 "14151342_6460_4d8a_9e099b7fce1df805" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_CEBFA2C556164b82A4F638EE8CE505F6 ; err.Clear(); // }} "" // {{{ 141 1 0 "e3c035a6_0376_4030_a0e519c3f0401e3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLInhecoTECLib::Initialize(ControllerID, SimulationMode, ErrorCode); // }} "" // {{ 142 1 0 "ff3d60d9_7d86_4591_b213ab2e2ec6b54f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 143 1 0 "14151342_6460_4d8a_9e099b7fce1df805" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_CEBFA2C556164b82A4F638EE8CE505F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 144 1 0 "f54e5f54_9845_4b71_959134357b62b308" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 145 1 0 "ad00a616_20b6_4fd1_b1b82f15bd592d39" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 146 1 0 "14151342_6460_4d8a_9e099b7fce1df805" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_Initialize" "End" } // }} "" // {{{ 5 "Inheco_TEC_StartTemperatureControl" "Begin" function Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode, variable & o_stepReturn ) void { // }} "" // {{ 5 "Inheco_TEC_StartTemperatureControl" "InitLocals" ErrorCode = 0; o_stepReturn = 0; // }} "" // {{ 156 1 0 "e149ca88_5fb5_4a10_a704093dac2f46c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EF764FBDA7474071A7B517987B9B2FC2 ; err.Clear(); // }} "" // {{{ 157 1 0 "dbb9a46a_b798_4546_8857499b498c024a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLInhecoTECLib::StartTemperatureControl(ControllerID, DeviceID, ErrorCode); // }} "" // {{ 158 1 0 "9962ba81_d090_4144_ad45cfdfb0a81848" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 159 1 0 "e149ca88_5fb5_4a10_a704093dac2f46c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EF764FBDA7474071A7B517987B9B2FC2 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 160 1 0 "1bea095e_8a1c_4a68_846e9362f2c251d6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 161 1 0 "94a7bec1_57e9_49ab_a6d3e430f8e69316" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 162 1 0 "e149ca88_5fb5_4a10_a704093dac2f46c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_StartTemperatureControl" "End" } // }} "" // {{{ 5 "Inheco_TEC_SetTarget" "Begin" function Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & o_stepReturn ) void { // }} "" // {{ 5 "Inheco_TEC_SetTarget" "InitLocals" o_stepReturn = 0; // }} "" // {{ 148 1 0 "2e50215a_6b40_4fa9_93fcfc303b6d44ac" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_56BA970A477C47bf90C6C3373DEB98B0 ; err.Clear(); // }} "" // {{{ 149 1 0 "aef982a0_8382_45fd_aec06a11e9859c17" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLInhecoTECLib::SetTargetTemperature(ControllerID, DeviceID, TargetTemperature, o_stepReturn); // }} "" // {{ 150 1 0 "469d7ad2_b7d8_4e9c_ac57ffe25631b189" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 151 1 0 "2e50215a_6b40_4fa9_93fcfc303b6d44ac" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_56BA970A477C47bf90C6C3373DEB98B0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 152 1 0 "666252c3_d904_4d59_af97abc58a445648" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 153 1 0 "360d64cc_734f_4a97_8c61eb77bf58c2c4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 154 1 0 "2e50215a_6b40_4fa9_93fcfc303b6d44ac" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_SetTarget" "End" } // }} "" // {{{ 5 "Inheco_TEC_StopTemperatureControl" "Begin" function Inheco_TEC_StopTemperatureControl( variable ControllerID, variable DeviceID, variable & o_stepReturn ) void { // }} "" private variable ErrorCode; // {{ 5 "Inheco_TEC_StopTemperatureControl" "InitLocals" o_stepReturn = 0; // }} "" // {{ 164 1 0 "c29a0f01_2391_485c_a95211df9c9b7272" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E3152496BDA74f1681473505DC2B3A3E ; err.Clear(); // }} "" // {{{ 165 1 0 "53a1b499_97d8_49ce_85f583fb81241149" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLInhecoTECLib::StopTemperatureControl(ControllerID, DeviceID, ErrorCode); // }} "" // {{ 166 1 0 "6663219d_f732_4334_ac9149ef5e378f41" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 167 1 0 "c29a0f01_2391_485c_a95211df9c9b7272" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E3152496BDA74f1681473505DC2B3A3E : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 168 1 0 "bf506361_d06d_402a_bce18579529327a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 169 1 0 "c29a0f01_2391_485c_a95211df9c9b7272" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_StopTemperatureControl" "End" } // }} "" // {{{ 5 "Inheco_TEC_Terminate" "Begin" function Inheco_TEC_Terminate( variable StopAllDevices, variable & o_stepReturn ) void { // }} "" // {{ 5 "Inheco_TEC_Terminate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 171 1 0 "6f9054f4_5e87_4236_a046d345d0972e98" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_202B4C8C5EE24700B8BB7F3204BFB6ED ; err.Clear(); // }} "" // {{{ 172 1 0 "3239a113_7650_4023_a9fad336d668211f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLInhecoTECLib::Terminate(StopAllDevices); // }} "" // {{ 173 1 0 "3b263a00_9a60_41fc_9972731eef692e35" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 174 1 0 "6f9054f4_5e87_4236_a046d345d0972e98" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_202B4C8C5EE24700B8BB7F3204BFB6ED : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 175 1 0 "06500de7_b6f0_46c9_83aa39385bd390ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 176 1 0 "1d548ec4_592f_4c53_bd10fcebbc4e29a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("step return in toolkit"), o_stepReturn); // }} "" // {{ 177 1 0 "6f9054f4_5e87_4236_a046d345d0972e98" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_Terminate" "End" } // }} "" // {{{ 5 "BarcodeReader_Initialize" "Begin" function BarcodeReader_Initialize( variable COMPORT, variable & o_stepReturn ) void { // }} "" // {{ 5 "BarcodeReader_Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 1 1 0 "d8b801e6_901b_4026_bdc28d79de1a8bc3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_A3B61CE3E767468e8D1B59076F3D78E4 ; err.Clear(); // }} "" // {{{ 2 1 0 "e0cfef2c_84b3_468a_a20006a3728a8260" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Trace"), COMPORT); // }} "" // {{{ 3 1 0 "e040e6e1_8d46_47ab_87603b90eec83a04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLBarcodeReader::SetComPort(COMPORT); // }} "" // {{{ 4 1 0 "97b56e2c_0824_4073_9e58f7230250d255" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLBarcodeReader::DelComBuffer(); // }} "" // {{ 5 1 0 "d56061ff_1640_4b1a_88dc262e7863d251" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0[01,00,00,0,,Waste,[02,00,00,0,,Waste,[03,00,00,0,,Waste,[04,00,00,0,,Waste,[05,00,00,0,,Waste,[06,00,00,0,,Waste,[07,00,00,0,,Waste,[08,00,00,0,,Waste,"); // }} "" // {{ 6 1 0 "d8b801e6_901b_4026_bdc28d79de1a8bc3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_A3B61CE3E767468e8D1B59076F3D78E4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 7 1 0 "02ecb8f2_684e_4ec1_a9840192e80e0f56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 8 1 0 "d8b801e6_901b_4026_bdc28d79de1a8bc3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "BarcodeReader_Initialize" "End" } // }} "" // {{{ 5 "BarcodeReader_Read" "Begin" function BarcodeReader_Read( variable & barcode ) void { // }} "" // {{ 5 "BarcodeReader_Read" "InitLocals" barcode = 0; // }} "" // {{ 10 1 0 "302bcc17_1365_443f_a46b0d164779f18e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F17E80F5B0F14da6AD3DC48FC7190CFC ; err.Clear(); // }} "" // {{{ 11 1 0 "f3cc7ab5_8df1_49cb_aaf121c9e2cc2d4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("attempting to read barcode "), Translate("attempting to read barcode")); // }} "" // {{{ 12 1 0 "7efa47d3_0206_455e_9c6a05f9f0aebc1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" barcode = HSLBarcodeReader::Read(); // }} "" // {{{ 13 1 0 "dd9a5270_3e4b_4b95_898bbad8823e8ea2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(barcode, Translate("this is the barcode")); // }} "" // {{ 14 1 0 "302bcc17_1365_443f_a46b0d164779f18e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F17E80F5B0F14da6AD3DC48FC7190CFC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 15 1 0 "1bcebdcc_4eed_4f44_b21a8924c1f94855" "{C1F3C015-47B3-4514-9407-AC2E65043419}" barcode = ErrGetDataAt(3); // }} "" // {{ 16 1 0 "302bcc17_1365_443f_a46b0d164779f18e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "BarcodeReader_Read" "End" } // }} "" // {{{ 5 "pH_Measure" "Begin" function pH_Measure( variable i_intModuleID, variable i_fltTemperature, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Measure" "InitLocals" o_fltpHProbe_1 = 0; o_fltpHProbe_2 = 0; o_fltpHProbe_3 = 0; o_fltpHProbe_4 = 0; o_stepReturn = 0; // }} "" // {{ 309 1 0 "ed7e1393_5f74_4f7a_9f24134bcc79cfea" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_485A52AE45C346adA048E7F329D0C390 ; err.Clear(); // }} "" // {{{ 310 1 0 "70294f1d_735f_43b0_bfff139b2e168d5d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::Measure(i_intModuleID, i_fltTemperature, i_strProbePattern, o_fltpHProbe_1, o_fltpHProbe_2, o_fltpHProbe_3, o_fltpHProbe_4); // }} "" // {{ 311 1 0 "ed7e1393_5f74_4f7a_9f24134bcc79cfea" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_485A52AE45C346adA048E7F329D0C390 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 312 1 0 "b81f548d_2601_402a_9a291d45b6b50706" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 313 1 0 "ed7e1393_5f74_4f7a_9f24134bcc79cfea" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Measure" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=Hamilton$$valid=0$$time=2024-07-10 19:18$$checksum=97f73db2$$length=087$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx393D.tmp ================================================ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx3D8A.hsl ================================================ namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HslHamHeaterShakerLib.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } #include "STAR_OEM_Test.res" namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "SchedulingDev\\HSLAppsLib.hsl" } namespace _Method { #include "STAR_OEM_toolkit_pH.hs_" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" } namespace _Method { #include "STAR_OEM_ODTC.hs_" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Module.hsl" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Washer Module.hsl" } namespace _Method { #include "Inheco ODTC\\Inheco ODTC.hsl" } namespace _Method { #include "Hamilton MPE2\\HSLMPELib.hsl" } namespace _Method { #include "Hamilton Centrifuge\\Hamilton Centrifuge.hsl" } /* {{ 2 "LibraryInsertLine" "" */ // }} "" variable loopCounterMain; variable msg; object objJSONFromServer; variable commandFromServer; variable initializeAlways; variable o_stepReturn; object objJSONToServer; sequence seq; variable tipSequence; variable sequenceCounting; variable channelVariable; variable channelUse; variable labwarePositions; variable aspirateSequence; variable v; variable arrayOfVolumes[]; variable liquidClass; variable aspirateMode; variable capacitiveLLD; variable pressureLLD; variable liquidFollowing; variable submergeDepth; variable liquidHeight; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable airTransportRetractDist; variable touchOff; variable aspPosAboveTouch; variable o_liquidLevels_mm[]; variable o_liquidLevels_mL[]; variable o_stepReturn2; variable o_stepReturn3; variable dispenseMode; variable dispenseSequence; variable dispPositionAboveTouch; variable zMoveAfterStep; variable sideTouch; variable wasteSequence; variable useDefaultWaste; variable reducedPatternMode; variable aspirateVolume; variable o_stepReturn4; variable dispenseVolume; variable tipEjectToKnownPosition; variable carrierName; variable barcodeFileName; variable barcodeReadPositions; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable lidSequence; variable plateSequence; variable toolSequence; variable transportMode; variable widthBefore; variable gripHeight; variable gripWidth; variable gripSpeed; variable gripperToolChannel; variable checkPlate; variable zSpeed; variable gripForce; sequence lidSeq; sequence toolSeq; variable xAcceleration; variable platePressOnDistance; variable ejectToolWhenFinish; object objHttp; variable blnReturn; variable blnSuccess; variable usedNode; variable deviceNumber; variable action; variable sampleInterval; variable shakingToleranceRange; variable id; variable monitorResult; variable firmwareVersion; variable serialNumber; variable command; variable parameter; variable plateLock; variable shakingAccRamp; variable shakingDirection; variable simulate; variable startTimeout; variable toleranceRange; variable securityRange; variable intTrace; variable shakingSpeed; variable shakingTime; variable temperature; variable waitForTempReached; variable inverseGrip; variable liftUpHeight; variable retractDistance; variable tolerance; variable labwareOrientation; variable movementType; variable collisionControl; variable gripMode; variable showCollisionCheckDialog; //global device HxFan ("STAR_OEM_Test.lay", "HxFan", hslTrue); variable refillAfterEmpty; variable chamber1LiquidChange; variable chamber2WashLiquid; variable chamber1WashLiquid; variable chamber2LiquidChange; variable FirmwareCommand; variable FirmwareParameter; variable CommandListElement; variable CommandListLength; object FirmwareCmdDict; variable yDisplacement; variable zDisplacement; variable xDisplacement; variable yOrigin; variable xOrigin; variable zOrigin; variable ControllerID; variable SimulationMode; variable ErrorCode; variable DeviceID; variable TargetTemperature; variable StopAllDevices; variable TraceLevel; variable Comport; variable Simulate; variable ModuleName; variable Angle; variable inputSequence; variable barcode; variable seqFirstPosition; variable seqSecondPosition; global device ML_STAR ("STAR_OEM_Test.lay", "ML_STAR", hslTrue); variable ModuleID; variable probePattern; variable pH_probe_1; variable pH_probe_2; variable pH_probe_3; variable pH_probe_4; variable Variance; variable Timeout; variable CalibrationLevel; variable CalibrationValue; variable CalibrationTemperature; variable Precision; variable Temperature; variable ChargeCounter; variable ReplacementDate; variable BatteryCondition; variable ActualCharge; variable MeasurementCounter_Probe_1; variable MeasurementCounter_Probe_2; variable MeasurementCounter_Probe_3; variable MeasurementCounter_Probe_4; variable HardwareNumber; variable Revision; variable SerialNumber; variable PartNumber; variable Selector; variable VoltageData; variable Day; variable Year; variable Month; variable Charge; variable AutoCharge; variable AutoChargeLevel; variable Probe; variable Mode; variable ProbeNumber; variable pHHighValue; variable pHHighVoltage; variable pHLowValue; variable pHLowVoltage; variable CalibrationSlopeRatio; variable CalibrationOffset; variable CalibrationSlope; variable CycleNumber; variable LockID; variable SiLAMessage; variable SiLAReturnValue; variable DeviceIP; variable LocalIP; variable Message; variable DevicePort; variable ProtocolFile; variable ErrorMessage; variable MethodName; variable Priority; variable Duration; variable RequestID; variable Time; variable ActualTemperatures[]; variable ActualTemperatureNames[]; variable str_ActualTemperatureNames; variable str_ActualTemperatures; variable strDeviceID; variable TimeToWait; variable PMSID; variable PMS_ID; variable Current_Time; variable Locked; variable State; variable Result; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" STAR_OEM_TOOLKIT::_InitLibrary(); STAR_OEM_TOOLKIT_PH::_InitLibrary(); STAR_OEM_ODTC::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{{ 1 1 0 "e7768ad9_4016_4422_bd83f5785d03ceda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnReturn = HSLHttp::Initialize(objHttp); // }} "" // {{ 2 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnReturn != blnSuccess) { // }} "" // {{{ 3 1 0 "62c131b4_44b9_4249_8e0a3205a25b21b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); // }} "" // {{{ 4 1 0 "fb18125e_b294_4554_912c3d447526996e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 5 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 6 1 0 "ee92e29b_e94c_46cf_a67851f3be61c805" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Hi, Im a VENUS method.")); // }} "" // {{ 7 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; // }} "" // {{ 8 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "de417132_351a_4ad8_80c71b1863d4a870" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" commandFromServer = Translate(""); // }} "" // {{ 10 1 0 "d9c97239_3c9d_4992_8fb5820ae5721d90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate(""); // }} "" // {{ 11 1 0 "57da7835_7495_4b16_8b82897289efbd11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn2 = Translate(""); // }} "" // {{ 12 1 0 "cf024fcc_3594_4355_b33f4bd8c8bdfb4e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn3 = Translate(""); // }} "" // {{ 13 1 0 "9ed0b80d_8518_474f_a94d8f843a6158fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn4 = Translate(""); // }} "" // {{ 14 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 15 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 16 1 0 "0257e5d3_7b99_47be_a062950a2b200664" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" msg = waitForGUItoContinue(); // }} "" Trace("JSON received from Server:", msg); // {{{ 18 1 0 "36be63f7_a79c_44a4_b1dc636a536612bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONFromServer); // }} "" // {{{ 19 1 0 "5c2b861d_97f9_4e18_a5fce25e78026299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::ParseJson(objJSONFromServer, msg); // }} "" // {{{ 20 1 0 "562abca5_8891_402a_b8a7c5ba56301a86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); // }} "" // {{{ 21 1 0 "cb002e33_cc71_4a25_890fa8f9f5d982a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("id"), id); // }} "" // {{ 22 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 23 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 24 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "initialize") { // }} "" // {{{ 25 1 0 "773dbb38_0414_403d_b2ff24100c7cf1fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); // }} "" // {{{ 26 1 0 "97af1c08_2914_4f72_b27c685f11b30bb6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); // }} "" // {{{ 27 1 0 "b3ab11e2_0297_446f_9cf37ca7c0c9d19f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Init step return:"), o_stepReturn); // }} "" // {{{ 28 1 0 "57d4e0cd_327e_4cac_8e83a7da6222dda0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 29 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 30 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 31 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 32 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 33 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipPickUp") { // }} "" // {{{ 34 1 0 "53e1cfb5_1fde_491f_bfd878eceda16ba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 35 1 0 "f0e9e31f_d871_4632_bd466e43fc38c771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 36 1 0 "e6311b13_2132_40e0_aff0b5556205c32a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 37 1 0 "cb659ed1_5f0c_41e8_8a060ec0b650c589" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{ 38 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 39 1 0 "6699226b_6c7b_4b79_95b8017162b433b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 40 1 0 "bd13798f_62e7_4dd2_8e91769d48d10fc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 41 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 42 1 0 "ce13caa6_634b_4dec_8a6c3ea74b144e95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 43 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 44 1 0 "29f69958_d99b_455a_93c7b0480bfd1658" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn); // }} "" // {{{ 45 1 0 "732425fd_a199_4354_8479d821ee834e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 46 1 0 "22f00193_1056_456e_a515d156eee56e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 47 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 48 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 49 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 50 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelAspirate") { // }} "" // {{ 51 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 52 1 0 "55ee3109_036b_4acb_8a15175f3316656f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 53 1 0 "a5b3e5ac_4910_4a4a_8e20bdb7f61836e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 54 1 0 "ce04189a_96e4_4bdc_aedc8a68bf64647b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 55 1 0 "882daff3_cc25_4778_aec6a937fc87347c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 56 1 0 "7f7b9f83_5611_4a3b_b5c120689696addb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 57 1 0 "39e464b7_0def_403b_a02f5dd2a358dbd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 58 1 0 "2e2739aa_8eb6_44e0_b887ea00b04acac0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 59 1 0 "9408edd8_3cee_43e0_976b4a6fabf5f4ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 60 1 0 "a2848877_3518_4d1d_95f77c1f313003e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); // }} "" // {{{ 61 1 0 "4b5ce3d0_91f4_4c14_aaf1cad34e0caf60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" Trace("Bookstart"); // {{{ 63 1 0 "12892ce3_3bc6_4165_b3b6ae0eacad20e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" Trace("Bookend"); // {{{ 65 1 0 "15bd5af3_2da1_420b_beb398dc2347a0ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 66 1 0 "4fe61fb4_bb39_4728_96b8c6959f4943ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); // }} "" // {{{ 67 1 0 "ba68c240_2397_4872_949ee1ee984595c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 68 1 0 "baac19fc_9f21_4e8c_b833f2a1ba2433f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 69 1 0 "253130f8_f599_4ef4_9d5a15e2cb89d1eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 70 1 0 "51233931_483f_4deb_a8627b909d6c9116" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 71 1 0 "bf0c65ba_7847_4768_92ebbe8adc6568c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 72 1 0 "30a6715c_b6c6_4d86_b5c02f3da440e309" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 73 1 0 "6eb82b6e_8093_461e_afc712cab07398dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 74 1 0 "3f8b6af1_7872_4a20_92bf2c4507ea9f31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); // }} "" // {{{ 75 1 0 "7dd1b818_5a89_4b03_82734e6f4d7b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{ 76 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 77 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 78 1 0 "cb2b67f0_7384_4a41_831de652f92d4c85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 79 1 0 "29a868b4_7800_4747_b14eaf0f2c10ba40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 80 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 81 1 0 "08f63789_65f1_4e7d_996dc22e8f33d416" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 82 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 83 1 0 "8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 84 1 0 "7cb70e6b_15bb_4380_b62150df065d208f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 85 1 0 "4714958b_0632_4de2_983c7fe9de68df6c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 86 1 0 "bd40f564_16d7_4037_aef8eebfe28a4362" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 87 1 0 "18bf536c_98f4_4345_86a103db4a9b68a1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 88 1 0 "d60cd9aa_083b_4487_8d6218cee02fa4cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 89 1 0 "e86187c0_0d19_453e_be1c5a401d0d5d93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 90 1 0 "d66c2dae_4cc3_4a31_bafe46d1dd63e790" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 91 1 0 "d23f143d_290d_4d0f_b368241a6a9adaed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 92 1 0 "0428e844_3191_4cde_b7f3544f34c833f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 93 1 0 "a7ca006f_941c_4b31_9749313ad9b4e079" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 94 1 0 "8c97ba72_f880_4504_baee8b8db3d13310" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 95 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 96 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 97 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 98 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelDispense") { // }} "" // {{ 99 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 100 1 0 "909bc255_6ca1_4700_bc102ccb34ae5be4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 101 1 0 "fd48dd93_9f42_4df0_9f659e27a5552543" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 102 1 0 "3ff3f492_86a5_40af_a3deabccbab3898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 103 1 0 "3cbb883f_48ae_40fe_afe67da944df94b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 104 1 0 "ab1033bc_1216_450a_9fb60655a1f1a21a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 105 1 0 "0bc1541f_26d5_44d6_8db6ae336fec17bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 106 1 0 "8c10cc29_c05e_4cea_9ed559249651e805" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 107 1 0 "3e0373da_7c7c_46ab_9b77fba19915662e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 108 1 0 "b98fdc49_cdcb_4f3c_81df0b76eafa1411" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 109 1 0 "7458d32a_402a_4215_b52378c78468ec80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 110 1 0 "5e14f2ce_c932_474b_be03f3c043c700e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 111 1 0 "c2010d1d_5a78_4871_a835a6613a1237bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 112 1 0 "d4a6e6a3_0158_45f1_9c359d8e48e01bed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 113 1 0 "011e9828_5413_40c1_80d0c3bdde1c6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 114 1 0 "2d7a4942_b2ce_43a2_8decf49fa0c9576c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 115 1 0 "ad9f0bbf_e495_41c5_898a3be32bb16f2b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 116 1 0 "5c734886_aa50_424c_b89f6894bc37dd8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 117 1 0 "d1bc00cc_4286_4409_b1c49b6350e7e6ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 118 1 0 "b178ce99_db9e_4453_bed28d4ce0457bc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); // }} "" // {{{ 119 1 0 "1b38ad88_3c65_4e58_812f9ed32ce32485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{{ 120 1 0 "f34066f1_63f9_474f_8a9c41e56962dc74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 121 1 0 "6b94916e_355b_4ee9_8eb4f1b49c95fea4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 122 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 123 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 124 1 0 "e962dd26_3672_4418_bd3c40e9929929eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 125 1 0 "6257966a_6b39_41c8_a057a79b8e39cd4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 126 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 127 1 0 "3f230e40_8bd9_4235_b88cd0ca80799661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 128 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 129 1 0 "8d82ff40_d831_430b_97d97c01d2a4474e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 130 1 0 "ac0ad5a7_d00b_46fe_a18f94f8dab3863c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 131 1 0 "b7f86b6c_03a4_4e12_a05e5e8bdc958b75" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 132 1 0 "9bfa8704_2ae0_4a63_83d09fddbacfd336" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 133 1 0 "860b660a_6947_4c88_a2a039bf65040bf5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 134 1 0 "797f0eef_5bb2_4a2e_a178af74f4892bd7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 135 1 0 "2753c24e_c4dc_402d_866b6bc8691ecc1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 136 1 0 "1ac127fd_b830_496f_b4d4b9671137ebff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 137 1 0 "3ee5d751_d3a5_468a_b539c4f0ff22023e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 138 1 0 "b86d492c_446f_4921_97140cfd462ace87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 139 1 0 "e049946d_6322_4b39_9c46a2d0eb345528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 140 1 0 "531432f5_ef8a_416e_8be28a07ae9b0d25" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 141 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 142 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 143 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 144 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipEject") { // }} "" // {{{ 145 1 0 "69be671e_7cdd_48d3_af136435754c1d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 146 1 0 "f3444c0f_4863_4fdd_94a025b682d8a6d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 147 1 0 "12ad2f39_c160_4afc_9f6ffce7e3ddb433" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 148 1 0 "2883bb64_2fe3_47ca_996e11434afc57cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 149 1 0 "10c3b13e_7129_4cfd_b88b29d0bbc31a28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); // }} "" // {{ 150 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (useDefaultWaste == 0) { // }} "" // {{ 151 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 152 1 0 "655bc92f_08a8_4c16_a0276997aec081ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 153 1 0 "a3a0b5ef_85c0_4552_a28b3356d7886eb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 154 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 155 1 0 "efadb8c3_c431_4ed4_a739a951c05ee518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 156 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 157 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 158 1 0 "2dda50b6_7f82_4e8a_a1d203715119213a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 159 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 160 1 0 "7fa61e34_a1f2_4b99_8f6bed13c6ce120f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn); // }} "" // {{{ 161 1 0 "a7db5128_f8e4_4afe_81f46b2cc86e608d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject step return:"), o_stepReturn); // }} "" // {{{ 162 1 0 "683607f4_928f_4cea_b901fe3502404424" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 163 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 164 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 165 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 166 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 167 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 168 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipPickUp") { // }} "" // {{{ 169 1 0 "1f82c33f_a085_47cc_85dbbde3e42a53c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 170 1 0 "9f9fe665_47a2_4a12_961460021d1f09f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 171 1 0 "743960d2_9d0f_4ccf_848662247e3211c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 172 1 0 "b737602c_63e8_4c4c_b47f40cb815914ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); // }} "" // {{ 173 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 174 1 0 "00bd1831_c335_40f5_b706f0ffadbe2890" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 175 1 0 "1f16418c_8fa7_44a5_a6db75dd9a79ee84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 176 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 177 1 0 "b66db4eb_9e79_4c19_909fd8d14d37cba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 178 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 179 1 0 "f3e7cbf6_0242_4463_8d4ed0db4667f7db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2); // }} "" // {{{ 180 1 0 "b080a5c6_324c_4aae_b5899dede6d863f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 181 1 0 "aa5a9c4b_0377_46ce_9b46883db15cbd7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 182 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 183 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 184 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 185 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Aspirate") { // }} "" // {{ 186 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 187 1 0 "373f30c8_ec07_4298_94d6ac75358ab1ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 188 1 0 "ef3ae377_e985_4ef6_93b005aa91c9b2b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 189 1 0 "d8eea65a_6e59_4c32_a47bae09779f9528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 190 1 0 "8eb02312_a070_491c_9758b3cdbdee0cfc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); // }} "" // {{{ 191 1 0 "6eaf8bee_b53f_4f01_87c1380bc345e386" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 192 1 0 "d9923a2f_e7cf_4f3e_81746e378a20baab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 193 1 0 "2c411993_e3fc_4753_9a90308b226078a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 194 1 0 "5d900896_b2b9_442b_b24294b9bbfbdaad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 195 1 0 "21149e9e_21c9_4ddd_93e07b693e3ab3fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 196 1 0 "bcefef03_102b_4887_adad59c2fb7ad551" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 197 1 0 "9665b0a3_35e8_47e9_b14ac1a4818cfa6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 198 1 0 "ff93d28b_afe9_47e7_9b6eb50d6845384f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 199 1 0 "ef43b824_fd38_42d4_9e932904dbf14813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 200 1 0 "b0378457_e370_448b_bfd6955c05e57bcb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{ 201 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 202 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 203 1 0 "615bcff6_e9d5_4303_a5d5826b2e2548dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 204 1 0 "cf4ad428_945e_4921_9441ee34cf9c96bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 205 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 206 1 0 "86397ec2_2ee5_4ec1_8bec47d8e87584b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 207 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 208 1 0 "48f88263_72c1_4df2_865181cffed9feee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 209 1 0 "f1b764e8_e556_4d08_bb83bdc12dc64a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 210 1 0 "164c104a_cf5f_46de_b23a098a18b3fdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 211 1 0 "ee779f77_51a9_46d7_b58b7bcaf13519f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 212 1 0 "e874eb6d_1e97_4590_95d9b10cb059c935" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn4); // }} "" // {{{ 213 1 0 "0ca1df86_a344_45fd_b384e13ba44c5ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 214 1 0 "2497228e_672e_4c95_9f31679fe87bbe1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 215 1 0 "e4930eee_c625_4acb_a81c05e149a1a218" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 216 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 217 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 218 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 219 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Dispense") { // }} "" // {{ 220 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 221 1 0 "78cba921_2a37_4b4a_91ef7fbe81fcddd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 222 1 0 "b58b4cbd_16e9_4444_9037061e29bc5614" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 223 1 0 "0ab910ec_826d_4c84_bac7ed9564f3bdab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 224 1 0 "84d664b7_70d0_4136_bdfd4de2aa760ad8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); // }} "" // {{{ 225 1 0 "18becc6a_2df4_4281_8b16ade9038979f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 226 1 0 "68c565db_e5ed_44e8_b3846a1d98034e76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 227 1 0 "6a4221a8_9488_48f9_8381b1bc0f0c960d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 228 1 0 "45dcb271_e326_42fc_b8684816d3ffdc93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 229 1 0 "14552b13_e77b_4fb7_9020445ecc5ade21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 230 1 0 "91783f87_af6f_446e_a74fb1725f17d282" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 231 1 0 "e2e7f702_1710_49eb_9b1046dbf4f143e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 232 1 0 "1817aa70_86fa_4318_a8e46569701623e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 233 1 0 "50bd6734_10d5_4291_b40eb708539514fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 234 1 0 "ad5fbb01_d809_4b7d_b858ed597709f28f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 235 1 0 "09566247_6b2d_4c73_b43fe303a30f89c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 236 1 0 "3ead74f7_3b5c_4b21_84d2488c2eceab73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 237 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 238 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 239 1 0 "835f8470_7e8c_40ff_a48abcc85d6b778b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 240 1 0 "059394fc_e924_4d57_b1b85f79f9947fa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 241 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 242 1 0 "6c4be3a7_a450_459c_90545a208f9f459f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 243 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 244 1 0 "c164a94e_2926_462e_9487870d403fe8b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 245 1 0 "86c0fb85_8aaf_4bec_9f6f1f642206487f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 246 1 0 "77047add_8050_4522_ad477b97455a8327" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 247 1 0 "5b2c6f23_9a69_489d_b52179c78c03e48f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 248 1 0 "a9a9244b_829f_4c5b_9a64f1018b029453" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn4); // }} "" // {{{ 249 1 0 "781580a9_199e_4373_b48bb55a97f8a463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 250 1 0 "1867ae44_25f8_4926_ae081e490fd5aa0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 251 1 0 "dbb3b30c_b4a1_4cf6_a24b62b63f155369" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 252 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 253 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 254 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 255 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipEject") { // }} "" // {{{ 256 1 0 "7cf9db16_d78c_4aa0_825cc3c2c22f287c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 257 1 0 "ccca7a97_c22a_4f20_b2d9a60d67850eee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 258 1 0 "a319f75e_77eb_4845_856516ce060213f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 259 1 0 "d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); // }} "" // {{ 260 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipEjectToKnownPosition == 0) { // }} "" // {{ 261 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 262 1 0 "24eeb6dd_1e20_422c_a1a8199cbca73b33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 263 1 0 "5197334f_cde5_4d52_9c528a0c4f7401b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 264 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 265 1 0 "110b82e1_8a5b_48e4_a3adbab701cffc8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 266 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 267 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 268 1 0 "fa32bbf8_8345_4897_aaf09d112d374893" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 269 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 270 1 0 "ef087a4e_684e_4d98_87109abf154fbc85" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2); // }} "" // {{{ 271 1 0 "328216cf_22dd_47a1_9f1ba089b1ac7702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn); // }} "" // {{{ 272 1 0 "53265943_7975_4275_ad98df313054f97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2); // }} "" // {{{ 273 1 0 "c13d9773_7daf_4c3c_9064fdd4f7c7008f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 274 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 275 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 276 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 277 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 278 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "loadCarrier") { // }} "" // {{{ 279 1 0 "76d739d0_ff4a_490b_9c47f411d29ef7a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 280 1 0 "ca623aa7_ed48_45fa_9f4055fb8e08c3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); // }} "" // {{{ 281 1 0 "64a8e193_7e7e_412e_8a0657f0e832eaef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); // }} "" // {{{ 282 1 0 "39e6aaef_5cce_4915_b5b6ede214c7371e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs); // }} "" // {{{ 283 1 0 "1d4d284f_fd1e_4f8a_a2158846ad6a67f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Load carrier step return:"), o_stepReturn); // }} "" // {{{ 284 1 0 "358b7fc3_40a2_418b_9d61d94eef1556f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 285 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 286 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 287 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 288 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "unloadCarrier") { // }} "" // {{{ 289 1 0 "797d23a7_c62a_471a_a52b10fea8bcc154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 290 1 0 "f1c35790_adb7_49eb_a96864d8b1d66cea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn); // }} "" // {{{ 291 1 0 "6e6ded71_3f99_46c5_9362117beb502a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn); // }} "" // {{{ 292 1 0 "8713fee4_6b93_4296_a5396254fd404d52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 293 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 294 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 295 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 296 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 297 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripGet") { // }} "" // {{ 298 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 299 1 0 "c4847ae5_e161_4f23_aa432eda22de28bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 300 1 0 "022a5cdd_3f4f_4e18_927c174fc57a68a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 301 1 0 "3e462067_5eb3_49c3_b7bf6a27de9ce3bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 302 1 0 "f7004881_3f0d_4621_a88d55dec8fc0d30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 303 1 0 "262b36ba_6d86_4009_bdc9a3881db7074e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 304 1 0 "be44b37f_7cec_4f69_81c223f2c30b120b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 305 1 0 "3dea3158_65f8_44bc_8d06a31ce3458dab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); // }} "" // {{{ 306 1 0 "308b2aa2_5970_4692_858049c6559d6ad0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 307 1 0 "756d0f81_3645_4a49_a0c2259581e11498" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 308 1 0 "cdbf11ba_b1f8_4016_811240a02705f1fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{{ 309 1 0 "625df597_c6c8_4e4a_b956e9580bfbc568" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); // }} "" // {{{ 310 1 0 "3576d134_8507_4e47_9c2bcc3dce8c026d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 311 1 0 "5b9c06ad_9081_4b6b_97e50cc87623b888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 312 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 313 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 314 1 0 "d1f3c2ac_9c68_4200_a3506bbbed8e42a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 315 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 316 1 0 "f1d1c43b_a9dd_4573_a69dd7c0e79eea40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 317 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 318 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 319 1 0 "4d304110_107e_412e_909bb84008a244de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 320 1 0 "8f8b1ba1_af12_4cdd_acf2096420ede259" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{ 321 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 322 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 323 1 0 "72e31f7d_c091_4525_a5cf7001754b199d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 324 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 325 1 0 "47dfcbb5_d784_48bb_b36b97509434a3a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 326 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 327 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 328 1 0 "e6c53925_446e_468e_b0e0654b4b9d9a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 329 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 330 1 0 "c0cbb194_1b8b_4fe0_a0f706e03eaa0748" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 331 1 0 "46703217_a28e_42ce_b13c11d73ba34bfa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn); // }} "" // {{{ 332 1 0 "189164cc_2681_492f_83f072fb537648b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn); // }} "" // {{{ 333 1 0 "c8d6960a_f416_47b1_a29e2752973c0ec9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 334 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 335 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 336 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 337 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripMove") { // }} "" // {{ 338 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 339 1 0 "5755c338_faa3_4f0a_9acd4cd01a912862" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 340 1 0 "2849c819_a3dc_4328_8484ccc4785993d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 341 1 0 "32f0a8f9_3af2_42a3_90f246cc874e0e8f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 342 1 0 "791b6e1a_07b8_49cb_8122670d0871189f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 343 1 0 "036d0d84_e161_4b03_8b828dcb6b44e437" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{ 344 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 345 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 346 1 0 "e038f780_938f_4867_98f769488ca44b04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 347 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 348 1 0 "6bd2d2a1_1051_4443_a1af9b68df2876b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{{ 349 1 0 "3d8767e5_5f31_4ce5_91a11e28045ec87a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 350 1 0 "e9e0b38e_13aa_40f9_8e470eb1de09eb19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("wrong"), Translate("nowwrongere")); // }} "" // {{ 351 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 352 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 353 1 0 "064a5c1b_f450_44d6_a2042ebde115527d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 354 1 0 "ee8b8050_164a_4de8_b6ce02120236efbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 355 1 0 "be0898fe_cdb8_4ac3_a9e991e26bdb6658" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here"), Translate("now here")); // }} "" // {{ 356 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 357 1 0 "ca4b75ee_26d9_4a3b_8e3366d575348125" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 358 1 0 "ea0afc75_5bc7_4c06_ac73c2f4d5f887a0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 359 1 0 "1965d128_c7f1_4206_87e4ca1ce70c1dff" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 360 1 0 "615cbdd3_e5f2_4bc0_bb3661a2482eb770" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 361 1 0 "86fc0696_8c53_4c05_a9c0eaa58f279054" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 362 1 0 "90f602a1_fdc5_48fd_801269ecd2c3f9bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn); // }} "" // {{{ 363 1 0 "dc418b75_2d70_4034_84a767fba752b262" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn); // }} "" // {{{ 364 1 0 "ae4414d3_a939_4fdb_a0ed06f1be1506e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here here"), Translate("nohhere")); // }} "" // {{{ 365 1 0 "6379549c_caf9_409f_b293abf77f1dcfbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 366 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 367 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 368 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 369 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripPlace") { // }} "" // {{ 370 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 371 1 0 "6f38d60b_6dc5_4159_ba30360f264222da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 372 1 0 "b6ef73cf_c89c_41cc_a3b72dc5aaf70f90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 373 1 0 "c7e5f5bd_edcc_4000_9be3db81af0c79fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 374 1 0 "91ff4c39_6a86_4eda_998a5461ef6c3cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 375 1 0 "341a6f8e_b4c8_4966_b9520322d1bc2e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 376 1 0 "32792c80_3b36_4a25_8fff6b99bfcf1919" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); // }} "" // {{{ 377 1 0 "b1e5d86e_c659_4d33_9e0f83fdb20b2cb5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 378 1 0 "76b26748_4e74_45f7_85a7dc102b5fd7b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); // }} "" // {{{ 379 1 0 "ee221e8a_a662_49d8_be2ef0ed631d9527" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 380 1 0 "cbefd54c_5f0a_4a16_a0199198529b71fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 381 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 382 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 383 1 0 "ac4e7090_c3c7_4707_8d98dc55262c294b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 384 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 385 1 0 "eb5776ad_c858_4ee8_ba31f47af19e76af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 386 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 387 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 388 1 0 "1f3eb006_1b10_427e_99d0b530f1afc2ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 389 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 390 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 391 1 0 "a04c5993_bf3e_46c7_92f24c8236636b00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 392 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 393 1 0 "2455f68c_be4e_4a21_9e9e78f78f6e8e3c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 394 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 395 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 396 1 0 "ad5d98b0_9e3d_4275_90ceef06ceca045d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 397 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 398 1 0 "3321537f_63fb_48a4_90e40a2fee1cc432" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 399 1 0 "8c7e60df_f040_45c6_a939d99bcd0ac23c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn); // }} "" // {{{ 400 1 0 "24e589a9_98d7_429d_90c8afe203e96ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn); // }} "" // {{{ 401 1 0 "9d94d038_d071_4339_aaace5a2e455b240" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 402 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 403 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 404 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 405 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 406 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 407 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGet") { // }} "" // {{ 408 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 409 1 0 "4a585a30_3a23_44cc_a0948963de716cba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 410 1 0 "da3a318b_1208_4329_be1faae95ecc2e03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 411 1 0 "1f51589f_347c_497b_a7338461d92076d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 412 1 0 "622e6765_4ee3_4df5_917ca140f8b7981b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 413 1 0 "9826612b_e564_4231_8f83fdfcbd374bdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 414 1 0 "fdb52557_ae6c_42b3_925073ab7ae7a5ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 415 1 0 "171639e0_98ad_4857_a5ac346039499a33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 416 1 0 "0d4077af_b1dc_4dea_a23a163c57d96248" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 417 1 0 "60732b74_8870_48e2_be03564159cf35b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("inverseGrip"), inverseGrip); // }} "" // {{{ 418 1 0 "ffa21840_da03_4682_b62a6910caf63f45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 419 1 0 "0af9b15f_4e1b_4353_a6261def96fea256" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{{ 420 1 0 "c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 421 1 0 "74d93b97_5d7f_4593_9aeb9d83d5466e6f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{{ 422 1 0 "28d636c0_47c0_4fac_8a7b67124fd8b9f5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 423 1 0 "6f62025f_9dde_4ae6_a6b6b69efed6e381" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("tolerance"), tolerance); // }} "" // {{{ 424 1 0 "f3d51abd_651e_4b15_93eb0cea0c0384be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 425 1 0 "1b72eb1e_c220_42e0_9a34675ddc971fe7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{ 426 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 427 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 428 1 0 "fd3fbb06_b08e_4790_8e3b785ca1f8ed4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 429 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 430 1 0 "87331d5f_01ff_43a8_a0a06487f28bb2b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 431 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 432 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 433 1 0 "5f12c00c_48c1_4e2f_a24b4ba435343a8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 434 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 435 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 436 1 0 "d3e5718a_eb78_4c1f_a6467f61ccbe82df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 437 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 438 1 0 "8ebcf09f_a943_4769_b3c659e368019a32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, lidSeq); // }} "" // {{ 439 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 440 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 441 1 0 "8ce5efe3_4525_4c77_bb64f9d8dcfb6a62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 442 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 443 1 0 "8ac111e1_df50_4fcb_b465e737713459d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn); // }} "" // {{{ 444 1 0 "d9104246_d843_4a6d_85a64aa07d019020" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Get - step return :"), o_stepReturn); // }} "" // {{{ 445 1 0 "7831c2d8_4b59_455a_a0dc5cae20f325a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 446 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 447 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 448 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 449 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapMove") { // }} "" // {{ 450 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 451 1 0 "3c315cea_4ff8_4efa_8e4a5cc86a9d84d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 452 1 0 "4e2cf15d_267b_47e0_895c36b714787e13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 453 1 0 "24d68fc9_cd59_471b_9c663c4121d1a931" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{ 454 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 455 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 456 1 0 "d372f898_6d32_4d80_ab4d58340d18681d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 457 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 458 1 0 "9e573132_bd29_4d08_a1784d0e26c48700" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 459 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 460 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 461 1 0 "48db1de6_2a87_4224_b1f13fa2a75b490a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 462 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 463 1 0 "1e8e9562_41c0_4df5_9de945c44d1e8d61" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn); // }} "" // {{{ 464 1 0 "a5de7c97_d49c_4f04_b1414f1aaace7f84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Move - step return :"), o_stepReturn); // }} "" // {{{ 465 1 0 "6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 466 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 467 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 468 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 469 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPlace") { // }} "" // {{ 470 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 471 1 0 "18e9697d_0efb_4840_94a65e2a82b4ca69" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 472 1 0 "b0c35970_122b_4119_92c3801f4b8e980b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 473 1 0 "6ed697af_a110_4104_941633e154ff0071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 474 1 0 "fec1982e_3636_412d_af2eda243438f7ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 475 1 0 "21de27ac_9dc3_415b_b1d1e49e80c53591" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 476 1 0 "652aeaa7_9a2f_4c11_8bc1fc58a97ffed7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 477 1 0 "e88a5df4_d9ad_4231_89a5a03f88d0ce77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 478 1 0 "8c5aee51_3156_4fcc_b1b167552b73476f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 479 1 0 "8c257b39_8c0b_410d_a4a4e38df904008c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 480 1 0 "91e9f4c6_b7fe_4b15_83c830df3385398a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{ 481 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 482 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 483 1 0 "226bb6d1_37a1_4076_9d96fb9df69c6068" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 484 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 485 1 0 "ec2fd48b_eab9_491e_867c0fc335eea81c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 486 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 487 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 488 1 0 "e590d9b6_f690_48db_b0109a10c228d5ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 489 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 490 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 491 1 0 "82559320_1e13_40c9_b283fdfa804df6a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 492 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 493 1 0 "420daa28_bf45_407a_bd576559af75c5d0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 494 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 495 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 496 1 0 "3ed6b704_3649_4c7d_8e7d30bdb038feab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 497 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 498 1 0 "41a130e8_a745_4a20_b124272093bf38e7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn); // }} "" // {{{ 499 1 0 "b4bdf08c_e218_4bec_98c0f41e6ec3a218" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Place - step return :"), o_stepReturn); // }} "" // {{{ 500 1 0 "346b983b_d261_4447_a7cebf782db4b4d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 501 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 502 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 503 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 504 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPark") { // }} "" // {{ 505 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 506 1 0 "73602d5e_7f8d_45dc_9c1f21d41c39d0bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("showCollisionCheckDialog"), showCollisionCheckDialog); // }} "" // {{ 507 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 508 1 0 "acf5767a_7e39_4072_8e062928938984cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{{ 509 1 0 "96b1bdf6_a3f3_4530_844fc77cbf7fb944" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 510 1 0 "d03fdac4_224f_4174_924fb518a623bf65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 511 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 512 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 513 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 514 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGetFirst") { // }} "" // {{ 515 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 516 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 517 1 0 "5f9f4b8d_3b3a_48ee_89ef334a70dcb72e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{ 518 1 0 "65648900_32b3_4035_9eb5916a3314f7e9" "ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}" { variable arrRetValues[]; arrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40("65648900_32b3_4035_9eb5916a3314f7e9"); // GetFirstPlatePosition } // }} "" // {{{ 519 1 0 "63380bb7_5afe_4d65_9dc5cdf334590b4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 520 1 0 "cdb18c48_14d5_430d_9f7202f782e069da" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 521 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 522 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 523 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 524 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 525 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "FirmwareCommand") { // }} "" // {{ 526 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 527 1 0 "5f5e5c89_0c1a_497b_80c550dbc4676208" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate("FirmwareCommandList")); // }} "" // {{ 528 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(CommandListElement = 0; CommandListElement < CommandListLength;) { CommandListElement = CommandListElement + 1; // }} "" // {{{ 529 1 0 "2c2e9953_5968_4384_8b2dad24b0960278" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate("FirmwareCommandList"), CommandListElement, FirmwareCmdDict); // }} "" // {{{ 530 1 0 "7f4d5cda_c10f_4317_ba7613cd10d2e90d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareCommand"), FirmwareCommand); // }} "" // {{{ 531 1 0 "cf155262_dfb4_46b4_aff762c7b4c18d8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareParameter"), FirmwareParameter); // }} "" // {{{ 532 1 0 "471df283_02f5_4daf_9c83999e3b1fd8e1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn); // }} "" // {{{ 533 1 0 "0b8e6d49_655f_42a7_bcfdeac76a40c6e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 534 1 0 "f49f31b3_d742_44ae_a6a076108c3f9ab4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 535 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 536 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 537 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 538 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 539 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 540 1 0 "fc551e3b_1f4d_4d8d_8fed3ee38abdebdc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Initialize") { // }} "" // {{ 541 1 0 "4d6ccadc_66fe_48ca_913a7e0defd3a766" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 542 1 0 "e1385a03_1302_4ae1_9faaea69422d67f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate("FirmwareCommandList")); // }} "" // {{ 543 1 0 "6fa9115c_4e6b_4fcf_82fc2509f332fbca" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(CommandListElement = 0; CommandListElement < CommandListLength;) { CommandListElement = CommandListElement + 1; // }} "" // {{{ 544 1 0 "5af0317c_390a_4121_92fc6695bd45edd3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate("FirmwareCommandList"), CommandListElement, FirmwareCmdDict); // }} "" // {{{ 545 1 0 "8c9a281c_debc_4f33_9bd2cef6eedde57e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareCommand"), FirmwareCommand); // }} "" // {{{ 546 1 0 "3d50574c_65df_46db_976821037648878c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareParameter"), FirmwareParameter); // }} "" // {{{ 547 1 0 "642f5973_af08_450b_878d55fa1dc15b1c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn); // }} "" // {{{ 548 1 0 "c1b028b1_70dd_4627_a467661067398a2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 549 1 0 "f0c6a22f_59e2_41c2_954cb5b06a43aa42" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 550 1 0 "6fa9115c_4e6b_4fcf_82fc2509f332fbca" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 551 1 0 "4d6ccadc_66fe_48ca_913a7e0defd3a766" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 552 1 0 "fc551e3b_1f4d_4d8d_8fed3ee38abdebdc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 553 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 554 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 555 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Initialize") { // }} "" // {{ 556 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 557 1 0 "efe73491_e5b4_499e_9b3f298c8b7a6398" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 558 1 0 "5c0fe710_4afe_4b11_bf186cfe8dc87978" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{ 559 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 560 1 0 "110af9db_52cf_4a40_94724a7476c48d86" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn); // }} "" // {{{ 561 1 0 "af9bf513_7c00_47bf_aee50c7cdb333b5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Initialize: "), o_stepReturn); // }} "" // {{{ 562 1 0 "cf0a8758_8a16_429a_97f320a142945224" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 563 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 564 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StartTempControl") { // }} "" // {{ 565 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 566 1 0 "de87c5cd_92f6_45a8_9ebd6fe71ac65dbc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 567 1 0 "26949b4a_2c44_4548_8de048c4f48bd98d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 568 1 0 "8ae03ef4_8584_4957_a32601dc8599dadf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn); // }} "" // {{{ 569 1 0 "934ba752_5ec3_489b_ae5a40dd1ea20440" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Start Temperature Control:"), o_stepReturn); // }} "" // {{{ 570 1 0 "a3528747_6990_4387_8839b01b71c3b754" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 571 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 572 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 573 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_SetTarget") { // }} "" // {{ 574 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 575 1 0 "55e81697_10a3_42fb_8777236a132ff0b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 576 1 0 "0177c1a2_7380_4683_94ff93e2ed1299b2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 577 1 0 "15559e31_3f7a_4336_9cabca6758b7c253" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("TargetTemperature"), TargetTemperature); // }} "" // {{ 578 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 579 1 0 "0dcffa9d_ea82_418b_be95240c1bfd0d77" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn); // }} "" // {{{ 580 1 0 "e9b0b663_7dd3_4e55_b206572d2c8a92c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Set Target:"), o_stepReturn); // }} "" // {{{ 581 1 0 "08ecb91c_e9c8_4c61_aca2c1f89fd97bab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 582 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 583 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StopTemperatureControl") { // }} "" // {{ 584 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 585 1 0 "b67518d4_e443_4a8f_947e8c457680c63e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 586 1 0 "045fda52_2303_4244_833066fb0005c21b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{ 587 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 588 1 0 "1c8947fe_b7a1_455a_94e7672ad3593b08" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn); // }} "" // {{{ 589 1 0 "285287f8_a3f9_43f0_9799c3ad98e59b9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco Stop Temperature Control:"), o_stepReturn); // }} "" // {{{ 590 1 0 "88d1a80e_0aa9_4314_ba83bc772f71a589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 591 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 592 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Terminate") { // }} "" // {{ 593 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 594 1 0 "c963c353_41bc_4f4a_b74a666b28831950" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("StopAllDevices"), StopAllDevices); // }} "" // {{ 595 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 596 1 0 "ea2ceb94_04fa_4204_96db2caf6871231f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn); // }} "" // {{{ 597 1 0 "cd495cf5_43ff_4b30_b0baa1f2cd96cf0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Terminate:"), o_stepReturn); // }} "" // {{{ 598 1 0 "bcce43cd_2b64_4caf_89bef8978a011dc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 599 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 600 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 601 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 602 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_Initialize") { // }} "" // {{ 603 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 604 1 0 "d824843f_bf44_4e8b_bb434b50a8b65716" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 605 1 0 "45b9f513_7eaf_4e63_ae92391c28cf15b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 606 1 0 "7f058eec_3092_45ce_862c43a3e0853c7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 607 1 0 "56a4490f_902b_4043_8172466a64e332bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Simulate"), Simulate); // }} "" // {{ 608 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 609 1 0 "c44a492c_8123_465b_acd4ff374583777d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn); // }} "" // {{{ 610 1 0 "a62df2e9_44bb_4099_a4d0597fbf0705de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Initialize:"), o_stepReturn); // }} "" // {{{ 611 1 0 "de7bfb5a_b1fa_42ee_b461782a3c381af4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 612 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 613 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_MoveToPosition") { // }} "" // {{ 614 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 615 1 0 "3092ee64_df80_4e56_b3cdffc0827e3c2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 616 1 0 "4284a9cf_3ea6_42f5_ae1f62d82cd11ebe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Angle"), Angle); // }} "" // {{ 617 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 618 1 0 "5b44092b_0faa_47ae_8005717c87a0f334" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn); // }} "" // {{{ 619 1 0 "4d912417_89ed_44f2_941bfb44efed0e2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Move to Position:"), o_stepReturn); // }} "" // {{{ 620 1 0 "0540bb67_399d_468d_853dd6ca4bb1c285" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 621 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 622 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 623 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 624 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "moveSequence") { // }} "" // {{{ 625 1 0 "6e83eea3_8863_4ca0_9ff603380f0dc4d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("inputSequence"), inputSequence); // }} "" // {{{ 626 1 0 "6b8903c6_6977_458a_8409f93724089454" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 627 1 0 "77d9a84d_5987_4b3c_a76757ce15a19302" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 628 1 0 "13c73535_4a98_49e2_ba1a02c30f02035b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 629 1 0 "a33ebddb_88d8_4440_9a78132ed62d97f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, inputSequence, seq); // }} "" // {{{ 630 1 0 "1dcc4914_aa2f_439e_8a2f431687c33852" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqFirstPosition = SeqGetPositionId(seq); // }} "" // {{{ 631 1 0 "01f7bf35_3538_441d_98904fa827b05e68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 632 1 0 "a37851fe_b9d0_42fa_9ccca7dd7b352a9c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{{ 633 1 0 "fe9d84b8_86ec_4552_b187147351886cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqSecondPosition = SeqGetPositionId(seq); // }} "" // {{{ 634 1 0 "5fa8b88a_cf88_49e1_8cb574503dc60e56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(seqFirstPosition, seqSecondPosition); // }} "" // {{{ 635 1 0 "e590c4e1_91dd_41c0_82a254d4134fb734" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("First check"), Translate("Second check")); // }} "" // {{{ 636 1 0 "2127d6de_e8bd_455a_88ad20e73b767061" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 637 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 638 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 639 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 640 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 641 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_measure") { // }} "" // {{{ 642 1 0 "7c314622_d15c_42aa_a88b3d71caa33d0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 643 1 0 "9f15b042_95cd_4241_9b6262d3a4979ca7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 644 1 0 "34064a8d_5567_4fe5_b4349d0d061b9a1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 645 1 0 "0e34e118_df68_49fa_b3b9228d63deb6d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 646 1 0 "025eece8_72cd_4190_a092d806fbab65a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 647 1 0 "269c134a_bc59_4578_8da8bb7559f234a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 648 1 0 "36ec28c1_360b_46e9_9243c01dbd3874e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 649 1 0 "58445956_3204_41a3_a7acb03aaf25ccd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 650 1 0 "465c2002_18cb_4ff2_9df9e423dbc6837c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 651 1 0 "40682224_6d73_4a7c_a2e33641f1768d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 652 1 0 "e43a57a6_d83b_41d1_adf33f8f77ca7bc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 653 1 0 "12a6bd74_f75b_44d1_b6f7c26d279d9610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 654 1 0 "71b8f8bc_65c1_4e97_ab6eae03040f51dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 655 1 0 "a8ca8abd_aa7a_412c_be527eb4e81efcb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 656 1 0 "a8647b92_b569_4a75_99a5333c438b3a23" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 657 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 658 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 659 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 660 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate_Dyn") { // }} "" // {{{ 661 1 0 "de6a4eb0_04e1_47fc_86e27009d71152cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 662 1 0 "5f551457_7af9_4567_bceacdf0018c9c38" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 663 1 0 "60ee9fa5_c549_43a9_bbccdb0b14819583" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 664 1 0 "2211f515_9e69_4a1c_9603becd6fd866cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 665 1 0 "8449e1f4_6561_4b51_b91aa14423565eb2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 666 1 0 "4429d4bb_e2fb_451f_8558de74111dbe3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Variance"), Variance); // }} "" // {{{ 667 1 0 "a918fadc_db95_4e4b_9c445a903a59f17a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 668 1 0 "7611bb65_5e77_408e_98384f0fec68e958" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 669 1 0 "74418f44_640a_4b4b_88234a74841f1dbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate Dynamically"), o_stepReturn); // }} "" // {{{ 670 1 0 "13218e03_9ac9_44ed_8af864397e865cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 671 1 0 "6257eb41_ce75_45b1_bea89bce20631222" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 672 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 673 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 674 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 675 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate") { // }} "" // {{{ 676 1 0 "c7a809a1_1dc8_47c2_a8006c785355c50e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 677 1 0 "27f7a889_0250_42a5_87699d0b0d52d36b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 678 1 0 "b624fe53_a0c2_44e7_92eb12cc744fa799" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 679 1 0 "9f642188_0286_4e80_81cb485423a155c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 680 1 0 "c7530a85_7f29_4069_9a8e94318ffec0d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 681 1 0 "849206a3_ea5c_4440_a08cdbcb81354e94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 682 1 0 "9f9ab695_0d32_4bf4_bf5a4b0207a2c780" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 683 1 0 "c1db8c11_4c25_4c9c_b424e06999583f09" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 684 1 0 "29e43762_b009_40ad_b93a5ac2372cca00" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 685 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 686 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 687 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 688 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Enable_Extended_Log") { // }} "" // {{{ 689 1 0 "1791ad6e_39b2_4442_8b4470d0fc5497fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn); // }} "" // {{{ 690 1 0 "b22a7836_ed52_4e9d_9e5df5babf8fa142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 691 1 0 "d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 692 1 0 "8d68d8f1_5b56_488b_a0676b4b50a35221" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 693 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 694 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 695 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 696 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Get_Last_Error") { // }} "" // {{{ 697 1 0 "11bf85a6_3df2_4245_839282a900f3db71" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 698 1 0 "2c0b2633_5d81_41a1_aa90c51eb8d9d23d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn); // }} "" // {{{ 699 1 0 "4d60f4e2_175b_4a4b_9b0bfb0f63211da0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Get Last Error"), o_stepReturn); // }} "" // {{{ 700 1 0 "76df37d9_5928_4269_937630b417ad9a11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 701 1 0 "a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 702 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 703 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 704 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 705 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Initialize") { // }} "" // {{{ 706 1 0 "a37d4042_a872_4da0_bf60a51312d5cc22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 707 1 0 "77530965_cb1f_4563_a1d848bb4faa3bb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 708 1 0 "295c3bab_f7f4_47d0_8075cf658ee0436f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn); // }} "" // {{{ 709 1 0 "69f13066_cc39_48aa_85b093e1bc056907" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrIStr(o_stepReturn2); // }} "" // {{{ 710 1 0 "3a9d7ad8_b8d0_45ee_9004e77ed5fbe471" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 711 1 0 "178d10c9_fe18_479a_b3e7922f87282612" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 712 1 0 "66935de2_85a3_4ed0_95cddf772b15fb48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 713 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 714 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 715 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 716 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Measure_Dynamically") { // }} "" // {{{ 717 1 0 "69eede79_0b96_4634_a4ed7995201d9b7d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 718 1 0 "6a018697_b8f4_4088_b8c650a2f028d197" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Precision"), Precision); // }} "" // {{{ 719 1 0 "dfbe88b8_1dda_42ac_8175799123584051" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 720 1 0 "3ef27a25_aec7_4d5b_beb743b713c7526e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 721 1 0 "74a87116_8260_466d_a78e98fe0544a891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 722 1 0 "425d37a5_2d55_4b09_a607303c754935db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure_Dynamically(ModuleID, Temperature, Precision, Timeout, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 723 1 0 "0df3fc00_0550_45fa_b224d60b9bcd06c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 724 1 0 "26992ae0_59eb_4678_ae304b460a7034db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 725 1 0 "3beda7c9_5769_4578_b31431d2bab6d131" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 726 1 0 "141952da_a201_4e85_9e446006849a95bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 727 1 0 "f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 728 1 0 "5487a4f7_a9f8_448e_98b2cb671cb9c069" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 729 1 0 "c8e7c221_d1e4_4818_b3e077f9aeb6a0a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 730 1 0 "611376c4_8c68_46f2_8947cec12bb313f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 731 1 0 "e113c0e5_7ab9_4244_86b73e7f24d2bfc8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 732 1 0 "6286c2d7_a138_4844_bc77fd8a40a6a486" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 733 1 0 "39fd3518_8a14_43a1_8d41240f577c94eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 734 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 735 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 736 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 737 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Battery") { // }} "" // {{{ 738 1 0 "c83f58ac_8db7_4477_bed8e57c9c784b8a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 739 1 0 "4b343bdb_fe40_4daa_8382b1265575e03a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn); // }} "" // {{{ 740 1 0 "98f43381_9679_4d9f_b3d1238ed4c1d0c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 741 1 0 "b95371f0_7532_4426_b980d9824bf1d2b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ChargeCounter = StrIStr(ChargeCounter); // }} "" // {{{ 742 1 0 "15324eca_50a4_4530_be7f08cdef0e6514" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BatteryCondition = StrIStr(BatteryCondition); // }} "" // {{{ 743 1 0 "e694349e_13ad_46c1_b18f5eb4688f510e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ActualCharge = StrIStr(ActualCharge); // }} "" // {{{ 744 1 0 "279c0c8e_1d53_437f_ac5e74b0ccffc7a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 745 1 0 "92db84c4_89c2_4902_819012506538681c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate("0"), Translate("0"), Translate("0"), Translate("0"), id); // }} "" // {{ 746 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 747 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 748 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 749 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Calibration") { // }} "" // {{{ 750 1 0 "250cbb57_43e2_4ca3_8ac97a4f8a848ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 751 1 0 "e2f361b4_fb8d_4bf8_b53c05720323632b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ProbeNumber"), ProbeNumber); // }} "" // {{{ 752 1 0 "6e7357dd_030a_4f9d_b5cda736b409bbee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn); // }} "" // {{{ 753 1 0 "aa859c68_b2ab_4304_9501a2d752587df6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowValue = StrFStr(pHLowValue); // }} "" // {{{ 754 1 0 "7331e4fa_3e06_499a_84eed922b712aca5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowVoltage = StrFStr(pHLowVoltage); // }} "" // {{{ 755 1 0 "3c2e720a_1c6e_4f09_afe077215aa438e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighValue = StrFStr(pHHighValue); // }} "" // {{{ 756 1 0 "a9363a15_98fa_4a49_8451b25c27edea3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighVoltage = StrFStr(pHHighVoltage); // }} "" // {{{ 757 1 0 "73007841_7490_489f_9c595a8e085e3a59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationTemperature = StrFStr(CalibrationTemperature); // }} "" // {{{ 758 1 0 "49c841c4_b5cf_4ac7_9c2e87a2dc939210" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationOffset = StrFStr(CalibrationOffset); // }} "" // {{{ 759 1 0 "d3535c95_47a6_46a6_80f73d15c4582508" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlope = StrFStr(CalibrationSlope); // }} "" // {{{ 760 1 0 "a273e170_1488_4e16_884ae09c3a26d828" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio); // }} "" // {{{ 761 1 0 "4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 762 1 0 "9ae40f13_d6cb_4a4e_9dc995de1da2d637" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Request Calibration Values"), o_stepReturn); // }} "" // {{{ 763 1 0 "5aca9095_546e_4df5_b24364da04e44fe5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id); // }} "" // {{ 764 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 765 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 766 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 767 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Probe_Data") { // }} "" // {{{ 768 1 0 "04b155be_097f_4f2d_add1392fbf78b5f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 769 1 0 "c40a59cd_e266_4cc3_aa3dd3d526502930" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn); // }} "" // {{{ 770 1 0 "306c68bb_ffd7_4233_b7f0c2c67678dfdf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1); // }} "" // {{{ 771 1 0 "bbd1faef_5b8f_41ba_bf74a019b05da039" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2); // }} "" // {{{ 772 1 0 "cb244d85_a14b_4bcb_ab81c5cdc38c6552" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3); // }} "" // {{{ 773 1 0 "5476cf0c_49cc_4602_aec72872116d2e6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4); // }} "" // {{{ 774 1 0 "6883841a_44f5_417f_8574566ed15ae444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), o_stepReturn); // }} "" // {{{ 775 1 0 "fefec950_2bfa_429e_bdf791dc40dd0495" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 776 1 0 "0f6be956_31e3_4d1e_b232c4dc908ea6f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 777 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 778 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 779 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 780 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Technical_Data") { // }} "" // {{{ 781 1 0 "3c80e1e2_a904_42ac_a3ddd5df5ca3a196" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 782 1 0 "8b2b24be_b84b_41b8_bd0f088f32554cb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 783 1 0 "552e7bb6_cbdf_49ec_86ac28b54cae7f58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 784 1 0 "1634fedb_a7e1_4130_ac1fb8d55f47b9e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HardwareNumber = StrIStr(HardwareNumber); // }} "" // {{{ 785 1 0 "2cfb8725_b283_48b0_906a9741fe336744" "{C1F3C015-47B3-4514-9407-AC2E65043419}" PartNumber = StrIStr(PartNumber); // }} "" // {{{ 786 1 0 "7b9a6dfa_9df8_40a8_9c0c39981dcf97e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Revision = StrIStr(Revision); // }} "" // {{{ 787 1 0 "771c0483_6ea2_4299_81c7598839a5027b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SerialNumber = StrIStr(SerialNumber); // }} "" // {{{ 788 1 0 "790984ff_e065_4212_a5c420f04d9f7e4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), o_stepReturn); // }} "" // {{{ 789 1 0 "79aaa9cb_2db1_4f5d_8385023783e5cc82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 790 1 0 "371d6452_cf9d_4abe_9463f54ab7831231" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id); // }} "" // {{ 791 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 792 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 793 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 794 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Voltage_Data") { // }} "" // {{{ 795 1 0 "b6c0eb00_003a_45ed_9899c407d864455c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 796 1 0 "e4801131_30dc_4e2d_8ac9e80c0c13972c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Selector"), Selector); // }} "" // {{{ 797 1 0 "ee48a65d_794b_411d_bb1668a267206d8b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn); // }} "" // {{{ 798 1 0 "bf78a104_f3d4_45b6_a573a7219dcf05e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 799 1 0 "ab32fbfb_2be2_4f6d_9c49def79adcfe31" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 800 1 0 "eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(""), Translate(""), id); // }} "" // {{ 801 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 802 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 803 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 804 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 805 1 0 "51fd11a2_c173_4d8a_be50512a820eb424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 806 1 0 "b1268215_064b_40bc_8b9e75cfc0edeac8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 807 1 0 "7665963b_aa9b_4a3c_ba522887f3b15ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 808 1 0 "8327c869_96c0_4394_9bf4c5b5c19f30d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 809 1 0 "5a5455ae_5598_4a29_8c5f621b0586ba79" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 810 1 0 "f534cbac_4de3_4425_85299c07c6ff73cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 811 1 0 "12b0cc6a_4826_48ce_82c690ddf98441a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 812 1 0 "aee63add_2789_4971_b4867510d938caf6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 813 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 814 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 815 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 816 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Charge_Parameters") { // }} "" // {{{ 817 1 0 "5e24703a_30cb_4538_aec7ba85b7c0d2a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 818 1 0 "31630603_a72b_4d8b_a21a501f5336c619" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Charge"), Charge); // }} "" // {{{ 819 1 0 "41b8aa8b_7d8e_4351_ad9664e334fa00f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AutoCharge"), AutoCharge); // }} "" // {{{ 820 1 0 "504d0d26_95ad_4181_a7c38162018496cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("AutoChargeLevel"), AutoChargeLevel); // }} "" // {{{ 821 1 0 "576ecb10_c479_461f_9249f554f27e398b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn); // }} "" // {{{ 822 1 0 "80503782_9e9a_4986_9e4bcdeac598c749" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Charge Parameters"), o_stepReturn); // }} "" // {{{ 823 1 0 "ade249f5_6aa1_4939_90a22e6af0864e5e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 824 1 0 "4fb997db_4cdf_4b51_85bbb23941f19edb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 825 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 826 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 827 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 828 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Probe_Replacement_Date") { // }} "" // {{{ 829 1 0 "eb0a7cc0_c83a_45a8_8bd6adbf05cadabe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 830 1 0 "c762429d_3619_4e70_9765fe207dab3d54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Probe"), Probe); // }} "" // {{{ 831 1 0 "18bf75b8_9aa3_46d2_a3ad3bbab8c1e126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 832 1 0 "2b2bbaed_84c1_46d2_bd024b425aefa336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 833 1 0 "380453f0_b3e8_47ac_a06eb91552b3a11f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 834 1 0 "a8fcf799_ec41_4160_910a9c78e5395ae2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn); // }} "" // {{{ 835 1 0 "c95c2987_8098_48ed_9ad284801d556587" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Probe Replacement Date"), o_stepReturn); // }} "" // {{{ 836 1 0 "4e986dcc_ee8e_4cc0_bb83628d0a0ec284" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 837 1 0 "d46fb139_6c48_4f2a_b09293a8a3509a12" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 838 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 839 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 840 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 841 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Shutdown") { // }} "" // {{{ 842 1 0 "aec40299_6cef_4e16_ad88bccbdcae3b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 843 1 0 "c7715d80_e089_40ea_86fe6a446a2c9378" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Mode"), Mode); // }} "" // {{{ 844 1 0 "212772c6_0ff7_41ef_9c35fb5828034d90" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn); // }} "" // {{{ 845 1 0 "82055c44_b706_4c16_99b47c2a4ae600e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Shutdown"), o_stepReturn); // }} "" // {{{ 846 1 0 "d76b0e51_c107_49cd_b6bcd25c44e4d066" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 847 1 0 "fbbaa73a_fa45_446d_8052e6e618fd2fad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 848 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 849 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 850 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 851 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Technical_Data") { // }} "" // {{{ 852 1 0 "d6a005e1_4502_49d8_9a510afa4a2e833e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 853 1 0 "5ad112b0_da19_4b1b_a4649033defa7fef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 854 1 0 "f4094e68_7940_4706_bae95f6277784476" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PartNumber"), PartNumber); // }} "" // {{{ 855 1 0 "2b53f199_42d1_4808_a128c8ef4354e216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Revision"), Revision); // }} "" // {{{ 856 1 0 "b5bf6715_e2e6_4e19_ad453dbb18396d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SerialNumber"), SerialNumber); // }} "" // {{{ 857 1 0 "8cd5ff7f_9cb8_4f34_8afeb35175b47032" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 858 1 0 "b60d9996_aa66_483d_b61518ffca638e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Technical Data"), o_stepReturn); // }} "" // {{{ 859 1 0 "164f5289_e710_44eb_a1ea51e1622a7813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 860 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 861 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 862 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 863 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Trace_Level") { // }} "" // {{{ 864 1 0 "dd6ba7d4_f5cc_4725_9776848c6e8343cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 865 1 0 "5a2c7ac9_8800_4926_96f26337aee59504" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 866 1 0 "88c51a62_4453_4cf5_ba0682a2cb1da767" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 867 1 0 "159aeb3e_3ed4_4ddc_a11cdfd939a7db7d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Trace Level"), o_stepReturn); // }} "" // {{{ 868 1 0 "c3a5cc94_f346_4d04_a4be1fd04efbccc1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 869 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 870 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 871 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 872 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Sleep") { // }} "" // {{{ 873 1 0 "153dc01b_be4b_403a_a40226aa4778c709" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 874 1 0 "a6f7384c_4c2e_4b3b_9682c00fb7a2f978" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn); // }} "" // {{{ 875 1 0 "e82cf943_58b3_463e_a86afb9882353228" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Sleep"), o_stepReturn); // }} "" // {{{ 876 1 0 "636ca48b_8789_40cc_8fb4dc35e8cbab54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 877 1 0 "5fb5b228_5342_414d_a548ac8dd5add837" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 878 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 879 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 880 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 881 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Terminate") { // }} "" // {{{ 882 1 0 "b53cd271_035b_4870_961c552983b39351" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 883 1 0 "e133d234_4ccd_44cb_810d29742ee9f40e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn); // }} "" // {{{ 884 1 0 "eb5a9614_5d18_44cd_83190a1d8eec2a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 885 1 0 "81b91833_cb16_43c5_a8935f9701536560" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 886 1 0 "add7dd5e_87e4_4ec1_a7b552234adc5d9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 887 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 888 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 889 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 890 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Wakeup") { // }} "" // {{{ 891 1 0 "6b1d97c0_debd_402e_8c064a5c1fe48aca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 892 1 0 "09ffa3b4_530e_444f_943e5302e37f3fe0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn); // }} "" // {{{ 893 1 0 "0d420182_40e4_43a8_872c5c81f7efa6d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 894 1 0 "f7bb0b0b_d222_43a7_b1b1236ab60e2847" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 895 1 0 "12251a91_a4ec_4a01_b041b503e2eef836" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 896 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 897 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 898 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 899 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Initialize") { // }} "" // {{{ 900 1 0 "10713a72_dce4_482a_ad1d6d8db7bd210a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 901 1 0 "21f38719_99e7_4de4_bc16b312b6f57977" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 902 1 0 "75ac7c86_e474_45bc_8551fc9e302de4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 903 1 0 "509760aa_ef16_454d_89cc23c0745d3c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 904 1 0 "19e515a1_705c_45eb_b80e75767541c91a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 905 1 0 "a042f65b_875f_4b52_999c836815c84a6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 906 1 0 "f5fd2c44_2160_43fa_be88382bc9e0ff0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 907 1 0 "f2c8bfd1_3d33_4a00_84852ffbabef7b28" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 908 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 909 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 910 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 911 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Set_Trace") { // }} "" // {{{ 912 1 0 "0029313d_525e_46ea_916912b33902e1eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 913 1 0 "ed79bcac_71ff_48ee_b968407f0dbdf4ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 914 1 0 "80f14967_56f1_4b78_9a3c9965460a9589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 915 1 0 "b3fdfb36_4bb4_4086_a19b5402f53fdd94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 916 1 0 "53206fbc_1492_4583_a2789c8083e49b46" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 917 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 918 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 919 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 920 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Wash") { // }} "" // {{{ 921 1 0 "32bfd9a6_1ebc_4ca0_81e034f81d1af760" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 922 1 0 "a9208608_0099_4d5f_800d72adf563b9e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CycleNumber"), CycleNumber); // }} "" // {{{ 923 1 0 "738f88ca_6ad7_4598_b1e4a3e1ccefcace" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn); // }} "" // {{{ 924 1 0 "d009e19d_0560_4f89_b0f58bafa778b71b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Wash"), o_stepReturn); // }} "" // {{{ 925 1 0 "49cdc51c_08eb_424b_920d3dcb647b2559" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 926 1 0 "2624b5a6_7428_4e88_a9b7fee8a8001e65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 927 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 928 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 929 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 930 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Terminate") { // }} "" // {{{ 931 1 0 "e8e2fec9_d562_4524_b5d29880876bd109" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 932 1 0 "ad418c06_88fd_4649_9745bc00694fa53a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 933 1 0 "e8437e3c_0153_4bc0_86236a2e9849e22a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Terminate"), o_stepReturn); // }} "" // {{{ 934 1 0 "32e4b0bc_48e5_4770_81a0113fdff8118a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 935 1 0 "c81e886b_51ec_42be_b2c989057781a5b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 936 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 937 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 938 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 939 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Initialize") { // }} "" // {{{ 940 1 0 "b41d8294_bc5c_4346_999860e0f4cc913e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 941 1 0 "102abd73_15bb_472b_a1008b4eda35637e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 942 1 0 "58389380_f098_4c71_b61c0954f797753b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 943 1 0 "2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 944 1 0 "d95cbdf3_6278_437b_91525392a70e5356" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 945 1 0 "d35fefc8_f758_41da_a6073532f75cf092" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Initialize"), o_stepReturn); // }} "" // {{{ 946 1 0 "e1deec6e_fc66_45bd_93821e20a78853fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 947 1 0 "01bdb50d_0f38_40e2_8993f814ea652b66" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 948 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 949 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 950 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 951 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Set_Trace") { // }} "" // {{{ 952 1 0 "f7fc7449_63b2_4e8b_8d0eaf3f931e834d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 953 1 0 "ef77cea9_ef26_4525_bea967ec7f086b88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 954 1 0 "24784b11_b6f4_461e_b526cbbb677864ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 955 1 0 "d5ebe375_f7dd_45c2_b3e242a8edf4f175" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Dryer Trace Level"), o_stepReturn); // }} "" // {{{ 956 1 0 "f61751e3_57be_4b1d_b8a1d370a4c1773c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 957 1 0 "d216caef_1c5d_4f05_8252d1a77df45535" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 958 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 959 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 960 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 961 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Start_Drying") { // }} "" // {{{ 962 1 0 "45561f8e_cd7f_49d8_a8720b2ff7d0d932" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 963 1 0 "ecdddf7a_3c99_4f99_97b658f94a62554c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 964 1 0 "5a6daec0_a404_4a0a_ad9d88de43ac46c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Start Drying"), o_stepReturn); // }} "" // {{{ 965 1 0 "e7173a44_d349_4ba2_8993647fbcd2eb1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 966 1 0 "17e3434b_dfff_457b_9aba0c22e9206cc7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 967 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 968 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 969 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 970 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Stop_Drying") { // }} "" // {{{ 971 1 0 "f3eac478_54bb_4350_8c1811bf2ede8424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 972 1 0 "37262733_33d0_4723_94687e68249d1300" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 973 1 0 "6feb871c_61be_4812_a421af32d75f9871" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Stop Drying"), o_stepReturn); // }} "" // {{{ 974 1 0 "2ba59e68_8358_4b86_a9108519bff6d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 975 1 0 "cbfcb2cb_00c9_445f_a28af2b6553efc31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 976 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 977 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 978 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 979 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Terminate") { // }} "" // {{{ 980 1 0 "66453f41_07b7_4fd4_b2177e4994606836" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 981 1 0 "a5808bbd_63b3_4fc2_894ab4d4eb00b93d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID); // }} "" // {{{ 982 1 0 "f844d13f_ecdb_465a_b0300a4976c0d809" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 983 1 0 "a28255b3_86ff_4928_abf87a7c3f930142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 984 1 0 "7e539911_cdda_4242_a337d58eba44508c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 985 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 986 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 987 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 988 1 0 "c254f141_56e5_4dd6_867413cd84657042" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 989 1 0 "a5a0a6fa_f020_4f0c_892b14922a8a43d0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 990 1 0 "87bcb443_ba4e_4831_b6d85d5676ceae1f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Abort") { // }} "" // {{{ 991 1 0 "32d200eb_0ae6_409a_a27f1bd9e350adc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 992 1 0 "60937dfd_fa84_49e4_a6330092ff42006c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 993 1 0 "83aa31af_13e9_48fa_86a3688beb3a1be8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::Abort(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 994 1 0 "7094499b_8677_4e4c_acf20a22a53d4c8e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Abort"), o_stepReturn); // }} "" // {{{ 995 1 0 "37a6eb15_6c8d_473f_b9dffab95f789ac5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeviceID = StrIStr(DeviceID); // }} "" // {{{ 996 1 0 "ed56f986_bb0e_4e3d_b4d7300a7eeb0b58" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 997 1 0 "e98e447d_05f0_430c_afd0ba887aca6b76" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(""), id); // }} "" // {{ 998 1 0 "87bcb443_ba4e_4831_b6d85d5676ceae1f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 999 1 0 "a5a0a6fa_f020_4f0c_892b14922a8a43d0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1000 1 0 "ced572f9_f877_4613_993ac898da106542" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1001 1 0 "03a935ee_2760_4356_bd8073e8de6b173b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_CloseDoor") { // }} "" // {{{ 1002 1 0 "6a66458b_03aa_4556_a7119c29debe4db5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1003 1 0 "8835ccf5_7cde_492a_9d03a87f66212529" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1004 1 0 "52be61c1_07d8_46d7_971799c333aa010a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::CloseDoor(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 1005 1 0 "6051ed5f_5327_408e_ab4e4006ce62d8ba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Close Door"), o_stepReturn); // }} "" // {{{ 1006 1 0 "e77e745c_0fd9_4817_9c991dc6c147e97c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SiLAReturnValue = StrIStr(SiLAReturnValue); // }} "" // {{{ 1007 1 0 "6a920b48_4355_48b6_9fee746e310180ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1008 1 0 "f607e257_0faa_41ba_953a4eff67bb8a51" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(""), id); // }} "" // {{ 1009 1 0 "03a935ee_2760_4356_bd8073e8de6b173b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1010 1 0 "ced572f9_f877_4613_993ac898da106542" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1011 1 0 "5a50aa8a_9b8a_4c05_a38ab1ac0ea2f7c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1012 1 0 "83d25d49_d146_4249_9f0335e6f838ddb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Connect") { // }} "" // {{{ 1013 1 0 "ea96e218_a676_4c43_8187dccb61fdcfad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LocalIP"), LocalIP); // }} "" // {{{ 1014 1 0 "9f39afff_baf8_4c02_90919e91b050d9b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("DeviceIP"), DeviceIP); // }} "" // {{{ 1015 1 0 "ac76b36c_ea11_4135_b099c4da1dd83d48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("DevicePort"), DevicePort); // }} "" // {{{ 1016 1 0 "217e9a1b_a533_42fd_909df59d5d25c92a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1017 1 0 "47c48ac4_65f4_4ac5_9c5d4ff87e80792d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::Connect(LocalIP, DeviceIP, DevicePort, SimulationMode, DeviceID, Message, o_stepReturn); // }} "" // {{{ 1018 1 0 "44b7be8c_cda6_44d7_9a3512b3014b5aaa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Connect"), o_stepReturn); // }} "" // {{{ 1019 1 0 "988ae1b5_28c3_4982_a500bf7ceebf13f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Connect"), Message); // }} "" // {{{ 1020 1 0 "4806a116_031e_444f_bcf99da98fc2aa03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeviceID = StrIStr(DeviceID); // }} "" // {{{ 1021 1 0 "ecb51768_e47b_48e1_a68b612754c89d2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1022 1 0 "1045876f_9227_42d4_8f284b4615f7bd52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Message, Translate(""), id); // }} "" // {{ 1023 1 0 "83d25d49_d146_4249_9f0335e6f838ddb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1024 1 0 "5a50aa8a_9b8a_4c05_a38ab1ac0ea2f7c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1025 1 0 "170cad08_e039_423f_89bd02bf1417c189" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1026 1 0 "f37a1dca_bc87_4a1a_b736b41bf3acacbb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_DownloadProtocol") { // }} "" // {{{ 1027 1 0 "40cbc2ca_86a5_4676_8bcc39a2f6f075f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1028 1 0 "ca78a1d6_10a8_4411_8b063849d86a765f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1029 1 0 "2a2898df_3962_48ea_872e3cb37c538f1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ProtocolFile"), ProtocolFile); // }} "" // {{{ 1030 1 0 "61926133_1a9a_4ae7_919d1c60533131c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::DownloadProtocol(DeviceID, LockID, ProtocolFile, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 1031 1 0 "63ab11b5_28c5_4f1d_a7a32d8e3ec48cb1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Download Protocol"), o_stepReturn); // }} "" // {{{ 1032 1 0 "8ec284ea_82fb_4835_a7371e261781305c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SiLAReturnValue = StrIStr(SiLAReturnValue); // }} "" // {{{ 1033 1 0 "fd4faeae_7ccf_4aa6_a8abbca7275971c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1034 1 0 "8656e596_fb43_4c25_81f91e4348204c13" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(""), id); // }} "" // {{ 1035 1 0 "f37a1dca_bc87_4a1a_b736b41bf3acacbb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1036 1 0 "170cad08_e039_423f_89bd02bf1417c189" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1037 1 0 "95be4335_330f_498d_9cbb97fc242dae19" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1038 1 0 "f8b53e0a_3303_4063_8c4b05c22b482521" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_EvaluateError") { // }} "" // {{{ 1039 1 0 "e360752c_31f7_4bfc_85305c84dc5f7546" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ErrorCode"), ErrorCode); // }} "" // {{{ 1040 1 0 "0b3b8a56_af82_4264_b0c16517d839ebe4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::EvaluateError(ErrorCode, ErrorMessage, o_stepReturn); // }} "" // {{{ 1041 1 0 "639398d5_46e9_473e_b535a1b1e05aaf2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Evaluate Error"), o_stepReturn); // }} "" // {{{ 1042 1 0 "53eec77c_8020_45cb_a87b12aa6861c3ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1043 1 0 "7e52272f_d6bd_42c0_aaec9e3104211d0b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ErrorMessage, Translate(""), Translate(""), id); // }} "" // {{ 1044 1 0 "f8b53e0a_3303_4063_8c4b05c22b482521" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1045 1 0 "95be4335_330f_498d_9cbb97fc242dae19" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1046 1 0 "7df278e6_a78b_42de_82fff06047d78c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1047 1 0 "7072fce7_707a_4f05_873c2b04e45efaa5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_ExecuteMethod") { // }} "" // {{{ 1048 1 0 "8747e547_373a_456a_b7c45f3fe0fa4962" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1049 1 0 "6ed86f44_9a40_4aec_a24da2c3e14c5cfc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1050 1 0 "c95214ca_8dc7_4e36_b861cd3cb7e88fce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("MethodName"), MethodName); // }} "" // {{{ 1051 1 0 "6354dcdf_bc96_4f43_8e24d16a07ef73a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Priority"), Priority); // }} "" // {{{ 1052 1 0 "f9e2fc96_8719_4db6_961a737c70234591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::ExecuteMethod(DeviceID, LockID, MethodName, Priority, Duration, RequestID, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 1053 1 0 "8eedb12b_8149_4adb_b4a36b25cb56997c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Download Protocol"), o_stepReturn); // }} "" // {{{ 1054 1 0 "2f5e22f5_6e53_4423_b3c5dcff878744ab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" RequestID = StrIStr(RequestID); // }} "" // {{{ 1055 1 0 "af3ce5c4_f396_4686_af8c35c3b1896cbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Duration = StrIStr(Duration); // }} "" // {{{ 1056 1 0 "56cb4cd9_4ad1_4fe3_938eb0863af7c9cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SiLAReturnValue = StrIStr(SiLAReturnValue); // }} "" // {{{ 1057 1 0 "42f6ed5e_78f5_47a7_80c65ef13fa2e465" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1058 1 0 "27d4d016_fe70_40d9_af54cd49911a2e7e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, Duration, RequestID, id); // }} "" // {{ 1059 1 0 "7072fce7_707a_4f05_873c2b04e45efaa5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1060 1 0 "7df278e6_a78b_42de_82fff06047d78c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1061 1 0 "fe8ceaf6_1a4c_4c99_810b07e636105fa8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1062 1 0 "f8f85888_8577_4a10_b97ab15879e1b18f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_OpenDoor") { // }} "" // {{{ 1063 1 0 "3f5cc39f_b933_4665_a725e5d720270a1b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1064 1 0 "32818a09_3083_4b68_be177e73ea51bf2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1065 1 0 "ca47ad1d_7179_4e19_86fd05211f0416ec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::OpenDoor(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 1066 1 0 "721b0fe9_6b70_412e_b6184c3698366299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Open Door"), o_stepReturn); // }} "" // {{{ 1067 1 0 "b0647e1f_7f95_4f56_832807c0437add1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SiLAReturnValue = StrIStr(SiLAReturnValue); // }} "" // {{{ 1068 1 0 "071ab0f7_cca9_424c_a4c8b816b1e1a01d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1069 1 0 "8d79ee78_725d_4b1c_8da948ede755b62e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(""), id); // }} "" // {{ 1070 1 0 "f8f85888_8577_4a10_b97ab15879e1b18f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1071 1 0 "fe8ceaf6_1a4c_4c99_810b07e636105fa8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1072 1 0 "3c16909b_f92f_4869_be09f5ef2fb55e11" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1073 1 0 "3c157612_f55a_40ee_b823fe12e24332f4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Initialize") { // }} "" // {{{ 1074 1 0 "a152ec6a_17c0_4ab7_9d87710d8577b2f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1075 1 0 "1a35d7ba_f083_47be_92136e57f9ed3912" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1076 1 0 "3e352ec2_6234_4391_90eb2accc24b087c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::Initialize(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 1077 1 0 "42735754_1a4d_4010_a30f4c85204e159a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Open Door"), o_stepReturn); // }} "" // {{{ 1078 1 0 "5f865b77_d620_4d27_b1b98c39e384ad41" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SiLAReturnValue = StrIStr(SiLAReturnValue); // }} "" // {{{ 1079 1 0 "67cb5e45_ee7c_4838_b49f2f3f1f1757c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1080 1 0 "a9ef6ddb_28b3_420e_a501b6911c3a2769" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(""), id); // }} "" // {{ 1081 1 0 "3c157612_f55a_40ee_b823fe12e24332f4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1082 1 0 "3c16909b_f92f_4869_be09f5ef2fb55e11" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1083 1 0 "2918af2a_a130_45ea_b188aa281e864ea8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1084 1 0 "bf6ddca4_4a60_4455_8397f87f4d24b725" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_ReadActualTemperature") { // }} "" // {{{ 1085 1 0 "e6bea63f_c17b_410d_9822608c8267f985" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1086 1 0 "edacec9c_28b9_474f_b1558fa726ec2132" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1087 1 0 "7fd71047_b3fb_46f5_b5c9f44caec9dd8b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::ReadActualTemperature(DeviceID, LockID, SiLAReturnValue, SiLAMessage, ActualTemperatures, ActualTemperatureNames, Time, o_stepReturn); // }} "" // {{{ 1088 1 0 "2c27785b_ea35_4934_b654a42db98c118e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Read Temperature"), o_stepReturn); // }} "" // {{{ 1089 1 0 "4875b702_70e3_4f15_a162e186bb3e9c6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SiLAReturnValue = StrIStr(SiLAReturnValue); // }} "" // {{{ 1090 1 0 "2d1e6390_eb2e_42e2_848902a0a274a03f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(ActualTemperatures, str_ActualTemperatures); // }} "" // {{{ 1091 1 0 "120c6294_947e_4b65_b7dd22db08edad17" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(ActualTemperatureNames, str_ActualTemperatureNames); // }} "" // {{{ 1092 1 0 "7ba7e642_228e_4c42_91a540016b1ecb80" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1093 1 0 "89ab9aa6_c667_4fb4_9331cfc5de16392a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, str_ActualTemperatures, str_ActualTemperatureNames, SiLAReturnValue, id); // }} "" // {{ 1094 1 0 "bf6ddca4_4a60_4455_8397f87f4d24b725" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1095 1 0 "2918af2a_a130_45ea_b188aa281e864ea8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1096 1 0 "32f8d0ae_5127_4186_8dbecc8f7061190f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1097 1 0 "25b084db_1bed_428b_81ed9dbd2e6b4b60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Reset") { // }} "" // {{{ 1098 1 0 "54770d0a_c4d8_4bf5_923ea37b0a7bb99a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1099 1 0 "055ec305_2f32_4ed5_931e842d3f3dc35b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1100 1 0 "c8ec64df_4c79_4d3c_a7ebf0843fb669dd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TimeToWait"), TimeToWait); // }} "" // {{{ 1101 1 0 "7de11167_b4a1_4c1d_b459187603f47406" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1102 1 0 "c5acc94b_7623_41cc_8be567f94d4ef391" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("strDeviceID"), strDeviceID); // }} "" // {{{ 1103 1 0 "270c90b6_e23e_41ab_89787ba6b70e15e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("PMSID"), PMSID); // }} "" // {{{ 1104 1 0 "ce22a8c7_2622_4d15_a255b99991b3a19f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::Reset(DeviceID, LockID, SiLAReturnValue, SiLAMessage, SimulationMode, TimeToWait, strDeviceID, PMSID, o_stepReturn); // }} "" // {{{ 1105 1 0 "5f5f4ac1_af5a_4f5a_83d0452099476350" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Reset"), o_stepReturn); // }} "" // {{{ 1106 1 0 "91142402_f680_4164_b2867f68a77f19f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SiLAReturnValue = StrIStr(SiLAReturnValue); // }} "" // {{{ 1107 1 0 "65a340a5_cfe4_49e4_ae15c8fa6f9ca3a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Message = StrIStr(Message); // }} "" // {{{ 1108 1 0 "85ff8a84_cc36_4e57_ace1facda0037584" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1109 1 0 "7f85d4fa_6d5f_4c6c_9c6a0c94995fdfa4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(""), id); // }} "" // {{ 1110 1 0 "25b084db_1bed_428b_81ed9dbd2e6b4b60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1111 1 0 "32f8d0ae_5127_4186_8dbecc8f7061190f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1112 1 0 "51f7ba64_eb3d_4919_840a54f9d890fae8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1113 1 0 "9eceba50_29ae_4c59_a6858f927aa63220" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_GetStatus") { // }} "" // {{{ 1114 1 0 "17e9eb5a_0890_4852_aa7203ed60c2e6fe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1115 1 0 "af491f4d_08dd_4266_988323b19ab4ae21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::GetStatus(DeviceID, strDeviceID, State, Locked, PMS_ID, Current_Time, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 1116 1 0 "eb379091_0ce2_4b58_b2de3803b8b7e4a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Open Door"), o_stepReturn); // }} "" // {{{ 1117 1 0 "f1d81878_8b71_4ddb_bd170dbc47b258ab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Open Door"), strDeviceID); // }} "" // {{{ 1118 1 0 "1ed775c8_e152_473f_afb053901f12f27e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Open Door"), Current_Time); // }} "" // {{{ 1119 1 0 "b6854df9_0048_4379_a45d9c10b1a2e081" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1120 1 0 "7af5f5b4_66aa_4f36_9a95228efbc14b6c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1); // }} "" // {{{ 1121 1 0 "a387c327_bc68_4b7e_b755032527737c0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2); // }} "" // {{{ 1122 1 0 "316cbd48_dd20_4cbb_83337a0d9debd8a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3); // }} "" // {{{ 1123 1 0 "b8697a57_1081_4c31_a98e091e392113f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4); // }} "" // {{{ 1124 1 0 "12f1a9d8_74ca_410c_9253620d011e9bf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, strDeviceID, State, Locked, PMS_ID, Current_Time, SiLAReturnValue, SiLAMessage, Translate(""), id); // }} "" // {{ 1125 1 0 "9eceba50_29ae_4c59_a6858f927aa63220" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1126 1 0 "51f7ba64_eb3d_4919_840a54f9d890fae8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1127 1 0 "45adfa7a_43f6_4879_94eecbbc7cd6241e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1128 1 0 "c7a1be4c_8922_45fe_a8d03b329ad39a3d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Terminate") { // }} "" // {{{ 1129 1 0 "5679fc2a_b149_4156_afe65b4260835f63" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1130 1 0 "492d5009_7311_49b9_88d37e5272f71a3a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::Terminate(DeviceID, SiLAMessage, o_stepReturn); // }} "" // {{{ 1131 1 0 "cde37514_c4cf_4ee2_94144ec6f2d8a602" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Open Door"), o_stepReturn); // }} "" // {{{ 1132 1 0 "7437d0c9_d030_4bc3_9892e6e67143d3a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1133 1 0 "56d42bd9_d271_4178_b988201f9be09dc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAMessage, Translate(""), Translate(""), id); // }} "" // {{ 1134 1 0 "c7a1be4c_8922_45fe_a8d03b329ad39a3d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1135 1 0 "45adfa7a_43f6_4879_94eecbbc7cd6241e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1136 1 0 "b0f57e64_345a_446f_b484b3f98342b5b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1137 1 0 "d2d87d10_3538_4cfe_b99e9ea2160e3e76" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Terminate") { // }} "" // {{{ 1138 1 0 "b69581df_cb8d_4fe3_b91fbd7c6912cd84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1139 1 0 "6ae4f976_589c_4784_b354c7814e6dcde1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::GetLastData(DeviceID, LockID, Result, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 1140 1 0 "8be17100_32fe_4ad7_9002b94bcf924f42" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Open Door"), o_stepReturn); // }} "" // {{{ 1141 1 0 "69fe485b_5659_4f59_b5fdb0f4567a92a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1142 1 0 "b8d08077_08c9_4f6d_bcc7f858d26788e4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAMessage, Translate(""), Translate(""), id); // }} "" // {{ 1143 1 0 "d2d87d10_3538_4cfe_b99e9ea2160e3e76" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1144 1 0 "b0f57e64_345a_446f_b484b3f98342b5b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1145 1 0 "c254f141_56e5_4dd6_867413cd84657042" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1146 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1147 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Initialize") { // }} "" // {{{ 1148 1 0 "5efffd73_f295_4d3c_aacd37c74d2bc015" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ComPort"), Comport); // }} "" // {{{ 1149 1 0 "cc8f22a1_0ae7_40ee_82d2e071b7344cf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn); // }} "" // {{{ 1150 1 0 "b6f33534_c173_4c6c_820d96a48fa50a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Barcode initialize:"), o_stepReturn); // }} "" // {{{ 1151 1 0 "138ad752_fbd8_457e_948dd436ddb65822" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1152 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1153 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Read") { // }} "" // {{{ 1154 1 0 "0b3c261e_a906_4464_b0e5caa3ec640056" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Read(barcode); // }} "" // {{{ 1155 1 0 "98aadc47_a5a2_433d_84530ad050155ccd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("BarcodeReader_Read"), barcode); // }} "" // {{{ 1156 1 0 "e3fc85ee_a6d7_4d98_a3f9076b947565cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, barcode, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1157 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1158 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1159 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1160 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1161 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_BeginMonitoring") { // }} "" // {{{ 1162 1 0 "7dd862dc_f7f1_4600_94ca9b83762673dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1163 1 0 "d37d14e5_261f_418c_81f754eb75bf4920" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingToleranceRange"), shakingToleranceRange); // }} "" // {{{ 1164 1 0 "0919ceb3_189a_4885_93c8faeab9f9538b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sampleInterval"), sampleInterval); // }} "" // {{{ 1165 1 0 "bc3a749e_e1bb_4c4a_9aac06834d85080f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("action"), action); // }} "" // {{ 1166 1 0 "98795c5d_e3e5_4d8c_bba032968c530136" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1167 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ; err.Clear(); // }} "" // {{{ 1168 1 0 "a2a0a3bb_c0cf_4123_afe36d1d51ae233c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action); // }} "" // {{ 1169 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3202FD4CC34D478f892F31C7684340BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1170 1 0 "435e7414_9170_4bf9_bd0ac83f0ab51fad" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1171 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1172 1 0 "c00b8635_652d_48ca_8d345ed070306b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1173 1 0 "85ac1487_5644_4bae_b032f5c191aa47c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1174 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1175 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1176 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1177 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateStarDevice") { // }} "" // {{{ 1178 1 0 "4c3dfdd2_2dd6_4c5f_831f92590c13e82e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1179 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ; err.Clear(); // }} "" // {{{ 1180 1 0 "cc3d4234_12d6_486a_a110c8ede0e3059b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber); // }} "" // {{ 1181 1 0 "f17e82ff_88ef_4685_bf6f75a8ca0e32f6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1182 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1183 1 0 "c0256452_8d47_4f97_9e9c2250a44934d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1184 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1185 1 0 "7699b24c_5ec6_4cca_b1cb9aed9ce60247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1186 1 0 "85155966_9554_40cb_9693f9b0a11b25a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1187 1 0 "d049e779_0761_471d_9f7b8af0967d1633" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1188 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1189 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1190 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1191 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateUSBDevice") { // }} "" // {{{ 1192 1 0 "72f0a762_2550_45ad_bea063f4f72a9fe9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1193 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ; err.Clear(); // }} "" // {{{ 1194 1 0 "0cd1cef0_3091_48c3_b63490d3e80a5b45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber); // }} "" // {{ 1195 1 0 "1823653c_5e02_428a_badd7ca34d3aabf1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1196 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_98100824AA704d26AB40A6BADEF39F48 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1197 1 0 "058f8bb4_5fe3_4a6b_a36e899c2a89656f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1198 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1199 1 0 "a9b4c19d_dcc0_42d7_9a51e3241ef647f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return:"), o_stepReturn); // }} "" // {{{ 1200 1 0 "d303212f_1f38_442d_a24eee709cf4cdc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1201 1 0 "7356ec1e_8437_4679_94613ac2bea4fe0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1202 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1203 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1204 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1205 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_EndMonitoring") { // }} "" // {{{ 1206 1 0 "4293ef15_cfcd_4e29_b9b02afae2d471f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1207 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ; err.Clear(); // }} "" // {{{ 1208 1 0 "96f15f32_4117_4a09_85dceac0fa769b43" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult); // }} "" // {{ 1209 1 0 "9d9a3dcb_ddc9_47c5_a860665377ee3e86" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1210 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1211 1 0 "aabeb82e_70d9_42f7_901f3fe114094e0a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1212 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1213 1 0 "ce89bf49_b865_4c3f_a97eba220b5a7d33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS End Monitoring step return:"), o_stepReturn); // }} "" // {{{ 1214 1 0 "05229af2_f20a_42ce_908ec8445f3f9dd2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(""), Translate(""), id); // }} "" // {{ 1215 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1216 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1217 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1218 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetFirmwareVersion") { // }} "" // {{{ 1219 1 0 "942a1cc2_d956_47fa_9a9ffed1e856a632" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1220 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ; err.Clear(); // }} "" // {{ 1221 1 0 "f6b3cc8e_f852_4a96_9567a4fa67e846e8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1222 1 0 "c70f5e07_0eeb_45e5_af26714895e2df88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion); // }} "" // {{ 1223 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1224 1 0 "96886e69_ba07_45e3_96353112dc429afc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1225 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1226 1 0 "7de3b86c_c16d_4932_beedfb948b5d85f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(""), Translate(""), id); // }} "" // {{ 1227 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1228 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1229 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1230 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetSerialNumber") { // }} "" // {{{ 1231 1 0 "38b7d0d7_7cce_4157_8abc70dfb62eefa5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1232 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ; err.Clear(); // }} "" // {{ 1233 1 0 "08061228_63f2_47d2_a601ba16d6a1a142" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1234 1 0 "0bbfb488_9723_4a08_9b90171dbec6117a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber); // }} "" // {{ 1235 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2434A44DB44B48ff82A9F66DE34C5041 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1236 1 0 "4cf5e7f7_9567_4e6b_a206bf6f8962c785" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1237 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1238 1 0 "311e5a04_1ac3_443c_bdc51c5cdc4c44f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(""), Translate(""), id); // }} "" // {{ 1239 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1240 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1241 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1242 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerParameter") { // }} "" // {{{ 1243 1 0 "f3888a0b_86ea_4c4a_891e1755a6e78556" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1244 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ; err.Clear(); // }} "" // {{ 1245 1 0 "693cec94_9d14_4bff_8e4868a3b27f0245" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1246 1 0 "e993ed67_92ed_4c85_bd33f90aac53dfb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3); // }} "" // {{ 1247 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1248 1 0 "bd4bffe6_9161_4f42_b0b53307549f4286" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1249 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1250 1 0 "6efd49bf_48c7_437b_8fee57487345eaee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1251 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1252 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1253 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1254 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerSpeed") { // }} "" // {{{ 1255 1 0 "e1c29a26_0656_46e3_b0a412143047bd26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1256 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ; err.Clear(); // }} "" // {{ 1257 1 0 "949c257a_0d44_4a50_bb10d9b59e6a02c2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1258 1 0 "d7148e56_7fcc_471d_8c3a7abc2847db7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2); // }} "" // {{ 1259 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1260 1 0 "fb8e630b_9519_4b3d_94eabf1311546383" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1261 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1262 1 0 "41ba2513_e3c2_485c_821198419c3fe286" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1263 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1264 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1265 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1266 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTempParameter") { // }} "" // {{{ 1267 1 0 "09fb30ea_33e9_486d_96945af4798859ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1268 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ; err.Clear(); // }} "" // {{ 1269 1 0 "7e342beb_ebbe_4873_bf53c50f29cbaa0e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1270 1 0 "c8f45788_ef99_414d_a41d29a20583a067" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 1271 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C16E1CF8298042f0A01D1040DC911015 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1272 1 0 "b845f534_5a22_4076_b36069f70af90742" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1273 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1274 1 0 "4793211e_93d2_43e6_b4d25d7e0ae3e104" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 1275 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1276 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1277 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1278 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperature") { // }} "" // {{{ 1279 1 0 "01d1add6_c167_4137_8f0c285cd6ad9bed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1280 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ; err.Clear(); // }} "" // {{ 1281 1 0 "0bd6e3be_da2c_4500_973c9d6eae8e7ae6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1282 1 0 "4187d732_0d13_4590_99fa08572e32e2f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2); // }} "" // {{ 1283 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_14A2AAD200434d69970AC483BD08B64F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1284 1 0 "cabbe1ee_c5d4_49dd_90875673900d6120" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1285 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1286 1 0 "234847f1_2f0a_4e64_856b9edefcebb425" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1287 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1288 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1289 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1290 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperatureState") { // }} "" // {{{ 1291 1 0 "82a233ab_0392_4ebb_9a809d80aae38e44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1292 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ; err.Clear(); // }} "" // {{ 1293 1 0 "5b647db8_f1d6_4deb_9b859eb1dfda063d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1294 1 0 "7f7e0bd7_bea9_474d_92bce5d21da9a2a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2); // }} "" // {{ 1295 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_50485390A50647818ED2D3934FBC87E3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1296 1 0 "f56ee559_1221_4f5a_ad332d0e44502aff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1297 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1298 1 0 "31a69f44_1a59_49ce_a78763f3aa936042" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1299 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1300 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1301 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1302 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SendFirmwareCommand") { // }} "" // {{{ 1303 1 0 "11546c32_6ddd_4250_9b8750c9679e5b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1304 1 0 "06688598_f10e_41e9_8a2c6d3dff7b7aae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), command); // }} "" // {{{ 1305 1 0 "15a58509_ec93_4677_b1858cadeac42d10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("parameter"), parameter); // }} "" // {{ 1306 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ; err.Clear(); // }} "" // {{ 1307 1 0 "ad365bf1_c5e9_4c85_b1b623b20be98474" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1308 1 0 "b63ba349_9a52_43ca_aec17e40c17d231b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter); // }} "" // {{ 1309 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_84EE5E4228B140f599748D1271CBB0F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1310 1 0 "c9bd9645_5a05_4cc6_95997f787c8772d6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1311 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1312 1 0 "8b5634c2_e1da_41d3_83c57142f4cae999" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1313 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1314 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1315 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1316 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetPlateLock") { // }} "" // {{{ 1317 1 0 "927ddf67_5dbd_432b_b8cf6117a3109b06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1318 1 0 "a3eee1ac_7024_473b_a6eb8a2e9b461a66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("plateLock"), plateLock); // }} "" // {{ 1319 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ; err.Clear(); // }} "" // {{ 1320 1 0 "f307f49e_48c2_428e_80c1d57693f85156" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1321 1 0 "27d47e3b_913b_4a0e_bdb50007a0e39d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock); // }} "" // {{ 1322 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1323 1 0 "4eb95522_37fd_4802_af85a620dc874526" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1324 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1325 1 0 "945560ed_40bf_44a9_851fead4c1943f9f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1326 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1327 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1328 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1329 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetShakerParameter") { // }} "" // {{{ 1330 1 0 "8a0e14c1_f6c6_4fb8_94094498cccd7991" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1331 1 0 "1810a83f_3fc2_4c49_9d5502fbdfc743e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingDirection"), shakingDirection); // }} "" // {{{ 1332 1 0 "c3053579_8645_474f_8c05459eed975362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingAccRamp"), shakingAccRamp); // }} "" // {{ 1333 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ; err.Clear(); // }} "" // {{ 1334 1 0 "32b90a07_0607_448d_9767de1d96e31862" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1335 1 0 "77463ac5_e629_4772_98004edef4016a6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp); // }} "" // {{ 1336 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1337 1 0 "5593fd2a_c1e7_4565_bcae82458768dd51" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1338 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1339 1 0 "5ed72ec4_1b60_4258_969b44c995450ec1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1340 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1341 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1342 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1343 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetSimulation") { // }} "" // {{{ 1344 1 0 "941f9e19_ca94_4ede_9719205aeb876593" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{ 1345 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ; err.Clear(); // }} "" // {{ 1346 1 0 "f56567fc_04c1_4645_aee22aa5f22a9f8c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1347 1 0 "41b0c1a2_60aa_4f16_8901c300e9a3dc14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetSimulation(simulate); // }} "" // {{ 1348 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1349 1 0 "35803a11_c620_485a_8196cc2822dddb3f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1350 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1351 1 0 "2e7a9d5f_51df_4c49_bb1986da7e14cd48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1352 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1353 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1354 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1355 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetTempParameter") { // }} "" // {{{ 1356 1 0 "99447b6e_9293_483d_bbd7ddee96870904" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1357 1 0 "f55d7581_a005_45e4_9b3d7f7473323e6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("startTimeout"), startTimeout); // }} "" // {{{ 1358 1 0 "7192db12_8543_4c8b_81b98b57ce21118d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("toleranceRange"), toleranceRange); // }} "" // {{{ 1359 1 0 "8f6d922f_f2ae_43c6_8682df15e6b7c07c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("securityRange"), securityRange); // }} "" // {{ 1360 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ; err.Clear(); // }} "" // {{ 1361 1 0 "a2342046_552f_4003_a1cc262161964a6e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1362 1 0 "57eb738a_6eb2_4f04_b25bd7f7f64a8179" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange); // }} "" // {{ 1363 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1364 1 0 "94c928dd_6dcb_4540_a6cbfdf48e37430c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1365 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1366 1 0 "90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1367 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1368 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1369 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1370 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetUSBTrace") { // }} "" // {{{ 1371 1 0 "0691ecbd_49b4_4590_91d60e614290ec34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("trace"), intTrace); // }} "" // {{ 1372 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ; err.Clear(); // }} "" // {{ 1373 1 0 "aeed4685_8812_4dce_89e2c35429d4c401" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1374 1 0 "24723a79_741b_46be_830fe654c08d6d1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetUSBTrace(intTrace); // }} "" // {{ 1375 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FE6D15E135D24fd7A06908E89474B650 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1376 1 0 "32d09876_dcdb_4d67_b5e72a63e14fec19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1377 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1378 1 0 "cda0d06f_dce0_47ad_bbb419c58aba260e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1379 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1380 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1381 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1382 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShaker") { // }} "" // {{{ 1383 1 0 "503e1c47_5f15_42bd_8eaad1057de68ef6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1384 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ; err.Clear(); // }} "" // {{ 1385 1 0 "dab3ac84_179e_4fd8_9b00ad14f3ef613e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1386 1 0 "7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed); // }} "" // {{ 1387 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1388 1 0 "c35cdd37_7a73_4008_b9d0ac550c926428" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1389 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1390 1 0 "ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1391 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1392 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1393 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1394 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShakerTimed") { // }} "" // {{{ 1395 1 0 "db6b6c2e_da48_4c64_bdddc80ba5a28921" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1396 1 0 "f6f42906_5ded_4a05_8f9a11fac18f7f10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1397 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ; err.Clear(); // }} "" // {{ 1398 1 0 "523b190e_f70f_4a28_b16582e7161b390a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1399 1 0 "428d423d_1825_472f_a3aa303d028d0659" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime); // }} "" // {{ 1400 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1401 1 0 "ef7c31f9_e307_450a_851111f26afd2e91" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1402 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1403 1 0 "d73f1476_bf95_4d48_89849f295a9e4d0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1404 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1405 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1406 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1407 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShaker") { // }} "" // {{{ 1408 1 0 "f958f5a5_d1c5_4e9e_9262e708f24940c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1409 1 0 "2ce1189b_e54a_48c0_aafc2932409c0b9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1410 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ; err.Clear(); // }} "" // {{ 1411 1 0 "e043b61a_b8c5_46d4_9bf331f7566a8911" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1412 1 0 "a302e74e_d752_4ae6_b492a17f601bef41" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed); // }} "" // {{ 1413 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1414 1 0 "9b93a06b_e4df_4eca_84467ca6c7f0c0ce" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1415 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1416 1 0 "4b0b48f9_3855_4eab_8f22b0902846d750" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1417 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1418 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1419 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1420 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShakerTimed") { // }} "" // {{{ 1421 1 0 "858c7861_9fb0_490e_9646b9eb190706d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1422 1 0 "327bd0c6_60a8_4fd1_9ef81e2a21d904a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1423 1 0 "83a6d58d_c761_484f_871c9c2229a6d3d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1424 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ; err.Clear(); // }} "" // {{ 1425 1 0 "10af5b65_9ddd_4a4b_b040d8f5b6e642cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1426 1 0 "22e55b69_c018_47f9_8e3ac169c190d2de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); // }} "" // {{ 1427 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_29447729262E4e0f8B347F6640716D96 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1428 1 0 "f383d799_1d15_4348_8a2dc84422f46ff2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1429 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1430 1 0 "f539df09_de1d_4fd8_9ac041897fab0333" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1431 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1432 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1433 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1434 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartTempCtrl") { // }} "" // {{{ 1435 1 0 "dc338e01_6b43_4fe3_bda98d2b0a1a65e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1436 1 0 "04239a09_93a5_4f75_80f95d178bdf9cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("temperature"), temperature); // }} "" // {{{ 1437 1 0 "0387745b_87be_4ec6_912b0b4decaa257b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("waitForTempReached"), waitForTempReached); // }} "" // {{ 1438 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ; err.Clear(); // }} "" // {{ 1439 1 0 "497404d1_5fea_46f0_9598d8e1c1cb11ed" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1440 1 0 "4ba75dd5_935f_4f2c_a15605eafa47b808" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached); // }} "" // {{ 1441 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_764F491C76DA445383E5490AB126ADB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1442 1 0 "21dd8d34_e764_4a0f_b34ccecf089437dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1443 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1444 1 0 "bfde731d_b581_4488_b4cb7f4873675d7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1445 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1446 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1447 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1448 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopAllShaker") { // }} "" // {{ 1449 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ; err.Clear(); // }} "" // {{ 1450 1 0 "d8b2a327_d63a_46f2_8c273b2eedb8cb34" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1451 1 0 "d112da95_7f27_47a3_9e24bc801bcc9afc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{ 1452 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1453 1 0 "45d1f212_46b9_4976_83503edf5606c88e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1454 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1455 1 0 "5706daca_363f_417f_9103f7ddd16c1444" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1456 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1457 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1458 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1459 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopShaker") { // }} "" // {{{ 1460 1 0 "1cdead0d_9944_446b_bd59d491b15242b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1461 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ; err.Clear(); // }} "" // {{ 1462 1 0 "9d792f4f_4c49_4998_b21fd7f7d6a58fce" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1463 1 0 "b811fcbc_7d95_47c6_9c33e18415810e13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::StopShaker(deviceNumber); // }} "" // {{ 1464 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1465 1 0 "1fe83710_037b_4157_82a99e6aaf08edcb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1466 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1467 1 0 "6ffd1f39_ec63_4f9c_a7687447aff79f80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1468 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1469 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1470 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1471 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopTempCtrl") { // }} "" // {{{ 1472 1 0 "b16ab946_2ba9_4900_bd6f9ede31edf6ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1473 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B5957B02990845739642D8C604B0B582 ; err.Clear(); // }} "" // {{ 1474 1 0 "384c69b8_0ce8_4a27_af0a4060e6f1a01d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1475 1 0 "3a29dc5b_78cc_4ed1_ab9cd631701715e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber); // }} "" // {{ 1476 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B5957B02990845739642D8C604B0B582 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1477 1 0 "28b1d8d1_83cc_4627_9146c7398c601938" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1478 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1479 1 0 "11f3231a_40df_4c14_92585ab8016165e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1480 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1481 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1482 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1483 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_Terminate") { // }} "" // {{ 1484 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ; err.Clear(); // }} "" // {{ 1485 1 0 "b1da178c_1267_4c8c_b1cd24bfa10a11fb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1486 1 0 "910932e3_2b76_41cf_9dccecb799f2d649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::Terminate(); // }} "" // {{ 1487 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_919FCF7F89804c398972DAFE2605D286 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1488 1 0 "697e84e2_525e_4045_83bb3825b36f6b2f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1489 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1490 1 0 "4edde3c1_4f65_4403_a54985d84f6d80f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1491 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1492 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1493 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1494 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForShaker") { // }} "" // {{{ 1495 1 0 "87872be5_4e84_4b7b_98a3e7147a66f6a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1496 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ; err.Clear(); // }} "" // {{ 1497 1 0 "6c68258f_f870_4c46_b358dc4391ced463" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1498 1 0 "2eff956e_28cc_4094_8285d5ed00125a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber); // }} "" // {{ 1499 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1500 1 0 "c08ab14c_3879_4f65_ad7085e45f74a6df" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1501 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1502 1 0 "96b99051_5c80_421c_a02e0bd238da1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1503 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1504 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1505 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1506 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForTempCtrl") { // }} "" // {{{ 1507 1 0 "881e7d69_50e3_4e42_89eafece562ac009" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1508 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ; err.Clear(); // }} "" // {{ 1509 1 0 "f5db2a6b_8286_4195_844af45f48c61d3f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1510 1 0 "421a52eb_128a_4b6b_8baafb6548b66bd8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber); // }} "" // {{ 1511 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_088C7630997A4749A400740DA66CBA0C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1512 1 0 "de7dad67_0b6c_47eb_af5a68302431ff1e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1513 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1514 1 0 "aeb529e0_2eaf_4686_9528342b58318a5d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1515 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1516 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1517 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1518 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1519 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1520 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "CORE96WashEmpty") { // }} "" // {{{ 1521 1 0 "88f95bdd_c2c5_4856_91e5f47f7431bdaf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("refillAfterEmpty"), refillAfterEmpty); // }} "" // {{{ 1522 1 0 "d7a05a26_0b59_478a_a85f308173caf693" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1WashLiquid"), chamber1WashLiquid); // }} "" // {{{ 1523 1 0 "8b1bd108_2b5a_4a2d_ace7b87920eae1b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1LiquidChange"), chamber1LiquidChange); // }} "" // {{{ 1524 1 0 "d651fbf5_a4b8_490b_b869269338ccfcfa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2WashLiquid"), chamber2WashLiquid); // }} "" // {{{ 1525 1 0 "79b1a205_d988_4171_9e1fb28ba362329b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2LiquidChange"), chamber2LiquidChange); // }} "" // {{ 1526 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ; err.Clear(); // }} "" // {{ 1527 1 0 "3fc645b3_f504_4b5e_93481425adf459b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1528 1 0 "123d7b87_745f_4511_a797d08711d13361" "ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}" { variable arrRetValues[]; arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3("123d7b87_745f_4511_a797d08711d13361"); // Head96EmptyWasher } // }} "" // {{ 1529 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EE8804FCDC214a06935DD0F4830020DB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1530 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 1531 1 0 "d3d07dad_de12_4d0c_bd96c7caa06ff3ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1532 1 0 "84732f19_85e4_4b22_8e617b5e1c91f73c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Washer Return: "), o_stepReturn); // }} "" // {{{ 1533 1 0 "dde0a413_b493_4b17_94990d1d5f2e2b2e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1534 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1535 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1536 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1537 1 0 "1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONFromServer); // }} "" // {{ 1538 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1539 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "end") { // }} "" // {{{ 1540 1 0 "6db67a5a_6aa2_4087_875823acfff0fac4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Good Bye!")); // }} "" // {{ 1541 1 0 "4c7e40d6_02a6_451d_b28230ec71e40ce1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1542 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1543 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1544 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1545 1 0 "6fb90145_24c3_46ba_88b839e0215d0bf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{ 2 "AutoExitBlock" "" STAR_OEM_TOOLKIT::_ExitLibrary(); STAR_OEM_TOOLKIT_PH::_ExitLibrary(); STAR_OEM_ODTC::_ExitLibrary(); // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=stefa$$valid=0$$time=2023-01-28 01:33$$checksum=7e318e39$$length=082$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx3D8A.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" private function ArrayToString( variable & i_array[], variable & o_str ) void ; private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ; private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ; private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ; private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void ; function SendTextMessageToServer( variable str ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; private function waitForGUItoContinue( ) variable ; function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 1697 1 0 "c8aa765a_4840_468a_9e928b44fa79d891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{{ 5 "OnAbort" "End" } // }} "" // {{{ 5 "SendTextMessageToServer" "Begin" function SendTextMessageToServer( variable str ) void { // }} "" private object objJSONObject; private variable strJSON; // {{ 5 "SendTextMessageToServer" "InitLocals" // }} "" // {{{ 1665 1 0 "9d5f9d4a_c104_4b47_964b6d97f981a71e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONObject); // }} "" // {{{ 1666 1 0 "d0a04705_1adc_4919_b95168834c89f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("command"), Translate("message")); // }} "" // {{{ 1667 1 0 "7b9a6cd1_3eee_4085_b3f9548e43fc3424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("text"), str); // }} "" // {{{ 1668 1 0 "6a1c53cf_65ea_4f53_aa2e9111890fecf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONObject, strJSON); // }} "" // {{{ 1669 1 0 "bee8c148_b3ea_490b_8d93d8ed5f24939f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONObject); // }} "" // {{{ 1670 1 0 "b965a2fd_f821_4400_b4c777f558ed0772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendTextMessageToServer" "End" } // }} "" // {{{ 5 "waitForGUItoContinue" "Begin" private function waitForGUItoContinue( ) variable { // }} "" private variable loopCounter1; private variable serverResponse; private timer timer1; // {{ 5 "waitForGUItoContinue" "InitLocals" // }} "" // {{ 1678 1 0 "73328607_d06a_4d7d_8a5df64da06a1bde" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" serverResponse = Translate(""); // }} "" // {{{ 1679 1 0 "2342f8b3_4765_4edc_9fb9f46cbb1fd20b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Waiting for server instructions...")); // }} "" // {{{ 1680 1 0 "216e1039_788e_4830_8588933e6c542ba1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Waiting for server instructions...."), Translate("")); // }} "" // {{ 1681 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounter1 = 0; while (1 == 1) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1682 1 0 "5f15547c_3178_4f78_b5fea96f6a1c563b" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.1) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1683 1 0 "cd67277b_4386_4862_8429008a00601693" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 1684 1 0 "6ec592d0_fe02_41a9_8503db5ccf0e5544" "{C1F3C015-47B3-4514-9407-AC2E65043419}" serverResponse = HSLHttp::HttpGET(objHttp, Translate("http://localhost:3221"), Translate("")); // }} "" // {{ 1685 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (serverResponse != "") { // }} "" // {{ 1686 1 0 "b1e2e308_ee78_46d0_8a6832649536045e" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1687 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1688 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 == 300) { // }} "" // {{ 1689 1 0 "19e5c8f7_a1a9_4348_aa41a572942db630" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1690 1 0 "6be46368_bb3e_4ad8_82647d6f52af8c9b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1691 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1692 1 0 "8951a436_faf4_45df_a268dbb7ddb58c29" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.9) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1693 1 0 "52bb524e_27b1_4bbe_afcf26453d9eb66f" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1694 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1695 1 0 "809789b0_bd70_4c1f_b0d808ce120b1d99" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (serverResponse); // }} "" // {{{ 5 "waitForGUItoContinue" "End" } // }} "" // {{{ 5 "SendStepReturnToServer" "Begin" private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer" "InitLocals" // }} "" // {{{ 1636 1 0 "2520bd9f_739d_4111_a27d89f8f73ec39e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 1637 1 0 "aa6010ec_0628_49d5_a87e016b4a4fc7f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 1638 1 0 "a97c5efa_0ce4_4358_9c51c1893f526b9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 1639 1 0 "deceb871_e830_4b14_86e626f745ef083a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 1640 1 0 "00afb5c2_b5db_4458_866a13b6cb332b68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 1641 1 0 "e52bbd02_b31d_4278_a0f45991eab77d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 1642 1 0 "19f99698_3777_4dcf_9fc765c3f221df4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 1643 1 0 "329f8b9b_0798_44f8_9ee6b65ec58b0c44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 1644 1 0 "7728ac0d_8630_4f61_94af076392758ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 1645 1 0 "70d261f2_edc4_49a0_a5a074cd5ab92b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 1646 1 0 "ee0dd62d_582f_4171_b08e37f6106d9b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer" "End" } // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "Begin" private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void { // }} "" private variable n; private variable loopCounter1; private variable strSinglePosition; private variable arrayOfPositions[]; private variable arraySinglePosition[]; private variable labwareID; private variable positionID; // {{ 5 "BuildTempSequenceFromPositions" "InitLocals" { sequence __temp; o_seq = __temp; } // }} "" // {{ 1583 1 0 "d9022e13_e502_4969_a8ee79484e990801" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arrayOfPositions.SetSize(0); // }} "" // {{{ 1584 1 0 "3e178082_8579_435f_a5db4481bb789d9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strPositions, Translate(";"), arrayOfPositions, 0); // }} "" // {{ 1585 1 0 "5d735f26_db1b_4bea_9ee405f4167bb99f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" n=arrayOfPositions.GetSize(); // }} "" // {{{ 1586 1 0 "f497f24b_fd39_417d_8703c0d54662309f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq); // }} "" // {{ 1587 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1588 1 0 "fd645546_0433_46a0_8619026e338529fd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arraySinglePosition.SetSize(0); // }} "" // {{ 1589 1 0 "91aeb0c4_3176_4356_a19a1027bcdb0af3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1); // }} "" // {{{ 1590 1 0 "c2b42369_7829_4c62_b58880fce7867995" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strSinglePosition, Translate(","), arraySinglePosition, 0); // }} "" // {{ 1591 1 0 "016f61c5_fd76_4c74_903df10a03070f7b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" labwareID=arraySinglePosition.GetAt(1-1); // }} "" // {{ 1592 1 0 "886fc872_7c3a_4366_959db6d5f265ed7c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" positionID=arraySinglePosition.GetAt(2-1); // }} "" // {{{ 1593 1 0 "766a54b4_4c5b_4991_9d8ceea62d26b216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq, labwareID, positionID); // }} "" // {{ 1594 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1595 1 0 "0003c6e9_5b43_438d_bc93be342c3c6b55" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq.SetCurrentPosition(1); // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "End" } // }} "" // {{{ 5 "StrTokenize" "Begin" private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 1672 1 0 "500afe4c_98a8_4117_8c279b9994d0b626" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 1673 1 0 "6a0bd918_2fda_4e4c_a680454ce2576168" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 1674 1 0 "f65ed315_68ed_4ec0_ba0b3c217e692b25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 1675 1 0 "9476acee_e5bb_43d1_bbec232ed01bae08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); // Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "Begin" private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void { // }} "" private variable numOfVolumes; private variable numOfChannelsInVariable; private variable n; private variable loopCounter1; private variable arrSize; private variable loopCounter3; private variable strKeyName; // {{ 5 "BuildArrayOfVolumesForChannels" "InitLocals" o_arrayOfVolumes.SetSize( 0); // }} "" // {{ 1557 1 0 "69288f91_eabd_4d15_af5361636ffacbf6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyName = Translate("volumes"); // }} "" // {{ 1558 1 0 "bf4c1108_6751_41ee_8d3d3b1a9418548f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfVolumes.SetSize(0); // }} "" // {{{ 1559 1 0 "a9cfa743_a769_46a3_b8d7e45a67b3d297" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName); // }} "" // {{ 1560 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arrSize > 0) { // }} "" // {{ 1561 1 0 "594bebbb_0d54_4893_b20d783de743dd44" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1562 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < arrSize;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{{ 1563 1 0 "3bfc9004_2595_4917_b4edcdceed06f518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); // }} "" // {{ 1564 1 0 "6be31b23_f55d_4d15_be6abc9ee4bef664" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" Trace("Volume received=", v); // {{ 1566 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1567 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1568 1 0 "4a4891b3_f877_4b14_85196b7e820554b2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1569 1 0 "22c7c768_33c4_4975_909e9586375bfe8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(strKeyName, v); // }} "" // {{ 1570 1 0 "4e01e62a_13a2_408e_9fbfb2300d5996ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 1571 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1572 1 0 "cc565f65_a92a_43ef_9c052b7f5632aca5" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" numOfVolumes=o_arrayOfVolumes.GetSize(); // }} "" // {{{ 1573 1 0 "e49355fb_3fe6_4c8d_930870416e36b708" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numOfChannelsInVariable = StrGetLength(strChannels); // }} "" // {{ 1574 1 0 "804bc477_e950_4a14_af5f667c73cf5176" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1575 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (numOfVolumes < numOfChannelsInVariable) { // }} "" // {{ 1576 1 0 "2e73355c_8b11_4423_b345807cae9d5db8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" n = numOfChannelsInVariable - numOfVolumes; // }} "" // {{ 1577 1 0 "53a650d8_2fc1_4c5b_bd19eda433c2a81a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" v = o_arrayOfVolumes.ElementAt( numOfVolumes -1); // }} "" // {{ 1578 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1579 1 0 "cd047b15_6a02_40f1_adfb116f6bf5d763" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 1580 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1581 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "End" } // }} "" // {{{ 5 "ArrayToString" "Begin" private function ArrayToString( variable & i_array[], variable & o_str ) void { // }} "" private variable arraySize; private variable loopCounter1; // {{ 5 "ArrayToString" "InitLocals" o_str = 0; // }} "" // {{ 1547 1 0 "1a220255_6ba4_40fb_be39a6a2f4e0065f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 1548 1 0 "f821c4ff_f1a2_4ad7_9bd77dd8652567cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str = Translate(""); // }} "" // {{ 1549 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1550 1 0 "afd84a84_8330_46e7_8308e16b5caa05e9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" v=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 1551 1 0 "77436fd3_3c87_4f09_9a89259b15ef5bf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, v); // }} "" // {{ 1552 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 < arraySize) { // }} "" // {{{ 1553 1 0 "d14fd31e_5de8_46f9_bb359f38de9a08ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, Translate(";")); // }} "" // {{ 1554 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1555 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "ArrayToString" "End" } // }} "" // {{{ 5 "JSON_GetFloatValue" "Begin" private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void { // }} "" private variable retVal; // {{ 5 "JSON_GetFloatValue" "InitLocals" o_KeyFloatValue = 0; // }} "" Trace("getfloatvalue"); // {{{ 1598 1 0 "8f2f8625_6c9e_4c47_b4698d29df60004a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" // {{ 1599 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("error getting float value, try with integer"); // {{ 1601 1 0 "5a74df81_6685_4703_8b055144f8d74d45" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1602 1 0 "47bb8c98_9624_40ad_b765abfc6b0d0b49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" Trace("error getting float value, tried with integer"); // {{ 1604 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("wtf ok i guess its zero"); // {{ 1606 1 0 "5b8a3ec6_8ee4_4887_ab7df29fa494cdc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_KeyFloatValue = 0; // }} "" // {{ 1607 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1608 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "JSON_GetFloatValue" "End" } // }} "" // {{{ 5 "SendHHSReturnToServer" "Begin" private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; private variable t_arrayStepReturns[]; private variable loopCounter1; private variable keyName; private variable varType; // {{ 5 "SendHHSReturnToServer" "InitLocals" // }} "" // {{{ 1610 1 0 "6db3f932_ba70_4cf6_9c2a8636580fc754" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 1611 1 0 "3cf8a985_83cc_418e_99293de9d9945d5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("HHS-return")); // }} "" // {{{ 1612 1 0 "705c25bc_6db4_4eb9_b05b33999e110198" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{ 1613 1 0 "5a9efc02_a11a_4c0c_b166e3b28800cc6c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" t_arrayStepReturns.SetSize(0); // }} "" // {{ 1614 1 0 "5aa4f3a8_774f_4f35_ae7fa197ef920048" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn1); // }} "" // {{ 1615 1 0 "00ac351d_bc51_41e5_b300af93d6893fa5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn2); // }} "" // {{ 1616 1 0 "2aaf8702_2d08_48ee_be96815ca77463c9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn3); // }} "" // {{ 1617 1 0 "67fcb56e_9f42_4739_a5ee322f12443a17" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn4); // }} "" // {{ 1618 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < 4;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 1619 1 0 "a23ae2ed_5b02_41a0_a69215d0b80fde4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" keyName = StrConcat2(Translate("step-return"), loopCounter1); // }} "" // {{{ 1620 1 0 "9b92ac94_8c71_4b77_95ac0c691427c4bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" varType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1621 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "s") { // }} "" // {{{ 1622 1 0 "1497ea6a_46ab_4ee8_b7951f24b533e644" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1623 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1624 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "f") { // }} "" // {{{ 1625 1 0 "61772f9e_fea3_4011_bba06b7fe66e8b0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1626 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1627 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "i") { // }} "" // {{{ 1628 1 0 "28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1629 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1630 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1631 1 0 "0a0447b8_96fb_495a_90dfa8f1e2c488ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 1632 1 0 "b2a13d10_b443_4fc0_aa0baa2a23cddafe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 1633 1 0 "0adf40b4_5c73_46d8_8e6042c6dfd32d86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 1634 1 0 "5a5dabeb_e3ed_4730_ab86839e00f75077" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendHHSReturnToServer" "End" } // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "Begin" private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer_EightOutputs" "InitLocals" // }} "" // {{{ 1648 1 0 "a5a7b215_f4cb_4951_82e1faf532cd7222" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 1649 1 0 "9480693e_99ec_4cfd_aa9c8f48e76ee42f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 1650 1 0 "3f068696_35bd_4060_8b291470a817f628" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 1651 1 0 "b68a52fb_e141_4e4c_b5e7bbcbf0c9817f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 1652 1 0 "8ab4a139_9629_43b7_98f13d1058881e4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 1653 1 0 "1417a4bd_aea8_4b36_8a7a05739a789ecf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 1654 1 0 "24b6213e_470e_468a_86dc55b44ff96b95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 1655 1 0 "42403d87_ddb6_4bee_8fc6ad09efb7573a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return5"), stepReturn5); // }} "" // {{{ 1656 1 0 "8493044a_674d_4139_90fa1c7a00050abc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return6"), stepReturn6); // }} "" // {{{ 1657 1 0 "b43cf915_ef0d_4d62_985deae88bcd6c18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return7"), stepReturn7); // }} "" // {{{ 1658 1 0 "584d78fd_87d0_4502_a6d089cfaf888318" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return8"), stepReturn8); // }} "" // {{{ 1659 1 0 "711dbc6f_e5c4_40a0_bef5785dc99707ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return9"), stepReturn9); // }} "" // {{{ 1660 1 0 "47856892_8af4_409f_88723a44ebe61362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 1661 1 0 "e5054174_6f3f_4356_8dc30683be948abe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 1662 1 0 "e21196c3_6b8f_47e5_a2888114650b2ec8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 1663 1 0 "3fec97a3_9f33_4fef_afe5355188bf56d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=stefa$$valid=0$$time=2023-01-28 01:33$$checksum=39f6dc7b$$length=084$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx3D8A.tmp ================================================ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx4005.hsl ================================================ namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HslHamHeaterShakerLib.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "SchedulingDev\\HSLAppsLib.hsl" } namespace _Method { #include "STAR_OEM_toolkit_pH.hs_" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" } namespace _Method { #include "STAR_OEM_toolkit_centrifuge.hs_" } namespace _Method { #include "STAR_OEM_toolkit_MPE.hs_" } namespace _Method { #include "Hamilton pH Module Controller.hs_" } #include "STAR_OEM_Test.res" namespace _Method { #include "Hamilton MPE2\\HSLMPELib.hsl" } namespace _Method { #include "Hamilton Centrifuge\\Hamilton Centrifuge.hsl" } namespace _Method { #include "HSL_LiquidClassLib.hsl" } /* {{ 2 "LibraryInsertLine" "" */ // }} "" variable loopCounterMain; variable msg; object objJSONFromServer; variable commandFromServer; variable initializeAlways; variable o_stepReturn; object objJSONToServer; sequence seq; variable tipSequence; variable sequenceCounting; variable channelVariable; variable channelUse; variable labwarePositions; variable aspirateSequence; variable v; variable arrayOfVolumes[]; variable liquidClass; variable aspirateMode; variable capacitiveLLD; variable pressureLLD; variable liquidFollowing; variable submergeDepth; variable liquidHeight; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable airTransportRetractDist; variable touchOff; variable aspPosAboveTouch; variable o_liquidLevels_mm[]; variable o_liquidLevels_mL[]; variable o_stepReturn2; variable o_stepReturn3; variable dispenseMode; variable dispenseSequence; variable dispPositionAboveTouch; variable zMoveAfterStep; variable sideTouch; variable wasteSequence; variable useDefaultWaste; variable reducedPatternMode; variable aspirateVolume; variable o_stepReturn4; variable dispenseVolume; variable tipEjectToKnownPosition; variable carrierName; variable barcodeFileName; variable barcodeReadPositions; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable lidSequence; variable plateSequence; variable toolSequence; variable transportMode; variable widthBefore; variable gripHeight; variable gripWidth; variable gripSpeed; variable gripperToolChannel; variable checkPlate; variable zSpeed; variable gripForce; sequence lidSeq; sequence toolSeq; variable xAcceleration; variable platePressOnDistance; variable ejectToolWhenFinish; object objHttp; variable blnReturn; variable blnSuccess; variable usedNode; variable deviceNumber; variable action; variable sampleInterval; variable shakingToleranceRange; variable id; variable monitorResult; variable firmwareVersion; variable serialNumber; variable command; variable parameter; variable plateLock; variable shakingAccRamp; variable shakingDirection; variable simulate; variable startTimeout; variable toleranceRange; variable securityRange; variable intTrace; variable shakingSpeed; variable shakingTime; variable temperature; variable waitForTempReached; variable inverseGrip; variable liftUpHeight; variable retractDistance; variable tolerance; variable labwareOrientation; variable movementType; variable collisionControl; variable gripMode; variable showCollisionCheckDialog; //global device HxFan ("STAR_OEM_Test.lay", "HxFan", hslTrue); variable refillAfterEmpty; variable chamber1LiquidChange; variable chamber2WashLiquid; variable chamber1WashLiquid; variable chamber2LiquidChange; variable FirmwareCommand; variable FirmwareParameter; variable CommandListElement; variable CommandListLength; object FirmwareCmdDict; variable yDisplacement; variable zDisplacement; variable xDisplacement; variable yOrigin; variable xOrigin; variable zOrigin; variable ControllerID; variable SimulationMode; variable ErrorCode; variable DeviceID; variable TargetTemperature; variable StopAllDevices; variable TraceLevel; variable Comport; variable Simulate; variable ModuleName; variable Angle; variable inputSequence; variable barcode; variable seqFirstPosition; variable seqSecondPosition; global device ML_STAR ("STAR_OEM_Test.lay", "ML_STAR", hslTrue); variable ModuleID; variable probePattern; variable pH_probe_1; variable pH_probe_2; variable pH_probe_3; variable pH_probe_4; variable Variance; variable Timeout; variable CalibrationLevel; variable CalibrationValue; variable CalibrationTemperature; variable Precision; variable Temperature; variable ChargeCounter; variable ReplacementDate; variable BatteryCondition; variable ActualCharge; variable MeasurementCounter_Probe_1; variable MeasurementCounter_Probe_2; variable MeasurementCounter_Probe_3; variable MeasurementCounter_Probe_4; variable HardwareNumber; variable Revision; variable SerialNumber; variable PartNumber; variable Selector; variable VoltageData; variable Day; variable Year; variable Month; variable Charge; variable AutoCharge; variable AutoChargeLevel; variable Probe; variable Mode; variable ProbeNumber; variable pHHighValue; variable pHHighVoltage; variable pHLowValue; variable pHLowVoltage; variable CalibrationSlopeRatio; variable CalibrationOffset; variable CalibrationSlope; variable CycleNumber; variable NodeName; variable Label; variable AlwaysInitialize; variable intPresentPosition; variable Direction; variable CloseCoverAtEnd; variable ArrSpeed; variable ArrAcceleration; variable ArrDuration; variable i_ArrDuration[]; variable i_ArrAcceleration[]; variable i_ArrSpeed[]; variable Decelleration; variable Speed; variable Acceleration; variable MaxRunTime; variable SpeedSensorTrip; variable TimeLeft; variable GravitySensorTrip; variable CurrentSpeed; variable TemperatureSensorTrip; variable ProfileStatus; variable RotorDriveRunning; variable Deceleration; variable DeviceName; variable AdapterDeviceID; variable InstrumentName; variable PortNumber; variable MPEOptions; variable ComPort; variable BaudRate; variable CollectionPlateHeight; variable OffsetFromNozzles; variable NeedleOffset; variable WellVolume; variable FlowRate; variable SourceID; variable Needleoffset; variable PlateHeight; variable WellDepth; variable EvaporateTime; variable FollowRate; variable EvaporateTravelDistance; variable NozzleHeight; variable FilterHeight; variable WasteContainerID; variable FullReading; variable CapacityVolume; variable CalibrationDate; variable EmptyReading; variable blnReset; variable CurrentGasTemperature; variable Heating; variable CurrentEvaporatorTemperature; variable MinimumGasTemperature; variable MinimumEvaporatorTemperature; variable MaximumEvaporatorTemperature; variable MaximumGasTemperature; variable ManifoldPressureSensor; variable HighPressureSensor; variable InputPressureSensor; variable LowPressureSensor; variable MaximumTemperature; variable MinimumTemperature; variable VacuumActive; variable VacuumRunTime; variable DisableVacuumCheck; variable Smart; variable SensorReading; variable ControlPoints; variable ReturnPlate; variable Volume; variable Seconds; variable DefaultTemperature; variable MeasureTime; variable MeasureHeight; variable CalibrationValue1; variable TempSoln1; variable TempSoln2; variable CalibrationValue2; variable blnCalibrateDynamically; variable CalibrationValueRef; variable TempSolnRef; variable Module; variable Reference; variable Calibration1; variable Calibration2; sequence seqModule; sequence seqCalibration1; sequence seqCalibration2; sequence seqReference; variable CalibrationTime; variable arrCalibrationSlopeRatios[]; variable arrpHValuesReferenceSolution[]; variable CalibrationSlopeRatios; variable pHValuesReferenceSolution; variable BluetoothPort; variable NumDryCycles; variable NumWashCycles; variable DryTime; variable Gripper; sequence seqGripper; variable WashPosition; sequence seqWashPosition; variable DryPosition; sequence seqDryPosition; variable DryCycles; variable TransportChannel; variable WashCycles; variable arrpHValues[]; variable flt_pHValues; variable seqMeasure; variable ProbePattern; variable seqMeasurement; variable MeasurePositions; variable hssErrCode; variable LiqClassParameterName; variable LiqClassParameterValue; variable LiquidClassName; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" STAR_OEM_TOOLKIT::_InitLibrary(); STAR_OEM_TOOLKIT_PH::_InitLibrary(); STAR_OEM_TOOLKIT_CENTRIFUGE::_InitLibrary(); STAR_OEM_TOOLKIT_MPE::_InitLibrary(); HAMILTON_PH_MODULE_CONTROLLER::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{{ 1 1 0 "e7768ad9_4016_4422_bd83f5785d03ceda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnReturn = HSLHttp::Initialize(objHttp); // }} "" // {{ 2 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnReturn != blnSuccess) { // }} "" // {{{ 3 1 0 "62c131b4_44b9_4249_8e0a3205a25b21b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); // }} "" // {{{ 4 1 0 "fb18125e_b294_4554_912c3d447526996e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 5 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 6 1 0 "ee92e29b_e94c_46cf_a67851f3be61c805" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Hi, Im a VENUS method.")); // }} "" // {{ 7 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; // }} "" // {{ 8 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "de417132_351a_4ad8_80c71b1863d4a870" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" commandFromServer = Translate(""); // }} "" // {{ 10 1 0 "d9c97239_3c9d_4992_8fb5820ae5721d90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate(""); // }} "" // {{ 11 1 0 "57da7835_7495_4b16_8b82897289efbd11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn2 = Translate(""); // }} "" // {{ 12 1 0 "cf024fcc_3594_4355_b33f4bd8c8bdfb4e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn3 = Translate(""); // }} "" // {{ 13 1 0 "9ed0b80d_8518_474f_a94d8f843a6158fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn4 = Translate(""); // }} "" // {{ 14 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 15 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 16 1 0 "0257e5d3_7b99_47be_a062950a2b200664" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" msg = waitForGUItoContinue(); // }} "" Trace("JSON received from Server:", msg); // {{{ 18 1 0 "36be63f7_a79c_44a4_b1dc636a536612bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONFromServer); // }} "" // {{{ 19 1 0 "5c2b861d_97f9_4e18_a5fce25e78026299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::ParseJson(objJSONFromServer, msg); // }} "" // {{{ 20 1 0 "562abca5_8891_402a_b8a7c5ba56301a86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); // }} "" // {{{ 21 1 0 "cb002e33_cc71_4a25_890fa8f9f5d982a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("id"), id); // }} "" // {{ 22 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 23 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 24 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "initialize") { // }} "" // {{{ 25 1 0 "773dbb38_0414_403d_b2ff24100c7cf1fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); // }} "" // {{{ 26 1 0 "97af1c08_2914_4f72_b27c685f11b30bb6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); // }} "" // {{{ 27 1 0 "04505c20_428c_4440_8169ddcbaade8bbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::Initialize(ML_STAR, 0); // }} "" // {{{ 28 1 0 "b3ab11e2_0297_446f_9cf37ca7c0c9d19f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Init step return:"), o_stepReturn); // }} "" // {{{ 29 1 0 "57d4e0cd_327e_4cac_8e83a7da6222dda0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 30 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 31 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 32 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 33 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 34 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipPickUp") { // }} "" // {{{ 35 1 0 "53e1cfb5_1fde_491f_bfd878eceda16ba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 36 1 0 "f0e9e31f_d871_4632_bd466e43fc38c771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 37 1 0 "e6311b13_2132_40e0_aff0b5556205c32a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 38 1 0 "cb659ed1_5f0c_41e8_8a060ec0b650c589" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{ 39 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 40 1 0 "6699226b_6c7b_4b79_95b8017162b433b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 41 1 0 "bd13798f_62e7_4dd2_8e91769d48d10fc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 42 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 43 1 0 "ce13caa6_634b_4dec_8a6c3ea74b144e95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 44 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 45 1 0 "29f69958_d99b_455a_93c7b0480bfd1658" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn); // }} "" // {{{ 46 1 0 "732425fd_a199_4354_8479d821ee834e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 47 1 0 "22f00193_1056_456e_a515d156eee56e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 48 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 49 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 50 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 51 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelAspirate") { // }} "" // {{ 52 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 53 1 0 "55ee3109_036b_4acb_8a15175f3316656f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 54 1 0 "a5b3e5ac_4910_4a4a_8e20bdb7f61836e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 55 1 0 "ce04189a_96e4_4bdc_aedc8a68bf64647b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 56 1 0 "882daff3_cc25_4778_aec6a937fc87347c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 57 1 0 "7f7b9f83_5611_4a3b_b5c120689696addb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 58 1 0 "39e464b7_0def_403b_a02f5dd2a358dbd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 59 1 0 "2e2739aa_8eb6_44e0_b887ea00b04acac0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 60 1 0 "9408edd8_3cee_43e0_976b4a6fabf5f4ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 61 1 0 "a2848877_3518_4d1d_95f77c1f313003e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); // }} "" // {{{ 62 1 0 "4b5ce3d0_91f4_4c14_aaf1cad34e0caf60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" Trace("Bookstart"); // {{{ 64 1 0 "12892ce3_3bc6_4165_b3b6ae0eacad20e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" Trace("Bookend"); // {{{ 66 1 0 "15bd5af3_2da1_420b_beb398dc2347a0ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 67 1 0 "4fe61fb4_bb39_4728_96b8c6959f4943ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); // }} "" // {{{ 68 1 0 "ba68c240_2397_4872_949ee1ee984595c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 69 1 0 "baac19fc_9f21_4e8c_b833f2a1ba2433f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 70 1 0 "253130f8_f599_4ef4_9d5a15e2cb89d1eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 71 1 0 "51233931_483f_4deb_a8627b909d6c9116" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 72 1 0 "bf0c65ba_7847_4768_92ebbe8adc6568c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 73 1 0 "30a6715c_b6c6_4d86_b5c02f3da440e309" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 74 1 0 "6eb82b6e_8093_461e_afc712cab07398dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 75 1 0 "3f8b6af1_7872_4a20_92bf2c4507ea9f31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); // }} "" // {{{ 76 1 0 "7dd1b818_5a89_4b03_82734e6f4d7b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{ 77 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 78 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 79 1 0 "cb2b67f0_7384_4a41_831de652f92d4c85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 80 1 0 "29a868b4_7800_4747_b14eaf0f2c10ba40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 81 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 82 1 0 "08f63789_65f1_4e7d_996dc22e8f33d416" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 83 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 84 1 0 "8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 85 1 0 "7cb70e6b_15bb_4380_b62150df065d208f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 86 1 0 "4714958b_0632_4de2_983c7fe9de68df6c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 87 1 0 "bd40f564_16d7_4037_aef8eebfe28a4362" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 88 1 0 "18bf536c_98f4_4345_86a103db4a9b68a1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 89 1 0 "d60cd9aa_083b_4487_8d6218cee02fa4cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 90 1 0 "e86187c0_0d19_453e_be1c5a401d0d5d93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 91 1 0 "d66c2dae_4cc3_4a31_bafe46d1dd63e790" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 92 1 0 "d23f143d_290d_4d0f_b368241a6a9adaed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 93 1 0 "0428e844_3191_4cde_b7f3544f34c833f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 94 1 0 "a7ca006f_941c_4b31_9749313ad9b4e079" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 95 1 0 "8c97ba72_f880_4504_baee8b8db3d13310" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 96 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 97 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 98 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 99 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelDispense") { // }} "" // {{ 100 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 101 1 0 "909bc255_6ca1_4700_bc102ccb34ae5be4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 102 1 0 "fd48dd93_9f42_4df0_9f659e27a5552543" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 103 1 0 "3ff3f492_86a5_40af_a3deabccbab3898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 104 1 0 "3cbb883f_48ae_40fe_afe67da944df94b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 105 1 0 "ab1033bc_1216_450a_9fb60655a1f1a21a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 106 1 0 "0bc1541f_26d5_44d6_8db6ae336fec17bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 107 1 0 "8c10cc29_c05e_4cea_9ed559249651e805" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 108 1 0 "3e0373da_7c7c_46ab_9b77fba19915662e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 109 1 0 "b98fdc49_cdcb_4f3c_81df0b76eafa1411" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 110 1 0 "7458d32a_402a_4215_b52378c78468ec80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 111 1 0 "5e14f2ce_c932_474b_be03f3c043c700e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 112 1 0 "c2010d1d_5a78_4871_a835a6613a1237bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 113 1 0 "d4a6e6a3_0158_45f1_9c359d8e48e01bed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 114 1 0 "011e9828_5413_40c1_80d0c3bdde1c6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 115 1 0 "2d7a4942_b2ce_43a2_8decf49fa0c9576c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 116 1 0 "ad9f0bbf_e495_41c5_898a3be32bb16f2b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 117 1 0 "5c734886_aa50_424c_b89f6894bc37dd8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 118 1 0 "d1bc00cc_4286_4409_b1c49b6350e7e6ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 119 1 0 "b178ce99_db9e_4453_bed28d4ce0457bc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); // }} "" // {{{ 120 1 0 "1b38ad88_3c65_4e58_812f9ed32ce32485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{{ 121 1 0 "f34066f1_63f9_474f_8a9c41e56962dc74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 122 1 0 "6b94916e_355b_4ee9_8eb4f1b49c95fea4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 123 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 124 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 125 1 0 "e962dd26_3672_4418_bd3c40e9929929eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 126 1 0 "6257966a_6b39_41c8_a057a79b8e39cd4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 127 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 128 1 0 "3f230e40_8bd9_4235_b88cd0ca80799661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 129 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 130 1 0 "8d82ff40_d831_430b_97d97c01d2a4474e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 131 1 0 "ac0ad5a7_d00b_46fe_a18f94f8dab3863c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 132 1 0 "b7f86b6c_03a4_4e12_a05e5e8bdc958b75" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 133 1 0 "9bfa8704_2ae0_4a63_83d09fddbacfd336" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 134 1 0 "860b660a_6947_4c88_a2a039bf65040bf5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 135 1 0 "797f0eef_5bb2_4a2e_a178af74f4892bd7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 136 1 0 "2753c24e_c4dc_402d_866b6bc8691ecc1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 137 1 0 "1ac127fd_b830_496f_b4d4b9671137ebff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 138 1 0 "3ee5d751_d3a5_468a_b539c4f0ff22023e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 139 1 0 "b86d492c_446f_4921_97140cfd462ace87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 140 1 0 "e049946d_6322_4b39_9c46a2d0eb345528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 141 1 0 "531432f5_ef8a_416e_8be28a07ae9b0d25" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 142 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 143 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 144 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 145 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipEject") { // }} "" // {{{ 146 1 0 "69be671e_7cdd_48d3_af136435754c1d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 147 1 0 "f3444c0f_4863_4fdd_94a025b682d8a6d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 148 1 0 "12ad2f39_c160_4afc_9f6ffce7e3ddb433" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 149 1 0 "2883bb64_2fe3_47ca_996e11434afc57cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 150 1 0 "10c3b13e_7129_4cfd_b88b29d0bbc31a28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); // }} "" // {{{ 151 1 0 "f12cebf8_f377_4e29_9178b685b8637482" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 152 1 0 "53842548_1bc1_4cff_b1c7b9254000a8bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 153 1 0 "40577bba_0459_4794_a91070bf46ef5b5f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{ 154 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (useDefaultWaste == 0) { // }} "" // {{ 155 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 156 1 0 "655bc92f_08a8_4c16_a0276997aec081ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 157 1 0 "a3a0b5ef_85c0_4552_a28b3356d7886eb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 158 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 159 1 0 "efadb8c3_c431_4ed4_a739a951c05ee518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 160 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 161 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 162 1 0 "2dda50b6_7f82_4e8a_a1d203715119213a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 163 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 164 1 0 "33f8a21f_6ff1_4901_9c57a2c3bfc58f55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 165 1 0 "7fa61e34_a1f2_4b99_8f6bed13c6ce120f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn); // }} "" // {{ 166 1 0 "2e847c00_28a1_4b09_9ed5515ce7746892" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 167 1 0 "f40baab8_ec2e_4552_91ddf539ae8bfda9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 168 1 0 "2e65ae8a_e63b_4697_a998e72591e5c0c5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 169 1 0 "7672ebc2_4687_4107_a4fd6c56c422373e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 170 1 0 "a7db5128_f8e4_4afe_81f46b2cc86e608d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject step return:"), o_stepReturn); // }} "" // {{{ 171 1 0 "683607f4_928f_4cea_b901fe3502404424" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 172 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 173 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 174 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 175 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 176 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 177 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipPickUp") { // }} "" // {{{ 178 1 0 "1f82c33f_a085_47cc_85dbbde3e42a53c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 179 1 0 "9f9fe665_47a2_4a12_961460021d1f09f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 180 1 0 "743960d2_9d0f_4ccf_848662247e3211c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 181 1 0 "b737602c_63e8_4c4c_b47f40cb815914ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); // }} "" // {{ 182 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 183 1 0 "00bd1831_c335_40f5_b706f0ffadbe2890" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 184 1 0 "1f16418c_8fa7_44a5_a6db75dd9a79ee84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 185 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 186 1 0 "b66db4eb_9e79_4c19_909fd8d14d37cba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 187 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 188 1 0 "f3e7cbf6_0242_4463_8d4ed0db4667f7db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2); // }} "" // {{{ 189 1 0 "b080a5c6_324c_4aae_b5899dede6d863f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 190 1 0 "aa5a9c4b_0377_46ce_9b46883db15cbd7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 191 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 192 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 193 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 194 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Aspirate") { // }} "" // {{ 195 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 196 1 0 "373f30c8_ec07_4298_94d6ac75358ab1ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 197 1 0 "ef3ae377_e985_4ef6_93b005aa91c9b2b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 198 1 0 "d8eea65a_6e59_4c32_a47bae09779f9528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 199 1 0 "8eb02312_a070_491c_9758b3cdbdee0cfc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); // }} "" // {{{ 200 1 0 "6eaf8bee_b53f_4f01_87c1380bc345e386" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 201 1 0 "d9923a2f_e7cf_4f3e_81746e378a20baab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 202 1 0 "2c411993_e3fc_4753_9a90308b226078a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 203 1 0 "5d900896_b2b9_442b_b24294b9bbfbdaad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 204 1 0 "21149e9e_21c9_4ddd_93e07b693e3ab3fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 205 1 0 "bcefef03_102b_4887_adad59c2fb7ad551" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 206 1 0 "9665b0a3_35e8_47e9_b14ac1a4818cfa6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 207 1 0 "ff93d28b_afe9_47e7_9b6eb50d6845384f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 208 1 0 "ef43b824_fd38_42d4_9e932904dbf14813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 209 1 0 "b0378457_e370_448b_bfd6955c05e57bcb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{ 210 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 211 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 212 1 0 "615bcff6_e9d5_4303_a5d5826b2e2548dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 213 1 0 "cf4ad428_945e_4921_9441ee34cf9c96bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 214 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 215 1 0 "86397ec2_2ee5_4ec1_8bec47d8e87584b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 216 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 217 1 0 "48f88263_72c1_4df2_865181cffed9feee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 218 1 0 "f1b764e8_e556_4d08_bb83bdc12dc64a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 219 1 0 "164c104a_cf5f_46de_b23a098a18b3fdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 220 1 0 "ee779f77_51a9_46d7_b58b7bcaf13519f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 221 1 0 "e874eb6d_1e97_4590_95d9b10cb059c935" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn4); // }} "" // {{{ 222 1 0 "0ca1df86_a344_45fd_b384e13ba44c5ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 223 1 0 "2497228e_672e_4c95_9f31679fe87bbe1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 224 1 0 "e4930eee_c625_4acb_a81c05e149a1a218" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 225 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 226 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 227 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 228 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Dispense") { // }} "" // {{ 229 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 230 1 0 "78cba921_2a37_4b4a_91ef7fbe81fcddd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 231 1 0 "b58b4cbd_16e9_4444_9037061e29bc5614" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 232 1 0 "0ab910ec_826d_4c84_bac7ed9564f3bdab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 233 1 0 "84d664b7_70d0_4136_bdfd4de2aa760ad8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); // }} "" // {{{ 234 1 0 "18becc6a_2df4_4281_8b16ade9038979f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 235 1 0 "68c565db_e5ed_44e8_b3846a1d98034e76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 236 1 0 "6a4221a8_9488_48f9_8381b1bc0f0c960d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 237 1 0 "45dcb271_e326_42fc_b8684816d3ffdc93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 238 1 0 "14552b13_e77b_4fb7_9020445ecc5ade21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 239 1 0 "91783f87_af6f_446e_a74fb1725f17d282" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 240 1 0 "e2e7f702_1710_49eb_9b1046dbf4f143e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 241 1 0 "1817aa70_86fa_4318_a8e46569701623e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 242 1 0 "50bd6734_10d5_4291_b40eb708539514fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 243 1 0 "ad5fbb01_d809_4b7d_b858ed597709f28f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 244 1 0 "09566247_6b2d_4c73_b43fe303a30f89c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 245 1 0 "3ead74f7_3b5c_4b21_84d2488c2eceab73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 246 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 247 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 248 1 0 "835f8470_7e8c_40ff_a48abcc85d6b778b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 249 1 0 "059394fc_e924_4d57_b1b85f79f9947fa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 250 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 251 1 0 "6c4be3a7_a450_459c_90545a208f9f459f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 252 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 253 1 0 "c164a94e_2926_462e_9487870d403fe8b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 254 1 0 "86c0fb85_8aaf_4bec_9f6f1f642206487f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 255 1 0 "77047add_8050_4522_ad477b97455a8327" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 256 1 0 "5b2c6f23_9a69_489d_b52179c78c03e48f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 257 1 0 "a9a9244b_829f_4c5b_9a64f1018b029453" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn4); // }} "" // {{{ 258 1 0 "781580a9_199e_4373_b48bb55a97f8a463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 259 1 0 "1867ae44_25f8_4926_ae081e490fd5aa0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 260 1 0 "dbb3b30c_b4a1_4cf6_a24b62b63f155369" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 261 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 262 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 263 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 264 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipEject") { // }} "" // {{{ 265 1 0 "7cf9db16_d78c_4aa0_825cc3c2c22f287c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 266 1 0 "ccca7a97_c22a_4f20_b2d9a60d67850eee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 267 1 0 "a319f75e_77eb_4845_856516ce060213f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 268 1 0 "d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); // }} "" // {{ 269 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipEjectToKnownPosition == 0) { // }} "" // {{ 270 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 271 1 0 "24eeb6dd_1e20_422c_a1a8199cbca73b33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 272 1 0 "5197334f_cde5_4d52_9c528a0c4f7401b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 273 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 274 1 0 "110b82e1_8a5b_48e4_a3adbab701cffc8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 275 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 276 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 277 1 0 "fa32bbf8_8345_4897_aaf09d112d374893" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 278 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 279 1 0 "ef087a4e_684e_4d98_87109abf154fbc85" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2); // }} "" // {{{ 280 1 0 "328216cf_22dd_47a1_9f1ba089b1ac7702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn); // }} "" // {{{ 281 1 0 "53265943_7975_4275_ad98df313054f97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2); // }} "" // {{{ 282 1 0 "c13d9773_7daf_4c3c_9064fdd4f7c7008f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 283 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 284 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 285 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 286 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 287 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "loadCarrier") { // }} "" // {{{ 288 1 0 "76d739d0_ff4a_490b_9c47f411d29ef7a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 289 1 0 "ca623aa7_ed48_45fa_9f4055fb8e08c3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); // }} "" // {{{ 290 1 0 "64a8e193_7e7e_412e_8a0657f0e832eaef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); // }} "" // {{{ 291 1 0 "39e6aaef_5cce_4915_b5b6ede214c7371e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs); // }} "" // {{{ 292 1 0 "1d4d284f_fd1e_4f8a_a2158846ad6a67f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Load carrier step return:"), o_stepReturn); // }} "" // {{{ 293 1 0 "358b7fc3_40a2_418b_9d61d94eef1556f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 294 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 295 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 296 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 297 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "unloadCarrier") { // }} "" // {{{ 298 1 0 "797d23a7_c62a_471a_a52b10fea8bcc154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 299 1 0 "f1c35790_adb7_49eb_a96864d8b1d66cea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn); // }} "" // {{{ 300 1 0 "6e6ded71_3f99_46c5_9362117beb502a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn); // }} "" // {{{ 301 1 0 "8713fee4_6b93_4296_a5396254fd404d52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 302 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 303 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 304 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 305 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 306 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripGet") { // }} "" // {{ 307 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 308 1 0 "c4847ae5_e161_4f23_aa432eda22de28bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 309 1 0 "022a5cdd_3f4f_4e18_927c174fc57a68a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 310 1 0 "3e462067_5eb3_49c3_b7bf6a27de9ce3bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 311 1 0 "f7004881_3f0d_4621_a88d55dec8fc0d30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 312 1 0 "262b36ba_6d86_4009_bdc9a3881db7074e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 313 1 0 "be44b37f_7cec_4f69_81c223f2c30b120b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 314 1 0 "3dea3158_65f8_44bc_8d06a31ce3458dab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); // }} "" // {{{ 315 1 0 "308b2aa2_5970_4692_858049c6559d6ad0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 316 1 0 "756d0f81_3645_4a49_a0c2259581e11498" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 317 1 0 "cdbf11ba_b1f8_4016_811240a02705f1fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{{ 318 1 0 "625df597_c6c8_4e4a_b956e9580bfbc568" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); // }} "" // {{{ 319 1 0 "3576d134_8507_4e47_9c2bcc3dce8c026d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 320 1 0 "5b9c06ad_9081_4b6b_97e50cc87623b888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 321 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 322 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 323 1 0 "d1f3c2ac_9c68_4200_a3506bbbed8e42a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 324 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 325 1 0 "f1d1c43b_a9dd_4573_a69dd7c0e79eea40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 326 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 327 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 328 1 0 "4d304110_107e_412e_909bb84008a244de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 329 1 0 "8f8b1ba1_af12_4cdd_acf2096420ede259" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{ 330 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 331 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 332 1 0 "72e31f7d_c091_4525_a5cf7001754b199d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 333 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 334 1 0 "47dfcbb5_d784_48bb_b36b97509434a3a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 335 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 336 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 337 1 0 "e6c53925_446e_468e_b0e0654b4b9d9a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 338 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 339 1 0 "c0cbb194_1b8b_4fe0_a0f706e03eaa0748" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 340 1 0 "46703217_a28e_42ce_b13c11d73ba34bfa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn); // }} "" // {{{ 341 1 0 "189164cc_2681_492f_83f072fb537648b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn); // }} "" // {{{ 342 1 0 "c8d6960a_f416_47b1_a29e2752973c0ec9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 343 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 344 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 345 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 346 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripMove") { // }} "" // {{ 347 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 348 1 0 "5755c338_faa3_4f0a_9acd4cd01a912862" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 349 1 0 "2849c819_a3dc_4328_8484ccc4785993d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 350 1 0 "32f0a8f9_3af2_42a3_90f246cc874e0e8f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 351 1 0 "791b6e1a_07b8_49cb_8122670d0871189f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 352 1 0 "036d0d84_e161_4b03_8b828dcb6b44e437" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{ 353 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 354 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 355 1 0 "e038f780_938f_4867_98f769488ca44b04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 356 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 357 1 0 "6bd2d2a1_1051_4443_a1af9b68df2876b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{{ 358 1 0 "3d8767e5_5f31_4ce5_91a11e28045ec87a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 359 1 0 "e9e0b38e_13aa_40f9_8e470eb1de09eb19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("wrong"), Translate("nowwrongere")); // }} "" // {{ 360 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 361 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 362 1 0 "064a5c1b_f450_44d6_a2042ebde115527d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 363 1 0 "ee8b8050_164a_4de8_b6ce02120236efbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 364 1 0 "be0898fe_cdb8_4ac3_a9e991e26bdb6658" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here"), Translate("now here")); // }} "" // {{ 365 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 366 1 0 "ca4b75ee_26d9_4a3b_8e3366d575348125" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 367 1 0 "ea0afc75_5bc7_4c06_ac73c2f4d5f887a0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 368 1 0 "1965d128_c7f1_4206_87e4ca1ce70c1dff" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 369 1 0 "615cbdd3_e5f2_4bc0_bb3661a2482eb770" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 370 1 0 "86fc0696_8c53_4c05_a9c0eaa58f279054" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 371 1 0 "90f602a1_fdc5_48fd_801269ecd2c3f9bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn); // }} "" // {{{ 372 1 0 "dc418b75_2d70_4034_84a767fba752b262" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn); // }} "" // {{{ 373 1 0 "ae4414d3_a939_4fdb_a0ed06f1be1506e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here here"), Translate("nohhere")); // }} "" // {{{ 374 1 0 "6379549c_caf9_409f_b293abf77f1dcfbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 375 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 376 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 377 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 378 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripPlace") { // }} "" // {{ 379 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 380 1 0 "6f38d60b_6dc5_4159_ba30360f264222da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 381 1 0 "b6ef73cf_c89c_41cc_a3b72dc5aaf70f90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 382 1 0 "c7e5f5bd_edcc_4000_9be3db81af0c79fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 383 1 0 "91ff4c39_6a86_4eda_998a5461ef6c3cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 384 1 0 "341a6f8e_b4c8_4966_b9520322d1bc2e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 385 1 0 "32792c80_3b36_4a25_8fff6b99bfcf1919" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); // }} "" // {{{ 386 1 0 "b1e5d86e_c659_4d33_9e0f83fdb20b2cb5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 387 1 0 "76b26748_4e74_45f7_85a7dc102b5fd7b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); // }} "" // {{{ 388 1 0 "ee221e8a_a662_49d8_be2ef0ed631d9527" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 389 1 0 "cbefd54c_5f0a_4a16_a0199198529b71fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 390 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 391 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 392 1 0 "ac4e7090_c3c7_4707_8d98dc55262c294b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 393 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 394 1 0 "eb5776ad_c858_4ee8_ba31f47af19e76af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 395 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 396 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 397 1 0 "1f3eb006_1b10_427e_99d0b530f1afc2ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 398 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 399 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 400 1 0 "a04c5993_bf3e_46c7_92f24c8236636b00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 401 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 402 1 0 "2455f68c_be4e_4a21_9e9e78f78f6e8e3c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 403 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 404 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 405 1 0 "ad5d98b0_9e3d_4275_90ceef06ceca045d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 406 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 407 1 0 "3321537f_63fb_48a4_90e40a2fee1cc432" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 408 1 0 "8c7e60df_f040_45c6_a939d99bcd0ac23c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn); // }} "" // {{{ 409 1 0 "24e589a9_98d7_429d_90c8afe203e96ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn); // }} "" // {{{ 410 1 0 "9d94d038_d071_4339_aaace5a2e455b240" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 411 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 412 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 413 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 414 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 415 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 416 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGet") { // }} "" // {{ 417 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 418 1 0 "4a585a30_3a23_44cc_a0948963de716cba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 419 1 0 "da3a318b_1208_4329_be1faae95ecc2e03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 420 1 0 "1f51589f_347c_497b_a7338461d92076d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 421 1 0 "622e6765_4ee3_4df5_917ca140f8b7981b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 422 1 0 "9826612b_e564_4231_8f83fdfcbd374bdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 423 1 0 "fdb52557_ae6c_42b3_925073ab7ae7a5ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 424 1 0 "171639e0_98ad_4857_a5ac346039499a33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 425 1 0 "0d4077af_b1dc_4dea_a23a163c57d96248" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 426 1 0 "60732b74_8870_48e2_be03564159cf35b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("inverseGrip"), inverseGrip); // }} "" // {{{ 427 1 0 "ffa21840_da03_4682_b62a6910caf63f45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 428 1 0 "0af9b15f_4e1b_4353_a6261def96fea256" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{{ 429 1 0 "c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 430 1 0 "74d93b97_5d7f_4593_9aeb9d83d5466e6f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{{ 431 1 0 "28d636c0_47c0_4fac_8a7b67124fd8b9f5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 432 1 0 "6f62025f_9dde_4ae6_a6b6b69efed6e381" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("tolerance"), tolerance); // }} "" // {{{ 433 1 0 "f3d51abd_651e_4b15_93eb0cea0c0384be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 434 1 0 "1b72eb1e_c220_42e0_9a34675ddc971fe7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{ 435 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 436 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 437 1 0 "fd3fbb06_b08e_4790_8e3b785ca1f8ed4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 438 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 439 1 0 "87331d5f_01ff_43a8_a0a06487f28bb2b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 440 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 441 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 442 1 0 "5f12c00c_48c1_4e2f_a24b4ba435343a8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 443 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 444 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 445 1 0 "d3e5718a_eb78_4c1f_a6467f61ccbe82df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 446 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 447 1 0 "8ebcf09f_a943_4769_b3c659e368019a32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, lidSeq); // }} "" // {{ 448 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 449 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 450 1 0 "8ce5efe3_4525_4c77_bb64f9d8dcfb6a62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 451 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 452 1 0 "8ac111e1_df50_4fcb_b465e737713459d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn); // }} "" // {{{ 453 1 0 "d9104246_d843_4a6d_85a64aa07d019020" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Get - step return :"), o_stepReturn); // }} "" // {{{ 454 1 0 "7831c2d8_4b59_455a_a0dc5cae20f325a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 455 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 456 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 457 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 458 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapMove") { // }} "" // {{ 459 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 460 1 0 "3c315cea_4ff8_4efa_8e4a5cc86a9d84d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 461 1 0 "4e2cf15d_267b_47e0_895c36b714787e13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 462 1 0 "24d68fc9_cd59_471b_9c663c4121d1a931" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{ 463 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 464 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 465 1 0 "d372f898_6d32_4d80_ab4d58340d18681d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 466 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 467 1 0 "9e573132_bd29_4d08_a1784d0e26c48700" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 468 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 469 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 470 1 0 "48db1de6_2a87_4224_b1f13fa2a75b490a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 471 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 472 1 0 "1e8e9562_41c0_4df5_9de945c44d1e8d61" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn); // }} "" // {{{ 473 1 0 "a5de7c97_d49c_4f04_b1414f1aaace7f84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Move - step return :"), o_stepReturn); // }} "" // {{{ 474 1 0 "6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 475 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 476 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 477 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 478 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPlace") { // }} "" // {{ 479 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 480 1 0 "18e9697d_0efb_4840_94a65e2a82b4ca69" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 481 1 0 "b0c35970_122b_4119_92c3801f4b8e980b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 482 1 0 "6ed697af_a110_4104_941633e154ff0071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 483 1 0 "fec1982e_3636_412d_af2eda243438f7ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 484 1 0 "21de27ac_9dc3_415b_b1d1e49e80c53591" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 485 1 0 "652aeaa7_9a2f_4c11_8bc1fc58a97ffed7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 486 1 0 "e88a5df4_d9ad_4231_89a5a03f88d0ce77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 487 1 0 "8c5aee51_3156_4fcc_b1b167552b73476f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 488 1 0 "8c257b39_8c0b_410d_a4a4e38df904008c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 489 1 0 "91e9f4c6_b7fe_4b15_83c830df3385398a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{ 490 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 491 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 492 1 0 "226bb6d1_37a1_4076_9d96fb9df69c6068" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 493 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 494 1 0 "ec2fd48b_eab9_491e_867c0fc335eea81c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 495 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 496 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 497 1 0 "e590d9b6_f690_48db_b0109a10c228d5ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 498 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 499 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 500 1 0 "82559320_1e13_40c9_b283fdfa804df6a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 501 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 502 1 0 "420daa28_bf45_407a_bd576559af75c5d0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 503 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 504 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 505 1 0 "3ed6b704_3649_4c7d_8e7d30bdb038feab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 506 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 507 1 0 "41a130e8_a745_4a20_b124272093bf38e7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn); // }} "" // {{{ 508 1 0 "b4bdf08c_e218_4bec_98c0f41e6ec3a218" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Place - step return :"), o_stepReturn); // }} "" // {{{ 509 1 0 "346b983b_d261_4447_a7cebf782db4b4d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 510 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 511 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 512 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 513 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPark") { // }} "" // {{ 514 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 515 1 0 "73602d5e_7f8d_45dc_9c1f21d41c39d0bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("showCollisionCheckDialog"), showCollisionCheckDialog); // }} "" // {{ 516 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 517 1 0 "acf5767a_7e39_4072_8e062928938984cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{{ 518 1 0 "96b1bdf6_a3f3_4530_844fc77cbf7fb944" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 519 1 0 "d03fdac4_224f_4174_924fb518a623bf65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 520 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 521 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 522 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 523 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGetFirst") { // }} "" // {{ 524 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 525 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 526 1 0 "5f9f4b8d_3b3a_48ee_89ef334a70dcb72e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{ 527 1 0 "65648900_32b3_4035_9eb5916a3314f7e9" "ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}" { variable arrRetValues[]; arrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40("65648900_32b3_4035_9eb5916a3314f7e9"); // GetFirstPlatePosition } // }} "" // {{{ 528 1 0 "63380bb7_5afe_4d65_9dc5cdf334590b4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 529 1 0 "cdb18c48_14d5_430d_9f7202f782e069da" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 530 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 531 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 532 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 533 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 534 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "FirmwareCommand") { // }} "" // {{ 535 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 536 1 0 "5f5e5c89_0c1a_497b_80c550dbc4676208" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate("FirmwareCommandList")); // }} "" // {{ 537 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(CommandListElement = 0; CommandListElement < CommandListLength;) { CommandListElement = CommandListElement + 1; // }} "" // {{{ 538 1 0 "2c2e9953_5968_4384_8b2dad24b0960278" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate("FirmwareCommandList"), CommandListElement, FirmwareCmdDict); // }} "" // {{{ 539 1 0 "7f4d5cda_c10f_4317_ba7613cd10d2e90d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareCommand"), FirmwareCommand); // }} "" // {{{ 540 1 0 "cf155262_dfb4_46b4_aff762c7b4c18d8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareParameter"), FirmwareParameter); // }} "" // {{{ 541 1 0 "471df283_02f5_4daf_9c83999e3b1fd8e1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn); // }} "" // {{{ 542 1 0 "0b8e6d49_655f_42a7_bcfdeac76a40c6e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 543 1 0 "f49f31b3_d742_44ae_a6a076108c3f9ab4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 544 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 545 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 546 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 547 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 548 1 0 "193ad70f_ec03_47e5_b1f5ef9ff75805c0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 549 1 0 "5861a5ed_1f9d_48fc_9f3d976bc1a13751" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "setAspirateParam") { // }} "" // {{{ 550 1 0 "d741f062_6b73_4365_ad9c8646a016138d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LiquidClass"), LiquidClassName); // }} "" // {{{ 551 1 0 "86836193_1dcb_460e_8db2dda6b775abd9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Parameter"), LiqClassParameterName); // }} "" // {{{ 552 1 0 "d94798d1_53c6_40de_b72c239404c94352" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Value"), LiqClassParameterValue); // }} "" // {{ 553 1 0 "cca3a5d2_6d84_4105_a976a70a83585972" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E1EAD148F3254941A251DC272F774AB4 ; err.Clear(); // }} "" // {{{ 554 1 0 "3f31be32_d184_4c20_a5127e5057f15149" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SelectLiquidClass(LiquidClassName); // }} "" // {{{ 555 1 0 "b75ad951_95b1_4114_864093345ffb2cdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SetLiquidClassAspirateParameter(LiqClassParameterName, LiqClassParameterValue); // }} "" // {{ 556 1 0 "a39ebf7f_8e12_47a6_aad54fd2890ba779" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 557 1 0 "cca3a5d2_6d84_4105_a976a70a83585972" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E1EAD148F3254941A251DC272F774AB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 558 1 0 "a14cc465_549a_4722_b3fb08ce2532a405" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 559 1 0 "cca3a5d2_6d84_4105_a976a70a83585972" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 560 1 0 "ec08039a_3b70_4854_894d57c13ffdc877" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 561 1 0 "5861a5ed_1f9d_48fc_9f3d976bc1a13751" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 562 1 0 "833dd647_9b77_4420_bcf4ca4df1d1919a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "setDispenseParam") { // }} "" // {{{ 563 1 0 "4aa7b9ce_fd73_4a55_9a3c704bfb4c443d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LiquidClass"), LiquidClassName); // }} "" // {{{ 564 1 0 "27e93e41_ad5f_4b74_a1844bb15c0dfdfc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Parameter"), LiqClassParameterName); // }} "" // {{{ 565 1 0 "10da81a6_cef8_4c18_9416f561b557ad45" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Value"), LiqClassParameterValue); // }} "" // {{ 566 1 0 "cee50056_b4b0_473b_8d775dd178dab21d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3A18CA152B674dd3A42B81C4D45F719E ; err.Clear(); // }} "" // {{{ 567 1 0 "b471ff31_4fdd_4a9f_87431e5741a9b969" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SelectLiquidClass(LiquidClassName); // }} "" // {{{ 568 1 0 "8f401b71_156d_43b5_892982e8478456f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SetLiquidClassDispenseParameter(LiqClassParameterName, LiqClassParameterValue); // }} "" // {{ 569 1 0 "28e95405_685a_4032_b361461ff897189f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 570 1 0 "cee50056_b4b0_473b_8d775dd178dab21d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3A18CA152B674dd3A42B81C4D45F719E : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 571 1 0 "c7174915_16fd_40d8_b94eac8999f4eab7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 572 1 0 "cee50056_b4b0_473b_8d775dd178dab21d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 573 1 0 "d805e811_a796_44e9_93839b02b6d05f1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Liquid Class Set Parameter:"), o_stepReturn); // }} "" // {{{ 574 1 0 "da31069e_a165_4c2e_b95619cb57c4ae8a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 575 1 0 "833dd647_9b77_4420_bcf4ca4df1d1919a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 576 1 0 "193ad70f_ec03_47e5_b1f5ef9ff75805c0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 577 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 578 1 0 "2777cb67_3095_437b_9b54d34ead8fcab2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 579 1 0 "c397d56d_00f8_4e32_bf71c20e91dcac17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ConnectIP") { // }} "" // {{{ 580 1 0 "b450ee5c_4bce_435e_b562523f18ce0142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("InstrumentName"), InstrumentName); // }} "" // {{{ 581 1 0 "13c30b43_9a94_4cd1_a907aa21f01057cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PortNumber"), PortNumber); // }} "" // {{{ 582 1 0 "68ec12ae_0e01_4827_9460e39fddef7f4d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 583 1 0 "7c482f87_e50a_44d8_88516cf7d087dbde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MPEOptions"), MPEOptions); // }} "" // {{{ 584 1 0 "8d4e01b7_ef9e_4570_a2e08f31ecacc259" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingIP(InstrumentName, PortNumber, SimulationMode, MPEOptions, DeviceID, o_stepReturn); // }} "" // {{{ 585 1 0 "005f0b12_4fb1_48ba_bcfeb961b9419149" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeviceID = StrIStr(DeviceID); // }} "" // {{{ 586 1 0 "51077fef_f212_48a6_8f6c43d7d5f5df97" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 587 1 0 "97ff097f_9089_4ac0_82438cbd6f0a9c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Translate(""), Translate(""), id); // }} "" // {{ 588 1 0 "c397d56d_00f8_4e32_bf71c20e91dcac17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 589 1 0 "2777cb67_3095_437b_9b54d34ead8fcab2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 590 1 0 "62a26733_db4f_440f_9fb51db5fef61711" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 591 1 0 "0098c030_fe6b_49bb_92b77ef5a5c7372d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ConnectCOM") { // }} "" // {{{ 592 1 0 "e8776203_e1ed_4373_8a427cb0d8b8d29f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ComPort"), ComPort); // }} "" // {{{ 593 1 0 "4c600ed2_a490_4f3e_bdadfe3b174db193" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("BaudRate"), BaudRate); // }} "" // {{{ 594 1 0 "e77abf5c_e94e_469b_82ea0f774615a671" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 595 1 0 "aaebc2c7_eafc_456e_83386035ed203694" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MPEOptions"), MPEOptions); // }} "" // {{{ 596 1 0 "3b2a8a1c_5b74_4668_b7a5ca974a7658b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingCOM(ComPort, BaudRate, SimulationMode, MPEOptions, DeviceID, o_stepReturn); // }} "" // {{{ 597 1 0 "1a9f7ef9_8c04_4517_8d26efaa81d3eff7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 598 1 0 "104f0498_cc9f_4508_8f28e3b53675ef53" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 599 1 0 "0098c030_fe6b_49bb_92b77ef5a5c7372d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 600 1 0 "62a26733_db4f_440f_9fb51db5fef61711" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 601 1 0 "94f49f46_ad96_4874_9148653f8fa3302e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 602 1 0 "1abd6ad0_87b9_4459_b74e20f9717ebd2b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ClampFilterPlate") { // }} "" // {{{ 603 1 0 "bdc39916_5944_49a4_846784d94f27267f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 604 1 0 "cf252c80_073f_4e8b_85e84a546e80666b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ClampFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 605 1 0 "16a9c218_a7c3_403c_a7c005e96566f8d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 606 1 0 "de8afcf3_ec32_4067_895aceb7a7a650eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 607 1 0 "1abd6ad0_87b9_4459_b74e20f9717ebd2b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 608 1 0 "94f49f46_ad96_4874_9148653f8fa3302e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 609 1 0 "d19e0aae_3b5d_4b88_9b9fa6cd22d67f22" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 610 1 0 "421097a4_a57a_4dec_8b9257b5d77233e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_CollectionPlatePlaced") { // }} "" // {{{ 611 1 0 "ae857f70_e319_4ada_a8b086f120e84247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 612 1 0 "a173d887_781c_4262_9fa6c81e253bd32c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CollectionPlateHeight"), CollectionPlateHeight); // }} "" // {{{ 613 1 0 "7e167a7c_dfb2_4798_814039b7430ccbae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("OffsetFromNozzles"), OffsetFromNozzles); // }} "" // {{{ 614 1 0 "aa2d8e6c_c878_40f1_a1325cb8fe399514" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlatePlaced(DeviceID, CollectionPlateHeight, OffsetFromNozzles, o_stepReturn); // }} "" // {{{ 615 1 0 "6ad949b9_e02e_4686_be660950f5282aee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 616 1 0 "99fa8dd5_ac5f_4d13_91fb69b65d2bc0ea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 617 1 0 "421097a4_a57a_4dec_8b9257b5d77233e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 618 1 0 "d19e0aae_3b5d_4b88_9b9fa6cd22d67f22" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 619 1 0 "21b7e081_f229_400f_9a51a8b8a5412447" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 620 1 0 "b7625009_1717_4db6_8d24209ff3b8dbb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_CollectionPlateRemoved") { // }} "" // {{{ 621 1 0 "fc436f5c_aaba_4906_a4074c83d00f028c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 622 1 0 "65ba4a03_7064_45c5_8ae9ffb86a3234b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlateRemoved(DeviceID, o_stepReturn); // }} "" // {{{ 623 1 0 "39ef177a_96d2_411f_97c648ff2ed91ea8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 624 1 0 "cbdb85be_569e_40cb_93e3582de4fd718f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 625 1 0 "b7625009_1717_4db6_8d24209ff3b8dbb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 626 1 0 "21b7e081_f229_400f_9a51a8b8a5412447" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 627 1 0 "38689ea3_dc56_4d7c_88d585797b9d957e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 628 1 0 "ee3d4b03_3d8c_4718_9f927c1855c7346e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Disconnect") { // }} "" // {{{ 629 1 0 "acfb16ed_a9d1_4a63_a9c0106aff00758d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 630 1 0 "f0cbe63d_fe07_4cc6_8bcb70bf9c7de9ec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn); // }} "" // {{{ 631 1 0 "b23baddd_cdbc_45fd_8c093ab349a937f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 632 1 0 "1695a8ad_2f0f_48a1_a9d8534daaa45c88" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 633 1 0 "ee3d4b03_3d8c_4718_9f927c1855c7346e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 634 1 0 "38689ea3_dc56_4d7c_88d585797b9d957e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 635 1 0 "45f798d0_f63a_4141_9f0512725c85b742" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 636 1 0 "3d8efec9_ac55_4f4d_90f0259610f7394d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Dispense") { // }} "" // {{{ 637 1 0 "d9eb3796_7e12_47f9_b6636e222cb5d878" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 638 1 0 "b1b7d9a5_44ce_4588_b1315c2c2c0a6d6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 639 1 0 "e9efebdb_3e29_4a1f_9a03447005f6b247" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 640 1 0 "6812297a_3eee_4055_8de5373a96f6eb0c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 641 1 0 "b6c33a7b_d31f_4f02_8921532db5005869" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), NeedleOffset); // }} "" // {{{ 642 1 0 "f78d0de5_185c_4061_ad416fe94f5dba58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn); // }} "" // {{{ 643 1 0 "01ebd08b_bf22_4edc_b4101325c0ed5d7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 644 1 0 "46be0614_7064_45bf_962fe4fdb2d26ad3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 645 1 0 "3d8efec9_ac55_4f4d_90f0259610f7394d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 646 1 0 "45f798d0_f63a_4141_9f0512725c85b742" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 647 1 0 "c0d12f62_bf0c_4968_8cf8102df9290745" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 648 1 0 "e0397cd6_5fd2_4820_953df1804d2989f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Evaporate") { // }} "" // {{{ 649 1 0 "eff0d502_cbda_4d56_a060ee98b8acfa1b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 650 1 0 "358b8e75_dcca_4656_8f480e051d9768ac" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 651 1 0 "11f40dee_5289_4a85_b3065e4b85d93416" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 652 1 0 "e660629d_9388_44fa_9749984b17a66bc9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellDepth"), WellDepth); // }} "" // {{{ 653 1 0 "3a86a09d_a4ea_4a34_8573e644beb7c6a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 654 1 0 "6cc724c7_a4bf_4c46_948af3e23aaa8758" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 655 1 0 "6bba2cf9_561d_4a3f_87ee7949c7ce3fbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 656 1 0 "d305f425_1c51_43f7_9c5bd6ec76d64b05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 657 1 0 "e0397cd6_5fd2_4820_953df1804d2989f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 658 1 0 "c0d12f62_bf0c_4968_8cf8102df9290745" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 659 1 0 "54c61117_4dde_492d_91df73eafbdbdf0a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 660 1 0 "ea8576f1_52df_4787_b62e82c44a5b6131" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporatePrepare") { // }} "" // {{{ 661 1 0 "04b183eb_df7f_4775_a8db9b61d0822126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 662 1 0 "7ae5dae4_f3fe_42d9_b07c545e18248898" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 663 1 0 "67e84057_0c19_4600_b6bb1cda5b345f8d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 664 1 0 "31ab1ccb_49b6_45ab_886cb04421f727d1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellDepth"), WellDepth); // }} "" // {{{ 665 1 0 "f9f854b4_d03f_44fa_866ecad432e5ee59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 666 1 0 "0e37d7ed_b49b_42c3_b9306b90a8fbecba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 667 1 0 "bdc5441b_5578_4bb1_9a5511f8d6cb37a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 668 1 0 "82509201_581c_4a09_8c1fba65491074b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 669 1 0 "ea8576f1_52df_4787_b62e82c44a5b6131" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 670 1 0 "54c61117_4dde_492d_91df73eafbdbdf0a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 671 1 0 "f877f93d_359e_486f_aabbf156b38c0fd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 672 1 0 "be0cdb40_9439_44c4_9349319653177825" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporateEnd") { // }} "" // {{{ 673 1 0 "661eb571_7a3f_452f_8cd8e71af5633aa2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 674 1 0 "ce6d86eb_0d5e_4931_9b8ae8ab7b99d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 675 1 0 "407cb55f_f828_4adb_b9a1dcfb39934436" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_EvaporateEnd(DeviceID, Timeout, o_stepReturn); // }} "" // {{{ 676 1 0 "3281176b_4d2d_43ea_b218e196deacc5a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 677 1 0 "dc7eb698_c6ab_4bce_b2eae2a106e79c26" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 678 1 0 "be0cdb40_9439_44c4_9349319653177825" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 679 1 0 "f877f93d_359e_486f_aabbf156b38c0fd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 680 1 0 "77175285_9bc0_458e_bdb99486afa263f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 681 1 0 "1d9fee0e_9129_4e05_9387d48ad64ce5b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporateWithRate") { // }} "" // {{{ 682 1 0 "f74fcc26_c2be_481c_9b4822ade43b6399" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 683 1 0 "d104e730_2dfe_46de_9499ec6975f6d3ba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 684 1 0 "ef36faf4_19fc_4253_92c3ba78e66fa81b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 685 1 0 "4e02e5d8_e2c2_421e_9e232b4b54ffc755" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("EvaporateTravelDistance"), EvaporateTravelDistance); // }} "" // {{{ 686 1 0 "d5f4fc63_608e_48f5_be8989e9f0ed73d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 687 1 0 "ce2ba2cc_4f8f_4960_a2120a80bdee1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FollowRate"), FollowRate); // }} "" // {{{ 688 1 0 "72651c9a_a411_472d_9fbc4d5cf13dbe7f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 689 1 0 "6d1ded15_26bd_4832_a66e0a7ed7ae5de8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 690 1 0 "24da9a05_6ec1_4a5d_aa357161406c5b4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 691 1 0 "1d9fee0e_9129_4e05_9387d48ad64ce5b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 692 1 0 "77175285_9bc0_458e_bdb99486afa263f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 693 1 0 "18d62f91_3389_4a05_81dcd2b1f9f35eb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 694 1 0 "5517c3d2_626c_49ed_9f300f5eb7cad266" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterPlatePlaced") { // }} "" // {{{ 695 1 0 "6ad26884_293d_471f_87d63211dbb2130a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 696 1 0 "f712b14e_2361_4388_aaa3d1b6bdd76274" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FilterHeight"), FilterHeight); // }} "" // {{{ 697 1 0 "046c36b4_609e_41ad_802334b853237e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NozzleHeight"), NozzleHeight); // }} "" // {{{ 698 1 0 "9cd1e28f_9f73_4580_933330d72a187021" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_FilterPlatePlaced(DeviceID, FilterHeight, NozzleHeight, o_stepReturn); // }} "" // {{{ 699 1 0 "77cbd1e2_38c4_46cf_8a36d8bf2fd59668" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 700 1 0 "e9b09e36_5025_44eb_8a0241793ecb2130" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 701 1 0 "5517c3d2_626c_49ed_9f300f5eb7cad266" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 702 1 0 "18d62f91_3389_4a05_81dcd2b1f9f35eb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 703 1 0 "a8bdabef_328d_4914_85c9d5a5e206e280" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 704 1 0 "ba1982ca_d913_4372_a876d2c629a3da01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterPlateRemoved") { // }} "" // {{{ 705 1 0 "c8d80340_50aa_42c3_99a4c45d2c5a2e55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 706 1 0 "7ca7dac8_386f_4d72_a80c56436e8d337a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_FilterPlateRemoved(DeviceID, o_stepReturn); // }} "" // {{{ 707 1 0 "7815e103_9108_40ec_8c501ab868674b02" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 708 1 0 "7fab13f9_e6cb_4d15_9c7359f69f1452eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 709 1 0 "ba1982ca_d913_4372_a876d2c629a3da01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 710 1 0 "a8bdabef_328d_4914_85c9d5a5e206e280" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 711 1 0 "d93f150d_eae1_437f_a22a3b0c4c9072e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 712 1 0 "df5f2b51_da1c_47c3_83076cfc5952018e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Flush") { // }} "" // {{{ 713 1 0 "ebd897c5_30b8_4f3b_9955cc2c076a2cec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 714 1 0 "8a5b6ab5_73a5_448f_97d7f2f80f295781" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 715 1 0 "7618744c_4ba2_44a3_af152e17b8f23a82" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 716 1 0 "0b45dbd2_d2ac_4bbc_b063c7256c9e2f37" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 717 1 0 "7ebe8a95_b1cb_40d0_9bbf0caa753020ff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Flush(DeviceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn); // }} "" // {{{ 718 1 0 "f4745c1d_3edb_4f49_9389682fd5db4746" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 719 1 0 "84a474ac_82c0_447e_853e8a0e803cdc9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 720 1 0 "df5f2b51_da1c_47c3_83076cfc5952018e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 721 1 0 "d93f150d_eae1_437f_a22a3b0c4c9072e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 722 1 0 "117f1e32_da28_4bc8_ad90f5a4f2bef282" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 723 1 0 "467d4218_0310_4b7c_a0b5c6ba53779408" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetContainerCalibration") { // }} "" // {{{ 724 1 0 "8399e7aa_cf6e_40a4_94cbfd345e14133a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 725 1 0 "1b0cf945_ddeb_4f68_ad8567b71c28ba9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 726 1 0 "49eec349_8ea2_4006_8740931d862a8cc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetContainerCalibration(DeviceID, SourceID, CapacityVolume, EmptyReading, FullReading, CalibrationDate, o_stepReturn); // }} "" // {{{ 727 1 0 "c87d301f_8a12_4619_b911ef3098a17d58" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 728 1 0 "7e693f5e_19bf_4fe8_93ae99fb04f02aa3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CapacityVolume = StrFStr(CapacityVolume); // }} "" // {{{ 729 1 0 "8d684024_7a1e_41a0_aff0fbb060f288c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" EmptyReading = StrIStr(EmptyReading); // }} "" // {{{ 730 1 0 "e403fc76_66e2_4138_a91ad409fba41579" "{C1F3C015-47B3-4514-9407-AC2E65043419}" FullReading = StrIStr(FullReading); // }} "" // {{{ 731 1 0 "a338088c_aba6_4925_9499261419f3fd32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CapacityVolume, EmptyReading, FullReading, CalibrationDate, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 732 1 0 "467d4218_0310_4b7c_a0b5c6ba53779408" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 733 1 0 "117f1e32_da28_4bc8_ad90f5a4f2bef282" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 734 1 0 "28cc7be8_7ef9_43fd_a8b86cc9f0a88a77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 735 1 0 "883d189a_5580_49b9_92fa9f7ea0b841bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetHeaterStatus") { // }} "" // {{{ 736 1 0 "c3c00992_49fa_4e7a_930d860185676008" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 737 1 0 "a566cb57_a308_4f8d_ab4f730e5a7dcad6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Reset"), blnReset); // }} "" // {{{ 738 1 0 "6c9f1bfd_e7d9_49a3_9ffc43f57d0b87c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetCurrentHeaterStatus(DeviceID, blnReset, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, o_stepReturn); // }} "" // {{{ 739 1 0 "4e871da2_7414_4d04_af1133edc74f8ceb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 740 1 0 "17cbeaea_77c3_429f_852469beae65bff2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CurrentEvaporatorTemperature = StrFStr(CurrentEvaporatorTemperature); // }} "" // {{{ 741 1 0 "99e68adc_1ab2_44c2_99bb0d0791bb4b03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CurrentGasTemperature = StrFStr(CurrentGasTemperature); // }} "" // {{{ 742 1 0 "19ba4b88_434c_4874_adfb9c3ce28707c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Heating = StrIStr(Heating); // }} "" // {{{ 743 1 0 "8bfee3ed_2dfd_4096_95a3693ae02cb98b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 744 1 0 "883d189a_5580_49b9_92fa9f7ea0b841bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 745 1 0 "28cc7be8_7ef9_43fd_a8b86cc9f0a88a77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 746 1 0 "6161ab17_f584_4948_917386b1caf60999" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 747 1 0 "9f1343e7_8811_4e80_a8d30414ee14e3c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetHeaterRange") { // }} "" // {{{ 748 1 0 "ff106776_2ea1_4be4_bf299c1e9f4d6812" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 749 1 0 "d35c7d7b_4e20_4729_898cf76f032dbd77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Reset"), blnReset); // }} "" // {{{ 750 1 0 "eac04ccb_1d2f_4e47_a38e27549db3d0f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetHeaterTemperatureRange(DeviceID, blnReset, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, o_stepReturn); // }} "" // {{{ 751 1 0 "7e058389_5584_400d_af8f7683d9c64549" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 752 1 0 "cef6dc8b_b0ab_4b67_80965a20bad984a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumEvaporatorTemperature = StrFStr(MinimumEvaporatorTemperature); // }} "" // {{{ 753 1 0 "e95a4014_66ab_4bd9_9396f43fb303387c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumEvaporatorTemperature = StrFStr(MaximumEvaporatorTemperature); // }} "" // {{{ 754 1 0 "82d2e7b9_6b0f_4659_b3c4af2260f72b93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumGasTemperature = StrFStr(MinimumGasTemperature); // }} "" // {{{ 755 1 0 "9d086c63_6438_4455_839b70d859d33023" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumGasTemperature = StrFStr(MaximumGasTemperature); // }} "" // {{{ 756 1 0 "1c25f8f9_a087_4d7d_b537d06915cf733a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TargetTemperature = StrFStr(TargetTemperature); // }} "" // {{{ 757 1 0 "e0990ab5_662a_4046_a221118108390ad1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Heating = StrIStr(Heating); // }} "" // {{{ 758 1 0 "f32ac914_9488_4849_9b505cfae76c21a4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, Translate(""), Translate(""), id); // }} "" // {{ 759 1 0 "9f1343e7_8811_4e80_a8d30414ee14e3c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 760 1 0 "6161ab17_f584_4948_917386b1caf60999" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 761 1 0 "cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 762 1 0 "3be8b4d4_175f_4ea5_8a5c403023c23804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetPressureReadings") { // }} "" // {{{ 763 1 0 "d6ee9000_e96e_43ee_be294bac2de3cebd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 764 1 0 "62c2838f_1e9c_4f50_a8986bd6ab2e5735" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetPressureSensorReadings(DeviceID, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, o_stepReturn); // }} "" // {{{ 765 1 0 "9202b3b4_73ed_457a_8a0eb740d92668eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 766 1 0 "49fdda2e_2786_49cf_bbf53a56bb6cf951" "{C1F3C015-47B3-4514-9407-AC2E65043419}" InputPressureSensor = StrFStr(InputPressureSensor); // }} "" // {{{ 767 1 0 "5b345de1_5fff_4ef5_b48fac2958608067" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ManifoldPressureSensor = StrFStr(ManifoldPressureSensor); // }} "" // {{{ 768 1 0 "5083be24_6502_40dc_94e99eb7e72397de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HighPressureSensor = StrFStr(HighPressureSensor); // }} "" // {{{ 769 1 0 "c5d4f5bc_5388_4cac_a5c92cce84c5358c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LowPressureSensor = StrFStr(LowPressureSensor); // }} "" // {{{ 770 1 0 "93af4507_f837_4e4d_bd0cfa9d8f20db45" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 771 1 0 "3be8b4d4_175f_4ea5_8a5c403023c23804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 772 1 0 "cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 773 1 0 "8eb4fcd2_8586_4fdc_9eaa231938c2491c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 774 1 0 "fb5f809e_bea3_4152_8c23efc086a3f4c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetTemperatureRange") { // }} "" // {{{ 775 1 0 "04868a2f_2244_4262_b16ed3464405a2c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 776 1 0 "ac4b978a_8b0e_48c8_bfcc2cb81ada8852" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetTemperatureRange(DeviceID, MinimumTemperature, MaximumTemperature, o_stepReturn); // }} "" // {{{ 777 1 0 "878c4de8_f440_43d6_aa9a22d5f30c96bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 778 1 0 "9643b7dd_1445_4981_82306a0204482dcd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumTemperature = StrFStr(MinimumTemperature); // }} "" // {{{ 779 1 0 "5fb79249_c2be_45bc_a99aecb05a4cef34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumTemperature = StrFStr(MaximumTemperature); // }} "" // {{{ 780 1 0 "57512d47_ace9_4c17_a0287a31498292bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumTemperature, MaximumTemperature, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 781 1 0 "fb5f809e_bea3_4152_8c23efc086a3f4c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 782 1 0 "8eb4fcd2_8586_4fdc_9eaa231938c2491c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 783 1 0 "3f6b43d7_b3e1_4516_9a607047551e5f6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 784 1 0 "6be26021_e618_492e_8a3a5f94a52da0f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetVacuumStatus") { // }} "" // {{{ 785 1 0 "4db40245_36cd_40c8_b0602871bedce402" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 786 1 0 "cdd4bed1_2257_47d3_bb32dfb51dd99311" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetVacuumStatus(DeviceID, VacuumActive, o_stepReturn); // }} "" // {{{ 787 1 0 "434c4447_ccaa_4ae8_b5332ea4a5247979" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 788 1 0 "2758aebe_4437_4436_9ecd66602ecc20ea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" VacuumActive = StrIStr(VacuumActive); // }} "" // {{{ 789 1 0 "1a22fa96_1f2a_4efb_8d4d1070f05128b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, VacuumActive, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 790 1 0 "6be26021_e618_492e_8a3a5f94a52da0f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 791 1 0 "3f6b43d7_b3e1_4516_9a607047551e5f6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 792 1 0 "1fae7e92_6b1f_4f2a_8504e8aba7fe0846" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 793 1 0 "18c78d3a_83f1_4e2a_9721dc575c326856" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Initialize") { // }} "" // {{{ 794 1 0 "18e9c18e_3415_4f68_b3216e3a2bb3a082" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 795 1 0 "5335daba_8a63_418b_8286e19dbc73285e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Initialize(DeviceID, o_stepReturn); // }} "" // {{{ 796 1 0 "e9ab19e3_4828_4ead_93cb698560e3faff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 797 1 0 "67b12292_2128_495d_af7839b207477794" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 798 1 0 "18c78d3a_83f1_4e2a_9721dc575c326856" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 799 1 0 "1fae7e92_6b1f_4f2a_8504e8aba7fe0846" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 800 1 0 "d96ac0b7_1237_4603_ad86dfe4672ef89a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 801 1 0 "0addb922_82a5_48e4_bf52eeb97ac93f2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_InitializeWithParameters") { // }} "" // {{{ 802 1 0 "1c9e6c43_c0a4_4fa5_96eff1d2638b4426" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 803 1 0 "a9676aeb_9a8e_4f87_866088fd8da32782" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Smart"), Smart); // }} "" // {{{ 804 1 0 "b0f5b856_a01f_4937_bce0d90f8e48a0bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 805 1 0 "3d105105_b5a2_42bf_9008c50dfb529abf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("VacuumRunTime"), VacuumRunTime); // }} "" // {{{ 806 1 0 "1b067bb0_12d6_47c9_b86eb44ca7ac70a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 807 1 0 "abffb784_24c3_4278_9404e88b2a184ec3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 808 1 0 "7f31c229_eea4_4ebc_918ad520b4e80270" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 809 1 0 "0addb922_82a5_48e4_bf52eeb97ac93f2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 810 1 0 "d96ac0b7_1237_4603_ad86dfe4672ef89a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 811 1 0 "9e52a7cb_3167_4057_8d24d034c837de21" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 812 1 0 "5875c2d2_c94b_4860_9be1bc9f16bd64b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_SetSourceConfiguration") { // }} "" // {{{ 813 1 0 "77c0d7cc_1c53_47b5_af15f1eb5743701e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 814 1 0 "1150d6cb_b379_4fab_8bf98a17ac6ed92c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_SetSourceConfiguration(DeviceID, o_stepReturn); // }} "" // {{{ 815 1 0 "2ba32cb4_0177_497e_9a7f398e17134a01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 816 1 0 "a2b6bb52_3165_4bb9_986611d0b8594d1c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 817 1 0 "5875c2d2_c94b_4860_9be1bc9f16bd64b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 818 1 0 "9e52a7cb_3167_4057_8d24d034c837de21" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 819 1 0 "cf140f83_9405_4c31_aac2bda7e3c3644d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 820 1 0 "125ed949_ace4_48a0_a45208b5a26a9545" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetSourceConfiguration") { // }} "" // {{{ 821 1 0 "24cc9f9b_b984_4405_80b21f8bbad2c171" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 822 1 0 "105846b6_bda2_49d7_bb68c38e99c676ce" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetSourceConfiguration(DeviceID, o_stepReturn); // }} "" // {{{ 823 1 0 "8fd730db_f3ad_4187_819383f962b15dec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 824 1 0 "d5402a0c_e7d8_4021_98f2bc49164541bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 825 1 0 "125ed949_ace4_48a0_a45208b5a26a9545" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 826 1 0 "cf140f83_9405_4c31_aac2bda7e3c3644d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 827 1 0 "f0e280e8_46c7_4f0f_bce33a9d98578e01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 828 1 0 "656f66da_3ff6_4ceb_b3958dda3e826289" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_MeasureEmptyContainer") { // }} "" // {{{ 829 1 0 "23e6b66b_51c5_44d2_8107b570ab035bb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 830 1 0 "c791ded2_4daa_4097_811ad01cd9dbd85e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 831 1 0 "d4c8df90_fdb5_4fb4_a5ffe9e46525c9a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_MeasureEmptyContainer(DeviceID, SourceID, SensorReading, o_stepReturn); // }} "" // {{{ 832 1 0 "6766bf7d_aaa7_44dd_beb7bd1925733781" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SensorReading = StrIStr(SensorReading); // }} "" // {{{ 833 1 0 "f566d5c3_5839_4a53_aaa0e7e76d6a96d6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 834 1 0 "ca746d4d_adf9_4d6d_b0172f1cb9e3cefe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(""), Translate(""), id); // }} "" // {{ 835 1 0 "656f66da_3ff6_4ceb_b3958dda3e826289" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 836 1 0 "f0e280e8_46c7_4f0f_bce33a9d98578e01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 837 1 0 "5be53554_4034_4654_a74514eb0d84e4a0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 838 1 0 "ce68b054_3aea_4f0f_9742872cca60f368" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_MeasureFullContainer") { // }} "" // {{{ 839 1 0 "7ad49fa3_f8ed_4826_8c29ea54aff99447" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 840 1 0 "636296bf_cd25_4c6e_a97120b96714e0a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 841 1 0 "1025d7d1_0cb5_4c03_93a47206d7a73279" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_MeasureFullContainer(DeviceID, SourceID, SensorReading, o_stepReturn); // }} "" // {{{ 842 1 0 "14a2a705_9362_44f9_aacee14e4189bc2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SensorReading = StrIStr(SensorReading); // }} "" // {{{ 843 1 0 "64c67d08_dac7_49dc_8a3082c4658649d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 844 1 0 "08dbfd92_e2cd_4c53_8d8b8afb8f41b76a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(""), Translate(""), id); // }} "" // {{ 845 1 0 "ce68b054_3aea_4f0f_9742872cca60f368" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 846 1 0 "5be53554_4034_4654_a74514eb0d84e4a0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 847 1 0 "9e79226f_dd2d_49f1_9ab8ca9ddc07f66d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 848 1 0 "52fa4642_56e3_46b8_a5170d58a3d45e6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Prime") { // }} "" // {{{ 849 1 0 "d59e0e58_e6a4_49dc_b79c3b224f9250f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 850 1 0 "81800d57_5b2e_4f60_80fb02f54c6d898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 851 1 0 "6f11abee_b07f_4e3a_a91a2bb6132b9346" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 852 1 0 "65f68e8f_a3f8_4c0e_b02af46ef0830a94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 853 1 0 "92c62640_1748_47f5_a5b2d63033fab0fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 854 1 0 "bce1d424_198d_4a66_bb5cfcef4223a4c1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Prime(DeviceID, SourceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn); // }} "" // {{{ 855 1 0 "1d0fc35a_1e8f_492f_8115484ef5e4094c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 856 1 0 "7b33278e_8337_43df_80fb1df2dc8d7e27" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 857 1 0 "52fa4642_56e3_46b8_a5170d58a3d45e6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 858 1 0 "9e79226f_dd2d_49f1_9ab8ca9ddc07f66d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 859 1 0 "90d403df_555f_4782_bc0e9655c9dda244" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 860 1 0 "5d03c560_13d7_4f4a_97c5fcb059f5d281" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ProcessFilterToCollection") { // }} "" // {{{ 861 1 0 "327328cb_2c07_4cff_b99aff475bf220b0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 862 1 0 "c67ca153_084e_49de_aa07c55210f0743c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ControlPoints"), ControlPoints); // }} "" // {{{ 863 1 0 "3ccb3a1f_4958_435b_b896ebc512029a6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("ReturnPlate"), ReturnPlate); // }} "" // {{{ 864 1 0 "d9d5add8_e82e_4761_b5b96d5f19ec1723" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToCollectionPlate(DeviceID, ControlPoints, ReturnPlate, o_stepReturn); // }} "" // {{{ 865 1 0 "952f2d23_1b1e_4ff3_b0306759a52e52a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 866 1 0 "8d9318f1_ab21_410d_a9bfb449f75064ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 867 1 0 "5d03c560_13d7_4f4a_97c5fcb059f5d281" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 868 1 0 "90d403df_555f_4782_bc0e9655c9dda244" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 869 1 0 "8e0266d7_a3cc_479c_b67864f9bf0a850e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 870 1 0 "8d5a05ba_1847_47e1_9c2f5a7b692a6bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ProcessFilterToWaste") { // }} "" // {{{ 871 1 0 "45a60cc8_74a9_4d7c_9eae47c478baa5c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 872 1 0 "1549fe1a_4e94_418f_bb409f1556ef9241" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ControlPoints"), ControlPoints); // }} "" // {{{ 873 1 0 "6a1fdb1f_ef59_4c6d_998478bb54397381" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("ReturnPlate"), ReturnPlate); // }} "" // {{{ 874 1 0 "74579c6b_27e5_47a2_9358294506ae9b62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 875 1 0 "fbfbbfb6_9858_4eee_aecb1e386ef2ee6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 876 1 0 "e8ddd588_e12c_4e6a_9318d0626a183210" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToWasteContainer(DeviceID, ControlPoints, ReturnPlate, WasteContainerID, DisableVacuumCheck, o_stepReturn); // }} "" // {{{ 877 1 0 "104d821e_df7b_4d35_9358fdbad381b0c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 878 1 0 "930b1fd7_1382_4dd3_bec3f722282383d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 879 1 0 "8d5a05ba_1847_47e1_9c2f5a7b692a6bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 880 1 0 "8e0266d7_a3cc_479c_b67864f9bf0a850e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 881 1 0 "12fe0846_bf72_4286_8bd87488438262ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 882 1 0 "88ca5064_cc0c_42e8_8cf1b70855183b72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Disconnect") { // }} "" // {{{ 883 1 0 "469fd42b_7a31_4d98_91efb31d12064e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 884 1 0 "a37b4aa9_5d2f_4e3a_8134f806b1cc7204" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 885 1 0 "86edebb2_72b8_49f4_84f46c72b1cacaaa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 886 1 0 "d8835a8b_64ef_433a_8ca5a0a1a7302e05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 887 1 0 "88ca5064_cc0c_42e8_8cf1b70855183b72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 888 1 0 "12fe0846_bf72_4286_8bd87488438262ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 889 1 0 "0f50bc52_c930_4613_a737fe8df81950f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 890 1 0 "a4cfb4d0_9450_4bea_a67986a410d3d0ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_SaveContainerCalibration") { // }} "" // {{{ 891 1 0 "37f47b7e_5737_474b_907e35429bd3b21d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 892 1 0 "03cb3efd_4e78_47b4_8c863f235820287b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 893 1 0 "b4a3f09e_102f_45d2_a582493e7a8a228f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 894 1 0 "dce24d9b_3180_4f67_ab31767613c972ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 895 1 0 "a4cfb4d0_9450_4bea_a67986a410d3d0ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 896 1 0 "0f50bc52_c930_4613_a737fe8df81950f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 897 1 0 "1c67aaeb_23b3_4adc_8b6d8285f92b9619" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 898 1 0 "49d34248_b422_4716_b7759002c58bacb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StartContainerCalibration") { // }} "" // {{{ 899 1 0 "1a03095a_5902_4617_8f24e5d961eb85be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 900 1 0 "51b0d6df_b187_4cef_88ea5af60e98888f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 901 1 0 "c754fc8f_8a46_4c44_9ac4283328bd7a51" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Volume"), Volume); // }} "" // {{{ 902 1 0 "25291ac1_062d_4046_bf617e60aa36b67c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StartContainerCalibration(DeviceID, SourceID, Volume, o_stepReturn); // }} "" // {{{ 903 1 0 "bfce4774_8c8b_4403_8e0b05cc4d59500b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 904 1 0 "bc1476ec_35b7_4ec9_989c3db696569d39" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 905 1 0 "49d34248_b422_4716_b7759002c58bacb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 906 1 0 "1c67aaeb_23b3_4adc_8b6d8285f92b9619" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 907 1 0 "dbd9907a_199c_4651_90fe7cbb03cace83" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 908 1 0 "d748a994_8826_4dce_8d07e63e712b8463" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StartContainerCalibration") { // }} "" // {{{ 909 1 0 "6443322c_5eae_4730_a5933771d05f74fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 910 1 0 "0adc10ee_e236_40cc_851240df83158a48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 911 1 0 "661975a0_0aef_4017_bdd063beab2d6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Seconds"), Seconds); // }} "" // {{{ 912 1 0 "0e7caea8_5fcb_4b6c_954eb1ae00f391a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 913 1 0 "b681e1eb_fcbe_49e6_9116e45dfa6449ea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StartVacuum(DeviceID, WasteContainerID, Seconds, o_stepReturn); // }} "" // {{{ 914 1 0 "82d37b5c_3c66_495e_9db5a04e780cef4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 915 1 0 "182c0a15_8dbc_4c35_add3bac6dba81098" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 916 1 0 "d748a994_8826_4dce_8d07e63e712b8463" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 917 1 0 "dbd9907a_199c_4651_90fe7cbb03cace83" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 918 1 0 "4dfdb03a_1a13_4215_be00ca55de734fb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 919 1 0 "1d06fa20_af8b_41f5_b3f3daa03a904ebd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StopVacuum") { // }} "" // {{{ 920 1 0 "54fa31f5_5b7c_4668_927dc6f87a39b99e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 921 1 0 "0bf5dd1e_2e18_477b_adee0722aee70510" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StopVacuum(DeviceID, o_stepReturn); // }} "" // {{{ 922 1 0 "71f9a311_dfa0_4d62_8963c5c0ad21b5f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 923 1 0 "fe23d082_725d_444c_83290693ee1daf6a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 924 1 0 "1d06fa20_af8b_41f5_b3f3daa03a904ebd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 925 1 0 "4dfdb03a_1a13_4215_be00ca55de734fb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 926 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 927 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 928 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Initialize") { // }} "" // {{ 929 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 930 1 0 "efe73491_e5b4_499e_9b3f298c8b7a6398" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 931 1 0 "5c0fe710_4afe_4b11_bf186cfe8dc87978" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{ 932 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 933 1 0 "110af9db_52cf_4a40_94724a7476c48d86" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn); // }} "" // {{{ 934 1 0 "af9bf513_7c00_47bf_aee50c7cdb333b5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Initialize: "), o_stepReturn); // }} "" // {{{ 935 1 0 "cf0a8758_8a16_429a_97f320a142945224" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 936 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 937 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StartTempControl") { // }} "" // {{ 938 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 939 1 0 "de87c5cd_92f6_45a8_9ebd6fe71ac65dbc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 940 1 0 "26949b4a_2c44_4548_8de048c4f48bd98d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 941 1 0 "8ae03ef4_8584_4957_a32601dc8599dadf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn); // }} "" // {{{ 942 1 0 "934ba752_5ec3_489b_ae5a40dd1ea20440" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Start Temperature Control:"), o_stepReturn); // }} "" // {{{ 943 1 0 "a3528747_6990_4387_8839b01b71c3b754" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 944 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 945 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 946 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_SetTarget") { // }} "" // {{ 947 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 948 1 0 "55e81697_10a3_42fb_8777236a132ff0b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 949 1 0 "0177c1a2_7380_4683_94ff93e2ed1299b2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 950 1 0 "15559e31_3f7a_4336_9cabca6758b7c253" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("TargetTemperature"), TargetTemperature); // }} "" // {{ 951 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 952 1 0 "0dcffa9d_ea82_418b_be95240c1bfd0d77" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn); // }} "" // {{{ 953 1 0 "e9b0b663_7dd3_4e55_b206572d2c8a92c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Set Target:"), o_stepReturn); // }} "" // {{{ 954 1 0 "08ecb91c_e9c8_4c61_aca2c1f89fd97bab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 955 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 956 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StopTemperatureControl") { // }} "" // {{ 957 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 958 1 0 "b67518d4_e443_4a8f_947e8c457680c63e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 959 1 0 "045fda52_2303_4244_833066fb0005c21b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{ 960 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 961 1 0 "1c8947fe_b7a1_455a_94e7672ad3593b08" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn); // }} "" // {{{ 962 1 0 "285287f8_a3f9_43f0_9799c3ad98e59b9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco Stop Temperature Control:"), o_stepReturn); // }} "" // {{{ 963 1 0 "88d1a80e_0aa9_4314_ba83bc772f71a589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 964 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 965 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Terminate") { // }} "" // {{ 966 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 967 1 0 "c963c353_41bc_4f4a_b74a666b28831950" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("StopAllDevices"), StopAllDevices); // }} "" // {{ 968 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 969 1 0 "ea2ceb94_04fa_4204_96db2caf6871231f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn); // }} "" // {{{ 970 1 0 "cd495cf5_43ff_4b30_b0baa1f2cd96cf0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Terminate:"), o_stepReturn); // }} "" // {{{ 971 1 0 "bcce43cd_2b64_4caf_89bef8978a011dc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 972 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 973 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 974 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 975 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_Initialize") { // }} "" // {{ 976 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 977 1 0 "d824843f_bf44_4e8b_bb434b50a8b65716" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 978 1 0 "45b9f513_7eaf_4e63_ae92391c28cf15b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 979 1 0 "7f058eec_3092_45ce_862c43a3e0853c7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 980 1 0 "56a4490f_902b_4043_8172466a64e332bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Simulate"), Simulate); // }} "" // {{ 981 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 982 1 0 "c44a492c_8123_465b_acd4ff374583777d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn); // }} "" // {{{ 983 1 0 "a62df2e9_44bb_4099_a4d0597fbf0705de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Initialize:"), o_stepReturn); // }} "" // {{{ 984 1 0 "de7bfb5a_b1fa_42ee_b461782a3c381af4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 985 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 986 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_MoveToPosition") { // }} "" // {{ 987 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 988 1 0 "3092ee64_df80_4e56_b3cdffc0827e3c2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 989 1 0 "4284a9cf_3ea6_42f5_ae1f62d82cd11ebe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Angle"), Angle); // }} "" // {{ 990 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 991 1 0 "5b44092b_0faa_47ae_8005717c87a0f334" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn); // }} "" // {{{ 992 1 0 "4d912417_89ed_44f2_941bfb44efed0e2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Move to Position:"), o_stepReturn); // }} "" // {{{ 993 1 0 "0540bb67_399d_468d_853dd6ca4bb1c285" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 994 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 995 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 996 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 997 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "moveSequence") { // }} "" // {{{ 998 1 0 "6e83eea3_8863_4ca0_9ff603380f0dc4d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("inputSequence"), inputSequence); // }} "" // {{{ 999 1 0 "6b8903c6_6977_458a_8409f93724089454" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 1000 1 0 "77d9a84d_5987_4b3c_a76757ce15a19302" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 1001 1 0 "13c73535_4a98_49e2_ba1a02c30f02035b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 1002 1 0 "a33ebddb_88d8_4440_9a78132ed62d97f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, inputSequence, seq); // }} "" // {{{ 1003 1 0 "1dcc4914_aa2f_439e_8a2f431687c33852" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqFirstPosition = SeqGetPositionId(seq); // }} "" // {{{ 1004 1 0 "01f7bf35_3538_441d_98904fa827b05e68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 1005 1 0 "a37851fe_b9d0_42fa_9ccca7dd7b352a9c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{{ 1006 1 0 "fe9d84b8_86ec_4552_b187147351886cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqSecondPosition = SeqGetPositionId(seq); // }} "" // {{{ 1007 1 0 "5fa8b88a_cf88_49e1_8cb574503dc60e56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(seqFirstPosition, seqSecondPosition); // }} "" // {{{ 1008 1 0 "e590c4e1_91dd_41c0_82a254d4134fb734" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("First check"), Translate("Second check")); // }} "" // {{{ 1009 1 0 "2127d6de_e8bd_455a_88ad20e73b767061" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1010 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1011 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1012 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1013 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1014 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_measure") { // }} "" // {{{ 1015 1 0 "7c314622_d15c_42aa_a88b3d71caa33d0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1016 1 0 "9f15b042_95cd_4241_9b6262d3a4979ca7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1017 1 0 "34064a8d_5567_4fe5_b4349d0d061b9a1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1018 1 0 "0e34e118_df68_49fa_b3b9228d63deb6d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 1019 1 0 "025eece8_72cd_4190_a092d806fbab65a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 1020 1 0 "269c134a_bc59_4578_8da8bb7559f234a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 1021 1 0 "36ec28c1_360b_46e9_9243c01dbd3874e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 1022 1 0 "58445956_3204_41a3_a7acb03aaf25ccd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 1023 1 0 "465c2002_18cb_4ff2_9df9e423dbc6837c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1024 1 0 "40682224_6d73_4a7c_a2e33641f1768d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 1025 1 0 "e43a57a6_d83b_41d1_adf33f8f77ca7bc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 1026 1 0 "12a6bd74_f75b_44d1_b6f7c26d279d9610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 1027 1 0 "71b8f8bc_65c1_4e97_ab6eae03040f51dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 1028 1 0 "a8ca8abd_aa7a_412c_be527eb4e81efcb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1029 1 0 "a8647b92_b569_4a75_99a5333c438b3a23" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1030 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1031 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1032 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1033 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate_Dyn") { // }} "" // {{{ 1034 1 0 "de6a4eb0_04e1_47fc_86e27009d71152cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 1035 1 0 "5f551457_7af9_4567_bceacdf0018c9c38" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 1036 1 0 "60ee9fa5_c549_43a9_bbccdb0b14819583" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1037 1 0 "2211f515_9e69_4a1c_9603becd6fd866cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1038 1 0 "8449e1f4_6561_4b51_b91aa14423565eb2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 1039 1 0 "4429d4bb_e2fb_451f_8558de74111dbe3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Variance"), Variance); // }} "" // {{{ 1040 1 0 "a918fadc_db95_4e4b_9c445a903a59f17a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 1041 1 0 "7611bb65_5e77_408e_98384f0fec68e958" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 1042 1 0 "74418f44_640a_4b4b_88234a74841f1dbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate Dynamically"), o_stepReturn); // }} "" // {{{ 1043 1 0 "13218e03_9ac9_44ed_8af864397e865cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1044 1 0 "6257eb41_ce75_45b1_bea89bce20631222" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1045 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1046 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1047 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1048 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate") { // }} "" // {{{ 1049 1 0 "c7a809a1_1dc8_47c2_a8006c785355c50e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 1050 1 0 "27f7a889_0250_42a5_87699d0b0d52d36b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 1051 1 0 "b624fe53_a0c2_44e7_92eb12cc744fa799" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1052 1 0 "9f642188_0286_4e80_81cb485423a155c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1053 1 0 "c7530a85_7f29_4069_9a8e94318ffec0d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 1054 1 0 "849206a3_ea5c_4440_a08cdbcb81354e94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 1055 1 0 "9f9ab695_0d32_4bf4_bf5a4b0207a2c780" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 1056 1 0 "c1db8c11_4c25_4c9c_b424e06999583f09" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1057 1 0 "29e43762_b009_40ad_b93a5ac2372cca00" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1058 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1059 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1060 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1061 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Enable_Extended_Log") { // }} "" // {{{ 1062 1 0 "1791ad6e_39b2_4442_8b4470d0fc5497fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn); // }} "" // {{{ 1063 1 0 "b22a7836_ed52_4e9d_9e5df5babf8fa142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1064 1 0 "d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1065 1 0 "8d68d8f1_5b56_488b_a0676b4b50a35221" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1066 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1067 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1068 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1069 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Get_Last_Error") { // }} "" // {{{ 1070 1 0 "11bf85a6_3df2_4245_839282a900f3db71" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1071 1 0 "2c0b2633_5d81_41a1_aa90c51eb8d9d23d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn); // }} "" // {{{ 1072 1 0 "4d60f4e2_175b_4a4b_9b0bfb0f63211da0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Get Last Error"), o_stepReturn); // }} "" // {{{ 1073 1 0 "76df37d9_5928_4269_937630b417ad9a11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1074 1 0 "a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1075 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1076 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1077 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1078 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Initialize") { // }} "" // {{{ 1079 1 0 "a37d4042_a872_4da0_bf60a51312d5cc22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1080 1 0 "77530965_cb1f_4563_a1d848bb4faa3bb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1081 1 0 "295c3bab_f7f4_47d0_8075cf658ee0436f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn); // }} "" // {{{ 1082 1 0 "69f13066_cc39_48aa_85b093e1bc056907" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrIStr(o_stepReturn2); // }} "" // {{{ 1083 1 0 "3a9d7ad8_b8d0_45ee_9004e77ed5fbe471" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1084 1 0 "178d10c9_fe18_479a_b3e7922f87282612" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 1085 1 0 "66935de2_85a3_4ed0_95cddf772b15fb48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1086 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1087 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1088 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1089 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Measure_Dynamically") { // }} "" // {{{ 1090 1 0 "69eede79_0b96_4634_a4ed7995201d9b7d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1091 1 0 "6a018697_b8f4_4088_b8c650a2f028d197" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Precision"), Precision); // }} "" // {{{ 1092 1 0 "dfbe88b8_1dda_42ac_8175799123584051" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1093 1 0 "3ef27a25_aec7_4d5b_beb743b713c7526e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1094 1 0 "74a87116_8260_466d_a78e98fe0544a891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 1095 1 0 "425d37a5_2d55_4b09_a607303c754935db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure_Dynamically(ModuleID, Temperature, Precision, Timeout, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 1096 1 0 "0df3fc00_0550_45fa_b224d60b9bcd06c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 1097 1 0 "26992ae0_59eb_4678_ae304b460a7034db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 1098 1 0 "3beda7c9_5769_4578_b31431d2bab6d131" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 1099 1 0 "141952da_a201_4e85_9e446006849a95bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 1100 1 0 "f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1101 1 0 "5487a4f7_a9f8_448e_98b2cb671cb9c069" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 1102 1 0 "c8e7c221_d1e4_4818_b3e077f9aeb6a0a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 1103 1 0 "611376c4_8c68_46f2_8947cec12bb313f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 1104 1 0 "e113c0e5_7ab9_4244_86b73e7f24d2bfc8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 1105 1 0 "6286c2d7_a138_4844_bc77fd8a40a6a486" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1106 1 0 "39fd3518_8a14_43a1_8d41240f577c94eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1107 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1108 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1109 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1110 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Battery") { // }} "" // {{{ 1111 1 0 "c83f58ac_8db7_4477_bed8e57c9c784b8a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1112 1 0 "4b343bdb_fe40_4daa_8382b1265575e03a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn); // }} "" // {{{ 1113 1 0 "98f43381_9679_4d9f_b3d1238ed4c1d0c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1114 1 0 "b95371f0_7532_4426_b980d9824bf1d2b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ChargeCounter = StrIStr(ChargeCounter); // }} "" // {{{ 1115 1 0 "15324eca_50a4_4530_be7f08cdef0e6514" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BatteryCondition = StrIStr(BatteryCondition); // }} "" // {{{ 1116 1 0 "e694349e_13ad_46c1_b18f5eb4688f510e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ActualCharge = StrIStr(ActualCharge); // }} "" // {{{ 1117 1 0 "279c0c8e_1d53_437f_ac5e74b0ccffc7a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1118 1 0 "92db84c4_89c2_4902_819012506538681c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate("0"), Translate("0"), Translate("0"), Translate("0"), id); // }} "" // {{ 1119 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1120 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1121 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1122 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Calibration") { // }} "" // {{{ 1123 1 0 "250cbb57_43e2_4ca3_8ac97a4f8a848ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1124 1 0 "e2f361b4_fb8d_4bf8_b53c05720323632b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ProbeNumber"), ProbeNumber); // }} "" // {{{ 1125 1 0 "6e7357dd_030a_4f9d_b5cda736b409bbee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn); // }} "" // {{{ 1126 1 0 "aa859c68_b2ab_4304_9501a2d752587df6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowValue = StrFStr(pHLowValue); // }} "" // {{{ 1127 1 0 "7331e4fa_3e06_499a_84eed922b712aca5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowVoltage = StrFStr(pHLowVoltage); // }} "" // {{{ 1128 1 0 "3c2e720a_1c6e_4f09_afe077215aa438e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighValue = StrFStr(pHHighValue); // }} "" // {{{ 1129 1 0 "a9363a15_98fa_4a49_8451b25c27edea3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighVoltage = StrFStr(pHHighVoltage); // }} "" // {{{ 1130 1 0 "73007841_7490_489f_9c595a8e085e3a59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationTemperature = StrFStr(CalibrationTemperature); // }} "" // {{{ 1131 1 0 "49c841c4_b5cf_4ac7_9c2e87a2dc939210" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationOffset = StrFStr(CalibrationOffset); // }} "" // {{{ 1132 1 0 "d3535c95_47a6_46a6_80f73d15c4582508" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlope = StrFStr(CalibrationSlope); // }} "" // {{{ 1133 1 0 "a273e170_1488_4e16_884ae09c3a26d828" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio); // }} "" // {{{ 1134 1 0 "4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1135 1 0 "9ae40f13_d6cb_4a4e_9dc995de1da2d637" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Request Calibration Values"), o_stepReturn); // }} "" // {{{ 1136 1 0 "5aca9095_546e_4df5_b24364da04e44fe5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id); // }} "" // {{ 1137 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1138 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1139 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1140 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Probe_Data") { // }} "" // {{{ 1141 1 0 "04b155be_097f_4f2d_add1392fbf78b5f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1142 1 0 "c40a59cd_e266_4cc3_aa3dd3d526502930" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn); // }} "" // {{{ 1143 1 0 "306c68bb_ffd7_4233_b7f0c2c67678dfdf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1); // }} "" // {{{ 1144 1 0 "bbd1faef_5b8f_41ba_bf74a019b05da039" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2); // }} "" // {{{ 1145 1 0 "cb244d85_a14b_4bcb_ab81c5cdc38c6552" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3); // }} "" // {{{ 1146 1 0 "5476cf0c_49cc_4602_aec72872116d2e6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4); // }} "" // {{{ 1147 1 0 "6883841a_44f5_417f_8574566ed15ae444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), o_stepReturn); // }} "" // {{{ 1148 1 0 "fefec950_2bfa_429e_bdf791dc40dd0495" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1149 1 0 "0f6be956_31e3_4d1e_b232c4dc908ea6f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1150 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1151 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1152 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1153 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Technical_Data") { // }} "" // {{{ 1154 1 0 "3c80e1e2_a904_42ac_a3ddd5df5ca3a196" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1155 1 0 "8b2b24be_b84b_41b8_bd0f088f32554cb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 1156 1 0 "552e7bb6_cbdf_49ec_86ac28b54cae7f58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 1157 1 0 "1634fedb_a7e1_4130_ac1fb8d55f47b9e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HardwareNumber = StrIStr(HardwareNumber); // }} "" // {{{ 1158 1 0 "2cfb8725_b283_48b0_906a9741fe336744" "{C1F3C015-47B3-4514-9407-AC2E65043419}" PartNumber = StrIStr(PartNumber); // }} "" // {{{ 1159 1 0 "7b9a6dfa_9df8_40a8_9c0c39981dcf97e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Revision = StrIStr(Revision); // }} "" // {{{ 1160 1 0 "771c0483_6ea2_4299_81c7598839a5027b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SerialNumber = StrIStr(SerialNumber); // }} "" // {{{ 1161 1 0 "790984ff_e065_4212_a5c420f04d9f7e4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), o_stepReturn); // }} "" // {{{ 1162 1 0 "79aaa9cb_2db1_4f5d_8385023783e5cc82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1163 1 0 "371d6452_cf9d_4abe_9463f54ab7831231" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id); // }} "" // {{ 1164 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1165 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1166 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1167 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Voltage_Data") { // }} "" // {{{ 1168 1 0 "b6c0eb00_003a_45ed_9899c407d864455c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1169 1 0 "e4801131_30dc_4e2d_8ac9e80c0c13972c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Selector"), Selector); // }} "" // {{{ 1170 1 0 "ee48a65d_794b_411d_bb1668a267206d8b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn); // }} "" // {{{ 1171 1 0 "bf78a104_f3d4_45b6_a573a7219dcf05e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 1172 1 0 "ab32fbfb_2be2_4f6d_9c49def79adcfe31" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1173 1 0 "eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(""), Translate(""), id); // }} "" // {{ 1174 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1175 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1176 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1177 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 1178 1 0 "51fd11a2_c173_4d8a_be50512a820eb424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1179 1 0 "b1268215_064b_40bc_8b9e75cfc0edeac8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1180 1 0 "7665963b_aa9b_4a3c_ba522887f3b15ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1181 1 0 "8327c869_96c0_4394_9bf4c5b5c19f30d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1182 1 0 "5a5455ae_5598_4a29_8c5f621b0586ba79" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1183 1 0 "f534cbac_4de3_4425_85299c07c6ff73cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 1184 1 0 "12b0cc6a_4826_48ce_82c690ddf98441a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1185 1 0 "aee63add_2789_4971_b4867510d938caf6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1186 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1187 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1188 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1189 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Charge_Parameters") { // }} "" // {{{ 1190 1 0 "5e24703a_30cb_4538_aec7ba85b7c0d2a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1191 1 0 "31630603_a72b_4d8b_a21a501f5336c619" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Charge"), Charge); // }} "" // {{{ 1192 1 0 "41b8aa8b_7d8e_4351_ad9664e334fa00f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AutoCharge"), AutoCharge); // }} "" // {{{ 1193 1 0 "504d0d26_95ad_4181_a7c38162018496cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("AutoChargeLevel"), AutoChargeLevel); // }} "" // {{{ 1194 1 0 "576ecb10_c479_461f_9249f554f27e398b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn); // }} "" // {{{ 1195 1 0 "80503782_9e9a_4986_9e4bcdeac598c749" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Charge Parameters"), o_stepReturn); // }} "" // {{{ 1196 1 0 "ade249f5_6aa1_4939_90a22e6af0864e5e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1197 1 0 "4fb997db_4cdf_4b51_85bbb23941f19edb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1198 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1199 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1200 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1201 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Probe_Replacement_Date") { // }} "" // {{{ 1202 1 0 "eb0a7cc0_c83a_45a8_8bd6adbf05cadabe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1203 1 0 "c762429d_3619_4e70_9765fe207dab3d54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Probe"), Probe); // }} "" // {{{ 1204 1 0 "18bf75b8_9aa3_46d2_a3ad3bbab8c1e126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1205 1 0 "2b2bbaed_84c1_46d2_bd024b425aefa336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1206 1 0 "380453f0_b3e8_47ac_a06eb91552b3a11f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1207 1 0 "a8fcf799_ec41_4160_910a9c78e5395ae2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1208 1 0 "c95c2987_8098_48ed_9ad284801d556587" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Probe Replacement Date"), o_stepReturn); // }} "" // {{{ 1209 1 0 "4e986dcc_ee8e_4cc0_bb83628d0a0ec284" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1210 1 0 "d46fb139_6c48_4f2a_b09293a8a3509a12" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1211 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1212 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1213 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1214 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Shutdown") { // }} "" // {{{ 1215 1 0 "aec40299_6cef_4e16_ad88bccbdcae3b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1216 1 0 "c7715d80_e089_40ea_86fe6a446a2c9378" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Mode"), Mode); // }} "" // {{{ 1217 1 0 "212772c6_0ff7_41ef_9c35fb5828034d90" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn); // }} "" // {{{ 1218 1 0 "82055c44_b706_4c16_99b47c2a4ae600e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Shutdown"), o_stepReturn); // }} "" // {{{ 1219 1 0 "d76b0e51_c107_49cd_b6bcd25c44e4d066" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1220 1 0 "fbbaa73a_fa45_446d_8052e6e618fd2fad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1221 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1222 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1223 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1224 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Technical_Data") { // }} "" // {{{ 1225 1 0 "d6a005e1_4502_49d8_9a510afa4a2e833e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1226 1 0 "5ad112b0_da19_4b1b_a4649033defa7fef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 1227 1 0 "f4094e68_7940_4706_bae95f6277784476" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PartNumber"), PartNumber); // }} "" // {{{ 1228 1 0 "2b53f199_42d1_4808_a128c8ef4354e216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Revision"), Revision); // }} "" // {{{ 1229 1 0 "b5bf6715_e2e6_4e19_ad453dbb18396d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SerialNumber"), SerialNumber); // }} "" // {{{ 1230 1 0 "8cd5ff7f_9cb8_4f34_8afeb35175b47032" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 1231 1 0 "b60d9996_aa66_483d_b61518ffca638e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Technical Data"), o_stepReturn); // }} "" // {{{ 1232 1 0 "164f5289_e710_44eb_a1ea51e1622a7813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1233 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1234 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1235 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1236 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Trace_Level") { // }} "" // {{{ 1237 1 0 "dd6ba7d4_f5cc_4725_9776848c6e8343cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1238 1 0 "5a2c7ac9_8800_4926_96f26337aee59504" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1239 1 0 "88c51a62_4453_4cf5_ba0682a2cb1da767" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1240 1 0 "159aeb3e_3ed4_4ddc_a11cdfd939a7db7d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Trace Level"), o_stepReturn); // }} "" // {{{ 1241 1 0 "c3a5cc94_f346_4d04_a4be1fd04efbccc1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1242 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1243 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1244 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1245 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Sleep") { // }} "" // {{{ 1246 1 0 "153dc01b_be4b_403a_a40226aa4778c709" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1247 1 0 "a6f7384c_4c2e_4b3b_9682c00fb7a2f978" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn); // }} "" // {{{ 1248 1 0 "e82cf943_58b3_463e_a86afb9882353228" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Sleep"), o_stepReturn); // }} "" // {{{ 1249 1 0 "636ca48b_8789_40cc_8fb4dc35e8cbab54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1250 1 0 "5fb5b228_5342_414d_a548ac8dd5add837" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1251 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1252 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1253 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1254 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Terminate") { // }} "" // {{{ 1255 1 0 "b53cd271_035b_4870_961c552983b39351" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1256 1 0 "e133d234_4ccd_44cb_810d29742ee9f40e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn); // }} "" // {{{ 1257 1 0 "eb5a9614_5d18_44cd_83190a1d8eec2a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1258 1 0 "81b91833_cb16_43c5_a8935f9701536560" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1259 1 0 "add7dd5e_87e4_4ec1_a7b552234adc5d9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1260 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1261 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1262 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1263 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Wakeup") { // }} "" // {{{ 1264 1 0 "6b1d97c0_debd_402e_8c064a5c1fe48aca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1265 1 0 "09ffa3b4_530e_444f_943e5302e37f3fe0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn); // }} "" // {{{ 1266 1 0 "0d420182_40e4_43a8_872c5c81f7efa6d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1267 1 0 "f7bb0b0b_d222_43a7_b1b1236ab60e2847" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1268 1 0 "12251a91_a4ec_4a01_b041b503e2eef836" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1269 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1270 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1271 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1272 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Initialize") { // }} "" // {{{ 1273 1 0 "10713a72_dce4_482a_ad1d6d8db7bd210a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1274 1 0 "21f38719_99e7_4de4_bc16b312b6f57977" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1275 1 0 "75ac7c86_e474_45bc_8551fc9e302de4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 1276 1 0 "509760aa_ef16_454d_89cc23c0745d3c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 1277 1 0 "19e515a1_705c_45eb_b80e75767541c91a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1278 1 0 "a042f65b_875f_4b52_999c836815c84a6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1279 1 0 "f5fd2c44_2160_43fa_be88382bc9e0ff0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1280 1 0 "f2c8bfd1_3d33_4a00_84852ffbabef7b28" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1281 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1282 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1283 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1284 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Set_Trace") { // }} "" // {{{ 1285 1 0 "0029313d_525e_46ea_916912b33902e1eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1286 1 0 "ed79bcac_71ff_48ee_b968407f0dbdf4ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1287 1 0 "80f14967_56f1_4b78_9a3c9965460a9589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1288 1 0 "b3fdfb36_4bb4_4086_a19b5402f53fdd94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1289 1 0 "53206fbc_1492_4583_a2789c8083e49b46" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1290 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1291 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1292 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1293 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Wash") { // }} "" // {{{ 1294 1 0 "32bfd9a6_1ebc_4ca0_81e034f81d1af760" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1295 1 0 "a9208608_0099_4d5f_800d72adf563b9e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CycleNumber"), CycleNumber); // }} "" // {{{ 1296 1 0 "738f88ca_6ad7_4598_b1e4a3e1ccefcace" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn); // }} "" // {{{ 1297 1 0 "d009e19d_0560_4f89_b0f58bafa778b71b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Wash"), o_stepReturn); // }} "" // {{{ 1298 1 0 "49cdc51c_08eb_424b_920d3dcb647b2559" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1299 1 0 "2624b5a6_7428_4e88_a9b7fee8a8001e65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1300 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1301 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1302 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1303 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Terminate") { // }} "" // {{{ 1304 1 0 "e8e2fec9_d562_4524_b5d29880876bd109" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1305 1 0 "ad418c06_88fd_4649_9745bc00694fa53a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1306 1 0 "e8437e3c_0153_4bc0_86236a2e9849e22a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Terminate"), o_stepReturn); // }} "" // {{{ 1307 1 0 "32e4b0bc_48e5_4770_81a0113fdff8118a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1308 1 0 "c81e886b_51ec_42be_b2c989057781a5b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1309 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1310 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1311 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1312 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Initialize") { // }} "" // {{{ 1313 1 0 "b41d8294_bc5c_4346_999860e0f4cc913e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1314 1 0 "102abd73_15bb_472b_a1008b4eda35637e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1315 1 0 "58389380_f098_4c71_b61c0954f797753b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 1316 1 0 "2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 1317 1 0 "d95cbdf3_6278_437b_91525392a70e5356" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1318 1 0 "d35fefc8_f758_41da_a6073532f75cf092" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Initialize"), o_stepReturn); // }} "" // {{{ 1319 1 0 "e1deec6e_fc66_45bd_93821e20a78853fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1320 1 0 "01bdb50d_0f38_40e2_8993f814ea652b66" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1321 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1322 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1323 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1324 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Set_Trace") { // }} "" // {{{ 1325 1 0 "f7fc7449_63b2_4e8b_8d0eaf3f931e834d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1326 1 0 "ef77cea9_ef26_4525_bea967ec7f086b88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1327 1 0 "24784b11_b6f4_461e_b526cbbb677864ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1328 1 0 "d5ebe375_f7dd_45c2_b3e242a8edf4f175" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Dryer Trace Level"), o_stepReturn); // }} "" // {{{ 1329 1 0 "f61751e3_57be_4b1d_b8a1d370a4c1773c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1330 1 0 "d216caef_1c5d_4f05_8252d1a77df45535" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1331 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1332 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1333 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1334 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Start_Drying") { // }} "" // {{{ 1335 1 0 "45561f8e_cd7f_49d8_a8720b2ff7d0d932" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1336 1 0 "ecdddf7a_3c99_4f99_97b658f94a62554c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1337 1 0 "5a6daec0_a404_4a0a_ad9d88de43ac46c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Start Drying"), o_stepReturn); // }} "" // {{{ 1338 1 0 "e7173a44_d349_4ba2_8993647fbcd2eb1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1339 1 0 "17e3434b_dfff_457b_9aba0c22e9206cc7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1340 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1341 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1342 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1343 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Stop_Drying") { // }} "" // {{{ 1344 1 0 "f3eac478_54bb_4350_8c1811bf2ede8424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1345 1 0 "37262733_33d0_4723_94687e68249d1300" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1346 1 0 "6feb871c_61be_4812_a421af32d75f9871" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Stop Drying"), o_stepReturn); // }} "" // {{{ 1347 1 0 "2ba59e68_8358_4b86_a9108519bff6d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1348 1 0 "cbfcb2cb_00c9_445f_a28af2b6553efc31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1349 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1350 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1351 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1352 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Terminate") { // }} "" // {{{ 1353 1 0 "66453f41_07b7_4fd4_b2177e4994606836" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1354 1 0 "a5808bbd_63b3_4fc2_894ab4d4eb00b93d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID); // }} "" // {{{ 1355 1 0 "f844d13f_ecdb_465a_b0300a4976c0d809" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1356 1 0 "a28255b3_86ff_4928_abf87a7c3f930142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1357 1 0 "7e539911_cdda_4242_a337d58eba44508c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1358 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1359 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1360 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1361 1 0 "2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1362 1 0 "2dde624a_2df2_4014_8df18f6d92ed93b1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1363 1 0 "d6d5265b_416c_468f_a8f0a8225e294804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Initialize") { // }} "" // {{{ 1364 1 0 "32d149fa_c238_4e8c_9c9bfe8ca03b39ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PortNumber"), PortNumber); // }} "" // {{ 1365 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_43ECC15F92874e8a8FCA2A90F3412255 ; err.Clear(); // }} "" // {{{ 1366 1 0 "05f6e40b_f62a_4382_9b25ca234839aeb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::Initialize(ML_STAR, PortNumber, DefaultTemperature, ModuleID); // }} "" // {{ 1367 1 0 "b8eff0c4_8a87_4d69_8b1fc22443527e58" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1368 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_43ECC15F92874e8a8FCA2A90F3412255 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1369 1 0 "a6315690_dcdc_4faf_9764f4edcccee401" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1370 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1371 1 0 "b152d230_641d_44fd_82876d10beb25ffd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1372 1 0 "2178bb5d_1389_4bb3_92e038bed00ad7d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 1373 1 0 "0e8fa514_886c_42d7_a0fec5c2e0a40820" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1374 1 0 "d6d5265b_416c_468f_a8f0a8225e294804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1375 1 0 "2dde624a_2df2_4014_8df18f6d92ed93b1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1376 1 0 "a96843cd_6adb_45f6_86b4971bd2682521" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1377 1 0 "2a26b412_4bc5_49d9_b1cdc64938a3cf0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_MeasureCycle") { // }} "" // {{{ 1378 1 0 "e78c25fc_f856_4c7d_bb7f6056d2ae0e9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1379 1 0 "4c0064bb_0c23_4648_b57e5599878d63f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqMeasurement"), seqMeasurement); // }} "" // {{ 1380 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (seqMeasurement == "") { // }} "" // {{{ 1381 1 0 "a11073f7_18e2_4097_baf006ed44e74081" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("MeasurePositions"), MeasurePositions); // }} "" // {{{ 1382 1 0 "47d49bd0_0457_440d_b1d654c85ac3c5db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(MeasurePositions, seq); // }} "" // {{ 1383 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1384 1 0 "bbddeeab_2dc4_4931_900a5ec07aafe0be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, seqMeasure, seq); // }} "" // {{ 1385 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1386 1 0 "6b06d7c5_bf98_48d9_906ae705e4ce149b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("MeasureHeight"), MeasureHeight); // }} "" // {{{ 1387 1 0 "25fe4c02_a4e2_40cd_91289dc1c5c638b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ProbePattern"), ProbePattern); // }} "" // {{{ 1388 1 0 "02a9e02a_0596_4158_ac021180b0b5985c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MeasureTime"), MeasureTime); // }} "" // {{{ 1389 1 0 "f8080019_d032_4f0c_9ef8429bde9ee7df" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1390 1 0 "83142ee1_d831_4ff1_a6734844fe789421" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::MeasureCycle(ML_STAR, ModuleID, seq, MeasureHeight, ProbePattern, MeasureTime, Temperature, arrpHValues); // }} "" // {{{ 1391 1 0 "d4d4974a_23a2_43a2_851b478f0e7d24be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrpHValues, flt_pHValues); // }} "" // {{{ 1392 1 0 "bde9c162_a4cf_40fa_a663c6b78e029610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1393 1 0 "0a5c18e9_775d_4644_bdfcc536000642cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Measure Cycle"), o_stepReturn); // }} "" // {{{ 1394 1 0 "c1502c7b_2bd0_480c_a0ce6887e02484bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, flt_pHValues, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1395 1 0 "2a26b412_4bc5_49d9_b1cdc64938a3cf0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1396 1 0 "a96843cd_6adb_45f6_86b4971bd2682521" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1397 1 0 "e66a9dff_c0b5_4864_ad32fce97f16a3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1398 1 0 "5185a83c_8ff6_42f8_b1dc5fc006d041ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Calibrate") { // }} "" // {{{ 1399 1 0 "d9d7f7cb_394b_40ea_a037e16efc8e063c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1400 1 0 "0e65e09c_0178_403b_9eca768c440a479f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1401 1 0 "fedae8c3_0c9d_426f_a30e8fdfa1d2b056" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1402 1 0 "ad8456a9_07be_4852_b2bab182e7e17dae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqCalibration1"), Calibration1); // }} "" // {{{ 1403 1 0 "8b591ca2_adf8_4248_b5ac1fb2a84c21aa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Calibration1, seqCalibration1); // }} "" // {{{ 1404 1 0 "0f28a5e9_278c_4290_aa9ee416f829755a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqCalibration2"), Calibration2); // }} "" // {{{ 1405 1 0 "b57e28d3_0011_4657_bbceba83ca97b89a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Calibration2, seqCalibration2); // }} "" // {{{ 1406 1 0 "101798f0_c18a_411a_b29295d972cc9a6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqReference"), Reference); // }} "" // {{{ 1407 1 0 "1c415c8d_660d_41fe_a81fcfd6d8836038" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Reference, seqReference); // }} "" // {{{ 1408 1 0 "20510ceb_5840_48de_842a1b657fa7706d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationTime"), CalibrationTime); // }} "" // {{{ 1409 1 0 "ecd67637_3e8e_4d22_89b67b39e05342fe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MeasureTime"), MeasureTime); // }} "" // {{{ 1410 1 0 "148b5d07_b84d_4786_b1d0f9d5e5837491" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("MeasureHeight"), MeasureHeight); // }} "" // {{{ 1411 1 0 "938c1584_a353_4f03_ba14c9f33cc2c6a7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue1"), CalibrationValue1); // }} "" // {{{ 1412 1 0 "cda9048b_fe59_4db2_a1d08550795038f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue2"), CalibrationValue2); // }} "" // {{{ 1413 1 0 "5d669238_eb69_4080_8b789139b291be94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValueRef"), CalibrationValueRef); // }} "" // {{{ 1414 1 0 "4c7c9992_c2e0_445a_bee9cd7dd086e585" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSoln1"), TempSoln1); // }} "" // {{{ 1415 1 0 "9574a12d_456e_4fd6_9b51714dd88b4a1e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSoln2"), TempSoln2); // }} "" // {{{ 1416 1 0 "211f81c7_5561_45ce_8cf247e76fb0f65e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSolnRef"), TempSolnRef); // }} "" // {{{ 1417 1 0 "f812ea75_ed49_4a04_b4ab3dd67f1206ad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrateDynamically"), blnCalibrateDynamically); // }} "" // {{{ 1418 1 0 "178d95b8_13db_4493_a08cdaec1348c0e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1419 1 0 "d4d33c2d_2aee_4a51_ad36cb953d687c83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{ 1420 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F882CD31309846e3BD30959B418AB982 ; err.Clear(); // }} "" // {{{ 1421 1 0 "ff44fdd8_7acc_46f7_a7c3a207ad5d7bf8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Calibrate(ML_STAR, ModuleID, seqModule, seqCalibration1, seqCalibration2, seqReference, CalibrationTime, MeasureTime, MeasureHeight, CalibrationValue1, CalibrationValue2, CalibrationValueRef, TempSoln1, TempSoln2, TempSolnRef, blnCalibrateDynamically, arrCalibrationSlopeRatios, arrpHValuesReferenceSolution); // }} "" // {{ 1422 1 0 "18724129_2443_4271_a6316a42ef334c73" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1423 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F882CD31309846e3BD30959B418AB982 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1424 1 0 "d6c65e91_f6e8_47d9_aaf1810ffab1ffac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1425 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1426 1 0 "7375b9e4_01c3_49a1_810fb42149ed0eea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrCalibrationSlopeRatios, CalibrationSlopeRatios); // }} "" // {{{ 1427 1 0 "31ba6e89_258d_4deb_97352544c3b5c45c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrpHValuesReferenceSolution, pHValuesReferenceSolution); // }} "" // {{{ 1428 1 0 "924064ec_85ac_4b42_a5ff3eb8a6a5342f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 1429 1 0 "65bd0fe0_0efb_4335_b118b89e61b948ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1430 1 0 "5185a83c_8ff6_42f8_b1dc5fc006d041ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1431 1 0 "e66a9dff_c0b5_4864_ad32fce97f16a3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1432 1 0 "b6af2262_3e2f_4d3a_8efaa95d707f7c9b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1433 1 0 "190d0e3a_2978_407c_a8482f5f7e239261" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Dry") { // }} "" // {{{ 1434 1 0 "0f0bf03e_4950_40e7_b2899f9cabb79cb3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{ 1435 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_D19CA5AD1071407b84599779A41B51EA ; err.Clear(); // }} "" // {{{ 1436 1 0 "1885a8d9_8082_44ab_bfd7a217170187db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::Dry(ML_STAR, ModuleID); // }} "" // {{ 1437 1 0 "33dddcad_4489_4f31_8b4fea145ebbe77b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1438 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_D19CA5AD1071407b84599779A41B51EA : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1439 1 0 "d8f5d052_f205_4e22_8998e2d0d12790ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1440 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1441 1 0 "5521c0c7_c64b_4b49_9036f9bf6a7a83d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1442 1 0 "9e7864cd_a0bd_4ec6_8f733a2e7ab773bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1443 1 0 "190d0e3a_2978_407c_a8482f5f7e239261" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1444 1 0 "b6af2262_3e2f_4d3a_8efaa95d707f7c9b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1445 1 0 "98f952c5_628a_415d_a46b3e75e0c33d60" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1446 1 0 "370e55f1_98b7_4dfb_9640d7a634f44a8f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Wash") { // }} "" // {{{ 1447 1 0 "39b0590c_dc8d_4eb3_b8bfcab65235f494" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{ 1448 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 ; err.Clear(); // }} "" // {{{ 1449 1 0 "beaffdda_e52a_4f79_95659f907946752f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Wash(ML_STAR, ModuleID); // }} "" // {{ 1450 1 0 "58aab21a_307b_403b_980186d201a7c6ac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1451 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1452 1 0 "4cd2a753_2761_4d3c_9cd93c15fa19a47b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1453 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1454 1 0 "0af219f8_e5bc_4b14_a95fd7e3f2ccb712" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1455 1 0 "7b44ca9e_e6d7_4793_8f937fc518ecc41c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1456 1 0 "370e55f1_98b7_4dfb_9640d7a634f44a8f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1457 1 0 "98f952c5_628a_415d_a46b3e75e0c33d60" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1458 1 0 "3246255f_383b_4742_b7eb17cad21acec0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1459 1 0 "f70b31d7_c863_488a_90c4df10a4677c68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_SetParameters") { // }} "" // {{{ 1460 1 0 "7e5e111c_21f5_4c0b_9dd06d15aee64431" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqGripper"), Gripper); // }} "" // {{{ 1461 1 0 "8417ab78_f4b8_40aa_890f3b14e4204667" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Gripper, seqGripper); // }} "" // {{{ 1462 1 0 "f43d4896_c19a_4cc9_ad3c75f925788b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqWashPosition"), WashPosition); // }} "" // {{{ 1463 1 0 "ffcc2479_6c91_4038_bab179b027d4b03b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, WashPosition, seqWashPosition); // }} "" // {{{ 1464 1 0 "b731d1c6_30bc_4003_ba19e062e82293db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqDryPosition"), DryPosition); // }} "" // {{{ 1465 1 0 "a68ddb6b_780a_46ed_bcaa350f92f649fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, DryPosition, seqDryPosition); // }} "" // {{{ 1466 1 0 "020f31e6_e3ef_48f4_af0e175e60e00159" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TransportChannel"), TransportChannel); // }} "" // {{{ 1467 1 0 "1561e8c8_acaa_438f_9c7c57a5c196556f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WashCycles"), WashCycles); // }} "" // {{{ 1468 1 0 "7e0a9629_dce6_4ed9_81b854f636408ff0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryCycles"), DryCycles); // }} "" // {{{ 1469 1 0 "dacc3c17_6358_44f0_8ac4ad1fa0ae08b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryTime"), DryTime); // }} "" // {{{ 1470 1 0 "f86b35ff_9db7_4845_a3cfb7d04c520c3d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::SetParameter(ML_STAR, seqGripper, seqWashPosition, seqDryPosition, TransportChannel, WashCycles, DryCycles, DryTime); // }} "" // {{{ 1471 1 0 "ce0a2f35_ae58_4695_85513126a4acb791" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1472 1 0 "da69f49c_299d_435d_9d95dc10f7303ce9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1473 1 0 "bd10bc62_2ace_436a_a68acec8c1f9287b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1474 1 0 "f70b31d7_c863_488a_90c4df10a4677c68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1475 1 0 "3246255f_383b_4742_b7eb17cad21acec0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1476 1 0 "f19bf36e_3e74_4647_bd1c33a627d4634a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1477 1 0 "1aad8d75_d37e_4c4a_9b83799194c716fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Park") { // }} "" // {{{ 1478 1 0 "90471824_8967_4383_a722d29bfaf60113" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1479 1 0 "f6bbc2b1_c86d_4f64_abc12d3b740b1d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1480 1 0 "9341ffae_9e0c_43f9_b3ccedcfbadb07cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1481 1 0 "9e0a230a_fdb5_4eec_9cf3127779adb1d2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::ParkModule(ML_STAR, ModuleID, seqModule); // }} "" // {{{ 1482 1 0 "8aacb0d9_a918_426b_9717bd2febc1f74a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1483 1 0 "15592ad5_5751_4636_8a513ee3f27c7f11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1484 1 0 "6222366b_a5bf_4c73_8685a3cdebb4ff4f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1485 1 0 "1aad8d75_d37e_4c4a_9b83799194c716fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1486 1 0 "f19bf36e_3e74_4647_bd1c33a627d4634a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1487 1 0 "602611db_9ad3_4dbb_aae8e288d8e1c21f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1488 1 0 "a3bcbf9b_35d6_4291_9c4f146afb2924be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Pickup") { // }} "" // {{{ 1489 1 0 "347e06d8_9db7_4279_bf224e9ecf4299e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1490 1 0 "2b0761dc_e201_46b3_a590b52421cd8ee9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1491 1 0 "76631bc5_230e_4e20_87bf493887cddd0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1492 1 0 "2d3aba8b_cc4b_4be1_a83c30695fcf6dbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::PickupModule(ML_STAR, ModuleID, seqModule); // }} "" // {{{ 1493 1 0 "7879f9b5_2eea_4059_8e4bef3213e8decd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1494 1 0 "cb1582a1_3f8c_44fd_910a5f08dbe32b05" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1495 1 0 "a15fc9df_322f_4ce1_83228c63669e6b16" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1496 1 0 "a3bcbf9b_35d6_4291_9c4f146afb2924be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1497 1 0 "602611db_9ad3_4dbb_aae8e288d8e1c21f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1498 1 0 "3bc97044_ccb0_46b1_9516921492be9a5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1499 1 0 "dac7c2f7_1665_4a9c_82959eadd12ab417" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_ExtendedLog") { // }} "" // {{{ 1500 1 0 "d101eee8_9402_428a_aa576d531ed959c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::EnableExtendedLog(); // }} "" // {{{ 1501 1 0 "bc849548_9009_43ec_bb1b6c81c32132f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), 1); // }} "" // {{{ 1502 1 0 "0a496202_0f55_4f40_8b391260caa236ba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, 1, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1503 1 0 "dac7c2f7_1665_4a9c_82959eadd12ab417" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1504 1 0 "3bc97044_ccb0_46b1_9516921492be9a5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1505 1 0 "e397a319_e6cb_4188_b45c6ef45c974fba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1506 1 0 "bffc8683_40d3_4277_ac66bc7d43d675f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_LoadLastConfig") { // }} "" // {{ 1507 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B416552A06404ef48774D74059C2B182 ; err.Clear(); // }} "" // {{{ 1508 1 0 "154ec087_ea2e_4381_bb2e261ffad534f1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationLoad(BluetoothPort, NumWashCycles, NumDryCycles, DryTime); // }} "" // {{ 1509 1 0 "79340e9d_69d5_4911_b4601ae4754a16c4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1510 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B416552A06404ef48774D74059C2B182 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1511 1 0 "46420553_d90f_4dfa_b42c9d86856c288a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1512 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1513 1 0 "54b468e0_3ea0_4e83_9ffae95722c5cb9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BluetoothPort = StrIStr(BluetoothPort); // }} "" // {{{ 1514 1 0 "7bde202f_1c1b_4911_9f600ac6e1a5b57c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" NumWashCycles = StrIStr(NumWashCycles); // }} "" // {{{ 1515 1 0 "c5d427d2_0b0e_4f92_8c5b0b2cbfbfb4d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" NumDryCycles = StrIStr(NumDryCycles); // }} "" // {{{ 1516 1 0 "027378a7_4549_4d3f_b8d33aa4980be4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DryTime = StrIStr(DryTime); // }} "" // {{{ 1517 1 0 "fbda7cdb_3ed9_4a5c_907ce60556e0129b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), 1); // }} "" // {{{ 1518 1 0 "e454face_7eee_4c6e_a61e221c0e5d7fb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, BluetoothPort, NumWashCycles, NumDryCycles, DryTime, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1519 1 0 "bffc8683_40d3_4277_ac66bc7d43d675f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1520 1 0 "e397a319_e6cb_4188_b45c6ef45c974fba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1521 1 0 "dbcfe074_1fad_446d_addaa6c1b41a3a01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1522 1 0 "2bd801dc_3ffb_4b97_9f8af54ebda4fdae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_SaveLastConfig") { // }} "" // {{{ 1523 1 0 "aca4c717_812e_46f9_8eb5989a720adb24" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("BluetoothPort"), BluetoothPort); // }} "" // {{{ 1524 1 0 "1198edc8_1ec9_479d_a4e7fd71ed50cf8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("NumWashCycles"), NumWashCycles); // }} "" // {{{ 1525 1 0 "be958699_818e_43db_a757a67b7b54572a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("NumDryCycles"), NumDryCycles); // }} "" // {{{ 1526 1 0 "8751a2c3_e6ee_43bf_b21f5458aebf179a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryTime"), DryTime); // }} "" // {{ 1527 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_4973F03471994119A9F699CE6459CBFC ; err.Clear(); // }} "" // {{{ 1528 1 0 "1480ff51_54ea_4c38_befa457e23966aca" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationSave(BluetoothPort, NumWashCycles, NumDryCycles, DryTime); // }} "" // {{ 1529 1 0 "0e101f68_bc36_42fe_882a3951ef193f80" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1530 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_4973F03471994119A9F699CE6459CBFC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1531 1 0 "2e180d98_e746_4b84_b623b4d0e8e198fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1532 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1533 1 0 "cb24f9db_18c1_41af_b6f16900826be7be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 1534 1 0 "87c5e5f6_77ee_4519_879fdceaf21c1d7f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1535 1 0 "2bd801dc_3ffb_4b97_9f8af54ebda4fdae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1536 1 0 "dbcfe074_1fad_446d_addaa6c1b41a3a01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1537 1 0 "d30f6a39_499f_4b79_b2bfbdb6bb128b96" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1538 1 0 "25171dbf_33de_42a2_ad9b9d9639b5112a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 1539 1 0 "bdbbc648_a9fa_468f_b5d4d390115575eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1540 1 0 "1a74d7ad_0c35_454c_b161ede32468b2af" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1541 1 0 "c67afa78_dd60_451b_b2e31a2e6540f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1542 1 0 "2424dca1_971a_40f8_97b763c253560a2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1543 1 0 "8def2ba5_b51c_4e0c_b6ebfdd346a5beec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1544 1 0 "684d328d_214e_4955_bfe9ff0627b7f8cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 1545 1 0 "e6ec0fc8_d42c_4413_b2c2719c3cd18dc7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1546 1 0 "6f2273c4_1e1e_46f3_9ea6544d76383266" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1547 1 0 "25171dbf_33de_42a2_ad9b9d9639b5112a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1548 1 0 "d30f6a39_499f_4b79_b2bfbdb6bb128b96" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1549 1 0 "427cf00a_8c98_4fb4_8db6842164909152" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1550 1 0 "d75fbb16_6016_4c73_aecf79ca07dae29d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Terminate") { // }} "" // {{{ 1551 1 0 "b43cf782_b210_48c8_933f4cdfae78d050" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1552 1 0 "efbfd98d_c15d_4ac9_b94250ab4361a8b9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Terminate(ModuleID); // }} "" // {{{ 1553 1 0 "c918ad91_e33e_4f2f_9c6577fd8c93aaf4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1554 1 0 "2021a914_67dd_495e_9a9e4cf4438df298" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1555 1 0 "8d8842cd_e3b4_4397_92ad69593e9f7796" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1556 1 0 "d75fbb16_6016_4c73_aecf79ca07dae29d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1557 1 0 "427cf00a_8c98_4fb4_8db6842164909152" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1558 1 0 "2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1559 1 0 "6aa13f85_d8b8_4a2a_93232eeb15e0a01d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1560 1 0 "5edd27c8_de57_4980_b51d920a4d49d519" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1561 1 0 "e9d4ea17_6e30_44ae_88b03485525c4f92" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Initialize") { // }} "" // {{{ 1562 1 0 "2f9ae938_94b1_43c8_ade094614ef090a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("DeviceName"), DeviceName); // }} "" // {{{ 1563 1 0 "6cf1bcde_fb2a_4296_97b01233bdd9aa87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("AdapterDeviceID"), AdapterDeviceID); // }} "" // {{{ 1564 1 0 "58031a2b_13b4_4278_8e347d343a3bd1d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("NodeName"), NodeName); // }} "" // {{{ 1565 1 0 "20c35752_843f_4adb_904d5d26323821a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1566 1 0 "0b3f2efc_0773_4a25_84493465094ac5e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AlwaysInitialize"), AlwaysInitialize); // }} "" // {{{ 1567 1 0 "6ad8399f_eed7_4e65_98fe7d1432f0736b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Initialize(Label, NodeName, SimulationMode, AlwaysInitialize, o_stepReturn); // }} "" // {{{ 1568 1 0 "3a426d02_40f4_4c1f_b9061d37e5a4cd35" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1569 1 0 "01608cb1_fac5_42cd_bcfdf5fc7359c26d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1570 1 0 "0e3b4229_d57f_445f_a7c9d9140939367f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1571 1 0 "e9d4ea17_6e30_44ae_88b03485525c4f92" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1572 1 0 "5edd27c8_de57_4980_b51d920a4d49d519" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1573 1 0 "48cb330b_8197_439e_974791118048b53e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1574 1 0 "cc879722_4e99_410c_a8454d136f6aae6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Centrifuge") { // }} "" // {{{ 1575 1 0 "efe031a0_7aa0_4846_bf8969fbd7906970" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1576 1 0 "5965cb4a_0190_415d_862b773944074e57" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("CloseCoverAtEnd"), CloseCoverAtEnd); // }} "" // {{{ 1577 1 0 "1f94f31f_0ef0_403b_bda3b50c2fd9c38b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PresentPosition"), intPresentPosition); // }} "" // {{{ 1578 1 0 "dde8e447_4774_45bf_a244c5fab4041838" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Direction"), Direction); // }} "" // {{{ 1579 1 0 "cf0fab96_e65f_4e8a_85a809800b192075" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArraySpeed"), ArrSpeed); // }} "" // {{{ 1580 1 0 "0ca69f46_9c96_402e_9b1587ced7bff5c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArrayAcceleration"), ArrAcceleration); // }} "" // {{{ 1581 1 0 "d37afa07_2508_484d_81b6f153e1aa28ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArrayDuration"), ArrDuration); // }} "" // {{{ 1582 1 0 "6f8e9cca_35cb_4393_9f845b2135e8c2d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Deceleration"), Deceleration); // }} "" // {{{ 1583 1 0 "42d02aa8_5a1f_4144_b475d634885c1d4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrDuration, Translate(","), i_ArrDuration, 0); // }} "" // {{{ 1584 1 0 "252eacff_1b04_4607_9403f7ebc9935d0a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrSpeed, Translate(","), i_ArrSpeed, 0); // }} "" // {{{ 1585 1 0 "e1de1f59_a4b3_4220_a987c7e8e67e82c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrAcceleration, Translate(","), i_ArrAcceleration, 0); // }} "" // {{{ 1586 1 0 "085cc0ce_663a_4e79_8bf732421e2f56a9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrAcceleration, i_ArrAcceleration); // }} "" // {{{ 1587 1 0 "5f942567_121a_417c_be3e2449c5473b40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrSpeed, i_ArrSpeed); // }} "" // {{{ 1588 1 0 "f88bd247_c7e5_4823_bd5e37605974f825" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrDuration, i_ArrDuration); // }} "" // {{{ 1589 1 0 "82e32803_a688_4f29_8a1c94dead53e48e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Centrifuge(Label, CloseCoverAtEnd, intPresentPosition, Direction, i_ArrSpeed, i_ArrAcceleration, i_ArrDuration, Deceleration, o_stepReturn); // }} "" // {{{ 1590 1 0 "6541fb1d_df0a_4f0c_8474d211e4e4721a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1591 1 0 "ca37a7ce_edb5_4864_90dffb84cbb93071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1592 1 0 "54bf0b61_3ff3_4e00_8d35d876bfec98bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1593 1 0 "cc879722_4e99_410c_a8454d136f6aae6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1594 1 0 "48cb330b_8197_439e_974791118048b53e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1595 1 0 "ad0b08d4_17f2_49d0_a67860ea51423835" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1596 1 0 "5d8f135c_f0e2_4460_861984fe9a7fa710" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_GetStatus") { // }} "" // {{{ 1597 1 0 "1be02a3f_6880_42b3_b612e480fcd7e403" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1598 1 0 "5dcbef58_09da_4530_afb23e072fe81806" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_GetRotationStatus(Label, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, o_stepReturn); // }} "" // {{{ 1599 1 0 "07344966_2aca_47d5_94006574d009ab21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1600 1 0 "47572e7c_3ab2_48e3_be4d5f024ede7c41" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, Translate(""), id); // }} "" // {{ 1601 1 0 "5d8f135c_f0e2_4460_861984fe9a7fa710" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1602 1 0 "ad0b08d4_17f2_49d0_a67860ea51423835" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1603 1 0 "cd7ca6de_07b8_4d48_875925ee71386e46" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1604 1 0 "2acb9ae8_850a_4120_a212cb2a4a6200bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Open") { // }} "" // {{{ 1605 1 0 "6a9181eb_a95e_4e7b_a8df77f39d3519e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1606 1 0 "6f785fb2_5cc2_4924_b9e514e193d96143" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverOpen(Label, o_stepReturn); // }} "" // {{{ 1607 1 0 "d7ac8b69_b503_4f26_81756b6dc894d246" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1608 1 0 "d707b09f_2dc6_4b2f_9fdb84c07c07f2b2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1609 1 0 "2acb9ae8_850a_4120_a212cb2a4a6200bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1610 1 0 "cd7ca6de_07b8_4d48_875925ee71386e46" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1611 1 0 "0d7255ee_b967_4693_8d7375d684b4747f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1612 1 0 "10b7afeb_e804_457e_88b935a2b48a71c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Close") { // }} "" // {{{ 1613 1 0 "dbed33cf_5e9c_4102_b254b161284b15e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1614 1 0 "f7647d6b_38bb_4d38_895246f5ac76fe59" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverClose(Label, o_stepReturn); // }} "" // {{{ 1615 1 0 "77bb0b57_a308_455c_baabf680266f4336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1616 1 0 "0c3dee9e_33f9_4f79_99400f9368f6da14" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1617 1 0 "10b7afeb_e804_457e_88b935a2b48a71c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1618 1 0 "0d7255ee_b967_4693_8d7375d684b4747f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1619 1 0 "4dcf2947_ad5a_47e8_8c8214244ffcb3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1620 1 0 "81386c58_3b5a_4743_9453eb6a117234ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Start") { // }} "" // {{{ 1621 1 0 "44af1318_1d60_4a35_a5714accdc0c242a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1622 1 0 "25c1c841_9dea_4404_afbc9b3efc307343" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Direction"), Direction); // }} "" // {{{ 1623 1 0 "d5af29b3_1f52_48d0_be771ca87547a6c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Speed"), Speed); // }} "" // {{{ 1624 1 0 "0615f300_6c08_4978_beb5ebd0c96a686e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Acceleration"), Acceleration); // }} "" // {{{ 1625 1 0 "8f4f8eba_1777_4696_b1185b776105f4e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MaxRunTime"), MaxRunTime); // }} "" // {{{ 1626 1 0 "6d0a342b_4d08_47ec_81979a6bcb184434" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StartCentrifuge(Label, Direction, Speed, Acceleration, MaxRunTime, o_stepReturn); // }} "" // {{{ 1627 1 0 "562e3df1_ee9e_4ef5_a70c4247d08e453f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1628 1 0 "d3624dd6_4de0_4827_b501bde2ca9e3d5a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1629 1 0 "81386c58_3b5a_4743_9453eb6a117234ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1630 1 0 "4dcf2947_ad5a_47e8_8c8214244ffcb3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1631 1 0 "e9168cf2_c9e7_40a5_a52e0b9ad08f1fed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1632 1 0 "225ad45c_32fa_4f7d_af063f5ce1ab907c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Stop") { // }} "" // {{{ 1633 1 0 "e5891eba_60d8_49f6_af7be2af0aef66a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1634 1 0 "4008af1e_863b_4a5a_9b4b33d547b6fd7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Decelleration"), Decelleration); // }} "" // {{{ 1635 1 0 "667c83ad_57d3_4ce9_a2dca9287fb97d7e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StopCentrifuge(Label, Decelleration, o_stepReturn); // }} "" // {{{ 1636 1 0 "43ffc328_4600_41cb_a084d56b006fee8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1637 1 0 "263c82c5_d2f1_463f_b2f102d150ca0a0f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1638 1 0 "225ad45c_32fa_4f7d_af063f5ce1ab907c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1639 1 0 "e9168cf2_c9e7_40a5_a52e0b9ad08f1fed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1640 1 0 "551d8e94_670b_4472_b73600d28f237682" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1641 1 0 "bd20d1b8_d440_4b6f_9041a5b536904a0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Terminate") { // }} "" // {{{ 1642 1 0 "1e54be13_32c5_43bd_bcea8da753eedd90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1643 1 0 "c884c5b1_cb4e_4d38_907361a00b32d3f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Terminate(Label, o_stepReturn); // }} "" // {{{ 1644 1 0 "fa01d6ec_8920_4fd7_adbc2f6f4f106df5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1645 1 0 "1664cc0f_d416_47d5_aa13970ade2397b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1646 1 0 "bd20d1b8_d440_4b6f_9041a5b536904a0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1647 1 0 "551d8e94_670b_4472_b73600d28f237682" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1648 1 0 "6aa13f85_d8b8_4a2a_93232eeb15e0a01d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1649 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1650 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Initialize") { // }} "" // {{{ 1651 1 0 "5efffd73_f295_4d3c_aacd37c74d2bc015" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ComPort"), Comport); // }} "" // {{{ 1652 1 0 "cc8f22a1_0ae7_40ee_82d2e071b7344cf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn); // }} "" // {{{ 1653 1 0 "b6f33534_c173_4c6c_820d96a48fa50a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Barcode initialize:"), o_stepReturn); // }} "" // {{{ 1654 1 0 "138ad752_fbd8_457e_948dd436ddb65822" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1655 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1656 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Read") { // }} "" // {{{ 1657 1 0 "0b3c261e_a906_4464_b0e5caa3ec640056" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Read(barcode); // }} "" // {{{ 1658 1 0 "98aadc47_a5a2_433d_84530ad050155ccd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("BarcodeReader_Read"), barcode); // }} "" // {{{ 1659 1 0 "e3fc85ee_a6d7_4d98_a3f9076b947565cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, barcode, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1660 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1661 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1662 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1663 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1664 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_BeginMonitoring") { // }} "" // {{{ 1665 1 0 "7dd862dc_f7f1_4600_94ca9b83762673dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1666 1 0 "d37d14e5_261f_418c_81f754eb75bf4920" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingToleranceRange"), shakingToleranceRange); // }} "" // {{{ 1667 1 0 "0919ceb3_189a_4885_93c8faeab9f9538b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sampleInterval"), sampleInterval); // }} "" // {{{ 1668 1 0 "bc3a749e_e1bb_4c4a_9aac06834d85080f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("action"), action); // }} "" // {{ 1669 1 0 "98795c5d_e3e5_4d8c_bba032968c530136" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1670 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ; err.Clear(); // }} "" // {{{ 1671 1 0 "a2a0a3bb_c0cf_4123_afe36d1d51ae233c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action); // }} "" // {{ 1672 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3202FD4CC34D478f892F31C7684340BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1673 1 0 "435e7414_9170_4bf9_bd0ac83f0ab51fad" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1674 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1675 1 0 "c00b8635_652d_48ca_8d345ed070306b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1676 1 0 "85ac1487_5644_4bae_b032f5c191aa47c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1677 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1678 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1679 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1680 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateStarDevice") { // }} "" // {{{ 1681 1 0 "4c3dfdd2_2dd6_4c5f_831f92590c13e82e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1682 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ; err.Clear(); // }} "" // {{{ 1683 1 0 "cc3d4234_12d6_486a_a110c8ede0e3059b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber); // }} "" // {{ 1684 1 0 "f17e82ff_88ef_4685_bf6f75a8ca0e32f6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1685 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1686 1 0 "c0256452_8d47_4f97_9e9c2250a44934d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1687 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1688 1 0 "7699b24c_5ec6_4cca_b1cb9aed9ce60247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1689 1 0 "85155966_9554_40cb_9693f9b0a11b25a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1690 1 0 "d049e779_0761_471d_9f7b8af0967d1633" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1691 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1692 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1693 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1694 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateUSBDevice") { // }} "" // {{{ 1695 1 0 "72f0a762_2550_45ad_bea063f4f72a9fe9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1696 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ; err.Clear(); // }} "" // {{{ 1697 1 0 "6957e247_4f64_4971_8d90658c99adbb87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber); // }} "" // {{{ 1698 1 0 "34cc8f4a_c310_4eb7_b936c63f8401c523" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1699 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_98100824AA704d26AB40A6BADEF39F48 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1700 1 0 "058f8bb4_5fe3_4a6b_a36e899c2a89656f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1701 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1702 1 0 "a9b4c19d_dcc0_42d7_9a51e3241ef647f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return:"), o_stepReturn); // }} "" // {{{ 1703 1 0 "d303212f_1f38_442d_a24eee709cf4cdc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1704 1 0 "7356ec1e_8437_4679_94613ac2bea4fe0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1705 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1706 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1707 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1708 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_EndMonitoring") { // }} "" // {{{ 1709 1 0 "4293ef15_cfcd_4e29_b9b02afae2d471f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1710 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ; err.Clear(); // }} "" // {{{ 1711 1 0 "dd7d7b00_1e95_4e45_97a425f03a18ab04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult); // }} "" // {{{ 1712 1 0 "0021495f_472e_4321_9d1e81e8fbd43f0c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1713 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1714 1 0 "aabeb82e_70d9_42f7_901f3fe114094e0a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1715 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1716 1 0 "ce89bf49_b865_4c3f_a97eba220b5a7d33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS End Monitoring step return:"), o_stepReturn); // }} "" // {{{ 1717 1 0 "05229af2_f20a_42ce_908ec8445f3f9dd2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(""), Translate(""), id); // }} "" // {{ 1718 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1719 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1720 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1721 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetFirmwareVersion") { // }} "" // {{{ 1722 1 0 "942a1cc2_d956_47fa_9a9ffed1e856a632" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1723 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ; err.Clear(); // }} "" // {{ 1724 1 0 "f6b3cc8e_f852_4a96_9567a4fa67e846e8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1725 1 0 "c70f5e07_0eeb_45e5_af26714895e2df88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion); // }} "" // {{ 1726 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1727 1 0 "96886e69_ba07_45e3_96353112dc429afc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1728 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1729 1 0 "7de3b86c_c16d_4932_beedfb948b5d85f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(""), Translate(""), id); // }} "" // {{ 1730 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1731 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1732 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1733 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetSerialNumber") { // }} "" // {{{ 1734 1 0 "38b7d0d7_7cce_4157_8abc70dfb62eefa5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1735 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ; err.Clear(); // }} "" // {{ 1736 1 0 "08061228_63f2_47d2_a601ba16d6a1a142" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1737 1 0 "0bbfb488_9723_4a08_9b90171dbec6117a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber); // }} "" // {{ 1738 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2434A44DB44B48ff82A9F66DE34C5041 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1739 1 0 "4cf5e7f7_9567_4e6b_a206bf6f8962c785" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1740 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1741 1 0 "311e5a04_1ac3_443c_bdc51c5cdc4c44f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(""), Translate(""), id); // }} "" // {{ 1742 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1743 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1744 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1745 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerParameter") { // }} "" // {{{ 1746 1 0 "f3888a0b_86ea_4c4a_891e1755a6e78556" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1747 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ; err.Clear(); // }} "" // {{ 1748 1 0 "693cec94_9d14_4bff_8e4868a3b27f0245" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1749 1 0 "e993ed67_92ed_4c85_bd33f90aac53dfb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3); // }} "" // {{ 1750 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1751 1 0 "bd4bffe6_9161_4f42_b0b53307549f4286" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1752 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1753 1 0 "6efd49bf_48c7_437b_8fee57487345eaee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1754 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1755 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1756 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1757 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerSpeed") { // }} "" // {{{ 1758 1 0 "e1c29a26_0656_46e3_b0a412143047bd26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1759 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ; err.Clear(); // }} "" // {{{ 1760 1 0 "c0166b97_c0ae_417b_85c90c5ef42e5fc6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2); // }} "" // {{{ 1761 1 0 "73777071_2fd2_42b0_a7545c6a6a372194" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1762 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1763 1 0 "fb8e630b_9519_4b3d_94eabf1311546383" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1764 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1765 1 0 "41ba2513_e3c2_485c_821198419c3fe286" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1766 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1767 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1768 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1769 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTempParameter") { // }} "" // {{{ 1770 1 0 "09fb30ea_33e9_486d_96945af4798859ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1771 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ; err.Clear(); // }} "" // {{ 1772 1 0 "7e342beb_ebbe_4873_bf53c50f29cbaa0e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1773 1 0 "c8f45788_ef99_414d_a41d29a20583a067" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 1774 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C16E1CF8298042f0A01D1040DC911015 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1775 1 0 "b845f534_5a22_4076_b36069f70af90742" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1776 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1777 1 0 "4793211e_93d2_43e6_b4d25d7e0ae3e104" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 1778 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1779 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1780 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1781 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperature") { // }} "" // {{{ 1782 1 0 "01d1add6_c167_4137_8f0c285cd6ad9bed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1783 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ; err.Clear(); // }} "" // {{{ 1784 1 0 "ecd6d069_96d7_4a72_9ffc0df77e7a1512" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2); // }} "" // {{{ 1785 1 0 "b05c868f_c25f_47a9_b533b13ab05fc962" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1786 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_14A2AAD200434d69970AC483BD08B64F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1787 1 0 "cabbe1ee_c5d4_49dd_90875673900d6120" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1788 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1789 1 0 "234847f1_2f0a_4e64_856b9edefcebb425" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1790 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1791 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1792 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1793 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperatureState") { // }} "" // {{{ 1794 1 0 "82a233ab_0392_4ebb_9a809d80aae38e44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1795 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ; err.Clear(); // }} "" // {{{ 1796 1 0 "c99aa2b7_d8a6_4cee_a1fa1d731ef77d25" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2); // }} "" // {{{ 1797 1 0 "f2861b4d_28d2_4ee3_8b7c7763312067ab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1798 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_50485390A50647818ED2D3934FBC87E3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1799 1 0 "f56ee559_1221_4f5a_ad332d0e44502aff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1800 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1801 1 0 "31a69f44_1a59_49ce_a78763f3aa936042" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1802 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1803 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1804 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1805 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SendFirmwareCommand") { // }} "" // {{{ 1806 1 0 "11546c32_6ddd_4250_9b8750c9679e5b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1807 1 0 "06688598_f10e_41e9_8a2c6d3dff7b7aae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), command); // }} "" // {{{ 1808 1 0 "15a58509_ec93_4677_b1858cadeac42d10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("parameter"), parameter); // }} "" // {{ 1809 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ; err.Clear(); // }} "" // {{{ 1810 1 0 "a650efc1_423b_4f75_9f0da083ee44ae9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter); // }} "" // {{{ 1811 1 0 "e1ef0806_8a47_46c1_972c9ed9e299eaad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1812 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_84EE5E4228B140f599748D1271CBB0F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1813 1 0 "c9bd9645_5a05_4cc6_95997f787c8772d6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1814 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1815 1 0 "8b5634c2_e1da_41d3_83c57142f4cae999" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1816 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1817 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1818 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1819 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetPlateLock") { // }} "" // {{{ 1820 1 0 "927ddf67_5dbd_432b_b8cf6117a3109b06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1821 1 0 "a3eee1ac_7024_473b_a6eb8a2e9b461a66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("plateLock"), plateLock); // }} "" // {{ 1822 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ; err.Clear(); // }} "" // {{{ 1823 1 0 "b417b8ce_5117_450e_93a9a6243c6011d8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock); // }} "" // {{{ 1824 1 0 "ed43cecb_7012_4fb9_a89d129de09bdadb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1825 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1826 1 0 "4eb95522_37fd_4802_af85a620dc874526" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1827 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1828 1 0 "945560ed_40bf_44a9_851fead4c1943f9f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1829 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1830 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1831 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1832 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetShakerParameter") { // }} "" // {{{ 1833 1 0 "8a0e14c1_f6c6_4fb8_94094498cccd7991" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1834 1 0 "1810a83f_3fc2_4c49_9d5502fbdfc743e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingDirection"), shakingDirection); // }} "" // {{{ 1835 1 0 "c3053579_8645_474f_8c05459eed975362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingAccRamp"), shakingAccRamp); // }} "" // {{ 1836 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ; err.Clear(); // }} "" // {{ 1837 1 0 "32b90a07_0607_448d_9767de1d96e31862" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1838 1 0 "77463ac5_e629_4772_98004edef4016a6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp); // }} "" // {{ 1839 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1840 1 0 "5593fd2a_c1e7_4565_bcae82458768dd51" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1841 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1842 1 0 "5ed72ec4_1b60_4258_969b44c995450ec1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1843 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1844 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1845 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1846 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetSimulation") { // }} "" // {{{ 1847 1 0 "941f9e19_ca94_4ede_9719205aeb876593" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{ 1848 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ; err.Clear(); // }} "" // {{ 1849 1 0 "f56567fc_04c1_4645_aee22aa5f22a9f8c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1850 1 0 "41b0c1a2_60aa_4f16_8901c300e9a3dc14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetSimulation(simulate); // }} "" // {{ 1851 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1852 1 0 "35803a11_c620_485a_8196cc2822dddb3f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1853 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1854 1 0 "2e7a9d5f_51df_4c49_bb1986da7e14cd48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1855 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1856 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1857 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1858 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetTempParameter") { // }} "" // {{{ 1859 1 0 "99447b6e_9293_483d_bbd7ddee96870904" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1860 1 0 "f55d7581_a005_45e4_9b3d7f7473323e6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("startTimeout"), startTimeout); // }} "" // {{{ 1861 1 0 "7192db12_8543_4c8b_81b98b57ce21118d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("toleranceRange"), toleranceRange); // }} "" // {{{ 1862 1 0 "8f6d922f_f2ae_43c6_8682df15e6b7c07c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("securityRange"), securityRange); // }} "" // {{ 1863 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ; err.Clear(); // }} "" // {{ 1864 1 0 "a2342046_552f_4003_a1cc262161964a6e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1865 1 0 "57eb738a_6eb2_4f04_b25bd7f7f64a8179" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange); // }} "" // {{ 1866 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1867 1 0 "94c928dd_6dcb_4540_a6cbfdf48e37430c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1868 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1869 1 0 "90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1870 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1871 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1872 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1873 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetUSBTrace") { // }} "" // {{{ 1874 1 0 "0691ecbd_49b4_4590_91d60e614290ec34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("trace"), intTrace); // }} "" // {{ 1875 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ; err.Clear(); // }} "" // {{ 1876 1 0 "aeed4685_8812_4dce_89e2c35429d4c401" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1877 1 0 "24723a79_741b_46be_830fe654c08d6d1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetUSBTrace(intTrace); // }} "" // {{ 1878 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FE6D15E135D24fd7A06908E89474B650 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1879 1 0 "32d09876_dcdb_4d67_b5e72a63e14fec19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1880 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1881 1 0 "cda0d06f_dce0_47ad_bbb419c58aba260e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1882 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1883 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1884 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1885 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShaker") { // }} "" // {{{ 1886 1 0 "503e1c47_5f15_42bd_8eaad1057de68ef6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1887 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ; err.Clear(); // }} "" // {{{ 1888 1 0 "73be1c30_4bfe_4a0f_aa560c8df5b091fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartAllShaker(shakingSpeed); // }} "" // {{{ 1889 1 0 "39ac643d_0305_4ec6_87fc196efe3d76f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1890 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1891 1 0 "c35cdd37_7a73_4008_b9d0ac550c926428" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1892 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1893 1 0 "ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1894 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1895 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1896 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1897 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShakerTimed") { // }} "" // {{{ 1898 1 0 "db6b6c2e_da48_4c64_bdddc80ba5a28921" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1899 1 0 "f6f42906_5ded_4a05_8f9a11fac18f7f10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1900 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ; err.Clear(); // }} "" // {{{ 1901 1 0 "272104de_2e64_4a32_a88407b030437361" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime); // }} "" // {{{ 1902 1 0 "1362f66b_0efd_4eb5_935e84586a427637" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1903 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1904 1 0 "ef7c31f9_e307_450a_851111f26afd2e91" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1905 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1906 1 0 "d73f1476_bf95_4d48_89849f295a9e4d0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1907 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1908 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1909 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1910 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShaker") { // }} "" // {{{ 1911 1 0 "f958f5a5_d1c5_4e9e_9262e708f24940c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1912 1 0 "2ce1189b_e54a_48c0_aafc2932409c0b9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1913 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ; err.Clear(); // }} "" // {{{ 1914 1 0 "cf1b40c4_5e9a_48bf_9390f6eab212315f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed); // }} "" // {{{ 1915 1 0 "2e7a5304_5ce9_4afb_93a4a8276dc86d74" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1916 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1917 1 0 "9b93a06b_e4df_4eca_84467ca6c7f0c0ce" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1918 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1919 1 0 "4b0b48f9_3855_4eab_8f22b0902846d750" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1920 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1921 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1922 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1923 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShakerTimed") { // }} "" // {{{ 1924 1 0 "858c7861_9fb0_490e_9646b9eb190706d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1925 1 0 "327bd0c6_60a8_4fd1_9ef81e2a21d904a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1926 1 0 "83a6d58d_c761_484f_871c9c2229a6d3d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1927 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ; err.Clear(); // }} "" // {{{ 1928 1 0 "4b29337f_c67c_4ecf_a205f4b70e60271a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); // }} "" // {{{ 1929 1 0 "40aad8b7_f42e_4ad1_b0f0c033ec666548" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1930 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_29447729262E4e0f8B347F6640716D96 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1931 1 0 "f383d799_1d15_4348_8a2dc84422f46ff2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1932 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1933 1 0 "f539df09_de1d_4fd8_9ac041897fab0333" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1934 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1935 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1936 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1937 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartTempCtrl") { // }} "" // {{{ 1938 1 0 "dc338e01_6b43_4fe3_bda98d2b0a1a65e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1939 1 0 "04239a09_93a5_4f75_80f95d178bdf9cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("temperature"), temperature); // }} "" // {{{ 1940 1 0 "0387745b_87be_4ec6_912b0b4decaa257b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("waitForTempReached"), waitForTempReached); // }} "" // {{ 1941 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ; err.Clear(); // }} "" // {{{ 1942 1 0 "dfb61f9c_103b_4c42_83e0779ea05cb180" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached); // }} "" // {{{ 1943 1 0 "e4829da3_d8b6_453f_a2be82213303e9f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1944 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_764F491C76DA445383E5490AB126ADB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1945 1 0 "21dd8d34_e764_4a0f_b34ccecf089437dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1946 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1947 1 0 "bfde731d_b581_4488_b4cb7f4873675d7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1948 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1949 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1950 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1951 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopAllShaker") { // }} "" // {{ 1952 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ; err.Clear(); // }} "" // {{{ 1953 1 0 "ee3103a2_d7f3_488f_b7a95e2f2b56770a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{{ 1954 1 0 "a782313c_e15b_4340_bdda314f926e24cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1955 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1956 1 0 "45d1f212_46b9_4976_83503edf5606c88e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1957 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1958 1 0 "5706daca_363f_417f_9103f7ddd16c1444" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1959 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1960 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1961 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1962 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopShaker") { // }} "" // {{{ 1963 1 0 "1cdead0d_9944_446b_bd59d491b15242b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1964 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ; err.Clear(); // }} "" // {{{ 1965 1 0 "b5ecca33_fef4_4c14_9cf702c924839607" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StopShaker(deviceNumber); // }} "" // {{{ 1966 1 0 "49e72e72_8e49_49fd_8d212a6ccff1d2fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1967 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1968 1 0 "1fe83710_037b_4157_82a99e6aaf08edcb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1969 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1970 1 0 "6ffd1f39_ec63_4f9c_a7687447aff79f80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1971 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1972 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1973 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1974 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopTempCtrl") { // }} "" // {{{ 1975 1 0 "b16ab946_2ba9_4900_bd6f9ede31edf6ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1976 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B5957B02990845739642D8C604B0B582 ; err.Clear(); // }} "" // {{{ 1977 1 0 "d186dde8_c684_4550_a023d9023ff021d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StopTempCtrl(deviceNumber); // }} "" // {{{ 1978 1 0 "af12e4a9_cc0f_4a82_b9593d2b489756a8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1979 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B5957B02990845739642D8C604B0B582 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1980 1 0 "28b1d8d1_83cc_4627_9146c7398c601938" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1981 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1982 1 0 "11f3231a_40df_4c14_92585ab8016165e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1983 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1984 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1985 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1986 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_Terminate") { // }} "" // {{ 1987 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ; err.Clear(); // }} "" // {{ 1988 1 0 "b1da178c_1267_4c8c_b1cd24bfa10a11fb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1989 1 0 "910932e3_2b76_41cf_9dccecb799f2d649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::Terminate(); // }} "" // {{ 1990 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_919FCF7F89804c398972DAFE2605D286 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1991 1 0 "697e84e2_525e_4045_83bb3825b36f6b2f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1992 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1993 1 0 "4edde3c1_4f65_4403_a54985d84f6d80f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1994 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1995 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1996 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1997 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForShaker") { // }} "" // {{{ 1998 1 0 "87872be5_4e84_4b7b_98a3e7147a66f6a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1999 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ; err.Clear(); // }} "" // {{{ 2000 1 0 "3b2abeec_38f4_46a6_a30b0d0126280ebc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::WaitForShaker(deviceNumber); // }} "" // {{{ 2001 1 0 "c4e94e42_8405_438b_921cfe4ba73e9976" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 2002 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2003 1 0 "c08ab14c_3879_4f65_ad7085e45f74a6df" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2004 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2005 1 0 "96b99051_5c80_421c_a02e0bd238da1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2006 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2007 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2008 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2009 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForTempCtrl") { // }} "" // {{{ 2010 1 0 "881e7d69_50e3_4e42_89eafece562ac009" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 2011 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ; err.Clear(); // }} "" // {{{ 2012 1 0 "5aa60a5a_db92_42e0_b3277a41cacb5336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber); // }} "" // {{{ 2013 1 0 "49cd8e9e_91bd_468c_aec57e3af40280fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 2014 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_088C7630997A4749A400740DA66CBA0C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2015 1 0 "de7dad67_0b6c_47eb_af5a68302431ff1e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2016 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2017 1 0 "aeb529e0_2eaf_4686_9528342b58318a5d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2018 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2019 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2020 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2021 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2022 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2023 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "CORE96WashEmpty") { // }} "" // {{{ 2024 1 0 "88f95bdd_c2c5_4856_91e5f47f7431bdaf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("refillAfterEmpty"), refillAfterEmpty); // }} "" // {{{ 2025 1 0 "d7a05a26_0b59_478a_a85f308173caf693" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1WashLiquid"), chamber1WashLiquid); // }} "" // {{{ 2026 1 0 "8b1bd108_2b5a_4a2d_ace7b87920eae1b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1LiquidChange"), chamber1LiquidChange); // }} "" // {{{ 2027 1 0 "d651fbf5_a4b8_490b_b869269338ccfcfa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2WashLiquid"), chamber2WashLiquid); // }} "" // {{{ 2028 1 0 "79b1a205_d988_4171_9e1fb28ba362329b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2LiquidChange"), chamber2LiquidChange); // }} "" // {{ 2029 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ; err.Clear(); // }} "" // {{ 2030 1 0 "3fc645b3_f504_4b5e_93481425adf459b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2031 1 0 "123d7b87_745f_4511_a797d08711d13361" "ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}" { variable arrRetValues[]; arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3("123d7b87_745f_4511_a797d08711d13361"); // Head96EmptyWasher } // }} "" // {{ 2032 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EE8804FCDC214a06935DD0F4830020DB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2033 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 2034 1 0 "d3d07dad_de12_4d0c_bd96c7caa06ff3ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 2035 1 0 "84732f19_85e4_4b22_8e617b5e1c91f73c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Washer Return: "), o_stepReturn); // }} "" // {{{ 2036 1 0 "dde0a413_b493_4b17_94990d1d5f2e2b2e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2037 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2038 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2039 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2040 1 0 "1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONFromServer); // }} "" // {{ 2041 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2042 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "end") { // }} "" // {{{ 2043 1 0 "6db67a5a_6aa2_4087_875823acfff0fac4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Good Bye!")); // }} "" // {{ 2044 1 0 "4c7e40d6_02a6_451d_b28230ec71e40ce1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2045 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2046 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2047 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2048 1 0 "6fb90145_24c3_46ba_88b839e0215d0bf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{ 2 "AutoExitBlock" "" STAR_OEM_TOOLKIT::_ExitLibrary(); STAR_OEM_TOOLKIT_PH::_ExitLibrary(); STAR_OEM_TOOLKIT_CENTRIFUGE::_ExitLibrary(); STAR_OEM_TOOLKIT_MPE::_ExitLibrary(); HAMILTON_PH_MODULE_CONTROLLER::_ExitLibrary(); // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=Hamilton$$valid=0$$time=2024-09-06 15:33$$checksum=6be64d0a$$length=085$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx4005.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" private function ArrayToString( variable & i_array[], variable & o_str ) void ; private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ; private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ; private function ConvertHSSErrCode( variable hssErrCode ) variable ; private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ; private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void ; function SendTextMessageToServer( variable str ) void ; private function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; private function waitForGUItoContinue( ) variable ; function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 2213 1 0 "c8aa765a_4840_468a_9e928b44fa79d891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{{ 5 "OnAbort" "End" } // }} "" // {{{ 5 "SendTextMessageToServer" "Begin" function SendTextMessageToServer( variable str ) void { // }} "" private object objJSONObject; private variable strJSON; // {{ 5 "SendTextMessageToServer" "InitLocals" // }} "" // {{{ 2173 1 0 "9d5f9d4a_c104_4b47_964b6d97f981a71e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONObject); // }} "" // {{{ 2174 1 0 "d0a04705_1adc_4919_b95168834c89f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("command"), Translate("message")); // }} "" // {{{ 2175 1 0 "7b9a6cd1_3eee_4085_b3f9548e43fc3424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("text"), str); // }} "" // {{{ 2176 1 0 "6a1c53cf_65ea_4f53_aa2e9111890fecf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONObject, strJSON); // }} "" // {{{ 2177 1 0 "bee8c148_b3ea_490b_8d93d8ed5f24939f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONObject); // }} "" // {{{ 2178 1 0 "b965a2fd_f821_4400_b4c777f558ed0772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendTextMessageToServer" "End" } // }} "" // {{{ 5 "waitForGUItoContinue" "Begin" private function waitForGUItoContinue( ) variable { // }} "" private variable loopCounter1; private variable serverResponse; private timer timer1; // {{ 5 "waitForGUItoContinue" "InitLocals" // }} "" // {{ 2194 1 0 "73328607_d06a_4d7d_8a5df64da06a1bde" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" serverResponse = Translate(""); // }} "" // {{{ 2195 1 0 "2342f8b3_4765_4edc_9fb9f46cbb1fd20b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Waiting for server instructions...")); // }} "" // {{{ 2196 1 0 "216e1039_788e_4830_8588933e6c542ba1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Waiting for server instructions...."), Translate("")); // }} "" // {{ 2197 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounter1 = 0; while (1 == 1) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2198 1 0 "73659ac2_f808_47cc_89196cc3adc8efbf" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" timer1.SetTimerViewName(""); if( 0 == timer1.SetTimer(0.05) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2199 1 0 "cd67277b_4386_4862_8429008a00601693" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 2200 1 0 "6ec592d0_fe02_41a9_8503db5ccf0e5544" "{C1F3C015-47B3-4514-9407-AC2E65043419}" serverResponse = HSLHttp::HttpGET(objHttp, Translate("http://localhost:3221"), Translate("")); // }} "" // {{ 2201 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (serverResponse != "") { // }} "" // {{ 2202 1 0 "9be29cc7_ad35_4b87_9e95d31796325e12" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2203 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2204 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 == 300) { // }} "" // {{ 2205 1 0 "19e5c8f7_a1a9_4348_aa41a572942db630" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2206 1 0 "2a039f02_4c13_4f72_9ba40a3121b31262" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2207 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2208 1 0 "d221d799_ee85_4f6d_a40a06cc0a69a3de" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" timer1.SetTimerViewName(""); if( 0 == timer1.SetTimer(0.05) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2209 1 0 "52bb524e_27b1_4bbe_afcf26453d9eb66f" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2210 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2211 1 0 "809789b0_bd70_4c1f_b0d808ce120b1d99" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (serverResponse); // }} "" // {{{ 5 "waitForGUItoContinue" "End" } // }} "" // {{{ 5 "SendStepReturnToServer" "Begin" private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer" "InitLocals" // }} "" // {{{ 2144 1 0 "2520bd9f_739d_4111_a27d89f8f73ec39e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2145 1 0 "aa6010ec_0628_49d5_a87e016b4a4fc7f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 2146 1 0 "a97c5efa_0ce4_4358_9c51c1893f526b9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 2147 1 0 "deceb871_e830_4b14_86e626f745ef083a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 2148 1 0 "00afb5c2_b5db_4458_866a13b6cb332b68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 2149 1 0 "e52bbd02_b31d_4278_a0f45991eab77d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 2150 1 0 "19f99698_3777_4dcf_9fc765c3f221df4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 2151 1 0 "329f8b9b_0798_44f8_9ee6b65ec58b0c44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2152 1 0 "7728ac0d_8630_4f61_94af076392758ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2153 1 0 "70d261f2_edc4_49a0_a5a074cd5ab92b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2154 1 0 "ee0dd62d_582f_4171_b08e37f6106d9b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer" "End" } // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "Begin" private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void { // }} "" private variable n; private variable loopCounter1; private variable strSinglePosition; private variable arrayOfPositions[]; private variable arraySinglePosition[]; private variable labwareID; private variable positionID; // {{ 5 "BuildTempSequenceFromPositions" "InitLocals" { sequence __temp; o_seq = __temp; } // }} "" // {{ 2086 1 0 "d9022e13_e502_4969_a8ee79484e990801" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arrayOfPositions.SetSize(0); // }} "" // {{{ 2087 1 0 "3e178082_8579_435f_a5db4481bb789d9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strPositions, Translate(";"), arrayOfPositions, 0); // }} "" // {{ 2088 1 0 "5d735f26_db1b_4bea_9ee405f4167bb99f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" n=arrayOfPositions.GetSize(); // }} "" // {{{ 2089 1 0 "f497f24b_fd39_417d_8703c0d54662309f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq); // }} "" // {{ 2090 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2091 1 0 "fd645546_0433_46a0_8619026e338529fd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arraySinglePosition.SetSize(0); // }} "" // {{ 2092 1 0 "91aeb0c4_3176_4356_a19a1027bcdb0af3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1); // }} "" // {{{ 2093 1 0 "c2b42369_7829_4c62_b58880fce7867995" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strSinglePosition, Translate(","), arraySinglePosition, 0); // }} "" // {{ 2094 1 0 "016f61c5_fd76_4c74_903df10a03070f7b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" labwareID=arraySinglePosition.GetAt(1-1); // }} "" // {{ 2095 1 0 "886fc872_7c3a_4366_959db6d5f265ed7c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" positionID=arraySinglePosition.GetAt(2-1); // }} "" // {{{ 2096 1 0 "766a54b4_4c5b_4991_9d8ceea62d26b216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq, labwareID, positionID); // }} "" // {{ 2097 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2098 1 0 "0003c6e9_5b43_438d_bc93be342c3c6b55" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq.SetCurrentPosition(1); // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "End" } // }} "" // {{{ 5 "StrTokenize" "Begin" private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 2188 1 0 "500afe4c_98a8_4117_8c279b9994d0b626" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 2189 1 0 "6a0bd918_2fda_4e4c_a680454ce2576168" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 2190 1 0 "f65ed315_68ed_4ec0_ba0b3c217e692b25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 2191 1 0 "9476acee_e5bb_43d1_bbec232ed01bae08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); // Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "Begin" private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void { // }} "" private variable numOfVolumes; private variable numOfChannelsInVariable; private variable n; private variable loopCounter1; private variable arrSize; private variable loopCounter3; private variable strKeyName; // {{ 5 "BuildArrayOfVolumesForChannels" "InitLocals" o_arrayOfVolumes.SetSize( 0); // }} "" // {{ 2060 1 0 "69288f91_eabd_4d15_af5361636ffacbf6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyName = Translate("volumes"); // }} "" // {{ 2061 1 0 "bf4c1108_6751_41ee_8d3d3b1a9418548f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfVolumes.SetSize(0); // }} "" // {{{ 2062 1 0 "a9cfa743_a769_46a3_b8d7e45a67b3d297" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName); // }} "" // {{ 2063 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arrSize > 0) { // }} "" // {{ 2064 1 0 "594bebbb_0d54_4893_b20d783de743dd44" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2065 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < arrSize;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{{ 2066 1 0 "3bfc9004_2595_4917_b4edcdceed06f518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); // }} "" // {{ 2067 1 0 "6be31b23_f55d_4d15_be6abc9ee4bef664" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" Trace("Volume received=", v); // {{ 2069 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2070 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2071 1 0 "4a4891b3_f877_4b14_85196b7e820554b2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2072 1 0 "22c7c768_33c4_4975_909e9586375bfe8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(strKeyName, v); // }} "" // {{ 2073 1 0 "4e01e62a_13a2_408e_9fbfb2300d5996ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 2074 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2075 1 0 "cc565f65_a92a_43ef_9c052b7f5632aca5" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" numOfVolumes=o_arrayOfVolumes.GetSize(); // }} "" // {{{ 2076 1 0 "e49355fb_3fe6_4c8d_930870416e36b708" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numOfChannelsInVariable = StrGetLength(strChannels); // }} "" // {{ 2077 1 0 "804bc477_e950_4a14_af5f667c73cf5176" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2078 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (numOfVolumes < numOfChannelsInVariable) { // }} "" // {{ 2079 1 0 "2e73355c_8b11_4423_b345807cae9d5db8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" n = numOfChannelsInVariable - numOfVolumes; // }} "" // {{ 2080 1 0 "53a650d8_2fc1_4c5b_bd19eda433c2a81a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" v = o_arrayOfVolumes.ElementAt( numOfVolumes -1); // }} "" // {{ 2081 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2082 1 0 "cd047b15_6a02_40f1_adfb116f6bf5d763" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 2083 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2084 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "End" } // }} "" // {{{ 5 "ArrayToString" "Begin" private function ArrayToString( variable & i_array[], variable & o_str ) void { // }} "" private variable arraySize; private variable loopCounter1; // {{ 5 "ArrayToString" "InitLocals" o_str = 0; // }} "" // {{ 2050 1 0 "1a220255_6ba4_40fb_be39a6a2f4e0065f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 2051 1 0 "f821c4ff_f1a2_4ad7_9bd77dd8652567cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str = Translate(""); // }} "" // {{ 2052 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2053 1 0 "afd84a84_8330_46e7_8308e16b5caa05e9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" v=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 2054 1 0 "77436fd3_3c87_4f09_9a89259b15ef5bf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, v); // }} "" // {{ 2055 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 < arraySize) { // }} "" // {{{ 2056 1 0 "d14fd31e_5de8_46f9_bb359f38de9a08ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, Translate(";")); // }} "" // {{ 2057 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2058 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "ArrayToString" "End" } // }} "" // {{{ 5 "JSON_GetFloatValue" "Begin" private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void { // }} "" private variable retVal; // {{ 5 "JSON_GetFloatValue" "InitLocals" o_KeyFloatValue = 0; // }} "" Trace("getfloatvalue"); // {{{ 2106 1 0 "8f2f8625_6c9e_4c47_b4698d29df60004a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" // {{ 2107 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("error getting float value, try with integer"); // {{ 2109 1 0 "5a74df81_6685_4703_8b055144f8d74d45" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2110 1 0 "47bb8c98_9624_40ad_b765abfc6b0d0b49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" Trace("error getting float value, tried with integer"); // {{ 2112 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("wtf ok i guess its zero"); // {{ 2114 1 0 "5b8a3ec6_8ee4_4887_ab7df29fa494cdc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_KeyFloatValue = 0; // }} "" // {{ 2115 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2116 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "JSON_GetFloatValue" "End" } // }} "" // {{{ 5 "SendHHSReturnToServer" "Begin" private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; private variable t_arrayStepReturns[]; private variable loopCounter1; private variable keyName; private variable varType; // {{ 5 "SendHHSReturnToServer" "InitLocals" // }} "" // {{{ 2118 1 0 "6db3f932_ba70_4cf6_9c2a8636580fc754" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2119 1 0 "3cf8a985_83cc_418e_99293de9d9945d5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("HHS-return")); // }} "" // {{{ 2120 1 0 "705c25bc_6db4_4eb9_b05b33999e110198" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{ 2121 1 0 "5a9efc02_a11a_4c0c_b166e3b28800cc6c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" t_arrayStepReturns.SetSize(0); // }} "" // {{ 2122 1 0 "5aa4f3a8_774f_4f35_ae7fa197ef920048" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn1); // }} "" // {{ 2123 1 0 "00ac351d_bc51_41e5_b300af93d6893fa5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn2); // }} "" // {{ 2124 1 0 "2aaf8702_2d08_48ee_be96815ca77463c9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn3); // }} "" // {{ 2125 1 0 "67fcb56e_9f42_4739_a5ee322f12443a17" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn4); // }} "" // {{ 2126 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < 4;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 2127 1 0 "a23ae2ed_5b02_41a0_a69215d0b80fde4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" keyName = StrConcat2(Translate("step-return"), loopCounter1); // }} "" // {{{ 2128 1 0 "9b92ac94_8c71_4b77_95ac0c691427c4bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" varType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2129 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "s") { // }} "" // {{{ 2130 1 0 "1497ea6a_46ab_4ee8_b7951f24b533e644" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2131 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2132 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "f") { // }} "" // {{{ 2133 1 0 "61772f9e_fea3_4011_bba06b7fe66e8b0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2134 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2135 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "i") { // }} "" // {{{ 2136 1 0 "28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2137 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2138 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2139 1 0 "0a0447b8_96fb_495a_90dfa8f1e2c488ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2140 1 0 "b2a13d10_b443_4fc0_aa0baa2a23cddafe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2141 1 0 "0adf40b4_5c73_46d8_8e6042c6dfd32d86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2142 1 0 "5a5dabeb_e3ed_4730_ab86839e00f75077" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendHHSReturnToServer" "End" } // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "Begin" private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer_EightOutputs" "InitLocals" // }} "" // {{{ 2156 1 0 "a5a7b215_f4cb_4951_82e1faf532cd7222" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2157 1 0 "9480693e_99ec_4cfd_aa9c8f48e76ee42f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 2158 1 0 "3f068696_35bd_4060_8b291470a817f628" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 2159 1 0 "b68a52fb_e141_4e4c_b5e7bbcbf0c9817f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 2160 1 0 "8ab4a139_9629_43b7_98f13d1058881e4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 2161 1 0 "1417a4bd_aea8_4b36_8a7a05739a789ecf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 2162 1 0 "24b6213e_470e_468a_86dc55b44ff96b95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 2163 1 0 "42403d87_ddb6_4bee_8fc6ad09efb7573a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return5"), stepReturn5); // }} "" // {{{ 2164 1 0 "8493044a_674d_4139_90fa1c7a00050abc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return6"), stepReturn6); // }} "" // {{{ 2165 1 0 "b43cf915_ef0d_4d62_985deae88bcd6c18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return7"), stepReturn7); // }} "" // {{{ 2166 1 0 "584d78fd_87d0_4502_a6d089cfaf888318" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return8"), stepReturn8); // }} "" // {{{ 2167 1 0 "711dbc6f_e5c4_40a0_bef5785dc99707ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return9"), stepReturn9); // }} "" // {{{ 2168 1 0 "47856892_8af4_409f_88723a44ebe61362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2169 1 0 "e5054174_6f3f_4356_8dc30683be948abe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2170 1 0 "e21196c3_6b8f_47e5_a2888114650b2ec8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2171 1 0 "3fec97a3_9f33_4fef_afe5355188bf56d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "End" } // }} "" // {{{ 5 "StrArrayToInts" "Begin" private function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void { // }} "" private variable arraySize; private variable loopCounter1; private variable val; private variable o_arrayOfInts[]; // {{ 5 "StrArrayToInts" "InitLocals" o_intarray.SetSize( 0); // }} "" // {{ 2180 1 0 "d68ba554_ea5e_486c_90e45e6f46e051a7" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 2181 1 0 "2ceaf7fd_f918_493e_a519f9ccc1a58114" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfInts.SetSize(0); // }} "" // {{ 2182 1 0 "f1b90762_2d83_476f_b1cd6ef39b938b13" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2183 1 0 "832d04b5_dd9e_47f6_86628701b9ba44ef" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" val=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 2184 1 0 "a10f8b45_b69d_4a85_be5a713ea78ccd01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" val = APPSLIB::StrConvertToNumber(val); // }} "" // {{ 2185 1 0 "70dffb74_d5e0_4795_bc74a43dbf1c7d9b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_intarray.AddAsLast(val); // }} "" // {{ 2186 1 0 "f1b90762_2d83_476f_b1cd6ef39b938b13" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "StrArrayToInts" "End" } // }} "" // {{{ 5 "ConvertHSSErrCode" "Begin" private function ConvertHSSErrCode( variable hssErrCode ) variable { // }} "" // {{ 5 "ConvertHSSErrCode" "InitLocals" // }} "" // {{ 2100 1 0 "0390e8b9_f753_48cc_ba9811c6326b8cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (hssErrCode == 0) { // }} "" // {{{ 2101 1 0 "9f0ce7fc_13c6_4496_9d762a07174e50f1" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (1); // }} "" // {{ 2102 1 0 "0390e8b9_f753_48cc_ba9811c6326b8cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2103 1 0 "4c347e8c_4bce_4fd2_9771e3402c6f946d" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (0); // }} "" // {{{ 5 "ConvertHSSErrCode" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=Hamilton$$valid=0$$time=2024-09-06 15:33$$checksum=400be611$$length=087$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx4005.tmp ================================================ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx48F0.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "Hamilton pH Module\\Hamilton pH Module.hsl" #include "HSLErrLib.hsl" #include "Hamilton pH Module\\Hamilton pH Station Washer Module.hsl" #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" #include "HSLPTLLib.hsl" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace STAR_OEM_TOOLKIT_PH { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function pH_Calibrate( variable i_intModuleID, variable i_intCalibrationLevel, variable i_fltCalibrationValue, variable i_fltCalibrationTemperature, variable i_strProbePattern, variable & o_stepReturn ) void ; function pH_Calibrate_Dynamically( variable i_intModuleID, variable i_intCalibrationLevel, variable i_intVariance, variable i_intTimeout, variable i_fltCalibrationValue, variable i_fltCalibrationTemperature, variable i_strProbePattern, variable & o_stepReturn ) void ; function pH_Dryer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void ; function pH_Dryer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void ; function pH_Dryer_StartDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Dryer_StopDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Dryer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Enable_Extended_Log( variable & o_stepReturn ) void ; function pH_Get_Last_Error( variable i_intModuleID, variable & o_strLastError, variable & o_stepReturn ) void ; function pH_Initialize( variable i_intComport, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void ; function pH_Measure( variable i_intModuleID, variable i_fltTemperature, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void ; function pH_Measure_Dynamically( variable i_intModuleID, variable i_fltTemperature, variable i_fltPrecision, variable i_intTimeout, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void ; function pH_Request_Battery_Data( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intChargeCounter, variable & o_intBatteryCondition, variable & o_intActualCharge, variable & o_stepReturn ) void ; function pH_Request_Calibration_Values( variable i_intModuleID, variable i_intProbeNumber, variable & o_fltpHLowValue, variable & o_fltpHLowVoltage, variable & o_fltpHHighValue, variable & o_fltpHHighVoltage, variable & o_fltCalibrationTemperature, variable & o_fltCalibrationOffset, variable & o_fltCalibrationSlope, variable & o_intCalibrationSlopeRation, variable & o_stepReturn ) void ; function pH_Request_Probe_Data( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intMeasurementCounter_Probe_1, variable & o_intMeasurementCounter_Probe_2, variable & o_intMeasurementCounter_Probe_3, variable & o_intMeasurementCounter_Probe_4, variable & o_stepReturn ) void ; function pH_Request_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable & o_intPartNumber, variable & o_intRevision, variable & o_intSerialNumber, variable & o_stepReturn ) void ; function pH_Request_Voltage_Data( variable i_intModuleID, variable i_intSelector, variable & o_varVoltageData, variable & o_stepReturn ) void ; function pH_Set_Battery_Replacement_Date( variable i_intModuleID, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void ; function pH_Set_Charge_Parameters( variable i_intModuleID, variable i_blnCharge, variable i_blnAutoCharge, variable i_intChargeLevel, variable & o_stepReturn ) void ; function pH_Set_Probe_Replacement_Date( variable i_intModuleID, variable i_intProbe, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void ; function pH_Set_Shutdown( variable i_intModuleID, variable i_intMode, variable & o_stepReturn ) void ; function pH_Set_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable i_intPartNumber, variable i_intRevision, variable i_intSerialNumber, variable & o_stepReturn ) void ; function pH_Set_Trace_Level( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void ; function pH_Sleep( variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Template( variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Terminate( variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Wakeup( variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Washer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable o_intModuleID, variable & o_stepReturn ) void ; function pH_Washer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void ; function pH_Washer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Washer_Wash( device & ML_STAR, variable i_intModuleID, variable i_intCycleNumber, variable & o_stepReturn ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" PTL::SetWashingStateDefault("RinseTime1", 5); PTL::SetWashingStateDefault("SoakTime1", 5); PTL::SetWashingStateDefault("FlowRate1", 11); PTL::SetWashingStateDefault("RinseTime2", 0); PTL::SetWashingStateDefault("SoakTime2", 0); PTL::SetWashingStateDefault("FlowRate2", 11); PTL::SetWashingStateDefault("DrainingTime", 10); PTL::SetWashingStateDefault("StartWashLiquid", 0); PTL::SetLoadingStateDefault("RecoveryOptionContinue", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionExclude", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionDefault", 0); PTL::SetLoadingStateDefault("KitLotCheckEnabled", hslFalse); // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" // }} "" } // {{{ 5 "pH_Measure" "Begin" function pH_Measure( variable i_intModuleID, variable i_fltTemperature, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Measure" "InitLocals" o_fltpHProbe_1 = 0; o_fltpHProbe_2 = 0; o_fltpHProbe_3 = 0; o_fltpHProbe_4 = 0; o_stepReturn = 0; // }} "" // {{ 61 1 0 "80d90406_e318_4f91_9ef3b6f12b798351" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2E2474F7607B4feb8948B25BBE3B49F3 ; err.Clear(); // }} "" // {{{ 62 1 0 "2394bca1_88c0_4399_ab04a338af9f5010" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::Measure(i_intModuleID, i_fltTemperature, i_strProbePattern, o_fltpHProbe_1, o_fltpHProbe_2, o_fltpHProbe_3, o_fltpHProbe_4); // }} "" // {{ 63 1 0 "80d90406_e318_4f91_9ef3b6f12b798351" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2E2474F7607B4feb8948B25BBE3B49F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 64 1 0 "d771a760_6814_4866_a12a03881c971346" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 65 1 0 "80d90406_e318_4f91_9ef3b6f12b798351" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Measure" "End" } // }} "" // {{{ 5 "pH_Calibrate" "Begin" function pH_Calibrate( variable i_intModuleID, variable i_intCalibrationLevel, variable i_fltCalibrationValue, variable i_fltCalibrationTemperature, variable i_strProbePattern, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Calibrate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 1 1 0 "03c80eb0_3f18_420c_96086b655439183a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ADDE389AF4C7414193E7475BFBC151C7 ; err.Clear(); // }} "" // {{{ 2 1 0 "9742609f_32c7_419d_8ec016c662c584c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::Calibrate(i_intModuleID, i_intCalibrationLevel, i_fltCalibrationValue, i_fltCalibrationTemperature, i_strProbePattern); // }} "" // {{ 3 1 0 "03c80eb0_3f18_420c_96086b655439183a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ADDE389AF4C7414193E7475BFBC151C7 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 4 1 0 "8904566e_857b_47da_868f8d8e8444f2bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 5 1 0 "03c80eb0_3f18_420c_96086b655439183a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Calibrate" "End" } // }} "" // {{{ 5 "pH_Template" "Begin" function pH_Template( variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Template" "InitLocals" o_stepReturn = 0; // }} "" // {{ 145 1 0 "dc3e048a_9bb1_4fcc_99ff096bd8ece583" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EBDA9B022DA24dd7955D30E2549FDE5B ; err.Clear(); // }} "" // {{ 146 1 0 "dc3e048a_9bb1_4fcc_99ff096bd8ece583" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EBDA9B022DA24dd7955D30E2549FDE5B : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 147 1 0 "a89bc761_6592_4106_a0acdd14e73bc5d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 148 1 0 "dc3e048a_9bb1_4fcc_99ff096bd8ece583" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Template" "End" } // }} "" // {{{ 5 "pH_Calibrate_Dynamically" "Begin" function pH_Calibrate_Dynamically( variable i_intModuleID, variable i_intCalibrationLevel, variable i_intVariance, variable i_intTimeout, variable i_fltCalibrationValue, variable i_fltCalibrationTemperature, variable i_strProbePattern, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Calibrate_Dynamically" "InitLocals" o_stepReturn = 0; // }} "" // {{ 7 1 0 "1464aeb3_96b1_4ec4_ab8008b4ad8e5c58" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_94CD08297F814239B0B11419D328505E ; err.Clear(); // }} "" // {{{ 8 1 0 "5f0f28e4_2d10_486d_a5f025fe43a57dfd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::CalibrateDynamically(i_intModuleID, i_intCalibrationLevel, i_intVariance, i_intTimeout, i_fltCalibrationValue, i_fltCalibrationTemperature, i_strProbePattern); // }} "" // {{ 9 1 0 "1464aeb3_96b1_4ec4_ab8008b4ad8e5c58" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_94CD08297F814239B0B11419D328505E : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 10 1 0 "276c7958_53d6_44c9_bdc01f6b0631af18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 11 1 0 "1464aeb3_96b1_4ec4_ab8008b4ad8e5c58" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Calibrate_Dynamically" "End" } // }} "" // {{{ 5 "pH_Enable_Extended_Log" "Begin" function pH_Enable_Extended_Log( variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Enable_Extended_Log" "InitLocals" o_stepReturn = 0; // }} "" // {{ 43 1 0 "f3a44791_8d5d_43fd_90d52cf307b0d397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_6213D20124C149648FFCCD6E66E53566 ; err.Clear(); // }} "" // {{{ 44 1 0 "cfadb79c_ec52_4a4c_8c613ef78f0d979e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Module::EnableExtendedLog(); // }} "" // {{ 45 1 0 "f3a44791_8d5d_43fd_90d52cf307b0d397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_6213D20124C149648FFCCD6E66E53566 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 46 1 0 "352e0c88_c061_4d35_a4aeefb9fd441f38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 47 1 0 "f3a44791_8d5d_43fd_90d52cf307b0d397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Enable_Extended_Log" "End" } // }} "" // {{{ 5 "pH_Get_Last_Error" "Begin" function pH_Get_Last_Error( variable i_intModuleID, variable & o_strLastError, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Get_Last_Error" "InitLocals" o_strLastError = 0; o_stepReturn = 0; // }} "" // {{ 49 1 0 "49163b05_332f_4bd8_b1a0875b42af9888" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_09FCEB2F0AAA4c5888E7D970B9EB0906 ; err.Clear(); // }} "" // {{{ 50 1 0 "1bbf5668_7da2_4593_a954eb5c20baf705" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::GetLastError(i_intModuleID, o_strLastError); // }} "" // {{ 51 1 0 "49163b05_332f_4bd8_b1a0875b42af9888" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_09FCEB2F0AAA4c5888E7D970B9EB0906 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 52 1 0 "1340b7b5_ecea_4308_8a8ee7d11c70edc2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 53 1 0 "49163b05_332f_4bd8_b1a0875b42af9888" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Get_Last_Error" "End" } // }} "" // {{{ 5 "pH_Initialize" "Begin" function pH_Initialize( variable i_intComport, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Initialize" "InitLocals" o_intModuleID = 0; o_stepReturn = 0; // }} "" // {{ 55 1 0 "b8217b02_6fd3_4298_892d2568d77c74e0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_970E55A20F9F4e42B517C5847AEB8E38 ; err.Clear(); // }} "" // {{{ 56 1 0 "297fb019_93d9_4b46_a56c3a32731a402d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::Initialize(i_intComport, i_blnSimulationMode, o_intModuleID); // }} "" // {{ 57 1 0 "b8217b02_6fd3_4298_892d2568d77c74e0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_970E55A20F9F4e42B517C5847AEB8E38 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 58 1 0 "911745ea_61cd_4f58_b8e0704906ebf222" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 59 1 0 "b8217b02_6fd3_4298_892d2568d77c74e0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Initialize" "End" } // }} "" // {{{ 5 "pH_Measure_Dynamically" "Begin" function pH_Measure_Dynamically( variable i_intModuleID, variable i_fltTemperature, variable i_fltPrecision, variable i_intTimeout, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Measure_Dynamically" "InitLocals" o_fltpHProbe_1 = 0; o_fltpHProbe_2 = 0; o_fltpHProbe_3 = 0; o_fltpHProbe_4 = 0; o_stepReturn = 0; // }} "" // {{ 67 1 0 "1fc3b06c_8e97_43c2_8dfc804da44c34e7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_AA203E903AF848e0B0529507465A94E1 ; err.Clear(); // }} "" // {{{ 68 1 0 "b4fb2269_5bd3_4f6c_8660501f53441522" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::MeasureDynamically(i_intModuleID, i_fltTemperature, i_fltPrecision, i_intTimeout, i_strProbePattern, o_fltpHProbe_1, o_fltpHProbe_2, o_fltpHProbe_3, o_fltpHProbe_4); // }} "" // {{ 69 1 0 "1fc3b06c_8e97_43c2_8dfc804da44c34e7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_AA203E903AF848e0B0529507465A94E1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 70 1 0 "b05cdfa7_6391_4ff4_81ed18ac5f6a52e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 71 1 0 "1fc3b06c_8e97_43c2_8dfc804da44c34e7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Measure_Dynamically" "End" } // }} "" // {{{ 5 "pH_Request_Battery_Data" "Begin" function pH_Request_Battery_Data( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intChargeCounter, variable & o_intBatteryCondition, variable & o_intActualCharge, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Request_Battery_Data" "InitLocals" o_strReplacementDate = 0; o_intChargeCounter = 0; o_intBatteryCondition = 0; o_intActualCharge = 0; o_stepReturn = 0; // }} "" // {{ 73 1 0 "847b4f5f_d886_41dc_9c81ac903c97a162" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_996D8DE608A04eacBD637370A8B07B64 ; err.Clear(); // }} "" // {{{ 74 1 0 "da6aa4ae_3fb0_4dcb_a2a72e6dbb23e4e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::RequestBatteryData(i_intModuleID, o_strReplacementDate, o_intChargeCounter, o_intBatteryCondition, o_intActualCharge); // }} "" // {{ 75 1 0 "847b4f5f_d886_41dc_9c81ac903c97a162" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_996D8DE608A04eacBD637370A8B07B64 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 76 1 0 "374fab67_3d2c_479b_824c5098139051de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 77 1 0 "847b4f5f_d886_41dc_9c81ac903c97a162" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Request_Battery_Data" "End" } // }} "" // {{{ 5 "pH_Request_Calibration_Values" "Begin" function pH_Request_Calibration_Values( variable i_intModuleID, variable i_intProbeNumber, variable & o_fltpHLowValue, variable & o_fltpHLowVoltage, variable & o_fltpHHighValue, variable & o_fltpHHighVoltage, variable & o_fltCalibrationTemperature, variable & o_fltCalibrationOffset, variable & o_fltCalibrationSlope, variable & o_intCalibrationSlopeRation, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Request_Calibration_Values" "InitLocals" o_fltpHLowValue = 0; o_fltpHLowVoltage = 0; o_fltpHHighValue = 0; o_fltpHHighVoltage = 0; o_fltCalibrationTemperature = 0; o_fltCalibrationOffset = 0; o_fltCalibrationSlope = 0; o_intCalibrationSlopeRation = 0; o_stepReturn = 0; // }} "" // {{ 79 1 0 "094d126e_7f40_4ffb_9e7c8e9df3ccc571" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_A458A465FAAE4354AE920AE0DDDD5DCA ; err.Clear(); // }} "" // {{{ 80 1 0 "be826faa_b99a_4b0d_8bcfd9b9e6f58c1c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::RequestCalibrationValues(i_intModuleID, i_intProbeNumber, o_fltpHLowValue, o_fltpHLowVoltage, o_fltpHHighValue, o_fltpHHighVoltage, o_fltCalibrationTemperature, o_fltCalibrationOffset, o_fltCalibrationSlope, o_intCalibrationSlopeRation); // }} "" // {{ 81 1 0 "094d126e_7f40_4ffb_9e7c8e9df3ccc571" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_A458A465FAAE4354AE920AE0DDDD5DCA : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 82 1 0 "3beb4db8_474e_4c8b_8c2a3a46b738bdbe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 83 1 0 "094d126e_7f40_4ffb_9e7c8e9df3ccc571" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Request_Calibration_Values" "End" } // }} "" // {{{ 5 "pH_Request_Probe_Data" "Begin" function pH_Request_Probe_Data( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intMeasurementCounter_Probe_1, variable & o_intMeasurementCounter_Probe_2, variable & o_intMeasurementCounter_Probe_3, variable & o_intMeasurementCounter_Probe_4, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Request_Probe_Data" "InitLocals" o_strReplacementDate = 0; o_intMeasurementCounter_Probe_1 = 0; o_intMeasurementCounter_Probe_2 = 0; o_intMeasurementCounter_Probe_3 = 0; o_intMeasurementCounter_Probe_4 = 0; o_stepReturn = 0; // }} "" // {{ 85 1 0 "a792a4ba_ffaa_496e_a9e84924e8d48769" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_A2F80039318F4807A9355EEE8F65F09D ; err.Clear(); // }} "" // {{{ 86 1 0 "39f96463_bf0a_478e_99d106ede0c66ca8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::RequestProbeData(i_intModuleID, o_strReplacementDate, o_intMeasurementCounter_Probe_1, o_intMeasurementCounter_Probe_2, o_intMeasurementCounter_Probe_3, o_intMeasurementCounter_Probe_4); // }} "" // {{ 87 1 0 "a792a4ba_ffaa_496e_a9e84924e8d48769" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_A2F80039318F4807A9355EEE8F65F09D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 88 1 0 "c289098d_bcc1_49b8_acdb3d5a56078d64" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 89 1 0 "a792a4ba_ffaa_496e_a9e84924e8d48769" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Request_Probe_Data" "End" } // }} "" // {{{ 5 "pH_Request_Technical_Data" "Begin" function pH_Request_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable & o_intPartNumber, variable & o_intRevision, variable & o_intSerialNumber, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Request_Technical_Data" "InitLocals" o_intPartNumber = 0; o_intRevision = 0; o_intSerialNumber = 0; o_stepReturn = 0; // }} "" // {{ 91 1 0 "ef7e5b04_2a8d_43c7_a579daaa255b35fc" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_903977FAFD2C4e8bB89D056988CC3EF4 ; err.Clear(); // }} "" // {{{ 92 1 0 "7b65b46f_5b72_4640_9861bacd4ace5643" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::RequestTechnicalData(i_intModuleID, i_intHardwareNumber, o_intPartNumber, o_intRevision, o_intSerialNumber); // }} "" // {{ 93 1 0 "ef7e5b04_2a8d_43c7_a579daaa255b35fc" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_903977FAFD2C4e8bB89D056988CC3EF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 94 1 0 "0381375a_eba4_4614_93c926558c2d7558" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 95 1 0 "ef7e5b04_2a8d_43c7_a579daaa255b35fc" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Request_Technical_Data" "End" } // }} "" // {{{ 5 "pH_Request_Voltage_Data" "Begin" function pH_Request_Voltage_Data( variable i_intModuleID, variable i_intSelector, variable & o_varVoltageData, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Request_Voltage_Data" "InitLocals" o_varVoltageData = 0; o_stepReturn = 0; // }} "" // {{ 97 1 0 "4db83f8d_771a_4c91_979c072c89b28ed1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_44952D3849BE4a219EFD38455D886E56 ; err.Clear(); // }} "" // {{{ 98 1 0 "4a76ad62_352e_40ca_81088288e34cdeee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Module::RequestVoltageData(i_intModuleID, i_intSelector, o_varVoltageData); // }} "" // {{ 99 1 0 "4db83f8d_771a_4c91_979c072c89b28ed1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_44952D3849BE4a219EFD38455D886E56 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 100 1 0 "043b5397_9bb9_4522_978d64f42943ee9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 101 1 0 "4db83f8d_771a_4c91_979c072c89b28ed1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Request_Voltage_Data" "End" } // }} "" // {{{ 5 "pH_Set_Battery_Replacement_Date" "Begin" function pH_Set_Battery_Replacement_Date( variable i_intModuleID, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Set_Battery_Replacement_Date" "InitLocals" o_stepReturn = 0; // }} "" // {{ 103 1 0 "28fa18e0_d7a7_4d5b_bce1e78a6bfdac57" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C13705D0B70B4e8eAA80912053CAC1F1 ; err.Clear(); // }} "" // {{{ 104 1 0 "b9ab604b_ca72_4ee2_b99c1a7872da4624" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::SetBatteryReplacementDate(i_intModuleID, i_intDay, i_intMonth, i_intYear); // }} "" // {{ 105 1 0 "28fa18e0_d7a7_4d5b_bce1e78a6bfdac57" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C13705D0B70B4e8eAA80912053CAC1F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 106 1 0 "bbb0d55f_6f61_4bd2_9477cf3936b9472e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 107 1 0 "28fa18e0_d7a7_4d5b_bce1e78a6bfdac57" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Set_Battery_Replacement_Date" "End" } // }} "" // {{{ 5 "pH_Set_Charge_Parameters" "Begin" function pH_Set_Charge_Parameters( variable i_intModuleID, variable i_blnCharge, variable i_blnAutoCharge, variable i_intChargeLevel, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Set_Charge_Parameters" "InitLocals" o_stepReturn = 0; // }} "" // {{ 109 1 0 "046ad941_806a_4ac7_b2f4ca60ae77c950" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_4A84194D248D4b0088B93676813BEE2D ; err.Clear(); // }} "" // {{{ 110 1 0 "c35f1bf8_8cea_4986_96ba8ef0097524c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::SetChargeParameters(i_intModuleID, i_blnCharge, i_blnAutoCharge, i_intChargeLevel); // }} "" // {{ 111 1 0 "046ad941_806a_4ac7_b2f4ca60ae77c950" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_4A84194D248D4b0088B93676813BEE2D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 112 1 0 "ed302be8_6fd1_4215_80f039adbe780f7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 113 1 0 "046ad941_806a_4ac7_b2f4ca60ae77c950" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Set_Charge_Parameters" "End" } // }} "" // {{{ 5 "pH_Set_Probe_Replacement_Date" "Begin" function pH_Set_Probe_Replacement_Date( variable i_intModuleID, variable i_intProbe, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Set_Probe_Replacement_Date" "InitLocals" o_stepReturn = 0; // }} "" // {{ 115 1 0 "048020e2_7cb7_4b0e_9d7951ebced9d9ca" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_244E236DDAAF4536B249F6D8792A60A2 ; err.Clear(); // }} "" // {{{ 116 1 0 "d9b9ef0e_6c6d_4272_97b55d209307f7e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::SetProbeReplacementDate(i_intModuleID, i_intProbe, i_intYear, i_intMonth, i_intDay); // }} "" // {{ 117 1 0 "048020e2_7cb7_4b0e_9d7951ebced9d9ca" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_244E236DDAAF4536B249F6D8792A60A2 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 118 1 0 "4ebc6879_cd2b_448a_b753ab26b9645392" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 119 1 0 "048020e2_7cb7_4b0e_9d7951ebced9d9ca" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Set_Probe_Replacement_Date" "End" } // }} "" // {{{ 5 "pH_Set_Shutdown" "Begin" function pH_Set_Shutdown( variable i_intModuleID, variable i_intMode, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Set_Shutdown" "InitLocals" o_stepReturn = 0; // }} "" // {{ 121 1 0 "9a1900c4_4658_4aa6_8f04356997560654" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_7907B9BE9B2647d09FEC0DD2979D5B14 ; err.Clear(); // }} "" // {{{ 122 1 0 "3b63fd46_6389_405c_8940455e9f127468" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::SetShutdown(i_intModuleID, i_intMode); // }} "" // {{ 123 1 0 "9a1900c4_4658_4aa6_8f04356997560654" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_7907B9BE9B2647d09FEC0DD2979D5B14 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 124 1 0 "804cd242_3933_4e99_a96c4367bbe3f9ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 125 1 0 "9a1900c4_4658_4aa6_8f04356997560654" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Set_Shutdown" "End" } // }} "" // {{{ 5 "pH_Set_Technical_Data" "Begin" function pH_Set_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable i_intPartNumber, variable i_intRevision, variable i_intSerialNumber, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Set_Technical_Data" "InitLocals" o_stepReturn = 0; // }} "" // {{ 127 1 0 "c02ce5b6_c9e6_47bf_95caba6446142317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_007BB8AFAE534922B6C5EA899698EA91 ; err.Clear(); // }} "" // {{{ 128 1 0 "8dd87239_734f_4123_90ead0ba65f0bbbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::SetTechnicalData(i_intModuleID, i_intHardwareNumber, i_intPartNumber, i_intRevision, i_intSerialNumber); // }} "" // {{ 129 1 0 "c02ce5b6_c9e6_47bf_95caba6446142317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_007BB8AFAE534922B6C5EA899698EA91 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 130 1 0 "ebf84842_e475_488c_9862aa5015f5fec3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 131 1 0 "c02ce5b6_c9e6_47bf_95caba6446142317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Set_Technical_Data" "End" } // }} "" // {{{ 5 "pH_Set_Trace_Level" "Begin" function pH_Set_Trace_Level( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Set_Trace_Level" "InitLocals" o_stepReturn = 0; // }} "" // {{ 133 1 0 "de8cbad8_49c8_46e7_a0700ca21c045a6c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E054D9949EA7480786FBA86809E1466A ; err.Clear(); // }} "" // {{{ 134 1 0 "6047012d_fb0a_4b7e_8aaf873bfe7845f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::SetTraceLevel(i_intModuleID, i_intTraceLevel); // }} "" // {{ 135 1 0 "de8cbad8_49c8_46e7_a0700ca21c045a6c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E054D9949EA7480786FBA86809E1466A : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 136 1 0 "555d191a_8248_46cf_8ea20adfafc8467f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 137 1 0 "de8cbad8_49c8_46e7_a0700ca21c045a6c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Set_Trace_Level" "End" } // }} "" // {{{ 5 "pH_Sleep" "Begin" function pH_Sleep( variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Sleep" "InitLocals" o_stepReturn = 0; // }} "" // {{ 139 1 0 "a89f0ae6_b4cb_4656_a2ccf7c867144e25" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_76094A1A6DE5412d86AB364ECCABC11C ; err.Clear(); // }} "" // {{{ 140 1 0 "2a282561_49e7_4e38_9a879c795b444f19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::Sleep(i_intModuleID); // }} "" // {{ 141 1 0 "a89f0ae6_b4cb_4656_a2ccf7c867144e25" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_76094A1A6DE5412d86AB364ECCABC11C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 142 1 0 "e0169354_be6f_4f1f_8bdafe388a9c4771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 143 1 0 "a89f0ae6_b4cb_4656_a2ccf7c867144e25" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Sleep" "End" } // }} "" // {{{ 5 "pH_Terminate" "Begin" function pH_Terminate( variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Terminate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 150 1 0 "668de1be_76f5_4b4b_9bdce72e242c1da9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2159C97E67DC41d2931B29ED5B108588 ; err.Clear(); // }} "" // {{{ 151 1 0 "5eafa92d_a6f8_43b4_85d53439a46b7150" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::Terminate(i_intModuleID); // }} "" // {{ 152 1 0 "668de1be_76f5_4b4b_9bdce72e242c1da9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2159C97E67DC41d2931B29ED5B108588 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 153 1 0 "c747eb9a_16b7_4375_a0b8c1fa3905f4e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 154 1 0 "668de1be_76f5_4b4b_9bdce72e242c1da9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Terminate" "End" } // }} "" // {{{ 5 "pH_Wakeup" "Begin" function pH_Wakeup( variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Wakeup" "InitLocals" o_stepReturn = 0; // }} "" // {{ 156 1 0 "a07b04fa_c851_41e7_b5a0a2399e165b7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_AC33764C04E24aa192975F20CE5661F3 ; err.Clear(); // }} "" // {{{ 157 1 0 "b874aa08_e28d_448b_bcb942611cb0081e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::WakeUp(i_intModuleID); // }} "" // {{ 158 1 0 "a07b04fa_c851_41e7_b5a0a2399e165b7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_AC33764C04E24aa192975F20CE5661F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 159 1 0 "0bb81b5c_7196_46bd_a008386d79a49a7b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 160 1 0 "a07b04fa_c851_41e7_b5a0a2399e165b7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Wakeup" "End" } // }} "" // {{{ 5 "pH_Washer_Initialize" "Begin" function pH_Washer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable o_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Washer_Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 162 1 0 "10f9829c_87f4_46c5_9b033ca5b5c71300" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_7FD13D87F8D74230A78B98C5B83581AE ; err.Clear(); // }} "" // {{{ 163 1 0 "407cb5f5_2a38_472f_b4bf70af1717b0f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Station_Washer_Module::Initialize(ML_STAR, i_intComport, i_strModuleName, i_blnSimulationMode, o_intModuleID); // }} "" // {{ 164 1 0 "10f9829c_87f4_46c5_9b033ca5b5c71300" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_7FD13D87F8D74230A78B98C5B83581AE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 165 1 0 "dba61f0e_40e0_4580_a0521efc45217200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 166 1 0 "10f9829c_87f4_46c5_9b033ca5b5c71300" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Washer_Initialize" "End" } // }} "" // {{{ 5 "pH_Washer_Set_Trace" "Begin" function pH_Washer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Washer_Set_Trace" "InitLocals" o_stepReturn = 0; // }} "" // {{ 168 1 0 "96553ed4_7e70_4640_9f84ae4898d745b6" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B6EDA3032F05464e9D3AC6C60F6B38DD ; err.Clear(); // }} "" // {{{ 169 1 0 "878952e6_2860_4a96_a9c8d7f2ae67c7a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Washer_Module::SetTraceLevel(i_intModuleID, i_intTraceLevel); // }} "" // {{ 170 1 0 "96553ed4_7e70_4640_9f84ae4898d745b6" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B6EDA3032F05464e9D3AC6C60F6B38DD : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 171 1 0 "0f963a42_c256_489a_aaa94e1febe27518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 172 1 0 "96553ed4_7e70_4640_9f84ae4898d745b6" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Washer_Set_Trace" "End" } // }} "" // {{{ 5 "pH_Washer_Terminate" "Begin" function pH_Washer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Washer_Terminate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 174 1 0 "d9a253c1_0910_4e9f_a187149052ec3a76" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3C057778551F44998B365E9253A02217 ; err.Clear(); // }} "" // {{{ 175 1 0 "d4227020_99a1_4aa0_9d6e084149e70033" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Washer_Module::Terminate(ML_STAR, i_intModuleID); // }} "" // {{ 176 1 0 "d9a253c1_0910_4e9f_a187149052ec3a76" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3C057778551F44998B365E9253A02217 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 177 1 0 "66061ca5_5cc5_4d0f_9202635c03ec1307" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 178 1 0 "d9a253c1_0910_4e9f_a187149052ec3a76" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Washer_Terminate" "End" } // }} "" // {{{ 5 "pH_Washer_Wash" "Begin" function pH_Washer_Wash( device & ML_STAR, variable i_intModuleID, variable i_intCycleNumber, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Washer_Wash" "InitLocals" o_stepReturn = 0; // }} "" // {{ 180 1 0 "f80ebec7_e999_4849_ba9dd4ea56ea0f57" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_78E848113B364c5bA57553087E6B301D ; err.Clear(); // }} "" // {{{ 181 1 0 "f05733be_cfcc_4ec8_b953e718e1850a9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Washer_Module::Wash(ML_STAR, i_intModuleID, i_intCycleNumber); // }} "" // {{ 182 1 0 "f80ebec7_e999_4849_ba9dd4ea56ea0f57" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_78E848113B364c5bA57553087E6B301D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 183 1 0 "c9e18e37_6611_4c12_8283218c23b61e2f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 184 1 0 "f80ebec7_e999_4849_ba9dd4ea56ea0f57" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Washer_Wash" "End" } // }} "" // {{{ 5 "pH_Dryer_Initialize" "Begin" function pH_Dryer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Dryer_Initialize" "InitLocals" o_intModuleID = 0; o_stepReturn = 0; // }} "" // {{ 13 1 0 "607202ca_06ee_4a0f_866a0d2c76d5cb28" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_5DF85C91FEE34492A487BBB5FD9647BE ; err.Clear(); // }} "" // {{{ 14 1 0 "05f15313_9f49_451a_95bbeb4c53196bc2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Dryer_Module::Initialize(ML_STAR, i_strModuleName, i_blnSimulationMode, o_intModuleID); // }} "" // {{ 15 1 0 "607202ca_06ee_4a0f_866a0d2c76d5cb28" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_5DF85C91FEE34492A487BBB5FD9647BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 16 1 0 "ab7a6bde_3380_4c1c_9e57ee94fd815540" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 17 1 0 "607202ca_06ee_4a0f_866a0d2c76d5cb28" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Dryer_Initialize" "End" } // }} "" // {{{ 5 "pH_Dryer_Set_Trace" "Begin" function pH_Dryer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Dryer_Set_Trace" "InitLocals" o_stepReturn = 0; // }} "" // {{ 19 1 0 "294bac48_145a_4d48_a51b4612dd3440c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C2938C2495A74c4cA632332F553DD428 ; err.Clear(); // }} "" // {{{ 20 1 0 "3cc57734_cda6_468c_a2c90189391dadd8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Dryer_Module::SetTraceLevel(i_intModuleID, i_intTraceLevel); // }} "" // {{ 21 1 0 "294bac48_145a_4d48_a51b4612dd3440c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C2938C2495A74c4cA632332F553DD428 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 22 1 0 "b9209d93_3ded_4c38_96bc13f91674c01c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 23 1 0 "294bac48_145a_4d48_a51b4612dd3440c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Dryer_Set_Trace" "End" } // }} "" // {{{ 5 "pH_Dryer_StartDrying" "Begin" function pH_Dryer_StartDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Dryer_StartDrying" "InitLocals" o_stepReturn = 0; // }} "" // {{ 25 1 0 "a3b51a95_0ff1_47ef_b688fd99b4c881ec" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_04151AE1B5D4492089F91C4D24DFB4D1 ; err.Clear(); // }} "" // {{{ 26 1 0 "689c20eb_6a9d_4a74_88f159552e3027f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Dryer_Module::StartDrying(ML_STAR, i_intModuleID); // }} "" // {{ 27 1 0 "a3b51a95_0ff1_47ef_b688fd99b4c881ec" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_04151AE1B5D4492089F91C4D24DFB4D1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 28 1 0 "adeee0f8_b525_41bd_a62b5edf9d117c6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 29 1 0 "a3b51a95_0ff1_47ef_b688fd99b4c881ec" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Dryer_StartDrying" "End" } // }} "" // {{{ 5 "pH_Dryer_StopDrying" "Begin" function pH_Dryer_StopDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Dryer_StopDrying" "InitLocals" o_stepReturn = 0; // }} "" // {{ 31 1 0 "29d5863e_4160_4760_b56b41dc758bdcd9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_A4169CBA98C24da39C38331F531BB852 ; err.Clear(); // }} "" // {{{ 32 1 0 "db4fe054_872e_4452_8835e28b39a4ad1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Dryer_Module::StopDrying(ML_STAR, i_intModuleID); // }} "" // {{ 33 1 0 "29d5863e_4160_4760_b56b41dc758bdcd9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_A4169CBA98C24da39C38331F531BB852 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 34 1 0 "47b1bc71_479a_474d_a5b3c1fe4e31d5e7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 35 1 0 "29d5863e_4160_4760_b56b41dc758bdcd9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Dryer_StopDrying" "End" } // }} "" // {{{ 5 "pH_Dryer_Terminate" "Begin" function pH_Dryer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Dryer_Terminate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 37 1 0 "75b21d84_d009_4e72_8a0184c15d4eb585" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_976FC1B840694cb598ACF66A1DAAA974 ; err.Clear(); // }} "" // {{{ 38 1 0 "59fd889e_96a4_4c23_a1f9d3304535be72" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, i_intModuleID); // }} "" // {{ 39 1 0 "75b21d84_d009_4e72_8a0184c15d4eb585" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_976FC1B840694cb598ACF66A1DAAA974 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 40 1 0 "6d67118e_7746_4fb9_aa5ef1f641c11cb5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 41 1 0 "75b21d84_d009_4e72_8a0184c15d4eb585" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Dryer_Terminate" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=stefa$$valid=0$$time=2022-10-03 21:03$$checksum=596532a0$$length=084$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx48F0.tmp ================================================ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx5A3E.hsl ================================================ namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HslHamHeaterShakerLib.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } #include "STAR_OEM_Test.res" /* {{ 2 "LibraryInsertLine" "" */ // }} "" variable loopCounterMain; variable msg; object objJSONFromServer; variable commandFromServer; variable initializeAlways; variable o_stepReturn; object objJSONToServer; sequence seq; variable tipSequence; variable sequenceCounting; variable channelVariable; variable channelUse; variable labwarePositions; variable aspirateSequence; variable v; variable arrayOfVolumes[]; variable liquidClass; variable aspirateMode; variable capacitiveLLD; variable pressureLLD; variable liquidFollowing; variable submergeDepth; variable liquidHeight; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable airTransportRetractDist; variable touchOff; variable aspPosAboveTouch; variable o_liquidLevels_mm[]; variable o_liquidLevels_mL[]; variable o_stepReturn2; variable o_stepReturn3; variable dispenseMode; variable dispenseSequence; variable dispPositionAboveTouch; variable zMoveAfterStep; variable sideTouch; variable wasteSequence; variable useDefaultWaste; variable reducedPatternMode; variable aspirateVolume; variable o_stepReturn4; variable dispenseVolume; variable tipEjectToKnownPosition; variable carrierName; variable barcodeFileName; variable barcodeReadPositions; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable lidSequence; variable plateSequence; variable toolSequence; variable transportMode; variable widthBefore; variable gripHeight; variable gripWidth; variable gripSpeed; variable gripperToolChannel; variable checkPlate; variable zSpeed; variable gripForce; sequence lidSeq; sequence toolSeq; variable xAcceleration; variable platePressOnDistance; variable ejectToolWhenFinish; object objHttp; variable blnReturn; variable blnSuccess; variable usedNode; variable deviceNumber; variable action; variable sampleInterval; variable shakingToleranceRange; variable id; global device ML_STAR ("STAR_OEM_Test.lay", "ML_STAR", hslTrue); variable monitorResult; variable firmwareVersion; variable serialNumber; variable command; variable parameter; variable plateLock; variable shakingAccRamp; variable shakingDirection; variable simulate; variable startTimeout; variable toleranceRange; variable securityRange; variable intTrace; variable shakingSpeed; variable shakingTime; variable temperature; variable waitForTempReached; variable inverseGrip; variable liftUpHeight; variable retractDistance; variable tolerance; variable labwareOrientation; variable movementType; variable collisionControl; variable gripMode; variable showCollisionCheckDialog; global device HxFan ("STAR_OEM_Test.lay", "HxFan", hslTrue); variable fanSpeed; variable persistant; variable refillAfterEmpty; variable chamber1LiquidChange; variable chamber2WashLiquid; variable chamber1WashLiquid; variable chamber2LiquidChange; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" STAR_OEM_TOOLKIT::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{{ 1 1 0 "e7768ad9_4016_4422_bd83f5785d03ceda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnReturn = HSLHttp::Initialize(objHttp); // }} "" // {{ 2 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnReturn != blnSuccess) { // }} "" // {{{ 3 1 0 "62c131b4_44b9_4249_8e0a3205a25b21b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); // }} "" // {{{ 4 1 0 "fb18125e_b294_4554_912c3d447526996e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 5 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 6 1 0 "ee92e29b_e94c_46cf_a67851f3be61c805" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Hi, Im a VENUS method.")); // }} "" // {{ 7 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; // }} "" // {{ 8 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "de417132_351a_4ad8_80c71b1863d4a870" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" commandFromServer = Translate(""); // }} "" // {{ 10 1 0 "d9c97239_3c9d_4992_8fb5820ae5721d90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate(""); // }} "" // {{ 11 1 0 "57da7835_7495_4b16_8b82897289efbd11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn2 = Translate(""); // }} "" // {{ 12 1 0 "cf024fcc_3594_4355_b33f4bd8c8bdfb4e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn3 = Translate(""); // }} "" // {{ 13 1 0 "9ed0b80d_8518_474f_a94d8f843a6158fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn4 = Translate(""); // }} "" // {{ 14 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 15 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 16 1 0 "0257e5d3_7b99_47be_a062950a2b200664" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" msg = waitForGUItoContinue(); // }} "" Trace("JSON received from Server:", msg); // {{{ 18 1 0 "36be63f7_a79c_44a4_b1dc636a536612bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONFromServer); // }} "" // {{{ 19 1 0 "5c2b861d_97f9_4e18_a5fce25e78026299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::ParseJson(objJSONFromServer, msg); // }} "" // {{{ 20 1 0 "562abca5_8891_402a_b8a7c5ba56301a86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); // }} "" // {{{ 21 1 0 "cb002e33_cc71_4a25_890fa8f9f5d982a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("id"), id); // }} "" // {{ 22 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 23 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 24 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "initialize") { // }} "" // {{{ 25 1 0 "773dbb38_0414_403d_b2ff24100c7cf1fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); // }} "" // {{{ 26 1 0 "97af1c08_2914_4f72_b27c685f11b30bb6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); // }} "" // {{{ 27 1 0 "b3ab11e2_0297_446f_9cf37ca7c0c9d19f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Init step return:"), o_stepReturn); // }} "" // {{{ 28 1 0 "57d4e0cd_327e_4cac_8e83a7da6222dda0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 29 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 30 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 31 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 32 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 33 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipPickUp") { // }} "" // {{{ 34 1 0 "53e1cfb5_1fde_491f_bfd878eceda16ba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 35 1 0 "f0e9e31f_d871_4632_bd466e43fc38c771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 36 1 0 "e6311b13_2132_40e0_aff0b5556205c32a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 37 1 0 "cb659ed1_5f0c_41e8_8a060ec0b650c589" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{ 38 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 39 1 0 "6699226b_6c7b_4b79_95b8017162b433b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 40 1 0 "bd13798f_62e7_4dd2_8e91769d48d10fc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 41 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 42 1 0 "ce13caa6_634b_4dec_8a6c3ea74b144e95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 43 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 44 1 0 "29f69958_d99b_455a_93c7b0480bfd1658" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn); // }} "" // {{{ 45 1 0 "732425fd_a199_4354_8479d821ee834e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 46 1 0 "22f00193_1056_456e_a515d156eee56e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 47 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 48 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 49 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 50 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelAspirate") { // }} "" // {{ 51 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 52 1 0 "55ee3109_036b_4acb_8a15175f3316656f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 53 1 0 "a5b3e5ac_4910_4a4a_8e20bdb7f61836e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 54 1 0 "ce04189a_96e4_4bdc_aedc8a68bf64647b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 55 1 0 "882daff3_cc25_4778_aec6a937fc87347c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 56 1 0 "7f7b9f83_5611_4a3b_b5c120689696addb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 57 1 0 "39e464b7_0def_403b_a02f5dd2a358dbd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 58 1 0 "2e2739aa_8eb6_44e0_b887ea00b04acac0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 59 1 0 "9408edd8_3cee_43e0_976b4a6fabf5f4ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 60 1 0 "a2848877_3518_4d1d_95f77c1f313003e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); // }} "" // {{{ 61 1 0 "4b5ce3d0_91f4_4c14_aaf1cad34e0caf60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" Trace("Bookstart"); // {{{ 63 1 0 "12892ce3_3bc6_4165_b3b6ae0eacad20e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" Trace("Bookend"); // {{{ 65 1 0 "15bd5af3_2da1_420b_beb398dc2347a0ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 66 1 0 "4fe61fb4_bb39_4728_96b8c6959f4943ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); // }} "" // {{{ 67 1 0 "ba68c240_2397_4872_949ee1ee984595c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 68 1 0 "baac19fc_9f21_4e8c_b833f2a1ba2433f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 69 1 0 "253130f8_f599_4ef4_9d5a15e2cb89d1eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 70 1 0 "51233931_483f_4deb_a8627b909d6c9116" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 71 1 0 "3f8b6af1_7872_4a20_92bf2c4507ea9f31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); // }} "" // {{{ 72 1 0 "7dd1b818_5a89_4b03_82734e6f4d7b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{ 73 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 74 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 75 1 0 "cb2b67f0_7384_4a41_831de652f92d4c85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 76 1 0 "29a868b4_7800_4747_b14eaf0f2c10ba40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 77 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 78 1 0 "08f63789_65f1_4e7d_996dc22e8f33d416" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 79 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 80 1 0 "7cb70e6b_15bb_4380_b62150df065d208f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{{ 81 1 0 "e86187c0_0d19_453e_be1c5a401d0d5d93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 82 1 0 "d66c2dae_4cc3_4a31_bafe46d1dd63e790" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 83 1 0 "d23f143d_290d_4d0f_b368241a6a9adaed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 84 1 0 "0428e844_3191_4cde_b7f3544f34c833f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 85 1 0 "a7ca006f_941c_4b31_9749313ad9b4e079" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 86 1 0 "8c97ba72_f880_4504_baee8b8db3d13310" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 87 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 88 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 89 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 90 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelDispense") { // }} "" // {{ 91 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 92 1 0 "909bc255_6ca1_4700_bc102ccb34ae5be4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 93 1 0 "fd48dd93_9f42_4df0_9f659e27a5552543" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 94 1 0 "3ff3f492_86a5_40af_a3deabccbab3898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 95 1 0 "3cbb883f_48ae_40fe_afe67da944df94b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 96 1 0 "ab1033bc_1216_450a_9fb60655a1f1a21a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 97 1 0 "0bc1541f_26d5_44d6_8db6ae336fec17bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 98 1 0 "8c10cc29_c05e_4cea_9ed559249651e805" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 99 1 0 "3e0373da_7c7c_46ab_9b77fba19915662e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 100 1 0 "b98fdc49_cdcb_4f3c_81df0b76eafa1411" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 101 1 0 "7458d32a_402a_4215_b52378c78468ec80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 102 1 0 "5e14f2ce_c932_474b_be03f3c043c700e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 103 1 0 "c2010d1d_5a78_4871_a835a6613a1237bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 104 1 0 "d4a6e6a3_0158_45f1_9c359d8e48e01bed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 105 1 0 "011e9828_5413_40c1_80d0c3bdde1c6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 106 1 0 "2d7a4942_b2ce_43a2_8decf49fa0c9576c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 107 1 0 "b178ce99_db9e_4453_bed28d4ce0457bc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); // }} "" // {{{ 108 1 0 "1b38ad88_3c65_4e58_812f9ed32ce32485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{{ 109 1 0 "f34066f1_63f9_474f_8a9c41e56962dc74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 110 1 0 "6b94916e_355b_4ee9_8eb4f1b49c95fea4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 111 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 112 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 113 1 0 "e962dd26_3672_4418_bd3c40e9929929eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 114 1 0 "6257966a_6b39_41c8_a057a79b8e39cd4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 115 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 116 1 0 "3f230e40_8bd9_4235_b88cd0ca80799661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 117 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 118 1 0 "ac0ad5a7_d00b_46fe_a18f94f8dab3863c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{{ 119 1 0 "2753c24e_c4dc_402d_866b6bc8691ecc1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 120 1 0 "1ac127fd_b830_496f_b4d4b9671137ebff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 121 1 0 "3ee5d751_d3a5_468a_b539c4f0ff22023e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 122 1 0 "b86d492c_446f_4921_97140cfd462ace87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 123 1 0 "e049946d_6322_4b39_9c46a2d0eb345528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 124 1 0 "531432f5_ef8a_416e_8be28a07ae9b0d25" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 125 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 126 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 127 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 128 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipEject") { // }} "" // {{{ 129 1 0 "69be671e_7cdd_48d3_af136435754c1d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 130 1 0 "f3444c0f_4863_4fdd_94a025b682d8a6d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 131 1 0 "12ad2f39_c160_4afc_9f6ffce7e3ddb433" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 132 1 0 "2883bb64_2fe3_47ca_996e11434afc57cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 133 1 0 "10c3b13e_7129_4cfd_b88b29d0bbc31a28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); // }} "" // {{ 134 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (useDefaultWaste == 0) { // }} "" // {{ 135 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 136 1 0 "655bc92f_08a8_4c16_a0276997aec081ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 137 1 0 "a3a0b5ef_85c0_4552_a28b3356d7886eb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 138 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 139 1 0 "efadb8c3_c431_4ed4_a739a951c05ee518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 140 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 141 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 142 1 0 "2dda50b6_7f82_4e8a_a1d203715119213a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 143 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 144 1 0 "7fa61e34_a1f2_4b99_8f6bed13c6ce120f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn); // }} "" // {{{ 145 1 0 "a7db5128_f8e4_4afe_81f46b2cc86e608d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject step return:"), o_stepReturn); // }} "" // {{{ 146 1 0 "683607f4_928f_4cea_b901fe3502404424" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 147 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 148 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 149 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 150 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 151 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 152 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipPickUp") { // }} "" // {{{ 153 1 0 "1f82c33f_a085_47cc_85dbbde3e42a53c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 154 1 0 "9f9fe665_47a2_4a12_961460021d1f09f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 155 1 0 "743960d2_9d0f_4ccf_848662247e3211c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 156 1 0 "b737602c_63e8_4c4c_b47f40cb815914ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); // }} "" // {{ 157 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 158 1 0 "00bd1831_c335_40f5_b706f0ffadbe2890" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 159 1 0 "1f16418c_8fa7_44a5_a6db75dd9a79ee84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 160 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 161 1 0 "b66db4eb_9e79_4c19_909fd8d14d37cba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 162 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 163 1 0 "f3e7cbf6_0242_4463_8d4ed0db4667f7db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2); // }} "" // {{{ 164 1 0 "b080a5c6_324c_4aae_b5899dede6d863f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 165 1 0 "aa5a9c4b_0377_46ce_9b46883db15cbd7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 166 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 167 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 168 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 169 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Aspirate") { // }} "" // {{ 170 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 171 1 0 "373f30c8_ec07_4298_94d6ac75358ab1ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 172 1 0 "ef3ae377_e985_4ef6_93b005aa91c9b2b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 173 1 0 "d8eea65a_6e59_4c32_a47bae09779f9528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 174 1 0 "8eb02312_a070_491c_9758b3cdbdee0cfc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); // }} "" // {{{ 175 1 0 "6eaf8bee_b53f_4f01_87c1380bc345e386" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 176 1 0 "d9923a2f_e7cf_4f3e_81746e378a20baab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 177 1 0 "2c411993_e3fc_4753_9a90308b226078a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 178 1 0 "5d900896_b2b9_442b_b24294b9bbfbdaad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 179 1 0 "21149e9e_21c9_4ddd_93e07b693e3ab3fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 180 1 0 "bcefef03_102b_4887_adad59c2fb7ad551" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 181 1 0 "9665b0a3_35e8_47e9_b14ac1a4818cfa6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 182 1 0 "ff93d28b_afe9_47e7_9b6eb50d6845384f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 183 1 0 "ef43b824_fd38_42d4_9e932904dbf14813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 184 1 0 "b0378457_e370_448b_bfd6955c05e57bcb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{ 185 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 186 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 187 1 0 "615bcff6_e9d5_4303_a5d5826b2e2548dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 188 1 0 "cf4ad428_945e_4921_9441ee34cf9c96bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 189 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 190 1 0 "86397ec2_2ee5_4ec1_8bec47d8e87584b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 191 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 192 1 0 "48f88263_72c1_4df2_865181cffed9feee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 193 1 0 "f1b764e8_e556_4d08_bb83bdc12dc64a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 194 1 0 "164c104a_cf5f_46de_b23a098a18b3fdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 195 1 0 "ee779f77_51a9_46d7_b58b7bcaf13519f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 196 1 0 "e874eb6d_1e97_4590_95d9b10cb059c935" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn4); // }} "" // {{{ 197 1 0 "0ca1df86_a344_45fd_b384e13ba44c5ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 198 1 0 "2497228e_672e_4c95_9f31679fe87bbe1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 199 1 0 "e4930eee_c625_4acb_a81c05e149a1a218" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 200 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 201 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 202 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 203 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Dispense") { // }} "" // {{ 204 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 205 1 0 "78cba921_2a37_4b4a_91ef7fbe81fcddd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 206 1 0 "b58b4cbd_16e9_4444_9037061e29bc5614" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 207 1 0 "0ab910ec_826d_4c84_bac7ed9564f3bdab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 208 1 0 "84d664b7_70d0_4136_bdfd4de2aa760ad8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); // }} "" // {{{ 209 1 0 "18becc6a_2df4_4281_8b16ade9038979f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 210 1 0 "68c565db_e5ed_44e8_b3846a1d98034e76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 211 1 0 "6a4221a8_9488_48f9_8381b1bc0f0c960d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 212 1 0 "45dcb271_e326_42fc_b8684816d3ffdc93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 213 1 0 "14552b13_e77b_4fb7_9020445ecc5ade21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 214 1 0 "91783f87_af6f_446e_a74fb1725f17d282" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 215 1 0 "e2e7f702_1710_49eb_9b1046dbf4f143e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 216 1 0 "1817aa70_86fa_4318_a8e46569701623e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 217 1 0 "50bd6734_10d5_4291_b40eb708539514fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 218 1 0 "ad5fbb01_d809_4b7d_b858ed597709f28f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 219 1 0 "09566247_6b2d_4c73_b43fe303a30f89c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 220 1 0 "3ead74f7_3b5c_4b21_84d2488c2eceab73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 221 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 222 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 223 1 0 "835f8470_7e8c_40ff_a48abcc85d6b778b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 224 1 0 "059394fc_e924_4d57_b1b85f79f9947fa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 225 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 226 1 0 "6c4be3a7_a450_459c_90545a208f9f459f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 227 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 228 1 0 "c164a94e_2926_462e_9487870d403fe8b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 229 1 0 "86c0fb85_8aaf_4bec_9f6f1f642206487f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 230 1 0 "77047add_8050_4522_ad477b97455a8327" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 231 1 0 "5b2c6f23_9a69_489d_b52179c78c03e48f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 232 1 0 "a9a9244b_829f_4c5b_9a64f1018b029453" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn4); // }} "" // {{{ 233 1 0 "781580a9_199e_4373_b48bb55a97f8a463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 234 1 0 "1867ae44_25f8_4926_ae081e490fd5aa0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 235 1 0 "dbb3b30c_b4a1_4cf6_a24b62b63f155369" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 236 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 237 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 238 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 239 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipEject") { // }} "" // {{{ 240 1 0 "7cf9db16_d78c_4aa0_825cc3c2c22f287c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 241 1 0 "ccca7a97_c22a_4f20_b2d9a60d67850eee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 242 1 0 "a319f75e_77eb_4845_856516ce060213f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 243 1 0 "d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); // }} "" // {{ 244 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipEjectToKnownPosition == 0) { // }} "" // {{ 245 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 246 1 0 "24eeb6dd_1e20_422c_a1a8199cbca73b33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 247 1 0 "5197334f_cde5_4d52_9c528a0c4f7401b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 248 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 249 1 0 "110b82e1_8a5b_48e4_a3adbab701cffc8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 250 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 251 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 252 1 0 "fa32bbf8_8345_4897_aaf09d112d374893" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 253 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 254 1 0 "ef087a4e_684e_4d98_87109abf154fbc85" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2); // }} "" // {{{ 255 1 0 "328216cf_22dd_47a1_9f1ba089b1ac7702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn); // }} "" // {{{ 256 1 0 "53265943_7975_4275_ad98df313054f97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2); // }} "" // {{{ 257 1 0 "c13d9773_7daf_4c3c_9064fdd4f7c7008f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 258 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 259 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 260 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 261 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 262 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "loadCarrier") { // }} "" // {{{ 263 1 0 "76d739d0_ff4a_490b_9c47f411d29ef7a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 264 1 0 "ca623aa7_ed48_45fa_9f4055fb8e08c3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); // }} "" // {{{ 265 1 0 "64a8e193_7e7e_412e_8a0657f0e832eaef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); // }} "" // {{{ 266 1 0 "39e6aaef_5cce_4915_b5b6ede214c7371e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs); // }} "" // {{{ 267 1 0 "1d4d284f_fd1e_4f8a_a2158846ad6a67f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Load carrier step return:"), o_stepReturn); // }} "" // {{{ 268 1 0 "358b7fc3_40a2_418b_9d61d94eef1556f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 269 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 270 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 271 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 272 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "unloadCarrier") { // }} "" // {{{ 273 1 0 "797d23a7_c62a_471a_a52b10fea8bcc154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 274 1 0 "f1c35790_adb7_49eb_a96864d8b1d66cea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn); // }} "" // {{{ 275 1 0 "6e6ded71_3f99_46c5_9362117beb502a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn); // }} "" // {{{ 276 1 0 "8713fee4_6b93_4296_a5396254fd404d52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 277 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 278 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 279 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 280 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 281 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripGet") { // }} "" // {{ 282 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 283 1 0 "c4847ae5_e161_4f23_aa432eda22de28bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 284 1 0 "022a5cdd_3f4f_4e18_927c174fc57a68a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 285 1 0 "3e462067_5eb3_49c3_b7bf6a27de9ce3bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 286 1 0 "f7004881_3f0d_4621_a88d55dec8fc0d30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 287 1 0 "262b36ba_6d86_4009_bdc9a3881db7074e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 288 1 0 "be44b37f_7cec_4f69_81c223f2c30b120b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 289 1 0 "3dea3158_65f8_44bc_8d06a31ce3458dab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); // }} "" // {{{ 290 1 0 "308b2aa2_5970_4692_858049c6559d6ad0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 291 1 0 "756d0f81_3645_4a49_a0c2259581e11498" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 292 1 0 "cdbf11ba_b1f8_4016_811240a02705f1fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{{ 293 1 0 "625df597_c6c8_4e4a_b956e9580bfbc568" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); // }} "" // {{{ 294 1 0 "3576d134_8507_4e47_9c2bcc3dce8c026d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 295 1 0 "5b9c06ad_9081_4b6b_97e50cc87623b888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 296 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 297 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 298 1 0 "d1f3c2ac_9c68_4200_a3506bbbed8e42a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 299 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 300 1 0 "f1d1c43b_a9dd_4573_a69dd7c0e79eea40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 301 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 302 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 303 1 0 "4d304110_107e_412e_909bb84008a244de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 304 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 305 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 306 1 0 "72e31f7d_c091_4525_a5cf7001754b199d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 307 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 308 1 0 "47dfcbb5_d784_48bb_b36b97509434a3a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 309 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 310 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 311 1 0 "e6c53925_446e_468e_b0e0654b4b9d9a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 312 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 313 1 0 "c0cbb194_1b8b_4fe0_a0f706e03eaa0748" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 314 1 0 "46703217_a28e_42ce_b13c11d73ba34bfa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn); // }} "" // {{{ 315 1 0 "189164cc_2681_492f_83f072fb537648b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn); // }} "" // {{{ 316 1 0 "c8d6960a_f416_47b1_a29e2752973c0ec9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 317 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 318 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 319 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 320 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripMove") { // }} "" // {{ 321 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 322 1 0 "5755c338_faa3_4f0a_9acd4cd01a912862" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 323 1 0 "2849c819_a3dc_4328_8484ccc4785993d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{ 324 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 325 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 326 1 0 "e038f780_938f_4867_98f769488ca44b04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 327 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 328 1 0 "27439ab7_df5a_4e1b_99b64e6c9fd0d9f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 329 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 330 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 331 1 0 "e2da0756_7cea_44e7_963442343f3c0732" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 332 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 333 1 0 "90f602a1_fdc5_48fd_801269ecd2c3f9bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn); // }} "" // {{{ 334 1 0 "dc418b75_2d70_4034_84a767fba752b262" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn); // }} "" // {{{ 335 1 0 "6379549c_caf9_409f_b293abf77f1dcfbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 336 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 337 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 338 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 339 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripPlace") { // }} "" // {{ 340 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 341 1 0 "6f38d60b_6dc5_4159_ba30360f264222da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 342 1 0 "b6ef73cf_c89c_41cc_a3b72dc5aaf70f90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 343 1 0 "c7e5f5bd_edcc_4000_9be3db81af0c79fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 344 1 0 "91ff4c39_6a86_4eda_998a5461ef6c3cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 345 1 0 "341a6f8e_b4c8_4966_b9520322d1bc2e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 346 1 0 "32792c80_3b36_4a25_8fff6b99bfcf1919" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); // }} "" // {{{ 347 1 0 "b1e5d86e_c659_4d33_9e0f83fdb20b2cb5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 348 1 0 "76b26748_4e74_45f7_85a7dc102b5fd7b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); // }} "" // {{{ 349 1 0 "ee221e8a_a662_49d8_be2ef0ed631d9527" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 350 1 0 "cbefd54c_5f0a_4a16_a0199198529b71fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 351 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 352 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 353 1 0 "ac4e7090_c3c7_4707_8d98dc55262c294b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 354 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 355 1 0 "eb5776ad_c858_4ee8_ba31f47af19e76af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 356 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 357 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 358 1 0 "1f3eb006_1b10_427e_99d0b530f1afc2ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 359 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 360 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 361 1 0 "a04c5993_bf3e_46c7_92f24c8236636b00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 362 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 363 1 0 "2455f68c_be4e_4a21_9e9e78f78f6e8e3c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 364 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 365 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 366 1 0 "ad5d98b0_9e3d_4275_90ceef06ceca045d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 367 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 368 1 0 "3321537f_63fb_48a4_90e40a2fee1cc432" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 369 1 0 "8c7e60df_f040_45c6_a939d99bcd0ac23c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn); // }} "" // {{{ 370 1 0 "24e589a9_98d7_429d_90c8afe203e96ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn); // }} "" // {{{ 371 1 0 "9d94d038_d071_4339_aaace5a2e455b240" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 372 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 373 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 374 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 375 1 0 "e411727d_3702_4640_8cb2d7ab8b58a300" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 376 1 0 "ed119e90_c1cf_47e9_882c9179c7675524" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 377 1 0 "006e4737_2b28_4b29_88cabf15c00d0b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGet") { // }} "" // {{ 378 1 0 "7424658f_9b27_4ef0_96837fa8add4c1ac" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 379 1 0 "18dba370_9751_4c10_938c0dcc1f09476a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 380 1 0 "ba1314c5_bdbb_4947_b8ee11ecc5c9306e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 381 1 0 "2de0b12d_07d0_4e02_aeb0adc84a286d4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 382 1 0 "62251128_9c16_4b76_a74221e3e5485ec4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 383 1 0 "991ef31e_cf56_46cb_a1b5023d16177201" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 384 1 0 "a7e77649_9eb2_4bbe_8d4df91d28ca2833" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 385 1 0 "bce9279a_be9d_4a51_b382d782fe953b4f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 386 1 0 "cae1eeb4_415a_4ca2_9cbdc8fbd7bcb5ca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 387 1 0 "47122b9f_c6d0_4a2d_aab3313da595b6db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("inverseGrip"), inverseGrip); // }} "" // {{{ 388 1 0 "b3579536_edb4_4221_babfa43071cf483f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 389 1 0 "4a408dec_c225_49ad_bf9a34fc001001a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{{ 390 1 0 "254c5a0f_44da_4098_b535a89623fde4e9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 391 1 0 "ce8d1267_fa97_4dc5_a35fdb48eed4af6f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{{ 392 1 0 "267e45b6_811f_46eb_a5cf5dcb26fa4ab0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 393 1 0 "40e3aef8_bb0d_49d2_be4badbbed382613" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("tolerance"), tolerance); // }} "" // {{{ 394 1 0 "83550ea0_852b_4084_b34f7fcfd03b6bdf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 395 1 0 "48212cee_a3fa_4708_951f45d7135865bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{ 396 1 0 "7424658f_9b27_4ef0_96837fa8add4c1ac" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 397 1 0 "75be1853_53c2_40d4_968a231c3ec4efae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 398 1 0 "fbc3301f_ce0a_48d5_ad28d0de566e8968" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 399 1 0 "a6a66731_2fea_4358_8cc6545cbb29217a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 400 1 0 "ff2e3d36_c066_4d66_b6acbb2d01d07322" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 401 1 0 "a6a66731_2fea_4358_8cc6545cbb29217a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 402 1 0 "75be1853_53c2_40d4_968a231c3ec4efae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 403 1 0 "40ff9454_596f_42b1_a566d8ee6f7e392c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 404 1 0 "75be1853_53c2_40d4_968a231c3ec4efae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 405 1 0 "18e4b92e_69c6_4fb1_a5032c3224f92e52" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 406 1 0 "905809a6_70ea_4397_b8baecc2ca9a1bd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 407 1 0 "a70a035b_d0bc_4cc3_917340dffbf2ee6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 408 1 0 "3f92b115_b29a_4772_955189aa840c37db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 409 1 0 "a70a035b_d0bc_4cc3_917340dffbf2ee6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 410 1 0 "18e4b92e_69c6_4fb1_a5032c3224f92e52" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 411 1 0 "ca37a475_a69e_4367_aae015a113535d8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 412 1 0 "18e4b92e_69c6_4fb1_a5032c3224f92e52" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 413 1 0 "6767b91d_ea7b_4619_b57b512927b0cb6a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn); // }} "" // {{{ 414 1 0 "034d46bd_e017_4e49_bda2a918b966a9ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Get - step return :"), o_stepReturn); // }} "" // {{{ 415 1 0 "2167695b_833d_4537_b1ca621cd9cb254f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 416 1 0 "006e4737_2b28_4b29_88cabf15c00d0b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 417 1 0 "ed119e90_c1cf_47e9_882c9179c7675524" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 418 1 0 "2d45fcde_698f_4b1e_85c2b355d05ece3f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 419 1 0 "664c8ad8_1978_406c_ba006c21ee6cdc2e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapMove") { // }} "" // {{ 420 1 0 "8dc2ff24_58d0_4fb9_b4476261c7ec9f73" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 421 1 0 "4b09b616_7ad2_4d2f_a3f51c49956f7d25" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 422 1 0 "784d4df8_3b6e_41d3_ac01d0b30128d63d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 423 1 0 "ce22c98b_cefd_44e1_a21f17817fa26757" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{ 424 1 0 "8dc2ff24_58d0_4fb9_b4476261c7ec9f73" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 425 1 0 "192114b0_07b3_4dd4_b8580bbd0300657b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 426 1 0 "19bdcb09_5067_4650_a51d59790ea58358" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 427 1 0 "6bb5085c_63ec_4166_b16d4b088bf17a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 428 1 0 "bbcdaabe_ca2a_4ec9_9c13e083f812412a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 429 1 0 "6bb5085c_63ec_4166_b16d4b088bf17a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 430 1 0 "192114b0_07b3_4dd4_b8580bbd0300657b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 431 1 0 "69b92e0b_ba29_42dc_a6d5ea83701df138" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 432 1 0 "192114b0_07b3_4dd4_b8580bbd0300657b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 433 1 0 "4f9e972e_7acd_45bc_9ed8d7ec3835b42b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn); // }} "" // {{{ 434 1 0 "57844fa2_0bdc_4ba5_aea223c87eb45a0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Move - step return :"), o_stepReturn); // }} "" // {{{ 435 1 0 "cf9a830f_2fb4_44b1_8226f2041b55c305" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 436 1 0 "664c8ad8_1978_406c_ba006c21ee6cdc2e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 437 1 0 "2d45fcde_698f_4b1e_85c2b355d05ece3f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 438 1 0 "9d132be9_3327_43f0_861eab191b312efe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 439 1 0 "f6cc8299_2f28_46a6_9bb97037e5dc466a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPlace") { // }} "" // {{ 440 1 0 "ea361219_5a73_449b_9e9f28937269d164" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 441 1 0 "9271e4c5_3af5_416a_b4ff109847510419" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 442 1 0 "56a04f09_338f_4736_aca6e9c2d81e2c66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 443 1 0 "1e90c36e_9422_4cbb_8894ee0ca1ecb7a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 444 1 0 "2fb72d08_217e_46b5_974400449189f377" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 445 1 0 "83dd7d6c_87dd_4660_8113302408cde86f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 446 1 0 "3619d2e6_ca56_4e64_93bc2c4e763b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 447 1 0 "60a67018_c240_43a5_9f44311bc1e98746" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 448 1 0 "c33ebbef_42a4_46fd_9a8469f9e411c897" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 449 1 0 "20603c7b_d59a_4c57_96ee9752927ff64f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 450 1 0 "1e3f75b9_3592_485c_8b2d352f72a3c437" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{ 451 1 0 "ea361219_5a73_449b_9e9f28937269d164" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 452 1 0 "060f69c1_3a66_464e_8b4353f8f562116a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 453 1 0 "768ae6ad_e584_4b00_8ded5be49db3ac78" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 454 1 0 "e9be51d0_8991_4d2b_8f1e4353bb247c8c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 455 1 0 "2bdfa4de_1f49_4935_801ba5f52847fdc3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 456 1 0 "e9be51d0_8991_4d2b_8f1e4353bb247c8c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 457 1 0 "060f69c1_3a66_464e_8b4353f8f562116a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 458 1 0 "8ad7936f_b4fc_4d56_b2a69c2117a3e2c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 459 1 0 "060f69c1_3a66_464e_8b4353f8f562116a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 460 1 0 "1b9c4a3a_ce6f_4f69_bb890e9ead027750" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 461 1 0 "ae513bfa_0e69_4286_982d555c61b04bea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 462 1 0 "d58b1c9a_619d_4564_b7013ae9300a62c5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 463 1 0 "c6f18361_c2d4_497e_b3568731fe7f72c5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 464 1 0 "d58b1c9a_619d_4564_b7013ae9300a62c5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 465 1 0 "1b9c4a3a_ce6f_4f69_bb890e9ead027750" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 466 1 0 "a1ed641c_3701_495f_ab89e05bf92c5b2f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 467 1 0 "1b9c4a3a_ce6f_4f69_bb890e9ead027750" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 468 1 0 "f6d60a86_5450_40d3_be3b7f2c660e2fe7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn); // }} "" // {{{ 469 1 0 "4805700b_6f6f_426a_9bcbf4176c6fb71f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Place - step return :"), o_stepReturn); // }} "" // {{{ 470 1 0 "74998056_c8c5_4618_88757b8da6932071" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 471 1 0 "f6cc8299_2f28_46a6_9bb97037e5dc466a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 472 1 0 "9d132be9_3327_43f0_861eab191b312efe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 473 1 0 "3625fde9_51e1_4bb2_84181491a737c26b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 474 1 0 "82f46916_6725_423b_bde46572a3389992" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPark") { // }} "" // {{ 475 1 0 "bfcf1a15_a297_4990_80d9119c099d7671" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 476 1 0 "c7a26fdd_6c33_4ae6_a90ef3acfdc7f489" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("showCollisionCheckDialog"), showCollisionCheckDialog); // }} "" // {{ 477 1 0 "bfcf1a15_a297_4990_80d9119c099d7671" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 478 1 0 "34a065e0_018c_461b_87990a6c61147520" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{{ 479 1 0 "3c7ef19d_c34c_4a13_86e9e970b61a69e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 480 1 0 "cb13151a_7bef_4779_99b9954f02aea276" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 481 1 0 "82f46916_6725_423b_bde46572a3389992" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 482 1 0 "3625fde9_51e1_4bb2_84181491a737c26b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 483 1 0 "e411727d_3702_4640_8cb2d7ab8b58a300" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 484 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 485 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 486 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_BeginMonitoring") { // }} "" // {{{ 487 1 0 "7dd862dc_f7f1_4600_94ca9b83762673dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 488 1 0 "d37d14e5_261f_418c_81f754eb75bf4920" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingToleranceRange"), shakingToleranceRange); // }} "" // {{{ 489 1 0 "0919ceb3_189a_4885_93c8faeab9f9538b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sampleInterval"), sampleInterval); // }} "" // {{{ 490 1 0 "bc3a749e_e1bb_4c4a_9aac06834d85080f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("action"), action); // }} "" // {{ 491 1 0 "4e026721_fd49_4127_87fda5791fa13eff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 492 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ; err.Clear(); // }} "" // {{{ 493 1 0 "a2a0a3bb_c0cf_4123_afe36d1d51ae233c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action); // }} "" // {{ 494 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3202FD4CC34D478f892F31C7684340BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 495 1 0 "7066bb37_8c48_474d_8f467cf1f1e06a8d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 496 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 497 1 0 "c00b8635_652d_48ca_8d345ed070306b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 498 1 0 "85ac1487_5644_4bae_b032f5c191aa47c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 499 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 500 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 501 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 502 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateStarDevice") { // }} "" // {{{ 503 1 0 "4c3dfdd2_2dd6_4c5f_831f92590c13e82e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 504 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_18D9C44C12554d56B5C39C21EA142EC8 ; err.Clear(); // }} "" // {{{ 505 1 0 "cc3d4234_12d6_486a_a110c8ede0e3059b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber); // }} "" // {{ 506 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_18D9C44C12554d56B5C39C21EA142EC8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 507 1 0 "7f473860_0be7_4dc2_87423136869dd829" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 508 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 509 1 0 "7699b24c_5ec6_4cca_b1cb9aed9ce60247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 510 1 0 "85155966_9554_40cb_9693f9b0a11b25a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return2 (device number):"), deviceNumber); // }} "" // {{{ 511 1 0 "d049e779_0761_471d_9f7b8af0967d1633" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 512 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 513 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 514 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 515 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateUSBDevice") { // }} "" // {{{ 516 1 0 "72f0a762_2550_45ad_bea063f4f72a9fe9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 517 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ; err.Clear(); // }} "" // {{{ 518 1 0 "0cd1cef0_3091_48c3_b63490d3e80a5b45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber); // }} "" // {{ 519 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_98100824AA704d26AB40A6BADEF39F48 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 520 1 0 "53df6909_1d0e_4001_ac674452fec957bc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 521 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 522 1 0 "85d76321_871e_4d0e_bb460b7513742e62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return:"), o_stepReturn); // }} "" // {{{ 523 1 0 "d303212f_1f38_442d_a24eee709cf4cdc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return2 (device number):"), deviceNumber); // }} "" // {{{ 524 1 0 "7356ec1e_8437_4679_94613ac2bea4fe0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 525 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 526 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 527 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 528 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_EndMonitoring") { // }} "" // {{{ 529 1 0 "4293ef15_cfcd_4e29_b9b02afae2d471f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 530 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ; err.Clear(); // }} "" // {{{ 531 1 0 "96f15f32_4117_4a09_85dceac0fa769b43" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult); // }} "" // {{ 532 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 533 1 0 "6ba4b834_521a_46da_9ceb8ced08da95f5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 534 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 535 1 0 "ce89bf49_b865_4c3f_a97eba220b5a7d33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS End Monitoring step return:"), o_stepReturn); // }} "" // {{{ 536 1 0 "05229af2_f20a_42ce_908ec8445f3f9dd2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(""), Translate(""), id); // }} "" // {{ 537 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 538 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 539 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 540 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetFirmwareVersion") { // }} "" // {{{ 541 1 0 "942a1cc2_d956_47fa_9a9ffed1e856a632" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 542 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ; err.Clear(); // }} "" // {{ 543 1 0 "20e2b3e5_8664_4809_9bcf626c89196333" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 544 1 0 "c70f5e07_0eeb_45e5_af26714895e2df88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion); // }} "" // {{ 545 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 546 1 0 "38e3e61d_a654_46f5_87f53cf7dfc09446" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 547 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 548 1 0 "7de3b86c_c16d_4932_beedfb948b5d85f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(""), Translate(""), id); // }} "" // {{ 549 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 550 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 551 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 552 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetSerialNumber") { // }} "" // {{{ 553 1 0 "38b7d0d7_7cce_4157_8abc70dfb62eefa5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 554 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 ; err.Clear(); // }} "" // {{ 555 1 0 "d92781d1_27c2_48fb_acfd9cb32428e910" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 556 1 0 "0bbfb488_9723_4a08_9b90171dbec6117a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber); // }} "" // {{ 557 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 558 1 0 "19daab0c_59b0_4af8_a070bee39acf20c1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 559 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 560 1 0 "311e5a04_1ac3_443c_bdc51c5cdc4c44f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(""), Translate(""), id); // }} "" // {{ 561 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 562 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 563 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 564 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerParameter") { // }} "" // {{{ 565 1 0 "f3888a0b_86ea_4c4a_891e1755a6e78556" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 566 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ; err.Clear(); // }} "" // {{ 567 1 0 "df61bf49_7625_493f_ad06bbdbb36b494a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 568 1 0 "e993ed67_92ed_4c85_bd33f90aac53dfb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3); // }} "" // {{ 569 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 570 1 0 "accda6cd_138b_411c_bf3af9b152e986c8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 571 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 572 1 0 "6efd49bf_48c7_437b_8fee57487345eaee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 573 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 574 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 575 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 576 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerSpeed") { // }} "" // {{{ 577 1 0 "e1c29a26_0656_46e3_b0a412143047bd26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 578 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ; err.Clear(); // }} "" // {{ 579 1 0 "8d513473_33ad_47dc_a8c3ed9799195b58" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 580 1 0 "d7148e56_7fcc_471d_8c3a7abc2847db7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2); // }} "" // {{ 581 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 582 1 0 "ee004b75_f488_428e_99b02212bd478984" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 583 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 584 1 0 "41ba2513_e3c2_485c_821198419c3fe286" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 585 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 586 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 587 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 588 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTempParameter") { // }} "" // {{{ 589 1 0 "09fb30ea_33e9_486d_96945af4798859ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 590 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ; err.Clear(); // }} "" // {{ 591 1 0 "4f9610c2_a783_4586_b1725e8904e476cc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 592 1 0 "eea3f2ce_93c1_4efd_be90b89d775a6867" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 593 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C16E1CF8298042f0A01D1040DC911015 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 594 1 0 "ad6b8668_d455_40f9_9e64eac973c2db0c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 595 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 596 1 0 "81e3038e_a3ea_4252_a09b14cd3de477a3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 597 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 598 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 599 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 600 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperature") { // }} "" // {{{ 601 1 0 "01d1add6_c167_4137_8f0c285cd6ad9bed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 602 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ; err.Clear(); // }} "" // {{ 603 1 0 "a54c8c75_1172_46d3_a61e71fe7fea812d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 604 1 0 "4187d732_0d13_4590_99fa08572e32e2f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2); // }} "" // {{ 605 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_14A2AAD200434d69970AC483BD08B64F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 606 1 0 "e9f473e4_b341_4e28_8c5c444235409181" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 607 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 608 1 0 "234847f1_2f0a_4e64_856b9edefcebb425" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 609 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 610 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 611 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 612 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperatureState") { // }} "" // {{{ 613 1 0 "82a233ab_0392_4ebb_9a809d80aae38e44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 614 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ; err.Clear(); // }} "" // {{ 615 1 0 "19a32be3_7476_425d_a82433aead4637cf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 616 1 0 "7f7e0bd7_bea9_474d_92bce5d21da9a2a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2); // }} "" // {{ 617 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_50485390A50647818ED2D3934FBC87E3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 618 1 0 "81e1a27f_16e2_44ed_b7cd3b11ac866a97" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 619 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 620 1 0 "31a69f44_1a59_49ce_a78763f3aa936042" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 621 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 622 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 623 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 624 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SendFirmwareCommand") { // }} "" // {{{ 625 1 0 "11546c32_6ddd_4250_9b8750c9679e5b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 626 1 0 "06688598_f10e_41e9_8a2c6d3dff7b7aae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), command); // }} "" // {{{ 627 1 0 "15a58509_ec93_4677_b1858cadeac42d10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("parameter"), parameter); // }} "" // {{ 628 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ; err.Clear(); // }} "" // {{ 629 1 0 "84b0a5f3_5e82_4770_81998131d1071a7a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 630 1 0 "b63ba349_9a52_43ca_aec17e40c17d231b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter); // }} "" // {{ 631 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_84EE5E4228B140f599748D1271CBB0F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 632 1 0 "f46c286b_9141_4717_ac23994f8defc186" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 633 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 634 1 0 "8b5634c2_e1da_41d3_83c57142f4cae999" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 635 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 636 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 637 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 638 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetPlateLock") { // }} "" // {{{ 639 1 0 "927ddf67_5dbd_432b_b8cf6117a3109b06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 640 1 0 "a3eee1ac_7024_473b_a6eb8a2e9b461a66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("plateLock"), plateLock); // }} "" // {{ 641 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ; err.Clear(); // }} "" // {{ 642 1 0 "a9029174_cbad_4f9c_9ca65c3b9497d605" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 643 1 0 "27d47e3b_913b_4a0e_bdb50007a0e39d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock); // }} "" // {{ 644 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 645 1 0 "bb948751_9e18_4aa8_b86a3dd67208967f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 646 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 647 1 0 "945560ed_40bf_44a9_851fead4c1943f9f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 648 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 649 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 650 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 651 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetShakerParameter") { // }} "" // {{{ 652 1 0 "8a0e14c1_f6c6_4fb8_94094498cccd7991" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 653 1 0 "1810a83f_3fc2_4c49_9d5502fbdfc743e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingDirection"), shakingDirection); // }} "" // {{{ 654 1 0 "c3053579_8645_474f_8c05459eed975362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingAccRamp"), shakingAccRamp); // }} "" // {{ 655 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ; err.Clear(); // }} "" // {{ 656 1 0 "d7ecab6c_533b_4d98_97e3fd144551f6d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 657 1 0 "77463ac5_e629_4772_98004edef4016a6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp); // }} "" // {{ 658 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 659 1 0 "96075a25_a9b4_48ec_b53a90612b9d42a8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 660 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 661 1 0 "5ed72ec4_1b60_4258_969b44c995450ec1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 662 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 663 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 664 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 665 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetSimulation") { // }} "" // {{{ 666 1 0 "941f9e19_ca94_4ede_9719205aeb876593" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{ 667 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ; err.Clear(); // }} "" // {{ 668 1 0 "c8de89fe_7a53_4c03_bbe8ba85302b57ea" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 669 1 0 "41b0c1a2_60aa_4f16_8901c300e9a3dc14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetSimulation(simulate); // }} "" // {{ 670 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 671 1 0 "b9ad26f0_da3e_44e9_a29e1fa4b10f92f4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 672 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 673 1 0 "2e7a9d5f_51df_4c49_bb1986da7e14cd48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 674 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 675 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 676 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 677 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetTempParameter") { // }} "" // {{{ 678 1 0 "99447b6e_9293_483d_bbd7ddee96870904" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 679 1 0 "f55d7581_a005_45e4_9b3d7f7473323e6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("startTimeout"), startTimeout); // }} "" // {{{ 680 1 0 "7192db12_8543_4c8b_81b98b57ce21118d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("toleranceRange"), toleranceRange); // }} "" // {{{ 681 1 0 "8f6d922f_f2ae_43c6_8682df15e6b7c07c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("securityRange"), securityRange); // }} "" // {{ 682 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ; err.Clear(); // }} "" // {{ 683 1 0 "aecc8a3f_302a_4fd4_85780994769765dc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 684 1 0 "57eb738a_6eb2_4f04_b25bd7f7f64a8179" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange); // }} "" // {{ 685 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 686 1 0 "8a17da2c_6b74_4513_a05e482acef68552" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 687 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 688 1 0 "90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 689 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 690 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 691 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 692 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetUSBTrace") { // }} "" // {{{ 693 1 0 "0691ecbd_49b4_4590_91d60e614290ec34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("trace"), intTrace); // }} "" // {{ 694 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ; err.Clear(); // }} "" // {{ 695 1 0 "96a3924c_7b8c_441f_b05115a7adf0396f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 696 1 0 "24723a79_741b_46be_830fe654c08d6d1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetUSBTrace(intTrace); // }} "" // {{ 697 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FE6D15E135D24fd7A06908E89474B650 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 698 1 0 "29acd4b5_13fb_40fe_bc6d971aa6f115a7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 699 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 700 1 0 "cda0d06f_dce0_47ad_bbb419c58aba260e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 701 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 702 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 703 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 704 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShaker") { // }} "" // {{{ 705 1 0 "503e1c47_5f15_42bd_8eaad1057de68ef6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 706 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ; err.Clear(); // }} "" // {{ 707 1 0 "18981818_de5f_4fd3_b704a074fd37c9d8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 708 1 0 "7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed); // }} "" // {{ 709 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 710 1 0 "6fa8ea83_c7bd_4b3e_81768063f8126364" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 711 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 712 1 0 "ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 713 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 714 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 715 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 716 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShakerTimed") { // }} "" // {{{ 717 1 0 "db6b6c2e_da48_4c64_bdddc80ba5a28921" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 718 1 0 "f6f42906_5ded_4a05_8f9a11fac18f7f10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 719 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ; err.Clear(); // }} "" // {{ 720 1 0 "84efe41c_f9b0_4304_896c8b308bb07e76" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 721 1 0 "428d423d_1825_472f_a3aa303d028d0659" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime); // }} "" // {{ 722 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 723 1 0 "367927ae_ba00_4d5a_b9d8f5f9b3d208c3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 724 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 725 1 0 "d73f1476_bf95_4d48_89849f295a9e4d0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 726 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 727 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 728 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 729 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShaker") { // }} "" // {{{ 730 1 0 "f958f5a5_d1c5_4e9e_9262e708f24940c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 731 1 0 "2ce1189b_e54a_48c0_aafc2932409c0b9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 732 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ; err.Clear(); // }} "" // {{ 733 1 0 "7e6d8299_fab6_4435_8adf36d59ca04c7a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 734 1 0 "5fe75151_d308_441e_a049e85f45ca3966" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShaker(dispenseMode, shakingSpeed); // }} "" // {{ 735 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 736 1 0 "64e95a28_a6b6_4e1b_825867f05118aebc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 737 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 738 1 0 "4b0b48f9_3855_4eab_8f22b0902846d750" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 739 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 740 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 741 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 742 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShakerTimed") { // }} "" // {{{ 743 1 0 "858c7861_9fb0_490e_9646b9eb190706d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 744 1 0 "327bd0c6_60a8_4fd1_9ef81e2a21d904a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 745 1 0 "83a6d58d_c761_484f_871c9c2229a6d3d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 746 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ; err.Clear(); // }} "" // {{ 747 1 0 "08abdac2_e330_47c9_9b80d99dd0338c3d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 748 1 0 "22e55b69_c018_47f9_8e3ac169c190d2de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); // }} "" // {{ 749 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_29447729262E4e0f8B347F6640716D96 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 750 1 0 "a26bca7d_b38c_4413_b61d3da3fdfb077b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 751 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 752 1 0 "f539df09_de1d_4fd8_9ac041897fab0333" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 753 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 754 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 755 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 756 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartTempCtrl") { // }} "" // {{{ 757 1 0 "dc338e01_6b43_4fe3_bda98d2b0a1a65e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 758 1 0 "04239a09_93a5_4f75_80f95d178bdf9cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("temperature"), temperature); // }} "" // {{{ 759 1 0 "0387745b_87be_4ec6_912b0b4decaa257b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("waitForTempReached"), waitForTempReached); // }} "" // {{ 760 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ; err.Clear(); // }} "" // {{ 761 1 0 "0e03f515_b847_4dfd_8aa52f8b5f1135cd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 762 1 0 "4ba75dd5_935f_4f2c_a15605eafa47b808" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached); // }} "" // {{ 763 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_764F491C76DA445383E5490AB126ADB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 764 1 0 "e7b29c37_b63e_40fe_a3663d4eb8c7dc93" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 765 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 766 1 0 "bfde731d_b581_4488_b4cb7f4873675d7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 767 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 768 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 769 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 770 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopAllShaker") { // }} "" // {{ 771 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ; err.Clear(); // }} "" // {{ 772 1 0 "7ca275a0_4aed_4b67_9535646b2074ebaf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 773 1 0 "d112da95_7f27_47a3_9e24bc801bcc9afc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{ 774 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 775 1 0 "e87b7e6f_2610_44dd_b7d0262ac681e308" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 776 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 777 1 0 "5706daca_363f_417f_9103f7ddd16c1444" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 778 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 779 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 780 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 781 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopShaker") { // }} "" // {{{ 782 1 0 "1cdead0d_9944_446b_bd59d491b15242b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 783 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ; err.Clear(); // }} "" // {{ 784 1 0 "d02dc65a_05f9_4938_90df6cee1381d4dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 785 1 0 "75688e3b_5ed1_45d1_a4d8344ca19c3fd3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{ 786 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 787 1 0 "b5ede424_b7f1_4369_8610d54e626df620" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 788 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 789 1 0 "6ffd1f39_ec63_4f9c_a7687447aff79f80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 790 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 791 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 792 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 793 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopTempCtrl") { // }} "" // {{{ 794 1 0 "b16ab946_2ba9_4900_bd6f9ede31edf6ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 795 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B5957B02990845739642D8C604B0B582 ; err.Clear(); // }} "" // {{ 796 1 0 "e22c8ca0_6e3f_454b_8628dd4417a6fd78" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 797 1 0 "3a29dc5b_78cc_4ed1_ab9cd631701715e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber); // }} "" // {{ 798 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B5957B02990845739642D8C604B0B582 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 799 1 0 "c8c0c20e_b866_451e_9ecd69fdb0b0ed14" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 800 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 801 1 0 "11f3231a_40df_4c14_92585ab8016165e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 802 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 803 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 804 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 805 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_Terminate") { // }} "" // {{ 806 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ; err.Clear(); // }} "" // {{ 807 1 0 "e2f732a1_e433_4ab6_b3bdac9a4ca5bd19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 808 1 0 "910932e3_2b76_41cf_9dccecb799f2d649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::Terminate(); // }} "" // {{ 809 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_919FCF7F89804c398972DAFE2605D286 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 810 1 0 "44edbcbd_1012_457f_848d11750abdfeb2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 811 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 812 1 0 "4edde3c1_4f65_4403_a54985d84f6d80f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 813 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 814 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 815 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 816 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForShaker") { // }} "" // {{{ 817 1 0 "87872be5_4e84_4b7b_98a3e7147a66f6a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 818 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ; err.Clear(); // }} "" // {{ 819 1 0 "d5b14e5b_7d51_414e_af4dfb664c89e0c1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 820 1 0 "2eff956e_28cc_4094_8285d5ed00125a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber); // }} "" // {{ 821 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 822 1 0 "d60c31db_3b59_4498_8c47e4d2612443a4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 823 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 824 1 0 "96b99051_5c80_421c_a02e0bd238da1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 825 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 826 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 827 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 828 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForTempCtrl") { // }} "" // {{{ 829 1 0 "881e7d69_50e3_4e42_89eafece562ac009" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 830 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ; err.Clear(); // }} "" // {{ 831 1 0 "ffa29d3e_8248_4266_80661c264964da5f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 832 1 0 "421a52eb_128a_4b6b_8baafb6548b66bd8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber); // }} "" // {{ 833 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_088C7630997A4749A400740DA66CBA0C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 834 1 0 "8a92c1f7_b614_4c09_b5ada70145cb0a7c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 835 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 836 1 0 "aeb529e0_2eaf_4686_9528342b58318a5d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 837 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 838 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 839 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 840 1 0 "67dcb608_2751_40ce_8b7e4a0603faf2dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 841 1 0 "0f4bf0f0_7250_4df4_ad0fed77d22c4e31" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 842 1 0 "8c27106a_1679_43a9_bf5395da0b449aab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HxFanSet") { // }} "" // {{{ 843 1 0 "b4ddaff1_bbb9_4494_8b1bbd7274a5f7ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 844 1 0 "4c112600_c077_4cd1_97f013ebd6ba3dda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("persistant"), persistant); // }} "" // {{{ 845 1 0 "3e95190c_440f_432c_aaa7fd3a2fb355a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{{ 846 1 0 "1e8f47c7_db5a_4fa4_aee7981e3b80ca64" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("fanSpeed"), fanSpeed); // }} "" // {{ 847 1 0 "6e4ff03e_f972_4901_8442f6e992f211a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_AA4197CCBE624255B3C96A32C1894C99 ; err.Clear(); // }} "" // {{ 848 1 0 "126ff61c_704e_4f65_956d45a1882c292c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 849 1 0 "10161df1_6a13_4efe_8e94e9efb47fea5a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (simulate == 0) { // }} "" // {{ 850 1 0 "13409ed4_ce79_4ef9_89deb34df8b6dd6a" "HxFan:{6FE28420-ECCC-4DE2-8731-3A3A5D98EC19}" { HxFan.Simulate("13409ed4_ce79_4ef9_89deb34df8b6dd6a"); // Simulate } // }} "" // {{ 851 1 0 "10161df1_6a13_4efe_8e94e9efb47fea5a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 852 1 0 "be3ae73e_7395_494a_9aed80ff221436dc" "HxFan:{6FE28420-ECCC-4DE2-8731-3A3A5D98EC19}" { HxFan.Simulate("be3ae73e_7395_494a_9aed80ff221436dc"); // Simulate } // }} "" // {{ 853 1 0 "10161df1_6a13_4efe_8e94e9efb47fea5a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 854 1 0 "ffdf7428_8946_4751_8ec8a7e00f208208" "HxFan:{419861B2-AD5B-4F2E-8025-46B0E593A024}" { HxFan.SetComPort("ffdf7428_8946_4751_8ec8a7e00f208208"); // SetComPort } // }} "" // {{ 855 1 0 "1506decc_f2bf_47a0_a90687ef59450828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (persistant == 0) { // }} "" // {{ 856 1 0 "d081b2a8_b3ef_4a06_9d8d4d8c6cd1dd39" "HxFan:{166B9764-268C-487A-8D8C-EC3ED594717C}" { HxFan.SetContinuousMode("d081b2a8_b3ef_4a06_9d8d4d8c6cd1dd39"); // SetContinuousMode } // }} "" // {{ 857 1 0 "1506decc_f2bf_47a0_a90687ef59450828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 858 1 0 "4914f72b_ecb0_4ab4_b458a744727e1642" "HxFan:{166B9764-268C-487A-8D8C-EC3ED594717C}" { HxFan.SetContinuousMode("4914f72b_ecb0_4ab4_b458a744727e1642"); // SetContinuousMode } // }} "" // {{ 859 1 0 "1506decc_f2bf_47a0_a90687ef59450828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 860 1 0 "203cb0c4_cb6f_42c2_a34aa62a646c29cc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (fanSpeed == 0) { // }} "" // {{ 861 1 0 "cef636fc_366e_46f7_9a8e1e25f716fa31" "HxFan:{1581574C-5388-4E48-BC78-FEE50E8DCE05}" { HxFan.SetFanOff("cef636fc_366e_46f7_9a8e1e25f716fa31"); // SetFanOff } // }} "" // {{ 862 1 0 "203cb0c4_cb6f_42c2_a34aa62a646c29cc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 863 1 0 "f2bbd127_49ad_44c1_aa03eba6244b4cfc" "HxFan:{C3B1A3F9-BD5A-4660-842E-35830B4E80CA}" { HxFan.SetFanSpeed("f2bbd127_49ad_44c1_aa03eba6244b4cfc"); // SetFanSpeed } // }} "" // {{ 864 1 0 "203cb0c4_cb6f_42c2_a34aa62a646c29cc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 865 1 0 "6e4ff03e_f972_4901_8442f6e992f211a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_AA4197CCBE624255B3C96A32C1894C99 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 866 1 0 "8f5e46a2_b896_4dbc_a8eb3d63e6ee3d3d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 867 1 0 "6e4ff03e_f972_4901_8442f6e992f211a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 868 1 0 "0c83267c_5eb8_4165_96bd827e6dad924b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 869 1 0 "8c27106a_1679_43a9_bf5395da0b449aab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 870 1 0 "0f4bf0f0_7250_4df4_ad0fed77d22c4e31" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 871 1 0 "67dcb608_2751_40ce_8b7e4a0603faf2dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 872 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 873 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 874 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "CORE96WashEmpty") { // }} "" // {{{ 875 1 0 "88f95bdd_c2c5_4856_91e5f47f7431bdaf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("refillAfterEmpty"), refillAfterEmpty); // }} "" // {{{ 876 1 0 "d7a05a26_0b59_478a_a85f308173caf693" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1WashLiquid"), chamber1WashLiquid); // }} "" // {{{ 877 1 0 "8b1bd108_2b5a_4a2d_ace7b87920eae1b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1LiquidChange"), chamber1LiquidChange); // }} "" // {{{ 878 1 0 "d651fbf5_a4b8_490b_b869269338ccfcfa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2WashLiquid"), chamber2WashLiquid); // }} "" // {{{ 879 1 0 "79b1a205_d988_4171_9e1fb28ba362329b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2LiquidChange"), chamber2LiquidChange); // }} "" // {{ 880 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ; err.Clear(); // }} "" // {{ 881 1 0 "3fc645b3_f504_4b5e_93481425adf459b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 882 1 0 "123d7b87_745f_4511_a797d08711d13361" "ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}" { variable arrRetValues[]; arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3("123d7b87_745f_4511_a797d08711d13361"); // Head96EmptyWasher } // }} "" // {{ 883 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EE8804FCDC214a06935DD0F4830020DB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 884 1 0 "ab84bcc8_3da0_446b_84689087cc7a392f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 885 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 886 1 0 "dde0a413_b493_4b17_94990d1d5f2e2b2e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 887 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 888 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 889 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 890 1 0 "1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONFromServer); // }} "" // {{ 891 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 892 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "end") { // }} "" // {{{ 893 1 0 "6db67a5a_6aa2_4087_875823acfff0fac4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Good Bye!")); // }} "" // {{ 894 1 0 "4c7e40d6_02a6_451d_b28230ec71e40ce1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 895 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 896 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 897 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 898 1 0 "6fb90145_24c3_46ba_88b839e0215d0bf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{ 2 "AutoExitBlock" "" STAR_OEM_TOOLKIT::_ExitLibrary(); // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=Hamilton$$valid=0$$time=2019-03-18 18:17$$checksum=14112bd1$$length=085$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx5A3E.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" private function ArrayToString( variable & i_array[], variable & o_str ) void ; private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ; private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ; private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ; private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; function SendTextMessageToServer( variable str ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; private function waitForGUItoContinue( ) variable ; function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 1033 1 0 "c8aa765a_4840_468a_9e928b44fa79d891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{{ 5 "OnAbort" "End" } // }} "" // {{{ 5 "SendTextMessageToServer" "Begin" function SendTextMessageToServer( variable str ) void { // }} "" private object objJSONObject; private variable strJSON; // {{ 5 "SendTextMessageToServer" "InitLocals" // }} "" // {{{ 1001 1 0 "9d5f9d4a_c104_4b47_964b6d97f981a71e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONObject); // }} "" // {{{ 1002 1 0 "d0a04705_1adc_4919_b95168834c89f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("command"), Translate("message")); // }} "" // {{{ 1003 1 0 "7b9a6cd1_3eee_4085_b3f9548e43fc3424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("text"), str); // }} "" // {{{ 1004 1 0 "6a1c53cf_65ea_4f53_aa2e9111890fecf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONObject, strJSON); // }} "" // {{{ 1005 1 0 "bee8c148_b3ea_490b_8d93d8ed5f24939f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONObject); // }} "" // {{{ 1006 1 0 "b965a2fd_f821_4400_b4c777f558ed0772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendTextMessageToServer" "End" } // }} "" // {{{ 5 "waitForGUItoContinue" "Begin" private function waitForGUItoContinue( ) variable { // }} "" private variable loopCounter1; private variable serverResponse; private timer timer1; // {{ 5 "waitForGUItoContinue" "InitLocals" // }} "" // {{ 1014 1 0 "73328607_d06a_4d7d_8a5df64da06a1bde" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" serverResponse = Translate(""); // }} "" // {{{ 1015 1 0 "2342f8b3_4765_4edc_9fb9f46cbb1fd20b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Waiting for server instructions...")); // }} "" // {{{ 1016 1 0 "216e1039_788e_4830_8588933e6c542ba1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Waiting for server instructions...."), Translate("")); // }} "" // {{ 1017 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounter1 = 0; while (1 == 1) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1018 1 0 "5f15547c_3178_4f78_b5fea96f6a1c563b" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.1) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1019 1 0 "cd67277b_4386_4862_8429008a00601693" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 1020 1 0 "6ec592d0_fe02_41a9_8503db5ccf0e5544" "{C1F3C015-47B3-4514-9407-AC2E65043419}" serverResponse = HSLHttp::HttpGET(objHttp, Translate("http://localhost:3221"), Translate("")); // }} "" // {{ 1021 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (serverResponse != "") { // }} "" // {{ 1022 1 0 "b1e2e308_ee78_46d0_8a6832649536045e" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1023 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1024 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 == 300) { // }} "" // {{ 1025 1 0 "19e5c8f7_a1a9_4348_aa41a572942db630" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1026 1 0 "6be46368_bb3e_4ad8_82647d6f52af8c9b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1027 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1028 1 0 "8951a436_faf4_45df_a268dbb7ddb58c29" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.9) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1029 1 0 "52bb524e_27b1_4bbe_afcf26453d9eb66f" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1030 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1031 1 0 "809789b0_bd70_4c1f_b0d808ce120b1d99" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (serverResponse); // }} "" // {{{ 5 "waitForGUItoContinue" "End" } // }} "" // {{{ 5 "SendStepReturnToServer" "Begin" private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer" "InitLocals" // }} "" // {{{ 989 1 0 "2520bd9f_739d_4111_a27d89f8f73ec39e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 990 1 0 "aa6010ec_0628_49d5_a87e016b4a4fc7f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 991 1 0 "a97c5efa_0ce4_4358_9c51c1893f526b9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 992 1 0 "deceb871_e830_4b14_86e626f745ef083a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 993 1 0 "00afb5c2_b5db_4458_866a13b6cb332b68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 994 1 0 "e52bbd02_b31d_4278_a0f45991eab77d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 995 1 0 "19f99698_3777_4dcf_9fc765c3f221df4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 996 1 0 "329f8b9b_0798_44f8_9ee6b65ec58b0c44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 997 1 0 "7728ac0d_8630_4f61_94af076392758ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 998 1 0 "70d261f2_edc4_49a0_a5a074cd5ab92b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 999 1 0 "ee0dd62d_582f_4171_b08e37f6106d9b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer" "End" } // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "Begin" private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void { // }} "" private variable n; private variable loopCounter1; private variable strSinglePosition; private variable arrayOfPositions[]; private variable arraySinglePosition[]; private variable labwareID; private variable positionID; // {{ 5 "BuildTempSequenceFromPositions" "InitLocals" { sequence __temp; o_seq = __temp; } // }} "" // {{ 936 1 0 "d9022e13_e502_4969_a8ee79484e990801" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arrayOfPositions.SetSize(0); // }} "" // {{{ 937 1 0 "3e178082_8579_435f_a5db4481bb789d9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strPositions, Translate(";"), arrayOfPositions, 0); // }} "" // {{ 938 1 0 "5d735f26_db1b_4bea_9ee405f4167bb99f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" n=arrayOfPositions.GetSize(); // }} "" // {{{ 939 1 0 "f497f24b_fd39_417d_8703c0d54662309f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq); // }} "" // {{ 940 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 941 1 0 "fd645546_0433_46a0_8619026e338529fd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arraySinglePosition.SetSize(0); // }} "" // {{ 942 1 0 "91aeb0c4_3176_4356_a19a1027bcdb0af3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1); // }} "" // {{{ 943 1 0 "c2b42369_7829_4c62_b58880fce7867995" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strSinglePosition, Translate(","), arraySinglePosition, 0); // }} "" // {{ 944 1 0 "016f61c5_fd76_4c74_903df10a03070f7b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" labwareID=arraySinglePosition.GetAt(1-1); // }} "" // {{ 945 1 0 "886fc872_7c3a_4366_959db6d5f265ed7c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" positionID=arraySinglePosition.GetAt(2-1); // }} "" // {{{ 946 1 0 "766a54b4_4c5b_4991_9d8ceea62d26b216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq, labwareID, positionID); // }} "" // {{ 947 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 948 1 0 "0003c6e9_5b43_438d_bc93be342c3c6b55" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq.SetCurrentPosition(1); // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "End" } // }} "" // {{{ 5 "StrTokenize" "Begin" private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 1008 1 0 "500afe4c_98a8_4117_8c279b9994d0b626" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 1009 1 0 "6a0bd918_2fda_4e4c_a680454ce2576168" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 1010 1 0 "f65ed315_68ed_4ec0_ba0b3c217e692b25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 1011 1 0 "9476acee_e5bb_43d1_bbec232ed01bae08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); // Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "Begin" private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void { // }} "" private variable numOfVolumes; private variable numOfChannelsInVariable; private variable n; private variable loopCounter1; private variable arrSize; private variable loopCounter3; private variable strKeyName; // {{ 5 "BuildArrayOfVolumesForChannels" "InitLocals" o_arrayOfVolumes.SetSize( 0); // }} "" // {{ 910 1 0 "69288f91_eabd_4d15_af5361636ffacbf6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyName = Translate("volumes"); // }} "" // {{ 911 1 0 "bf4c1108_6751_41ee_8d3d3b1a9418548f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfVolumes.SetSize(0); // }} "" // {{{ 912 1 0 "a9cfa743_a769_46a3_b8d7e45a67b3d297" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName); // }} "" // {{ 913 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arrSize > 0) { // }} "" // {{ 914 1 0 "594bebbb_0d54_4893_b20d783de743dd44" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 915 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < arrSize;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{{ 916 1 0 "3bfc9004_2595_4917_b4edcdceed06f518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); // }} "" // {{ 917 1 0 "6be31b23_f55d_4d15_be6abc9ee4bef664" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" Trace("Volume received=", v); // {{ 919 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 920 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 921 1 0 "4a4891b3_f877_4b14_85196b7e820554b2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 922 1 0 "22c7c768_33c4_4975_909e9586375bfe8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(strKeyName, v); // }} "" // {{ 923 1 0 "4e01e62a_13a2_408e_9fbfb2300d5996ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 924 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 925 1 0 "cc565f65_a92a_43ef_9c052b7f5632aca5" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" numOfVolumes=o_arrayOfVolumes.GetSize(); // }} "" // {{{ 926 1 0 "e49355fb_3fe6_4c8d_930870416e36b708" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numOfChannelsInVariable = StrGetLength(strChannels); // }} "" // {{ 927 1 0 "804bc477_e950_4a14_af5f667c73cf5176" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 928 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (numOfVolumes < numOfChannelsInVariable) { // }} "" // {{ 929 1 0 "2e73355c_8b11_4423_b345807cae9d5db8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" n = numOfChannelsInVariable - numOfVolumes; // }} "" // {{ 930 1 0 "53a650d8_2fc1_4c5b_bd19eda433c2a81a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" v = o_arrayOfVolumes.ElementAt( numOfVolumes -1); // }} "" // {{ 931 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 932 1 0 "cd047b15_6a02_40f1_adfb116f6bf5d763" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 933 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 934 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "End" } // }} "" // {{{ 5 "ArrayToString" "Begin" private function ArrayToString( variable & i_array[], variable & o_str ) void { // }} "" private variable arraySize; private variable loopCounter1; // {{ 5 "ArrayToString" "InitLocals" o_str = 0; // }} "" // {{ 900 1 0 "1a220255_6ba4_40fb_be39a6a2f4e0065f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 901 1 0 "f821c4ff_f1a2_4ad7_9bd77dd8652567cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str = Translate(""); // }} "" // {{ 902 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 903 1 0 "afd84a84_8330_46e7_8308e16b5caa05e9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" v=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 904 1 0 "77436fd3_3c87_4f09_9a89259b15ef5bf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, v); // }} "" // {{ 905 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 < arraySize) { // }} "" // {{{ 906 1 0 "d14fd31e_5de8_46f9_bb359f38de9a08ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, Translate(";")); // }} "" // {{ 907 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 908 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "ArrayToString" "End" } // }} "" // {{{ 5 "JSON_GetFloatValue" "Begin" private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void { // }} "" private variable retVal; // {{ 5 "JSON_GetFloatValue" "InitLocals" o_KeyFloatValue = 0; // }} "" Trace("getfloatvalue"); // {{{ 951 1 0 "8f2f8625_6c9e_4c47_b4698d29df60004a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" // {{ 952 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("error getting float value, try with integer"); // {{ 954 1 0 "5a74df81_6685_4703_8b055144f8d74d45" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 955 1 0 "47bb8c98_9624_40ad_b765abfc6b0d0b49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" Trace("error getting float value, tried with integer"); // {{ 957 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("wtf ok i guess its zero"); // {{ 959 1 0 "5b8a3ec6_8ee4_4887_ab7df29fa494cdc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_KeyFloatValue = 0; // }} "" // {{ 960 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 961 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "JSON_GetFloatValue" "End" } // }} "" // {{{ 5 "SendHHSReturnToServer" "Begin" private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; private variable t_arrayStepReturns[]; private variable loopCounter1; private variable keyName; private variable varType; // {{ 5 "SendHHSReturnToServer" "InitLocals" // }} "" // {{{ 963 1 0 "6db3f932_ba70_4cf6_9c2a8636580fc754" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 964 1 0 "3cf8a985_83cc_418e_99293de9d9945d5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("HHS-return")); // }} "" // {{{ 965 1 0 "705c25bc_6db4_4eb9_b05b33999e110198" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{ 966 1 0 "5a9efc02_a11a_4c0c_b166e3b28800cc6c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" t_arrayStepReturns.SetSize(0); // }} "" // {{ 967 1 0 "5aa4f3a8_774f_4f35_ae7fa197ef920048" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn1); // }} "" // {{ 968 1 0 "00ac351d_bc51_41e5_b300af93d6893fa5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn2); // }} "" // {{ 969 1 0 "2aaf8702_2d08_48ee_be96815ca77463c9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn3); // }} "" // {{ 970 1 0 "67fcb56e_9f42_4739_a5ee322f12443a17" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn4); // }} "" // {{ 971 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < 4;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 972 1 0 "a23ae2ed_5b02_41a0_a69215d0b80fde4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" keyName = StrConcat2(Translate("step-return"), loopCounter1); // }} "" // {{{ 973 1 0 "9b92ac94_8c71_4b77_95ac0c691427c4bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" varType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 974 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "s") { // }} "" // {{{ 975 1 0 "1497ea6a_46ab_4ee8_b7951f24b533e644" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 976 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 977 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "f") { // }} "" // {{{ 978 1 0 "61772f9e_fea3_4011_bba06b7fe66e8b0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 979 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 980 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "i") { // }} "" // {{{ 981 1 0 "28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 982 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 983 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 984 1 0 "0a0447b8_96fb_495a_90dfa8f1e2c488ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 985 1 0 "b2a13d10_b443_4fc0_aa0baa2a23cddafe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 986 1 0 "0adf40b4_5c73_46d8_8e6042c6dfd32d86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 987 1 0 "5a5dabeb_e3ed_4730_ab86839e00f75077" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendHHSReturnToServer" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=Hamilton$$valid=0$$time=2019-03-18 18:17$$checksum=84c7831d$$length=087$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx5FF.hsl ================================================ namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HslHamHeaterShakerLib.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "SchedulingDev\\HSLAppsLib.hsl" } namespace _Method { #include "STAR_OEM_toolkit_pH.hs_" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" } namespace _Method { #include "STAR_OEM_toolkit_centrifuge.hs_" } namespace _Method { #include "STAR_OEM_toolkit_MPE.hs_" } namespace _Method { #include "Hamilton pH Module Controller.hs_" } #include "STAR_OEM_Test.res" namespace _Method { #include "Hamilton MPE2\\HSLMPELib.hsl" } namespace _Method { #include "Hamilton Centrifuge\\Hamilton Centrifuge.hsl" } namespace _Method { #include "HSL_LiquidClassLib.hsl" } /* {{ 2 "LibraryInsertLine" "" */ // }} "" variable loopCounterMain; variable msg; object objJSONFromServer; variable commandFromServer; variable initializeAlways; variable o_stepReturn; object objJSONToServer; sequence seq; variable tipSequence; variable sequenceCounting; variable channelVariable; variable channelUse; variable labwarePositions; variable aspirateSequence; variable v; variable arrayOfVolumes[]; variable liquidClass; variable aspirateMode; variable capacitiveLLD; variable pressureLLD; variable liquidFollowing; variable submergeDepth; variable liquidHeight; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable airTransportRetractDist; variable touchOff; variable aspPosAboveTouch; variable o_liquidLevels_mm[]; variable o_liquidLevels_mL[]; variable o_stepReturn2; variable o_stepReturn3; variable dispenseMode; variable dispenseSequence; variable dispPositionAboveTouch; variable zMoveAfterStep; variable sideTouch; variable wasteSequence; variable useDefaultWaste; variable reducedPatternMode; variable aspirateVolume; variable o_stepReturn4; variable dispenseVolume; variable tipEjectToKnownPosition; variable carrierName; variable barcodeFileName; variable barcodeReadPositions; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable lidSequence; variable plateSequence; variable toolSequence; variable transportMode; variable widthBefore; variable gripHeight; variable gripWidth; variable gripSpeed; variable gripperToolChannel; variable checkPlate; variable zSpeed; variable gripForce; sequence lidSeq; sequence toolSeq; variable xAcceleration; variable platePressOnDistance; variable ejectToolWhenFinish; object objHttp; variable blnReturn; variable blnSuccess; variable usedNode; variable deviceNumber; variable action; variable sampleInterval; variable shakingToleranceRange; variable id; variable monitorResult; variable firmwareVersion; variable serialNumber; variable command; variable parameter; variable plateLock; variable shakingAccRamp; variable shakingDirection; variable simulate; variable startTimeout; variable toleranceRange; variable securityRange; variable intTrace; variable shakingSpeed; variable shakingTime; variable temperature; variable waitForTempReached; variable inverseGrip; variable liftUpHeight; variable retractDistance; variable tolerance; variable labwareOrientation; variable movementType; variable collisionControl; variable gripMode; variable showCollisionCheckDialog; //global device HxFan ("STAR_OEM_Test.lay", "HxFan", hslTrue); variable refillAfterEmpty; variable chamber1LiquidChange; variable chamber2WashLiquid; variable chamber1WashLiquid; variable chamber2LiquidChange; variable FirmwareCommand; variable FirmwareParameter; variable CommandListElement; variable CommandListLength; object FirmwareCmdDict; variable yDisplacement; variable zDisplacement; variable xDisplacement; variable yOrigin; variable xOrigin; variable zOrigin; variable ControllerID; variable SimulationMode; variable ErrorCode; variable DeviceID; variable TargetTemperature; variable StopAllDevices; variable TraceLevel; variable Comport; variable Simulate; variable ModuleName; variable Angle; variable inputSequence; variable barcode; variable seqFirstPosition; variable seqSecondPosition; global device ML_STAR ("STAR_OEM_Test.lay", "ML_STAR", hslTrue); variable ModuleID; variable probePattern; variable pH_probe_1; variable pH_probe_2; variable pH_probe_3; variable pH_probe_4; variable Variance; variable Timeout; variable CalibrationLevel; variable CalibrationValue; variable CalibrationTemperature; variable Precision; variable Temperature; variable ChargeCounter; variable ReplacementDate; variable BatteryCondition; variable ActualCharge; variable MeasurementCounter_Probe_1; variable MeasurementCounter_Probe_2; variable MeasurementCounter_Probe_3; variable MeasurementCounter_Probe_4; variable HardwareNumber; variable Revision; variable SerialNumber; variable PartNumber; variable Selector; variable VoltageData; variable Day; variable Year; variable Month; variable Charge; variable AutoCharge; variable AutoChargeLevel; variable Probe; variable Mode; variable ProbeNumber; variable pHHighValue; variable pHHighVoltage; variable pHLowValue; variable pHLowVoltage; variable CalibrationSlopeRatio; variable CalibrationOffset; variable CalibrationSlope; variable CycleNumber; variable NodeName; variable Label; variable AlwaysInitialize; variable intPresentPosition; variable Direction; variable CloseCoverAtEnd; variable ArrSpeed; variable ArrAcceleration; variable ArrDuration; variable i_ArrDuration[]; variable i_ArrAcceleration[]; variable i_ArrSpeed[]; variable Decelleration; variable Speed; variable Acceleration; variable MaxRunTime; variable SpeedSensorTrip; variable TimeLeft; variable GravitySensorTrip; variable CurrentSpeed; variable TemperatureSensorTrip; variable ProfileStatus; variable RotorDriveRunning; variable Deceleration; variable DeviceName; variable AdapterDeviceID; variable InstrumentName; variable PortNumber; variable MPEOptions; variable ComPort; variable BaudRate; variable CollectionPlateHeight; variable OffsetFromNozzles; variable NeedleOffset; variable WellVolume; variable FlowRate; variable SourceID; variable Needleoffset; variable PlateHeight; variable WellDepth; variable EvaporateTime; variable FollowRate; variable EvaporateTravelDistance; variable NozzleHeight; variable FilterHeight; variable WasteContainerID; variable FullReading; variable CapacityVolume; variable CalibrationDate; variable EmptyReading; variable blnReset; variable CurrentGasTemperature; variable Heating; variable CurrentEvaporatorTemperature; variable MinimumGasTemperature; variable MinimumEvaporatorTemperature; variable MaximumEvaporatorTemperature; variable MaximumGasTemperature; variable ManifoldPressureSensor; variable HighPressureSensor; variable InputPressureSensor; variable LowPressureSensor; variable MaximumTemperature; variable MinimumTemperature; variable VacuumActive; variable VacuumRunTime; variable DisableVacuumCheck; variable Smart; variable SensorReading; variable ControlPoints; variable ReturnPlate; variable Volume; variable Seconds; variable DefaultTemperature; variable MeasureTime; variable MeasureHeight; variable CalibrationValue1; variable TempSoln1; variable TempSoln2; variable CalibrationValue2; variable blnCalibrateDynamically; variable CalibrationValueRef; variable TempSolnRef; variable Module; variable Reference; variable Calibration1; variable Calibration2; sequence seqModule; sequence seqCalibration1; sequence seqCalibration2; sequence seqReference; variable CalibrationTime; variable arrCalibrationSlopeRatios[]; variable arrpHValuesReferenceSolution[]; variable CalibrationSlopeRatios; variable pHValuesReferenceSolution; variable BluetoothPort; variable NumDryCycles; variable NumWashCycles; variable DryTime; variable Gripper; sequence seqGripper; variable WashPosition; sequence seqWashPosition; variable DryPosition; sequence seqDryPosition; variable DryCycles; variable TransportChannel; variable WashCycles; variable arrpHValues[]; variable flt_pHValues; variable seqMeasure; variable ProbePattern; variable seqMeasurement; variable MeasurePositions; variable hssErrCode; variable LiqClassParameterName; variable LiqClassParameterValue; variable LiquidClassName; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" STAR_OEM_TOOLKIT::_InitLibrary(); STAR_OEM_TOOLKIT_PH::_InitLibrary(); STAR_OEM_TOOLKIT_CENTRIFUGE::_InitLibrary(); STAR_OEM_TOOLKIT_MPE::_InitLibrary(); HAMILTON_PH_MODULE_CONTROLLER::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{{ 1 1 0 "e7768ad9_4016_4422_bd83f5785d03ceda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnReturn = HSLHttp::Initialize(objHttp); // }} "" // {{ 2 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnReturn != blnSuccess) { // }} "" // {{{ 3 1 0 "62c131b4_44b9_4249_8e0a3205a25b21b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); // }} "" // {{{ 4 1 0 "fb18125e_b294_4554_912c3d447526996e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 5 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 6 1 0 "ee92e29b_e94c_46cf_a67851f3be61c805" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Hi, Im a VENUS method.")); // }} "" // {{ 7 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; // }} "" // {{ 8 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "de417132_351a_4ad8_80c71b1863d4a870" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" commandFromServer = Translate(""); // }} "" // {{ 10 1 0 "d9c97239_3c9d_4992_8fb5820ae5721d90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate(""); // }} "" // {{ 11 1 0 "57da7835_7495_4b16_8b82897289efbd11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn2 = Translate(""); // }} "" // {{ 12 1 0 "cf024fcc_3594_4355_b33f4bd8c8bdfb4e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn3 = Translate(""); // }} "" // {{ 13 1 0 "9ed0b80d_8518_474f_a94d8f843a6158fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn4 = Translate(""); // }} "" // {{ 14 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 15 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 16 1 0 "0257e5d3_7b99_47be_a062950a2b200664" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" msg = waitForGUItoContinue(); // }} "" Trace("JSON received from Server:", msg); // {{{ 18 1 0 "36be63f7_a79c_44a4_b1dc636a536612bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONFromServer); // }} "" // {{{ 19 1 0 "5c2b861d_97f9_4e18_a5fce25e78026299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::ParseJson(objJSONFromServer, msg); // }} "" // {{{ 20 1 0 "562abca5_8891_402a_b8a7c5ba56301a86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); // }} "" // {{{ 21 1 0 "cb002e33_cc71_4a25_890fa8f9f5d982a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("id"), id); // }} "" // {{ 22 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 23 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 24 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "initialize") { // }} "" // {{{ 25 1 0 "773dbb38_0414_403d_b2ff24100c7cf1fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); // }} "" // {{{ 26 1 0 "97af1c08_2914_4f72_b27c685f11b30bb6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); // }} "" // {{{ 27 1 0 "04505c20_428c_4440_8169ddcbaade8bbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::Initialize(ML_STAR, 0); // }} "" // {{{ 28 1 0 "b3ab11e2_0297_446f_9cf37ca7c0c9d19f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Init step return:"), o_stepReturn); // }} "" // {{{ 29 1 0 "57d4e0cd_327e_4cac_8e83a7da6222dda0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 30 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 31 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 32 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 33 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 34 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipPickUp") { // }} "" // {{{ 35 1 0 "53e1cfb5_1fde_491f_bfd878eceda16ba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 36 1 0 "f0e9e31f_d871_4632_bd466e43fc38c771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 37 1 0 "e6311b13_2132_40e0_aff0b5556205c32a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 38 1 0 "cb659ed1_5f0c_41e8_8a060ec0b650c589" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{ 39 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 40 1 0 "6699226b_6c7b_4b79_95b8017162b433b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 41 1 0 "bd13798f_62e7_4dd2_8e91769d48d10fc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 42 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 43 1 0 "ce13caa6_634b_4dec_8a6c3ea74b144e95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 44 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 45 1 0 "29f69958_d99b_455a_93c7b0480bfd1658" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn); // }} "" // {{{ 46 1 0 "732425fd_a199_4354_8479d821ee834e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 47 1 0 "22f00193_1056_456e_a515d156eee56e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 48 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 49 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 50 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 51 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelAspirate") { // }} "" // {{ 52 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 53 1 0 "55ee3109_036b_4acb_8a15175f3316656f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 54 1 0 "a5b3e5ac_4910_4a4a_8e20bdb7f61836e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 55 1 0 "ce04189a_96e4_4bdc_aedc8a68bf64647b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 56 1 0 "882daff3_cc25_4778_aec6a937fc87347c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 57 1 0 "7f7b9f83_5611_4a3b_b5c120689696addb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 58 1 0 "39e464b7_0def_403b_a02f5dd2a358dbd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 59 1 0 "2e2739aa_8eb6_44e0_b887ea00b04acac0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 60 1 0 "9408edd8_3cee_43e0_976b4a6fabf5f4ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 61 1 0 "a2848877_3518_4d1d_95f77c1f313003e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); // }} "" // {{{ 62 1 0 "4b5ce3d0_91f4_4c14_aaf1cad34e0caf60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" Trace("Bookstart"); // {{{ 64 1 0 "12892ce3_3bc6_4165_b3b6ae0eacad20e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" Trace("Bookend"); // {{{ 66 1 0 "15bd5af3_2da1_420b_beb398dc2347a0ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 67 1 0 "4fe61fb4_bb39_4728_96b8c6959f4943ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); // }} "" // {{{ 68 1 0 "ba68c240_2397_4872_949ee1ee984595c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 69 1 0 "baac19fc_9f21_4e8c_b833f2a1ba2433f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 70 1 0 "253130f8_f599_4ef4_9d5a15e2cb89d1eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 71 1 0 "51233931_483f_4deb_a8627b909d6c9116" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 72 1 0 "bf0c65ba_7847_4768_92ebbe8adc6568c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 73 1 0 "30a6715c_b6c6_4d86_b5c02f3da440e309" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 74 1 0 "6eb82b6e_8093_461e_afc712cab07398dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 75 1 0 "3f8b6af1_7872_4a20_92bf2c4507ea9f31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); // }} "" // {{{ 76 1 0 "7dd1b818_5a89_4b03_82734e6f4d7b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{ 77 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 78 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 79 1 0 "cb2b67f0_7384_4a41_831de652f92d4c85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 80 1 0 "29a868b4_7800_4747_b14eaf0f2c10ba40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 81 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 82 1 0 "08f63789_65f1_4e7d_996dc22e8f33d416" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 83 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 84 1 0 "8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 85 1 0 "7cb70e6b_15bb_4380_b62150df065d208f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 86 1 0 "4714958b_0632_4de2_983c7fe9de68df6c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 87 1 0 "bd40f564_16d7_4037_aef8eebfe28a4362" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 88 1 0 "18bf536c_98f4_4345_86a103db4a9b68a1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 89 1 0 "d60cd9aa_083b_4487_8d6218cee02fa4cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 90 1 0 "e86187c0_0d19_453e_be1c5a401d0d5d93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 91 1 0 "d66c2dae_4cc3_4a31_bafe46d1dd63e790" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 92 1 0 "d23f143d_290d_4d0f_b368241a6a9adaed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 93 1 0 "0428e844_3191_4cde_b7f3544f34c833f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 94 1 0 "a7ca006f_941c_4b31_9749313ad9b4e079" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 95 1 0 "8c97ba72_f880_4504_baee8b8db3d13310" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 96 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 97 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 98 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 99 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelDispense") { // }} "" // {{ 100 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 101 1 0 "909bc255_6ca1_4700_bc102ccb34ae5be4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 102 1 0 "fd48dd93_9f42_4df0_9f659e27a5552543" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 103 1 0 "3ff3f492_86a5_40af_a3deabccbab3898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 104 1 0 "3cbb883f_48ae_40fe_afe67da944df94b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 105 1 0 "ab1033bc_1216_450a_9fb60655a1f1a21a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 106 1 0 "0bc1541f_26d5_44d6_8db6ae336fec17bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 107 1 0 "8c10cc29_c05e_4cea_9ed559249651e805" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 108 1 0 "3e0373da_7c7c_46ab_9b77fba19915662e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 109 1 0 "b98fdc49_cdcb_4f3c_81df0b76eafa1411" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 110 1 0 "7458d32a_402a_4215_b52378c78468ec80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 111 1 0 "5e14f2ce_c932_474b_be03f3c043c700e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 112 1 0 "c2010d1d_5a78_4871_a835a6613a1237bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 113 1 0 "d4a6e6a3_0158_45f1_9c359d8e48e01bed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 114 1 0 "011e9828_5413_40c1_80d0c3bdde1c6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 115 1 0 "2d7a4942_b2ce_43a2_8decf49fa0c9576c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 116 1 0 "ad9f0bbf_e495_41c5_898a3be32bb16f2b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 117 1 0 "5c734886_aa50_424c_b89f6894bc37dd8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 118 1 0 "d1bc00cc_4286_4409_b1c49b6350e7e6ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 119 1 0 "b178ce99_db9e_4453_bed28d4ce0457bc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); // }} "" // {{{ 120 1 0 "1b38ad88_3c65_4e58_812f9ed32ce32485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{{ 121 1 0 "f34066f1_63f9_474f_8a9c41e56962dc74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 122 1 0 "6b94916e_355b_4ee9_8eb4f1b49c95fea4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 123 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 124 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 125 1 0 "e962dd26_3672_4418_bd3c40e9929929eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 126 1 0 "6257966a_6b39_41c8_a057a79b8e39cd4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 127 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 128 1 0 "3f230e40_8bd9_4235_b88cd0ca80799661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 129 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 130 1 0 "8d82ff40_d831_430b_97d97c01d2a4474e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 131 1 0 "ac0ad5a7_d00b_46fe_a18f94f8dab3863c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 132 1 0 "b7f86b6c_03a4_4e12_a05e5e8bdc958b75" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 133 1 0 "9bfa8704_2ae0_4a63_83d09fddbacfd336" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 134 1 0 "860b660a_6947_4c88_a2a039bf65040bf5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 135 1 0 "797f0eef_5bb2_4a2e_a178af74f4892bd7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 136 1 0 "2753c24e_c4dc_402d_866b6bc8691ecc1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 137 1 0 "1ac127fd_b830_496f_b4d4b9671137ebff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 138 1 0 "3ee5d751_d3a5_468a_b539c4f0ff22023e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 139 1 0 "b86d492c_446f_4921_97140cfd462ace87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 140 1 0 "e049946d_6322_4b39_9c46a2d0eb345528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 141 1 0 "531432f5_ef8a_416e_8be28a07ae9b0d25" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 142 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 143 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 144 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 145 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipEject") { // }} "" // {{{ 146 1 0 "69be671e_7cdd_48d3_af136435754c1d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 147 1 0 "f3444c0f_4863_4fdd_94a025b682d8a6d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 148 1 0 "12ad2f39_c160_4afc_9f6ffce7e3ddb433" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 149 1 0 "2883bb64_2fe3_47ca_996e11434afc57cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 150 1 0 "10c3b13e_7129_4cfd_b88b29d0bbc31a28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); // }} "" // {{ 151 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (useDefaultWaste == 0) { // }} "" // {{ 152 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 153 1 0 "655bc92f_08a8_4c16_a0276997aec081ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 154 1 0 "a3a0b5ef_85c0_4552_a28b3356d7886eb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 155 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 156 1 0 "efadb8c3_c431_4ed4_a739a951c05ee518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 157 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 158 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 159 1 0 "2dda50b6_7f82_4e8a_a1d203715119213a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 160 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 161 1 0 "7fa61e34_a1f2_4b99_8f6bed13c6ce120f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn); // }} "" // {{{ 162 1 0 "a7db5128_f8e4_4afe_81f46b2cc86e608d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject step return:"), o_stepReturn); // }} "" // {{{ 163 1 0 "683607f4_928f_4cea_b901fe3502404424" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 164 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 165 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 166 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 167 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 168 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 169 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipPickUp") { // }} "" // {{{ 170 1 0 "1f82c33f_a085_47cc_85dbbde3e42a53c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 171 1 0 "9f9fe665_47a2_4a12_961460021d1f09f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 172 1 0 "743960d2_9d0f_4ccf_848662247e3211c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 173 1 0 "b737602c_63e8_4c4c_b47f40cb815914ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); // }} "" // {{ 174 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 175 1 0 "00bd1831_c335_40f5_b706f0ffadbe2890" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 176 1 0 "1f16418c_8fa7_44a5_a6db75dd9a79ee84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 177 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 178 1 0 "b66db4eb_9e79_4c19_909fd8d14d37cba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 179 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 180 1 0 "f3e7cbf6_0242_4463_8d4ed0db4667f7db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2); // }} "" // {{{ 181 1 0 "b080a5c6_324c_4aae_b5899dede6d863f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 182 1 0 "aa5a9c4b_0377_46ce_9b46883db15cbd7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 183 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 184 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 185 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 186 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Aspirate") { // }} "" // {{ 187 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 188 1 0 "373f30c8_ec07_4298_94d6ac75358ab1ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 189 1 0 "ef3ae377_e985_4ef6_93b005aa91c9b2b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 190 1 0 "d8eea65a_6e59_4c32_a47bae09779f9528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 191 1 0 "8eb02312_a070_491c_9758b3cdbdee0cfc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); // }} "" // {{{ 192 1 0 "6eaf8bee_b53f_4f01_87c1380bc345e386" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 193 1 0 "d9923a2f_e7cf_4f3e_81746e378a20baab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 194 1 0 "2c411993_e3fc_4753_9a90308b226078a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 195 1 0 "5d900896_b2b9_442b_b24294b9bbfbdaad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 196 1 0 "21149e9e_21c9_4ddd_93e07b693e3ab3fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 197 1 0 "bcefef03_102b_4887_adad59c2fb7ad551" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 198 1 0 "9665b0a3_35e8_47e9_b14ac1a4818cfa6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 199 1 0 "ff93d28b_afe9_47e7_9b6eb50d6845384f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 200 1 0 "ef43b824_fd38_42d4_9e932904dbf14813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 201 1 0 "b0378457_e370_448b_bfd6955c05e57bcb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{ 202 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 203 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 204 1 0 "615bcff6_e9d5_4303_a5d5826b2e2548dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 205 1 0 "cf4ad428_945e_4921_9441ee34cf9c96bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 206 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 207 1 0 "86397ec2_2ee5_4ec1_8bec47d8e87584b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 208 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 209 1 0 "48f88263_72c1_4df2_865181cffed9feee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 210 1 0 "f1b764e8_e556_4d08_bb83bdc12dc64a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 211 1 0 "164c104a_cf5f_46de_b23a098a18b3fdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 212 1 0 "ee779f77_51a9_46d7_b58b7bcaf13519f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 213 1 0 "e874eb6d_1e97_4590_95d9b10cb059c935" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn4); // }} "" // {{{ 214 1 0 "0ca1df86_a344_45fd_b384e13ba44c5ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 215 1 0 "2497228e_672e_4c95_9f31679fe87bbe1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 216 1 0 "e4930eee_c625_4acb_a81c05e149a1a218" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 217 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 218 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 219 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 220 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Dispense") { // }} "" // {{ 221 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 222 1 0 "78cba921_2a37_4b4a_91ef7fbe81fcddd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 223 1 0 "b58b4cbd_16e9_4444_9037061e29bc5614" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 224 1 0 "0ab910ec_826d_4c84_bac7ed9564f3bdab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 225 1 0 "84d664b7_70d0_4136_bdfd4de2aa760ad8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); // }} "" // {{{ 226 1 0 "18becc6a_2df4_4281_8b16ade9038979f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 227 1 0 "68c565db_e5ed_44e8_b3846a1d98034e76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 228 1 0 "6a4221a8_9488_48f9_8381b1bc0f0c960d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 229 1 0 "45dcb271_e326_42fc_b8684816d3ffdc93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 230 1 0 "14552b13_e77b_4fb7_9020445ecc5ade21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 231 1 0 "91783f87_af6f_446e_a74fb1725f17d282" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 232 1 0 "e2e7f702_1710_49eb_9b1046dbf4f143e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 233 1 0 "1817aa70_86fa_4318_a8e46569701623e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 234 1 0 "50bd6734_10d5_4291_b40eb708539514fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 235 1 0 "ad5fbb01_d809_4b7d_b858ed597709f28f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 236 1 0 "09566247_6b2d_4c73_b43fe303a30f89c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 237 1 0 "3ead74f7_3b5c_4b21_84d2488c2eceab73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 238 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 239 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 240 1 0 "835f8470_7e8c_40ff_a48abcc85d6b778b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 241 1 0 "059394fc_e924_4d57_b1b85f79f9947fa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 242 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 243 1 0 "6c4be3a7_a450_459c_90545a208f9f459f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 244 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 245 1 0 "c164a94e_2926_462e_9487870d403fe8b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 246 1 0 "86c0fb85_8aaf_4bec_9f6f1f642206487f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 247 1 0 "77047add_8050_4522_ad477b97455a8327" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 248 1 0 "5b2c6f23_9a69_489d_b52179c78c03e48f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 249 1 0 "a9a9244b_829f_4c5b_9a64f1018b029453" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn4); // }} "" // {{{ 250 1 0 "781580a9_199e_4373_b48bb55a97f8a463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 251 1 0 "1867ae44_25f8_4926_ae081e490fd5aa0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 252 1 0 "dbb3b30c_b4a1_4cf6_a24b62b63f155369" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 253 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 254 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 255 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 256 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipEject") { // }} "" // {{{ 257 1 0 "7cf9db16_d78c_4aa0_825cc3c2c22f287c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 258 1 0 "ccca7a97_c22a_4f20_b2d9a60d67850eee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 259 1 0 "a319f75e_77eb_4845_856516ce060213f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 260 1 0 "d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); // }} "" // {{ 261 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipEjectToKnownPosition == 0) { // }} "" // {{ 262 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 263 1 0 "24eeb6dd_1e20_422c_a1a8199cbca73b33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 264 1 0 "5197334f_cde5_4d52_9c528a0c4f7401b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 265 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 266 1 0 "110b82e1_8a5b_48e4_a3adbab701cffc8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 267 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 268 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 269 1 0 "fa32bbf8_8345_4897_aaf09d112d374893" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 270 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 271 1 0 "ef087a4e_684e_4d98_87109abf154fbc85" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2); // }} "" // {{{ 272 1 0 "328216cf_22dd_47a1_9f1ba089b1ac7702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn); // }} "" // {{{ 273 1 0 "53265943_7975_4275_ad98df313054f97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2); // }} "" // {{{ 274 1 0 "c13d9773_7daf_4c3c_9064fdd4f7c7008f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 275 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 276 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 277 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 278 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 279 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "loadCarrier") { // }} "" // {{{ 280 1 0 "76d739d0_ff4a_490b_9c47f411d29ef7a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 281 1 0 "ca623aa7_ed48_45fa_9f4055fb8e08c3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); // }} "" // {{{ 282 1 0 "64a8e193_7e7e_412e_8a0657f0e832eaef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); // }} "" // {{{ 283 1 0 "39e6aaef_5cce_4915_b5b6ede214c7371e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs); // }} "" // {{{ 284 1 0 "1d4d284f_fd1e_4f8a_a2158846ad6a67f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Load carrier step return:"), o_stepReturn); // }} "" // {{{ 285 1 0 "358b7fc3_40a2_418b_9d61d94eef1556f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 286 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 287 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 288 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 289 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "unloadCarrier") { // }} "" // {{{ 290 1 0 "797d23a7_c62a_471a_a52b10fea8bcc154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 291 1 0 "f1c35790_adb7_49eb_a96864d8b1d66cea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn); // }} "" // {{{ 292 1 0 "6e6ded71_3f99_46c5_9362117beb502a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn); // }} "" // {{{ 293 1 0 "8713fee4_6b93_4296_a5396254fd404d52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 294 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 295 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 296 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 297 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 298 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripGet") { // }} "" // {{ 299 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 300 1 0 "c4847ae5_e161_4f23_aa432eda22de28bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 301 1 0 "022a5cdd_3f4f_4e18_927c174fc57a68a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 302 1 0 "3e462067_5eb3_49c3_b7bf6a27de9ce3bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 303 1 0 "f7004881_3f0d_4621_a88d55dec8fc0d30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 304 1 0 "262b36ba_6d86_4009_bdc9a3881db7074e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 305 1 0 "be44b37f_7cec_4f69_81c223f2c30b120b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 306 1 0 "3dea3158_65f8_44bc_8d06a31ce3458dab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); // }} "" // {{{ 307 1 0 "308b2aa2_5970_4692_858049c6559d6ad0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 308 1 0 "756d0f81_3645_4a49_a0c2259581e11498" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 309 1 0 "cdbf11ba_b1f8_4016_811240a02705f1fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{{ 310 1 0 "625df597_c6c8_4e4a_b956e9580bfbc568" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); // }} "" // {{{ 311 1 0 "3576d134_8507_4e47_9c2bcc3dce8c026d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 312 1 0 "5b9c06ad_9081_4b6b_97e50cc87623b888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 313 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 314 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 315 1 0 "d1f3c2ac_9c68_4200_a3506bbbed8e42a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 316 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 317 1 0 "f1d1c43b_a9dd_4573_a69dd7c0e79eea40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 318 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 319 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 320 1 0 "4d304110_107e_412e_909bb84008a244de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 321 1 0 "8f8b1ba1_af12_4cdd_acf2096420ede259" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{ 322 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 323 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 324 1 0 "72e31f7d_c091_4525_a5cf7001754b199d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 325 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 326 1 0 "47dfcbb5_d784_48bb_b36b97509434a3a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 327 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 328 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 329 1 0 "e6c53925_446e_468e_b0e0654b4b9d9a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 330 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 331 1 0 "c0cbb194_1b8b_4fe0_a0f706e03eaa0748" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 332 1 0 "46703217_a28e_42ce_b13c11d73ba34bfa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn); // }} "" // {{{ 333 1 0 "189164cc_2681_492f_83f072fb537648b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn); // }} "" // {{{ 334 1 0 "c8d6960a_f416_47b1_a29e2752973c0ec9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 335 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 336 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 337 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 338 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripMove") { // }} "" // {{ 339 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 340 1 0 "5755c338_faa3_4f0a_9acd4cd01a912862" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 341 1 0 "2849c819_a3dc_4328_8484ccc4785993d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 342 1 0 "32f0a8f9_3af2_42a3_90f246cc874e0e8f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 343 1 0 "791b6e1a_07b8_49cb_8122670d0871189f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 344 1 0 "036d0d84_e161_4b03_8b828dcb6b44e437" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{ 345 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 346 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 347 1 0 "e038f780_938f_4867_98f769488ca44b04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 348 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 349 1 0 "6bd2d2a1_1051_4443_a1af9b68df2876b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{{ 350 1 0 "3d8767e5_5f31_4ce5_91a11e28045ec87a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 351 1 0 "e9e0b38e_13aa_40f9_8e470eb1de09eb19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("wrong"), Translate("nowwrongere")); // }} "" // {{ 352 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 353 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 354 1 0 "064a5c1b_f450_44d6_a2042ebde115527d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 355 1 0 "ee8b8050_164a_4de8_b6ce02120236efbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 356 1 0 "be0898fe_cdb8_4ac3_a9e991e26bdb6658" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here"), Translate("now here")); // }} "" // {{ 357 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 358 1 0 "ca4b75ee_26d9_4a3b_8e3366d575348125" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 359 1 0 "ea0afc75_5bc7_4c06_ac73c2f4d5f887a0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 360 1 0 "1965d128_c7f1_4206_87e4ca1ce70c1dff" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 361 1 0 "615cbdd3_e5f2_4bc0_bb3661a2482eb770" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 362 1 0 "86fc0696_8c53_4c05_a9c0eaa58f279054" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 363 1 0 "90f602a1_fdc5_48fd_801269ecd2c3f9bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn); // }} "" // {{{ 364 1 0 "dc418b75_2d70_4034_84a767fba752b262" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn); // }} "" // {{{ 365 1 0 "ae4414d3_a939_4fdb_a0ed06f1be1506e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here here"), Translate("nohhere")); // }} "" // {{{ 366 1 0 "6379549c_caf9_409f_b293abf77f1dcfbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 367 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 368 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 369 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 370 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripPlace") { // }} "" // {{ 371 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 372 1 0 "6f38d60b_6dc5_4159_ba30360f264222da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 373 1 0 "b6ef73cf_c89c_41cc_a3b72dc5aaf70f90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 374 1 0 "c7e5f5bd_edcc_4000_9be3db81af0c79fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 375 1 0 "91ff4c39_6a86_4eda_998a5461ef6c3cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 376 1 0 "341a6f8e_b4c8_4966_b9520322d1bc2e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 377 1 0 "32792c80_3b36_4a25_8fff6b99bfcf1919" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); // }} "" // {{{ 378 1 0 "b1e5d86e_c659_4d33_9e0f83fdb20b2cb5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 379 1 0 "76b26748_4e74_45f7_85a7dc102b5fd7b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); // }} "" // {{{ 380 1 0 "ee221e8a_a662_49d8_be2ef0ed631d9527" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 381 1 0 "cbefd54c_5f0a_4a16_a0199198529b71fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 382 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 383 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 384 1 0 "ac4e7090_c3c7_4707_8d98dc55262c294b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 385 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 386 1 0 "eb5776ad_c858_4ee8_ba31f47af19e76af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 387 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 388 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 389 1 0 "1f3eb006_1b10_427e_99d0b530f1afc2ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 390 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 391 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 392 1 0 "a04c5993_bf3e_46c7_92f24c8236636b00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 393 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 394 1 0 "2455f68c_be4e_4a21_9e9e78f78f6e8e3c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 395 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 396 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 397 1 0 "ad5d98b0_9e3d_4275_90ceef06ceca045d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 398 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 399 1 0 "3321537f_63fb_48a4_90e40a2fee1cc432" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 400 1 0 "8c7e60df_f040_45c6_a939d99bcd0ac23c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn); // }} "" // {{{ 401 1 0 "24e589a9_98d7_429d_90c8afe203e96ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn); // }} "" // {{{ 402 1 0 "9d94d038_d071_4339_aaace5a2e455b240" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 403 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 404 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 405 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 406 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 407 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 408 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGet") { // }} "" // {{ 409 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 410 1 0 "4a585a30_3a23_44cc_a0948963de716cba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 411 1 0 "da3a318b_1208_4329_be1faae95ecc2e03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 412 1 0 "1f51589f_347c_497b_a7338461d92076d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 413 1 0 "622e6765_4ee3_4df5_917ca140f8b7981b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 414 1 0 "9826612b_e564_4231_8f83fdfcbd374bdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 415 1 0 "fdb52557_ae6c_42b3_925073ab7ae7a5ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 416 1 0 "171639e0_98ad_4857_a5ac346039499a33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 417 1 0 "0d4077af_b1dc_4dea_a23a163c57d96248" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 418 1 0 "60732b74_8870_48e2_be03564159cf35b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("inverseGrip"), inverseGrip); // }} "" // {{{ 419 1 0 "ffa21840_da03_4682_b62a6910caf63f45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 420 1 0 "0af9b15f_4e1b_4353_a6261def96fea256" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{{ 421 1 0 "c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 422 1 0 "74d93b97_5d7f_4593_9aeb9d83d5466e6f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{{ 423 1 0 "28d636c0_47c0_4fac_8a7b67124fd8b9f5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 424 1 0 "6f62025f_9dde_4ae6_a6b6b69efed6e381" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("tolerance"), tolerance); // }} "" // {{{ 425 1 0 "f3d51abd_651e_4b15_93eb0cea0c0384be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 426 1 0 "1b72eb1e_c220_42e0_9a34675ddc971fe7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{ 427 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 428 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 429 1 0 "fd3fbb06_b08e_4790_8e3b785ca1f8ed4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 430 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 431 1 0 "87331d5f_01ff_43a8_a0a06487f28bb2b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 432 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 433 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 434 1 0 "5f12c00c_48c1_4e2f_a24b4ba435343a8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 435 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 436 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 437 1 0 "d3e5718a_eb78_4c1f_a6467f61ccbe82df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 438 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 439 1 0 "8ebcf09f_a943_4769_b3c659e368019a32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, lidSeq); // }} "" // {{ 440 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 441 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 442 1 0 "8ce5efe3_4525_4c77_bb64f9d8dcfb6a62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 443 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 444 1 0 "8ac111e1_df50_4fcb_b465e737713459d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn); // }} "" // {{{ 445 1 0 "d9104246_d843_4a6d_85a64aa07d019020" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Get - step return :"), o_stepReturn); // }} "" // {{{ 446 1 0 "7831c2d8_4b59_455a_a0dc5cae20f325a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 447 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 448 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 449 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 450 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapMove") { // }} "" // {{ 451 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 452 1 0 "3c315cea_4ff8_4efa_8e4a5cc86a9d84d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 453 1 0 "4e2cf15d_267b_47e0_895c36b714787e13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 454 1 0 "24d68fc9_cd59_471b_9c663c4121d1a931" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{ 455 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 456 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 457 1 0 "d372f898_6d32_4d80_ab4d58340d18681d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 458 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 459 1 0 "9e573132_bd29_4d08_a1784d0e26c48700" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 460 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 461 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 462 1 0 "48db1de6_2a87_4224_b1f13fa2a75b490a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 463 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 464 1 0 "1e8e9562_41c0_4df5_9de945c44d1e8d61" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn); // }} "" // {{{ 465 1 0 "a5de7c97_d49c_4f04_b1414f1aaace7f84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Move - step return :"), o_stepReturn); // }} "" // {{{ 466 1 0 "6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 467 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 468 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 469 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 470 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPlace") { // }} "" // {{ 471 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 472 1 0 "18e9697d_0efb_4840_94a65e2a82b4ca69" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 473 1 0 "b0c35970_122b_4119_92c3801f4b8e980b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 474 1 0 "6ed697af_a110_4104_941633e154ff0071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 475 1 0 "fec1982e_3636_412d_af2eda243438f7ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 476 1 0 "21de27ac_9dc3_415b_b1d1e49e80c53591" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 477 1 0 "652aeaa7_9a2f_4c11_8bc1fc58a97ffed7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 478 1 0 "e88a5df4_d9ad_4231_89a5a03f88d0ce77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 479 1 0 "8c5aee51_3156_4fcc_b1b167552b73476f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 480 1 0 "8c257b39_8c0b_410d_a4a4e38df904008c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 481 1 0 "91e9f4c6_b7fe_4b15_83c830df3385398a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{ 482 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 483 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 484 1 0 "226bb6d1_37a1_4076_9d96fb9df69c6068" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 485 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 486 1 0 "ec2fd48b_eab9_491e_867c0fc335eea81c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 487 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 488 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 489 1 0 "e590d9b6_f690_48db_b0109a10c228d5ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 490 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 491 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 492 1 0 "82559320_1e13_40c9_b283fdfa804df6a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 493 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 494 1 0 "420daa28_bf45_407a_bd576559af75c5d0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 495 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 496 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 497 1 0 "3ed6b704_3649_4c7d_8e7d30bdb038feab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 498 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 499 1 0 "41a130e8_a745_4a20_b124272093bf38e7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn); // }} "" // {{{ 500 1 0 "b4bdf08c_e218_4bec_98c0f41e6ec3a218" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Place - step return :"), o_stepReturn); // }} "" // {{{ 501 1 0 "346b983b_d261_4447_a7cebf782db4b4d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 502 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 503 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 504 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 505 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPark") { // }} "" // {{ 506 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 507 1 0 "73602d5e_7f8d_45dc_9c1f21d41c39d0bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("showCollisionCheckDialog"), showCollisionCheckDialog); // }} "" // {{ 508 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 509 1 0 "acf5767a_7e39_4072_8e062928938984cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{{ 510 1 0 "96b1bdf6_a3f3_4530_844fc77cbf7fb944" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 511 1 0 "d03fdac4_224f_4174_924fb518a623bf65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 512 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 513 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 514 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 515 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGetFirst") { // }} "" // {{ 516 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 517 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 518 1 0 "5f9f4b8d_3b3a_48ee_89ef334a70dcb72e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{ 519 1 0 "65648900_32b3_4035_9eb5916a3314f7e9" "ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}" { variable arrRetValues[]; arrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40("65648900_32b3_4035_9eb5916a3314f7e9"); // GetFirstPlatePosition } // }} "" // {{{ 520 1 0 "63380bb7_5afe_4d65_9dc5cdf334590b4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 521 1 0 "cdb18c48_14d5_430d_9f7202f782e069da" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 522 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 523 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 524 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 525 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 526 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "FirmwareCommand") { // }} "" // {{ 527 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 528 1 0 "5f5e5c89_0c1a_497b_80c550dbc4676208" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate("FirmwareCommandList")); // }} "" // {{ 529 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(CommandListElement = 0; CommandListElement < CommandListLength;) { CommandListElement = CommandListElement + 1; // }} "" // {{{ 530 1 0 "2c2e9953_5968_4384_8b2dad24b0960278" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate("FirmwareCommandList"), CommandListElement, FirmwareCmdDict); // }} "" // {{{ 531 1 0 "7f4d5cda_c10f_4317_ba7613cd10d2e90d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareCommand"), FirmwareCommand); // }} "" // {{{ 532 1 0 "cf155262_dfb4_46b4_aff762c7b4c18d8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareParameter"), FirmwareParameter); // }} "" // {{{ 533 1 0 "471df283_02f5_4daf_9c83999e3b1fd8e1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn); // }} "" // {{{ 534 1 0 "0b8e6d49_655f_42a7_bcfdeac76a40c6e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 535 1 0 "f49f31b3_d742_44ae_a6a076108c3f9ab4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 536 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 537 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 538 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 539 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 540 1 0 "193ad70f_ec03_47e5_b1f5ef9ff75805c0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 541 1 0 "5861a5ed_1f9d_48fc_9f3d976bc1a13751" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "setAspirateParam") { // }} "" // {{{ 542 1 0 "d741f062_6b73_4365_ad9c8646a016138d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LiquidClass"), LiquidClassName); // }} "" // {{{ 543 1 0 "86836193_1dcb_460e_8db2dda6b775abd9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Parameter"), LiqClassParameterName); // }} "" // {{{ 544 1 0 "d94798d1_53c6_40de_b72c239404c94352" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Value"), LiqClassParameterValue); // }} "" // {{ 545 1 0 "cca3a5d2_6d84_4105_a976a70a83585972" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E1EAD148F3254941A251DC272F774AB4 ; err.Clear(); // }} "" // {{{ 546 1 0 "3f31be32_d184_4c20_a5127e5057f15149" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SelectLiquidClass(LiquidClassName); // }} "" // {{{ 547 1 0 "b75ad951_95b1_4114_864093345ffb2cdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SetLiquidClassAspirateParameter(LiqClassParameterName, LiqClassParameterValue); // }} "" // {{ 548 1 0 "a39ebf7f_8e12_47a6_aad54fd2890ba779" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 549 1 0 "cca3a5d2_6d84_4105_a976a70a83585972" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E1EAD148F3254941A251DC272F774AB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 550 1 0 "a14cc465_549a_4722_b3fb08ce2532a405" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 551 1 0 "cca3a5d2_6d84_4105_a976a70a83585972" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 552 1 0 "ec08039a_3b70_4854_894d57c13ffdc877" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 553 1 0 "5861a5ed_1f9d_48fc_9f3d976bc1a13751" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 554 1 0 "833dd647_9b77_4420_bcf4ca4df1d1919a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "setDispenseParam") { // }} "" // {{{ 555 1 0 "4aa7b9ce_fd73_4a55_9a3c704bfb4c443d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LiquidClass"), LiquidClassName); // }} "" // {{{ 556 1 0 "27e93e41_ad5f_4b74_a1844bb15c0dfdfc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Parameter"), LiqClassParameterName); // }} "" // {{{ 557 1 0 "10da81a6_cef8_4c18_9416f561b557ad45" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Value"), LiqClassParameterValue); // }} "" // {{ 558 1 0 "cee50056_b4b0_473b_8d775dd178dab21d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3A18CA152B674dd3A42B81C4D45F719E ; err.Clear(); // }} "" // {{{ 559 1 0 "b471ff31_4fdd_4a9f_87431e5741a9b969" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SelectLiquidClass(LiquidClassName); // }} "" // {{{ 560 1 0 "8f401b71_156d_43b5_892982e8478456f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SetLiquidClassDispenseParameter(LiqClassParameterName, LiqClassParameterValue); // }} "" // {{ 561 1 0 "28e95405_685a_4032_b361461ff897189f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 562 1 0 "cee50056_b4b0_473b_8d775dd178dab21d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3A18CA152B674dd3A42B81C4D45F719E : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 563 1 0 "c7174915_16fd_40d8_b94eac8999f4eab7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 564 1 0 "cee50056_b4b0_473b_8d775dd178dab21d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 565 1 0 "d805e811_a796_44e9_93839b02b6d05f1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Liquid Class Set Parameter:"), o_stepReturn); // }} "" // {{{ 566 1 0 "da31069e_a165_4c2e_b95619cb57c4ae8a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 567 1 0 "833dd647_9b77_4420_bcf4ca4df1d1919a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 568 1 0 "193ad70f_ec03_47e5_b1f5ef9ff75805c0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 569 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 570 1 0 "2777cb67_3095_437b_9b54d34ead8fcab2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 571 1 0 "c397d56d_00f8_4e32_bf71c20e91dcac17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ConnectIP") { // }} "" // {{{ 572 1 0 "b450ee5c_4bce_435e_b562523f18ce0142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("InstrumentName"), InstrumentName); // }} "" // {{{ 573 1 0 "13c30b43_9a94_4cd1_a907aa21f01057cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PortNumber"), PortNumber); // }} "" // {{{ 574 1 0 "68ec12ae_0e01_4827_9460e39fddef7f4d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 575 1 0 "7c482f87_e50a_44d8_88516cf7d087dbde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MPEOptions"), MPEOptions); // }} "" // {{{ 576 1 0 "8d4e01b7_ef9e_4570_a2e08f31ecacc259" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingIP(InstrumentName, PortNumber, SimulationMode, MPEOptions, DeviceID, o_stepReturn); // }} "" // {{{ 577 1 0 "005f0b12_4fb1_48ba_bcfeb961b9419149" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeviceID = StrIStr(DeviceID); // }} "" // {{{ 578 1 0 "51077fef_f212_48a6_8f6c43d7d5f5df97" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 579 1 0 "97ff097f_9089_4ac0_82438cbd6f0a9c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Translate(""), Translate(""), id); // }} "" // {{ 580 1 0 "c397d56d_00f8_4e32_bf71c20e91dcac17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 581 1 0 "2777cb67_3095_437b_9b54d34ead8fcab2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 582 1 0 "62a26733_db4f_440f_9fb51db5fef61711" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 583 1 0 "0098c030_fe6b_49bb_92b77ef5a5c7372d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ConnectCOM") { // }} "" // {{{ 584 1 0 "e8776203_e1ed_4373_8a427cb0d8b8d29f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ComPort"), ComPort); // }} "" // {{{ 585 1 0 "4c600ed2_a490_4f3e_bdadfe3b174db193" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("BaudRate"), BaudRate); // }} "" // {{{ 586 1 0 "e77abf5c_e94e_469b_82ea0f774615a671" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 587 1 0 "aaebc2c7_eafc_456e_83386035ed203694" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MPEOptions"), MPEOptions); // }} "" // {{{ 588 1 0 "3b2a8a1c_5b74_4668_b7a5ca974a7658b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingCOM(ComPort, BaudRate, SimulationMode, MPEOptions, DeviceID, o_stepReturn); // }} "" // {{{ 589 1 0 "1a9f7ef9_8c04_4517_8d26efaa81d3eff7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 590 1 0 "104f0498_cc9f_4508_8f28e3b53675ef53" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 591 1 0 "0098c030_fe6b_49bb_92b77ef5a5c7372d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 592 1 0 "62a26733_db4f_440f_9fb51db5fef61711" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 593 1 0 "94f49f46_ad96_4874_9148653f8fa3302e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 594 1 0 "1abd6ad0_87b9_4459_b74e20f9717ebd2b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ClampFilterPlate") { // }} "" // {{{ 595 1 0 "bdc39916_5944_49a4_846784d94f27267f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 596 1 0 "cf252c80_073f_4e8b_85e84a546e80666b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ClampFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 597 1 0 "16a9c218_a7c3_403c_a7c005e96566f8d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 598 1 0 "de8afcf3_ec32_4067_895aceb7a7a650eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 599 1 0 "1abd6ad0_87b9_4459_b74e20f9717ebd2b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 600 1 0 "94f49f46_ad96_4874_9148653f8fa3302e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 601 1 0 "d19e0aae_3b5d_4b88_9b9fa6cd22d67f22" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 602 1 0 "421097a4_a57a_4dec_8b9257b5d77233e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_CollectionPlatePlaced") { // }} "" // {{{ 603 1 0 "ae857f70_e319_4ada_a8b086f120e84247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 604 1 0 "a173d887_781c_4262_9fa6c81e253bd32c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CollectionPlateHeight"), CollectionPlateHeight); // }} "" // {{{ 605 1 0 "7e167a7c_dfb2_4798_814039b7430ccbae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("OffsetFromNozzles"), OffsetFromNozzles); // }} "" // {{{ 606 1 0 "aa2d8e6c_c878_40f1_a1325cb8fe399514" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlatePlaced(DeviceID, CollectionPlateHeight, OffsetFromNozzles, o_stepReturn); // }} "" // {{{ 607 1 0 "6ad949b9_e02e_4686_be660950f5282aee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 608 1 0 "99fa8dd5_ac5f_4d13_91fb69b65d2bc0ea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 609 1 0 "421097a4_a57a_4dec_8b9257b5d77233e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 610 1 0 "d19e0aae_3b5d_4b88_9b9fa6cd22d67f22" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 611 1 0 "21b7e081_f229_400f_9a51a8b8a5412447" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 612 1 0 "b7625009_1717_4db6_8d24209ff3b8dbb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_CollectionPlateRemoved") { // }} "" // {{{ 613 1 0 "fc436f5c_aaba_4906_a4074c83d00f028c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 614 1 0 "65ba4a03_7064_45c5_8ae9ffb86a3234b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlateRemoved(DeviceID, o_stepReturn); // }} "" // {{{ 615 1 0 "39ef177a_96d2_411f_97c648ff2ed91ea8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 616 1 0 "cbdb85be_569e_40cb_93e3582de4fd718f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 617 1 0 "b7625009_1717_4db6_8d24209ff3b8dbb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 618 1 0 "21b7e081_f229_400f_9a51a8b8a5412447" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 619 1 0 "38689ea3_dc56_4d7c_88d585797b9d957e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 620 1 0 "ee3d4b03_3d8c_4718_9f927c1855c7346e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Disconnect") { // }} "" // {{{ 621 1 0 "acfb16ed_a9d1_4a63_a9c0106aff00758d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 622 1 0 "f0cbe63d_fe07_4cc6_8bcb70bf9c7de9ec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn); // }} "" // {{{ 623 1 0 "b23baddd_cdbc_45fd_8c093ab349a937f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 624 1 0 "1695a8ad_2f0f_48a1_a9d8534daaa45c88" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 625 1 0 "ee3d4b03_3d8c_4718_9f927c1855c7346e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 626 1 0 "38689ea3_dc56_4d7c_88d585797b9d957e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 627 1 0 "45f798d0_f63a_4141_9f0512725c85b742" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 628 1 0 "3d8efec9_ac55_4f4d_90f0259610f7394d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Dispense") { // }} "" // {{{ 629 1 0 "d9eb3796_7e12_47f9_b6636e222cb5d878" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 630 1 0 "b1b7d9a5_44ce_4588_b1315c2c2c0a6d6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 631 1 0 "e9efebdb_3e29_4a1f_9a03447005f6b247" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 632 1 0 "6812297a_3eee_4055_8de5373a96f6eb0c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 633 1 0 "b6c33a7b_d31f_4f02_8921532db5005869" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), NeedleOffset); // }} "" // {{{ 634 1 0 "f78d0de5_185c_4061_ad416fe94f5dba58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn); // }} "" // {{{ 635 1 0 "01ebd08b_bf22_4edc_b4101325c0ed5d7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 636 1 0 "46be0614_7064_45bf_962fe4fdb2d26ad3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 637 1 0 "3d8efec9_ac55_4f4d_90f0259610f7394d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 638 1 0 "45f798d0_f63a_4141_9f0512725c85b742" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 639 1 0 "c0d12f62_bf0c_4968_8cf8102df9290745" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 640 1 0 "e0397cd6_5fd2_4820_953df1804d2989f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Evaporate") { // }} "" // {{{ 641 1 0 "eff0d502_cbda_4d56_a060ee98b8acfa1b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 642 1 0 "358b8e75_dcca_4656_8f480e051d9768ac" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 643 1 0 "11f40dee_5289_4a85_b3065e4b85d93416" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 644 1 0 "e660629d_9388_44fa_9749984b17a66bc9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellDepth"), WellDepth); // }} "" // {{{ 645 1 0 "3a86a09d_a4ea_4a34_8573e644beb7c6a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 646 1 0 "6cc724c7_a4bf_4c46_948af3e23aaa8758" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 647 1 0 "6bba2cf9_561d_4a3f_87ee7949c7ce3fbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 648 1 0 "d305f425_1c51_43f7_9c5bd6ec76d64b05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 649 1 0 "e0397cd6_5fd2_4820_953df1804d2989f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 650 1 0 "c0d12f62_bf0c_4968_8cf8102df9290745" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 651 1 0 "54c61117_4dde_492d_91df73eafbdbdf0a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 652 1 0 "ea8576f1_52df_4787_b62e82c44a5b6131" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporatePrepare") { // }} "" // {{{ 653 1 0 "04b183eb_df7f_4775_a8db9b61d0822126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 654 1 0 "7ae5dae4_f3fe_42d9_b07c545e18248898" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 655 1 0 "67e84057_0c19_4600_b6bb1cda5b345f8d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 656 1 0 "31ab1ccb_49b6_45ab_886cb04421f727d1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellDepth"), WellDepth); // }} "" // {{{ 657 1 0 "f9f854b4_d03f_44fa_866ecad432e5ee59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 658 1 0 "0e37d7ed_b49b_42c3_b9306b90a8fbecba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 659 1 0 "bdc5441b_5578_4bb1_9a5511f8d6cb37a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 660 1 0 "82509201_581c_4a09_8c1fba65491074b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 661 1 0 "ea8576f1_52df_4787_b62e82c44a5b6131" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 662 1 0 "54c61117_4dde_492d_91df73eafbdbdf0a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 663 1 0 "f877f93d_359e_486f_aabbf156b38c0fd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 664 1 0 "be0cdb40_9439_44c4_9349319653177825" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporateEnd") { // }} "" // {{{ 665 1 0 "661eb571_7a3f_452f_8cd8e71af5633aa2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 666 1 0 "ce6d86eb_0d5e_4931_9b8ae8ab7b99d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 667 1 0 "407cb55f_f828_4adb_b9a1dcfb39934436" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_EvaporateEnd(DeviceID, Timeout, o_stepReturn); // }} "" // {{{ 668 1 0 "3281176b_4d2d_43ea_b218e196deacc5a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 669 1 0 "dc7eb698_c6ab_4bce_b2eae2a106e79c26" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 670 1 0 "be0cdb40_9439_44c4_9349319653177825" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 671 1 0 "f877f93d_359e_486f_aabbf156b38c0fd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 672 1 0 "77175285_9bc0_458e_bdb99486afa263f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 673 1 0 "1d9fee0e_9129_4e05_9387d48ad64ce5b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporateWithRate") { // }} "" // {{{ 674 1 0 "f74fcc26_c2be_481c_9b4822ade43b6399" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 675 1 0 "d104e730_2dfe_46de_9499ec6975f6d3ba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 676 1 0 "ef36faf4_19fc_4253_92c3ba78e66fa81b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 677 1 0 "4e02e5d8_e2c2_421e_9e232b4b54ffc755" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("EvaporateTravelDistance"), EvaporateTravelDistance); // }} "" // {{{ 678 1 0 "d5f4fc63_608e_48f5_be8989e9f0ed73d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 679 1 0 "ce2ba2cc_4f8f_4960_a2120a80bdee1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FollowRate"), FollowRate); // }} "" // {{{ 680 1 0 "72651c9a_a411_472d_9fbc4d5cf13dbe7f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 681 1 0 "6d1ded15_26bd_4832_a66e0a7ed7ae5de8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 682 1 0 "24da9a05_6ec1_4a5d_aa357161406c5b4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 683 1 0 "1d9fee0e_9129_4e05_9387d48ad64ce5b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 684 1 0 "77175285_9bc0_458e_bdb99486afa263f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 685 1 0 "18d62f91_3389_4a05_81dcd2b1f9f35eb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 686 1 0 "5517c3d2_626c_49ed_9f300f5eb7cad266" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterPlatePlaced") { // }} "" // {{{ 687 1 0 "6ad26884_293d_471f_87d63211dbb2130a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 688 1 0 "f712b14e_2361_4388_aaa3d1b6bdd76274" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FilterHeight"), FilterHeight); // }} "" // {{{ 689 1 0 "046c36b4_609e_41ad_802334b853237e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NozzleHeight"), NozzleHeight); // }} "" // {{{ 690 1 0 "9cd1e28f_9f73_4580_933330d72a187021" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_FilterPlatePlaced(DeviceID, FilterHeight, NozzleHeight, o_stepReturn); // }} "" // {{{ 691 1 0 "77cbd1e2_38c4_46cf_8a36d8bf2fd59668" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 692 1 0 "e9b09e36_5025_44eb_8a0241793ecb2130" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 693 1 0 "5517c3d2_626c_49ed_9f300f5eb7cad266" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 694 1 0 "18d62f91_3389_4a05_81dcd2b1f9f35eb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 695 1 0 "a8bdabef_328d_4914_85c9d5a5e206e280" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 696 1 0 "ba1982ca_d913_4372_a876d2c629a3da01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterPlateRemoved") { // }} "" // {{{ 697 1 0 "c8d80340_50aa_42c3_99a4c45d2c5a2e55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 698 1 0 "7ca7dac8_386f_4d72_a80c56436e8d337a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_FilterPlateRemoved(DeviceID, o_stepReturn); // }} "" // {{{ 699 1 0 "7815e103_9108_40ec_8c501ab868674b02" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 700 1 0 "7fab13f9_e6cb_4d15_9c7359f69f1452eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 701 1 0 "ba1982ca_d913_4372_a876d2c629a3da01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 702 1 0 "a8bdabef_328d_4914_85c9d5a5e206e280" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 703 1 0 "d93f150d_eae1_437f_a22a3b0c4c9072e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 704 1 0 "df5f2b51_da1c_47c3_83076cfc5952018e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Flush") { // }} "" // {{{ 705 1 0 "ebd897c5_30b8_4f3b_9955cc2c076a2cec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 706 1 0 "8a5b6ab5_73a5_448f_97d7f2f80f295781" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 707 1 0 "7618744c_4ba2_44a3_af152e17b8f23a82" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 708 1 0 "0b45dbd2_d2ac_4bbc_b063c7256c9e2f37" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 709 1 0 "7ebe8a95_b1cb_40d0_9bbf0caa753020ff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Flush(DeviceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn); // }} "" // {{{ 710 1 0 "f4745c1d_3edb_4f49_9389682fd5db4746" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 711 1 0 "84a474ac_82c0_447e_853e8a0e803cdc9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 712 1 0 "df5f2b51_da1c_47c3_83076cfc5952018e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 713 1 0 "d93f150d_eae1_437f_a22a3b0c4c9072e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 714 1 0 "117f1e32_da28_4bc8_ad90f5a4f2bef282" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 715 1 0 "467d4218_0310_4b7c_a0b5c6ba53779408" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetContainerCalibration") { // }} "" // {{{ 716 1 0 "8399e7aa_cf6e_40a4_94cbfd345e14133a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 717 1 0 "1b0cf945_ddeb_4f68_ad8567b71c28ba9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 718 1 0 "49eec349_8ea2_4006_8740931d862a8cc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetContainerCalibration(DeviceID, SourceID, CapacityVolume, EmptyReading, FullReading, CalibrationDate, o_stepReturn); // }} "" // {{{ 719 1 0 "c87d301f_8a12_4619_b911ef3098a17d58" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 720 1 0 "7e693f5e_19bf_4fe8_93ae99fb04f02aa3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CapacityVolume = StrFStr(CapacityVolume); // }} "" // {{{ 721 1 0 "8d684024_7a1e_41a0_aff0fbb060f288c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" EmptyReading = StrIStr(EmptyReading); // }} "" // {{{ 722 1 0 "e403fc76_66e2_4138_a91ad409fba41579" "{C1F3C015-47B3-4514-9407-AC2E65043419}" FullReading = StrIStr(FullReading); // }} "" // {{{ 723 1 0 "a338088c_aba6_4925_9499261419f3fd32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CapacityVolume, EmptyReading, FullReading, CalibrationDate, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 724 1 0 "467d4218_0310_4b7c_a0b5c6ba53779408" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 725 1 0 "117f1e32_da28_4bc8_ad90f5a4f2bef282" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 726 1 0 "28cc7be8_7ef9_43fd_a8b86cc9f0a88a77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 727 1 0 "883d189a_5580_49b9_92fa9f7ea0b841bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetHeaterStatus") { // }} "" // {{{ 728 1 0 "c3c00992_49fa_4e7a_930d860185676008" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 729 1 0 "a566cb57_a308_4f8d_ab4f730e5a7dcad6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Reset"), blnReset); // }} "" // {{{ 730 1 0 "6c9f1bfd_e7d9_49a3_9ffc43f57d0b87c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetCurrentHeaterStatus(DeviceID, blnReset, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, o_stepReturn); // }} "" // {{{ 731 1 0 "4e871da2_7414_4d04_af1133edc74f8ceb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 732 1 0 "17cbeaea_77c3_429f_852469beae65bff2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CurrentEvaporatorTemperature = StrFStr(CurrentEvaporatorTemperature); // }} "" // {{{ 733 1 0 "99e68adc_1ab2_44c2_99bb0d0791bb4b03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CurrentGasTemperature = StrFStr(CurrentGasTemperature); // }} "" // {{{ 734 1 0 "19ba4b88_434c_4874_adfb9c3ce28707c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Heating = StrIStr(Heating); // }} "" // {{{ 735 1 0 "8bfee3ed_2dfd_4096_95a3693ae02cb98b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 736 1 0 "883d189a_5580_49b9_92fa9f7ea0b841bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 737 1 0 "28cc7be8_7ef9_43fd_a8b86cc9f0a88a77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 738 1 0 "6161ab17_f584_4948_917386b1caf60999" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 739 1 0 "9f1343e7_8811_4e80_a8d30414ee14e3c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetHeaterRange") { // }} "" // {{{ 740 1 0 "ff106776_2ea1_4be4_bf299c1e9f4d6812" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 741 1 0 "d35c7d7b_4e20_4729_898cf76f032dbd77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Reset"), blnReset); // }} "" // {{{ 742 1 0 "eac04ccb_1d2f_4e47_a38e27549db3d0f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetHeaterTemperatureRange(DeviceID, blnReset, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, o_stepReturn); // }} "" // {{{ 743 1 0 "7e058389_5584_400d_af8f7683d9c64549" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 744 1 0 "cef6dc8b_b0ab_4b67_80965a20bad984a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumEvaporatorTemperature = StrFStr(MinimumEvaporatorTemperature); // }} "" // {{{ 745 1 0 "e95a4014_66ab_4bd9_9396f43fb303387c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumEvaporatorTemperature = StrFStr(MaximumEvaporatorTemperature); // }} "" // {{{ 746 1 0 "82d2e7b9_6b0f_4659_b3c4af2260f72b93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumGasTemperature = StrFStr(MinimumGasTemperature); // }} "" // {{{ 747 1 0 "9d086c63_6438_4455_839b70d859d33023" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumGasTemperature = StrFStr(MaximumGasTemperature); // }} "" // {{{ 748 1 0 "1c25f8f9_a087_4d7d_b537d06915cf733a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TargetTemperature = StrFStr(TargetTemperature); // }} "" // {{{ 749 1 0 "e0990ab5_662a_4046_a221118108390ad1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Heating = StrIStr(Heating); // }} "" // {{{ 750 1 0 "f32ac914_9488_4849_9b505cfae76c21a4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, Translate(""), Translate(""), id); // }} "" // {{ 751 1 0 "9f1343e7_8811_4e80_a8d30414ee14e3c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 752 1 0 "6161ab17_f584_4948_917386b1caf60999" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 753 1 0 "cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 754 1 0 "3be8b4d4_175f_4ea5_8a5c403023c23804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetPressureReadings") { // }} "" // {{{ 755 1 0 "d6ee9000_e96e_43ee_be294bac2de3cebd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 756 1 0 "62c2838f_1e9c_4f50_a8986bd6ab2e5735" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetPressureSensorReadings(DeviceID, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, o_stepReturn); // }} "" // {{{ 757 1 0 "9202b3b4_73ed_457a_8a0eb740d92668eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 758 1 0 "49fdda2e_2786_49cf_bbf53a56bb6cf951" "{C1F3C015-47B3-4514-9407-AC2E65043419}" InputPressureSensor = StrFStr(InputPressureSensor); // }} "" // {{{ 759 1 0 "5b345de1_5fff_4ef5_b48fac2958608067" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ManifoldPressureSensor = StrFStr(ManifoldPressureSensor); // }} "" // {{{ 760 1 0 "5083be24_6502_40dc_94e99eb7e72397de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HighPressureSensor = StrFStr(HighPressureSensor); // }} "" // {{{ 761 1 0 "c5d4f5bc_5388_4cac_a5c92cce84c5358c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LowPressureSensor = StrFStr(LowPressureSensor); // }} "" // {{{ 762 1 0 "93af4507_f837_4e4d_bd0cfa9d8f20db45" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 763 1 0 "3be8b4d4_175f_4ea5_8a5c403023c23804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 764 1 0 "cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 765 1 0 "8eb4fcd2_8586_4fdc_9eaa231938c2491c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 766 1 0 "fb5f809e_bea3_4152_8c23efc086a3f4c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetTemperatureRange") { // }} "" // {{{ 767 1 0 "04868a2f_2244_4262_b16ed3464405a2c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 768 1 0 "ac4b978a_8b0e_48c8_bfcc2cb81ada8852" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetTemperatureRange(DeviceID, MinimumTemperature, MaximumTemperature, o_stepReturn); // }} "" // {{{ 769 1 0 "878c4de8_f440_43d6_aa9a22d5f30c96bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 770 1 0 "9643b7dd_1445_4981_82306a0204482dcd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumTemperature = StrFStr(MinimumTemperature); // }} "" // {{{ 771 1 0 "5fb79249_c2be_45bc_a99aecb05a4cef34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumTemperature = StrFStr(MaximumTemperature); // }} "" // {{{ 772 1 0 "57512d47_ace9_4c17_a0287a31498292bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumTemperature, MaximumTemperature, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 773 1 0 "fb5f809e_bea3_4152_8c23efc086a3f4c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 774 1 0 "8eb4fcd2_8586_4fdc_9eaa231938c2491c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 775 1 0 "3f6b43d7_b3e1_4516_9a607047551e5f6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 776 1 0 "6be26021_e618_492e_8a3a5f94a52da0f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetVacuumStatus") { // }} "" // {{{ 777 1 0 "4db40245_36cd_40c8_b0602871bedce402" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 778 1 0 "cdd4bed1_2257_47d3_bb32dfb51dd99311" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetVacuumStatus(DeviceID, VacuumActive, o_stepReturn); // }} "" // {{{ 779 1 0 "434c4447_ccaa_4ae8_b5332ea4a5247979" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 780 1 0 "2758aebe_4437_4436_9ecd66602ecc20ea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" VacuumActive = StrIStr(VacuumActive); // }} "" // {{{ 781 1 0 "1a22fa96_1f2a_4efb_8d4d1070f05128b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, VacuumActive, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 782 1 0 "6be26021_e618_492e_8a3a5f94a52da0f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 783 1 0 "3f6b43d7_b3e1_4516_9a607047551e5f6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 784 1 0 "1fae7e92_6b1f_4f2a_8504e8aba7fe0846" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 785 1 0 "18c78d3a_83f1_4e2a_9721dc575c326856" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Initialize") { // }} "" // {{{ 786 1 0 "18e9c18e_3415_4f68_b3216e3a2bb3a082" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 787 1 0 "5335daba_8a63_418b_8286e19dbc73285e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Initialize(DeviceID, o_stepReturn); // }} "" // {{{ 788 1 0 "e9ab19e3_4828_4ead_93cb698560e3faff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 789 1 0 "67b12292_2128_495d_af7839b207477794" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 790 1 0 "18c78d3a_83f1_4e2a_9721dc575c326856" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 791 1 0 "1fae7e92_6b1f_4f2a_8504e8aba7fe0846" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 792 1 0 "d96ac0b7_1237_4603_ad86dfe4672ef89a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 793 1 0 "0addb922_82a5_48e4_bf52eeb97ac93f2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_InitializeWithParameters") { // }} "" // {{{ 794 1 0 "1c9e6c43_c0a4_4fa5_96eff1d2638b4426" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 795 1 0 "a9676aeb_9a8e_4f87_866088fd8da32782" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Smart"), Smart); // }} "" // {{{ 796 1 0 "b0f5b856_a01f_4937_bce0d90f8e48a0bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 797 1 0 "3d105105_b5a2_42bf_9008c50dfb529abf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("VacuumRunTime"), VacuumRunTime); // }} "" // {{{ 798 1 0 "1b067bb0_12d6_47c9_b86eb44ca7ac70a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 799 1 0 "abffb784_24c3_4278_9404e88b2a184ec3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 800 1 0 "7f31c229_eea4_4ebc_918ad520b4e80270" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 801 1 0 "0addb922_82a5_48e4_bf52eeb97ac93f2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 802 1 0 "d96ac0b7_1237_4603_ad86dfe4672ef89a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 803 1 0 "9e52a7cb_3167_4057_8d24d034c837de21" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 804 1 0 "5875c2d2_c94b_4860_9be1bc9f16bd64b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_SetSourceConfiguration") { // }} "" // {{{ 805 1 0 "77c0d7cc_1c53_47b5_af15f1eb5743701e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 806 1 0 "1150d6cb_b379_4fab_8bf98a17ac6ed92c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_SetSourceConfiguration(DeviceID, o_stepReturn); // }} "" // {{{ 807 1 0 "2ba32cb4_0177_497e_9a7f398e17134a01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 808 1 0 "a2b6bb52_3165_4bb9_986611d0b8594d1c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 809 1 0 "5875c2d2_c94b_4860_9be1bc9f16bd64b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 810 1 0 "9e52a7cb_3167_4057_8d24d034c837de21" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 811 1 0 "cf140f83_9405_4c31_aac2bda7e3c3644d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 812 1 0 "125ed949_ace4_48a0_a45208b5a26a9545" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetSourceConfiguration") { // }} "" // {{{ 813 1 0 "24cc9f9b_b984_4405_80b21f8bbad2c171" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 814 1 0 "105846b6_bda2_49d7_bb68c38e99c676ce" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetSourceConfiguration(DeviceID, o_stepReturn); // }} "" // {{{ 815 1 0 "8fd730db_f3ad_4187_819383f962b15dec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 816 1 0 "d5402a0c_e7d8_4021_98f2bc49164541bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 817 1 0 "125ed949_ace4_48a0_a45208b5a26a9545" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 818 1 0 "cf140f83_9405_4c31_aac2bda7e3c3644d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 819 1 0 "f0e280e8_46c7_4f0f_bce33a9d98578e01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 820 1 0 "656f66da_3ff6_4ceb_b3958dda3e826289" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_MeasureEmptyContainer") { // }} "" // {{{ 821 1 0 "23e6b66b_51c5_44d2_8107b570ab035bb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 822 1 0 "c791ded2_4daa_4097_811ad01cd9dbd85e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 823 1 0 "d4c8df90_fdb5_4fb4_a5ffe9e46525c9a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_MeasureEmptyContainer(DeviceID, SourceID, SensorReading, o_stepReturn); // }} "" // {{{ 824 1 0 "6766bf7d_aaa7_44dd_beb7bd1925733781" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SensorReading = StrIStr(SensorReading); // }} "" // {{{ 825 1 0 "f566d5c3_5839_4a53_aaa0e7e76d6a96d6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 826 1 0 "ca746d4d_adf9_4d6d_b0172f1cb9e3cefe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(""), Translate(""), id); // }} "" // {{ 827 1 0 "656f66da_3ff6_4ceb_b3958dda3e826289" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 828 1 0 "f0e280e8_46c7_4f0f_bce33a9d98578e01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 829 1 0 "5be53554_4034_4654_a74514eb0d84e4a0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 830 1 0 "ce68b054_3aea_4f0f_9742872cca60f368" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_MeasureFullContainer") { // }} "" // {{{ 831 1 0 "7ad49fa3_f8ed_4826_8c29ea54aff99447" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 832 1 0 "636296bf_cd25_4c6e_a97120b96714e0a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 833 1 0 "1025d7d1_0cb5_4c03_93a47206d7a73279" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_MeasureFullContainer(DeviceID, SourceID, SensorReading, o_stepReturn); // }} "" // {{{ 834 1 0 "14a2a705_9362_44f9_aacee14e4189bc2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SensorReading = StrIStr(SensorReading); // }} "" // {{{ 835 1 0 "64c67d08_dac7_49dc_8a3082c4658649d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 836 1 0 "08dbfd92_e2cd_4c53_8d8b8afb8f41b76a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(""), Translate(""), id); // }} "" // {{ 837 1 0 "ce68b054_3aea_4f0f_9742872cca60f368" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 838 1 0 "5be53554_4034_4654_a74514eb0d84e4a0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 839 1 0 "9e79226f_dd2d_49f1_9ab8ca9ddc07f66d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 840 1 0 "52fa4642_56e3_46b8_a5170d58a3d45e6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Prime") { // }} "" // {{{ 841 1 0 "d59e0e58_e6a4_49dc_b79c3b224f9250f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 842 1 0 "81800d57_5b2e_4f60_80fb02f54c6d898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 843 1 0 "6f11abee_b07f_4e3a_a91a2bb6132b9346" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 844 1 0 "65f68e8f_a3f8_4c0e_b02af46ef0830a94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 845 1 0 "92c62640_1748_47f5_a5b2d63033fab0fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 846 1 0 "bce1d424_198d_4a66_bb5cfcef4223a4c1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Prime(DeviceID, SourceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn); // }} "" // {{{ 847 1 0 "1d0fc35a_1e8f_492f_8115484ef5e4094c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 848 1 0 "7b33278e_8337_43df_80fb1df2dc8d7e27" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 849 1 0 "52fa4642_56e3_46b8_a5170d58a3d45e6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 850 1 0 "9e79226f_dd2d_49f1_9ab8ca9ddc07f66d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 851 1 0 "90d403df_555f_4782_bc0e9655c9dda244" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 852 1 0 "5d03c560_13d7_4f4a_97c5fcb059f5d281" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ProcessFilterToCollection") { // }} "" // {{{ 853 1 0 "327328cb_2c07_4cff_b99aff475bf220b0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 854 1 0 "c67ca153_084e_49de_aa07c55210f0743c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ControlPoints"), ControlPoints); // }} "" // {{{ 855 1 0 "3ccb3a1f_4958_435b_b896ebc512029a6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("ReturnPlate"), ReturnPlate); // }} "" // {{{ 856 1 0 "d9d5add8_e82e_4761_b5b96d5f19ec1723" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToCollectionPlate(DeviceID, ControlPoints, ReturnPlate, o_stepReturn); // }} "" // {{{ 857 1 0 "952f2d23_1b1e_4ff3_b0306759a52e52a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 858 1 0 "8d9318f1_ab21_410d_a9bfb449f75064ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 859 1 0 "5d03c560_13d7_4f4a_97c5fcb059f5d281" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 860 1 0 "90d403df_555f_4782_bc0e9655c9dda244" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 861 1 0 "8e0266d7_a3cc_479c_b67864f9bf0a850e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 862 1 0 "8d5a05ba_1847_47e1_9c2f5a7b692a6bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ProcessFilterToWaste") { // }} "" // {{{ 863 1 0 "45a60cc8_74a9_4d7c_9eae47c478baa5c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 864 1 0 "1549fe1a_4e94_418f_bb409f1556ef9241" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ControlPoints"), ControlPoints); // }} "" // {{{ 865 1 0 "6a1fdb1f_ef59_4c6d_998478bb54397381" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("ReturnPlate"), ReturnPlate); // }} "" // {{{ 866 1 0 "74579c6b_27e5_47a2_9358294506ae9b62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 867 1 0 "fbfbbfb6_9858_4eee_aecb1e386ef2ee6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 868 1 0 "e8ddd588_e12c_4e6a_9318d0626a183210" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToWasteContainer(DeviceID, ControlPoints, ReturnPlate, WasteContainerID, DisableVacuumCheck, o_stepReturn); // }} "" // {{{ 869 1 0 "104d821e_df7b_4d35_9358fdbad381b0c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 870 1 0 "930b1fd7_1382_4dd3_bec3f722282383d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 871 1 0 "8d5a05ba_1847_47e1_9c2f5a7b692a6bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 872 1 0 "8e0266d7_a3cc_479c_b67864f9bf0a850e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 873 1 0 "12fe0846_bf72_4286_8bd87488438262ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 874 1 0 "88ca5064_cc0c_42e8_8cf1b70855183b72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Disconnect") { // }} "" // {{{ 875 1 0 "469fd42b_7a31_4d98_91efb31d12064e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 876 1 0 "a37b4aa9_5d2f_4e3a_8134f806b1cc7204" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 877 1 0 "86edebb2_72b8_49f4_84f46c72b1cacaaa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 878 1 0 "d8835a8b_64ef_433a_8ca5a0a1a7302e05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 879 1 0 "88ca5064_cc0c_42e8_8cf1b70855183b72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 880 1 0 "12fe0846_bf72_4286_8bd87488438262ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 881 1 0 "0f50bc52_c930_4613_a737fe8df81950f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 882 1 0 "a4cfb4d0_9450_4bea_a67986a410d3d0ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_SaveContainerCalibration") { // }} "" // {{{ 883 1 0 "37f47b7e_5737_474b_907e35429bd3b21d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 884 1 0 "03cb3efd_4e78_47b4_8c863f235820287b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 885 1 0 "b4a3f09e_102f_45d2_a582493e7a8a228f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 886 1 0 "dce24d9b_3180_4f67_ab31767613c972ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 887 1 0 "a4cfb4d0_9450_4bea_a67986a410d3d0ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 888 1 0 "0f50bc52_c930_4613_a737fe8df81950f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 889 1 0 "1c67aaeb_23b3_4adc_8b6d8285f92b9619" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 890 1 0 "49d34248_b422_4716_b7759002c58bacb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StartContainerCalibration") { // }} "" // {{{ 891 1 0 "1a03095a_5902_4617_8f24e5d961eb85be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 892 1 0 "51b0d6df_b187_4cef_88ea5af60e98888f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 893 1 0 "c754fc8f_8a46_4c44_9ac4283328bd7a51" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Volume"), Volume); // }} "" // {{{ 894 1 0 "25291ac1_062d_4046_bf617e60aa36b67c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StartContainerCalibration(DeviceID, SourceID, Volume, o_stepReturn); // }} "" // {{{ 895 1 0 "bfce4774_8c8b_4403_8e0b05cc4d59500b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 896 1 0 "bc1476ec_35b7_4ec9_989c3db696569d39" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 897 1 0 "49d34248_b422_4716_b7759002c58bacb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 898 1 0 "1c67aaeb_23b3_4adc_8b6d8285f92b9619" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 899 1 0 "dbd9907a_199c_4651_90fe7cbb03cace83" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 900 1 0 "d748a994_8826_4dce_8d07e63e712b8463" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StartContainerCalibration") { // }} "" // {{{ 901 1 0 "6443322c_5eae_4730_a5933771d05f74fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 902 1 0 "0adc10ee_e236_40cc_851240df83158a48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 903 1 0 "661975a0_0aef_4017_bdd063beab2d6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Seconds"), Seconds); // }} "" // {{{ 904 1 0 "0e7caea8_5fcb_4b6c_954eb1ae00f391a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 905 1 0 "b681e1eb_fcbe_49e6_9116e45dfa6449ea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StartVacuum(DeviceID, WasteContainerID, Seconds, o_stepReturn); // }} "" // {{{ 906 1 0 "82d37b5c_3c66_495e_9db5a04e780cef4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 907 1 0 "182c0a15_8dbc_4c35_add3bac6dba81098" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 908 1 0 "d748a994_8826_4dce_8d07e63e712b8463" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 909 1 0 "dbd9907a_199c_4651_90fe7cbb03cace83" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 910 1 0 "4dfdb03a_1a13_4215_be00ca55de734fb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 911 1 0 "1d06fa20_af8b_41f5_b3f3daa03a904ebd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StopVacuum") { // }} "" // {{{ 912 1 0 "54fa31f5_5b7c_4668_927dc6f87a39b99e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 913 1 0 "0bf5dd1e_2e18_477b_adee0722aee70510" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StopVacuum(DeviceID, o_stepReturn); // }} "" // {{{ 914 1 0 "71f9a311_dfa0_4d62_8963c5c0ad21b5f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 915 1 0 "fe23d082_725d_444c_83290693ee1daf6a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 916 1 0 "1d06fa20_af8b_41f5_b3f3daa03a904ebd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 917 1 0 "4dfdb03a_1a13_4215_be00ca55de734fb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 918 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 919 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 920 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Initialize") { // }} "" // {{ 921 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 922 1 0 "efe73491_e5b4_499e_9b3f298c8b7a6398" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 923 1 0 "5c0fe710_4afe_4b11_bf186cfe8dc87978" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{ 924 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 925 1 0 "110af9db_52cf_4a40_94724a7476c48d86" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn); // }} "" // {{{ 926 1 0 "af9bf513_7c00_47bf_aee50c7cdb333b5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Initialize: "), o_stepReturn); // }} "" // {{{ 927 1 0 "cf0a8758_8a16_429a_97f320a142945224" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 928 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 929 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StartTempControl") { // }} "" // {{ 930 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 931 1 0 "de87c5cd_92f6_45a8_9ebd6fe71ac65dbc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 932 1 0 "26949b4a_2c44_4548_8de048c4f48bd98d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 933 1 0 "8ae03ef4_8584_4957_a32601dc8599dadf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn); // }} "" // {{{ 934 1 0 "934ba752_5ec3_489b_ae5a40dd1ea20440" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Start Temperature Control:"), o_stepReturn); // }} "" // {{{ 935 1 0 "a3528747_6990_4387_8839b01b71c3b754" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 936 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 937 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 938 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_SetTarget") { // }} "" // {{ 939 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 940 1 0 "55e81697_10a3_42fb_8777236a132ff0b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 941 1 0 "0177c1a2_7380_4683_94ff93e2ed1299b2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 942 1 0 "15559e31_3f7a_4336_9cabca6758b7c253" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("TargetTemperature"), TargetTemperature); // }} "" // {{ 943 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 944 1 0 "0dcffa9d_ea82_418b_be95240c1bfd0d77" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn); // }} "" // {{{ 945 1 0 "e9b0b663_7dd3_4e55_b206572d2c8a92c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Set Target:"), o_stepReturn); // }} "" // {{{ 946 1 0 "08ecb91c_e9c8_4c61_aca2c1f89fd97bab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 947 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 948 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StopTemperatureControl") { // }} "" // {{ 949 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 950 1 0 "b67518d4_e443_4a8f_947e8c457680c63e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 951 1 0 "045fda52_2303_4244_833066fb0005c21b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{ 952 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 953 1 0 "1c8947fe_b7a1_455a_94e7672ad3593b08" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn); // }} "" // {{{ 954 1 0 "285287f8_a3f9_43f0_9799c3ad98e59b9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco Stop Temperature Control:"), o_stepReturn); // }} "" // {{{ 955 1 0 "88d1a80e_0aa9_4314_ba83bc772f71a589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 956 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 957 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Terminate") { // }} "" // {{ 958 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 959 1 0 "c963c353_41bc_4f4a_b74a666b28831950" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("StopAllDevices"), StopAllDevices); // }} "" // {{ 960 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 961 1 0 "ea2ceb94_04fa_4204_96db2caf6871231f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn); // }} "" // {{{ 962 1 0 "cd495cf5_43ff_4b30_b0baa1f2cd96cf0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Terminate:"), o_stepReturn); // }} "" // {{{ 963 1 0 "bcce43cd_2b64_4caf_89bef8978a011dc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 964 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 965 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 966 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 967 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_Initialize") { // }} "" // {{ 968 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 969 1 0 "d824843f_bf44_4e8b_bb434b50a8b65716" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 970 1 0 "45b9f513_7eaf_4e63_ae92391c28cf15b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 971 1 0 "7f058eec_3092_45ce_862c43a3e0853c7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 972 1 0 "56a4490f_902b_4043_8172466a64e332bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Simulate"), Simulate); // }} "" // {{ 973 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 974 1 0 "c44a492c_8123_465b_acd4ff374583777d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn); // }} "" // {{{ 975 1 0 "a62df2e9_44bb_4099_a4d0597fbf0705de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Initialize:"), o_stepReturn); // }} "" // {{{ 976 1 0 "de7bfb5a_b1fa_42ee_b461782a3c381af4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 977 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 978 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_MoveToPosition") { // }} "" // {{ 979 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 980 1 0 "3092ee64_df80_4e56_b3cdffc0827e3c2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 981 1 0 "4284a9cf_3ea6_42f5_ae1f62d82cd11ebe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Angle"), Angle); // }} "" // {{ 982 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 983 1 0 "5b44092b_0faa_47ae_8005717c87a0f334" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn); // }} "" // {{{ 984 1 0 "4d912417_89ed_44f2_941bfb44efed0e2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Move to Position:"), o_stepReturn); // }} "" // {{{ 985 1 0 "0540bb67_399d_468d_853dd6ca4bb1c285" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 986 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 987 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 988 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 989 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "moveSequence") { // }} "" // {{{ 990 1 0 "6e83eea3_8863_4ca0_9ff603380f0dc4d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("inputSequence"), inputSequence); // }} "" // {{{ 991 1 0 "6b8903c6_6977_458a_8409f93724089454" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 992 1 0 "77d9a84d_5987_4b3c_a76757ce15a19302" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 993 1 0 "13c73535_4a98_49e2_ba1a02c30f02035b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 994 1 0 "a33ebddb_88d8_4440_9a78132ed62d97f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, inputSequence, seq); // }} "" // {{{ 995 1 0 "1dcc4914_aa2f_439e_8a2f431687c33852" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqFirstPosition = SeqGetPositionId(seq); // }} "" // {{{ 996 1 0 "01f7bf35_3538_441d_98904fa827b05e68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 997 1 0 "a37851fe_b9d0_42fa_9ccca7dd7b352a9c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{{ 998 1 0 "fe9d84b8_86ec_4552_b187147351886cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqSecondPosition = SeqGetPositionId(seq); // }} "" // {{{ 999 1 0 "5fa8b88a_cf88_49e1_8cb574503dc60e56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(seqFirstPosition, seqSecondPosition); // }} "" // {{{ 1000 1 0 "e590c4e1_91dd_41c0_82a254d4134fb734" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("First check"), Translate("Second check")); // }} "" // {{{ 1001 1 0 "2127d6de_e8bd_455a_88ad20e73b767061" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1002 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1003 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1004 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1005 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1006 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_measure") { // }} "" // {{{ 1007 1 0 "7c314622_d15c_42aa_a88b3d71caa33d0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1008 1 0 "9f15b042_95cd_4241_9b6262d3a4979ca7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1009 1 0 "34064a8d_5567_4fe5_b4349d0d061b9a1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1010 1 0 "0e34e118_df68_49fa_b3b9228d63deb6d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 1011 1 0 "025eece8_72cd_4190_a092d806fbab65a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 1012 1 0 "269c134a_bc59_4578_8da8bb7559f234a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 1013 1 0 "36ec28c1_360b_46e9_9243c01dbd3874e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 1014 1 0 "58445956_3204_41a3_a7acb03aaf25ccd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 1015 1 0 "465c2002_18cb_4ff2_9df9e423dbc6837c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1016 1 0 "40682224_6d73_4a7c_a2e33641f1768d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 1017 1 0 "e43a57a6_d83b_41d1_adf33f8f77ca7bc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 1018 1 0 "12a6bd74_f75b_44d1_b6f7c26d279d9610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 1019 1 0 "71b8f8bc_65c1_4e97_ab6eae03040f51dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 1020 1 0 "a8ca8abd_aa7a_412c_be527eb4e81efcb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1021 1 0 "a8647b92_b569_4a75_99a5333c438b3a23" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1022 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1023 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1024 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1025 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate_Dyn") { // }} "" // {{{ 1026 1 0 "de6a4eb0_04e1_47fc_86e27009d71152cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 1027 1 0 "5f551457_7af9_4567_bceacdf0018c9c38" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 1028 1 0 "60ee9fa5_c549_43a9_bbccdb0b14819583" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1029 1 0 "2211f515_9e69_4a1c_9603becd6fd866cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1030 1 0 "8449e1f4_6561_4b51_b91aa14423565eb2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 1031 1 0 "4429d4bb_e2fb_451f_8558de74111dbe3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Variance"), Variance); // }} "" // {{{ 1032 1 0 "a918fadc_db95_4e4b_9c445a903a59f17a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 1033 1 0 "7611bb65_5e77_408e_98384f0fec68e958" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 1034 1 0 "74418f44_640a_4b4b_88234a74841f1dbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate Dynamically"), o_stepReturn); // }} "" // {{{ 1035 1 0 "13218e03_9ac9_44ed_8af864397e865cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1036 1 0 "6257eb41_ce75_45b1_bea89bce20631222" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1037 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1038 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1039 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1040 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate") { // }} "" // {{{ 1041 1 0 "c7a809a1_1dc8_47c2_a8006c785355c50e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 1042 1 0 "27f7a889_0250_42a5_87699d0b0d52d36b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 1043 1 0 "b624fe53_a0c2_44e7_92eb12cc744fa799" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1044 1 0 "9f642188_0286_4e80_81cb485423a155c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1045 1 0 "c7530a85_7f29_4069_9a8e94318ffec0d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 1046 1 0 "849206a3_ea5c_4440_a08cdbcb81354e94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 1047 1 0 "9f9ab695_0d32_4bf4_bf5a4b0207a2c780" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 1048 1 0 "c1db8c11_4c25_4c9c_b424e06999583f09" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1049 1 0 "29e43762_b009_40ad_b93a5ac2372cca00" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1050 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1051 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1052 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1053 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Enable_Extended_Log") { // }} "" // {{{ 1054 1 0 "1791ad6e_39b2_4442_8b4470d0fc5497fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn); // }} "" // {{{ 1055 1 0 "b22a7836_ed52_4e9d_9e5df5babf8fa142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1056 1 0 "d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1057 1 0 "8d68d8f1_5b56_488b_a0676b4b50a35221" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1058 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1059 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1060 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1061 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Get_Last_Error") { // }} "" // {{{ 1062 1 0 "11bf85a6_3df2_4245_839282a900f3db71" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1063 1 0 "2c0b2633_5d81_41a1_aa90c51eb8d9d23d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn); // }} "" // {{{ 1064 1 0 "4d60f4e2_175b_4a4b_9b0bfb0f63211da0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Get Last Error"), o_stepReturn); // }} "" // {{{ 1065 1 0 "76df37d9_5928_4269_937630b417ad9a11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1066 1 0 "a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1067 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1068 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1069 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1070 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Initialize") { // }} "" // {{{ 1071 1 0 "a37d4042_a872_4da0_bf60a51312d5cc22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1072 1 0 "77530965_cb1f_4563_a1d848bb4faa3bb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1073 1 0 "295c3bab_f7f4_47d0_8075cf658ee0436f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn); // }} "" // {{{ 1074 1 0 "69f13066_cc39_48aa_85b093e1bc056907" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrIStr(o_stepReturn2); // }} "" // {{{ 1075 1 0 "3a9d7ad8_b8d0_45ee_9004e77ed5fbe471" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1076 1 0 "178d10c9_fe18_479a_b3e7922f87282612" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 1077 1 0 "66935de2_85a3_4ed0_95cddf772b15fb48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1078 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1079 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1080 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1081 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Measure_Dynamically") { // }} "" // {{{ 1082 1 0 "69eede79_0b96_4634_a4ed7995201d9b7d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1083 1 0 "6a018697_b8f4_4088_b8c650a2f028d197" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Precision"), Precision); // }} "" // {{{ 1084 1 0 "dfbe88b8_1dda_42ac_8175799123584051" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1085 1 0 "3ef27a25_aec7_4d5b_beb743b713c7526e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1086 1 0 "74a87116_8260_466d_a78e98fe0544a891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 1087 1 0 "425d37a5_2d55_4b09_a607303c754935db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure_Dynamically(ModuleID, Temperature, Precision, Timeout, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 1088 1 0 "0df3fc00_0550_45fa_b224d60b9bcd06c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 1089 1 0 "26992ae0_59eb_4678_ae304b460a7034db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 1090 1 0 "3beda7c9_5769_4578_b31431d2bab6d131" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 1091 1 0 "141952da_a201_4e85_9e446006849a95bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 1092 1 0 "f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1093 1 0 "5487a4f7_a9f8_448e_98b2cb671cb9c069" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 1094 1 0 "c8e7c221_d1e4_4818_b3e077f9aeb6a0a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 1095 1 0 "611376c4_8c68_46f2_8947cec12bb313f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 1096 1 0 "e113c0e5_7ab9_4244_86b73e7f24d2bfc8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 1097 1 0 "6286c2d7_a138_4844_bc77fd8a40a6a486" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1098 1 0 "39fd3518_8a14_43a1_8d41240f577c94eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1099 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1100 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1101 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1102 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Battery") { // }} "" // {{{ 1103 1 0 "c83f58ac_8db7_4477_bed8e57c9c784b8a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1104 1 0 "4b343bdb_fe40_4daa_8382b1265575e03a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn); // }} "" // {{{ 1105 1 0 "98f43381_9679_4d9f_b3d1238ed4c1d0c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1106 1 0 "b95371f0_7532_4426_b980d9824bf1d2b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ChargeCounter = StrIStr(ChargeCounter); // }} "" // {{{ 1107 1 0 "15324eca_50a4_4530_be7f08cdef0e6514" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BatteryCondition = StrIStr(BatteryCondition); // }} "" // {{{ 1108 1 0 "e694349e_13ad_46c1_b18f5eb4688f510e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ActualCharge = StrIStr(ActualCharge); // }} "" // {{{ 1109 1 0 "279c0c8e_1d53_437f_ac5e74b0ccffc7a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1110 1 0 "92db84c4_89c2_4902_819012506538681c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate("0"), Translate("0"), Translate("0"), Translate("0"), id); // }} "" // {{ 1111 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1112 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1113 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1114 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Calibration") { // }} "" // {{{ 1115 1 0 "250cbb57_43e2_4ca3_8ac97a4f8a848ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1116 1 0 "e2f361b4_fb8d_4bf8_b53c05720323632b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ProbeNumber"), ProbeNumber); // }} "" // {{{ 1117 1 0 "6e7357dd_030a_4f9d_b5cda736b409bbee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn); // }} "" // {{{ 1118 1 0 "aa859c68_b2ab_4304_9501a2d752587df6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowValue = StrFStr(pHLowValue); // }} "" // {{{ 1119 1 0 "7331e4fa_3e06_499a_84eed922b712aca5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowVoltage = StrFStr(pHLowVoltage); // }} "" // {{{ 1120 1 0 "3c2e720a_1c6e_4f09_afe077215aa438e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighValue = StrFStr(pHHighValue); // }} "" // {{{ 1121 1 0 "a9363a15_98fa_4a49_8451b25c27edea3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighVoltage = StrFStr(pHHighVoltage); // }} "" // {{{ 1122 1 0 "73007841_7490_489f_9c595a8e085e3a59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationTemperature = StrFStr(CalibrationTemperature); // }} "" // {{{ 1123 1 0 "49c841c4_b5cf_4ac7_9c2e87a2dc939210" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationOffset = StrFStr(CalibrationOffset); // }} "" // {{{ 1124 1 0 "d3535c95_47a6_46a6_80f73d15c4582508" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlope = StrFStr(CalibrationSlope); // }} "" // {{{ 1125 1 0 "a273e170_1488_4e16_884ae09c3a26d828" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio); // }} "" // {{{ 1126 1 0 "4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1127 1 0 "9ae40f13_d6cb_4a4e_9dc995de1da2d637" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Request Calibration Values"), o_stepReturn); // }} "" // {{{ 1128 1 0 "5aca9095_546e_4df5_b24364da04e44fe5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id); // }} "" // {{ 1129 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1130 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1131 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1132 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Probe_Data") { // }} "" // {{{ 1133 1 0 "04b155be_097f_4f2d_add1392fbf78b5f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1134 1 0 "c40a59cd_e266_4cc3_aa3dd3d526502930" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn); // }} "" // {{{ 1135 1 0 "306c68bb_ffd7_4233_b7f0c2c67678dfdf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1); // }} "" // {{{ 1136 1 0 "bbd1faef_5b8f_41ba_bf74a019b05da039" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2); // }} "" // {{{ 1137 1 0 "cb244d85_a14b_4bcb_ab81c5cdc38c6552" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3); // }} "" // {{{ 1138 1 0 "5476cf0c_49cc_4602_aec72872116d2e6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4); // }} "" // {{{ 1139 1 0 "6883841a_44f5_417f_8574566ed15ae444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), o_stepReturn); // }} "" // {{{ 1140 1 0 "fefec950_2bfa_429e_bdf791dc40dd0495" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1141 1 0 "0f6be956_31e3_4d1e_b232c4dc908ea6f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1142 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1143 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1144 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1145 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Technical_Data") { // }} "" // {{{ 1146 1 0 "3c80e1e2_a904_42ac_a3ddd5df5ca3a196" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1147 1 0 "8b2b24be_b84b_41b8_bd0f088f32554cb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 1148 1 0 "552e7bb6_cbdf_49ec_86ac28b54cae7f58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 1149 1 0 "1634fedb_a7e1_4130_ac1fb8d55f47b9e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HardwareNumber = StrIStr(HardwareNumber); // }} "" // {{{ 1150 1 0 "2cfb8725_b283_48b0_906a9741fe336744" "{C1F3C015-47B3-4514-9407-AC2E65043419}" PartNumber = StrIStr(PartNumber); // }} "" // {{{ 1151 1 0 "7b9a6dfa_9df8_40a8_9c0c39981dcf97e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Revision = StrIStr(Revision); // }} "" // {{{ 1152 1 0 "771c0483_6ea2_4299_81c7598839a5027b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SerialNumber = StrIStr(SerialNumber); // }} "" // {{{ 1153 1 0 "790984ff_e065_4212_a5c420f04d9f7e4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), o_stepReturn); // }} "" // {{{ 1154 1 0 "79aaa9cb_2db1_4f5d_8385023783e5cc82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1155 1 0 "371d6452_cf9d_4abe_9463f54ab7831231" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id); // }} "" // {{ 1156 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1157 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1158 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1159 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Voltage_Data") { // }} "" // {{{ 1160 1 0 "b6c0eb00_003a_45ed_9899c407d864455c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1161 1 0 "e4801131_30dc_4e2d_8ac9e80c0c13972c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Selector"), Selector); // }} "" // {{{ 1162 1 0 "ee48a65d_794b_411d_bb1668a267206d8b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn); // }} "" // {{{ 1163 1 0 "bf78a104_f3d4_45b6_a573a7219dcf05e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 1164 1 0 "ab32fbfb_2be2_4f6d_9c49def79adcfe31" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1165 1 0 "eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(""), Translate(""), id); // }} "" // {{ 1166 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1167 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1168 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1169 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 1170 1 0 "51fd11a2_c173_4d8a_be50512a820eb424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1171 1 0 "b1268215_064b_40bc_8b9e75cfc0edeac8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1172 1 0 "7665963b_aa9b_4a3c_ba522887f3b15ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1173 1 0 "8327c869_96c0_4394_9bf4c5b5c19f30d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1174 1 0 "5a5455ae_5598_4a29_8c5f621b0586ba79" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1175 1 0 "f534cbac_4de3_4425_85299c07c6ff73cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 1176 1 0 "12b0cc6a_4826_48ce_82c690ddf98441a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1177 1 0 "aee63add_2789_4971_b4867510d938caf6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1178 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1179 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1180 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1181 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Charge_Parameters") { // }} "" // {{{ 1182 1 0 "5e24703a_30cb_4538_aec7ba85b7c0d2a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1183 1 0 "31630603_a72b_4d8b_a21a501f5336c619" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Charge"), Charge); // }} "" // {{{ 1184 1 0 "41b8aa8b_7d8e_4351_ad9664e334fa00f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AutoCharge"), AutoCharge); // }} "" // {{{ 1185 1 0 "504d0d26_95ad_4181_a7c38162018496cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("AutoChargeLevel"), AutoChargeLevel); // }} "" // {{{ 1186 1 0 "576ecb10_c479_461f_9249f554f27e398b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn); // }} "" // {{{ 1187 1 0 "80503782_9e9a_4986_9e4bcdeac598c749" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Charge Parameters"), o_stepReturn); // }} "" // {{{ 1188 1 0 "ade249f5_6aa1_4939_90a22e6af0864e5e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1189 1 0 "4fb997db_4cdf_4b51_85bbb23941f19edb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1190 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1191 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1192 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1193 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Probe_Replacement_Date") { // }} "" // {{{ 1194 1 0 "eb0a7cc0_c83a_45a8_8bd6adbf05cadabe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1195 1 0 "c762429d_3619_4e70_9765fe207dab3d54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Probe"), Probe); // }} "" // {{{ 1196 1 0 "18bf75b8_9aa3_46d2_a3ad3bbab8c1e126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1197 1 0 "2b2bbaed_84c1_46d2_bd024b425aefa336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1198 1 0 "380453f0_b3e8_47ac_a06eb91552b3a11f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1199 1 0 "a8fcf799_ec41_4160_910a9c78e5395ae2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1200 1 0 "c95c2987_8098_48ed_9ad284801d556587" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Probe Replacement Date"), o_stepReturn); // }} "" // {{{ 1201 1 0 "4e986dcc_ee8e_4cc0_bb83628d0a0ec284" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1202 1 0 "d46fb139_6c48_4f2a_b09293a8a3509a12" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1203 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1204 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1205 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1206 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Shutdown") { // }} "" // {{{ 1207 1 0 "aec40299_6cef_4e16_ad88bccbdcae3b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1208 1 0 "c7715d80_e089_40ea_86fe6a446a2c9378" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Mode"), Mode); // }} "" // {{{ 1209 1 0 "212772c6_0ff7_41ef_9c35fb5828034d90" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn); // }} "" // {{{ 1210 1 0 "82055c44_b706_4c16_99b47c2a4ae600e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Shutdown"), o_stepReturn); // }} "" // {{{ 1211 1 0 "d76b0e51_c107_49cd_b6bcd25c44e4d066" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1212 1 0 "fbbaa73a_fa45_446d_8052e6e618fd2fad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1213 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1214 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1215 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1216 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Technical_Data") { // }} "" // {{{ 1217 1 0 "d6a005e1_4502_49d8_9a510afa4a2e833e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1218 1 0 "5ad112b0_da19_4b1b_a4649033defa7fef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 1219 1 0 "f4094e68_7940_4706_bae95f6277784476" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PartNumber"), PartNumber); // }} "" // {{{ 1220 1 0 "2b53f199_42d1_4808_a128c8ef4354e216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Revision"), Revision); // }} "" // {{{ 1221 1 0 "b5bf6715_e2e6_4e19_ad453dbb18396d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SerialNumber"), SerialNumber); // }} "" // {{{ 1222 1 0 "8cd5ff7f_9cb8_4f34_8afeb35175b47032" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 1223 1 0 "b60d9996_aa66_483d_b61518ffca638e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Technical Data"), o_stepReturn); // }} "" // {{{ 1224 1 0 "164f5289_e710_44eb_a1ea51e1622a7813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1225 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1226 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1227 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1228 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Trace_Level") { // }} "" // {{{ 1229 1 0 "dd6ba7d4_f5cc_4725_9776848c6e8343cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1230 1 0 "5a2c7ac9_8800_4926_96f26337aee59504" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1231 1 0 "88c51a62_4453_4cf5_ba0682a2cb1da767" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1232 1 0 "159aeb3e_3ed4_4ddc_a11cdfd939a7db7d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Trace Level"), o_stepReturn); // }} "" // {{{ 1233 1 0 "c3a5cc94_f346_4d04_a4be1fd04efbccc1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1234 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1235 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1236 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1237 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Sleep") { // }} "" // {{{ 1238 1 0 "153dc01b_be4b_403a_a40226aa4778c709" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1239 1 0 "a6f7384c_4c2e_4b3b_9682c00fb7a2f978" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn); // }} "" // {{{ 1240 1 0 "e82cf943_58b3_463e_a86afb9882353228" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Sleep"), o_stepReturn); // }} "" // {{{ 1241 1 0 "636ca48b_8789_40cc_8fb4dc35e8cbab54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1242 1 0 "5fb5b228_5342_414d_a548ac8dd5add837" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1243 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1244 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1245 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1246 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Terminate") { // }} "" // {{{ 1247 1 0 "b53cd271_035b_4870_961c552983b39351" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1248 1 0 "e133d234_4ccd_44cb_810d29742ee9f40e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn); // }} "" // {{{ 1249 1 0 "eb5a9614_5d18_44cd_83190a1d8eec2a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1250 1 0 "81b91833_cb16_43c5_a8935f9701536560" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1251 1 0 "add7dd5e_87e4_4ec1_a7b552234adc5d9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1252 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1253 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1254 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1255 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Wakeup") { // }} "" // {{{ 1256 1 0 "6b1d97c0_debd_402e_8c064a5c1fe48aca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1257 1 0 "09ffa3b4_530e_444f_943e5302e37f3fe0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn); // }} "" // {{{ 1258 1 0 "0d420182_40e4_43a8_872c5c81f7efa6d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1259 1 0 "f7bb0b0b_d222_43a7_b1b1236ab60e2847" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1260 1 0 "12251a91_a4ec_4a01_b041b503e2eef836" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1261 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1262 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1263 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1264 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Initialize") { // }} "" // {{{ 1265 1 0 "10713a72_dce4_482a_ad1d6d8db7bd210a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1266 1 0 "21f38719_99e7_4de4_bc16b312b6f57977" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1267 1 0 "75ac7c86_e474_45bc_8551fc9e302de4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 1268 1 0 "509760aa_ef16_454d_89cc23c0745d3c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 1269 1 0 "19e515a1_705c_45eb_b80e75767541c91a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1270 1 0 "a042f65b_875f_4b52_999c836815c84a6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1271 1 0 "f5fd2c44_2160_43fa_be88382bc9e0ff0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1272 1 0 "f2c8bfd1_3d33_4a00_84852ffbabef7b28" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1273 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1274 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1275 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1276 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Set_Trace") { // }} "" // {{{ 1277 1 0 "0029313d_525e_46ea_916912b33902e1eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1278 1 0 "ed79bcac_71ff_48ee_b968407f0dbdf4ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1279 1 0 "80f14967_56f1_4b78_9a3c9965460a9589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1280 1 0 "b3fdfb36_4bb4_4086_a19b5402f53fdd94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1281 1 0 "53206fbc_1492_4583_a2789c8083e49b46" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1282 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1283 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1284 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1285 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Wash") { // }} "" // {{{ 1286 1 0 "32bfd9a6_1ebc_4ca0_81e034f81d1af760" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1287 1 0 "a9208608_0099_4d5f_800d72adf563b9e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CycleNumber"), CycleNumber); // }} "" // {{{ 1288 1 0 "738f88ca_6ad7_4598_b1e4a3e1ccefcace" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn); // }} "" // {{{ 1289 1 0 "d009e19d_0560_4f89_b0f58bafa778b71b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Wash"), o_stepReturn); // }} "" // {{{ 1290 1 0 "49cdc51c_08eb_424b_920d3dcb647b2559" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1291 1 0 "2624b5a6_7428_4e88_a9b7fee8a8001e65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1292 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1293 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1294 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1295 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Terminate") { // }} "" // {{{ 1296 1 0 "e8e2fec9_d562_4524_b5d29880876bd109" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1297 1 0 "ad418c06_88fd_4649_9745bc00694fa53a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1298 1 0 "e8437e3c_0153_4bc0_86236a2e9849e22a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Terminate"), o_stepReturn); // }} "" // {{{ 1299 1 0 "32e4b0bc_48e5_4770_81a0113fdff8118a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1300 1 0 "c81e886b_51ec_42be_b2c989057781a5b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1301 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1302 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1303 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1304 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Initialize") { // }} "" // {{{ 1305 1 0 "b41d8294_bc5c_4346_999860e0f4cc913e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1306 1 0 "102abd73_15bb_472b_a1008b4eda35637e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1307 1 0 "58389380_f098_4c71_b61c0954f797753b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 1308 1 0 "2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 1309 1 0 "d95cbdf3_6278_437b_91525392a70e5356" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1310 1 0 "d35fefc8_f758_41da_a6073532f75cf092" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Initialize"), o_stepReturn); // }} "" // {{{ 1311 1 0 "e1deec6e_fc66_45bd_93821e20a78853fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1312 1 0 "01bdb50d_0f38_40e2_8993f814ea652b66" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1313 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1314 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1315 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1316 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Set_Trace") { // }} "" // {{{ 1317 1 0 "f7fc7449_63b2_4e8b_8d0eaf3f931e834d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1318 1 0 "ef77cea9_ef26_4525_bea967ec7f086b88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1319 1 0 "24784b11_b6f4_461e_b526cbbb677864ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1320 1 0 "d5ebe375_f7dd_45c2_b3e242a8edf4f175" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Dryer Trace Level"), o_stepReturn); // }} "" // {{{ 1321 1 0 "f61751e3_57be_4b1d_b8a1d370a4c1773c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1322 1 0 "d216caef_1c5d_4f05_8252d1a77df45535" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1323 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1324 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1325 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1326 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Start_Drying") { // }} "" // {{{ 1327 1 0 "45561f8e_cd7f_49d8_a8720b2ff7d0d932" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1328 1 0 "ecdddf7a_3c99_4f99_97b658f94a62554c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1329 1 0 "5a6daec0_a404_4a0a_ad9d88de43ac46c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Start Drying"), o_stepReturn); // }} "" // {{{ 1330 1 0 "e7173a44_d349_4ba2_8993647fbcd2eb1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1331 1 0 "17e3434b_dfff_457b_9aba0c22e9206cc7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1332 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1333 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1334 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1335 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Stop_Drying") { // }} "" // {{{ 1336 1 0 "f3eac478_54bb_4350_8c1811bf2ede8424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1337 1 0 "37262733_33d0_4723_94687e68249d1300" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1338 1 0 "6feb871c_61be_4812_a421af32d75f9871" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Stop Drying"), o_stepReturn); // }} "" // {{{ 1339 1 0 "2ba59e68_8358_4b86_a9108519bff6d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1340 1 0 "cbfcb2cb_00c9_445f_a28af2b6553efc31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1341 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1342 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1343 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1344 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Terminate") { // }} "" // {{{ 1345 1 0 "66453f41_07b7_4fd4_b2177e4994606836" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1346 1 0 "a5808bbd_63b3_4fc2_894ab4d4eb00b93d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID); // }} "" // {{{ 1347 1 0 "f844d13f_ecdb_465a_b0300a4976c0d809" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1348 1 0 "a28255b3_86ff_4928_abf87a7c3f930142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1349 1 0 "7e539911_cdda_4242_a337d58eba44508c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1350 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1351 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1352 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1353 1 0 "2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1354 1 0 "2dde624a_2df2_4014_8df18f6d92ed93b1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1355 1 0 "d6d5265b_416c_468f_a8f0a8225e294804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Initialize") { // }} "" // {{{ 1356 1 0 "32d149fa_c238_4e8c_9c9bfe8ca03b39ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PortNumber"), PortNumber); // }} "" // {{ 1357 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_43ECC15F92874e8a8FCA2A90F3412255 ; err.Clear(); // }} "" // {{{ 1358 1 0 "05f6e40b_f62a_4382_9b25ca234839aeb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::Initialize(ML_STAR, PortNumber, DefaultTemperature, ModuleID); // }} "" // {{ 1359 1 0 "b8eff0c4_8a87_4d69_8b1fc22443527e58" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1360 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_43ECC15F92874e8a8FCA2A90F3412255 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1361 1 0 "a6315690_dcdc_4faf_9764f4edcccee401" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1362 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1363 1 0 "b152d230_641d_44fd_82876d10beb25ffd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1364 1 0 "2178bb5d_1389_4bb3_92e038bed00ad7d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 1365 1 0 "0e8fa514_886c_42d7_a0fec5c2e0a40820" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1366 1 0 "d6d5265b_416c_468f_a8f0a8225e294804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1367 1 0 "2dde624a_2df2_4014_8df18f6d92ed93b1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1368 1 0 "a96843cd_6adb_45f6_86b4971bd2682521" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1369 1 0 "2a26b412_4bc5_49d9_b1cdc64938a3cf0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_MeasureCycle") { // }} "" // {{{ 1370 1 0 "e78c25fc_f856_4c7d_bb7f6056d2ae0e9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1371 1 0 "4c0064bb_0c23_4648_b57e5599878d63f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqMeasurement"), seqMeasurement); // }} "" // {{ 1372 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (seqMeasurement == "") { // }} "" // {{{ 1373 1 0 "a11073f7_18e2_4097_baf006ed44e74081" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("MeasurePositions"), MeasurePositions); // }} "" // {{{ 1374 1 0 "47d49bd0_0457_440d_b1d654c85ac3c5db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(MeasurePositions, seq); // }} "" // {{ 1375 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1376 1 0 "bbddeeab_2dc4_4931_900a5ec07aafe0be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, seqMeasure, seq); // }} "" // {{ 1377 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1378 1 0 "6b06d7c5_bf98_48d9_906ae705e4ce149b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("MeasureHeight"), MeasureHeight); // }} "" // {{{ 1379 1 0 "25fe4c02_a4e2_40cd_91289dc1c5c638b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ProbePattern"), ProbePattern); // }} "" // {{{ 1380 1 0 "02a9e02a_0596_4158_ac021180b0b5985c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MeasureTime"), MeasureTime); // }} "" // {{{ 1381 1 0 "f8080019_d032_4f0c_9ef8429bde9ee7df" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1382 1 0 "83142ee1_d831_4ff1_a6734844fe789421" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::MeasureCycle(ML_STAR, ModuleID, seq, MeasureHeight, ProbePattern, MeasureTime, Temperature, arrpHValues); // }} "" // {{{ 1383 1 0 "d4d4974a_23a2_43a2_851b478f0e7d24be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrpHValues, flt_pHValues); // }} "" // {{{ 1384 1 0 "bde9c162_a4cf_40fa_a663c6b78e029610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1385 1 0 "0a5c18e9_775d_4644_bdfcc536000642cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Measure Cycle"), o_stepReturn); // }} "" // {{{ 1386 1 0 "c1502c7b_2bd0_480c_a0ce6887e02484bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, flt_pHValues, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1387 1 0 "2a26b412_4bc5_49d9_b1cdc64938a3cf0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1388 1 0 "a96843cd_6adb_45f6_86b4971bd2682521" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1389 1 0 "e66a9dff_c0b5_4864_ad32fce97f16a3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1390 1 0 "5185a83c_8ff6_42f8_b1dc5fc006d041ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Calibrate") { // }} "" // {{{ 1391 1 0 "d9d7f7cb_394b_40ea_a037e16efc8e063c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1392 1 0 "0e65e09c_0178_403b_9eca768c440a479f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1393 1 0 "fedae8c3_0c9d_426f_a30e8fdfa1d2b056" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1394 1 0 "ad8456a9_07be_4852_b2bab182e7e17dae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqCalibration1"), Calibration1); // }} "" // {{{ 1395 1 0 "8b591ca2_adf8_4248_b5ac1fb2a84c21aa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Calibration1, seqCalibration1); // }} "" // {{{ 1396 1 0 "0f28a5e9_278c_4290_aa9ee416f829755a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqCalibration2"), Calibration2); // }} "" // {{{ 1397 1 0 "b57e28d3_0011_4657_bbceba83ca97b89a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Calibration2, seqCalibration2); // }} "" // {{{ 1398 1 0 "101798f0_c18a_411a_b29295d972cc9a6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqReference"), Reference); // }} "" // {{{ 1399 1 0 "1c415c8d_660d_41fe_a81fcfd6d8836038" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Reference, seqReference); // }} "" // {{{ 1400 1 0 "20510ceb_5840_48de_842a1b657fa7706d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationTime"), CalibrationTime); // }} "" // {{{ 1401 1 0 "ecd67637_3e8e_4d22_89b67b39e05342fe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MeasureTime"), MeasureTime); // }} "" // {{{ 1402 1 0 "148b5d07_b84d_4786_b1d0f9d5e5837491" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("MeasureHeight"), MeasureHeight); // }} "" // {{{ 1403 1 0 "938c1584_a353_4f03_ba14c9f33cc2c6a7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue1"), CalibrationValue1); // }} "" // {{{ 1404 1 0 "cda9048b_fe59_4db2_a1d08550795038f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue2"), CalibrationValue2); // }} "" // {{{ 1405 1 0 "5d669238_eb69_4080_8b789139b291be94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValueRef"), CalibrationValueRef); // }} "" // {{{ 1406 1 0 "4c7c9992_c2e0_445a_bee9cd7dd086e585" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSoln1"), TempSoln1); // }} "" // {{{ 1407 1 0 "9574a12d_456e_4fd6_9b51714dd88b4a1e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSoln2"), TempSoln2); // }} "" // {{{ 1408 1 0 "211f81c7_5561_45ce_8cf247e76fb0f65e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSolnRef"), TempSolnRef); // }} "" // {{{ 1409 1 0 "f812ea75_ed49_4a04_b4ab3dd67f1206ad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrateDynamically"), blnCalibrateDynamically); // }} "" // {{{ 1410 1 0 "178d95b8_13db_4493_a08cdaec1348c0e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1411 1 0 "d4d33c2d_2aee_4a51_ad36cb953d687c83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{ 1412 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F882CD31309846e3BD30959B418AB982 ; err.Clear(); // }} "" // {{{ 1413 1 0 "ff44fdd8_7acc_46f7_a7c3a207ad5d7bf8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Calibrate(ML_STAR, ModuleID, seqModule, seqCalibration1, seqCalibration2, seqReference, CalibrationTime, MeasureTime, MeasureHeight, CalibrationValue1, CalibrationValue2, CalibrationValueRef, TempSoln1, TempSoln2, TempSolnRef, blnCalibrateDynamically, arrCalibrationSlopeRatios, arrpHValuesReferenceSolution); // }} "" // {{ 1414 1 0 "18724129_2443_4271_a6316a42ef334c73" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1415 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F882CD31309846e3BD30959B418AB982 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1416 1 0 "d6c65e91_f6e8_47d9_aaf1810ffab1ffac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1417 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1418 1 0 "7375b9e4_01c3_49a1_810fb42149ed0eea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrCalibrationSlopeRatios, CalibrationSlopeRatios); // }} "" // {{{ 1419 1 0 "31ba6e89_258d_4deb_97352544c3b5c45c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrpHValuesReferenceSolution, pHValuesReferenceSolution); // }} "" // {{{ 1420 1 0 "924064ec_85ac_4b42_a5ff3eb8a6a5342f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 1421 1 0 "65bd0fe0_0efb_4335_b118b89e61b948ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1422 1 0 "5185a83c_8ff6_42f8_b1dc5fc006d041ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1423 1 0 "e66a9dff_c0b5_4864_ad32fce97f16a3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1424 1 0 "b6af2262_3e2f_4d3a_8efaa95d707f7c9b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1425 1 0 "190d0e3a_2978_407c_a8482f5f7e239261" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Dry") { // }} "" // {{{ 1426 1 0 "0f0bf03e_4950_40e7_b2899f9cabb79cb3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{ 1427 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_D19CA5AD1071407b84599779A41B51EA ; err.Clear(); // }} "" // {{{ 1428 1 0 "1885a8d9_8082_44ab_bfd7a217170187db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::Dry(ML_STAR, ModuleID); // }} "" // {{ 1429 1 0 "33dddcad_4489_4f31_8b4fea145ebbe77b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1430 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_D19CA5AD1071407b84599779A41B51EA : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1431 1 0 "d8f5d052_f205_4e22_8998e2d0d12790ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1432 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1433 1 0 "5521c0c7_c64b_4b49_9036f9bf6a7a83d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1434 1 0 "9e7864cd_a0bd_4ec6_8f733a2e7ab773bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1435 1 0 "190d0e3a_2978_407c_a8482f5f7e239261" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1436 1 0 "b6af2262_3e2f_4d3a_8efaa95d707f7c9b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1437 1 0 "98f952c5_628a_415d_a46b3e75e0c33d60" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1438 1 0 "370e55f1_98b7_4dfb_9640d7a634f44a8f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Wash") { // }} "" // {{{ 1439 1 0 "39b0590c_dc8d_4eb3_b8bfcab65235f494" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{ 1440 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 ; err.Clear(); // }} "" // {{{ 1441 1 0 "beaffdda_e52a_4f79_95659f907946752f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Wash(ML_STAR, ModuleID); // }} "" // {{ 1442 1 0 "58aab21a_307b_403b_980186d201a7c6ac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1443 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1444 1 0 "4cd2a753_2761_4d3c_9cd93c15fa19a47b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1445 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1446 1 0 "0af219f8_e5bc_4b14_a95fd7e3f2ccb712" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1447 1 0 "7b44ca9e_e6d7_4793_8f937fc518ecc41c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1448 1 0 "370e55f1_98b7_4dfb_9640d7a634f44a8f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1449 1 0 "98f952c5_628a_415d_a46b3e75e0c33d60" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1450 1 0 "3246255f_383b_4742_b7eb17cad21acec0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1451 1 0 "f70b31d7_c863_488a_90c4df10a4677c68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_SetParameters") { // }} "" // {{{ 1452 1 0 "7e5e111c_21f5_4c0b_9dd06d15aee64431" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqGripper"), Gripper); // }} "" // {{{ 1453 1 0 "8417ab78_f4b8_40aa_890f3b14e4204667" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Gripper, seqGripper); // }} "" // {{{ 1454 1 0 "f43d4896_c19a_4cc9_ad3c75f925788b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqWashPosition"), WashPosition); // }} "" // {{{ 1455 1 0 "ffcc2479_6c91_4038_bab179b027d4b03b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, WashPosition, seqWashPosition); // }} "" // {{{ 1456 1 0 "b731d1c6_30bc_4003_ba19e062e82293db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqDryPosition"), DryPosition); // }} "" // {{{ 1457 1 0 "a68ddb6b_780a_46ed_bcaa350f92f649fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, DryPosition, seqDryPosition); // }} "" // {{{ 1458 1 0 "020f31e6_e3ef_48f4_af0e175e60e00159" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TransportChannel"), TransportChannel); // }} "" // {{{ 1459 1 0 "1561e8c8_acaa_438f_9c7c57a5c196556f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WashCycles"), WashCycles); // }} "" // {{{ 1460 1 0 "7e0a9629_dce6_4ed9_81b854f636408ff0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryCycles"), DryCycles); // }} "" // {{{ 1461 1 0 "dacc3c17_6358_44f0_8ac4ad1fa0ae08b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryTime"), DryTime); // }} "" // {{{ 1462 1 0 "f86b35ff_9db7_4845_a3cfb7d04c520c3d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::SetParameter(ML_STAR, seqGripper, seqWashPosition, seqDryPosition, TransportChannel, WashCycles, DryCycles, DryTime); // }} "" // {{{ 1463 1 0 "ce0a2f35_ae58_4695_85513126a4acb791" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1464 1 0 "da69f49c_299d_435d_9d95dc10f7303ce9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1465 1 0 "bd10bc62_2ace_436a_a68acec8c1f9287b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1466 1 0 "f70b31d7_c863_488a_90c4df10a4677c68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1467 1 0 "3246255f_383b_4742_b7eb17cad21acec0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1468 1 0 "f19bf36e_3e74_4647_bd1c33a627d4634a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1469 1 0 "1aad8d75_d37e_4c4a_9b83799194c716fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Park") { // }} "" // {{{ 1470 1 0 "90471824_8967_4383_a722d29bfaf60113" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1471 1 0 "f6bbc2b1_c86d_4f64_abc12d3b740b1d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1472 1 0 "9341ffae_9e0c_43f9_b3ccedcfbadb07cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1473 1 0 "9e0a230a_fdb5_4eec_9cf3127779adb1d2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::ParkModule(ML_STAR, ModuleID, seqModule); // }} "" // {{{ 1474 1 0 "8aacb0d9_a918_426b_9717bd2febc1f74a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1475 1 0 "15592ad5_5751_4636_8a513ee3f27c7f11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1476 1 0 "6222366b_a5bf_4c73_8685a3cdebb4ff4f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1477 1 0 "1aad8d75_d37e_4c4a_9b83799194c716fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1478 1 0 "f19bf36e_3e74_4647_bd1c33a627d4634a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1479 1 0 "602611db_9ad3_4dbb_aae8e288d8e1c21f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1480 1 0 "a3bcbf9b_35d6_4291_9c4f146afb2924be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Pickup") { // }} "" // {{{ 1481 1 0 "347e06d8_9db7_4279_bf224e9ecf4299e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1482 1 0 "2b0761dc_e201_46b3_a590b52421cd8ee9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1483 1 0 "76631bc5_230e_4e20_87bf493887cddd0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1484 1 0 "2d3aba8b_cc4b_4be1_a83c30695fcf6dbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::PickupModule(ML_STAR, ModuleID, seqModule); // }} "" // {{{ 1485 1 0 "7879f9b5_2eea_4059_8e4bef3213e8decd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1486 1 0 "cb1582a1_3f8c_44fd_910a5f08dbe32b05" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1487 1 0 "a15fc9df_322f_4ce1_83228c63669e6b16" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1488 1 0 "a3bcbf9b_35d6_4291_9c4f146afb2924be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1489 1 0 "602611db_9ad3_4dbb_aae8e288d8e1c21f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1490 1 0 "3bc97044_ccb0_46b1_9516921492be9a5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1491 1 0 "dac7c2f7_1665_4a9c_82959eadd12ab417" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_ExtendedLog") { // }} "" // {{{ 1492 1 0 "d101eee8_9402_428a_aa576d531ed959c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::EnableExtendedLog(); // }} "" // {{{ 1493 1 0 "bc849548_9009_43ec_bb1b6c81c32132f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), 1); // }} "" // {{{ 1494 1 0 "0a496202_0f55_4f40_8b391260caa236ba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, 1, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1495 1 0 "dac7c2f7_1665_4a9c_82959eadd12ab417" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1496 1 0 "3bc97044_ccb0_46b1_9516921492be9a5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1497 1 0 "e397a319_e6cb_4188_b45c6ef45c974fba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1498 1 0 "bffc8683_40d3_4277_ac66bc7d43d675f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_LoadLastConfig") { // }} "" // {{ 1499 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B416552A06404ef48774D74059C2B182 ; err.Clear(); // }} "" // {{{ 1500 1 0 "154ec087_ea2e_4381_bb2e261ffad534f1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationLoad(BluetoothPort, NumWashCycles, NumDryCycles, DryTime); // }} "" // {{ 1501 1 0 "79340e9d_69d5_4911_b4601ae4754a16c4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1502 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B416552A06404ef48774D74059C2B182 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1503 1 0 "46420553_d90f_4dfa_b42c9d86856c288a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1504 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1505 1 0 "54b468e0_3ea0_4e83_9ffae95722c5cb9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BluetoothPort = StrIStr(BluetoothPort); // }} "" // {{{ 1506 1 0 "7bde202f_1c1b_4911_9f600ac6e1a5b57c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" NumWashCycles = StrIStr(NumWashCycles); // }} "" // {{{ 1507 1 0 "c5d427d2_0b0e_4f92_8c5b0b2cbfbfb4d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" NumDryCycles = StrIStr(NumDryCycles); // }} "" // {{{ 1508 1 0 "027378a7_4549_4d3f_b8d33aa4980be4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DryTime = StrIStr(DryTime); // }} "" // {{{ 1509 1 0 "fbda7cdb_3ed9_4a5c_907ce60556e0129b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), 1); // }} "" // {{{ 1510 1 0 "e454face_7eee_4c6e_a61e221c0e5d7fb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, BluetoothPort, NumWashCycles, NumDryCycles, DryTime, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1511 1 0 "bffc8683_40d3_4277_ac66bc7d43d675f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1512 1 0 "e397a319_e6cb_4188_b45c6ef45c974fba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1513 1 0 "dbcfe074_1fad_446d_addaa6c1b41a3a01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1514 1 0 "2bd801dc_3ffb_4b97_9f8af54ebda4fdae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_SaveLastConfig") { // }} "" // {{{ 1515 1 0 "aca4c717_812e_46f9_8eb5989a720adb24" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("BluetoothPort"), BluetoothPort); // }} "" // {{{ 1516 1 0 "1198edc8_1ec9_479d_a4e7fd71ed50cf8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("NumWashCycles"), NumWashCycles); // }} "" // {{{ 1517 1 0 "be958699_818e_43db_a757a67b7b54572a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("NumDryCycles"), NumDryCycles); // }} "" // {{{ 1518 1 0 "8751a2c3_e6ee_43bf_b21f5458aebf179a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryTime"), DryTime); // }} "" // {{ 1519 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_4973F03471994119A9F699CE6459CBFC ; err.Clear(); // }} "" // {{{ 1520 1 0 "1480ff51_54ea_4c38_befa457e23966aca" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationSave(BluetoothPort, NumWashCycles, NumDryCycles, DryTime); // }} "" // {{ 1521 1 0 "0e101f68_bc36_42fe_882a3951ef193f80" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1522 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_4973F03471994119A9F699CE6459CBFC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1523 1 0 "2e180d98_e746_4b84_b623b4d0e8e198fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1524 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1525 1 0 "cb24f9db_18c1_41af_b6f16900826be7be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 1526 1 0 "87c5e5f6_77ee_4519_879fdceaf21c1d7f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1527 1 0 "2bd801dc_3ffb_4b97_9f8af54ebda4fdae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1528 1 0 "dbcfe074_1fad_446d_addaa6c1b41a3a01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1529 1 0 "d30f6a39_499f_4b79_b2bfbdb6bb128b96" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1530 1 0 "25171dbf_33de_42a2_ad9b9d9639b5112a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 1531 1 0 "bdbbc648_a9fa_468f_b5d4d390115575eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1532 1 0 "1a74d7ad_0c35_454c_b161ede32468b2af" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1533 1 0 "c67afa78_dd60_451b_b2e31a2e6540f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1534 1 0 "2424dca1_971a_40f8_97b763c253560a2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1535 1 0 "8def2ba5_b51c_4e0c_b6ebfdd346a5beec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1536 1 0 "684d328d_214e_4955_bfe9ff0627b7f8cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 1537 1 0 "e6ec0fc8_d42c_4413_b2c2719c3cd18dc7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1538 1 0 "6f2273c4_1e1e_46f3_9ea6544d76383266" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1539 1 0 "25171dbf_33de_42a2_ad9b9d9639b5112a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1540 1 0 "d30f6a39_499f_4b79_b2bfbdb6bb128b96" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1541 1 0 "427cf00a_8c98_4fb4_8db6842164909152" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1542 1 0 "d75fbb16_6016_4c73_aecf79ca07dae29d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Terminate") { // }} "" // {{{ 1543 1 0 "b43cf782_b210_48c8_933f4cdfae78d050" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1544 1 0 "efbfd98d_c15d_4ac9_b94250ab4361a8b9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Terminate(ModuleID); // }} "" // {{{ 1545 1 0 "c918ad91_e33e_4f2f_9c6577fd8c93aaf4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1546 1 0 "2021a914_67dd_495e_9a9e4cf4438df298" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1547 1 0 "8d8842cd_e3b4_4397_92ad69593e9f7796" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1548 1 0 "d75fbb16_6016_4c73_aecf79ca07dae29d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1549 1 0 "427cf00a_8c98_4fb4_8db6842164909152" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1550 1 0 "2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1551 1 0 "6aa13f85_d8b8_4a2a_93232eeb15e0a01d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1552 1 0 "5edd27c8_de57_4980_b51d920a4d49d519" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1553 1 0 "e9d4ea17_6e30_44ae_88b03485525c4f92" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Initialize") { // }} "" // {{{ 1554 1 0 "2f9ae938_94b1_43c8_ade094614ef090a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("DeviceName"), DeviceName); // }} "" // {{{ 1555 1 0 "6cf1bcde_fb2a_4296_97b01233bdd9aa87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("AdapterDeviceID"), AdapterDeviceID); // }} "" // {{{ 1556 1 0 "58031a2b_13b4_4278_8e347d343a3bd1d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("NodeName"), NodeName); // }} "" // {{{ 1557 1 0 "20c35752_843f_4adb_904d5d26323821a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1558 1 0 "0b3f2efc_0773_4a25_84493465094ac5e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AlwaysInitialize"), AlwaysInitialize); // }} "" // {{{ 1559 1 0 "6ad8399f_eed7_4e65_98fe7d1432f0736b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Initialize(Label, NodeName, SimulationMode, AlwaysInitialize, o_stepReturn); // }} "" // {{{ 1560 1 0 "3a426d02_40f4_4c1f_b9061d37e5a4cd35" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1561 1 0 "01608cb1_fac5_42cd_bcfdf5fc7359c26d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1562 1 0 "0e3b4229_d57f_445f_a7c9d9140939367f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1563 1 0 "e9d4ea17_6e30_44ae_88b03485525c4f92" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1564 1 0 "5edd27c8_de57_4980_b51d920a4d49d519" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1565 1 0 "48cb330b_8197_439e_974791118048b53e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1566 1 0 "cc879722_4e99_410c_a8454d136f6aae6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Centrifuge") { // }} "" // {{{ 1567 1 0 "efe031a0_7aa0_4846_bf8969fbd7906970" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1568 1 0 "5965cb4a_0190_415d_862b773944074e57" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("CloseCoverAtEnd"), CloseCoverAtEnd); // }} "" // {{{ 1569 1 0 "1f94f31f_0ef0_403b_bda3b50c2fd9c38b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PresentPosition"), intPresentPosition); // }} "" // {{{ 1570 1 0 "dde8e447_4774_45bf_a244c5fab4041838" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Direction"), Direction); // }} "" // {{{ 1571 1 0 "cf0fab96_e65f_4e8a_85a809800b192075" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArraySpeed"), ArrSpeed); // }} "" // {{{ 1572 1 0 "0ca69f46_9c96_402e_9b1587ced7bff5c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArrayAcceleration"), ArrAcceleration); // }} "" // {{{ 1573 1 0 "d37afa07_2508_484d_81b6f153e1aa28ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArrayDuration"), ArrDuration); // }} "" // {{{ 1574 1 0 "6f8e9cca_35cb_4393_9f845b2135e8c2d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Deceleration"), Deceleration); // }} "" // {{{ 1575 1 0 "42d02aa8_5a1f_4144_b475d634885c1d4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrDuration, Translate(","), i_ArrDuration, 0); // }} "" // {{{ 1576 1 0 "252eacff_1b04_4607_9403f7ebc9935d0a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrSpeed, Translate(","), i_ArrSpeed, 0); // }} "" // {{{ 1577 1 0 "e1de1f59_a4b3_4220_a987c7e8e67e82c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrAcceleration, Translate(","), i_ArrAcceleration, 0); // }} "" // {{{ 1578 1 0 "085cc0ce_663a_4e79_8bf732421e2f56a9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrAcceleration, i_ArrAcceleration); // }} "" // {{{ 1579 1 0 "5f942567_121a_417c_be3e2449c5473b40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrSpeed, i_ArrSpeed); // }} "" // {{{ 1580 1 0 "f88bd247_c7e5_4823_bd5e37605974f825" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrDuration, i_ArrDuration); // }} "" // {{{ 1581 1 0 "82e32803_a688_4f29_8a1c94dead53e48e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Centrifuge(Label, CloseCoverAtEnd, intPresentPosition, Direction, i_ArrSpeed, i_ArrAcceleration, i_ArrDuration, Deceleration, o_stepReturn); // }} "" // {{{ 1582 1 0 "6541fb1d_df0a_4f0c_8474d211e4e4721a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1583 1 0 "ca37a7ce_edb5_4864_90dffb84cbb93071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1584 1 0 "54bf0b61_3ff3_4e00_8d35d876bfec98bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1585 1 0 "cc879722_4e99_410c_a8454d136f6aae6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1586 1 0 "48cb330b_8197_439e_974791118048b53e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1587 1 0 "ad0b08d4_17f2_49d0_a67860ea51423835" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1588 1 0 "5d8f135c_f0e2_4460_861984fe9a7fa710" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_GetStatus") { // }} "" // {{{ 1589 1 0 "1be02a3f_6880_42b3_b612e480fcd7e403" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1590 1 0 "5dcbef58_09da_4530_afb23e072fe81806" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_GetRotationStatus(Label, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, o_stepReturn); // }} "" // {{{ 1591 1 0 "07344966_2aca_47d5_94006574d009ab21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1592 1 0 "47572e7c_3ab2_48e3_be4d5f024ede7c41" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, Translate(""), id); // }} "" // {{ 1593 1 0 "5d8f135c_f0e2_4460_861984fe9a7fa710" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1594 1 0 "ad0b08d4_17f2_49d0_a67860ea51423835" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1595 1 0 "cd7ca6de_07b8_4d48_875925ee71386e46" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1596 1 0 "2acb9ae8_850a_4120_a212cb2a4a6200bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Open") { // }} "" // {{{ 1597 1 0 "6a9181eb_a95e_4e7b_a8df77f39d3519e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1598 1 0 "6f785fb2_5cc2_4924_b9e514e193d96143" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverOpen(Label, o_stepReturn); // }} "" // {{{ 1599 1 0 "d7ac8b69_b503_4f26_81756b6dc894d246" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1600 1 0 "d707b09f_2dc6_4b2f_9fdb84c07c07f2b2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1601 1 0 "2acb9ae8_850a_4120_a212cb2a4a6200bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1602 1 0 "cd7ca6de_07b8_4d48_875925ee71386e46" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1603 1 0 "0d7255ee_b967_4693_8d7375d684b4747f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1604 1 0 "10b7afeb_e804_457e_88b935a2b48a71c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Close") { // }} "" // {{{ 1605 1 0 "dbed33cf_5e9c_4102_b254b161284b15e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1606 1 0 "f7647d6b_38bb_4d38_895246f5ac76fe59" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverClose(Label, o_stepReturn); // }} "" // {{{ 1607 1 0 "77bb0b57_a308_455c_baabf680266f4336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1608 1 0 "0c3dee9e_33f9_4f79_99400f9368f6da14" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1609 1 0 "10b7afeb_e804_457e_88b935a2b48a71c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1610 1 0 "0d7255ee_b967_4693_8d7375d684b4747f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1611 1 0 "4dcf2947_ad5a_47e8_8c8214244ffcb3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1612 1 0 "81386c58_3b5a_4743_9453eb6a117234ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Start") { // }} "" // {{{ 1613 1 0 "44af1318_1d60_4a35_a5714accdc0c242a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1614 1 0 "25c1c841_9dea_4404_afbc9b3efc307343" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Direction"), Direction); // }} "" // {{{ 1615 1 0 "d5af29b3_1f52_48d0_be771ca87547a6c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Speed"), Speed); // }} "" // {{{ 1616 1 0 "0615f300_6c08_4978_beb5ebd0c96a686e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Acceleration"), Acceleration); // }} "" // {{{ 1617 1 0 "8f4f8eba_1777_4696_b1185b776105f4e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MaxRunTime"), MaxRunTime); // }} "" // {{{ 1618 1 0 "6d0a342b_4d08_47ec_81979a6bcb184434" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StartCentrifuge(Label, Direction, Speed, Acceleration, MaxRunTime, o_stepReturn); // }} "" // {{{ 1619 1 0 "562e3df1_ee9e_4ef5_a70c4247d08e453f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1620 1 0 "d3624dd6_4de0_4827_b501bde2ca9e3d5a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1621 1 0 "81386c58_3b5a_4743_9453eb6a117234ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1622 1 0 "4dcf2947_ad5a_47e8_8c8214244ffcb3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1623 1 0 "e9168cf2_c9e7_40a5_a52e0b9ad08f1fed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1624 1 0 "225ad45c_32fa_4f7d_af063f5ce1ab907c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Stop") { // }} "" // {{{ 1625 1 0 "e5891eba_60d8_49f6_af7be2af0aef66a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1626 1 0 "4008af1e_863b_4a5a_9b4b33d547b6fd7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Decelleration"), Decelleration); // }} "" // {{{ 1627 1 0 "667c83ad_57d3_4ce9_a2dca9287fb97d7e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StopCentrifuge(Label, Decelleration, o_stepReturn); // }} "" // {{{ 1628 1 0 "43ffc328_4600_41cb_a084d56b006fee8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1629 1 0 "263c82c5_d2f1_463f_b2f102d150ca0a0f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1630 1 0 "225ad45c_32fa_4f7d_af063f5ce1ab907c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1631 1 0 "e9168cf2_c9e7_40a5_a52e0b9ad08f1fed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1632 1 0 "551d8e94_670b_4472_b73600d28f237682" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1633 1 0 "bd20d1b8_d440_4b6f_9041a5b536904a0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Terminate") { // }} "" // {{{ 1634 1 0 "1e54be13_32c5_43bd_bcea8da753eedd90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1635 1 0 "c884c5b1_cb4e_4d38_907361a00b32d3f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Terminate(Label, o_stepReturn); // }} "" // {{{ 1636 1 0 "fa01d6ec_8920_4fd7_adbc2f6f4f106df5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1637 1 0 "1664cc0f_d416_47d5_aa13970ade2397b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1638 1 0 "bd20d1b8_d440_4b6f_9041a5b536904a0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1639 1 0 "551d8e94_670b_4472_b73600d28f237682" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1640 1 0 "6aa13f85_d8b8_4a2a_93232eeb15e0a01d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1641 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1642 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Initialize") { // }} "" // {{{ 1643 1 0 "5efffd73_f295_4d3c_aacd37c74d2bc015" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ComPort"), Comport); // }} "" // {{{ 1644 1 0 "cc8f22a1_0ae7_40ee_82d2e071b7344cf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn); // }} "" // {{{ 1645 1 0 "b6f33534_c173_4c6c_820d96a48fa50a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Barcode initialize:"), o_stepReturn); // }} "" // {{{ 1646 1 0 "138ad752_fbd8_457e_948dd436ddb65822" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1647 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1648 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Read") { // }} "" // {{{ 1649 1 0 "0b3c261e_a906_4464_b0e5caa3ec640056" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Read(barcode); // }} "" // {{{ 1650 1 0 "98aadc47_a5a2_433d_84530ad050155ccd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("BarcodeReader_Read"), barcode); // }} "" // {{{ 1651 1 0 "e3fc85ee_a6d7_4d98_a3f9076b947565cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, barcode, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1652 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1653 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1654 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1655 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1656 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_BeginMonitoring") { // }} "" // {{{ 1657 1 0 "7dd862dc_f7f1_4600_94ca9b83762673dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1658 1 0 "d37d14e5_261f_418c_81f754eb75bf4920" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingToleranceRange"), shakingToleranceRange); // }} "" // {{{ 1659 1 0 "0919ceb3_189a_4885_93c8faeab9f9538b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sampleInterval"), sampleInterval); // }} "" // {{{ 1660 1 0 "bc3a749e_e1bb_4c4a_9aac06834d85080f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("action"), action); // }} "" // {{ 1661 1 0 "98795c5d_e3e5_4d8c_bba032968c530136" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1662 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ; err.Clear(); // }} "" // {{{ 1663 1 0 "a2a0a3bb_c0cf_4123_afe36d1d51ae233c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action); // }} "" // {{ 1664 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3202FD4CC34D478f892F31C7684340BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1665 1 0 "435e7414_9170_4bf9_bd0ac83f0ab51fad" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1666 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1667 1 0 "c00b8635_652d_48ca_8d345ed070306b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1668 1 0 "85ac1487_5644_4bae_b032f5c191aa47c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1669 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1670 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1671 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1672 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateStarDevice") { // }} "" // {{{ 1673 1 0 "4c3dfdd2_2dd6_4c5f_831f92590c13e82e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1674 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ; err.Clear(); // }} "" // {{{ 1675 1 0 "cc3d4234_12d6_486a_a110c8ede0e3059b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber); // }} "" // {{ 1676 1 0 "f17e82ff_88ef_4685_bf6f75a8ca0e32f6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1677 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1678 1 0 "c0256452_8d47_4f97_9e9c2250a44934d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1679 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1680 1 0 "7699b24c_5ec6_4cca_b1cb9aed9ce60247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1681 1 0 "85155966_9554_40cb_9693f9b0a11b25a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1682 1 0 "d049e779_0761_471d_9f7b8af0967d1633" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1683 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1684 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1685 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1686 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateUSBDevice") { // }} "" // {{{ 1687 1 0 "72f0a762_2550_45ad_bea063f4f72a9fe9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1688 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ; err.Clear(); // }} "" // {{{ 1689 1 0 "6957e247_4f64_4971_8d90658c99adbb87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber); // }} "" // {{{ 1690 1 0 "34cc8f4a_c310_4eb7_b936c63f8401c523" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1691 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_98100824AA704d26AB40A6BADEF39F48 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1692 1 0 "058f8bb4_5fe3_4a6b_a36e899c2a89656f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1693 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1694 1 0 "a9b4c19d_dcc0_42d7_9a51e3241ef647f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return:"), o_stepReturn); // }} "" // {{{ 1695 1 0 "d303212f_1f38_442d_a24eee709cf4cdc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1696 1 0 "7356ec1e_8437_4679_94613ac2bea4fe0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1697 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1698 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1699 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1700 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_EndMonitoring") { // }} "" // {{{ 1701 1 0 "4293ef15_cfcd_4e29_b9b02afae2d471f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1702 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ; err.Clear(); // }} "" // {{{ 1703 1 0 "dd7d7b00_1e95_4e45_97a425f03a18ab04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult); // }} "" // {{{ 1704 1 0 "0021495f_472e_4321_9d1e81e8fbd43f0c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1705 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1706 1 0 "aabeb82e_70d9_42f7_901f3fe114094e0a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1707 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1708 1 0 "ce89bf49_b865_4c3f_a97eba220b5a7d33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS End Monitoring step return:"), o_stepReturn); // }} "" // {{{ 1709 1 0 "05229af2_f20a_42ce_908ec8445f3f9dd2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(""), Translate(""), id); // }} "" // {{ 1710 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1711 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1712 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1713 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetFirmwareVersion") { // }} "" // {{{ 1714 1 0 "942a1cc2_d956_47fa_9a9ffed1e856a632" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1715 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ; err.Clear(); // }} "" // {{ 1716 1 0 "f6b3cc8e_f852_4a96_9567a4fa67e846e8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1717 1 0 "c70f5e07_0eeb_45e5_af26714895e2df88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion); // }} "" // {{ 1718 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1719 1 0 "96886e69_ba07_45e3_96353112dc429afc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1720 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1721 1 0 "7de3b86c_c16d_4932_beedfb948b5d85f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(""), Translate(""), id); // }} "" // {{ 1722 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1723 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1724 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1725 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetSerialNumber") { // }} "" // {{{ 1726 1 0 "38b7d0d7_7cce_4157_8abc70dfb62eefa5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1727 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ; err.Clear(); // }} "" // {{ 1728 1 0 "08061228_63f2_47d2_a601ba16d6a1a142" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1729 1 0 "0bbfb488_9723_4a08_9b90171dbec6117a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber); // }} "" // {{ 1730 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2434A44DB44B48ff82A9F66DE34C5041 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1731 1 0 "4cf5e7f7_9567_4e6b_a206bf6f8962c785" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1732 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1733 1 0 "311e5a04_1ac3_443c_bdc51c5cdc4c44f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(""), Translate(""), id); // }} "" // {{ 1734 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1735 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1736 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1737 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerParameter") { // }} "" // {{{ 1738 1 0 "f3888a0b_86ea_4c4a_891e1755a6e78556" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1739 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ; err.Clear(); // }} "" // {{ 1740 1 0 "693cec94_9d14_4bff_8e4868a3b27f0245" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1741 1 0 "e993ed67_92ed_4c85_bd33f90aac53dfb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3); // }} "" // {{ 1742 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1743 1 0 "bd4bffe6_9161_4f42_b0b53307549f4286" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1744 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1745 1 0 "6efd49bf_48c7_437b_8fee57487345eaee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1746 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1747 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1748 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1749 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerSpeed") { // }} "" // {{{ 1750 1 0 "e1c29a26_0656_46e3_b0a412143047bd26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1751 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ; err.Clear(); // }} "" // {{{ 1752 1 0 "c0166b97_c0ae_417b_85c90c5ef42e5fc6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2); // }} "" // {{{ 1753 1 0 "73777071_2fd2_42b0_a7545c6a6a372194" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1754 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1755 1 0 "fb8e630b_9519_4b3d_94eabf1311546383" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1756 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1757 1 0 "41ba2513_e3c2_485c_821198419c3fe286" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1758 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1759 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1760 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1761 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTempParameter") { // }} "" // {{{ 1762 1 0 "09fb30ea_33e9_486d_96945af4798859ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1763 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ; err.Clear(); // }} "" // {{ 1764 1 0 "7e342beb_ebbe_4873_bf53c50f29cbaa0e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1765 1 0 "c8f45788_ef99_414d_a41d29a20583a067" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 1766 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C16E1CF8298042f0A01D1040DC911015 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1767 1 0 "b845f534_5a22_4076_b36069f70af90742" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1768 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1769 1 0 "4793211e_93d2_43e6_b4d25d7e0ae3e104" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 1770 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1771 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1772 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1773 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperature") { // }} "" // {{{ 1774 1 0 "01d1add6_c167_4137_8f0c285cd6ad9bed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1775 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ; err.Clear(); // }} "" // {{{ 1776 1 0 "ecd6d069_96d7_4a72_9ffc0df77e7a1512" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2); // }} "" // {{{ 1777 1 0 "b05c868f_c25f_47a9_b533b13ab05fc962" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1778 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_14A2AAD200434d69970AC483BD08B64F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1779 1 0 "cabbe1ee_c5d4_49dd_90875673900d6120" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1780 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1781 1 0 "234847f1_2f0a_4e64_856b9edefcebb425" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1782 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1783 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1784 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1785 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperatureState") { // }} "" // {{{ 1786 1 0 "82a233ab_0392_4ebb_9a809d80aae38e44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1787 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ; err.Clear(); // }} "" // {{{ 1788 1 0 "c99aa2b7_d8a6_4cee_a1fa1d731ef77d25" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2); // }} "" // {{{ 1789 1 0 "f2861b4d_28d2_4ee3_8b7c7763312067ab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1790 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_50485390A50647818ED2D3934FBC87E3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1791 1 0 "f56ee559_1221_4f5a_ad332d0e44502aff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1792 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1793 1 0 "31a69f44_1a59_49ce_a78763f3aa936042" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1794 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1795 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1796 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1797 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SendFirmwareCommand") { // }} "" // {{{ 1798 1 0 "11546c32_6ddd_4250_9b8750c9679e5b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1799 1 0 "06688598_f10e_41e9_8a2c6d3dff7b7aae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), command); // }} "" // {{{ 1800 1 0 "15a58509_ec93_4677_b1858cadeac42d10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("parameter"), parameter); // }} "" // {{ 1801 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ; err.Clear(); // }} "" // {{{ 1802 1 0 "a650efc1_423b_4f75_9f0da083ee44ae9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter); // }} "" // {{{ 1803 1 0 "e1ef0806_8a47_46c1_972c9ed9e299eaad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1804 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_84EE5E4228B140f599748D1271CBB0F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1805 1 0 "c9bd9645_5a05_4cc6_95997f787c8772d6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1806 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1807 1 0 "8b5634c2_e1da_41d3_83c57142f4cae999" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1808 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1809 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1810 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1811 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetPlateLock") { // }} "" // {{{ 1812 1 0 "927ddf67_5dbd_432b_b8cf6117a3109b06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1813 1 0 "a3eee1ac_7024_473b_a6eb8a2e9b461a66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("plateLock"), plateLock); // }} "" // {{ 1814 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ; err.Clear(); // }} "" // {{{ 1815 1 0 "b417b8ce_5117_450e_93a9a6243c6011d8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock); // }} "" // {{{ 1816 1 0 "ed43cecb_7012_4fb9_a89d129de09bdadb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1817 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1818 1 0 "4eb95522_37fd_4802_af85a620dc874526" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1819 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1820 1 0 "945560ed_40bf_44a9_851fead4c1943f9f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1821 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1822 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1823 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1824 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetShakerParameter") { // }} "" // {{{ 1825 1 0 "8a0e14c1_f6c6_4fb8_94094498cccd7991" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1826 1 0 "1810a83f_3fc2_4c49_9d5502fbdfc743e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingDirection"), shakingDirection); // }} "" // {{{ 1827 1 0 "c3053579_8645_474f_8c05459eed975362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingAccRamp"), shakingAccRamp); // }} "" // {{ 1828 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ; err.Clear(); // }} "" // {{ 1829 1 0 "32b90a07_0607_448d_9767de1d96e31862" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1830 1 0 "77463ac5_e629_4772_98004edef4016a6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp); // }} "" // {{ 1831 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1832 1 0 "5593fd2a_c1e7_4565_bcae82458768dd51" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1833 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1834 1 0 "5ed72ec4_1b60_4258_969b44c995450ec1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1835 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1836 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1837 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1838 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetSimulation") { // }} "" // {{{ 1839 1 0 "941f9e19_ca94_4ede_9719205aeb876593" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{ 1840 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ; err.Clear(); // }} "" // {{ 1841 1 0 "f56567fc_04c1_4645_aee22aa5f22a9f8c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1842 1 0 "41b0c1a2_60aa_4f16_8901c300e9a3dc14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetSimulation(simulate); // }} "" // {{ 1843 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1844 1 0 "35803a11_c620_485a_8196cc2822dddb3f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1845 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1846 1 0 "2e7a9d5f_51df_4c49_bb1986da7e14cd48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1847 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1848 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1849 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1850 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetTempParameter") { // }} "" // {{{ 1851 1 0 "99447b6e_9293_483d_bbd7ddee96870904" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1852 1 0 "f55d7581_a005_45e4_9b3d7f7473323e6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("startTimeout"), startTimeout); // }} "" // {{{ 1853 1 0 "7192db12_8543_4c8b_81b98b57ce21118d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("toleranceRange"), toleranceRange); // }} "" // {{{ 1854 1 0 "8f6d922f_f2ae_43c6_8682df15e6b7c07c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("securityRange"), securityRange); // }} "" // {{ 1855 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ; err.Clear(); // }} "" // {{ 1856 1 0 "a2342046_552f_4003_a1cc262161964a6e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1857 1 0 "57eb738a_6eb2_4f04_b25bd7f7f64a8179" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange); // }} "" // {{ 1858 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1859 1 0 "94c928dd_6dcb_4540_a6cbfdf48e37430c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1860 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1861 1 0 "90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1862 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1863 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1864 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1865 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetUSBTrace") { // }} "" // {{{ 1866 1 0 "0691ecbd_49b4_4590_91d60e614290ec34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("trace"), intTrace); // }} "" // {{ 1867 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ; err.Clear(); // }} "" // {{ 1868 1 0 "aeed4685_8812_4dce_89e2c35429d4c401" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1869 1 0 "24723a79_741b_46be_830fe654c08d6d1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetUSBTrace(intTrace); // }} "" // {{ 1870 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FE6D15E135D24fd7A06908E89474B650 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1871 1 0 "32d09876_dcdb_4d67_b5e72a63e14fec19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1872 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1873 1 0 "cda0d06f_dce0_47ad_bbb419c58aba260e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1874 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1875 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1876 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1877 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShaker") { // }} "" // {{{ 1878 1 0 "503e1c47_5f15_42bd_8eaad1057de68ef6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1879 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ; err.Clear(); // }} "" // {{{ 1880 1 0 "73be1c30_4bfe_4a0f_aa560c8df5b091fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartAllShaker(shakingSpeed); // }} "" // {{{ 1881 1 0 "39ac643d_0305_4ec6_87fc196efe3d76f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1882 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1883 1 0 "c35cdd37_7a73_4008_b9d0ac550c926428" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1884 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1885 1 0 "ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1886 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1887 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1888 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1889 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShakerTimed") { // }} "" // {{{ 1890 1 0 "db6b6c2e_da48_4c64_bdddc80ba5a28921" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1891 1 0 "f6f42906_5ded_4a05_8f9a11fac18f7f10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1892 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ; err.Clear(); // }} "" // {{{ 1893 1 0 "272104de_2e64_4a32_a88407b030437361" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime); // }} "" // {{{ 1894 1 0 "1362f66b_0efd_4eb5_935e84586a427637" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1895 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1896 1 0 "ef7c31f9_e307_450a_851111f26afd2e91" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1897 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1898 1 0 "d73f1476_bf95_4d48_89849f295a9e4d0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1899 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1900 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1901 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1902 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShaker") { // }} "" // {{{ 1903 1 0 "f958f5a5_d1c5_4e9e_9262e708f24940c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1904 1 0 "2ce1189b_e54a_48c0_aafc2932409c0b9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1905 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ; err.Clear(); // }} "" // {{{ 1906 1 0 "cf1b40c4_5e9a_48bf_9390f6eab212315f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed); // }} "" // {{{ 1907 1 0 "2e7a5304_5ce9_4afb_93a4a8276dc86d74" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1908 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1909 1 0 "9b93a06b_e4df_4eca_84467ca6c7f0c0ce" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1910 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1911 1 0 "4b0b48f9_3855_4eab_8f22b0902846d750" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1912 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1913 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1914 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1915 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShakerTimed") { // }} "" // {{{ 1916 1 0 "858c7861_9fb0_490e_9646b9eb190706d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1917 1 0 "327bd0c6_60a8_4fd1_9ef81e2a21d904a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1918 1 0 "83a6d58d_c761_484f_871c9c2229a6d3d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1919 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ; err.Clear(); // }} "" // {{{ 1920 1 0 "4b29337f_c67c_4ecf_a205f4b70e60271a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); // }} "" // {{{ 1921 1 0 "40aad8b7_f42e_4ad1_b0f0c033ec666548" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1922 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_29447729262E4e0f8B347F6640716D96 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1923 1 0 "f383d799_1d15_4348_8a2dc84422f46ff2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1924 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1925 1 0 "f539df09_de1d_4fd8_9ac041897fab0333" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1926 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1927 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1928 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1929 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartTempCtrl") { // }} "" // {{{ 1930 1 0 "dc338e01_6b43_4fe3_bda98d2b0a1a65e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1931 1 0 "04239a09_93a5_4f75_80f95d178bdf9cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("temperature"), temperature); // }} "" // {{{ 1932 1 0 "0387745b_87be_4ec6_912b0b4decaa257b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("waitForTempReached"), waitForTempReached); // }} "" // {{ 1933 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ; err.Clear(); // }} "" // {{{ 1934 1 0 "dfb61f9c_103b_4c42_83e0779ea05cb180" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached); // }} "" // {{{ 1935 1 0 "e4829da3_d8b6_453f_a2be82213303e9f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1936 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_764F491C76DA445383E5490AB126ADB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1937 1 0 "21dd8d34_e764_4a0f_b34ccecf089437dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1938 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1939 1 0 "bfde731d_b581_4488_b4cb7f4873675d7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1940 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1941 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1942 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1943 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopAllShaker") { // }} "" // {{ 1944 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ; err.Clear(); // }} "" // {{{ 1945 1 0 "ee3103a2_d7f3_488f_b7a95e2f2b56770a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{{ 1946 1 0 "a782313c_e15b_4340_bdda314f926e24cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1947 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1948 1 0 "45d1f212_46b9_4976_83503edf5606c88e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1949 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1950 1 0 "5706daca_363f_417f_9103f7ddd16c1444" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1951 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1952 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1953 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1954 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopShaker") { // }} "" // {{{ 1955 1 0 "1cdead0d_9944_446b_bd59d491b15242b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1956 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ; err.Clear(); // }} "" // {{{ 1957 1 0 "b5ecca33_fef4_4c14_9cf702c924839607" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StopShaker(deviceNumber); // }} "" // {{{ 1958 1 0 "49e72e72_8e49_49fd_8d212a6ccff1d2fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1959 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1960 1 0 "1fe83710_037b_4157_82a99e6aaf08edcb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1961 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1962 1 0 "6ffd1f39_ec63_4f9c_a7687447aff79f80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1963 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1964 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1965 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1966 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopTempCtrl") { // }} "" // {{{ 1967 1 0 "b16ab946_2ba9_4900_bd6f9ede31edf6ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1968 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B5957B02990845739642D8C604B0B582 ; err.Clear(); // }} "" // {{{ 1969 1 0 "d186dde8_c684_4550_a023d9023ff021d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StopTempCtrl(deviceNumber); // }} "" // {{{ 1970 1 0 "af12e4a9_cc0f_4a82_b9593d2b489756a8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1971 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B5957B02990845739642D8C604B0B582 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1972 1 0 "28b1d8d1_83cc_4627_9146c7398c601938" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1973 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1974 1 0 "11f3231a_40df_4c14_92585ab8016165e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1975 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1976 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1977 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1978 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_Terminate") { // }} "" // {{ 1979 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ; err.Clear(); // }} "" // {{ 1980 1 0 "b1da178c_1267_4c8c_b1cd24bfa10a11fb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1981 1 0 "910932e3_2b76_41cf_9dccecb799f2d649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::Terminate(); // }} "" // {{ 1982 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_919FCF7F89804c398972DAFE2605D286 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1983 1 0 "697e84e2_525e_4045_83bb3825b36f6b2f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1984 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1985 1 0 "4edde3c1_4f65_4403_a54985d84f6d80f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1986 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1987 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1988 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1989 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForShaker") { // }} "" // {{{ 1990 1 0 "87872be5_4e84_4b7b_98a3e7147a66f6a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1991 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ; err.Clear(); // }} "" // {{{ 1992 1 0 "3b2abeec_38f4_46a6_a30b0d0126280ebc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::WaitForShaker(deviceNumber); // }} "" // {{{ 1993 1 0 "c4e94e42_8405_438b_921cfe4ba73e9976" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1994 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1995 1 0 "c08ab14c_3879_4f65_ad7085e45f74a6df" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1996 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1997 1 0 "96b99051_5c80_421c_a02e0bd238da1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1998 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1999 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2000 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2001 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForTempCtrl") { // }} "" // {{{ 2002 1 0 "881e7d69_50e3_4e42_89eafece562ac009" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 2003 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ; err.Clear(); // }} "" // {{{ 2004 1 0 "5aa60a5a_db92_42e0_b3277a41cacb5336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber); // }} "" // {{{ 2005 1 0 "49cd8e9e_91bd_468c_aec57e3af40280fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 2006 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_088C7630997A4749A400740DA66CBA0C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2007 1 0 "de7dad67_0b6c_47eb_af5a68302431ff1e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2008 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2009 1 0 "aeb529e0_2eaf_4686_9528342b58318a5d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2010 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2011 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2012 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2013 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2014 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2015 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "CORE96WashEmpty") { // }} "" // {{{ 2016 1 0 "88f95bdd_c2c5_4856_91e5f47f7431bdaf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("refillAfterEmpty"), refillAfterEmpty); // }} "" // {{{ 2017 1 0 "d7a05a26_0b59_478a_a85f308173caf693" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1WashLiquid"), chamber1WashLiquid); // }} "" // {{{ 2018 1 0 "8b1bd108_2b5a_4a2d_ace7b87920eae1b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1LiquidChange"), chamber1LiquidChange); // }} "" // {{{ 2019 1 0 "d651fbf5_a4b8_490b_b869269338ccfcfa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2WashLiquid"), chamber2WashLiquid); // }} "" // {{{ 2020 1 0 "79b1a205_d988_4171_9e1fb28ba362329b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2LiquidChange"), chamber2LiquidChange); // }} "" // {{ 2021 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ; err.Clear(); // }} "" // {{ 2022 1 0 "3fc645b3_f504_4b5e_93481425adf459b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2023 1 0 "123d7b87_745f_4511_a797d08711d13361" "ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}" { variable arrRetValues[]; arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3("123d7b87_745f_4511_a797d08711d13361"); // Head96EmptyWasher } // }} "" // {{ 2024 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EE8804FCDC214a06935DD0F4830020DB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2025 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 2026 1 0 "d3d07dad_de12_4d0c_bd96c7caa06ff3ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 2027 1 0 "84732f19_85e4_4b22_8e617b5e1c91f73c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Washer Return: "), o_stepReturn); // }} "" // {{{ 2028 1 0 "dde0a413_b493_4b17_94990d1d5f2e2b2e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2029 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2030 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2031 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2032 1 0 "1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONFromServer); // }} "" // {{ 2033 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2034 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "end") { // }} "" // {{{ 2035 1 0 "6db67a5a_6aa2_4087_875823acfff0fac4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Good Bye!")); // }} "" // {{ 2036 1 0 "4c7e40d6_02a6_451d_b28230ec71e40ce1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2037 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2038 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2039 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2040 1 0 "6fb90145_24c3_46ba_88b839e0215d0bf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{ 2 "AutoExitBlock" "" STAR_OEM_TOOLKIT::_ExitLibrary(); STAR_OEM_TOOLKIT_PH::_ExitLibrary(); STAR_OEM_TOOLKIT_CENTRIFUGE::_ExitLibrary(); STAR_OEM_TOOLKIT_MPE::_ExitLibrary(); HAMILTON_PH_MODULE_CONTROLLER::_ExitLibrary(); // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=stefa$$valid=0$$time=2023-05-20 10:53$$checksum=d2401008$$length=082$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx5FF.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" private function ArrayToString( variable & i_array[], variable & o_str ) void ; private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ; private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ; private function ConvertHSSErrCode( variable hssErrCode ) variable ; private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ; private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void ; function SendTextMessageToServer( variable str ) void ; private function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; private function waitForGUItoContinue( ) variable ; function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 2205 1 0 "c8aa765a_4840_468a_9e928b44fa79d891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{{ 5 "OnAbort" "End" } // }} "" // {{{ 5 "SendTextMessageToServer" "Begin" function SendTextMessageToServer( variable str ) void { // }} "" private object objJSONObject; private variable strJSON; // {{ 5 "SendTextMessageToServer" "InitLocals" // }} "" // {{{ 2165 1 0 "9d5f9d4a_c104_4b47_964b6d97f981a71e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONObject); // }} "" // {{{ 2166 1 0 "d0a04705_1adc_4919_b95168834c89f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("command"), Translate("message")); // }} "" // {{{ 2167 1 0 "7b9a6cd1_3eee_4085_b3f9548e43fc3424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("text"), str); // }} "" // {{{ 2168 1 0 "6a1c53cf_65ea_4f53_aa2e9111890fecf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONObject, strJSON); // }} "" // {{{ 2169 1 0 "bee8c148_b3ea_490b_8d93d8ed5f24939f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONObject); // }} "" // {{{ 2170 1 0 "b965a2fd_f821_4400_b4c777f558ed0772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendTextMessageToServer" "End" } // }} "" // {{{ 5 "waitForGUItoContinue" "Begin" private function waitForGUItoContinue( ) variable { // }} "" private variable loopCounter1; private variable serverResponse; private timer timer1; // {{ 5 "waitForGUItoContinue" "InitLocals" // }} "" // {{ 2186 1 0 "73328607_d06a_4d7d_8a5df64da06a1bde" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" serverResponse = Translate(""); // }} "" // {{{ 2187 1 0 "2342f8b3_4765_4edc_9fb9f46cbb1fd20b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Waiting for server instructions...")); // }} "" // {{{ 2188 1 0 "216e1039_788e_4830_8588933e6c542ba1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Waiting for server instructions...."), Translate("")); // }} "" // {{ 2189 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounter1 = 0; while (1 == 1) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2190 1 0 "5f15547c_3178_4f78_b5fea96f6a1c563b" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.1) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2191 1 0 "cd67277b_4386_4862_8429008a00601693" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 2192 1 0 "6ec592d0_fe02_41a9_8503db5ccf0e5544" "{C1F3C015-47B3-4514-9407-AC2E65043419}" serverResponse = HSLHttp::HttpGET(objHttp, Translate("http://localhost:3221"), Translate("")); // }} "" // {{ 2193 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (serverResponse != "") { // }} "" // {{ 2194 1 0 "b1e2e308_ee78_46d0_8a6832649536045e" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2195 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2196 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 == 300) { // }} "" // {{ 2197 1 0 "19e5c8f7_a1a9_4348_aa41a572942db630" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2198 1 0 "6be46368_bb3e_4ad8_82647d6f52af8c9b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2199 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2200 1 0 "8951a436_faf4_45df_a268dbb7ddb58c29" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.9) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2201 1 0 "52bb524e_27b1_4bbe_afcf26453d9eb66f" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2202 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2203 1 0 "809789b0_bd70_4c1f_b0d808ce120b1d99" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (serverResponse); // }} "" // {{{ 5 "waitForGUItoContinue" "End" } // }} "" // {{{ 5 "SendStepReturnToServer" "Begin" private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer" "InitLocals" // }} "" // {{{ 2136 1 0 "2520bd9f_739d_4111_a27d89f8f73ec39e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2137 1 0 "aa6010ec_0628_49d5_a87e016b4a4fc7f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 2138 1 0 "a97c5efa_0ce4_4358_9c51c1893f526b9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 2139 1 0 "deceb871_e830_4b14_86e626f745ef083a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 2140 1 0 "00afb5c2_b5db_4458_866a13b6cb332b68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 2141 1 0 "e52bbd02_b31d_4278_a0f45991eab77d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 2142 1 0 "19f99698_3777_4dcf_9fc765c3f221df4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 2143 1 0 "329f8b9b_0798_44f8_9ee6b65ec58b0c44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2144 1 0 "7728ac0d_8630_4f61_94af076392758ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2145 1 0 "70d261f2_edc4_49a0_a5a074cd5ab92b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2146 1 0 "ee0dd62d_582f_4171_b08e37f6106d9b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer" "End" } // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "Begin" private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void { // }} "" private variable n; private variable loopCounter1; private variable strSinglePosition; private variable arrayOfPositions[]; private variable arraySinglePosition[]; private variable labwareID; private variable positionID; // {{ 5 "BuildTempSequenceFromPositions" "InitLocals" { sequence __temp; o_seq = __temp; } // }} "" // {{ 2078 1 0 "d9022e13_e502_4969_a8ee79484e990801" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arrayOfPositions.SetSize(0); // }} "" // {{{ 2079 1 0 "3e178082_8579_435f_a5db4481bb789d9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strPositions, Translate(";"), arrayOfPositions, 0); // }} "" // {{ 2080 1 0 "5d735f26_db1b_4bea_9ee405f4167bb99f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" n=arrayOfPositions.GetSize(); // }} "" // {{{ 2081 1 0 "f497f24b_fd39_417d_8703c0d54662309f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq); // }} "" // {{ 2082 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2083 1 0 "fd645546_0433_46a0_8619026e338529fd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arraySinglePosition.SetSize(0); // }} "" // {{ 2084 1 0 "91aeb0c4_3176_4356_a19a1027bcdb0af3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1); // }} "" // {{{ 2085 1 0 "c2b42369_7829_4c62_b58880fce7867995" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strSinglePosition, Translate(","), arraySinglePosition, 0); // }} "" // {{ 2086 1 0 "016f61c5_fd76_4c74_903df10a03070f7b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" labwareID=arraySinglePosition.GetAt(1-1); // }} "" // {{ 2087 1 0 "886fc872_7c3a_4366_959db6d5f265ed7c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" positionID=arraySinglePosition.GetAt(2-1); // }} "" // {{{ 2088 1 0 "766a54b4_4c5b_4991_9d8ceea62d26b216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq, labwareID, positionID); // }} "" // {{ 2089 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2090 1 0 "0003c6e9_5b43_438d_bc93be342c3c6b55" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq.SetCurrentPosition(1); // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "End" } // }} "" // {{{ 5 "StrTokenize" "Begin" private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 2180 1 0 "500afe4c_98a8_4117_8c279b9994d0b626" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 2181 1 0 "6a0bd918_2fda_4e4c_a680454ce2576168" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 2182 1 0 "f65ed315_68ed_4ec0_ba0b3c217e692b25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 2183 1 0 "9476acee_e5bb_43d1_bbec232ed01bae08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); // Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "Begin" private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void { // }} "" private variable numOfVolumes; private variable numOfChannelsInVariable; private variable n; private variable loopCounter1; private variable arrSize; private variable loopCounter3; private variable strKeyName; // {{ 5 "BuildArrayOfVolumesForChannels" "InitLocals" o_arrayOfVolumes.SetSize( 0); // }} "" // {{ 2052 1 0 "69288f91_eabd_4d15_af5361636ffacbf6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyName = Translate("volumes"); // }} "" // {{ 2053 1 0 "bf4c1108_6751_41ee_8d3d3b1a9418548f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfVolumes.SetSize(0); // }} "" // {{{ 2054 1 0 "a9cfa743_a769_46a3_b8d7e45a67b3d297" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName); // }} "" // {{ 2055 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arrSize > 0) { // }} "" // {{ 2056 1 0 "594bebbb_0d54_4893_b20d783de743dd44" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2057 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < arrSize;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{{ 2058 1 0 "3bfc9004_2595_4917_b4edcdceed06f518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); // }} "" // {{ 2059 1 0 "6be31b23_f55d_4d15_be6abc9ee4bef664" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" Trace("Volume received=", v); // {{ 2061 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2062 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2063 1 0 "4a4891b3_f877_4b14_85196b7e820554b2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2064 1 0 "22c7c768_33c4_4975_909e9586375bfe8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(strKeyName, v); // }} "" // {{ 2065 1 0 "4e01e62a_13a2_408e_9fbfb2300d5996ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 2066 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2067 1 0 "cc565f65_a92a_43ef_9c052b7f5632aca5" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" numOfVolumes=o_arrayOfVolumes.GetSize(); // }} "" // {{{ 2068 1 0 "e49355fb_3fe6_4c8d_930870416e36b708" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numOfChannelsInVariable = StrGetLength(strChannels); // }} "" // {{ 2069 1 0 "804bc477_e950_4a14_af5f667c73cf5176" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2070 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (numOfVolumes < numOfChannelsInVariable) { // }} "" // {{ 2071 1 0 "2e73355c_8b11_4423_b345807cae9d5db8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" n = numOfChannelsInVariable - numOfVolumes; // }} "" // {{ 2072 1 0 "53a650d8_2fc1_4c5b_bd19eda433c2a81a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" v = o_arrayOfVolumes.ElementAt( numOfVolumes -1); // }} "" // {{ 2073 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2074 1 0 "cd047b15_6a02_40f1_adfb116f6bf5d763" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 2075 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2076 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "End" } // }} "" // {{{ 5 "ArrayToString" "Begin" private function ArrayToString( variable & i_array[], variable & o_str ) void { // }} "" private variable arraySize; private variable loopCounter1; // {{ 5 "ArrayToString" "InitLocals" o_str = 0; // }} "" // {{ 2042 1 0 "1a220255_6ba4_40fb_be39a6a2f4e0065f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 2043 1 0 "f821c4ff_f1a2_4ad7_9bd77dd8652567cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str = Translate(""); // }} "" // {{ 2044 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2045 1 0 "afd84a84_8330_46e7_8308e16b5caa05e9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" v=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 2046 1 0 "77436fd3_3c87_4f09_9a89259b15ef5bf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, v); // }} "" // {{ 2047 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 < arraySize) { // }} "" // {{{ 2048 1 0 "d14fd31e_5de8_46f9_bb359f38de9a08ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, Translate(";")); // }} "" // {{ 2049 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2050 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "ArrayToString" "End" } // }} "" // {{{ 5 "JSON_GetFloatValue" "Begin" private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void { // }} "" private variable retVal; // {{ 5 "JSON_GetFloatValue" "InitLocals" o_KeyFloatValue = 0; // }} "" Trace("getfloatvalue"); // {{{ 2098 1 0 "8f2f8625_6c9e_4c47_b4698d29df60004a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" // {{ 2099 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("error getting float value, try with integer"); // {{ 2101 1 0 "5a74df81_6685_4703_8b055144f8d74d45" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2102 1 0 "47bb8c98_9624_40ad_b765abfc6b0d0b49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" Trace("error getting float value, tried with integer"); // {{ 2104 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("wtf ok i guess its zero"); // {{ 2106 1 0 "5b8a3ec6_8ee4_4887_ab7df29fa494cdc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_KeyFloatValue = 0; // }} "" // {{ 2107 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2108 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "JSON_GetFloatValue" "End" } // }} "" // {{{ 5 "SendHHSReturnToServer" "Begin" private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; private variable t_arrayStepReturns[]; private variable loopCounter1; private variable keyName; private variable varType; // {{ 5 "SendHHSReturnToServer" "InitLocals" // }} "" // {{{ 2110 1 0 "6db3f932_ba70_4cf6_9c2a8636580fc754" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2111 1 0 "3cf8a985_83cc_418e_99293de9d9945d5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("HHS-return")); // }} "" // {{{ 2112 1 0 "705c25bc_6db4_4eb9_b05b33999e110198" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{ 2113 1 0 "5a9efc02_a11a_4c0c_b166e3b28800cc6c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" t_arrayStepReturns.SetSize(0); // }} "" // {{ 2114 1 0 "5aa4f3a8_774f_4f35_ae7fa197ef920048" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn1); // }} "" // {{ 2115 1 0 "00ac351d_bc51_41e5_b300af93d6893fa5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn2); // }} "" // {{ 2116 1 0 "2aaf8702_2d08_48ee_be96815ca77463c9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn3); // }} "" // {{ 2117 1 0 "67fcb56e_9f42_4739_a5ee322f12443a17" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn4); // }} "" // {{ 2118 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < 4;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 2119 1 0 "a23ae2ed_5b02_41a0_a69215d0b80fde4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" keyName = StrConcat2(Translate("step-return"), loopCounter1); // }} "" // {{{ 2120 1 0 "9b92ac94_8c71_4b77_95ac0c691427c4bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" varType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2121 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "s") { // }} "" // {{{ 2122 1 0 "1497ea6a_46ab_4ee8_b7951f24b533e644" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2123 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2124 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "f") { // }} "" // {{{ 2125 1 0 "61772f9e_fea3_4011_bba06b7fe66e8b0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2126 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2127 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "i") { // }} "" // {{{ 2128 1 0 "28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2129 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2130 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2131 1 0 "0a0447b8_96fb_495a_90dfa8f1e2c488ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2132 1 0 "b2a13d10_b443_4fc0_aa0baa2a23cddafe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2133 1 0 "0adf40b4_5c73_46d8_8e6042c6dfd32d86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2134 1 0 "5a5dabeb_e3ed_4730_ab86839e00f75077" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendHHSReturnToServer" "End" } // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "Begin" private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer_EightOutputs" "InitLocals" // }} "" // {{{ 2148 1 0 "a5a7b215_f4cb_4951_82e1faf532cd7222" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2149 1 0 "9480693e_99ec_4cfd_aa9c8f48e76ee42f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 2150 1 0 "3f068696_35bd_4060_8b291470a817f628" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 2151 1 0 "b68a52fb_e141_4e4c_b5e7bbcbf0c9817f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 2152 1 0 "8ab4a139_9629_43b7_98f13d1058881e4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 2153 1 0 "1417a4bd_aea8_4b36_8a7a05739a789ecf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 2154 1 0 "24b6213e_470e_468a_86dc55b44ff96b95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 2155 1 0 "42403d87_ddb6_4bee_8fc6ad09efb7573a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return5"), stepReturn5); // }} "" // {{{ 2156 1 0 "8493044a_674d_4139_90fa1c7a00050abc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return6"), stepReturn6); // }} "" // {{{ 2157 1 0 "b43cf915_ef0d_4d62_985deae88bcd6c18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return7"), stepReturn7); // }} "" // {{{ 2158 1 0 "584d78fd_87d0_4502_a6d089cfaf888318" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return8"), stepReturn8); // }} "" // {{{ 2159 1 0 "711dbc6f_e5c4_40a0_bef5785dc99707ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return9"), stepReturn9); // }} "" // {{{ 2160 1 0 "47856892_8af4_409f_88723a44ebe61362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2161 1 0 "e5054174_6f3f_4356_8dc30683be948abe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2162 1 0 "e21196c3_6b8f_47e5_a2888114650b2ec8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2163 1 0 "3fec97a3_9f33_4fef_afe5355188bf56d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "End" } // }} "" // {{{ 5 "StrArrayToInts" "Begin" private function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void { // }} "" private variable arraySize; private variable loopCounter1; private variable val; private variable o_arrayOfInts[]; // {{ 5 "StrArrayToInts" "InitLocals" o_intarray.SetSize( 0); // }} "" // {{ 2172 1 0 "d68ba554_ea5e_486c_90e45e6f46e051a7" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 2173 1 0 "2ceaf7fd_f918_493e_a519f9ccc1a58114" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfInts.SetSize(0); // }} "" // {{ 2174 1 0 "f1b90762_2d83_476f_b1cd6ef39b938b13" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2175 1 0 "832d04b5_dd9e_47f6_86628701b9ba44ef" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" val=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 2176 1 0 "a10f8b45_b69d_4a85_be5a713ea78ccd01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" val = APPSLIB::StrConvertToNumber(val); // }} "" // {{ 2177 1 0 "70dffb74_d5e0_4795_bc74a43dbf1c7d9b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_intarray.AddAsLast(val); // }} "" // {{ 2178 1 0 "f1b90762_2d83_476f_b1cd6ef39b938b13" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "StrArrayToInts" "End" } // }} "" // {{{ 5 "ConvertHSSErrCode" "Begin" private function ConvertHSSErrCode( variable hssErrCode ) variable { // }} "" // {{ 5 "ConvertHSSErrCode" "InitLocals" // }} "" // {{ 2092 1 0 "0390e8b9_f753_48cc_ba9811c6326b8cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (hssErrCode == 0) { // }} "" // {{{ 2093 1 0 "9f0ce7fc_13c6_4496_9d762a07174e50f1" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (1); // }} "" // {{ 2094 1 0 "0390e8b9_f753_48cc_ba9811c6326b8cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2095 1 0 "4c347e8c_4bce_4fd2_9771e3402c6f946d" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (0); // }} "" // {{{ 5 "ConvertHSSErrCode" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=stefa$$valid=0$$time=2023-05-20 10:53$$checksum=cadaa497$$length=084$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx5FF.tmp ================================================ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx68E5.hsl ================================================ namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HslHamHeaterShakerLib.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "SchedulingDev\\HSLAppsLib.hsl" } namespace _Method { #include "STAR_OEM_toolkit_pH.hs_" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" } namespace _Method { #include "STAR_OEM_toolkit_centrifuge.hs_" } namespace _Method { #include "STAR_OEM_toolkit_MPE.hs_" } namespace _Method { #include "Hamilton pH Module Controller.hs_" } #include "STAR_OEM_Test.res" namespace _Method { #include "Hamilton MPE2\\HSLMPELib.hsl" } namespace _Method { #include "Hamilton Centrifuge\\Hamilton Centrifuge.hsl" } namespace _Method { #include "HSL_LiquidClassLib.hsl" } /* {{ 2 "LibraryInsertLine" "" */ // }} "" variable loopCounterMain; variable msg; object objJSONFromServer; variable commandFromServer; variable initializeAlways; variable o_stepReturn; object objJSONToServer; sequence seq; variable tipSequence; variable sequenceCounting; variable channelVariable; variable channelUse; variable labwarePositions; variable aspirateSequence; variable v; variable arrayOfVolumes[]; variable liquidClass; variable aspirateMode; variable capacitiveLLD; variable pressureLLD; variable liquidFollowing; variable submergeDepth; variable liquidHeight; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable airTransportRetractDist; variable touchOff; variable aspPosAboveTouch; variable o_liquidLevels_mm[]; variable o_liquidLevels_mL[]; variable o_stepReturn2; variable o_stepReturn3; variable dispenseMode; variable dispenseSequence; variable dispPositionAboveTouch; variable zMoveAfterStep; variable sideTouch; variable wasteSequence; variable useDefaultWaste; variable reducedPatternMode; variable aspirateVolume; variable o_stepReturn4; variable dispenseVolume; variable tipEjectToKnownPosition; variable carrierName; variable barcodeFileName; variable barcodeReadPositions; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable lidSequence; variable plateSequence; variable toolSequence; variable transportMode; variable widthBefore; variable gripHeight; variable gripWidth; variable gripSpeed; variable gripperToolChannel; variable checkPlate; variable zSpeed; variable gripForce; sequence lidSeq; sequence toolSeq; variable xAcceleration; variable platePressOnDistance; variable ejectToolWhenFinish; object objHttp; variable blnReturn; variable blnSuccess; variable usedNode; variable deviceNumber; variable action; variable sampleInterval; variable shakingToleranceRange; variable id; variable monitorResult; variable firmwareVersion; variable serialNumber; variable command; variable parameter; variable plateLock; variable shakingAccRamp; variable shakingDirection; variable simulate; variable startTimeout; variable toleranceRange; variable securityRange; variable intTrace; variable shakingSpeed; variable shakingTime; variable temperature; variable waitForTempReached; variable inverseGrip; variable liftUpHeight; variable retractDistance; variable tolerance; variable labwareOrientation; variable movementType; variable collisionControl; variable gripMode; variable showCollisionCheckDialog; //global device HxFan ("STAR_OEM_Test.lay", "HxFan", hslTrue); variable refillAfterEmpty; variable chamber1LiquidChange; variable chamber2WashLiquid; variable chamber1WashLiquid; variable chamber2LiquidChange; variable FirmwareCommand; variable FirmwareParameter; variable CommandListElement; variable CommandListLength; object FirmwareCmdDict; variable yDisplacement; variable zDisplacement; variable xDisplacement; variable yOrigin; variable xOrigin; variable zOrigin; variable ControllerID; variable SimulationMode; variable ErrorCode; variable DeviceID; variable TargetTemperature; variable StopAllDevices; variable TraceLevel; variable Comport; variable Simulate; variable ModuleName; variable Angle; variable inputSequence; variable barcode; variable seqFirstPosition; variable seqSecondPosition; global device ML_STAR ("STAR_OEM_Test.lay", "ML_STAR", hslTrue); variable ModuleID; variable probePattern; variable pH_probe_1; variable pH_probe_2; variable pH_probe_3; variable pH_probe_4; variable Variance; variable Timeout; variable CalibrationLevel; variable CalibrationValue; variable CalibrationTemperature; variable Precision; variable Temperature; variable ChargeCounter; variable ReplacementDate; variable BatteryCondition; variable ActualCharge; variable MeasurementCounter_Probe_1; variable MeasurementCounter_Probe_2; variable MeasurementCounter_Probe_3; variable MeasurementCounter_Probe_4; variable HardwareNumber; variable Revision; variable SerialNumber; variable PartNumber; variable Selector; variable VoltageData; variable Day; variable Year; variable Month; variable Charge; variable AutoCharge; variable AutoChargeLevel; variable Probe; variable Mode; variable ProbeNumber; variable pHHighValue; variable pHHighVoltage; variable pHLowValue; variable pHLowVoltage; variable CalibrationSlopeRatio; variable CalibrationOffset; variable CalibrationSlope; variable CycleNumber; variable NodeName; variable Label; variable AlwaysInitialize; variable intPresentPosition; variable Direction; variable CloseCoverAtEnd; variable ArrSpeed; variable ArrAcceleration; variable ArrDuration; variable i_ArrDuration[]; variable i_ArrAcceleration[]; variable i_ArrSpeed[]; variable Decelleration; variable Speed; variable Acceleration; variable MaxRunTime; variable SpeedSensorTrip; variable TimeLeft; variable GravitySensorTrip; variable CurrentSpeed; variable TemperatureSensorTrip; variable ProfileStatus; variable RotorDriveRunning; variable Deceleration; variable DeviceName; variable AdapterDeviceID; variable InstrumentName; variable PortNumber; variable MPEOptions; variable ComPort; variable BaudRate; variable CollectionPlateHeight; variable OffsetFromNozzles; variable NeedleOffset; variable WellVolume; variable FlowRate; variable SourceID; variable Needleoffset; variable PlateHeight; variable WellDepth; variable EvaporateTime; variable FollowRate; variable EvaporateTravelDistance; variable NozzleHeight; variable FilterHeight; variable WasteContainerID; variable FullReading; variable CapacityVolume; variable CalibrationDate; variable EmptyReading; variable blnReset; variable CurrentGasTemperature; variable Heating; variable CurrentEvaporatorTemperature; variable MinimumGasTemperature; variable MinimumEvaporatorTemperature; variable MaximumEvaporatorTemperature; variable MaximumGasTemperature; variable ManifoldPressureSensor; variable HighPressureSensor; variable InputPressureSensor; variable LowPressureSensor; variable MaximumTemperature; variable MinimumTemperature; variable VacuumActive; variable VacuumRunTime; variable DisableVacuumCheck; variable Smart; variable SensorReading; variable ControlPoints; variable ReturnPlate; variable Volume; variable Seconds; variable DefaultTemperature; variable MeasureTime; variable MeasureHeight; variable CalibrationValue1; variable TempSoln1; variable TempSoln2; variable CalibrationValue2; variable blnCalibrateDynamically; variable CalibrationValueRef; variable TempSolnRef; variable Module; variable Reference; variable Calibration1; variable Calibration2; sequence seqModule; sequence seqCalibration1; sequence seqCalibration2; sequence seqReference; variable CalibrationTime; variable arrCalibrationSlopeRatios[]; variable arrpHValuesReferenceSolution[]; variable CalibrationSlopeRatios; variable pHValuesReferenceSolution; variable BluetoothPort; variable NumDryCycles; variable NumWashCycles; variable DryTime; variable Gripper; sequence seqGripper; variable WashPosition; sequence seqWashPosition; variable DryPosition; sequence seqDryPosition; variable DryCycles; variable TransportChannel; variable WashCycles; variable arrpHValues[]; variable flt_pHValues; variable seqMeasure; variable ProbePattern; variable seqMeasurement; variable MeasurePositions; variable hssErrCode; variable LiqClassParameterName; variable LiqClassParameterValue; variable LiquidClassName; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" STAR_OEM_TOOLKIT::_InitLibrary(); STAR_OEM_TOOLKIT_PH::_InitLibrary(); STAR_OEM_TOOLKIT_CENTRIFUGE::_InitLibrary(); STAR_OEM_TOOLKIT_MPE::_InitLibrary(); HAMILTON_PH_MODULE_CONTROLLER::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{{ 1 1 0 "e7768ad9_4016_4422_bd83f5785d03ceda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnReturn = HSLHttp::Initialize(objHttp); // }} "" // {{ 2 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnReturn != blnSuccess) { // }} "" // {{{ 3 1 0 "62c131b4_44b9_4249_8e0a3205a25b21b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); // }} "" // {{{ 4 1 0 "fb18125e_b294_4554_912c3d447526996e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 5 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 6 1 0 "ee92e29b_e94c_46cf_a67851f3be61c805" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Hi, Im a VENUS method.")); // }} "" // {{ 7 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; // }} "" // {{ 8 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "de417132_351a_4ad8_80c71b1863d4a870" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" commandFromServer = Translate(""); // }} "" // {{ 10 1 0 "d9c97239_3c9d_4992_8fb5820ae5721d90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate(""); // }} "" // {{ 11 1 0 "57da7835_7495_4b16_8b82897289efbd11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn2 = Translate(""); // }} "" // {{ 12 1 0 "cf024fcc_3594_4355_b33f4bd8c8bdfb4e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn3 = Translate(""); // }} "" // {{ 13 1 0 "9ed0b80d_8518_474f_a94d8f843a6158fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn4 = Translate(""); // }} "" // {{ 14 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 15 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 16 1 0 "0257e5d3_7b99_47be_a062950a2b200664" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" msg = waitForGUItoContinue(); // }} "" Trace("JSON received from Server:", msg); // {{{ 18 1 0 "36be63f7_a79c_44a4_b1dc636a536612bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONFromServer); // }} "" // {{{ 19 1 0 "5c2b861d_97f9_4e18_a5fce25e78026299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::ParseJson(objJSONFromServer, msg); // }} "" // {{{ 20 1 0 "562abca5_8891_402a_b8a7c5ba56301a86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); // }} "" // {{{ 21 1 0 "cb002e33_cc71_4a25_890fa8f9f5d982a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("id"), id); // }} "" // {{ 22 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 23 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 24 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "initialize") { // }} "" // {{{ 25 1 0 "773dbb38_0414_403d_b2ff24100c7cf1fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); // }} "" // {{{ 26 1 0 "97af1c08_2914_4f72_b27c685f11b30bb6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); // }} "" // {{{ 27 1 0 "04505c20_428c_4440_8169ddcbaade8bbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::Initialize(ML_STAR, 0); // }} "" // {{{ 28 1 0 "b3ab11e2_0297_446f_9cf37ca7c0c9d19f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Init step return:"), o_stepReturn); // }} "" // {{{ 29 1 0 "57d4e0cd_327e_4cac_8e83a7da6222dda0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 30 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 31 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 32 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 33 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 34 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipPickUp") { // }} "" // {{{ 35 1 0 "53e1cfb5_1fde_491f_bfd878eceda16ba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 36 1 0 "f0e9e31f_d871_4632_bd466e43fc38c771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 37 1 0 "e6311b13_2132_40e0_aff0b5556205c32a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 38 1 0 "cb659ed1_5f0c_41e8_8a060ec0b650c589" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{ 39 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 40 1 0 "6699226b_6c7b_4b79_95b8017162b433b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 41 1 0 "bd13798f_62e7_4dd2_8e91769d48d10fc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 42 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 43 1 0 "ce13caa6_634b_4dec_8a6c3ea74b144e95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 44 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 45 1 0 "29f69958_d99b_455a_93c7b0480bfd1658" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn); // }} "" // {{{ 46 1 0 "732425fd_a199_4354_8479d821ee834e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 47 1 0 "22f00193_1056_456e_a515d156eee56e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 48 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 49 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 50 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 51 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelAspirate") { // }} "" // {{ 52 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 53 1 0 "55ee3109_036b_4acb_8a15175f3316656f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 54 1 0 "a5b3e5ac_4910_4a4a_8e20bdb7f61836e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 55 1 0 "ce04189a_96e4_4bdc_aedc8a68bf64647b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 56 1 0 "882daff3_cc25_4778_aec6a937fc87347c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 57 1 0 "7f7b9f83_5611_4a3b_b5c120689696addb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 58 1 0 "39e464b7_0def_403b_a02f5dd2a358dbd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 59 1 0 "2e2739aa_8eb6_44e0_b887ea00b04acac0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 60 1 0 "9408edd8_3cee_43e0_976b4a6fabf5f4ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 61 1 0 "a2848877_3518_4d1d_95f77c1f313003e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); // }} "" // {{{ 62 1 0 "4b5ce3d0_91f4_4c14_aaf1cad34e0caf60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" Trace("Bookstart"); // {{{ 64 1 0 "12892ce3_3bc6_4165_b3b6ae0eacad20e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" Trace("Bookend"); // {{{ 66 1 0 "15bd5af3_2da1_420b_beb398dc2347a0ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 67 1 0 "4fe61fb4_bb39_4728_96b8c6959f4943ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); // }} "" // {{{ 68 1 0 "ba68c240_2397_4872_949ee1ee984595c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 69 1 0 "baac19fc_9f21_4e8c_b833f2a1ba2433f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 70 1 0 "253130f8_f599_4ef4_9d5a15e2cb89d1eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 71 1 0 "51233931_483f_4deb_a8627b909d6c9116" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 72 1 0 "bf0c65ba_7847_4768_92ebbe8adc6568c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 73 1 0 "30a6715c_b6c6_4d86_b5c02f3da440e309" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 74 1 0 "6eb82b6e_8093_461e_afc712cab07398dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 75 1 0 "3f8b6af1_7872_4a20_92bf2c4507ea9f31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); // }} "" // {{{ 76 1 0 "7dd1b818_5a89_4b03_82734e6f4d7b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{ 77 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 78 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 79 1 0 "cb2b67f0_7384_4a41_831de652f92d4c85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 80 1 0 "29a868b4_7800_4747_b14eaf0f2c10ba40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 81 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 82 1 0 "08f63789_65f1_4e7d_996dc22e8f33d416" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 83 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 84 1 0 "8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 85 1 0 "7cb70e6b_15bb_4380_b62150df065d208f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 86 1 0 "4714958b_0632_4de2_983c7fe9de68df6c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 87 1 0 "bd40f564_16d7_4037_aef8eebfe28a4362" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 88 1 0 "18bf536c_98f4_4345_86a103db4a9b68a1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 89 1 0 "d60cd9aa_083b_4487_8d6218cee02fa4cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 90 1 0 "e86187c0_0d19_453e_be1c5a401d0d5d93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 91 1 0 "d66c2dae_4cc3_4a31_bafe46d1dd63e790" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 92 1 0 "d23f143d_290d_4d0f_b368241a6a9adaed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 93 1 0 "0428e844_3191_4cde_b7f3544f34c833f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 94 1 0 "a7ca006f_941c_4b31_9749313ad9b4e079" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 95 1 0 "8c97ba72_f880_4504_baee8b8db3d13310" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 96 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 97 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 98 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 99 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelDispense") { // }} "" // {{ 100 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 101 1 0 "909bc255_6ca1_4700_bc102ccb34ae5be4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 102 1 0 "fd48dd93_9f42_4df0_9f659e27a5552543" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 103 1 0 "3ff3f492_86a5_40af_a3deabccbab3898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 104 1 0 "3cbb883f_48ae_40fe_afe67da944df94b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 105 1 0 "ab1033bc_1216_450a_9fb60655a1f1a21a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 106 1 0 "0bc1541f_26d5_44d6_8db6ae336fec17bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 107 1 0 "8c10cc29_c05e_4cea_9ed559249651e805" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 108 1 0 "3e0373da_7c7c_46ab_9b77fba19915662e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 109 1 0 "b98fdc49_cdcb_4f3c_81df0b76eafa1411" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 110 1 0 "7458d32a_402a_4215_b52378c78468ec80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 111 1 0 "5e14f2ce_c932_474b_be03f3c043c700e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 112 1 0 "c2010d1d_5a78_4871_a835a6613a1237bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 113 1 0 "d4a6e6a3_0158_45f1_9c359d8e48e01bed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 114 1 0 "011e9828_5413_40c1_80d0c3bdde1c6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 115 1 0 "2d7a4942_b2ce_43a2_8decf49fa0c9576c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 116 1 0 "ad9f0bbf_e495_41c5_898a3be32bb16f2b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 117 1 0 "5c734886_aa50_424c_b89f6894bc37dd8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 118 1 0 "d1bc00cc_4286_4409_b1c49b6350e7e6ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 119 1 0 "b178ce99_db9e_4453_bed28d4ce0457bc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); // }} "" // {{{ 120 1 0 "1b38ad88_3c65_4e58_812f9ed32ce32485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{{ 121 1 0 "f34066f1_63f9_474f_8a9c41e56962dc74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 122 1 0 "6b94916e_355b_4ee9_8eb4f1b49c95fea4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 123 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 124 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 125 1 0 "e962dd26_3672_4418_bd3c40e9929929eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 126 1 0 "6257966a_6b39_41c8_a057a79b8e39cd4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 127 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 128 1 0 "3f230e40_8bd9_4235_b88cd0ca80799661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 129 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 130 1 0 "8d82ff40_d831_430b_97d97c01d2a4474e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 131 1 0 "ac0ad5a7_d00b_46fe_a18f94f8dab3863c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 132 1 0 "b7f86b6c_03a4_4e12_a05e5e8bdc958b75" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 133 1 0 "9bfa8704_2ae0_4a63_83d09fddbacfd336" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 134 1 0 "860b660a_6947_4c88_a2a039bf65040bf5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 135 1 0 "797f0eef_5bb2_4a2e_a178af74f4892bd7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 136 1 0 "2753c24e_c4dc_402d_866b6bc8691ecc1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 137 1 0 "1ac127fd_b830_496f_b4d4b9671137ebff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 138 1 0 "3ee5d751_d3a5_468a_b539c4f0ff22023e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 139 1 0 "b86d492c_446f_4921_97140cfd462ace87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 140 1 0 "e049946d_6322_4b39_9c46a2d0eb345528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 141 1 0 "531432f5_ef8a_416e_8be28a07ae9b0d25" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 142 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 143 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 144 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 145 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipEject") { // }} "" // {{{ 146 1 0 "69be671e_7cdd_48d3_af136435754c1d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 147 1 0 "f3444c0f_4863_4fdd_94a025b682d8a6d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 148 1 0 "12ad2f39_c160_4afc_9f6ffce7e3ddb433" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 149 1 0 "2883bb64_2fe3_47ca_996e11434afc57cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 150 1 0 "10c3b13e_7129_4cfd_b88b29d0bbc31a28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); // }} "" // {{{ 151 1 0 "f12cebf8_f377_4e29_9178b685b8637482" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 152 1 0 "53842548_1bc1_4cff_b1c7b9254000a8bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 153 1 0 "40577bba_0459_4794_a91070bf46ef5b5f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{ 154 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (useDefaultWaste == 0) { // }} "" // {{ 155 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 156 1 0 "655bc92f_08a8_4c16_a0276997aec081ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 157 1 0 "a3a0b5ef_85c0_4552_a28b3356d7886eb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 158 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 159 1 0 "efadb8c3_c431_4ed4_a739a951c05ee518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 160 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 161 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 162 1 0 "2dda50b6_7f82_4e8a_a1d203715119213a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 163 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 164 1 0 "33f8a21f_6ff1_4901_9c57a2c3bfc58f55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 165 1 0 "7fa61e34_a1f2_4b99_8f6bed13c6ce120f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn); // }} "" // {{ 166 1 0 "2e847c00_28a1_4b09_9ed5515ce7746892" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 167 1 0 "f40baab8_ec2e_4552_91ddf539ae8bfda9" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 168 1 0 "2e65ae8a_e63b_4697_a998e72591e5c0c5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 169 1 0 "7672ebc2_4687_4107_a4fd6c56c422373e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 170 1 0 "a7db5128_f8e4_4afe_81f46b2cc86e608d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject step return:"), o_stepReturn); // }} "" // {{{ 171 1 0 "683607f4_928f_4cea_b901fe3502404424" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 172 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 173 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 174 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 175 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 176 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 177 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipPickUp") { // }} "" // {{{ 178 1 0 "1f82c33f_a085_47cc_85dbbde3e42a53c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 179 1 0 "9f9fe665_47a2_4a12_961460021d1f09f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 180 1 0 "743960d2_9d0f_4ccf_848662247e3211c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 181 1 0 "b737602c_63e8_4c4c_b47f40cb815914ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); // }} "" // {{ 182 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 183 1 0 "00bd1831_c335_40f5_b706f0ffadbe2890" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 184 1 0 "1f16418c_8fa7_44a5_a6db75dd9a79ee84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 185 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 186 1 0 "b66db4eb_9e79_4c19_909fd8d14d37cba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 187 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 188 1 0 "f3e7cbf6_0242_4463_8d4ed0db4667f7db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2); // }} "" // {{{ 189 1 0 "b080a5c6_324c_4aae_b5899dede6d863f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 190 1 0 "aa5a9c4b_0377_46ce_9b46883db15cbd7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 191 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 192 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 193 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 194 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Aspirate") { // }} "" // {{ 195 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 196 1 0 "373f30c8_ec07_4298_94d6ac75358ab1ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 197 1 0 "ef3ae377_e985_4ef6_93b005aa91c9b2b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 198 1 0 "d8eea65a_6e59_4c32_a47bae09779f9528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 199 1 0 "8eb02312_a070_491c_9758b3cdbdee0cfc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); // }} "" // {{{ 200 1 0 "6eaf8bee_b53f_4f01_87c1380bc345e386" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 201 1 0 "d9923a2f_e7cf_4f3e_81746e378a20baab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 202 1 0 "2c411993_e3fc_4753_9a90308b226078a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 203 1 0 "5d900896_b2b9_442b_b24294b9bbfbdaad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 204 1 0 "21149e9e_21c9_4ddd_93e07b693e3ab3fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 205 1 0 "bcefef03_102b_4887_adad59c2fb7ad551" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 206 1 0 "9665b0a3_35e8_47e9_b14ac1a4818cfa6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 207 1 0 "ff93d28b_afe9_47e7_9b6eb50d6845384f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 208 1 0 "ef43b824_fd38_42d4_9e932904dbf14813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 209 1 0 "b0378457_e370_448b_bfd6955c05e57bcb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{ 210 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 211 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 212 1 0 "615bcff6_e9d5_4303_a5d5826b2e2548dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 213 1 0 "cf4ad428_945e_4921_9441ee34cf9c96bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 214 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 215 1 0 "86397ec2_2ee5_4ec1_8bec47d8e87584b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 216 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 217 1 0 "48f88263_72c1_4df2_865181cffed9feee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 218 1 0 "f1b764e8_e556_4d08_bb83bdc12dc64a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 219 1 0 "164c104a_cf5f_46de_b23a098a18b3fdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 220 1 0 "ee779f77_51a9_46d7_b58b7bcaf13519f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 221 1 0 "e874eb6d_1e97_4590_95d9b10cb059c935" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn4); // }} "" // {{{ 222 1 0 "0ca1df86_a344_45fd_b384e13ba44c5ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 223 1 0 "2497228e_672e_4c95_9f31679fe87bbe1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 224 1 0 "e4930eee_c625_4acb_a81c05e149a1a218" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 225 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 226 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 227 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 228 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Dispense") { // }} "" // {{ 229 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 230 1 0 "78cba921_2a37_4b4a_91ef7fbe81fcddd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 231 1 0 "b58b4cbd_16e9_4444_9037061e29bc5614" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 232 1 0 "0ab910ec_826d_4c84_bac7ed9564f3bdab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 233 1 0 "84d664b7_70d0_4136_bdfd4de2aa760ad8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); // }} "" // {{{ 234 1 0 "18becc6a_2df4_4281_8b16ade9038979f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 235 1 0 "68c565db_e5ed_44e8_b3846a1d98034e76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 236 1 0 "6a4221a8_9488_48f9_8381b1bc0f0c960d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 237 1 0 "45dcb271_e326_42fc_b8684816d3ffdc93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 238 1 0 "14552b13_e77b_4fb7_9020445ecc5ade21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 239 1 0 "91783f87_af6f_446e_a74fb1725f17d282" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 240 1 0 "e2e7f702_1710_49eb_9b1046dbf4f143e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 241 1 0 "1817aa70_86fa_4318_a8e46569701623e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 242 1 0 "50bd6734_10d5_4291_b40eb708539514fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 243 1 0 "ad5fbb01_d809_4b7d_b858ed597709f28f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 244 1 0 "09566247_6b2d_4c73_b43fe303a30f89c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 245 1 0 "3ead74f7_3b5c_4b21_84d2488c2eceab73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 246 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 247 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 248 1 0 "835f8470_7e8c_40ff_a48abcc85d6b778b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 249 1 0 "059394fc_e924_4d57_b1b85f79f9947fa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 250 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 251 1 0 "6c4be3a7_a450_459c_90545a208f9f459f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 252 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 253 1 0 "c164a94e_2926_462e_9487870d403fe8b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 254 1 0 "86c0fb85_8aaf_4bec_9f6f1f642206487f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 255 1 0 "77047add_8050_4522_ad477b97455a8327" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 256 1 0 "5b2c6f23_9a69_489d_b52179c78c03e48f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 257 1 0 "a9a9244b_829f_4c5b_9a64f1018b029453" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn4); // }} "" // {{{ 258 1 0 "781580a9_199e_4373_b48bb55a97f8a463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 259 1 0 "1867ae44_25f8_4926_ae081e490fd5aa0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 260 1 0 "dbb3b30c_b4a1_4cf6_a24b62b63f155369" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 261 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 262 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 263 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 264 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipEject") { // }} "" // {{{ 265 1 0 "7cf9db16_d78c_4aa0_825cc3c2c22f287c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 266 1 0 "ccca7a97_c22a_4f20_b2d9a60d67850eee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 267 1 0 "a319f75e_77eb_4845_856516ce060213f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 268 1 0 "d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); // }} "" // {{ 269 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipEjectToKnownPosition == 0) { // }} "" // {{ 270 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 271 1 0 "24eeb6dd_1e20_422c_a1a8199cbca73b33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 272 1 0 "5197334f_cde5_4d52_9c528a0c4f7401b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 273 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 274 1 0 "110b82e1_8a5b_48e4_a3adbab701cffc8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 275 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 276 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 277 1 0 "fa32bbf8_8345_4897_aaf09d112d374893" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 278 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 279 1 0 "ef087a4e_684e_4d98_87109abf154fbc85" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2); // }} "" // {{{ 280 1 0 "328216cf_22dd_47a1_9f1ba089b1ac7702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn); // }} "" // {{{ 281 1 0 "53265943_7975_4275_ad98df313054f97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2); // }} "" // {{{ 282 1 0 "c13d9773_7daf_4c3c_9064fdd4f7c7008f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 283 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 284 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 285 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 286 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 287 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "loadCarrier") { // }} "" // {{{ 288 1 0 "76d739d0_ff4a_490b_9c47f411d29ef7a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 289 1 0 "ca623aa7_ed48_45fa_9f4055fb8e08c3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); // }} "" // {{{ 290 1 0 "64a8e193_7e7e_412e_8a0657f0e832eaef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); // }} "" // {{{ 291 1 0 "39e6aaef_5cce_4915_b5b6ede214c7371e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs); // }} "" // {{{ 292 1 0 "1d4d284f_fd1e_4f8a_a2158846ad6a67f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Load carrier step return:"), o_stepReturn); // }} "" // {{{ 293 1 0 "358b7fc3_40a2_418b_9d61d94eef1556f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 294 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 295 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 296 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 297 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "unloadCarrier") { // }} "" // {{{ 298 1 0 "797d23a7_c62a_471a_a52b10fea8bcc154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 299 1 0 "f1c35790_adb7_49eb_a96864d8b1d66cea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn); // }} "" // {{{ 300 1 0 "6e6ded71_3f99_46c5_9362117beb502a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn); // }} "" // {{{ 301 1 0 "8713fee4_6b93_4296_a5396254fd404d52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 302 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 303 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 304 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 305 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 306 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripGet") { // }} "" // {{ 307 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 308 1 0 "c4847ae5_e161_4f23_aa432eda22de28bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 309 1 0 "022a5cdd_3f4f_4e18_927c174fc57a68a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 310 1 0 "3e462067_5eb3_49c3_b7bf6a27de9ce3bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 311 1 0 "f7004881_3f0d_4621_a88d55dec8fc0d30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 312 1 0 "262b36ba_6d86_4009_bdc9a3881db7074e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 313 1 0 "be44b37f_7cec_4f69_81c223f2c30b120b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 314 1 0 "3dea3158_65f8_44bc_8d06a31ce3458dab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); // }} "" // {{{ 315 1 0 "308b2aa2_5970_4692_858049c6559d6ad0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 316 1 0 "756d0f81_3645_4a49_a0c2259581e11498" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 317 1 0 "cdbf11ba_b1f8_4016_811240a02705f1fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{{ 318 1 0 "625df597_c6c8_4e4a_b956e9580bfbc568" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); // }} "" // {{{ 319 1 0 "3576d134_8507_4e47_9c2bcc3dce8c026d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 320 1 0 "5b9c06ad_9081_4b6b_97e50cc87623b888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 321 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 322 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 323 1 0 "d1f3c2ac_9c68_4200_a3506bbbed8e42a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 324 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 325 1 0 "f1d1c43b_a9dd_4573_a69dd7c0e79eea40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 326 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 327 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 328 1 0 "4d304110_107e_412e_909bb84008a244de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 329 1 0 "8f8b1ba1_af12_4cdd_acf2096420ede259" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{ 330 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 331 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 332 1 0 "72e31f7d_c091_4525_a5cf7001754b199d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 333 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 334 1 0 "47dfcbb5_d784_48bb_b36b97509434a3a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 335 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 336 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 337 1 0 "e6c53925_446e_468e_b0e0654b4b9d9a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 338 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 339 1 0 "c0cbb194_1b8b_4fe0_a0f706e03eaa0748" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 340 1 0 "46703217_a28e_42ce_b13c11d73ba34bfa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn); // }} "" // {{{ 341 1 0 "189164cc_2681_492f_83f072fb537648b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn); // }} "" // {{{ 342 1 0 "c8d6960a_f416_47b1_a29e2752973c0ec9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 343 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 344 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 345 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 346 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripMove") { // }} "" // {{ 347 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 348 1 0 "5755c338_faa3_4f0a_9acd4cd01a912862" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 349 1 0 "2849c819_a3dc_4328_8484ccc4785993d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 350 1 0 "32f0a8f9_3af2_42a3_90f246cc874e0e8f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 351 1 0 "791b6e1a_07b8_49cb_8122670d0871189f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 352 1 0 "036d0d84_e161_4b03_8b828dcb6b44e437" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{ 353 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 354 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 355 1 0 "e038f780_938f_4867_98f769488ca44b04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 356 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 357 1 0 "6bd2d2a1_1051_4443_a1af9b68df2876b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{{ 358 1 0 "3d8767e5_5f31_4ce5_91a11e28045ec87a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 359 1 0 "e9e0b38e_13aa_40f9_8e470eb1de09eb19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("wrong"), Translate("nowwrongere")); // }} "" // {{ 360 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 361 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 362 1 0 "064a5c1b_f450_44d6_a2042ebde115527d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 363 1 0 "ee8b8050_164a_4de8_b6ce02120236efbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 364 1 0 "be0898fe_cdb8_4ac3_a9e991e26bdb6658" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here"), Translate("now here")); // }} "" // {{ 365 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 366 1 0 "ca4b75ee_26d9_4a3b_8e3366d575348125" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 367 1 0 "ea0afc75_5bc7_4c06_ac73c2f4d5f887a0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 368 1 0 "1965d128_c7f1_4206_87e4ca1ce70c1dff" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 369 1 0 "615cbdd3_e5f2_4bc0_bb3661a2482eb770" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 370 1 0 "86fc0696_8c53_4c05_a9c0eaa58f279054" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 371 1 0 "90f602a1_fdc5_48fd_801269ecd2c3f9bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn); // }} "" // {{{ 372 1 0 "dc418b75_2d70_4034_84a767fba752b262" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn); // }} "" // {{{ 373 1 0 "ae4414d3_a939_4fdb_a0ed06f1be1506e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here here"), Translate("nohhere")); // }} "" // {{{ 374 1 0 "6379549c_caf9_409f_b293abf77f1dcfbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 375 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 376 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 377 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 378 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripPlace") { // }} "" // {{ 379 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 380 1 0 "6f38d60b_6dc5_4159_ba30360f264222da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 381 1 0 "b6ef73cf_c89c_41cc_a3b72dc5aaf70f90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 382 1 0 "c7e5f5bd_edcc_4000_9be3db81af0c79fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 383 1 0 "91ff4c39_6a86_4eda_998a5461ef6c3cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 384 1 0 "341a6f8e_b4c8_4966_b9520322d1bc2e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 385 1 0 "32792c80_3b36_4a25_8fff6b99bfcf1919" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); // }} "" // {{{ 386 1 0 "b1e5d86e_c659_4d33_9e0f83fdb20b2cb5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 387 1 0 "76b26748_4e74_45f7_85a7dc102b5fd7b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); // }} "" // {{{ 388 1 0 "ee221e8a_a662_49d8_be2ef0ed631d9527" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 389 1 0 "cbefd54c_5f0a_4a16_a0199198529b71fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 390 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 391 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 392 1 0 "ac4e7090_c3c7_4707_8d98dc55262c294b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 393 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 394 1 0 "eb5776ad_c858_4ee8_ba31f47af19e76af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 395 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 396 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 397 1 0 "1f3eb006_1b10_427e_99d0b530f1afc2ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 398 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 399 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 400 1 0 "a04c5993_bf3e_46c7_92f24c8236636b00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 401 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 402 1 0 "2455f68c_be4e_4a21_9e9e78f78f6e8e3c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 403 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 404 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 405 1 0 "ad5d98b0_9e3d_4275_90ceef06ceca045d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 406 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 407 1 0 "3321537f_63fb_48a4_90e40a2fee1cc432" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 408 1 0 "8c7e60df_f040_45c6_a939d99bcd0ac23c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn); // }} "" // {{{ 409 1 0 "24e589a9_98d7_429d_90c8afe203e96ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn); // }} "" // {{{ 410 1 0 "9d94d038_d071_4339_aaace5a2e455b240" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 411 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 412 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 413 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 414 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 415 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 416 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGet") { // }} "" // {{ 417 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 418 1 0 "4a585a30_3a23_44cc_a0948963de716cba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 419 1 0 "da3a318b_1208_4329_be1faae95ecc2e03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 420 1 0 "1f51589f_347c_497b_a7338461d92076d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 421 1 0 "622e6765_4ee3_4df5_917ca140f8b7981b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 422 1 0 "9826612b_e564_4231_8f83fdfcbd374bdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 423 1 0 "fdb52557_ae6c_42b3_925073ab7ae7a5ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 424 1 0 "171639e0_98ad_4857_a5ac346039499a33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 425 1 0 "0d4077af_b1dc_4dea_a23a163c57d96248" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 426 1 0 "60732b74_8870_48e2_be03564159cf35b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("inverseGrip"), inverseGrip); // }} "" // {{{ 427 1 0 "ffa21840_da03_4682_b62a6910caf63f45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 428 1 0 "0af9b15f_4e1b_4353_a6261def96fea256" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{{ 429 1 0 "c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 430 1 0 "74d93b97_5d7f_4593_9aeb9d83d5466e6f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{{ 431 1 0 "28d636c0_47c0_4fac_8a7b67124fd8b9f5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 432 1 0 "6f62025f_9dde_4ae6_a6b6b69efed6e381" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("tolerance"), tolerance); // }} "" // {{{ 433 1 0 "f3d51abd_651e_4b15_93eb0cea0c0384be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 434 1 0 "1b72eb1e_c220_42e0_9a34675ddc971fe7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{ 435 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 436 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 437 1 0 "fd3fbb06_b08e_4790_8e3b785ca1f8ed4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 438 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 439 1 0 "87331d5f_01ff_43a8_a0a06487f28bb2b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 440 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 441 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 442 1 0 "5f12c00c_48c1_4e2f_a24b4ba435343a8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 443 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 444 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 445 1 0 "d3e5718a_eb78_4c1f_a6467f61ccbe82df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 446 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 447 1 0 "8ebcf09f_a943_4769_b3c659e368019a32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, lidSeq); // }} "" // {{ 448 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 449 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 450 1 0 "8ce5efe3_4525_4c77_bb64f9d8dcfb6a62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 451 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 452 1 0 "8ac111e1_df50_4fcb_b465e737713459d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn); // }} "" // {{{ 453 1 0 "d9104246_d843_4a6d_85a64aa07d019020" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Get - step return :"), o_stepReturn); // }} "" // {{{ 454 1 0 "7831c2d8_4b59_455a_a0dc5cae20f325a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 455 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 456 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 457 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 458 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapMove") { // }} "" // {{ 459 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 460 1 0 "3c315cea_4ff8_4efa_8e4a5cc86a9d84d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 461 1 0 "4e2cf15d_267b_47e0_895c36b714787e13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 462 1 0 "24d68fc9_cd59_471b_9c663c4121d1a931" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{ 463 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 464 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 465 1 0 "d372f898_6d32_4d80_ab4d58340d18681d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 466 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 467 1 0 "9e573132_bd29_4d08_a1784d0e26c48700" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 468 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 469 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 470 1 0 "48db1de6_2a87_4224_b1f13fa2a75b490a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 471 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 472 1 0 "1e8e9562_41c0_4df5_9de945c44d1e8d61" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn); // }} "" // {{{ 473 1 0 "a5de7c97_d49c_4f04_b1414f1aaace7f84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Move - step return :"), o_stepReturn); // }} "" // {{{ 474 1 0 "6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 475 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 476 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 477 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 478 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPlace") { // }} "" // {{ 479 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 480 1 0 "18e9697d_0efb_4840_94a65e2a82b4ca69" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 481 1 0 "b0c35970_122b_4119_92c3801f4b8e980b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 482 1 0 "6ed697af_a110_4104_941633e154ff0071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 483 1 0 "fec1982e_3636_412d_af2eda243438f7ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 484 1 0 "21de27ac_9dc3_415b_b1d1e49e80c53591" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 485 1 0 "652aeaa7_9a2f_4c11_8bc1fc58a97ffed7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 486 1 0 "e88a5df4_d9ad_4231_89a5a03f88d0ce77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 487 1 0 "8c5aee51_3156_4fcc_b1b167552b73476f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 488 1 0 "8c257b39_8c0b_410d_a4a4e38df904008c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 489 1 0 "91e9f4c6_b7fe_4b15_83c830df3385398a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{ 490 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 491 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 492 1 0 "226bb6d1_37a1_4076_9d96fb9df69c6068" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 493 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 494 1 0 "ec2fd48b_eab9_491e_867c0fc335eea81c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 495 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 496 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 497 1 0 "e590d9b6_f690_48db_b0109a10c228d5ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 498 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 499 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 500 1 0 "82559320_1e13_40c9_b283fdfa804df6a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 501 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 502 1 0 "420daa28_bf45_407a_bd576559af75c5d0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 503 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 504 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 505 1 0 "3ed6b704_3649_4c7d_8e7d30bdb038feab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 506 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 507 1 0 "41a130e8_a745_4a20_b124272093bf38e7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn); // }} "" // {{{ 508 1 0 "b4bdf08c_e218_4bec_98c0f41e6ec3a218" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Place - step return :"), o_stepReturn); // }} "" // {{{ 509 1 0 "346b983b_d261_4447_a7cebf782db4b4d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 510 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 511 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 512 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 513 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPark") { // }} "" // {{ 514 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 515 1 0 "73602d5e_7f8d_45dc_9c1f21d41c39d0bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("showCollisionCheckDialog"), showCollisionCheckDialog); // }} "" // {{ 516 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 517 1 0 "acf5767a_7e39_4072_8e062928938984cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{{ 518 1 0 "96b1bdf6_a3f3_4530_844fc77cbf7fb944" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 519 1 0 "d03fdac4_224f_4174_924fb518a623bf65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 520 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 521 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 522 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 523 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGetFirst") { // }} "" // {{ 524 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 525 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 526 1 0 "5f9f4b8d_3b3a_48ee_89ef334a70dcb72e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{ 527 1 0 "65648900_32b3_4035_9eb5916a3314f7e9" "ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}" { variable arrRetValues[]; arrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40("65648900_32b3_4035_9eb5916a3314f7e9"); // GetFirstPlatePosition } // }} "" // {{{ 528 1 0 "63380bb7_5afe_4d65_9dc5cdf334590b4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 529 1 0 "cdb18c48_14d5_430d_9f7202f782e069da" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 530 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 531 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 532 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 533 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 534 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "FirmwareCommand") { // }} "" // {{ 535 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 536 1 0 "5f5e5c89_0c1a_497b_80c550dbc4676208" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate("FirmwareCommandList")); // }} "" // {{ 537 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(CommandListElement = 0; CommandListElement < CommandListLength;) { CommandListElement = CommandListElement + 1; // }} "" // {{{ 538 1 0 "2c2e9953_5968_4384_8b2dad24b0960278" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate("FirmwareCommandList"), CommandListElement, FirmwareCmdDict); // }} "" // {{{ 539 1 0 "7f4d5cda_c10f_4317_ba7613cd10d2e90d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareCommand"), FirmwareCommand); // }} "" // {{{ 540 1 0 "cf155262_dfb4_46b4_aff762c7b4c18d8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareParameter"), FirmwareParameter); // }} "" // {{{ 541 1 0 "471df283_02f5_4daf_9c83999e3b1fd8e1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn); // }} "" // {{{ 542 1 0 "0b8e6d49_655f_42a7_bcfdeac76a40c6e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 543 1 0 "f49f31b3_d742_44ae_a6a076108c3f9ab4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 544 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 545 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 546 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 547 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 548 1 0 "193ad70f_ec03_47e5_b1f5ef9ff75805c0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 549 1 0 "5861a5ed_1f9d_48fc_9f3d976bc1a13751" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "setAspirateParam") { // }} "" // {{{ 550 1 0 "d741f062_6b73_4365_ad9c8646a016138d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LiquidClass"), LiquidClassName); // }} "" // {{{ 551 1 0 "86836193_1dcb_460e_8db2dda6b775abd9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Parameter"), LiqClassParameterName); // }} "" // {{{ 552 1 0 "d94798d1_53c6_40de_b72c239404c94352" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Value"), LiqClassParameterValue); // }} "" // {{ 553 1 0 "cca3a5d2_6d84_4105_a976a70a83585972" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E1EAD148F3254941A251DC272F774AB4 ; err.Clear(); // }} "" // {{{ 554 1 0 "3f31be32_d184_4c20_a5127e5057f15149" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SelectLiquidClass(LiquidClassName); // }} "" // {{{ 555 1 0 "b75ad951_95b1_4114_864093345ffb2cdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SetLiquidClassAspirateParameter(LiqClassParameterName, LiqClassParameterValue); // }} "" // {{ 556 1 0 "a39ebf7f_8e12_47a6_aad54fd2890ba779" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 557 1 0 "cca3a5d2_6d84_4105_a976a70a83585972" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E1EAD148F3254941A251DC272F774AB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 558 1 0 "a14cc465_549a_4722_b3fb08ce2532a405" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 559 1 0 "cca3a5d2_6d84_4105_a976a70a83585972" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 560 1 0 "ec08039a_3b70_4854_894d57c13ffdc877" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 561 1 0 "5861a5ed_1f9d_48fc_9f3d976bc1a13751" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 562 1 0 "833dd647_9b77_4420_bcf4ca4df1d1919a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "setDispenseParam") { // }} "" // {{{ 563 1 0 "4aa7b9ce_fd73_4a55_9a3c704bfb4c443d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LiquidClass"), LiquidClassName); // }} "" // {{{ 564 1 0 "27e93e41_ad5f_4b74_a1844bb15c0dfdfc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Parameter"), LiqClassParameterName); // }} "" // {{{ 565 1 0 "10da81a6_cef8_4c18_9416f561b557ad45" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Value"), LiqClassParameterValue); // }} "" // {{ 566 1 0 "cee50056_b4b0_473b_8d775dd178dab21d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3A18CA152B674dd3A42B81C4D45F719E ; err.Clear(); // }} "" // {{{ 567 1 0 "b471ff31_4fdd_4a9f_87431e5741a9b969" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SelectLiquidClass(LiquidClassName); // }} "" // {{{ 568 1 0 "8f401b71_156d_43b5_892982e8478456f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SetLiquidClassDispenseParameter(LiqClassParameterName, LiqClassParameterValue); // }} "" // {{ 569 1 0 "28e95405_685a_4032_b361461ff897189f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 570 1 0 "cee50056_b4b0_473b_8d775dd178dab21d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3A18CA152B674dd3A42B81C4D45F719E : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 571 1 0 "c7174915_16fd_40d8_b94eac8999f4eab7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 572 1 0 "cee50056_b4b0_473b_8d775dd178dab21d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 573 1 0 "d805e811_a796_44e9_93839b02b6d05f1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Liquid Class Set Parameter:"), o_stepReturn); // }} "" // {{{ 574 1 0 "da31069e_a165_4c2e_b95619cb57c4ae8a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 575 1 0 "833dd647_9b77_4420_bcf4ca4df1d1919a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 576 1 0 "193ad70f_ec03_47e5_b1f5ef9ff75805c0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 577 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 578 1 0 "2777cb67_3095_437b_9b54d34ead8fcab2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 579 1 0 "c397d56d_00f8_4e32_bf71c20e91dcac17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ConnectIP") { // }} "" // {{{ 580 1 0 "b450ee5c_4bce_435e_b562523f18ce0142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("InstrumentName"), InstrumentName); // }} "" // {{{ 581 1 0 "13c30b43_9a94_4cd1_a907aa21f01057cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PortNumber"), PortNumber); // }} "" // {{{ 582 1 0 "68ec12ae_0e01_4827_9460e39fddef7f4d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 583 1 0 "7c482f87_e50a_44d8_88516cf7d087dbde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MPEOptions"), MPEOptions); // }} "" // {{{ 584 1 0 "8d4e01b7_ef9e_4570_a2e08f31ecacc259" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingIP(InstrumentName, PortNumber, SimulationMode, MPEOptions, DeviceID, o_stepReturn); // }} "" // {{{ 585 1 0 "005f0b12_4fb1_48ba_bcfeb961b9419149" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeviceID = StrIStr(DeviceID); // }} "" // {{{ 586 1 0 "51077fef_f212_48a6_8f6c43d7d5f5df97" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 587 1 0 "97ff097f_9089_4ac0_82438cbd6f0a9c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Translate(""), Translate(""), id); // }} "" // {{ 588 1 0 "c397d56d_00f8_4e32_bf71c20e91dcac17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 589 1 0 "2777cb67_3095_437b_9b54d34ead8fcab2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 590 1 0 "62a26733_db4f_440f_9fb51db5fef61711" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 591 1 0 "0098c030_fe6b_49bb_92b77ef5a5c7372d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ConnectCOM") { // }} "" // {{{ 592 1 0 "e8776203_e1ed_4373_8a427cb0d8b8d29f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ComPort"), ComPort); // }} "" // {{{ 593 1 0 "4c600ed2_a490_4f3e_bdadfe3b174db193" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("BaudRate"), BaudRate); // }} "" // {{{ 594 1 0 "e77abf5c_e94e_469b_82ea0f774615a671" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 595 1 0 "aaebc2c7_eafc_456e_83386035ed203694" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MPEOptions"), MPEOptions); // }} "" // {{{ 596 1 0 "3b2a8a1c_5b74_4668_b7a5ca974a7658b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingCOM(ComPort, BaudRate, SimulationMode, MPEOptions, DeviceID, o_stepReturn); // }} "" // {{{ 597 1 0 "1a9f7ef9_8c04_4517_8d26efaa81d3eff7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 598 1 0 "104f0498_cc9f_4508_8f28e3b53675ef53" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 599 1 0 "0098c030_fe6b_49bb_92b77ef5a5c7372d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 600 1 0 "62a26733_db4f_440f_9fb51db5fef61711" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 601 1 0 "94f49f46_ad96_4874_9148653f8fa3302e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 602 1 0 "1abd6ad0_87b9_4459_b74e20f9717ebd2b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ClampFilterPlate") { // }} "" // {{{ 603 1 0 "bdc39916_5944_49a4_846784d94f27267f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 604 1 0 "cf252c80_073f_4e8b_85e84a546e80666b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ClampFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 605 1 0 "16a9c218_a7c3_403c_a7c005e96566f8d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 606 1 0 "de8afcf3_ec32_4067_895aceb7a7a650eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 607 1 0 "1abd6ad0_87b9_4459_b74e20f9717ebd2b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 608 1 0 "94f49f46_ad96_4874_9148653f8fa3302e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 609 1 0 "d19e0aae_3b5d_4b88_9b9fa6cd22d67f22" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 610 1 0 "421097a4_a57a_4dec_8b9257b5d77233e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_CollectionPlatePlaced") { // }} "" // {{{ 611 1 0 "ae857f70_e319_4ada_a8b086f120e84247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 612 1 0 "a173d887_781c_4262_9fa6c81e253bd32c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CollectionPlateHeight"), CollectionPlateHeight); // }} "" // {{{ 613 1 0 "7e167a7c_dfb2_4798_814039b7430ccbae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("OffsetFromNozzles"), OffsetFromNozzles); // }} "" // {{{ 614 1 0 "aa2d8e6c_c878_40f1_a1325cb8fe399514" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlatePlaced(DeviceID, CollectionPlateHeight, OffsetFromNozzles, o_stepReturn); // }} "" // {{{ 615 1 0 "6ad949b9_e02e_4686_be660950f5282aee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 616 1 0 "99fa8dd5_ac5f_4d13_91fb69b65d2bc0ea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 617 1 0 "421097a4_a57a_4dec_8b9257b5d77233e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 618 1 0 "d19e0aae_3b5d_4b88_9b9fa6cd22d67f22" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 619 1 0 "21b7e081_f229_400f_9a51a8b8a5412447" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 620 1 0 "b7625009_1717_4db6_8d24209ff3b8dbb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_CollectionPlateRemoved") { // }} "" // {{{ 621 1 0 "fc436f5c_aaba_4906_a4074c83d00f028c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 622 1 0 "65ba4a03_7064_45c5_8ae9ffb86a3234b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlateRemoved(DeviceID, o_stepReturn); // }} "" // {{{ 623 1 0 "39ef177a_96d2_411f_97c648ff2ed91ea8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 624 1 0 "cbdb85be_569e_40cb_93e3582de4fd718f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 625 1 0 "b7625009_1717_4db6_8d24209ff3b8dbb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 626 1 0 "21b7e081_f229_400f_9a51a8b8a5412447" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 627 1 0 "38689ea3_dc56_4d7c_88d585797b9d957e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 628 1 0 "ee3d4b03_3d8c_4718_9f927c1855c7346e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Disconnect") { // }} "" // {{{ 629 1 0 "acfb16ed_a9d1_4a63_a9c0106aff00758d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 630 1 0 "f0cbe63d_fe07_4cc6_8bcb70bf9c7de9ec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn); // }} "" // {{{ 631 1 0 "b23baddd_cdbc_45fd_8c093ab349a937f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 632 1 0 "1695a8ad_2f0f_48a1_a9d8534daaa45c88" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 633 1 0 "ee3d4b03_3d8c_4718_9f927c1855c7346e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 634 1 0 "38689ea3_dc56_4d7c_88d585797b9d957e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 635 1 0 "45f798d0_f63a_4141_9f0512725c85b742" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 636 1 0 "3d8efec9_ac55_4f4d_90f0259610f7394d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Dispense") { // }} "" // {{{ 637 1 0 "d9eb3796_7e12_47f9_b6636e222cb5d878" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 638 1 0 "b1b7d9a5_44ce_4588_b1315c2c2c0a6d6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 639 1 0 "e9efebdb_3e29_4a1f_9a03447005f6b247" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 640 1 0 "6812297a_3eee_4055_8de5373a96f6eb0c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 641 1 0 "b6c33a7b_d31f_4f02_8921532db5005869" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), NeedleOffset); // }} "" // {{{ 642 1 0 "f78d0de5_185c_4061_ad416fe94f5dba58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn); // }} "" // {{{ 643 1 0 "01ebd08b_bf22_4edc_b4101325c0ed5d7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 644 1 0 "46be0614_7064_45bf_962fe4fdb2d26ad3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 645 1 0 "3d8efec9_ac55_4f4d_90f0259610f7394d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 646 1 0 "45f798d0_f63a_4141_9f0512725c85b742" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 647 1 0 "c0d12f62_bf0c_4968_8cf8102df9290745" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 648 1 0 "e0397cd6_5fd2_4820_953df1804d2989f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Evaporate") { // }} "" // {{{ 649 1 0 "eff0d502_cbda_4d56_a060ee98b8acfa1b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 650 1 0 "358b8e75_dcca_4656_8f480e051d9768ac" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 651 1 0 "11f40dee_5289_4a85_b3065e4b85d93416" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 652 1 0 "e660629d_9388_44fa_9749984b17a66bc9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellDepth"), WellDepth); // }} "" // {{{ 653 1 0 "3a86a09d_a4ea_4a34_8573e644beb7c6a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 654 1 0 "6cc724c7_a4bf_4c46_948af3e23aaa8758" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 655 1 0 "6bba2cf9_561d_4a3f_87ee7949c7ce3fbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 656 1 0 "d305f425_1c51_43f7_9c5bd6ec76d64b05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 657 1 0 "e0397cd6_5fd2_4820_953df1804d2989f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 658 1 0 "c0d12f62_bf0c_4968_8cf8102df9290745" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 659 1 0 "54c61117_4dde_492d_91df73eafbdbdf0a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 660 1 0 "ea8576f1_52df_4787_b62e82c44a5b6131" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporatePrepare") { // }} "" // {{{ 661 1 0 "04b183eb_df7f_4775_a8db9b61d0822126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 662 1 0 "7ae5dae4_f3fe_42d9_b07c545e18248898" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 663 1 0 "67e84057_0c19_4600_b6bb1cda5b345f8d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 664 1 0 "31ab1ccb_49b6_45ab_886cb04421f727d1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellDepth"), WellDepth); // }} "" // {{{ 665 1 0 "f9f854b4_d03f_44fa_866ecad432e5ee59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 666 1 0 "0e37d7ed_b49b_42c3_b9306b90a8fbecba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 667 1 0 "bdc5441b_5578_4bb1_9a5511f8d6cb37a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 668 1 0 "82509201_581c_4a09_8c1fba65491074b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 669 1 0 "ea8576f1_52df_4787_b62e82c44a5b6131" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 670 1 0 "54c61117_4dde_492d_91df73eafbdbdf0a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 671 1 0 "f877f93d_359e_486f_aabbf156b38c0fd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 672 1 0 "be0cdb40_9439_44c4_9349319653177825" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporateEnd") { // }} "" // {{{ 673 1 0 "661eb571_7a3f_452f_8cd8e71af5633aa2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 674 1 0 "ce6d86eb_0d5e_4931_9b8ae8ab7b99d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 675 1 0 "407cb55f_f828_4adb_b9a1dcfb39934436" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_EvaporateEnd(DeviceID, Timeout, o_stepReturn); // }} "" // {{{ 676 1 0 "3281176b_4d2d_43ea_b218e196deacc5a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 677 1 0 "dc7eb698_c6ab_4bce_b2eae2a106e79c26" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 678 1 0 "be0cdb40_9439_44c4_9349319653177825" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 679 1 0 "f877f93d_359e_486f_aabbf156b38c0fd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 680 1 0 "77175285_9bc0_458e_bdb99486afa263f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 681 1 0 "1d9fee0e_9129_4e05_9387d48ad64ce5b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporateWithRate") { // }} "" // {{{ 682 1 0 "f74fcc26_c2be_481c_9b4822ade43b6399" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 683 1 0 "d104e730_2dfe_46de_9499ec6975f6d3ba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 684 1 0 "ef36faf4_19fc_4253_92c3ba78e66fa81b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 685 1 0 "4e02e5d8_e2c2_421e_9e232b4b54ffc755" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("EvaporateTravelDistance"), EvaporateTravelDistance); // }} "" // {{{ 686 1 0 "d5f4fc63_608e_48f5_be8989e9f0ed73d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 687 1 0 "ce2ba2cc_4f8f_4960_a2120a80bdee1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FollowRate"), FollowRate); // }} "" // {{{ 688 1 0 "72651c9a_a411_472d_9fbc4d5cf13dbe7f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 689 1 0 "6d1ded15_26bd_4832_a66e0a7ed7ae5de8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 690 1 0 "24da9a05_6ec1_4a5d_aa357161406c5b4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 691 1 0 "1d9fee0e_9129_4e05_9387d48ad64ce5b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 692 1 0 "77175285_9bc0_458e_bdb99486afa263f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 693 1 0 "18d62f91_3389_4a05_81dcd2b1f9f35eb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 694 1 0 "5517c3d2_626c_49ed_9f300f5eb7cad266" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterPlatePlaced") { // }} "" // {{{ 695 1 0 "6ad26884_293d_471f_87d63211dbb2130a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 696 1 0 "f712b14e_2361_4388_aaa3d1b6bdd76274" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FilterHeight"), FilterHeight); // }} "" // {{{ 697 1 0 "046c36b4_609e_41ad_802334b853237e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NozzleHeight"), NozzleHeight); // }} "" // {{{ 698 1 0 "9cd1e28f_9f73_4580_933330d72a187021" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_FilterPlatePlaced(DeviceID, FilterHeight, NozzleHeight, o_stepReturn); // }} "" // {{{ 699 1 0 "77cbd1e2_38c4_46cf_8a36d8bf2fd59668" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 700 1 0 "e9b09e36_5025_44eb_8a0241793ecb2130" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 701 1 0 "5517c3d2_626c_49ed_9f300f5eb7cad266" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 702 1 0 "18d62f91_3389_4a05_81dcd2b1f9f35eb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 703 1 0 "a8bdabef_328d_4914_85c9d5a5e206e280" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 704 1 0 "ba1982ca_d913_4372_a876d2c629a3da01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterPlateRemoved") { // }} "" // {{{ 705 1 0 "c8d80340_50aa_42c3_99a4c45d2c5a2e55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 706 1 0 "7ca7dac8_386f_4d72_a80c56436e8d337a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_FilterPlateRemoved(DeviceID, o_stepReturn); // }} "" // {{{ 707 1 0 "7815e103_9108_40ec_8c501ab868674b02" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 708 1 0 "7fab13f9_e6cb_4d15_9c7359f69f1452eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 709 1 0 "ba1982ca_d913_4372_a876d2c629a3da01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 710 1 0 "a8bdabef_328d_4914_85c9d5a5e206e280" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 711 1 0 "d93f150d_eae1_437f_a22a3b0c4c9072e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 712 1 0 "df5f2b51_da1c_47c3_83076cfc5952018e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Flush") { // }} "" // {{{ 713 1 0 "ebd897c5_30b8_4f3b_9955cc2c076a2cec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 714 1 0 "8a5b6ab5_73a5_448f_97d7f2f80f295781" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 715 1 0 "7618744c_4ba2_44a3_af152e17b8f23a82" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 716 1 0 "0b45dbd2_d2ac_4bbc_b063c7256c9e2f37" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 717 1 0 "7ebe8a95_b1cb_40d0_9bbf0caa753020ff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Flush(DeviceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn); // }} "" // {{{ 718 1 0 "f4745c1d_3edb_4f49_9389682fd5db4746" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 719 1 0 "84a474ac_82c0_447e_853e8a0e803cdc9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 720 1 0 "df5f2b51_da1c_47c3_83076cfc5952018e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 721 1 0 "d93f150d_eae1_437f_a22a3b0c4c9072e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 722 1 0 "117f1e32_da28_4bc8_ad90f5a4f2bef282" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 723 1 0 "467d4218_0310_4b7c_a0b5c6ba53779408" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetContainerCalibration") { // }} "" // {{{ 724 1 0 "8399e7aa_cf6e_40a4_94cbfd345e14133a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 725 1 0 "1b0cf945_ddeb_4f68_ad8567b71c28ba9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 726 1 0 "49eec349_8ea2_4006_8740931d862a8cc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetContainerCalibration(DeviceID, SourceID, CapacityVolume, EmptyReading, FullReading, CalibrationDate, o_stepReturn); // }} "" // {{{ 727 1 0 "c87d301f_8a12_4619_b911ef3098a17d58" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 728 1 0 "7e693f5e_19bf_4fe8_93ae99fb04f02aa3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CapacityVolume = StrFStr(CapacityVolume); // }} "" // {{{ 729 1 0 "8d684024_7a1e_41a0_aff0fbb060f288c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" EmptyReading = StrIStr(EmptyReading); // }} "" // {{{ 730 1 0 "e403fc76_66e2_4138_a91ad409fba41579" "{C1F3C015-47B3-4514-9407-AC2E65043419}" FullReading = StrIStr(FullReading); // }} "" // {{{ 731 1 0 "a338088c_aba6_4925_9499261419f3fd32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CapacityVolume, EmptyReading, FullReading, CalibrationDate, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 732 1 0 "467d4218_0310_4b7c_a0b5c6ba53779408" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 733 1 0 "117f1e32_da28_4bc8_ad90f5a4f2bef282" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 734 1 0 "28cc7be8_7ef9_43fd_a8b86cc9f0a88a77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 735 1 0 "883d189a_5580_49b9_92fa9f7ea0b841bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetHeaterStatus") { // }} "" // {{{ 736 1 0 "c3c00992_49fa_4e7a_930d860185676008" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 737 1 0 "a566cb57_a308_4f8d_ab4f730e5a7dcad6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Reset"), blnReset); // }} "" // {{{ 738 1 0 "6c9f1bfd_e7d9_49a3_9ffc43f57d0b87c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetCurrentHeaterStatus(DeviceID, blnReset, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, o_stepReturn); // }} "" // {{{ 739 1 0 "4e871da2_7414_4d04_af1133edc74f8ceb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 740 1 0 "17cbeaea_77c3_429f_852469beae65bff2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CurrentEvaporatorTemperature = StrFStr(CurrentEvaporatorTemperature); // }} "" // {{{ 741 1 0 "99e68adc_1ab2_44c2_99bb0d0791bb4b03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CurrentGasTemperature = StrFStr(CurrentGasTemperature); // }} "" // {{{ 742 1 0 "19ba4b88_434c_4874_adfb9c3ce28707c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Heating = StrIStr(Heating); // }} "" // {{{ 743 1 0 "8bfee3ed_2dfd_4096_95a3693ae02cb98b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 744 1 0 "883d189a_5580_49b9_92fa9f7ea0b841bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 745 1 0 "28cc7be8_7ef9_43fd_a8b86cc9f0a88a77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 746 1 0 "6161ab17_f584_4948_917386b1caf60999" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 747 1 0 "9f1343e7_8811_4e80_a8d30414ee14e3c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetHeaterRange") { // }} "" // {{{ 748 1 0 "ff106776_2ea1_4be4_bf299c1e9f4d6812" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 749 1 0 "d35c7d7b_4e20_4729_898cf76f032dbd77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Reset"), blnReset); // }} "" // {{{ 750 1 0 "eac04ccb_1d2f_4e47_a38e27549db3d0f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetHeaterTemperatureRange(DeviceID, blnReset, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, o_stepReturn); // }} "" // {{{ 751 1 0 "7e058389_5584_400d_af8f7683d9c64549" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 752 1 0 "cef6dc8b_b0ab_4b67_80965a20bad984a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumEvaporatorTemperature = StrFStr(MinimumEvaporatorTemperature); // }} "" // {{{ 753 1 0 "e95a4014_66ab_4bd9_9396f43fb303387c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumEvaporatorTemperature = StrFStr(MaximumEvaporatorTemperature); // }} "" // {{{ 754 1 0 "82d2e7b9_6b0f_4659_b3c4af2260f72b93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumGasTemperature = StrFStr(MinimumGasTemperature); // }} "" // {{{ 755 1 0 "9d086c63_6438_4455_839b70d859d33023" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumGasTemperature = StrFStr(MaximumGasTemperature); // }} "" // {{{ 756 1 0 "1c25f8f9_a087_4d7d_b537d06915cf733a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TargetTemperature = StrFStr(TargetTemperature); // }} "" // {{{ 757 1 0 "e0990ab5_662a_4046_a221118108390ad1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Heating = StrIStr(Heating); // }} "" // {{{ 758 1 0 "f32ac914_9488_4849_9b505cfae76c21a4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, Translate(""), Translate(""), id); // }} "" // {{ 759 1 0 "9f1343e7_8811_4e80_a8d30414ee14e3c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 760 1 0 "6161ab17_f584_4948_917386b1caf60999" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 761 1 0 "cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 762 1 0 "3be8b4d4_175f_4ea5_8a5c403023c23804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetPressureReadings") { // }} "" // {{{ 763 1 0 "d6ee9000_e96e_43ee_be294bac2de3cebd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 764 1 0 "62c2838f_1e9c_4f50_a8986bd6ab2e5735" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetPressureSensorReadings(DeviceID, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, o_stepReturn); // }} "" // {{{ 765 1 0 "9202b3b4_73ed_457a_8a0eb740d92668eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 766 1 0 "49fdda2e_2786_49cf_bbf53a56bb6cf951" "{C1F3C015-47B3-4514-9407-AC2E65043419}" InputPressureSensor = StrFStr(InputPressureSensor); // }} "" // {{{ 767 1 0 "5b345de1_5fff_4ef5_b48fac2958608067" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ManifoldPressureSensor = StrFStr(ManifoldPressureSensor); // }} "" // {{{ 768 1 0 "5083be24_6502_40dc_94e99eb7e72397de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HighPressureSensor = StrFStr(HighPressureSensor); // }} "" // {{{ 769 1 0 "c5d4f5bc_5388_4cac_a5c92cce84c5358c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LowPressureSensor = StrFStr(LowPressureSensor); // }} "" // {{{ 770 1 0 "93af4507_f837_4e4d_bd0cfa9d8f20db45" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 771 1 0 "3be8b4d4_175f_4ea5_8a5c403023c23804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 772 1 0 "cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 773 1 0 "8eb4fcd2_8586_4fdc_9eaa231938c2491c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 774 1 0 "fb5f809e_bea3_4152_8c23efc086a3f4c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetTemperatureRange") { // }} "" // {{{ 775 1 0 "04868a2f_2244_4262_b16ed3464405a2c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 776 1 0 "ac4b978a_8b0e_48c8_bfcc2cb81ada8852" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetTemperatureRange(DeviceID, MinimumTemperature, MaximumTemperature, o_stepReturn); // }} "" // {{{ 777 1 0 "878c4de8_f440_43d6_aa9a22d5f30c96bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 778 1 0 "9643b7dd_1445_4981_82306a0204482dcd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumTemperature = StrFStr(MinimumTemperature); // }} "" // {{{ 779 1 0 "5fb79249_c2be_45bc_a99aecb05a4cef34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumTemperature = StrFStr(MaximumTemperature); // }} "" // {{{ 780 1 0 "57512d47_ace9_4c17_a0287a31498292bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumTemperature, MaximumTemperature, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 781 1 0 "fb5f809e_bea3_4152_8c23efc086a3f4c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 782 1 0 "8eb4fcd2_8586_4fdc_9eaa231938c2491c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 783 1 0 "3f6b43d7_b3e1_4516_9a607047551e5f6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 784 1 0 "6be26021_e618_492e_8a3a5f94a52da0f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetVacuumStatus") { // }} "" // {{{ 785 1 0 "4db40245_36cd_40c8_b0602871bedce402" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 786 1 0 "cdd4bed1_2257_47d3_bb32dfb51dd99311" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetVacuumStatus(DeviceID, VacuumActive, o_stepReturn); // }} "" // {{{ 787 1 0 "434c4447_ccaa_4ae8_b5332ea4a5247979" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 788 1 0 "2758aebe_4437_4436_9ecd66602ecc20ea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" VacuumActive = StrIStr(VacuumActive); // }} "" // {{{ 789 1 0 "1a22fa96_1f2a_4efb_8d4d1070f05128b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, VacuumActive, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 790 1 0 "6be26021_e618_492e_8a3a5f94a52da0f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 791 1 0 "3f6b43d7_b3e1_4516_9a607047551e5f6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 792 1 0 "1fae7e92_6b1f_4f2a_8504e8aba7fe0846" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 793 1 0 "18c78d3a_83f1_4e2a_9721dc575c326856" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Initialize") { // }} "" // {{{ 794 1 0 "18e9c18e_3415_4f68_b3216e3a2bb3a082" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 795 1 0 "5335daba_8a63_418b_8286e19dbc73285e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Initialize(DeviceID, o_stepReturn); // }} "" // {{{ 796 1 0 "e9ab19e3_4828_4ead_93cb698560e3faff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 797 1 0 "67b12292_2128_495d_af7839b207477794" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 798 1 0 "18c78d3a_83f1_4e2a_9721dc575c326856" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 799 1 0 "1fae7e92_6b1f_4f2a_8504e8aba7fe0846" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 800 1 0 "d96ac0b7_1237_4603_ad86dfe4672ef89a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 801 1 0 "0addb922_82a5_48e4_bf52eeb97ac93f2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_InitializeWithParameters") { // }} "" // {{{ 802 1 0 "1c9e6c43_c0a4_4fa5_96eff1d2638b4426" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 803 1 0 "a9676aeb_9a8e_4f87_866088fd8da32782" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Smart"), Smart); // }} "" // {{{ 804 1 0 "b0f5b856_a01f_4937_bce0d90f8e48a0bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 805 1 0 "3d105105_b5a2_42bf_9008c50dfb529abf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("VacuumRunTime"), VacuumRunTime); // }} "" // {{{ 806 1 0 "1b067bb0_12d6_47c9_b86eb44ca7ac70a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 807 1 0 "abffb784_24c3_4278_9404e88b2a184ec3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 808 1 0 "7f31c229_eea4_4ebc_918ad520b4e80270" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 809 1 0 "0addb922_82a5_48e4_bf52eeb97ac93f2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 810 1 0 "d96ac0b7_1237_4603_ad86dfe4672ef89a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 811 1 0 "9e52a7cb_3167_4057_8d24d034c837de21" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 812 1 0 "5875c2d2_c94b_4860_9be1bc9f16bd64b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_SetSourceConfiguration") { // }} "" // {{{ 813 1 0 "77c0d7cc_1c53_47b5_af15f1eb5743701e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 814 1 0 "1150d6cb_b379_4fab_8bf98a17ac6ed92c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_SetSourceConfiguration(DeviceID, o_stepReturn); // }} "" // {{{ 815 1 0 "2ba32cb4_0177_497e_9a7f398e17134a01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 816 1 0 "a2b6bb52_3165_4bb9_986611d0b8594d1c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 817 1 0 "5875c2d2_c94b_4860_9be1bc9f16bd64b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 818 1 0 "9e52a7cb_3167_4057_8d24d034c837de21" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 819 1 0 "cf140f83_9405_4c31_aac2bda7e3c3644d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 820 1 0 "125ed949_ace4_48a0_a45208b5a26a9545" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetSourceConfiguration") { // }} "" // {{{ 821 1 0 "24cc9f9b_b984_4405_80b21f8bbad2c171" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 822 1 0 "105846b6_bda2_49d7_bb68c38e99c676ce" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetSourceConfiguration(DeviceID, o_stepReturn); // }} "" // {{{ 823 1 0 "8fd730db_f3ad_4187_819383f962b15dec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 824 1 0 "d5402a0c_e7d8_4021_98f2bc49164541bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 825 1 0 "125ed949_ace4_48a0_a45208b5a26a9545" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 826 1 0 "cf140f83_9405_4c31_aac2bda7e3c3644d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 827 1 0 "f0e280e8_46c7_4f0f_bce33a9d98578e01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 828 1 0 "656f66da_3ff6_4ceb_b3958dda3e826289" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_MeasureEmptyContainer") { // }} "" // {{{ 829 1 0 "23e6b66b_51c5_44d2_8107b570ab035bb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 830 1 0 "c791ded2_4daa_4097_811ad01cd9dbd85e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 831 1 0 "d4c8df90_fdb5_4fb4_a5ffe9e46525c9a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_MeasureEmptyContainer(DeviceID, SourceID, SensorReading, o_stepReturn); // }} "" // {{{ 832 1 0 "6766bf7d_aaa7_44dd_beb7bd1925733781" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SensorReading = StrIStr(SensorReading); // }} "" // {{{ 833 1 0 "f566d5c3_5839_4a53_aaa0e7e76d6a96d6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 834 1 0 "ca746d4d_adf9_4d6d_b0172f1cb9e3cefe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(""), Translate(""), id); // }} "" // {{ 835 1 0 "656f66da_3ff6_4ceb_b3958dda3e826289" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 836 1 0 "f0e280e8_46c7_4f0f_bce33a9d98578e01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 837 1 0 "5be53554_4034_4654_a74514eb0d84e4a0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 838 1 0 "ce68b054_3aea_4f0f_9742872cca60f368" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_MeasureFullContainer") { // }} "" // {{{ 839 1 0 "7ad49fa3_f8ed_4826_8c29ea54aff99447" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 840 1 0 "636296bf_cd25_4c6e_a97120b96714e0a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 841 1 0 "1025d7d1_0cb5_4c03_93a47206d7a73279" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_MeasureFullContainer(DeviceID, SourceID, SensorReading, o_stepReturn); // }} "" // {{{ 842 1 0 "14a2a705_9362_44f9_aacee14e4189bc2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SensorReading = StrIStr(SensorReading); // }} "" // {{{ 843 1 0 "64c67d08_dac7_49dc_8a3082c4658649d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 844 1 0 "08dbfd92_e2cd_4c53_8d8b8afb8f41b76a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(""), Translate(""), id); // }} "" // {{ 845 1 0 "ce68b054_3aea_4f0f_9742872cca60f368" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 846 1 0 "5be53554_4034_4654_a74514eb0d84e4a0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 847 1 0 "9e79226f_dd2d_49f1_9ab8ca9ddc07f66d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 848 1 0 "52fa4642_56e3_46b8_a5170d58a3d45e6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Prime") { // }} "" // {{{ 849 1 0 "d59e0e58_e6a4_49dc_b79c3b224f9250f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 850 1 0 "81800d57_5b2e_4f60_80fb02f54c6d898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 851 1 0 "6f11abee_b07f_4e3a_a91a2bb6132b9346" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 852 1 0 "65f68e8f_a3f8_4c0e_b02af46ef0830a94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 853 1 0 "92c62640_1748_47f5_a5b2d63033fab0fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 854 1 0 "bce1d424_198d_4a66_bb5cfcef4223a4c1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Prime(DeviceID, SourceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn); // }} "" // {{{ 855 1 0 "1d0fc35a_1e8f_492f_8115484ef5e4094c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 856 1 0 "7b33278e_8337_43df_80fb1df2dc8d7e27" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 857 1 0 "52fa4642_56e3_46b8_a5170d58a3d45e6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 858 1 0 "9e79226f_dd2d_49f1_9ab8ca9ddc07f66d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 859 1 0 "90d403df_555f_4782_bc0e9655c9dda244" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 860 1 0 "5d03c560_13d7_4f4a_97c5fcb059f5d281" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ProcessFilterToCollection") { // }} "" // {{{ 861 1 0 "327328cb_2c07_4cff_b99aff475bf220b0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 862 1 0 "c67ca153_084e_49de_aa07c55210f0743c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ControlPoints"), ControlPoints); // }} "" // {{{ 863 1 0 "3ccb3a1f_4958_435b_b896ebc512029a6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("ReturnPlate"), ReturnPlate); // }} "" // {{{ 864 1 0 "d9d5add8_e82e_4761_b5b96d5f19ec1723" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToCollectionPlate(DeviceID, ControlPoints, ReturnPlate, o_stepReturn); // }} "" // {{{ 865 1 0 "952f2d23_1b1e_4ff3_b0306759a52e52a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 866 1 0 "8d9318f1_ab21_410d_a9bfb449f75064ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 867 1 0 "5d03c560_13d7_4f4a_97c5fcb059f5d281" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 868 1 0 "90d403df_555f_4782_bc0e9655c9dda244" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 869 1 0 "8e0266d7_a3cc_479c_b67864f9bf0a850e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 870 1 0 "8d5a05ba_1847_47e1_9c2f5a7b692a6bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ProcessFilterToWaste") { // }} "" // {{{ 871 1 0 "45a60cc8_74a9_4d7c_9eae47c478baa5c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 872 1 0 "1549fe1a_4e94_418f_bb409f1556ef9241" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ControlPoints"), ControlPoints); // }} "" // {{{ 873 1 0 "6a1fdb1f_ef59_4c6d_998478bb54397381" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("ReturnPlate"), ReturnPlate); // }} "" // {{{ 874 1 0 "74579c6b_27e5_47a2_9358294506ae9b62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 875 1 0 "fbfbbfb6_9858_4eee_aecb1e386ef2ee6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 876 1 0 "e8ddd588_e12c_4e6a_9318d0626a183210" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToWasteContainer(DeviceID, ControlPoints, ReturnPlate, WasteContainerID, DisableVacuumCheck, o_stepReturn); // }} "" // {{{ 877 1 0 "104d821e_df7b_4d35_9358fdbad381b0c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 878 1 0 "930b1fd7_1382_4dd3_bec3f722282383d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 879 1 0 "8d5a05ba_1847_47e1_9c2f5a7b692a6bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 880 1 0 "8e0266d7_a3cc_479c_b67864f9bf0a850e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 881 1 0 "12fe0846_bf72_4286_8bd87488438262ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 882 1 0 "88ca5064_cc0c_42e8_8cf1b70855183b72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Disconnect") { // }} "" // {{{ 883 1 0 "469fd42b_7a31_4d98_91efb31d12064e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 884 1 0 "a37b4aa9_5d2f_4e3a_8134f806b1cc7204" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 885 1 0 "86edebb2_72b8_49f4_84f46c72b1cacaaa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 886 1 0 "d8835a8b_64ef_433a_8ca5a0a1a7302e05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 887 1 0 "88ca5064_cc0c_42e8_8cf1b70855183b72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 888 1 0 "12fe0846_bf72_4286_8bd87488438262ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 889 1 0 "0f50bc52_c930_4613_a737fe8df81950f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 890 1 0 "a4cfb4d0_9450_4bea_a67986a410d3d0ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_SaveContainerCalibration") { // }} "" // {{{ 891 1 0 "37f47b7e_5737_474b_907e35429bd3b21d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 892 1 0 "03cb3efd_4e78_47b4_8c863f235820287b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 893 1 0 "b4a3f09e_102f_45d2_a582493e7a8a228f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 894 1 0 "dce24d9b_3180_4f67_ab31767613c972ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 895 1 0 "a4cfb4d0_9450_4bea_a67986a410d3d0ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 896 1 0 "0f50bc52_c930_4613_a737fe8df81950f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 897 1 0 "1c67aaeb_23b3_4adc_8b6d8285f92b9619" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 898 1 0 "49d34248_b422_4716_b7759002c58bacb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StartContainerCalibration") { // }} "" // {{{ 899 1 0 "1a03095a_5902_4617_8f24e5d961eb85be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 900 1 0 "51b0d6df_b187_4cef_88ea5af60e98888f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 901 1 0 "c754fc8f_8a46_4c44_9ac4283328bd7a51" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Volume"), Volume); // }} "" // {{{ 902 1 0 "25291ac1_062d_4046_bf617e60aa36b67c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StartContainerCalibration(DeviceID, SourceID, Volume, o_stepReturn); // }} "" // {{{ 903 1 0 "bfce4774_8c8b_4403_8e0b05cc4d59500b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 904 1 0 "bc1476ec_35b7_4ec9_989c3db696569d39" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 905 1 0 "49d34248_b422_4716_b7759002c58bacb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 906 1 0 "1c67aaeb_23b3_4adc_8b6d8285f92b9619" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 907 1 0 "dbd9907a_199c_4651_90fe7cbb03cace83" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 908 1 0 "d748a994_8826_4dce_8d07e63e712b8463" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StartContainerCalibration") { // }} "" // {{{ 909 1 0 "6443322c_5eae_4730_a5933771d05f74fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 910 1 0 "0adc10ee_e236_40cc_851240df83158a48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 911 1 0 "661975a0_0aef_4017_bdd063beab2d6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Seconds"), Seconds); // }} "" // {{{ 912 1 0 "0e7caea8_5fcb_4b6c_954eb1ae00f391a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 913 1 0 "b681e1eb_fcbe_49e6_9116e45dfa6449ea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StartVacuum(DeviceID, WasteContainerID, Seconds, o_stepReturn); // }} "" // {{{ 914 1 0 "82d37b5c_3c66_495e_9db5a04e780cef4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 915 1 0 "182c0a15_8dbc_4c35_add3bac6dba81098" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 916 1 0 "d748a994_8826_4dce_8d07e63e712b8463" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 917 1 0 "dbd9907a_199c_4651_90fe7cbb03cace83" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 918 1 0 "4dfdb03a_1a13_4215_be00ca55de734fb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 919 1 0 "1d06fa20_af8b_41f5_b3f3daa03a904ebd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StopVacuum") { // }} "" // {{{ 920 1 0 "54fa31f5_5b7c_4668_927dc6f87a39b99e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 921 1 0 "0bf5dd1e_2e18_477b_adee0722aee70510" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StopVacuum(DeviceID, o_stepReturn); // }} "" // {{{ 922 1 0 "71f9a311_dfa0_4d62_8963c5c0ad21b5f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 923 1 0 "fe23d082_725d_444c_83290693ee1daf6a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 924 1 0 "1d06fa20_af8b_41f5_b3f3daa03a904ebd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 925 1 0 "4dfdb03a_1a13_4215_be00ca55de734fb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 926 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 927 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 928 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Initialize") { // }} "" // {{ 929 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 930 1 0 "efe73491_e5b4_499e_9b3f298c8b7a6398" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 931 1 0 "5c0fe710_4afe_4b11_bf186cfe8dc87978" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{ 932 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 933 1 0 "110af9db_52cf_4a40_94724a7476c48d86" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn); // }} "" // {{{ 934 1 0 "af9bf513_7c00_47bf_aee50c7cdb333b5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Initialize: "), o_stepReturn); // }} "" // {{{ 935 1 0 "cf0a8758_8a16_429a_97f320a142945224" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 936 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 937 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StartTempControl") { // }} "" // {{ 938 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 939 1 0 "de87c5cd_92f6_45a8_9ebd6fe71ac65dbc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 940 1 0 "26949b4a_2c44_4548_8de048c4f48bd98d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 941 1 0 "8ae03ef4_8584_4957_a32601dc8599dadf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn); // }} "" // {{{ 942 1 0 "934ba752_5ec3_489b_ae5a40dd1ea20440" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Start Temperature Control:"), o_stepReturn); // }} "" // {{{ 943 1 0 "a3528747_6990_4387_8839b01b71c3b754" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 944 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 945 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 946 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_SetTarget") { // }} "" // {{ 947 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 948 1 0 "55e81697_10a3_42fb_8777236a132ff0b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 949 1 0 "0177c1a2_7380_4683_94ff93e2ed1299b2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 950 1 0 "15559e31_3f7a_4336_9cabca6758b7c253" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("TargetTemperature"), TargetTemperature); // }} "" // {{ 951 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 952 1 0 "0dcffa9d_ea82_418b_be95240c1bfd0d77" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn); // }} "" // {{{ 953 1 0 "e9b0b663_7dd3_4e55_b206572d2c8a92c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Set Target:"), o_stepReturn); // }} "" // {{{ 954 1 0 "08ecb91c_e9c8_4c61_aca2c1f89fd97bab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 955 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 956 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StopTemperatureControl") { // }} "" // {{ 957 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 958 1 0 "b67518d4_e443_4a8f_947e8c457680c63e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 959 1 0 "045fda52_2303_4244_833066fb0005c21b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{ 960 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 961 1 0 "1c8947fe_b7a1_455a_94e7672ad3593b08" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn); // }} "" // {{{ 962 1 0 "285287f8_a3f9_43f0_9799c3ad98e59b9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco Stop Temperature Control:"), o_stepReturn); // }} "" // {{{ 963 1 0 "88d1a80e_0aa9_4314_ba83bc772f71a589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 964 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 965 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Terminate") { // }} "" // {{ 966 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 967 1 0 "c963c353_41bc_4f4a_b74a666b28831950" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("StopAllDevices"), StopAllDevices); // }} "" // {{ 968 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 969 1 0 "ea2ceb94_04fa_4204_96db2caf6871231f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn); // }} "" // {{{ 970 1 0 "cd495cf5_43ff_4b30_b0baa1f2cd96cf0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Terminate:"), o_stepReturn); // }} "" // {{{ 971 1 0 "bcce43cd_2b64_4caf_89bef8978a011dc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 972 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 973 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 974 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 975 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_Initialize") { // }} "" // {{ 976 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 977 1 0 "d824843f_bf44_4e8b_bb434b50a8b65716" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 978 1 0 "45b9f513_7eaf_4e63_ae92391c28cf15b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 979 1 0 "7f058eec_3092_45ce_862c43a3e0853c7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 980 1 0 "56a4490f_902b_4043_8172466a64e332bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Simulate"), Simulate); // }} "" // {{ 981 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 982 1 0 "c44a492c_8123_465b_acd4ff374583777d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn); // }} "" // {{{ 983 1 0 "a62df2e9_44bb_4099_a4d0597fbf0705de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Initialize:"), o_stepReturn); // }} "" // {{{ 984 1 0 "de7bfb5a_b1fa_42ee_b461782a3c381af4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 985 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 986 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_MoveToPosition") { // }} "" // {{ 987 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 988 1 0 "3092ee64_df80_4e56_b3cdffc0827e3c2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 989 1 0 "4284a9cf_3ea6_42f5_ae1f62d82cd11ebe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Angle"), Angle); // }} "" // {{ 990 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 991 1 0 "5b44092b_0faa_47ae_8005717c87a0f334" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn); // }} "" // {{{ 992 1 0 "4d912417_89ed_44f2_941bfb44efed0e2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Move to Position:"), o_stepReturn); // }} "" // {{{ 993 1 0 "0540bb67_399d_468d_853dd6ca4bb1c285" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 994 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 995 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 996 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 997 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "moveSequence") { // }} "" // {{{ 998 1 0 "6e83eea3_8863_4ca0_9ff603380f0dc4d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("inputSequence"), inputSequence); // }} "" // {{{ 999 1 0 "6b8903c6_6977_458a_8409f93724089454" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 1000 1 0 "77d9a84d_5987_4b3c_a76757ce15a19302" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 1001 1 0 "13c73535_4a98_49e2_ba1a02c30f02035b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 1002 1 0 "a33ebddb_88d8_4440_9a78132ed62d97f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, inputSequence, seq); // }} "" // {{{ 1003 1 0 "1dcc4914_aa2f_439e_8a2f431687c33852" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqFirstPosition = SeqGetPositionId(seq); // }} "" // {{{ 1004 1 0 "01f7bf35_3538_441d_98904fa827b05e68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 1005 1 0 "a37851fe_b9d0_42fa_9ccca7dd7b352a9c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{{ 1006 1 0 "fe9d84b8_86ec_4552_b187147351886cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqSecondPosition = SeqGetPositionId(seq); // }} "" // {{{ 1007 1 0 "5fa8b88a_cf88_49e1_8cb574503dc60e56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(seqFirstPosition, seqSecondPosition); // }} "" // {{{ 1008 1 0 "e590c4e1_91dd_41c0_82a254d4134fb734" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("First check"), Translate("Second check")); // }} "" // {{{ 1009 1 0 "2127d6de_e8bd_455a_88ad20e73b767061" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1010 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1011 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1012 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1013 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1014 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_measure") { // }} "" // {{{ 1015 1 0 "7c314622_d15c_42aa_a88b3d71caa33d0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1016 1 0 "9f15b042_95cd_4241_9b6262d3a4979ca7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1017 1 0 "34064a8d_5567_4fe5_b4349d0d061b9a1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1018 1 0 "0e34e118_df68_49fa_b3b9228d63deb6d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 1019 1 0 "025eece8_72cd_4190_a092d806fbab65a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 1020 1 0 "269c134a_bc59_4578_8da8bb7559f234a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 1021 1 0 "36ec28c1_360b_46e9_9243c01dbd3874e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 1022 1 0 "58445956_3204_41a3_a7acb03aaf25ccd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 1023 1 0 "465c2002_18cb_4ff2_9df9e423dbc6837c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1024 1 0 "40682224_6d73_4a7c_a2e33641f1768d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 1025 1 0 "e43a57a6_d83b_41d1_adf33f8f77ca7bc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 1026 1 0 "12a6bd74_f75b_44d1_b6f7c26d279d9610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 1027 1 0 "71b8f8bc_65c1_4e97_ab6eae03040f51dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 1028 1 0 "a8ca8abd_aa7a_412c_be527eb4e81efcb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1029 1 0 "a8647b92_b569_4a75_99a5333c438b3a23" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1030 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1031 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1032 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1033 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate_Dyn") { // }} "" // {{{ 1034 1 0 "de6a4eb0_04e1_47fc_86e27009d71152cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 1035 1 0 "5f551457_7af9_4567_bceacdf0018c9c38" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 1036 1 0 "60ee9fa5_c549_43a9_bbccdb0b14819583" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1037 1 0 "2211f515_9e69_4a1c_9603becd6fd866cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1038 1 0 "8449e1f4_6561_4b51_b91aa14423565eb2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 1039 1 0 "4429d4bb_e2fb_451f_8558de74111dbe3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Variance"), Variance); // }} "" // {{{ 1040 1 0 "a918fadc_db95_4e4b_9c445a903a59f17a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 1041 1 0 "7611bb65_5e77_408e_98384f0fec68e958" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 1042 1 0 "74418f44_640a_4b4b_88234a74841f1dbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate Dynamically"), o_stepReturn); // }} "" // {{{ 1043 1 0 "13218e03_9ac9_44ed_8af864397e865cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1044 1 0 "6257eb41_ce75_45b1_bea89bce20631222" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1045 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1046 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1047 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1048 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate") { // }} "" // {{{ 1049 1 0 "c7a809a1_1dc8_47c2_a8006c785355c50e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 1050 1 0 "27f7a889_0250_42a5_87699d0b0d52d36b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 1051 1 0 "b624fe53_a0c2_44e7_92eb12cc744fa799" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1052 1 0 "9f642188_0286_4e80_81cb485423a155c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1053 1 0 "c7530a85_7f29_4069_9a8e94318ffec0d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 1054 1 0 "849206a3_ea5c_4440_a08cdbcb81354e94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 1055 1 0 "9f9ab695_0d32_4bf4_bf5a4b0207a2c780" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 1056 1 0 "c1db8c11_4c25_4c9c_b424e06999583f09" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1057 1 0 "29e43762_b009_40ad_b93a5ac2372cca00" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1058 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1059 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1060 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1061 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Enable_Extended_Log") { // }} "" // {{{ 1062 1 0 "1791ad6e_39b2_4442_8b4470d0fc5497fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn); // }} "" // {{{ 1063 1 0 "b22a7836_ed52_4e9d_9e5df5babf8fa142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1064 1 0 "d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1065 1 0 "8d68d8f1_5b56_488b_a0676b4b50a35221" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1066 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1067 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1068 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1069 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Get_Last_Error") { // }} "" // {{{ 1070 1 0 "11bf85a6_3df2_4245_839282a900f3db71" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1071 1 0 "2c0b2633_5d81_41a1_aa90c51eb8d9d23d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn); // }} "" // {{{ 1072 1 0 "4d60f4e2_175b_4a4b_9b0bfb0f63211da0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Get Last Error"), o_stepReturn); // }} "" // {{{ 1073 1 0 "76df37d9_5928_4269_937630b417ad9a11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1074 1 0 "a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1075 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1076 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1077 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1078 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Initialize") { // }} "" // {{{ 1079 1 0 "a37d4042_a872_4da0_bf60a51312d5cc22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1080 1 0 "77530965_cb1f_4563_a1d848bb4faa3bb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1081 1 0 "295c3bab_f7f4_47d0_8075cf658ee0436f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn); // }} "" // {{{ 1082 1 0 "69f13066_cc39_48aa_85b093e1bc056907" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrIStr(o_stepReturn2); // }} "" // {{{ 1083 1 0 "3a9d7ad8_b8d0_45ee_9004e77ed5fbe471" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1084 1 0 "178d10c9_fe18_479a_b3e7922f87282612" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 1085 1 0 "66935de2_85a3_4ed0_95cddf772b15fb48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1086 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1087 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1088 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1089 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Measure_Dynamically") { // }} "" // {{{ 1090 1 0 "69eede79_0b96_4634_a4ed7995201d9b7d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1091 1 0 "6a018697_b8f4_4088_b8c650a2f028d197" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Precision"), Precision); // }} "" // {{{ 1092 1 0 "dfbe88b8_1dda_42ac_8175799123584051" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1093 1 0 "3ef27a25_aec7_4d5b_beb743b713c7526e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1094 1 0 "74a87116_8260_466d_a78e98fe0544a891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 1095 1 0 "425d37a5_2d55_4b09_a607303c754935db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure_Dynamically(ModuleID, Temperature, Precision, Timeout, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 1096 1 0 "0df3fc00_0550_45fa_b224d60b9bcd06c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 1097 1 0 "26992ae0_59eb_4678_ae304b460a7034db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 1098 1 0 "3beda7c9_5769_4578_b31431d2bab6d131" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 1099 1 0 "141952da_a201_4e85_9e446006849a95bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 1100 1 0 "f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1101 1 0 "5487a4f7_a9f8_448e_98b2cb671cb9c069" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 1102 1 0 "c8e7c221_d1e4_4818_b3e077f9aeb6a0a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 1103 1 0 "611376c4_8c68_46f2_8947cec12bb313f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 1104 1 0 "e113c0e5_7ab9_4244_86b73e7f24d2bfc8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 1105 1 0 "6286c2d7_a138_4844_bc77fd8a40a6a486" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1106 1 0 "39fd3518_8a14_43a1_8d41240f577c94eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1107 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1108 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1109 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1110 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Battery") { // }} "" // {{{ 1111 1 0 "c83f58ac_8db7_4477_bed8e57c9c784b8a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1112 1 0 "4b343bdb_fe40_4daa_8382b1265575e03a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn); // }} "" // {{{ 1113 1 0 "98f43381_9679_4d9f_b3d1238ed4c1d0c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1114 1 0 "b95371f0_7532_4426_b980d9824bf1d2b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ChargeCounter = StrIStr(ChargeCounter); // }} "" // {{{ 1115 1 0 "15324eca_50a4_4530_be7f08cdef0e6514" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BatteryCondition = StrIStr(BatteryCondition); // }} "" // {{{ 1116 1 0 "e694349e_13ad_46c1_b18f5eb4688f510e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ActualCharge = StrIStr(ActualCharge); // }} "" // {{{ 1117 1 0 "279c0c8e_1d53_437f_ac5e74b0ccffc7a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1118 1 0 "92db84c4_89c2_4902_819012506538681c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate("0"), Translate("0"), Translate("0"), Translate("0"), id); // }} "" // {{ 1119 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1120 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1121 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1122 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Calibration") { // }} "" // {{{ 1123 1 0 "250cbb57_43e2_4ca3_8ac97a4f8a848ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1124 1 0 "e2f361b4_fb8d_4bf8_b53c05720323632b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ProbeNumber"), ProbeNumber); // }} "" // {{{ 1125 1 0 "6e7357dd_030a_4f9d_b5cda736b409bbee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn); // }} "" // {{{ 1126 1 0 "aa859c68_b2ab_4304_9501a2d752587df6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowValue = StrFStr(pHLowValue); // }} "" // {{{ 1127 1 0 "7331e4fa_3e06_499a_84eed922b712aca5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowVoltage = StrFStr(pHLowVoltage); // }} "" // {{{ 1128 1 0 "3c2e720a_1c6e_4f09_afe077215aa438e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighValue = StrFStr(pHHighValue); // }} "" // {{{ 1129 1 0 "a9363a15_98fa_4a49_8451b25c27edea3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighVoltage = StrFStr(pHHighVoltage); // }} "" // {{{ 1130 1 0 "73007841_7490_489f_9c595a8e085e3a59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationTemperature = StrFStr(CalibrationTemperature); // }} "" // {{{ 1131 1 0 "49c841c4_b5cf_4ac7_9c2e87a2dc939210" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationOffset = StrFStr(CalibrationOffset); // }} "" // {{{ 1132 1 0 "d3535c95_47a6_46a6_80f73d15c4582508" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlope = StrFStr(CalibrationSlope); // }} "" // {{{ 1133 1 0 "a273e170_1488_4e16_884ae09c3a26d828" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio); // }} "" // {{{ 1134 1 0 "4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1135 1 0 "9ae40f13_d6cb_4a4e_9dc995de1da2d637" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Request Calibration Values"), o_stepReturn); // }} "" // {{{ 1136 1 0 "5aca9095_546e_4df5_b24364da04e44fe5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id); // }} "" // {{ 1137 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1138 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1139 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1140 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Probe_Data") { // }} "" // {{{ 1141 1 0 "04b155be_097f_4f2d_add1392fbf78b5f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1142 1 0 "c40a59cd_e266_4cc3_aa3dd3d526502930" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn); // }} "" // {{{ 1143 1 0 "306c68bb_ffd7_4233_b7f0c2c67678dfdf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1); // }} "" // {{{ 1144 1 0 "bbd1faef_5b8f_41ba_bf74a019b05da039" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2); // }} "" // {{{ 1145 1 0 "cb244d85_a14b_4bcb_ab81c5cdc38c6552" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3); // }} "" // {{{ 1146 1 0 "5476cf0c_49cc_4602_aec72872116d2e6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4); // }} "" // {{{ 1147 1 0 "6883841a_44f5_417f_8574566ed15ae444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), o_stepReturn); // }} "" // {{{ 1148 1 0 "fefec950_2bfa_429e_bdf791dc40dd0495" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1149 1 0 "0f6be956_31e3_4d1e_b232c4dc908ea6f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1150 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1151 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1152 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1153 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Technical_Data") { // }} "" // {{{ 1154 1 0 "3c80e1e2_a904_42ac_a3ddd5df5ca3a196" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1155 1 0 "8b2b24be_b84b_41b8_bd0f088f32554cb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 1156 1 0 "552e7bb6_cbdf_49ec_86ac28b54cae7f58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 1157 1 0 "1634fedb_a7e1_4130_ac1fb8d55f47b9e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HardwareNumber = StrIStr(HardwareNumber); // }} "" // {{{ 1158 1 0 "2cfb8725_b283_48b0_906a9741fe336744" "{C1F3C015-47B3-4514-9407-AC2E65043419}" PartNumber = StrIStr(PartNumber); // }} "" // {{{ 1159 1 0 "7b9a6dfa_9df8_40a8_9c0c39981dcf97e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Revision = StrIStr(Revision); // }} "" // {{{ 1160 1 0 "771c0483_6ea2_4299_81c7598839a5027b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SerialNumber = StrIStr(SerialNumber); // }} "" // {{{ 1161 1 0 "790984ff_e065_4212_a5c420f04d9f7e4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), o_stepReturn); // }} "" // {{{ 1162 1 0 "79aaa9cb_2db1_4f5d_8385023783e5cc82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1163 1 0 "371d6452_cf9d_4abe_9463f54ab7831231" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id); // }} "" // {{ 1164 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1165 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1166 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1167 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Voltage_Data") { // }} "" // {{{ 1168 1 0 "b6c0eb00_003a_45ed_9899c407d864455c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1169 1 0 "e4801131_30dc_4e2d_8ac9e80c0c13972c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Selector"), Selector); // }} "" // {{{ 1170 1 0 "ee48a65d_794b_411d_bb1668a267206d8b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn); // }} "" // {{{ 1171 1 0 "bf78a104_f3d4_45b6_a573a7219dcf05e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 1172 1 0 "ab32fbfb_2be2_4f6d_9c49def79adcfe31" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1173 1 0 "eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(""), Translate(""), id); // }} "" // {{ 1174 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1175 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1176 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1177 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 1178 1 0 "51fd11a2_c173_4d8a_be50512a820eb424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1179 1 0 "b1268215_064b_40bc_8b9e75cfc0edeac8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1180 1 0 "7665963b_aa9b_4a3c_ba522887f3b15ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1181 1 0 "8327c869_96c0_4394_9bf4c5b5c19f30d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1182 1 0 "5a5455ae_5598_4a29_8c5f621b0586ba79" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1183 1 0 "f534cbac_4de3_4425_85299c07c6ff73cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 1184 1 0 "12b0cc6a_4826_48ce_82c690ddf98441a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1185 1 0 "aee63add_2789_4971_b4867510d938caf6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1186 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1187 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1188 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1189 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Charge_Parameters") { // }} "" // {{{ 1190 1 0 "5e24703a_30cb_4538_aec7ba85b7c0d2a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1191 1 0 "31630603_a72b_4d8b_a21a501f5336c619" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Charge"), Charge); // }} "" // {{{ 1192 1 0 "41b8aa8b_7d8e_4351_ad9664e334fa00f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AutoCharge"), AutoCharge); // }} "" // {{{ 1193 1 0 "504d0d26_95ad_4181_a7c38162018496cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("AutoChargeLevel"), AutoChargeLevel); // }} "" // {{{ 1194 1 0 "576ecb10_c479_461f_9249f554f27e398b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn); // }} "" // {{{ 1195 1 0 "80503782_9e9a_4986_9e4bcdeac598c749" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Charge Parameters"), o_stepReturn); // }} "" // {{{ 1196 1 0 "ade249f5_6aa1_4939_90a22e6af0864e5e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1197 1 0 "4fb997db_4cdf_4b51_85bbb23941f19edb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1198 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1199 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1200 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1201 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Probe_Replacement_Date") { // }} "" // {{{ 1202 1 0 "eb0a7cc0_c83a_45a8_8bd6adbf05cadabe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1203 1 0 "c762429d_3619_4e70_9765fe207dab3d54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Probe"), Probe); // }} "" // {{{ 1204 1 0 "18bf75b8_9aa3_46d2_a3ad3bbab8c1e126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1205 1 0 "2b2bbaed_84c1_46d2_bd024b425aefa336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1206 1 0 "380453f0_b3e8_47ac_a06eb91552b3a11f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1207 1 0 "a8fcf799_ec41_4160_910a9c78e5395ae2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1208 1 0 "c95c2987_8098_48ed_9ad284801d556587" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Probe Replacement Date"), o_stepReturn); // }} "" // {{{ 1209 1 0 "4e986dcc_ee8e_4cc0_bb83628d0a0ec284" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1210 1 0 "d46fb139_6c48_4f2a_b09293a8a3509a12" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1211 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1212 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1213 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1214 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Shutdown") { // }} "" // {{{ 1215 1 0 "aec40299_6cef_4e16_ad88bccbdcae3b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1216 1 0 "c7715d80_e089_40ea_86fe6a446a2c9378" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Mode"), Mode); // }} "" // {{{ 1217 1 0 "212772c6_0ff7_41ef_9c35fb5828034d90" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn); // }} "" // {{{ 1218 1 0 "82055c44_b706_4c16_99b47c2a4ae600e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Shutdown"), o_stepReturn); // }} "" // {{{ 1219 1 0 "d76b0e51_c107_49cd_b6bcd25c44e4d066" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1220 1 0 "fbbaa73a_fa45_446d_8052e6e618fd2fad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1221 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1222 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1223 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1224 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Technical_Data") { // }} "" // {{{ 1225 1 0 "d6a005e1_4502_49d8_9a510afa4a2e833e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1226 1 0 "5ad112b0_da19_4b1b_a4649033defa7fef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 1227 1 0 "f4094e68_7940_4706_bae95f6277784476" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PartNumber"), PartNumber); // }} "" // {{{ 1228 1 0 "2b53f199_42d1_4808_a128c8ef4354e216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Revision"), Revision); // }} "" // {{{ 1229 1 0 "b5bf6715_e2e6_4e19_ad453dbb18396d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SerialNumber"), SerialNumber); // }} "" // {{{ 1230 1 0 "8cd5ff7f_9cb8_4f34_8afeb35175b47032" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 1231 1 0 "b60d9996_aa66_483d_b61518ffca638e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Technical Data"), o_stepReturn); // }} "" // {{{ 1232 1 0 "164f5289_e710_44eb_a1ea51e1622a7813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1233 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1234 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1235 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1236 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Trace_Level") { // }} "" // {{{ 1237 1 0 "dd6ba7d4_f5cc_4725_9776848c6e8343cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1238 1 0 "5a2c7ac9_8800_4926_96f26337aee59504" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1239 1 0 "88c51a62_4453_4cf5_ba0682a2cb1da767" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1240 1 0 "159aeb3e_3ed4_4ddc_a11cdfd939a7db7d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Trace Level"), o_stepReturn); // }} "" // {{{ 1241 1 0 "c3a5cc94_f346_4d04_a4be1fd04efbccc1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1242 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1243 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1244 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1245 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Sleep") { // }} "" // {{{ 1246 1 0 "153dc01b_be4b_403a_a40226aa4778c709" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1247 1 0 "a6f7384c_4c2e_4b3b_9682c00fb7a2f978" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn); // }} "" // {{{ 1248 1 0 "e82cf943_58b3_463e_a86afb9882353228" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Sleep"), o_stepReturn); // }} "" // {{{ 1249 1 0 "636ca48b_8789_40cc_8fb4dc35e8cbab54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1250 1 0 "5fb5b228_5342_414d_a548ac8dd5add837" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1251 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1252 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1253 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1254 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Terminate") { // }} "" // {{{ 1255 1 0 "b53cd271_035b_4870_961c552983b39351" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1256 1 0 "e133d234_4ccd_44cb_810d29742ee9f40e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn); // }} "" // {{{ 1257 1 0 "eb5a9614_5d18_44cd_83190a1d8eec2a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1258 1 0 "81b91833_cb16_43c5_a8935f9701536560" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1259 1 0 "add7dd5e_87e4_4ec1_a7b552234adc5d9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1260 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1261 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1262 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1263 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Wakeup") { // }} "" // {{{ 1264 1 0 "6b1d97c0_debd_402e_8c064a5c1fe48aca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1265 1 0 "09ffa3b4_530e_444f_943e5302e37f3fe0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn); // }} "" // {{{ 1266 1 0 "0d420182_40e4_43a8_872c5c81f7efa6d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1267 1 0 "f7bb0b0b_d222_43a7_b1b1236ab60e2847" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1268 1 0 "12251a91_a4ec_4a01_b041b503e2eef836" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1269 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1270 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1271 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1272 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Initialize") { // }} "" // {{{ 1273 1 0 "10713a72_dce4_482a_ad1d6d8db7bd210a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1274 1 0 "21f38719_99e7_4de4_bc16b312b6f57977" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1275 1 0 "75ac7c86_e474_45bc_8551fc9e302de4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 1276 1 0 "509760aa_ef16_454d_89cc23c0745d3c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 1277 1 0 "19e515a1_705c_45eb_b80e75767541c91a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1278 1 0 "a042f65b_875f_4b52_999c836815c84a6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1279 1 0 "f5fd2c44_2160_43fa_be88382bc9e0ff0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1280 1 0 "f2c8bfd1_3d33_4a00_84852ffbabef7b28" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1281 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1282 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1283 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1284 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Set_Trace") { // }} "" // {{{ 1285 1 0 "0029313d_525e_46ea_916912b33902e1eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1286 1 0 "ed79bcac_71ff_48ee_b968407f0dbdf4ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1287 1 0 "80f14967_56f1_4b78_9a3c9965460a9589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1288 1 0 "b3fdfb36_4bb4_4086_a19b5402f53fdd94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1289 1 0 "53206fbc_1492_4583_a2789c8083e49b46" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1290 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1291 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1292 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1293 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Wash") { // }} "" // {{{ 1294 1 0 "32bfd9a6_1ebc_4ca0_81e034f81d1af760" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1295 1 0 "a9208608_0099_4d5f_800d72adf563b9e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CycleNumber"), CycleNumber); // }} "" // {{{ 1296 1 0 "738f88ca_6ad7_4598_b1e4a3e1ccefcace" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn); // }} "" // {{{ 1297 1 0 "d009e19d_0560_4f89_b0f58bafa778b71b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Wash"), o_stepReturn); // }} "" // {{{ 1298 1 0 "49cdc51c_08eb_424b_920d3dcb647b2559" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1299 1 0 "2624b5a6_7428_4e88_a9b7fee8a8001e65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1300 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1301 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1302 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1303 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Terminate") { // }} "" // {{{ 1304 1 0 "e8e2fec9_d562_4524_b5d29880876bd109" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1305 1 0 "ad418c06_88fd_4649_9745bc00694fa53a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1306 1 0 "e8437e3c_0153_4bc0_86236a2e9849e22a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Terminate"), o_stepReturn); // }} "" // {{{ 1307 1 0 "32e4b0bc_48e5_4770_81a0113fdff8118a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1308 1 0 "c81e886b_51ec_42be_b2c989057781a5b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1309 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1310 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1311 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1312 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Initialize") { // }} "" // {{{ 1313 1 0 "b41d8294_bc5c_4346_999860e0f4cc913e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1314 1 0 "102abd73_15bb_472b_a1008b4eda35637e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1315 1 0 "58389380_f098_4c71_b61c0954f797753b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 1316 1 0 "2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 1317 1 0 "d95cbdf3_6278_437b_91525392a70e5356" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1318 1 0 "d35fefc8_f758_41da_a6073532f75cf092" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Initialize"), o_stepReturn); // }} "" // {{{ 1319 1 0 "e1deec6e_fc66_45bd_93821e20a78853fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1320 1 0 "01bdb50d_0f38_40e2_8993f814ea652b66" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1321 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1322 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1323 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1324 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Set_Trace") { // }} "" // {{{ 1325 1 0 "f7fc7449_63b2_4e8b_8d0eaf3f931e834d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1326 1 0 "ef77cea9_ef26_4525_bea967ec7f086b88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1327 1 0 "24784b11_b6f4_461e_b526cbbb677864ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1328 1 0 "d5ebe375_f7dd_45c2_b3e242a8edf4f175" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Dryer Trace Level"), o_stepReturn); // }} "" // {{{ 1329 1 0 "f61751e3_57be_4b1d_b8a1d370a4c1773c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1330 1 0 "d216caef_1c5d_4f05_8252d1a77df45535" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1331 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1332 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1333 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1334 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Start_Drying") { // }} "" // {{{ 1335 1 0 "45561f8e_cd7f_49d8_a8720b2ff7d0d932" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1336 1 0 "ecdddf7a_3c99_4f99_97b658f94a62554c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1337 1 0 "5a6daec0_a404_4a0a_ad9d88de43ac46c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Start Drying"), o_stepReturn); // }} "" // {{{ 1338 1 0 "e7173a44_d349_4ba2_8993647fbcd2eb1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1339 1 0 "17e3434b_dfff_457b_9aba0c22e9206cc7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1340 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1341 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1342 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1343 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Stop_Drying") { // }} "" // {{{ 1344 1 0 "f3eac478_54bb_4350_8c1811bf2ede8424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1345 1 0 "37262733_33d0_4723_94687e68249d1300" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1346 1 0 "6feb871c_61be_4812_a421af32d75f9871" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Stop Drying"), o_stepReturn); // }} "" // {{{ 1347 1 0 "2ba59e68_8358_4b86_a9108519bff6d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1348 1 0 "cbfcb2cb_00c9_445f_a28af2b6553efc31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1349 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1350 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1351 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1352 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Terminate") { // }} "" // {{{ 1353 1 0 "66453f41_07b7_4fd4_b2177e4994606836" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1354 1 0 "a5808bbd_63b3_4fc2_894ab4d4eb00b93d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID); // }} "" // {{{ 1355 1 0 "f844d13f_ecdb_465a_b0300a4976c0d809" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1356 1 0 "a28255b3_86ff_4928_abf87a7c3f930142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1357 1 0 "7e539911_cdda_4242_a337d58eba44508c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1358 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1359 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1360 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1361 1 0 "2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1362 1 0 "2dde624a_2df2_4014_8df18f6d92ed93b1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1363 1 0 "d6d5265b_416c_468f_a8f0a8225e294804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Initialize") { // }} "" // {{{ 1364 1 0 "32d149fa_c238_4e8c_9c9bfe8ca03b39ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PortNumber"), PortNumber); // }} "" // {{ 1365 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_43ECC15F92874e8a8FCA2A90F3412255 ; err.Clear(); // }} "" // {{{ 1366 1 0 "05f6e40b_f62a_4382_9b25ca234839aeb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::Initialize(ML_STAR, PortNumber, DefaultTemperature, ModuleID); // }} "" // {{ 1367 1 0 "b8eff0c4_8a87_4d69_8b1fc22443527e58" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1368 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_43ECC15F92874e8a8FCA2A90F3412255 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1369 1 0 "a6315690_dcdc_4faf_9764f4edcccee401" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1370 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1371 1 0 "b152d230_641d_44fd_82876d10beb25ffd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1372 1 0 "2178bb5d_1389_4bb3_92e038bed00ad7d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 1373 1 0 "0e8fa514_886c_42d7_a0fec5c2e0a40820" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1374 1 0 "d6d5265b_416c_468f_a8f0a8225e294804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1375 1 0 "2dde624a_2df2_4014_8df18f6d92ed93b1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1376 1 0 "a96843cd_6adb_45f6_86b4971bd2682521" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1377 1 0 "2a26b412_4bc5_49d9_b1cdc64938a3cf0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_MeasureCycle") { // }} "" // {{{ 1378 1 0 "e78c25fc_f856_4c7d_bb7f6056d2ae0e9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1379 1 0 "4c0064bb_0c23_4648_b57e5599878d63f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqMeasurement"), seqMeasurement); // }} "" // {{ 1380 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (seqMeasurement == "") { // }} "" // {{{ 1381 1 0 "a11073f7_18e2_4097_baf006ed44e74081" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("MeasurePositions"), MeasurePositions); // }} "" // {{{ 1382 1 0 "47d49bd0_0457_440d_b1d654c85ac3c5db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(MeasurePositions, seq); // }} "" // {{ 1383 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1384 1 0 "bbddeeab_2dc4_4931_900a5ec07aafe0be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, seqMeasure, seq); // }} "" // {{ 1385 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1386 1 0 "6b06d7c5_bf98_48d9_906ae705e4ce149b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("MeasureHeight"), MeasureHeight); // }} "" // {{{ 1387 1 0 "25fe4c02_a4e2_40cd_91289dc1c5c638b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ProbePattern"), ProbePattern); // }} "" // {{{ 1388 1 0 "02a9e02a_0596_4158_ac021180b0b5985c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MeasureTime"), MeasureTime); // }} "" // {{{ 1389 1 0 "f8080019_d032_4f0c_9ef8429bde9ee7df" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1390 1 0 "83142ee1_d831_4ff1_a6734844fe789421" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::MeasureCycle(ML_STAR, ModuleID, seq, MeasureHeight, ProbePattern, MeasureTime, Temperature, arrpHValues); // }} "" // {{{ 1391 1 0 "d4d4974a_23a2_43a2_851b478f0e7d24be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrpHValues, flt_pHValues); // }} "" // {{{ 1392 1 0 "bde9c162_a4cf_40fa_a663c6b78e029610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1393 1 0 "0a5c18e9_775d_4644_bdfcc536000642cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Measure Cycle"), o_stepReturn); // }} "" // {{{ 1394 1 0 "c1502c7b_2bd0_480c_a0ce6887e02484bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, flt_pHValues, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1395 1 0 "2a26b412_4bc5_49d9_b1cdc64938a3cf0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1396 1 0 "a96843cd_6adb_45f6_86b4971bd2682521" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1397 1 0 "e66a9dff_c0b5_4864_ad32fce97f16a3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1398 1 0 "5185a83c_8ff6_42f8_b1dc5fc006d041ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Calibrate") { // }} "" // {{{ 1399 1 0 "d9d7f7cb_394b_40ea_a037e16efc8e063c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1400 1 0 "0e65e09c_0178_403b_9eca768c440a479f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1401 1 0 "fedae8c3_0c9d_426f_a30e8fdfa1d2b056" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1402 1 0 "ad8456a9_07be_4852_b2bab182e7e17dae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqCalibration1"), Calibration1); // }} "" // {{{ 1403 1 0 "8b591ca2_adf8_4248_b5ac1fb2a84c21aa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Calibration1, seqCalibration1); // }} "" // {{{ 1404 1 0 "0f28a5e9_278c_4290_aa9ee416f829755a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqCalibration2"), Calibration2); // }} "" // {{{ 1405 1 0 "b57e28d3_0011_4657_bbceba83ca97b89a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Calibration2, seqCalibration2); // }} "" // {{{ 1406 1 0 "101798f0_c18a_411a_b29295d972cc9a6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqReference"), Reference); // }} "" // {{{ 1407 1 0 "1c415c8d_660d_41fe_a81fcfd6d8836038" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Reference, seqReference); // }} "" // {{{ 1408 1 0 "20510ceb_5840_48de_842a1b657fa7706d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationTime"), CalibrationTime); // }} "" // {{{ 1409 1 0 "ecd67637_3e8e_4d22_89b67b39e05342fe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MeasureTime"), MeasureTime); // }} "" // {{{ 1410 1 0 "148b5d07_b84d_4786_b1d0f9d5e5837491" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("MeasureHeight"), MeasureHeight); // }} "" // {{{ 1411 1 0 "938c1584_a353_4f03_ba14c9f33cc2c6a7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue1"), CalibrationValue1); // }} "" // {{{ 1412 1 0 "cda9048b_fe59_4db2_a1d08550795038f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue2"), CalibrationValue2); // }} "" // {{{ 1413 1 0 "5d669238_eb69_4080_8b789139b291be94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValueRef"), CalibrationValueRef); // }} "" // {{{ 1414 1 0 "4c7c9992_c2e0_445a_bee9cd7dd086e585" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSoln1"), TempSoln1); // }} "" // {{{ 1415 1 0 "9574a12d_456e_4fd6_9b51714dd88b4a1e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSoln2"), TempSoln2); // }} "" // {{{ 1416 1 0 "211f81c7_5561_45ce_8cf247e76fb0f65e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSolnRef"), TempSolnRef); // }} "" // {{{ 1417 1 0 "f812ea75_ed49_4a04_b4ab3dd67f1206ad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrateDynamically"), blnCalibrateDynamically); // }} "" // {{{ 1418 1 0 "178d95b8_13db_4493_a08cdaec1348c0e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1419 1 0 "d4d33c2d_2aee_4a51_ad36cb953d687c83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{ 1420 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F882CD31309846e3BD30959B418AB982 ; err.Clear(); // }} "" // {{{ 1421 1 0 "ff44fdd8_7acc_46f7_a7c3a207ad5d7bf8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Calibrate(ML_STAR, ModuleID, seqModule, seqCalibration1, seqCalibration2, seqReference, CalibrationTime, MeasureTime, MeasureHeight, CalibrationValue1, CalibrationValue2, CalibrationValueRef, TempSoln1, TempSoln2, TempSolnRef, blnCalibrateDynamically, arrCalibrationSlopeRatios, arrpHValuesReferenceSolution); // }} "" // {{ 1422 1 0 "18724129_2443_4271_a6316a42ef334c73" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1423 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F882CD31309846e3BD30959B418AB982 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1424 1 0 "d6c65e91_f6e8_47d9_aaf1810ffab1ffac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1425 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1426 1 0 "7375b9e4_01c3_49a1_810fb42149ed0eea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrCalibrationSlopeRatios, CalibrationSlopeRatios); // }} "" // {{{ 1427 1 0 "31ba6e89_258d_4deb_97352544c3b5c45c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrpHValuesReferenceSolution, pHValuesReferenceSolution); // }} "" // {{{ 1428 1 0 "924064ec_85ac_4b42_a5ff3eb8a6a5342f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 1429 1 0 "65bd0fe0_0efb_4335_b118b89e61b948ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1430 1 0 "5185a83c_8ff6_42f8_b1dc5fc006d041ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1431 1 0 "e66a9dff_c0b5_4864_ad32fce97f16a3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1432 1 0 "b6af2262_3e2f_4d3a_8efaa95d707f7c9b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1433 1 0 "190d0e3a_2978_407c_a8482f5f7e239261" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Dry") { // }} "" // {{{ 1434 1 0 "0f0bf03e_4950_40e7_b2899f9cabb79cb3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{ 1435 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_D19CA5AD1071407b84599779A41B51EA ; err.Clear(); // }} "" // {{{ 1436 1 0 "1885a8d9_8082_44ab_bfd7a217170187db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::Dry(ML_STAR, ModuleID); // }} "" // {{ 1437 1 0 "33dddcad_4489_4f31_8b4fea145ebbe77b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1438 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_D19CA5AD1071407b84599779A41B51EA : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1439 1 0 "d8f5d052_f205_4e22_8998e2d0d12790ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1440 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1441 1 0 "5521c0c7_c64b_4b49_9036f9bf6a7a83d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1442 1 0 "9e7864cd_a0bd_4ec6_8f733a2e7ab773bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1443 1 0 "190d0e3a_2978_407c_a8482f5f7e239261" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1444 1 0 "b6af2262_3e2f_4d3a_8efaa95d707f7c9b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1445 1 0 "98f952c5_628a_415d_a46b3e75e0c33d60" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1446 1 0 "370e55f1_98b7_4dfb_9640d7a634f44a8f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Wash") { // }} "" // {{{ 1447 1 0 "39b0590c_dc8d_4eb3_b8bfcab65235f494" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{ 1448 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 ; err.Clear(); // }} "" // {{{ 1449 1 0 "beaffdda_e52a_4f79_95659f907946752f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Wash(ML_STAR, ModuleID); // }} "" // {{ 1450 1 0 "58aab21a_307b_403b_980186d201a7c6ac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1451 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1452 1 0 "4cd2a753_2761_4d3c_9cd93c15fa19a47b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1453 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1454 1 0 "0af219f8_e5bc_4b14_a95fd7e3f2ccb712" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1455 1 0 "7b44ca9e_e6d7_4793_8f937fc518ecc41c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1456 1 0 "370e55f1_98b7_4dfb_9640d7a634f44a8f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1457 1 0 "98f952c5_628a_415d_a46b3e75e0c33d60" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1458 1 0 "3246255f_383b_4742_b7eb17cad21acec0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1459 1 0 "f70b31d7_c863_488a_90c4df10a4677c68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_SetParameters") { // }} "" // {{{ 1460 1 0 "7e5e111c_21f5_4c0b_9dd06d15aee64431" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqGripper"), Gripper); // }} "" // {{{ 1461 1 0 "8417ab78_f4b8_40aa_890f3b14e4204667" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Gripper, seqGripper); // }} "" // {{{ 1462 1 0 "f43d4896_c19a_4cc9_ad3c75f925788b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqWashPosition"), WashPosition); // }} "" // {{{ 1463 1 0 "ffcc2479_6c91_4038_bab179b027d4b03b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, WashPosition, seqWashPosition); // }} "" // {{{ 1464 1 0 "b731d1c6_30bc_4003_ba19e062e82293db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqDryPosition"), DryPosition); // }} "" // {{{ 1465 1 0 "a68ddb6b_780a_46ed_bcaa350f92f649fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, DryPosition, seqDryPosition); // }} "" // {{{ 1466 1 0 "020f31e6_e3ef_48f4_af0e175e60e00159" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TransportChannel"), TransportChannel); // }} "" // {{{ 1467 1 0 "1561e8c8_acaa_438f_9c7c57a5c196556f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WashCycles"), WashCycles); // }} "" // {{{ 1468 1 0 "7e0a9629_dce6_4ed9_81b854f636408ff0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryCycles"), DryCycles); // }} "" // {{{ 1469 1 0 "dacc3c17_6358_44f0_8ac4ad1fa0ae08b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryTime"), DryTime); // }} "" // {{{ 1470 1 0 "f86b35ff_9db7_4845_a3cfb7d04c520c3d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::SetParameter(ML_STAR, seqGripper, seqWashPosition, seqDryPosition, TransportChannel, WashCycles, DryCycles, DryTime); // }} "" // {{{ 1471 1 0 "ce0a2f35_ae58_4695_85513126a4acb791" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1472 1 0 "da69f49c_299d_435d_9d95dc10f7303ce9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1473 1 0 "bd10bc62_2ace_436a_a68acec8c1f9287b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1474 1 0 "f70b31d7_c863_488a_90c4df10a4677c68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1475 1 0 "3246255f_383b_4742_b7eb17cad21acec0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1476 1 0 "f19bf36e_3e74_4647_bd1c33a627d4634a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1477 1 0 "1aad8d75_d37e_4c4a_9b83799194c716fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Park") { // }} "" // {{{ 1478 1 0 "90471824_8967_4383_a722d29bfaf60113" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1479 1 0 "f6bbc2b1_c86d_4f64_abc12d3b740b1d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1480 1 0 "9341ffae_9e0c_43f9_b3ccedcfbadb07cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1481 1 0 "9e0a230a_fdb5_4eec_9cf3127779adb1d2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::ParkModule(ML_STAR, ModuleID, seqModule); // }} "" // {{{ 1482 1 0 "8aacb0d9_a918_426b_9717bd2febc1f74a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1483 1 0 "15592ad5_5751_4636_8a513ee3f27c7f11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1484 1 0 "6222366b_a5bf_4c73_8685a3cdebb4ff4f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1485 1 0 "1aad8d75_d37e_4c4a_9b83799194c716fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1486 1 0 "f19bf36e_3e74_4647_bd1c33a627d4634a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1487 1 0 "602611db_9ad3_4dbb_aae8e288d8e1c21f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1488 1 0 "a3bcbf9b_35d6_4291_9c4f146afb2924be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Pickup") { // }} "" // {{{ 1489 1 0 "347e06d8_9db7_4279_bf224e9ecf4299e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1490 1 0 "2b0761dc_e201_46b3_a590b52421cd8ee9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1491 1 0 "76631bc5_230e_4e20_87bf493887cddd0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1492 1 0 "2d3aba8b_cc4b_4be1_a83c30695fcf6dbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::PickupModule(ML_STAR, ModuleID, seqModule); // }} "" // {{{ 1493 1 0 "7879f9b5_2eea_4059_8e4bef3213e8decd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1494 1 0 "cb1582a1_3f8c_44fd_910a5f08dbe32b05" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1495 1 0 "a15fc9df_322f_4ce1_83228c63669e6b16" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1496 1 0 "a3bcbf9b_35d6_4291_9c4f146afb2924be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1497 1 0 "602611db_9ad3_4dbb_aae8e288d8e1c21f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1498 1 0 "3bc97044_ccb0_46b1_9516921492be9a5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1499 1 0 "dac7c2f7_1665_4a9c_82959eadd12ab417" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_ExtendedLog") { // }} "" // {{{ 1500 1 0 "d101eee8_9402_428a_aa576d531ed959c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::EnableExtendedLog(); // }} "" // {{{ 1501 1 0 "bc849548_9009_43ec_bb1b6c81c32132f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), 1); // }} "" // {{{ 1502 1 0 "0a496202_0f55_4f40_8b391260caa236ba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, 1, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1503 1 0 "dac7c2f7_1665_4a9c_82959eadd12ab417" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1504 1 0 "3bc97044_ccb0_46b1_9516921492be9a5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1505 1 0 "e397a319_e6cb_4188_b45c6ef45c974fba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1506 1 0 "bffc8683_40d3_4277_ac66bc7d43d675f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_LoadLastConfig") { // }} "" // {{ 1507 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B416552A06404ef48774D74059C2B182 ; err.Clear(); // }} "" // {{{ 1508 1 0 "154ec087_ea2e_4381_bb2e261ffad534f1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationLoad(BluetoothPort, NumWashCycles, NumDryCycles, DryTime); // }} "" // {{ 1509 1 0 "79340e9d_69d5_4911_b4601ae4754a16c4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1510 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B416552A06404ef48774D74059C2B182 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1511 1 0 "46420553_d90f_4dfa_b42c9d86856c288a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1512 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1513 1 0 "54b468e0_3ea0_4e83_9ffae95722c5cb9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BluetoothPort = StrIStr(BluetoothPort); // }} "" // {{{ 1514 1 0 "7bde202f_1c1b_4911_9f600ac6e1a5b57c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" NumWashCycles = StrIStr(NumWashCycles); // }} "" // {{{ 1515 1 0 "c5d427d2_0b0e_4f92_8c5b0b2cbfbfb4d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" NumDryCycles = StrIStr(NumDryCycles); // }} "" // {{{ 1516 1 0 "027378a7_4549_4d3f_b8d33aa4980be4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DryTime = StrIStr(DryTime); // }} "" // {{{ 1517 1 0 "fbda7cdb_3ed9_4a5c_907ce60556e0129b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), 1); // }} "" // {{{ 1518 1 0 "e454face_7eee_4c6e_a61e221c0e5d7fb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, BluetoothPort, NumWashCycles, NumDryCycles, DryTime, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1519 1 0 "bffc8683_40d3_4277_ac66bc7d43d675f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1520 1 0 "e397a319_e6cb_4188_b45c6ef45c974fba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1521 1 0 "dbcfe074_1fad_446d_addaa6c1b41a3a01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1522 1 0 "2bd801dc_3ffb_4b97_9f8af54ebda4fdae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_SaveLastConfig") { // }} "" // {{{ 1523 1 0 "aca4c717_812e_46f9_8eb5989a720adb24" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("BluetoothPort"), BluetoothPort); // }} "" // {{{ 1524 1 0 "1198edc8_1ec9_479d_a4e7fd71ed50cf8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("NumWashCycles"), NumWashCycles); // }} "" // {{{ 1525 1 0 "be958699_818e_43db_a757a67b7b54572a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("NumDryCycles"), NumDryCycles); // }} "" // {{{ 1526 1 0 "8751a2c3_e6ee_43bf_b21f5458aebf179a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryTime"), DryTime); // }} "" // {{ 1527 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_4973F03471994119A9F699CE6459CBFC ; err.Clear(); // }} "" // {{{ 1528 1 0 "1480ff51_54ea_4c38_befa457e23966aca" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationSave(BluetoothPort, NumWashCycles, NumDryCycles, DryTime); // }} "" // {{ 1529 1 0 "0e101f68_bc36_42fe_882a3951ef193f80" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1530 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_4973F03471994119A9F699CE6459CBFC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1531 1 0 "2e180d98_e746_4b84_b623b4d0e8e198fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1532 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1533 1 0 "cb24f9db_18c1_41af_b6f16900826be7be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 1534 1 0 "87c5e5f6_77ee_4519_879fdceaf21c1d7f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1535 1 0 "2bd801dc_3ffb_4b97_9f8af54ebda4fdae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1536 1 0 "dbcfe074_1fad_446d_addaa6c1b41a3a01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1537 1 0 "d30f6a39_499f_4b79_b2bfbdb6bb128b96" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1538 1 0 "25171dbf_33de_42a2_ad9b9d9639b5112a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 1539 1 0 "bdbbc648_a9fa_468f_b5d4d390115575eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1540 1 0 "1a74d7ad_0c35_454c_b161ede32468b2af" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1541 1 0 "c67afa78_dd60_451b_b2e31a2e6540f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1542 1 0 "2424dca1_971a_40f8_97b763c253560a2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1543 1 0 "8def2ba5_b51c_4e0c_b6ebfdd346a5beec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1544 1 0 "684d328d_214e_4955_bfe9ff0627b7f8cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 1545 1 0 "e6ec0fc8_d42c_4413_b2c2719c3cd18dc7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1546 1 0 "6f2273c4_1e1e_46f3_9ea6544d76383266" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1547 1 0 "25171dbf_33de_42a2_ad9b9d9639b5112a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1548 1 0 "d30f6a39_499f_4b79_b2bfbdb6bb128b96" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1549 1 0 "427cf00a_8c98_4fb4_8db6842164909152" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1550 1 0 "d75fbb16_6016_4c73_aecf79ca07dae29d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Terminate") { // }} "" // {{{ 1551 1 0 "b43cf782_b210_48c8_933f4cdfae78d050" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1552 1 0 "efbfd98d_c15d_4ac9_b94250ab4361a8b9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Terminate(ModuleID); // }} "" // {{{ 1553 1 0 "c918ad91_e33e_4f2f_9c6577fd8c93aaf4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1554 1 0 "2021a914_67dd_495e_9a9e4cf4438df298" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1555 1 0 "8d8842cd_e3b4_4397_92ad69593e9f7796" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1556 1 0 "d75fbb16_6016_4c73_aecf79ca07dae29d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1557 1 0 "427cf00a_8c98_4fb4_8db6842164909152" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1558 1 0 "2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1559 1 0 "6aa13f85_d8b8_4a2a_93232eeb15e0a01d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1560 1 0 "5edd27c8_de57_4980_b51d920a4d49d519" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1561 1 0 "e9d4ea17_6e30_44ae_88b03485525c4f92" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Initialize") { // }} "" // {{{ 1562 1 0 "2f9ae938_94b1_43c8_ade094614ef090a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("DeviceName"), DeviceName); // }} "" // {{{ 1563 1 0 "6cf1bcde_fb2a_4296_97b01233bdd9aa87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("AdapterDeviceID"), AdapterDeviceID); // }} "" // {{{ 1564 1 0 "58031a2b_13b4_4278_8e347d343a3bd1d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("NodeName"), NodeName); // }} "" // {{{ 1565 1 0 "20c35752_843f_4adb_904d5d26323821a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1566 1 0 "0b3f2efc_0773_4a25_84493465094ac5e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AlwaysInitialize"), AlwaysInitialize); // }} "" // {{{ 1567 1 0 "6ad8399f_eed7_4e65_98fe7d1432f0736b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Initialize(Label, NodeName, SimulationMode, AlwaysInitialize, o_stepReturn); // }} "" // {{{ 1568 1 0 "3a426d02_40f4_4c1f_b9061d37e5a4cd35" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1569 1 0 "01608cb1_fac5_42cd_bcfdf5fc7359c26d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1570 1 0 "0e3b4229_d57f_445f_a7c9d9140939367f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1571 1 0 "e9d4ea17_6e30_44ae_88b03485525c4f92" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1572 1 0 "5edd27c8_de57_4980_b51d920a4d49d519" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1573 1 0 "48cb330b_8197_439e_974791118048b53e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1574 1 0 "cc879722_4e99_410c_a8454d136f6aae6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Centrifuge") { // }} "" // {{{ 1575 1 0 "efe031a0_7aa0_4846_bf8969fbd7906970" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1576 1 0 "5965cb4a_0190_415d_862b773944074e57" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("CloseCoverAtEnd"), CloseCoverAtEnd); // }} "" // {{{ 1577 1 0 "1f94f31f_0ef0_403b_bda3b50c2fd9c38b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PresentPosition"), intPresentPosition); // }} "" // {{{ 1578 1 0 "dde8e447_4774_45bf_a244c5fab4041838" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Direction"), Direction); // }} "" // {{{ 1579 1 0 "cf0fab96_e65f_4e8a_85a809800b192075" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArraySpeed"), ArrSpeed); // }} "" // {{{ 1580 1 0 "0ca69f46_9c96_402e_9b1587ced7bff5c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArrayAcceleration"), ArrAcceleration); // }} "" // {{{ 1581 1 0 "d37afa07_2508_484d_81b6f153e1aa28ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArrayDuration"), ArrDuration); // }} "" // {{{ 1582 1 0 "6f8e9cca_35cb_4393_9f845b2135e8c2d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Deceleration"), Deceleration); // }} "" // {{{ 1583 1 0 "42d02aa8_5a1f_4144_b475d634885c1d4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrDuration, Translate(","), i_ArrDuration, 0); // }} "" // {{{ 1584 1 0 "252eacff_1b04_4607_9403f7ebc9935d0a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrSpeed, Translate(","), i_ArrSpeed, 0); // }} "" // {{{ 1585 1 0 "e1de1f59_a4b3_4220_a987c7e8e67e82c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrAcceleration, Translate(","), i_ArrAcceleration, 0); // }} "" // {{{ 1586 1 0 "085cc0ce_663a_4e79_8bf732421e2f56a9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrAcceleration, i_ArrAcceleration); // }} "" // {{{ 1587 1 0 "5f942567_121a_417c_be3e2449c5473b40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrSpeed, i_ArrSpeed); // }} "" // {{{ 1588 1 0 "f88bd247_c7e5_4823_bd5e37605974f825" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrDuration, i_ArrDuration); // }} "" // {{{ 1589 1 0 "82e32803_a688_4f29_8a1c94dead53e48e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Centrifuge(Label, CloseCoverAtEnd, intPresentPosition, Direction, i_ArrSpeed, i_ArrAcceleration, i_ArrDuration, Deceleration, o_stepReturn); // }} "" // {{{ 1590 1 0 "6541fb1d_df0a_4f0c_8474d211e4e4721a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1591 1 0 "ca37a7ce_edb5_4864_90dffb84cbb93071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1592 1 0 "54bf0b61_3ff3_4e00_8d35d876bfec98bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1593 1 0 "cc879722_4e99_410c_a8454d136f6aae6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1594 1 0 "48cb330b_8197_439e_974791118048b53e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1595 1 0 "ad0b08d4_17f2_49d0_a67860ea51423835" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1596 1 0 "5d8f135c_f0e2_4460_861984fe9a7fa710" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_GetStatus") { // }} "" // {{{ 1597 1 0 "1be02a3f_6880_42b3_b612e480fcd7e403" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1598 1 0 "5dcbef58_09da_4530_afb23e072fe81806" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_GetRotationStatus(Label, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, o_stepReturn); // }} "" // {{{ 1599 1 0 "07344966_2aca_47d5_94006574d009ab21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1600 1 0 "47572e7c_3ab2_48e3_be4d5f024ede7c41" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, Translate(""), id); // }} "" // {{ 1601 1 0 "5d8f135c_f0e2_4460_861984fe9a7fa710" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1602 1 0 "ad0b08d4_17f2_49d0_a67860ea51423835" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1603 1 0 "cd7ca6de_07b8_4d48_875925ee71386e46" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1604 1 0 "2acb9ae8_850a_4120_a212cb2a4a6200bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Open") { // }} "" // {{{ 1605 1 0 "6a9181eb_a95e_4e7b_a8df77f39d3519e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1606 1 0 "6f785fb2_5cc2_4924_b9e514e193d96143" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverOpen(Label, o_stepReturn); // }} "" // {{{ 1607 1 0 "d7ac8b69_b503_4f26_81756b6dc894d246" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1608 1 0 "d707b09f_2dc6_4b2f_9fdb84c07c07f2b2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1609 1 0 "2acb9ae8_850a_4120_a212cb2a4a6200bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1610 1 0 "cd7ca6de_07b8_4d48_875925ee71386e46" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1611 1 0 "0d7255ee_b967_4693_8d7375d684b4747f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1612 1 0 "10b7afeb_e804_457e_88b935a2b48a71c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Close") { // }} "" // {{{ 1613 1 0 "dbed33cf_5e9c_4102_b254b161284b15e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1614 1 0 "f7647d6b_38bb_4d38_895246f5ac76fe59" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverClose(Label, o_stepReturn); // }} "" // {{{ 1615 1 0 "77bb0b57_a308_455c_baabf680266f4336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1616 1 0 "0c3dee9e_33f9_4f79_99400f9368f6da14" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1617 1 0 "10b7afeb_e804_457e_88b935a2b48a71c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1618 1 0 "0d7255ee_b967_4693_8d7375d684b4747f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1619 1 0 "4dcf2947_ad5a_47e8_8c8214244ffcb3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1620 1 0 "81386c58_3b5a_4743_9453eb6a117234ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Start") { // }} "" // {{{ 1621 1 0 "44af1318_1d60_4a35_a5714accdc0c242a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1622 1 0 "25c1c841_9dea_4404_afbc9b3efc307343" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Direction"), Direction); // }} "" // {{{ 1623 1 0 "d5af29b3_1f52_48d0_be771ca87547a6c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Speed"), Speed); // }} "" // {{{ 1624 1 0 "0615f300_6c08_4978_beb5ebd0c96a686e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Acceleration"), Acceleration); // }} "" // {{{ 1625 1 0 "8f4f8eba_1777_4696_b1185b776105f4e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MaxRunTime"), MaxRunTime); // }} "" // {{{ 1626 1 0 "6d0a342b_4d08_47ec_81979a6bcb184434" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StartCentrifuge(Label, Direction, Speed, Acceleration, MaxRunTime, o_stepReturn); // }} "" // {{{ 1627 1 0 "562e3df1_ee9e_4ef5_a70c4247d08e453f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1628 1 0 "d3624dd6_4de0_4827_b501bde2ca9e3d5a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1629 1 0 "81386c58_3b5a_4743_9453eb6a117234ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1630 1 0 "4dcf2947_ad5a_47e8_8c8214244ffcb3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1631 1 0 "e9168cf2_c9e7_40a5_a52e0b9ad08f1fed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1632 1 0 "225ad45c_32fa_4f7d_af063f5ce1ab907c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Stop") { // }} "" // {{{ 1633 1 0 "e5891eba_60d8_49f6_af7be2af0aef66a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1634 1 0 "4008af1e_863b_4a5a_9b4b33d547b6fd7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Decelleration"), Decelleration); // }} "" // {{{ 1635 1 0 "667c83ad_57d3_4ce9_a2dca9287fb97d7e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StopCentrifuge(Label, Decelleration, o_stepReturn); // }} "" // {{{ 1636 1 0 "43ffc328_4600_41cb_a084d56b006fee8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1637 1 0 "263c82c5_d2f1_463f_b2f102d150ca0a0f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1638 1 0 "225ad45c_32fa_4f7d_af063f5ce1ab907c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1639 1 0 "e9168cf2_c9e7_40a5_a52e0b9ad08f1fed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1640 1 0 "551d8e94_670b_4472_b73600d28f237682" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1641 1 0 "bd20d1b8_d440_4b6f_9041a5b536904a0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Terminate") { // }} "" // {{{ 1642 1 0 "1e54be13_32c5_43bd_bcea8da753eedd90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1643 1 0 "c884c5b1_cb4e_4d38_907361a00b32d3f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Terminate(Label, o_stepReturn); // }} "" // {{{ 1644 1 0 "fa01d6ec_8920_4fd7_adbc2f6f4f106df5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1645 1 0 "1664cc0f_d416_47d5_aa13970ade2397b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1646 1 0 "bd20d1b8_d440_4b6f_9041a5b536904a0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1647 1 0 "551d8e94_670b_4472_b73600d28f237682" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1648 1 0 "6aa13f85_d8b8_4a2a_93232eeb15e0a01d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1649 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1650 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Initialize") { // }} "" // {{{ 1651 1 0 "5efffd73_f295_4d3c_aacd37c74d2bc015" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ComPort"), Comport); // }} "" // {{{ 1652 1 0 "cc8f22a1_0ae7_40ee_82d2e071b7344cf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn); // }} "" // {{{ 1653 1 0 "b6f33534_c173_4c6c_820d96a48fa50a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Barcode initialize:"), o_stepReturn); // }} "" // {{{ 1654 1 0 "138ad752_fbd8_457e_948dd436ddb65822" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1655 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1656 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Read") { // }} "" // {{{ 1657 1 0 "0b3c261e_a906_4464_b0e5caa3ec640056" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Read(barcode); // }} "" // {{{ 1658 1 0 "98aadc47_a5a2_433d_84530ad050155ccd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("BarcodeReader_Read"), barcode); // }} "" // {{{ 1659 1 0 "e3fc85ee_a6d7_4d98_a3f9076b947565cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, barcode, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1660 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1661 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1662 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1663 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1664 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_BeginMonitoring") { // }} "" // {{{ 1665 1 0 "7dd862dc_f7f1_4600_94ca9b83762673dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1666 1 0 "d37d14e5_261f_418c_81f754eb75bf4920" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingToleranceRange"), shakingToleranceRange); // }} "" // {{{ 1667 1 0 "0919ceb3_189a_4885_93c8faeab9f9538b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sampleInterval"), sampleInterval); // }} "" // {{{ 1668 1 0 "bc3a749e_e1bb_4c4a_9aac06834d85080f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("action"), action); // }} "" // {{ 1669 1 0 "98795c5d_e3e5_4d8c_bba032968c530136" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1670 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ; err.Clear(); // }} "" // {{{ 1671 1 0 "a2a0a3bb_c0cf_4123_afe36d1d51ae233c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action); // }} "" // {{ 1672 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3202FD4CC34D478f892F31C7684340BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1673 1 0 "435e7414_9170_4bf9_bd0ac83f0ab51fad" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1674 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1675 1 0 "c00b8635_652d_48ca_8d345ed070306b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1676 1 0 "85ac1487_5644_4bae_b032f5c191aa47c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1677 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1678 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1679 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1680 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateStarDevice") { // }} "" // {{{ 1681 1 0 "4c3dfdd2_2dd6_4c5f_831f92590c13e82e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1682 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ; err.Clear(); // }} "" // {{{ 1683 1 0 "cc3d4234_12d6_486a_a110c8ede0e3059b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber); // }} "" // {{ 1684 1 0 "f17e82ff_88ef_4685_bf6f75a8ca0e32f6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1685 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1686 1 0 "c0256452_8d47_4f97_9e9c2250a44934d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1687 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1688 1 0 "7699b24c_5ec6_4cca_b1cb9aed9ce60247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1689 1 0 "85155966_9554_40cb_9693f9b0a11b25a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1690 1 0 "d049e779_0761_471d_9f7b8af0967d1633" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1691 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1692 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1693 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1694 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateUSBDevice") { // }} "" // {{{ 1695 1 0 "72f0a762_2550_45ad_bea063f4f72a9fe9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1696 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ; err.Clear(); // }} "" // {{{ 1697 1 0 "6957e247_4f64_4971_8d90658c99adbb87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber); // }} "" // {{{ 1698 1 0 "34cc8f4a_c310_4eb7_b936c63f8401c523" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1699 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_98100824AA704d26AB40A6BADEF39F48 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1700 1 0 "058f8bb4_5fe3_4a6b_a36e899c2a89656f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1701 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1702 1 0 "a9b4c19d_dcc0_42d7_9a51e3241ef647f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return:"), o_stepReturn); // }} "" // {{{ 1703 1 0 "d303212f_1f38_442d_a24eee709cf4cdc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1704 1 0 "7356ec1e_8437_4679_94613ac2bea4fe0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1705 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1706 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1707 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1708 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_EndMonitoring") { // }} "" // {{{ 1709 1 0 "4293ef15_cfcd_4e29_b9b02afae2d471f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1710 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ; err.Clear(); // }} "" // {{{ 1711 1 0 "dd7d7b00_1e95_4e45_97a425f03a18ab04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult); // }} "" // {{{ 1712 1 0 "0021495f_472e_4321_9d1e81e8fbd43f0c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1713 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1714 1 0 "aabeb82e_70d9_42f7_901f3fe114094e0a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1715 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1716 1 0 "ce89bf49_b865_4c3f_a97eba220b5a7d33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS End Monitoring step return:"), o_stepReturn); // }} "" // {{{ 1717 1 0 "05229af2_f20a_42ce_908ec8445f3f9dd2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(""), Translate(""), id); // }} "" // {{ 1718 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1719 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1720 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1721 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetFirmwareVersion") { // }} "" // {{{ 1722 1 0 "942a1cc2_d956_47fa_9a9ffed1e856a632" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1723 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ; err.Clear(); // }} "" // {{ 1724 1 0 "f6b3cc8e_f852_4a96_9567a4fa67e846e8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1725 1 0 "c70f5e07_0eeb_45e5_af26714895e2df88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion); // }} "" // {{ 1726 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1727 1 0 "96886e69_ba07_45e3_96353112dc429afc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1728 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1729 1 0 "7de3b86c_c16d_4932_beedfb948b5d85f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(""), Translate(""), id); // }} "" // {{ 1730 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1731 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1732 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1733 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetSerialNumber") { // }} "" // {{{ 1734 1 0 "38b7d0d7_7cce_4157_8abc70dfb62eefa5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1735 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ; err.Clear(); // }} "" // {{ 1736 1 0 "08061228_63f2_47d2_a601ba16d6a1a142" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1737 1 0 "0bbfb488_9723_4a08_9b90171dbec6117a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber); // }} "" // {{ 1738 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2434A44DB44B48ff82A9F66DE34C5041 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1739 1 0 "4cf5e7f7_9567_4e6b_a206bf6f8962c785" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1740 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1741 1 0 "311e5a04_1ac3_443c_bdc51c5cdc4c44f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(""), Translate(""), id); // }} "" // {{ 1742 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1743 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1744 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1745 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerParameter") { // }} "" // {{{ 1746 1 0 "f3888a0b_86ea_4c4a_891e1755a6e78556" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1747 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ; err.Clear(); // }} "" // {{ 1748 1 0 "693cec94_9d14_4bff_8e4868a3b27f0245" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1749 1 0 "e993ed67_92ed_4c85_bd33f90aac53dfb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3); // }} "" // {{ 1750 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1751 1 0 "bd4bffe6_9161_4f42_b0b53307549f4286" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1752 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1753 1 0 "6efd49bf_48c7_437b_8fee57487345eaee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1754 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1755 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1756 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1757 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerSpeed") { // }} "" // {{{ 1758 1 0 "e1c29a26_0656_46e3_b0a412143047bd26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1759 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ; err.Clear(); // }} "" // {{{ 1760 1 0 "c0166b97_c0ae_417b_85c90c5ef42e5fc6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2); // }} "" // {{{ 1761 1 0 "73777071_2fd2_42b0_a7545c6a6a372194" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1762 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1763 1 0 "fb8e630b_9519_4b3d_94eabf1311546383" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1764 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1765 1 0 "41ba2513_e3c2_485c_821198419c3fe286" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1766 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1767 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1768 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1769 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTempParameter") { // }} "" // {{{ 1770 1 0 "09fb30ea_33e9_486d_96945af4798859ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1771 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ; err.Clear(); // }} "" // {{ 1772 1 0 "7e342beb_ebbe_4873_bf53c50f29cbaa0e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1773 1 0 "c8f45788_ef99_414d_a41d29a20583a067" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 1774 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C16E1CF8298042f0A01D1040DC911015 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1775 1 0 "b845f534_5a22_4076_b36069f70af90742" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1776 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1777 1 0 "4793211e_93d2_43e6_b4d25d7e0ae3e104" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 1778 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1779 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1780 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1781 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperature") { // }} "" // {{{ 1782 1 0 "01d1add6_c167_4137_8f0c285cd6ad9bed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1783 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ; err.Clear(); // }} "" // {{{ 1784 1 0 "ecd6d069_96d7_4a72_9ffc0df77e7a1512" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2); // }} "" // {{{ 1785 1 0 "b05c868f_c25f_47a9_b533b13ab05fc962" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1786 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_14A2AAD200434d69970AC483BD08B64F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1787 1 0 "cabbe1ee_c5d4_49dd_90875673900d6120" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1788 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1789 1 0 "234847f1_2f0a_4e64_856b9edefcebb425" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1790 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1791 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1792 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1793 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperatureState") { // }} "" // {{{ 1794 1 0 "82a233ab_0392_4ebb_9a809d80aae38e44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1795 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ; err.Clear(); // }} "" // {{{ 1796 1 0 "c99aa2b7_d8a6_4cee_a1fa1d731ef77d25" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2); // }} "" // {{{ 1797 1 0 "f2861b4d_28d2_4ee3_8b7c7763312067ab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1798 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_50485390A50647818ED2D3934FBC87E3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1799 1 0 "f56ee559_1221_4f5a_ad332d0e44502aff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1800 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1801 1 0 "31a69f44_1a59_49ce_a78763f3aa936042" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1802 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1803 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1804 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1805 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SendFirmwareCommand") { // }} "" // {{{ 1806 1 0 "11546c32_6ddd_4250_9b8750c9679e5b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1807 1 0 "06688598_f10e_41e9_8a2c6d3dff7b7aae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), command); // }} "" // {{{ 1808 1 0 "15a58509_ec93_4677_b1858cadeac42d10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("parameter"), parameter); // }} "" // {{ 1809 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ; err.Clear(); // }} "" // {{{ 1810 1 0 "a650efc1_423b_4f75_9f0da083ee44ae9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter); // }} "" // {{{ 1811 1 0 "e1ef0806_8a47_46c1_972c9ed9e299eaad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1812 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_84EE5E4228B140f599748D1271CBB0F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1813 1 0 "c9bd9645_5a05_4cc6_95997f787c8772d6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1814 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1815 1 0 "8b5634c2_e1da_41d3_83c57142f4cae999" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1816 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1817 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1818 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1819 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetPlateLock") { // }} "" // {{{ 1820 1 0 "927ddf67_5dbd_432b_b8cf6117a3109b06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1821 1 0 "a3eee1ac_7024_473b_a6eb8a2e9b461a66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("plateLock"), plateLock); // }} "" // {{ 1822 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ; err.Clear(); // }} "" // {{{ 1823 1 0 "b417b8ce_5117_450e_93a9a6243c6011d8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock); // }} "" // {{{ 1824 1 0 "ed43cecb_7012_4fb9_a89d129de09bdadb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1825 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1826 1 0 "4eb95522_37fd_4802_af85a620dc874526" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1827 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1828 1 0 "945560ed_40bf_44a9_851fead4c1943f9f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1829 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1830 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1831 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1832 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetShakerParameter") { // }} "" // {{{ 1833 1 0 "8a0e14c1_f6c6_4fb8_94094498cccd7991" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1834 1 0 "1810a83f_3fc2_4c49_9d5502fbdfc743e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingDirection"), shakingDirection); // }} "" // {{{ 1835 1 0 "c3053579_8645_474f_8c05459eed975362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingAccRamp"), shakingAccRamp); // }} "" // {{ 1836 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ; err.Clear(); // }} "" // {{ 1837 1 0 "32b90a07_0607_448d_9767de1d96e31862" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1838 1 0 "77463ac5_e629_4772_98004edef4016a6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp); // }} "" // {{ 1839 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1840 1 0 "5593fd2a_c1e7_4565_bcae82458768dd51" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1841 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1842 1 0 "5ed72ec4_1b60_4258_969b44c995450ec1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1843 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1844 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1845 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1846 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetSimulation") { // }} "" // {{{ 1847 1 0 "941f9e19_ca94_4ede_9719205aeb876593" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{ 1848 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ; err.Clear(); // }} "" // {{ 1849 1 0 "f56567fc_04c1_4645_aee22aa5f22a9f8c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1850 1 0 "41b0c1a2_60aa_4f16_8901c300e9a3dc14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetSimulation(simulate); // }} "" // {{ 1851 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1852 1 0 "35803a11_c620_485a_8196cc2822dddb3f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1853 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1854 1 0 "2e7a9d5f_51df_4c49_bb1986da7e14cd48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1855 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1856 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1857 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1858 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetTempParameter") { // }} "" // {{{ 1859 1 0 "99447b6e_9293_483d_bbd7ddee96870904" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1860 1 0 "f55d7581_a005_45e4_9b3d7f7473323e6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("startTimeout"), startTimeout); // }} "" // {{{ 1861 1 0 "7192db12_8543_4c8b_81b98b57ce21118d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("toleranceRange"), toleranceRange); // }} "" // {{{ 1862 1 0 "8f6d922f_f2ae_43c6_8682df15e6b7c07c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("securityRange"), securityRange); // }} "" // {{ 1863 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ; err.Clear(); // }} "" // {{ 1864 1 0 "a2342046_552f_4003_a1cc262161964a6e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1865 1 0 "57eb738a_6eb2_4f04_b25bd7f7f64a8179" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange); // }} "" // {{ 1866 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1867 1 0 "94c928dd_6dcb_4540_a6cbfdf48e37430c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1868 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1869 1 0 "90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1870 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1871 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1872 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1873 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetUSBTrace") { // }} "" // {{{ 1874 1 0 "0691ecbd_49b4_4590_91d60e614290ec34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("trace"), intTrace); // }} "" // {{ 1875 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ; err.Clear(); // }} "" // {{ 1876 1 0 "aeed4685_8812_4dce_89e2c35429d4c401" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1877 1 0 "24723a79_741b_46be_830fe654c08d6d1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetUSBTrace(intTrace); // }} "" // {{ 1878 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FE6D15E135D24fd7A06908E89474B650 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1879 1 0 "32d09876_dcdb_4d67_b5e72a63e14fec19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1880 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1881 1 0 "cda0d06f_dce0_47ad_bbb419c58aba260e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1882 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1883 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1884 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1885 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShaker") { // }} "" // {{{ 1886 1 0 "503e1c47_5f15_42bd_8eaad1057de68ef6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1887 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ; err.Clear(); // }} "" // {{{ 1888 1 0 "73be1c30_4bfe_4a0f_aa560c8df5b091fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartAllShaker(shakingSpeed); // }} "" // {{{ 1889 1 0 "39ac643d_0305_4ec6_87fc196efe3d76f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1890 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1891 1 0 "c35cdd37_7a73_4008_b9d0ac550c926428" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1892 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1893 1 0 "ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1894 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1895 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1896 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1897 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShakerTimed") { // }} "" // {{{ 1898 1 0 "db6b6c2e_da48_4c64_bdddc80ba5a28921" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1899 1 0 "f6f42906_5ded_4a05_8f9a11fac18f7f10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1900 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ; err.Clear(); // }} "" // {{{ 1901 1 0 "272104de_2e64_4a32_a88407b030437361" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime); // }} "" // {{{ 1902 1 0 "1362f66b_0efd_4eb5_935e84586a427637" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1903 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1904 1 0 "ef7c31f9_e307_450a_851111f26afd2e91" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1905 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1906 1 0 "d73f1476_bf95_4d48_89849f295a9e4d0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1907 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1908 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1909 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1910 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShaker") { // }} "" // {{{ 1911 1 0 "f958f5a5_d1c5_4e9e_9262e708f24940c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1912 1 0 "2ce1189b_e54a_48c0_aafc2932409c0b9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1913 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ; err.Clear(); // }} "" // {{{ 1914 1 0 "cf1b40c4_5e9a_48bf_9390f6eab212315f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed); // }} "" // {{{ 1915 1 0 "2e7a5304_5ce9_4afb_93a4a8276dc86d74" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1916 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1917 1 0 "9b93a06b_e4df_4eca_84467ca6c7f0c0ce" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1918 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1919 1 0 "4b0b48f9_3855_4eab_8f22b0902846d750" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1920 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1921 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1922 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1923 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShakerTimed") { // }} "" // {{{ 1924 1 0 "858c7861_9fb0_490e_9646b9eb190706d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1925 1 0 "327bd0c6_60a8_4fd1_9ef81e2a21d904a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1926 1 0 "83a6d58d_c761_484f_871c9c2229a6d3d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1927 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ; err.Clear(); // }} "" // {{{ 1928 1 0 "4b29337f_c67c_4ecf_a205f4b70e60271a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); // }} "" // {{{ 1929 1 0 "40aad8b7_f42e_4ad1_b0f0c033ec666548" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1930 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_29447729262E4e0f8B347F6640716D96 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1931 1 0 "f383d799_1d15_4348_8a2dc84422f46ff2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1932 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1933 1 0 "f539df09_de1d_4fd8_9ac041897fab0333" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1934 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1935 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1936 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1937 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartTempCtrl") { // }} "" // {{{ 1938 1 0 "dc338e01_6b43_4fe3_bda98d2b0a1a65e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1939 1 0 "04239a09_93a5_4f75_80f95d178bdf9cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("temperature"), temperature); // }} "" // {{{ 1940 1 0 "0387745b_87be_4ec6_912b0b4decaa257b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("waitForTempReached"), waitForTempReached); // }} "" // {{ 1941 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ; err.Clear(); // }} "" // {{{ 1942 1 0 "dfb61f9c_103b_4c42_83e0779ea05cb180" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached); // }} "" // {{{ 1943 1 0 "e4829da3_d8b6_453f_a2be82213303e9f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1944 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_764F491C76DA445383E5490AB126ADB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1945 1 0 "21dd8d34_e764_4a0f_b34ccecf089437dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1946 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1947 1 0 "bfde731d_b581_4488_b4cb7f4873675d7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1948 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1949 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1950 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1951 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopAllShaker") { // }} "" // {{ 1952 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ; err.Clear(); // }} "" // {{{ 1953 1 0 "ee3103a2_d7f3_488f_b7a95e2f2b56770a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{{ 1954 1 0 "a782313c_e15b_4340_bdda314f926e24cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1955 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1956 1 0 "45d1f212_46b9_4976_83503edf5606c88e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1957 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1958 1 0 "5706daca_363f_417f_9103f7ddd16c1444" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1959 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1960 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1961 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1962 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopShaker") { // }} "" // {{{ 1963 1 0 "1cdead0d_9944_446b_bd59d491b15242b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1964 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ; err.Clear(); // }} "" // {{{ 1965 1 0 "b5ecca33_fef4_4c14_9cf702c924839607" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StopShaker(deviceNumber); // }} "" // {{{ 1966 1 0 "49e72e72_8e49_49fd_8d212a6ccff1d2fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1967 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1968 1 0 "1fe83710_037b_4157_82a99e6aaf08edcb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1969 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1970 1 0 "6ffd1f39_ec63_4f9c_a7687447aff79f80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1971 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1972 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1973 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1974 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopTempCtrl") { // }} "" // {{{ 1975 1 0 "b16ab946_2ba9_4900_bd6f9ede31edf6ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1976 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B5957B02990845739642D8C604B0B582 ; err.Clear(); // }} "" // {{{ 1977 1 0 "d186dde8_c684_4550_a023d9023ff021d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StopTempCtrl(deviceNumber); // }} "" // {{{ 1978 1 0 "af12e4a9_cc0f_4a82_b9593d2b489756a8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1979 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B5957B02990845739642D8C604B0B582 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1980 1 0 "28b1d8d1_83cc_4627_9146c7398c601938" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1981 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1982 1 0 "11f3231a_40df_4c14_92585ab8016165e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1983 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1984 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1985 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1986 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_Terminate") { // }} "" // {{ 1987 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ; err.Clear(); // }} "" // {{ 1988 1 0 "b1da178c_1267_4c8c_b1cd24bfa10a11fb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1989 1 0 "910932e3_2b76_41cf_9dccecb799f2d649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::Terminate(); // }} "" // {{ 1990 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_919FCF7F89804c398972DAFE2605D286 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1991 1 0 "697e84e2_525e_4045_83bb3825b36f6b2f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1992 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1993 1 0 "4edde3c1_4f65_4403_a54985d84f6d80f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1994 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1995 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1996 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1997 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForShaker") { // }} "" // {{{ 1998 1 0 "87872be5_4e84_4b7b_98a3e7147a66f6a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1999 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ; err.Clear(); // }} "" // {{{ 2000 1 0 "3b2abeec_38f4_46a6_a30b0d0126280ebc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::WaitForShaker(deviceNumber); // }} "" // {{{ 2001 1 0 "c4e94e42_8405_438b_921cfe4ba73e9976" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 2002 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2003 1 0 "c08ab14c_3879_4f65_ad7085e45f74a6df" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2004 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2005 1 0 "96b99051_5c80_421c_a02e0bd238da1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2006 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2007 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2008 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2009 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForTempCtrl") { // }} "" // {{{ 2010 1 0 "881e7d69_50e3_4e42_89eafece562ac009" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 2011 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ; err.Clear(); // }} "" // {{{ 2012 1 0 "5aa60a5a_db92_42e0_b3277a41cacb5336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber); // }} "" // {{{ 2013 1 0 "49cd8e9e_91bd_468c_aec57e3af40280fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 2014 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_088C7630997A4749A400740DA66CBA0C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2015 1 0 "de7dad67_0b6c_47eb_af5a68302431ff1e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2016 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2017 1 0 "aeb529e0_2eaf_4686_9528342b58318a5d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2018 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2019 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2020 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2021 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2022 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2023 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "CORE96WashEmpty") { // }} "" // {{{ 2024 1 0 "88f95bdd_c2c5_4856_91e5f47f7431bdaf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("refillAfterEmpty"), refillAfterEmpty); // }} "" // {{{ 2025 1 0 "d7a05a26_0b59_478a_a85f308173caf693" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1WashLiquid"), chamber1WashLiquid); // }} "" // {{{ 2026 1 0 "8b1bd108_2b5a_4a2d_ace7b87920eae1b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1LiquidChange"), chamber1LiquidChange); // }} "" // {{{ 2027 1 0 "d651fbf5_a4b8_490b_b869269338ccfcfa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2WashLiquid"), chamber2WashLiquid); // }} "" // {{{ 2028 1 0 "79b1a205_d988_4171_9e1fb28ba362329b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2LiquidChange"), chamber2LiquidChange); // }} "" // {{ 2029 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ; err.Clear(); // }} "" // {{ 2030 1 0 "3fc645b3_f504_4b5e_93481425adf459b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2031 1 0 "123d7b87_745f_4511_a797d08711d13361" "ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}" { variable arrRetValues[]; arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3("123d7b87_745f_4511_a797d08711d13361"); // Head96EmptyWasher } // }} "" // {{ 2032 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EE8804FCDC214a06935DD0F4830020DB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2033 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 2034 1 0 "d3d07dad_de12_4d0c_bd96c7caa06ff3ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 2035 1 0 "84732f19_85e4_4b22_8e617b5e1c91f73c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Washer Return: "), o_stepReturn); // }} "" // {{{ 2036 1 0 "dde0a413_b493_4b17_94990d1d5f2e2b2e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2037 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2038 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2039 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2040 1 0 "1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONFromServer); // }} "" // {{ 2041 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2042 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "end") { // }} "" // {{{ 2043 1 0 "6db67a5a_6aa2_4087_875823acfff0fac4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Good Bye!")); // }} "" // {{ 2044 1 0 "4c7e40d6_02a6_451d_b28230ec71e40ce1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2045 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2046 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2047 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2048 1 0 "6fb90145_24c3_46ba_88b839e0215d0bf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{ 2 "AutoExitBlock" "" STAR_OEM_TOOLKIT::_ExitLibrary(); STAR_OEM_TOOLKIT_PH::_ExitLibrary(); STAR_OEM_TOOLKIT_CENTRIFUGE::_ExitLibrary(); STAR_OEM_TOOLKIT_MPE::_ExitLibrary(); HAMILTON_PH_MODULE_CONTROLLER::_ExitLibrary(); // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=Hamilton$$valid=0$$time=2024-09-06 15:33$$checksum=6be64d0a$$length=085$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx68E5.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" private function ArrayToString( variable & i_array[], variable & o_str ) void ; private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ; private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ; private function ConvertHSSErrCode( variable hssErrCode ) variable ; private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ; private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void ; function SendTextMessageToServer( variable str ) void ; private function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; private function waitForGUItoContinue( ) variable ; function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 2213 1 0 "c8aa765a_4840_468a_9e928b44fa79d891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{{ 5 "OnAbort" "End" } // }} "" // {{{ 5 "SendTextMessageToServer" "Begin" function SendTextMessageToServer( variable str ) void { // }} "" private object objJSONObject; private variable strJSON; // {{ 5 "SendTextMessageToServer" "InitLocals" // }} "" // {{{ 2173 1 0 "9d5f9d4a_c104_4b47_964b6d97f981a71e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONObject); // }} "" // {{{ 2174 1 0 "d0a04705_1adc_4919_b95168834c89f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("command"), Translate("message")); // }} "" // {{{ 2175 1 0 "7b9a6cd1_3eee_4085_b3f9548e43fc3424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("text"), str); // }} "" // {{{ 2176 1 0 "6a1c53cf_65ea_4f53_aa2e9111890fecf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONObject, strJSON); // }} "" // {{{ 2177 1 0 "bee8c148_b3ea_490b_8d93d8ed5f24939f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONObject); // }} "" // {{{ 2178 1 0 "b965a2fd_f821_4400_b4c777f558ed0772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendTextMessageToServer" "End" } // }} "" // {{{ 5 "waitForGUItoContinue" "Begin" private function waitForGUItoContinue( ) variable { // }} "" private variable loopCounter1; private variable serverResponse; private timer timer1; // {{ 5 "waitForGUItoContinue" "InitLocals" // }} "" // {{ 2194 1 0 "73328607_d06a_4d7d_8a5df64da06a1bde" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" serverResponse = Translate(""); // }} "" // {{{ 2195 1 0 "2342f8b3_4765_4edc_9fb9f46cbb1fd20b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Waiting for server instructions...")); // }} "" // {{{ 2196 1 0 "216e1039_788e_4830_8588933e6c542ba1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Waiting for server instructions...."), Translate("")); // }} "" // {{ 2197 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounter1 = 0; while (1 == 1) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2198 1 0 "73659ac2_f808_47cc_89196cc3adc8efbf" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" timer1.SetTimerViewName(""); if( 0 == timer1.SetTimer(0.05) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2199 1 0 "cd67277b_4386_4862_8429008a00601693" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 2200 1 0 "6ec592d0_fe02_41a9_8503db5ccf0e5544" "{C1F3C015-47B3-4514-9407-AC2E65043419}" serverResponse = HSLHttp::HttpGET(objHttp, Translate("http://localhost:3221"), Translate("")); // }} "" // {{ 2201 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (serverResponse != "") { // }} "" // {{ 2202 1 0 "9be29cc7_ad35_4b87_9e95d31796325e12" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2203 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2204 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 == 300) { // }} "" // {{ 2205 1 0 "19e5c8f7_a1a9_4348_aa41a572942db630" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2206 1 0 "2a039f02_4c13_4f72_9ba40a3121b31262" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2207 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2208 1 0 "d221d799_ee85_4f6d_a40a06cc0a69a3de" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" timer1.SetTimerViewName(""); if( 0 == timer1.SetTimer(0.05) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2209 1 0 "52bb524e_27b1_4bbe_afcf26453d9eb66f" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2210 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2211 1 0 "809789b0_bd70_4c1f_b0d808ce120b1d99" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (serverResponse); // }} "" // {{{ 5 "waitForGUItoContinue" "End" } // }} "" // {{{ 5 "SendStepReturnToServer" "Begin" private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer" "InitLocals" // }} "" // {{{ 2144 1 0 "2520bd9f_739d_4111_a27d89f8f73ec39e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2145 1 0 "aa6010ec_0628_49d5_a87e016b4a4fc7f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 2146 1 0 "a97c5efa_0ce4_4358_9c51c1893f526b9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 2147 1 0 "deceb871_e830_4b14_86e626f745ef083a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 2148 1 0 "00afb5c2_b5db_4458_866a13b6cb332b68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 2149 1 0 "e52bbd02_b31d_4278_a0f45991eab77d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 2150 1 0 "19f99698_3777_4dcf_9fc765c3f221df4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 2151 1 0 "329f8b9b_0798_44f8_9ee6b65ec58b0c44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2152 1 0 "7728ac0d_8630_4f61_94af076392758ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2153 1 0 "70d261f2_edc4_49a0_a5a074cd5ab92b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2154 1 0 "ee0dd62d_582f_4171_b08e37f6106d9b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer" "End" } // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "Begin" private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void { // }} "" private variable n; private variable loopCounter1; private variable strSinglePosition; private variable arrayOfPositions[]; private variable arraySinglePosition[]; private variable labwareID; private variable positionID; // {{ 5 "BuildTempSequenceFromPositions" "InitLocals" { sequence __temp; o_seq = __temp; } // }} "" // {{ 2086 1 0 "d9022e13_e502_4969_a8ee79484e990801" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arrayOfPositions.SetSize(0); // }} "" // {{{ 2087 1 0 "3e178082_8579_435f_a5db4481bb789d9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strPositions, Translate(";"), arrayOfPositions, 0); // }} "" // {{ 2088 1 0 "5d735f26_db1b_4bea_9ee405f4167bb99f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" n=arrayOfPositions.GetSize(); // }} "" // {{{ 2089 1 0 "f497f24b_fd39_417d_8703c0d54662309f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq); // }} "" // {{ 2090 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2091 1 0 "fd645546_0433_46a0_8619026e338529fd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arraySinglePosition.SetSize(0); // }} "" // {{ 2092 1 0 "91aeb0c4_3176_4356_a19a1027bcdb0af3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1); // }} "" // {{{ 2093 1 0 "c2b42369_7829_4c62_b58880fce7867995" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strSinglePosition, Translate(","), arraySinglePosition, 0); // }} "" // {{ 2094 1 0 "016f61c5_fd76_4c74_903df10a03070f7b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" labwareID=arraySinglePosition.GetAt(1-1); // }} "" // {{ 2095 1 0 "886fc872_7c3a_4366_959db6d5f265ed7c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" positionID=arraySinglePosition.GetAt(2-1); // }} "" // {{{ 2096 1 0 "766a54b4_4c5b_4991_9d8ceea62d26b216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq, labwareID, positionID); // }} "" // {{ 2097 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2098 1 0 "0003c6e9_5b43_438d_bc93be342c3c6b55" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq.SetCurrentPosition(1); // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "End" } // }} "" // {{{ 5 "StrTokenize" "Begin" private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 2188 1 0 "500afe4c_98a8_4117_8c279b9994d0b626" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 2189 1 0 "6a0bd918_2fda_4e4c_a680454ce2576168" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 2190 1 0 "f65ed315_68ed_4ec0_ba0b3c217e692b25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 2191 1 0 "9476acee_e5bb_43d1_bbec232ed01bae08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); // Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "Begin" private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void { // }} "" private variable numOfVolumes; private variable numOfChannelsInVariable; private variable n; private variable loopCounter1; private variable arrSize; private variable loopCounter3; private variable strKeyName; // {{ 5 "BuildArrayOfVolumesForChannels" "InitLocals" o_arrayOfVolumes.SetSize( 0); // }} "" // {{ 2060 1 0 "69288f91_eabd_4d15_af5361636ffacbf6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyName = Translate("volumes"); // }} "" // {{ 2061 1 0 "bf4c1108_6751_41ee_8d3d3b1a9418548f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfVolumes.SetSize(0); // }} "" // {{{ 2062 1 0 "a9cfa743_a769_46a3_b8d7e45a67b3d297" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName); // }} "" // {{ 2063 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arrSize > 0) { // }} "" // {{ 2064 1 0 "594bebbb_0d54_4893_b20d783de743dd44" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2065 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < arrSize;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{{ 2066 1 0 "3bfc9004_2595_4917_b4edcdceed06f518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); // }} "" // {{ 2067 1 0 "6be31b23_f55d_4d15_be6abc9ee4bef664" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" Trace("Volume received=", v); // {{ 2069 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2070 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2071 1 0 "4a4891b3_f877_4b14_85196b7e820554b2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2072 1 0 "22c7c768_33c4_4975_909e9586375bfe8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(strKeyName, v); // }} "" // {{ 2073 1 0 "4e01e62a_13a2_408e_9fbfb2300d5996ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 2074 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2075 1 0 "cc565f65_a92a_43ef_9c052b7f5632aca5" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" numOfVolumes=o_arrayOfVolumes.GetSize(); // }} "" // {{{ 2076 1 0 "e49355fb_3fe6_4c8d_930870416e36b708" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numOfChannelsInVariable = StrGetLength(strChannels); // }} "" // {{ 2077 1 0 "804bc477_e950_4a14_af5f667c73cf5176" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2078 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (numOfVolumes < numOfChannelsInVariable) { // }} "" // {{ 2079 1 0 "2e73355c_8b11_4423_b345807cae9d5db8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" n = numOfChannelsInVariable - numOfVolumes; // }} "" // {{ 2080 1 0 "53a650d8_2fc1_4c5b_bd19eda433c2a81a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" v = o_arrayOfVolumes.ElementAt( numOfVolumes -1); // }} "" // {{ 2081 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2082 1 0 "cd047b15_6a02_40f1_adfb116f6bf5d763" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 2083 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2084 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "End" } // }} "" // {{{ 5 "ArrayToString" "Begin" private function ArrayToString( variable & i_array[], variable & o_str ) void { // }} "" private variable arraySize; private variable loopCounter1; // {{ 5 "ArrayToString" "InitLocals" o_str = 0; // }} "" // {{ 2050 1 0 "1a220255_6ba4_40fb_be39a6a2f4e0065f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 2051 1 0 "f821c4ff_f1a2_4ad7_9bd77dd8652567cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str = Translate(""); // }} "" // {{ 2052 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2053 1 0 "afd84a84_8330_46e7_8308e16b5caa05e9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" v=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 2054 1 0 "77436fd3_3c87_4f09_9a89259b15ef5bf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, v); // }} "" // {{ 2055 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 < arraySize) { // }} "" // {{{ 2056 1 0 "d14fd31e_5de8_46f9_bb359f38de9a08ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, Translate(";")); // }} "" // {{ 2057 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2058 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "ArrayToString" "End" } // }} "" // {{{ 5 "JSON_GetFloatValue" "Begin" private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void { // }} "" private variable retVal; // {{ 5 "JSON_GetFloatValue" "InitLocals" o_KeyFloatValue = 0; // }} "" Trace("getfloatvalue"); // {{{ 2106 1 0 "8f2f8625_6c9e_4c47_b4698d29df60004a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" // {{ 2107 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("error getting float value, try with integer"); // {{ 2109 1 0 "5a74df81_6685_4703_8b055144f8d74d45" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2110 1 0 "47bb8c98_9624_40ad_b765abfc6b0d0b49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" Trace("error getting float value, tried with integer"); // {{ 2112 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("wtf ok i guess its zero"); // {{ 2114 1 0 "5b8a3ec6_8ee4_4887_ab7df29fa494cdc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_KeyFloatValue = 0; // }} "" // {{ 2115 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2116 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "JSON_GetFloatValue" "End" } // }} "" // {{{ 5 "SendHHSReturnToServer" "Begin" private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; private variable t_arrayStepReturns[]; private variable loopCounter1; private variable keyName; private variable varType; // {{ 5 "SendHHSReturnToServer" "InitLocals" // }} "" // {{{ 2118 1 0 "6db3f932_ba70_4cf6_9c2a8636580fc754" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2119 1 0 "3cf8a985_83cc_418e_99293de9d9945d5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("HHS-return")); // }} "" // {{{ 2120 1 0 "705c25bc_6db4_4eb9_b05b33999e110198" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{ 2121 1 0 "5a9efc02_a11a_4c0c_b166e3b28800cc6c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" t_arrayStepReturns.SetSize(0); // }} "" // {{ 2122 1 0 "5aa4f3a8_774f_4f35_ae7fa197ef920048" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn1); // }} "" // {{ 2123 1 0 "00ac351d_bc51_41e5_b300af93d6893fa5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn2); // }} "" // {{ 2124 1 0 "2aaf8702_2d08_48ee_be96815ca77463c9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn3); // }} "" // {{ 2125 1 0 "67fcb56e_9f42_4739_a5ee322f12443a17" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn4); // }} "" // {{ 2126 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < 4;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 2127 1 0 "a23ae2ed_5b02_41a0_a69215d0b80fde4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" keyName = StrConcat2(Translate("step-return"), loopCounter1); // }} "" // {{{ 2128 1 0 "9b92ac94_8c71_4b77_95ac0c691427c4bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" varType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2129 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "s") { // }} "" // {{{ 2130 1 0 "1497ea6a_46ab_4ee8_b7951f24b533e644" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2131 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2132 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "f") { // }} "" // {{{ 2133 1 0 "61772f9e_fea3_4011_bba06b7fe66e8b0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2134 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2135 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "i") { // }} "" // {{{ 2136 1 0 "28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2137 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2138 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2139 1 0 "0a0447b8_96fb_495a_90dfa8f1e2c488ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2140 1 0 "b2a13d10_b443_4fc0_aa0baa2a23cddafe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2141 1 0 "0adf40b4_5c73_46d8_8e6042c6dfd32d86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2142 1 0 "5a5dabeb_e3ed_4730_ab86839e00f75077" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendHHSReturnToServer" "End" } // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "Begin" private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer_EightOutputs" "InitLocals" // }} "" // {{{ 2156 1 0 "a5a7b215_f4cb_4951_82e1faf532cd7222" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2157 1 0 "9480693e_99ec_4cfd_aa9c8f48e76ee42f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 2158 1 0 "3f068696_35bd_4060_8b291470a817f628" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 2159 1 0 "b68a52fb_e141_4e4c_b5e7bbcbf0c9817f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 2160 1 0 "8ab4a139_9629_43b7_98f13d1058881e4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 2161 1 0 "1417a4bd_aea8_4b36_8a7a05739a789ecf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 2162 1 0 "24b6213e_470e_468a_86dc55b44ff96b95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 2163 1 0 "42403d87_ddb6_4bee_8fc6ad09efb7573a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return5"), stepReturn5); // }} "" // {{{ 2164 1 0 "8493044a_674d_4139_90fa1c7a00050abc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return6"), stepReturn6); // }} "" // {{{ 2165 1 0 "b43cf915_ef0d_4d62_985deae88bcd6c18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return7"), stepReturn7); // }} "" // {{{ 2166 1 0 "584d78fd_87d0_4502_a6d089cfaf888318" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return8"), stepReturn8); // }} "" // {{{ 2167 1 0 "711dbc6f_e5c4_40a0_bef5785dc99707ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return9"), stepReturn9); // }} "" // {{{ 2168 1 0 "47856892_8af4_409f_88723a44ebe61362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2169 1 0 "e5054174_6f3f_4356_8dc30683be948abe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2170 1 0 "e21196c3_6b8f_47e5_a2888114650b2ec8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2171 1 0 "3fec97a3_9f33_4fef_afe5355188bf56d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "End" } // }} "" // {{{ 5 "StrArrayToInts" "Begin" private function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void { // }} "" private variable arraySize; private variable loopCounter1; private variable val; private variable o_arrayOfInts[]; // {{ 5 "StrArrayToInts" "InitLocals" o_intarray.SetSize( 0); // }} "" // {{ 2180 1 0 "d68ba554_ea5e_486c_90e45e6f46e051a7" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 2181 1 0 "2ceaf7fd_f918_493e_a519f9ccc1a58114" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfInts.SetSize(0); // }} "" // {{ 2182 1 0 "f1b90762_2d83_476f_b1cd6ef39b938b13" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2183 1 0 "832d04b5_dd9e_47f6_86628701b9ba44ef" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" val=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 2184 1 0 "a10f8b45_b69d_4a85_be5a713ea78ccd01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" val = APPSLIB::StrConvertToNumber(val); // }} "" // {{ 2185 1 0 "70dffb74_d5e0_4795_bc74a43dbf1c7d9b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_intarray.AddAsLast(val); // }} "" // {{ 2186 1 0 "f1b90762_2d83_476f_b1cd6ef39b938b13" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "StrArrayToInts" "End" } // }} "" // {{{ 5 "ConvertHSSErrCode" "Begin" private function ConvertHSSErrCode( variable hssErrCode ) variable { // }} "" // {{ 5 "ConvertHSSErrCode" "InitLocals" // }} "" // {{ 2100 1 0 "0390e8b9_f753_48cc_ba9811c6326b8cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (hssErrCode == 0) { // }} "" // {{{ 2101 1 0 "9f0ce7fc_13c6_4496_9d762a07174e50f1" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (1); // }} "" // {{ 2102 1 0 "0390e8b9_f753_48cc_ba9811c6326b8cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2103 1 0 "4c347e8c_4bce_4fd2_9771e3402c6f946d" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (0); // }} "" // {{{ 5 "ConvertHSSErrCode" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=Hamilton$$valid=0$$time=2024-09-06 15:33$$checksum=400be611$$length=087$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx68E5.tmp ================================================ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx7218.hsl ================================================ // ====================================================================== // This is a part of the HSLHamHeaterShaker Library. // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // All rights reserved. // ====================================================================== // // Modification History // // 2008-09-11 tbenz > V1.0 first creation // // 2008-12-03 tbenz > V1.1 check of input parameter removed // // 2009-08-13 tbenz > V1.2 Initialize routine enlarget with close ond open plate lock // changed in function InitializeNode() // // 2013-03-06 tbenz > V4.4 No change in the library. // USB driver changed from UsbIoComm.dll to HxUsbComm.dll // this driver is trace into the same UsbCom.trc file than the phoenix software. // Version is new dependet of the software version. // // >>>>> if you change the version update HamHeaterShakerVersion too <<<< // // ********************************************************************** // This library version supports following hardware: // - Hamilton Heater Shaker PN 186280/02 // ********************************************************************** #ifndef __HSLHeaterShakerLibImpl_hsl__ #define __HSLHeaterShakerLibImpl_hsl__ 1 static const variable HamHeaterShakerVersion("Version: V4.4"); // ---------------------------------------------------------------------------------------------------- // Includes // ---------------------------------------------------------------------------------------------------- #ifndef __HSLStrLib_hsl__ #include "HSLStrLib.hsl" #endif #ifndef __HSLSynLib_hsl__ #include "HSLSynLib.hsl" #endif #ifndef __HSLMthLib_hsl__ #include "HSLMthLib.hsl" #endif // ---------------------------------------------------------------------------------------------------- // Device (for development only! Comment out for release version.) // ---------------------------------------------------------------------------------------------------- //device ML_STAR; // -------------------------------------------------------------------------------------- // Implementation of Hamilton Heater Shaker library // -------------------------------------------------------------------------------------- namespace HSLHamHeaterShaker { #ifndef __HSLStringTableLib_hsl__ #include "HSLStringTableLib.hs_" #endif // -------------------------------------------------------------------------------------- // Debugging and Developing (for development only! Comment out for release version.) // -------------------------------------------------------------------------------------- //#define _DEBUG 1 // specifies the debug version of the HSLHamHeaterShaker library // -------------------------------------------------------------------------------------- // Tracing // -------------------------------------------------------------------------------------- namespace TraceStatus { static const variable cmd_start(1); // action status for formated trace and step return static const variable cmd_complete(2); // action status for formated trace and step return static const variable cmd_error(3); // action status for formated trace and step return static const variable cmd_progress(4); // action status for formated trace and step return static const variable cmd_errComplete(5); // action status for formated trace and step return } // -------------------------------------------------------------------------------------- // Parameter definitions // -------------------------------------------------------------------------------------- namespace ShakingParam { static const variable directionLeft(0); // Shaking direction static const variable directionRight(1); // Shaking direction static const variable directionDefault(0); // Shaking direction static const variable speedParamLenght(4); // Length of firmware parameter string static const variable accelParamLenght(5); // Length of firmware parameter string static const variable timeParamLenght(5); // Length of firmware parameter string static const variable rampMin(630); // Accelerator ramp min static const variable rampMax(12500); // Accelerator ramp max static const variable rampDefault(1250); // Accelerator ramp default static const variable rpmMin(30); // min revolutions per minutes RPM (steps per second (48 steps == 1 revolution) static const variable rpmMax(2500); // max revolutions per minutes RPM static const variable rpmDefault(1000); // Revolutions per minutes RPM static const variable rmpStepFactor(1.25); // Factor to calculate RPM to steps (Steps = RPM / rmpStepFactor) static const variable shakingTimeMin(0); // min shaking time static const variable shakingTimeMax(30000); // max shaking time static const variable shakeTolMin(0); // min shaking tolerance static const variable shakeTolMax(100); // max shaking tolerance } namespace TemperateParam { static const variable startTimeOutDefault(1800);// Time before temperature will be checked static const variable startTimeOutMin(1); // Time before temperature will be checked static const variable startTimeOutMax(3600); // Time before temperature will be checked static const variable paramLength(4); // Length of all temperature step parameter static const variable tempStateOk(0); // Temperature was allways in temperature range static const variable tempStateOutOfRange(1); // Temperature was out of temperature range static const variable tempStateOutOfSecurity(2);// Temperature was out of security range static const variable tempStateTimeOut(3); // Temperature timeout static const variable tempMin(0.0); // min temperature static const variable tempMax(105.0); // max temperature static const variable tempToleranceDefault(2.0);// Tolerance of incubation time static const variable tempToleranceMin(0.0); // Tolerance of incubation time static const variable tempToleranceMax(100.0); // Tolerance of incubation time static const variable tempSecurityDefault(6.0); // Security range of incubation temperature (switch off heater if reached) static const variable tempSecurityMin(0.0); // Security range of incubation temperature (switch off heater if reached) static const variable tempSecurityMax(100.0); // Security range of incubation temperature (switch off heater if reached) static const variable tempTempRequestLength(13);// Length of temperature response string static const variable tempStateRequestLength(4);// Length of temperature state response string } // -------------------------------------------------------------------------------------- // Monitoring // -------------------------------------------------------------------------------------- namespace MonitorStatus { static const variable monitorOK(0); // no error static const variable monitorErrHeating(1); // heating out of range static const variable monitorErrShaking(2); // shaking out of range static const variable monitorErrHeatingAndShaking(3); // heating and shaking out of range } namespace MonitorAction { static const variable monitorActionMin(0); // min value static const variable monitorActionCont(0); // Continue static const variable monitorActionStop(1); // Stop Heating, shaking and monitoring static const variable monitorActionAbort(2); // Abort run static const variable monitorActionMax(2); // max value } // -------------------------------------------------------------------------------------- // Module local constants/variables // -------------------------------------------------------------------------------------- static const variable m_maxHHS(10); // node 0..9 static const variable m_firstStarNode(1); // node 1 and 2 for ML_Star static const variable m_lastStarNode(2); // node 1 and 2 for ML_Star static const variable m_firstUsbNode(1); // node 1 to 8 for USB (0..7) static const variable m_lastUsbNode(8); // node 1 to 8 for USB (0..7) static const variable m_firstDeviceNumber(1); // generated deviceNumber range static const variable m_lastDeviceNumber(m_maxHHS); // generated deviceNumber range static const variable m_usbMsgTimeout(240); // timeout for comand which are send to USB static const variable m_usbInitTimeout(15); // timeout for init comands which are send to USB static const variable m_OFF(0); static const variable m_ON(1); static const variable m_firmwareCmdLength(2); // length of firmware command without node (Tx) static const variable m_waitTimeOutSecurity(60); // Security time which will be added oto wait timeout of function waitShaker() static const variable m_starSimulateModeKey(18); // key for read simulate flag of STAR with GetCfgValueWithKey() static const variable m_shakingPropertyHeatAndShake(0); // HHS is usable for heating and shaking static const variable m_shakingPropertyOnlyHeat(1); // HHS is usable for heating only static const variable m_shakingPropertyOnlyShake(2); // HHS is usable for shaking only static const variable m_shakingPropertyNothing(3); // HHS is defined wrong, no shaking and no heating ???? // special error definition for direct check in step result string static const variable m_fwNoError("er00"); // no error static const variable m_fwCanError("er10"); // can error static const variable m_fwShNotInitError("er51"); // Shaker not initialized static const variable m_fwShStepLostError("er52"); // Shaker step lost static const variable m_fwPlNotInitError("er56"); // Plate lock not initialized static const variable m_fwPlStepLostError("er57"); // Plate lock step lost static const variable m_fwTimeoutError("er98"); // Time out during send of a command static const variable m_fwIsInitialized("qw1"); // QW answere, initialize = flag == 1 static const variable m_noStarConnectionError("er03"); // No connection to star // definition for USB component static variable m_hhsUsbObjectName("HamHeaterShakerUSB.USB"); // name of USB component // "{BD0DAB87-838B-44c5-A114-1CBA5BE0E45F}", bufferSize(4090), vendorId(2223), productId(32770), serialNumber(00)); static variable m_hhsUsbProductNum(32770); // productId and serialNumber as string static variable m_hhsUsbSerieNum("00"); // productId and serialNumber as string // -------------------------------------------------------------------------------------- // Module globale constants/variables // -------------------------------------------------------------------------------------- static global variable m_hhsCriticalSection(0); // critical section object for library synchronization static global object m_usbComObject; // USB device object // -------------------------------------------------------------------------------------- // Module local constants/variables which must be locked during set / get // -------------------------------------------------------------------------------------- static variable m_isStringTableInitialized(hslFalse); // flag for init string table static global variable m_initializedLib(hslFalse); // initialization state of the HSL HamHeaterShaker library static global variable m_isSimulate(hslFalse); // flag for simulate mode of heater shaker static global variable m_usbTrace(hslTrue); // flag vor trace the send and receive from USB device static global variable m_initializedHeater[](m_maxHHS); // initialization state of the used device static global variable m_shakingDirection[](m_maxHHS); // Shaking direction left/right (0/1) static global variable m_shakingAccRamp[](m_maxHHS); // Acceleration ramp (rpm) static global variable m_shakingTimeOut[](m_maxHHS); // Time out for waiting function after StartTimed 0 = not started static global variable m_tempStartTimeOut[](m_maxHHS); // Time to elapse until the time controlling is satrt static global variable m_tempToleranceRange[](m_maxHHS); // Tolerance of incubation temperature static global variable m_tempSecurityRange[](m_maxHHS); // Security tolerance before the heater is automatic switched off static global variable m_userShakingSpeed[](m_maxHHS); // The given speed from start function static global variable m_userTemperature[](m_maxHHS); // The given temperature from start function // device management // note: the assigned deviceNumber correspond with the array index (deviceNumber-1 == arrayIndex) static global variable m_deviceName[](m_maxHHS); // Name of ML_STAR or "USB" on USB static global variable m_nodeNumber[](m_maxHHS); // can node number 1 based static global object m_starDeviceObj[](m_maxHHS); // object of ML_STAR device, for USB use m_usbComObject static global variable m_isStarSimulate[](m_maxHHS); // ML_STAR is in simulate mode static global variable m_hhsSetting[](m_maxHHS); // 0..2, 0=both, 1=onlyHeat, 2=onlyShake static function saveAndCreateDeviceNumber(variable funcId, variable deviceName, object& starObject, variable isStarSimulate, variable usedNode); // m_initializedHeater value with data access lock static function isUsbConnected(variable funcId); static function isSimulate(variable funcId, variable deviceNumber, variable makeTrace ); // uses node from 0 to 9 static function isHeaterInitialized(variable deviceNumber); // uses node from 0 to 9 static function setHeaterInitialized(variable deviceNumber); static function isUsbTrace(); // definitions for Monitoring function static const variable m_minSampleInterval(5); static const variable m_maxSampleInterval(300); // Prepare the globals for the hsl thread. static global event m_monitorStartEvent; static global variable m_monitorDeviceNumber; static global variable m_monitorShakerMin; static global variable m_monitorShakerMax; static global variable m_monitorHeaterMin; static global variable m_monitorHeaterMax; static global variable m_monitorSampleInterval; static global variable m_monitorAction; static global event m_monitorEvent[](m_maxHHS); static global variable m_monitorResult[](m_maxHHS); // -------------------------------------------------------------------------------------- // Firmware Error Ids // -------------------------------------------------------------------------------------- namespace IDE { static const variable first(0); // guard static const variable noError(first); // No error static const variable retErr(first + 1); // fatalError static const variable retNotInitErr(first + 2); // node not initialized static const variable retNotConnectErr(first + 3); // device not connected static const variable canError(first + 4); // No communication to CAN node static const variable eepromError(first + 5); // No communication to EEPROM static const variable syntaxCmdError(first + 6); // Unknown command static const variable syntaxParUnkError(first + 7); // Unknown parameter. static const variable syntaxParRangeError(first + 8); // Parameter out of range. static const variable generalVoltError(first + 9); // Voltage outside permitted range static const variable generalStopError(first + 10); // Stop received static const variable generalAddrError(first + 11); // Wrong system address static const variable parallelError(first + 12); // Parallel commands are nor allowed static const variable shakerInitError(first + 13); // Shaker initialization failt static const variable shakerNotInitError(first + 14); // Shaker not initialized static const variable shakerStepLossError(first + 15); // Shaker step loss static const variable shakerStartModeError(first + 16); // Shaker is not started with timeout static const variable plateLockInitError(first + 17); // Plate lock initialization failt static const variable plateLockNotInitError(first + 18); // Plate lock not initialized static const variable plateLockStepLossError(first + 19); // Plate lock step loss static const variable tempNotStartError(first + 20); // Temperature controlling not started static const variable tempTimeoutError(first + 21); // Timeout of temperature supervision static const variable tempSuperRangeError(first + 22); // Temperature out of supervision range static const variable tempSecurRangeError(first + 23); // Temperature out of security range static const variable tempSensorError(first + 24); // Temperature out of security range static const variable commandSendTimeout(first + 25); // Time out occured on command ='%s' static const variable unknowFwError(first + 26); // Unknow firmware error = '%s' // none firmware errors static const variable noStringValue(first + 27); // Wrong type of parameter; '%s1(%s2)' must be a sting.. static const variable noIntegerValue(first + 28); // Wrong type of parameter; '%s1(%s2)' must be a whole number. static const variable noDoubleValue(first + 29); // Wrong type of parameter; '%s1(%s2)' must be a whole or decimal number. static const variable neededNodeNotAvailable(first + 30); // Node '%s1' not found, please set it to 0 on parameter '%s2' at position '%s3'. static const variable unknownResultFormat(first + 31); // Unknown format of firmware result string.\r\nExpected: '%s1'.\r\nReceived: '%s2'. static const variable wrongParameterLength(first + 32); // Wrong length of input parameter.\r\nParameter = '%s1' length (%s2).\r\nExpected lenght (%s3). static const variable last(first + 32); // guard } // -------------------------------------------------------------------------------------- // String Ids // -------------------------------------------------------------------------------------- namespace IDS { static const variable first(IDE::last + 1); // guard static const variable traceSource(first); // Text: "SYSTEM", source for formated trace static const variable helpFileName(first + 1); // Text: "HSLHAMHEATERSHAKERLIB%s.CHM", language independend language name static const variable sendMessageTitle(first + 2); // Text: "Send message = " static const variable receiveMessageTitle(first + 3); // Text: "Received answere = " static const variable setSimulate(first + 4); // Text: "Set simulate mode = " static const variable starNode(first + 5); // Text: "ML_Star node" static const variable usbNode(first + 6); // Text: "USB node" static const variable noUsbConnection(first + 7); // Text: "No connection to USB device." static const variable parameterOutOfRange(first + 8); // Text: "Parameter out of range; '%s1(%s2)' must be between [%s3..%s4]." static const variable neededNodeNotInitialized(first + 9); // Text: "Node '%s1' not initialized'." static const variable setTrace(first + 10); // Text: "Set USB trace mode = " static const variable firmwareVersion(first + 11); // Text: "%s1 '%s2' firmware version = " static const variable cannotCreateUsbPort(first + 12); // Text: "USB communication cannot be created." static const variable timeoutDuringWaitShaker(first + 13); // Text: "Time out during wait for end shaking. Shaking will be stop." static const variable progressSendTo(first + 14); // Text: "Send command to %s1 ( %s2 )." static const variable startTimeout(first + 15); // Text: "Start time out = " static const variable toleranceRange(first + 16); // Text: "Temperature range = " static const variable securityRange(first + 17); // Text: "Security range = " static const variable shakingDirection(first + 18); // Text: "Shaking direction = " static const variable shakingSpeed(first + 19); // Text: "Shaking speed = " static const variable shakingAccRamp(first + 20); // Text: "Shaking acceleration ramp = " static const variable sendToStar(first + 21); // Text: "HSLHamHeaterShakerLib::SendToStar" static const variable sendToUsb(first + 22); // Text: "HSLHamHeaterShakerLib::SendToUsb" static const variable invalidStarDevice(first + 23); // Text: "Parameter 'starDevice' contains an invalid object." static const variable invalidDeviceNumber(first + 24); // Text: "Parameter 'deviceNumber' contains an invalid value! \r\nMust be created with function CreateStarDevice() or CreateUsbDevice()" static const variable maxHHSReached(first + 25); // Text: "Cannot create the deviceNumber; Maximum count of usable HHS is reached." static const variable shakingNotActivated(first + 26); // Text: "Current HHS module on %s1 '%s2' cannot used as shaker."); static const variable heatingNotActivated(first + 27); // Text: "Current HHS module on %s1 '%s2' cannot used as heater."); static const variable monitoringShakingTitle(first + 28); // Text: "Current speed (RPM) = "); static const variable monitoringTempTitle(first + 29); // Text: "Current temperature = "); static const variable monitoringTempHeatUpTitle(first + 30);// Text: "Current temperature (heating up mode) = "); static const variable monitoringStateTitle(first + 31); // Text: "Current monitored state = "); static const variable monitoringWarning(first + 32); // Text: "Warning: "); static const variable monitoringShNotStart(first + 33); // Text: "Shaking not started, check of speed limit will be disabled!"); static const variable monitoringHeNotStart(first + 34); // Text: "Heating up not started, check of temperature limit will be disabled!"); static const variable monitoringAbort(first + 35); // Text: "Heating or shaking is out of range; Method will be abort!"); static const variable last(first + 35); // guard } // -------------------------------------------------------------------------------------- // Function Ids // -------------------------------------------------------------------------------------- namespace IDF { // do not change the sort of this list of function and his IDs static const variable first(IDS::last + 1); // guard static const variable CreateStarDevice(first); // Text: "HSLHamHeaterShakerLib - CreateStarDevice" static const variable CreateUsbDevice(first+1); // Text: "HSLHamHeaterShakerLib - CreateUsbDevice" static const variable Terminate(first + 2); // Text: "HSLHamHeaterShakerLib - Terminate" static const variable StartShaker(first + 3); // Text: "HSLHamHeaterShakerLib - StartShaker" static const variable StopShaker(first + 4); // Text: "HSLHamHeaterShakerLib - StopShaker" static const variable StartShakerTimed(first + 5); // Text: "HSLHamHeaterShakerLib - StartShakerTimed" static const variable WaitForShaker(first + 6); // Text: "HSLHamHeaterShakerLib - WaitForShaker" static const variable StartAllShaker(first + 7); // Text: "HSLHamHeaterShakerLib - StartAllShaker" static const variable StartAllShakerTimed(first + 8); // Text: "HSLHamHeaterShakerLib - StartAllShakerTimed" static const variable StopAllShaker(first + 9); // Text: "HSLHamHeaterShakerLib - StopAllShaker" static const variable SetShakerParameter(first + 10); // Text: "HSLHamHeaterShakerLib - SetShakerParameter" static const variable GetShakerParameter(first + 11); // Text: "HSLHamHeaterShakerLib - GetShakerParameter" static const variable GetShakerSpeed(first + 12); // Text: "HSLHamHeaterShakerLib - GetShakerSpeed" static const variable StartTempCtrl(first + 13); // Text: "HSLHamHeaterShakerLib - StartTempCtrl" static const variable StopTempCtrl(first + 14); // Text: "HSLHamHeaterShakerLib - StopTempCtrl" static const variable WaitForTempCtrl(first + 15); // Text: "HSLHamHeaterShakerLib - WaitForTempCtrl" static const variable GetTemperature(first + 16); // Text: "HSLHamHeaterShakerLib - GetTemperature" static const variable GetTemperatureState(first + 17); // Text: "HSLHamHeaterShakerLib - GetTemperatureState" static const variable SetTempParameter(first + 18); // Text: "HSLHamHeaterShakerLib - SetTempParameter" static const variable GetTempParameter(first + 19); // Text: "HSLHamHeaterShakerLib - GetTempParameter" static const variable SetPlateLock(first + 20); // Text: "HSLHamHeaterShakerLib - SetPlateLock" static const variable GetFirmwareVersion(first + 21); // Text: "HSLHamHeaterShakerLib - GetFirmwareVersion" static const variable GetSerialNumber(first + 22); // Text: "HSLHamHeaterShakerLib - GetSerialNumber" static const variable BeginMonitoring(first + 23); // Text: "HSLHamHeaterShakerLib - BeginMonitoring" static const variable EndMonitoring(first + 24); // Text: "HSLHamHeaterShakerLib - EndMonitoring" static const variable SendFirmwareCommand(first + 25); // Text: "HSLHamHeaterShakerLib - SendFirmwareCommand" static const variable SetSimulation(first + 26); // Text: "HSLHamHeaterShakerLib - SetSimulation" static const variable SetUSBTrace(first + 27); // Text: "HSLHamHeaterShakerLib - SetUSBTrace" static const variable Monitoring(first + 28); // Text: "HSLHamHeaterShakerLib - Monitoring" static const variable last(first + 28); // guard } // -------------------------------------------------------------------------------------- // Exception handling // -------------------------------------------------------------------------------------- namespace Error { static function Raise( // raises a runtime error variable errorId, // i: error id, one of IDE variable& fileName, // i: file name variable& funcName, // i: function name variable& lineNumber) // i: line number { variable description(""); string hlpFileName; // set error description if ("" == funcName) description = fileName + "(" + lineNumber + ") : " + StringTable::Load(errorId); else description = fileName + "(" + lineNumber + ") : " + funcName + "()\n" + StringTable::Load(errorId); err.SetDescription(description); hlpFileName = StringTable::Load(IDS::helpFileName); StrReplace(hlpFileName, "%s", GetLanguage()); // raise error err.Raise(errorId, err.GetDescription(), hlpFileName); } static function RaiseEx( // raises a runtime error variable errorId, // i: error id, one of IDE variable errorDesc, // i: error description variable& fileName, // i: file name variable& funcName, // i: function name variable& lineNumber) // i: line number { variable description(""); string hlpFileName; // set error description if ("" == funcName) description = fileName + "(" + lineNumber + ") : " + errorDesc; else description = fileName + "(" + lineNumber + ") : " + funcName + "()\n" + errorDesc; err.SetDescription(description); hlpFileName = StringTable::Load(IDS::helpFileName); StrReplace(hlpFileName, "%s", GetLanguage()); // raise error err.Raise(errorId, err.GetDescription(), hlpFileName); } static function RaiseLast() // re-throws the last runtime error { // re-raise error err.Raise(); } } /**************************************************************************************** * * Internal helper function declaration * ****************************************************************************************/ static function initHamHeaterShakerLib(variable funcId, variable deviceNumber, variable initShaker); static function checkStringInput(variable funcId, variable parameterName, variable input); static function checkIntegerInput(variable funcId, variable parameterName, variable input); static function checkIntegerInputRange(variable funcId, variable parameterName, variable input, variable min, variable max); static function checkDoubleInput(variable funcId, variable parameterName, variable input); static function checkDoubleInputRange(variable funcId, variable parameterName, variable input, variable min, variable max); static function isStarDevice(variable deviceNumber); static function getNodeFromDeviceNumber(variable deviceNumber); static function checkDeviceNumber(variable funcId, variable deviceNumber); static function setHHSSetting(variable funcId, variable deviceNumber, variable& hhsSetting); static function hasHeater(variable funcId, variable deviceNumber, variable throw); static function hasShaker(variable funcId, variable deviceNumber, variable throw); static function sendMsg(variable deviceNumber, variable command, variable parameter, variable timeOut, variable makeTrace); static function sendToUsb(variable deviceNumber, variable command, variable parameter, variable timeOut); static function sendToStar(variable deviceNumber, variable cmd, variable param, variable makeTrace); static function startTrace(variable funcName) void; static function progressTrace(variable funcName, variable progMsgTitle, variable progMsg) void; static function errorTrace(variable funcName, variable errMsg) void; static function errorCompleteTrace(variable funcName, variable errMsg) void; static function endTrace(variable funcName) void; static function getSendState(variable funcId, variable deviceNumber, variable isShaker); static function isFirmwError(variable funcId, string cmdResult, variable makeTrace); static function startPlateLockCmd(variable funcId, variable deviceNumber, variable plateLock); static function startShakingCmd(variable funcId, variable deviceNumber, variable command, variable parameter, variable isStart); synchronized function monitorHeaterShaker(); static function wait(variable waitTime); static function getCurrentShakerRPM(variable deviceNumber, variable makeTrace); static function getCurrentTemp(variable deviceNumber, variable makeTrace); static function pollingForRunningShaker(variable deviceNumber, variable maxPollingTime); static function pollingForRunningHeater(variable deviceNumber, variable maxPollingTime); static function OnAbortHHSLibrary(); static function versionTrace() void; // this function is used in InitializeLibrary() and uses index 0..10 static function traceFirmwareVersion(variable funcId, variable deviceNumber); static function sendToProgressTrace(variable funcName, variable deviceNumber) void; // get the given parameter with filled 0 before value static function formatParam(variable param, variable strWidth); // returns the given parameter normalized (*10) for firmware command as string static function normalizeParam(variable param, variable strWidth); /**************************************************************************************** * * Interface functions * ****************************************************************************************/ //==================================================================== // // Application function CreateStarDevice() // //-------------------------------------------------------------------- // Description: // Initialize shaker/heater module on ML_Star device. // Only NOT initialized nodes will be initialize, the function will // check first the initialization state before. //.................................................................... // Parameters: // in : starDevice : Used STAR device for node T1 and T2 of STAR // in : usedNode : Node which must be create and initialized. (1 or 2) // out: deviceNumber : generated device number which must be used in all other functions // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function CreateStarDevice( device& starDevice, // in: ML_STAR device variable usedNode, // in: node ID (1 or 2) variable& deviceNumber) // out: generated deviceNumber { variable funcRc(IDE::noError); variable funcId(IDF::CreateStarDevice); variable deviceName; variable isSimulate(m_ON); variable isStarSimulate(hslFalse); variable shakingProperty(0); object starObject; versionTrace(); startTrace(funcId); // check input parameter checkIntegerInputRange(funcId, "usedNode", usedNode, m_firstStarNode, m_lastStarNode); onerror goto DeviceError; deviceName = starDevice.GetInstrumentName(); isSimulate = starDevice.GetCfgValueWithKey(m_starSimulateModeKey); starObject = starDevice.GetCommandObject(); onerror goto 0; if(starObject.IsNull()) { string msg; variable funcName; // "Parameter 'starDevice' contains an invalid object." msg = StringTable::Load(IDS::invalidStarDevice); funcName = StringTable::Load(funcId); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } if(GetType(isSimulate) == "i") { if(isSimulate != m_OFF) isStarSimulate = hslTrue; } // initialize the library variables funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); if(0 < funcRc) return (funcRc); deviceNumber = saveAndCreateDeviceNumber(funcId, deviceName, starObject, isStarSimulate, usedNode); // initialize the shaker funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); DeviceError: { string msg; variable funcName; // "Parameter 'starDevice' contains an invalid object." msg = StringTable::Load(IDS::invalidStarDevice); funcName = StringTable::Load(funcId); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } } //==================================================================== // // Application function CreateUsbDevice() // //-------------------------------------------------------------------- // Description: // Initialize shaker/heater module on USB device. // Only NOT initialized nodes will be initialize, the function will // check first the initialization state before. //.................................................................... // Parameters: // in : usedNode : Node which must be create and initialized. (1 or 2) // out: deviceNumber : generated device number which must be used in all other functions // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function CreateUsbDevice( variable usedNode, // in: node ID (1..8) variable& deviceNumber) // out: generated deviceNumber { variable funcRc(IDE::noError); variable funcId(IDF::CreateUsbDevice); variable isStarSimulate(hslFalse); variable shakingProperty(0); object starObject; versionTrace(); startTrace(funcId); // check input parameter checkIntegerInputRange(funcId, "usedNode", usedNode, m_firstUsbNode, m_lastUsbNode); // initialize the library variables funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); if(0 < funcRc) return (funcRc); deviceNumber = saveAndCreateDeviceNumber(funcId, m_hhsUsbObjectName, starObject, isStarSimulate, usedNode); // initialize the shaker funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); } //==================================================================== // // Application function Terminate() // //-------------------------------------------------------------------- // Description: // Terminate the USB device connection. //.................................................................... // Parameters: // none // ................................................................... // return value: // none //.................................................................... // Remarks: // //==================================================================== function Terminate() void { variable funcId(IDF::Terminate); variable nodeIndex(0); startTrace(funcId); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); for( nodeIndex = 0; nodeIndex < m_maxHHS; nodeIndex++) { m_initializedHeater[nodeIndex] = hslFalse; m_deviceName[nodeIndex] = ""; m_nodeNumber[nodeIndex] = 0; m_hhsSetting[nodeIndex] = 0; } if(!m_usbComObject.IsNull()) { // release the usb object // run is crash in cae of multi thread and a call of ReleaseObject() while commands are send / receive // m_usbComObject.ReleaseObject(); } SynLeaveCriticalSection(m_hhsCriticalSection); endTrace(funcId); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function StartShaker() // //-------------------------------------------------------------------- // Description: // Lock plate and start shaking. // //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // shakingSpeed : Shaking speed in RPM round per minutes // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StartShaker(variable deviceNumber, variable shakingSpeed) { variable funcRc(IDE::noError); variable funcId(IDF::StartShaker); variable node; variable command("SB"); string parameter("st%s1sv%s2sr%s3"); string cmdResult; variable shakingDirection; variable shakingAccRamp; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); //tb 2008-12-03 checkIntegerInputRange(funcId, "shakingSpeed", shakingSpeed, ShakingParam::rpmMin, ShakingParam::rpmMax); checkIntegerInput(funcId, "shakingSpeed", shakingSpeed); funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON); if(0 < funcRc) return (funcRc); hasShaker(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); shakingDirection = m_shakingDirection.GetAt(deviceNumber-1); shakingAccRamp = m_shakingAccRamp.GetAt(deviceNumber-1); m_userShakingSpeed[deviceNumber-1] = shakingSpeed; SynLeaveCriticalSection(m_hhsCriticalSection); sendToProgressTrace(funcId, deviceNumber); // change RPM to steps shakingSpeed = Floor(MthRound(shakingSpeed / ShakingParam::rmpStepFactor, 0)); shakingAccRamp = Floor(MthRound(shakingAccRamp / ShakingParam::rmpStepFactor, 0)); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // add saved parameter StrReplace(parameter, "%s1", IStr(shakingDirection)); StrReplace(parameter, "%s2", formatParam(shakingSpeed, ShakingParam::speedParamLenght)); StrReplace(parameter, "%s3", formatParam(shakingAccRamp, ShakingParam::accelParamLenght)); // lock plate cmdResult = startPlateLockCmd(funcId, deviceNumber, m_ON); funcRc = isFirmwError(funcId, cmdResult, hslFalse); if(0 < funcRc) { // be sure that the plate lock is open startPlateLockCmd(funcId, deviceNumber, m_OFF); isFirmwError(funcId, cmdResult, hslTrue); return (funcRc); } // start shaker cmdResult = startShakingCmd(funcId, deviceNumber, command, parameter, hslTrue); funcRc = isFirmwError(funcId, cmdResult, hslFalse); if(0 < funcRc) { // be sure that the plate lock is open startPlateLockCmd(funcId, deviceNumber, m_OFF); isFirmwError(funcId, cmdResult, hslTrue); return (funcRc); } endTrace(funcId); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function StopShaker() // //-------------------------------------------------------------------- // Description: // Stop shaking and unlock plate. // //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StopShaker(variable deviceNumber) { variable funcRc(IDE::noError); variable funcId(IDF::StopShaker); variable command("SC"); variable parameter(""); string cmdResult; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasShaker(funcId, deviceNumber, 1); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // stop shaking cmdResult = startShakingCmd(funcId, deviceNumber, command, parameter, hslFalse); // open plate lock startPlateLockCmd(funcId, deviceNumber, m_OFF); SynEnterCriticalSection(m_hhsCriticalSection); m_userShakingSpeed[deviceNumber-1] = 0; m_shakingTimeOut[deviceNumber-1] = m_OFF; SynLeaveCriticalSection(m_hhsCriticalSection); // check error of stop shaker after open plate lock funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); } //==================================================================== // // Application function StartShakerTimed() // //-------------------------------------------------------------------- // Description: // Lock plate and start shaking with timed duration. //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // shakingSpeed : Shaking speed in RPM round per minutes // shakingTime : Shaking time in seconds // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StartShakerTimed( variable deviceNumber, variable shakingSpeed, variable shakingTime) { variable funcRc(IDE::noError); variable funcId(IDF::StartShakerTimed); variable command("ST"); string parameter("sd%s1st%s2sv%s3sr%s4"); string cmdResult; variable shakingDirection; variable shakingAccRamp; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); //tb 2008-12-03 checkIntegerInputRange(funcId, "shakingSpeed", shakingSpeed, ShakingParam::rpmMin, ShakingParam::rpmMax); checkIntegerInput(funcId, "shakingSpeed", shakingSpeed); //tb 2008-12-03 checkIntegerInputRange(funcId, "shakingTime", shakingTime, ShakingParam::shakingTimeMin, ShakingParam::shakingTimeMax); checkIntegerInput(funcId, "shakingTime", shakingTime); funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON); if(0 < funcRc) return (funcRc); hasShaker(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); shakingDirection = m_shakingDirection.GetAt(deviceNumber-1); shakingAccRamp = m_shakingAccRamp.GetAt(deviceNumber-1); m_shakingTimeOut[deviceNumber-1] = shakingTime; m_userShakingSpeed[deviceNumber-1] = shakingSpeed; SynLeaveCriticalSection(m_hhsCriticalSection); // change RPM to steps shakingSpeed = Floor(MthRound(shakingSpeed / ShakingParam::rmpStepFactor, 0)); shakingAccRamp = Floor(MthRound(shakingAccRamp / ShakingParam::rmpStepFactor, 0)); // add saved parameter StrReplace(parameter, "%s1", formatParam(shakingTime, ShakingParam::timeParamLenght)); StrReplace(parameter, "%s2", IStr(shakingDirection)); StrReplace(parameter, "%s3", formatParam(shakingSpeed, ShakingParam::speedParamLenght)); StrReplace(parameter, "%s4", formatParam(shakingAccRamp, ShakingParam::accelParamLenght)); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // lock plate cmdResult = startPlateLockCmd(funcId, deviceNumber, m_ON); funcRc = isFirmwError(funcId, cmdResult, hslFalse); if(0 < funcRc) { // be sure that the plate lock is open startPlateLockCmd(funcId, deviceNumber, m_OFF); isFirmwError(funcId, cmdResult, hslTrue); return (funcRc); } // start shaker timed cmdResult = startShakingCmd(funcId, deviceNumber, command, parameter, hslTrue); funcRc = isFirmwError(funcId, cmdResult, hslFalse); if(0 < funcRc) { // be sure that the plate lock is open startPlateLockCmd(funcId, deviceNumber, m_OFF); isFirmwError(funcId, cmdResult, hslTrue); return (funcRc); } endTrace(funcId); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function WaitForShaker() // //-------------------------------------------------------------------- // Description: // Waits until a timed shaking has end. //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function WaitForShaker(variable deviceNumber) { variable funcRc(IDE::noError); variable funcId(IDF::WaitForShaker); variable shakingTime(ShakingParam::shakingTimeMax); variable command("SW"); string parameter(""); string cmdResult; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasShaker(funcId, deviceNumber, 1); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (funcRc); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); shakingTime = m_shakingTimeOut.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); // add 60 seconds to the started shaking time (secure that the shaking time out is reached before the wait time out) shakingTime = shakingTime + m_waitTimeOutSecurity; #ifdef _DEBUG progressTrace(funcId, "Function timeout = ", IStr(shakingTime)); #endif // pollen pollingForRunningShaker(deviceNumber, shakingTime - m_waitTimeOutSecurity); // start wait for shaker cmdResult = sendMsg(deviceNumber, command, parameter, shakingTime, hslTrue); // shaker was started with StartShaker or StartAllShaker if(cmdResult.Find(m_fwNoError) < 0) { // stop shaker sendMsg(deviceNumber, "SC", "", m_usbMsgTimeout, hslTrue); } // open plate lock startPlateLockCmd(funcId, deviceNumber, m_OFF); SynEnterCriticalSection(m_hhsCriticalSection); m_userShakingSpeed[deviceNumber-1] = m_OFF; m_shakingTimeOut[deviceNumber-1] = m_OFF; SynLeaveCriticalSection(m_hhsCriticalSection); funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function StartAllShaker() // //-------------------------------------------------------------------- // Description: // Lock plate and start shaking for all initialized shaker. //.................................................................... // Parameters: // shakingSpeed : Shaking speed in RPM round per minutes // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StartAllShaker(variable shakingSpeed) { variable funcRc(IDE::retNotInitErr); variable funcId(IDF::StartAllShaker); variable deviceNumber(0); startTrace(funcId); // parameter are checked in StartShaker() function for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++) { if(isHeaterInitialized(deviceNumber)) { // call StartShaker with 1 base node funcRc = StartShaker(deviceNumber, shakingSpeed); if(0 < funcRc) { errorCompleteTrace(funcId, ""); return (funcRc); } funcRc = IDE::noError; } } if(0 < funcRc) { errorCompleteTrace(funcId, IDE::retNotInitErr); return (funcRc); } endTrace(funcId); return (funcRc); } //==================================================================== // // Application function StartAllShakerTimed() // //-------------------------------------------------------------------- // Description: // Lock plate and start shaking with timed duration for all initialized shaker. //.................................................................... // Parameters: // shakingSpeed : Shaking speed in RPM round per minutes // shakingTime : Shaking time in seconds // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StartAllShakerTimed(variable shakingSpeed, variable shakingTime) { variable funcRc(IDE::retNotInitErr); variable funcId(IDF::StartAllShakerTimed); variable deviceNumber(0); startTrace(funcId); // parameter are checked in StartShakerTimed() function for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++) { if(isHeaterInitialized(deviceNumber)) { // call StartShaker with 1 base node funcRc = StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); if(0 < funcRc) { errorCompleteTrace(funcId, ""); return (funcRc); } funcRc = IDE::noError; } } if(0 < funcRc) { errorCompleteTrace(funcId, IDE::retNotInitErr); return (funcRc); } endTrace(funcId); return (funcRc); } //==================================================================== // // Application function StopAllShaker() // //-------------------------------------------------------------------- // Description: // Stop shaking and unlock plate for all initialized shaker. // //.................................................................... // Parameters: // none // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StopAllShaker() { variable funcRc(IDE::retNotInitErr); variable funcId(IDF::StopAllShaker); variable deviceNumber(0); startTrace(funcId); for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++) { if(isHeaterInitialized(deviceNumber)) { // call StopShaker with 1 base node funcRc = StopShaker(deviceNumber); if(0 < funcRc) { errorCompleteTrace(funcId, ""); return (funcRc); } funcRc = IDE::noError; } } if(0 < funcRc) { errorCompleteTrace(funcId, IDE::retNotInitErr); return (funcRc); } endTrace(funcId); return (funcRc); } //==================================================================== // // Application function SetShakerParameter() // //-------------------------------------------------------------------- // Description: // Set the parameter for plate shaking //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // shakingDirection : Shaking direction left/right (0/1) // shakingAccRamp : Acceleration ramp (1..4) // ................................................................... // return value: // Raise : Wrong parameter //.................................................................... // Remarks: // //==================================================================== function SetShakerParameter( variable deviceNumber, variable shakingDirection, variable shakingAccRamp) void { variable funcId(IDF::SetShakerParameter); variable node; string nodeType; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); checkIntegerInputRange(funcId, "shakingDirection", shakingDirection, m_OFF, m_ON); //tb 2008-12-03 checkIntegerInputRange(funcId, "shakingAccRamp", shakingAccRamp, ShakingParam::rampMin, ShakingParam::rampMax); checkIntegerInput(funcId, "shakingAccRamp", shakingAccRamp); if(isStarDevice(deviceNumber)) nodeType = StringTable::Load(IDS::starNode); else nodeType = StringTable::Load(IDS::usbNode); node = getNodeFromDeviceNumber(deviceNumber); progressTrace(funcId, nodeType, IStr(node)); progressTrace(funcId, IDS::shakingDirection, IStr(shakingDirection)); progressTrace(funcId, IDS::shakingAccRamp, IStr(shakingAccRamp)); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasShaker(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); m_shakingDirection[deviceNumber-1] = shakingDirection; m_shakingAccRamp[deviceNumber-1] = shakingAccRamp; SynLeaveCriticalSection(m_hhsCriticalSection); endTrace(funcId); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function GetShakerParameter() // //-------------------------------------------------------------------- // Description: // Get the parameter for plate shaking //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // shakingDirection : Shaking direction left/right (0/1) // shakingAccRamp : Acceleration ramp (1..4) // ................................................................... // return value: // Raise : Wrong parameter //.................................................................... // Remarks: // //==================================================================== function GetShakerParameter( variable deviceNumber, variable& shakingDirection, variable& shakingAccRamp) void { variable funcId(IDF::GetShakerParameter); variable node; string nodeType; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); shakingDirection = ShakingParam::directionDefault; shakingAccRamp = ShakingParam::rampDefault; initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasShaker(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); shakingDirection = m_shakingDirection.GetAt(deviceNumber-1); shakingAccRamp = m_shakingAccRamp.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); node = getNodeFromDeviceNumber(deviceNumber); if(isStarDevice(deviceNumber)) nodeType = StringTable::Load(IDS::starNode); else nodeType = StringTable::Load(IDS::usbNode); progressTrace(funcId, nodeType, IStr(node)); progressTrace(funcId, IDS::shakingDirection, IStr(shakingDirection)); progressTrace(funcId, IDS::shakingAccRamp, IStr(shakingAccRamp)); endTrace(funcId); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function GetShakerSpeed() // //-------------------------------------------------------------------- // Description: // Lock plate and start shaking with timed duration. //.................................................................... // Parameters: // in : deviceNumber : device number which was generated on CreateXXDevice() // out: shakingSpeed : Shaking speed in RPM round per minutes // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function GetShakerSpeed( variable deviceNumber, variable& shakingSpeed) { variable funcRc(IDE::noError); variable funcId(IDF::GetShakerSpeed); startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); shakingSpeed = 0; funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON); if(0 < funcRc) return (funcRc); hasShaker(funcId, deviceNumber, 1); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); shakingSpeed = getCurrentShakerRPM(deviceNumber, hslTrue); endTrace(funcId); return (funcRc); } //==================================================================== // // Application function StartTempCtrl() // //-------------------------------------------------------------------- // Description: // Set incubation temperature and wait (if set) until temperature is reached //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // temperature : Incubation temperature // waitForTempReached : Flag for waiting until temperature is reached // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StartTempCtrl( variable deviceNumber, variable temperature, variable waitForTempReached) { variable funcRc(IDE::noError); variable funcId(IDF::StartTempCtrl); variable tempStartTimeOut; variable tempToleranceRange; variable tempSecurityRange; variable command("TA"); variable parameter("ta%s1tb%s2tc%s3td%s4"); variable cmdResult; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); //tb 2008-12-03 checkDoubleInputRange(funcId, "temperature", temperature, TemperateParam::tempMin, TemperateParam::tempMax); checkDoubleInput(funcId, "temperature", temperature); checkIntegerInputRange(funcId, "waitForTempReached", waitForTempReached, m_OFF, m_ON); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasHeater(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); tempStartTimeOut = m_tempStartTimeOut.GetAt(deviceNumber-1); tempToleranceRange = m_tempToleranceRange.GetAt(deviceNumber-1); tempSecurityRange = m_tempSecurityRange.GetAt(deviceNumber-1); m_userTemperature[deviceNumber-1] = temperature; SynLeaveCriticalSection(m_hhsCriticalSection); StrReplace(parameter, "%s1", normalizeParam(temperature, TemperateParam::paramLength)); StrReplace(parameter, "%s2", formatParam(tempStartTimeOut, TemperateParam::paramLength)); StrReplace(parameter, "%s3", normalizeParam(tempToleranceRange, TemperateParam::paramLength)); StrReplace(parameter, "%s4", normalizeParam(tempSecurityRange, TemperateParam::paramLength)); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslFalse); if(0 < funcRc) return (funcRc); // add 60 seconds to the started heat up time (secure that the heat up time out is reached before the wait time out) tempStartTimeOut = tempStartTimeOut + m_waitTimeOutSecurity; if(tempStartTimeOut < m_usbMsgTimeout) tempStartTimeOut = m_usbMsgTimeout; #ifdef _DEBUG progressTrace(funcId, "Function timeout = ", IStr(tempStartTimeOut)); #endif // set temperature cmdResult = sendMsg(deviceNumber, command, parameter, tempStartTimeOut, hslTrue); funcRc = isFirmwError(funcId, cmdResult, hslFalse); // command waits until temperature is in controlling mode if(waitForTempReached == m_ON && funcRc == IDE::noError) { pollingForRunningHeater(deviceNumber, tempStartTimeOut-m_waitTimeOutSecurity); // wait for temperature cmdResult = sendMsg(deviceNumber, "TW", "", m_usbMsgTimeout, hslTrue); } funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function StopTempCtrl() // //-------------------------------------------------------------------- // Description: // Set incubation temperature control off //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function StopTempCtrl( variable deviceNumber) { variable funcRc(IDE::noError); variable funcId(IDF::StopTempCtrl); variable command("TO"); variable parameter(""); variable cmdResult; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasHeater(funcId, deviceNumber, 1); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslFalse); if(0 < funcRc) return (funcRc); // set temperature cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue); SynEnterCriticalSection(m_hhsCriticalSection); m_userTemperature[deviceNumber-1] = 0; SynLeaveCriticalSection(m_hhsCriticalSection); funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); } //==================================================================== // // Application function WaitForTempCtrl() // //-------------------------------------------------------------------- // Description: // Waits until the on StartTempCtrl() given temperature is reached //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function WaitForTempCtrl( variable deviceNumber) { variable funcRc(IDE::noError); variable funcId(IDF::WaitForTempCtrl); variable tempStartTimeOut; variable command("TW"); variable parameter(""); variable cmdResult; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasHeater(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); tempStartTimeOut = m_tempStartTimeOut.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); // add 60 seconds to the started heat up time (secure that the heat up time out is reached before the wait time out) tempStartTimeOut = tempStartTimeOut + m_waitTimeOutSecurity; if(tempStartTimeOut < m_usbMsgTimeout) tempStartTimeOut = m_usbMsgTimeout; #ifdef _DEBUG progressTrace(funcId, "Function timeout = ", IStr(tempStartTimeOut)); #endif sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslFalse); if(0 < funcRc) return (funcRc); // make a polling until temperature controlling is in controlling mode pollingForRunningHeater(deviceNumber, tempStartTimeOut-m_waitTimeOutSecurity); // wait for temperature is reached (get heating up errors) cmdResult = sendMsg(deviceNumber, command, parameter, tempStartTimeOut, hslTrue); funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function GetTemperature() // //-------------------------------------------------------------------- // Description: // Get the current temperatur //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // temperature : Actual carrier temperature // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function GetTemperature( variable deviceNumber, variable& temperature) { variable funcRc(IDE::noError); variable funcId(IDF::GetTemperature); startTrace(funcId); temperature = 0; checkDeviceNumber(funcId, deviceNumber); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasHeater(funcId, deviceNumber, 1); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslFalse); if(0 < funcRc) return (funcRc); temperature = getCurrentTemp(deviceNumber, hslTrue); endTrace(funcId); return (funcRc); } //==================================================================== // // Application function GetTemperatureState() // //-------------------------------------------------------------------- // Description: // Get the state of temperatur supervision //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // temperatureState : State of temperature supervision 0 = OK, 1 = out of range, 2 = out of security // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function GetTemperatureState( variable deviceNumber, variable& temperatureState) { variable funcRc(IDE::noError); variable funcId(IDF::GetTemperatureState); variable command("QE"); variable parameter(""); string cmdResult; variable startPos; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); temperatureState = TemperateParam::tempStateOk; initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasHeater(funcId, deviceNumber, 1); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslFalse); if(0 < funcRc) return (funcRc); // wait for temperature is reached cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue); funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); // format: qe## startPos = cmdResult.Find("qe"); if((cmdResult.GetLength() < TemperateParam::tempStateRequestLength) || (startPos < 0)) { variable errMsg; // "Unknown format of firmware result string.\r\nExpected: '%s1'.\r\nReceived: '%s2'." errMsg = StringTable::Load(IDE::unknownResultFormat); StrReplace(errMsg, "%s1", "qe##"); StrReplace(errMsg, "%s2", cmdResult); errorCompleteTrace(funcId, errMsg); return (IDE::unknownResultFormat); } // read both temperature and calculate the average // format: qe## ( 00, 62 or 63 ) if(cmdResult.Find("qe62") >= 0) temperatureState = TemperateParam::tempStateOutOfRange; else if(cmdResult.Find("qe63") >= 0) temperatureState = TemperateParam::tempStateOutOfSecurity; else if(cmdResult.Find("qe00") < 0) temperatureState = TemperateParam::tempStateTimeOut; endTrace(funcId); return (funcRc); } //==================================================================== // // Application function SetTempParameter() // //-------------------------------------------------------------------- // Description: // Set the parameter of temperatur supervision //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // startTimeout : Time which must elapse before temperature will be controlled // toleranceRange : Range of temperature tolerance // securityRange : Range of temperature security, on leave heater will be switched off // ................................................................... // return value: // Raise : An exception is throw on wrong parameter or time out //.................................................................... // Remarks: // //==================================================================== function SetTempParameter( variable deviceNumber, variable startTimeout, variable toleranceRange, variable securityRange) void { variable funcId(IDF::SetTempParameter); variable node; string nodeType; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); //tb 2008-12-03 checkIntegerInputRange(funcId, "startTimeout", startTimeout, TemperateParam::startTimeOutMin, TemperateParam::startTimeOutMax); checkIntegerInput(funcId, "startTimeout", startTimeout); //tb 2008-12-03 checkDoubleInputRange(funcId, "toleranceRange", toleranceRange, TemperateParam::tempToleranceMin, TemperateParam::tempToleranceMax); checkDoubleInput(funcId, "toleranceRange", toleranceRange); //tb 2008-12-03 checkDoubleInputRange(funcId, "securityRange", securityRange, TemperateParam::tempSecurityMin, TemperateParam::tempSecurityMax); checkDoubleInput(funcId, "securityRange", securityRange); if(isStarDevice(deviceNumber)) nodeType = StringTable::Load(IDS::starNode); else nodeType = StringTable::Load(IDS::usbNode); node = getNodeFromDeviceNumber(deviceNumber); progressTrace(funcId, nodeType, IStr(node)); progressTrace(funcId, IDS::startTimeout, IStr(startTimeout)); progressTrace(funcId, IDS::toleranceRange, FStr(toleranceRange, hslTrue)); progressTrace(funcId, IDS::securityRange, FStr(securityRange, hslTrue)); initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasHeater(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); m_tempStartTimeOut[deviceNumber-1] = startTimeout; m_tempToleranceRange[deviceNumber-1] = toleranceRange; m_tempSecurityRange[deviceNumber-1] = securityRange; SynLeaveCriticalSection(m_hhsCriticalSection); endTrace(funcId); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function GetTempParameter() // //-------------------------------------------------------------------- // Description: // Get the parameter of temperatur supervision //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // startTimeout : Time which must elapse before temperature will be controlled // toleranceRange : Range of temperature tolerance // securityRange : Range of temperature security, on leave heater will be switched off // ................................................................... // return value: // Raise : An exception is throw on wrong parameter or time out //.................................................................... // Remarks: // //==================================================================== function GetTempParameter( variable deviceNumber, variable& startTimeout, variable& toleranceRange, variable& securityRange) void { variable funcId(IDF::GetTempParameter); variable node; string nodeType; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); // init output parameter startTimeout = TemperateParam::startTimeOutDefault; toleranceRange = TemperateParam::tempToleranceDefault; securityRange = TemperateParam::tempSecurityDefault; initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); hasHeater(funcId, deviceNumber, 1); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); // set output parameter startTimeout = m_tempStartTimeOut.GetAt(deviceNumber-1); toleranceRange = m_tempToleranceRange.GetAt(deviceNumber-1); securityRange = m_tempSecurityRange.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); if(isStarDevice(deviceNumber)) nodeType = StringTable::Load(IDS::starNode); else nodeType = StringTable::Load(IDS::usbNode); node = getNodeFromDeviceNumber(deviceNumber); progressTrace(funcId, nodeType, IStr(node)); progressTrace(funcId, IDS::startTimeout, IStr(startTimeout)); progressTrace(funcId, IDS::toleranceRange, FStr(toleranceRange, hslTrue)); progressTrace(funcId, IDS::securityRange, FStr(securityRange, hslTrue)); endTrace(funcId); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function SetPlateLock() // //-------------------------------------------------------------------- // Description: // Set the parameter for plate shaking // //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // plateLock : Lock / unlock flag // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function SetPlateLock( variable deviceNumber, variable plateLock) { variable funcRc(IDE::noError); variable funcId(IDF::SetPlateLock); variable cmdResult; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); checkIntegerInputRange(funcId, "plateLock", plateLock, m_OFF, m_ON); funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON); if(0 < funcRc) return (funcRc); sendToProgressTrace(funcId, deviceNumber); hasShaker(funcId, deviceNumber, 1); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // start lock command cmdResult = startPlateLockCmd(funcId, deviceNumber, plateLock); funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); endTrace(funcId); return (funcRc); } //==================================================================== // // Application function GetFirmwareVersion() // //-------------------------------------------------------------------- // Description: // Get firmware version of current HHS // //.................................................................... // Parameters: // in : deviceNumber : device number which was generated on CreateXXDevice() // out: firmwareVersion : firmware version format: "1.0P 1999-03-10" // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function GetFirmwareVersion( variable deviceNumber, variable& firmwareVersion) { variable funcRc(IDE::noError); variable funcId(IDF::GetFirmwareVersion); string answString; variable startPos; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); firmwareVersion = "0.0S 2008-01-01"; funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); if(0 < funcRc) return (funcRc); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // read the firmware version of current node answString = sendMsg(deviceNumber, "RF", "", m_usbInitTimeout, hslTrue); startPos = answString.Find("rf"); if(startPos >= 0) { firmwareVersion = answString.Right(answString.GetLength()-(startPos+2)); } endTrace(funcId); return (funcRc); } //==================================================================== // // Application function GetSerialNumber() // //-------------------------------------------------------------------- // Description: // Get serial number of current HHS // //.................................................................... // Parameters: // in : deviceNumber : device number which was generated on CreateXXDevice() // out: firmwareVersion : firmware serial number format: "####" // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function GetSerialNumber( variable deviceNumber, variable& serialNumber) { variable funcRc(IDE::noError); variable funcId(IDF::GetSerialNumber); string answString; variable startPos; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); serialNumber = "0000"; funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); if(0 < funcRc) return (funcRc); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // read the firmware version of current node answString = sendMsg(deviceNumber, "QT", "", m_usbInitTimeout, hslTrue); // format: qt######/##/#### part number, revision, serial number startPos = answString.Find("qt"); if(startPos >= 0 && answString.GetLength() > startPos+12) { serialNumber = answString.Mid((startPos+2+10), 4); } endTrace(funcId); return (funcRc); } //==================================================================== // // Application function BeginMonitoring() // //-------------------------------------------------------------------- // Description: // Get serial number of current HHS // //.................................................................... // Parameters: // in : deviceNumber : device number which was generated on CreateXXDevice() // in : shakerMin : Minimum RPM // in : shakerMax : Maximum RPM // in : sampleInterval : Interval in sec. for check RPM and temperature // in : action : Continue / Abort (0 / 1) // Note: Abort will only called on an error after temperature controlling is activated () // An abort will end only the current heater/shaker. // Note: heaterMin and heaterMax uses the parameter toleranceRange of SetTempParameter() // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function BeginMonitoring( variable deviceNumber, variable shakingToleranceRange, variable sampleInterval, variable action) { variable funcRc(IDE::noError); variable funcId(IDF::BeginMonitoring); string answString; variable startPos; event startEvent; variable sSpeed; variable hTemp; variable shakerMin(m_OFF); variable shakerMax(ShakingParam::rpmMax); variable heaterTempTol(m_OFF); variable heaterMin(TemperateParam::tempMin); variable heaterMax(TemperateParam::tempMax); variable node; variable nodeType; variable funcName; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); checkIntegerInputRange(funcId, "shakingToleranceRange", shakingToleranceRange, ShakingParam::shakeTolMin, ShakingParam::shakeTolMax); checkIntegerInputRange(funcId, "sampleInterval", sampleInterval, m_minSampleInterval, m_maxSampleInterval); checkIntegerInputRange(funcId, "action", action, MonitorAction::monitorActionMin, MonitorAction::monitorActionMax); funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); if(0 < funcRc) return (funcRc); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); sSpeed = m_userShakingSpeed.GetAt(deviceNumber-1); hTemp = m_userTemperature.GetAt(deviceNumber-1); heaterTempTol = m_tempToleranceRange.GetAt(deviceNumber-1); m_monitorResult.SetAt(deviceNumber-1, -1); SynLeaveCriticalSection(m_hhsCriticalSection); onerror goto 0; if(isStarDevice(deviceNumber)) nodeType = StringTable::Load(IDS::starNode); else nodeType = StringTable::Load(IDS::usbNode); node = getNodeFromDeviceNumber(deviceNumber); // if no shaker is initialized, set the maximum range if(hasShaker(funcId, deviceNumber, 0) && sSpeed > m_OFF) { shakerMin = sSpeed-shakingToleranceRange; if(shakerMin < 0) shakerMin = 0; shakerMax = sSpeed+shakingToleranceRange; } else if(sSpeed == m_OFF) { string moniText; moniText = StringTable::Load(IDS::monitoringShNotStart); StrReplace(moniText, "%s1", nodeType); StrReplace(moniText, "%s2", IStr(node)); // Shaking on %s1 ( %s2 ) not started, check of speed limit will be disabled! progressTrace(funcId, IDS::monitoringWarning, moniText); } if(hasHeater(funcId, deviceNumber, 0) && hTemp > m_OFF) { heaterMin = hTemp - heaterTempTol; if(heaterMin < m_OFF) heaterMin = m_OFF; heaterMax = hTemp + heaterTempTol; } else if(hTemp == m_OFF) { variable moniText; moniText = StringTable::Load(IDS::monitoringHeNotStart); StrReplace(moniText, "%s1", nodeType); StrReplace(moniText, "%s2", IStr(node)); // Heating up on %s1 ( %s2 ) not started, check of temperature limit will be disabled! progressTrace(funcId, IDS::monitoringWarning, moniText); } sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); // Prepare the globals for the hsl thread. m_monitorDeviceNumber = deviceNumber; m_monitorShakerMin = shakerMin; m_monitorShakerMax = shakerMax; m_monitorSampleInterval = sampleInterval; m_monitorAction = action; m_monitorResult[deviceNumber-1] = -1; m_monitorHeaterMin = heaterMin; m_monitorHeaterMax = heaterMax; Fork( "monitorHeaterShaker" ); // wait until thread has received the global data (maximum 10 seconds) m_monitorStartEvent.WaitEvent(10); SynLeaveCriticalSection(m_hhsCriticalSection); endTrace(funcId); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function EndMonitoring() // //-------------------------------------------------------------------- // Description: // Get serial number of current HHS // //.................................................................... // Parameters: // in : deviceNumber : device number which was generated on CreateXXDevice() // out: monitorResult : -1 = monitoring has not started or is not initialized // 0 = heating and shaking values were within specification // 1 = heating out of range // 2 = shaking out of range // 3 = heating and shaking out of range // ................................................................... // return value: // noError(0) : all nodes are initialized successfull. // retErr(1) : initialisation failed // retNotInitErr(2) : needed node not initalized // retNotConnectErr(3) : device not connected // Raise : An exception is throw on wrong parameter or time out // FirmErr : Firmware command error //.................................................................... // Remarks: // //==================================================================== function EndMonitoring( variable deviceNumber, variable& monitorResult) { variable funcRc(IDE::noError); variable funcId(IDF::EndMonitoring); event intervalEvent; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_OFF); if(0 < funcRc) return (funcRc); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); intervalEvent = m_monitorEvent.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); intervalEvent.SetEvent(); SynEnterCriticalSection(m_hhsCriticalSection); monitorResult = m_monitorResult.GetAt(deviceNumber-1); m_monitorResult.SetAt(deviceNumber-1, -1); SynLeaveCriticalSection(m_hhsCriticalSection); endTrace(funcId); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function SetSimulation() // //-------------------------------------------------------------------- // Description: // Set the internal flag m_isSimulate. // If this flag is set, only parameter checks are made on all exported function // //.................................................................... // Parameters: // simulate : Flag for set the simulate mode, must be a number 0/1 // // ................................................................... // return value: // Raise : Wrong parameter //.................................................................... // Remarks: // //==================================================================== function SetSimulation(variable simulate) void { variable funcId(IDF::SetSimulation); startTrace(funcId); checkIntegerInputRange(funcId, "simulate", simulate, m_OFF, m_ON); progressTrace(funcId, IDS::setSimulate, IStr(simulate)); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); m_isSimulate = hslFalse; if(simulate == m_ON) m_isSimulate = hslTrue; SynLeaveCriticalSection(m_hhsCriticalSection); endTrace(funcId); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Application function SendFirmwareCommand() // //-------------------------------------------------------------------- // Description: // Send a command to the device // //.................................................................... // Parameters: // deviceNumber : device number which was generated on CreateXXDevice() // command : Firmware command without node name ( 2 letter ) // parameter : Parameter dependent of the used command // ................................................................... // return value: // Raise : An exception is throw on wrong parameter or time out // string : Firmware command result data string //.................................................................... // Remarks: // //==================================================================== function SendFirmwareCommand( variable deviceNumber, variable command, variable parameter) { variable funcRc(IDE::noError); variable funcId(IDF::SendFirmwareCommand); string cmd; string cmdResult; startTrace(funcId); checkDeviceNumber(funcId, deviceNumber); checkStringInput(funcId, "command", command); checkStringInput(funcId, "parameter", parameter); // check for two character as command cmd = command; if(cmd.GetLength() != m_firmwareCmdLength) { variable funcName; string errMsg; // "Wrong length of input parameter.\r\nParameter = '%s1' length (%s2).\r\nExpected lenght (%s3)." errMsg = StringTable::Load(IDE::wrongParameterLength); StrReplace(errMsg, "%s1", "command"); StrReplace(errMsg, "%s2", IStr(cmd.GetLength())); StrReplace(errMsg, "%s3", IStr(m_firmwareCmdLength)); funcName = StringTable::Load(funcId); Error::RaiseEx(IDE::wrongParameterLength, errMsg, GetFileName(), funcName, GetLineNumber()); } funcRc = initHamHeaterShakerLib(funcId, deviceNumber, m_ON); if(0 < funcRc) return (funcRc); sendToProgressTrace(funcId, deviceNumber); if(isSimulate(funcId, deviceNumber, hslTrue)) return (IDE::noError); // check for initialized and connect funcRc = getSendState(funcId, deviceNumber, hslTrue); if(0 < funcRc) return (funcRc); // wait for temperature is reached cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue); endTrace(funcId); return (cmdResult); } //==================================================================== // // Application function SetUSBTrace() // //-------------------------------------------------------------------- // Description: // Set the parameter for plate shaking // //.................................................................... // Parameters: // trace : Trace on / off. 0 = off, 1 = on // ................................................................... // return value: // Raise : An exception is throw on wrong parameter or time out //.................................................................... // Remarks: // //==================================================================== function SetUSBTrace(variable trace) void { variable funcId(IDF::SetUSBTrace); startTrace(funcId); checkIntegerInputRange(funcId, "trace", trace, m_OFF, m_ON); progressTrace(funcId, IDS::setTrace, IStr(trace)); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); m_usbTrace = hslFalse; // set trace flag if(trace == 1) m_usbTrace = hslTrue; SynLeaveCriticalSection(m_hhsCriticalSection); endTrace(funcId); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } /**************************************************************************************** * * Internal helper function declaration * ****************************************************************************************/ // -------------------------------------------------------------------------------------- // Library Initialization and data access functions // -------------------------------------------------------------------------------------- static function initStringTable() void { // activate error handler onerror goto Unexpected; if(0 == m_hhsCriticalSection) m_hhsCriticalSection = SynInitializeCriticalSection(); SynEnterCriticalSection(m_hhsCriticalSection); if(!m_isStringTableInitialized) { StringTable::Init("HSLHamHeaterShakerStringTable"); m_isStringTableInitialized = hslTrue; } SynLeaveCriticalSection(m_hhsCriticalSection); return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } static function InitializeNode(variable funcId, variable deviceNumber) { variable funcRc(IDE::noError); variable node; variable nodeNameId(IDS::starNode); // check if the library set to simulate if(isSimulate(funcId, deviceNumber, hslFalse)) return(funcRc); // init node if needed if(!isHeaterInitialized(deviceNumber)) { string answString; variable hhsSettings(-1); // on usb check connection if(!isStarDevice(deviceNumber)) { if(!isUsbConnected(funcId)) return (IDE::retNotConnectErr); nodeNameId = IDS::usbNode; } // ask for settings setHHSSetting(funcId, deviceNumber, hhsSettings); if(0 < funcRc) return (funcRc); // check if shaking activated if((hhsSettings != m_shakingPropertyHeatAndShake) && (hhsSettings != m_shakingPropertyOnlyShake)) return (funcRc); // init HHS on nodes if needed answString = sendMsg(deviceNumber, "QW", "", m_usbInitTimeout, hslTrue); if(isStarDevice(deviceNumber)) { funcRc = isFirmwError(funcId, answString, hslTrue); if(0 < funcRc) return (funcRc); } node = getNodeFromDeviceNumber(deviceNumber); // check for timeout, if timeout, only node 0 is installed without any other CAN nodes // if CAN error, this node is not available if((answString.Find(m_fwTimeoutError) >= 0) || (answString.Find(m_fwCanError) >= 0)) { // "%s1 '%s2' not available." string msg; string nodeName; variable funcName; msg = StringTable::Load(IDE::neededNodeNotAvailable); nodeName = StringTable::Load(nodeNameId); funcName = StringTable::Load(funcId); StrReplace(msg, "%s1", nodeName); StrReplace(msg, "%s2", IStr(node)); errorCompleteTrace(funcId, msg); if(answString.Find(m_fwTimeoutError) >= 0) Error::RaiseEx(IDE::neededNodeNotAvailable, msg, GetFileName(), funcName, GetLineNumber()); else Error::RaiseEx(IDE::canError, msg, GetFileName(), funcName, GetLineNumber()); } traceFirmwareVersion(funcId, deviceNumber); if(answString.Find(m_fwIsInitialized) >= 0) setHeaterInitialized(deviceNumber); else { // change of 2009/08/13 // answString = sendMsg(deviceNumber, "SI", "", m_usbInitTimeout, hslTrue); // if(answString.Find(m_fwNoError) >= 0) // { // answString = sendMsg(deviceNumber, "LI", "", m_usbInitTimeout, hslTrue); // if(answString.Find(m_fwNoError) >= 0) // setHeaterInitialized(deviceNumber); // } answString = sendMsg(deviceNumber, "LI", "", m_usbInitTimeout, hslTrue); sendMsg(deviceNumber, "LP", "lp1", m_usbInitTimeout, hslTrue); if(answString.Find(m_fwNoError) >= 0) { answString = sendMsg(deviceNumber, "SI", "", m_usbInitTimeout, hslTrue); if(answString.Find(m_fwNoError) >= 0) setHeaterInitialized(deviceNumber); sendMsg(deviceNumber, "LP", "lp0", m_usbInitTimeout, hslTrue); } // end change of 2009/08/13 funcRc = isFirmwError(funcId, answString, hslTrue); if(0 < funcRc) return (funcRc); } } return (funcRc); } static function initHamHeaterShakerLib(variable funcId, variable deviceNumber, variable initShaker) { variable funcRc(IDE::noError); initStringTable(); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); if(!m_initializedLib) { variable nodeIndex(0); RegisterAbortHandler("HSLHamHeaterShaker::OnAbortHHSLibrary"); m_monitorDeviceNumber = m_OFF; m_monitorShakerMin = m_OFF; m_monitorShakerMax = m_OFF; m_monitorSampleInterval = m_OFF; m_monitorAction = m_OFF; for( nodeIndex = 0; nodeIndex < m_maxHHS; nodeIndex++) { m_initializedHeater[nodeIndex] = hslFalse; m_shakingDirection[nodeIndex] = ShakingParam::directionDefault; m_shakingAccRamp[nodeIndex] = ShakingParam::rampDefault; m_shakingTimeOut[nodeIndex] = m_OFF; m_tempStartTimeOut[nodeIndex] = TemperateParam::startTimeOutDefault; m_tempToleranceRange[nodeIndex] = TemperateParam::tempToleranceDefault; m_tempSecurityRange[nodeIndex] = TemperateParam::tempSecurityDefault; m_userShakingSpeed[nodeIndex] = m_OFF; m_userTemperature[nodeIndex] = m_OFF; m_deviceName[nodeIndex] = ""; m_isStarSimulate[nodeIndex] = hslFalse; m_nodeNumber[nodeIndex] = m_OFF; m_hhsSetting[nodeIndex] = m_OFF; m_monitorResult[nodeIndex] = -1; } m_initializedLib = hslTrue; } SynLeaveCriticalSection(m_hhsCriticalSection); // check for node initialize, this call must be outside of CriticalSection if(initShaker > m_OFF) funcRc = InitializeNode(funcId, deviceNumber); return (funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } static function isUsbConnected(variable funcId) { variable rc (hslFalse); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); if(!m_usbComObject.IsNull()) { if(m_usbComObject.Connected) rc = hslTrue; } SynLeaveCriticalSection(m_hhsCriticalSection); if(!rc) { variable msg; msg = StringTable::Load(IDS::noUsbConnection); errorCompleteTrace(funcId, msg); } return (rc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } static function isSimulate(variable funcId, variable deviceNumber, variable makeTrace) { variable retVal(hslFalse); variable starSimState(hslFalse); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); retVal = m_isSimulate; starSimState = m_isStarSimulate[deviceNumber-1]; SynLeaveCriticalSection(m_hhsCriticalSection); // if m_isSimulate is set, both devices are simulate // if m_isSimulate is not set, check if useMlStar and m_isStarSimulate is set if(retVal) { // if simulate, trace the function end if(makeTrace) endTrace(funcId); return (retVal); } if(starSimState) { // if simulate, trace the function end if(makeTrace) endTrace(funcId); return (hslTrue); } // simulation is not set return (retVal); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); return (retVal); } } // uses node from 1 to 10 static function isHeaterInitialized(variable deviceNumber) { variable retVal(hslFalse); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); retVal = m_initializedHeater.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); return (retVal); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); return (retVal); } } // uses node from 1 to 10 static function setHeaterInitialized(variable deviceNumber) { variable retVal(hslFalse); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); m_initializedHeater[deviceNumber-1] = hslTrue; SynLeaveCriticalSection(m_hhsCriticalSection); return (retVal); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); return (retVal); } } static function isUsbTrace() { variable retVal(hslFalse); // activate error handler onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); retVal = m_usbTrace; SynLeaveCriticalSection(m_hhsCriticalSection); return (retVal); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); return (retVal); } } // -------------------------------------------------------------------------------------- // Communication functions // -------------------------------------------------------------------------------------- //==================================================================== // // Internal function getSendState() // //-------------------------------------------------------------------- // Description: // Check the connect and initialize state. // Must be call from each interface function which will send a command to the shaker //==================================================================== static function getSendState(variable funcId, variable deviceNumber, variable isShaker) { variable node; variable nodeTxt; node = getNodeFromDeviceNumber(deviceNumber); nodeTxt = StringTable::Load(IDS::starNode); if(!isStarDevice(deviceNumber)) { if(!isUsbConnected(funcId)) return (IDE::retNotConnectErr); nodeTxt = StringTable::Load(IDS::usbNode); } if(!isHeaterInitialized(deviceNumber) && isShaker) { // "%s1 '%s2' not initialized'." variable msg; msg = StringTable::Load(IDS::neededNodeNotInitialized); StrReplace(msg, "%s1", nodeTxt); StrReplace(msg, "%s2", IStr(node)); errorCompleteTrace(funcId, msg); return (IDE::retNotInitErr); } return (IDE::noError); } //==================================================================== // // Internal function sendMsg() // //-------------------------------------------------------------------- // Description: // Sends a command dependent of device to a star or to the usb. //==================================================================== static function sendMsg(variable deviceNumber, variable command, variable parameter, variable timeOut, variable makeTrace) { variable receMsg; if(isStarDevice(deviceNumber)) { receMsg = sendToStar(deviceNumber, command, parameter, makeTrace); } else { receMsg = sendToUsb(deviceNumber, command, parameter, timeOut); } return (receMsg); } //==================================================================== // // Internal function sendToUsb() // //-------------------------------------------------------------------- // Description: // Sends a command to the corresponding device node via USB. //==================================================================== static function sendToUsb(variable deviceNumber, variable command, variable parameter, variable timeOut) { variable node; variable sendMsg("T"); variable receMsg; string cmd(command); node = getNodeFromDeviceNumber(deviceNumber); sendMsg = sendMsg + IStr(node-1); // USB has an 0 bsed adderss node 0..7 sendMsg = sendMsg + command; sendMsg = sendMsg + parameter; if(isUsbTrace()) progressTrace(IDS::sendToUsb, IDS::sendMessageTitle, sendMsg); receMsg = m_usbComObject.Request(sendMsg, timeOut); // on request of firmware version do not trace the answere. // Answere is traced as firmware version in function traceFirmwareVersion() if(isUsbTrace() && (cmd.Find("RF") < 0)) progressTrace(IDS::sendToUsb, IDS::receiveMessageTitle, receMsg); return (receMsg); } //==================================================================== // // Internal function sendToStar() // //-------------------------------------------------------------------- // Description: // Sends a command to the corresponding device node via ML_STAR component. //==================================================================== static function sendToStar(variable deviceNumber, variable cmd, variable param, variable makeTrace) { variable stepShowNameKey(-534118376); variable globalKey(-534183935); variable orderKey(-534183816); variable parameterKey(-534183815); variable resultDataKey(-534118396); variable resultDataPos(4); variable node; object starObject; object parsIn; object parsOut; variable command("T"); variable parameter(param); variable result4; variable receMsg; string tempMsg; string tempCmd(cmd); variable errPos; // device node must be 1 or 2 -->> node must not be updated node = getNodeFromDeviceNumber(deviceNumber); onerror goto objectError; SynEnterCriticalSection(m_hhsCriticalSection); starObject = m_starDeviceObj.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); onerror goto 0; command = command + IStr(node); command = command + cmd; if(isUsbTrace() && makeTrace) { string sendMsg(command); sendMsg = sendMsg + param; progressTrace(IDS::sendToStar, IDS::sendMessageTitle, sendMsg); } // set the command at first of the receMsg receMsg = command; // activate error handler onerror goto Unexpected; // create data pars for the firmwareCommand parsIn.CreateObject("HXPARAMSLib.HxPars", hslFalse); parsOut.CreateObject("HXPARAMSLib.HxPars", hslFalse); parsIn.Add(2, "ParsCommandVersion"); parsIn.Add("FirmwareCommand", "StepName"); parsIn.Add(457, stepShowNameKey); parsIn.Add(0, "NbrOfErrors"); parsIn.Add(command, globalKey, orderKey); parsIn.Add(parameter, globalKey, parameterKey); // send command starObject.FirmwareCommand(parsIn, parsOut); result4 = parsOut.Item(resultDataKey, resultDataPos); parsIn.ReleaseObject(); parsOut.ReleaseObject(); receMsg = receMsg + result4; tempMsg = receMsg; // remove the master error erXX/XX so that the result string is the same than on USB command erXX errPos = tempMsg.Find("er"); if(errPos >= 0) { if(tempMsg.GetLength() > errPos + 4) { if(tempMsg.Mid(errPos+4, 1) == "/") { // the simulator returns er01/00 on a unknown command, // in this case, remove the slave error not the master error if(tempMsg.GetLength() >= errPos + 7) { // check slave error if(tempMsg.Mid(errPos+5, 2) == "00") { // use the master error, so that the return is not null receMsg = tempMsg.Left(errPos+4); receMsg = receMsg + tempMsg.Right(tempMsg.GetLength() - (errPos+7)); } else { // use the slave error receMsg = tempMsg.Left(errPos+2); receMsg = receMsg + tempMsg.Right(tempMsg.GetLength() - (errPos+5)); } } } } } // on request of firmware version do not trace the answere. // Answere is traced as firmware version in function traceFirmwareVersion() if(isUsbTrace() && (tempCmd.Find("RF") < 0) && makeTrace) progressTrace(IDS::sendToStar, IDS::receiveMessageTitle, receMsg); return (receMsg); Unexpected: { variable errId( err.GetId( ) ); parsIn.ReleaseObject(); parsOut.ReleaseObject(); // no connection if(errId == -1591212031 || errId == -1574764487) { receMsg = receMsg + "er0"; receMsg = receMsg + IStr(IDE::retNotConnectErr); } else Error::RaiseLast(); } // on request of firmware version do not trace the answere. // Answere is traced as firmware version in function traceFirmwareVersion() if(isUsbTrace() && (tempCmd.Find("RF") < 0)) progressTrace(IDS::sendToStar, IDS::receiveMessageTitle, receMsg); return (receMsg); objectError: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } return (receMsg); } //==================================================================== // // Internal function startPlateLockCmd() // //-------------------------------------------------------------------- // Description: // Lock / Unlock the plate // Will make a short error handling on not init and step loss error //==================================================================== static function startPlateLockCmd(variable funcId, variable deviceNumber, variable plateLock) { variable node; variable command("LP"); variable parameter("lp"); string cmdResult; node = getNodeFromDeviceNumber(deviceNumber); parameter = parameter + IStr(plateLock); // lock / unlock plate cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue); // check for init or staep lost error // On step lost, this drive is lost the init state and must be initialized again // The library internal initialization flag is set allready and must nod set again if((cmdResult.Find(m_fwPlNotInitError) >= 0) || (cmdResult.Find(m_fwPlStepLostError) >= 0)) { string cmdResult2; // init drive again cmdResult2 = sendMsg(deviceNumber, "LI", "", m_usbMsgTimeout, hslTrue); // init has end success if(cmdResult2.Find(m_fwNoError) >= 0) { // lock / unlock plate cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue); } } return (cmdResult); } //==================================================================== // // Internal function startShakingCmd() // //-------------------------------------------------------------------- // Description: // Start / Stop plate shaking // Will make a short error handling on not init and step loss error //==================================================================== static function startShakingCmd( variable funcId, variable deviceNumber, variable command, variable parameter, variable isStart) { string cmdResult; // send command cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue); // check for init or step lost error // On step lost, this drive is lost the init state and must be initialized again // The library internal initialization flag is set allready and must nod set again if((cmdResult.Find(m_fwShNotInitError) >= 0) || (cmdResult.Find(m_fwShStepLostError) >= 0)) { string cmdResult2; // init drive again cmdResult2 = sendMsg(deviceNumber, "SI", "", m_usbMsgTimeout, hslTrue); // if not start, do not repeat the main command and return the really returned error if(isStart) { // init has end success if(cmdResult2.Find(m_fwNoError) >= 0) { cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, hslTrue); } } } return (cmdResult); } //==================================================================== // // Internal function setHHSSetting() // //-------------------------------------------------------------------- // Description: // Check the given deviceNumber from a interface function //==================================================================== static function setHHSSetting(variable funcId, variable deviceNumber, variable& hhsSetting) { string cmdResult; variable funcRc(IDE::noError); hhsSetting = 0; if(!isSimulate(0, deviceNumber, hslFalse)) { variable startPos(-1); // read the HHS settings cmdResult = sendMsg(deviceNumber, "QU", "", m_usbMsgTimeout, hslTrue); funcRc = isFirmwError(funcId, cmdResult, hslTrue); if(0 < funcRc) return (funcRc); startPos = cmdResult.Find("au"); if(startPos >= 0 && cmdResult.GetLength() >= 25) { variable shaker; variable heater; // cmdResult auswerten // format "TxQUau0 0 0 0 0 0 0 0 0 0" shaker = cmdResult.Mid(startPos+2, 1); heater = cmdResult.Mid(startPos+4, 1); if(shaker == "1" && heater == "1") hhsSetting = m_shakingPropertyNothing; else if(shaker == "1") hhsSetting = m_shakingPropertyOnlyHeat; else if(heater == "1") hhsSetting = m_shakingPropertyOnlyShake; } } onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); m_hhsSetting[deviceNumber-1] = hhsSetting; SynLeaveCriticalSection(m_hhsCriticalSection); return(funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } return (funcRc); } //==================================================================== // // Internal function hasHeater() // //-------------------------------------------------------------------- // Description: // Check if the heater is activated on current HHS //==================================================================== static function hasHeater(variable funcId, variable deviceNumber, variable throw) { variable hhsSettings(-1); variable funcRc(hslFalse); onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); hhsSettings = m_hhsSetting.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); if((hhsSettings == m_shakingPropertyHeatAndShake) || (hhsSettings == m_shakingPropertyOnlyHeat)) funcRc = hslTrue; if(funcRc == hslFalse && throw == 1) { // "Current HHS module on %s1 '%s2' cannot used as heater" variable nodeNameId(IDS::starNode); variable node; string msg; string nodeName; variable funcName; node = getNodeFromDeviceNumber(deviceNumber); if(!isStarDevice(deviceNumber)) nodeNameId = IDS::usbNode; msg = StringTable::Load(IDS::heatingNotActivated); nodeName = StringTable::Load(nodeNameId); funcName = StringTable::Load(funcId); StrReplace(msg, "%s1", nodeName); StrReplace(msg, "%s2", IStr(node)); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } return(funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } return (funcRc); } //==================================================================== // // Internal function hasShaker() // //-------------------------------------------------------------------- // Description: // Check if the heater is activated on current HHS //==================================================================== static function hasShaker(variable funcId, variable deviceNumber, variable throw) { variable hhsSettings(-1); variable funcRc(hslFalse); onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); hhsSettings = m_hhsSetting.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); if((hhsSettings == m_shakingPropertyHeatAndShake) || (hhsSettings == m_shakingPropertyOnlyShake)) funcRc = hslTrue; if(funcRc == hslFalse && throw) { // "Current HHS module on %s1 '%s2' cannot used as shaker." variable nodeNameId(IDS::starNode); variable node; string msg; string nodeName; variable funcName; node = getNodeFromDeviceNumber(deviceNumber); if(!isStarDevice(deviceNumber)) nodeNameId = IDS::usbNode; msg = StringTable::Load(IDS::shakingNotActivated); nodeName = StringTable::Load(nodeNameId); funcName = StringTable::Load(funcId); StrReplace(msg, "%s1", nodeName); StrReplace(msg, "%s2", IStr(node)); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } return(funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } return (funcRc); } // -------------------------------------------------------------------------------------- // Library traces // -------------------------------------------------------------------------------------- //==================================================================== // // Internal function versionTrace() // //-------------------------------------------------------------------- // Description: // Traces the start of a exported function //==================================================================== static function versionTrace() void { variable traceSource; initStringTable(); traceSource = StringTable::Load(IDS::traceSource); // source for formated trace FormatTrace(traceSource, "HSLHamHeaterShakerLib", TraceStatus::cmd_progress, HamHeaterShakerVersion); } //==================================================================== // // Internal function startTrace() // //-------------------------------------------------------------------- // Description: // Traces the start of a exported function //==================================================================== static function startTrace(variable funcName) void { variable traceSource; variable functionName; initStringTable(); traceSource = StringTable::Load(IDS::traceSource); // source for formated trace if(GetType(funcName) == "i") functionName = StringTable::Load(funcName); else functionName = funcName; FormatTrace(traceSource, functionName, TraceStatus::cmd_start); } //==================================================================== // // Internal function progressTrace() // //-------------------------------------------------------------------- // Description: // Traces a msg during a exported function is working //==================================================================== static function progressTrace(variable funcName, variable progMsgTitle, variable progMsg) void { variable traceSource; variable functionName; variable progressTitle; variable progressMsg; initStringTable(); traceSource = StringTable::Load(IDS::traceSource); // source for formated trace if(GetType(funcName) == "i") functionName = StringTable::Load(funcName); else functionName = funcName; if(GetType(progMsgTitle) == "i") progressTitle = StringTable::Load(progMsgTitle); else progressTitle = progMsgTitle; if(GetType(progMsg) == "i") progressMsg = StringTable::Load(progMsg); else progressMsg = progMsg; FormatTrace(traceSource, functionName, TraceStatus::cmd_progress, progressTitle, progressMsg); } //==================================================================== // // Internal function errorTrace() // //-------------------------------------------------------------------- // Description: // Traces an error msg during a exported function is working //==================================================================== static function errorTrace(variable funcName, variable errMsg) void { variable traceSource; variable functionName; variable errorMsg; initStringTable(); traceSource = StringTable::Load(IDS::traceSource); // source for formated trace if(GetType(funcName) == "i") functionName = StringTable::Load(funcName); else functionName = funcName; if(GetType(errMsg) == "i") errorMsg = StringTable::Load(errMsg); else errorMsg = errMsg; FormatTrace(traceSource, functionName, TraceStatus::cmd_error, errorMsg); } //==================================================================== // // Internal function errorCompleteTrace() // //-------------------------------------------------------------------- // Description: // Traces an error msg on end of an exported function //==================================================================== static function errorCompleteTrace(variable funcName, variable errMsg) void { variable traceSource; variable functionName; variable errorMsg; initStringTable(); traceSource = StringTable::Load(IDS::traceSource); // source for formated trace if(GetType(funcName) == "i") functionName = StringTable::Load(funcName); else functionName = funcName; if(GetType(errMsg) == "i") errorMsg = StringTable::Load(errMsg); else errorMsg = errMsg; FormatTrace(traceSource, functionName, TraceStatus::cmd_errComplete, errorMsg); } //==================================================================== // // Internal function endTrace() // //-------------------------------------------------------------------- // Description: // Traces the end of an exported function //==================================================================== static function endTrace(variable funcName) void { variable traceSource; variable functionName; initStringTable(); traceSource = StringTable::Load(IDS::traceSource); // source for formated trace if(GetType(funcName) == "i") functionName = StringTable::Load(funcName); else functionName = funcName; FormatTrace(traceSource, functionName, TraceStatus::cmd_complete); } //==================================================================== // // Internal function traceFirmwareVersion() // //-------------------------------------------------------------------- // Description: // Traces the firmware version of an used heater shaker //==================================================================== // this function is used in InitializeLibrary() and uses index 0..10 static function traceFirmwareVersion(variable funcId, variable deviceNumber) { variable nodeNameId(IDS::starNode); string answString; variable startPos(0); // read the firmware version of current node answString = sendMsg(deviceNumber, "RF", "", m_usbInitTimeout, hslTrue); if(!isStarDevice(deviceNumber)) nodeNameId = IDS::usbNode; startPos = answString.Find("rf"); if(startPos >= 0) { string fwVers; string title; string nodeName; variable node; node = getNodeFromDeviceNumber(deviceNumber); fwVers = answString.Right(answString.GetLength()-(startPos+2)); // Text: "%s1 '%s2' firmware version = " title = StringTable::Load(IDS::firmwareVersion); nodeName = StringTable::Load(nodeNameId); StrReplace(title, "%s1", nodeName); StrReplace(title, "%s2", IStr(node)); progressTrace(funcId, title, fwVers); } } //==================================================================== // // Internal function sendToProgressTrace() // //-------------------------------------------------------------------- // Description: // Traces a msg during a exported function is working //==================================================================== static function sendToProgressTrace( variable funcName, variable deviceNumber) void { variable traceSource; variable functionName; variable nodeNameId(IDS::starNode); string nodeName; variable progressMsg; variable node; initStringTable(); node = getNodeFromDeviceNumber(deviceNumber); if(!isStarDevice(deviceNumber)) nodeNameId = IDS::usbNode; nodeName = StringTable::Load(nodeNameId); traceSource = StringTable::Load(IDS::traceSource); // source for formated trace if(GetType(funcName) == "i") functionName = StringTable::Load(funcName); else functionName = funcName; // Text: "Start command to %s1(%s2)." progressMsg = StringTable::Load(IDS::progressSendTo); StrReplace(progressMsg, "%s1", nodeName); StrReplace(progressMsg, "%s2", IStr(node)); FormatTrace(traceSource, functionName, TraceStatus::cmd_progress, progressMsg); } // -------------------------------------------------------------------------------------- // Input parameter check function // -------------------------------------------------------------------------------------- //==================================================================== // // Internal function checkStringInput() // //-------------------------------------------------------------------- // Description: // Check an input parameter which must be a string //==================================================================== static function checkStringInput(variable funcId, variable parameterName, variable input) { if(GetType(input) != "s") { // Wrong type of parameter; '%s1(%s2)' must be a string. string msg; string param; variable funcName; msg = StringTable::Load(IDE::noStringValue); funcName = StringTable::Load(funcId); if(GetType(input) == "i") param = IStr(input); if(GetType(input) == "f") param = FStr(input, hslTrue); StrReplace(msg, "%s1", parameterName); StrReplace(msg, "%s2", param); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::noStringValue, msg, GetFileName(), funcName, GetLineNumber()); } } //==================================================================== // // Internal function checkDoubleInput() // //-------------------------------------------------------------------- // Description: // Check an input parameter which must be a double //==================================================================== static function checkDoubleInput( variable funcId, variable parameterName, variable input) { if((GetType(input) != "f") && (GetType(input) != "i")) { // Wrong type of parameter; '%s1(%s2)' must be a number. string msg; string param("'%s'"); variable funcName; msg = StringTable::Load(IDE::noDoubleValue); funcName = StringTable::Load(funcId); if(GetType(input) == "s") StrReplace(param, "%s", input); StrReplace(msg, "%s1", parameterName); StrReplace(msg, "%s2", param); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::noDoubleValue, msg, GetFileName(), funcName, GetLineNumber()); } } //==================================================================== // // Internal function checkDoubleInputRange() // //-------------------------------------------------------------------- // Description: // Check an input parameter which must be a double in a defined range //==================================================================== static function checkDoubleInputRange( variable funcId, variable parameterName, variable input, variable min, variable max) { checkDoubleInput(funcId, parameterName, input); if((input < min) || (input > max)) { // "Parameter out of range; '%s1(%s2)' must be between [%s3..%s4]." string msg; variable funcName; msg = StringTable::Load(IDS::parameterOutOfRange); funcName = StringTable::Load(funcId); StrReplace(msg, "%s1", parameterName); StrReplace(msg, "%s2", FStr(input, hslTrue)); StrReplace(msg, "%s3", FStr(min, hslTrue)); StrReplace(msg, "%s4", FStr(max, hslTrue)); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::syntaxParRangeError, msg, GetFileName(), funcName, GetLineNumber()); } } //==================================================================== // // Internal function checkIntegerInput() // //-------------------------------------------------------------------- // Description: // Check an input parameter which must be a integer //==================================================================== static function checkIntegerInput( variable funcId, variable parameterName, variable input) { if(GetType(input) != "i") { // Wrong type of parameter; '%s1(%s2)' must be a number. string msg; string param; variable funcName; msg = StringTable::Load(IDE::noIntegerValue); funcName = StringTable::Load(funcId); if(GetType(input) == "s") { param = "'"; param = param + input; param = param + "'"; } if(GetType(input) == "f") param = FStr(input, hslTrue); StrReplace(msg, "%s1", parameterName); StrReplace(msg, "%s2", param); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::noIntegerValue, msg, GetFileName(), funcName, GetLineNumber()); } } //==================================================================== // // Internal function checkIntegerInputRange() // //-------------------------------------------------------------------- // Description: // Check an input parameter which must be a integer in a defined range //==================================================================== static function checkIntegerInputRange( variable funcId, variable parameterName, variable input, variable min, variable max) { checkIntegerInput(funcId, parameterName, input); if((input < min) || (input > max)) { // "Parameter out of range; '%s1(%s2)' must be between [%s3..%s4]." string msg; variable funcName; msg = StringTable::Load(IDS::parameterOutOfRange); funcName = StringTable::Load(funcId); StrReplace(msg, "%s1", parameterName); StrReplace(msg, "%s2", IStr(input)); StrReplace(msg, "%s3", IStr(min)); StrReplace(msg, "%s4", IStr(max)); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::syntaxParRangeError, msg, GetFileName(), funcName, GetLineNumber()); } } //==================================================================== // // Internal function isStarDevice() // //-------------------------------------------------------------------- // Description: // Check if the used deviceNumber from a ML_STAR //==================================================================== static function isStarDevice(variable deviceNumber) { variable funcRc(hslFalse); variable devName; onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); devName = m_deviceName.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); // check for usb name if(devName != m_hhsUsbObjectName) { funcRc = hslTrue; } return(funcRc); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Internal function getNodeFromDeviceNumber() // //-------------------------------------------------------------------- // Description: // Retunrs the saved node ID dependent of the deviceNumber //==================================================================== static function getNodeFromDeviceNumber(variable deviceNumber) { variable usedNode; onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); usedNode = m_nodeNumber.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); return(usedNode); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Internal function checkDeviceNumber() // //-------------------------------------------------------------------- // Description: // Check the given deviceNumber from a interface function //==================================================================== static function checkDeviceNumber(variable funcId, variable deviceNumber) { variable devName, nodeNr; if((deviceNumber < m_firstDeviceNumber) || (deviceNumber > m_lastDeviceNumber)) { string msg; variable funcName; // "Parameter 'deviceNumber' contains an invalid value! \r\nMust be created with function CreateStarDevice() or CreateUsbDevice()" msg = StringTable::Load(IDS::invalidDeviceNumber); funcName = StringTable::Load(funcId); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); devName = m_deviceName.GetAt(deviceNumber-1); nodeNr = m_nodeNumber.GetAt(deviceNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); // check for usb name if((devName == "") || (nodeNr == 0)) { string msg; variable funcName; // "Parameter 'deviceNumber' contains an invalid value! \r\nMust be created with function CreateStarDevice() or CreateUsbDevice()" msg = StringTable::Load(IDS::invalidDeviceNumber); funcName = StringTable::Load(funcId); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } return; Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Internal function formatParam() // //-------------------------------------------------------------------- // Description: // Formats an numeric input to a string with leading 0 to lenth of strWidth //==================================================================== static function formatParam( variable param, // i: the paramter to normalize (integer) variable strWidth) // i: the width to be filled (integer) { string sParam; sParam = IStr(param); StrFillLeft(sParam, "0", strWidth); return (sParam); } //==================================================================== // // Internal function normalizeParam() // //-------------------------------------------------------------------- // Description: // Formats an numeric (double)input to 1/10 values and format it // to a string with leading 0 to lenth of strWidth //==================================================================== static function normalizeParam( // returns the given parameter normalized for firmware command as string variable param, // i: the paramter to normalize as float or integer variable strWidth) // i: the width to be filled (integer) { string sParam; sParam = IStr(Floor(MthRound(param*10, 0))); StrFillLeft(sParam, "0", strWidth); return (sParam); } // -------------------------------------------------------------------------------------- // Firmware error check function // -------------------------------------------------------------------------------------- //==================================================================== // // Internal function getFirmwErrorId() // //-------------------------------------------------------------------- // Description: // Reads the firmware error number from cmdResult string and convert it to a number //==================================================================== static function getFirmwErrorId(string cmdResult) { variable errNr(0); variable startPos(0); startPos = cmdResult.Find("er"); if((startPos >= 0) && ((startPos+4) <= cmdResult.GetLength())) { variable errNo; errNo = cmdResult.Mid((startPos+2), 2); errNr = IVal(errNo); } return (errNr); } //==================================================================== // // Internal function getErrIdFromFirmwareError() // //-------------------------------------------------------------------- // Description: // Converts the firmware error number to function return error number //==================================================================== static function getErrIdFromFirmwareError(string cmdResult) { variable firmwErrId(getFirmwErrorId(cmdResult)); if(0 == firmwErrId) return (IDE::noError); else if(1 == firmwErrId) return (IDE::retErr); else if(2 == firmwErrId) return (IDE::retNotInitErr); else if(3 == firmwErrId) return (IDE::retNotConnectErr); else if (10 == firmwErrId) return (IDE::canError); else if (20 == firmwErrId) return (IDE::eepromError); else if (30 == firmwErrId) return (IDE::syntaxCmdError); else if (31 == firmwErrId) return (IDE::syntaxParUnkError); else if (32 == firmwErrId) return (IDE::syntaxParRangeError); else if (35 == firmwErrId) return (IDE::generalVoltError); else if (36 == firmwErrId) return (IDE::generalStopError); else if (37 == firmwErrId) return (IDE::generalAddrError); else if (40 == firmwErrId) return (IDE::parallelError); else if (41 == firmwErrId) return (IDE::parallelError); else if (42 == firmwErrId) return (IDE::parallelError); else if (50 == firmwErrId) return (IDE::shakerInitError); else if (51 == firmwErrId) return (IDE::shakerNotInitError); else if (52 == firmwErrId) return (IDE::shakerStepLossError); else if (53 == firmwErrId) return (IDE::shakerStartModeError); else if (55 == firmwErrId) return (IDE::plateLockInitError); else if (56 == firmwErrId) return (IDE::plateLockNotInitError); else if (57 == firmwErrId) return (IDE::plateLockStepLossError); else if (60 == firmwErrId) return (IDE::tempNotStartError); else if (61 == firmwErrId) return (IDE::tempTimeoutError); else if (62 == firmwErrId) return (IDE::tempSuperRangeError); else if (63 == firmwErrId) return (IDE::tempSecurRangeError); else if (64 == firmwErrId) return (IDE::tempSensorError); else if (98 == firmwErrId) return (IDE::commandSendTimeout); else return (IDE::unknowFwError); } //==================================================================== // // Internal function isFirmwError() // //-------------------------------------------------------------------- // Description: // Check if an error is set in cmdResult string //==================================================================== static function isFirmwError(variable funcId, string cmdResult, variable makeTrace) { variable rc(IDE::noError); if(cmdResult.Find(m_fwNoError) == -1) { variable errId; variable errText; errId = getErrIdFromFirmwareError(cmdResult); // string erXX was not found (answere command) if(errId != IDE::noError) { rc = errId; errText = StringTable::Load(errId); // make an exception handling for errors which contains a %s part if(errId == IDE::unknowFwError) StrReplace(errText, "%s", IStr(getFirmwErrorId(cmdResult))); if(errId == IDE::commandSendTimeout) StrReplace(errText, "%s", cmdResult.Left(4)); if(makeTrace) errorCompleteTrace(funcId, errText); } } return (rc); } //==================================================================== // // Internal function saveAndCreateDeviceNumber() // //-------------------------------------------------------------------- // Description: // save the device parameter and create the deviceNumber which must // be used for each interface function //==================================================================== static function saveAndCreateDeviceNumber( variable funcId, variable deviceName, object& starObject, variable isStarSimulate, variable usedNode) { variable deviceNumber(0); variable index(0); onerror goto Unexpected; SynEnterCriticalSection(m_hhsCriticalSection); // USB set always the starObject parameter with a null object if(starObject.IsNull() && m_usbComObject.IsNull()) { // create the usb object without event m_usbComObject.ReleaseObject(); m_usbComObject.CreateObject(m_hhsUsbObjectName, hslFalse); if(!m_usbComObject.IsNull()) { // "{BD0DAB87-838B-44c5-A114-1CBA5BE0E45F}", bufferSize(4090), vendorId(2223), productId, mainSerialNumber); m_usbComObject.InitObject (m_hhsUsbProductNum, m_hhsUsbSerieNum); } else { string msg; variable funcName; SynLeaveCriticalSection(m_hhsCriticalSection); // "Parameter 'starDevice' contains an invalid object." msg = StringTable::Load(IDS::cannotCreateUsbPort); funcName = StringTable::Load(funcId); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } } // check if this node allready used for( index = 0; index < m_maxHHS; index++) { variable devN, nodeNum; devN = m_deviceName.GetAt(index); nodeNum = m_nodeNumber.GetAt(index); // if equal, node already exist if((devN == deviceName) && (nodeNum == usedNode)) deviceNumber = index+1; } if(deviceNumber == 0) { // node is not used, set it on the first free position for( index = 0; index < m_maxHHS; index++) { variable devN; devN = m_deviceName.GetAt(index); // if empty if(devN == "") { m_deviceName[index] = deviceName; m_starDeviceObj[index] = starObject; m_isStarSimulate[index] = isStarSimulate; m_nodeNumber[index] = usedNode; deviceNumber = index+1; break; } } } SynLeaveCriticalSection(m_hhsCriticalSection); if(deviceNumber == 0) { string msg; variable funcName; // "Parameter 'starDevice' contains an invalid object." msg = StringTable::Load(IDS::maxHHSReached); funcName = StringTable::Load(funcId); errorCompleteTrace(funcId, msg); Error::RaiseEx(IDE::retErr, msg, GetFileName(), funcName, GetLineNumber()); } return(deviceNumber); Unexpected: { SynLeaveCriticalSection(m_hhsCriticalSection); Error::RaiseLast(); } } //==================================================================== // // Internal function Wait() // //-------------------------------------------------------------------- // Description: // Wait the given time //==================================================================== static function wait(variable waitTime) { timer t; // Wait waitTime seconds t.SetTimer( waitTime ); t.WaitTimer( hslFalse, hslFalse ); } //==================================================================== // // Internal function getCurrentShakerRPM() // //-------------------------------------------------------------------- // Description: // Read the shaking speed of current HHS //==================================================================== static function getCurrentShakerRPM(variable deviceNumber, variable makeTrace) { variable shakingSpeed(0); variable command("RR"); string parameter(""); string cmdResult; variable startPos(0); // start request cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, makeTrace); // format: rr#### startPos = cmdResult.Find("rr"); if(startPos >= 0) { shakingSpeed = IVal(cmdResult.Mid((startPos+2), 4)); } return (shakingSpeed); } //==================================================================== // // Internal function getCurrentTemp() // //-------------------------------------------------------------------- // Description: // Read the shaking speed of current HHS //==================================================================== static function getCurrentTemp(variable deviceNumber, variable makeTrace) { variable temperature(0); variable command("RT"); variable parameter(""); string cmdResult; variable startPos; variable firstVal; variable secVal; variable averageVal; // wait for temperature is reached cmdResult = sendMsg(deviceNumber, command, parameter, m_usbMsgTimeout, makeTrace); // format: rt#### #### startPos = cmdResult.Find("rt"); if((startPos >= 0) && ((cmdResult.GetLength()-startPos) >= TemperateParam::tempTempRequestLength)) { // read both temperature and calculate the average // format: rt#### #### firstVal = FVal(cmdResult.Mid((startPos+2), 5)); secVal = FVal(cmdResult.Mid((startPos+8), 5)); // calculate the average in 1/10 degrees averageVal = ((firstVal + secVal) / 2) /10; temperature = MthRound(averageVal, 1); } return (temperature); } //==================================================================== // // Internal function MonitorHeaterShaker() // //-------------------------------------------------------------------- // Description: // Monitors temperature and speed of a HHS module //==================================================================== synchronized function monitorHeaterShaker() { variable monitorComplete( 0 ); event intervalEvent; variable currentStatus(-1); variable funcName; variable sTitle; variable hTitle; variable stateTitle; variable heatingUp(hslTrue); variable result; variable oldResult; variable notStopped(hslTrue); // action Stop not used // set the locals... variable devNumber(m_monitorDeviceNumber); variable hMin(m_monitorHeaterMin); variable hMax(m_monitorHeaterMax); variable sMin(m_monitorShakerMin); variable sMax(m_monitorShakerMax); variable interval(m_monitorSampleInterval); variable action(m_monitorAction); variable curRpm(sMin); // if not available, the speed must be OK variable curTemp(hMin); // if not available, the temperature must be OK variable node; variable nodeType; // reset globals m_monitorDeviceNumber = 0; m_monitorShakerMin = 0; m_monitorShakerMax = 0; m_monitorSampleInterval = 0; m_monitorAction = 0; m_monitorHeaterMin = 0; m_monitorHeaterMax = 0; m_monitorResult[devNumber-1] = -1; // set min max temperature dependend of current heater settings // critical section is set in StartMonotoring() function intervalEvent = m_monitorEvent.GetAt(devNumber-1); // free start semaphore m_monitorStartEvent.SetEvent(); initStringTable(); if(isStarDevice(devNumber)) nodeType = StringTable::Load(IDS::starNode); else nodeType = StringTable::Load(IDS::usbNode); nodeType = nodeType + " ("; node = getNodeFromDeviceNumber(devNumber); nodeType = nodeType + IStr(node); nodeType = nodeType + " )"; funcName = StringTable::Load(IDF::Monitoring); funcName = funcName + " "; funcName = funcName + nodeType; sTitle = StringTable::Load(IDS::monitoringShakingTitle); hTitle = StringTable::Load(IDS::monitoringTempTitle); stateTitle = StringTable::Load(IDS::monitoringStateTitle); while (monitorComplete == 0) { // WaitEvent returns 0 if still waiting or non-zero // if the event was triggered. monitorComplete = intervalEvent.WaitEvent( interval ); if( monitorComplete == 0 && notStopped) { if(hasShaker(0, devNumber, 0)) { variable title(sTitle); // read currect RPM curRpm = getCurrentShakerRPM(devNumber, hslFalse); progressTrace(funcName, title, IStr(curRpm)); } if(hasHeater(0, devNumber, 0)) { variable title(hTitle); if(heatingUp) { string cmdResult; variable partResult("qd1"); // ask if heater in state heating up cmdResult = sendMsg(devNumber, "QD", "", m_usbMsgTimeout, hslFalse); if(cmdResult.Find(partResult) < 0) heatingUp = hslFalse; if(heatingUp) title = StringTable::Load(IDS::monitoringTempHeatUpTitle); } // read current temperature curTemp = getCurrentTemp(devNumber, hslFalse); progressTrace(funcName, title, FStr(curTemp, hslTrue)); } SynEnterCriticalSection(m_hhsCriticalSection); result = m_monitorResult.GetAt(devNumber-1); SynLeaveCriticalSection(m_hhsCriticalSection); oldResult = result; // Calculate the current state of the heater/shaker if( (((curTemp < hMin) || (curTemp > hMax)) && !heatingUp) && ((curRpm < sMin) || (curRpm > sMax))) { currentStatus = MonitorStatus::monitorErrHeatingAndShaking; } else if ( ((curTemp < hMin) || (curTemp > hMax)) && !heatingUp ) { currentStatus = MonitorStatus::monitorErrHeating; } else if ( (curRpm < sMin) || (curRpm > sMax) ) { currentStatus = MonitorStatus::monitorErrShaking; } else { currentStatus = MonitorStatus::monitorOK; } // If the monitor status has previously not been set, set it. // Otherwise, use bitwise OR to merge the current result with the previous result if (result == -1) result = currentStatus; else result = currentStatus | result; SynEnterCriticalSection(m_hhsCriticalSection); m_monitorResult[devNumber-1] = result; SynLeaveCriticalSection(m_hhsCriticalSection); progressTrace(funcName, stateTitle, IStr(result)); if ( result != MonitorStatus::monitorOK ) { if ( action == MonitorAction::monitorActionStop ) { // stop shaking and heating if(hasShaker(0, devNumber, 0)) StopShaker(devNumber); if(hasHeater(0, devNumber, 0)) StopTempCtrl(devNumber); // end monitoring but leave in the loop for a correct end of the automatic semapore intervalEvent notStopped = hslFalse; } if(action == MonitorAction::monitorActionAbort) { errorTrace(funcName, IDS::monitoringAbort); abort; } } } } // end while return(0); } //==================================================================== // // Internal function pollingForRunningShaker() // //-------------------------------------------------------------------- // Description: // Polling until shaker has end shaked or time is elapsed // Polling is neccessary that during a long wait time an Abort() // command can be execute. //==================================================================== static function pollingForRunningShaker( variable deviceNumber, variable maxPollingTime) { string cmdResult; variable maxPTime(maxPollingTime); variable intervalTime(5); variable partResult("rd1"); if(maxPollingTime > 10) { // ask if shaker is running cmdResult = sendMsg(deviceNumber, "RD", "", m_usbMsgTimeout, hslFalse); while(cmdResult.Find(partResult) > 0 && maxPTime > 0) { maxPTime = maxPTime - intervalTime; wait(intervalTime); cmdResult = sendMsg(deviceNumber, "RD", "", m_usbMsgTimeout, hslFalse); } } } //==================================================================== // // Internal function pollingForRunningHeater() // //-------------------------------------------------------------------- // Description: // Polling until heater is in temperature controlling mode // Polling is neccessary that during a long wait time an Abort() // command can be execute. //==================================================================== static function pollingForRunningHeater( variable deviceNumber, variable maxPollingTime) { string cmdResult; variable maxPTime(maxPollingTime); variable intervalTime(10); variable partResult("qd1"); if(maxPollingTime > 10) { // ask if heater in state heating up cmdResult = sendMsg(deviceNumber, "QD", "", m_usbMsgTimeout, hslFalse); while(cmdResult.Find(partResult) > 0 && maxPTime > 0) { maxPTime = maxPTime - intervalTime; wait(intervalTime); cmdResult = sendMsg(deviceNumber, "QD", "", m_usbMsgTimeout, hslFalse); } } } //==================================================================== // // Internal function OnAbortHHSLibrary() // //-------------------------------------------------------------------- // Description: // Stop heating and shaking for all HHS module //==================================================================== static function OnAbortHHSLibrary() { variable deviceNumber; for( deviceNumber = 1; deviceNumber <= m_maxHHS; deviceNumber++) { if(isHeaterInitialized(deviceNumber)) { // call StartShaker with 1 base node StopShaker(deviceNumber); StopTempCtrl(deviceNumber); } } Terminate(); return; } } #endif // $$author=Stefan.Golas$$valid=0$$time=2025-07-28 14:14$$checksum=eb0b5352$$length=089$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx7218.tmp ================================================ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx7406.hsl ================================================ #include "STAR_OEM_Test.res" namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HSLUtilLib2.hsl" } /* {{ 2 "LibraryInsertLine" "" */ // }} "" variable loopCounterMain; variable msg; object objJSONFromServer; variable commandFromServer; variable initializeAlways; variable o_stepReturn; object objJSONToServer; sequence seq; variable tipSequence; variable sequenceCounting; variable channelVariable; variable channelUse; variable labwarePositions; variable volumes; variable aspirateSequence; variable v; variable arrayOfVolumes[]; variable liquidClass; variable aspirateMode; variable capacitiveLLD; variable pressureLLD; variable liquidFollowing; variable submergeDepth; variable liquidHeight; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable airTransportRetractDist; variable touchOff; variable aspPosAboveTouch; variable o_liquidLevels_mm[]; variable o_liquidLevels_mL[]; variable o_stepReturn2; variable o_stepReturn3; variable dispenseMode; variable dispenseSequence; variable dispPositionAboveTouch; variable zMoveAfterStep; variable sideTouch; variable wasteSequence; variable useDefaultWaste; variable reducedPatternMode; variable aspirateVolume; variable o_stepReturn4; variable dispenseVolume; variable tipEjectToKnownPosition; variable carrierName; variable barcodeFileName; variable barcodeReadPositions; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable lidSequence; variable plateSequence; variable toolSequence; variable transportMode; variable widthBefore; variable gripHeight; variable gripWidth; variable gripSpeed; variable gripperToolChannel; variable checkPlate; variable zSpeed; variable gripForce; sequence lidSeq; sequence toolSeq; variable xAcceleration; variable platePressOnDistance; variable ejectToolWhenFinish; global device ML_STAR ("STAR_OEM_Test.lay", "ML_STAR", hslTrue); object objHttp; variable blnReturn; variable blnSuccess; variable a; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" STAR_OEM_TOOLKIT::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{{ 1 1 0 "e7768ad9_4016_4422_bd83f5785d03ceda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnReturn = HSLHttp::Initialize(objHttp); // }} "" // {{ 2 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnReturn != blnSuccess) { // }} "" // {{{ 3 1 0 "62c131b4_44b9_4249_8e0a3205a25b21b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); // }} "" // {{{ 4 1 0 "fb18125e_b294_4554_912c3d447526996e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 5 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 6 1 0 "ee92e29b_e94c_46cf_a67851f3be61c805" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Hi, Im a VENUS method.")); // }} "" // {{ 7 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; // }} "" // {{ 8 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "de417132_351a_4ad8_80c71b1863d4a870" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" commandFromServer = Translate(""); // }} "" // {{ 10 1 0 "d9c97239_3c9d_4992_8fb5820ae5721d90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate(""); // }} "" // {{ 11 1 0 "57da7835_7495_4b16_8b82897289efbd11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn2 = Translate(""); // }} "" // {{ 12 1 0 "cf024fcc_3594_4355_b33f4bd8c8bdfb4e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn3 = Translate(""); // }} "" // {{ 13 1 0 "9ed0b80d_8518_474f_a94d8f843a6158fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn4 = Translate(""); // }} "" // {{ 14 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 15 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 16 1 0 "0257e5d3_7b99_47be_a062950a2b200664" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" msg = waitForGUItoContinue(); // }} "" Trace("JSON received from Server:", msg); // {{{ 18 1 0 "36be63f7_a79c_44a4_b1dc636a536612bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONFromServer); // }} "" // {{{ 19 1 0 "5c2b861d_97f9_4e18_a5fce25e78026299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::ParseJson(objJSONFromServer, msg); // }} "" // {{{ 20 1 0 "562abca5_8891_402a_b8a7c5ba56301a86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); // }} "" // {{ 21 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 22 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 23 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "initialize") { // }} "" // {{{ 24 1 0 "773dbb38_0414_403d_b2ff24100c7cf1fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); // }} "" // {{{ 25 1 0 "97af1c08_2914_4f72_b27c685f11b30bb6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); // }} "" // {{{ 26 1 0 "b3ab11e2_0297_446f_9cf37ca7c0c9d19f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Init step return:"), o_stepReturn); // }} "" // {{{ 27 1 0 "be56d266_8e7d_4b8b_b443f7b61332a54d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate("")); // }} "" // {{ 28 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 29 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 30 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 31 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipPickUp") { // }} "" // {{{ 32 1 0 "53e1cfb5_1fde_491f_bfd878eceda16ba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 33 1 0 "f0e9e31f_d871_4632_bd466e43fc38c771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 34 1 0 "e6311b13_2132_40e0_aff0b5556205c32a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 35 1 0 "cb659ed1_5f0c_41e8_8a060ec0b650c589" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{ 36 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 37 1 0 "6699226b_6c7b_4b79_95b8017162b433b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 38 1 0 "bd13798f_62e7_4dd2_8e91769d48d10fc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 39 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 40 1 0 "ce13caa6_634b_4dec_8a6c3ea74b144e95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 41 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 42 1 0 "29f69958_d99b_455a_93c7b0480bfd1658" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn); // }} "" // {{{ 43 1 0 "732425fd_a199_4354_8479d821ee834e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 44 1 0 "fbfd11e8_7f54_4736_806fea7c08b567e8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate("")); // }} "" // {{ 45 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 46 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 47 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 48 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelAspirate") { // }} "" // {{ 49 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 50 1 0 "55ee3109_036b_4acb_8a15175f3316656f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 51 1 0 "a5b3e5ac_4910_4a4a_8e20bdb7f61836e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 52 1 0 "ce04189a_96e4_4bdc_aedc8a68bf64647b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 53 1 0 "882daff3_cc25_4778_aec6a937fc87347c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 54 1 0 "7f7b9f83_5611_4a3b_b5c120689696addb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 55 1 0 "39e464b7_0def_403b_a02f5dd2a358dbd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 56 1 0 "2e2739aa_8eb6_44e0_b887ea00b04acac0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 57 1 0 "9408edd8_3cee_43e0_976b4a6fabf5f4ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 58 1 0 "a2848877_3518_4d1d_95f77c1f313003e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); // }} "" // {{{ 59 1 0 "4b5ce3d0_91f4_4c14_aaf1cad34e0caf60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 60 1 0 "12892ce3_3bc6_4165_b3b6ae0eacad20e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 61 1 0 "15bd5af3_2da1_420b_beb398dc2347a0ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 62 1 0 "4fe61fb4_bb39_4728_96b8c6959f4943ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); // }} "" // {{{ 63 1 0 "ba68c240_2397_4872_949ee1ee984595c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 64 1 0 "6a68b521_e5e2_484d_8284e842b4d424e7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 65 1 0 "253130f8_f599_4ef4_9d5a15e2cb89d1eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 66 1 0 "51233931_483f_4deb_a8627b909d6c9116" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 67 1 0 "3f8b6af1_7872_4a20_92bf2c4507ea9f31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); // }} "" // {{{ 68 1 0 "7dd1b818_5a89_4b03_82734e6f4d7b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{ 69 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 70 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 71 1 0 "cb2b67f0_7384_4a41_831de652f92d4c85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 72 1 0 "29a868b4_7800_4747_b14eaf0f2c10ba40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 73 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 74 1 0 "08f63789_65f1_4e7d_996dc22e8f33d416" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 75 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 76 1 0 "7cb70e6b_15bb_4380_b62150df065d208f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{{ 77 1 0 "e86187c0_0d19_453e_be1c5a401d0d5d93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 78 1 0 "d66c2dae_4cc3_4a31_bafe46d1dd63e790" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 79 1 0 "d23f143d_290d_4d0f_b368241a6a9adaed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 80 1 0 "0428e844_3191_4cde_b7f3544f34c833f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 81 1 0 "a7ca006f_941c_4b31_9749313ad9b4e079" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 82 1 0 "1c8af708_7edd_4eb3_9937086c884c6d76" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate("")); // }} "" // {{ 83 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 84 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 85 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 86 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelDispense") { // }} "" // {{ 87 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 88 1 0 "909bc255_6ca1_4700_bc102ccb34ae5be4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 89 1 0 "fd48dd93_9f42_4df0_9f659e27a5552543" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 90 1 0 "3ff3f492_86a5_40af_a3deabccbab3898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 91 1 0 "3cbb883f_48ae_40fe_afe67da944df94b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 92 1 0 "ab1033bc_1216_450a_9fb60655a1f1a21a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 93 1 0 "0bc1541f_26d5_44d6_8db6ae336fec17bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 94 1 0 "8c10cc29_c05e_4cea_9ed559249651e805" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 95 1 0 "3e0373da_7c7c_46ab_9b77fba19915662e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 96 1 0 "b98fdc49_cdcb_4f3c_81df0b76eafa1411" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 97 1 0 "7458d32a_402a_4215_b52378c78468ec80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 98 1 0 "5e14f2ce_c932_474b_be03f3c043c700e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 99 1 0 "c2010d1d_5a78_4871_a835a6613a1237bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 100 1 0 "d4a6e6a3_0158_45f1_9c359d8e48e01bed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 101 1 0 "011e9828_5413_40c1_80d0c3bdde1c6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 102 1 0 "2d7a4942_b2ce_43a2_8decf49fa0c9576c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 103 1 0 "b178ce99_db9e_4453_bed28d4ce0457bc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); // }} "" // {{{ 104 1 0 "1b38ad88_3c65_4e58_812f9ed32ce32485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{{ 105 1 0 "f34066f1_63f9_474f_8a9c41e56962dc74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 106 1 0 "6b94916e_355b_4ee9_8eb4f1b49c95fea4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 107 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 108 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 109 1 0 "e962dd26_3672_4418_bd3c40e9929929eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 110 1 0 "6257966a_6b39_41c8_a057a79b8e39cd4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 111 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 112 1 0 "3f230e40_8bd9_4235_b88cd0ca80799661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 113 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 114 1 0 "ac0ad5a7_d00b_46fe_a18f94f8dab3863c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{{ 115 1 0 "2753c24e_c4dc_402d_866b6bc8691ecc1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 116 1 0 "1ac127fd_b830_496f_b4d4b9671137ebff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 117 1 0 "3ee5d751_d3a5_468a_b539c4f0ff22023e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 118 1 0 "b86d492c_446f_4921_97140cfd462ace87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 119 1 0 "e049946d_6322_4b39_9c46a2d0eb345528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 120 1 0 "8baf783d_525d_4aad_afac7c239555bd7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate("")); // }} "" // {{ 121 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 122 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 123 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 124 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipEject") { // }} "" // {{{ 125 1 0 "69be671e_7cdd_48d3_af136435754c1d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 126 1 0 "f3444c0f_4863_4fdd_94a025b682d8a6d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 127 1 0 "12ad2f39_c160_4afc_9f6ffce7e3ddb433" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 128 1 0 "2883bb64_2fe3_47ca_996e11434afc57cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 129 1 0 "10c3b13e_7129_4cfd_b88b29d0bbc31a28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); // }} "" // {{ 130 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (useDefaultWaste == 0) { // }} "" // {{ 131 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 132 1 0 "655bc92f_08a8_4c16_a0276997aec081ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 133 1 0 "a3a0b5ef_85c0_4552_a28b3356d7886eb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 134 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 135 1 0 "efadb8c3_c431_4ed4_a739a951c05ee518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 136 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 137 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 138 1 0 "2dda50b6_7f82_4e8a_a1d203715119213a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 139 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 140 1 0 "7fa61e34_a1f2_4b99_8f6bed13c6ce120f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn); // }} "" // {{{ 141 1 0 "a7db5128_f8e4_4afe_81f46b2cc86e608d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject step return:"), o_stepReturn); // }} "" // {{{ 142 1 0 "baf7739b_dfda_4021_93b4602803cbab1b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate("")); // }} "" // {{ 143 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 144 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 145 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 146 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipPickUp") { // }} "" // {{{ 147 1 0 "1f82c33f_a085_47cc_85dbbde3e42a53c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 148 1 0 "9f9fe665_47a2_4a12_961460021d1f09f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 149 1 0 "743960d2_9d0f_4ccf_848662247e3211c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 150 1 0 "b737602c_63e8_4c4c_b47f40cb815914ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); // }} "" // {{ 151 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 152 1 0 "00bd1831_c335_40f5_b706f0ffadbe2890" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 153 1 0 "1f16418c_8fa7_44a5_a6db75dd9a79ee84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 154 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 155 1 0 "b66db4eb_9e79_4c19_909fd8d14d37cba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 156 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 157 1 0 "f3e7cbf6_0242_4463_8d4ed0db4667f7db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2); // }} "" // {{{ 158 1 0 "b080a5c6_324c_4aae_b5899dede6d863f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 159 1 0 "61d36812_0e65_463e_bc060393e68b7aed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate("")); // }} "" // {{ 160 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 161 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 162 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 163 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Aspirate") { // }} "" // {{ 164 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 165 1 0 "373f30c8_ec07_4298_94d6ac75358ab1ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 166 1 0 "ef3ae377_e985_4ef6_93b005aa91c9b2b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 167 1 0 "d8eea65a_6e59_4c32_a47bae09779f9528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 168 1 0 "8eb02312_a070_491c_9758b3cdbdee0cfc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); // }} "" // {{{ 169 1 0 "6eaf8bee_b53f_4f01_87c1380bc345e386" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 170 1 0 "d9923a2f_e7cf_4f3e_81746e378a20baab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 171 1 0 "2c411993_e3fc_4753_9a90308b226078a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 172 1 0 "5d900896_b2b9_442b_b24294b9bbfbdaad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 173 1 0 "21149e9e_21c9_4ddd_93e07b693e3ab3fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 174 1 0 "bcefef03_102b_4887_adad59c2fb7ad551" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 175 1 0 "9665b0a3_35e8_47e9_b14ac1a4818cfa6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 176 1 0 "ff93d28b_afe9_47e7_9b6eb50d6845384f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 177 1 0 "ef43b824_fd38_42d4_9e932904dbf14813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 178 1 0 "b0378457_e370_448b_bfd6955c05e57bcb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{ 179 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 180 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 181 1 0 "615bcff6_e9d5_4303_a5d5826b2e2548dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 182 1 0 "cf4ad428_945e_4921_9441ee34cf9c96bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 183 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 184 1 0 "86397ec2_2ee5_4ec1_8bec47d8e87584b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 185 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 186 1 0 "48f88263_72c1_4df2_865181cffed9feee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 187 1 0 "f1b764e8_e556_4d08_bb83bdc12dc64a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 188 1 0 "164c104a_cf5f_46de_b23a098a18b3fdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 189 1 0 "ee779f77_51a9_46d7_b58b7bcaf13519f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 190 1 0 "e874eb6d_1e97_4590_95d9b10cb059c935" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn4); // }} "" // {{{ 191 1 0 "0ca1df86_a344_45fd_b384e13ba44c5ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 192 1 0 "2497228e_672e_4c95_9f31679fe87bbe1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 193 1 0 "4741e85b_a1ab_4e3c_bafd5edd36cbdfab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 194 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 195 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 196 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 197 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Dispense") { // }} "" // {{ 198 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 199 1 0 "78cba921_2a37_4b4a_91ef7fbe81fcddd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 200 1 0 "b58b4cbd_16e9_4444_9037061e29bc5614" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 201 1 0 "0ab910ec_826d_4c84_bac7ed9564f3bdab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 202 1 0 "84d664b7_70d0_4136_bdfd4de2aa760ad8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); // }} "" // {{{ 203 1 0 "18becc6a_2df4_4281_8b16ade9038979f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 204 1 0 "68c565db_e5ed_44e8_b3846a1d98034e76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 205 1 0 "6a4221a8_9488_48f9_8381b1bc0f0c960d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 206 1 0 "45dcb271_e326_42fc_b8684816d3ffdc93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 207 1 0 "14552b13_e77b_4fb7_9020445ecc5ade21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 208 1 0 "91783f87_af6f_446e_a74fb1725f17d282" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 209 1 0 "e2e7f702_1710_49eb_9b1046dbf4f143e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 210 1 0 "1817aa70_86fa_4318_a8e46569701623e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 211 1 0 "50bd6734_10d5_4291_b40eb708539514fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 212 1 0 "ad5fbb01_d809_4b7d_b858ed597709f28f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 213 1 0 "09566247_6b2d_4c73_b43fe303a30f89c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 214 1 0 "3ead74f7_3b5c_4b21_84d2488c2eceab73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 215 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 216 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 217 1 0 "835f8470_7e8c_40ff_a48abcc85d6b778b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 218 1 0 "059394fc_e924_4d57_b1b85f79f9947fa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 219 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 220 1 0 "6c4be3a7_a450_459c_90545a208f9f459f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 221 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 222 1 0 "c164a94e_2926_462e_9487870d403fe8b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 223 1 0 "86c0fb85_8aaf_4bec_9f6f1f642206487f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 224 1 0 "77047add_8050_4522_ad477b97455a8327" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 225 1 0 "5b2c6f23_9a69_489d_b52179c78c03e48f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 226 1 0 "a9a9244b_829f_4c5b_9a64f1018b029453" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn4); // }} "" // {{{ 227 1 0 "781580a9_199e_4373_b48bb55a97f8a463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 228 1 0 "1867ae44_25f8_4926_ae081e490fd5aa0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 229 1 0 "ef732313_1467_44c4_97d1454e77c299d7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 230 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 231 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 232 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 233 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipEject") { // }} "" // {{{ 234 1 0 "7cf9db16_d78c_4aa0_825cc3c2c22f287c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 235 1 0 "ccca7a97_c22a_4f20_b2d9a60d67850eee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 236 1 0 "a319f75e_77eb_4845_856516ce060213f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 237 1 0 "d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); // }} "" // {{ 238 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipEjectToKnownPosition == 0) { // }} "" // {{ 239 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 240 1 0 "24eeb6dd_1e20_422c_a1a8199cbca73b33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 241 1 0 "5197334f_cde5_4d52_9c528a0c4f7401b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 242 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 243 1 0 "110b82e1_8a5b_48e4_a3adbab701cffc8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 244 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 245 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 246 1 0 "fa32bbf8_8345_4897_aaf09d112d374893" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 247 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 248 1 0 "0c0a33aa_e94b_4075_b12f1b79506556c8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, ML_STAR.Waste16, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2); // }} "" // {{{ 249 1 0 "328216cf_22dd_47a1_9f1ba089b1ac7702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn); // }} "" // {{{ 250 1 0 "53265943_7975_4275_ad98df313054f97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2); // }} "" // {{{ 251 1 0 "adb53477_1dfa_442f_8514fb0c884f8262" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate("")); // }} "" // {{ 252 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 253 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 254 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 255 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "loadCarrier") { // }} "" // {{{ 256 1 0 "76d739d0_ff4a_490b_9c47f411d29ef7a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 257 1 0 "ca623aa7_ed48_45fa_9f4055fb8e08c3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); // }} "" // {{{ 258 1 0 "64a8e193_7e7e_412e_8a0657f0e832eaef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); // }} "" // {{{ 259 1 0 "39e6aaef_5cce_4915_b5b6ede214c7371e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs); // }} "" // {{{ 260 1 0 "1d4d284f_fd1e_4f8a_a2158846ad6a67f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Load carrier step return:"), o_stepReturn); // }} "" // {{{ 261 1 0 "fce93d5d_dca0_4361_a7b125aba3b04775" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 262 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 263 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 264 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 265 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "unloadCarrier") { // }} "" // {{{ 266 1 0 "797d23a7_c62a_471a_a52b10fea8bcc154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 267 1 0 "f1c35790_adb7_49eb_a96864d8b1d66cea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn); // }} "" // {{{ 268 1 0 "6e6ded71_3f99_46c5_9362117beb502a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn); // }} "" // {{{ 269 1 0 "7464e28e_0f62_4f1a_ab58a61200e9dc3c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate("")); // }} "" // {{ 270 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 271 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 272 1 0 "57281871_de37_4dc5_8a242d2e17f9730f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 273 1 0 "409e7ce0_0aad_4f80_bbe430965985f3e9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripGet") { // }} "" // {{ 274 1 0 "ee09031c_f38e_44ee_bcd7ae8bdfccda16" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 275 1 0 "2c9b6fb3_2939_4cbc_b0eb7236b2fb9521" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 276 1 0 "fefd397f_9a56_49bf_a645b849c3780311" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 277 1 0 "ed22046c_f3e5_4329_84777fe1af41257f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 278 1 0 "6038dec0_6387_4401_9b17cbf45e847cbe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 279 1 0 "60a965ef_5e34_4bef_9a267ee9ae674927" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 280 1 0 "0ea5db04_45e2_417a_a8c0ca587d73927c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 281 1 0 "879476f3_fd1c_4b43_8647c68123890513" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); // }} "" // {{{ 282 1 0 "cc898d09_149e_4608_a2085a01f3336d69" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 283 1 0 "2f4d8baa_eca0_46d4_a38c19d41faba09a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 284 1 0 "9d91537c_4195_48ca_81314d0041e33681" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{{ 285 1 0 "9f35278d_5f2d_45bf_9ed6ac6923682f9c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); // }} "" // {{{ 286 1 0 "aec34e23_612f_40ae_bfd822cd9bd0f85f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 287 1 0 "bf9562d7_0e71_4418_8c6bf1febe080021" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 288 1 0 "ee09031c_f38e_44ee_bcd7ae8bdfccda16" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 289 1 0 "e9fca580_cb46_4a01_9cad15ef7c2340ba" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 290 1 0 "5892fa28_2e31_4f31_b540275b16f074f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 291 1 0 "2744dbe2_45cc_4d13_8b76c1a82c6bb670" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 292 1 0 "275afe3f_da15_4cbb_b63993457424ed92" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 293 1 0 "2744dbe2_45cc_4d13_8b76c1a82c6bb670" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 294 1 0 "e9fca580_cb46_4a01_9cad15ef7c2340ba" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 295 1 0 "3d65acfb_dc19_464f_96f3aa346a37e3c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 296 1 0 "e9fca580_cb46_4a01_9cad15ef7c2340ba" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 297 1 0 "466da4ca_b859_40b1_8d91376b0ac59e16" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 298 1 0 "2d6e0115_e558_42b2_b3d3b47e190a7694" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 299 1 0 "f6733221_c766_4133_a1f1718fb020df03" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 300 1 0 "a7f16dca_3c17_4de4_b0b6817a35d2f9d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 301 1 0 "f6733221_c766_4133_a1f1718fb020df03" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 302 1 0 "466da4ca_b859_40b1_8d91376b0ac59e16" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 303 1 0 "3b4ffa2c_32cf_4016_a59e571515c1ce34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 304 1 0 "466da4ca_b859_40b1_8d91376b0ac59e16" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 305 1 0 "5cb9b04b_0fcb_4960_acc4513d8bd0cb39" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 306 1 0 "89ab4762_28fe_43c4_b2a87c41979fdcd0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn); // }} "" // {{{ 307 1 0 "33a868b1_d1ff_4627_bf407f9cdbb6de32" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn); // }} "" // {{{ 308 1 0 "5ef35354_f7df_49b1_95d532451fc05e3a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate("")); // }} "" // {{ 309 1 0 "409e7ce0_0aad_4f80_bbe430965985f3e9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 310 1 0 "57281871_de37_4dc5_8a242d2e17f9730f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 311 1 0 "757c0a0e_a7f4_4bf2_bfa057d37148fcbf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 312 1 0 "771dd1d9_5708_4380_a64b3e5dffefe906" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripMove") { // }} "" // {{ 313 1 0 "2ff61540_ae7a_4a40_b0920fc355e27a63" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 314 1 0 "97406b97_084c_4dca_aeee48f85abf483f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 315 1 0 "2eb2f637_c7ae_491a_addc4ce6449f4583" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{ 316 1 0 "2ff61540_ae7a_4a40_b0920fc355e27a63" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 317 1 0 "30c5f1d8_2511_4a60_bd7be17365f56a15" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 318 1 0 "7a668b09_be20_467f_a4931033d1f8cbcc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 319 1 0 "0d4a3b95_7cab_4ccd_92e8eb3507974f21" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 320 1 0 "91e151a6_deca_4691_aac01e77d0c0704f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 321 1 0 "0d4a3b95_7cab_4ccd_92e8eb3507974f21" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 322 1 0 "30c5f1d8_2511_4a60_bd7be17365f56a15" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 323 1 0 "d3cf2afd_1786_4055_9d46bc90b7550e85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 324 1 0 "30c5f1d8_2511_4a60_bd7be17365f56a15" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 325 1 0 "b49dd283_8820_4835_a265d752fc7ee2a9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn); // }} "" // {{{ 326 1 0 "8fbbc230_a017_45db_b5fdd1e55e00cdb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn); // }} "" // {{{ 327 1 0 "4d6ab56b_3d50_457a_a40e5844a644c947" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate("")); // }} "" // {{ 328 1 0 "771dd1d9_5708_4380_a64b3e5dffefe906" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 329 1 0 "757c0a0e_a7f4_4bf2_bfa057d37148fcbf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 330 1 0 "5815db3f_6a89_404d_b22e14f743371465" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 331 1 0 "f69aeeef_2a97_48f7_8096519045fcc774" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripPlace") { // }} "" // {{ 332 1 0 "c9d99c57_02bc_4139_8efcecd63e319b33" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 333 1 0 "3d356852_2190_4deb_9415504e8df9fc65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 334 1 0 "1bfedc1e_3f57_4e54_92a63b9c8ca65a10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 335 1 0 "98746c5d_9bef_46ba_93a3ae3a1a3f6157" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 336 1 0 "245b1813_f287_4ca2_9a107f4f8f484ca7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 337 1 0 "9067af6f_9eef_4d52_8de9f8a4789dbb24" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 338 1 0 "fbe7ad33_2d6a_4b61_a590dd4b5e77bbd0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); // }} "" // {{{ 339 1 0 "d618fdab_5852_429e_97104de37e53cf26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); // }} "" // {{{ 340 1 0 "5d97f340_bd59_48af_9e409f04a9962e8d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 341 1 0 "8c28ed9e_469c_4de7_ad8633a827f32991" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); // }} "" // {{{ 342 1 0 "c82ac906_05ad_4864_a1850ea6ad8c3d13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 343 1 0 "15515fc3_56fa_4505_a3cde7095a50cad8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 344 1 0 "c9d99c57_02bc_4139_8efcecd63e319b33" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 345 1 0 "69109499_3a32_450c_ad0bf352d592d016" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 346 1 0 "f5d54bbc_8877_4be8_93759a807b5e9434" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 347 1 0 "f85638ee_7cec_408d_b00db1e2fe8a6dbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 348 1 0 "92ce9741_73af_4736_bfb7e20febb3074f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 349 1 0 "f85638ee_7cec_408d_b00db1e2fe8a6dbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 350 1 0 "69109499_3a32_450c_ad0bf352d592d016" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 351 1 0 "baffacfe_5135_4e9b_8b160709a9b21616" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 352 1 0 "69109499_3a32_450c_ad0bf352d592d016" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 353 1 0 "2ed419f6_869e_448d_af06833996a5acc2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 354 1 0 "1c1debf0_74cf_4d44_8d89d588bab0ed0f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 355 1 0 "b96c667a_5df0_423f_a6fdcf96cf193ef0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 356 1 0 "45e706ef_3cb4_452e_b81387f8b210f9d4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 357 1 0 "b96c667a_5df0_423f_a6fdcf96cf193ef0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 358 1 0 "2ed419f6_869e_448d_af06833996a5acc2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 359 1 0 "f164ada1_e03e_4452_92bba7c858f95f53" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 360 1 0 "2ed419f6_869e_448d_af06833996a5acc2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 361 1 0 "09a0bb45_db48_49e8_b3f8a7dc44972286" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 362 1 0 "a461d8ee_5432_4df0_a915616fb0659a1a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn); // }} "" // {{{ 363 1 0 "b2bde5b8_d387_43ef_8ab2e9f512dfedd1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn); // }} "" // {{{ 364 1 0 "4dd87c60_e18e_41b5_b7411c2066b93b94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate("")); // }} "" // {{ 365 1 0 "f69aeeef_2a97_48f7_8096519045fcc774" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 366 1 0 "5815db3f_6a89_404d_b22e14f743371465" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 367 1 0 "1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONFromServer); // }} "" // {{ 368 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 369 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "end") { // }} "" // {{{ 370 1 0 "6db67a5a_6aa2_4087_875823acfff0fac4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Good Bye!")); // }} "" // {{ 371 1 0 "4c7e40d6_02a6_451d_b28230ec71e40ce1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 372 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 373 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 374 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 375 1 0 "6fb90145_24c3_46ba_88b839e0215d0bf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{ 2 "AutoExitBlock" "" STAR_OEM_TOOLKIT::_ExitLibrary(); // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=Cuevas_A$$valid=0$$time=2017-05-01 15:57$$checksum=34e38916$$length=085$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx7406.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" private function ArrayToString( variable & i_array[], variable & o_str ) void ; private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ; private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ; private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ; private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4 ) void ; function SendTextMessageToServer( variable str ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; private function waitForGUItoContinue( ) variable ; function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 486 1 0 "c8aa765a_4840_468a_9e928b44fa79d891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{{ 5 "OnAbort" "End" } // }} "" // {{{ 5 "SendTextMessageToServer" "Begin" function SendTextMessageToServer( variable str ) void { // }} "" private object objJSONObject; private variable strJSON; // {{ 5 "SendTextMessageToServer" "InitLocals" // }} "" // {{{ 456 1 0 "9d5f9d4a_c104_4b47_964b6d97f981a71e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONObject); // }} "" // {{{ 457 1 0 "d0a04705_1adc_4919_b95168834c89f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("command"), Translate("message")); // }} "" // {{{ 458 1 0 "7b9a6cd1_3eee_4085_b3f9548e43fc3424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("text"), str); // }} "" // {{{ 459 1 0 "6a1c53cf_65ea_4f53_aa2e9111890fecf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONObject, strJSON); // }} "" // {{{ 460 1 0 "bee8c148_b3ea_490b_8d93d8ed5f24939f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONObject); // }} "" // {{{ 461 1 0 "b965a2fd_f821_4400_b4c777f558ed0772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendTextMessageToServer" "End" } // }} "" // {{{ 5 "waitForGUItoContinue" "Begin" private function waitForGUItoContinue( ) variable { // }} "" private variable loopCounter1; private variable serverResponse; private timer timer1; // {{ 5 "waitForGUItoContinue" "InitLocals" // }} "" // {{ 469 1 0 "73328607_d06a_4d7d_8a5df64da06a1bde" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" serverResponse = Translate(""); // }} "" // {{{ 470 1 0 "2342f8b3_4765_4edc_9fb9f46cbb1fd20b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Waiting for server instructions...")); // }} "" // {{{ 471 1 0 "216e1039_788e_4830_8588933e6c542ba1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Waiting for server instructions...."), Translate("")); // }} "" // {{ 472 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounter1 = 0; while (1 == 1) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 473 1 0 "c4dace2b_a8f4_4fc9_9e50c0b239d7ce04" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(1) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 474 1 0 "89c37599_83e8_4af6_bee17da851eff56a" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 475 1 0 "6ec592d0_fe02_41a9_8503db5ccf0e5544" "{C1F3C015-47B3-4514-9407-AC2E65043419}" serverResponse = HSLHttp::HttpGET(objHttp, Translate("http://localhost:3221"), Translate("")); // }} "" // {{ 476 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (serverResponse != "") { // }} "" // {{ 477 1 0 "b1e2e308_ee78_46d0_8a6832649536045e" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 478 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 479 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 == 300) { // }} "" // {{ 480 1 0 "19e5c8f7_a1a9_4348_aa41a572942db630" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 481 1 0 "6be46368_bb3e_4ad8_82647d6f52af8c9b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 482 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 483 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 484 1 0 "809789b0_bd70_4c1f_b0d808ce120b1d99" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (serverResponse); // }} "" // {{{ 5 "waitForGUItoContinue" "End" } // }} "" // {{{ 5 "SendStepReturnToServer" "Begin" private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4 ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer" "InitLocals" // }} "" // {{{ 445 1 0 "2520bd9f_739d_4111_a27d89f8f73ec39e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 446 1 0 "573e16a7_c660_495b_a8079940be604ff7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 447 1 0 "a97c5efa_0ce4_4358_9c51c1893f526b9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 448 1 0 "deceb871_e830_4b14_86e626f745ef083a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 449 1 0 "00afb5c2_b5db_4458_866a13b6cb332b68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 450 1 0 "e52bbd02_b31d_4278_a0f45991eab77d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 451 1 0 "19f99698_3777_4dcf_9fc765c3f221df4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 452 1 0 "7728ac0d_8630_4f61_94af076392758ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 453 1 0 "70d261f2_edc4_49a0_a5a074cd5ab92b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 454 1 0 "ee0dd62d_582f_4171_b08e37f6106d9b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer" "End" } // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "Begin" private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void { // }} "" private variable n; private variable loopCounter1; private variable strSinglePosition; private variable arrayOfPositions[]; private variable arraySinglePosition[]; private variable labwareID; private variable positionID; // {{ 5 "BuildTempSequenceFromPositions" "InitLocals" { sequence __temp; o_seq = __temp; } // }} "" // {{ 422 1 0 "d9022e13_e502_4969_a8ee79484e990801" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arrayOfPositions.SetSize(0); // }} "" // {{{ 423 1 0 "3e178082_8579_435f_a5db4481bb789d9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strPositions, Translate(";"), arrayOfPositions, 0); // }} "" // {{ 424 1 0 "5d735f26_db1b_4bea_9ee405f4167bb99f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" n=arrayOfPositions.GetSize(); // }} "" // {{{ 425 1 0 "f497f24b_fd39_417d_8703c0d54662309f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq); // }} "" // {{ 426 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 427 1 0 "fd645546_0433_46a0_8619026e338529fd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arraySinglePosition.SetSize(0); // }} "" // {{ 428 1 0 "91aeb0c4_3176_4356_a19a1027bcdb0af3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1); // }} "" // {{{ 429 1 0 "c2b42369_7829_4c62_b58880fce7867995" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strSinglePosition, Translate(","), arraySinglePosition, 0); // }} "" // {{ 430 1 0 "016f61c5_fd76_4c74_903df10a03070f7b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" labwareID=arraySinglePosition.GetAt(1-1); // }} "" // {{ 431 1 0 "886fc872_7c3a_4366_959db6d5f265ed7c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" positionID=arraySinglePosition.GetAt(2-1); // }} "" // {{{ 432 1 0 "766a54b4_4c5b_4991_9d8ceea62d26b216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq, labwareID, positionID); // }} "" // {{ 433 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 434 1 0 "0003c6e9_5b43_438d_bc93be342c3c6b55" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq.SetCurrentPosition(1); // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "End" } // }} "" // {{{ 5 "StrTokenize" "Begin" private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 463 1 0 "500afe4c_98a8_4117_8c279b9994d0b626" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 464 1 0 "6a0bd918_2fda_4e4c_a680454ce2576168" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 465 1 0 "f65ed315_68ed_4ec0_ba0b3c217e692b25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 466 1 0 "9476acee_e5bb_43d1_bbec232ed01bae08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); // Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "Begin" private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void { // }} "" private variable numOfVolumes; private variable numOfChannelsInVariable; private variable n; private variable loopCounter1; private variable loopCounter2; private variable arrSize; private variable loopCounter3; private variable intType; private variable val; private variable strKeyName; private variable retVal; // {{ 5 "BuildArrayOfVolumesForChannels" "InitLocals" o_arrayOfVolumes.SetSize( 0); // }} "" // {{ 387 1 0 "69288f91_eabd_4d15_af5361636ffacbf6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyName = Translate("volumes"); // }} "" // {{ 388 1 0 "bf4c1108_6751_41ee_8d3d3b1a9418548f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfVolumes.SetSize(0); // }} "" // {{{ 389 1 0 "a9cfa743_a769_46a3_b8d7e45a67b3d297" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName); // }} "" Trace("ARRAY SIZE=", arrSize); // {{ 391 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arrSize > 0) { // }} "" // {{ 392 1 0 "594bebbb_0d54_4893_b20d783de743dd44" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 393 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < arrSize;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{{ 394 1 0 "77e4b501_92f2_4f0c_a6d4190a62e46da7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetElementType(objJSONFromServer, strKeyName, loopCounter3, intType); // }} "" Trace("position=", loopCounter3, " type=", intType); // {{ 396 1 0 "445e00ec_c7d7_4544_8e9461646bd8dd61" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (intType == 7) { // }} "" // {{{ 397 1 0 "940108aa_cd62_4d73_ac67398dc647e8e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); // }} "" Trace("Get float return:", retVal, " value=",v); // {{ 399 1 0 "445e00ec_c7d7_4544_8e9461646bd8dd61" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 400 1 0 "789ca750_57e1_442d_85be868bb10a3d24" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (intType == 6) { // }} "" // {{{ 401 1 0 "e714eec1_403f_4efd_b2f2b16627e5d25c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); // }} "" // {{ 402 1 0 "789ca750_57e1_442d_85be868bb10a3d24" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 403 1 0 "6be31b23_f55d_4d15_be6abc9ee4bef664" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 404 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 405 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 406 1 0 "4a4891b3_f877_4b14_85196b7e820554b2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 407 1 0 "22c7c768_33c4_4975_909e9586375bfe8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(strKeyName, v); // }} "" // {{ 408 1 0 "4e01e62a_13a2_408e_9fbfb2300d5996ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 409 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 410 1 0 "cc565f65_a92a_43ef_9c052b7f5632aca5" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" numOfVolumes=o_arrayOfVolumes.GetSize(); // }} "" // {{{ 411 1 0 "e49355fb_3fe6_4c8d_930870416e36b708" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numOfChannelsInVariable = StrGetLength(strChannels); // }} "" // {{ 412 1 0 "804bc477_e950_4a14_af5f667c73cf5176" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 413 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (numOfVolumes < numOfChannelsInVariable) { // }} "" // {{ 414 1 0 "2e73355c_8b11_4423_b345807cae9d5db8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" n = numOfChannelsInVariable - numOfVolumes; // }} "" // {{ 415 1 0 "53a650d8_2fc1_4c5b_bd19eda433c2a81a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" v = o_arrayOfVolumes.ElementAt( numOfVolumes -1); // }} "" // {{ 416 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 417 1 0 "cd047b15_6a02_40f1_adfb116f6bf5d763" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 418 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 419 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 420 1 0 "b6925417_2401_4996_9e43c2f83275a1d1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Util2::Debug::TraceArray(Translate("volumes"), o_arrayOfVolumes); // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "End" } // }} "" // {{{ 5 "ArrayToString" "Begin" private function ArrayToString( variable & i_array[], variable & o_str ) void { // }} "" private variable arraySize; private variable loopCounter1; // {{ 5 "ArrayToString" "InitLocals" o_str = 0; // }} "" // {{ 377 1 0 "1a220255_6ba4_40fb_be39a6a2f4e0065f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 378 1 0 "f821c4ff_f1a2_4ad7_9bd77dd8652567cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str = Translate(""); // }} "" // {{ 379 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 380 1 0 "afd84a84_8330_46e7_8308e16b5caa05e9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" v=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 381 1 0 "77436fd3_3c87_4f09_9a89259b15ef5bf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, v); // }} "" // {{ 382 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 < arraySize) { // }} "" // {{{ 383 1 0 "d14fd31e_5de8_46f9_bb359f38de9a08ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, Translate(";")); // }} "" // {{ 384 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 385 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "ArrayToString" "End" } // }} "" // {{{ 5 "JSON_GetFloatValue" "Begin" private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void { // }} "" private variable o_intType; private variable retVal; // {{ 5 "JSON_GetFloatValue" "InitLocals" o_KeyFloatValue = 0; // }} "" // {{{ 436 1 0 "8f2f8625_6c9e_4c47_b4698d29df60004a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" // {{ 437 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" // {{ 438 1 0 "5a74df81_6685_4703_8b055144f8d74d45" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 439 1 0 "47bb8c98_9624_40ad_b765abfc6b0d0b49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" // {{ 440 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" // {{ 441 1 0 "5b8a3ec6_8ee4_4887_ab7df29fa494cdc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_KeyFloatValue = 0; // }} "" // {{ 442 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 443 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "JSON_GetFloatValue" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=Cuevas_A$$valid=0$$time=2017-05-01 15:57$$checksum=33321b70$$length=087$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx7A41.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "HSLErrLib.hsl" #include "HSLMlStarStepReturnLib.hsl" #include "HSLDevLib.hsl" #include "HSLDevLib.hsl" #include "HSLSeqLib.hsl" #include "HSLStrLib.hsl" #include "HSLTrcLib.hsl" #include "HSL_LiquidClassLib.hsl" #include "HslHamHeaterShakerLib.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace STAR_OEM_TOOLKIT { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function Carrier_Load( device & ML_STAR, variable carrierName, variable barcodeFileName, variable barcodeReadPositions, variable & o_stepReturn_CarrierBC, variable & o_stepReturn_PositionsBCs, variable & o_stepReturn_PositionsBCMasks, variable & o_stepReturn_PositionsIDs, variable & o_CarrierBC, variable & o_PositionsBCs[] ) void ; function Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void ; function Channels_1mL_COREGrippers_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable gripForce, variable gripperToolChannel, variable gripWidth, variable gripHeight, variable widthBefore, variable gripSpeed, variable Zspeed, variable checkPlate, variable & o_stepReturn ) void ; function Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void ; function Channels_1mL_COREGrippers_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable ejectToolWhenFinish, variable Zspeed, variable platePressOnDistance, variable xAcceleration, variable checkPlate, variable & o_stepReturn ) void ; function Channels_1mL_Dispense( device & ML_STAR, sequence & dispenseSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable zMoveAfterStep, variable sideTouch, variable dispPositionAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void ; function Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void ; function Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void ; function Channels_1ml_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable aspirateMode, variable capacitiveLLD, variable pressureLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable maxLLdDifference, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable aspPosAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void ; function Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void ; function MPH96_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable aspirateVolume, variable channelVariable, variable liquidClass, variable sequenceCounting, variable aspirateMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void ; function MPH96_Dispense( device & ML_STAR, sequence & dispenseSequence, variable dispenseVolume, variable liquidClass, variable sequenceCounting, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable zMoveAfterStep, variable sideTouch, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void ; function MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ; function MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ; private function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void ; function iSWAP_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable gripForce, variable inverseGrip, variable collisionControl, variable gripMode, variable retractDistance, variable liftUpHeight, variable gripWidth, variable tolerance, variable gripHeight, variable widthBefore, variable & o_stepReturn ) void ; function iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void ; function iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void ; function iSWAP_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable collisionControl, variable retractDistance, variable liftUpHeight, variable & o_stepReturn ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" // }} "" } // {{{ 5 "Channels_1ml_Aspirate" "Begin" function Channels_1ml_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable aspirateMode, variable capacitiveLLD, variable pressureLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable maxLLdDifference, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable aspPosAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void { // }} "" private variable numberOfPositions; private variable loopCounter1; private variable getLiquidLevels_return; private variable labwareID; private variable positionID; private variable lbwContainersAreConnected; private variable height; private variable calculatedVolume; // {{ 5 "Channels_1ml_Aspirate" "InitLocals" o_stepReturn = 0; o_liquidLevels_mm.SetSize( 0); o_liquidLevels_mL.SetSize( 0); // }} "" // {{ 90 1 0 "2df7cf67_eefd_4634_a6c81ca2eae358a9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_BE09000023754133A7DFF78508E9EC3D ; err.Clear(); // }} "" // {{ 91 1 0 "8fa2cdd5_d117_4559_be8f242119801835" "ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2("8fa2cdd5_d117_4559_be8f242119801835"); // Aspirate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 92 1 0 "2df7cf67_eefd_4634_a6c81ca2eae358a9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_BE09000023754133A7DFF78508E9EC3D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 93 1 0 "3dd2c518_6d0a_4d7b_a227743c1263caad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 94 1 0 "2df7cf67_eefd_4634_a6c81ca2eae358a9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 95 1 0 "a8ab29ff_eb70_45dc_a90f0ce07c2514bd" "ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}" { variable arrRetValues[]; arrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C("a8ab29ff_eb70_45dc_a90f0ce07c2514bd"); // GetLastLiquidLevel getLiquidLevels_return = arrRetValues[2]; } // }} "" // {{{ 96 1 0 "a37ce602_144b_4a72_98dbfe0c85169266" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn); // }} "" // {{ 97 1 0 "36e6f2a2_6d83_40ba_a0c6ff5caefcef66" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mm.SetSize(0); // }} "" // {{ 98 1 0 "ce4eba9f_c8e1_4c33_a9c369da4ce7c312" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mL.SetSize(0); // }} "" // {{ 99 1 0 "3fcceb5e_fea5_4776_94261cf223fe007f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < numberOfPositions;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 100 1 0 "c20a15a2_4a40_4214_9e2588af18355e98" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 101 1 0 "81636f39_7511_441a_8ab707955e5f2035" "{C1F3C015-47B3-4514-9407-AC2E65043419}" height = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return); // }} "" // {{ 102 1 0 "6b53ca04_1112_466f_89a23ed352e36004" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mm.AddAsLast(height); // }} "" // {{ 103 1 0 "c20a15a2_4a40_4214_9e2588af18355e98" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 104 1 0 "00f031c0_8454_45d1_9b17554c5e6df7bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 105 1 0 "9c1dd6a5_9b06_43fd_9fd194129c2f2a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn); // }} "" // {{{ 106 1 0 "e6930a03_b2a0_4569_bb51b2088cac413c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn); // }} "" // {{ 107 1 0 "06eeeac2_52c3_47cb_b78dde137d763a9a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 108 1 0 "53b884ef_873a_4201_882d0cc9f9d77d20" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwareID > "") { // }} "" // {{ 109 1 0 "a83a594a_307e_45dd_8a2583323efe8f45" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (positionID > "") { // }} "" // {{ 110 1 0 "83df5041_4b3c_406f_95690782a3a21861" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 111 1 0 "9af2cbf6_5306_4a14_827b32cae1054343" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_15E4EC7C03B0458dA8B196D2861D63BC ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 113 1 0 "9af2cbf6_5306_4a14_827b32cae1054343" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_15E4EC7C03B0458dA8B196D2861D63BC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 114 1 0 "9af2cbf6_5306_4a14_827b32cae1054343" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 115 1 0 "83df5041_4b3c_406f_95690782a3a21861" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 116 1 0 "450b7dae_efb3_416b_a62ef5c611c84cdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" calculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected); // }} "" // {{ 117 1 0 "ca4e0527_c377_4a7f_99b7deddb85bdfaf" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mL.AddAsLast(calculatedVolume); // }} "" // {{ 118 1 0 "a83a594a_307e_45dd_8a2583323efe8f45" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 119 1 0 "53b884ef_873a_4201_882d0cc9f9d77d20" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 120 1 0 "00f031c0_8454_45d1_9b17554c5e6df7bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 121 1 0 "3fcceb5e_fea5_4776_94261cf223fe007f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "Channels_1ml_Aspirate" "End" } // }} "" // {{{ 5 "Channels_1mL_TipPickUp" "Begin" function Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_TipPickUp" "InitLocals" o_stepReturn = 0; // }} "" // {{ 84 1 0 "bcca3c8a_7fce_4767_98fb4ac5db164ddd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_55CAD51E8CEB46d5827DF7367C49B35D ; err.Clear(); // }} "" // {{ 85 1 0 "72075d54_9924_47c4_a0154d7e90bb1065" "ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2("72075d54_9924_47c4_a0154d7e90bb1065"); // TipPickUp o_stepReturn = arrRetValues[2]; } // }} "" // {{ 86 1 0 "bcca3c8a_7fce_4767_98fb4ac5db164ddd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_55CAD51E8CEB46d5827DF7367C49B35D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 87 1 0 "7acd54b9_9bda_465f_9b10e23e8987fa26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 88 1 0 "bcca3c8a_7fce_4767_98fb4ac5db164ddd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_TipPickUp" "End" } // }} "" // {{{ 5 "Channels_1mL_Dispense" "Begin" function Channels_1mL_Dispense( device & ML_STAR, sequence & dispenseSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable zMoveAfterStep, variable sideTouch, variable dispPositionAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void { // }} "" private variable getLiquidLevels_return; private variable labwareID; private variable calculatedVolume; private variable height; private variable lbwContainersAreConnected; private variable positionID; private variable loopCounter1; private variable numberOfPositions; // {{ 5 "Channels_1mL_Dispense" "InitLocals" o_stepReturn = 0; o_liquidLevels_mm.SetSize( 0); o_liquidLevels_mL.SetSize( 0); // }} "" // {{ 45 1 0 "c6b9c3da_70bc_4aa8_841a67bf3e6c7859" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 ; err.Clear(); // }} "" // {{ 46 1 0 "ce9beee3_e67e_43c3_bfc64805ab990e08" "ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2("ce9beee3_e67e_43c3_bfc64805ab990e08"); // Dispense o_stepReturn = arrRetValues[2]; } // }} "" // {{ 47 1 0 "c6b9c3da_70bc_4aa8_841a67bf3e6c7859" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 48 1 0 "493334e8_4548_4149_82f058a4b51df641" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 49 1 0 "c6b9c3da_70bc_4aa8_841a67bf3e6c7859" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 50 1 0 "dd677141_96b6_4ccc_a1764ec36dc76b56" "ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}" { variable arrRetValues[]; arrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C("dd677141_96b6_4ccc_a1764ec36dc76b56"); // GetLastLiquidLevel getLiquidLevels_return = arrRetValues[2]; } // }} "" // {{{ 51 1 0 "4fd5463f_c617_4e2b_aa27d0a820bfe2c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn); // }} "" // {{ 52 1 0 "6cafca26_5df8_46c0_98d5a4e2a957163a" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mm.SetSize(0); // }} "" // {{ 53 1 0 "418d84ad_0fba_4ca8_8479b9c6dde94985" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mL.SetSize(0); // }} "" // {{ 54 1 0 "abfcc803_7e38_4c9d_ad7c8412ada32e1d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < numberOfPositions;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 55 1 0 "1cbaa070_2e26_4301_9831c6bc56227fcf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 56 1 0 "c8304522_b160_47ca_9780bfcfd85cf56a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" height = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return); // }} "" // {{ 57 1 0 "5c09e3e1_cd42_4687_940231f4491e28e1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mm.AddAsLast(height); // }} "" // {{ 58 1 0 "1cbaa070_2e26_4301_9831c6bc56227fcf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 59 1 0 "ed6c9c1d_db69_4c65_8a4324433bd43f03" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 60 1 0 "11b5458b_6926_471d_8cb7dde489f8a444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn); // }} "" // {{{ 61 1 0 "51ffe893_b0e5_4383_ac38b9be481a9bee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn); // }} "" // {{ 62 1 0 "b02dd957_c3d3_445f_b0e36cc6cab274af" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 63 1 0 "35647e0a_accb_4503_80bba06d7d2a3271" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwareID > "") { // }} "" // {{ 64 1 0 "693f6d8c_e7fa_419d_b923bb796e5548fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (positionID > "") { // }} "" // {{ 65 1 0 "086a404a_99f9_4215_81fcc4be65c886b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 66 1 0 "1b6d6482_1c62_4a3f_90dfdeaf8695fb92" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_16FB3828C9A34ba7A7078E29FEF48CFF ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 68 1 0 "1b6d6482_1c62_4a3f_90dfdeaf8695fb92" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_16FB3828C9A34ba7A7078E29FEF48CFF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 69 1 0 "1b6d6482_1c62_4a3f_90dfdeaf8695fb92" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 70 1 0 "086a404a_99f9_4215_81fcc4be65c886b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 71 1 0 "36cc23a5_3886_4312_adc5faa6d481a26c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" calculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected); // }} "" // {{ 72 1 0 "9f017e3d_a3f3_4f02_914d74e549a5f3be" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mL.AddAsLast(calculatedVolume); // }} "" // {{ 73 1 0 "693f6d8c_e7fa_419d_b923bb796e5548fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 74 1 0 "35647e0a_accb_4503_80bba06d7d2a3271" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 75 1 0 "ed6c9c1d_db69_4c65_8a4324433bd43f03" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 76 1 0 "abfcc803_7e38_4c9d_ad7c8412ada32e1d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "Channels_1mL_Dispense" "End" } // }} "" // {{{ 5 "Channels_1mL_TipEject" "Begin" function Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_TipEject" "InitLocals" o_stepReturn = 0; // }} "" // {{ 78 1 0 "68086392_46e4_4533_88368c1cf77ceb2d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_D52469807F754a359D17B8D31042C6A6 ; err.Clear(); // }} "" // {{ 79 1 0 "1a33c622_0a9b_473c_a857db709fcadb47" "ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2("1a33c622_0a9b_473c_a857db709fcadb47"); // TipEject o_stepReturn = arrRetValues[2]; } // }} "" // {{ 80 1 0 "68086392_46e4_4533_88368c1cf77ceb2d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_D52469807F754a359D17B8D31042C6A6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 81 1 0 "5284933d_2b98_4255_81ee24c4ca6624c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 82 1 0 "68086392_46e4_4533_88368c1cf77ceb2d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_TipEject" "End" } // }} "" // {{{ 5 "Carrier_Load" "Begin" function Carrier_Load( device & ML_STAR, variable carrierName, variable barcodeFileName, variable barcodeReadPositions, variable & o_stepReturn_CarrierBC, variable & o_stepReturn_PositionsBCs, variable & o_stepReturn_PositionsBCMasks, variable & o_stepReturn_PositionsIDs, variable & o_CarrierBC, variable & o_PositionsBCs[] ) void { // }} "" private variable numberOfPositions; private variable loopCounter1; private variable positionBC; // {{ 5 "Carrier_Load" "InitLocals" o_stepReturn_CarrierBC = 0; o_stepReturn_PositionsBCs = 0; o_stepReturn_PositionsBCMasks = 0; o_stepReturn_PositionsIDs = 0; o_CarrierBC = 0; o_PositionsBCs.SetSize( 0); // }} "" // {{ 1 1 0 "5c909756_0e7e_4404_9569fb2db3dd1158" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_6F7D183CCBCA490f840A10F79D2CB4F6 ; err.Clear(); // }} "" // {{ 2 1 0 "b445eca9_c441_45d7_b53f08a23b7b4b80" "ML_STAR:{54114402-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._54114402_7FA2_11D3_AD85_0004ACB1DCB2("b445eca9_c441_45d7_b53f08a23b7b4b80"); // LoadCarrier o_stepReturn_CarrierBC = arrRetValues[2]; o_stepReturn_PositionsBCs = arrRetValues[3]; o_stepReturn_PositionsBCMasks = arrRetValues[4]; o_stepReturn_PositionsIDs = arrRetValues[5]; } // }} "" // {{ 3 1 0 "5c909756_0e7e_4404_9569fb2db3dd1158" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_6F7D183CCBCA490f840A10F79D2CB4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 4 1 0 "6919be45_bdb7_46b6_a2ad892454bef1c7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_CarrierBC = ErrGetDataAt(3); // }} "" // {{{ 5 1 0 "d814f66e_6beb_47a8_a390d3b5ea839ba9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionsBCs = ErrGetDataAt(4); // }} "" // {{{ 6 1 0 "018a7d4d_f55c_435f_bfce516fc40cd0bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionsBCMasks = ErrGetDataAt(5); // }} "" // {{{ 7 1 0 "28252b10_bd1a_480c_8d84ce9739ca69ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionsIDs = ErrGetDataAt(6); // }} "" // {{ 8 1 0 "5c909756_0e7e_4404_9569fb2db3dd1158" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 9 1 0 "f7c4b6e5_401a_41ab_b920370ccc277a17" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 10 1 0 "91e50e7b_5626_4ab9_ad652563a737dba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_CarrierBC = StepReturn::GetStepData(1, o_stepReturn_CarrierBC); // }} "" // {{ 11 1 0 "f7c4b6e5_401a_41ab_b920370ccc277a17" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 12 1 0 "628b131a_a46c_40b8_b9a61700e818c0e7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 13 1 0 "6135f8c7_3486_4898_88c6e7154326c4df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn_PositionsBCs); // }} "" // {{ 14 1 0 "4cec9992_cb23_4182_894ee448e99b8d48" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_PositionsBCs.SetSize(0); // }} "" // {{ 15 1 0 "0249a50f_bae7_4b5c_86cdc25ab8f43639" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < numberOfPositions;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 16 1 0 "fe82471b_5e85_4598_90b8f672ef3cf690" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionBC = StepReturn::GetStepData(loopCounter1, o_stepReturn_PositionsBCs); // }} "" // {{ 17 1 0 "f0a92a30_0f95_4eb4_bdcf7e21db350ecb" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_PositionsBCs.AddAsLast(positionBC); // }} "" // {{ 18 1 0 "0249a50f_bae7_4b5c_86cdc25ab8f43639" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 19 1 0 "628b131a_a46c_40b8_b9a61700e818c0e7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "Carrier_Load" "End" } // }} "" // {{{ 5 "Carrier_Unload" "Begin" function Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void { // }} "" // {{ 5 "Carrier_Unload" "InitLocals" o_stepReturn = 0; // }} "" // {{ 21 1 0 "c21e08df_939e_41ef_9843a250f42bf239" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_040A2B30BAA84a018D3C82EF2B4AAB10 ; err.Clear(); // }} "" // {{ 22 1 0 "38494363_9fef_41a3_8cb17f349c9fe693" "ML_STAR:{54114400-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._54114400_7FA2_11D3_AD85_0004ACB1DCB2("38494363_9fef_41a3_8cb17f349c9fe693"); // UnloadCarrier o_stepReturn = arrRetValues[2]; } // }} "" // {{ 23 1 0 "c21e08df_939e_41ef_9843a250f42bf239" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_040A2B30BAA84a018D3C82EF2B4AAB10 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 24 1 0 "9aa00b86_389e_473d_bd928bce39259e60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 25 1 0 "c21e08df_939e_41ef_9843a250f42bf239" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Carrier_Unload" "End" } // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Get" "Begin" function Channels_1mL_COREGrippers_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable gripForce, variable gripperToolChannel, variable gripWidth, variable gripHeight, variable widthBefore, variable gripSpeed, variable Zspeed, variable checkPlate, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_COREGrippers_Get" "InitLocals" o_stepReturn = 0; // }} "" // {{ 27 1 0 "b30da27c_bef5_49a0_87d76c8049f31861" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90BF8C56374E469c817DB7B52FEE5D91 ; err.Clear(); // }} "" // {{ 28 1 0 "f1e43893_ada0_4b74_9035cad36fab5d4b" "ML_STAR:{A108628C-BEB7-4CB6-99FD-8523302C700F}" { variable arrRetValues[]; arrRetValues = ML_STAR._A108628C_BEB7_4CB6_99FD_8523302C700F("f1e43893_ada0_4b74_9035cad36fab5d4b"); // ZSwapGetPlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 29 1 0 "b30da27c_bef5_49a0_87d76c8049f31861" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90BF8C56374E469c817DB7B52FEE5D91 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 30 1 0 "5300695f_5b47_4f16_8312711c7c77441e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 31 1 0 "b30da27c_bef5_49a0_87d76c8049f31861" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Get" "End" } // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Place" "Begin" function Channels_1mL_COREGrippers_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable ejectToolWhenFinish, variable Zspeed, variable platePressOnDistance, variable xAcceleration, variable checkPlate, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_COREGrippers_Place" "InitLocals" o_stepReturn = 0; // }} "" // {{ 39 1 0 "b65dcae3_6ff9_4720_a4f35e99346d8975" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8675588E513E44cd8097542899F1DE5C ; err.Clear(); // }} "" // {{ 40 1 0 "3460f3d9_9fdb_4437_9cfa36d33b14f837" "ML_STAR:{9DF3DD4B-3B5E-4750-8989-04458D1B134B}" { variable arrRetValues[]; arrRetValues = ML_STAR._9DF3DD4B_3B5E_4750_8989_04458D1B134B("3460f3d9_9fdb_4437_9cfa36d33b14f837"); // ZSwapPlacePlate } // }} "" // {{ 41 1 0 "b65dcae3_6ff9_4720_a4f35e99346d8975" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8675588E513E44cd8097542899F1DE5C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 42 1 0 "1c1fcfa6_73ab_434d_965f40a7cb5827ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 43 1 0 "b65dcae3_6ff9_4720_a4f35e99346d8975" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Place" "End" } // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Move" "Begin" function Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_COREGrippers_Move" "InitLocals" o_stepReturn = 0; // }} "" // {{ 33 1 0 "ced13f47_fded_4378_af08e9af8f325393" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_17F7F9C2DD974e61B13F20ADC6F241A8 ; err.Clear(); // }} "" // {{ 34 1 0 "2ed0456d_387e_49b4_a5a8105447123f04" "ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}" { variable arrRetValues[]; arrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E("2ed0456d_387e_49b4_a5a8105447123f04"); // ZSwapMovePlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 35 1 0 "ced13f47_fded_4378_af08e9af8f325393" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_17F7F9C2DD974e61B13F20ADC6F241A8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 36 1 0 "b5f59ed6_6bf0_47b3_b8c295016cfa86e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 37 1 0 "ced13f47_fded_4378_af08e9af8f325393" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Move" "End" } // }} "" // {{{ 5 "iSWAP_Get" "Begin" function iSWAP_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable gripForce, variable inverseGrip, variable collisionControl, variable gripMode, variable retractDistance, variable liftUpHeight, variable gripWidth, variable tolerance, variable gripHeight, variable widthBefore, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Get" "InitLocals" o_stepReturn = 0; // }} "" // {{ 207 1 0 "53a14975_dd73_4964_8c8c9f0730a43a7a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ABA9DAA34A59470495CBB56841D2D81D ; err.Clear(); // }} "" // {{ 208 1 0 "285b84de_748a_400d_a828988b60f4c175" "ML_STAR:{CC819D7A-5DD8-4d13-A921-D74A06460F9E}" { variable arrRetValues[]; arrRetValues = ML_STAR._CC819D7A_5DD8_4d13_A921_D74A06460F9E("285b84de_748a_400d_a828988b60f4c175"); // GetPlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 209 1 0 "53a14975_dd73_4964_8c8c9f0730a43a7a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ABA9DAA34A59470495CBB56841D2D81D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 210 1 0 "298cdb09_c92e_4bb7_a2ecabeafcf27813" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 211 1 0 "53a14975_dd73_4964_8c8c9f0730a43a7a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Get" "End" } // }} "" // {{{ 5 "iSWAP_Place" "Begin" function iSWAP_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable collisionControl, variable retractDistance, variable liftUpHeight, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Place" "InitLocals" o_stepReturn = 0; // }} "" // {{ 225 1 0 "c9f8030c_ef60_485e_9b279138f7f6da52" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_22A12BE8BB2146fbB8824DF66137BF6C ; err.Clear(); // }} "" // {{ 226 1 0 "bcedff0a_3cba_458a_bedb1a743e5dd0bd" "ML_STAR:{E34155E5-7529-4b6b-AE3E-CDDA40789D55}" { variable arrRetValues[]; arrRetValues = ML_STAR._E34155E5_7529_4b6b_AE3E_CDDA40789D55("bcedff0a_3cba_458a_bedb1a743e5dd0bd"); // PutPlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 227 1 0 "c9f8030c_ef60_485e_9b279138f7f6da52" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_22A12BE8BB2146fbB8824DF66137BF6C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 228 1 0 "8aeb393a_337d_4788_b25408ee6915eb1c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 229 1 0 "c9f8030c_ef60_485e_9b279138f7f6da52" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Place" "End" } // }} "" // {{{ 5 "iSWAP_Move" "Begin" function iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Move" "InitLocals" o_stepReturn = 0; // }} "" // {{ 213 1 0 "65ac7a80_b8fd_4f3c_a9e6290ec6a707a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E8A019BC968240cbB4C8B7397BB2F043 ; err.Clear(); // }} "" // {{ 214 1 0 "d98672e5_cec6_49ef_92dfdaa4ec2da4f2" "ML_STAR:{862562D1-B5BB-48ce-B5E4-9E37F8ABB61E}" { variable arrRetValues[]; arrRetValues = ML_STAR._862562D1_B5BB_48ce_B5E4_9E37F8ABB61E("d98672e5_cec6_49ef_92dfdaa4ec2da4f2"); // MovePlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 215 1 0 "65ac7a80_b8fd_4f3c_a9e6290ec6a707a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E8A019BC968240cbB4C8B7397BB2F043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 216 1 0 "b69dc448_e2ef_4c62_b6dd3535487928f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 217 1 0 "65ac7a80_b8fd_4f3c_a9e6290ec6a707a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Move" "End" } // }} "" // {{{ 5 "iSWAP_Park" "Begin" function iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Park" "InitLocals" o_stepReturn = 0; // }} "" // {{ 219 1 0 "fae9e68f_ea34_4f4d_bb6f62c288b1e7b4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_47ED933D92B34914984C5D98423B4C94 ; err.Clear(); // }} "" // {{ 220 1 0 "ef5a4036_5d2f_4aae_86e669ef0581597f" "ML_STAR:{86F668D0-478C-41b6-A78B-8B6B8EAA54A7}" { variable arrRetValues[]; arrRetValues = ML_STAR._86F668D0_478C_41b6_A78B_8B6B8EAA54A7("ef5a4036_5d2f_4aae_86e669ef0581597f"); // ParkISwap o_stepReturn = arrRetValues[2]; } // }} "" // {{ 221 1 0 "fae9e68f_ea34_4f4d_bb6f62c288b1e7b4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_47ED933D92B34914984C5D98423B4C94 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 222 1 0 "974d3165_8b4f_469b_99a59625d159b561" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 223 1 0 "fae9e68f_ea34_4f4d_bb6f62c288b1e7b4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Park" "End" } // }} "" // {{{ 5 "MPH96_TipPickUp" "Begin" function MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void { // }} "" // {{ 5 "MPH96_TipPickUp" "InitLocals" o_stepReturn = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{ 180 1 0 "e2468a9b_8b3f_4977_bbdfbeb62da8eff3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_6640FC09A88C48daB6CB9FB2349BE364 ; err.Clear(); // }} "" // {{ 181 1 0 "b3913cc3_f1bb_4e9f_b3100faec37b186d" "ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}" { variable arrRetValues[]; arrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B("b3913cc3_f1bb_4e9f_b3100faec37b186d"); // Head96TipPickUp o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 182 1 0 "e2468a9b_8b3f_4977_bbdfbeb62da8eff3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_6640FC09A88C48daB6CB9FB2349BE364 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 183 1 0 "1df2d158_801c_4c9f_a8014869fa07863d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 184 1 0 "315f1e4b_8d32_430c_89413b8e4b5b135a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 185 1 0 "e2468a9b_8b3f_4977_bbdfbeb62da8eff3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPH96_TipPickUp" "End" } // }} "" // {{{ 5 "MPH96_Aspirate" "Begin" function MPH96_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable aspirateVolume, variable channelVariable, variable liquidClass, variable sequenceCounting, variable aspirateMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void { // }} "" private variable labwareID; private variable lbwContainersAreConnected; private variable positionID; // {{ 5 "MPH96_Aspirate" "InitLocals" o_stepReturn = 0; o_liquidLevel_mm = 0; o_liquidLevel_mL = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{{ 129 1 0 "0fc30c09_ddb7_4665_8739dbd8f0102fdc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = SeqGetLabwareId(aspirateSequence); // }} "" // {{{ 130 1 0 "14c1eb4e_ced0_45f2_a343bc0f3c668407" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = SeqGetPositionId(aspirateSequence); // }} "" // {{ 131 1 0 "7afd0547_a78c_4fb0_b040d35803532eb4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_00A0A59BF99B42a686A202BE72502D6C ; err.Clear(); // }} "" // {{ 132 1 0 "8d6fdce5_327c_491b_aebee60a715b6c6e" "ML_STAR:{827392A0-B7E8-4472-9ED3-B45B71B5D27A}" { variable arrRetValues[]; arrRetValues = ML_STAR._827392A0_B7E8_4472_9ED3_B45B71B5D27A("8d6fdce5_327c_491b_aebee60a715b6c6e"); // Head96Aspirate o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 133 1 0 "7afd0547_a78c_4fb0_b040d35803532eb4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_00A0A59BF99B42a686A202BE72502D6C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 134 1 0 "6c23fd1d_be57_4011_8fea4ea6459aeecf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 135 1 0 "ee52ace2_98fe_454f_841ae740168bebcd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 136 1 0 "7afd0547_a78c_4fb0_b040d35803532eb4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 137 1 0 "4efb91d8_0e10_400c_a4820b22b5ba22d5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 138 1 0 "8bf3cb1f_0b71_493d_bf300c05413fc543" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" MPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm); // }} "" // {{ 139 1 0 "4efb91d8_0e10_400c_a4820b22b5ba22d5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 140 1 0 "b82d3cc9_9e79_4547_800ffcbdb5ef0aa7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 141 1 0 "091a5303_35ee_4d82_a0b32d9ede26439d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 142 1 0 "64d5c65b_9fa5_44de_a21e4ee08c78310f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 143 1 0 "99cc0c51_635c_4f24_ac7aec94869f04a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_06FF5C7D72E044ac924A0658E57AC92A ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 145 1 0 "99cc0c51_635c_4f24_ac7aec94869f04a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_06FF5C7D72E044ac924A0658E57AC92A : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 146 1 0 "99cc0c51_635c_4f24_ac7aec94869f04a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 147 1 0 "64d5c65b_9fa5_44de_a21e4ee08c78310f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 148 1 0 "0b5e4cdb_1c92_4d18_a0bed95d854a0d94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected); // }} "" // {{ 149 1 0 "b82d3cc9_9e79_4547_800ffcbdb5ef0aa7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "MPH96_Aspirate" "End" } // }} "" // {{{ 5 "MPH_GetLastLLD_Level" "Begin" private function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void { // }} "" private variable flt_X_Coord; private variable flt_Y_Coord; private variable flt_Z_Coord; private variable flt_SubmergeDepthCORE; private variable str_FW_Digits; private variable flt_TipLength; private variable int_LLDheight; private variable flt_TipLength_corrected; private variable int_FW_Digits; private variable flt_StepSize; private variable int_Steps_mm; private variable str_ReturnValueH0RH; private variable flt_angle; private variable tipType; private variable dummy; // {{ 5 "MPH_GetLastLLD_Level" "InitLocals" o_flt_LastLiquidLevel = 0; // }} "" // {{ 187 1 0 "f7c5b642_e642_4bd2_b342e8a2202f94b2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_SubmergeDepthCORE = 8.0; // }} "" // {{ 188 1 0 "b15f54b8_160d_4d5a_9470d19afc4b0155" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 189 1 0 "de2e1cfc_3be8_4752_b20a1221fc802c26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::Initialize(ML_STAR, 1); // }} "" // {{{ 190 1 0 "bf16ce46_b00c_46c3_93046a4e730e9868" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SelectLiquidClass(i_liquidClass); // }} "" // {{{ 191 1 0 "7d094f81_a8b9_4eb1_90a841201d1a4cca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" tipType = LiquidClassLib::GetLiquidClassParameter(LiquidClassLib::LIQUIDCLASS_PARAMS::TipType); // }} "" // {{{ 192 1 0 "05a5dc8c_726f_477e_97f2839edafa8bdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::getTipTypeData(tipType, dummy, dummy, dummy, flt_TipLength); // }} "" // {{ 193 1 0 "b15f54b8_160d_4d5a_9470d19afc4b0155" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 194 1 0 "a97af8ec_9af3_46fa_a150d41888290f6f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_TipLength_corrected = flt_TipLength - flt_SubmergeDepthCORE; // }} "" // {{{ 195 1 0 "8fc17eb7_3fbb_4a8e_b537d43144e8598c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePosition(ML_STAR, i_labwareID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_angle); // }} "" // {{ 196 1 0 "31649b83_68f7_49a0_974f7efa6232c07d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ReturnValueH0RH = Translate(""); // }} "" // {{ 197 1 0 "72f92b7c_2537_40be_bc5fe85726a39b19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_StepSize = 0.005; // }} "" // {{ 198 1 0 "b5a3458f_9eea_4501_a6aa86c0556ad194" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("b5a3458f_9eea_4501_a6aa86c0556ad194"); // FirmwareCommand str_ReturnValueH0RH = arrRetValues[3]; } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 199 1 0 "73c2ff19_ed4c_4c45_a9c5b56a6e84b044" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("str_ReturnValueH0RH: "), str_ReturnValueH0RH); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 200 1 0 "f6fe1f5f_39ae_4b71_83f733a5cf490b66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FW_Digits = StrRight(str_ReturnValueH0RH, 6); // }} "" // {{{ 201 1 0 "9883fcc4_3dcd_4199_816696b3668f733f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_FW_Digits = StrIVal(str_FW_Digits); // }} "" // {{ 202 1 0 "b427e920_22bd_492e_8c900ff3a99a649c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Steps_mm = int_FW_Digits * flt_StepSize; // }} "" // {{ 203 1 0 "bbe179b4_5c85_4ece_ba3738d8817cdfc5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_LLDheight = int_Steps_mm - flt_Z_Coord; // }} "" // {{ 204 1 0 "502175ce_b71d_406e_b155fea6f39d0fd0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_LastLiquidLevel = int_LLDheight - flt_TipLength_corrected; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 205 1 0 "3bcc328b_1906_4590_94e64b4e80f03d3a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("o_flt_LastLiquidLevel: "), o_flt_LastLiquidLevel); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 5 "MPH_GetLastLLD_Level" "End" } // }} "" // {{{ 5 "MPH96_Dispense" "Begin" function MPH96_Dispense( device & ML_STAR, sequence & dispenseSequence, variable dispenseVolume, variable liquidClass, variable sequenceCounting, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable zMoveAfterStep, variable sideTouch, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void { // }} "" private variable labwareID; private variable lbwContainersAreConnected; private variable positionID; // {{ 5 "MPH96_Dispense" "InitLocals" o_stepReturn = 0; o_liquidLevel_mm = 0; o_liquidLevel_mL = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{{ 151 1 0 "031805d0_c2b0_4435_9b8f6fbb101dc62d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = SeqGetLabwareId(dispenseSequence); // }} "" // {{{ 152 1 0 "c249d641_ef0f_4423_bc2d48f01c114665" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = SeqGetPositionId(dispenseSequence); // }} "" // {{ 153 1 0 "f3fb329d_c76d_48c9_ac660dbbc90096f1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 ; err.Clear(); // }} "" // {{ 154 1 0 "438b3cb3_7f3e_4d38_b993becaf0c2d66b" "ML_STAR:{A48573A5-62ED-4951-9EF9-03207EFE34FB}" { variable arrRetValues[]; arrRetValues = ML_STAR._A48573A5_62ED_4951_9EF9_03207EFE34FB("438b3cb3_7f3e_4d38_b993becaf0c2d66b"); // Head96Dispense o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 155 1 0 "f3fb329d_c76d_48c9_ac660dbbc90096f1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 156 1 0 "714a2035_eb8c_4e86_85aca8d69086952e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 157 1 0 "bc1347df_5f38_41ae_be3c240228e5944c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 158 1 0 "f3fb329d_c76d_48c9_ac660dbbc90096f1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 159 1 0 "a141b7db_3cc2_4626_998f5229ca08b364" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 160 1 0 "911c2699_0e84_425f_9e9384c7b6c75351" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" MPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm); // }} "" // {{ 161 1 0 "a141b7db_3cc2_4626_998f5229ca08b364" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 162 1 0 "c4c1eadb_9d04_43d3_871c72d3479cad7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 163 1 0 "17abaeba_05ec_4e18_a3843b54b3bdf6f3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 164 1 0 "1bdc4019_272b_4e0e_8f4935bcd3a782ec" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 165 1 0 "751de83b_d4e0_4859_8b3da1eeaf94bd85" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8D5E8778E7DF4b8f80958A5C14C29872 ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 167 1 0 "751de83b_d4e0_4859_8b3da1eeaf94bd85" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8D5E8778E7DF4b8f80958A5C14C29872 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 168 1 0 "751de83b_d4e0_4859_8b3da1eeaf94bd85" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 169 1 0 "1bdc4019_272b_4e0e_8f4935bcd3a782ec" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 170 1 0 "c826eb96_3570_4883_a8298bc890043c3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected); // }} "" // {{ 171 1 0 "c4c1eadb_9d04_43d3_871c72d3479cad7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "MPH96_Dispense" "End" } // }} "" // {{{ 5 "MPH96_TipEject" "Begin" function MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void { // }} "" // {{ 5 "MPH96_TipEject" "InitLocals" o_stepReturn = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{ 173 1 0 "96bd335e_14f8_47e2_bc54b638fde21919" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C33A74C211664afd9B08BCD3DD5339FC ; err.Clear(); // }} "" // {{ 174 1 0 "a8f4b6bb_e103_433a_b1360393d37e32b3" "ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}" { variable arrRetValues[]; arrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C("a8f4b6bb_e103_433a_b1360393d37e32b3"); // Head96TipEject o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 175 1 0 "96bd335e_14f8_47e2_bc54b638fde21919" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C33A74C211664afd9B08BCD3DD5339FC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 176 1 0 "71d45982_a084_4aaa_a34c6558755061d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 177 1 0 "9e9d44f5_b614_4fb4_b6d39860c83d879d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 178 1 0 "96bd335e_14f8_47e2_bc54b638fde21919" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPH96_TipEject" "End" } // }} "" // {{{ 5 "Initialize" "Begin" function Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void { // }} "" // {{ 5 "Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 123 1 0 "9967a99d_7b6f_4194_8ba1f49c05de08c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ED69C1C4A5D948beA7B65C38D8B5B80A ; err.Clear(); // }} "" // {{ 124 1 0 "dc7838fc_172e_45b4_89099f664d6d452e" "ML_STAR:{1C0C0CB0-7C87-11D3-AD83-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1C0C0CB0_7C87_11D3_AD83_0004ACB1DCB2("dc7838fc_172e_45b4_89099f664d6d452e"); // Initialize o_stepReturn = arrRetValues[2]; } // }} "" // {{ 125 1 0 "9967a99d_7b6f_4194_8ba1f49c05de08c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ED69C1C4A5D948beA7B65C38D8B5B80A : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 126 1 0 "6bd66132_cab8_473c_8437aa033b84ff48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 127 1 0 "9967a99d_7b6f_4194_8ba1f49c05de08c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Initialize" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=cuevas_a$$valid=0$$time=2017-04-25 13:44$$checksum=1a243e1c$$length=087$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx8511.hsl ================================================ namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HslHamHeaterShakerLib.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } #include "STAR_OEM_Test.res" namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "SchedulingDev\\HSLAppsLib.hsl" } namespace _Method { #include "STAR_OEM_toolkit_pH.hs_" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Module.hsl" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Washer Module.hsl" } /* {{ 2 "LibraryInsertLine" "" */ // }} "" variable loopCounterMain; variable msg; object objJSONFromServer; variable commandFromServer; variable initializeAlways; variable o_stepReturn; object objJSONToServer; sequence seq; variable tipSequence; variable sequenceCounting; variable channelVariable; variable channelUse; variable labwarePositions; variable aspirateSequence; variable v; variable arrayOfVolumes[]; variable liquidClass; variable aspirateMode; variable capacitiveLLD; variable pressureLLD; variable liquidFollowing; variable submergeDepth; variable liquidHeight; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable airTransportRetractDist; variable touchOff; variable aspPosAboveTouch; variable o_liquidLevels_mm[]; variable o_liquidLevels_mL[]; variable o_stepReturn2; variable o_stepReturn3; variable dispenseMode; variable dispenseSequence; variable dispPositionAboveTouch; variable zMoveAfterStep; variable sideTouch; variable wasteSequence; variable useDefaultWaste; variable reducedPatternMode; variable aspirateVolume; variable o_stepReturn4; variable dispenseVolume; variable tipEjectToKnownPosition; variable carrierName; variable barcodeFileName; variable barcodeReadPositions; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable lidSequence; variable plateSequence; variable toolSequence; variable transportMode; variable widthBefore; variable gripHeight; variable gripWidth; variable gripSpeed; variable gripperToolChannel; variable checkPlate; variable zSpeed; variable gripForce; sequence lidSeq; sequence toolSeq; variable xAcceleration; variable platePressOnDistance; variable ejectToolWhenFinish; object objHttp; variable blnReturn; variable blnSuccess; variable usedNode; variable deviceNumber; variable action; variable sampleInterval; variable shakingToleranceRange; variable id; variable monitorResult; variable firmwareVersion; variable serialNumber; variable command; variable parameter; variable plateLock; variable shakingAccRamp; variable shakingDirection; variable simulate; variable startTimeout; variable toleranceRange; variable securityRange; variable intTrace; variable shakingSpeed; variable shakingTime; variable temperature; variable waitForTempReached; variable inverseGrip; variable liftUpHeight; variable retractDistance; variable tolerance; variable labwareOrientation; variable movementType; variable collisionControl; variable gripMode; variable showCollisionCheckDialog; //global device HxFan ("STAR_OEM_Test.lay", "HxFan", hslTrue); variable refillAfterEmpty; variable chamber1LiquidChange; variable chamber2WashLiquid; variable chamber1WashLiquid; variable chamber2LiquidChange; variable FirmwareCommand; variable FirmwareParameter; variable CommandListElement; variable CommandListLength; object FirmwareCmdDict; variable yDisplacement; variable zDisplacement; variable xDisplacement; variable yOrigin; variable xOrigin; variable zOrigin; variable ControllerID; variable SimulationMode; variable ErrorCode; variable DeviceID; variable TargetTemperature; variable StopAllDevices; variable TraceLevel; variable Comport; variable Simulate; variable ModuleName; variable Angle; variable inputSequence; variable barcode; variable seqFirstPosition; variable seqSecondPosition; global device ML_STAR ("STAR_OEM_Test.lay", "ML_STAR", hslTrue); variable ModuleID; variable probePattern; variable pH_probe_1; variable pH_probe_2; variable pH_probe_3; variable pH_probe_4; variable Variance; variable Timeout; variable CalibrationLevel; variable CalibrationValue; variable CalibrationTemperature; variable Precision; variable Temperature; variable ChargeCounter; variable ReplacementDate; variable BatteryCondition; variable ActualCharge; variable MeasurementCounter_Probe_1; variable MeasurementCounter_Probe_2; variable MeasurementCounter_Probe_3; variable MeasurementCounter_Probe_4; variable HardwareNumber; variable Revision; variable SerialNumber; variable PartNumber; variable Selector; variable VoltageData; variable Day; variable Year; variable Month; variable Charge; variable AutoCharge; variable AutoChargeLevel; variable Probe; variable Mode; variable ProbeNumber; variable pHHighValue; variable pHHighVoltage; variable pHLowValue; variable pHLowVoltage; variable CalibrationSlopeRatio; variable CalibrationOffset; variable CalibrationSlope; variable CycleNumber; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" STAR_OEM_TOOLKIT::_InitLibrary(); STAR_OEM_TOOLKIT_PH::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{{ 1 1 0 "e7768ad9_4016_4422_bd83f5785d03ceda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnReturn = HSLHttp::Initialize(objHttp); // }} "" // {{ 2 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnReturn != blnSuccess) { // }} "" // {{{ 3 1 0 "62c131b4_44b9_4249_8e0a3205a25b21b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); // }} "" // {{{ 4 1 0 "fb18125e_b294_4554_912c3d447526996e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 5 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 6 1 0 "ee92e29b_e94c_46cf_a67851f3be61c805" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Hi, Im a VENUS method.")); // }} "" // {{ 7 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; // }} "" // {{ 8 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "de417132_351a_4ad8_80c71b1863d4a870" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" commandFromServer = Translate(""); // }} "" // {{ 10 1 0 "d9c97239_3c9d_4992_8fb5820ae5721d90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate(""); // }} "" // {{ 11 1 0 "57da7835_7495_4b16_8b82897289efbd11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn2 = Translate(""); // }} "" // {{ 12 1 0 "cf024fcc_3594_4355_b33f4bd8c8bdfb4e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn3 = Translate(""); // }} "" // {{ 13 1 0 "9ed0b80d_8518_474f_a94d8f843a6158fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn4 = Translate(""); // }} "" // {{ 14 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 15 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 16 1 0 "0257e5d3_7b99_47be_a062950a2b200664" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" msg = waitForGUItoContinue(); // }} "" Trace("JSON received from Server:", msg); // {{{ 18 1 0 "36be63f7_a79c_44a4_b1dc636a536612bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONFromServer); // }} "" // {{{ 19 1 0 "5c2b861d_97f9_4e18_a5fce25e78026299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::ParseJson(objJSONFromServer, msg); // }} "" // {{{ 20 1 0 "562abca5_8891_402a_b8a7c5ba56301a86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); // }} "" // {{{ 21 1 0 "cb002e33_cc71_4a25_890fa8f9f5d982a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("id"), id); // }} "" // {{ 22 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 23 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 24 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "initialize") { // }} "" // {{{ 25 1 0 "773dbb38_0414_403d_b2ff24100c7cf1fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); // }} "" // {{{ 26 1 0 "97af1c08_2914_4f72_b27c685f11b30bb6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); // }} "" // {{{ 27 1 0 "b3ab11e2_0297_446f_9cf37ca7c0c9d19f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Init step return:"), o_stepReturn); // }} "" // {{{ 28 1 0 "57d4e0cd_327e_4cac_8e83a7da6222dda0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 29 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 30 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 31 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 32 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 33 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipPickUp") { // }} "" // {{{ 34 1 0 "53e1cfb5_1fde_491f_bfd878eceda16ba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 35 1 0 "f0e9e31f_d871_4632_bd466e43fc38c771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 36 1 0 "e6311b13_2132_40e0_aff0b5556205c32a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 37 1 0 "cb659ed1_5f0c_41e8_8a060ec0b650c589" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{ 38 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 39 1 0 "6699226b_6c7b_4b79_95b8017162b433b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 40 1 0 "bd13798f_62e7_4dd2_8e91769d48d10fc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 41 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 42 1 0 "ce13caa6_634b_4dec_8a6c3ea74b144e95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 43 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 44 1 0 "29f69958_d99b_455a_93c7b0480bfd1658" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn); // }} "" // {{{ 45 1 0 "732425fd_a199_4354_8479d821ee834e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 46 1 0 "22f00193_1056_456e_a515d156eee56e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 47 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 48 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 49 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 50 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelAspirate") { // }} "" // {{ 51 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 52 1 0 "55ee3109_036b_4acb_8a15175f3316656f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 53 1 0 "a5b3e5ac_4910_4a4a_8e20bdb7f61836e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 54 1 0 "ce04189a_96e4_4bdc_aedc8a68bf64647b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 55 1 0 "882daff3_cc25_4778_aec6a937fc87347c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 56 1 0 "7f7b9f83_5611_4a3b_b5c120689696addb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 57 1 0 "39e464b7_0def_403b_a02f5dd2a358dbd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 58 1 0 "2e2739aa_8eb6_44e0_b887ea00b04acac0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 59 1 0 "9408edd8_3cee_43e0_976b4a6fabf5f4ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 60 1 0 "a2848877_3518_4d1d_95f77c1f313003e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); // }} "" // {{{ 61 1 0 "4b5ce3d0_91f4_4c14_aaf1cad34e0caf60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" Trace("Bookstart"); // {{{ 63 1 0 "12892ce3_3bc6_4165_b3b6ae0eacad20e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" Trace("Bookend"); // {{{ 65 1 0 "15bd5af3_2da1_420b_beb398dc2347a0ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 66 1 0 "4fe61fb4_bb39_4728_96b8c6959f4943ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); // }} "" // {{{ 67 1 0 "ba68c240_2397_4872_949ee1ee984595c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 68 1 0 "baac19fc_9f21_4e8c_b833f2a1ba2433f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 69 1 0 "253130f8_f599_4ef4_9d5a15e2cb89d1eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 70 1 0 "51233931_483f_4deb_a8627b909d6c9116" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 71 1 0 "bf0c65ba_7847_4768_92ebbe8adc6568c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 72 1 0 "30a6715c_b6c6_4d86_b5c02f3da440e309" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 73 1 0 "6eb82b6e_8093_461e_afc712cab07398dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 74 1 0 "3f8b6af1_7872_4a20_92bf2c4507ea9f31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); // }} "" // {{{ 75 1 0 "7dd1b818_5a89_4b03_82734e6f4d7b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{ 76 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 77 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 78 1 0 "cb2b67f0_7384_4a41_831de652f92d4c85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 79 1 0 "29a868b4_7800_4747_b14eaf0f2c10ba40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 80 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 81 1 0 "08f63789_65f1_4e7d_996dc22e8f33d416" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 82 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 83 1 0 "8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 84 1 0 "7cb70e6b_15bb_4380_b62150df065d208f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 85 1 0 "4714958b_0632_4de2_983c7fe9de68df6c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 86 1 0 "bd40f564_16d7_4037_aef8eebfe28a4362" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 87 1 0 "18bf536c_98f4_4345_86a103db4a9b68a1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 88 1 0 "d60cd9aa_083b_4487_8d6218cee02fa4cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 89 1 0 "e86187c0_0d19_453e_be1c5a401d0d5d93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 90 1 0 "d66c2dae_4cc3_4a31_bafe46d1dd63e790" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 91 1 0 "d23f143d_290d_4d0f_b368241a6a9adaed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 92 1 0 "0428e844_3191_4cde_b7f3544f34c833f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 93 1 0 "a7ca006f_941c_4b31_9749313ad9b4e079" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 94 1 0 "8c97ba72_f880_4504_baee8b8db3d13310" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 95 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 96 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 97 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 98 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelDispense") { // }} "" // {{ 99 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 100 1 0 "909bc255_6ca1_4700_bc102ccb34ae5be4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 101 1 0 "fd48dd93_9f42_4df0_9f659e27a5552543" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 102 1 0 "3ff3f492_86a5_40af_a3deabccbab3898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 103 1 0 "3cbb883f_48ae_40fe_afe67da944df94b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 104 1 0 "ab1033bc_1216_450a_9fb60655a1f1a21a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 105 1 0 "0bc1541f_26d5_44d6_8db6ae336fec17bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 106 1 0 "8c10cc29_c05e_4cea_9ed559249651e805" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 107 1 0 "3e0373da_7c7c_46ab_9b77fba19915662e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 108 1 0 "b98fdc49_cdcb_4f3c_81df0b76eafa1411" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 109 1 0 "7458d32a_402a_4215_b52378c78468ec80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 110 1 0 "5e14f2ce_c932_474b_be03f3c043c700e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 111 1 0 "c2010d1d_5a78_4871_a835a6613a1237bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 112 1 0 "d4a6e6a3_0158_45f1_9c359d8e48e01bed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 113 1 0 "011e9828_5413_40c1_80d0c3bdde1c6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 114 1 0 "2d7a4942_b2ce_43a2_8decf49fa0c9576c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 115 1 0 "ad9f0bbf_e495_41c5_898a3be32bb16f2b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 116 1 0 "5c734886_aa50_424c_b89f6894bc37dd8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 117 1 0 "d1bc00cc_4286_4409_b1c49b6350e7e6ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 118 1 0 "b178ce99_db9e_4453_bed28d4ce0457bc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); // }} "" // {{{ 119 1 0 "1b38ad88_3c65_4e58_812f9ed32ce32485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{{ 120 1 0 "f34066f1_63f9_474f_8a9c41e56962dc74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 121 1 0 "6b94916e_355b_4ee9_8eb4f1b49c95fea4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 122 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 123 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 124 1 0 "e962dd26_3672_4418_bd3c40e9929929eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 125 1 0 "6257966a_6b39_41c8_a057a79b8e39cd4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 126 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 127 1 0 "3f230e40_8bd9_4235_b88cd0ca80799661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 128 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 129 1 0 "8d82ff40_d831_430b_97d97c01d2a4474e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 130 1 0 "ac0ad5a7_d00b_46fe_a18f94f8dab3863c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 131 1 0 "b7f86b6c_03a4_4e12_a05e5e8bdc958b75" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 132 1 0 "9bfa8704_2ae0_4a63_83d09fddbacfd336" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 133 1 0 "860b660a_6947_4c88_a2a039bf65040bf5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 134 1 0 "797f0eef_5bb2_4a2e_a178af74f4892bd7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 135 1 0 "2753c24e_c4dc_402d_866b6bc8691ecc1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 136 1 0 "1ac127fd_b830_496f_b4d4b9671137ebff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 137 1 0 "3ee5d751_d3a5_468a_b539c4f0ff22023e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 138 1 0 "b86d492c_446f_4921_97140cfd462ace87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 139 1 0 "e049946d_6322_4b39_9c46a2d0eb345528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 140 1 0 "531432f5_ef8a_416e_8be28a07ae9b0d25" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 141 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 142 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 143 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 144 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipEject") { // }} "" // {{{ 145 1 0 "69be671e_7cdd_48d3_af136435754c1d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 146 1 0 "f3444c0f_4863_4fdd_94a025b682d8a6d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 147 1 0 "12ad2f39_c160_4afc_9f6ffce7e3ddb433" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 148 1 0 "2883bb64_2fe3_47ca_996e11434afc57cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 149 1 0 "10c3b13e_7129_4cfd_b88b29d0bbc31a28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); // }} "" // {{ 150 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (useDefaultWaste == 0) { // }} "" // {{ 151 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 152 1 0 "655bc92f_08a8_4c16_a0276997aec081ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 153 1 0 "a3a0b5ef_85c0_4552_a28b3356d7886eb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 154 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 155 1 0 "efadb8c3_c431_4ed4_a739a951c05ee518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 156 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 157 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 158 1 0 "2dda50b6_7f82_4e8a_a1d203715119213a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 159 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 160 1 0 "7fa61e34_a1f2_4b99_8f6bed13c6ce120f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn); // }} "" // {{{ 161 1 0 "a7db5128_f8e4_4afe_81f46b2cc86e608d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject step return:"), o_stepReturn); // }} "" // {{{ 162 1 0 "683607f4_928f_4cea_b901fe3502404424" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 163 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 164 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 165 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 166 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 167 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 168 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipPickUp") { // }} "" // {{{ 169 1 0 "1f82c33f_a085_47cc_85dbbde3e42a53c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 170 1 0 "9f9fe665_47a2_4a12_961460021d1f09f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 171 1 0 "743960d2_9d0f_4ccf_848662247e3211c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 172 1 0 "b737602c_63e8_4c4c_b47f40cb815914ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); // }} "" // {{ 173 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 174 1 0 "00bd1831_c335_40f5_b706f0ffadbe2890" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 175 1 0 "1f16418c_8fa7_44a5_a6db75dd9a79ee84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 176 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 177 1 0 "b66db4eb_9e79_4c19_909fd8d14d37cba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 178 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 179 1 0 "f3e7cbf6_0242_4463_8d4ed0db4667f7db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2); // }} "" // {{{ 180 1 0 "b080a5c6_324c_4aae_b5899dede6d863f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 181 1 0 "aa5a9c4b_0377_46ce_9b46883db15cbd7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 182 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 183 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 184 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 185 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Aspirate") { // }} "" // {{ 186 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 187 1 0 "373f30c8_ec07_4298_94d6ac75358ab1ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 188 1 0 "ef3ae377_e985_4ef6_93b005aa91c9b2b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 189 1 0 "d8eea65a_6e59_4c32_a47bae09779f9528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 190 1 0 "8eb02312_a070_491c_9758b3cdbdee0cfc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); // }} "" // {{{ 191 1 0 "6eaf8bee_b53f_4f01_87c1380bc345e386" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 192 1 0 "d9923a2f_e7cf_4f3e_81746e378a20baab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 193 1 0 "2c411993_e3fc_4753_9a90308b226078a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 194 1 0 "5d900896_b2b9_442b_b24294b9bbfbdaad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 195 1 0 "21149e9e_21c9_4ddd_93e07b693e3ab3fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 196 1 0 "bcefef03_102b_4887_adad59c2fb7ad551" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 197 1 0 "9665b0a3_35e8_47e9_b14ac1a4818cfa6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 198 1 0 "ff93d28b_afe9_47e7_9b6eb50d6845384f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 199 1 0 "ef43b824_fd38_42d4_9e932904dbf14813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 200 1 0 "b0378457_e370_448b_bfd6955c05e57bcb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{ 201 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 202 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 203 1 0 "615bcff6_e9d5_4303_a5d5826b2e2548dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 204 1 0 "cf4ad428_945e_4921_9441ee34cf9c96bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 205 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 206 1 0 "86397ec2_2ee5_4ec1_8bec47d8e87584b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 207 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 208 1 0 "48f88263_72c1_4df2_865181cffed9feee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 209 1 0 "f1b764e8_e556_4d08_bb83bdc12dc64a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 210 1 0 "164c104a_cf5f_46de_b23a098a18b3fdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 211 1 0 "ee779f77_51a9_46d7_b58b7bcaf13519f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 212 1 0 "e874eb6d_1e97_4590_95d9b10cb059c935" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn4); // }} "" // {{{ 213 1 0 "0ca1df86_a344_45fd_b384e13ba44c5ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 214 1 0 "2497228e_672e_4c95_9f31679fe87bbe1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 215 1 0 "e4930eee_c625_4acb_a81c05e149a1a218" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 216 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 217 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 218 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 219 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Dispense") { // }} "" // {{ 220 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 221 1 0 "78cba921_2a37_4b4a_91ef7fbe81fcddd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 222 1 0 "b58b4cbd_16e9_4444_9037061e29bc5614" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 223 1 0 "0ab910ec_826d_4c84_bac7ed9564f3bdab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 224 1 0 "84d664b7_70d0_4136_bdfd4de2aa760ad8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); // }} "" // {{{ 225 1 0 "18becc6a_2df4_4281_8b16ade9038979f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 226 1 0 "68c565db_e5ed_44e8_b3846a1d98034e76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 227 1 0 "6a4221a8_9488_48f9_8381b1bc0f0c960d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 228 1 0 "45dcb271_e326_42fc_b8684816d3ffdc93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 229 1 0 "14552b13_e77b_4fb7_9020445ecc5ade21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 230 1 0 "91783f87_af6f_446e_a74fb1725f17d282" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 231 1 0 "e2e7f702_1710_49eb_9b1046dbf4f143e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 232 1 0 "1817aa70_86fa_4318_a8e46569701623e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 233 1 0 "50bd6734_10d5_4291_b40eb708539514fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 234 1 0 "ad5fbb01_d809_4b7d_b858ed597709f28f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 235 1 0 "09566247_6b2d_4c73_b43fe303a30f89c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 236 1 0 "3ead74f7_3b5c_4b21_84d2488c2eceab73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 237 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 238 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 239 1 0 "835f8470_7e8c_40ff_a48abcc85d6b778b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 240 1 0 "059394fc_e924_4d57_b1b85f79f9947fa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 241 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 242 1 0 "6c4be3a7_a450_459c_90545a208f9f459f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 243 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 244 1 0 "c164a94e_2926_462e_9487870d403fe8b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 245 1 0 "86c0fb85_8aaf_4bec_9f6f1f642206487f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 246 1 0 "77047add_8050_4522_ad477b97455a8327" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 247 1 0 "5b2c6f23_9a69_489d_b52179c78c03e48f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 248 1 0 "a9a9244b_829f_4c5b_9a64f1018b029453" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn4); // }} "" // {{{ 249 1 0 "781580a9_199e_4373_b48bb55a97f8a463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 250 1 0 "1867ae44_25f8_4926_ae081e490fd5aa0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 251 1 0 "dbb3b30c_b4a1_4cf6_a24b62b63f155369" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 252 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 253 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 254 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 255 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipEject") { // }} "" // {{{ 256 1 0 "7cf9db16_d78c_4aa0_825cc3c2c22f287c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 257 1 0 "ccca7a97_c22a_4f20_b2d9a60d67850eee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 258 1 0 "a319f75e_77eb_4845_856516ce060213f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 259 1 0 "d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); // }} "" // {{ 260 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipEjectToKnownPosition == 0) { // }} "" // {{ 261 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 262 1 0 "24eeb6dd_1e20_422c_a1a8199cbca73b33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 263 1 0 "5197334f_cde5_4d52_9c528a0c4f7401b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 264 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 265 1 0 "110b82e1_8a5b_48e4_a3adbab701cffc8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 266 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 267 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 268 1 0 "fa32bbf8_8345_4897_aaf09d112d374893" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 269 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 270 1 0 "ef087a4e_684e_4d98_87109abf154fbc85" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2); // }} "" // {{{ 271 1 0 "328216cf_22dd_47a1_9f1ba089b1ac7702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn); // }} "" // {{{ 272 1 0 "53265943_7975_4275_ad98df313054f97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2); // }} "" // {{{ 273 1 0 "c13d9773_7daf_4c3c_9064fdd4f7c7008f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 274 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 275 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 276 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 277 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 278 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "loadCarrier") { // }} "" // {{{ 279 1 0 "76d739d0_ff4a_490b_9c47f411d29ef7a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 280 1 0 "ca623aa7_ed48_45fa_9f4055fb8e08c3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); // }} "" // {{{ 281 1 0 "64a8e193_7e7e_412e_8a0657f0e832eaef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); // }} "" // {{{ 282 1 0 "39e6aaef_5cce_4915_b5b6ede214c7371e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs); // }} "" // {{{ 283 1 0 "1d4d284f_fd1e_4f8a_a2158846ad6a67f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Load carrier step return:"), o_stepReturn); // }} "" // {{{ 284 1 0 "358b7fc3_40a2_418b_9d61d94eef1556f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 285 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 286 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 287 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 288 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "unloadCarrier") { // }} "" // {{{ 289 1 0 "797d23a7_c62a_471a_a52b10fea8bcc154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 290 1 0 "f1c35790_adb7_49eb_a96864d8b1d66cea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn); // }} "" // {{{ 291 1 0 "6e6ded71_3f99_46c5_9362117beb502a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn); // }} "" // {{{ 292 1 0 "8713fee4_6b93_4296_a5396254fd404d52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 293 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 294 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 295 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 296 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 297 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripGet") { // }} "" // {{ 298 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 299 1 0 "c4847ae5_e161_4f23_aa432eda22de28bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 300 1 0 "022a5cdd_3f4f_4e18_927c174fc57a68a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 301 1 0 "3e462067_5eb3_49c3_b7bf6a27de9ce3bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 302 1 0 "f7004881_3f0d_4621_a88d55dec8fc0d30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 303 1 0 "262b36ba_6d86_4009_bdc9a3881db7074e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 304 1 0 "be44b37f_7cec_4f69_81c223f2c30b120b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 305 1 0 "3dea3158_65f8_44bc_8d06a31ce3458dab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); // }} "" // {{{ 306 1 0 "308b2aa2_5970_4692_858049c6559d6ad0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 307 1 0 "756d0f81_3645_4a49_a0c2259581e11498" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 308 1 0 "cdbf11ba_b1f8_4016_811240a02705f1fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{{ 309 1 0 "625df597_c6c8_4e4a_b956e9580bfbc568" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); // }} "" // {{{ 310 1 0 "3576d134_8507_4e47_9c2bcc3dce8c026d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 311 1 0 "5b9c06ad_9081_4b6b_97e50cc87623b888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 312 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 313 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 314 1 0 "d1f3c2ac_9c68_4200_a3506bbbed8e42a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 315 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 316 1 0 "f1d1c43b_a9dd_4573_a69dd7c0e79eea40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 317 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 318 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 319 1 0 "4d304110_107e_412e_909bb84008a244de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 320 1 0 "8f8b1ba1_af12_4cdd_acf2096420ede259" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{ 321 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 322 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 323 1 0 "72e31f7d_c091_4525_a5cf7001754b199d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 324 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 325 1 0 "47dfcbb5_d784_48bb_b36b97509434a3a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 326 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 327 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 328 1 0 "e6c53925_446e_468e_b0e0654b4b9d9a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 329 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 330 1 0 "c0cbb194_1b8b_4fe0_a0f706e03eaa0748" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 331 1 0 "46703217_a28e_42ce_b13c11d73ba34bfa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn); // }} "" // {{{ 332 1 0 "189164cc_2681_492f_83f072fb537648b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn); // }} "" // {{{ 333 1 0 "c8d6960a_f416_47b1_a29e2752973c0ec9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 334 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 335 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 336 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 337 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripMove") { // }} "" // {{ 338 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 339 1 0 "5755c338_faa3_4f0a_9acd4cd01a912862" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 340 1 0 "2849c819_a3dc_4328_8484ccc4785993d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{ 341 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 342 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 343 1 0 "e038f780_938f_4867_98f769488ca44b04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 344 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 345 1 0 "27439ab7_df5a_4e1b_99b64e6c9fd0d9f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{{ 346 1 0 "3d8767e5_5f31_4ce5_91a11e28045ec87a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 347 1 0 "e9e0b38e_13aa_40f9_8e470eb1de09eb19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("wrong"), Translate("nowwrongere")); // }} "" // {{ 348 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 349 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 350 1 0 "e2da0756_7cea_44e7_963442343f3c0732" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 351 1 0 "ee8b8050_164a_4de8_b6ce02120236efbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 352 1 0 "be0898fe_cdb8_4ac3_a9e991e26bdb6658" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here"), Translate("now here")); // }} "" // {{ 353 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 354 1 0 "90f602a1_fdc5_48fd_801269ecd2c3f9bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn); // }} "" // {{{ 355 1 0 "dc418b75_2d70_4034_84a767fba752b262" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn); // }} "" // {{{ 356 1 0 "ae4414d3_a939_4fdb_a0ed06f1be1506e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here here"), Translate("nohhere")); // }} "" // {{{ 357 1 0 "6379549c_caf9_409f_b293abf77f1dcfbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 358 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 359 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 360 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 361 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripPlace") { // }} "" // {{ 362 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 363 1 0 "6f38d60b_6dc5_4159_ba30360f264222da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 364 1 0 "b6ef73cf_c89c_41cc_a3b72dc5aaf70f90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 365 1 0 "c7e5f5bd_edcc_4000_9be3db81af0c79fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 366 1 0 "91ff4c39_6a86_4eda_998a5461ef6c3cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 367 1 0 "341a6f8e_b4c8_4966_b9520322d1bc2e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 368 1 0 "32792c80_3b36_4a25_8fff6b99bfcf1919" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); // }} "" // {{{ 369 1 0 "b1e5d86e_c659_4d33_9e0f83fdb20b2cb5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 370 1 0 "76b26748_4e74_45f7_85a7dc102b5fd7b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); // }} "" // {{{ 371 1 0 "ee221e8a_a662_49d8_be2ef0ed631d9527" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 372 1 0 "cbefd54c_5f0a_4a16_a0199198529b71fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 373 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 374 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 375 1 0 "ac4e7090_c3c7_4707_8d98dc55262c294b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 376 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 377 1 0 "eb5776ad_c858_4ee8_ba31f47af19e76af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 378 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 379 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 380 1 0 "1f3eb006_1b10_427e_99d0b530f1afc2ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 381 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 382 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 383 1 0 "a04c5993_bf3e_46c7_92f24c8236636b00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 384 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 385 1 0 "2455f68c_be4e_4a21_9e9e78f78f6e8e3c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 386 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 387 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 388 1 0 "ad5d98b0_9e3d_4275_90ceef06ceca045d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 389 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 390 1 0 "3321537f_63fb_48a4_90e40a2fee1cc432" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 391 1 0 "8c7e60df_f040_45c6_a939d99bcd0ac23c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn); // }} "" // {{{ 392 1 0 "24e589a9_98d7_429d_90c8afe203e96ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn); // }} "" // {{{ 393 1 0 "9d94d038_d071_4339_aaace5a2e455b240" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 394 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 395 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 396 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 397 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 398 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 399 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGet") { // }} "" // {{ 400 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 401 1 0 "4a585a30_3a23_44cc_a0948963de716cba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 402 1 0 "da3a318b_1208_4329_be1faae95ecc2e03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 403 1 0 "1f51589f_347c_497b_a7338461d92076d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 404 1 0 "622e6765_4ee3_4df5_917ca140f8b7981b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 405 1 0 "9826612b_e564_4231_8f83fdfcbd374bdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 406 1 0 "fdb52557_ae6c_42b3_925073ab7ae7a5ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 407 1 0 "171639e0_98ad_4857_a5ac346039499a33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 408 1 0 "0d4077af_b1dc_4dea_a23a163c57d96248" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 409 1 0 "60732b74_8870_48e2_be03564159cf35b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("inverseGrip"), inverseGrip); // }} "" // {{{ 410 1 0 "ffa21840_da03_4682_b62a6910caf63f45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 411 1 0 "0af9b15f_4e1b_4353_a6261def96fea256" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{{ 412 1 0 "c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 413 1 0 "74d93b97_5d7f_4593_9aeb9d83d5466e6f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{{ 414 1 0 "28d636c0_47c0_4fac_8a7b67124fd8b9f5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 415 1 0 "6f62025f_9dde_4ae6_a6b6b69efed6e381" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("tolerance"), tolerance); // }} "" // {{{ 416 1 0 "f3d51abd_651e_4b15_93eb0cea0c0384be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 417 1 0 "1b72eb1e_c220_42e0_9a34675ddc971fe7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{ 418 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 419 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 420 1 0 "fd3fbb06_b08e_4790_8e3b785ca1f8ed4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 421 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 422 1 0 "87331d5f_01ff_43a8_a0a06487f28bb2b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 423 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 424 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 425 1 0 "5f12c00c_48c1_4e2f_a24b4ba435343a8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 426 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 427 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 428 1 0 "d3e5718a_eb78_4c1f_a6467f61ccbe82df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 429 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 430 1 0 "8ebcf09f_a943_4769_b3c659e368019a32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, lidSeq); // }} "" // {{ 431 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 432 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 433 1 0 "8ce5efe3_4525_4c77_bb64f9d8dcfb6a62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 434 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 435 1 0 "8ac111e1_df50_4fcb_b465e737713459d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn); // }} "" // {{{ 436 1 0 "d9104246_d843_4a6d_85a64aa07d019020" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Get - step return :"), o_stepReturn); // }} "" // {{{ 437 1 0 "7831c2d8_4b59_455a_a0dc5cae20f325a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 438 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 439 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 440 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 441 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapMove") { // }} "" // {{ 442 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 443 1 0 "3c315cea_4ff8_4efa_8e4a5cc86a9d84d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 444 1 0 "4e2cf15d_267b_47e0_895c36b714787e13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 445 1 0 "24d68fc9_cd59_471b_9c663c4121d1a931" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{ 446 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 447 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 448 1 0 "d372f898_6d32_4d80_ab4d58340d18681d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 449 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 450 1 0 "9e573132_bd29_4d08_a1784d0e26c48700" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 451 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 452 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 453 1 0 "48db1de6_2a87_4224_b1f13fa2a75b490a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 454 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 455 1 0 "1e8e9562_41c0_4df5_9de945c44d1e8d61" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn); // }} "" // {{{ 456 1 0 "a5de7c97_d49c_4f04_b1414f1aaace7f84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Move - step return :"), o_stepReturn); // }} "" // {{{ 457 1 0 "6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 458 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 459 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 460 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 461 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPlace") { // }} "" // {{ 462 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 463 1 0 "18e9697d_0efb_4840_94a65e2a82b4ca69" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 464 1 0 "b0c35970_122b_4119_92c3801f4b8e980b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 465 1 0 "6ed697af_a110_4104_941633e154ff0071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 466 1 0 "fec1982e_3636_412d_af2eda243438f7ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 467 1 0 "21de27ac_9dc3_415b_b1d1e49e80c53591" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 468 1 0 "652aeaa7_9a2f_4c11_8bc1fc58a97ffed7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 469 1 0 "e88a5df4_d9ad_4231_89a5a03f88d0ce77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 470 1 0 "8c5aee51_3156_4fcc_b1b167552b73476f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 471 1 0 "8c257b39_8c0b_410d_a4a4e38df904008c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 472 1 0 "91e9f4c6_b7fe_4b15_83c830df3385398a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{ 473 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 474 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 475 1 0 "226bb6d1_37a1_4076_9d96fb9df69c6068" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 476 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 477 1 0 "ec2fd48b_eab9_491e_867c0fc335eea81c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 478 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 479 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 480 1 0 "e590d9b6_f690_48db_b0109a10c228d5ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 481 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 482 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 483 1 0 "82559320_1e13_40c9_b283fdfa804df6a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 484 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 485 1 0 "420daa28_bf45_407a_bd576559af75c5d0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 486 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 487 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 488 1 0 "3ed6b704_3649_4c7d_8e7d30bdb038feab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 489 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 490 1 0 "41a130e8_a745_4a20_b124272093bf38e7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn); // }} "" // {{{ 491 1 0 "b4bdf08c_e218_4bec_98c0f41e6ec3a218" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Place - step return :"), o_stepReturn); // }} "" // {{{ 492 1 0 "346b983b_d261_4447_a7cebf782db4b4d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 493 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 494 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 495 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 496 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPark") { // }} "" // {{ 497 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 498 1 0 "73602d5e_7f8d_45dc_9c1f21d41c39d0bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("showCollisionCheckDialog"), showCollisionCheckDialog); // }} "" // {{ 499 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 500 1 0 "acf5767a_7e39_4072_8e062928938984cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{{ 501 1 0 "96b1bdf6_a3f3_4530_844fc77cbf7fb944" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 502 1 0 "d03fdac4_224f_4174_924fb518a623bf65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 503 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 504 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 505 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 506 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGetFirst") { // }} "" // {{ 507 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 508 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 509 1 0 "5f9f4b8d_3b3a_48ee_89ef334a70dcb72e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{ 510 1 0 "65648900_32b3_4035_9eb5916a3314f7e9" "ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}" { variable arrRetValues[]; arrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40("65648900_32b3_4035_9eb5916a3314f7e9"); // GetFirstPlatePosition } // }} "" // {{{ 511 1 0 "63380bb7_5afe_4d65_9dc5cdf334590b4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 512 1 0 "cdb18c48_14d5_430d_9f7202f782e069da" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 513 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 514 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 515 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 516 1 0 "bd4869b9_868e_4752_b0442af8ce334f90" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 517 1 0 "f85c89d5_d370_4d24_b13fe2cee71ee262" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "FirmwareCommand") { // }} "" // {{ 518 1 0 "4d6ccadc_66fe_48ca_913a7e0defd3a766" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 519 1 0 "e1385a03_1302_4ae1_9faaea69422d67f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate("FirmwareCommandList")); // }} "" // {{ 520 1 0 "6fa9115c_4e6b_4fcf_82fc2509f332fbca" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(CommandListElement = 0; CommandListElement < CommandListLength;) { CommandListElement = CommandListElement + 1; // }} "" // {{{ 521 1 0 "5af0317c_390a_4121_92fc6695bd45edd3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate("FirmwareCommandList"), CommandListElement, FirmwareCmdDict); // }} "" // {{{ 522 1 0 "8c9a281c_debc_4f33_9bd2cef6eedde57e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareCommand"), FirmwareCommand); // }} "" // {{{ 523 1 0 "3d50574c_65df_46db_976821037648878c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareParameter"), FirmwareParameter); // }} "" // {{{ 524 1 0 "642f5973_af08_450b_878d55fa1dc15b1c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn); // }} "" // {{{ 525 1 0 "c1b028b1_70dd_4627_a467661067398a2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 526 1 0 "f0c6a22f_59e2_41c2_954cb5b06a43aa42" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 527 1 0 "6fa9115c_4e6b_4fcf_82fc2509f332fbca" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 528 1 0 "4d6ccadc_66fe_48ca_913a7e0defd3a766" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 529 1 0 "f85c89d5_d370_4d24_b13fe2cee71ee262" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 530 1 0 "bd4869b9_868e_4752_b0442af8ce334f90" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 531 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 532 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Initialize") { // }} "" // {{ 533 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 534 1 0 "efe73491_e5b4_499e_9b3f298c8b7a6398" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 535 1 0 "5c0fe710_4afe_4b11_bf186cfe8dc87978" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{ 536 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 537 1 0 "110af9db_52cf_4a40_94724a7476c48d86" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn); // }} "" // {{{ 538 1 0 "af9bf513_7c00_47bf_aee50c7cdb333b5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Initialize: "), o_stepReturn); // }} "" // {{{ 539 1 0 "cf0a8758_8a16_429a_97f320a142945224" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 540 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 541 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StartTempControl") { // }} "" // {{ 542 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 543 1 0 "de87c5cd_92f6_45a8_9ebd6fe71ac65dbc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 544 1 0 "26949b4a_2c44_4548_8de048c4f48bd98d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 545 1 0 "8ae03ef4_8584_4957_a32601dc8599dadf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn); // }} "" // {{{ 546 1 0 "934ba752_5ec3_489b_ae5a40dd1ea20440" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Start Temperature Control:"), o_stepReturn); // }} "" // {{{ 547 1 0 "a3528747_6990_4387_8839b01b71c3b754" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 548 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 549 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 550 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_SetTarget") { // }} "" // {{ 551 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 552 1 0 "55e81697_10a3_42fb_8777236a132ff0b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 553 1 0 "0177c1a2_7380_4683_94ff93e2ed1299b2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 554 1 0 "15559e31_3f7a_4336_9cabca6758b7c253" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("TargetTemperature"), TargetTemperature); // }} "" // {{ 555 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 556 1 0 "0dcffa9d_ea82_418b_be95240c1bfd0d77" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn); // }} "" // {{{ 557 1 0 "e9b0b663_7dd3_4e55_b206572d2c8a92c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Set Target:"), o_stepReturn); // }} "" // {{{ 558 1 0 "08ecb91c_e9c8_4c61_aca2c1f89fd97bab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 559 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 560 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StopTemperatureControl") { // }} "" // {{ 561 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 562 1 0 "b67518d4_e443_4a8f_947e8c457680c63e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 563 1 0 "045fda52_2303_4244_833066fb0005c21b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{ 564 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 565 1 0 "1c8947fe_b7a1_455a_94e7672ad3593b08" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn); // }} "" // {{{ 566 1 0 "285287f8_a3f9_43f0_9799c3ad98e59b9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco Stop Temperature Control:"), o_stepReturn); // }} "" // {{{ 567 1 0 "88d1a80e_0aa9_4314_ba83bc772f71a589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 568 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 569 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Terminate") { // }} "" // {{ 570 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 571 1 0 "c963c353_41bc_4f4a_b74a666b28831950" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("StopAllDevices"), StopAllDevices); // }} "" // {{ 572 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 573 1 0 "ea2ceb94_04fa_4204_96db2caf6871231f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn); // }} "" // {{{ 574 1 0 "cd495cf5_43ff_4b30_b0baa1f2cd96cf0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Terminate:"), o_stepReturn); // }} "" // {{{ 575 1 0 "bcce43cd_2b64_4caf_89bef8978a011dc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 576 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 577 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 578 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 579 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_Initialize") { // }} "" // {{ 580 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 581 1 0 "d824843f_bf44_4e8b_bb434b50a8b65716" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 582 1 0 "45b9f513_7eaf_4e63_ae92391c28cf15b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 583 1 0 "7f058eec_3092_45ce_862c43a3e0853c7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 584 1 0 "56a4490f_902b_4043_8172466a64e332bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Simulate"), Simulate); // }} "" // {{ 585 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 586 1 0 "c44a492c_8123_465b_acd4ff374583777d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn); // }} "" // {{{ 587 1 0 "a62df2e9_44bb_4099_a4d0597fbf0705de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Initialize:"), o_stepReturn); // }} "" // {{{ 588 1 0 "de7bfb5a_b1fa_42ee_b461782a3c381af4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 589 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 590 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_MoveToPosition") { // }} "" // {{ 591 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 592 1 0 "3092ee64_df80_4e56_b3cdffc0827e3c2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 593 1 0 "4284a9cf_3ea6_42f5_ae1f62d82cd11ebe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Angle"), Angle); // }} "" // {{ 594 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 595 1 0 "5b44092b_0faa_47ae_8005717c87a0f334" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn); // }} "" // {{{ 596 1 0 "4d912417_89ed_44f2_941bfb44efed0e2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Move to Position:"), o_stepReturn); // }} "" // {{{ 597 1 0 "0540bb67_399d_468d_853dd6ca4bb1c285" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 598 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 599 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 600 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 601 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "moveSequence") { // }} "" // {{{ 602 1 0 "6e83eea3_8863_4ca0_9ff603380f0dc4d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("inputSequence"), inputSequence); // }} "" // {{{ 603 1 0 "6b8903c6_6977_458a_8409f93724089454" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 604 1 0 "77d9a84d_5987_4b3c_a76757ce15a19302" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 605 1 0 "13c73535_4a98_49e2_ba1a02c30f02035b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 606 1 0 "a33ebddb_88d8_4440_9a78132ed62d97f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, inputSequence, seq); // }} "" // {{{ 607 1 0 "1dcc4914_aa2f_439e_8a2f431687c33852" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqFirstPosition = SeqGetPositionId(seq); // }} "" // {{{ 608 1 0 "01f7bf35_3538_441d_98904fa827b05e68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 609 1 0 "a37851fe_b9d0_42fa_9ccca7dd7b352a9c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{{ 610 1 0 "fe9d84b8_86ec_4552_b187147351886cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqSecondPosition = SeqGetPositionId(seq); // }} "" // {{{ 611 1 0 "5fa8b88a_cf88_49e1_8cb574503dc60e56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(seqFirstPosition, seqSecondPosition); // }} "" // {{{ 612 1 0 "e590c4e1_91dd_41c0_82a254d4134fb734" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("First check"), Translate("Second check")); // }} "" // {{{ 613 1 0 "2127d6de_e8bd_455a_88ad20e73b767061" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 614 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 615 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 616 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 617 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 618 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_measure") { // }} "" // {{{ 619 1 0 "7c314622_d15c_42aa_a88b3d71caa33d0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 620 1 0 "9f15b042_95cd_4241_9b6262d3a4979ca7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 621 1 0 "34064a8d_5567_4fe5_b4349d0d061b9a1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 622 1 0 "0e34e118_df68_49fa_b3b9228d63deb6d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 623 1 0 "025eece8_72cd_4190_a092d806fbab65a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 624 1 0 "269c134a_bc59_4578_8da8bb7559f234a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 625 1 0 "36ec28c1_360b_46e9_9243c01dbd3874e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 626 1 0 "58445956_3204_41a3_a7acb03aaf25ccd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 627 1 0 "465c2002_18cb_4ff2_9df9e423dbc6837c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 628 1 0 "40682224_6d73_4a7c_a2e33641f1768d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 629 1 0 "e43a57a6_d83b_41d1_adf33f8f77ca7bc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 630 1 0 "12a6bd74_f75b_44d1_b6f7c26d279d9610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 631 1 0 "71b8f8bc_65c1_4e97_ab6eae03040f51dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 632 1 0 "a8ca8abd_aa7a_412c_be527eb4e81efcb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 633 1 0 "a8647b92_b569_4a75_99a5333c438b3a23" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 634 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 635 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 636 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 637 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate_Dyn") { // }} "" // {{{ 638 1 0 "de6a4eb0_04e1_47fc_86e27009d71152cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 639 1 0 "5f551457_7af9_4567_bceacdf0018c9c38" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 640 1 0 "60ee9fa5_c549_43a9_bbccdb0b14819583" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 641 1 0 "2211f515_9e69_4a1c_9603becd6fd866cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 642 1 0 "8449e1f4_6561_4b51_b91aa14423565eb2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 643 1 0 "4429d4bb_e2fb_451f_8558de74111dbe3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Variance"), Variance); // }} "" // {{{ 644 1 0 "a918fadc_db95_4e4b_9c445a903a59f17a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 645 1 0 "7611bb65_5e77_408e_98384f0fec68e958" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 646 1 0 "74418f44_640a_4b4b_88234a74841f1dbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate Dynamically"), o_stepReturn); // }} "" // {{{ 647 1 0 "13218e03_9ac9_44ed_8af864397e865cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 648 1 0 "6257eb41_ce75_45b1_bea89bce20631222" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 649 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 650 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 651 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 652 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate") { // }} "" // {{{ 653 1 0 "c7a809a1_1dc8_47c2_a8006c785355c50e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 654 1 0 "27f7a889_0250_42a5_87699d0b0d52d36b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 655 1 0 "b624fe53_a0c2_44e7_92eb12cc744fa799" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 656 1 0 "9f642188_0286_4e80_81cb485423a155c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 657 1 0 "c7530a85_7f29_4069_9a8e94318ffec0d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 658 1 0 "849206a3_ea5c_4440_a08cdbcb81354e94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 659 1 0 "9f9ab695_0d32_4bf4_bf5a4b0207a2c780" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 660 1 0 "c1db8c11_4c25_4c9c_b424e06999583f09" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 661 1 0 "29e43762_b009_40ad_b93a5ac2372cca00" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 662 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 663 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 664 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 665 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Enable_Extended_Log") { // }} "" // {{{ 666 1 0 "1791ad6e_39b2_4442_8b4470d0fc5497fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn); // }} "" // {{{ 667 1 0 "b22a7836_ed52_4e9d_9e5df5babf8fa142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 668 1 0 "d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 669 1 0 "8d68d8f1_5b56_488b_a0676b4b50a35221" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 670 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 671 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 672 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 673 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Get_Last_Error") { // }} "" // {{{ 674 1 0 "11bf85a6_3df2_4245_839282a900f3db71" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 675 1 0 "2c0b2633_5d81_41a1_aa90c51eb8d9d23d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn); // }} "" // {{{ 676 1 0 "4d60f4e2_175b_4a4b_9b0bfb0f63211da0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Get Last Error"), o_stepReturn); // }} "" // {{{ 677 1 0 "76df37d9_5928_4269_937630b417ad9a11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 678 1 0 "a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 679 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 680 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 681 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 682 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Initialize") { // }} "" // {{{ 683 1 0 "a37d4042_a872_4da0_bf60a51312d5cc22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 684 1 0 "77530965_cb1f_4563_a1d848bb4faa3bb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 685 1 0 "295c3bab_f7f4_47d0_8075cf658ee0436f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn); // }} "" // {{{ 686 1 0 "69f13066_cc39_48aa_85b093e1bc056907" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrIStr(o_stepReturn2); // }} "" // {{{ 687 1 0 "3a9d7ad8_b8d0_45ee_9004e77ed5fbe471" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 688 1 0 "178d10c9_fe18_479a_b3e7922f87282612" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 689 1 0 "66935de2_85a3_4ed0_95cddf772b15fb48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 690 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 691 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 692 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 693 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Measure_Dynamically") { // }} "" // {{{ 694 1 0 "69eede79_0b96_4634_a4ed7995201d9b7d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 695 1 0 "6a018697_b8f4_4088_b8c650a2f028d197" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Precision"), Precision); // }} "" // {{{ 696 1 0 "dfbe88b8_1dda_42ac_8175799123584051" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 697 1 0 "3ef27a25_aec7_4d5b_beb743b713c7526e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 698 1 0 "74a87116_8260_466d_a78e98fe0544a891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 699 1 0 "425d37a5_2d55_4b09_a607303c754935db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure_Dynamically(ModuleID, Temperature, Precision, Timeout, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 700 1 0 "0df3fc00_0550_45fa_b224d60b9bcd06c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 701 1 0 "26992ae0_59eb_4678_ae304b460a7034db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 702 1 0 "3beda7c9_5769_4578_b31431d2bab6d131" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 703 1 0 "141952da_a201_4e85_9e446006849a95bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 704 1 0 "f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 705 1 0 "5487a4f7_a9f8_448e_98b2cb671cb9c069" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 706 1 0 "c8e7c221_d1e4_4818_b3e077f9aeb6a0a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 707 1 0 "611376c4_8c68_46f2_8947cec12bb313f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 708 1 0 "e113c0e5_7ab9_4244_86b73e7f24d2bfc8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 709 1 0 "6286c2d7_a138_4844_bc77fd8a40a6a486" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 710 1 0 "39fd3518_8a14_43a1_8d41240f577c94eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 711 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 712 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 713 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 714 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Battery") { // }} "" // {{{ 715 1 0 "c83f58ac_8db7_4477_bed8e57c9c784b8a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 716 1 0 "4b343bdb_fe40_4daa_8382b1265575e03a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn); // }} "" // {{{ 717 1 0 "98f43381_9679_4d9f_b3d1238ed4c1d0c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 718 1 0 "b95371f0_7532_4426_b980d9824bf1d2b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ChargeCounter = StrIStr(ChargeCounter); // }} "" // {{{ 719 1 0 "15324eca_50a4_4530_be7f08cdef0e6514" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BatteryCondition = StrIStr(BatteryCondition); // }} "" // {{{ 720 1 0 "e694349e_13ad_46c1_b18f5eb4688f510e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ActualCharge = StrIStr(ActualCharge); // }} "" // {{{ 721 1 0 "279c0c8e_1d53_437f_ac5e74b0ccffc7a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 722 1 0 "92db84c4_89c2_4902_819012506538681c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate("0"), Translate("0"), Translate("0"), Translate("0"), id); // }} "" // {{ 723 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 724 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 725 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 726 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Calibration") { // }} "" // {{{ 727 1 0 "250cbb57_43e2_4ca3_8ac97a4f8a848ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 728 1 0 "e2f361b4_fb8d_4bf8_b53c05720323632b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ProbeNumber"), ProbeNumber); // }} "" // {{{ 729 1 0 "6e7357dd_030a_4f9d_b5cda736b409bbee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn); // }} "" // {{{ 730 1 0 "aa859c68_b2ab_4304_9501a2d752587df6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowValue = StrFStr(pHLowValue); // }} "" // {{{ 731 1 0 "7331e4fa_3e06_499a_84eed922b712aca5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowVoltage = StrFStr(pHLowVoltage); // }} "" // {{{ 732 1 0 "3c2e720a_1c6e_4f09_afe077215aa438e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighValue = StrFStr(pHHighValue); // }} "" // {{{ 733 1 0 "a9363a15_98fa_4a49_8451b25c27edea3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighVoltage = StrFStr(pHHighVoltage); // }} "" // {{{ 734 1 0 "73007841_7490_489f_9c595a8e085e3a59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationTemperature = StrFStr(CalibrationTemperature); // }} "" // {{{ 735 1 0 "49c841c4_b5cf_4ac7_9c2e87a2dc939210" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationOffset = StrFStr(CalibrationOffset); // }} "" // {{{ 736 1 0 "d3535c95_47a6_46a6_80f73d15c4582508" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlope = StrFStr(CalibrationSlope); // }} "" // {{{ 737 1 0 "a273e170_1488_4e16_884ae09c3a26d828" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio); // }} "" // {{{ 738 1 0 "4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 739 1 0 "9ae40f13_d6cb_4a4e_9dc995de1da2d637" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Request Calibration Values"), o_stepReturn); // }} "" // {{{ 740 1 0 "5aca9095_546e_4df5_b24364da04e44fe5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id); // }} "" // {{ 741 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 742 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 743 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 744 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Probe_Data") { // }} "" // {{{ 745 1 0 "04b155be_097f_4f2d_add1392fbf78b5f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 746 1 0 "c40a59cd_e266_4cc3_aa3dd3d526502930" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn); // }} "" // {{{ 747 1 0 "306c68bb_ffd7_4233_b7f0c2c67678dfdf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1); // }} "" // {{{ 748 1 0 "bbd1faef_5b8f_41ba_bf74a019b05da039" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2); // }} "" // {{{ 749 1 0 "cb244d85_a14b_4bcb_ab81c5cdc38c6552" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3); // }} "" // {{{ 750 1 0 "5476cf0c_49cc_4602_aec72872116d2e6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4); // }} "" // {{{ 751 1 0 "6883841a_44f5_417f_8574566ed15ae444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), o_stepReturn); // }} "" // {{{ 752 1 0 "fefec950_2bfa_429e_bdf791dc40dd0495" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 753 1 0 "0f6be956_31e3_4d1e_b232c4dc908ea6f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 754 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 755 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 756 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 757 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Technical_Data") { // }} "" // {{{ 758 1 0 "3c80e1e2_a904_42ac_a3ddd5df5ca3a196" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 759 1 0 "8b2b24be_b84b_41b8_bd0f088f32554cb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 760 1 0 "552e7bb6_cbdf_49ec_86ac28b54cae7f58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 761 1 0 "1634fedb_a7e1_4130_ac1fb8d55f47b9e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HardwareNumber = StrIStr(HardwareNumber); // }} "" // {{{ 762 1 0 "2cfb8725_b283_48b0_906a9741fe336744" "{C1F3C015-47B3-4514-9407-AC2E65043419}" PartNumber = StrIStr(PartNumber); // }} "" // {{{ 763 1 0 "7b9a6dfa_9df8_40a8_9c0c39981dcf97e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Revision = StrIStr(Revision); // }} "" // {{{ 764 1 0 "771c0483_6ea2_4299_81c7598839a5027b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SerialNumber = StrIStr(SerialNumber); // }} "" // {{{ 765 1 0 "790984ff_e065_4212_a5c420f04d9f7e4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), o_stepReturn); // }} "" // {{{ 766 1 0 "79aaa9cb_2db1_4f5d_8385023783e5cc82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 767 1 0 "371d6452_cf9d_4abe_9463f54ab7831231" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id); // }} "" // {{ 768 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 769 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 770 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 771 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Voltage_Data") { // }} "" // {{{ 772 1 0 "b6c0eb00_003a_45ed_9899c407d864455c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 773 1 0 "e4801131_30dc_4e2d_8ac9e80c0c13972c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Selector"), Selector); // }} "" // {{{ 774 1 0 "ee48a65d_794b_411d_bb1668a267206d8b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn); // }} "" // {{{ 775 1 0 "bf78a104_f3d4_45b6_a573a7219dcf05e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 776 1 0 "ab32fbfb_2be2_4f6d_9c49def79adcfe31" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 777 1 0 "eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(""), Translate(""), id); // }} "" // {{ 778 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 779 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 780 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 781 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 782 1 0 "51fd11a2_c173_4d8a_be50512a820eb424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 783 1 0 "b1268215_064b_40bc_8b9e75cfc0edeac8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 784 1 0 "7665963b_aa9b_4a3c_ba522887f3b15ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 785 1 0 "8327c869_96c0_4394_9bf4c5b5c19f30d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 786 1 0 "5a5455ae_5598_4a29_8c5f621b0586ba79" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 787 1 0 "f534cbac_4de3_4425_85299c07c6ff73cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 788 1 0 "12b0cc6a_4826_48ce_82c690ddf98441a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 789 1 0 "aee63add_2789_4971_b4867510d938caf6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 790 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 791 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 792 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 793 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Charge_Parameters") { // }} "" // {{{ 794 1 0 "5e24703a_30cb_4538_aec7ba85b7c0d2a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 795 1 0 "31630603_a72b_4d8b_a21a501f5336c619" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Charge"), Charge); // }} "" // {{{ 796 1 0 "41b8aa8b_7d8e_4351_ad9664e334fa00f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AutoCharge"), AutoCharge); // }} "" // {{{ 797 1 0 "504d0d26_95ad_4181_a7c38162018496cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("AutoChargeLevel"), AutoChargeLevel); // }} "" // {{{ 798 1 0 "576ecb10_c479_461f_9249f554f27e398b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn); // }} "" // {{{ 799 1 0 "80503782_9e9a_4986_9e4bcdeac598c749" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Charge Parameters"), o_stepReturn); // }} "" // {{{ 800 1 0 "ade249f5_6aa1_4939_90a22e6af0864e5e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 801 1 0 "4fb997db_4cdf_4b51_85bbb23941f19edb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 802 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 803 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 804 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 805 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Probe_Replacement_Date") { // }} "" // {{{ 806 1 0 "eb0a7cc0_c83a_45a8_8bd6adbf05cadabe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 807 1 0 "c762429d_3619_4e70_9765fe207dab3d54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Probe"), Probe); // }} "" // {{{ 808 1 0 "18bf75b8_9aa3_46d2_a3ad3bbab8c1e126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 809 1 0 "2b2bbaed_84c1_46d2_bd024b425aefa336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 810 1 0 "380453f0_b3e8_47ac_a06eb91552b3a11f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 811 1 0 "a8fcf799_ec41_4160_910a9c78e5395ae2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn); // }} "" // {{{ 812 1 0 "c95c2987_8098_48ed_9ad284801d556587" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Probe Replacement Date"), o_stepReturn); // }} "" // {{{ 813 1 0 "4e986dcc_ee8e_4cc0_bb83628d0a0ec284" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 814 1 0 "d46fb139_6c48_4f2a_b09293a8a3509a12" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 815 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 816 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 817 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 818 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Shutdown") { // }} "" // {{{ 819 1 0 "aec40299_6cef_4e16_ad88bccbdcae3b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 820 1 0 "c7715d80_e089_40ea_86fe6a446a2c9378" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Mode"), Mode); // }} "" // {{{ 821 1 0 "212772c6_0ff7_41ef_9c35fb5828034d90" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn); // }} "" // {{{ 822 1 0 "82055c44_b706_4c16_99b47c2a4ae600e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Shutdown"), o_stepReturn); // }} "" // {{{ 823 1 0 "d76b0e51_c107_49cd_b6bcd25c44e4d066" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 824 1 0 "fbbaa73a_fa45_446d_8052e6e618fd2fad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 825 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 826 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 827 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 828 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Technical_Data") { // }} "" // {{{ 829 1 0 "d6a005e1_4502_49d8_9a510afa4a2e833e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 830 1 0 "5ad112b0_da19_4b1b_a4649033defa7fef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 831 1 0 "f4094e68_7940_4706_bae95f6277784476" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PartNumber"), PartNumber); // }} "" // {{{ 832 1 0 "2b53f199_42d1_4808_a128c8ef4354e216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Revision"), Revision); // }} "" // {{{ 833 1 0 "b5bf6715_e2e6_4e19_ad453dbb18396d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SerialNumber"), SerialNumber); // }} "" // {{{ 834 1 0 "8cd5ff7f_9cb8_4f34_8afeb35175b47032" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 835 1 0 "b60d9996_aa66_483d_b61518ffca638e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Technical Data"), o_stepReturn); // }} "" // {{{ 836 1 0 "164f5289_e710_44eb_a1ea51e1622a7813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 837 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 838 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 839 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 840 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Trace_Level") { // }} "" // {{{ 841 1 0 "dd6ba7d4_f5cc_4725_9776848c6e8343cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 842 1 0 "5a2c7ac9_8800_4926_96f26337aee59504" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 843 1 0 "88c51a62_4453_4cf5_ba0682a2cb1da767" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 844 1 0 "159aeb3e_3ed4_4ddc_a11cdfd939a7db7d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Trace Level"), o_stepReturn); // }} "" // {{{ 845 1 0 "c3a5cc94_f346_4d04_a4be1fd04efbccc1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 846 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 847 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 848 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 849 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Sleep") { // }} "" // {{{ 850 1 0 "153dc01b_be4b_403a_a40226aa4778c709" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 851 1 0 "a6f7384c_4c2e_4b3b_9682c00fb7a2f978" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn); // }} "" // {{{ 852 1 0 "e82cf943_58b3_463e_a86afb9882353228" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Sleep"), o_stepReturn); // }} "" // {{{ 853 1 0 "636ca48b_8789_40cc_8fb4dc35e8cbab54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 854 1 0 "5fb5b228_5342_414d_a548ac8dd5add837" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 855 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 856 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 857 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 858 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Terminate") { // }} "" // {{{ 859 1 0 "b53cd271_035b_4870_961c552983b39351" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 860 1 0 "e133d234_4ccd_44cb_810d29742ee9f40e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn); // }} "" // {{{ 861 1 0 "eb5a9614_5d18_44cd_83190a1d8eec2a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 862 1 0 "81b91833_cb16_43c5_a8935f9701536560" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 863 1 0 "add7dd5e_87e4_4ec1_a7b552234adc5d9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 864 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 865 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 866 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 867 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Wakeup") { // }} "" // {{{ 868 1 0 "6b1d97c0_debd_402e_8c064a5c1fe48aca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 869 1 0 "09ffa3b4_530e_444f_943e5302e37f3fe0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn); // }} "" // {{{ 870 1 0 "0d420182_40e4_43a8_872c5c81f7efa6d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 871 1 0 "f7bb0b0b_d222_43a7_b1b1236ab60e2847" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 872 1 0 "12251a91_a4ec_4a01_b041b503e2eef836" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 873 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 874 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 875 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 876 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Initialize") { // }} "" // {{{ 877 1 0 "10713a72_dce4_482a_ad1d6d8db7bd210a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 878 1 0 "21f38719_99e7_4de4_bc16b312b6f57977" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 879 1 0 "75ac7c86_e474_45bc_8551fc9e302de4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 880 1 0 "509760aa_ef16_454d_89cc23c0745d3c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 881 1 0 "19e515a1_705c_45eb_b80e75767541c91a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 882 1 0 "a042f65b_875f_4b52_999c836815c84a6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 883 1 0 "f5fd2c44_2160_43fa_be88382bc9e0ff0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 884 1 0 "f2c8bfd1_3d33_4a00_84852ffbabef7b28" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 885 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 886 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 887 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 888 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Set_Trace") { // }} "" // {{{ 889 1 0 "0029313d_525e_46ea_916912b33902e1eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 890 1 0 "ed79bcac_71ff_48ee_b968407f0dbdf4ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 891 1 0 "80f14967_56f1_4b78_9a3c9965460a9589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 892 1 0 "b3fdfb36_4bb4_4086_a19b5402f53fdd94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 893 1 0 "53206fbc_1492_4583_a2789c8083e49b46" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 894 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 895 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 896 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 897 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Wash") { // }} "" // {{{ 898 1 0 "32bfd9a6_1ebc_4ca0_81e034f81d1af760" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 899 1 0 "a9208608_0099_4d5f_800d72adf563b9e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CycleNumber"), CycleNumber); // }} "" // {{{ 900 1 0 "738f88ca_6ad7_4598_b1e4a3e1ccefcace" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn); // }} "" // {{{ 901 1 0 "d009e19d_0560_4f89_b0f58bafa778b71b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Wash"), o_stepReturn); // }} "" // {{{ 902 1 0 "49cdc51c_08eb_424b_920d3dcb647b2559" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 903 1 0 "2624b5a6_7428_4e88_a9b7fee8a8001e65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 904 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 905 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 906 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 907 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Terminate") { // }} "" // {{{ 908 1 0 "e8e2fec9_d562_4524_b5d29880876bd109" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 909 1 0 "ad418c06_88fd_4649_9745bc00694fa53a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 910 1 0 "e8437e3c_0153_4bc0_86236a2e9849e22a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Terminate"), o_stepReturn); // }} "" // {{{ 911 1 0 "32e4b0bc_48e5_4770_81a0113fdff8118a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 912 1 0 "c81e886b_51ec_42be_b2c989057781a5b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 913 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 914 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 915 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 916 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Initialize") { // }} "" // {{{ 917 1 0 "b41d8294_bc5c_4346_999860e0f4cc913e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 918 1 0 "102abd73_15bb_472b_a1008b4eda35637e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 919 1 0 "58389380_f098_4c71_b61c0954f797753b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 920 1 0 "2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 921 1 0 "d95cbdf3_6278_437b_91525392a70e5356" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 922 1 0 "d35fefc8_f758_41da_a6073532f75cf092" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Initialize"), o_stepReturn); // }} "" // {{{ 923 1 0 "e1deec6e_fc66_45bd_93821e20a78853fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 924 1 0 "01bdb50d_0f38_40e2_8993f814ea652b66" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 925 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 926 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 927 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 928 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Set_Trace") { // }} "" // {{{ 929 1 0 "f7fc7449_63b2_4e8b_8d0eaf3f931e834d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 930 1 0 "ef77cea9_ef26_4525_bea967ec7f086b88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 931 1 0 "24784b11_b6f4_461e_b526cbbb677864ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 932 1 0 "d5ebe375_f7dd_45c2_b3e242a8edf4f175" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Dryer Trace Level"), o_stepReturn); // }} "" // {{{ 933 1 0 "f61751e3_57be_4b1d_b8a1d370a4c1773c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 934 1 0 "d216caef_1c5d_4f05_8252d1a77df45535" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 935 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 936 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 937 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 938 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Start_Drying") { // }} "" // {{{ 939 1 0 "45561f8e_cd7f_49d8_a8720b2ff7d0d932" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 940 1 0 "ecdddf7a_3c99_4f99_97b658f94a62554c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 941 1 0 "5a6daec0_a404_4a0a_ad9d88de43ac46c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Start Drying"), o_stepReturn); // }} "" // {{{ 942 1 0 "e7173a44_d349_4ba2_8993647fbcd2eb1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 943 1 0 "17e3434b_dfff_457b_9aba0c22e9206cc7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 944 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 945 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 946 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 947 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Stop_Drying") { // }} "" // {{{ 948 1 0 "f3eac478_54bb_4350_8c1811bf2ede8424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 949 1 0 "37262733_33d0_4723_94687e68249d1300" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 950 1 0 "6feb871c_61be_4812_a421af32d75f9871" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Stop Drying"), o_stepReturn); // }} "" // {{{ 951 1 0 "2ba59e68_8358_4b86_a9108519bff6d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 952 1 0 "cbfcb2cb_00c9_445f_a28af2b6553efc31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 953 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 954 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 955 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 956 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Terminate") { // }} "" // {{{ 957 1 0 "66453f41_07b7_4fd4_b2177e4994606836" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 958 1 0 "a5808bbd_63b3_4fc2_894ab4d4eb00b93d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID); // }} "" // {{{ 959 1 0 "f844d13f_ecdb_465a_b0300a4976c0d809" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 960 1 0 "a28255b3_86ff_4928_abf87a7c3f930142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 961 1 0 "7e539911_cdda_4242_a337d58eba44508c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 962 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 963 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 964 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 965 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 966 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Initialize") { // }} "" // {{{ 967 1 0 "5efffd73_f295_4d3c_aacd37c74d2bc015" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ComPort"), Comport); // }} "" // {{{ 968 1 0 "cc8f22a1_0ae7_40ee_82d2e071b7344cf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn); // }} "" // {{{ 969 1 0 "b6f33534_c173_4c6c_820d96a48fa50a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Barcode initialize:"), o_stepReturn); // }} "" // {{{ 970 1 0 "138ad752_fbd8_457e_948dd436ddb65822" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 971 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 972 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Read") { // }} "" // {{{ 973 1 0 "0b3c261e_a906_4464_b0e5caa3ec640056" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Read(barcode); // }} "" // {{{ 974 1 0 "98aadc47_a5a2_433d_84530ad050155ccd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("BarcodeReader_Read"), barcode); // }} "" // {{{ 975 1 0 "e3fc85ee_a6d7_4d98_a3f9076b947565cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, barcode, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 976 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 977 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 978 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 979 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 980 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_BeginMonitoring") { // }} "" // {{{ 981 1 0 "7dd862dc_f7f1_4600_94ca9b83762673dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 982 1 0 "d37d14e5_261f_418c_81f754eb75bf4920" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingToleranceRange"), shakingToleranceRange); // }} "" // {{{ 983 1 0 "0919ceb3_189a_4885_93c8faeab9f9538b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sampleInterval"), sampleInterval); // }} "" // {{{ 984 1 0 "bc3a749e_e1bb_4c4a_9aac06834d85080f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("action"), action); // }} "" // {{ 985 1 0 "4e026721_fd49_4127_87fda5791fa13eff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 986 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ; err.Clear(); // }} "" // {{{ 987 1 0 "a2a0a3bb_c0cf_4123_afe36d1d51ae233c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action); // }} "" // {{ 988 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3202FD4CC34D478f892F31C7684340BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 989 1 0 "7066bb37_8c48_474d_8f467cf1f1e06a8d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 990 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 991 1 0 "c00b8635_652d_48ca_8d345ed070306b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 992 1 0 "85ac1487_5644_4bae_b032f5c191aa47c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 993 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 994 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 995 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 996 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateStarDevice") { // }} "" // {{{ 997 1 0 "4c3dfdd2_2dd6_4c5f_831f92590c13e82e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 998 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_18D9C44C12554d56B5C39C21EA142EC8 ; err.Clear(); // }} "" // {{{ 999 1 0 "cc3d4234_12d6_486a_a110c8ede0e3059b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber); // }} "" // {{ 1000 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_18D9C44C12554d56B5C39C21EA142EC8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1001 1 0 "7f473860_0be7_4dc2_87423136869dd829" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1002 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1003 1 0 "7699b24c_5ec6_4cca_b1cb9aed9ce60247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1004 1 0 "85155966_9554_40cb_9693f9b0a11b25a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1005 1 0 "d049e779_0761_471d_9f7b8af0967d1633" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1006 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1007 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1008 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1009 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateUSBDevice") { // }} "" // {{{ 1010 1 0 "72f0a762_2550_45ad_bea063f4f72a9fe9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1011 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ; err.Clear(); // }} "" // {{{ 1012 1 0 "0cd1cef0_3091_48c3_b63490d3e80a5b45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber); // }} "" // {{ 1013 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_98100824AA704d26AB40A6BADEF39F48 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1014 1 0 "53df6909_1d0e_4001_ac674452fec957bc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1015 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1016 1 0 "85d76321_871e_4d0e_bb460b7513742e62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return:"), o_stepReturn); // }} "" // {{{ 1017 1 0 "d303212f_1f38_442d_a24eee709cf4cdc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1018 1 0 "7356ec1e_8437_4679_94613ac2bea4fe0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1019 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1020 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1021 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1022 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_EndMonitoring") { // }} "" // {{{ 1023 1 0 "4293ef15_cfcd_4e29_b9b02afae2d471f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1024 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ; err.Clear(); // }} "" // {{{ 1025 1 0 "96f15f32_4117_4a09_85dceac0fa769b43" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult); // }} "" // {{ 1026 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1027 1 0 "6ba4b834_521a_46da_9ceb8ced08da95f5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1028 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1029 1 0 "ce89bf49_b865_4c3f_a97eba220b5a7d33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS End Monitoring step return:"), o_stepReturn); // }} "" // {{{ 1030 1 0 "05229af2_f20a_42ce_908ec8445f3f9dd2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(""), Translate(""), id); // }} "" // {{ 1031 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1032 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1033 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1034 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetFirmwareVersion") { // }} "" // {{{ 1035 1 0 "942a1cc2_d956_47fa_9a9ffed1e856a632" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1036 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ; err.Clear(); // }} "" // {{ 1037 1 0 "20e2b3e5_8664_4809_9bcf626c89196333" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1038 1 0 "c70f5e07_0eeb_45e5_af26714895e2df88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion); // }} "" // {{ 1039 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1040 1 0 "38e3e61d_a654_46f5_87f53cf7dfc09446" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1041 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1042 1 0 "7de3b86c_c16d_4932_beedfb948b5d85f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(""), Translate(""), id); // }} "" // {{ 1043 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1044 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1045 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1046 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetSerialNumber") { // }} "" // {{{ 1047 1 0 "38b7d0d7_7cce_4157_8abc70dfb62eefa5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1048 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 ; err.Clear(); // }} "" // {{ 1049 1 0 "d92781d1_27c2_48fb_acfd9cb32428e910" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1050 1 0 "0bbfb488_9723_4a08_9b90171dbec6117a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber); // }} "" // {{ 1051 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1052 1 0 "19daab0c_59b0_4af8_a070bee39acf20c1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1053 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1054 1 0 "311e5a04_1ac3_443c_bdc51c5cdc4c44f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(""), Translate(""), id); // }} "" // {{ 1055 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1056 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1057 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1058 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerParameter") { // }} "" // {{{ 1059 1 0 "f3888a0b_86ea_4c4a_891e1755a6e78556" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1060 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ; err.Clear(); // }} "" // {{ 1061 1 0 "df61bf49_7625_493f_ad06bbdbb36b494a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1062 1 0 "e993ed67_92ed_4c85_bd33f90aac53dfb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3); // }} "" // {{ 1063 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1064 1 0 "accda6cd_138b_411c_bf3af9b152e986c8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1065 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1066 1 0 "6efd49bf_48c7_437b_8fee57487345eaee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1067 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1068 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1069 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1070 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerSpeed") { // }} "" // {{{ 1071 1 0 "e1c29a26_0656_46e3_b0a412143047bd26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1072 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ; err.Clear(); // }} "" // {{ 1073 1 0 "8d513473_33ad_47dc_a8c3ed9799195b58" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1074 1 0 "d7148e56_7fcc_471d_8c3a7abc2847db7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2); // }} "" // {{ 1075 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1076 1 0 "ee004b75_f488_428e_99b02212bd478984" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1077 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1078 1 0 "41ba2513_e3c2_485c_821198419c3fe286" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1079 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1080 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1081 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1082 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTempParameter") { // }} "" // {{{ 1083 1 0 "09fb30ea_33e9_486d_96945af4798859ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1084 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ; err.Clear(); // }} "" // {{ 1085 1 0 "4f9610c2_a783_4586_b1725e8904e476cc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1086 1 0 "eea3f2ce_93c1_4efd_be90b89d775a6867" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 1087 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C16E1CF8298042f0A01D1040DC911015 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1088 1 0 "ad6b8668_d455_40f9_9e64eac973c2db0c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1089 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1090 1 0 "81e3038e_a3ea_4252_a09b14cd3de477a3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1091 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1092 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1093 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1094 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperature") { // }} "" // {{{ 1095 1 0 "01d1add6_c167_4137_8f0c285cd6ad9bed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1096 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ; err.Clear(); // }} "" // {{ 1097 1 0 "a54c8c75_1172_46d3_a61e71fe7fea812d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1098 1 0 "4187d732_0d13_4590_99fa08572e32e2f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2); // }} "" // {{ 1099 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_14A2AAD200434d69970AC483BD08B64F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1100 1 0 "e9f473e4_b341_4e28_8c5c444235409181" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1101 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1102 1 0 "234847f1_2f0a_4e64_856b9edefcebb425" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1103 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1104 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1105 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1106 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperatureState") { // }} "" // {{{ 1107 1 0 "82a233ab_0392_4ebb_9a809d80aae38e44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1108 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ; err.Clear(); // }} "" // {{ 1109 1 0 "19a32be3_7476_425d_a82433aead4637cf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1110 1 0 "7f7e0bd7_bea9_474d_92bce5d21da9a2a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2); // }} "" // {{ 1111 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_50485390A50647818ED2D3934FBC87E3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1112 1 0 "81e1a27f_16e2_44ed_b7cd3b11ac866a97" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1113 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1114 1 0 "31a69f44_1a59_49ce_a78763f3aa936042" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1115 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1116 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1117 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1118 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SendFirmwareCommand") { // }} "" // {{{ 1119 1 0 "11546c32_6ddd_4250_9b8750c9679e5b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1120 1 0 "06688598_f10e_41e9_8a2c6d3dff7b7aae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), command); // }} "" // {{{ 1121 1 0 "15a58509_ec93_4677_b1858cadeac42d10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("parameter"), parameter); // }} "" // {{ 1122 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ; err.Clear(); // }} "" // {{ 1123 1 0 "84b0a5f3_5e82_4770_81998131d1071a7a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1124 1 0 "b63ba349_9a52_43ca_aec17e40c17d231b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter); // }} "" // {{ 1125 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_84EE5E4228B140f599748D1271CBB0F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1126 1 0 "f46c286b_9141_4717_ac23994f8defc186" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1127 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1128 1 0 "8b5634c2_e1da_41d3_83c57142f4cae999" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1129 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1130 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1131 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1132 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetPlateLock") { // }} "" // {{{ 1133 1 0 "927ddf67_5dbd_432b_b8cf6117a3109b06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1134 1 0 "a3eee1ac_7024_473b_a6eb8a2e9b461a66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("plateLock"), plateLock); // }} "" // {{ 1135 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ; err.Clear(); // }} "" // {{ 1136 1 0 "a9029174_cbad_4f9c_9ca65c3b9497d605" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1137 1 0 "27d47e3b_913b_4a0e_bdb50007a0e39d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock); // }} "" // {{ 1138 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1139 1 0 "bb948751_9e18_4aa8_b86a3dd67208967f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1140 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1141 1 0 "945560ed_40bf_44a9_851fead4c1943f9f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1142 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1143 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1144 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1145 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetShakerParameter") { // }} "" // {{{ 1146 1 0 "8a0e14c1_f6c6_4fb8_94094498cccd7991" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1147 1 0 "1810a83f_3fc2_4c49_9d5502fbdfc743e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingDirection"), shakingDirection); // }} "" // {{{ 1148 1 0 "c3053579_8645_474f_8c05459eed975362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingAccRamp"), shakingAccRamp); // }} "" // {{ 1149 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ; err.Clear(); // }} "" // {{ 1150 1 0 "d7ecab6c_533b_4d98_97e3fd144551f6d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1151 1 0 "77463ac5_e629_4772_98004edef4016a6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp); // }} "" // {{ 1152 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1153 1 0 "96075a25_a9b4_48ec_b53a90612b9d42a8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1154 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1155 1 0 "5ed72ec4_1b60_4258_969b44c995450ec1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1156 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1157 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1158 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1159 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetSimulation") { // }} "" // {{{ 1160 1 0 "941f9e19_ca94_4ede_9719205aeb876593" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{ 1161 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ; err.Clear(); // }} "" // {{ 1162 1 0 "c8de89fe_7a53_4c03_bbe8ba85302b57ea" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1163 1 0 "41b0c1a2_60aa_4f16_8901c300e9a3dc14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetSimulation(simulate); // }} "" // {{ 1164 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1165 1 0 "b9ad26f0_da3e_44e9_a29e1fa4b10f92f4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1166 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1167 1 0 "2e7a9d5f_51df_4c49_bb1986da7e14cd48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1168 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1169 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1170 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1171 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetTempParameter") { // }} "" // {{{ 1172 1 0 "99447b6e_9293_483d_bbd7ddee96870904" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1173 1 0 "f55d7581_a005_45e4_9b3d7f7473323e6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("startTimeout"), startTimeout); // }} "" // {{{ 1174 1 0 "7192db12_8543_4c8b_81b98b57ce21118d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("toleranceRange"), toleranceRange); // }} "" // {{{ 1175 1 0 "8f6d922f_f2ae_43c6_8682df15e6b7c07c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("securityRange"), securityRange); // }} "" // {{ 1176 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ; err.Clear(); // }} "" // {{ 1177 1 0 "aecc8a3f_302a_4fd4_85780994769765dc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1178 1 0 "57eb738a_6eb2_4f04_b25bd7f7f64a8179" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange); // }} "" // {{ 1179 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1180 1 0 "8a17da2c_6b74_4513_a05e482acef68552" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1181 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1182 1 0 "90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1183 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1184 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1185 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1186 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetUSBTrace") { // }} "" // {{{ 1187 1 0 "0691ecbd_49b4_4590_91d60e614290ec34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("trace"), intTrace); // }} "" // {{ 1188 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ; err.Clear(); // }} "" // {{ 1189 1 0 "96a3924c_7b8c_441f_b05115a7adf0396f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1190 1 0 "24723a79_741b_46be_830fe654c08d6d1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetUSBTrace(intTrace); // }} "" // {{ 1191 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FE6D15E135D24fd7A06908E89474B650 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1192 1 0 "29acd4b5_13fb_40fe_bc6d971aa6f115a7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1193 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1194 1 0 "cda0d06f_dce0_47ad_bbb419c58aba260e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1195 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1196 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1197 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1198 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShaker") { // }} "" // {{{ 1199 1 0 "503e1c47_5f15_42bd_8eaad1057de68ef6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1200 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ; err.Clear(); // }} "" // {{ 1201 1 0 "18981818_de5f_4fd3_b704a074fd37c9d8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1202 1 0 "7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed); // }} "" // {{ 1203 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1204 1 0 "6fa8ea83_c7bd_4b3e_81768063f8126364" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1205 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1206 1 0 "ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1207 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1208 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1209 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1210 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShakerTimed") { // }} "" // {{{ 1211 1 0 "db6b6c2e_da48_4c64_bdddc80ba5a28921" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1212 1 0 "f6f42906_5ded_4a05_8f9a11fac18f7f10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1213 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ; err.Clear(); // }} "" // {{ 1214 1 0 "84efe41c_f9b0_4304_896c8b308bb07e76" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1215 1 0 "428d423d_1825_472f_a3aa303d028d0659" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime); // }} "" // {{ 1216 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1217 1 0 "367927ae_ba00_4d5a_b9d8f5f9b3d208c3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1218 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1219 1 0 "d73f1476_bf95_4d48_89849f295a9e4d0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1220 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1221 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1222 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1223 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShaker") { // }} "" // {{{ 1224 1 0 "f958f5a5_d1c5_4e9e_9262e708f24940c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1225 1 0 "2ce1189b_e54a_48c0_aafc2932409c0b9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1226 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ; err.Clear(); // }} "" // {{ 1227 1 0 "7e6d8299_fab6_4435_8adf36d59ca04c7a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1228 1 0 "5fe75151_d308_441e_a049e85f45ca3966" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShaker(dispenseMode, shakingSpeed); // }} "" // {{ 1229 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1230 1 0 "64e95a28_a6b6_4e1b_825867f05118aebc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1231 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1232 1 0 "4b0b48f9_3855_4eab_8f22b0902846d750" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1233 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1234 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1235 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1236 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShakerTimed") { // }} "" // {{{ 1237 1 0 "858c7861_9fb0_490e_9646b9eb190706d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1238 1 0 "327bd0c6_60a8_4fd1_9ef81e2a21d904a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1239 1 0 "83a6d58d_c761_484f_871c9c2229a6d3d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1240 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ; err.Clear(); // }} "" // {{ 1241 1 0 "08abdac2_e330_47c9_9b80d99dd0338c3d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1242 1 0 "22e55b69_c018_47f9_8e3ac169c190d2de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); // }} "" // {{ 1243 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_29447729262E4e0f8B347F6640716D96 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1244 1 0 "a26bca7d_b38c_4413_b61d3da3fdfb077b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1245 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1246 1 0 "f539df09_de1d_4fd8_9ac041897fab0333" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1247 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1248 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1249 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1250 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartTempCtrl") { // }} "" // {{{ 1251 1 0 "dc338e01_6b43_4fe3_bda98d2b0a1a65e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1252 1 0 "04239a09_93a5_4f75_80f95d178bdf9cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("temperature"), temperature); // }} "" // {{{ 1253 1 0 "0387745b_87be_4ec6_912b0b4decaa257b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("waitForTempReached"), waitForTempReached); // }} "" // {{ 1254 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ; err.Clear(); // }} "" // {{ 1255 1 0 "0e03f515_b847_4dfd_8aa52f8b5f1135cd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1256 1 0 "4ba75dd5_935f_4f2c_a15605eafa47b808" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached); // }} "" // {{ 1257 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_764F491C76DA445383E5490AB126ADB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1258 1 0 "e7b29c37_b63e_40fe_a3663d4eb8c7dc93" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1259 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1260 1 0 "bfde731d_b581_4488_b4cb7f4873675d7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1261 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1262 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1263 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1264 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopAllShaker") { // }} "" // {{ 1265 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ; err.Clear(); // }} "" // {{ 1266 1 0 "7ca275a0_4aed_4b67_9535646b2074ebaf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1267 1 0 "d112da95_7f27_47a3_9e24bc801bcc9afc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{ 1268 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1269 1 0 "e87b7e6f_2610_44dd_b7d0262ac681e308" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1270 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1271 1 0 "5706daca_363f_417f_9103f7ddd16c1444" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1272 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1273 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1274 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1275 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopShaker") { // }} "" // {{{ 1276 1 0 "1cdead0d_9944_446b_bd59d491b15242b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1277 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ; err.Clear(); // }} "" // {{ 1278 1 0 "d02dc65a_05f9_4938_90df6cee1381d4dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1279 1 0 "75688e3b_5ed1_45d1_a4d8344ca19c3fd3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{ 1280 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1281 1 0 "b5ede424_b7f1_4369_8610d54e626df620" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1282 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1283 1 0 "6ffd1f39_ec63_4f9c_a7687447aff79f80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1284 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1285 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1286 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1287 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopTempCtrl") { // }} "" // {{{ 1288 1 0 "b16ab946_2ba9_4900_bd6f9ede31edf6ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1289 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B5957B02990845739642D8C604B0B582 ; err.Clear(); // }} "" // {{ 1290 1 0 "e22c8ca0_6e3f_454b_8628dd4417a6fd78" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1291 1 0 "3a29dc5b_78cc_4ed1_ab9cd631701715e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber); // }} "" // {{ 1292 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B5957B02990845739642D8C604B0B582 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1293 1 0 "c8c0c20e_b866_451e_9ecd69fdb0b0ed14" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1294 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1295 1 0 "11f3231a_40df_4c14_92585ab8016165e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1296 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1297 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1298 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1299 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_Terminate") { // }} "" // {{ 1300 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ; err.Clear(); // }} "" // {{ 1301 1 0 "e2f732a1_e433_4ab6_b3bdac9a4ca5bd19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1302 1 0 "910932e3_2b76_41cf_9dccecb799f2d649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::Terminate(); // }} "" // {{ 1303 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_919FCF7F89804c398972DAFE2605D286 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1304 1 0 "44edbcbd_1012_457f_848d11750abdfeb2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1305 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1306 1 0 "4edde3c1_4f65_4403_a54985d84f6d80f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1307 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1308 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1309 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1310 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForShaker") { // }} "" // {{{ 1311 1 0 "87872be5_4e84_4b7b_98a3e7147a66f6a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1312 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ; err.Clear(); // }} "" // {{ 1313 1 0 "d5b14e5b_7d51_414e_af4dfb664c89e0c1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1314 1 0 "2eff956e_28cc_4094_8285d5ed00125a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber); // }} "" // {{ 1315 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1316 1 0 "d60c31db_3b59_4498_8c47e4d2612443a4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1317 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1318 1 0 "96b99051_5c80_421c_a02e0bd238da1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1319 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1320 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1321 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1322 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForTempCtrl") { // }} "" // {{{ 1323 1 0 "881e7d69_50e3_4e42_89eafece562ac009" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1324 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ; err.Clear(); // }} "" // {{ 1325 1 0 "ffa29d3e_8248_4266_80661c264964da5f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1326 1 0 "421a52eb_128a_4b6b_8baafb6548b66bd8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber); // }} "" // {{ 1327 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_088C7630997A4749A400740DA66CBA0C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1328 1 0 "8a92c1f7_b614_4c09_b5ada70145cb0a7c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1329 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1330 1 0 "aeb529e0_2eaf_4686_9528342b58318a5d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1331 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1332 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1333 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1334 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1335 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1336 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "CORE96WashEmpty") { // }} "" // {{{ 1337 1 0 "88f95bdd_c2c5_4856_91e5f47f7431bdaf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("refillAfterEmpty"), refillAfterEmpty); // }} "" // {{{ 1338 1 0 "d7a05a26_0b59_478a_a85f308173caf693" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1WashLiquid"), chamber1WashLiquid); // }} "" // {{{ 1339 1 0 "8b1bd108_2b5a_4a2d_ace7b87920eae1b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1LiquidChange"), chamber1LiquidChange); // }} "" // {{{ 1340 1 0 "d651fbf5_a4b8_490b_b869269338ccfcfa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2WashLiquid"), chamber2WashLiquid); // }} "" // {{{ 1341 1 0 "79b1a205_d988_4171_9e1fb28ba362329b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2LiquidChange"), chamber2LiquidChange); // }} "" // {{ 1342 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ; err.Clear(); // }} "" // {{ 1343 1 0 "3fc645b3_f504_4b5e_93481425adf459b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1344 1 0 "123d7b87_745f_4511_a797d08711d13361" "ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}" { variable arrRetValues[]; arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3("123d7b87_745f_4511_a797d08711d13361"); // Head96EmptyWasher } // }} "" // {{ 1345 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EE8804FCDC214a06935DD0F4830020DB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1346 1 0 "ab84bcc8_3da0_446b_84689087cc7a392f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1347 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1348 1 0 "dde0a413_b493_4b17_94990d1d5f2e2b2e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1349 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1350 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1351 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1352 1 0 "1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONFromServer); // }} "" // {{ 1353 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1354 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "end") { // }} "" // {{{ 1355 1 0 "6db67a5a_6aa2_4087_875823acfff0fac4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Good Bye!")); // }} "" // {{ 1356 1 0 "4c7e40d6_02a6_451d_b28230ec71e40ce1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1357 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1358 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1359 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1360 1 0 "6fb90145_24c3_46ba_88b839e0215d0bf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{ 2 "AutoExitBlock" "" STAR_OEM_TOOLKIT::_ExitLibrary(); STAR_OEM_TOOLKIT_PH::_ExitLibrary(); // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=stefa$$valid=0$$time=2022-10-28 20:34$$checksum=79280978$$length=082$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx8511.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" private function ArrayToString( variable & i_array[], variable & o_str ) void ; private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ; private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ; private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ; private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void ; function SendTextMessageToServer( variable str ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; private function waitForGUItoContinue( ) variable ; function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 1512 1 0 "c8aa765a_4840_468a_9e928b44fa79d891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{{ 5 "OnAbort" "End" } // }} "" // {{{ 5 "SendTextMessageToServer" "Begin" function SendTextMessageToServer( variable str ) void { // }} "" private object objJSONObject; private variable strJSON; // {{ 5 "SendTextMessageToServer" "InitLocals" // }} "" // {{{ 1480 1 0 "9d5f9d4a_c104_4b47_964b6d97f981a71e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONObject); // }} "" // {{{ 1481 1 0 "d0a04705_1adc_4919_b95168834c89f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("command"), Translate("message")); // }} "" // {{{ 1482 1 0 "7b9a6cd1_3eee_4085_b3f9548e43fc3424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("text"), str); // }} "" // {{{ 1483 1 0 "6a1c53cf_65ea_4f53_aa2e9111890fecf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONObject, strJSON); // }} "" // {{{ 1484 1 0 "bee8c148_b3ea_490b_8d93d8ed5f24939f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONObject); // }} "" // {{{ 1485 1 0 "b965a2fd_f821_4400_b4c777f558ed0772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendTextMessageToServer" "End" } // }} "" // {{{ 5 "waitForGUItoContinue" "Begin" private function waitForGUItoContinue( ) variable { // }} "" private variable loopCounter1; private variable serverResponse; private timer timer1; // {{ 5 "waitForGUItoContinue" "InitLocals" // }} "" // {{ 1493 1 0 "73328607_d06a_4d7d_8a5df64da06a1bde" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" serverResponse = Translate(""); // }} "" // {{{ 1494 1 0 "2342f8b3_4765_4edc_9fb9f46cbb1fd20b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Waiting for server instructions...")); // }} "" // {{{ 1495 1 0 "216e1039_788e_4830_8588933e6c542ba1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Waiting for server instructions...."), Translate("")); // }} "" // {{ 1496 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounter1 = 0; while (1 == 1) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1497 1 0 "5f15547c_3178_4f78_b5fea96f6a1c563b" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.1) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1498 1 0 "cd67277b_4386_4862_8429008a00601693" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 1499 1 0 "6ec592d0_fe02_41a9_8503db5ccf0e5544" "{C1F3C015-47B3-4514-9407-AC2E65043419}" serverResponse = HSLHttp::HttpGET(objHttp, Translate("http://localhost:3221"), Translate("")); // }} "" // {{ 1500 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (serverResponse != "") { // }} "" // {{ 1501 1 0 "b1e2e308_ee78_46d0_8a6832649536045e" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1502 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1503 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 == 300) { // }} "" // {{ 1504 1 0 "19e5c8f7_a1a9_4348_aa41a572942db630" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1505 1 0 "6be46368_bb3e_4ad8_82647d6f52af8c9b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1506 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1507 1 0 "8951a436_faf4_45df_a268dbb7ddb58c29" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.9) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1508 1 0 "52bb524e_27b1_4bbe_afcf26453d9eb66f" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1509 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1510 1 0 "809789b0_bd70_4c1f_b0d808ce120b1d99" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (serverResponse); // }} "" // {{{ 5 "waitForGUItoContinue" "End" } // }} "" // {{{ 5 "SendStepReturnToServer" "Begin" private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer" "InitLocals" // }} "" // {{{ 1451 1 0 "2520bd9f_739d_4111_a27d89f8f73ec39e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 1452 1 0 "aa6010ec_0628_49d5_a87e016b4a4fc7f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 1453 1 0 "a97c5efa_0ce4_4358_9c51c1893f526b9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 1454 1 0 "deceb871_e830_4b14_86e626f745ef083a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 1455 1 0 "00afb5c2_b5db_4458_866a13b6cb332b68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 1456 1 0 "e52bbd02_b31d_4278_a0f45991eab77d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 1457 1 0 "19f99698_3777_4dcf_9fc765c3f221df4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 1458 1 0 "329f8b9b_0798_44f8_9ee6b65ec58b0c44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 1459 1 0 "7728ac0d_8630_4f61_94af076392758ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 1460 1 0 "70d261f2_edc4_49a0_a5a074cd5ab92b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 1461 1 0 "ee0dd62d_582f_4171_b08e37f6106d9b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer" "End" } // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "Begin" private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void { // }} "" private variable n; private variable loopCounter1; private variable strSinglePosition; private variable arrayOfPositions[]; private variable arraySinglePosition[]; private variable labwareID; private variable positionID; // {{ 5 "BuildTempSequenceFromPositions" "InitLocals" { sequence __temp; o_seq = __temp; } // }} "" // {{ 1398 1 0 "d9022e13_e502_4969_a8ee79484e990801" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arrayOfPositions.SetSize(0); // }} "" // {{{ 1399 1 0 "3e178082_8579_435f_a5db4481bb789d9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strPositions, Translate(";"), arrayOfPositions, 0); // }} "" // {{ 1400 1 0 "5d735f26_db1b_4bea_9ee405f4167bb99f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" n=arrayOfPositions.GetSize(); // }} "" // {{{ 1401 1 0 "f497f24b_fd39_417d_8703c0d54662309f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq); // }} "" // {{ 1402 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1403 1 0 "fd645546_0433_46a0_8619026e338529fd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arraySinglePosition.SetSize(0); // }} "" // {{ 1404 1 0 "91aeb0c4_3176_4356_a19a1027bcdb0af3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1); // }} "" // {{{ 1405 1 0 "c2b42369_7829_4c62_b58880fce7867995" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strSinglePosition, Translate(","), arraySinglePosition, 0); // }} "" // {{ 1406 1 0 "016f61c5_fd76_4c74_903df10a03070f7b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" labwareID=arraySinglePosition.GetAt(1-1); // }} "" // {{ 1407 1 0 "886fc872_7c3a_4366_959db6d5f265ed7c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" positionID=arraySinglePosition.GetAt(2-1); // }} "" // {{{ 1408 1 0 "766a54b4_4c5b_4991_9d8ceea62d26b216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq, labwareID, positionID); // }} "" // {{ 1409 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1410 1 0 "0003c6e9_5b43_438d_bc93be342c3c6b55" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq.SetCurrentPosition(1); // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "End" } // }} "" // {{{ 5 "StrTokenize" "Begin" private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 1487 1 0 "500afe4c_98a8_4117_8c279b9994d0b626" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 1488 1 0 "6a0bd918_2fda_4e4c_a680454ce2576168" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 1489 1 0 "f65ed315_68ed_4ec0_ba0b3c217e692b25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 1490 1 0 "9476acee_e5bb_43d1_bbec232ed01bae08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); // Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "Begin" private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void { // }} "" private variable numOfVolumes; private variable numOfChannelsInVariable; private variable n; private variable loopCounter1; private variable arrSize; private variable loopCounter3; private variable strKeyName; // {{ 5 "BuildArrayOfVolumesForChannels" "InitLocals" o_arrayOfVolumes.SetSize( 0); // }} "" // {{ 1372 1 0 "69288f91_eabd_4d15_af5361636ffacbf6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyName = Translate("volumes"); // }} "" // {{ 1373 1 0 "bf4c1108_6751_41ee_8d3d3b1a9418548f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfVolumes.SetSize(0); // }} "" // {{{ 1374 1 0 "a9cfa743_a769_46a3_b8d7e45a67b3d297" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName); // }} "" // {{ 1375 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arrSize > 0) { // }} "" // {{ 1376 1 0 "594bebbb_0d54_4893_b20d783de743dd44" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1377 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < arrSize;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{{ 1378 1 0 "3bfc9004_2595_4917_b4edcdceed06f518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); // }} "" // {{ 1379 1 0 "6be31b23_f55d_4d15_be6abc9ee4bef664" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" Trace("Volume received=", v); // {{ 1381 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1382 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1383 1 0 "4a4891b3_f877_4b14_85196b7e820554b2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1384 1 0 "22c7c768_33c4_4975_909e9586375bfe8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(strKeyName, v); // }} "" // {{ 1385 1 0 "4e01e62a_13a2_408e_9fbfb2300d5996ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 1386 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1387 1 0 "cc565f65_a92a_43ef_9c052b7f5632aca5" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" numOfVolumes=o_arrayOfVolumes.GetSize(); // }} "" // {{{ 1388 1 0 "e49355fb_3fe6_4c8d_930870416e36b708" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numOfChannelsInVariable = StrGetLength(strChannels); // }} "" // {{ 1389 1 0 "804bc477_e950_4a14_af5f667c73cf5176" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1390 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (numOfVolumes < numOfChannelsInVariable) { // }} "" // {{ 1391 1 0 "2e73355c_8b11_4423_b345807cae9d5db8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" n = numOfChannelsInVariable - numOfVolumes; // }} "" // {{ 1392 1 0 "53a650d8_2fc1_4c5b_bd19eda433c2a81a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" v = o_arrayOfVolumes.ElementAt( numOfVolumes -1); // }} "" // {{ 1393 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1394 1 0 "cd047b15_6a02_40f1_adfb116f6bf5d763" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 1395 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1396 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "End" } // }} "" // {{{ 5 "ArrayToString" "Begin" private function ArrayToString( variable & i_array[], variable & o_str ) void { // }} "" private variable arraySize; private variable loopCounter1; // {{ 5 "ArrayToString" "InitLocals" o_str = 0; // }} "" // {{ 1362 1 0 "1a220255_6ba4_40fb_be39a6a2f4e0065f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 1363 1 0 "f821c4ff_f1a2_4ad7_9bd77dd8652567cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str = Translate(""); // }} "" // {{ 1364 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1365 1 0 "afd84a84_8330_46e7_8308e16b5caa05e9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" v=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 1366 1 0 "77436fd3_3c87_4f09_9a89259b15ef5bf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, v); // }} "" // {{ 1367 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 < arraySize) { // }} "" // {{{ 1368 1 0 "d14fd31e_5de8_46f9_bb359f38de9a08ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, Translate(";")); // }} "" // {{ 1369 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1370 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "ArrayToString" "End" } // }} "" // {{{ 5 "JSON_GetFloatValue" "Begin" private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void { // }} "" private variable retVal; // {{ 5 "JSON_GetFloatValue" "InitLocals" o_KeyFloatValue = 0; // }} "" Trace("getfloatvalue"); // {{{ 1413 1 0 "8f2f8625_6c9e_4c47_b4698d29df60004a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" // {{ 1414 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("error getting float value, try with integer"); // {{ 1416 1 0 "5a74df81_6685_4703_8b055144f8d74d45" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1417 1 0 "47bb8c98_9624_40ad_b765abfc6b0d0b49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" Trace("error getting float value, tried with integer"); // {{ 1419 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("wtf ok i guess its zero"); // {{ 1421 1 0 "5b8a3ec6_8ee4_4887_ab7df29fa494cdc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_KeyFloatValue = 0; // }} "" // {{ 1422 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1423 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "JSON_GetFloatValue" "End" } // }} "" // {{{ 5 "SendHHSReturnToServer" "Begin" private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; private variable t_arrayStepReturns[]; private variable loopCounter1; private variable keyName; private variable varType; // {{ 5 "SendHHSReturnToServer" "InitLocals" // }} "" // {{{ 1425 1 0 "6db3f932_ba70_4cf6_9c2a8636580fc754" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 1426 1 0 "3cf8a985_83cc_418e_99293de9d9945d5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("HHS-return")); // }} "" // {{{ 1427 1 0 "705c25bc_6db4_4eb9_b05b33999e110198" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{ 1428 1 0 "5a9efc02_a11a_4c0c_b166e3b28800cc6c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" t_arrayStepReturns.SetSize(0); // }} "" // {{ 1429 1 0 "5aa4f3a8_774f_4f35_ae7fa197ef920048" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn1); // }} "" // {{ 1430 1 0 "00ac351d_bc51_41e5_b300af93d6893fa5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn2); // }} "" // {{ 1431 1 0 "2aaf8702_2d08_48ee_be96815ca77463c9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn3); // }} "" // {{ 1432 1 0 "67fcb56e_9f42_4739_a5ee322f12443a17" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn4); // }} "" // {{ 1433 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < 4;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 1434 1 0 "a23ae2ed_5b02_41a0_a69215d0b80fde4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" keyName = StrConcat2(Translate("step-return"), loopCounter1); // }} "" // {{{ 1435 1 0 "9b92ac94_8c71_4b77_95ac0c691427c4bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" varType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1436 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "s") { // }} "" // {{{ 1437 1 0 "1497ea6a_46ab_4ee8_b7951f24b533e644" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1438 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1439 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "f") { // }} "" // {{{ 1440 1 0 "61772f9e_fea3_4011_bba06b7fe66e8b0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1441 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1442 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "i") { // }} "" // {{{ 1443 1 0 "28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1444 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1445 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1446 1 0 "0a0447b8_96fb_495a_90dfa8f1e2c488ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 1447 1 0 "b2a13d10_b443_4fc0_aa0baa2a23cddafe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 1448 1 0 "0adf40b4_5c73_46d8_8e6042c6dfd32d86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 1449 1 0 "5a5dabeb_e3ed_4730_ab86839e00f75077" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendHHSReturnToServer" "End" } // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "Begin" private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer_EightOutputs" "InitLocals" // }} "" // {{{ 1463 1 0 "a5a7b215_f4cb_4951_82e1faf532cd7222" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 1464 1 0 "9480693e_99ec_4cfd_aa9c8f48e76ee42f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 1465 1 0 "3f068696_35bd_4060_8b291470a817f628" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 1466 1 0 "b68a52fb_e141_4e4c_b5e7bbcbf0c9817f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 1467 1 0 "8ab4a139_9629_43b7_98f13d1058881e4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 1468 1 0 "1417a4bd_aea8_4b36_8a7a05739a789ecf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 1469 1 0 "24b6213e_470e_468a_86dc55b44ff96b95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 1470 1 0 "42403d87_ddb6_4bee_8fc6ad09efb7573a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return5"), stepReturn5); // }} "" // {{{ 1471 1 0 "8493044a_674d_4139_90fa1c7a00050abc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return6"), stepReturn6); // }} "" // {{{ 1472 1 0 "b43cf915_ef0d_4d62_985deae88bcd6c18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return7"), stepReturn7); // }} "" // {{{ 1473 1 0 "584d78fd_87d0_4502_a6d089cfaf888318" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return8"), stepReturn8); // }} "" // {{{ 1474 1 0 "711dbc6f_e5c4_40a0_bef5785dc99707ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return9"), stepReturn9); // }} "" // {{{ 1475 1 0 "47856892_8af4_409f_88723a44ebe61362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 1476 1 0 "e5054174_6f3f_4356_8dc30683be948abe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 1477 1 0 "e21196c3_6b8f_47e5_a2888114650b2ec8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 1478 1 0 "3fec97a3_9f33_4fef_afe5355188bf56d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=stefa$$valid=0$$time=2022-10-28 20:34$$checksum=a4132343$$length=084$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx8511.tmp ================================================ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx8AF.hsl ================================================ namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HslHamHeaterShakerLib.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } #include "STAR_OEM_Test.res" namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "SchedulingDev\\HSLAppsLib.hsl" } namespace _Method { #include "STAR_OEM_toolkit_pH.hs_" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" } namespace _Method { #include "STAR_OEM_ODTC.hs_" } namespace _Method { #include "STAR_OEM_toolkit_centrifuge.hs_" } namespace _Method { #include "STAR_OEM_HiG.hs_" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Module.hsl" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Washer Module.hsl" } namespace _Method { #include "Inheco ODTC\\Inheco ODTC.hsl" } namespace _Method { #include "Hamilton MPE2\\HSLMPELib.hsl" } namespace _Method { #include "Hamilton Centrifuge\\Hamilton Centrifuge.hsl" } namespace _Method { #include "BioNex HiG\\HSLHiGCentrifugeLib.hsl" } namespace _Method { #include "STAR_OEM_toolkit_MPE.hs_" } /* {{ 2 "LibraryInsertLine" "" */ // }} "" variable loopCounterMain; variable msg; object objJSONFromServer; variable commandFromServer; variable initializeAlways; variable o_stepReturn; object objJSONToServer; sequence seq; variable tipSequence; variable sequenceCounting; variable channelVariable; variable channelUse; variable labwarePositions; variable aspirateSequence; variable v; variable arrayOfVolumes[]; variable liquidClass; variable aspirateMode; variable capacitiveLLD; variable pressureLLD; variable liquidFollowing; variable submergeDepth; variable liquidHeight; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable airTransportRetractDist; variable touchOff; variable aspPosAboveTouch; variable o_liquidLevels_mm[]; variable o_liquidLevels_mL[]; variable o_stepReturn2; variable o_stepReturn3; variable dispenseMode; variable dispenseSequence; variable dispPositionAboveTouch; variable zMoveAfterStep; variable sideTouch; variable wasteSequence; variable useDefaultWaste; variable reducedPatternMode; variable aspirateVolume; variable o_stepReturn4; variable dispenseVolume; variable tipEjectToKnownPosition; variable carrierName; variable barcodeFileName; variable barcodeReadPositions; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable lidSequence; variable plateSequence; variable toolSequence; variable transportMode; variable widthBefore; variable gripHeight; variable gripWidth; variable gripSpeed; variable gripperToolChannel; variable checkPlate; variable zSpeed; variable gripForce; sequence lidSeq; sequence toolSeq; variable xAcceleration; variable platePressOnDistance; variable ejectToolWhenFinish; object objHttp; variable blnReturn; variable blnSuccess; variable usedNode; variable deviceNumber; variable action; variable sampleInterval; variable shakingToleranceRange; variable id; variable monitorResult; variable firmwareVersion; variable serialNumber; variable command; variable parameter; variable plateLock; variable shakingAccRamp; variable shakingDirection; variable simulate; variable startTimeout; variable toleranceRange; variable securityRange; variable intTrace; variable shakingSpeed; variable shakingTime; variable temperature; variable waitForTempReached; variable inverseGrip; variable liftUpHeight; variable retractDistance; variable tolerance; variable labwareOrientation; variable movementType; variable collisionControl; variable gripMode; variable showCollisionCheckDialog; //global device HxFan ("STAR_OEM_Test.lay", "HxFan", hslTrue); variable refillAfterEmpty; variable chamber1LiquidChange; variable chamber2WashLiquid; variable chamber1WashLiquid; variable chamber2LiquidChange; variable FirmwareCommand; variable FirmwareParameter; variable CommandListElement; variable CommandListLength; object FirmwareCmdDict; variable yDisplacement; variable zDisplacement; variable xDisplacement; variable yOrigin; variable xOrigin; variable zOrigin; variable ControllerID; variable SimulationMode; variable ErrorCode; variable DeviceID; variable TargetTemperature; variable StopAllDevices; variable TraceLevel; variable Comport; variable Simulate; variable ModuleName; variable Angle; variable inputSequence; variable barcode; variable seqFirstPosition; variable seqSecondPosition; global device ML_STAR ("STAR_OEM_Test.lay", "ML_STAR", hslTrue); variable ModuleID; variable probePattern; variable pH_probe_1; variable pH_probe_2; variable pH_probe_3; variable pH_probe_4; variable Variance; variable Timeout; variable CalibrationLevel; variable CalibrationValue; variable CalibrationTemperature; variable Precision; variable Temperature; variable ChargeCounter; variable ReplacementDate; variable BatteryCondition; variable ActualCharge; variable MeasurementCounter_Probe_1; variable MeasurementCounter_Probe_2; variable MeasurementCounter_Probe_3; variable MeasurementCounter_Probe_4; variable HardwareNumber; variable Revision; variable SerialNumber; variable PartNumber; variable Selector; variable VoltageData; variable Day; variable Year; variable Month; variable Charge; variable AutoCharge; variable AutoChargeLevel; variable Probe; variable Mode; variable ProbeNumber; variable pHHighValue; variable pHHighVoltage; variable pHLowValue; variable pHLowVoltage; variable CalibrationSlopeRatio; variable CalibrationOffset; variable CalibrationSlope; variable CycleNumber; variable LockID; variable SiLAMessage; variable SiLAReturnValue; variable DeviceIP; variable LocalIP; variable Message; variable DevicePort; variable ProtocolFile; variable ErrorMessage; variable MethodName; variable Priority; variable Duration; variable RequestID; variable Time; variable ActualTemperatures[]; variable ActualTemperatureNames[]; variable str_ActualTemperatureNames; variable str_ActualTemperatures; variable strDeviceID; variable TimeToWait; variable PMSID; variable PMS_ID; variable Current_Time; variable Locked; variable State; variable Result; variable NodeName; variable Label; variable AlwaysInitialize; variable intPresentPosition; variable Direction; variable CloseCoverAtEnd; variable ArrSpeed; variable ArrAcceleration; variable ArrDuration; variable i_ArrDuration[]; variable i_ArrAcceleration[]; variable i_ArrSpeed[]; variable Decelleration; variable Speed; variable Acceleration; variable MaxRunTime; variable SpeedSensorTrip; variable TimeLeft; variable GravitySensorTrip; variable CurrentSpeed; variable TemperatureSensorTrip; variable ProfileStatus; variable RotorDriveRunning; variable Deceleration; variable FirmwareVersion; variable DeviceName; variable AdapterDeviceID; variable DecelPercent; variable RotationalGs; variable AccelPercent; variable TimeSeconds; variable o_IsSpinning; variable BucketIndex; variable InstrumentName; variable PortNumber; variable MPEOptions; variable ComPort; variable BaudRate; variable CollectionPlateHeight; variable OffsetFromNozzles; variable NeedleOffset; variable WellVolume; variable FlowRate; variable SourceID; variable Needleoffset; variable PlateHeight; variable WellDepth; variable EvaporateTime; variable FollowRate; variable EvaporateTravelDistance; variable NozzleHeight; variable FilterHeight; variable WasteContainerID; variable FullReading; variable CapacityVolume; variable CalibrationDate; variable EmptyReading; variable blnReset; variable CurrentGasTemperature; variable Heating; variable CurrentEvaporatorTemperature; variable MinimumGasTemperature; variable MinimumEvaporatorTemperature; variable MaximumEvaporatorTemperature; variable MaximumGasTemperature; variable ManifoldPressureSensor; variable HighPressureSensor; variable InputPressureSensor; variable LowPressureSensor; variable MaximumTemperature; variable MinimumTemperature; variable VacuumActive; variable VacuumRunTime; variable DisableVacuumCheck; variable Smart; variable SensorReading; variable ControlPoints; variable ReturnPlate; variable Volume; variable Seconds; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" STAR_OEM_TOOLKIT::_InitLibrary(); STAR_OEM_TOOLKIT_PH::_InitLibrary(); STAR_OEM_ODTC::_InitLibrary(); STAR_OEM_TOOLKIT_CENTRIFUGE::_InitLibrary(); STAR_OEM_HIG::_InitLibrary(); STAR_OEM_TOOLKIT_MPE::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{{ 1 1 0 "e7768ad9_4016_4422_bd83f5785d03ceda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnReturn = HSLHttp::Initialize(objHttp); // }} "" // {{ 2 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnReturn != blnSuccess) { // }} "" // {{{ 3 1 0 "62c131b4_44b9_4249_8e0a3205a25b21b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); // }} "" // {{{ 4 1 0 "fb18125e_b294_4554_912c3d447526996e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 5 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 6 1 0 "ee92e29b_e94c_46cf_a67851f3be61c805" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Hi, Im a VENUS method.")); // }} "" // {{ 7 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; // }} "" // {{ 8 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "de417132_351a_4ad8_80c71b1863d4a870" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" commandFromServer = Translate(""); // }} "" // {{ 10 1 0 "d9c97239_3c9d_4992_8fb5820ae5721d90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate(""); // }} "" // {{ 11 1 0 "57da7835_7495_4b16_8b82897289efbd11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn2 = Translate(""); // }} "" // {{ 12 1 0 "cf024fcc_3594_4355_b33f4bd8c8bdfb4e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn3 = Translate(""); // }} "" // {{ 13 1 0 "9ed0b80d_8518_474f_a94d8f843a6158fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn4 = Translate(""); // }} "" // {{ 14 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 15 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 16 1 0 "0257e5d3_7b99_47be_a062950a2b200664" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" msg = waitForGUItoContinue(); // }} "" Trace("JSON received from Server:", msg); // {{{ 18 1 0 "36be63f7_a79c_44a4_b1dc636a536612bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONFromServer); // }} "" // {{{ 19 1 0 "5c2b861d_97f9_4e18_a5fce25e78026299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::ParseJson(objJSONFromServer, msg); // }} "" // {{{ 20 1 0 "562abca5_8891_402a_b8a7c5ba56301a86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); // }} "" // {{{ 21 1 0 "cb002e33_cc71_4a25_890fa8f9f5d982a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("id"), id); // }} "" // {{ 22 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 23 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 24 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "initialize") { // }} "" // {{{ 25 1 0 "773dbb38_0414_403d_b2ff24100c7cf1fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); // }} "" // {{{ 26 1 0 "97af1c08_2914_4f72_b27c685f11b30bb6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); // }} "" // {{{ 27 1 0 "b3ab11e2_0297_446f_9cf37ca7c0c9d19f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Init step return:"), o_stepReturn); // }} "" // {{{ 28 1 0 "57d4e0cd_327e_4cac_8e83a7da6222dda0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 29 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 30 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 31 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 32 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 33 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipPickUp") { // }} "" // {{{ 34 1 0 "53e1cfb5_1fde_491f_bfd878eceda16ba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 35 1 0 "f0e9e31f_d871_4632_bd466e43fc38c771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 36 1 0 "e6311b13_2132_40e0_aff0b5556205c32a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 37 1 0 "cb659ed1_5f0c_41e8_8a060ec0b650c589" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{ 38 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 39 1 0 "6699226b_6c7b_4b79_95b8017162b433b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 40 1 0 "bd13798f_62e7_4dd2_8e91769d48d10fc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 41 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 42 1 0 "ce13caa6_634b_4dec_8a6c3ea74b144e95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 43 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 44 1 0 "29f69958_d99b_455a_93c7b0480bfd1658" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn); // }} "" // {{{ 45 1 0 "732425fd_a199_4354_8479d821ee834e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 46 1 0 "22f00193_1056_456e_a515d156eee56e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 47 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 48 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 49 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 50 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelAspirate") { // }} "" // {{ 51 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 52 1 0 "55ee3109_036b_4acb_8a15175f3316656f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 53 1 0 "a5b3e5ac_4910_4a4a_8e20bdb7f61836e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 54 1 0 "ce04189a_96e4_4bdc_aedc8a68bf64647b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 55 1 0 "882daff3_cc25_4778_aec6a937fc87347c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 56 1 0 "7f7b9f83_5611_4a3b_b5c120689696addb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 57 1 0 "39e464b7_0def_403b_a02f5dd2a358dbd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 58 1 0 "2e2739aa_8eb6_44e0_b887ea00b04acac0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 59 1 0 "9408edd8_3cee_43e0_976b4a6fabf5f4ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 60 1 0 "a2848877_3518_4d1d_95f77c1f313003e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); // }} "" // {{{ 61 1 0 "4b5ce3d0_91f4_4c14_aaf1cad34e0caf60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" Trace("Bookstart"); // {{{ 63 1 0 "12892ce3_3bc6_4165_b3b6ae0eacad20e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" Trace("Bookend"); // {{{ 65 1 0 "15bd5af3_2da1_420b_beb398dc2347a0ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 66 1 0 "4fe61fb4_bb39_4728_96b8c6959f4943ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); // }} "" // {{{ 67 1 0 "ba68c240_2397_4872_949ee1ee984595c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 68 1 0 "baac19fc_9f21_4e8c_b833f2a1ba2433f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 69 1 0 "253130f8_f599_4ef4_9d5a15e2cb89d1eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 70 1 0 "51233931_483f_4deb_a8627b909d6c9116" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 71 1 0 "bf0c65ba_7847_4768_92ebbe8adc6568c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 72 1 0 "30a6715c_b6c6_4d86_b5c02f3da440e309" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 73 1 0 "6eb82b6e_8093_461e_afc712cab07398dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 74 1 0 "3f8b6af1_7872_4a20_92bf2c4507ea9f31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); // }} "" // {{{ 75 1 0 "7dd1b818_5a89_4b03_82734e6f4d7b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{ 76 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 77 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 78 1 0 "cb2b67f0_7384_4a41_831de652f92d4c85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 79 1 0 "29a868b4_7800_4747_b14eaf0f2c10ba40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 80 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 81 1 0 "08f63789_65f1_4e7d_996dc22e8f33d416" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 82 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 83 1 0 "8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 84 1 0 "7cb70e6b_15bb_4380_b62150df065d208f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 85 1 0 "4714958b_0632_4de2_983c7fe9de68df6c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 86 1 0 "bd40f564_16d7_4037_aef8eebfe28a4362" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 87 1 0 "18bf536c_98f4_4345_86a103db4a9b68a1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 88 1 0 "d60cd9aa_083b_4487_8d6218cee02fa4cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 89 1 0 "e86187c0_0d19_453e_be1c5a401d0d5d93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 90 1 0 "d66c2dae_4cc3_4a31_bafe46d1dd63e790" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 91 1 0 "d23f143d_290d_4d0f_b368241a6a9adaed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 92 1 0 "0428e844_3191_4cde_b7f3544f34c833f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 93 1 0 "a7ca006f_941c_4b31_9749313ad9b4e079" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 94 1 0 "8c97ba72_f880_4504_baee8b8db3d13310" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 95 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 96 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 97 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 98 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelDispense") { // }} "" // {{ 99 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 100 1 0 "909bc255_6ca1_4700_bc102ccb34ae5be4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 101 1 0 "fd48dd93_9f42_4df0_9f659e27a5552543" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 102 1 0 "3ff3f492_86a5_40af_a3deabccbab3898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 103 1 0 "3cbb883f_48ae_40fe_afe67da944df94b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 104 1 0 "ab1033bc_1216_450a_9fb60655a1f1a21a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 105 1 0 "0bc1541f_26d5_44d6_8db6ae336fec17bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 106 1 0 "8c10cc29_c05e_4cea_9ed559249651e805" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 107 1 0 "3e0373da_7c7c_46ab_9b77fba19915662e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 108 1 0 "b98fdc49_cdcb_4f3c_81df0b76eafa1411" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 109 1 0 "7458d32a_402a_4215_b52378c78468ec80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 110 1 0 "5e14f2ce_c932_474b_be03f3c043c700e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 111 1 0 "c2010d1d_5a78_4871_a835a6613a1237bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 112 1 0 "d4a6e6a3_0158_45f1_9c359d8e48e01bed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 113 1 0 "011e9828_5413_40c1_80d0c3bdde1c6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 114 1 0 "2d7a4942_b2ce_43a2_8decf49fa0c9576c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 115 1 0 "ad9f0bbf_e495_41c5_898a3be32bb16f2b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 116 1 0 "5c734886_aa50_424c_b89f6894bc37dd8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 117 1 0 "d1bc00cc_4286_4409_b1c49b6350e7e6ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 118 1 0 "b178ce99_db9e_4453_bed28d4ce0457bc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); // }} "" // {{{ 119 1 0 "1b38ad88_3c65_4e58_812f9ed32ce32485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{{ 120 1 0 "f34066f1_63f9_474f_8a9c41e56962dc74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 121 1 0 "6b94916e_355b_4ee9_8eb4f1b49c95fea4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 122 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 123 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 124 1 0 "e962dd26_3672_4418_bd3c40e9929929eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 125 1 0 "6257966a_6b39_41c8_a057a79b8e39cd4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 126 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 127 1 0 "3f230e40_8bd9_4235_b88cd0ca80799661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 128 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 129 1 0 "8d82ff40_d831_430b_97d97c01d2a4474e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 130 1 0 "ac0ad5a7_d00b_46fe_a18f94f8dab3863c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 131 1 0 "b7f86b6c_03a4_4e12_a05e5e8bdc958b75" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 132 1 0 "9bfa8704_2ae0_4a63_83d09fddbacfd336" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 133 1 0 "860b660a_6947_4c88_a2a039bf65040bf5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 134 1 0 "797f0eef_5bb2_4a2e_a178af74f4892bd7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 135 1 0 "2753c24e_c4dc_402d_866b6bc8691ecc1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 136 1 0 "1ac127fd_b830_496f_b4d4b9671137ebff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 137 1 0 "3ee5d751_d3a5_468a_b539c4f0ff22023e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 138 1 0 "b86d492c_446f_4921_97140cfd462ace87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 139 1 0 "e049946d_6322_4b39_9c46a2d0eb345528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 140 1 0 "531432f5_ef8a_416e_8be28a07ae9b0d25" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 141 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 142 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 143 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 144 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipEject") { // }} "" // {{{ 145 1 0 "69be671e_7cdd_48d3_af136435754c1d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 146 1 0 "f3444c0f_4863_4fdd_94a025b682d8a6d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 147 1 0 "12ad2f39_c160_4afc_9f6ffce7e3ddb433" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 148 1 0 "2883bb64_2fe3_47ca_996e11434afc57cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 149 1 0 "10c3b13e_7129_4cfd_b88b29d0bbc31a28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); // }} "" // {{ 150 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (useDefaultWaste == 0) { // }} "" // {{ 151 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 152 1 0 "655bc92f_08a8_4c16_a0276997aec081ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 153 1 0 "a3a0b5ef_85c0_4552_a28b3356d7886eb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 154 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 155 1 0 "efadb8c3_c431_4ed4_a739a951c05ee518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 156 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 157 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 158 1 0 "2dda50b6_7f82_4e8a_a1d203715119213a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 159 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 160 1 0 "7fa61e34_a1f2_4b99_8f6bed13c6ce120f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn); // }} "" // {{{ 161 1 0 "a7db5128_f8e4_4afe_81f46b2cc86e608d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject step return:"), o_stepReturn); // }} "" // {{{ 162 1 0 "683607f4_928f_4cea_b901fe3502404424" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 163 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 164 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 165 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 166 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 167 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 168 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipPickUp") { // }} "" // {{{ 169 1 0 "1f82c33f_a085_47cc_85dbbde3e42a53c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 170 1 0 "9f9fe665_47a2_4a12_961460021d1f09f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 171 1 0 "743960d2_9d0f_4ccf_848662247e3211c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 172 1 0 "b737602c_63e8_4c4c_b47f40cb815914ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); // }} "" // {{ 173 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 174 1 0 "00bd1831_c335_40f5_b706f0ffadbe2890" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 175 1 0 "1f16418c_8fa7_44a5_a6db75dd9a79ee84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 176 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 177 1 0 "b66db4eb_9e79_4c19_909fd8d14d37cba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 178 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 179 1 0 "f3e7cbf6_0242_4463_8d4ed0db4667f7db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2); // }} "" // {{{ 180 1 0 "b080a5c6_324c_4aae_b5899dede6d863f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 181 1 0 "aa5a9c4b_0377_46ce_9b46883db15cbd7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 182 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 183 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 184 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 185 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Aspirate") { // }} "" // {{ 186 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 187 1 0 "373f30c8_ec07_4298_94d6ac75358ab1ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 188 1 0 "ef3ae377_e985_4ef6_93b005aa91c9b2b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 189 1 0 "d8eea65a_6e59_4c32_a47bae09779f9528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 190 1 0 "8eb02312_a070_491c_9758b3cdbdee0cfc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); // }} "" // {{{ 191 1 0 "6eaf8bee_b53f_4f01_87c1380bc345e386" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 192 1 0 "d9923a2f_e7cf_4f3e_81746e378a20baab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 193 1 0 "2c411993_e3fc_4753_9a90308b226078a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 194 1 0 "5d900896_b2b9_442b_b24294b9bbfbdaad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 195 1 0 "21149e9e_21c9_4ddd_93e07b693e3ab3fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 196 1 0 "bcefef03_102b_4887_adad59c2fb7ad551" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 197 1 0 "9665b0a3_35e8_47e9_b14ac1a4818cfa6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 198 1 0 "ff93d28b_afe9_47e7_9b6eb50d6845384f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 199 1 0 "ef43b824_fd38_42d4_9e932904dbf14813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 200 1 0 "b0378457_e370_448b_bfd6955c05e57bcb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{ 201 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 202 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 203 1 0 "615bcff6_e9d5_4303_a5d5826b2e2548dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 204 1 0 "cf4ad428_945e_4921_9441ee34cf9c96bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 205 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 206 1 0 "86397ec2_2ee5_4ec1_8bec47d8e87584b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 207 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 208 1 0 "48f88263_72c1_4df2_865181cffed9feee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 209 1 0 "f1b764e8_e556_4d08_bb83bdc12dc64a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 210 1 0 "164c104a_cf5f_46de_b23a098a18b3fdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 211 1 0 "ee779f77_51a9_46d7_b58b7bcaf13519f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 212 1 0 "e874eb6d_1e97_4590_95d9b10cb059c935" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn4); // }} "" // {{{ 213 1 0 "0ca1df86_a344_45fd_b384e13ba44c5ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 214 1 0 "2497228e_672e_4c95_9f31679fe87bbe1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 215 1 0 "e4930eee_c625_4acb_a81c05e149a1a218" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 216 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 217 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 218 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 219 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Dispense") { // }} "" // {{ 220 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 221 1 0 "78cba921_2a37_4b4a_91ef7fbe81fcddd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 222 1 0 "b58b4cbd_16e9_4444_9037061e29bc5614" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 223 1 0 "0ab910ec_826d_4c84_bac7ed9564f3bdab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 224 1 0 "84d664b7_70d0_4136_bdfd4de2aa760ad8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); // }} "" // {{{ 225 1 0 "18becc6a_2df4_4281_8b16ade9038979f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 226 1 0 "68c565db_e5ed_44e8_b3846a1d98034e76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 227 1 0 "6a4221a8_9488_48f9_8381b1bc0f0c960d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 228 1 0 "45dcb271_e326_42fc_b8684816d3ffdc93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 229 1 0 "14552b13_e77b_4fb7_9020445ecc5ade21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 230 1 0 "91783f87_af6f_446e_a74fb1725f17d282" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 231 1 0 "e2e7f702_1710_49eb_9b1046dbf4f143e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 232 1 0 "1817aa70_86fa_4318_a8e46569701623e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 233 1 0 "50bd6734_10d5_4291_b40eb708539514fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 234 1 0 "ad5fbb01_d809_4b7d_b858ed597709f28f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 235 1 0 "09566247_6b2d_4c73_b43fe303a30f89c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 236 1 0 "3ead74f7_3b5c_4b21_84d2488c2eceab73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 237 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 238 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 239 1 0 "835f8470_7e8c_40ff_a48abcc85d6b778b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 240 1 0 "059394fc_e924_4d57_b1b85f79f9947fa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 241 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 242 1 0 "6c4be3a7_a450_459c_90545a208f9f459f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 243 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 244 1 0 "c164a94e_2926_462e_9487870d403fe8b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 245 1 0 "86c0fb85_8aaf_4bec_9f6f1f642206487f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 246 1 0 "77047add_8050_4522_ad477b97455a8327" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 247 1 0 "5b2c6f23_9a69_489d_b52179c78c03e48f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 248 1 0 "a9a9244b_829f_4c5b_9a64f1018b029453" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn4); // }} "" // {{{ 249 1 0 "781580a9_199e_4373_b48bb55a97f8a463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 250 1 0 "1867ae44_25f8_4926_ae081e490fd5aa0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 251 1 0 "dbb3b30c_b4a1_4cf6_a24b62b63f155369" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 252 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 253 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 254 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 255 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipEject") { // }} "" // {{{ 256 1 0 "7cf9db16_d78c_4aa0_825cc3c2c22f287c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 257 1 0 "ccca7a97_c22a_4f20_b2d9a60d67850eee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 258 1 0 "a319f75e_77eb_4845_856516ce060213f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 259 1 0 "d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); // }} "" // {{ 260 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipEjectToKnownPosition == 0) { // }} "" // {{ 261 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 262 1 0 "24eeb6dd_1e20_422c_a1a8199cbca73b33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 263 1 0 "5197334f_cde5_4d52_9c528a0c4f7401b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 264 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 265 1 0 "110b82e1_8a5b_48e4_a3adbab701cffc8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 266 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 267 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 268 1 0 "fa32bbf8_8345_4897_aaf09d112d374893" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 269 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 270 1 0 "ef087a4e_684e_4d98_87109abf154fbc85" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2); // }} "" // {{{ 271 1 0 "328216cf_22dd_47a1_9f1ba089b1ac7702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn); // }} "" // {{{ 272 1 0 "53265943_7975_4275_ad98df313054f97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2); // }} "" // {{{ 273 1 0 "c13d9773_7daf_4c3c_9064fdd4f7c7008f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 274 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 275 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 276 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 277 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 278 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "loadCarrier") { // }} "" // {{{ 279 1 0 "76d739d0_ff4a_490b_9c47f411d29ef7a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 280 1 0 "ca623aa7_ed48_45fa_9f4055fb8e08c3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); // }} "" // {{{ 281 1 0 "64a8e193_7e7e_412e_8a0657f0e832eaef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); // }} "" // {{{ 282 1 0 "39e6aaef_5cce_4915_b5b6ede214c7371e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs); // }} "" // {{{ 283 1 0 "1d4d284f_fd1e_4f8a_a2158846ad6a67f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Load carrier step return:"), o_stepReturn); // }} "" // {{{ 284 1 0 "358b7fc3_40a2_418b_9d61d94eef1556f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 285 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 286 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 287 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 288 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "unloadCarrier") { // }} "" // {{{ 289 1 0 "797d23a7_c62a_471a_a52b10fea8bcc154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 290 1 0 "f1c35790_adb7_49eb_a96864d8b1d66cea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn); // }} "" // {{{ 291 1 0 "6e6ded71_3f99_46c5_9362117beb502a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn); // }} "" // {{{ 292 1 0 "8713fee4_6b93_4296_a5396254fd404d52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 293 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 294 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 295 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 296 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 297 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripGet") { // }} "" // {{ 298 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 299 1 0 "c4847ae5_e161_4f23_aa432eda22de28bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 300 1 0 "022a5cdd_3f4f_4e18_927c174fc57a68a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 301 1 0 "3e462067_5eb3_49c3_b7bf6a27de9ce3bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 302 1 0 "f7004881_3f0d_4621_a88d55dec8fc0d30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 303 1 0 "262b36ba_6d86_4009_bdc9a3881db7074e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 304 1 0 "be44b37f_7cec_4f69_81c223f2c30b120b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 305 1 0 "3dea3158_65f8_44bc_8d06a31ce3458dab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); // }} "" // {{{ 306 1 0 "308b2aa2_5970_4692_858049c6559d6ad0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 307 1 0 "756d0f81_3645_4a49_a0c2259581e11498" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 308 1 0 "cdbf11ba_b1f8_4016_811240a02705f1fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{{ 309 1 0 "625df597_c6c8_4e4a_b956e9580bfbc568" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); // }} "" // {{{ 310 1 0 "3576d134_8507_4e47_9c2bcc3dce8c026d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 311 1 0 "5b9c06ad_9081_4b6b_97e50cc87623b888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 312 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 313 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 314 1 0 "d1f3c2ac_9c68_4200_a3506bbbed8e42a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 315 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 316 1 0 "f1d1c43b_a9dd_4573_a69dd7c0e79eea40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 317 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 318 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 319 1 0 "4d304110_107e_412e_909bb84008a244de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 320 1 0 "8f8b1ba1_af12_4cdd_acf2096420ede259" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{ 321 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 322 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 323 1 0 "72e31f7d_c091_4525_a5cf7001754b199d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 324 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 325 1 0 "47dfcbb5_d784_48bb_b36b97509434a3a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 326 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 327 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 328 1 0 "e6c53925_446e_468e_b0e0654b4b9d9a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 329 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 330 1 0 "c0cbb194_1b8b_4fe0_a0f706e03eaa0748" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 331 1 0 "46703217_a28e_42ce_b13c11d73ba34bfa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn); // }} "" // {{{ 332 1 0 "189164cc_2681_492f_83f072fb537648b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn); // }} "" // {{{ 333 1 0 "c8d6960a_f416_47b1_a29e2752973c0ec9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 334 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 335 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 336 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 337 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripMove") { // }} "" // {{ 338 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 339 1 0 "5755c338_faa3_4f0a_9acd4cd01a912862" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 340 1 0 "2849c819_a3dc_4328_8484ccc4785993d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 341 1 0 "32f0a8f9_3af2_42a3_90f246cc874e0e8f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 342 1 0 "791b6e1a_07b8_49cb_8122670d0871189f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 343 1 0 "036d0d84_e161_4b03_8b828dcb6b44e437" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{ 344 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 345 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 346 1 0 "e038f780_938f_4867_98f769488ca44b04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 347 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 348 1 0 "6bd2d2a1_1051_4443_a1af9b68df2876b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{{ 349 1 0 "3d8767e5_5f31_4ce5_91a11e28045ec87a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 350 1 0 "e9e0b38e_13aa_40f9_8e470eb1de09eb19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("wrong"), Translate("nowwrongere")); // }} "" // {{ 351 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 352 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 353 1 0 "064a5c1b_f450_44d6_a2042ebde115527d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 354 1 0 "ee8b8050_164a_4de8_b6ce02120236efbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 355 1 0 "be0898fe_cdb8_4ac3_a9e991e26bdb6658" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here"), Translate("now here")); // }} "" // {{ 356 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 357 1 0 "ca4b75ee_26d9_4a3b_8e3366d575348125" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 358 1 0 "ea0afc75_5bc7_4c06_ac73c2f4d5f887a0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 359 1 0 "1965d128_c7f1_4206_87e4ca1ce70c1dff" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 360 1 0 "615cbdd3_e5f2_4bc0_bb3661a2482eb770" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 361 1 0 "86fc0696_8c53_4c05_a9c0eaa58f279054" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 362 1 0 "90f602a1_fdc5_48fd_801269ecd2c3f9bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn); // }} "" // {{{ 363 1 0 "dc418b75_2d70_4034_84a767fba752b262" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn); // }} "" // {{{ 364 1 0 "ae4414d3_a939_4fdb_a0ed06f1be1506e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here here"), Translate("nohhere")); // }} "" // {{{ 365 1 0 "6379549c_caf9_409f_b293abf77f1dcfbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 366 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 367 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 368 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 369 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripPlace") { // }} "" // {{ 370 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 371 1 0 "6f38d60b_6dc5_4159_ba30360f264222da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 372 1 0 "b6ef73cf_c89c_41cc_a3b72dc5aaf70f90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 373 1 0 "c7e5f5bd_edcc_4000_9be3db81af0c79fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 374 1 0 "91ff4c39_6a86_4eda_998a5461ef6c3cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 375 1 0 "341a6f8e_b4c8_4966_b9520322d1bc2e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 376 1 0 "32792c80_3b36_4a25_8fff6b99bfcf1919" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); // }} "" // {{{ 377 1 0 "b1e5d86e_c659_4d33_9e0f83fdb20b2cb5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 378 1 0 "76b26748_4e74_45f7_85a7dc102b5fd7b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); // }} "" // {{{ 379 1 0 "ee221e8a_a662_49d8_be2ef0ed631d9527" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 380 1 0 "cbefd54c_5f0a_4a16_a0199198529b71fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 381 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 382 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 383 1 0 "ac4e7090_c3c7_4707_8d98dc55262c294b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 384 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 385 1 0 "eb5776ad_c858_4ee8_ba31f47af19e76af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 386 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 387 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 388 1 0 "1f3eb006_1b10_427e_99d0b530f1afc2ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 389 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 390 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 391 1 0 "a04c5993_bf3e_46c7_92f24c8236636b00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 392 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 393 1 0 "2455f68c_be4e_4a21_9e9e78f78f6e8e3c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 394 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 395 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 396 1 0 "ad5d98b0_9e3d_4275_90ceef06ceca045d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 397 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 398 1 0 "3321537f_63fb_48a4_90e40a2fee1cc432" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 399 1 0 "8c7e60df_f040_45c6_a939d99bcd0ac23c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn); // }} "" // {{{ 400 1 0 "24e589a9_98d7_429d_90c8afe203e96ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn); // }} "" // {{{ 401 1 0 "9d94d038_d071_4339_aaace5a2e455b240" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 402 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 403 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 404 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 405 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 406 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 407 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGet") { // }} "" // {{ 408 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 409 1 0 "4a585a30_3a23_44cc_a0948963de716cba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 410 1 0 "da3a318b_1208_4329_be1faae95ecc2e03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 411 1 0 "1f51589f_347c_497b_a7338461d92076d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 412 1 0 "622e6765_4ee3_4df5_917ca140f8b7981b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 413 1 0 "9826612b_e564_4231_8f83fdfcbd374bdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 414 1 0 "fdb52557_ae6c_42b3_925073ab7ae7a5ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 415 1 0 "171639e0_98ad_4857_a5ac346039499a33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 416 1 0 "0d4077af_b1dc_4dea_a23a163c57d96248" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 417 1 0 "60732b74_8870_48e2_be03564159cf35b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("inverseGrip"), inverseGrip); // }} "" // {{{ 418 1 0 "ffa21840_da03_4682_b62a6910caf63f45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 419 1 0 "0af9b15f_4e1b_4353_a6261def96fea256" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{{ 420 1 0 "c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 421 1 0 "74d93b97_5d7f_4593_9aeb9d83d5466e6f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{{ 422 1 0 "28d636c0_47c0_4fac_8a7b67124fd8b9f5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 423 1 0 "6f62025f_9dde_4ae6_a6b6b69efed6e381" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("tolerance"), tolerance); // }} "" // {{{ 424 1 0 "f3d51abd_651e_4b15_93eb0cea0c0384be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 425 1 0 "1b72eb1e_c220_42e0_9a34675ddc971fe7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{ 426 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 427 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 428 1 0 "fd3fbb06_b08e_4790_8e3b785ca1f8ed4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 429 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 430 1 0 "87331d5f_01ff_43a8_a0a06487f28bb2b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 431 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 432 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 433 1 0 "5f12c00c_48c1_4e2f_a24b4ba435343a8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 434 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 435 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 436 1 0 "d3e5718a_eb78_4c1f_a6467f61ccbe82df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 437 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 438 1 0 "8ebcf09f_a943_4769_b3c659e368019a32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, lidSeq); // }} "" // {{ 439 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 440 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 441 1 0 "8ce5efe3_4525_4c77_bb64f9d8dcfb6a62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 442 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 443 1 0 "8ac111e1_df50_4fcb_b465e737713459d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn); // }} "" // {{{ 444 1 0 "d9104246_d843_4a6d_85a64aa07d019020" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Get - step return :"), o_stepReturn); // }} "" // {{{ 445 1 0 "7831c2d8_4b59_455a_a0dc5cae20f325a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 446 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 447 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 448 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 449 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapMove") { // }} "" // {{ 450 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 451 1 0 "3c315cea_4ff8_4efa_8e4a5cc86a9d84d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 452 1 0 "4e2cf15d_267b_47e0_895c36b714787e13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 453 1 0 "24d68fc9_cd59_471b_9c663c4121d1a931" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{ 454 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 455 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 456 1 0 "d372f898_6d32_4d80_ab4d58340d18681d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 457 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 458 1 0 "9e573132_bd29_4d08_a1784d0e26c48700" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 459 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 460 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 461 1 0 "48db1de6_2a87_4224_b1f13fa2a75b490a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 462 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 463 1 0 "1e8e9562_41c0_4df5_9de945c44d1e8d61" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn); // }} "" // {{{ 464 1 0 "a5de7c97_d49c_4f04_b1414f1aaace7f84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Move - step return :"), o_stepReturn); // }} "" // {{{ 465 1 0 "6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 466 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 467 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 468 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 469 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPlace") { // }} "" // {{ 470 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 471 1 0 "18e9697d_0efb_4840_94a65e2a82b4ca69" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 472 1 0 "b0c35970_122b_4119_92c3801f4b8e980b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 473 1 0 "6ed697af_a110_4104_941633e154ff0071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 474 1 0 "fec1982e_3636_412d_af2eda243438f7ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 475 1 0 "21de27ac_9dc3_415b_b1d1e49e80c53591" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 476 1 0 "652aeaa7_9a2f_4c11_8bc1fc58a97ffed7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 477 1 0 "e88a5df4_d9ad_4231_89a5a03f88d0ce77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 478 1 0 "8c5aee51_3156_4fcc_b1b167552b73476f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 479 1 0 "8c257b39_8c0b_410d_a4a4e38df904008c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 480 1 0 "91e9f4c6_b7fe_4b15_83c830df3385398a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{ 481 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 482 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 483 1 0 "226bb6d1_37a1_4076_9d96fb9df69c6068" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 484 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 485 1 0 "ec2fd48b_eab9_491e_867c0fc335eea81c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 486 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 487 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 488 1 0 "e590d9b6_f690_48db_b0109a10c228d5ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 489 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 490 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 491 1 0 "82559320_1e13_40c9_b283fdfa804df6a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 492 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 493 1 0 "420daa28_bf45_407a_bd576559af75c5d0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 494 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 495 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 496 1 0 "3ed6b704_3649_4c7d_8e7d30bdb038feab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 497 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 498 1 0 "41a130e8_a745_4a20_b124272093bf38e7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn); // }} "" // {{{ 499 1 0 "b4bdf08c_e218_4bec_98c0f41e6ec3a218" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Place - step return :"), o_stepReturn); // }} "" // {{{ 500 1 0 "346b983b_d261_4447_a7cebf782db4b4d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 501 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 502 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 503 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 504 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPark") { // }} "" // {{ 505 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 506 1 0 "73602d5e_7f8d_45dc_9c1f21d41c39d0bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("showCollisionCheckDialog"), showCollisionCheckDialog); // }} "" // {{ 507 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 508 1 0 "acf5767a_7e39_4072_8e062928938984cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{{ 509 1 0 "96b1bdf6_a3f3_4530_844fc77cbf7fb944" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 510 1 0 "d03fdac4_224f_4174_924fb518a623bf65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 511 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 512 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 513 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 514 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGetFirst") { // }} "" // {{ 515 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 516 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 517 1 0 "5f9f4b8d_3b3a_48ee_89ef334a70dcb72e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{ 518 1 0 "65648900_32b3_4035_9eb5916a3314f7e9" "ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}" { variable arrRetValues[]; arrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40("65648900_32b3_4035_9eb5916a3314f7e9"); // GetFirstPlatePosition } // }} "" // {{{ 519 1 0 "63380bb7_5afe_4d65_9dc5cdf334590b4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 520 1 0 "cdb18c48_14d5_430d_9f7202f782e069da" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 521 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 522 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 523 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 524 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 525 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "FirmwareCommand") { // }} "" // {{ 526 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 527 1 0 "5f5e5c89_0c1a_497b_80c550dbc4676208" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate("FirmwareCommandList")); // }} "" // {{ 528 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(CommandListElement = 0; CommandListElement < CommandListLength;) { CommandListElement = CommandListElement + 1; // }} "" // {{{ 529 1 0 "2c2e9953_5968_4384_8b2dad24b0960278" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate("FirmwareCommandList"), CommandListElement, FirmwareCmdDict); // }} "" // {{{ 530 1 0 "7f4d5cda_c10f_4317_ba7613cd10d2e90d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareCommand"), FirmwareCommand); // }} "" // {{{ 531 1 0 "cf155262_dfb4_46b4_aff762c7b4c18d8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareParameter"), FirmwareParameter); // }} "" // {{{ 532 1 0 "471df283_02f5_4daf_9c83999e3b1fd8e1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn); // }} "" // {{{ 533 1 0 "0b8e6d49_655f_42a7_bcfdeac76a40c6e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 534 1 0 "f49f31b3_d742_44ae_a6a076108c3f9ab4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 535 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 536 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 537 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 538 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 539 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 540 1 0 "2777cb67_3095_437b_9b54d34ead8fcab2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 541 1 0 "c397d56d_00f8_4e32_bf71c20e91dcac17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ConnectIP") { // }} "" // {{{ 542 1 0 "b450ee5c_4bce_435e_b562523f18ce0142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("InstrumentName"), InstrumentName); // }} "" // {{{ 543 1 0 "13c30b43_9a94_4cd1_a907aa21f01057cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PortNumber"), PortNumber); // }} "" // {{{ 544 1 0 "68ec12ae_0e01_4827_9460e39fddef7f4d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 545 1 0 "7c482f87_e50a_44d8_88516cf7d087dbde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MPEOptions"), MPEOptions); // }} "" // {{{ 546 1 0 "8d4e01b7_ef9e_4570_a2e08f31ecacc259" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingIP(InstrumentName, PortNumber, SimulationMode, MPEOptions, DeviceID, o_stepReturn); // }} "" // {{{ 547 1 0 "005f0b12_4fb1_48ba_bcfeb961b9419149" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeviceID = StrIStr(DeviceID); // }} "" // {{{ 548 1 0 "51077fef_f212_48a6_8f6c43d7d5f5df97" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 549 1 0 "97ff097f_9089_4ac0_82438cbd6f0a9c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Translate(""), Translate(""), id); // }} "" // {{ 550 1 0 "c397d56d_00f8_4e32_bf71c20e91dcac17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 551 1 0 "2777cb67_3095_437b_9b54d34ead8fcab2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 552 1 0 "62a26733_db4f_440f_9fb51db5fef61711" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 553 1 0 "0098c030_fe6b_49bb_92b77ef5a5c7372d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ConnectCOM") { // }} "" // {{{ 554 1 0 "e8776203_e1ed_4373_8a427cb0d8b8d29f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ComPort"), ComPort); // }} "" // {{{ 555 1 0 "4c600ed2_a490_4f3e_bdadfe3b174db193" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("BaudRate"), BaudRate); // }} "" // {{{ 556 1 0 "e77abf5c_e94e_469b_82ea0f774615a671" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 557 1 0 "aaebc2c7_eafc_456e_83386035ed203694" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MPEOptions"), MPEOptions); // }} "" // {{{ 558 1 0 "3b2a8a1c_5b74_4668_b7a5ca974a7658b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingCOM(ComPort, BaudRate, SimulationMode, MPEOptions, DeviceID, o_stepReturn); // }} "" // {{{ 559 1 0 "1a9f7ef9_8c04_4517_8d26efaa81d3eff7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 560 1 0 "104f0498_cc9f_4508_8f28e3b53675ef53" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 561 1 0 "0098c030_fe6b_49bb_92b77ef5a5c7372d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 562 1 0 "62a26733_db4f_440f_9fb51db5fef61711" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 563 1 0 "94f49f46_ad96_4874_9148653f8fa3302e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 564 1 0 "1abd6ad0_87b9_4459_b74e20f9717ebd2b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ClampFilterPlate") { // }} "" // {{{ 565 1 0 "bdc39916_5944_49a4_846784d94f27267f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 566 1 0 "cf252c80_073f_4e8b_85e84a546e80666b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ClampFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 567 1 0 "16a9c218_a7c3_403c_a7c005e96566f8d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 568 1 0 "de8afcf3_ec32_4067_895aceb7a7a650eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 569 1 0 "1abd6ad0_87b9_4459_b74e20f9717ebd2b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 570 1 0 "94f49f46_ad96_4874_9148653f8fa3302e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 571 1 0 "d19e0aae_3b5d_4b88_9b9fa6cd22d67f22" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 572 1 0 "421097a4_a57a_4dec_8b9257b5d77233e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_CollectionPlatePlaced") { // }} "" // {{{ 573 1 0 "ae857f70_e319_4ada_a8b086f120e84247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 574 1 0 "a173d887_781c_4262_9fa6c81e253bd32c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CollectionPlateHeight"), CollectionPlateHeight); // }} "" // {{{ 575 1 0 "7e167a7c_dfb2_4798_814039b7430ccbae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("OffsetFromNozzles"), OffsetFromNozzles); // }} "" // {{{ 576 1 0 "aa2d8e6c_c878_40f1_a1325cb8fe399514" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlatePlaced(DeviceID, CollectionPlateHeight, OffsetFromNozzles, o_stepReturn); // }} "" // {{{ 577 1 0 "6ad949b9_e02e_4686_be660950f5282aee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 578 1 0 "99fa8dd5_ac5f_4d13_91fb69b65d2bc0ea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 579 1 0 "421097a4_a57a_4dec_8b9257b5d77233e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 580 1 0 "d19e0aae_3b5d_4b88_9b9fa6cd22d67f22" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 581 1 0 "21b7e081_f229_400f_9a51a8b8a5412447" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 582 1 0 "b7625009_1717_4db6_8d24209ff3b8dbb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_CollectionPlateRemoved") { // }} "" // {{{ 583 1 0 "fc436f5c_aaba_4906_a4074c83d00f028c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 584 1 0 "65ba4a03_7064_45c5_8ae9ffb86a3234b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlateRemoved(DeviceID, o_stepReturn); // }} "" // {{{ 585 1 0 "39ef177a_96d2_411f_97c648ff2ed91ea8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 586 1 0 "cbdb85be_569e_40cb_93e3582de4fd718f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 587 1 0 "b7625009_1717_4db6_8d24209ff3b8dbb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 588 1 0 "21b7e081_f229_400f_9a51a8b8a5412447" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 589 1 0 "38689ea3_dc56_4d7c_88d585797b9d957e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 590 1 0 "ee3d4b03_3d8c_4718_9f927c1855c7346e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Disconnect") { // }} "" // {{{ 591 1 0 "acfb16ed_a9d1_4a63_a9c0106aff00758d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 592 1 0 "f0cbe63d_fe07_4cc6_8bcb70bf9c7de9ec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn); // }} "" // {{{ 593 1 0 "b23baddd_cdbc_45fd_8c093ab349a937f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 594 1 0 "1695a8ad_2f0f_48a1_a9d8534daaa45c88" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 595 1 0 "ee3d4b03_3d8c_4718_9f927c1855c7346e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 596 1 0 "38689ea3_dc56_4d7c_88d585797b9d957e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 597 1 0 "45f798d0_f63a_4141_9f0512725c85b742" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 598 1 0 "3d8efec9_ac55_4f4d_90f0259610f7394d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Dispense") { // }} "" // {{{ 599 1 0 "d9eb3796_7e12_47f9_b6636e222cb5d878" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 600 1 0 "b1b7d9a5_44ce_4588_b1315c2c2c0a6d6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 601 1 0 "e9efebdb_3e29_4a1f_9a03447005f6b247" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 602 1 0 "6812297a_3eee_4055_8de5373a96f6eb0c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 603 1 0 "b6c33a7b_d31f_4f02_8921532db5005869" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), NeedleOffset); // }} "" // {{{ 604 1 0 "f78d0de5_185c_4061_ad416fe94f5dba58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn); // }} "" // {{{ 605 1 0 "01ebd08b_bf22_4edc_b4101325c0ed5d7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 606 1 0 "46be0614_7064_45bf_962fe4fdb2d26ad3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 607 1 0 "3d8efec9_ac55_4f4d_90f0259610f7394d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 608 1 0 "45f798d0_f63a_4141_9f0512725c85b742" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 609 1 0 "c0d12f62_bf0c_4968_8cf8102df9290745" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 610 1 0 "e0397cd6_5fd2_4820_953df1804d2989f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Evaporate") { // }} "" // {{{ 611 1 0 "eff0d502_cbda_4d56_a060ee98b8acfa1b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 612 1 0 "358b8e75_dcca_4656_8f480e051d9768ac" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 613 1 0 "11f40dee_5289_4a85_b3065e4b85d93416" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 614 1 0 "e660629d_9388_44fa_9749984b17a66bc9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellDepth"), WellDepth); // }} "" // {{{ 615 1 0 "3a86a09d_a4ea_4a34_8573e644beb7c6a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 616 1 0 "6cc724c7_a4bf_4c46_948af3e23aaa8758" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 617 1 0 "6bba2cf9_561d_4a3f_87ee7949c7ce3fbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 618 1 0 "d305f425_1c51_43f7_9c5bd6ec76d64b05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 619 1 0 "e0397cd6_5fd2_4820_953df1804d2989f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 620 1 0 "c0d12f62_bf0c_4968_8cf8102df9290745" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 621 1 0 "54c61117_4dde_492d_91df73eafbdbdf0a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 622 1 0 "ea8576f1_52df_4787_b62e82c44a5b6131" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporatePrepare") { // }} "" // {{{ 623 1 0 "04b183eb_df7f_4775_a8db9b61d0822126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 624 1 0 "7ae5dae4_f3fe_42d9_b07c545e18248898" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 625 1 0 "67e84057_0c19_4600_b6bb1cda5b345f8d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 626 1 0 "31ab1ccb_49b6_45ab_886cb04421f727d1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellDepth"), WellDepth); // }} "" // {{{ 627 1 0 "f9f854b4_d03f_44fa_866ecad432e5ee59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 628 1 0 "0e37d7ed_b49b_42c3_b9306b90a8fbecba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 629 1 0 "bdc5441b_5578_4bb1_9a5511f8d6cb37a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 630 1 0 "82509201_581c_4a09_8c1fba65491074b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 631 1 0 "ea8576f1_52df_4787_b62e82c44a5b6131" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 632 1 0 "54c61117_4dde_492d_91df73eafbdbdf0a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 633 1 0 "f877f93d_359e_486f_aabbf156b38c0fd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 634 1 0 "be0cdb40_9439_44c4_9349319653177825" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporateEnd") { // }} "" // {{{ 635 1 0 "661eb571_7a3f_452f_8cd8e71af5633aa2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 636 1 0 "ce6d86eb_0d5e_4931_9b8ae8ab7b99d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 637 1 0 "407cb55f_f828_4adb_b9a1dcfb39934436" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_EvaporateEnd(DeviceID, Timeout, o_stepReturn); // }} "" // {{{ 638 1 0 "3281176b_4d2d_43ea_b218e196deacc5a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 639 1 0 "dc7eb698_c6ab_4bce_b2eae2a106e79c26" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 640 1 0 "be0cdb40_9439_44c4_9349319653177825" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 641 1 0 "f877f93d_359e_486f_aabbf156b38c0fd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 642 1 0 "77175285_9bc0_458e_bdb99486afa263f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 643 1 0 "1d9fee0e_9129_4e05_9387d48ad64ce5b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporateWithRate") { // }} "" // {{{ 644 1 0 "f74fcc26_c2be_481c_9b4822ade43b6399" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 645 1 0 "d104e730_2dfe_46de_9499ec6975f6d3ba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 646 1 0 "ef36faf4_19fc_4253_92c3ba78e66fa81b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 647 1 0 "4e02e5d8_e2c2_421e_9e232b4b54ffc755" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("EvaporateTravelDistance"), EvaporateTravelDistance); // }} "" // {{{ 648 1 0 "d5f4fc63_608e_48f5_be8989e9f0ed73d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 649 1 0 "ce2ba2cc_4f8f_4960_a2120a80bdee1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FollowRate"), FollowRate); // }} "" // {{{ 650 1 0 "72651c9a_a411_472d_9fbc4d5cf13dbe7f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 651 1 0 "6d1ded15_26bd_4832_a66e0a7ed7ae5de8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 652 1 0 "24da9a05_6ec1_4a5d_aa357161406c5b4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 653 1 0 "1d9fee0e_9129_4e05_9387d48ad64ce5b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 654 1 0 "77175285_9bc0_458e_bdb99486afa263f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 655 1 0 "18d62f91_3389_4a05_81dcd2b1f9f35eb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 656 1 0 "5517c3d2_626c_49ed_9f300f5eb7cad266" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterPlatePlaced") { // }} "" // {{{ 657 1 0 "6ad26884_293d_471f_87d63211dbb2130a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 658 1 0 "f712b14e_2361_4388_aaa3d1b6bdd76274" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FilterHeight"), FilterHeight); // }} "" // {{{ 659 1 0 "046c36b4_609e_41ad_802334b853237e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NozzleHeight"), NozzleHeight); // }} "" // {{{ 660 1 0 "9cd1e28f_9f73_4580_933330d72a187021" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_FilterPlatePlaced(DeviceID, FilterHeight, NozzleHeight, o_stepReturn); // }} "" // {{{ 661 1 0 "77cbd1e2_38c4_46cf_8a36d8bf2fd59668" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 662 1 0 "e9b09e36_5025_44eb_8a0241793ecb2130" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 663 1 0 "5517c3d2_626c_49ed_9f300f5eb7cad266" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 664 1 0 "18d62f91_3389_4a05_81dcd2b1f9f35eb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 665 1 0 "a8bdabef_328d_4914_85c9d5a5e206e280" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 666 1 0 "ba1982ca_d913_4372_a876d2c629a3da01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterPlateRemoved") { // }} "" // {{{ 667 1 0 "c8d80340_50aa_42c3_99a4c45d2c5a2e55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 668 1 0 "7ca7dac8_386f_4d72_a80c56436e8d337a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_FilterPlateRemoved(DeviceID, o_stepReturn); // }} "" // {{{ 669 1 0 "7815e103_9108_40ec_8c501ab868674b02" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 670 1 0 "7fab13f9_e6cb_4d15_9c7359f69f1452eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 671 1 0 "ba1982ca_d913_4372_a876d2c629a3da01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 672 1 0 "a8bdabef_328d_4914_85c9d5a5e206e280" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 673 1 0 "d93f150d_eae1_437f_a22a3b0c4c9072e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 674 1 0 "df5f2b51_da1c_47c3_83076cfc5952018e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Flush") { // }} "" // {{{ 675 1 0 "ebd897c5_30b8_4f3b_9955cc2c076a2cec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 676 1 0 "8a5b6ab5_73a5_448f_97d7f2f80f295781" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 677 1 0 "7618744c_4ba2_44a3_af152e17b8f23a82" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 678 1 0 "0b45dbd2_d2ac_4bbc_b063c7256c9e2f37" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 679 1 0 "7ebe8a95_b1cb_40d0_9bbf0caa753020ff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Flush(DeviceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn); // }} "" // {{{ 680 1 0 "f4745c1d_3edb_4f49_9389682fd5db4746" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 681 1 0 "84a474ac_82c0_447e_853e8a0e803cdc9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 682 1 0 "df5f2b51_da1c_47c3_83076cfc5952018e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 683 1 0 "d93f150d_eae1_437f_a22a3b0c4c9072e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 684 1 0 "117f1e32_da28_4bc8_ad90f5a4f2bef282" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 685 1 0 "467d4218_0310_4b7c_a0b5c6ba53779408" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetContainerCalibration") { // }} "" // {{{ 686 1 0 "8399e7aa_cf6e_40a4_94cbfd345e14133a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 687 1 0 "1b0cf945_ddeb_4f68_ad8567b71c28ba9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 688 1 0 "49eec349_8ea2_4006_8740931d862a8cc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetContainerCalibration(DeviceID, SourceID, CapacityVolume, EmptyReading, FullReading, CalibrationDate, o_stepReturn); // }} "" // {{{ 689 1 0 "c87d301f_8a12_4619_b911ef3098a17d58" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 690 1 0 "7e693f5e_19bf_4fe8_93ae99fb04f02aa3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CapacityVolume = StrFStr(CapacityVolume); // }} "" // {{{ 691 1 0 "8d684024_7a1e_41a0_aff0fbb060f288c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" EmptyReading = StrIStr(EmptyReading); // }} "" // {{{ 692 1 0 "e403fc76_66e2_4138_a91ad409fba41579" "{C1F3C015-47B3-4514-9407-AC2E65043419}" FullReading = StrIStr(FullReading); // }} "" // {{{ 693 1 0 "a338088c_aba6_4925_9499261419f3fd32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CapacityVolume, EmptyReading, FullReading, CalibrationDate, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 694 1 0 "467d4218_0310_4b7c_a0b5c6ba53779408" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 695 1 0 "117f1e32_da28_4bc8_ad90f5a4f2bef282" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 696 1 0 "28cc7be8_7ef9_43fd_a8b86cc9f0a88a77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 697 1 0 "883d189a_5580_49b9_92fa9f7ea0b841bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetHeaterStatus") { // }} "" // {{{ 698 1 0 "c3c00992_49fa_4e7a_930d860185676008" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 699 1 0 "a566cb57_a308_4f8d_ab4f730e5a7dcad6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Reset"), blnReset); // }} "" // {{{ 700 1 0 "6c9f1bfd_e7d9_49a3_9ffc43f57d0b87c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetCurrentHeaterStatus(DeviceID, blnReset, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, o_stepReturn); // }} "" // {{{ 701 1 0 "4e871da2_7414_4d04_af1133edc74f8ceb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 702 1 0 "17cbeaea_77c3_429f_852469beae65bff2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CurrentEvaporatorTemperature = StrFStr(CurrentEvaporatorTemperature); // }} "" // {{{ 703 1 0 "99e68adc_1ab2_44c2_99bb0d0791bb4b03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CurrentGasTemperature = StrFStr(CurrentGasTemperature); // }} "" // {{{ 704 1 0 "19ba4b88_434c_4874_adfb9c3ce28707c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Heating = StrIStr(Heating); // }} "" // {{{ 705 1 0 "8bfee3ed_2dfd_4096_95a3693ae02cb98b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 706 1 0 "883d189a_5580_49b9_92fa9f7ea0b841bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 707 1 0 "28cc7be8_7ef9_43fd_a8b86cc9f0a88a77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 708 1 0 "6161ab17_f584_4948_917386b1caf60999" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 709 1 0 "9f1343e7_8811_4e80_a8d30414ee14e3c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetHeaterRange") { // }} "" // {{{ 710 1 0 "ff106776_2ea1_4be4_bf299c1e9f4d6812" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 711 1 0 "d35c7d7b_4e20_4729_898cf76f032dbd77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Reset"), blnReset); // }} "" // {{{ 712 1 0 "eac04ccb_1d2f_4e47_a38e27549db3d0f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetHeaterTemperatureRange(DeviceID, blnReset, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, o_stepReturn); // }} "" // {{{ 713 1 0 "7e058389_5584_400d_af8f7683d9c64549" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 714 1 0 "cef6dc8b_b0ab_4b67_80965a20bad984a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumEvaporatorTemperature = StrFStr(MinimumEvaporatorTemperature); // }} "" // {{{ 715 1 0 "e95a4014_66ab_4bd9_9396f43fb303387c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumEvaporatorTemperature = StrFStr(MaximumEvaporatorTemperature); // }} "" // {{{ 716 1 0 "82d2e7b9_6b0f_4659_b3c4af2260f72b93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumGasTemperature = StrFStr(MinimumGasTemperature); // }} "" // {{{ 717 1 0 "9d086c63_6438_4455_839b70d859d33023" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumGasTemperature = StrFStr(MaximumGasTemperature); // }} "" // {{{ 718 1 0 "1c25f8f9_a087_4d7d_b537d06915cf733a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TargetTemperature = StrFStr(TargetTemperature); // }} "" // {{{ 719 1 0 "e0990ab5_662a_4046_a221118108390ad1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Heating = StrIStr(Heating); // }} "" // {{{ 720 1 0 "f32ac914_9488_4849_9b505cfae76c21a4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, Translate(""), Translate(""), id); // }} "" // {{ 721 1 0 "9f1343e7_8811_4e80_a8d30414ee14e3c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 722 1 0 "6161ab17_f584_4948_917386b1caf60999" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 723 1 0 "cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 724 1 0 "3be8b4d4_175f_4ea5_8a5c403023c23804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetPressureReadings") { // }} "" // {{{ 725 1 0 "d6ee9000_e96e_43ee_be294bac2de3cebd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 726 1 0 "62c2838f_1e9c_4f50_a8986bd6ab2e5735" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetPressureSensorReadings(DeviceID, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, o_stepReturn); // }} "" // {{{ 727 1 0 "9202b3b4_73ed_457a_8a0eb740d92668eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 728 1 0 "49fdda2e_2786_49cf_bbf53a56bb6cf951" "{C1F3C015-47B3-4514-9407-AC2E65043419}" InputPressureSensor = StrFStr(InputPressureSensor); // }} "" // {{{ 729 1 0 "5b345de1_5fff_4ef5_b48fac2958608067" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ManifoldPressureSensor = StrFStr(ManifoldPressureSensor); // }} "" // {{{ 730 1 0 "5083be24_6502_40dc_94e99eb7e72397de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HighPressureSensor = StrFStr(HighPressureSensor); // }} "" // {{{ 731 1 0 "c5d4f5bc_5388_4cac_a5c92cce84c5358c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LowPressureSensor = StrFStr(LowPressureSensor); // }} "" // {{{ 732 1 0 "93af4507_f837_4e4d_bd0cfa9d8f20db45" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 733 1 0 "3be8b4d4_175f_4ea5_8a5c403023c23804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 734 1 0 "cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 735 1 0 "8eb4fcd2_8586_4fdc_9eaa231938c2491c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 736 1 0 "fb5f809e_bea3_4152_8c23efc086a3f4c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetTemperatureRange") { // }} "" // {{{ 737 1 0 "04868a2f_2244_4262_b16ed3464405a2c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 738 1 0 "ac4b978a_8b0e_48c8_bfcc2cb81ada8852" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetTemperatureRange(DeviceID, MinimumTemperature, MaximumTemperature, o_stepReturn); // }} "" // {{{ 739 1 0 "878c4de8_f440_43d6_aa9a22d5f30c96bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 740 1 0 "9643b7dd_1445_4981_82306a0204482dcd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumTemperature = StrFStr(MinimumTemperature); // }} "" // {{{ 741 1 0 "5fb79249_c2be_45bc_a99aecb05a4cef34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumTemperature = StrFStr(MaximumTemperature); // }} "" // {{{ 742 1 0 "57512d47_ace9_4c17_a0287a31498292bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumTemperature, MaximumTemperature, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 743 1 0 "fb5f809e_bea3_4152_8c23efc086a3f4c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 744 1 0 "8eb4fcd2_8586_4fdc_9eaa231938c2491c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 745 1 0 "3f6b43d7_b3e1_4516_9a607047551e5f6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 746 1 0 "6be26021_e618_492e_8a3a5f94a52da0f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetVacuumStatus") { // }} "" // {{{ 747 1 0 "4db40245_36cd_40c8_b0602871bedce402" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 748 1 0 "cdd4bed1_2257_47d3_bb32dfb51dd99311" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetVacuumStatus(DeviceID, VacuumActive, o_stepReturn); // }} "" // {{{ 749 1 0 "434c4447_ccaa_4ae8_b5332ea4a5247979" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 750 1 0 "2758aebe_4437_4436_9ecd66602ecc20ea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" VacuumActive = StrIStr(VacuumActive); // }} "" // {{{ 751 1 0 "1a22fa96_1f2a_4efb_8d4d1070f05128b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, VacuumActive, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 752 1 0 "6be26021_e618_492e_8a3a5f94a52da0f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 753 1 0 "3f6b43d7_b3e1_4516_9a607047551e5f6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 754 1 0 "1fae7e92_6b1f_4f2a_8504e8aba7fe0846" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 755 1 0 "18c78d3a_83f1_4e2a_9721dc575c326856" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Initialize") { // }} "" // {{{ 756 1 0 "18e9c18e_3415_4f68_b3216e3a2bb3a082" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 757 1 0 "5335daba_8a63_418b_8286e19dbc73285e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Initialize(DeviceID, o_stepReturn); // }} "" // {{{ 758 1 0 "e9ab19e3_4828_4ead_93cb698560e3faff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 759 1 0 "67b12292_2128_495d_af7839b207477794" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 760 1 0 "18c78d3a_83f1_4e2a_9721dc575c326856" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 761 1 0 "1fae7e92_6b1f_4f2a_8504e8aba7fe0846" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 762 1 0 "d96ac0b7_1237_4603_ad86dfe4672ef89a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 763 1 0 "0addb922_82a5_48e4_bf52eeb97ac93f2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_InitializeWithParameters") { // }} "" // {{{ 764 1 0 "1c9e6c43_c0a4_4fa5_96eff1d2638b4426" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 765 1 0 "a9676aeb_9a8e_4f87_866088fd8da32782" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Smart"), Smart); // }} "" // {{{ 766 1 0 "b0f5b856_a01f_4937_bce0d90f8e48a0bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 767 1 0 "3d105105_b5a2_42bf_9008c50dfb529abf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("VacuumRunTime"), VacuumRunTime); // }} "" // {{{ 768 1 0 "1b067bb0_12d6_47c9_b86eb44ca7ac70a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 769 1 0 "abffb784_24c3_4278_9404e88b2a184ec3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 770 1 0 "7f31c229_eea4_4ebc_918ad520b4e80270" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 771 1 0 "0addb922_82a5_48e4_bf52eeb97ac93f2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 772 1 0 "d96ac0b7_1237_4603_ad86dfe4672ef89a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 773 1 0 "9e52a7cb_3167_4057_8d24d034c837de21" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 774 1 0 "5875c2d2_c94b_4860_9be1bc9f16bd64b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_SetSourceConfiguration") { // }} "" // {{{ 775 1 0 "77c0d7cc_1c53_47b5_af15f1eb5743701e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 776 1 0 "1150d6cb_b379_4fab_8bf98a17ac6ed92c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_SetSourceConfiguration(DeviceID, o_stepReturn); // }} "" // {{{ 777 1 0 "2ba32cb4_0177_497e_9a7f398e17134a01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 778 1 0 "a2b6bb52_3165_4bb9_986611d0b8594d1c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 779 1 0 "5875c2d2_c94b_4860_9be1bc9f16bd64b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 780 1 0 "9e52a7cb_3167_4057_8d24d034c837de21" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 781 1 0 "cf140f83_9405_4c31_aac2bda7e3c3644d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 782 1 0 "125ed949_ace4_48a0_a45208b5a26a9545" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetSourceConfiguration") { // }} "" // {{{ 783 1 0 "24cc9f9b_b984_4405_80b21f8bbad2c171" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 784 1 0 "105846b6_bda2_49d7_bb68c38e99c676ce" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetSourceConfiguration(DeviceID, o_stepReturn); // }} "" // {{{ 785 1 0 "8fd730db_f3ad_4187_819383f962b15dec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 786 1 0 "d5402a0c_e7d8_4021_98f2bc49164541bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 787 1 0 "125ed949_ace4_48a0_a45208b5a26a9545" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 788 1 0 "cf140f83_9405_4c31_aac2bda7e3c3644d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 789 1 0 "f0e280e8_46c7_4f0f_bce33a9d98578e01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 790 1 0 "656f66da_3ff6_4ceb_b3958dda3e826289" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_MeasureEmptyContainer") { // }} "" // {{{ 791 1 0 "23e6b66b_51c5_44d2_8107b570ab035bb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 792 1 0 "c791ded2_4daa_4097_811ad01cd9dbd85e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 793 1 0 "d4c8df90_fdb5_4fb4_a5ffe9e46525c9a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_MeasureEmptyContainer(DeviceID, SourceID, SensorReading, o_stepReturn); // }} "" // {{{ 794 1 0 "6766bf7d_aaa7_44dd_beb7bd1925733781" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SensorReading = StrIStr(SensorReading); // }} "" // {{{ 795 1 0 "f566d5c3_5839_4a53_aaa0e7e76d6a96d6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 796 1 0 "ca746d4d_adf9_4d6d_b0172f1cb9e3cefe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(""), Translate(""), id); // }} "" // {{ 797 1 0 "656f66da_3ff6_4ceb_b3958dda3e826289" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 798 1 0 "f0e280e8_46c7_4f0f_bce33a9d98578e01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 799 1 0 "5be53554_4034_4654_a74514eb0d84e4a0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 800 1 0 "ce68b054_3aea_4f0f_9742872cca60f368" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_MeasureFullContainer") { // }} "" // {{{ 801 1 0 "7ad49fa3_f8ed_4826_8c29ea54aff99447" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 802 1 0 "636296bf_cd25_4c6e_a97120b96714e0a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 803 1 0 "1025d7d1_0cb5_4c03_93a47206d7a73279" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_MeasureFullContainer(DeviceID, SourceID, SensorReading, o_stepReturn); // }} "" // {{{ 804 1 0 "14a2a705_9362_44f9_aacee14e4189bc2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SensorReading = StrIStr(SensorReading); // }} "" // {{{ 805 1 0 "64c67d08_dac7_49dc_8a3082c4658649d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 806 1 0 "08dbfd92_e2cd_4c53_8d8b8afb8f41b76a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(""), Translate(""), id); // }} "" // {{ 807 1 0 "ce68b054_3aea_4f0f_9742872cca60f368" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 808 1 0 "5be53554_4034_4654_a74514eb0d84e4a0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 809 1 0 "9e79226f_dd2d_49f1_9ab8ca9ddc07f66d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 810 1 0 "52fa4642_56e3_46b8_a5170d58a3d45e6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Prime") { // }} "" // {{{ 811 1 0 "d59e0e58_e6a4_49dc_b79c3b224f9250f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 812 1 0 "81800d57_5b2e_4f60_80fb02f54c6d898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 813 1 0 "6f11abee_b07f_4e3a_a91a2bb6132b9346" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 814 1 0 "65f68e8f_a3f8_4c0e_b02af46ef0830a94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 815 1 0 "92c62640_1748_47f5_a5b2d63033fab0fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 816 1 0 "bce1d424_198d_4a66_bb5cfcef4223a4c1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Prime(DeviceID, SourceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn); // }} "" // {{{ 817 1 0 "1d0fc35a_1e8f_492f_8115484ef5e4094c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 818 1 0 "7b33278e_8337_43df_80fb1df2dc8d7e27" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 819 1 0 "52fa4642_56e3_46b8_a5170d58a3d45e6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 820 1 0 "9e79226f_dd2d_49f1_9ab8ca9ddc07f66d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 821 1 0 "90d403df_555f_4782_bc0e9655c9dda244" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 822 1 0 "6f58ba5c_3565_4ac3_8325c7d865499fef" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterToCollection") { // }} "" // {{{ 823 1 0 "327328cb_2c07_4cff_b99aff475bf220b0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 824 1 0 "c67ca153_084e_49de_aa07c55210f0743c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ControlPoints"), ControlPoints); // }} "" // {{{ 825 1 0 "3ccb3a1f_4958_435b_b896ebc512029a6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("ReturnPlate"), ReturnPlate); // }} "" // {{{ 826 1 0 "d9d5add8_e82e_4761_b5b96d5f19ec1723" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToCollectionPlate(DeviceID, ControlPoints, ReturnPlate, o_stepReturn); // }} "" // {{{ 827 1 0 "952f2d23_1b1e_4ff3_b0306759a52e52a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 828 1 0 "8d9318f1_ab21_410d_a9bfb449f75064ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 829 1 0 "6f58ba5c_3565_4ac3_8325c7d865499fef" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 830 1 0 "90d403df_555f_4782_bc0e9655c9dda244" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 831 1 0 "8e0266d7_a3cc_479c_b67864f9bf0a850e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 832 1 0 "9c5d9740_c35c_46a4_bf36695ba9a70bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterToWaste") { // }} "" // {{{ 833 1 0 "45a60cc8_74a9_4d7c_9eae47c478baa5c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 834 1 0 "1549fe1a_4e94_418f_bb409f1556ef9241" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ControlPoints"), ControlPoints); // }} "" // {{{ 835 1 0 "6a1fdb1f_ef59_4c6d_998478bb54397381" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("ReturnPlate"), ReturnPlate); // }} "" // {{{ 836 1 0 "74579c6b_27e5_47a2_9358294506ae9b62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 837 1 0 "fbfbbfb6_9858_4eee_aecb1e386ef2ee6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 838 1 0 "e8ddd588_e12c_4e6a_9318d0626a183210" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToWasteContainer(DeviceID, ControlPoints, ReturnPlate, WasteContainerID, DisableVacuumCheck, o_stepReturn); // }} "" // {{{ 839 1 0 "104d821e_df7b_4d35_9358fdbad381b0c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 840 1 0 "930b1fd7_1382_4dd3_bec3f722282383d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 841 1 0 "9c5d9740_c35c_46a4_bf36695ba9a70bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 842 1 0 "8e0266d7_a3cc_479c_b67864f9bf0a850e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 843 1 0 "12fe0846_bf72_4286_8bd87488438262ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 844 1 0 "88ca5064_cc0c_42e8_8cf1b70855183b72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Disconnect") { // }} "" // {{{ 845 1 0 "469fd42b_7a31_4d98_91efb31d12064e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 846 1 0 "a37b4aa9_5d2f_4e3a_8134f806b1cc7204" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 847 1 0 "86edebb2_72b8_49f4_84f46c72b1cacaaa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 848 1 0 "d8835a8b_64ef_433a_8ca5a0a1a7302e05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 849 1 0 "88ca5064_cc0c_42e8_8cf1b70855183b72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 850 1 0 "12fe0846_bf72_4286_8bd87488438262ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 851 1 0 "0f50bc52_c930_4613_a737fe8df81950f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 852 1 0 "a4cfb4d0_9450_4bea_a67986a410d3d0ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_SaveContainerCalibration") { // }} "" // {{{ 853 1 0 "37f47b7e_5737_474b_907e35429bd3b21d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 854 1 0 "03cb3efd_4e78_47b4_8c863f235820287b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 855 1 0 "b4a3f09e_102f_45d2_a582493e7a8a228f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 856 1 0 "dce24d9b_3180_4f67_ab31767613c972ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 857 1 0 "a4cfb4d0_9450_4bea_a67986a410d3d0ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 858 1 0 "0f50bc52_c930_4613_a737fe8df81950f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 859 1 0 "1c67aaeb_23b3_4adc_8b6d8285f92b9619" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 860 1 0 "49d34248_b422_4716_b7759002c58bacb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StartContainerCalibration") { // }} "" // {{{ 861 1 0 "1a03095a_5902_4617_8f24e5d961eb85be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 862 1 0 "51b0d6df_b187_4cef_88ea5af60e98888f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 863 1 0 "c754fc8f_8a46_4c44_9ac4283328bd7a51" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Volume"), Volume); // }} "" // {{{ 864 1 0 "25291ac1_062d_4046_bf617e60aa36b67c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StartContainerCalibration(DeviceID, SourceID, Volume, o_stepReturn); // }} "" // {{{ 865 1 0 "bfce4774_8c8b_4403_8e0b05cc4d59500b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 866 1 0 "bc1476ec_35b7_4ec9_989c3db696569d39" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 867 1 0 "49d34248_b422_4716_b7759002c58bacb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 868 1 0 "1c67aaeb_23b3_4adc_8b6d8285f92b9619" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 869 1 0 "dbd9907a_199c_4651_90fe7cbb03cace83" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 870 1 0 "d748a994_8826_4dce_8d07e63e712b8463" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StartContainerCalibration") { // }} "" // {{{ 871 1 0 "6443322c_5eae_4730_a5933771d05f74fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 872 1 0 "0adc10ee_e236_40cc_851240df83158a48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 873 1 0 "661975a0_0aef_4017_bdd063beab2d6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Seconds"), Seconds); // }} "" // {{{ 874 1 0 "0e7caea8_5fcb_4b6c_954eb1ae00f391a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 875 1 0 "b681e1eb_fcbe_49e6_9116e45dfa6449ea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StartVacuum(DeviceID, WasteContainerID, Seconds, o_stepReturn); // }} "" // {{{ 876 1 0 "82d37b5c_3c66_495e_9db5a04e780cef4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 877 1 0 "182c0a15_8dbc_4c35_add3bac6dba81098" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 878 1 0 "d748a994_8826_4dce_8d07e63e712b8463" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 879 1 0 "dbd9907a_199c_4651_90fe7cbb03cace83" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 880 1 0 "4dfdb03a_1a13_4215_be00ca55de734fb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 881 1 0 "1d06fa20_af8b_41f5_b3f3daa03a904ebd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StopVacuum") { // }} "" // {{{ 882 1 0 "54fa31f5_5b7c_4668_927dc6f87a39b99e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 883 1 0 "0bf5dd1e_2e18_477b_adee0722aee70510" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StopVacuum(DeviceID, o_stepReturn); // }} "" // {{{ 884 1 0 "71f9a311_dfa0_4d62_8963c5c0ad21b5f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 885 1 0 "fe23d082_725d_444c_83290693ee1daf6a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 886 1 0 "1d06fa20_af8b_41f5_b3f3daa03a904ebd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 887 1 0 "4dfdb03a_1a13_4215_be00ca55de734fb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 888 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 889 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 890 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Initialize") { // }} "" // {{ 891 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 892 1 0 "efe73491_e5b4_499e_9b3f298c8b7a6398" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 893 1 0 "5c0fe710_4afe_4b11_bf186cfe8dc87978" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{ 894 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 895 1 0 "110af9db_52cf_4a40_94724a7476c48d86" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn); // }} "" // {{{ 896 1 0 "af9bf513_7c00_47bf_aee50c7cdb333b5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Initialize: "), o_stepReturn); // }} "" // {{{ 897 1 0 "cf0a8758_8a16_429a_97f320a142945224" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 898 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 899 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StartTempControl") { // }} "" // {{ 900 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 901 1 0 "de87c5cd_92f6_45a8_9ebd6fe71ac65dbc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 902 1 0 "26949b4a_2c44_4548_8de048c4f48bd98d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 903 1 0 "8ae03ef4_8584_4957_a32601dc8599dadf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn); // }} "" // {{{ 904 1 0 "934ba752_5ec3_489b_ae5a40dd1ea20440" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Start Temperature Control:"), o_stepReturn); // }} "" // {{{ 905 1 0 "a3528747_6990_4387_8839b01b71c3b754" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 906 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 907 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 908 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_SetTarget") { // }} "" // {{ 909 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 910 1 0 "55e81697_10a3_42fb_8777236a132ff0b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 911 1 0 "0177c1a2_7380_4683_94ff93e2ed1299b2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 912 1 0 "15559e31_3f7a_4336_9cabca6758b7c253" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("TargetTemperature"), TargetTemperature); // }} "" // {{ 913 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 914 1 0 "0dcffa9d_ea82_418b_be95240c1bfd0d77" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn); // }} "" // {{{ 915 1 0 "e9b0b663_7dd3_4e55_b206572d2c8a92c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Set Target:"), o_stepReturn); // }} "" // {{{ 916 1 0 "08ecb91c_e9c8_4c61_aca2c1f89fd97bab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 917 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 918 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StopTemperatureControl") { // }} "" // {{ 919 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 920 1 0 "b67518d4_e443_4a8f_947e8c457680c63e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 921 1 0 "045fda52_2303_4244_833066fb0005c21b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{ 922 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 923 1 0 "1c8947fe_b7a1_455a_94e7672ad3593b08" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn); // }} "" // {{{ 924 1 0 "285287f8_a3f9_43f0_9799c3ad98e59b9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco Stop Temperature Control:"), o_stepReturn); // }} "" // {{{ 925 1 0 "88d1a80e_0aa9_4314_ba83bc772f71a589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 926 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 927 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Terminate") { // }} "" // {{ 928 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 929 1 0 "c963c353_41bc_4f4a_b74a666b28831950" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("StopAllDevices"), StopAllDevices); // }} "" // {{ 930 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 931 1 0 "ea2ceb94_04fa_4204_96db2caf6871231f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn); // }} "" // {{{ 932 1 0 "cd495cf5_43ff_4b30_b0baa1f2cd96cf0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Terminate:"), o_stepReturn); // }} "" // {{{ 933 1 0 "bcce43cd_2b64_4caf_89bef8978a011dc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 934 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 935 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 936 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 937 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_Initialize") { // }} "" // {{ 938 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 939 1 0 "d824843f_bf44_4e8b_bb434b50a8b65716" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 940 1 0 "45b9f513_7eaf_4e63_ae92391c28cf15b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 941 1 0 "7f058eec_3092_45ce_862c43a3e0853c7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 942 1 0 "56a4490f_902b_4043_8172466a64e332bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Simulate"), Simulate); // }} "" // {{ 943 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 944 1 0 "c44a492c_8123_465b_acd4ff374583777d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn); // }} "" // {{{ 945 1 0 "a62df2e9_44bb_4099_a4d0597fbf0705de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Initialize:"), o_stepReturn); // }} "" // {{{ 946 1 0 "de7bfb5a_b1fa_42ee_b461782a3c381af4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 947 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 948 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_MoveToPosition") { // }} "" // {{ 949 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 950 1 0 "3092ee64_df80_4e56_b3cdffc0827e3c2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 951 1 0 "4284a9cf_3ea6_42f5_ae1f62d82cd11ebe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Angle"), Angle); // }} "" // {{ 952 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 953 1 0 "5b44092b_0faa_47ae_8005717c87a0f334" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn); // }} "" // {{{ 954 1 0 "4d912417_89ed_44f2_941bfb44efed0e2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Move to Position:"), o_stepReturn); // }} "" // {{{ 955 1 0 "0540bb67_399d_468d_853dd6ca4bb1c285" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 956 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 957 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 958 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 959 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "moveSequence") { // }} "" // {{{ 960 1 0 "6e83eea3_8863_4ca0_9ff603380f0dc4d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("inputSequence"), inputSequence); // }} "" // {{{ 961 1 0 "6b8903c6_6977_458a_8409f93724089454" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 962 1 0 "77d9a84d_5987_4b3c_a76757ce15a19302" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 963 1 0 "13c73535_4a98_49e2_ba1a02c30f02035b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 964 1 0 "a33ebddb_88d8_4440_9a78132ed62d97f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, inputSequence, seq); // }} "" // {{{ 965 1 0 "1dcc4914_aa2f_439e_8a2f431687c33852" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqFirstPosition = SeqGetPositionId(seq); // }} "" // {{{ 966 1 0 "01f7bf35_3538_441d_98904fa827b05e68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 967 1 0 "a37851fe_b9d0_42fa_9ccca7dd7b352a9c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{{ 968 1 0 "fe9d84b8_86ec_4552_b187147351886cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqSecondPosition = SeqGetPositionId(seq); // }} "" // {{{ 969 1 0 "5fa8b88a_cf88_49e1_8cb574503dc60e56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(seqFirstPosition, seqSecondPosition); // }} "" // {{{ 970 1 0 "e590c4e1_91dd_41c0_82a254d4134fb734" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("First check"), Translate("Second check")); // }} "" // {{{ 971 1 0 "2127d6de_e8bd_455a_88ad20e73b767061" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 972 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 973 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 974 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 975 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 976 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_measure") { // }} "" // {{{ 977 1 0 "7c314622_d15c_42aa_a88b3d71caa33d0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 978 1 0 "9f15b042_95cd_4241_9b6262d3a4979ca7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 979 1 0 "34064a8d_5567_4fe5_b4349d0d061b9a1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 980 1 0 "0e34e118_df68_49fa_b3b9228d63deb6d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 981 1 0 "025eece8_72cd_4190_a092d806fbab65a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 982 1 0 "269c134a_bc59_4578_8da8bb7559f234a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 983 1 0 "36ec28c1_360b_46e9_9243c01dbd3874e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 984 1 0 "58445956_3204_41a3_a7acb03aaf25ccd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 985 1 0 "465c2002_18cb_4ff2_9df9e423dbc6837c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 986 1 0 "40682224_6d73_4a7c_a2e33641f1768d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 987 1 0 "e43a57a6_d83b_41d1_adf33f8f77ca7bc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 988 1 0 "12a6bd74_f75b_44d1_b6f7c26d279d9610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 989 1 0 "71b8f8bc_65c1_4e97_ab6eae03040f51dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 990 1 0 "a8ca8abd_aa7a_412c_be527eb4e81efcb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 991 1 0 "a8647b92_b569_4a75_99a5333c438b3a23" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 992 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 993 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 994 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 995 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate_Dyn") { // }} "" // {{{ 996 1 0 "de6a4eb0_04e1_47fc_86e27009d71152cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 997 1 0 "5f551457_7af9_4567_bceacdf0018c9c38" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 998 1 0 "60ee9fa5_c549_43a9_bbccdb0b14819583" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 999 1 0 "2211f515_9e69_4a1c_9603becd6fd866cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1000 1 0 "8449e1f4_6561_4b51_b91aa14423565eb2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 1001 1 0 "4429d4bb_e2fb_451f_8558de74111dbe3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Variance"), Variance); // }} "" // {{{ 1002 1 0 "a918fadc_db95_4e4b_9c445a903a59f17a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 1003 1 0 "7611bb65_5e77_408e_98384f0fec68e958" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 1004 1 0 "74418f44_640a_4b4b_88234a74841f1dbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate Dynamically"), o_stepReturn); // }} "" // {{{ 1005 1 0 "13218e03_9ac9_44ed_8af864397e865cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1006 1 0 "6257eb41_ce75_45b1_bea89bce20631222" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1007 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1008 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1009 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1010 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate") { // }} "" // {{{ 1011 1 0 "c7a809a1_1dc8_47c2_a8006c785355c50e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 1012 1 0 "27f7a889_0250_42a5_87699d0b0d52d36b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 1013 1 0 "b624fe53_a0c2_44e7_92eb12cc744fa799" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1014 1 0 "9f642188_0286_4e80_81cb485423a155c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1015 1 0 "c7530a85_7f29_4069_9a8e94318ffec0d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 1016 1 0 "849206a3_ea5c_4440_a08cdbcb81354e94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 1017 1 0 "9f9ab695_0d32_4bf4_bf5a4b0207a2c780" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 1018 1 0 "c1db8c11_4c25_4c9c_b424e06999583f09" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1019 1 0 "29e43762_b009_40ad_b93a5ac2372cca00" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1020 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1021 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1022 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1023 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Enable_Extended_Log") { // }} "" // {{{ 1024 1 0 "1791ad6e_39b2_4442_8b4470d0fc5497fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn); // }} "" // {{{ 1025 1 0 "b22a7836_ed52_4e9d_9e5df5babf8fa142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1026 1 0 "d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1027 1 0 "8d68d8f1_5b56_488b_a0676b4b50a35221" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1028 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1029 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1030 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1031 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Get_Last_Error") { // }} "" // {{{ 1032 1 0 "11bf85a6_3df2_4245_839282a900f3db71" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1033 1 0 "2c0b2633_5d81_41a1_aa90c51eb8d9d23d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn); // }} "" // {{{ 1034 1 0 "4d60f4e2_175b_4a4b_9b0bfb0f63211da0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Get Last Error"), o_stepReturn); // }} "" // {{{ 1035 1 0 "76df37d9_5928_4269_937630b417ad9a11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1036 1 0 "a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1037 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1038 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1039 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1040 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Initialize") { // }} "" // {{{ 1041 1 0 "a37d4042_a872_4da0_bf60a51312d5cc22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1042 1 0 "77530965_cb1f_4563_a1d848bb4faa3bb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1043 1 0 "295c3bab_f7f4_47d0_8075cf658ee0436f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn); // }} "" // {{{ 1044 1 0 "69f13066_cc39_48aa_85b093e1bc056907" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrIStr(o_stepReturn2); // }} "" // {{{ 1045 1 0 "3a9d7ad8_b8d0_45ee_9004e77ed5fbe471" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1046 1 0 "178d10c9_fe18_479a_b3e7922f87282612" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 1047 1 0 "66935de2_85a3_4ed0_95cddf772b15fb48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1048 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1049 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1050 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1051 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Measure_Dynamically") { // }} "" // {{{ 1052 1 0 "69eede79_0b96_4634_a4ed7995201d9b7d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1053 1 0 "6a018697_b8f4_4088_b8c650a2f028d197" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Precision"), Precision); // }} "" // {{{ 1054 1 0 "dfbe88b8_1dda_42ac_8175799123584051" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1055 1 0 "3ef27a25_aec7_4d5b_beb743b713c7526e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1056 1 0 "74a87116_8260_466d_a78e98fe0544a891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 1057 1 0 "425d37a5_2d55_4b09_a607303c754935db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure_Dynamically(ModuleID, Temperature, Precision, Timeout, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 1058 1 0 "0df3fc00_0550_45fa_b224d60b9bcd06c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 1059 1 0 "26992ae0_59eb_4678_ae304b460a7034db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 1060 1 0 "3beda7c9_5769_4578_b31431d2bab6d131" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 1061 1 0 "141952da_a201_4e85_9e446006849a95bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 1062 1 0 "f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1063 1 0 "5487a4f7_a9f8_448e_98b2cb671cb9c069" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 1064 1 0 "c8e7c221_d1e4_4818_b3e077f9aeb6a0a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 1065 1 0 "611376c4_8c68_46f2_8947cec12bb313f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 1066 1 0 "e113c0e5_7ab9_4244_86b73e7f24d2bfc8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 1067 1 0 "6286c2d7_a138_4844_bc77fd8a40a6a486" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1068 1 0 "39fd3518_8a14_43a1_8d41240f577c94eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1069 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1070 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1071 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1072 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Battery") { // }} "" // {{{ 1073 1 0 "c83f58ac_8db7_4477_bed8e57c9c784b8a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1074 1 0 "4b343bdb_fe40_4daa_8382b1265575e03a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn); // }} "" // {{{ 1075 1 0 "98f43381_9679_4d9f_b3d1238ed4c1d0c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1076 1 0 "b95371f0_7532_4426_b980d9824bf1d2b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ChargeCounter = StrIStr(ChargeCounter); // }} "" // {{{ 1077 1 0 "15324eca_50a4_4530_be7f08cdef0e6514" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BatteryCondition = StrIStr(BatteryCondition); // }} "" // {{{ 1078 1 0 "e694349e_13ad_46c1_b18f5eb4688f510e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ActualCharge = StrIStr(ActualCharge); // }} "" // {{{ 1079 1 0 "279c0c8e_1d53_437f_ac5e74b0ccffc7a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1080 1 0 "92db84c4_89c2_4902_819012506538681c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate("0"), Translate("0"), Translate("0"), Translate("0"), id); // }} "" // {{ 1081 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1082 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1083 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1084 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Calibration") { // }} "" // {{{ 1085 1 0 "250cbb57_43e2_4ca3_8ac97a4f8a848ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1086 1 0 "e2f361b4_fb8d_4bf8_b53c05720323632b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ProbeNumber"), ProbeNumber); // }} "" // {{{ 1087 1 0 "6e7357dd_030a_4f9d_b5cda736b409bbee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn); // }} "" // {{{ 1088 1 0 "aa859c68_b2ab_4304_9501a2d752587df6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowValue = StrFStr(pHLowValue); // }} "" // {{{ 1089 1 0 "7331e4fa_3e06_499a_84eed922b712aca5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowVoltage = StrFStr(pHLowVoltage); // }} "" // {{{ 1090 1 0 "3c2e720a_1c6e_4f09_afe077215aa438e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighValue = StrFStr(pHHighValue); // }} "" // {{{ 1091 1 0 "a9363a15_98fa_4a49_8451b25c27edea3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighVoltage = StrFStr(pHHighVoltage); // }} "" // {{{ 1092 1 0 "73007841_7490_489f_9c595a8e085e3a59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationTemperature = StrFStr(CalibrationTemperature); // }} "" // {{{ 1093 1 0 "49c841c4_b5cf_4ac7_9c2e87a2dc939210" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationOffset = StrFStr(CalibrationOffset); // }} "" // {{{ 1094 1 0 "d3535c95_47a6_46a6_80f73d15c4582508" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlope = StrFStr(CalibrationSlope); // }} "" // {{{ 1095 1 0 "a273e170_1488_4e16_884ae09c3a26d828" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio); // }} "" // {{{ 1096 1 0 "4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1097 1 0 "9ae40f13_d6cb_4a4e_9dc995de1da2d637" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Request Calibration Values"), o_stepReturn); // }} "" // {{{ 1098 1 0 "5aca9095_546e_4df5_b24364da04e44fe5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id); // }} "" // {{ 1099 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1100 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1101 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1102 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Probe_Data") { // }} "" // {{{ 1103 1 0 "04b155be_097f_4f2d_add1392fbf78b5f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1104 1 0 "c40a59cd_e266_4cc3_aa3dd3d526502930" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn); // }} "" // {{{ 1105 1 0 "306c68bb_ffd7_4233_b7f0c2c67678dfdf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1); // }} "" // {{{ 1106 1 0 "bbd1faef_5b8f_41ba_bf74a019b05da039" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2); // }} "" // {{{ 1107 1 0 "cb244d85_a14b_4bcb_ab81c5cdc38c6552" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3); // }} "" // {{{ 1108 1 0 "5476cf0c_49cc_4602_aec72872116d2e6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4); // }} "" // {{{ 1109 1 0 "6883841a_44f5_417f_8574566ed15ae444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), o_stepReturn); // }} "" // {{{ 1110 1 0 "fefec950_2bfa_429e_bdf791dc40dd0495" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1111 1 0 "0f6be956_31e3_4d1e_b232c4dc908ea6f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1112 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1113 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1114 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1115 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Technical_Data") { // }} "" // {{{ 1116 1 0 "3c80e1e2_a904_42ac_a3ddd5df5ca3a196" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1117 1 0 "8b2b24be_b84b_41b8_bd0f088f32554cb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 1118 1 0 "552e7bb6_cbdf_49ec_86ac28b54cae7f58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 1119 1 0 "1634fedb_a7e1_4130_ac1fb8d55f47b9e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HardwareNumber = StrIStr(HardwareNumber); // }} "" // {{{ 1120 1 0 "2cfb8725_b283_48b0_906a9741fe336744" "{C1F3C015-47B3-4514-9407-AC2E65043419}" PartNumber = StrIStr(PartNumber); // }} "" // {{{ 1121 1 0 "7b9a6dfa_9df8_40a8_9c0c39981dcf97e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Revision = StrIStr(Revision); // }} "" // {{{ 1122 1 0 "771c0483_6ea2_4299_81c7598839a5027b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SerialNumber = StrIStr(SerialNumber); // }} "" // {{{ 1123 1 0 "790984ff_e065_4212_a5c420f04d9f7e4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), o_stepReturn); // }} "" // {{{ 1124 1 0 "79aaa9cb_2db1_4f5d_8385023783e5cc82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1125 1 0 "371d6452_cf9d_4abe_9463f54ab7831231" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id); // }} "" // {{ 1126 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1127 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1128 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1129 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Voltage_Data") { // }} "" // {{{ 1130 1 0 "b6c0eb00_003a_45ed_9899c407d864455c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1131 1 0 "e4801131_30dc_4e2d_8ac9e80c0c13972c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Selector"), Selector); // }} "" // {{{ 1132 1 0 "ee48a65d_794b_411d_bb1668a267206d8b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn); // }} "" // {{{ 1133 1 0 "bf78a104_f3d4_45b6_a573a7219dcf05e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 1134 1 0 "ab32fbfb_2be2_4f6d_9c49def79adcfe31" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1135 1 0 "eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(""), Translate(""), id); // }} "" // {{ 1136 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1137 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1138 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1139 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 1140 1 0 "51fd11a2_c173_4d8a_be50512a820eb424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1141 1 0 "b1268215_064b_40bc_8b9e75cfc0edeac8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1142 1 0 "7665963b_aa9b_4a3c_ba522887f3b15ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1143 1 0 "8327c869_96c0_4394_9bf4c5b5c19f30d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1144 1 0 "5a5455ae_5598_4a29_8c5f621b0586ba79" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1145 1 0 "f534cbac_4de3_4425_85299c07c6ff73cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 1146 1 0 "12b0cc6a_4826_48ce_82c690ddf98441a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1147 1 0 "aee63add_2789_4971_b4867510d938caf6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1148 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1149 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1150 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1151 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Charge_Parameters") { // }} "" // {{{ 1152 1 0 "5e24703a_30cb_4538_aec7ba85b7c0d2a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1153 1 0 "31630603_a72b_4d8b_a21a501f5336c619" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Charge"), Charge); // }} "" // {{{ 1154 1 0 "41b8aa8b_7d8e_4351_ad9664e334fa00f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AutoCharge"), AutoCharge); // }} "" // {{{ 1155 1 0 "504d0d26_95ad_4181_a7c38162018496cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("AutoChargeLevel"), AutoChargeLevel); // }} "" // {{{ 1156 1 0 "576ecb10_c479_461f_9249f554f27e398b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn); // }} "" // {{{ 1157 1 0 "80503782_9e9a_4986_9e4bcdeac598c749" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Charge Parameters"), o_stepReturn); // }} "" // {{{ 1158 1 0 "ade249f5_6aa1_4939_90a22e6af0864e5e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1159 1 0 "4fb997db_4cdf_4b51_85bbb23941f19edb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1160 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1161 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1162 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1163 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Probe_Replacement_Date") { // }} "" // {{{ 1164 1 0 "eb0a7cc0_c83a_45a8_8bd6adbf05cadabe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1165 1 0 "c762429d_3619_4e70_9765fe207dab3d54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Probe"), Probe); // }} "" // {{{ 1166 1 0 "18bf75b8_9aa3_46d2_a3ad3bbab8c1e126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1167 1 0 "2b2bbaed_84c1_46d2_bd024b425aefa336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1168 1 0 "380453f0_b3e8_47ac_a06eb91552b3a11f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1169 1 0 "a8fcf799_ec41_4160_910a9c78e5395ae2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1170 1 0 "c95c2987_8098_48ed_9ad284801d556587" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Probe Replacement Date"), o_stepReturn); // }} "" // {{{ 1171 1 0 "4e986dcc_ee8e_4cc0_bb83628d0a0ec284" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1172 1 0 "d46fb139_6c48_4f2a_b09293a8a3509a12" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1173 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1174 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1175 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1176 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Shutdown") { // }} "" // {{{ 1177 1 0 "aec40299_6cef_4e16_ad88bccbdcae3b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1178 1 0 "c7715d80_e089_40ea_86fe6a446a2c9378" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Mode"), Mode); // }} "" // {{{ 1179 1 0 "212772c6_0ff7_41ef_9c35fb5828034d90" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn); // }} "" // {{{ 1180 1 0 "82055c44_b706_4c16_99b47c2a4ae600e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Shutdown"), o_stepReturn); // }} "" // {{{ 1181 1 0 "d76b0e51_c107_49cd_b6bcd25c44e4d066" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1182 1 0 "fbbaa73a_fa45_446d_8052e6e618fd2fad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1183 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1184 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1185 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1186 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Technical_Data") { // }} "" // {{{ 1187 1 0 "d6a005e1_4502_49d8_9a510afa4a2e833e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1188 1 0 "5ad112b0_da19_4b1b_a4649033defa7fef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 1189 1 0 "f4094e68_7940_4706_bae95f6277784476" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PartNumber"), PartNumber); // }} "" // {{{ 1190 1 0 "2b53f199_42d1_4808_a128c8ef4354e216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Revision"), Revision); // }} "" // {{{ 1191 1 0 "b5bf6715_e2e6_4e19_ad453dbb18396d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SerialNumber"), SerialNumber); // }} "" // {{{ 1192 1 0 "8cd5ff7f_9cb8_4f34_8afeb35175b47032" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 1193 1 0 "b60d9996_aa66_483d_b61518ffca638e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Technical Data"), o_stepReturn); // }} "" // {{{ 1194 1 0 "164f5289_e710_44eb_a1ea51e1622a7813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1195 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1196 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1197 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1198 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Trace_Level") { // }} "" // {{{ 1199 1 0 "dd6ba7d4_f5cc_4725_9776848c6e8343cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1200 1 0 "5a2c7ac9_8800_4926_96f26337aee59504" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1201 1 0 "88c51a62_4453_4cf5_ba0682a2cb1da767" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1202 1 0 "159aeb3e_3ed4_4ddc_a11cdfd939a7db7d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Trace Level"), o_stepReturn); // }} "" // {{{ 1203 1 0 "c3a5cc94_f346_4d04_a4be1fd04efbccc1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1204 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1205 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1206 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1207 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Sleep") { // }} "" // {{{ 1208 1 0 "153dc01b_be4b_403a_a40226aa4778c709" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1209 1 0 "a6f7384c_4c2e_4b3b_9682c00fb7a2f978" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn); // }} "" // {{{ 1210 1 0 "e82cf943_58b3_463e_a86afb9882353228" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Sleep"), o_stepReturn); // }} "" // {{{ 1211 1 0 "636ca48b_8789_40cc_8fb4dc35e8cbab54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1212 1 0 "5fb5b228_5342_414d_a548ac8dd5add837" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1213 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1214 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1215 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1216 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Terminate") { // }} "" // {{{ 1217 1 0 "b53cd271_035b_4870_961c552983b39351" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1218 1 0 "e133d234_4ccd_44cb_810d29742ee9f40e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn); // }} "" // {{{ 1219 1 0 "eb5a9614_5d18_44cd_83190a1d8eec2a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1220 1 0 "81b91833_cb16_43c5_a8935f9701536560" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1221 1 0 "add7dd5e_87e4_4ec1_a7b552234adc5d9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1222 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1223 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1224 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1225 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Wakeup") { // }} "" // {{{ 1226 1 0 "6b1d97c0_debd_402e_8c064a5c1fe48aca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1227 1 0 "09ffa3b4_530e_444f_943e5302e37f3fe0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn); // }} "" // {{{ 1228 1 0 "0d420182_40e4_43a8_872c5c81f7efa6d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1229 1 0 "f7bb0b0b_d222_43a7_b1b1236ab60e2847" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1230 1 0 "12251a91_a4ec_4a01_b041b503e2eef836" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1231 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1232 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1233 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1234 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Initialize") { // }} "" // {{{ 1235 1 0 "10713a72_dce4_482a_ad1d6d8db7bd210a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1236 1 0 "21f38719_99e7_4de4_bc16b312b6f57977" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1237 1 0 "75ac7c86_e474_45bc_8551fc9e302de4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 1238 1 0 "509760aa_ef16_454d_89cc23c0745d3c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 1239 1 0 "19e515a1_705c_45eb_b80e75767541c91a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1240 1 0 "a042f65b_875f_4b52_999c836815c84a6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1241 1 0 "f5fd2c44_2160_43fa_be88382bc9e0ff0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1242 1 0 "f2c8bfd1_3d33_4a00_84852ffbabef7b28" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1243 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1244 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1245 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1246 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Set_Trace") { // }} "" // {{{ 1247 1 0 "0029313d_525e_46ea_916912b33902e1eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1248 1 0 "ed79bcac_71ff_48ee_b968407f0dbdf4ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1249 1 0 "80f14967_56f1_4b78_9a3c9965460a9589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1250 1 0 "b3fdfb36_4bb4_4086_a19b5402f53fdd94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1251 1 0 "53206fbc_1492_4583_a2789c8083e49b46" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1252 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1253 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1254 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1255 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Wash") { // }} "" // {{{ 1256 1 0 "32bfd9a6_1ebc_4ca0_81e034f81d1af760" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1257 1 0 "a9208608_0099_4d5f_800d72adf563b9e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CycleNumber"), CycleNumber); // }} "" // {{{ 1258 1 0 "738f88ca_6ad7_4598_b1e4a3e1ccefcace" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn); // }} "" // {{{ 1259 1 0 "d009e19d_0560_4f89_b0f58bafa778b71b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Wash"), o_stepReturn); // }} "" // {{{ 1260 1 0 "49cdc51c_08eb_424b_920d3dcb647b2559" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1261 1 0 "2624b5a6_7428_4e88_a9b7fee8a8001e65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1262 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1263 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1264 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1265 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Terminate") { // }} "" // {{{ 1266 1 0 "e8e2fec9_d562_4524_b5d29880876bd109" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1267 1 0 "ad418c06_88fd_4649_9745bc00694fa53a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1268 1 0 "e8437e3c_0153_4bc0_86236a2e9849e22a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Terminate"), o_stepReturn); // }} "" // {{{ 1269 1 0 "32e4b0bc_48e5_4770_81a0113fdff8118a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1270 1 0 "c81e886b_51ec_42be_b2c989057781a5b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1271 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1272 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1273 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1274 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Initialize") { // }} "" // {{{ 1275 1 0 "b41d8294_bc5c_4346_999860e0f4cc913e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1276 1 0 "102abd73_15bb_472b_a1008b4eda35637e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1277 1 0 "58389380_f098_4c71_b61c0954f797753b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 1278 1 0 "2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 1279 1 0 "d95cbdf3_6278_437b_91525392a70e5356" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1280 1 0 "d35fefc8_f758_41da_a6073532f75cf092" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Initialize"), o_stepReturn); // }} "" // {{{ 1281 1 0 "e1deec6e_fc66_45bd_93821e20a78853fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1282 1 0 "01bdb50d_0f38_40e2_8993f814ea652b66" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1283 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1284 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1285 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1286 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Set_Trace") { // }} "" // {{{ 1287 1 0 "f7fc7449_63b2_4e8b_8d0eaf3f931e834d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1288 1 0 "ef77cea9_ef26_4525_bea967ec7f086b88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1289 1 0 "24784b11_b6f4_461e_b526cbbb677864ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1290 1 0 "d5ebe375_f7dd_45c2_b3e242a8edf4f175" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Dryer Trace Level"), o_stepReturn); // }} "" // {{{ 1291 1 0 "f61751e3_57be_4b1d_b8a1d370a4c1773c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1292 1 0 "d216caef_1c5d_4f05_8252d1a77df45535" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1293 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1294 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1295 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1296 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Start_Drying") { // }} "" // {{{ 1297 1 0 "45561f8e_cd7f_49d8_a8720b2ff7d0d932" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1298 1 0 "ecdddf7a_3c99_4f99_97b658f94a62554c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1299 1 0 "5a6daec0_a404_4a0a_ad9d88de43ac46c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Start Drying"), o_stepReturn); // }} "" // {{{ 1300 1 0 "e7173a44_d349_4ba2_8993647fbcd2eb1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1301 1 0 "17e3434b_dfff_457b_9aba0c22e9206cc7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1302 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1303 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1304 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1305 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Stop_Drying") { // }} "" // {{{ 1306 1 0 "f3eac478_54bb_4350_8c1811bf2ede8424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1307 1 0 "37262733_33d0_4723_94687e68249d1300" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1308 1 0 "6feb871c_61be_4812_a421af32d75f9871" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Stop Drying"), o_stepReturn); // }} "" // {{{ 1309 1 0 "2ba59e68_8358_4b86_a9108519bff6d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1310 1 0 "cbfcb2cb_00c9_445f_a28af2b6553efc31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1311 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1312 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1313 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1314 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Terminate") { // }} "" // {{{ 1315 1 0 "66453f41_07b7_4fd4_b2177e4994606836" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1316 1 0 "a5808bbd_63b3_4fc2_894ab4d4eb00b93d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID); // }} "" // {{{ 1317 1 0 "f844d13f_ecdb_465a_b0300a4976c0d809" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1318 1 0 "a28255b3_86ff_4928_abf87a7c3f930142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1319 1 0 "7e539911_cdda_4242_a337d58eba44508c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1320 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1321 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1322 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1323 1 0 "6aa13f85_d8b8_4a2a_93232eeb15e0a01d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1324 1 0 "5edd27c8_de57_4980_b51d920a4d49d519" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1325 1 0 "e9d4ea17_6e30_44ae_88b03485525c4f92" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Initialize") { // }} "" // {{{ 1326 1 0 "2f9ae938_94b1_43c8_ade094614ef090a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("DeviceName"), DeviceName); // }} "" // {{{ 1327 1 0 "6cf1bcde_fb2a_4296_97b01233bdd9aa87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("AdapterDeviceID"), AdapterDeviceID); // }} "" // {{{ 1328 1 0 "58031a2b_13b4_4278_8e347d343a3bd1d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("NodeName"), NodeName); // }} "" // {{{ 1329 1 0 "20c35752_843f_4adb_904d5d26323821a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1330 1 0 "0b3f2efc_0773_4a25_84493465094ac5e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AlwaysInitialize"), AlwaysInitialize); // }} "" // {{{ 1331 1 0 "6ad8399f_eed7_4e65_98fe7d1432f0736b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Initialize(Label, NodeName, SimulationMode, AlwaysInitialize, o_stepReturn); // }} "" // {{{ 1332 1 0 "3a426d02_40f4_4c1f_b9061d37e5a4cd35" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1333 1 0 "01608cb1_fac5_42cd_bcfdf5fc7359c26d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1334 1 0 "0e3b4229_d57f_445f_a7c9d9140939367f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1335 1 0 "e9d4ea17_6e30_44ae_88b03485525c4f92" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1336 1 0 "5edd27c8_de57_4980_b51d920a4d49d519" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1337 1 0 "48cb330b_8197_439e_974791118048b53e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1338 1 0 "cc879722_4e99_410c_a8454d136f6aae6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Centrifuge") { // }} "" // {{{ 1339 1 0 "efe031a0_7aa0_4846_bf8969fbd7906970" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1340 1 0 "5965cb4a_0190_415d_862b773944074e57" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("CloseCoverAtEnd"), CloseCoverAtEnd); // }} "" // {{{ 1341 1 0 "1f94f31f_0ef0_403b_bda3b50c2fd9c38b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PresentPosition"), intPresentPosition); // }} "" // {{{ 1342 1 0 "dde8e447_4774_45bf_a244c5fab4041838" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Direction"), Direction); // }} "" // {{{ 1343 1 0 "cf0fab96_e65f_4e8a_85a809800b192075" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArraySpeed"), ArrSpeed); // }} "" // {{{ 1344 1 0 "0ca69f46_9c96_402e_9b1587ced7bff5c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArrayAcceleration"), ArrAcceleration); // }} "" // {{{ 1345 1 0 "d37afa07_2508_484d_81b6f153e1aa28ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArrayDuration"), ArrDuration); // }} "" // {{{ 1346 1 0 "6f8e9cca_35cb_4393_9f845b2135e8c2d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Deceleration"), Deceleration); // }} "" // {{{ 1347 1 0 "42d02aa8_5a1f_4144_b475d634885c1d4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrDuration, Translate(","), i_ArrDuration, 0); // }} "" // {{{ 1348 1 0 "252eacff_1b04_4607_9403f7ebc9935d0a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrSpeed, Translate(","), i_ArrSpeed, 0); // }} "" // {{{ 1349 1 0 "e1de1f59_a4b3_4220_a987c7e8e67e82c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrAcceleration, Translate(","), i_ArrAcceleration, 0); // }} "" // {{{ 1350 1 0 "085cc0ce_663a_4e79_8bf732421e2f56a9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrAcceleration, i_ArrAcceleration); // }} "" // {{{ 1351 1 0 "5f942567_121a_417c_be3e2449c5473b40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrSpeed, i_ArrSpeed); // }} "" // {{{ 1352 1 0 "f88bd247_c7e5_4823_bd5e37605974f825" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrDuration, i_ArrDuration); // }} "" // {{{ 1353 1 0 "82e32803_a688_4f29_8a1c94dead53e48e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Centrifuge(Label, CloseCoverAtEnd, intPresentPosition, Direction, i_ArrSpeed, i_ArrAcceleration, i_ArrDuration, Deceleration, o_stepReturn); // }} "" // {{{ 1354 1 0 "6541fb1d_df0a_4f0c_8474d211e4e4721a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1355 1 0 "ca37a7ce_edb5_4864_90dffb84cbb93071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1356 1 0 "54bf0b61_3ff3_4e00_8d35d876bfec98bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1357 1 0 "cc879722_4e99_410c_a8454d136f6aae6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1358 1 0 "48cb330b_8197_439e_974791118048b53e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1359 1 0 "ad0b08d4_17f2_49d0_a67860ea51423835" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1360 1 0 "5d8f135c_f0e2_4460_861984fe9a7fa710" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_GetStatus") { // }} "" // {{{ 1361 1 0 "1be02a3f_6880_42b3_b612e480fcd7e403" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1362 1 0 "5dcbef58_09da_4530_afb23e072fe81806" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_GetRotationStatus(Label, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, o_stepReturn); // }} "" // {{{ 1363 1 0 "07344966_2aca_47d5_94006574d009ab21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1364 1 0 "47572e7c_3ab2_48e3_be4d5f024ede7c41" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, Translate(""), id); // }} "" // {{ 1365 1 0 "5d8f135c_f0e2_4460_861984fe9a7fa710" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1366 1 0 "ad0b08d4_17f2_49d0_a67860ea51423835" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1367 1 0 "cd7ca6de_07b8_4d48_875925ee71386e46" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1368 1 0 "2acb9ae8_850a_4120_a212cb2a4a6200bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Open") { // }} "" // {{{ 1369 1 0 "6a9181eb_a95e_4e7b_a8df77f39d3519e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1370 1 0 "6f785fb2_5cc2_4924_b9e514e193d96143" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverOpen(Label, o_stepReturn); // }} "" // {{{ 1371 1 0 "d7ac8b69_b503_4f26_81756b6dc894d246" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1372 1 0 "d707b09f_2dc6_4b2f_9fdb84c07c07f2b2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1373 1 0 "2acb9ae8_850a_4120_a212cb2a4a6200bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1374 1 0 "cd7ca6de_07b8_4d48_875925ee71386e46" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1375 1 0 "0d7255ee_b967_4693_8d7375d684b4747f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1376 1 0 "10b7afeb_e804_457e_88b935a2b48a71c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Close") { // }} "" // {{{ 1377 1 0 "dbed33cf_5e9c_4102_b254b161284b15e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1378 1 0 "f7647d6b_38bb_4d38_895246f5ac76fe59" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverClose(Label, o_stepReturn); // }} "" // {{{ 1379 1 0 "77bb0b57_a308_455c_baabf680266f4336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1380 1 0 "0c3dee9e_33f9_4f79_99400f9368f6da14" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1381 1 0 "10b7afeb_e804_457e_88b935a2b48a71c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1382 1 0 "0d7255ee_b967_4693_8d7375d684b4747f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1383 1 0 "4dcf2947_ad5a_47e8_8c8214244ffcb3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1384 1 0 "81386c58_3b5a_4743_9453eb6a117234ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Start") { // }} "" // {{{ 1385 1 0 "44af1318_1d60_4a35_a5714accdc0c242a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1386 1 0 "25c1c841_9dea_4404_afbc9b3efc307343" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Direction"), Direction); // }} "" // {{{ 1387 1 0 "d5af29b3_1f52_48d0_be771ca87547a6c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Speed"), Speed); // }} "" // {{{ 1388 1 0 "0615f300_6c08_4978_beb5ebd0c96a686e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Acceleration"), Acceleration); // }} "" // {{{ 1389 1 0 "8f4f8eba_1777_4696_b1185b776105f4e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MaxRunTime"), MaxRunTime); // }} "" // {{{ 1390 1 0 "6d0a342b_4d08_47ec_81979a6bcb184434" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StartCentrifuge(Label, Direction, Speed, Acceleration, MaxRunTime, o_stepReturn); // }} "" // {{{ 1391 1 0 "562e3df1_ee9e_4ef5_a70c4247d08e453f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1392 1 0 "d3624dd6_4de0_4827_b501bde2ca9e3d5a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1393 1 0 "81386c58_3b5a_4743_9453eb6a117234ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1394 1 0 "4dcf2947_ad5a_47e8_8c8214244ffcb3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1395 1 0 "e9168cf2_c9e7_40a5_a52e0b9ad08f1fed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1396 1 0 "225ad45c_32fa_4f7d_af063f5ce1ab907c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Stop") { // }} "" // {{{ 1397 1 0 "e5891eba_60d8_49f6_af7be2af0aef66a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1398 1 0 "4008af1e_863b_4a5a_9b4b33d547b6fd7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Decelleration"), Decelleration); // }} "" // {{{ 1399 1 0 "667c83ad_57d3_4ce9_a2dca9287fb97d7e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StopCentrifuge(Label, Decelleration, o_stepReturn); // }} "" // {{{ 1400 1 0 "43ffc328_4600_41cb_a084d56b006fee8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1401 1 0 "263c82c5_d2f1_463f_b2f102d150ca0a0f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1402 1 0 "225ad45c_32fa_4f7d_af063f5ce1ab907c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1403 1 0 "e9168cf2_c9e7_40a5_a52e0b9ad08f1fed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1404 1 0 "551d8e94_670b_4472_b73600d28f237682" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1405 1 0 "bd20d1b8_d440_4b6f_9041a5b536904a0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Terminate") { // }} "" // {{{ 1406 1 0 "1e54be13_32c5_43bd_bcea8da753eedd90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1407 1 0 "c884c5b1_cb4e_4d38_907361a00b32d3f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Terminate(Label, o_stepReturn); // }} "" // {{{ 1408 1 0 "fa01d6ec_8920_4fd7_adbc2f6f4f106df5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1409 1 0 "1664cc0f_d416_47d5_aa13970ade2397b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1410 1 0 "bd20d1b8_d440_4b6f_9041a5b536904a0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1411 1 0 "551d8e94_670b_4472_b73600d28f237682" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1412 1 0 "6aa13f85_d8b8_4a2a_93232eeb15e0a01d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1413 1 0 "f0819b26_37c8_4272_adc20885b67d19f4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1414 1 0 "8c699a2a_ba36_47e1_8e1d4d9f79fb66ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1415 1 0 "78b97522_ee07_4e83_9e8981b99bffae43" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HiG_Connect") { // }} "" // {{{ 1416 1 0 "3e403126_5865_459f_aab3d343bb797ce3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1417 1 0 "e3e01fa7_2e75_44a7_993a16db598d726e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("AdapterDeviceID"), AdapterDeviceID); // }} "" // {{{ 1418 1 0 "d364c0e5_cd5f_4136_bd9976320c553bf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1419 1 0 "915e037a_7cf0_4dc9_8aabadf1e1b7e01e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_HIG::HiG_Connect(DeviceID, AdapterDeviceID, SimulationMode, FirmwareVersion, o_stepReturn); // }} "" // {{{ 1420 1 0 "ea008c2c_78ca_4d16_9513e73ad591f12d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Connect"), o_stepReturn); // }} "" // {{{ 1421 1 0 "41236718_c4e4_4d62_96dd8a64a35ab570" "{C1F3C015-47B3-4514-9407-AC2E65043419}" FirmwareVersion = StrIStr(FirmwareVersion); // }} "" // {{{ 1422 1 0 "023e32ef_f355_4ea3_a54b74177c5d5ff1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, FirmwareVersion, Translate(""), Translate(""), id); // }} "" // {{ 1423 1 0 "78b97522_ee07_4e83_9e8981b99bffae43" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1424 1 0 "8c699a2a_ba36_47e1_8e1d4d9f79fb66ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1425 1 0 "4ab7db7f_8ef6_4de5_bf8b599232079927" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1426 1 0 "631770f3_791e_4420_b1f28c26a241c509" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HiG_Home") { // }} "" // {{{ 1427 1 0 "cc4c5bd9_e71c_4562_b79dcdfc4938fddd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_HIG::HiG_Home(o_stepReturn); // }} "" // {{{ 1428 1 0 "13cb46df_3e3c_423c_a30e28d838b1bc45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1429 1 0 "0b7bcade_cd23_4459_acd333edd059ca5a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1430 1 0 "631770f3_791e_4420_b1f28c26a241c509" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1431 1 0 "4ab7db7f_8ef6_4de5_bf8b599232079927" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1432 1 0 "28ac0329_5bd7_47eb_94ee71e581914162" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1433 1 0 "bf0548b0_d891_44c0_a0607d6384b0a8f5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HiG_Spin") { // }} "" // {{{ 1434 1 0 "99683715_25ed_4e99_bf295bc7bf50b4f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("RotationalGs"), RotationalGs); // }} "" // {{{ 1435 1 0 "73b09b0a_e71e_4e5b_b05d9161de6fa7a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("AccelPercent"), AccelPercent); // }} "" // {{{ 1436 1 0 "7bb08d70_f1f7_4ccf_ae575ed4b8001c84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("DecelPercent"), DecelPercent); // }} "" // {{{ 1437 1 0 "d439b2ef_580c_4d7f_b416b8fe957cf40c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TimeSeconds"), TimeSeconds); // }} "" // {{{ 1438 1 0 "350b3060_9b0f_40b6_ad5324c9b95b78b2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_HIG::HiG_Spin(RotationalGs, AccelPercent, DecelPercent, TimeSeconds, o_stepReturn); // }} "" // {{{ 1439 1 0 "b065d73d_f243_4e85_b3f7333212683c63" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HiG Spin"), o_stepReturn); // }} "" // {{{ 1440 1 0 "a41526e6_62d0_48a2_95ecacb38143977f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1441 1 0 "bf0548b0_d891_44c0_a0607d6384b0a8f5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1442 1 0 "28ac0329_5bd7_47eb_94ee71e581914162" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1443 1 0 "12ffb344_17df_42a8_82c61f501eea6183" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1444 1 0 "707f3f2d_315f_4979_8c97d591a00e69e0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HiG_SpinAndWait") { // }} "" // {{{ 1445 1 0 "1d0d0f97_f341_4884_80db566bcfd7858c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("RotationalGs"), RotationalGs); // }} "" // {{{ 1446 1 0 "31d4b2d6_0c4b_47a0_b5d3e911f1623f77" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("AccelPercent"), AccelPercent); // }} "" // {{{ 1447 1 0 "a0b13822_a19e_44c9_810b5fd1451e9fb7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("DecelPercent"), DecelPercent); // }} "" // {{{ 1448 1 0 "60c4cce6_eed0_40b3_9e44920049afeefb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TimeSeconds"), TimeSeconds); // }} "" // {{{ 1449 1 0 "79e53eba_cc35_4c57_8f89fed0bf79d490" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_HIG::HiG_SpinAndWait(RotationalGs, AccelPercent, DecelPercent, TimeSeconds, o_stepReturn); // }} "" // {{{ 1450 1 0 "05134711_3b04_4455_97df6854f01341e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HiG Spin"), o_stepReturn); // }} "" // {{{ 1451 1 0 "3dcc89d7_2b78_4171_a1527a0036c22458" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1452 1 0 "707f3f2d_315f_4979_8c97d591a00e69e0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1453 1 0 "12ffb344_17df_42a8_82c61f501eea6183" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1454 1 0 "c102d90f_756f_4d36_a670ba82a0963574" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1455 1 0 "5c039766_70fd_4d04_80bea03cbdb4ff79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HiG_IsSpinning") { // }} "" // {{{ 1456 1 0 "89ad86ff_b44b_440a_8b31c9349b96d3a0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_HIG::HiG_IsSpinning(o_IsSpinning, o_stepReturn); // }} "" // {{{ 1457 1 0 "767fe65d_bf27_4ce5_9d14bcb205b640c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HiG Is Spinning"), o_stepReturn); // }} "" // {{{ 1458 1 0 "5f7be8cd_4689_422b_81136fa12317cd7d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_IsSpinning, Translate(""), Translate(""), id); // }} "" // {{ 1459 1 0 "5c039766_70fd_4d04_80bea03cbdb4ff79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1460 1 0 "c102d90f_756f_4d36_a670ba82a0963574" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1461 1 0 "1ee8f7eb_651b_4d25_bbb01a8fb30bda66" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1462 1 0 "186e906e_fe94_45f0_91cbdafff04a9add" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HiG_OpenShield") { // }} "" // {{{ 1463 1 0 "90fabacb_7e94_43bb_b59554850290d94e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("BucketIndex"), BucketIndex); // }} "" // {{{ 1464 1 0 "0d4de14d_3cd2_4ec4_875cec5d9c100fb7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_HIG::HiG_OpenShield(BucketIndex, o_stepReturn); // }} "" // {{{ 1465 1 0 "36c5807c_4131_4526_954592c7a24b0fa7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1466 1 0 "258cfa1c_d897_4535_994ede97c1cee6f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1467 1 0 "186e906e_fe94_45f0_91cbdafff04a9add" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1468 1 0 "1ee8f7eb_651b_4d25_bbb01a8fb30bda66" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1469 1 0 "720371aa_0fca_4ae1_bc8cca868144f53f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1470 1 0 "dd5980c5_b402_492a_ad521b3420295da4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HiG_CloseShield") { // }} "" // {{{ 1471 1 0 "055aa059_fd6f_4eef_a30269944435bbbc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_HIG::HiG_CloseShield(o_stepReturn); // }} "" // {{{ 1472 1 0 "ec8faa0c_716d_4438_9b100d86a0b9f489" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1473 1 0 "d452c591_f839_407d_ab5ad04db2f24328" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1474 1 0 "dd5980c5_b402_492a_ad521b3420295da4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1475 1 0 "720371aa_0fca_4ae1_bc8cca868144f53f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1476 1 0 "a4c38e06_7dc4_4775_aa674b47a5f1af2f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1477 1 0 "fda42252_f993_47a9_b115a1751631b7f0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HiG_AbortSpin") { // }} "" // {{{ 1478 1 0 "94576ab0_00f4_479f_a998811e46f2915e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_HIG::HiG_AbortSpin(o_stepReturn); // }} "" // {{{ 1479 1 0 "bbafbbc0_a169_4562_ad505d1a87d4ee1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HiG Abort Spin"), o_stepReturn); // }} "" // {{{ 1480 1 0 "7c2186bd_57f6_4a6e_a0a2cf488638d194" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1481 1 0 "fda42252_f993_47a9_b115a1751631b7f0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1482 1 0 "a4c38e06_7dc4_4775_aa674b47a5f1af2f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1483 1 0 "18c6de65_4a43_4900_a79ba178892285aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1484 1 0 "d280ff99_6bcc_4502_ba411a65ad53ab3d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HiG_Disconnect") { // }} "" // {{{ 1485 1 0 "fc624540_25c3_4319_ac445438961694c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_HIG::HiG_Disconnect(o_stepReturn); // }} "" // {{{ 1486 1 0 "8e6519d9_6723_4a7b_98e28fdee690cb5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HiG Disconnect"), o_stepReturn); // }} "" // {{{ 1487 1 0 "bb7de73b_989f_4ada_8891ac45593b4599" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1488 1 0 "d280ff99_6bcc_4502_ba411a65ad53ab3d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1489 1 0 "18c6de65_4a43_4900_a79ba178892285aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1490 1 0 "f0819b26_37c8_4272_adc20885b67d19f4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1491 1 0 "c254f141_56e5_4dd6_867413cd84657042" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1492 1 0 "a5a0a6fa_f020_4f0c_892b14922a8a43d0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1493 1 0 "87bcb443_ba4e_4831_b6d85d5676ceae1f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Abort") { // }} "" // {{{ 1494 1 0 "32d200eb_0ae6_409a_a27f1bd9e350adc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1495 1 0 "60937dfd_fa84_49e4_a6330092ff42006c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1496 1 0 "83aa31af_13e9_48fa_86a3688beb3a1be8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::Abort(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 1497 1 0 "7094499b_8677_4e4c_acf20a22a53d4c8e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Abort"), o_stepReturn); // }} "" // {{{ 1498 1 0 "37a6eb15_6c8d_473f_b9dffab95f789ac5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeviceID = StrIStr(DeviceID); // }} "" // {{{ 1499 1 0 "ed56f986_bb0e_4e3d_b4d7300a7eeb0b58" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1500 1 0 "e98e447d_05f0_430c_afd0ba887aca6b76" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(""), id); // }} "" // {{ 1501 1 0 "87bcb443_ba4e_4831_b6d85d5676ceae1f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1502 1 0 "a5a0a6fa_f020_4f0c_892b14922a8a43d0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1503 1 0 "ced572f9_f877_4613_993ac898da106542" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1504 1 0 "03a935ee_2760_4356_bd8073e8de6b173b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_CloseDoor") { // }} "" // {{{ 1505 1 0 "6a66458b_03aa_4556_a7119c29debe4db5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1506 1 0 "8835ccf5_7cde_492a_9d03a87f66212529" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1507 1 0 "52be61c1_07d8_46d7_971799c333aa010a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::CloseDoor(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 1508 1 0 "6051ed5f_5327_408e_ab4e4006ce62d8ba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Close Door"), o_stepReturn); // }} "" // {{{ 1509 1 0 "e77e745c_0fd9_4817_9c991dc6c147e97c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SiLAReturnValue = StrIStr(SiLAReturnValue); // }} "" // {{{ 1510 1 0 "6a920b48_4355_48b6_9fee746e310180ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1511 1 0 "f607e257_0faa_41ba_953a4eff67bb8a51" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(""), id); // }} "" // {{ 1512 1 0 "03a935ee_2760_4356_bd8073e8de6b173b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1513 1 0 "ced572f9_f877_4613_993ac898da106542" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1514 1 0 "5a50aa8a_9b8a_4c05_a38ab1ac0ea2f7c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1515 1 0 "83d25d49_d146_4249_9f0335e6f838ddb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Connect") { // }} "" // {{{ 1516 1 0 "ea96e218_a676_4c43_8187dccb61fdcfad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LocalIP"), LocalIP); // }} "" // {{{ 1517 1 0 "9f39afff_baf8_4c02_90919e91b050d9b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("DeviceIP"), DeviceIP); // }} "" // {{{ 1518 1 0 "ac76b36c_ea11_4135_b099c4da1dd83d48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("DevicePort"), DevicePort); // }} "" // {{{ 1519 1 0 "217e9a1b_a533_42fd_909df59d5d25c92a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1520 1 0 "47c48ac4_65f4_4ac5_9c5d4ff87e80792d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::Connect(LocalIP, DeviceIP, DevicePort, SimulationMode, DeviceID, Message, o_stepReturn); // }} "" // {{{ 1521 1 0 "44b7be8c_cda6_44d7_9a3512b3014b5aaa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Connect"), o_stepReturn); // }} "" // {{{ 1522 1 0 "988ae1b5_28c3_4982_a500bf7ceebf13f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Connect"), Message); // }} "" // {{{ 1523 1 0 "4806a116_031e_444f_bcf99da98fc2aa03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeviceID = StrIStr(DeviceID); // }} "" // {{{ 1524 1 0 "ecb51768_e47b_48e1_a68b612754c89d2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1525 1 0 "1045876f_9227_42d4_8f284b4615f7bd52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Message, Translate(""), id); // }} "" // {{ 1526 1 0 "83d25d49_d146_4249_9f0335e6f838ddb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1527 1 0 "5a50aa8a_9b8a_4c05_a38ab1ac0ea2f7c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1528 1 0 "170cad08_e039_423f_89bd02bf1417c189" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1529 1 0 "f37a1dca_bc87_4a1a_b736b41bf3acacbb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_DownloadProtocol") { // }} "" // {{{ 1530 1 0 "40cbc2ca_86a5_4676_8bcc39a2f6f075f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1531 1 0 "ca78a1d6_10a8_4411_8b063849d86a765f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1532 1 0 "2a2898df_3962_48ea_872e3cb37c538f1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ProtocolFile"), ProtocolFile); // }} "" // {{{ 1533 1 0 "61926133_1a9a_4ae7_919d1c60533131c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::DownloadProtocol(DeviceID, LockID, ProtocolFile, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 1534 1 0 "63ab11b5_28c5_4f1d_a7a32d8e3ec48cb1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Download Protocol"), o_stepReturn); // }} "" // {{{ 1535 1 0 "8ec284ea_82fb_4835_a7371e261781305c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SiLAReturnValue = StrIStr(SiLAReturnValue); // }} "" // {{{ 1536 1 0 "fd4faeae_7ccf_4aa6_a8abbca7275971c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1537 1 0 "8656e596_fb43_4c25_81f91e4348204c13" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(""), id); // }} "" // {{ 1538 1 0 "f37a1dca_bc87_4a1a_b736b41bf3acacbb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1539 1 0 "170cad08_e039_423f_89bd02bf1417c189" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1540 1 0 "95be4335_330f_498d_9cbb97fc242dae19" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1541 1 0 "f8b53e0a_3303_4063_8c4b05c22b482521" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_EvaluateError") { // }} "" // {{{ 1542 1 0 "e360752c_31f7_4bfc_85305c84dc5f7546" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ErrorCode"), ErrorCode); // }} "" // {{{ 1543 1 0 "0b3b8a56_af82_4264_b0c16517d839ebe4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::EvaluateError(ErrorCode, ErrorMessage, o_stepReturn); // }} "" // {{{ 1544 1 0 "639398d5_46e9_473e_b535a1b1e05aaf2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Evaluate Error"), o_stepReturn); // }} "" // {{{ 1545 1 0 "53eec77c_8020_45cb_a87b12aa6861c3ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1546 1 0 "7e52272f_d6bd_42c0_aaec9e3104211d0b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ErrorMessage, Translate(""), Translate(""), id); // }} "" // {{ 1547 1 0 "f8b53e0a_3303_4063_8c4b05c22b482521" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1548 1 0 "95be4335_330f_498d_9cbb97fc242dae19" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1549 1 0 "7df278e6_a78b_42de_82fff06047d78c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1550 1 0 "7072fce7_707a_4f05_873c2b04e45efaa5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_ExecuteMethod") { // }} "" // {{{ 1551 1 0 "8747e547_373a_456a_b7c45f3fe0fa4962" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1552 1 0 "6ed86f44_9a40_4aec_a24da2c3e14c5cfc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1553 1 0 "c95214ca_8dc7_4e36_b861cd3cb7e88fce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("MethodName"), MethodName); // }} "" // {{{ 1554 1 0 "6354dcdf_bc96_4f43_8e24d16a07ef73a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Priority"), Priority); // }} "" // {{{ 1555 1 0 "f9e2fc96_8719_4db6_961a737c70234591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::ExecuteMethod(DeviceID, LockID, MethodName, Priority, Duration, RequestID, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 1556 1 0 "8eedb12b_8149_4adb_b4a36b25cb56997c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Download Protocol"), o_stepReturn); // }} "" // {{{ 1557 1 0 "2f5e22f5_6e53_4423_b3c5dcff878744ab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" RequestID = StrIStr(RequestID); // }} "" // {{{ 1558 1 0 "af3ce5c4_f396_4686_af8c35c3b1896cbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Duration = StrIStr(Duration); // }} "" // {{{ 1559 1 0 "56cb4cd9_4ad1_4fe3_938eb0863af7c9cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SiLAReturnValue = StrIStr(SiLAReturnValue); // }} "" // {{{ 1560 1 0 "42f6ed5e_78f5_47a7_80c65ef13fa2e465" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1561 1 0 "27d4d016_fe70_40d9_af54cd49911a2e7e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, Duration, RequestID, id); // }} "" // {{ 1562 1 0 "7072fce7_707a_4f05_873c2b04e45efaa5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1563 1 0 "7df278e6_a78b_42de_82fff06047d78c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1564 1 0 "fe8ceaf6_1a4c_4c99_810b07e636105fa8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1565 1 0 "f8f85888_8577_4a10_b97ab15879e1b18f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_OpenDoor") { // }} "" // {{{ 1566 1 0 "3f5cc39f_b933_4665_a725e5d720270a1b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1567 1 0 "32818a09_3083_4b68_be177e73ea51bf2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1568 1 0 "ca47ad1d_7179_4e19_86fd05211f0416ec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::OpenDoor(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 1569 1 0 "721b0fe9_6b70_412e_b6184c3698366299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Open Door"), o_stepReturn); // }} "" // {{{ 1570 1 0 "b0647e1f_7f95_4f56_832807c0437add1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SiLAReturnValue = StrIStr(SiLAReturnValue); // }} "" // {{{ 1571 1 0 "071ab0f7_cca9_424c_a4c8b816b1e1a01d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1572 1 0 "8d79ee78_725d_4b1c_8da948ede755b62e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(""), id); // }} "" // {{ 1573 1 0 "f8f85888_8577_4a10_b97ab15879e1b18f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1574 1 0 "fe8ceaf6_1a4c_4c99_810b07e636105fa8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1575 1 0 "3c16909b_f92f_4869_be09f5ef2fb55e11" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1576 1 0 "3c157612_f55a_40ee_b823fe12e24332f4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Initialize") { // }} "" // {{{ 1577 1 0 "a152ec6a_17c0_4ab7_9d87710d8577b2f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1578 1 0 "1a35d7ba_f083_47be_92136e57f9ed3912" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1579 1 0 "3e352ec2_6234_4391_90eb2accc24b087c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::Initialize(DeviceID, LockID, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 1580 1 0 "42735754_1a4d_4010_a30f4c85204e159a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Open Door"), o_stepReturn); // }} "" // {{{ 1581 1 0 "5f865b77_d620_4d27_b1b98c39e384ad41" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SiLAReturnValue = StrIStr(SiLAReturnValue); // }} "" // {{{ 1582 1 0 "67cb5e45_ee7c_4838_b49f2f3f1f1757c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1583 1 0 "a9ef6ddb_28b3_420e_a501b6911c3a2769" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(""), id); // }} "" // {{ 1584 1 0 "3c157612_f55a_40ee_b823fe12e24332f4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1585 1 0 "3c16909b_f92f_4869_be09f5ef2fb55e11" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1586 1 0 "2918af2a_a130_45ea_b188aa281e864ea8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1587 1 0 "bf6ddca4_4a60_4455_8397f87f4d24b725" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_ReadActualTemperature") { // }} "" // {{{ 1588 1 0 "e6bea63f_c17b_410d_9822608c8267f985" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1589 1 0 "edacec9c_28b9_474f_b1558fa726ec2132" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1590 1 0 "7fd71047_b3fb_46f5_b5c9f44caec9dd8b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::ReadActualTemperature(DeviceID, LockID, SiLAReturnValue, SiLAMessage, ActualTemperatures, ActualTemperatureNames, Time, o_stepReturn); // }} "" // {{{ 1591 1 0 "2c27785b_ea35_4934_b654a42db98c118e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Read Temperature"), o_stepReturn); // }} "" // {{{ 1592 1 0 "4875b702_70e3_4f15_a162e186bb3e9c6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SiLAReturnValue = StrIStr(SiLAReturnValue); // }} "" // {{{ 1593 1 0 "2d1e6390_eb2e_42e2_848902a0a274a03f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(ActualTemperatures, str_ActualTemperatures); // }} "" // {{{ 1594 1 0 "120c6294_947e_4b65_b7dd22db08edad17" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(ActualTemperatureNames, str_ActualTemperatureNames); // }} "" // {{{ 1595 1 0 "7ba7e642_228e_4c42_91a540016b1ecb80" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1596 1 0 "89ab9aa6_c667_4fb4_9331cfc5de16392a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, str_ActualTemperatures, str_ActualTemperatureNames, SiLAReturnValue, id); // }} "" // {{ 1597 1 0 "bf6ddca4_4a60_4455_8397f87f4d24b725" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1598 1 0 "2918af2a_a130_45ea_b188aa281e864ea8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1599 1 0 "32f8d0ae_5127_4186_8dbecc8f7061190f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1600 1 0 "25b084db_1bed_428b_81ed9dbd2e6b4b60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Reset") { // }} "" // {{{ 1601 1 0 "54770d0a_c4d8_4bf5_923ea37b0a7bb99a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1602 1 0 "055ec305_2f32_4ed5_931e842d3f3dc35b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1603 1 0 "c8ec64df_4c79_4d3c_a7ebf0843fb669dd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TimeToWait"), TimeToWait); // }} "" // {{{ 1604 1 0 "7de11167_b4a1_4c1d_b459187603f47406" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LockID"), LockID); // }} "" // {{{ 1605 1 0 "c5acc94b_7623_41cc_8be567f94d4ef391" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("strDeviceID"), strDeviceID); // }} "" // {{{ 1606 1 0 "270c90b6_e23e_41ab_89787ba6b70e15e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("PMSID"), PMSID); // }} "" // {{{ 1607 1 0 "ce22a8c7_2622_4d15_a255b99991b3a19f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::Reset(DeviceID, LockID, SiLAReturnValue, SiLAMessage, SimulationMode, TimeToWait, strDeviceID, PMSID, o_stepReturn); // }} "" // {{{ 1608 1 0 "5f5f4ac1_af5a_4f5a_83d0452099476350" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Reset"), o_stepReturn); // }} "" // {{{ 1609 1 0 "91142402_f680_4164_b2867f68a77f19f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SiLAReturnValue = StrIStr(SiLAReturnValue); // }} "" // {{{ 1610 1 0 "65a340a5_cfe4_49e4_ae15c8fa6f9ca3a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Message = StrIStr(Message); // }} "" // {{{ 1611 1 0 "85ff8a84_cc36_4e57_ace1facda0037584" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1612 1 0 "7f85d4fa_6d5f_4c6c_9c6a0c94995fdfa4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAReturnValue, SiLAMessage, Translate(""), id); // }} "" // {{ 1613 1 0 "25b084db_1bed_428b_81ed9dbd2e6b4b60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1614 1 0 "32f8d0ae_5127_4186_8dbecc8f7061190f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1615 1 0 "51f7ba64_eb3d_4919_840a54f9d890fae8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1616 1 0 "9eceba50_29ae_4c59_a6858f927aa63220" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_GetStatus") { // }} "" // {{{ 1617 1 0 "17e9eb5a_0890_4852_aa7203ed60c2e6fe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1618 1 0 "af491f4d_08dd_4266_988323b19ab4ae21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::GetStatus(DeviceID, strDeviceID, State, Locked, PMS_ID, Current_Time, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 1619 1 0 "eb379091_0ce2_4b58_b2de3803b8b7e4a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Open Door"), o_stepReturn); // }} "" // {{{ 1620 1 0 "f1d81878_8b71_4ddb_bd170dbc47b258ab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Open Door"), strDeviceID); // }} "" // {{{ 1621 1 0 "1ed775c8_e152_473f_afb053901f12f27e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Open Door"), Current_Time); // }} "" // {{{ 1622 1 0 "b6854df9_0048_4379_a45d9c10b1a2e081" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1623 1 0 "7af5f5b4_66aa_4f36_9a95228efbc14b6c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1); // }} "" // {{{ 1624 1 0 "a387c327_bc68_4b7e_b755032527737c0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2); // }} "" // {{{ 1625 1 0 "316cbd48_dd20_4cbb_83337a0d9debd8a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3); // }} "" // {{{ 1626 1 0 "b8697a57_1081_4c31_a98e091e392113f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4); // }} "" // {{{ 1627 1 0 "12f1a9d8_74ca_410c_9253620d011e9bf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, strDeviceID, State, Locked, PMS_ID, Current_Time, SiLAReturnValue, SiLAMessage, Translate(""), id); // }} "" // {{ 1628 1 0 "9eceba50_29ae_4c59_a6858f927aa63220" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1629 1 0 "51f7ba64_eb3d_4919_840a54f9d890fae8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1630 1 0 "45adfa7a_43f6_4879_94eecbbc7cd6241e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1631 1 0 "c7a1be4c_8922_45fe_a8d03b329ad39a3d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Terminate") { // }} "" // {{{ 1632 1 0 "5679fc2a_b149_4156_afe65b4260835f63" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1633 1 0 "492d5009_7311_49b9_88d37e5272f71a3a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::Terminate(DeviceID, SiLAMessage, o_stepReturn); // }} "" // {{{ 1634 1 0 "cde37514_c4cf_4ee2_94144ec6f2d8a602" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Open Door"), o_stepReturn); // }} "" // {{{ 1635 1 0 "7437d0c9_d030_4bc3_9892e6e67143d3a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1636 1 0 "56d42bd9_d271_4178_b988201f9be09dc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAMessage, Translate(""), Translate(""), id); // }} "" // {{ 1637 1 0 "c7a1be4c_8922_45fe_a8d03b329ad39a3d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1638 1 0 "45adfa7a_43f6_4879_94eecbbc7cd6241e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1639 1 0 "b0f57e64_345a_446f_b484b3f98342b5b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1640 1 0 "d2d87d10_3538_4cfe_b99e9ea2160e3e76" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "ODTC_Terminate") { // }} "" // {{{ 1641 1 0 "b69581df_cb8d_4fe3_b91fbd7c6912cd84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 1642 1 0 "6ae4f976_589c_4784_b354c7814e6dcde1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_ODTC::GetLastData(DeviceID, LockID, Result, SiLAReturnValue, SiLAMessage, o_stepReturn); // }} "" // {{{ 1643 1 0 "8be17100_32fe_4ad7_9002b94bcf924f42" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("ODTC Open Door"), o_stepReturn); // }} "" // {{{ 1644 1 0 "69fe485b_5659_4f59_b5fdb0f4567a92a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1645 1 0 "b8d08077_08c9_4f6d_bcc7f858d26788e4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SiLAMessage, Translate(""), Translate(""), id); // }} "" // {{ 1646 1 0 "d2d87d10_3538_4cfe_b99e9ea2160e3e76" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1647 1 0 "b0f57e64_345a_446f_b484b3f98342b5b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1648 1 0 "c254f141_56e5_4dd6_867413cd84657042" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1649 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1650 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Initialize") { // }} "" // {{{ 1651 1 0 "5efffd73_f295_4d3c_aacd37c74d2bc015" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ComPort"), Comport); // }} "" // {{{ 1652 1 0 "cc8f22a1_0ae7_40ee_82d2e071b7344cf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn); // }} "" // {{{ 1653 1 0 "b6f33534_c173_4c6c_820d96a48fa50a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Barcode initialize:"), o_stepReturn); // }} "" // {{{ 1654 1 0 "138ad752_fbd8_457e_948dd436ddb65822" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1655 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1656 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Read") { // }} "" // {{{ 1657 1 0 "0b3c261e_a906_4464_b0e5caa3ec640056" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Read(barcode); // }} "" // {{{ 1658 1 0 "98aadc47_a5a2_433d_84530ad050155ccd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("BarcodeReader_Read"), barcode); // }} "" // {{{ 1659 1 0 "e3fc85ee_a6d7_4d98_a3f9076b947565cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, barcode, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1660 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1661 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1662 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1663 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1664 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_BeginMonitoring") { // }} "" // {{{ 1665 1 0 "7dd862dc_f7f1_4600_94ca9b83762673dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1666 1 0 "d37d14e5_261f_418c_81f754eb75bf4920" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingToleranceRange"), shakingToleranceRange); // }} "" // {{{ 1667 1 0 "0919ceb3_189a_4885_93c8faeab9f9538b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sampleInterval"), sampleInterval); // }} "" // {{{ 1668 1 0 "bc3a749e_e1bb_4c4a_9aac06834d85080f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("action"), action); // }} "" // {{ 1669 1 0 "98795c5d_e3e5_4d8c_bba032968c530136" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1670 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ; err.Clear(); // }} "" // {{{ 1671 1 0 "a2a0a3bb_c0cf_4123_afe36d1d51ae233c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action); // }} "" // {{ 1672 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3202FD4CC34D478f892F31C7684340BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1673 1 0 "435e7414_9170_4bf9_bd0ac83f0ab51fad" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1674 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1675 1 0 "c00b8635_652d_48ca_8d345ed070306b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1676 1 0 "85ac1487_5644_4bae_b032f5c191aa47c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1677 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1678 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1679 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1680 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateStarDevice") { // }} "" // {{{ 1681 1 0 "4c3dfdd2_2dd6_4c5f_831f92590c13e82e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1682 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ; err.Clear(); // }} "" // {{{ 1683 1 0 "cc3d4234_12d6_486a_a110c8ede0e3059b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber); // }} "" // {{ 1684 1 0 "f17e82ff_88ef_4685_bf6f75a8ca0e32f6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1685 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1686 1 0 "c0256452_8d47_4f97_9e9c2250a44934d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1687 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1688 1 0 "7699b24c_5ec6_4cca_b1cb9aed9ce60247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1689 1 0 "85155966_9554_40cb_9693f9b0a11b25a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1690 1 0 "d049e779_0761_471d_9f7b8af0967d1633" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1691 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1692 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1693 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1694 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateUSBDevice") { // }} "" // {{{ 1695 1 0 "72f0a762_2550_45ad_bea063f4f72a9fe9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1696 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ; err.Clear(); // }} "" // {{{ 1697 1 0 "0cd1cef0_3091_48c3_b63490d3e80a5b45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber); // }} "" // {{ 1698 1 0 "1823653c_5e02_428a_badd7ca34d3aabf1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1699 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_98100824AA704d26AB40A6BADEF39F48 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1700 1 0 "058f8bb4_5fe3_4a6b_a36e899c2a89656f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1701 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1702 1 0 "a9b4c19d_dcc0_42d7_9a51e3241ef647f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return:"), o_stepReturn); // }} "" // {{{ 1703 1 0 "d303212f_1f38_442d_a24eee709cf4cdc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1704 1 0 "7356ec1e_8437_4679_94613ac2bea4fe0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1705 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1706 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1707 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1708 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_EndMonitoring") { // }} "" // {{{ 1709 1 0 "4293ef15_cfcd_4e29_b9b02afae2d471f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1710 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ; err.Clear(); // }} "" // {{{ 1711 1 0 "96f15f32_4117_4a09_85dceac0fa769b43" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult); // }} "" // {{ 1712 1 0 "9d9a3dcb_ddc9_47c5_a860665377ee3e86" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1713 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1714 1 0 "aabeb82e_70d9_42f7_901f3fe114094e0a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1715 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1716 1 0 "ce89bf49_b865_4c3f_a97eba220b5a7d33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS End Monitoring step return:"), o_stepReturn); // }} "" // {{{ 1717 1 0 "05229af2_f20a_42ce_908ec8445f3f9dd2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(""), Translate(""), id); // }} "" // {{ 1718 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1719 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1720 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1721 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetFirmwareVersion") { // }} "" // {{{ 1722 1 0 "942a1cc2_d956_47fa_9a9ffed1e856a632" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1723 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ; err.Clear(); // }} "" // {{ 1724 1 0 "f6b3cc8e_f852_4a96_9567a4fa67e846e8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1725 1 0 "c70f5e07_0eeb_45e5_af26714895e2df88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion); // }} "" // {{ 1726 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1727 1 0 "96886e69_ba07_45e3_96353112dc429afc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1728 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1729 1 0 "7de3b86c_c16d_4932_beedfb948b5d85f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(""), Translate(""), id); // }} "" // {{ 1730 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1731 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1732 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1733 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetSerialNumber") { // }} "" // {{{ 1734 1 0 "38b7d0d7_7cce_4157_8abc70dfb62eefa5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1735 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ; err.Clear(); // }} "" // {{ 1736 1 0 "08061228_63f2_47d2_a601ba16d6a1a142" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1737 1 0 "0bbfb488_9723_4a08_9b90171dbec6117a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber); // }} "" // {{ 1738 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2434A44DB44B48ff82A9F66DE34C5041 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1739 1 0 "4cf5e7f7_9567_4e6b_a206bf6f8962c785" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1740 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1741 1 0 "311e5a04_1ac3_443c_bdc51c5cdc4c44f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(""), Translate(""), id); // }} "" // {{ 1742 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1743 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1744 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1745 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerParameter") { // }} "" // {{{ 1746 1 0 "f3888a0b_86ea_4c4a_891e1755a6e78556" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1747 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ; err.Clear(); // }} "" // {{ 1748 1 0 "693cec94_9d14_4bff_8e4868a3b27f0245" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1749 1 0 "e993ed67_92ed_4c85_bd33f90aac53dfb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3); // }} "" // {{ 1750 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1751 1 0 "bd4bffe6_9161_4f42_b0b53307549f4286" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1752 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1753 1 0 "6efd49bf_48c7_437b_8fee57487345eaee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1754 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1755 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1756 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1757 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerSpeed") { // }} "" // {{{ 1758 1 0 "e1c29a26_0656_46e3_b0a412143047bd26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1759 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ; err.Clear(); // }} "" // {{ 1760 1 0 "949c257a_0d44_4a50_bb10d9b59e6a02c2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1761 1 0 "d7148e56_7fcc_471d_8c3a7abc2847db7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2); // }} "" // {{ 1762 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1763 1 0 "fb8e630b_9519_4b3d_94eabf1311546383" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1764 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1765 1 0 "41ba2513_e3c2_485c_821198419c3fe286" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1766 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1767 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1768 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1769 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTempParameter") { // }} "" // {{{ 1770 1 0 "09fb30ea_33e9_486d_96945af4798859ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1771 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ; err.Clear(); // }} "" // {{ 1772 1 0 "7e342beb_ebbe_4873_bf53c50f29cbaa0e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1773 1 0 "c8f45788_ef99_414d_a41d29a20583a067" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 1774 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C16E1CF8298042f0A01D1040DC911015 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1775 1 0 "b845f534_5a22_4076_b36069f70af90742" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1776 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1777 1 0 "4793211e_93d2_43e6_b4d25d7e0ae3e104" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 1778 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1779 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1780 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1781 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperature") { // }} "" // {{{ 1782 1 0 "01d1add6_c167_4137_8f0c285cd6ad9bed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1783 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ; err.Clear(); // }} "" // {{ 1784 1 0 "0bd6e3be_da2c_4500_973c9d6eae8e7ae6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1785 1 0 "4187d732_0d13_4590_99fa08572e32e2f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2); // }} "" // {{ 1786 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_14A2AAD200434d69970AC483BD08B64F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1787 1 0 "cabbe1ee_c5d4_49dd_90875673900d6120" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1788 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1789 1 0 "234847f1_2f0a_4e64_856b9edefcebb425" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1790 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1791 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1792 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1793 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperatureState") { // }} "" // {{{ 1794 1 0 "82a233ab_0392_4ebb_9a809d80aae38e44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1795 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ; err.Clear(); // }} "" // {{ 1796 1 0 "5b647db8_f1d6_4deb_9b859eb1dfda063d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1797 1 0 "7f7e0bd7_bea9_474d_92bce5d21da9a2a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2); // }} "" // {{ 1798 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_50485390A50647818ED2D3934FBC87E3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1799 1 0 "f56ee559_1221_4f5a_ad332d0e44502aff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1800 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1801 1 0 "31a69f44_1a59_49ce_a78763f3aa936042" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1802 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1803 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1804 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1805 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SendFirmwareCommand") { // }} "" // {{{ 1806 1 0 "11546c32_6ddd_4250_9b8750c9679e5b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1807 1 0 "06688598_f10e_41e9_8a2c6d3dff7b7aae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), command); // }} "" // {{{ 1808 1 0 "15a58509_ec93_4677_b1858cadeac42d10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("parameter"), parameter); // }} "" // {{ 1809 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ; err.Clear(); // }} "" // {{ 1810 1 0 "ad365bf1_c5e9_4c85_b1b623b20be98474" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1811 1 0 "b63ba349_9a52_43ca_aec17e40c17d231b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter); // }} "" // {{ 1812 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_84EE5E4228B140f599748D1271CBB0F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1813 1 0 "c9bd9645_5a05_4cc6_95997f787c8772d6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1814 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1815 1 0 "8b5634c2_e1da_41d3_83c57142f4cae999" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1816 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1817 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1818 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1819 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetPlateLock") { // }} "" // {{{ 1820 1 0 "927ddf67_5dbd_432b_b8cf6117a3109b06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1821 1 0 "a3eee1ac_7024_473b_a6eb8a2e9b461a66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("plateLock"), plateLock); // }} "" // {{ 1822 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ; err.Clear(); // }} "" // {{ 1823 1 0 "f307f49e_48c2_428e_80c1d57693f85156" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1824 1 0 "27d47e3b_913b_4a0e_bdb50007a0e39d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock); // }} "" // {{ 1825 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1826 1 0 "4eb95522_37fd_4802_af85a620dc874526" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1827 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1828 1 0 "945560ed_40bf_44a9_851fead4c1943f9f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1829 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1830 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1831 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1832 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetShakerParameter") { // }} "" // {{{ 1833 1 0 "8a0e14c1_f6c6_4fb8_94094498cccd7991" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1834 1 0 "1810a83f_3fc2_4c49_9d5502fbdfc743e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingDirection"), shakingDirection); // }} "" // {{{ 1835 1 0 "c3053579_8645_474f_8c05459eed975362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingAccRamp"), shakingAccRamp); // }} "" // {{ 1836 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ; err.Clear(); // }} "" // {{ 1837 1 0 "32b90a07_0607_448d_9767de1d96e31862" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1838 1 0 "77463ac5_e629_4772_98004edef4016a6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp); // }} "" // {{ 1839 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1840 1 0 "5593fd2a_c1e7_4565_bcae82458768dd51" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1841 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1842 1 0 "5ed72ec4_1b60_4258_969b44c995450ec1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1843 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1844 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1845 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1846 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetSimulation") { // }} "" // {{{ 1847 1 0 "941f9e19_ca94_4ede_9719205aeb876593" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{ 1848 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ; err.Clear(); // }} "" // {{ 1849 1 0 "f56567fc_04c1_4645_aee22aa5f22a9f8c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1850 1 0 "41b0c1a2_60aa_4f16_8901c300e9a3dc14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetSimulation(simulate); // }} "" // {{ 1851 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1852 1 0 "35803a11_c620_485a_8196cc2822dddb3f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1853 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1854 1 0 "2e7a9d5f_51df_4c49_bb1986da7e14cd48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1855 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1856 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1857 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1858 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetTempParameter") { // }} "" // {{{ 1859 1 0 "99447b6e_9293_483d_bbd7ddee96870904" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1860 1 0 "f55d7581_a005_45e4_9b3d7f7473323e6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("startTimeout"), startTimeout); // }} "" // {{{ 1861 1 0 "7192db12_8543_4c8b_81b98b57ce21118d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("toleranceRange"), toleranceRange); // }} "" // {{{ 1862 1 0 "8f6d922f_f2ae_43c6_8682df15e6b7c07c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("securityRange"), securityRange); // }} "" // {{ 1863 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ; err.Clear(); // }} "" // {{ 1864 1 0 "a2342046_552f_4003_a1cc262161964a6e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1865 1 0 "57eb738a_6eb2_4f04_b25bd7f7f64a8179" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange); // }} "" // {{ 1866 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1867 1 0 "94c928dd_6dcb_4540_a6cbfdf48e37430c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1868 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1869 1 0 "90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1870 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1871 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1872 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1873 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetUSBTrace") { // }} "" // {{{ 1874 1 0 "0691ecbd_49b4_4590_91d60e614290ec34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("trace"), intTrace); // }} "" // {{ 1875 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ; err.Clear(); // }} "" // {{ 1876 1 0 "aeed4685_8812_4dce_89e2c35429d4c401" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1877 1 0 "24723a79_741b_46be_830fe654c08d6d1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetUSBTrace(intTrace); // }} "" // {{ 1878 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FE6D15E135D24fd7A06908E89474B650 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1879 1 0 "32d09876_dcdb_4d67_b5e72a63e14fec19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1880 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1881 1 0 "cda0d06f_dce0_47ad_bbb419c58aba260e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1882 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1883 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1884 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1885 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShaker") { // }} "" // {{{ 1886 1 0 "503e1c47_5f15_42bd_8eaad1057de68ef6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1887 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ; err.Clear(); // }} "" // {{ 1888 1 0 "dab3ac84_179e_4fd8_9b00ad14f3ef613e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1889 1 0 "7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed); // }} "" // {{ 1890 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1891 1 0 "c35cdd37_7a73_4008_b9d0ac550c926428" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1892 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1893 1 0 "ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1894 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1895 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1896 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1897 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShakerTimed") { // }} "" // {{{ 1898 1 0 "db6b6c2e_da48_4c64_bdddc80ba5a28921" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1899 1 0 "f6f42906_5ded_4a05_8f9a11fac18f7f10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1900 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ; err.Clear(); // }} "" // {{ 1901 1 0 "523b190e_f70f_4a28_b16582e7161b390a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1902 1 0 "428d423d_1825_472f_a3aa303d028d0659" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime); // }} "" // {{ 1903 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1904 1 0 "ef7c31f9_e307_450a_851111f26afd2e91" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1905 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1906 1 0 "d73f1476_bf95_4d48_89849f295a9e4d0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1907 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1908 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1909 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1910 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShaker") { // }} "" // {{{ 1911 1 0 "f958f5a5_d1c5_4e9e_9262e708f24940c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1912 1 0 "2ce1189b_e54a_48c0_aafc2932409c0b9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1913 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ; err.Clear(); // }} "" // {{ 1914 1 0 "e043b61a_b8c5_46d4_9bf331f7566a8911" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1915 1 0 "a302e74e_d752_4ae6_b492a17f601bef41" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed); // }} "" // {{ 1916 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1917 1 0 "9b93a06b_e4df_4eca_84467ca6c7f0c0ce" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1918 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1919 1 0 "4b0b48f9_3855_4eab_8f22b0902846d750" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1920 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1921 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1922 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1923 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShakerTimed") { // }} "" // {{{ 1924 1 0 "858c7861_9fb0_490e_9646b9eb190706d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1925 1 0 "327bd0c6_60a8_4fd1_9ef81e2a21d904a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1926 1 0 "83a6d58d_c761_484f_871c9c2229a6d3d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1927 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ; err.Clear(); // }} "" // {{ 1928 1 0 "10af5b65_9ddd_4a4b_b040d8f5b6e642cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1929 1 0 "22e55b69_c018_47f9_8e3ac169c190d2de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); // }} "" // {{ 1930 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_29447729262E4e0f8B347F6640716D96 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1931 1 0 "f383d799_1d15_4348_8a2dc84422f46ff2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1932 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1933 1 0 "f539df09_de1d_4fd8_9ac041897fab0333" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1934 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1935 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1936 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1937 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartTempCtrl") { // }} "" // {{{ 1938 1 0 "dc338e01_6b43_4fe3_bda98d2b0a1a65e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1939 1 0 "04239a09_93a5_4f75_80f95d178bdf9cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("temperature"), temperature); // }} "" // {{{ 1940 1 0 "0387745b_87be_4ec6_912b0b4decaa257b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("waitForTempReached"), waitForTempReached); // }} "" // {{ 1941 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ; err.Clear(); // }} "" // {{ 1942 1 0 "497404d1_5fea_46f0_9598d8e1c1cb11ed" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1943 1 0 "4ba75dd5_935f_4f2c_a15605eafa47b808" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached); // }} "" // {{ 1944 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_764F491C76DA445383E5490AB126ADB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1945 1 0 "21dd8d34_e764_4a0f_b34ccecf089437dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1946 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1947 1 0 "bfde731d_b581_4488_b4cb7f4873675d7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1948 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1949 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1950 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1951 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopAllShaker") { // }} "" // {{ 1952 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ; err.Clear(); // }} "" // {{ 1953 1 0 "d8b2a327_d63a_46f2_8c273b2eedb8cb34" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1954 1 0 "d112da95_7f27_47a3_9e24bc801bcc9afc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{ 1955 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1956 1 0 "45d1f212_46b9_4976_83503edf5606c88e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1957 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1958 1 0 "5706daca_363f_417f_9103f7ddd16c1444" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1959 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1960 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1961 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1962 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopShaker") { // }} "" // {{{ 1963 1 0 "1cdead0d_9944_446b_bd59d491b15242b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1964 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ; err.Clear(); // }} "" // {{ 1965 1 0 "9d792f4f_4c49_4998_b21fd7f7d6a58fce" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1966 1 0 "b811fcbc_7d95_47c6_9c33e18415810e13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::StopShaker(deviceNumber); // }} "" // {{ 1967 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1968 1 0 "1fe83710_037b_4157_82a99e6aaf08edcb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1969 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1970 1 0 "6ffd1f39_ec63_4f9c_a7687447aff79f80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1971 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1972 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1973 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1974 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopTempCtrl") { // }} "" // {{{ 1975 1 0 "b16ab946_2ba9_4900_bd6f9ede31edf6ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1976 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B5957B02990845739642D8C604B0B582 ; err.Clear(); // }} "" // {{ 1977 1 0 "384c69b8_0ce8_4a27_af0a4060e6f1a01d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1978 1 0 "3a29dc5b_78cc_4ed1_ab9cd631701715e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber); // }} "" // {{ 1979 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B5957B02990845739642D8C604B0B582 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1980 1 0 "28b1d8d1_83cc_4627_9146c7398c601938" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1981 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1982 1 0 "11f3231a_40df_4c14_92585ab8016165e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1983 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1984 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1985 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1986 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_Terminate") { // }} "" // {{ 1987 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ; err.Clear(); // }} "" // {{ 1988 1 0 "b1da178c_1267_4c8c_b1cd24bfa10a11fb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1989 1 0 "910932e3_2b76_41cf_9dccecb799f2d649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::Terminate(); // }} "" // {{ 1990 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_919FCF7F89804c398972DAFE2605D286 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1991 1 0 "697e84e2_525e_4045_83bb3825b36f6b2f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1992 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1993 1 0 "4edde3c1_4f65_4403_a54985d84f6d80f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1994 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1995 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1996 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1997 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForShaker") { // }} "" // {{{ 1998 1 0 "87872be5_4e84_4b7b_98a3e7147a66f6a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1999 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ; err.Clear(); // }} "" // {{ 2000 1 0 "6c68258f_f870_4c46_b358dc4391ced463" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 2001 1 0 "2eff956e_28cc_4094_8285d5ed00125a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber); // }} "" // {{ 2002 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2003 1 0 "c08ab14c_3879_4f65_ad7085e45f74a6df" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2004 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2005 1 0 "96b99051_5c80_421c_a02e0bd238da1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2006 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2007 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2008 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2009 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForTempCtrl") { // }} "" // {{{ 2010 1 0 "881e7d69_50e3_4e42_89eafece562ac009" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 2011 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ; err.Clear(); // }} "" // {{ 2012 1 0 "f5db2a6b_8286_4195_844af45f48c61d3f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 2013 1 0 "421a52eb_128a_4b6b_8baafb6548b66bd8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber); // }} "" // {{ 2014 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_088C7630997A4749A400740DA66CBA0C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2015 1 0 "de7dad67_0b6c_47eb_af5a68302431ff1e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2016 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2017 1 0 "aeb529e0_2eaf_4686_9528342b58318a5d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2018 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2019 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2020 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2021 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2022 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2023 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "CORE96WashEmpty") { // }} "" // {{{ 2024 1 0 "88f95bdd_c2c5_4856_91e5f47f7431bdaf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("refillAfterEmpty"), refillAfterEmpty); // }} "" // {{{ 2025 1 0 "d7a05a26_0b59_478a_a85f308173caf693" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1WashLiquid"), chamber1WashLiquid); // }} "" // {{{ 2026 1 0 "8b1bd108_2b5a_4a2d_ace7b87920eae1b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1LiquidChange"), chamber1LiquidChange); // }} "" // {{{ 2027 1 0 "d651fbf5_a4b8_490b_b869269338ccfcfa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2WashLiquid"), chamber2WashLiquid); // }} "" // {{{ 2028 1 0 "79b1a205_d988_4171_9e1fb28ba362329b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2LiquidChange"), chamber2LiquidChange); // }} "" // {{ 2029 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ; err.Clear(); // }} "" // {{ 2030 1 0 "3fc645b3_f504_4b5e_93481425adf459b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2031 1 0 "123d7b87_745f_4511_a797d08711d13361" "ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}" { variable arrRetValues[]; arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3("123d7b87_745f_4511_a797d08711d13361"); // Head96EmptyWasher } // }} "" // {{ 2032 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EE8804FCDC214a06935DD0F4830020DB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2033 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 2034 1 0 "d3d07dad_de12_4d0c_bd96c7caa06ff3ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 2035 1 0 "84732f19_85e4_4b22_8e617b5e1c91f73c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Washer Return: "), o_stepReturn); // }} "" // {{{ 2036 1 0 "dde0a413_b493_4b17_94990d1d5f2e2b2e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2037 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2038 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2039 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2040 1 0 "1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONFromServer); // }} "" // {{ 2041 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2042 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "end") { // }} "" // {{{ 2043 1 0 "6db67a5a_6aa2_4087_875823acfff0fac4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Good Bye!")); // }} "" // {{ 2044 1 0 "4c7e40d6_02a6_451d_b28230ec71e40ce1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2045 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2046 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2047 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2048 1 0 "6fb90145_24c3_46ba_88b839e0215d0bf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{ 2 "AutoExitBlock" "" STAR_OEM_TOOLKIT::_ExitLibrary(); STAR_OEM_TOOLKIT_PH::_ExitLibrary(); STAR_OEM_ODTC::_ExitLibrary(); STAR_OEM_TOOLKIT_CENTRIFUGE::_ExitLibrary(); STAR_OEM_HIG::_ExitLibrary(); STAR_OEM_TOOLKIT_MPE::_ExitLibrary(); // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=stefa$$valid=0$$time=2023-02-12 22:27$$checksum=4194333a$$length=082$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx8AF.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" private function ArrayToString( variable & i_array[], variable & o_str ) void ; private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ; private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ; private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ; private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void ; function SendTextMessageToServer( variable str ) void ; private function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; private function waitForGUItoContinue( ) variable ; function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 2208 1 0 "c8aa765a_4840_468a_9e928b44fa79d891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{{ 5 "OnAbort" "End" } // }} "" // {{{ 5 "SendTextMessageToServer" "Begin" function SendTextMessageToServer( variable str ) void { // }} "" private object objJSONObject; private variable strJSON; // {{ 5 "SendTextMessageToServer" "InitLocals" // }} "" // {{{ 2168 1 0 "9d5f9d4a_c104_4b47_964b6d97f981a71e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONObject); // }} "" // {{{ 2169 1 0 "d0a04705_1adc_4919_b95168834c89f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("command"), Translate("message")); // }} "" // {{{ 2170 1 0 "7b9a6cd1_3eee_4085_b3f9548e43fc3424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("text"), str); // }} "" // {{{ 2171 1 0 "6a1c53cf_65ea_4f53_aa2e9111890fecf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONObject, strJSON); // }} "" // {{{ 2172 1 0 "bee8c148_b3ea_490b_8d93d8ed5f24939f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONObject); // }} "" // {{{ 2173 1 0 "b965a2fd_f821_4400_b4c777f558ed0772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendTextMessageToServer" "End" } // }} "" // {{{ 5 "waitForGUItoContinue" "Begin" private function waitForGUItoContinue( ) variable { // }} "" private variable loopCounter1; private variable serverResponse; private timer timer1; // {{ 5 "waitForGUItoContinue" "InitLocals" // }} "" // {{ 2189 1 0 "73328607_d06a_4d7d_8a5df64da06a1bde" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" serverResponse = Translate(""); // }} "" // {{{ 2190 1 0 "2342f8b3_4765_4edc_9fb9f46cbb1fd20b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Waiting for server instructions...")); // }} "" // {{{ 2191 1 0 "216e1039_788e_4830_8588933e6c542ba1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Waiting for server instructions...."), Translate("")); // }} "" // {{ 2192 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounter1 = 0; while (1 == 1) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2193 1 0 "5f15547c_3178_4f78_b5fea96f6a1c563b" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.1) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2194 1 0 "cd67277b_4386_4862_8429008a00601693" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 2195 1 0 "6ec592d0_fe02_41a9_8503db5ccf0e5544" "{C1F3C015-47B3-4514-9407-AC2E65043419}" serverResponse = HSLHttp::HttpGET(objHttp, Translate("http://localhost:3221"), Translate("")); // }} "" // {{ 2196 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (serverResponse != "") { // }} "" // {{ 2197 1 0 "b1e2e308_ee78_46d0_8a6832649536045e" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2198 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2199 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 == 300) { // }} "" // {{ 2200 1 0 "19e5c8f7_a1a9_4348_aa41a572942db630" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2201 1 0 "6be46368_bb3e_4ad8_82647d6f52af8c9b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2202 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2203 1 0 "8951a436_faf4_45df_a268dbb7ddb58c29" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.9) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2204 1 0 "52bb524e_27b1_4bbe_afcf26453d9eb66f" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2205 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2206 1 0 "809789b0_bd70_4c1f_b0d808ce120b1d99" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (serverResponse); // }} "" // {{{ 5 "waitForGUItoContinue" "End" } // }} "" // {{{ 5 "SendStepReturnToServer" "Begin" private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer" "InitLocals" // }} "" // {{{ 2139 1 0 "2520bd9f_739d_4111_a27d89f8f73ec39e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2140 1 0 "aa6010ec_0628_49d5_a87e016b4a4fc7f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 2141 1 0 "a97c5efa_0ce4_4358_9c51c1893f526b9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 2142 1 0 "deceb871_e830_4b14_86e626f745ef083a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 2143 1 0 "00afb5c2_b5db_4458_866a13b6cb332b68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 2144 1 0 "e52bbd02_b31d_4278_a0f45991eab77d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 2145 1 0 "19f99698_3777_4dcf_9fc765c3f221df4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 2146 1 0 "329f8b9b_0798_44f8_9ee6b65ec58b0c44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2147 1 0 "7728ac0d_8630_4f61_94af076392758ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2148 1 0 "70d261f2_edc4_49a0_a5a074cd5ab92b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2149 1 0 "ee0dd62d_582f_4171_b08e37f6106d9b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer" "End" } // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "Begin" private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void { // }} "" private variable n; private variable loopCounter1; private variable strSinglePosition; private variable arrayOfPositions[]; private variable arraySinglePosition[]; private variable labwareID; private variable positionID; // {{ 5 "BuildTempSequenceFromPositions" "InitLocals" { sequence __temp; o_seq = __temp; } // }} "" // {{ 2086 1 0 "d9022e13_e502_4969_a8ee79484e990801" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arrayOfPositions.SetSize(0); // }} "" // {{{ 2087 1 0 "3e178082_8579_435f_a5db4481bb789d9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strPositions, Translate(";"), arrayOfPositions, 0); // }} "" // {{ 2088 1 0 "5d735f26_db1b_4bea_9ee405f4167bb99f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" n=arrayOfPositions.GetSize(); // }} "" // {{{ 2089 1 0 "f497f24b_fd39_417d_8703c0d54662309f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq); // }} "" // {{ 2090 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2091 1 0 "fd645546_0433_46a0_8619026e338529fd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arraySinglePosition.SetSize(0); // }} "" // {{ 2092 1 0 "91aeb0c4_3176_4356_a19a1027bcdb0af3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1); // }} "" // {{{ 2093 1 0 "c2b42369_7829_4c62_b58880fce7867995" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strSinglePosition, Translate(","), arraySinglePosition, 0); // }} "" // {{ 2094 1 0 "016f61c5_fd76_4c74_903df10a03070f7b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" labwareID=arraySinglePosition.GetAt(1-1); // }} "" // {{ 2095 1 0 "886fc872_7c3a_4366_959db6d5f265ed7c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" positionID=arraySinglePosition.GetAt(2-1); // }} "" // {{{ 2096 1 0 "766a54b4_4c5b_4991_9d8ceea62d26b216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq, labwareID, positionID); // }} "" // {{ 2097 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2098 1 0 "0003c6e9_5b43_438d_bc93be342c3c6b55" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq.SetCurrentPosition(1); // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "End" } // }} "" // {{{ 5 "StrTokenize" "Begin" private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 2183 1 0 "500afe4c_98a8_4117_8c279b9994d0b626" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 2184 1 0 "6a0bd918_2fda_4e4c_a680454ce2576168" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 2185 1 0 "f65ed315_68ed_4ec0_ba0b3c217e692b25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 2186 1 0 "9476acee_e5bb_43d1_bbec232ed01bae08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); // Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "Begin" private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void { // }} "" private variable numOfVolumes; private variable numOfChannelsInVariable; private variable n; private variable loopCounter1; private variable arrSize; private variable loopCounter3; private variable strKeyName; // {{ 5 "BuildArrayOfVolumesForChannels" "InitLocals" o_arrayOfVolumes.SetSize( 0); // }} "" // {{ 2060 1 0 "69288f91_eabd_4d15_af5361636ffacbf6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyName = Translate("volumes"); // }} "" // {{ 2061 1 0 "bf4c1108_6751_41ee_8d3d3b1a9418548f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfVolumes.SetSize(0); // }} "" // {{{ 2062 1 0 "a9cfa743_a769_46a3_b8d7e45a67b3d297" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName); // }} "" // {{ 2063 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arrSize > 0) { // }} "" // {{ 2064 1 0 "594bebbb_0d54_4893_b20d783de743dd44" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2065 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < arrSize;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{{ 2066 1 0 "3bfc9004_2595_4917_b4edcdceed06f518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); // }} "" // {{ 2067 1 0 "6be31b23_f55d_4d15_be6abc9ee4bef664" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" Trace("Volume received=", v); // {{ 2069 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2070 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2071 1 0 "4a4891b3_f877_4b14_85196b7e820554b2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2072 1 0 "22c7c768_33c4_4975_909e9586375bfe8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(strKeyName, v); // }} "" // {{ 2073 1 0 "4e01e62a_13a2_408e_9fbfb2300d5996ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 2074 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2075 1 0 "cc565f65_a92a_43ef_9c052b7f5632aca5" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" numOfVolumes=o_arrayOfVolumes.GetSize(); // }} "" // {{{ 2076 1 0 "e49355fb_3fe6_4c8d_930870416e36b708" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numOfChannelsInVariable = StrGetLength(strChannels); // }} "" // {{ 2077 1 0 "804bc477_e950_4a14_af5f667c73cf5176" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2078 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (numOfVolumes < numOfChannelsInVariable) { // }} "" // {{ 2079 1 0 "2e73355c_8b11_4423_b345807cae9d5db8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" n = numOfChannelsInVariable - numOfVolumes; // }} "" // {{ 2080 1 0 "53a650d8_2fc1_4c5b_bd19eda433c2a81a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" v = o_arrayOfVolumes.ElementAt( numOfVolumes -1); // }} "" // {{ 2081 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2082 1 0 "cd047b15_6a02_40f1_adfb116f6bf5d763" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 2083 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2084 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "End" } // }} "" // {{{ 5 "ArrayToString" "Begin" private function ArrayToString( variable & i_array[], variable & o_str ) void { // }} "" private variable arraySize; private variable loopCounter1; // {{ 5 "ArrayToString" "InitLocals" o_str = 0; // }} "" // {{ 2050 1 0 "1a220255_6ba4_40fb_be39a6a2f4e0065f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 2051 1 0 "f821c4ff_f1a2_4ad7_9bd77dd8652567cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str = Translate(""); // }} "" // {{ 2052 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2053 1 0 "afd84a84_8330_46e7_8308e16b5caa05e9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" v=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 2054 1 0 "77436fd3_3c87_4f09_9a89259b15ef5bf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, v); // }} "" // {{ 2055 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 < arraySize) { // }} "" // {{{ 2056 1 0 "d14fd31e_5de8_46f9_bb359f38de9a08ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, Translate(";")); // }} "" // {{ 2057 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2058 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "ArrayToString" "End" } // }} "" // {{{ 5 "JSON_GetFloatValue" "Begin" private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void { // }} "" private variable retVal; // {{ 5 "JSON_GetFloatValue" "InitLocals" o_KeyFloatValue = 0; // }} "" Trace("getfloatvalue"); // {{{ 2101 1 0 "8f2f8625_6c9e_4c47_b4698d29df60004a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" // {{ 2102 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("error getting float value, try with integer"); // {{ 2104 1 0 "5a74df81_6685_4703_8b055144f8d74d45" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2105 1 0 "47bb8c98_9624_40ad_b765abfc6b0d0b49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" Trace("error getting float value, tried with integer"); // {{ 2107 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("wtf ok i guess its zero"); // {{ 2109 1 0 "5b8a3ec6_8ee4_4887_ab7df29fa494cdc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_KeyFloatValue = 0; // }} "" // {{ 2110 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2111 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "JSON_GetFloatValue" "End" } // }} "" // {{{ 5 "SendHHSReturnToServer" "Begin" private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; private variable t_arrayStepReturns[]; private variable loopCounter1; private variable keyName; private variable varType; // {{ 5 "SendHHSReturnToServer" "InitLocals" // }} "" // {{{ 2113 1 0 "6db3f932_ba70_4cf6_9c2a8636580fc754" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2114 1 0 "3cf8a985_83cc_418e_99293de9d9945d5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("HHS-return")); // }} "" // {{{ 2115 1 0 "705c25bc_6db4_4eb9_b05b33999e110198" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{ 2116 1 0 "5a9efc02_a11a_4c0c_b166e3b28800cc6c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" t_arrayStepReturns.SetSize(0); // }} "" // {{ 2117 1 0 "5aa4f3a8_774f_4f35_ae7fa197ef920048" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn1); // }} "" // {{ 2118 1 0 "00ac351d_bc51_41e5_b300af93d6893fa5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn2); // }} "" // {{ 2119 1 0 "2aaf8702_2d08_48ee_be96815ca77463c9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn3); // }} "" // {{ 2120 1 0 "67fcb56e_9f42_4739_a5ee322f12443a17" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn4); // }} "" // {{ 2121 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < 4;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 2122 1 0 "a23ae2ed_5b02_41a0_a69215d0b80fde4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" keyName = StrConcat2(Translate("step-return"), loopCounter1); // }} "" // {{{ 2123 1 0 "9b92ac94_8c71_4b77_95ac0c691427c4bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" varType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2124 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "s") { // }} "" // {{{ 2125 1 0 "1497ea6a_46ab_4ee8_b7951f24b533e644" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2126 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2127 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "f") { // }} "" // {{{ 2128 1 0 "61772f9e_fea3_4011_bba06b7fe66e8b0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2129 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2130 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "i") { // }} "" // {{{ 2131 1 0 "28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2132 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2133 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2134 1 0 "0a0447b8_96fb_495a_90dfa8f1e2c488ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2135 1 0 "b2a13d10_b443_4fc0_aa0baa2a23cddafe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2136 1 0 "0adf40b4_5c73_46d8_8e6042c6dfd32d86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2137 1 0 "5a5dabeb_e3ed_4730_ab86839e00f75077" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendHHSReturnToServer" "End" } // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "Begin" private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer_EightOutputs" "InitLocals" // }} "" // {{{ 2151 1 0 "a5a7b215_f4cb_4951_82e1faf532cd7222" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2152 1 0 "9480693e_99ec_4cfd_aa9c8f48e76ee42f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 2153 1 0 "3f068696_35bd_4060_8b291470a817f628" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 2154 1 0 "b68a52fb_e141_4e4c_b5e7bbcbf0c9817f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 2155 1 0 "8ab4a139_9629_43b7_98f13d1058881e4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 2156 1 0 "1417a4bd_aea8_4b36_8a7a05739a789ecf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 2157 1 0 "24b6213e_470e_468a_86dc55b44ff96b95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 2158 1 0 "42403d87_ddb6_4bee_8fc6ad09efb7573a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return5"), stepReturn5); // }} "" // {{{ 2159 1 0 "8493044a_674d_4139_90fa1c7a00050abc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return6"), stepReturn6); // }} "" // {{{ 2160 1 0 "b43cf915_ef0d_4d62_985deae88bcd6c18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return7"), stepReturn7); // }} "" // {{{ 2161 1 0 "584d78fd_87d0_4502_a6d089cfaf888318" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return8"), stepReturn8); // }} "" // {{{ 2162 1 0 "711dbc6f_e5c4_40a0_bef5785dc99707ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return9"), stepReturn9); // }} "" // {{{ 2163 1 0 "47856892_8af4_409f_88723a44ebe61362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2164 1 0 "e5054174_6f3f_4356_8dc30683be948abe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2165 1 0 "e21196c3_6b8f_47e5_a2888114650b2ec8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2166 1 0 "3fec97a3_9f33_4fef_afe5355188bf56d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "End" } // }} "" // {{{ 5 "StrArrayToInts" "Begin" private function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void { // }} "" private variable arraySize; private variable loopCounter1; private variable val; private variable o_arrayOfInts[]; // {{ 5 "StrArrayToInts" "InitLocals" o_intarray.SetSize( 0); // }} "" // {{ 2175 1 0 "d68ba554_ea5e_486c_90e45e6f46e051a7" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 2176 1 0 "2ceaf7fd_f918_493e_a519f9ccc1a58114" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfInts.SetSize(0); // }} "" // {{ 2177 1 0 "f1b90762_2d83_476f_b1cd6ef39b938b13" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2178 1 0 "832d04b5_dd9e_47f6_86628701b9ba44ef" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" val=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 2179 1 0 "a10f8b45_b69d_4a85_be5a713ea78ccd01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" val = APPSLIB::StrConvertToNumber(val); // }} "" // {{ 2180 1 0 "70dffb74_d5e0_4795_bc74a43dbf1c7d9b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_intarray.AddAsLast(val); // }} "" // {{ 2181 1 0 "f1b90762_2d83_476f_b1cd6ef39b938b13" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "StrArrayToInts" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=stefa$$valid=0$$time=2023-02-12 22:27$$checksum=4fbd94da$$length=084$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~Hx8AF.tmp ================================================ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~HxAB5D.hsl ================================================ global device ML_STAR ("test1.lay", "ML_STAR", hslTrue); #include "~ReAB0E.res" /* {{ 2 "LibraryInsertLine" "" */ // }} "" global device ml_star ("test1.lay", "ml_star", hslTrue); /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLPTLLib.hsl" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" PTL::SetWashingStateDefault("RinseTime1", 5); PTL::SetWashingStateDefault("SoakTime1", 5); PTL::SetWashingStateDefault("FlowRate1", 11); PTL::SetWashingStateDefault("RinseTime2", 0); PTL::SetWashingStateDefault("SoakTime2", 0); PTL::SetWashingStateDefault("FlowRate2", 11); PTL::SetWashingStateDefault("DrainingTime", 10); PTL::SetWashingStateDefault("StartWashLiquid", 0); PTL::SetLoadingStateDefault("RecoveryOptionContinue", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionExclude", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionDefault", 0); PTL::SetLoadingStateDefault("KitLotCheckEnabled", hslFalse); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{ 1 1 0 "857f3247_23ca_470f_a617bd1c365236ac" "{930D6C31-8EFB-11d4-A3BA-002035848439}" abort; // }} "" // {{ 2 "AutoExitBlock" "" // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=user$$valid=0$$time=2018-04-30 21:22$$checksum=a111acd9$$length=083$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~HxAB5D.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 5 "OnAbort" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=user$$valid=0$$time=2017-11-07 13:27$$checksum=68125ac7$$length=083$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~HxB3C9.hsl ================================================ namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HslHamHeaterShakerLib.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } #include "STAR_OEM_Test.res" /* {{ 2 "LibraryInsertLine" "" */ // }} "" variable loopCounterMain; variable msg; object objJSONFromServer; variable commandFromServer; variable initializeAlways; variable o_stepReturn; object objJSONToServer; sequence seq; variable tipSequence; variable sequenceCounting; variable channelVariable; variable channelUse; variable labwarePositions; variable aspirateSequence; variable v; variable arrayOfVolumes[]; variable liquidClass; variable aspirateMode; variable capacitiveLLD; variable pressureLLD; variable liquidFollowing; variable submergeDepth; variable liquidHeight; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable airTransportRetractDist; variable touchOff; variable aspPosAboveTouch; variable o_liquidLevels_mm[]; variable o_liquidLevels_mL[]; variable o_stepReturn2; variable o_stepReturn3; variable dispenseMode; variable dispenseSequence; variable dispPositionAboveTouch; variable zMoveAfterStep; variable sideTouch; variable wasteSequence; variable useDefaultWaste; variable reducedPatternMode; variable aspirateVolume; variable o_stepReturn4; variable dispenseVolume; variable tipEjectToKnownPosition; variable carrierName; variable barcodeFileName; variable barcodeReadPositions; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable lidSequence; variable plateSequence; variable toolSequence; variable transportMode; variable widthBefore; variable gripHeight; variable gripWidth; variable gripSpeed; variable gripperToolChannel; variable checkPlate; variable zSpeed; variable gripForce; sequence lidSeq; sequence toolSeq; variable xAcceleration; variable platePressOnDistance; variable ejectToolWhenFinish; object objHttp; variable blnReturn; variable blnSuccess; variable usedNode; variable deviceNumber; variable action; variable sampleInterval; variable shakingToleranceRange; variable id; global device ML_STAR ("STAR_OEM_Test.lay", "ML_STAR", hslTrue); variable monitorResult; variable firmwareVersion; variable serialNumber; variable command; variable parameter; variable plateLock; variable shakingAccRamp; variable shakingDirection; variable simulate; variable startTimeout; variable toleranceRange; variable securityRange; variable intTrace; variable shakingSpeed; variable shakingTime; variable temperature; variable waitForTempReached; variable inverseGrip; variable liftUpHeight; variable retractDistance; variable tolerance; variable labwareOrientation; variable movementType; variable collisionControl; variable gripMode; variable showCollisionCheckDialog; global device HxFan ("STAR_OEM_Test.lay", "HxFan", hslTrue); variable fanSpeed; variable persistant; variable refillAfterEmpty; variable chamber1LiquidChange; variable chamber2WashLiquid; variable chamber1WashLiquid; variable chamber2LiquidChange; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" STAR_OEM_TOOLKIT::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{{ 1 1 0 "e7768ad9_4016_4422_bd83f5785d03ceda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnReturn = HSLHttp::Initialize(objHttp); // }} "" // {{ 2 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnReturn != blnSuccess) { // }} "" // {{{ 3 1 0 "62c131b4_44b9_4249_8e0a3205a25b21b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); // }} "" // {{{ 4 1 0 "fb18125e_b294_4554_912c3d447526996e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 5 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 6 1 0 "ee92e29b_e94c_46cf_a67851f3be61c805" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Hi, Im a VENUS method.")); // }} "" // {{ 7 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; // }} "" // {{ 8 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "de417132_351a_4ad8_80c71b1863d4a870" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" commandFromServer = Translate(""); // }} "" // {{ 10 1 0 "d9c97239_3c9d_4992_8fb5820ae5721d90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate(""); // }} "" // {{ 11 1 0 "57da7835_7495_4b16_8b82897289efbd11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn2 = Translate(""); // }} "" // {{ 12 1 0 "cf024fcc_3594_4355_b33f4bd8c8bdfb4e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn3 = Translate(""); // }} "" // {{ 13 1 0 "9ed0b80d_8518_474f_a94d8f843a6158fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn4 = Translate(""); // }} "" // {{ 14 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 15 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 16 1 0 "0257e5d3_7b99_47be_a062950a2b200664" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" msg = waitForGUItoContinue(); // }} "" Trace("JSON received from Server:", msg); // {{{ 18 1 0 "36be63f7_a79c_44a4_b1dc636a536612bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONFromServer); // }} "" // {{{ 19 1 0 "5c2b861d_97f9_4e18_a5fce25e78026299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::ParseJson(objJSONFromServer, msg); // }} "" // {{{ 20 1 0 "562abca5_8891_402a_b8a7c5ba56301a86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); // }} "" // {{{ 21 1 0 "cb002e33_cc71_4a25_890fa8f9f5d982a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("id"), id); // }} "" // {{ 22 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 23 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 24 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "initialize") { // }} "" // {{{ 25 1 0 "773dbb38_0414_403d_b2ff24100c7cf1fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); // }} "" // {{{ 26 1 0 "97af1c08_2914_4f72_b27c685f11b30bb6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); // }} "" // {{{ 27 1 0 "b3ab11e2_0297_446f_9cf37ca7c0c9d19f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Init step return:"), o_stepReturn); // }} "" // {{{ 28 1 0 "57d4e0cd_327e_4cac_8e83a7da6222dda0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 29 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 30 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 31 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 32 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 33 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipPickUp") { // }} "" // {{{ 34 1 0 "53e1cfb5_1fde_491f_bfd878eceda16ba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 35 1 0 "f0e9e31f_d871_4632_bd466e43fc38c771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 36 1 0 "e6311b13_2132_40e0_aff0b5556205c32a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 37 1 0 "cb659ed1_5f0c_41e8_8a060ec0b650c589" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{ 38 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 39 1 0 "6699226b_6c7b_4b79_95b8017162b433b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 40 1 0 "bd13798f_62e7_4dd2_8e91769d48d10fc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 41 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 42 1 0 "ce13caa6_634b_4dec_8a6c3ea74b144e95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 43 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 44 1 0 "29f69958_d99b_455a_93c7b0480bfd1658" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn); // }} "" // {{{ 45 1 0 "732425fd_a199_4354_8479d821ee834e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 46 1 0 "22f00193_1056_456e_a515d156eee56e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 47 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 48 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 49 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 50 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelAspirate") { // }} "" // {{ 51 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 52 1 0 "55ee3109_036b_4acb_8a15175f3316656f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 53 1 0 "a5b3e5ac_4910_4a4a_8e20bdb7f61836e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 54 1 0 "ce04189a_96e4_4bdc_aedc8a68bf64647b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 55 1 0 "882daff3_cc25_4778_aec6a937fc87347c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 56 1 0 "7f7b9f83_5611_4a3b_b5c120689696addb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 57 1 0 "39e464b7_0def_403b_a02f5dd2a358dbd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 58 1 0 "2e2739aa_8eb6_44e0_b887ea00b04acac0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 59 1 0 "9408edd8_3cee_43e0_976b4a6fabf5f4ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 60 1 0 "a2848877_3518_4d1d_95f77c1f313003e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); // }} "" // {{{ 61 1 0 "4b5ce3d0_91f4_4c14_aaf1cad34e0caf60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" Trace("Bookstart"); // {{{ 63 1 0 "12892ce3_3bc6_4165_b3b6ae0eacad20e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" Trace("Bookend"); // {{{ 65 1 0 "15bd5af3_2da1_420b_beb398dc2347a0ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 66 1 0 "4fe61fb4_bb39_4728_96b8c6959f4943ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); // }} "" // {{{ 67 1 0 "ba68c240_2397_4872_949ee1ee984595c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 68 1 0 "baac19fc_9f21_4e8c_b833f2a1ba2433f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 69 1 0 "253130f8_f599_4ef4_9d5a15e2cb89d1eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 70 1 0 "51233931_483f_4deb_a8627b909d6c9116" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 71 1 0 "3f8b6af1_7872_4a20_92bf2c4507ea9f31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); // }} "" // {{{ 72 1 0 "7dd1b818_5a89_4b03_82734e6f4d7b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{ 73 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 74 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 75 1 0 "cb2b67f0_7384_4a41_831de652f92d4c85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 76 1 0 "29a868b4_7800_4747_b14eaf0f2c10ba40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 77 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 78 1 0 "08f63789_65f1_4e7d_996dc22e8f33d416" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 79 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 80 1 0 "7cb70e6b_15bb_4380_b62150df065d208f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{{ 81 1 0 "e86187c0_0d19_453e_be1c5a401d0d5d93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 82 1 0 "d66c2dae_4cc3_4a31_bafe46d1dd63e790" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 83 1 0 "d23f143d_290d_4d0f_b368241a6a9adaed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 84 1 0 "0428e844_3191_4cde_b7f3544f34c833f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 85 1 0 "a7ca006f_941c_4b31_9749313ad9b4e079" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 86 1 0 "8c97ba72_f880_4504_baee8b8db3d13310" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 87 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 88 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 89 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 90 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelDispense") { // }} "" // {{ 91 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 92 1 0 "909bc255_6ca1_4700_bc102ccb34ae5be4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 93 1 0 "fd48dd93_9f42_4df0_9f659e27a5552543" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 94 1 0 "3ff3f492_86a5_40af_a3deabccbab3898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 95 1 0 "3cbb883f_48ae_40fe_afe67da944df94b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 96 1 0 "ab1033bc_1216_450a_9fb60655a1f1a21a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 97 1 0 "0bc1541f_26d5_44d6_8db6ae336fec17bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 98 1 0 "8c10cc29_c05e_4cea_9ed559249651e805" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 99 1 0 "3e0373da_7c7c_46ab_9b77fba19915662e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 100 1 0 "b98fdc49_cdcb_4f3c_81df0b76eafa1411" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 101 1 0 "7458d32a_402a_4215_b52378c78468ec80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 102 1 0 "5e14f2ce_c932_474b_be03f3c043c700e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 103 1 0 "c2010d1d_5a78_4871_a835a6613a1237bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 104 1 0 "d4a6e6a3_0158_45f1_9c359d8e48e01bed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 105 1 0 "011e9828_5413_40c1_80d0c3bdde1c6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 106 1 0 "2d7a4942_b2ce_43a2_8decf49fa0c9576c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 107 1 0 "b178ce99_db9e_4453_bed28d4ce0457bc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); // }} "" // {{{ 108 1 0 "1b38ad88_3c65_4e58_812f9ed32ce32485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{{ 109 1 0 "f34066f1_63f9_474f_8a9c41e56962dc74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 110 1 0 "6b94916e_355b_4ee9_8eb4f1b49c95fea4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 111 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 112 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 113 1 0 "e962dd26_3672_4418_bd3c40e9929929eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 114 1 0 "6257966a_6b39_41c8_a057a79b8e39cd4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 115 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 116 1 0 "3f230e40_8bd9_4235_b88cd0ca80799661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 117 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 118 1 0 "ac0ad5a7_d00b_46fe_a18f94f8dab3863c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{{ 119 1 0 "2753c24e_c4dc_402d_866b6bc8691ecc1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 120 1 0 "1ac127fd_b830_496f_b4d4b9671137ebff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 121 1 0 "3ee5d751_d3a5_468a_b539c4f0ff22023e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 122 1 0 "b86d492c_446f_4921_97140cfd462ace87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 123 1 0 "e049946d_6322_4b39_9c46a2d0eb345528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 124 1 0 "531432f5_ef8a_416e_8be28a07ae9b0d25" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 125 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 126 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 127 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 128 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipEject") { // }} "" // {{{ 129 1 0 "69be671e_7cdd_48d3_af136435754c1d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 130 1 0 "f3444c0f_4863_4fdd_94a025b682d8a6d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 131 1 0 "12ad2f39_c160_4afc_9f6ffce7e3ddb433" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 132 1 0 "2883bb64_2fe3_47ca_996e11434afc57cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 133 1 0 "10c3b13e_7129_4cfd_b88b29d0bbc31a28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); // }} "" // {{ 134 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (useDefaultWaste == 0) { // }} "" // {{ 135 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 136 1 0 "655bc92f_08a8_4c16_a0276997aec081ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 137 1 0 "a3a0b5ef_85c0_4552_a28b3356d7886eb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 138 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 139 1 0 "efadb8c3_c431_4ed4_a739a951c05ee518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 140 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 141 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 142 1 0 "2dda50b6_7f82_4e8a_a1d203715119213a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 143 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 144 1 0 "7fa61e34_a1f2_4b99_8f6bed13c6ce120f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn); // }} "" // {{{ 145 1 0 "a7db5128_f8e4_4afe_81f46b2cc86e608d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject step return:"), o_stepReturn); // }} "" // {{{ 146 1 0 "683607f4_928f_4cea_b901fe3502404424" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 147 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 148 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 149 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 150 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 151 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 152 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipPickUp") { // }} "" // {{{ 153 1 0 "1f82c33f_a085_47cc_85dbbde3e42a53c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 154 1 0 "9f9fe665_47a2_4a12_961460021d1f09f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 155 1 0 "743960d2_9d0f_4ccf_848662247e3211c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 156 1 0 "b737602c_63e8_4c4c_b47f40cb815914ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); // }} "" // {{ 157 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 158 1 0 "00bd1831_c335_40f5_b706f0ffadbe2890" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 159 1 0 "1f16418c_8fa7_44a5_a6db75dd9a79ee84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 160 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 161 1 0 "b66db4eb_9e79_4c19_909fd8d14d37cba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 162 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 163 1 0 "f3e7cbf6_0242_4463_8d4ed0db4667f7db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2); // }} "" // {{{ 164 1 0 "b080a5c6_324c_4aae_b5899dede6d863f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 165 1 0 "aa5a9c4b_0377_46ce_9b46883db15cbd7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 166 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 167 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 168 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 169 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Aspirate") { // }} "" // {{ 170 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 171 1 0 "373f30c8_ec07_4298_94d6ac75358ab1ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 172 1 0 "ef3ae377_e985_4ef6_93b005aa91c9b2b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 173 1 0 "d8eea65a_6e59_4c32_a47bae09779f9528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 174 1 0 "8eb02312_a070_491c_9758b3cdbdee0cfc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); // }} "" // {{{ 175 1 0 "6eaf8bee_b53f_4f01_87c1380bc345e386" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 176 1 0 "d9923a2f_e7cf_4f3e_81746e378a20baab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 177 1 0 "2c411993_e3fc_4753_9a90308b226078a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 178 1 0 "5d900896_b2b9_442b_b24294b9bbfbdaad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 179 1 0 "21149e9e_21c9_4ddd_93e07b693e3ab3fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 180 1 0 "bcefef03_102b_4887_adad59c2fb7ad551" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 181 1 0 "9665b0a3_35e8_47e9_b14ac1a4818cfa6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 182 1 0 "ff93d28b_afe9_47e7_9b6eb50d6845384f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 183 1 0 "ef43b824_fd38_42d4_9e932904dbf14813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 184 1 0 "b0378457_e370_448b_bfd6955c05e57bcb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{ 185 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 186 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 187 1 0 "615bcff6_e9d5_4303_a5d5826b2e2548dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 188 1 0 "cf4ad428_945e_4921_9441ee34cf9c96bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 189 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 190 1 0 "86397ec2_2ee5_4ec1_8bec47d8e87584b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 191 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 192 1 0 "48f88263_72c1_4df2_865181cffed9feee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 193 1 0 "f1b764e8_e556_4d08_bb83bdc12dc64a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 194 1 0 "164c104a_cf5f_46de_b23a098a18b3fdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 195 1 0 "ee779f77_51a9_46d7_b58b7bcaf13519f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 196 1 0 "e874eb6d_1e97_4590_95d9b10cb059c935" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn4); // }} "" // {{{ 197 1 0 "0ca1df86_a344_45fd_b384e13ba44c5ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 198 1 0 "2497228e_672e_4c95_9f31679fe87bbe1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 199 1 0 "e4930eee_c625_4acb_a81c05e149a1a218" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 200 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 201 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 202 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 203 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Dispense") { // }} "" // {{ 204 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 205 1 0 "78cba921_2a37_4b4a_91ef7fbe81fcddd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 206 1 0 "b58b4cbd_16e9_4444_9037061e29bc5614" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 207 1 0 "0ab910ec_826d_4c84_bac7ed9564f3bdab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 208 1 0 "84d664b7_70d0_4136_bdfd4de2aa760ad8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); // }} "" // {{{ 209 1 0 "18becc6a_2df4_4281_8b16ade9038979f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 210 1 0 "68c565db_e5ed_44e8_b3846a1d98034e76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 211 1 0 "6a4221a8_9488_48f9_8381b1bc0f0c960d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 212 1 0 "45dcb271_e326_42fc_b8684816d3ffdc93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 213 1 0 "14552b13_e77b_4fb7_9020445ecc5ade21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 214 1 0 "91783f87_af6f_446e_a74fb1725f17d282" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 215 1 0 "e2e7f702_1710_49eb_9b1046dbf4f143e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 216 1 0 "1817aa70_86fa_4318_a8e46569701623e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 217 1 0 "50bd6734_10d5_4291_b40eb708539514fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 218 1 0 "ad5fbb01_d809_4b7d_b858ed597709f28f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 219 1 0 "09566247_6b2d_4c73_b43fe303a30f89c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 220 1 0 "3ead74f7_3b5c_4b21_84d2488c2eceab73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 221 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 222 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 223 1 0 "835f8470_7e8c_40ff_a48abcc85d6b778b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 224 1 0 "059394fc_e924_4d57_b1b85f79f9947fa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 225 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 226 1 0 "6c4be3a7_a450_459c_90545a208f9f459f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 227 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 228 1 0 "c164a94e_2926_462e_9487870d403fe8b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 229 1 0 "86c0fb85_8aaf_4bec_9f6f1f642206487f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 230 1 0 "77047add_8050_4522_ad477b97455a8327" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 231 1 0 "5b2c6f23_9a69_489d_b52179c78c03e48f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 232 1 0 "a9a9244b_829f_4c5b_9a64f1018b029453" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn4); // }} "" // {{{ 233 1 0 "781580a9_199e_4373_b48bb55a97f8a463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 234 1 0 "1867ae44_25f8_4926_ae081e490fd5aa0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 235 1 0 "dbb3b30c_b4a1_4cf6_a24b62b63f155369" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 236 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 237 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 238 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 239 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipEject") { // }} "" // {{{ 240 1 0 "7cf9db16_d78c_4aa0_825cc3c2c22f287c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 241 1 0 "ccca7a97_c22a_4f20_b2d9a60d67850eee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 242 1 0 "a319f75e_77eb_4845_856516ce060213f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 243 1 0 "d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); // }} "" // {{ 244 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipEjectToKnownPosition == 0) { // }} "" // {{ 245 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 246 1 0 "24eeb6dd_1e20_422c_a1a8199cbca73b33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 247 1 0 "5197334f_cde5_4d52_9c528a0c4f7401b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 248 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 249 1 0 "110b82e1_8a5b_48e4_a3adbab701cffc8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 250 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 251 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 252 1 0 "fa32bbf8_8345_4897_aaf09d112d374893" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 253 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 254 1 0 "ef087a4e_684e_4d98_87109abf154fbc85" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2); // }} "" // {{{ 255 1 0 "328216cf_22dd_47a1_9f1ba089b1ac7702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn); // }} "" // {{{ 256 1 0 "53265943_7975_4275_ad98df313054f97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2); // }} "" // {{{ 257 1 0 "c13d9773_7daf_4c3c_9064fdd4f7c7008f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 258 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 259 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 260 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 261 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 262 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "loadCarrier") { // }} "" // {{{ 263 1 0 "76d739d0_ff4a_490b_9c47f411d29ef7a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 264 1 0 "ca623aa7_ed48_45fa_9f4055fb8e08c3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); // }} "" // {{{ 265 1 0 "64a8e193_7e7e_412e_8a0657f0e832eaef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); // }} "" // {{{ 266 1 0 "39e6aaef_5cce_4915_b5b6ede214c7371e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs); // }} "" // {{{ 267 1 0 "1d4d284f_fd1e_4f8a_a2158846ad6a67f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Load carrier step return:"), o_stepReturn); // }} "" // {{{ 268 1 0 "358b7fc3_40a2_418b_9d61d94eef1556f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 269 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 270 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 271 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 272 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "unloadCarrier") { // }} "" // {{{ 273 1 0 "797d23a7_c62a_471a_a52b10fea8bcc154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 274 1 0 "f1c35790_adb7_49eb_a96864d8b1d66cea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn); // }} "" // {{{ 275 1 0 "6e6ded71_3f99_46c5_9362117beb502a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn); // }} "" // {{{ 276 1 0 "8713fee4_6b93_4296_a5396254fd404d52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 277 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 278 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 279 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 280 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 281 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripGet") { // }} "" // {{ 282 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 283 1 0 "c4847ae5_e161_4f23_aa432eda22de28bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 284 1 0 "022a5cdd_3f4f_4e18_927c174fc57a68a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 285 1 0 "3e462067_5eb3_49c3_b7bf6a27de9ce3bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 286 1 0 "f7004881_3f0d_4621_a88d55dec8fc0d30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 287 1 0 "262b36ba_6d86_4009_bdc9a3881db7074e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 288 1 0 "be44b37f_7cec_4f69_81c223f2c30b120b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 289 1 0 "3dea3158_65f8_44bc_8d06a31ce3458dab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); // }} "" // {{{ 290 1 0 "308b2aa2_5970_4692_858049c6559d6ad0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 291 1 0 "756d0f81_3645_4a49_a0c2259581e11498" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 292 1 0 "cdbf11ba_b1f8_4016_811240a02705f1fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{{ 293 1 0 "625df597_c6c8_4e4a_b956e9580bfbc568" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); // }} "" // {{{ 294 1 0 "3576d134_8507_4e47_9c2bcc3dce8c026d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 295 1 0 "5b9c06ad_9081_4b6b_97e50cc87623b888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 296 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 297 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 298 1 0 "d1f3c2ac_9c68_4200_a3506bbbed8e42a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 299 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 300 1 0 "f1d1c43b_a9dd_4573_a69dd7c0e79eea40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 301 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 302 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 303 1 0 "4d304110_107e_412e_909bb84008a244de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 304 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 305 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 306 1 0 "72e31f7d_c091_4525_a5cf7001754b199d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 307 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 308 1 0 "47dfcbb5_d784_48bb_b36b97509434a3a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 309 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 310 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 311 1 0 "e6c53925_446e_468e_b0e0654b4b9d9a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 312 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 313 1 0 "c0cbb194_1b8b_4fe0_a0f706e03eaa0748" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 314 1 0 "46703217_a28e_42ce_b13c11d73ba34bfa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn); // }} "" // {{{ 315 1 0 "189164cc_2681_492f_83f072fb537648b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn); // }} "" // {{{ 316 1 0 "c8d6960a_f416_47b1_a29e2752973c0ec9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 317 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 318 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 319 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 320 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripMove") { // }} "" // {{ 321 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 322 1 0 "5755c338_faa3_4f0a_9acd4cd01a912862" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 323 1 0 "2849c819_a3dc_4328_8484ccc4785993d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{ 324 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 325 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 326 1 0 "e038f780_938f_4867_98f769488ca44b04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 327 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 328 1 0 "27439ab7_df5a_4e1b_99b64e6c9fd0d9f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 329 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 330 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 331 1 0 "e2da0756_7cea_44e7_963442343f3c0732" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 332 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 333 1 0 "90f602a1_fdc5_48fd_801269ecd2c3f9bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn); // }} "" // {{{ 334 1 0 "dc418b75_2d70_4034_84a767fba752b262" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn); // }} "" // {{{ 335 1 0 "6379549c_caf9_409f_b293abf77f1dcfbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 336 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 337 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 338 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 339 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripPlace") { // }} "" // {{ 340 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 341 1 0 "6f38d60b_6dc5_4159_ba30360f264222da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 342 1 0 "b6ef73cf_c89c_41cc_a3b72dc5aaf70f90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 343 1 0 "c7e5f5bd_edcc_4000_9be3db81af0c79fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 344 1 0 "91ff4c39_6a86_4eda_998a5461ef6c3cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 345 1 0 "341a6f8e_b4c8_4966_b9520322d1bc2e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 346 1 0 "32792c80_3b36_4a25_8fff6b99bfcf1919" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); // }} "" // {{{ 347 1 0 "b1e5d86e_c659_4d33_9e0f83fdb20b2cb5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 348 1 0 "76b26748_4e74_45f7_85a7dc102b5fd7b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); // }} "" // {{{ 349 1 0 "ee221e8a_a662_49d8_be2ef0ed631d9527" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 350 1 0 "cbefd54c_5f0a_4a16_a0199198529b71fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 351 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 352 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 353 1 0 "ac4e7090_c3c7_4707_8d98dc55262c294b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 354 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 355 1 0 "eb5776ad_c858_4ee8_ba31f47af19e76af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 356 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 357 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 358 1 0 "1f3eb006_1b10_427e_99d0b530f1afc2ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 359 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 360 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 361 1 0 "a04c5993_bf3e_46c7_92f24c8236636b00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 362 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 363 1 0 "2455f68c_be4e_4a21_9e9e78f78f6e8e3c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 364 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 365 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 366 1 0 "ad5d98b0_9e3d_4275_90ceef06ceca045d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 367 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 368 1 0 "3321537f_63fb_48a4_90e40a2fee1cc432" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 369 1 0 "8c7e60df_f040_45c6_a939d99bcd0ac23c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn); // }} "" // {{{ 370 1 0 "24e589a9_98d7_429d_90c8afe203e96ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn); // }} "" // {{{ 371 1 0 "9d94d038_d071_4339_aaace5a2e455b240" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 372 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 373 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 374 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 375 1 0 "e411727d_3702_4640_8cb2d7ab8b58a300" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 376 1 0 "ed119e90_c1cf_47e9_882c9179c7675524" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 377 1 0 "006e4737_2b28_4b29_88cabf15c00d0b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGet") { // }} "" // {{ 378 1 0 "7424658f_9b27_4ef0_96837fa8add4c1ac" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 379 1 0 "18dba370_9751_4c10_938c0dcc1f09476a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 380 1 0 "ba1314c5_bdbb_4947_b8ee11ecc5c9306e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 381 1 0 "2de0b12d_07d0_4e02_aeb0adc84a286d4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 382 1 0 "62251128_9c16_4b76_a74221e3e5485ec4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 383 1 0 "991ef31e_cf56_46cb_a1b5023d16177201" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 384 1 0 "a7e77649_9eb2_4bbe_8d4df91d28ca2833" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 385 1 0 "bce9279a_be9d_4a51_b382d782fe953b4f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 386 1 0 "cae1eeb4_415a_4ca2_9cbdc8fbd7bcb5ca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 387 1 0 "47122b9f_c6d0_4a2d_aab3313da595b6db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("inverseGrip"), inverseGrip); // }} "" // {{{ 388 1 0 "b3579536_edb4_4221_babfa43071cf483f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 389 1 0 "4a408dec_c225_49ad_bf9a34fc001001a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{{ 390 1 0 "254c5a0f_44da_4098_b535a89623fde4e9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 391 1 0 "ce8d1267_fa97_4dc5_a35fdb48eed4af6f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{{ 392 1 0 "267e45b6_811f_46eb_a5cf5dcb26fa4ab0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 393 1 0 "40e3aef8_bb0d_49d2_be4badbbed382613" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("tolerance"), tolerance); // }} "" // {{{ 394 1 0 "83550ea0_852b_4084_b34f7fcfd03b6bdf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 395 1 0 "48212cee_a3fa_4708_951f45d7135865bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{ 396 1 0 "7424658f_9b27_4ef0_96837fa8add4c1ac" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 397 1 0 "75be1853_53c2_40d4_968a231c3ec4efae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 398 1 0 "fbc3301f_ce0a_48d5_ad28d0de566e8968" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 399 1 0 "a6a66731_2fea_4358_8cc6545cbb29217a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 400 1 0 "ff2e3d36_c066_4d66_b6acbb2d01d07322" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 401 1 0 "a6a66731_2fea_4358_8cc6545cbb29217a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 402 1 0 "75be1853_53c2_40d4_968a231c3ec4efae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 403 1 0 "40ff9454_596f_42b1_a566d8ee6f7e392c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 404 1 0 "75be1853_53c2_40d4_968a231c3ec4efae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 405 1 0 "18e4b92e_69c6_4fb1_a5032c3224f92e52" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 406 1 0 "905809a6_70ea_4397_b8baecc2ca9a1bd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 407 1 0 "a70a035b_d0bc_4cc3_917340dffbf2ee6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 408 1 0 "3f92b115_b29a_4772_955189aa840c37db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 409 1 0 "a70a035b_d0bc_4cc3_917340dffbf2ee6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 410 1 0 "18e4b92e_69c6_4fb1_a5032c3224f92e52" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 411 1 0 "ca37a475_a69e_4367_aae015a113535d8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 412 1 0 "18e4b92e_69c6_4fb1_a5032c3224f92e52" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 413 1 0 "6767b91d_ea7b_4619_b57b512927b0cb6a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn); // }} "" // {{{ 414 1 0 "034d46bd_e017_4e49_bda2a918b966a9ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Get - step return :"), o_stepReturn); // }} "" // {{{ 415 1 0 "2167695b_833d_4537_b1ca621cd9cb254f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 416 1 0 "006e4737_2b28_4b29_88cabf15c00d0b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 417 1 0 "ed119e90_c1cf_47e9_882c9179c7675524" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 418 1 0 "2d45fcde_698f_4b1e_85c2b355d05ece3f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 419 1 0 "664c8ad8_1978_406c_ba006c21ee6cdc2e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapMove") { // }} "" // {{ 420 1 0 "8dc2ff24_58d0_4fb9_b4476261c7ec9f73" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 421 1 0 "4b09b616_7ad2_4d2f_a3f51c49956f7d25" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 422 1 0 "784d4df8_3b6e_41d3_ac01d0b30128d63d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 423 1 0 "ce22c98b_cefd_44e1_a21f17817fa26757" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{ 424 1 0 "8dc2ff24_58d0_4fb9_b4476261c7ec9f73" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 425 1 0 "192114b0_07b3_4dd4_b8580bbd0300657b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 426 1 0 "19bdcb09_5067_4650_a51d59790ea58358" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 427 1 0 "6bb5085c_63ec_4166_b16d4b088bf17a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 428 1 0 "bbcdaabe_ca2a_4ec9_9c13e083f812412a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 429 1 0 "6bb5085c_63ec_4166_b16d4b088bf17a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 430 1 0 "192114b0_07b3_4dd4_b8580bbd0300657b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 431 1 0 "69b92e0b_ba29_42dc_a6d5ea83701df138" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 432 1 0 "192114b0_07b3_4dd4_b8580bbd0300657b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 433 1 0 "4f9e972e_7acd_45bc_9ed8d7ec3835b42b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn); // }} "" // {{{ 434 1 0 "57844fa2_0bdc_4ba5_aea223c87eb45a0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Move - step return :"), o_stepReturn); // }} "" // {{{ 435 1 0 "cf9a830f_2fb4_44b1_8226f2041b55c305" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 436 1 0 "664c8ad8_1978_406c_ba006c21ee6cdc2e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 437 1 0 "2d45fcde_698f_4b1e_85c2b355d05ece3f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 438 1 0 "9d132be9_3327_43f0_861eab191b312efe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 439 1 0 "f6cc8299_2f28_46a6_9bb97037e5dc466a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPlace") { // }} "" // {{ 440 1 0 "ea361219_5a73_449b_9e9f28937269d164" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 441 1 0 "9271e4c5_3af5_416a_b4ff109847510419" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 442 1 0 "56a04f09_338f_4736_aca6e9c2d81e2c66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 443 1 0 "1e90c36e_9422_4cbb_8894ee0ca1ecb7a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 444 1 0 "2fb72d08_217e_46b5_974400449189f377" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 445 1 0 "83dd7d6c_87dd_4660_8113302408cde86f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 446 1 0 "3619d2e6_ca56_4e64_93bc2c4e763b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 447 1 0 "60a67018_c240_43a5_9f44311bc1e98746" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 448 1 0 "c33ebbef_42a4_46fd_9a8469f9e411c897" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 449 1 0 "20603c7b_d59a_4c57_96ee9752927ff64f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 450 1 0 "1e3f75b9_3592_485c_8b2d352f72a3c437" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{ 451 1 0 "ea361219_5a73_449b_9e9f28937269d164" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 452 1 0 "060f69c1_3a66_464e_8b4353f8f562116a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 453 1 0 "768ae6ad_e584_4b00_8ded5be49db3ac78" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 454 1 0 "e9be51d0_8991_4d2b_8f1e4353bb247c8c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 455 1 0 "2bdfa4de_1f49_4935_801ba5f52847fdc3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 456 1 0 "e9be51d0_8991_4d2b_8f1e4353bb247c8c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 457 1 0 "060f69c1_3a66_464e_8b4353f8f562116a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 458 1 0 "8ad7936f_b4fc_4d56_b2a69c2117a3e2c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 459 1 0 "060f69c1_3a66_464e_8b4353f8f562116a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 460 1 0 "1b9c4a3a_ce6f_4f69_bb890e9ead027750" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 461 1 0 "ae513bfa_0e69_4286_982d555c61b04bea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 462 1 0 "d58b1c9a_619d_4564_b7013ae9300a62c5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 463 1 0 "c6f18361_c2d4_497e_b3568731fe7f72c5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 464 1 0 "d58b1c9a_619d_4564_b7013ae9300a62c5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 465 1 0 "1b9c4a3a_ce6f_4f69_bb890e9ead027750" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 466 1 0 "a1ed641c_3701_495f_ab89e05bf92c5b2f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 467 1 0 "1b9c4a3a_ce6f_4f69_bb890e9ead027750" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 468 1 0 "f6d60a86_5450_40d3_be3b7f2c660e2fe7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn); // }} "" // {{{ 469 1 0 "4805700b_6f6f_426a_9bcbf4176c6fb71f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Place - step return :"), o_stepReturn); // }} "" // {{{ 470 1 0 "74998056_c8c5_4618_88757b8da6932071" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 471 1 0 "f6cc8299_2f28_46a6_9bb97037e5dc466a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 472 1 0 "9d132be9_3327_43f0_861eab191b312efe" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 473 1 0 "3625fde9_51e1_4bb2_84181491a737c26b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 474 1 0 "82f46916_6725_423b_bde46572a3389992" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPark") { // }} "" // {{ 475 1 0 "bfcf1a15_a297_4990_80d9119c099d7671" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 476 1 0 "c7a26fdd_6c33_4ae6_a90ef3acfdc7f489" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("showCollisionCheckDialog"), showCollisionCheckDialog); // }} "" // {{ 477 1 0 "bfcf1a15_a297_4990_80d9119c099d7671" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 478 1 0 "34a065e0_018c_461b_87990a6c61147520" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{{ 479 1 0 "3c7ef19d_c34c_4a13_86e9e970b61a69e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 480 1 0 "cb13151a_7bef_4779_99b9954f02aea276" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 481 1 0 "82f46916_6725_423b_bde46572a3389992" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 482 1 0 "3625fde9_51e1_4bb2_84181491a737c26b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 483 1 0 "e411727d_3702_4640_8cb2d7ab8b58a300" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 484 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 485 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 486 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_BeginMonitoring") { // }} "" // {{{ 487 1 0 "7dd862dc_f7f1_4600_94ca9b83762673dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 488 1 0 "d37d14e5_261f_418c_81f754eb75bf4920" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingToleranceRange"), shakingToleranceRange); // }} "" // {{{ 489 1 0 "0919ceb3_189a_4885_93c8faeab9f9538b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sampleInterval"), sampleInterval); // }} "" // {{{ 490 1 0 "bc3a749e_e1bb_4c4a_9aac06834d85080f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("action"), action); // }} "" // {{ 491 1 0 "4e026721_fd49_4127_87fda5791fa13eff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 492 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ; err.Clear(); // }} "" // {{{ 493 1 0 "a2a0a3bb_c0cf_4123_afe36d1d51ae233c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action); // }} "" // {{ 494 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3202FD4CC34D478f892F31C7684340BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 495 1 0 "7066bb37_8c48_474d_8f467cf1f1e06a8d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 496 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 497 1 0 "c00b8635_652d_48ca_8d345ed070306b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 498 1 0 "85ac1487_5644_4bae_b032f5c191aa47c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 499 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 500 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 501 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 502 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateStarDevice") { // }} "" // {{{ 503 1 0 "4c3dfdd2_2dd6_4c5f_831f92590c13e82e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 504 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_18D9C44C12554d56B5C39C21EA142EC8 ; err.Clear(); // }} "" // {{{ 505 1 0 "cc3d4234_12d6_486a_a110c8ede0e3059b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber); // }} "" // {{ 506 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_18D9C44C12554d56B5C39C21EA142EC8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 507 1 0 "7f473860_0be7_4dc2_87423136869dd829" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 508 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 509 1 0 "7699b24c_5ec6_4cca_b1cb9aed9ce60247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 510 1 0 "85155966_9554_40cb_9693f9b0a11b25a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return2 (device number):"), deviceNumber); // }} "" // {{{ 511 1 0 "d049e779_0761_471d_9f7b8af0967d1633" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 512 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 513 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 514 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 515 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateUSBDevice") { // }} "" // {{{ 516 1 0 "72f0a762_2550_45ad_bea063f4f72a9fe9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 517 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ; err.Clear(); // }} "" // {{{ 518 1 0 "0cd1cef0_3091_48c3_b63490d3e80a5b45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber); // }} "" // {{ 519 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_98100824AA704d26AB40A6BADEF39F48 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 520 1 0 "53df6909_1d0e_4001_ac674452fec957bc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 521 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 522 1 0 "85d76321_871e_4d0e_bb460b7513742e62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return:"), o_stepReturn); // }} "" // {{{ 523 1 0 "d303212f_1f38_442d_a24eee709cf4cdc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return2 (device number):"), deviceNumber); // }} "" // {{{ 524 1 0 "7356ec1e_8437_4679_94613ac2bea4fe0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 525 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 526 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 527 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 528 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_EndMonitoring") { // }} "" // {{{ 529 1 0 "4293ef15_cfcd_4e29_b9b02afae2d471f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 530 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ; err.Clear(); // }} "" // {{{ 531 1 0 "96f15f32_4117_4a09_85dceac0fa769b43" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult); // }} "" // {{ 532 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 533 1 0 "6ba4b834_521a_46da_9ceb8ced08da95f5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 534 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 535 1 0 "ce89bf49_b865_4c3f_a97eba220b5a7d33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS End Monitoring step return:"), o_stepReturn); // }} "" // {{{ 536 1 0 "05229af2_f20a_42ce_908ec8445f3f9dd2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(""), Translate(""), id); // }} "" // {{ 537 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 538 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 539 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 540 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetFirmwareVersion") { // }} "" // {{{ 541 1 0 "942a1cc2_d956_47fa_9a9ffed1e856a632" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 542 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ; err.Clear(); // }} "" // {{ 543 1 0 "20e2b3e5_8664_4809_9bcf626c89196333" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 544 1 0 "c70f5e07_0eeb_45e5_af26714895e2df88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion); // }} "" // {{ 545 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 546 1 0 "38e3e61d_a654_46f5_87f53cf7dfc09446" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 547 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 548 1 0 "7de3b86c_c16d_4932_beedfb948b5d85f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(""), Translate(""), id); // }} "" // {{ 549 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 550 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 551 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 552 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetSerialNumber") { // }} "" // {{{ 553 1 0 "38b7d0d7_7cce_4157_8abc70dfb62eefa5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 554 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 ; err.Clear(); // }} "" // {{ 555 1 0 "d92781d1_27c2_48fb_acfd9cb32428e910" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 556 1 0 "0bbfb488_9723_4a08_9b90171dbec6117a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber); // }} "" // {{ 557 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 558 1 0 "19daab0c_59b0_4af8_a070bee39acf20c1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 559 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 560 1 0 "311e5a04_1ac3_443c_bdc51c5cdc4c44f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(""), Translate(""), id); // }} "" // {{ 561 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 562 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 563 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 564 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerParameter") { // }} "" // {{{ 565 1 0 "f3888a0b_86ea_4c4a_891e1755a6e78556" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 566 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ; err.Clear(); // }} "" // {{ 567 1 0 "df61bf49_7625_493f_ad06bbdbb36b494a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 568 1 0 "e993ed67_92ed_4c85_bd33f90aac53dfb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3); // }} "" // {{ 569 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 570 1 0 "accda6cd_138b_411c_bf3af9b152e986c8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 571 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 572 1 0 "6efd49bf_48c7_437b_8fee57487345eaee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 573 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 574 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 575 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 576 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerSpeed") { // }} "" // {{{ 577 1 0 "e1c29a26_0656_46e3_b0a412143047bd26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 578 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ; err.Clear(); // }} "" // {{ 579 1 0 "8d513473_33ad_47dc_a8c3ed9799195b58" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 580 1 0 "d7148e56_7fcc_471d_8c3a7abc2847db7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2); // }} "" // {{ 581 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 582 1 0 "ee004b75_f488_428e_99b02212bd478984" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 583 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 584 1 0 "41ba2513_e3c2_485c_821198419c3fe286" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 585 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 586 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 587 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 588 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTempParameter") { // }} "" // {{{ 589 1 0 "09fb30ea_33e9_486d_96945af4798859ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 590 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ; err.Clear(); // }} "" // {{ 591 1 0 "4f9610c2_a783_4586_b1725e8904e476cc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 592 1 0 "eea3f2ce_93c1_4efd_be90b89d775a6867" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 593 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C16E1CF8298042f0A01D1040DC911015 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 594 1 0 "ad6b8668_d455_40f9_9e64eac973c2db0c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 595 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 596 1 0 "81e3038e_a3ea_4252_a09b14cd3de477a3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 597 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 598 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 599 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 600 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperature") { // }} "" // {{{ 601 1 0 "01d1add6_c167_4137_8f0c285cd6ad9bed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 602 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ; err.Clear(); // }} "" // {{ 603 1 0 "a54c8c75_1172_46d3_a61e71fe7fea812d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 604 1 0 "4187d732_0d13_4590_99fa08572e32e2f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2); // }} "" // {{ 605 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_14A2AAD200434d69970AC483BD08B64F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 606 1 0 "e9f473e4_b341_4e28_8c5c444235409181" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 607 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 608 1 0 "234847f1_2f0a_4e64_856b9edefcebb425" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 609 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 610 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 611 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 612 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperatureState") { // }} "" // {{{ 613 1 0 "82a233ab_0392_4ebb_9a809d80aae38e44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 614 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ; err.Clear(); // }} "" // {{ 615 1 0 "19a32be3_7476_425d_a82433aead4637cf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 616 1 0 "7f7e0bd7_bea9_474d_92bce5d21da9a2a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2); // }} "" // {{ 617 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_50485390A50647818ED2D3934FBC87E3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 618 1 0 "81e1a27f_16e2_44ed_b7cd3b11ac866a97" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 619 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 620 1 0 "31a69f44_1a59_49ce_a78763f3aa936042" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 621 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 622 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 623 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 624 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SendFirmwareCommand") { // }} "" // {{{ 625 1 0 "11546c32_6ddd_4250_9b8750c9679e5b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 626 1 0 "06688598_f10e_41e9_8a2c6d3dff7b7aae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), command); // }} "" // {{{ 627 1 0 "15a58509_ec93_4677_b1858cadeac42d10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("parameter"), parameter); // }} "" // {{ 628 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ; err.Clear(); // }} "" // {{ 629 1 0 "84b0a5f3_5e82_4770_81998131d1071a7a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 630 1 0 "b63ba349_9a52_43ca_aec17e40c17d231b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter); // }} "" // {{ 631 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_84EE5E4228B140f599748D1271CBB0F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 632 1 0 "f46c286b_9141_4717_ac23994f8defc186" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 633 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 634 1 0 "8b5634c2_e1da_41d3_83c57142f4cae999" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 635 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 636 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 637 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 638 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetPlateLock") { // }} "" // {{{ 639 1 0 "927ddf67_5dbd_432b_b8cf6117a3109b06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 640 1 0 "a3eee1ac_7024_473b_a6eb8a2e9b461a66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("plateLock"), plateLock); // }} "" // {{ 641 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ; err.Clear(); // }} "" // {{ 642 1 0 "a9029174_cbad_4f9c_9ca65c3b9497d605" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 643 1 0 "27d47e3b_913b_4a0e_bdb50007a0e39d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock); // }} "" // {{ 644 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 645 1 0 "bb948751_9e18_4aa8_b86a3dd67208967f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 646 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 647 1 0 "945560ed_40bf_44a9_851fead4c1943f9f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 648 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 649 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 650 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 651 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetShakerParameter") { // }} "" // {{{ 652 1 0 "8a0e14c1_f6c6_4fb8_94094498cccd7991" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 653 1 0 "1810a83f_3fc2_4c49_9d5502fbdfc743e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingDirection"), shakingDirection); // }} "" // {{{ 654 1 0 "c3053579_8645_474f_8c05459eed975362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingAccRamp"), shakingAccRamp); // }} "" // {{ 655 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ; err.Clear(); // }} "" // {{ 656 1 0 "d7ecab6c_533b_4d98_97e3fd144551f6d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 657 1 0 "77463ac5_e629_4772_98004edef4016a6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp); // }} "" // {{ 658 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 659 1 0 "96075a25_a9b4_48ec_b53a90612b9d42a8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 660 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 661 1 0 "5ed72ec4_1b60_4258_969b44c995450ec1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 662 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 663 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 664 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 665 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetSimulation") { // }} "" // {{{ 666 1 0 "941f9e19_ca94_4ede_9719205aeb876593" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{ 667 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ; err.Clear(); // }} "" // {{ 668 1 0 "c8de89fe_7a53_4c03_bbe8ba85302b57ea" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 669 1 0 "41b0c1a2_60aa_4f16_8901c300e9a3dc14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetSimulation(simulate); // }} "" // {{ 670 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 671 1 0 "b9ad26f0_da3e_44e9_a29e1fa4b10f92f4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 672 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 673 1 0 "2e7a9d5f_51df_4c49_bb1986da7e14cd48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 674 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 675 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 676 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 677 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetTempParameter") { // }} "" // {{{ 678 1 0 "99447b6e_9293_483d_bbd7ddee96870904" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 679 1 0 "f55d7581_a005_45e4_9b3d7f7473323e6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("startTimeout"), startTimeout); // }} "" // {{{ 680 1 0 "7192db12_8543_4c8b_81b98b57ce21118d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("toleranceRange"), toleranceRange); // }} "" // {{{ 681 1 0 "8f6d922f_f2ae_43c6_8682df15e6b7c07c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("securityRange"), securityRange); // }} "" // {{ 682 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ; err.Clear(); // }} "" // {{ 683 1 0 "aecc8a3f_302a_4fd4_85780994769765dc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 684 1 0 "57eb738a_6eb2_4f04_b25bd7f7f64a8179" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange); // }} "" // {{ 685 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 686 1 0 "8a17da2c_6b74_4513_a05e482acef68552" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 687 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 688 1 0 "90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 689 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 690 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 691 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 692 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetUSBTrace") { // }} "" // {{{ 693 1 0 "0691ecbd_49b4_4590_91d60e614290ec34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("trace"), intTrace); // }} "" // {{ 694 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ; err.Clear(); // }} "" // {{ 695 1 0 "96a3924c_7b8c_441f_b05115a7adf0396f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 696 1 0 "24723a79_741b_46be_830fe654c08d6d1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetUSBTrace(intTrace); // }} "" // {{ 697 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FE6D15E135D24fd7A06908E89474B650 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 698 1 0 "29acd4b5_13fb_40fe_bc6d971aa6f115a7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 699 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 700 1 0 "cda0d06f_dce0_47ad_bbb419c58aba260e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 701 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 702 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 703 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 704 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShaker") { // }} "" // {{{ 705 1 0 "503e1c47_5f15_42bd_8eaad1057de68ef6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 706 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ; err.Clear(); // }} "" // {{ 707 1 0 "18981818_de5f_4fd3_b704a074fd37c9d8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 708 1 0 "7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed); // }} "" // {{ 709 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 710 1 0 "6fa8ea83_c7bd_4b3e_81768063f8126364" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 711 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 712 1 0 "ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 713 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 714 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 715 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 716 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShakerTimed") { // }} "" // {{{ 717 1 0 "db6b6c2e_da48_4c64_bdddc80ba5a28921" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 718 1 0 "f6f42906_5ded_4a05_8f9a11fac18f7f10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 719 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ; err.Clear(); // }} "" // {{ 720 1 0 "84efe41c_f9b0_4304_896c8b308bb07e76" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 721 1 0 "428d423d_1825_472f_a3aa303d028d0659" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime); // }} "" // {{ 722 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 723 1 0 "367927ae_ba00_4d5a_b9d8f5f9b3d208c3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 724 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 725 1 0 "d73f1476_bf95_4d48_89849f295a9e4d0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 726 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 727 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 728 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 729 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShaker") { // }} "" // {{{ 730 1 0 "f958f5a5_d1c5_4e9e_9262e708f24940c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 731 1 0 "2ce1189b_e54a_48c0_aafc2932409c0b9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 732 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ; err.Clear(); // }} "" // {{ 733 1 0 "7e6d8299_fab6_4435_8adf36d59ca04c7a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 734 1 0 "5fe75151_d308_441e_a049e85f45ca3966" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShaker(dispenseMode, shakingSpeed); // }} "" // {{ 735 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 736 1 0 "64e95a28_a6b6_4e1b_825867f05118aebc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 737 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 738 1 0 "4b0b48f9_3855_4eab_8f22b0902846d750" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 739 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 740 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 741 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 742 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShakerTimed") { // }} "" // {{{ 743 1 0 "858c7861_9fb0_490e_9646b9eb190706d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 744 1 0 "327bd0c6_60a8_4fd1_9ef81e2a21d904a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 745 1 0 "83a6d58d_c761_484f_871c9c2229a6d3d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 746 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ; err.Clear(); // }} "" // {{ 747 1 0 "08abdac2_e330_47c9_9b80d99dd0338c3d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 748 1 0 "22e55b69_c018_47f9_8e3ac169c190d2de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); // }} "" // {{ 749 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_29447729262E4e0f8B347F6640716D96 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 750 1 0 "a26bca7d_b38c_4413_b61d3da3fdfb077b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 751 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 752 1 0 "f539df09_de1d_4fd8_9ac041897fab0333" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 753 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 754 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 755 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 756 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartTempCtrl") { // }} "" // {{{ 757 1 0 "dc338e01_6b43_4fe3_bda98d2b0a1a65e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 758 1 0 "04239a09_93a5_4f75_80f95d178bdf9cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("temperature"), temperature); // }} "" // {{{ 759 1 0 "0387745b_87be_4ec6_912b0b4decaa257b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("waitForTempReached"), waitForTempReached); // }} "" // {{ 760 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ; err.Clear(); // }} "" // {{ 761 1 0 "0e03f515_b847_4dfd_8aa52f8b5f1135cd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 762 1 0 "4ba75dd5_935f_4f2c_a15605eafa47b808" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached); // }} "" // {{ 763 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_764F491C76DA445383E5490AB126ADB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 764 1 0 "e7b29c37_b63e_40fe_a3663d4eb8c7dc93" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 765 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 766 1 0 "bfde731d_b581_4488_b4cb7f4873675d7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 767 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 768 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 769 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 770 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopAllShaker") { // }} "" // {{ 771 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ; err.Clear(); // }} "" // {{ 772 1 0 "7ca275a0_4aed_4b67_9535646b2074ebaf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 773 1 0 "d112da95_7f27_47a3_9e24bc801bcc9afc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{ 774 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 775 1 0 "e87b7e6f_2610_44dd_b7d0262ac681e308" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 776 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 777 1 0 "5706daca_363f_417f_9103f7ddd16c1444" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 778 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 779 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 780 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 781 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopShaker") { // }} "" // {{{ 782 1 0 "1cdead0d_9944_446b_bd59d491b15242b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 783 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ; err.Clear(); // }} "" // {{ 784 1 0 "d02dc65a_05f9_4938_90df6cee1381d4dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 785 1 0 "75688e3b_5ed1_45d1_a4d8344ca19c3fd3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{ 786 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 787 1 0 "b5ede424_b7f1_4369_8610d54e626df620" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 788 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 789 1 0 "6ffd1f39_ec63_4f9c_a7687447aff79f80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 790 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 791 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 792 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 793 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopTempCtrl") { // }} "" // {{{ 794 1 0 "b16ab946_2ba9_4900_bd6f9ede31edf6ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 795 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B5957B02990845739642D8C604B0B582 ; err.Clear(); // }} "" // {{ 796 1 0 "e22c8ca0_6e3f_454b_8628dd4417a6fd78" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 797 1 0 "3a29dc5b_78cc_4ed1_ab9cd631701715e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber); // }} "" // {{ 798 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B5957B02990845739642D8C604B0B582 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 799 1 0 "c8c0c20e_b866_451e_9ecd69fdb0b0ed14" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 800 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 801 1 0 "11f3231a_40df_4c14_92585ab8016165e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 802 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 803 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 804 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 805 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_Terminate") { // }} "" // {{ 806 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ; err.Clear(); // }} "" // {{ 807 1 0 "e2f732a1_e433_4ab6_b3bdac9a4ca5bd19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 808 1 0 "910932e3_2b76_41cf_9dccecb799f2d649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::Terminate(); // }} "" // {{ 809 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_919FCF7F89804c398972DAFE2605D286 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 810 1 0 "44edbcbd_1012_457f_848d11750abdfeb2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 811 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 812 1 0 "4edde3c1_4f65_4403_a54985d84f6d80f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 813 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 814 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 815 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 816 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForShaker") { // }} "" // {{{ 817 1 0 "87872be5_4e84_4b7b_98a3e7147a66f6a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 818 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ; err.Clear(); // }} "" // {{ 819 1 0 "d5b14e5b_7d51_414e_af4dfb664c89e0c1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 820 1 0 "2eff956e_28cc_4094_8285d5ed00125a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber); // }} "" // {{ 821 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 822 1 0 "d60c31db_3b59_4498_8c47e4d2612443a4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 823 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 824 1 0 "96b99051_5c80_421c_a02e0bd238da1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 825 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 826 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 827 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 828 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForTempCtrl") { // }} "" // {{{ 829 1 0 "881e7d69_50e3_4e42_89eafece562ac009" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 830 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ; err.Clear(); // }} "" // {{ 831 1 0 "ffa29d3e_8248_4266_80661c264964da5f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 832 1 0 "421a52eb_128a_4b6b_8baafb6548b66bd8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber); // }} "" // {{ 833 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_088C7630997A4749A400740DA66CBA0C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 834 1 0 "8a92c1f7_b614_4c09_b5ada70145cb0a7c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 835 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 836 1 0 "aeb529e0_2eaf_4686_9528342b58318a5d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 837 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 838 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 839 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 840 1 0 "67dcb608_2751_40ce_8b7e4a0603faf2dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 841 1 0 "0f4bf0f0_7250_4df4_ad0fed77d22c4e31" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 842 1 0 "8c27106a_1679_43a9_bf5395da0b449aab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HxFanSet") { // }} "" // {{{ 843 1 0 "b4ddaff1_bbb9_4494_8b1bbd7274a5f7ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 844 1 0 "4c112600_c077_4cd1_97f013ebd6ba3dda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("persistant"), persistant); // }} "" // {{{ 845 1 0 "3e95190c_440f_432c_aaa7fd3a2fb355a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{{ 846 1 0 "1e8f47c7_db5a_4fa4_aee7981e3b80ca64" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("fanSpeed"), fanSpeed); // }} "" // {{ 847 1 0 "6e4ff03e_f972_4901_8442f6e992f211a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_AA4197CCBE624255B3C96A32C1894C99 ; err.Clear(); // }} "" // {{ 848 1 0 "126ff61c_704e_4f65_956d45a1882c292c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 849 1 0 "10161df1_6a13_4efe_8e94e9efb47fea5a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (simulate == 0) { // }} "" // {{ 850 1 0 "13409ed4_ce79_4ef9_89deb34df8b6dd6a" "HxFan:{6FE28420-ECCC-4DE2-8731-3A3A5D98EC19}" { HxFan.Simulate("13409ed4_ce79_4ef9_89deb34df8b6dd6a"); // Simulate } // }} "" // {{ 851 1 0 "10161df1_6a13_4efe_8e94e9efb47fea5a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 852 1 0 "be3ae73e_7395_494a_9aed80ff221436dc" "HxFan:{6FE28420-ECCC-4DE2-8731-3A3A5D98EC19}" { HxFan.Simulate("be3ae73e_7395_494a_9aed80ff221436dc"); // Simulate } // }} "" // {{ 853 1 0 "10161df1_6a13_4efe_8e94e9efb47fea5a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 854 1 0 "ffdf7428_8946_4751_8ec8a7e00f208208" "HxFan:{419861B2-AD5B-4F2E-8025-46B0E593A024}" { HxFan.SetComPort("ffdf7428_8946_4751_8ec8a7e00f208208"); // SetComPort } // }} "" // {{ 855 1 0 "1506decc_f2bf_47a0_a90687ef59450828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (persistant == 0) { // }} "" // {{ 856 1 0 "d081b2a8_b3ef_4a06_9d8d4d8c6cd1dd39" "HxFan:{166B9764-268C-487A-8D8C-EC3ED594717C}" { HxFan.SetContinuousMode("d081b2a8_b3ef_4a06_9d8d4d8c6cd1dd39"); // SetContinuousMode } // }} "" // {{ 857 1 0 "1506decc_f2bf_47a0_a90687ef59450828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 858 1 0 "4914f72b_ecb0_4ab4_b458a744727e1642" "HxFan:{166B9764-268C-487A-8D8C-EC3ED594717C}" { HxFan.SetContinuousMode("4914f72b_ecb0_4ab4_b458a744727e1642"); // SetContinuousMode } // }} "" // {{ 859 1 0 "1506decc_f2bf_47a0_a90687ef59450828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 860 1 0 "203cb0c4_cb6f_42c2_a34aa62a646c29cc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (fanSpeed == 0) { // }} "" // {{ 861 1 0 "cef636fc_366e_46f7_9a8e1e25f716fa31" "HxFan:{1581574C-5388-4E48-BC78-FEE50E8DCE05}" { HxFan.SetFanOff("cef636fc_366e_46f7_9a8e1e25f716fa31"); // SetFanOff } // }} "" // {{ 862 1 0 "203cb0c4_cb6f_42c2_a34aa62a646c29cc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 863 1 0 "f2bbd127_49ad_44c1_aa03eba6244b4cfc" "HxFan:{C3B1A3F9-BD5A-4660-842E-35830B4E80CA}" { HxFan.SetFanSpeed("f2bbd127_49ad_44c1_aa03eba6244b4cfc"); // SetFanSpeed } // }} "" // {{ 864 1 0 "203cb0c4_cb6f_42c2_a34aa62a646c29cc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 865 1 0 "6e4ff03e_f972_4901_8442f6e992f211a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_AA4197CCBE624255B3C96A32C1894C99 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 866 1 0 "8f5e46a2_b896_4dbc_a8eb3d63e6ee3d3d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 867 1 0 "6e4ff03e_f972_4901_8442f6e992f211a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 868 1 0 "0c83267c_5eb8_4165_96bd827e6dad924b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 869 1 0 "8c27106a_1679_43a9_bf5395da0b449aab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 870 1 0 "0f4bf0f0_7250_4df4_ad0fed77d22c4e31" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 871 1 0 "67dcb608_2751_40ce_8b7e4a0603faf2dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 872 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 873 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 874 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "CORE96WashEmpty") { // }} "" // {{{ 875 1 0 "88f95bdd_c2c5_4856_91e5f47f7431bdaf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("refillAfterEmpty"), refillAfterEmpty); // }} "" // {{{ 876 1 0 "d7a05a26_0b59_478a_a85f308173caf693" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1WashLiquid"), chamber1WashLiquid); // }} "" // {{{ 877 1 0 "8b1bd108_2b5a_4a2d_ace7b87920eae1b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1LiquidChange"), chamber1LiquidChange); // }} "" // {{{ 878 1 0 "d651fbf5_a4b8_490b_b869269338ccfcfa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2WashLiquid"), chamber2WashLiquid); // }} "" // {{{ 879 1 0 "79b1a205_d988_4171_9e1fb28ba362329b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2LiquidChange"), chamber2LiquidChange); // }} "" // {{ 880 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ; err.Clear(); // }} "" // {{ 881 1 0 "3fc645b3_f504_4b5e_93481425adf459b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 882 1 0 "f4a1383e_67d1_4f19_92f3a5518acddda4" "ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}" { variable arrRetValues[]; arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3("f4a1383e_67d1_4f19_92f3a5518acddda4"); // Head96EmptyWasher } // }} "" // {{ 883 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EE8804FCDC214a06935DD0F4830020DB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 884 1 0 "ab84bcc8_3da0_446b_84689087cc7a392f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 885 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 886 1 0 "dde0a413_b493_4b17_94990d1d5f2e2b2e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 887 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 888 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 889 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 890 1 0 "1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONFromServer); // }} "" // {{ 891 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 892 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "end") { // }} "" // {{{ 893 1 0 "6db67a5a_6aa2_4087_875823acfff0fac4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Good Bye!")); // }} "" // {{ 894 1 0 "4c7e40d6_02a6_451d_b28230ec71e40ce1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 895 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 896 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 897 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 898 1 0 "6fb90145_24c3_46ba_88b839e0215d0bf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{ 2 "AutoExitBlock" "" STAR_OEM_TOOLKIT::_ExitLibrary(); // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=Hamilton$$valid=0$$time=2018-05-24 16:50$$checksum=685e0d06$$length=085$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~HxB3C9.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" private function ArrayToString( variable & i_array[], variable & o_str ) void ; private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ; private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ; private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ; private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; function SendTextMessageToServer( variable str ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; private function waitForGUItoContinue( ) variable ; function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 1034 1 0 "c8aa765a_4840_468a_9e928b44fa79d891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{{ 5 "OnAbort" "End" } // }} "" // {{{ 5 "SendTextMessageToServer" "Begin" function SendTextMessageToServer( variable str ) void { // }} "" private object objJSONObject; private variable strJSON; // {{ 5 "SendTextMessageToServer" "InitLocals" // }} "" // {{{ 1002 1 0 "9d5f9d4a_c104_4b47_964b6d97f981a71e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONObject); // }} "" // {{{ 1003 1 0 "d0a04705_1adc_4919_b95168834c89f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("command"), Translate("message")); // }} "" // {{{ 1004 1 0 "7b9a6cd1_3eee_4085_b3f9548e43fc3424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("text"), str); // }} "" // {{{ 1005 1 0 "6a1c53cf_65ea_4f53_aa2e9111890fecf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONObject, strJSON); // }} "" // {{{ 1006 1 0 "bee8c148_b3ea_490b_8d93d8ed5f24939f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONObject); // }} "" // {{{ 1007 1 0 "b965a2fd_f821_4400_b4c777f558ed0772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendTextMessageToServer" "End" } // }} "" // {{{ 5 "waitForGUItoContinue" "Begin" private function waitForGUItoContinue( ) variable { // }} "" private variable loopCounter1; private variable serverResponse; private timer timer1; // {{ 5 "waitForGUItoContinue" "InitLocals" // }} "" // {{ 1015 1 0 "73328607_d06a_4d7d_8a5df64da06a1bde" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" serverResponse = Translate(""); // }} "" // {{{ 1016 1 0 "2342f8b3_4765_4edc_9fb9f46cbb1fd20b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Waiting for server instructions...")); // }} "" // {{{ 1017 1 0 "216e1039_788e_4830_8588933e6c542ba1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Waiting for server instructions...."), Translate("")); // }} "" // {{ 1018 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounter1 = 0; while (1 == 1) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1019 1 0 "5f15547c_3178_4f78_b5fea96f6a1c563b" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.1) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1020 1 0 "cd67277b_4386_4862_8429008a00601693" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 1021 1 0 "6ec592d0_fe02_41a9_8503db5ccf0e5544" "{C1F3C015-47B3-4514-9407-AC2E65043419}" serverResponse = HSLHttp::HttpGET(objHttp, Translate("http://localhost:3221"), Translate("")); // }} "" // {{ 1022 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (serverResponse != "") { // }} "" // {{ 1023 1 0 "b1e2e308_ee78_46d0_8a6832649536045e" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1024 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1025 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 == 300) { // }} "" // {{ 1026 1 0 "19e5c8f7_a1a9_4348_aa41a572942db630" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1027 1 0 "6be46368_bb3e_4ad8_82647d6f52af8c9b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1028 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1029 1 0 "8951a436_faf4_45df_a268dbb7ddb58c29" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.9) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1030 1 0 "52bb524e_27b1_4bbe_afcf26453d9eb66f" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1031 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1032 1 0 "809789b0_bd70_4c1f_b0d808ce120b1d99" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (serverResponse); // }} "" // {{{ 5 "waitForGUItoContinue" "End" } // }} "" // {{{ 5 "SendStepReturnToServer" "Begin" private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer" "InitLocals" // }} "" // {{{ 990 1 0 "2520bd9f_739d_4111_a27d89f8f73ec39e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 991 1 0 "aa6010ec_0628_49d5_a87e016b4a4fc7f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 992 1 0 "a97c5efa_0ce4_4358_9c51c1893f526b9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 993 1 0 "deceb871_e830_4b14_86e626f745ef083a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 994 1 0 "00afb5c2_b5db_4458_866a13b6cb332b68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 995 1 0 "e52bbd02_b31d_4278_a0f45991eab77d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 996 1 0 "19f99698_3777_4dcf_9fc765c3f221df4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 997 1 0 "329f8b9b_0798_44f8_9ee6b65ec58b0c44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 998 1 0 "7728ac0d_8630_4f61_94af076392758ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 999 1 0 "70d261f2_edc4_49a0_a5a074cd5ab92b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 1000 1 0 "ee0dd62d_582f_4171_b08e37f6106d9b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer" "End" } // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "Begin" private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void { // }} "" private variable n; private variable loopCounter1; private variable strSinglePosition; private variable arrayOfPositions[]; private variable arraySinglePosition[]; private variable labwareID; private variable positionID; // {{ 5 "BuildTempSequenceFromPositions" "InitLocals" { sequence __temp; o_seq = __temp; } // }} "" // {{ 937 1 0 "d9022e13_e502_4969_a8ee79484e990801" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arrayOfPositions.SetSize(0); // }} "" // {{{ 938 1 0 "3e178082_8579_435f_a5db4481bb789d9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strPositions, Translate(";"), arrayOfPositions, 0); // }} "" // {{ 939 1 0 "5d735f26_db1b_4bea_9ee405f4167bb99f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" n=arrayOfPositions.GetSize(); // }} "" // {{{ 940 1 0 "f497f24b_fd39_417d_8703c0d54662309f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq); // }} "" // {{ 941 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 942 1 0 "fd645546_0433_46a0_8619026e338529fd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arraySinglePosition.SetSize(0); // }} "" // {{ 943 1 0 "91aeb0c4_3176_4356_a19a1027bcdb0af3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1); // }} "" // {{{ 944 1 0 "c2b42369_7829_4c62_b58880fce7867995" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strSinglePosition, Translate(","), arraySinglePosition, 0); // }} "" // {{ 945 1 0 "016f61c5_fd76_4c74_903df10a03070f7b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" labwareID=arraySinglePosition.GetAt(1-1); // }} "" // {{ 946 1 0 "886fc872_7c3a_4366_959db6d5f265ed7c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" positionID=arraySinglePosition.GetAt(2-1); // }} "" // {{{ 947 1 0 "766a54b4_4c5b_4991_9d8ceea62d26b216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq, labwareID, positionID); // }} "" // {{ 948 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 949 1 0 "0003c6e9_5b43_438d_bc93be342c3c6b55" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq.SetCurrentPosition(1); // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "End" } // }} "" // {{{ 5 "StrTokenize" "Begin" private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 1009 1 0 "500afe4c_98a8_4117_8c279b9994d0b626" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 1010 1 0 "6a0bd918_2fda_4e4c_a680454ce2576168" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 1011 1 0 "f65ed315_68ed_4ec0_ba0b3c217e692b25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 1012 1 0 "9476acee_e5bb_43d1_bbec232ed01bae08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); // Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "Begin" private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void { // }} "" private variable numOfVolumes; private variable numOfChannelsInVariable; private variable n; private variable loopCounter1; private variable arrSize; private variable loopCounter3; private variable strKeyName; // {{ 5 "BuildArrayOfVolumesForChannels" "InitLocals" o_arrayOfVolumes.SetSize( 0); // }} "" // {{ 911 1 0 "69288f91_eabd_4d15_af5361636ffacbf6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyName = Translate("volumes"); // }} "" // {{ 912 1 0 "bf4c1108_6751_41ee_8d3d3b1a9418548f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfVolumes.SetSize(0); // }} "" // {{{ 913 1 0 "a9cfa743_a769_46a3_b8d7e45a67b3d297" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName); // }} "" // {{ 914 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arrSize > 0) { // }} "" // {{ 915 1 0 "594bebbb_0d54_4893_b20d783de743dd44" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 916 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < arrSize;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{{ 917 1 0 "3bfc9004_2595_4917_b4edcdceed06f518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); // }} "" // {{ 918 1 0 "6be31b23_f55d_4d15_be6abc9ee4bef664" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" Trace("Volume received=", v); // {{ 920 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 921 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 922 1 0 "4a4891b3_f877_4b14_85196b7e820554b2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 923 1 0 "22c7c768_33c4_4975_909e9586375bfe8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(strKeyName, v); // }} "" // {{ 924 1 0 "4e01e62a_13a2_408e_9fbfb2300d5996ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 925 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 926 1 0 "cc565f65_a92a_43ef_9c052b7f5632aca5" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" numOfVolumes=o_arrayOfVolumes.GetSize(); // }} "" // {{{ 927 1 0 "e49355fb_3fe6_4c8d_930870416e36b708" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numOfChannelsInVariable = StrGetLength(strChannels); // }} "" // {{ 928 1 0 "804bc477_e950_4a14_af5f667c73cf5176" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 929 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (numOfVolumes < numOfChannelsInVariable) { // }} "" // {{ 930 1 0 "2e73355c_8b11_4423_b345807cae9d5db8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" n = numOfChannelsInVariable - numOfVolumes; // }} "" // {{ 931 1 0 "53a650d8_2fc1_4c5b_bd19eda433c2a81a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" v = o_arrayOfVolumes.ElementAt( numOfVolumes -1); // }} "" // {{ 932 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 933 1 0 "cd047b15_6a02_40f1_adfb116f6bf5d763" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 934 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 935 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "End" } // }} "" // {{{ 5 "ArrayToString" "Begin" private function ArrayToString( variable & i_array[], variable & o_str ) void { // }} "" private variable arraySize; private variable loopCounter1; // {{ 5 "ArrayToString" "InitLocals" o_str = 0; // }} "" // {{ 901 1 0 "1a220255_6ba4_40fb_be39a6a2f4e0065f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 902 1 0 "f821c4ff_f1a2_4ad7_9bd77dd8652567cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str = Translate(""); // }} "" // {{ 903 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 904 1 0 "afd84a84_8330_46e7_8308e16b5caa05e9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" v=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 905 1 0 "77436fd3_3c87_4f09_9a89259b15ef5bf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, v); // }} "" // {{ 906 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 < arraySize) { // }} "" // {{{ 907 1 0 "d14fd31e_5de8_46f9_bb359f38de9a08ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, Translate(";")); // }} "" // {{ 908 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 909 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "ArrayToString" "End" } // }} "" // {{{ 5 "JSON_GetFloatValue" "Begin" private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void { // }} "" private variable retVal; // {{ 5 "JSON_GetFloatValue" "InitLocals" o_KeyFloatValue = 0; // }} "" Trace("getfloatvalue"); // {{{ 952 1 0 "8f2f8625_6c9e_4c47_b4698d29df60004a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" // {{ 953 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("error getting float value, try with integer"); // {{ 955 1 0 "5a74df81_6685_4703_8b055144f8d74d45" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 956 1 0 "47bb8c98_9624_40ad_b765abfc6b0d0b49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" Trace("error getting float value, tried with integer"); // {{ 958 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("wtf ok i guess its zero"); // {{ 960 1 0 "5b8a3ec6_8ee4_4887_ab7df29fa494cdc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_KeyFloatValue = 0; // }} "" // {{ 961 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 962 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "JSON_GetFloatValue" "End" } // }} "" // {{{ 5 "SendHHSReturnToServer" "Begin" private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; private variable t_arrayStepReturns[]; private variable loopCounter1; private variable keyName; private variable varType; // {{ 5 "SendHHSReturnToServer" "InitLocals" // }} "" // {{{ 964 1 0 "6db3f932_ba70_4cf6_9c2a8636580fc754" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 965 1 0 "3cf8a985_83cc_418e_99293de9d9945d5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("HHS-return")); // }} "" // {{{ 966 1 0 "705c25bc_6db4_4eb9_b05b33999e110198" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{ 967 1 0 "5a9efc02_a11a_4c0c_b166e3b28800cc6c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" t_arrayStepReturns.SetSize(0); // }} "" // {{ 968 1 0 "5aa4f3a8_774f_4f35_ae7fa197ef920048" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn1); // }} "" // {{ 969 1 0 "00ac351d_bc51_41e5_b300af93d6893fa5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn2); // }} "" // {{ 970 1 0 "2aaf8702_2d08_48ee_be96815ca77463c9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn3); // }} "" // {{ 971 1 0 "67fcb56e_9f42_4739_a5ee322f12443a17" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn4); // }} "" // {{ 972 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < 4;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 973 1 0 "a23ae2ed_5b02_41a0_a69215d0b80fde4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" keyName = StrConcat2(Translate("step-return"), loopCounter1); // }} "" // {{{ 974 1 0 "9b92ac94_8c71_4b77_95ac0c691427c4bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" varType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 975 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "s") { // }} "" // {{{ 976 1 0 "1497ea6a_46ab_4ee8_b7951f24b533e644" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 977 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 978 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "f") { // }} "" // {{{ 979 1 0 "61772f9e_fea3_4011_bba06b7fe66e8b0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 980 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 981 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "i") { // }} "" // {{{ 982 1 0 "28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 983 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 984 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 985 1 0 "0a0447b8_96fb_495a_90dfa8f1e2c488ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 986 1 0 "b2a13d10_b443_4fc0_aa0baa2a23cddafe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 987 1 0 "0adf40b4_5c73_46d8_8e6042c6dfd32d86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 988 1 0 "5a5dabeb_e3ed_4730_ab86839e00f75077" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendHHSReturnToServer" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=user$$valid=0$$time=2018-08-14 10:55$$checksum=9c64b9ac$$length=083$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~HxB54F.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "HSLErrLib.hsl" #include "HSLMlStarStepReturnLib.hsl" #include "HSLDevLib.hsl" #include "HSLDevLib.hsl" #include "HSLSeqLib.hsl" #include "HSLStrLib.hsl" #include "HSLTrcLib.hsl" #include "HSL_LiquidClassLib.hsl" #include "HSLInhecoTEC\\HSLInhecoTECLib.hsl" #include "HSLDaisyChainedTiltModule.hsl" #include "HSLBarcodeReader.hsl" #include "HslHamHeaterShakerLib.hsl" #include "HSLDaisyChainedMediaLine.hsl" #include "HSLDaisyChainCommunication.hsl" #include "Hamilton pH Module\\Hamilton pH Module.hsl" #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" #include "Hamilton pH Module\\Hamilton pH Station Washer Module.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace STAR_OEM_TOOLKIT { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function BarcodeReader_Initialize( variable COMPORT, variable & o_stepReturn ) void ; function BarcodeReader_Read( variable & barcode ) void ; function Carrier_Load( device & ML_STAR, variable carrierName, variable barcodeFileName, variable barcodeReadPositions, variable & o_stepReturn_CarrierBC, variable & o_stepReturn_PositionsBCs, variable & o_stepReturn_PositionsBCMasks, variable & o_stepReturn_PositionsIDs, variable & o_CarrierBC, variable & o_PositionsBCs[] ) void ; function Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void ; function Channels_1mL_COREGrippers_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable gripForce, variable gripperToolChannel, variable gripWidth, variable gripHeight, variable widthBefore, variable gripSpeed, variable Zspeed, variable checkPlate, variable & o_stepReturn ) void ; function Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void ; function Channels_1mL_COREGrippers_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable ejectToolWhenFinish, variable Zspeed, variable platePressOnDistance, variable xAcceleration, variable checkPlate, variable & o_stepReturn ) void ; function Channels_1mL_Dispense( device & ML_STAR, sequence & dispenseSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable zMoveAfterStep, variable sideTouch, variable dispPositionAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void ; function Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void ; function Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void ; function Channels_1ml_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable aspirateMode, variable capacitiveLLD, variable pressureLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable maxLLdDifference, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable aspPosAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void ; function Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode, variable & o_stepReturn ) void ; function Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & o_stepReturn ) void ; function Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode, variable & o_stepReturn ) void ; function Inheco_TEC_StopTemperatureControl( variable ControllerID, variable DeviceID, variable & o_stepReturn ) void ; function Inheco_TEC_Terminate( variable StopAllDevices, variable & o_stepReturn ) void ; function Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void ; function MPH96_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable aspirateVolume, variable channelVariable, variable liquidClass, variable sequenceCounting, variable aspirateMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void ; function MPH96_Dispense( device & ML_STAR, sequence & dispenseSequence, variable dispenseVolume, variable liquidClass, variable sequenceCounting, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable zMoveAfterStep, variable sideTouch, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void ; function MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ; function MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ; private function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void ; function SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void ; function TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate, variable & o_stepReturn ) void ; function TiltModule_MoveToPosition( variable Module, variable Position, variable & o_stepReturn ) void ; function iSWAP_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable gripForce, variable inverseGrip, variable collisionControl, variable gripMode, variable retractDistance, variable liftUpHeight, variable gripWidth, variable tolerance, variable gripHeight, variable widthBefore, variable & o_stepReturn ) void ; function iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void ; function iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void ; function iSWAP_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable collisionControl, variable retractDistance, variable liftUpHeight, variable & o_stepReturn ) void ; function pH_Measure( variable i_intModuleID, variable i_fltTemperature, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" // }} "" } // {{{ 5 "Channels_1ml_Aspirate" "Begin" function Channels_1ml_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable aspirateMode, variable capacitiveLLD, variable pressureLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable maxLLdDifference, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable aspPosAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void { // }} "" private variable numberOfPositions; private variable loopCounter1; private variable getLiquidLevels_return; private variable labwareID; private variable positionID; private variable lbwContainersAreConnected; private variable height; private variable calculatedVolume; // {{ 5 "Channels_1ml_Aspirate" "InitLocals" o_stepReturn = 0; o_liquidLevels_mm.SetSize( 0); o_liquidLevels_mL.SetSize( 0); // }} "" // {{ 107 1 0 "2df7cf67_eefd_4634_a6c81ca2eae358a9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_BE09000023754133A7DFF78508E9EC3D ; err.Clear(); // }} "" // {{ 108 1 0 "61c2af00_d7f3_4b2d_90f54ffba06126b4" "ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2("61c2af00_d7f3_4b2d_90f54ffba06126b4"); // Aspirate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 109 1 0 "2df7cf67_eefd_4634_a6c81ca2eae358a9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_BE09000023754133A7DFF78508E9EC3D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 110 1 0 "3dd2c518_6d0a_4d7b_a227743c1263caad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 111 1 0 "2df7cf67_eefd_4634_a6c81ca2eae358a9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 112 1 0 "a8ab29ff_eb70_45dc_a90f0ce07c2514bd" "ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}" { variable arrRetValues[]; arrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C("a8ab29ff_eb70_45dc_a90f0ce07c2514bd"); // GetLastLiquidLevel getLiquidLevels_return = arrRetValues[2]; } // }} "" // {{{ 113 1 0 "a37ce602_144b_4a72_98dbfe0c85169266" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn); // }} "" // {{ 114 1 0 "36e6f2a2_6d83_40ba_a0c6ff5caefcef66" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mm.SetSize(0); // }} "" // {{ 115 1 0 "ce4eba9f_c8e1_4c33_a9c369da4ce7c312" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mL.SetSize(0); // }} "" // {{ 116 1 0 "3fcceb5e_fea5_4776_94261cf223fe007f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < numberOfPositions;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 117 1 0 "c20a15a2_4a40_4214_9e2588af18355e98" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 118 1 0 "81636f39_7511_441a_8ab707955e5f2035" "{C1F3C015-47B3-4514-9407-AC2E65043419}" height = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return); // }} "" // {{ 119 1 0 "6b53ca04_1112_466f_89a23ed352e36004" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mm.AddAsLast(height); // }} "" // {{ 120 1 0 "c20a15a2_4a40_4214_9e2588af18355e98" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 121 1 0 "00f031c0_8454_45d1_9b17554c5e6df7bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 122 1 0 "9c1dd6a5_9b06_43fd_9fd194129c2f2a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn); // }} "" // {{{ 123 1 0 "e6930a03_b2a0_4569_bb51b2088cac413c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn); // }} "" // {{ 124 1 0 "06eeeac2_52c3_47cb_b78dde137d763a9a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 125 1 0 "53b884ef_873a_4201_882d0cc9f9d77d20" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwareID > "") { // }} "" // {{ 126 1 0 "a83a594a_307e_45dd_8a2583323efe8f45" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (positionID > "") { // }} "" // {{ 127 1 0 "83df5041_4b3c_406f_95690782a3a21861" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 128 1 0 "9af2cbf6_5306_4a14_827b32cae1054343" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_15E4EC7C03B0458dA8B196D2861D63BC ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 130 1 0 "9af2cbf6_5306_4a14_827b32cae1054343" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_15E4EC7C03B0458dA8B196D2861D63BC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 131 1 0 "9af2cbf6_5306_4a14_827b32cae1054343" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 132 1 0 "83df5041_4b3c_406f_95690782a3a21861" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 133 1 0 "450b7dae_efb3_416b_a62ef5c611c84cdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" calculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected); // }} "" // {{ 134 1 0 "ca4e0527_c377_4a7f_99b7deddb85bdfaf" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mL.AddAsLast(calculatedVolume); // }} "" // {{ 135 1 0 "a83a594a_307e_45dd_8a2583323efe8f45" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 136 1 0 "53b884ef_873a_4201_882d0cc9f9d77d20" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 137 1 0 "00f031c0_8454_45d1_9b17554c5e6df7bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 138 1 0 "3fcceb5e_fea5_4776_94261cf223fe007f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "Channels_1ml_Aspirate" "End" } // }} "" // {{{ 5 "Channels_1mL_TipPickUp" "Begin" function Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_TipPickUp" "InitLocals" o_stepReturn = 0; // }} "" // {{ 101 1 0 "bcca3c8a_7fce_4767_98fb4ac5db164ddd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_55CAD51E8CEB46d5827DF7367C49B35D ; err.Clear(); // }} "" // {{ 102 1 0 "72075d54_9924_47c4_a0154d7e90bb1065" "ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2("72075d54_9924_47c4_a0154d7e90bb1065"); // TipPickUp o_stepReturn = arrRetValues[2]; } // }} "" // {{ 103 1 0 "bcca3c8a_7fce_4767_98fb4ac5db164ddd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_55CAD51E8CEB46d5827DF7367C49B35D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 104 1 0 "7acd54b9_9bda_465f_9b10e23e8987fa26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 105 1 0 "bcca3c8a_7fce_4767_98fb4ac5db164ddd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_TipPickUp" "End" } // }} "" // {{{ 5 "Channels_1mL_Dispense" "Begin" function Channels_1mL_Dispense( device & ML_STAR, sequence & dispenseSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable zMoveAfterStep, variable sideTouch, variable dispPositionAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void { // }} "" private variable getLiquidLevels_return; private variable labwareID; private variable calculatedVolume; private variable height; private variable lbwContainersAreConnected; private variable positionID; private variable loopCounter1; private variable numberOfPositions; // {{ 5 "Channels_1mL_Dispense" "InitLocals" o_stepReturn = 0; o_liquidLevels_mm.SetSize( 0); o_liquidLevels_mL.SetSize( 0); // }} "" // {{ 62 1 0 "c6b9c3da_70bc_4aa8_841a67bf3e6c7859" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 ; err.Clear(); // }} "" // {{ 63 1 0 "ce9beee3_e67e_43c3_bfc64805ab990e08" "ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2("ce9beee3_e67e_43c3_bfc64805ab990e08"); // Dispense o_stepReturn = arrRetValues[2]; } // }} "" // {{ 64 1 0 "c6b9c3da_70bc_4aa8_841a67bf3e6c7859" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 65 1 0 "493334e8_4548_4149_82f058a4b51df641" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 66 1 0 "c6b9c3da_70bc_4aa8_841a67bf3e6c7859" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 67 1 0 "dd677141_96b6_4ccc_a1764ec36dc76b56" "ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}" { variable arrRetValues[]; arrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C("dd677141_96b6_4ccc_a1764ec36dc76b56"); // GetLastLiquidLevel getLiquidLevels_return = arrRetValues[2]; } // }} "" // {{{ 68 1 0 "4fd5463f_c617_4e2b_aa27d0a820bfe2c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn); // }} "" // {{ 69 1 0 "6cafca26_5df8_46c0_98d5a4e2a957163a" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mm.SetSize(0); // }} "" // {{ 70 1 0 "418d84ad_0fba_4ca8_8479b9c6dde94985" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mL.SetSize(0); // }} "" // {{ 71 1 0 "abfcc803_7e38_4c9d_ad7c8412ada32e1d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < numberOfPositions;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 72 1 0 "1cbaa070_2e26_4301_9831c6bc56227fcf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 73 1 0 "c8304522_b160_47ca_9780bfcfd85cf56a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" height = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return); // }} "" // {{ 74 1 0 "5c09e3e1_cd42_4687_940231f4491e28e1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mm.AddAsLast(height); // }} "" // {{ 75 1 0 "1cbaa070_2e26_4301_9831c6bc56227fcf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 76 1 0 "ed6c9c1d_db69_4c65_8a4324433bd43f03" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 77 1 0 "11b5458b_6926_471d_8cb7dde489f8a444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn); // }} "" // {{{ 78 1 0 "51ffe893_b0e5_4383_ac38b9be481a9bee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn); // }} "" // {{ 79 1 0 "b02dd957_c3d3_445f_b0e36cc6cab274af" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 80 1 0 "35647e0a_accb_4503_80bba06d7d2a3271" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwareID > "") { // }} "" // {{ 81 1 0 "693f6d8c_e7fa_419d_b923bb796e5548fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (positionID > "") { // }} "" // {{ 82 1 0 "086a404a_99f9_4215_81fcc4be65c886b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 83 1 0 "1b6d6482_1c62_4a3f_90dfdeaf8695fb92" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_16FB3828C9A34ba7A7078E29FEF48CFF ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 85 1 0 "1b6d6482_1c62_4a3f_90dfdeaf8695fb92" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_16FB3828C9A34ba7A7078E29FEF48CFF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 86 1 0 "1b6d6482_1c62_4a3f_90dfdeaf8695fb92" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 87 1 0 "086a404a_99f9_4215_81fcc4be65c886b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 88 1 0 "36cc23a5_3886_4312_adc5faa6d481a26c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" calculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected); // }} "" // {{ 89 1 0 "9f017e3d_a3f3_4f02_914d74e549a5f3be" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mL.AddAsLast(calculatedVolume); // }} "" // {{ 90 1 0 "693f6d8c_e7fa_419d_b923bb796e5548fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 91 1 0 "35647e0a_accb_4503_80bba06d7d2a3271" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 92 1 0 "ed6c9c1d_db69_4c65_8a4324433bd43f03" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 93 1 0 "abfcc803_7e38_4c9d_ad7c8412ada32e1d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "Channels_1mL_Dispense" "End" } // }} "" // {{{ 5 "Channels_1mL_TipEject" "Begin" function Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_TipEject" "InitLocals" o_stepReturn = 0; // }} "" // {{ 95 1 0 "68086392_46e4_4533_88368c1cf77ceb2d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_D52469807F754a359D17B8D31042C6A6 ; err.Clear(); // }} "" // {{ 96 1 0 "1a33c622_0a9b_473c_a857db709fcadb47" "ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2("1a33c622_0a9b_473c_a857db709fcadb47"); // TipEject o_stepReturn = arrRetValues[2]; } // }} "" // {{ 97 1 0 "68086392_46e4_4533_88368c1cf77ceb2d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_D52469807F754a359D17B8D31042C6A6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 98 1 0 "5284933d_2b98_4255_81ee24c4ca6624c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 99 1 0 "68086392_46e4_4533_88368c1cf77ceb2d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_TipEject" "End" } // }} "" // {{{ 5 "Carrier_Load" "Begin" function Carrier_Load( device & ML_STAR, variable carrierName, variable barcodeFileName, variable barcodeReadPositions, variable & o_stepReturn_CarrierBC, variable & o_stepReturn_PositionsBCs, variable & o_stepReturn_PositionsBCMasks, variable & o_stepReturn_PositionsIDs, variable & o_CarrierBC, variable & o_PositionsBCs[] ) void { // }} "" private variable numberOfPositions; private variable loopCounter1; private variable positionBC; // {{ 5 "Carrier_Load" "InitLocals" o_stepReturn_CarrierBC = 0; o_stepReturn_PositionsBCs = 0; o_stepReturn_PositionsBCMasks = 0; o_stepReturn_PositionsIDs = 0; o_CarrierBC = 0; o_PositionsBCs.SetSize( 0); // }} "" // {{ 18 1 0 "5c909756_0e7e_4404_9569fb2db3dd1158" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_6F7D183CCBCA490f840A10F79D2CB4F6 ; err.Clear(); // }} "" // {{ 19 1 0 "b445eca9_c441_45d7_b53f08a23b7b4b80" "ML_STAR:{54114402-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._54114402_7FA2_11D3_AD85_0004ACB1DCB2("b445eca9_c441_45d7_b53f08a23b7b4b80"); // LoadCarrier o_stepReturn_CarrierBC = arrRetValues[2]; o_stepReturn_PositionsBCs = arrRetValues[3]; o_stepReturn_PositionsBCMasks = arrRetValues[4]; o_stepReturn_PositionsIDs = arrRetValues[5]; } // }} "" // {{ 20 1 0 "5c909756_0e7e_4404_9569fb2db3dd1158" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_6F7D183CCBCA490f840A10F79D2CB4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 21 1 0 "6919be45_bdb7_46b6_a2ad892454bef1c7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_CarrierBC = ErrGetDataAt(3); // }} "" // {{{ 22 1 0 "d814f66e_6beb_47a8_a390d3b5ea839ba9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionsBCs = ErrGetDataAt(4); // }} "" // {{{ 23 1 0 "018a7d4d_f55c_435f_bfce516fc40cd0bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionsBCMasks = ErrGetDataAt(5); // }} "" // {{{ 24 1 0 "28252b10_bd1a_480c_8d84ce9739ca69ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionsIDs = ErrGetDataAt(6); // }} "" // {{ 25 1 0 "5c909756_0e7e_4404_9569fb2db3dd1158" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 26 1 0 "f7c4b6e5_401a_41ab_b920370ccc277a17" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 27 1 0 "91e50e7b_5626_4ab9_ad652563a737dba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_CarrierBC = StepReturn::GetStepData(1, o_stepReturn_CarrierBC); // }} "" // {{ 28 1 0 "f7c4b6e5_401a_41ab_b920370ccc277a17" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 29 1 0 "628b131a_a46c_40b8_b9a61700e818c0e7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 30 1 0 "6135f8c7_3486_4898_88c6e7154326c4df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn_PositionsBCs); // }} "" // {{ 31 1 0 "4cec9992_cb23_4182_894ee448e99b8d48" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_PositionsBCs.SetSize(0); // }} "" // {{ 32 1 0 "0249a50f_bae7_4b5c_86cdc25ab8f43639" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < numberOfPositions;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 33 1 0 "fe82471b_5e85_4598_90b8f672ef3cf690" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionBC = StepReturn::GetStepData(loopCounter1, o_stepReturn_PositionsBCs); // }} "" // {{ 34 1 0 "f0a92a30_0f95_4eb4_bdcf7e21db350ecb" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_PositionsBCs.AddAsLast(positionBC); // }} "" // {{ 35 1 0 "0249a50f_bae7_4b5c_86cdc25ab8f43639" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 36 1 0 "628b131a_a46c_40b8_b9a61700e818c0e7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "Carrier_Load" "End" } // }} "" // {{{ 5 "Carrier_Unload" "Begin" function Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void { // }} "" // {{ 5 "Carrier_Unload" "InitLocals" o_stepReturn = 0; // }} "" // {{ 38 1 0 "c21e08df_939e_41ef_9843a250f42bf239" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_040A2B30BAA84a018D3C82EF2B4AAB10 ; err.Clear(); // }} "" // {{ 39 1 0 "38494363_9fef_41a3_8cb17f349c9fe693" "ML_STAR:{54114400-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._54114400_7FA2_11D3_AD85_0004ACB1DCB2("38494363_9fef_41a3_8cb17f349c9fe693"); // UnloadCarrier o_stepReturn = arrRetValues[2]; } // }} "" // {{ 40 1 0 "c21e08df_939e_41ef_9843a250f42bf239" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_040A2B30BAA84a018D3C82EF2B4AAB10 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 41 1 0 "9aa00b86_389e_473d_bd928bce39259e60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 42 1 0 "c21e08df_939e_41ef_9843a250f42bf239" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Carrier_Unload" "End" } // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Get" "Begin" function Channels_1mL_COREGrippers_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable gripForce, variable gripperToolChannel, variable gripWidth, variable gripHeight, variable widthBefore, variable gripSpeed, variable Zspeed, variable checkPlate, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_COREGrippers_Get" "InitLocals" o_stepReturn = 0; // }} "" // {{ 44 1 0 "b30da27c_bef5_49a0_87d76c8049f31861" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90BF8C56374E469c817DB7B52FEE5D91 ; err.Clear(); // }} "" // {{ 45 1 0 "f1e43893_ada0_4b74_9035cad36fab5d4b" "ML_STAR:{A108628C-BEB7-4CB6-99FD-8523302C700F}" { variable arrRetValues[]; arrRetValues = ML_STAR._A108628C_BEB7_4CB6_99FD_8523302C700F("f1e43893_ada0_4b74_9035cad36fab5d4b"); // ZSwapGetPlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 46 1 0 "b30da27c_bef5_49a0_87d76c8049f31861" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90BF8C56374E469c817DB7B52FEE5D91 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 47 1 0 "5300695f_5b47_4f16_8312711c7c77441e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 48 1 0 "b30da27c_bef5_49a0_87d76c8049f31861" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Get" "End" } // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Place" "Begin" function Channels_1mL_COREGrippers_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable ejectToolWhenFinish, variable Zspeed, variable platePressOnDistance, variable xAcceleration, variable checkPlate, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_COREGrippers_Place" "InitLocals" o_stepReturn = 0; // }} "" // {{ 56 1 0 "b65dcae3_6ff9_4720_a4f35e99346d8975" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8675588E513E44cd8097542899F1DE5C ; err.Clear(); // }} "" // {{ 57 1 0 "3460f3d9_9fdb_4437_9cfa36d33b14f837" "ML_STAR:{9DF3DD4B-3B5E-4750-8989-04458D1B134B}" { variable arrRetValues[]; arrRetValues = ML_STAR._9DF3DD4B_3B5E_4750_8989_04458D1B134B("3460f3d9_9fdb_4437_9cfa36d33b14f837"); // ZSwapPlacePlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 58 1 0 "b65dcae3_6ff9_4720_a4f35e99346d8975" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8675588E513E44cd8097542899F1DE5C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 59 1 0 "1c1fcfa6_73ab_434d_965f40a7cb5827ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 60 1 0 "b65dcae3_6ff9_4720_a4f35e99346d8975" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Place" "End" } // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Move" "Begin" function Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_COREGrippers_Move" "InitLocals" o_stepReturn = 0; // }} "" // {{ 50 1 0 "ced13f47_fded_4378_af08e9af8f325393" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_17F7F9C2DD974e61B13F20ADC6F241A8 ; err.Clear(); // }} "" // {{ 51 1 0 "2ed0456d_387e_49b4_a5a8105447123f04" "ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}" { variable arrRetValues[]; arrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E("2ed0456d_387e_49b4_a5a8105447123f04"); // ZSwapMovePlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 52 1 0 "ced13f47_fded_4378_af08e9af8f325393" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_17F7F9C2DD974e61B13F20ADC6F241A8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 53 1 0 "b5f59ed6_6bf0_47b3_b8c295016cfa86e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 54 1 0 "ced13f47_fded_4378_af08e9af8f325393" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Move" "End" } // }} "" // {{{ 5 "iSWAP_Get" "Begin" function iSWAP_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable gripForce, variable inverseGrip, variable collisionControl, variable gripMode, variable retractDistance, variable liftUpHeight, variable gripWidth, variable tolerance, variable gripHeight, variable widthBefore, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Get" "InitLocals" o_stepReturn = 0; // }} "" // {{ 285 1 0 "53a14975_dd73_4964_8c8c9f0730a43a7a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ABA9DAA34A59470495CBB56841D2D81D ; err.Clear(); // }} "" // {{ 286 1 0 "285b84de_748a_400d_a828988b60f4c175" "ML_STAR:{CC819D7A-5DD8-4d13-A921-D74A06460F9E}" { variable arrRetValues[]; arrRetValues = ML_STAR._CC819D7A_5DD8_4d13_A921_D74A06460F9E("285b84de_748a_400d_a828988b60f4c175"); // GetPlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 287 1 0 "53a14975_dd73_4964_8c8c9f0730a43a7a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ABA9DAA34A59470495CBB56841D2D81D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 288 1 0 "298cdb09_c92e_4bb7_a2ecabeafcf27813" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 289 1 0 "53a14975_dd73_4964_8c8c9f0730a43a7a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Get" "End" } // }} "" // {{{ 5 "iSWAP_Place" "Begin" function iSWAP_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable collisionControl, variable retractDistance, variable liftUpHeight, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Place" "InitLocals" o_stepReturn = 0; // }} "" // {{ 303 1 0 "c9f8030c_ef60_485e_9b279138f7f6da52" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_22A12BE8BB2146fbB8824DF66137BF6C ; err.Clear(); // }} "" // {{ 304 1 0 "bcedff0a_3cba_458a_bedb1a743e5dd0bd" "ML_STAR:{E34155E5-7529-4b6b-AE3E-CDDA40789D55}" { variable arrRetValues[]; arrRetValues = ML_STAR._E34155E5_7529_4b6b_AE3E_CDDA40789D55("bcedff0a_3cba_458a_bedb1a743e5dd0bd"); // PutPlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 305 1 0 "c9f8030c_ef60_485e_9b279138f7f6da52" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_22A12BE8BB2146fbB8824DF66137BF6C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 306 1 0 "8aeb393a_337d_4788_b25408ee6915eb1c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 307 1 0 "c9f8030c_ef60_485e_9b279138f7f6da52" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Place" "End" } // }} "" // {{{ 5 "iSWAP_Move" "Begin" function iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Move" "InitLocals" o_stepReturn = 0; // }} "" // {{ 291 1 0 "65ac7a80_b8fd_4f3c_a9e6290ec6a707a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E8A019BC968240cbB4C8B7397BB2F043 ; err.Clear(); // }} "" // {{ 292 1 0 "d98672e5_cec6_49ef_92dfdaa4ec2da4f2" "ML_STAR:{862562D1-B5BB-48ce-B5E4-9E37F8ABB61E}" { variable arrRetValues[]; arrRetValues = ML_STAR._862562D1_B5BB_48ce_B5E4_9E37F8ABB61E("d98672e5_cec6_49ef_92dfdaa4ec2da4f2"); // MovePlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 293 1 0 "65ac7a80_b8fd_4f3c_a9e6290ec6a707a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E8A019BC968240cbB4C8B7397BB2F043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 294 1 0 "b69dc448_e2ef_4c62_b6dd3535487928f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 295 1 0 "65ac7a80_b8fd_4f3c_a9e6290ec6a707a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Move" "End" } // }} "" // {{{ 5 "iSWAP_Park" "Begin" function iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Park" "InitLocals" o_stepReturn = 0; // }} "" // {{ 297 1 0 "fae9e68f_ea34_4f4d_bb6f62c288b1e7b4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_47ED933D92B34914984C5D98423B4C94 ; err.Clear(); // }} "" // {{ 298 1 0 "ef5a4036_5d2f_4aae_86e669ef0581597f" "ML_STAR:{86F668D0-478C-41b6-A78B-8B6B8EAA54A7}" { variable arrRetValues[]; arrRetValues = ML_STAR._86F668D0_478C_41b6_A78B_8B6B8EAA54A7("ef5a4036_5d2f_4aae_86e669ef0581597f"); // ParkISwap o_stepReturn = arrRetValues[2]; } // }} "" // {{ 299 1 0 "fae9e68f_ea34_4f4d_bb6f62c288b1e7b4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_47ED933D92B34914984C5D98423B4C94 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 300 1 0 "974d3165_8b4f_469b_99a59625d159b561" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 301 1 0 "fae9e68f_ea34_4f4d_bb6f62c288b1e7b4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Park" "End" } // }} "" // {{{ 5 "MPH96_TipPickUp" "Begin" function MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void { // }} "" // {{ 5 "MPH96_TipPickUp" "InitLocals" o_stepReturn = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{ 236 1 0 "e2468a9b_8b3f_4977_bbdfbeb62da8eff3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_6640FC09A88C48daB6CB9FB2349BE364 ; err.Clear(); // }} "" // {{ 237 1 0 "b3913cc3_f1bb_4e9f_b3100faec37b186d" "ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}" { variable arrRetValues[]; arrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B("b3913cc3_f1bb_4e9f_b3100faec37b186d"); // Head96TipPickUp o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 238 1 0 "e2468a9b_8b3f_4977_bbdfbeb62da8eff3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_6640FC09A88C48daB6CB9FB2349BE364 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 239 1 0 "1df2d158_801c_4c9f_a8014869fa07863d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 240 1 0 "315f1e4b_8d32_430c_89413b8e4b5b135a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 241 1 0 "e2468a9b_8b3f_4977_bbdfbeb62da8eff3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPH96_TipPickUp" "End" } // }} "" // {{{ 5 "MPH96_Aspirate" "Begin" function MPH96_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable aspirateVolume, variable channelVariable, variable liquidClass, variable sequenceCounting, variable aspirateMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void { // }} "" private variable labwareID; private variable lbwContainersAreConnected; private variable positionID; // {{ 5 "MPH96_Aspirate" "InitLocals" o_stepReturn = 0; o_liquidLevel_mm = 0; o_liquidLevel_mL = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{{ 185 1 0 "0fc30c09_ddb7_4665_8739dbd8f0102fdc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = SeqGetLabwareId(aspirateSequence); // }} "" // {{{ 186 1 0 "14c1eb4e_ced0_45f2_a343bc0f3c668407" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = SeqGetPositionId(aspirateSequence); // }} "" // {{ 187 1 0 "7afd0547_a78c_4fb0_b040d35803532eb4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_00A0A59BF99B42a686A202BE72502D6C ; err.Clear(); // }} "" // {{ 188 1 0 "8d6fdce5_327c_491b_aebee60a715b6c6e" "ML_STAR:{827392A0-B7E8-4472-9ED3-B45B71B5D27A}" { variable arrRetValues[]; arrRetValues = ML_STAR._827392A0_B7E8_4472_9ED3_B45B71B5D27A("8d6fdce5_327c_491b_aebee60a715b6c6e"); // Head96Aspirate o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 189 1 0 "7afd0547_a78c_4fb0_b040d35803532eb4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_00A0A59BF99B42a686A202BE72502D6C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 190 1 0 "6c23fd1d_be57_4011_8fea4ea6459aeecf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 191 1 0 "ee52ace2_98fe_454f_841ae740168bebcd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 192 1 0 "7afd0547_a78c_4fb0_b040d35803532eb4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 193 1 0 "4efb91d8_0e10_400c_a4820b22b5ba22d5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 194 1 0 "8bf3cb1f_0b71_493d_bf300c05413fc543" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" MPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm); // }} "" // {{ 195 1 0 "4efb91d8_0e10_400c_a4820b22b5ba22d5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 196 1 0 "b82d3cc9_9e79_4547_800ffcbdb5ef0aa7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 197 1 0 "091a5303_35ee_4d82_a0b32d9ede26439d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 198 1 0 "64d5c65b_9fa5_44de_a21e4ee08c78310f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 199 1 0 "99cc0c51_635c_4f24_ac7aec94869f04a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_06FF5C7D72E044ac924A0658E57AC92A ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 201 1 0 "99cc0c51_635c_4f24_ac7aec94869f04a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_06FF5C7D72E044ac924A0658E57AC92A : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 202 1 0 "99cc0c51_635c_4f24_ac7aec94869f04a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 203 1 0 "64d5c65b_9fa5_44de_a21e4ee08c78310f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 204 1 0 "0b5e4cdb_1c92_4d18_a0bed95d854a0d94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected); // }} "" // {{ 205 1 0 "b82d3cc9_9e79_4547_800ffcbdb5ef0aa7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "MPH96_Aspirate" "End" } // }} "" // {{{ 5 "MPH_GetLastLLD_Level" "Begin" private function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void { // }} "" private variable flt_X_Coord; private variable flt_Y_Coord; private variable flt_Z_Coord; private variable flt_SubmergeDepthCORE; private variable str_FW_Digits; private variable flt_TipLength; private variable int_LLDheight; private variable flt_TipLength_corrected; private variable int_FW_Digits; private variable flt_StepSize; private variable int_Steps_mm; private variable str_ReturnValueH0RH; private variable flt_angle; private variable tipType; // {{ 5 "MPH_GetLastLLD_Level" "InitLocals" o_flt_LastLiquidLevel = 0; // }} "" // {{ 243 1 0 "f7c5b642_e642_4bd2_b342e8a2202f94b2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_SubmergeDepthCORE = 8.0; // }} "" // {{ 244 1 0 "b15f54b8_160d_4d5a_9470d19afc4b0155" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 245 1 0 "de2e1cfc_3be8_4752_b20a1221fc802c26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::Initialize(ML_STAR, 1); // }} "" // {{{ 246 1 0 "bf16ce46_b00c_46c3_93046a4e730e9868" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SelectLiquidClass(i_liquidClass); // }} "" // {{{ 247 1 0 "7d094f81_a8b9_4eb1_90a841201d1a4cca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" tipType = LiquidClassLib::GetLiquidClassParameter(LiquidClassLib::LIQUIDCLASS_PARAMS::TipType); // }} "" // {{ 248 1 0 "b15f54b8_160d_4d5a_9470d19afc4b0155" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 249 1 0 "a97af8ec_9af3_46fa_a150d41888290f6f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_TipLength_corrected = flt_TipLength - flt_SubmergeDepthCORE; // }} "" // {{{ 250 1 0 "8fc17eb7_3fbb_4a8e_b537d43144e8598c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePosition(ML_STAR, i_labwareID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_angle); // }} "" // {{ 251 1 0 "31649b83_68f7_49a0_974f7efa6232c07d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ReturnValueH0RH = Translate(""); // }} "" // {{ 252 1 0 "72f92b7c_2537_40be_bc5fe85726a39b19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_StepSize = 0.005; // }} "" // {{ 253 1 0 "b5a3458f_9eea_4501_a6aa86c0556ad194" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("b5a3458f_9eea_4501_a6aa86c0556ad194"); // FirmwareCommand str_ReturnValueH0RH = arrRetValues[3]; } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 254 1 0 "73c2ff19_ed4c_4c45_a9c5b56a6e84b044" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("str_ReturnValueH0RH: "), str_ReturnValueH0RH); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 255 1 0 "f6fe1f5f_39ae_4b71_83f733a5cf490b66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FW_Digits = StrRight(str_ReturnValueH0RH, 6); // }} "" // {{{ 256 1 0 "9883fcc4_3dcd_4199_816696b3668f733f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_FW_Digits = StrIVal(str_FW_Digits); // }} "" // {{ 257 1 0 "b427e920_22bd_492e_8c900ff3a99a649c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Steps_mm = int_FW_Digits * flt_StepSize; // }} "" // {{ 258 1 0 "bbe179b4_5c85_4ece_ba3738d8817cdfc5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_LLDheight = int_Steps_mm - flt_Z_Coord; // }} "" // {{ 259 1 0 "502175ce_b71d_406e_b155fea6f39d0fd0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_LastLiquidLevel = int_LLDheight - flt_TipLength_corrected; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 260 1 0 "3bcc328b_1906_4590_94e64b4e80f03d3a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("o_flt_LastLiquidLevel: "), o_flt_LastLiquidLevel); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 5 "MPH_GetLastLLD_Level" "End" } // }} "" // {{{ 5 "MPH96_Dispense" "Begin" function MPH96_Dispense( device & ML_STAR, sequence & dispenseSequence, variable dispenseVolume, variable liquidClass, variable sequenceCounting, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable zMoveAfterStep, variable sideTouch, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void { // }} "" private variable labwareID; private variable lbwContainersAreConnected; private variable positionID; // {{ 5 "MPH96_Dispense" "InitLocals" o_stepReturn = 0; o_liquidLevel_mm = 0; o_liquidLevel_mL = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{{ 207 1 0 "031805d0_c2b0_4435_9b8f6fbb101dc62d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = SeqGetLabwareId(dispenseSequence); // }} "" // {{{ 208 1 0 "c249d641_ef0f_4423_bc2d48f01c114665" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = SeqGetPositionId(dispenseSequence); // }} "" // {{ 209 1 0 "f3fb329d_c76d_48c9_ac660dbbc90096f1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 ; err.Clear(); // }} "" // {{ 210 1 0 "30023c25_d03e_4d52_86f122728a5fc04f" "ML_STAR:{A48573A5-62ED-4951-9EF9-03207EFE34FB}" { variable arrRetValues[]; arrRetValues = ML_STAR._A48573A5_62ED_4951_9EF9_03207EFE34FB("30023c25_d03e_4d52_86f122728a5fc04f"); // Head96Dispense o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 211 1 0 "f3fb329d_c76d_48c9_ac660dbbc90096f1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 212 1 0 "714a2035_eb8c_4e86_85aca8d69086952e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 213 1 0 "bc1347df_5f38_41ae_be3c240228e5944c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 214 1 0 "f3fb329d_c76d_48c9_ac660dbbc90096f1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 215 1 0 "a141b7db_3cc2_4626_998f5229ca08b364" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 216 1 0 "911c2699_0e84_425f_9e9384c7b6c75351" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" MPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm); // }} "" // {{ 217 1 0 "a141b7db_3cc2_4626_998f5229ca08b364" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 218 1 0 "c4c1eadb_9d04_43d3_871c72d3479cad7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 219 1 0 "17abaeba_05ec_4e18_a3843b54b3bdf6f3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 220 1 0 "1bdc4019_272b_4e0e_8f4935bcd3a782ec" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 221 1 0 "751de83b_d4e0_4859_8b3da1eeaf94bd85" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8D5E8778E7DF4b8f80958A5C14C29872 ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 223 1 0 "751de83b_d4e0_4859_8b3da1eeaf94bd85" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8D5E8778E7DF4b8f80958A5C14C29872 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 224 1 0 "751de83b_d4e0_4859_8b3da1eeaf94bd85" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 225 1 0 "1bdc4019_272b_4e0e_8f4935bcd3a782ec" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 226 1 0 "c826eb96_3570_4883_a8298bc890043c3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected); // }} "" // {{ 227 1 0 "c4c1eadb_9d04_43d3_871c72d3479cad7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "MPH96_Dispense" "End" } // }} "" // {{{ 5 "MPH96_TipEject" "Begin" function MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void { // }} "" // {{ 5 "MPH96_TipEject" "InitLocals" o_stepReturn = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{ 229 1 0 "96bd335e_14f8_47e2_bc54b638fde21919" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C33A74C211664afd9B08BCD3DD5339FC ; err.Clear(); // }} "" // {{ 230 1 0 "a8f4b6bb_e103_433a_b1360393d37e32b3" "ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}" { variable arrRetValues[]; arrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C("a8f4b6bb_e103_433a_b1360393d37e32b3"); // Head96TipEject o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 231 1 0 "96bd335e_14f8_47e2_bc54b638fde21919" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C33A74C211664afd9B08BCD3DD5339FC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 232 1 0 "71d45982_a084_4aaa_a34c6558755061d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 233 1 0 "9e9d44f5_b614_4fb4_b6d39860c83d879d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 234 1 0 "96bd335e_14f8_47e2_bc54b638fde21919" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPH96_TipEject" "End" } // }} "" // {{{ 5 "Initialize" "Begin" function Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void { // }} "" // {{ 5 "Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 179 1 0 "5e221a44_df82_4a4a_b132efe3882170c8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_7F7620635658430dB82A7401CB5C158F ; err.Clear(); // }} "" // {{ 180 1 0 "dc7838fc_172e_45b4_89099f664d6d452e" "ML_STAR:{1C0C0CB0-7C87-11D3-AD83-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1C0C0CB0_7C87_11D3_AD83_0004ACB1DCB2("dc7838fc_172e_45b4_89099f664d6d452e"); // Initialize o_stepReturn = arrRetValues[2]; } // }} "" // {{ 181 1 0 "5e221a44_df82_4a4a_b132efe3882170c8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_7F7620635658430dB82A7401CB5C158F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 182 1 0 "6bd66132_cab8_473c_8437aa033b84ff48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 183 1 0 "5e221a44_df82_4a4a_b132efe3882170c8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Initialize" "End" } // }} "" // {{{ 5 "SendFirmwareCommand" "Begin" function SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void { // }} "" // {{ 5 "SendFirmwareCommand" "InitLocals" o_stepReturn = 0; // }} "" // {{ 262 1 0 "641377bb_9666_411c_91a21acd4e345a9d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_1F6E37B4AFEE4395A984238DCEB0E91C ; err.Clear(); // }} "" // {{ 263 1 0 "c616f5ea_baed_4075_a75531e82e045e2b" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("c616f5ea_baed_4075_a75531e82e045e2b"); // FirmwareCommand o_stepReturn = arrRetValues[3]; } // }} "" // {{ 264 1 0 "0f7ff03f_40eb_4e9b_a2ff42a6b9e6d59a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0[01,00,00,0,,Waste,[02,00,00,0,,Waste,[03,00,00,0,,Waste,[04,00,00,0,,Waste,[05,00,00,0,,Waste,[06,00,00,0,,Waste,[07,00,00,0,,Waste,[08,00,00,0,,Waste,"); // }} "" // {{ 265 1 0 "641377bb_9666_411c_91a21acd4e345a9d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_1F6E37B4AFEE4395A984238DCEB0E91C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 266 1 0 "305af0e7_7bac_4678_a0d1c7c3dd9900d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 267 1 0 "641377bb_9666_411c_91a21acd4e345a9d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "SendFirmwareCommand" "End" } // }} "" // {{{ 5 "TiltModule_Initialize" "Begin" function TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate, variable & o_stepReturn ) void { // }} "" // {{ 5 "TiltModule_Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 269 1 0 "bd83dcea_1e69_4096_ada97e91985fe887" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F7A233121EBD413184BEE5D2CD3510CA ; err.Clear(); // }} "" // {{{ 270 1 0 "8f639116_952a_4b73_b3471e6a53e3906f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLDaisyChainedTiltModule::Initialize(Module, Comport, TraceLevel, Simulate); // }} "" // {{ 271 1 0 "3393edd2_b35c_4d28_9a34abe9b5cba597" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 272 1 0 "bd83dcea_1e69_4096_ada97e91985fe887" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F7A233121EBD413184BEE5D2CD3510CA : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 273 1 0 "60a9b619_1ae2_496a_89ca468bc3f8e964" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 274 1 0 "8e89b190_d2d8_4a7e_8d65313a1104b64f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 275 1 0 "bd83dcea_1e69_4096_ada97e91985fe887" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "TiltModule_Initialize" "End" } // }} "" // {{{ 5 "TiltModule_MoveToPosition" "Begin" function TiltModule_MoveToPosition( variable Module, variable Position, variable & o_stepReturn ) void { // }} "" // {{ 5 "TiltModule_MoveToPosition" "InitLocals" o_stepReturn = 0; // }} "" // {{ 277 1 0 "082df277_2e00_442a_9db2108834994949" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_089FA9D7B12A47b0BAD415A10EC82051 ; err.Clear(); // }} "" // {{{ 278 1 0 "2eb8fec9_f55f_4bdb_9e8f2458aae0ad13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLDaisyChainedTiltModule::MoveToPosition(Module, Position); // }} "" // {{ 279 1 0 "b1a780d0_ecf5_4978_85fb85d1c7090261" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 280 1 0 "082df277_2e00_442a_9db2108834994949" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_089FA9D7B12A47b0BAD415A10EC82051 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 281 1 0 "ce3475b4_ca3b_48ad_b9c7f3c1f1c2d5ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 282 1 0 "a8c3cab3_9bde_404e_b7d673e4d7906771" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 283 1 0 "082df277_2e00_442a_9db2108834994949" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "TiltModule_MoveToPosition" "End" } // }} "" // {{{ 5 "Inheco_TEC_Initialize" "Begin" function Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode, variable & o_stepReturn ) void { // }} "" private variable ErrorCode; // {{ 5 "Inheco_TEC_Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 140 1 0 "14151342_6460_4d8a_9e099b7fce1df805" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_CEBFA2C556164b82A4F638EE8CE505F6 ; err.Clear(); // }} "" // {{{ 141 1 0 "e3c035a6_0376_4030_a0e519c3f0401e3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLInhecoTECLib::Initialize(ControllerID, SimulationMode, ErrorCode); // }} "" // {{ 142 1 0 "ff3d60d9_7d86_4591_b213ab2e2ec6b54f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 143 1 0 "14151342_6460_4d8a_9e099b7fce1df805" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_CEBFA2C556164b82A4F638EE8CE505F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 144 1 0 "f54e5f54_9845_4b71_959134357b62b308" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 145 1 0 "ad00a616_20b6_4fd1_b1b82f15bd592d39" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 146 1 0 "14151342_6460_4d8a_9e099b7fce1df805" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_Initialize" "End" } // }} "" // {{{ 5 "Inheco_TEC_StartTemperatureControl" "Begin" function Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode, variable & o_stepReturn ) void { // }} "" // {{ 5 "Inheco_TEC_StartTemperatureControl" "InitLocals" ErrorCode = 0; o_stepReturn = 0; // }} "" // {{ 156 1 0 "e149ca88_5fb5_4a10_a704093dac2f46c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EF764FBDA7474071A7B517987B9B2FC2 ; err.Clear(); // }} "" // {{{ 157 1 0 "dbb9a46a_b798_4546_8857499b498c024a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLInhecoTECLib::StartTemperatureControl(ControllerID, DeviceID, ErrorCode); // }} "" // {{ 158 1 0 "9962ba81_d090_4144_ad45cfdfb0a81848" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 159 1 0 "e149ca88_5fb5_4a10_a704093dac2f46c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EF764FBDA7474071A7B517987B9B2FC2 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 160 1 0 "1bea095e_8a1c_4a68_846e9362f2c251d6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 161 1 0 "94a7bec1_57e9_49ab_a6d3e430f8e69316" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 162 1 0 "e149ca88_5fb5_4a10_a704093dac2f46c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_StartTemperatureControl" "End" } // }} "" // {{{ 5 "Inheco_TEC_SetTarget" "Begin" function Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & o_stepReturn ) void { // }} "" // {{ 5 "Inheco_TEC_SetTarget" "InitLocals" o_stepReturn = 0; // }} "" // {{ 148 1 0 "2e50215a_6b40_4fa9_93fcfc303b6d44ac" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_56BA970A477C47bf90C6C3373DEB98B0 ; err.Clear(); // }} "" // {{{ 149 1 0 "aef982a0_8382_45fd_aec06a11e9859c17" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLInhecoTECLib::SetTargetTemperature(ControllerID, DeviceID, TargetTemperature, o_stepReturn); // }} "" // {{ 150 1 0 "469d7ad2_b7d8_4e9c_ac57ffe25631b189" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 151 1 0 "2e50215a_6b40_4fa9_93fcfc303b6d44ac" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_56BA970A477C47bf90C6C3373DEB98B0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 152 1 0 "666252c3_d904_4d59_af97abc58a445648" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 153 1 0 "360d64cc_734f_4a97_8c61eb77bf58c2c4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 154 1 0 "2e50215a_6b40_4fa9_93fcfc303b6d44ac" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_SetTarget" "End" } // }} "" // {{{ 5 "Inheco_TEC_StopTemperatureControl" "Begin" function Inheco_TEC_StopTemperatureControl( variable ControllerID, variable DeviceID, variable & o_stepReturn ) void { // }} "" private variable ErrorCode; // {{ 5 "Inheco_TEC_StopTemperatureControl" "InitLocals" o_stepReturn = 0; // }} "" // {{ 164 1 0 "c29a0f01_2391_485c_a95211df9c9b7272" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E3152496BDA74f1681473505DC2B3A3E ; err.Clear(); // }} "" // {{{ 165 1 0 "53a1b499_97d8_49ce_85f583fb81241149" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLInhecoTECLib::StopTemperatureControl(ControllerID, DeviceID, ErrorCode); // }} "" // {{ 166 1 0 "6663219d_f732_4334_ac9149ef5e378f41" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 167 1 0 "c29a0f01_2391_485c_a95211df9c9b7272" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E3152496BDA74f1681473505DC2B3A3E : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 168 1 0 "bf506361_d06d_402a_bce18579529327a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 169 1 0 "c29a0f01_2391_485c_a95211df9c9b7272" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_StopTemperatureControl" "End" } // }} "" // {{{ 5 "Inheco_TEC_Terminate" "Begin" function Inheco_TEC_Terminate( variable StopAllDevices, variable & o_stepReturn ) void { // }} "" // {{ 5 "Inheco_TEC_Terminate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 171 1 0 "6f9054f4_5e87_4236_a046d345d0972e98" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_202B4C8C5EE24700B8BB7F3204BFB6ED ; err.Clear(); // }} "" // {{{ 172 1 0 "3239a113_7650_4023_a9fad336d668211f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLInhecoTECLib::Terminate(StopAllDevices); // }} "" // {{ 173 1 0 "3b263a00_9a60_41fc_9972731eef692e35" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 174 1 0 "6f9054f4_5e87_4236_a046d345d0972e98" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_202B4C8C5EE24700B8BB7F3204BFB6ED : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 175 1 0 "06500de7_b6f0_46c9_83aa39385bd390ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 176 1 0 "1d548ec4_592f_4c53_bd10fcebbc4e29a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("step return in toolkit"), o_stepReturn); // }} "" // {{ 177 1 0 "6f9054f4_5e87_4236_a046d345d0972e98" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_Terminate" "End" } // }} "" // {{{ 5 "BarcodeReader_Initialize" "Begin" function BarcodeReader_Initialize( variable COMPORT, variable & o_stepReturn ) void { // }} "" // {{ 5 "BarcodeReader_Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 1 1 0 "d8b801e6_901b_4026_bdc28d79de1a8bc3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_A3B61CE3E767468e8D1B59076F3D78E4 ; err.Clear(); // }} "" // {{{ 2 1 0 "e0cfef2c_84b3_468a_a20006a3728a8260" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Trace"), COMPORT); // }} "" // {{{ 3 1 0 "e040e6e1_8d46_47ab_87603b90eec83a04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLBarcodeReader::SetComPort(COMPORT); // }} "" // {{{ 4 1 0 "97b56e2c_0824_4073_9e58f7230250d255" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLBarcodeReader::DelComBuffer(); // }} "" // {{ 5 1 0 "d56061ff_1640_4b1a_88dc262e7863d251" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0[01,00,00,0,,Waste,[02,00,00,0,,Waste,[03,00,00,0,,Waste,[04,00,00,0,,Waste,[05,00,00,0,,Waste,[06,00,00,0,,Waste,[07,00,00,0,,Waste,[08,00,00,0,,Waste,"); // }} "" // {{ 6 1 0 "d8b801e6_901b_4026_bdc28d79de1a8bc3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_A3B61CE3E767468e8D1B59076F3D78E4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 7 1 0 "02ecb8f2_684e_4ec1_a9840192e80e0f56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 8 1 0 "d8b801e6_901b_4026_bdc28d79de1a8bc3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "BarcodeReader_Initialize" "End" } // }} "" // {{{ 5 "BarcodeReader_Read" "Begin" function BarcodeReader_Read( variable & barcode ) void { // }} "" // {{ 5 "BarcodeReader_Read" "InitLocals" barcode = 0; // }} "" // {{ 10 1 0 "302bcc17_1365_443f_a46b0d164779f18e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F17E80F5B0F14da6AD3DC48FC7190CFC ; err.Clear(); // }} "" // {{{ 11 1 0 "f3cc7ab5_8df1_49cb_aaf121c9e2cc2d4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("attempting to read barcode "), Translate("attempting to read barcode")); // }} "" // {{{ 12 1 0 "7efa47d3_0206_455e_9c6a05f9f0aebc1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" barcode = HSLBarcodeReader::Read(); // }} "" // {{{ 13 1 0 "dd9a5270_3e4b_4b95_898bbad8823e8ea2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(barcode, Translate("this is the barcode")); // }} "" // {{ 14 1 0 "302bcc17_1365_443f_a46b0d164779f18e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F17E80F5B0F14da6AD3DC48FC7190CFC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 15 1 0 "1bcebdcc_4eed_4f44_b21a8924c1f94855" "{C1F3C015-47B3-4514-9407-AC2E65043419}" barcode = ErrGetDataAt(3); // }} "" // {{ 16 1 0 "302bcc17_1365_443f_a46b0d164779f18e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "BarcodeReader_Read" "End" } // }} "" // {{{ 5 "pH_Measure" "Begin" function pH_Measure( variable i_intModuleID, variable i_fltTemperature, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Measure" "InitLocals" o_fltpHProbe_1 = 0; o_fltpHProbe_2 = 0; o_fltpHProbe_3 = 0; o_fltpHProbe_4 = 0; o_stepReturn = 0; // }} "" // {{ 309 1 0 "ed7e1393_5f74_4f7a_9f24134bcc79cfea" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_485A52AE45C346adA048E7F329D0C390 ; err.Clear(); // }} "" // {{{ 310 1 0 "70294f1d_735f_43b0_bfff139b2e168d5d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::Measure(i_intModuleID, i_fltTemperature, i_strProbePattern, o_fltpHProbe_1, o_fltpHProbe_2, o_fltpHProbe_3, o_fltpHProbe_4); // }} "" // {{ 311 1 0 "ed7e1393_5f74_4f7a_9f24134bcc79cfea" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_485A52AE45C346adA048E7F329D0C390 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 312 1 0 "b81f548d_2601_402a_9a291d45b6b50706" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 313 1 0 "ed7e1393_5f74_4f7a_9f24134bcc79cfea" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Measure" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=Hamilton$$valid=0$$time=2024-07-10 19:18$$checksum=97f73db2$$length=087$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~HxB54F.tmp ================================================ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~HxC302.hsl ================================================ namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HslHamHeaterShakerLib.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } #include "STAR_OEM_Test.res" namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "SchedulingDev\\HSLAppsLib.hsl" } namespace _Method { #include "STAR_OEM_toolkit_pH.hs_" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Module.hsl" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Washer Module.hsl" } /* {{ 2 "LibraryInsertLine" "" */ // }} "" variable loopCounterMain; variable msg; object objJSONFromServer; variable commandFromServer; variable initializeAlways; variable o_stepReturn; object objJSONToServer; sequence seq; variable tipSequence; variable sequenceCounting; variable channelVariable; variable channelUse; variable labwarePositions; variable aspirateSequence; variable v; variable arrayOfVolumes[]; variable liquidClass; variable aspirateMode; variable capacitiveLLD; variable pressureLLD; variable liquidFollowing; variable submergeDepth; variable liquidHeight; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable airTransportRetractDist; variable touchOff; variable aspPosAboveTouch; variable o_liquidLevels_mm[]; variable o_liquidLevels_mL[]; variable o_stepReturn2; variable o_stepReturn3; variable dispenseMode; variable dispenseSequence; variable dispPositionAboveTouch; variable zMoveAfterStep; variable sideTouch; variable wasteSequence; variable useDefaultWaste; variable reducedPatternMode; variable aspirateVolume; variable o_stepReturn4; variable dispenseVolume; variable tipEjectToKnownPosition; variable carrierName; variable barcodeFileName; variable barcodeReadPositions; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable lidSequence; variable plateSequence; variable toolSequence; variable transportMode; variable widthBefore; variable gripHeight; variable gripWidth; variable gripSpeed; variable gripperToolChannel; variable checkPlate; variable zSpeed; variable gripForce; sequence lidSeq; sequence toolSeq; variable xAcceleration; variable platePressOnDistance; variable ejectToolWhenFinish; object objHttp; variable blnReturn; variable blnSuccess; variable usedNode; variable deviceNumber; variable action; variable sampleInterval; variable shakingToleranceRange; variable id; variable monitorResult; variable firmwareVersion; variable serialNumber; variable command; variable parameter; variable plateLock; variable shakingAccRamp; variable shakingDirection; variable simulate; variable startTimeout; variable toleranceRange; variable securityRange; variable intTrace; variable shakingSpeed; variable shakingTime; variable temperature; variable waitForTempReached; variable inverseGrip; variable liftUpHeight; variable retractDistance; variable tolerance; variable labwareOrientation; variable movementType; variable collisionControl; variable gripMode; variable showCollisionCheckDialog; //global device HxFan ("STAR_OEM_Test.lay", "HxFan", hslTrue); variable refillAfterEmpty; variable chamber1LiquidChange; variable chamber2WashLiquid; variable chamber1WashLiquid; variable chamber2LiquidChange; variable FirmwareCommand; variable FirmwareParameter; variable CommandListElement; variable CommandListLength; object FirmwareCmdDict; variable yDisplacement; variable zDisplacement; variable xDisplacement; variable yOrigin; variable xOrigin; variable zOrigin; variable ControllerID; variable SimulationMode; variable ErrorCode; variable DeviceID; variable TargetTemperature; variable StopAllDevices; variable TraceLevel; variable Comport; variable Simulate; variable ModuleName; variable Angle; variable inputSequence; variable barcode; variable seqFirstPosition; variable seqSecondPosition; global device ML_STAR ("STAR_OEM_Test.lay", "ML_STAR", hslTrue); variable ModuleID; variable probePattern; variable moduleTemperature; variable pH_probe_1; variable pH_probe_2; variable pH_probe_3; variable pH_probe_4; variable Variance; variable Timeout; variable CalibrationLevel; variable CalibrationValue; variable CalibrationTemperature; variable Precision; variable Temperature; variable ChargeCounter; variable ReplacementDate; variable BatteryCondition; variable ActualCharge; variable MeasurementCounter_Probe_1; variable MeasurementCounter_Probe_2; variable MeasurementCounter_Probe_3; variable MeasurementCounter_Probe_4; variable HardwareNumber; variable Revision; variable SerialNumber; variable PartNumber; variable Selector; variable VoltageData; variable Day; variable Year; variable Month; variable Charge; variable AutoCharge; variable AutoChargeLevel; variable Probe; variable Mode; variable ProbeNumber; variable pHHighValue; variable pHHighVoltage; variable pHLowValue; variable pHLowVoltage; variable CalibrationSlopeRatio; variable CalibrationOffset; variable CalibrationSlope; variable AcutalCharge; variable CycleNumber; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" STAR_OEM_TOOLKIT::_InitLibrary(); STAR_OEM_TOOLKIT_PH::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{{ 1 1 0 "e7768ad9_4016_4422_bd83f5785d03ceda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnReturn = HSLHttp::Initialize(objHttp); // }} "" // {{ 2 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnReturn != blnSuccess) { // }} "" // {{{ 3 1 0 "62c131b4_44b9_4249_8e0a3205a25b21b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); // }} "" // {{{ 4 1 0 "fb18125e_b294_4554_912c3d447526996e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 5 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 6 1 0 "ee92e29b_e94c_46cf_a67851f3be61c805" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Hi, Im a VENUS method.")); // }} "" // {{ 7 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; // }} "" // {{ 8 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "de417132_351a_4ad8_80c71b1863d4a870" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" commandFromServer = Translate(""); // }} "" // {{ 10 1 0 "d9c97239_3c9d_4992_8fb5820ae5721d90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate(""); // }} "" // {{ 11 1 0 "57da7835_7495_4b16_8b82897289efbd11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn2 = Translate(""); // }} "" // {{ 12 1 0 "cf024fcc_3594_4355_b33f4bd8c8bdfb4e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn3 = Translate(""); // }} "" // {{ 13 1 0 "9ed0b80d_8518_474f_a94d8f843a6158fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn4 = Translate(""); // }} "" // {{ 14 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 15 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 16 1 0 "0257e5d3_7b99_47be_a062950a2b200664" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" msg = waitForGUItoContinue(); // }} "" Trace("JSON received from Server:", msg); // {{{ 18 1 0 "36be63f7_a79c_44a4_b1dc636a536612bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONFromServer); // }} "" // {{{ 19 1 0 "5c2b861d_97f9_4e18_a5fce25e78026299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::ParseJson(objJSONFromServer, msg); // }} "" // {{{ 20 1 0 "562abca5_8891_402a_b8a7c5ba56301a86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); // }} "" // {{{ 21 1 0 "cb002e33_cc71_4a25_890fa8f9f5d982a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("id"), id); // }} "" // {{ 22 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 23 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 24 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "initialize") { // }} "" // {{{ 25 1 0 "773dbb38_0414_403d_b2ff24100c7cf1fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); // }} "" // {{{ 26 1 0 "97af1c08_2914_4f72_b27c685f11b30bb6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); // }} "" // {{{ 27 1 0 "b3ab11e2_0297_446f_9cf37ca7c0c9d19f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Init step return:"), o_stepReturn); // }} "" // {{{ 28 1 0 "57d4e0cd_327e_4cac_8e83a7da6222dda0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 29 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 30 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 31 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 32 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 33 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipPickUp") { // }} "" // {{{ 34 1 0 "53e1cfb5_1fde_491f_bfd878eceda16ba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 35 1 0 "f0e9e31f_d871_4632_bd466e43fc38c771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 36 1 0 "e6311b13_2132_40e0_aff0b5556205c32a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 37 1 0 "cb659ed1_5f0c_41e8_8a060ec0b650c589" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{ 38 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 39 1 0 "6699226b_6c7b_4b79_95b8017162b433b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 40 1 0 "bd13798f_62e7_4dd2_8e91769d48d10fc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 41 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 42 1 0 "ce13caa6_634b_4dec_8a6c3ea74b144e95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 43 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 44 1 0 "29f69958_d99b_455a_93c7b0480bfd1658" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn); // }} "" // {{{ 45 1 0 "732425fd_a199_4354_8479d821ee834e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 46 1 0 "22f00193_1056_456e_a515d156eee56e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 47 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 48 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 49 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 50 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelAspirate") { // }} "" // {{ 51 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 52 1 0 "55ee3109_036b_4acb_8a15175f3316656f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 53 1 0 "a5b3e5ac_4910_4a4a_8e20bdb7f61836e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 54 1 0 "ce04189a_96e4_4bdc_aedc8a68bf64647b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 55 1 0 "882daff3_cc25_4778_aec6a937fc87347c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 56 1 0 "7f7b9f83_5611_4a3b_b5c120689696addb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 57 1 0 "39e464b7_0def_403b_a02f5dd2a358dbd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 58 1 0 "2e2739aa_8eb6_44e0_b887ea00b04acac0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 59 1 0 "9408edd8_3cee_43e0_976b4a6fabf5f4ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 60 1 0 "a2848877_3518_4d1d_95f77c1f313003e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); // }} "" // {{{ 61 1 0 "4b5ce3d0_91f4_4c14_aaf1cad34e0caf60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" Trace("Bookstart"); // {{{ 63 1 0 "12892ce3_3bc6_4165_b3b6ae0eacad20e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" Trace("Bookend"); // {{{ 65 1 0 "15bd5af3_2da1_420b_beb398dc2347a0ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 66 1 0 "4fe61fb4_bb39_4728_96b8c6959f4943ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); // }} "" // {{{ 67 1 0 "ba68c240_2397_4872_949ee1ee984595c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 68 1 0 "baac19fc_9f21_4e8c_b833f2a1ba2433f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 69 1 0 "253130f8_f599_4ef4_9d5a15e2cb89d1eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 70 1 0 "51233931_483f_4deb_a8627b909d6c9116" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 71 1 0 "bf0c65ba_7847_4768_92ebbe8adc6568c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 72 1 0 "30a6715c_b6c6_4d86_b5c02f3da440e309" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 73 1 0 "6eb82b6e_8093_461e_afc712cab07398dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 74 1 0 "3f8b6af1_7872_4a20_92bf2c4507ea9f31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); // }} "" // {{{ 75 1 0 "7dd1b818_5a89_4b03_82734e6f4d7b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{ 76 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 77 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 78 1 0 "cb2b67f0_7384_4a41_831de652f92d4c85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 79 1 0 "29a868b4_7800_4747_b14eaf0f2c10ba40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 80 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 81 1 0 "08f63789_65f1_4e7d_996dc22e8f33d416" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 82 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 83 1 0 "8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 84 1 0 "7cb70e6b_15bb_4380_b62150df065d208f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 85 1 0 "4714958b_0632_4de2_983c7fe9de68df6c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 86 1 0 "bd40f564_16d7_4037_aef8eebfe28a4362" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 87 1 0 "18bf536c_98f4_4345_86a103db4a9b68a1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 88 1 0 "d60cd9aa_083b_4487_8d6218cee02fa4cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 89 1 0 "e86187c0_0d19_453e_be1c5a401d0d5d93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 90 1 0 "d66c2dae_4cc3_4a31_bafe46d1dd63e790" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 91 1 0 "d23f143d_290d_4d0f_b368241a6a9adaed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 92 1 0 "0428e844_3191_4cde_b7f3544f34c833f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 93 1 0 "a7ca006f_941c_4b31_9749313ad9b4e079" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 94 1 0 "8c97ba72_f880_4504_baee8b8db3d13310" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 95 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 96 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 97 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 98 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelDispense") { // }} "" // {{ 99 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 100 1 0 "909bc255_6ca1_4700_bc102ccb34ae5be4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 101 1 0 "fd48dd93_9f42_4df0_9f659e27a5552543" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 102 1 0 "3ff3f492_86a5_40af_a3deabccbab3898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 103 1 0 "3cbb883f_48ae_40fe_afe67da944df94b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 104 1 0 "ab1033bc_1216_450a_9fb60655a1f1a21a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 105 1 0 "0bc1541f_26d5_44d6_8db6ae336fec17bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 106 1 0 "8c10cc29_c05e_4cea_9ed559249651e805" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 107 1 0 "3e0373da_7c7c_46ab_9b77fba19915662e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 108 1 0 "b98fdc49_cdcb_4f3c_81df0b76eafa1411" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 109 1 0 "7458d32a_402a_4215_b52378c78468ec80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 110 1 0 "5e14f2ce_c932_474b_be03f3c043c700e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 111 1 0 "c2010d1d_5a78_4871_a835a6613a1237bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 112 1 0 "d4a6e6a3_0158_45f1_9c359d8e48e01bed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 113 1 0 "011e9828_5413_40c1_80d0c3bdde1c6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 114 1 0 "2d7a4942_b2ce_43a2_8decf49fa0c9576c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 115 1 0 "ad9f0bbf_e495_41c5_898a3be32bb16f2b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 116 1 0 "5c734886_aa50_424c_b89f6894bc37dd8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 117 1 0 "d1bc00cc_4286_4409_b1c49b6350e7e6ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 118 1 0 "b178ce99_db9e_4453_bed28d4ce0457bc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); // }} "" // {{{ 119 1 0 "1b38ad88_3c65_4e58_812f9ed32ce32485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{{ 120 1 0 "f34066f1_63f9_474f_8a9c41e56962dc74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 121 1 0 "6b94916e_355b_4ee9_8eb4f1b49c95fea4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 122 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 123 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 124 1 0 "e962dd26_3672_4418_bd3c40e9929929eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 125 1 0 "6257966a_6b39_41c8_a057a79b8e39cd4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 126 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 127 1 0 "3f230e40_8bd9_4235_b88cd0ca80799661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 128 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 129 1 0 "8d82ff40_d831_430b_97d97c01d2a4474e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 130 1 0 "ac0ad5a7_d00b_46fe_a18f94f8dab3863c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 131 1 0 "b7f86b6c_03a4_4e12_a05e5e8bdc958b75" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 132 1 0 "9bfa8704_2ae0_4a63_83d09fddbacfd336" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 133 1 0 "860b660a_6947_4c88_a2a039bf65040bf5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 134 1 0 "797f0eef_5bb2_4a2e_a178af74f4892bd7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 135 1 0 "2753c24e_c4dc_402d_866b6bc8691ecc1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 136 1 0 "1ac127fd_b830_496f_b4d4b9671137ebff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 137 1 0 "3ee5d751_d3a5_468a_b539c4f0ff22023e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 138 1 0 "b86d492c_446f_4921_97140cfd462ace87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 139 1 0 "e049946d_6322_4b39_9c46a2d0eb345528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 140 1 0 "531432f5_ef8a_416e_8be28a07ae9b0d25" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 141 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 142 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 143 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 144 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipEject") { // }} "" // {{{ 145 1 0 "69be671e_7cdd_48d3_af136435754c1d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 146 1 0 "f3444c0f_4863_4fdd_94a025b682d8a6d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 147 1 0 "12ad2f39_c160_4afc_9f6ffce7e3ddb433" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 148 1 0 "2883bb64_2fe3_47ca_996e11434afc57cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 149 1 0 "10c3b13e_7129_4cfd_b88b29d0bbc31a28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); // }} "" // {{ 150 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (useDefaultWaste == 0) { // }} "" // {{ 151 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 152 1 0 "655bc92f_08a8_4c16_a0276997aec081ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 153 1 0 "a3a0b5ef_85c0_4552_a28b3356d7886eb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 154 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 155 1 0 "efadb8c3_c431_4ed4_a739a951c05ee518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 156 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 157 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 158 1 0 "2dda50b6_7f82_4e8a_a1d203715119213a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 159 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 160 1 0 "7fa61e34_a1f2_4b99_8f6bed13c6ce120f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn); // }} "" // {{{ 161 1 0 "a7db5128_f8e4_4afe_81f46b2cc86e608d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject step return:"), o_stepReturn); // }} "" // {{{ 162 1 0 "683607f4_928f_4cea_b901fe3502404424" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 163 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 164 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 165 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 166 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 167 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 168 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipPickUp") { // }} "" // {{{ 169 1 0 "1f82c33f_a085_47cc_85dbbde3e42a53c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 170 1 0 "9f9fe665_47a2_4a12_961460021d1f09f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 171 1 0 "743960d2_9d0f_4ccf_848662247e3211c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 172 1 0 "b737602c_63e8_4c4c_b47f40cb815914ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); // }} "" // {{ 173 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 174 1 0 "00bd1831_c335_40f5_b706f0ffadbe2890" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 175 1 0 "1f16418c_8fa7_44a5_a6db75dd9a79ee84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 176 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 177 1 0 "b66db4eb_9e79_4c19_909fd8d14d37cba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 178 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 179 1 0 "f3e7cbf6_0242_4463_8d4ed0db4667f7db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2); // }} "" // {{{ 180 1 0 "b080a5c6_324c_4aae_b5899dede6d863f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 181 1 0 "aa5a9c4b_0377_46ce_9b46883db15cbd7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 182 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 183 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 184 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 185 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Aspirate") { // }} "" // {{ 186 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 187 1 0 "373f30c8_ec07_4298_94d6ac75358ab1ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 188 1 0 "ef3ae377_e985_4ef6_93b005aa91c9b2b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 189 1 0 "d8eea65a_6e59_4c32_a47bae09779f9528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 190 1 0 "8eb02312_a070_491c_9758b3cdbdee0cfc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); // }} "" // {{{ 191 1 0 "6eaf8bee_b53f_4f01_87c1380bc345e386" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 192 1 0 "d9923a2f_e7cf_4f3e_81746e378a20baab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 193 1 0 "2c411993_e3fc_4753_9a90308b226078a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 194 1 0 "5d900896_b2b9_442b_b24294b9bbfbdaad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 195 1 0 "21149e9e_21c9_4ddd_93e07b693e3ab3fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 196 1 0 "bcefef03_102b_4887_adad59c2fb7ad551" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 197 1 0 "9665b0a3_35e8_47e9_b14ac1a4818cfa6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 198 1 0 "ff93d28b_afe9_47e7_9b6eb50d6845384f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 199 1 0 "ef43b824_fd38_42d4_9e932904dbf14813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 200 1 0 "b0378457_e370_448b_bfd6955c05e57bcb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{ 201 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 202 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 203 1 0 "615bcff6_e9d5_4303_a5d5826b2e2548dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 204 1 0 "cf4ad428_945e_4921_9441ee34cf9c96bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 205 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 206 1 0 "86397ec2_2ee5_4ec1_8bec47d8e87584b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 207 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 208 1 0 "48f88263_72c1_4df2_865181cffed9feee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 209 1 0 "f1b764e8_e556_4d08_bb83bdc12dc64a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 210 1 0 "164c104a_cf5f_46de_b23a098a18b3fdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 211 1 0 "ee779f77_51a9_46d7_b58b7bcaf13519f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 212 1 0 "e874eb6d_1e97_4590_95d9b10cb059c935" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn4); // }} "" // {{{ 213 1 0 "0ca1df86_a344_45fd_b384e13ba44c5ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 214 1 0 "2497228e_672e_4c95_9f31679fe87bbe1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 215 1 0 "e4930eee_c625_4acb_a81c05e149a1a218" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 216 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 217 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 218 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 219 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Dispense") { // }} "" // {{ 220 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 221 1 0 "78cba921_2a37_4b4a_91ef7fbe81fcddd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 222 1 0 "b58b4cbd_16e9_4444_9037061e29bc5614" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 223 1 0 "0ab910ec_826d_4c84_bac7ed9564f3bdab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 224 1 0 "84d664b7_70d0_4136_bdfd4de2aa760ad8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); // }} "" // {{{ 225 1 0 "18becc6a_2df4_4281_8b16ade9038979f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 226 1 0 "68c565db_e5ed_44e8_b3846a1d98034e76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 227 1 0 "6a4221a8_9488_48f9_8381b1bc0f0c960d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 228 1 0 "45dcb271_e326_42fc_b8684816d3ffdc93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 229 1 0 "14552b13_e77b_4fb7_9020445ecc5ade21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 230 1 0 "91783f87_af6f_446e_a74fb1725f17d282" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 231 1 0 "e2e7f702_1710_49eb_9b1046dbf4f143e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 232 1 0 "1817aa70_86fa_4318_a8e46569701623e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 233 1 0 "50bd6734_10d5_4291_b40eb708539514fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 234 1 0 "ad5fbb01_d809_4b7d_b858ed597709f28f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 235 1 0 "09566247_6b2d_4c73_b43fe303a30f89c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 236 1 0 "3ead74f7_3b5c_4b21_84d2488c2eceab73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 237 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 238 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 239 1 0 "835f8470_7e8c_40ff_a48abcc85d6b778b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 240 1 0 "059394fc_e924_4d57_b1b85f79f9947fa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 241 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 242 1 0 "6c4be3a7_a450_459c_90545a208f9f459f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 243 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 244 1 0 "c164a94e_2926_462e_9487870d403fe8b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 245 1 0 "86c0fb85_8aaf_4bec_9f6f1f642206487f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 246 1 0 "77047add_8050_4522_ad477b97455a8327" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 247 1 0 "5b2c6f23_9a69_489d_b52179c78c03e48f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 248 1 0 "a9a9244b_829f_4c5b_9a64f1018b029453" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn4); // }} "" // {{{ 249 1 0 "781580a9_199e_4373_b48bb55a97f8a463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 250 1 0 "1867ae44_25f8_4926_ae081e490fd5aa0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 251 1 0 "dbb3b30c_b4a1_4cf6_a24b62b63f155369" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 252 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 253 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 254 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 255 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipEject") { // }} "" // {{{ 256 1 0 "7cf9db16_d78c_4aa0_825cc3c2c22f287c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 257 1 0 "ccca7a97_c22a_4f20_b2d9a60d67850eee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 258 1 0 "a319f75e_77eb_4845_856516ce060213f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 259 1 0 "d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); // }} "" // {{ 260 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipEjectToKnownPosition == 0) { // }} "" // {{ 261 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 262 1 0 "24eeb6dd_1e20_422c_a1a8199cbca73b33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 263 1 0 "5197334f_cde5_4d52_9c528a0c4f7401b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 264 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 265 1 0 "110b82e1_8a5b_48e4_a3adbab701cffc8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 266 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 267 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 268 1 0 "fa32bbf8_8345_4897_aaf09d112d374893" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 269 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 270 1 0 "ef087a4e_684e_4d98_87109abf154fbc85" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2); // }} "" // {{{ 271 1 0 "328216cf_22dd_47a1_9f1ba089b1ac7702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn); // }} "" // {{{ 272 1 0 "53265943_7975_4275_ad98df313054f97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2); // }} "" // {{{ 273 1 0 "c13d9773_7daf_4c3c_9064fdd4f7c7008f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 274 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 275 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 276 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 277 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 278 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "loadCarrier") { // }} "" // {{{ 279 1 0 "76d739d0_ff4a_490b_9c47f411d29ef7a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 280 1 0 "ca623aa7_ed48_45fa_9f4055fb8e08c3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); // }} "" // {{{ 281 1 0 "64a8e193_7e7e_412e_8a0657f0e832eaef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); // }} "" // {{{ 282 1 0 "39e6aaef_5cce_4915_b5b6ede214c7371e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs); // }} "" // {{{ 283 1 0 "1d4d284f_fd1e_4f8a_a2158846ad6a67f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Load carrier step return:"), o_stepReturn); // }} "" // {{{ 284 1 0 "358b7fc3_40a2_418b_9d61d94eef1556f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 285 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 286 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 287 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 288 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "unloadCarrier") { // }} "" // {{{ 289 1 0 "797d23a7_c62a_471a_a52b10fea8bcc154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 290 1 0 "f1c35790_adb7_49eb_a96864d8b1d66cea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn); // }} "" // {{{ 291 1 0 "6e6ded71_3f99_46c5_9362117beb502a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn); // }} "" // {{{ 292 1 0 "8713fee4_6b93_4296_a5396254fd404d52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 293 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 294 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 295 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 296 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 297 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripGet") { // }} "" // {{ 298 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 299 1 0 "c4847ae5_e161_4f23_aa432eda22de28bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 300 1 0 "022a5cdd_3f4f_4e18_927c174fc57a68a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 301 1 0 "3e462067_5eb3_49c3_b7bf6a27de9ce3bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 302 1 0 "f7004881_3f0d_4621_a88d55dec8fc0d30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 303 1 0 "262b36ba_6d86_4009_bdc9a3881db7074e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 304 1 0 "be44b37f_7cec_4f69_81c223f2c30b120b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 305 1 0 "3dea3158_65f8_44bc_8d06a31ce3458dab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); // }} "" // {{{ 306 1 0 "308b2aa2_5970_4692_858049c6559d6ad0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 307 1 0 "756d0f81_3645_4a49_a0c2259581e11498" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 308 1 0 "cdbf11ba_b1f8_4016_811240a02705f1fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{{ 309 1 0 "625df597_c6c8_4e4a_b956e9580bfbc568" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); // }} "" // {{{ 310 1 0 "3576d134_8507_4e47_9c2bcc3dce8c026d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 311 1 0 "5b9c06ad_9081_4b6b_97e50cc87623b888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 312 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 313 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 314 1 0 "d1f3c2ac_9c68_4200_a3506bbbed8e42a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 315 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 316 1 0 "f1d1c43b_a9dd_4573_a69dd7c0e79eea40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 317 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 318 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 319 1 0 "4d304110_107e_412e_909bb84008a244de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 320 1 0 "8f8b1ba1_af12_4cdd_acf2096420ede259" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{ 321 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 322 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 323 1 0 "72e31f7d_c091_4525_a5cf7001754b199d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 324 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 325 1 0 "47dfcbb5_d784_48bb_b36b97509434a3a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 326 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 327 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 328 1 0 "e6c53925_446e_468e_b0e0654b4b9d9a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 329 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 330 1 0 "c0cbb194_1b8b_4fe0_a0f706e03eaa0748" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 331 1 0 "46703217_a28e_42ce_b13c11d73ba34bfa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn); // }} "" // {{{ 332 1 0 "189164cc_2681_492f_83f072fb537648b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn); // }} "" // {{{ 333 1 0 "c8d6960a_f416_47b1_a29e2752973c0ec9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 334 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 335 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 336 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 337 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripMove") { // }} "" // {{ 338 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 339 1 0 "5755c338_faa3_4f0a_9acd4cd01a912862" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 340 1 0 "2849c819_a3dc_4328_8484ccc4785993d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{ 341 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 342 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 343 1 0 "e038f780_938f_4867_98f769488ca44b04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 344 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 345 1 0 "27439ab7_df5a_4e1b_99b64e6c9fd0d9f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{{ 346 1 0 "3d8767e5_5f31_4ce5_91a11e28045ec87a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 347 1 0 "e9e0b38e_13aa_40f9_8e470eb1de09eb19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("wrong"), Translate("nowwrongere")); // }} "" // {{ 348 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 349 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 350 1 0 "e2da0756_7cea_44e7_963442343f3c0732" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 351 1 0 "ee8b8050_164a_4de8_b6ce02120236efbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 352 1 0 "be0898fe_cdb8_4ac3_a9e991e26bdb6658" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here"), Translate("now here")); // }} "" // {{ 353 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 354 1 0 "90f602a1_fdc5_48fd_801269ecd2c3f9bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn); // }} "" // {{{ 355 1 0 "dc418b75_2d70_4034_84a767fba752b262" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn); // }} "" // {{{ 356 1 0 "ae4414d3_a939_4fdb_a0ed06f1be1506e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here here"), Translate("nohhere")); // }} "" // {{{ 357 1 0 "6379549c_caf9_409f_b293abf77f1dcfbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 358 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 359 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 360 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 361 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripPlace") { // }} "" // {{ 362 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 363 1 0 "6f38d60b_6dc5_4159_ba30360f264222da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 364 1 0 "b6ef73cf_c89c_41cc_a3b72dc5aaf70f90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 365 1 0 "c7e5f5bd_edcc_4000_9be3db81af0c79fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 366 1 0 "91ff4c39_6a86_4eda_998a5461ef6c3cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 367 1 0 "341a6f8e_b4c8_4966_b9520322d1bc2e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 368 1 0 "32792c80_3b36_4a25_8fff6b99bfcf1919" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); // }} "" // {{{ 369 1 0 "b1e5d86e_c659_4d33_9e0f83fdb20b2cb5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 370 1 0 "76b26748_4e74_45f7_85a7dc102b5fd7b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); // }} "" // {{{ 371 1 0 "ee221e8a_a662_49d8_be2ef0ed631d9527" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 372 1 0 "cbefd54c_5f0a_4a16_a0199198529b71fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 373 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 374 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 375 1 0 "ac4e7090_c3c7_4707_8d98dc55262c294b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 376 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 377 1 0 "eb5776ad_c858_4ee8_ba31f47af19e76af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 378 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 379 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 380 1 0 "1f3eb006_1b10_427e_99d0b530f1afc2ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 381 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 382 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 383 1 0 "a04c5993_bf3e_46c7_92f24c8236636b00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 384 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 385 1 0 "2455f68c_be4e_4a21_9e9e78f78f6e8e3c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 386 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 387 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 388 1 0 "ad5d98b0_9e3d_4275_90ceef06ceca045d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 389 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 390 1 0 "3321537f_63fb_48a4_90e40a2fee1cc432" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 391 1 0 "8c7e60df_f040_45c6_a939d99bcd0ac23c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn); // }} "" // {{{ 392 1 0 "24e589a9_98d7_429d_90c8afe203e96ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn); // }} "" // {{{ 393 1 0 "9d94d038_d071_4339_aaace5a2e455b240" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 394 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 395 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 396 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 397 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 398 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 399 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGet") { // }} "" // {{ 400 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 401 1 0 "4a585a30_3a23_44cc_a0948963de716cba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 402 1 0 "da3a318b_1208_4329_be1faae95ecc2e03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 403 1 0 "1f51589f_347c_497b_a7338461d92076d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 404 1 0 "622e6765_4ee3_4df5_917ca140f8b7981b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 405 1 0 "9826612b_e564_4231_8f83fdfcbd374bdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 406 1 0 "fdb52557_ae6c_42b3_925073ab7ae7a5ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 407 1 0 "171639e0_98ad_4857_a5ac346039499a33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 408 1 0 "0d4077af_b1dc_4dea_a23a163c57d96248" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 409 1 0 "60732b74_8870_48e2_be03564159cf35b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("inverseGrip"), inverseGrip); // }} "" // {{{ 410 1 0 "ffa21840_da03_4682_b62a6910caf63f45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 411 1 0 "0af9b15f_4e1b_4353_a6261def96fea256" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{{ 412 1 0 "c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 413 1 0 "74d93b97_5d7f_4593_9aeb9d83d5466e6f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{{ 414 1 0 "28d636c0_47c0_4fac_8a7b67124fd8b9f5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 415 1 0 "6f62025f_9dde_4ae6_a6b6b69efed6e381" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("tolerance"), tolerance); // }} "" // {{{ 416 1 0 "f3d51abd_651e_4b15_93eb0cea0c0384be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 417 1 0 "1b72eb1e_c220_42e0_9a34675ddc971fe7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{ 418 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 419 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 420 1 0 "fd3fbb06_b08e_4790_8e3b785ca1f8ed4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 421 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 422 1 0 "87331d5f_01ff_43a8_a0a06487f28bb2b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 423 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 424 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 425 1 0 "5f12c00c_48c1_4e2f_a24b4ba435343a8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 426 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 427 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 428 1 0 "d3e5718a_eb78_4c1f_a6467f61ccbe82df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 429 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 430 1 0 "8ebcf09f_a943_4769_b3c659e368019a32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, lidSeq); // }} "" // {{ 431 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 432 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 433 1 0 "8ce5efe3_4525_4c77_bb64f9d8dcfb6a62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 434 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 435 1 0 "8ac111e1_df50_4fcb_b465e737713459d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn); // }} "" // {{{ 436 1 0 "d9104246_d843_4a6d_85a64aa07d019020" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Get - step return :"), o_stepReturn); // }} "" // {{{ 437 1 0 "7831c2d8_4b59_455a_a0dc5cae20f325a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 438 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 439 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 440 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 441 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapMove") { // }} "" // {{ 442 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 443 1 0 "3c315cea_4ff8_4efa_8e4a5cc86a9d84d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 444 1 0 "4e2cf15d_267b_47e0_895c36b714787e13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 445 1 0 "24d68fc9_cd59_471b_9c663c4121d1a931" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{ 446 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 447 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 448 1 0 "d372f898_6d32_4d80_ab4d58340d18681d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 449 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 450 1 0 "9e573132_bd29_4d08_a1784d0e26c48700" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 451 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 452 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 453 1 0 "48db1de6_2a87_4224_b1f13fa2a75b490a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 454 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 455 1 0 "1e8e9562_41c0_4df5_9de945c44d1e8d61" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn); // }} "" // {{{ 456 1 0 "a5de7c97_d49c_4f04_b1414f1aaace7f84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Move - step return :"), o_stepReturn); // }} "" // {{{ 457 1 0 "6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 458 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 459 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 460 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 461 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPlace") { // }} "" // {{ 462 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 463 1 0 "18e9697d_0efb_4840_94a65e2a82b4ca69" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 464 1 0 "b0c35970_122b_4119_92c3801f4b8e980b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 465 1 0 "6ed697af_a110_4104_941633e154ff0071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 466 1 0 "fec1982e_3636_412d_af2eda243438f7ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 467 1 0 "21de27ac_9dc3_415b_b1d1e49e80c53591" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 468 1 0 "652aeaa7_9a2f_4c11_8bc1fc58a97ffed7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 469 1 0 "e88a5df4_d9ad_4231_89a5a03f88d0ce77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 470 1 0 "8c5aee51_3156_4fcc_b1b167552b73476f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 471 1 0 "8c257b39_8c0b_410d_a4a4e38df904008c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 472 1 0 "91e9f4c6_b7fe_4b15_83c830df3385398a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{ 473 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 474 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 475 1 0 "226bb6d1_37a1_4076_9d96fb9df69c6068" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 476 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 477 1 0 "ec2fd48b_eab9_491e_867c0fc335eea81c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 478 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 479 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 480 1 0 "e590d9b6_f690_48db_b0109a10c228d5ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 481 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 482 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 483 1 0 "82559320_1e13_40c9_b283fdfa804df6a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 484 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 485 1 0 "420daa28_bf45_407a_bd576559af75c5d0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 486 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 487 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 488 1 0 "3ed6b704_3649_4c7d_8e7d30bdb038feab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 489 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 490 1 0 "41a130e8_a745_4a20_b124272093bf38e7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn); // }} "" // {{{ 491 1 0 "b4bdf08c_e218_4bec_98c0f41e6ec3a218" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Place - step return :"), o_stepReturn); // }} "" // {{{ 492 1 0 "346b983b_d261_4447_a7cebf782db4b4d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 493 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 494 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 495 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 496 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPark") { // }} "" // {{ 497 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 498 1 0 "73602d5e_7f8d_45dc_9c1f21d41c39d0bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("showCollisionCheckDialog"), showCollisionCheckDialog); // }} "" // {{ 499 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 500 1 0 "acf5767a_7e39_4072_8e062928938984cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{{ 501 1 0 "96b1bdf6_a3f3_4530_844fc77cbf7fb944" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 502 1 0 "d03fdac4_224f_4174_924fb518a623bf65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 503 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 504 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 505 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 506 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGetFirst") { // }} "" // {{ 507 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 508 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 509 1 0 "5f9f4b8d_3b3a_48ee_89ef334a70dcb72e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{ 510 1 0 "65648900_32b3_4035_9eb5916a3314f7e9" "ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}" { variable arrRetValues[]; arrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40("65648900_32b3_4035_9eb5916a3314f7e9"); // GetFirstPlatePosition } // }} "" // {{{ 511 1 0 "63380bb7_5afe_4d65_9dc5cdf334590b4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 512 1 0 "cdb18c48_14d5_430d_9f7202f782e069da" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 513 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 514 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 515 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 516 1 0 "bd4869b9_868e_4752_b0442af8ce334f90" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 517 1 0 "f85c89d5_d370_4d24_b13fe2cee71ee262" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "FirmwareCommand") { // }} "" // {{ 518 1 0 "4d6ccadc_66fe_48ca_913a7e0defd3a766" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 519 1 0 "e1385a03_1302_4ae1_9faaea69422d67f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate("FirmwareCommandList")); // }} "" // {{ 520 1 0 "6fa9115c_4e6b_4fcf_82fc2509f332fbca" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(CommandListElement = 0; CommandListElement < CommandListLength;) { CommandListElement = CommandListElement + 1; // }} "" // {{{ 521 1 0 "5af0317c_390a_4121_92fc6695bd45edd3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate("FirmwareCommandList"), CommandListElement, FirmwareCmdDict); // }} "" // {{{ 522 1 0 "8c9a281c_debc_4f33_9bd2cef6eedde57e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareCommand"), FirmwareCommand); // }} "" // {{{ 523 1 0 "3d50574c_65df_46db_976821037648878c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareParameter"), FirmwareParameter); // }} "" // {{{ 524 1 0 "642f5973_af08_450b_878d55fa1dc15b1c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn); // }} "" // {{{ 525 1 0 "c1b028b1_70dd_4627_a467661067398a2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 526 1 0 "f0c6a22f_59e2_41c2_954cb5b06a43aa42" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 527 1 0 "6fa9115c_4e6b_4fcf_82fc2509f332fbca" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 528 1 0 "4d6ccadc_66fe_48ca_913a7e0defd3a766" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 529 1 0 "f85c89d5_d370_4d24_b13fe2cee71ee262" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 530 1 0 "bd4869b9_868e_4752_b0442af8ce334f90" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 531 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 532 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Initialize") { // }} "" // {{ 533 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 534 1 0 "efe73491_e5b4_499e_9b3f298c8b7a6398" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 535 1 0 "5c0fe710_4afe_4b11_bf186cfe8dc87978" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{ 536 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 537 1 0 "110af9db_52cf_4a40_94724a7476c48d86" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn); // }} "" // {{{ 538 1 0 "af9bf513_7c00_47bf_aee50c7cdb333b5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Initialize: "), o_stepReturn); // }} "" // {{{ 539 1 0 "cf0a8758_8a16_429a_97f320a142945224" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 540 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 541 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StartTempControl") { // }} "" // {{ 542 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 543 1 0 "de87c5cd_92f6_45a8_9ebd6fe71ac65dbc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 544 1 0 "26949b4a_2c44_4548_8de048c4f48bd98d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 545 1 0 "8ae03ef4_8584_4957_a32601dc8599dadf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn); // }} "" // {{{ 546 1 0 "934ba752_5ec3_489b_ae5a40dd1ea20440" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Start Temperature Control:"), o_stepReturn); // }} "" // {{{ 547 1 0 "a3528747_6990_4387_8839b01b71c3b754" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 548 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 549 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 550 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_SetTarget") { // }} "" // {{ 551 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 552 1 0 "55e81697_10a3_42fb_8777236a132ff0b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 553 1 0 "0177c1a2_7380_4683_94ff93e2ed1299b2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 554 1 0 "15559e31_3f7a_4336_9cabca6758b7c253" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("TargetTemperature"), TargetTemperature); // }} "" // {{ 555 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 556 1 0 "0dcffa9d_ea82_418b_be95240c1bfd0d77" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn); // }} "" // {{{ 557 1 0 "e9b0b663_7dd3_4e55_b206572d2c8a92c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Set Target:"), o_stepReturn); // }} "" // {{{ 558 1 0 "08ecb91c_e9c8_4c61_aca2c1f89fd97bab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 559 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 560 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StopTemperatureControl") { // }} "" // {{ 561 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 562 1 0 "b67518d4_e443_4a8f_947e8c457680c63e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 563 1 0 "045fda52_2303_4244_833066fb0005c21b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{ 564 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 565 1 0 "1c8947fe_b7a1_455a_94e7672ad3593b08" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn); // }} "" // {{{ 566 1 0 "285287f8_a3f9_43f0_9799c3ad98e59b9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco Stop Temperature Control:"), o_stepReturn); // }} "" // {{{ 567 1 0 "88d1a80e_0aa9_4314_ba83bc772f71a589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 568 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 569 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Terminate") { // }} "" // {{ 570 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 571 1 0 "c963c353_41bc_4f4a_b74a666b28831950" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("StopAllDevices"), StopAllDevices); // }} "" // {{ 572 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 573 1 0 "ea2ceb94_04fa_4204_96db2caf6871231f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn); // }} "" // {{{ 574 1 0 "cd495cf5_43ff_4b30_b0baa1f2cd96cf0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Terminate:"), o_stepReturn); // }} "" // {{{ 575 1 0 "bcce43cd_2b64_4caf_89bef8978a011dc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 576 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 577 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 578 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 579 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_Initialize") { // }} "" // {{ 580 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 581 1 0 "d824843f_bf44_4e8b_bb434b50a8b65716" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 582 1 0 "45b9f513_7eaf_4e63_ae92391c28cf15b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 583 1 0 "7f058eec_3092_45ce_862c43a3e0853c7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 584 1 0 "56a4490f_902b_4043_8172466a64e332bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Simulate"), Simulate); // }} "" // {{ 585 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 586 1 0 "c44a492c_8123_465b_acd4ff374583777d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn); // }} "" // {{{ 587 1 0 "a62df2e9_44bb_4099_a4d0597fbf0705de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Initialize:"), o_stepReturn); // }} "" // {{{ 588 1 0 "de7bfb5a_b1fa_42ee_b461782a3c381af4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 589 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 590 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_MoveToPosition") { // }} "" // {{ 591 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 592 1 0 "3092ee64_df80_4e56_b3cdffc0827e3c2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 593 1 0 "4284a9cf_3ea6_42f5_ae1f62d82cd11ebe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Angle"), Angle); // }} "" // {{ 594 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 595 1 0 "5b44092b_0faa_47ae_8005717c87a0f334" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn); // }} "" // {{{ 596 1 0 "4d912417_89ed_44f2_941bfb44efed0e2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Move to Position:"), o_stepReturn); // }} "" // {{{ 597 1 0 "0540bb67_399d_468d_853dd6ca4bb1c285" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 598 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 599 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 600 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 601 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "moveSequence") { // }} "" // {{{ 602 1 0 "6e83eea3_8863_4ca0_9ff603380f0dc4d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("inputSequence"), inputSequence); // }} "" // {{{ 603 1 0 "6b8903c6_6977_458a_8409f93724089454" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 604 1 0 "77d9a84d_5987_4b3c_a76757ce15a19302" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 605 1 0 "13c73535_4a98_49e2_ba1a02c30f02035b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 606 1 0 "a33ebddb_88d8_4440_9a78132ed62d97f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, inputSequence, seq); // }} "" // {{{ 607 1 0 "1dcc4914_aa2f_439e_8a2f431687c33852" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqFirstPosition = SeqGetPositionId(seq); // }} "" // {{{ 608 1 0 "01f7bf35_3538_441d_98904fa827b05e68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 609 1 0 "da3c8baf_9c08_4b10_ae4bfca19c718fb7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 610 1 0 "fe9d84b8_86ec_4552_b187147351886cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqSecondPosition = SeqGetPositionId(seq); // }} "" // {{{ 611 1 0 "5fa8b88a_cf88_49e1_8cb574503dc60e56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(seqFirstPosition, seqSecondPosition); // }} "" // {{{ 612 1 0 "e590c4e1_91dd_41c0_82a254d4134fb734" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("First check"), Translate("Second check")); // }} "" // {{{ 613 1 0 "2127d6de_e8bd_455a_88ad20e73b767061" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 614 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 615 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 616 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 617 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 618 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_measure") { // }} "" // {{{ 619 1 0 "7c314622_d15c_42aa_a88b3d71caa33d0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 620 1 0 "9f15b042_95cd_4241_9b6262d3a4979ca7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 621 1 0 "34064a8d_5567_4fe5_b4349d0d061b9a1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 622 1 0 "0e34e118_df68_49fa_b3b9228d63deb6d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 623 1 0 "025eece8_72cd_4190_a092d806fbab65a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 624 1 0 "269c134a_bc59_4578_8da8bb7559f234a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 625 1 0 "36ec28c1_360b_46e9_9243c01dbd3874e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 626 1 0 "58445956_3204_41a3_a7acb03aaf25ccd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 627 1 0 "465c2002_18cb_4ff2_9df9e423dbc6837c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 628 1 0 "40682224_6d73_4a7c_a2e33641f1768d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 629 1 0 "e43a57a6_d83b_41d1_adf33f8f77ca7bc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 630 1 0 "12a6bd74_f75b_44d1_b6f7c26d279d9610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 631 1 0 "71b8f8bc_65c1_4e97_ab6eae03040f51dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 632 1 0 "14b52404_fede_461d_aca1373dce5499bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, id); // }} "" // {{ 633 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 634 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 635 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 636 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate_Dyn") { // }} "" // {{{ 637 1 0 "de6a4eb0_04e1_47fc_86e27009d71152cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 638 1 0 "5f551457_7af9_4567_bceacdf0018c9c38" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 639 1 0 "60ee9fa5_c549_43a9_bbccdb0b14819583" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 640 1 0 "2211f515_9e69_4a1c_9603becd6fd866cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 641 1 0 "8449e1f4_6561_4b51_b91aa14423565eb2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 642 1 0 "4429d4bb_e2fb_451f_8558de74111dbe3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Variance"), Variance); // }} "" // {{{ 643 1 0 "a918fadc_db95_4e4b_9c445a903a59f17a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 644 1 0 "7611bb65_5e77_408e_98384f0fec68e958" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 645 1 0 "74418f44_640a_4b4b_88234a74841f1dbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate Dynamically"), o_stepReturn); // }} "" // {{{ 646 1 0 "3eeade94_ed13_40da_8e5da59febd67068" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 647 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 648 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 649 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 650 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate") { // }} "" // {{{ 651 1 0 "c7a809a1_1dc8_47c2_a8006c785355c50e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 652 1 0 "27f7a889_0250_42a5_87699d0b0d52d36b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 653 1 0 "b624fe53_a0c2_44e7_92eb12cc744fa799" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 654 1 0 "9f642188_0286_4e80_81cb485423a155c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 655 1 0 "c7530a85_7f29_4069_9a8e94318ffec0d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 656 1 0 "849206a3_ea5c_4440_a08cdbcb81354e94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 657 1 0 "9f9ab695_0d32_4bf4_bf5a4b0207a2c780" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 658 1 0 "84efa5b5_d72d_4cd9_9851f31ca8d9d88e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, Translate("0"), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 659 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 660 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 661 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 662 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Enable_Extended_Log") { // }} "" // {{{ 663 1 0 "1791ad6e_39b2_4442_8b4470d0fc5497fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn); // }} "" // {{{ 664 1 0 "b22a7836_ed52_4e9d_9e5df5babf8fa142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 665 1 0 "8d68d8f1_5b56_488b_a0676b4b50a35221" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 666 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 667 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 668 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 669 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Get_Last_Error") { // }} "" // {{{ 670 1 0 "11bf85a6_3df2_4245_839282a900f3db71" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 671 1 0 "2c0b2633_5d81_41a1_aa90c51eb8d9d23d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn); // }} "" // {{{ 672 1 0 "4d60f4e2_175b_4a4b_9b0bfb0f63211da0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Get Last Error"), o_stepReturn); // }} "" // {{{ 673 1 0 "a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 674 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 675 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 676 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 677 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Initialize") { // }} "" // {{{ 678 1 0 "a37d4042_a872_4da0_bf60a51312d5cc22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 679 1 0 "77530965_cb1f_4563_a1d848bb4faa3bb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 680 1 0 "295c3bab_f7f4_47d0_8075cf658ee0436f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn); // }} "" // {{{ 681 1 0 "5ccf6713_621f_45ec_9520383da6a8fafd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 682 1 0 "178d10c9_fe18_479a_b3e7922f87282612" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 683 1 0 "316d7012_97a3_4f96_8d21cc026931e7ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, Translate("0"), o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 684 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 685 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 686 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 687 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Measure_Dynamically") { // }} "" // {{{ 688 1 0 "69eede79_0b96_4634_a4ed7995201d9b7d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 689 1 0 "6a018697_b8f4_4088_b8c650a2f028d197" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Precision"), Precision); // }} "" // {{{ 690 1 0 "dfbe88b8_1dda_42ac_8175799123584051" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 691 1 0 "3ef27a25_aec7_4d5b_beb743b713c7526e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 692 1 0 "74a87116_8260_466d_a78e98fe0544a891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 693 1 0 "425d37a5_2d55_4b09_a607303c754935db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure_Dynamically(ModuleID, Temperature, Precision, Timeout, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 694 1 0 "0df3fc00_0550_45fa_b224d60b9bcd06c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 695 1 0 "26992ae0_59eb_4678_ae304b460a7034db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 696 1 0 "3beda7c9_5769_4578_b31431d2bab6d131" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 697 1 0 "141952da_a201_4e85_9e446006849a95bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 698 1 0 "f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 699 1 0 "5487a4f7_a9f8_448e_98b2cb671cb9c069" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 700 1 0 "c8e7c221_d1e4_4818_b3e077f9aeb6a0a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 701 1 0 "611376c4_8c68_46f2_8947cec12bb313f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 702 1 0 "e113c0e5_7ab9_4244_86b73e7f24d2bfc8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 703 1 0 "bedcab57_6a72_4e21_a8115e7ec01a9df0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, id); // }} "" // {{ 704 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 705 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 706 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 707 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Battery") { // }} "" // {{{ 708 1 0 "c83f58ac_8db7_4477_bed8e57c9c784b8a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 709 1 0 "4b343bdb_fe40_4daa_8382b1265575e03a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn); // }} "" // {{{ 710 1 0 "98f43381_9679_4d9f_b3d1238ed4c1d0c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 711 1 0 "b95371f0_7532_4426_b980d9824bf1d2b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ChargeCounter = StrIStr(ChargeCounter); // }} "" // {{{ 712 1 0 "15324eca_50a4_4530_be7f08cdef0e6514" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BatteryCondition = StrIStr(BatteryCondition); // }} "" // {{{ 713 1 0 "e694349e_13ad_46c1_b18f5eb4688f510e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ActualCharge = StrIStr(ActualCharge); // }} "" // {{{ 714 1 0 "cfc277c3_f282_4547_a247af47bcdff866" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, id); // }} "" // {{ 715 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 716 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 717 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 718 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Calibration") { // }} "" // {{{ 719 1 0 "250cbb57_43e2_4ca3_8ac97a4f8a848ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 720 1 0 "e2f361b4_fb8d_4bf8_b53c05720323632b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ProbeNumber"), ProbeNumber); // }} "" // {{{ 721 1 0 "6e7357dd_030a_4f9d_b5cda736b409bbee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn); // }} "" // {{{ 722 1 0 "07a16a85_b9f0_4bb3_9dd6a0a173520841" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowValue = StrFStr(pHLowValue); // }} "" // {{{ 723 1 0 "7331e4fa_3e06_499a_84eed922b712aca5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowVoltage = StrFStr(pHLowVoltage); // }} "" // {{{ 724 1 0 "3c2e720a_1c6e_4f09_afe077215aa438e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighValue = StrFStr(pHHighValue); // }} "" // {{{ 725 1 0 "a9363a15_98fa_4a49_8451b25c27edea3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighVoltage = StrFStr(pHHighVoltage); // }} "" // {{{ 726 1 0 "73007841_7490_489f_9c595a8e085e3a59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationTemperature = StrFStr(CalibrationTemperature); // }} "" // {{{ 727 1 0 "49c841c4_b5cf_4ac7_9c2e87a2dc939210" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationOffset = StrFStr(CalibrationOffset); // }} "" // {{{ 728 1 0 "d3535c95_47a6_46a6_80f73d15c4582508" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlope = StrFStr(CalibrationSlope); // }} "" // {{{ 729 1 0 "e72f9070_8ad1_4595_90dd12ff353c8844" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio); // }} "" // {{{ 730 1 0 "9ae40f13_d6cb_4a4e_9dc995de1da2d637" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Request Calibration Values"), o_stepReturn); // }} "" // {{{ 731 1 0 "755fd068_89d1_41be_8a861b77bf48bee7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id); // }} "" // {{ 732 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 733 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 734 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 735 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Probe_Data") { // }} "" // {{{ 736 1 0 "04b155be_097f_4f2d_add1392fbf78b5f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 737 1 0 "c40a59cd_e266_4cc3_aa3dd3d526502930" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn); // }} "" // {{{ 738 1 0 "306c68bb_ffd7_4233_b7f0c2c67678dfdf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1); // }} "" // {{{ 739 1 0 "bbd1faef_5b8f_41ba_bf74a019b05da039" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2); // }} "" // {{{ 740 1 0 "cb244d85_a14b_4bcb_ab81c5cdc38c6552" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3); // }} "" // {{{ 741 1 0 "fc396f90_794c_409c_b3cef94fbe3b4b58" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4); // }} "" // {{{ 742 1 0 "6883841a_44f5_417f_8574566ed15ae444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), o_stepReturn); // }} "" // {{{ 743 1 0 "5a8f2425_ea73_4af6_af3bcc0704a09580" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 744 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 745 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 746 1 0 "40161885_d698_43c9_8cc9cd56bb857ff9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 747 1 0 "2bc26a98_827e_4307_956dafca27975034" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Technical_Data") { // }} "" // {{{ 748 1 0 "80ad2e8b_36d3_46c9_85a74315da0f3d3b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 749 1 0 "d69d96cc_5006_4861_9b5df282d0e70356" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 750 1 0 "183707cd_97f3_47cd_a418a4b3bc62a7b7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 751 1 0 "70fb4e68_a544_4fb1_a7b963065e96b41d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HardwareNumber = StrIStr(HardwareNumber); // }} "" // {{{ 752 1 0 "871b97c1_1a10_4ec7_a3479aa36d2472ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" PartNumber = StrIStr(PartNumber); // }} "" // {{{ 753 1 0 "e397b76a_ee64_4feb_8dbf7529cba8c69a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Revision = StrIStr(Revision); // }} "" // {{{ 754 1 0 "6367ec8e_9407_45ee_926605bcc96a7a77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SerialNumber = StrIStr(SerialNumber); // }} "" // {{{ 755 1 0 "5e0ae32b_77e1_4555_8c559e0f432e9ffc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), o_stepReturn); // }} "" // {{{ 756 1 0 "7368c8af_2328_46a9_9d796baee70a830c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id); // }} "" // {{ 757 1 0 "2bc26a98_827e_4307_956dafca27975034" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 758 1 0 "40161885_d698_43c9_8cc9cd56bb857ff9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 759 1 0 "ad5ab69c_d074_40ea_8e4ea9bbdc677e5e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 760 1 0 "dae546ec_beec_4075_a0263e9394fcaeec" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Voltage_Data") { // }} "" // {{{ 761 1 0 "49df468c_ad0e_4f84_a154324f995dc753" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 762 1 0 "d066dae7_0a33_45ab_a933d05573578b9f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Selector"), Selector); // }} "" // {{{ 763 1 0 "7101b0a9_c89f_4abe_874b61044ad59b47" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn); // }} "" // {{{ 764 1 0 "35988df5_226b_4bef_834065f2e2b1f248" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 765 1 0 "defac783_2b38_45c8_8edc1df176077ea8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(""), Translate(""), id); // }} "" // {{ 766 1 0 "dae546ec_beec_4075_a0263e9394fcaeec" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 767 1 0 "ad5ab69c_d074_40ea_8e4ea9bbdc677e5e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 768 1 0 "733af878_82cb_4b93_9d668871995a8b6e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 769 1 0 "db796a4a_5d49_4d35_9a61dbb09030bc18" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 770 1 0 "abf23a6a_b1ff_4d8d_9bc66321c92203d8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 771 1 0 "8dcd1276_67e0_4312_adb1892334b6cfb1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 772 1 0 "78966525_c5eb_49f9_9ffdc8f5b059430d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 773 1 0 "e5def203_584f_46fd_828a181b55ae59fe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 774 1 0 "5004839e_e1ef_488a_8a47e199be762db8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 775 1 0 "dc3a0036_1edf_4146_9813c388a14a1162" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 776 1 0 "528fbaaa_7615_4dd1_9a1a264f9332734a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 777 1 0 "db796a4a_5d49_4d35_9a61dbb09030bc18" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 778 1 0 "733af878_82cb_4b93_9d668871995a8b6e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 779 1 0 "bb1a9496_24e4_4601_b49507dcd72c3b1d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 780 1 0 "2f57a5f0_d272_476b_a3fa97c3a0220133" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Charge_Parameters") { // }} "" // {{{ 781 1 0 "82db2371_6073_4231_adcde39f84795624" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 782 1 0 "49edff97_a09a_48fd_b8c3fab4232e491d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Charge"), Charge); // }} "" // {{{ 783 1 0 "65d300c3_4961_4f63_97a62bac894a90e7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AutoCharge"), AutoCharge); // }} "" // {{{ 784 1 0 "76b3c334_d458_4da8_a432c32029631998" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("AutoChargeLevel"), AutoChargeLevel); // }} "" // {{{ 785 1 0 "570dddd0_236c_442b_8ebbd48935503e87" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn); // }} "" // {{{ 786 1 0 "ed530638_0048_4017_a130efd1b6a8732b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Charge Parameters"), o_stepReturn); // }} "" // {{{ 787 1 0 "692a789f_c205_4b55_b5abab1c994238c8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 788 1 0 "2f57a5f0_d272_476b_a3fa97c3a0220133" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 789 1 0 "bb1a9496_24e4_4601_b49507dcd72c3b1d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 790 1 0 "9d1fd94d_72b7_4a5c_859572976c111c0c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 791 1 0 "e9d7d2b6_9471_4bb7_b6e319491b6cd184" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Probe_Replacement_Date") { // }} "" // {{{ 792 1 0 "9c28dab6_3ab5_4bba_b8f58b7b860bec78" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 793 1 0 "981d3887_9dbb_473a_8ade704319d2da18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Probe"), Probe); // }} "" // {{{ 794 1 0 "d24ad986_034d_4773_8375887de6b2b0bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 795 1 0 "f24f1240_d298_4791_b14bad530f12ec9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 796 1 0 "e6c10382_115d_4df4_be6c8eee1fc28ed2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 797 1 0 "e8951db1_1c34_48f4_92f9b18d61e5f86c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn); // }} "" // {{{ 798 1 0 "a4c0db56_3032_4735_a1d57d9394d9f6b7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Probe Replacement Date"), o_stepReturn); // }} "" // {{{ 799 1 0 "d8fca300_c4c8_4a63_bec8288de7221d29" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 800 1 0 "e9d7d2b6_9471_4bb7_b6e319491b6cd184" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 801 1 0 "9d1fd94d_72b7_4a5c_859572976c111c0c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 802 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 803 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Shutdown") { // }} "" // {{{ 804 1 0 "aec40299_6cef_4e16_ad88bccbdcae3b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 805 1 0 "c7715d80_e089_40ea_86fe6a446a2c9378" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Mode"), Mode); // }} "" // {{{ 806 1 0 "212772c6_0ff7_41ef_9c35fb5828034d90" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn); // }} "" // {{{ 807 1 0 "82055c44_b706_4c16_99b47c2a4ae600e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Shutdown"), o_stepReturn); // }} "" // {{{ 808 1 0 "fbbaa73a_fa45_446d_8052e6e618fd2fad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 809 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 810 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 811 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 812 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Technical_Data") { // }} "" // {{{ 813 1 0 "d6a005e1_4502_49d8_9a510afa4a2e833e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 814 1 0 "5ad112b0_da19_4b1b_a4649033defa7fef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 815 1 0 "f4094e68_7940_4706_bae95f6277784476" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PartNumber"), PartNumber); // }} "" // {{{ 816 1 0 "2b53f199_42d1_4808_a128c8ef4354e216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Revision"), Revision); // }} "" // {{{ 817 1 0 "b5bf6715_e2e6_4e19_ad453dbb18396d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SerialNumber"), SerialNumber); // }} "" // {{{ 818 1 0 "8cd5ff7f_9cb8_4f34_8afeb35175b47032" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 819 1 0 "b60d9996_aa66_483d_b61518ffca638e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Technical Data"), o_stepReturn); // }} "" // {{{ 820 1 0 "164f5289_e710_44eb_a1ea51e1622a7813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 821 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 822 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 823 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 824 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Trace_Level") { // }} "" // {{{ 825 1 0 "dd6ba7d4_f5cc_4725_9776848c6e8343cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 826 1 0 "5a2c7ac9_8800_4926_96f26337aee59504" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 827 1 0 "88c51a62_4453_4cf5_ba0682a2cb1da767" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 828 1 0 "159aeb3e_3ed4_4ddc_a11cdfd939a7db7d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Trace Level"), o_stepReturn); // }} "" // {{{ 829 1 0 "c3a5cc94_f346_4d04_a4be1fd04efbccc1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 830 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 831 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 832 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 833 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Sleep") { // }} "" // {{{ 834 1 0 "153dc01b_be4b_403a_a40226aa4778c709" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 835 1 0 "a6f7384c_4c2e_4b3b_9682c00fb7a2f978" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn); // }} "" // {{{ 836 1 0 "e82cf943_58b3_463e_a86afb9882353228" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Sleep"), o_stepReturn); // }} "" // {{{ 837 1 0 "bd1fe536_3228_4133_88a586b0ebeb97b4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 838 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 839 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 840 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 841 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Terminate") { // }} "" // {{{ 842 1 0 "b53cd271_035b_4870_961c552983b39351" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 843 1 0 "e133d234_4ccd_44cb_810d29742ee9f40e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn); // }} "" // {{{ 844 1 0 "eb5a9614_5d18_44cd_83190a1d8eec2a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 845 1 0 "add7dd5e_87e4_4ec1_a7b552234adc5d9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 846 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 847 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 848 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 849 1 0 "239b0af4_4a15_42ca_9e5f0f4dbacbf1ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Wake_Up") { // }} "" // {{{ 850 1 0 "6b1d97c0_debd_402e_8c064a5c1fe48aca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 851 1 0 "09ffa3b4_530e_444f_943e5302e37f3fe0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn); // }} "" // {{{ 852 1 0 "271fe899_154a_49a3_9f697b7c6ecf1607" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 853 1 0 "04450a29_1e44_43cd_8e66a98ecb19c114" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 854 1 0 "239b0af4_4a15_42ca_9e5f0f4dbacbf1ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 855 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 856 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 857 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Initialize") { // }} "" // {{{ 858 1 0 "10713a72_dce4_482a_ad1d6d8db7bd210a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 859 1 0 "21f38719_99e7_4de4_bc16b312b6f57977" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 860 1 0 "75ac7c86_e474_45bc_8551fc9e302de4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 861 1 0 "04e9eb0f_3060_49dd_b7fc371a1cac07cc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 862 1 0 "2cd42ac0_35a7_4810_b97f172b80b5b376" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 863 1 0 "a042f65b_875f_4b52_999c836815c84a6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 864 1 0 "a5b3f17c_5d6a_4171_809dfbebc6cc6bdf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 865 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 866 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 867 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 868 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Set_Trace") { // }} "" // {{{ 869 1 0 "0029313d_525e_46ea_916912b33902e1eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 870 1 0 "ed79bcac_71ff_48ee_b968407f0dbdf4ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 871 1 0 "80f14967_56f1_4b78_9a3c9965460a9589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 872 1 0 "b3fdfb36_4bb4_4086_a19b5402f53fdd94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 873 1 0 "85e3b008_ec25_4841_b8dc50757dea3859" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 874 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 875 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 876 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 877 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Wash") { // }} "" // {{{ 878 1 0 "32bfd9a6_1ebc_4ca0_81e034f81d1af760" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 879 1 0 "a9208608_0099_4d5f_800d72adf563b9e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CycleNumber"), CycleNumber); // }} "" // {{{ 880 1 0 "738f88ca_6ad7_4598_b1e4a3e1ccefcace" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn); // }} "" // {{{ 881 1 0 "d009e19d_0560_4f89_b0f58bafa778b71b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Wash"), o_stepReturn); // }} "" // {{{ 882 1 0 "cfdcbcac_ded9_4df9_81cb52d64cf9948f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, Translate("0"), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 883 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 884 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 885 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 886 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Terminate") { // }} "" // {{{ 887 1 0 "e8e2fec9_d562_4524_b5d29880876bd109" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 888 1 0 "ad418c06_88fd_4649_9745bc00694fa53a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 889 1 0 "e8437e3c_0153_4bc0_86236a2e9849e22a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Terminate"), o_stepReturn); // }} "" // {{{ 890 1 0 "93997110_b2fd_4307_beefb0793aafd07d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, Translate("0"), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 891 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 892 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 893 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 894 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Initialize") { // }} "" // {{{ 895 1 0 "b41d8294_bc5c_4346_999860e0f4cc913e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 896 1 0 "102abd73_15bb_472b_a1008b4eda35637e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 897 1 0 "58389380_f098_4c71_b61c0954f797753b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 898 1 0 "2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 899 1 0 "1ea3ff21_cc55_4ffe_a63d63f51d6c682a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 900 1 0 "d35fefc8_f758_41da_a6073532f75cf092" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Initialize"), o_stepReturn); // }} "" // {{{ 901 1 0 "4e3aa360_b8a0_4554_895d08f5c1bad940" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, Translate("0"), ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 902 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 903 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 904 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 905 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Set_Trace") { // }} "" // {{{ 906 1 0 "f7fc7449_63b2_4e8b_8d0eaf3f931e834d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 907 1 0 "ef77cea9_ef26_4525_bea967ec7f086b88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 908 1 0 "24784b11_b6f4_461e_b526cbbb677864ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 909 1 0 "d5ebe375_f7dd_45c2_b3e242a8edf4f175" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Dryer Trace Level"), o_stepReturn); // }} "" // {{{ 910 1 0 "07352f99_d436_47e1_b5be6eb50ad91849" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, Translate("0"), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 911 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 912 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 913 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 914 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Start_Drying") { // }} "" // {{{ 915 1 0 "45561f8e_cd7f_49d8_a8720b2ff7d0d932" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 916 1 0 "ecdddf7a_3c99_4f99_97b658f94a62554c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 917 1 0 "5a6daec0_a404_4a0a_ad9d88de43ac46c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Start Drying"), o_stepReturn); // }} "" // {{{ 918 1 0 "8d32125d_836b_4511_bd5cc18e32c9c93a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, Translate("0"), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 919 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 920 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 921 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 922 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Stop_Drying") { // }} "" // {{{ 923 1 0 "f3eac478_54bb_4350_8c1811bf2ede8424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 924 1 0 "37262733_33d0_4723_94687e68249d1300" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 925 1 0 "6feb871c_61be_4812_a421af32d75f9871" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Stop Drying"), o_stepReturn); // }} "" // {{{ 926 1 0 "8a572b45_5f79_44aa_8e7b2cf52c55c499" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, Translate("0"), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 927 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 928 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 929 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 930 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Terminate") { // }} "" // {{{ 931 1 0 "66453f41_07b7_4fd4_b2177e4994606836" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 932 1 0 "a5808bbd_63b3_4fc2_894ab4d4eb00b93d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID); // }} "" // {{{ 933 1 0 "f844d13f_ecdb_465a_b0300a4976c0d809" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 934 1 0 "abbeea15_02e5_4ceb_905c389a634e03bf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, Translate("0"), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 935 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 936 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 937 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 938 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 939 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Initialize") { // }} "" // {{{ 940 1 0 "5efffd73_f295_4d3c_aacd37c74d2bc015" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ComPort"), Comport); // }} "" // {{{ 941 1 0 "cc8f22a1_0ae7_40ee_82d2e071b7344cf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn); // }} "" // {{{ 942 1 0 "b6f33534_c173_4c6c_820d96a48fa50a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Barcode initialize:"), o_stepReturn); // }} "" // {{{ 943 1 0 "138ad752_fbd8_457e_948dd436ddb65822" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 944 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 945 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Read") { // }} "" // {{{ 946 1 0 "0b3c261e_a906_4464_b0e5caa3ec640056" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Read(barcode); // }} "" // {{{ 947 1 0 "98aadc47_a5a2_433d_84530ad050155ccd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("BarcodeReader_Read"), barcode); // }} "" // {{{ 948 1 0 "e3fc85ee_a6d7_4d98_a3f9076b947565cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, barcode, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 949 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 950 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 951 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 952 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 953 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_BeginMonitoring") { // }} "" // {{{ 954 1 0 "7dd862dc_f7f1_4600_94ca9b83762673dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 955 1 0 "d37d14e5_261f_418c_81f754eb75bf4920" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingToleranceRange"), shakingToleranceRange); // }} "" // {{{ 956 1 0 "0919ceb3_189a_4885_93c8faeab9f9538b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sampleInterval"), sampleInterval); // }} "" // {{{ 957 1 0 "bc3a749e_e1bb_4c4a_9aac06834d85080f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("action"), action); // }} "" // {{ 958 1 0 "4e026721_fd49_4127_87fda5791fa13eff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 959 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ; err.Clear(); // }} "" // {{{ 960 1 0 "a2a0a3bb_c0cf_4123_afe36d1d51ae233c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action); // }} "" // {{ 961 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3202FD4CC34D478f892F31C7684340BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 962 1 0 "7066bb37_8c48_474d_8f467cf1f1e06a8d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 963 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 964 1 0 "c00b8635_652d_48ca_8d345ed070306b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 965 1 0 "85ac1487_5644_4bae_b032f5c191aa47c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 966 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 967 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 968 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 969 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateStarDevice") { // }} "" // {{{ 970 1 0 "4c3dfdd2_2dd6_4c5f_831f92590c13e82e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 971 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_18D9C44C12554d56B5C39C21EA142EC8 ; err.Clear(); // }} "" // {{{ 972 1 0 "cc3d4234_12d6_486a_a110c8ede0e3059b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber); // }} "" // {{ 973 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_18D9C44C12554d56B5C39C21EA142EC8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 974 1 0 "7f473860_0be7_4dc2_87423136869dd829" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 975 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 976 1 0 "7699b24c_5ec6_4cca_b1cb9aed9ce60247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 977 1 0 "85155966_9554_40cb_9693f9b0a11b25a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return2 (device number):"), deviceNumber); // }} "" // {{{ 978 1 0 "d049e779_0761_471d_9f7b8af0967d1633" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 979 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 980 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 981 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 982 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateUSBDevice") { // }} "" // {{{ 983 1 0 "72f0a762_2550_45ad_bea063f4f72a9fe9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 984 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ; err.Clear(); // }} "" // {{{ 985 1 0 "0cd1cef0_3091_48c3_b63490d3e80a5b45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber); // }} "" // {{ 986 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_98100824AA704d26AB40A6BADEF39F48 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 987 1 0 "53df6909_1d0e_4001_ac674452fec957bc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 988 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 989 1 0 "85d76321_871e_4d0e_bb460b7513742e62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return:"), o_stepReturn); // }} "" // {{{ 990 1 0 "d303212f_1f38_442d_a24eee709cf4cdc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return2 (device number):"), deviceNumber); // }} "" // {{{ 991 1 0 "7356ec1e_8437_4679_94613ac2bea4fe0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 992 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 993 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 994 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 995 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_EndMonitoring") { // }} "" // {{{ 996 1 0 "4293ef15_cfcd_4e29_b9b02afae2d471f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 997 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ; err.Clear(); // }} "" // {{{ 998 1 0 "96f15f32_4117_4a09_85dceac0fa769b43" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult); // }} "" // {{ 999 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1000 1 0 "6ba4b834_521a_46da_9ceb8ced08da95f5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1001 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1002 1 0 "ce89bf49_b865_4c3f_a97eba220b5a7d33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS End Monitoring step return:"), o_stepReturn); // }} "" // {{{ 1003 1 0 "05229af2_f20a_42ce_908ec8445f3f9dd2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(""), Translate(""), id); // }} "" // {{ 1004 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1005 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1006 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1007 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetFirmwareVersion") { // }} "" // {{{ 1008 1 0 "942a1cc2_d956_47fa_9a9ffed1e856a632" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1009 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ; err.Clear(); // }} "" // {{ 1010 1 0 "20e2b3e5_8664_4809_9bcf626c89196333" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1011 1 0 "c70f5e07_0eeb_45e5_af26714895e2df88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion); // }} "" // {{ 1012 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1013 1 0 "38e3e61d_a654_46f5_87f53cf7dfc09446" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1014 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1015 1 0 "7de3b86c_c16d_4932_beedfb948b5d85f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(""), Translate(""), id); // }} "" // {{ 1016 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1017 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1018 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1019 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetSerialNumber") { // }} "" // {{{ 1020 1 0 "38b7d0d7_7cce_4157_8abc70dfb62eefa5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1021 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 ; err.Clear(); // }} "" // {{ 1022 1 0 "d92781d1_27c2_48fb_acfd9cb32428e910" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1023 1 0 "0bbfb488_9723_4a08_9b90171dbec6117a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber); // }} "" // {{ 1024 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1025 1 0 "19daab0c_59b0_4af8_a070bee39acf20c1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1026 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1027 1 0 "311e5a04_1ac3_443c_bdc51c5cdc4c44f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(""), Translate(""), id); // }} "" // {{ 1028 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1029 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1030 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1031 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerParameter") { // }} "" // {{{ 1032 1 0 "f3888a0b_86ea_4c4a_891e1755a6e78556" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1033 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ; err.Clear(); // }} "" // {{ 1034 1 0 "df61bf49_7625_493f_ad06bbdbb36b494a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1035 1 0 "e993ed67_92ed_4c85_bd33f90aac53dfb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3); // }} "" // {{ 1036 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1037 1 0 "accda6cd_138b_411c_bf3af9b152e986c8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1038 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1039 1 0 "6efd49bf_48c7_437b_8fee57487345eaee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1040 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1041 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1042 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1043 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerSpeed") { // }} "" // {{{ 1044 1 0 "e1c29a26_0656_46e3_b0a412143047bd26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1045 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ; err.Clear(); // }} "" // {{ 1046 1 0 "8d513473_33ad_47dc_a8c3ed9799195b58" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1047 1 0 "d7148e56_7fcc_471d_8c3a7abc2847db7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2); // }} "" // {{ 1048 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1049 1 0 "ee004b75_f488_428e_99b02212bd478984" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1050 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1051 1 0 "41ba2513_e3c2_485c_821198419c3fe286" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1052 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1053 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1054 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1055 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTempParameter") { // }} "" // {{{ 1056 1 0 "09fb30ea_33e9_486d_96945af4798859ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1057 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ; err.Clear(); // }} "" // {{ 1058 1 0 "4f9610c2_a783_4586_b1725e8904e476cc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1059 1 0 "eea3f2ce_93c1_4efd_be90b89d775a6867" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 1060 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C16E1CF8298042f0A01D1040DC911015 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1061 1 0 "ad6b8668_d455_40f9_9e64eac973c2db0c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1062 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1063 1 0 "81e3038e_a3ea_4252_a09b14cd3de477a3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1064 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1065 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1066 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1067 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperature") { // }} "" // {{{ 1068 1 0 "01d1add6_c167_4137_8f0c285cd6ad9bed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1069 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ; err.Clear(); // }} "" // {{ 1070 1 0 "a54c8c75_1172_46d3_a61e71fe7fea812d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1071 1 0 "4187d732_0d13_4590_99fa08572e32e2f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2); // }} "" // {{ 1072 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_14A2AAD200434d69970AC483BD08B64F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1073 1 0 "e9f473e4_b341_4e28_8c5c444235409181" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1074 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1075 1 0 "234847f1_2f0a_4e64_856b9edefcebb425" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1076 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1077 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1078 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1079 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperatureState") { // }} "" // {{{ 1080 1 0 "82a233ab_0392_4ebb_9a809d80aae38e44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1081 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ; err.Clear(); // }} "" // {{ 1082 1 0 "19a32be3_7476_425d_a82433aead4637cf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1083 1 0 "7f7e0bd7_bea9_474d_92bce5d21da9a2a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2); // }} "" // {{ 1084 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_50485390A50647818ED2D3934FBC87E3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1085 1 0 "81e1a27f_16e2_44ed_b7cd3b11ac866a97" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1086 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1087 1 0 "31a69f44_1a59_49ce_a78763f3aa936042" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1088 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1089 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1090 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1091 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SendFirmwareCommand") { // }} "" // {{{ 1092 1 0 "11546c32_6ddd_4250_9b8750c9679e5b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1093 1 0 "06688598_f10e_41e9_8a2c6d3dff7b7aae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), command); // }} "" // {{{ 1094 1 0 "15a58509_ec93_4677_b1858cadeac42d10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("parameter"), parameter); // }} "" // {{ 1095 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ; err.Clear(); // }} "" // {{ 1096 1 0 "84b0a5f3_5e82_4770_81998131d1071a7a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1097 1 0 "b63ba349_9a52_43ca_aec17e40c17d231b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter); // }} "" // {{ 1098 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_84EE5E4228B140f599748D1271CBB0F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1099 1 0 "f46c286b_9141_4717_ac23994f8defc186" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1100 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1101 1 0 "8b5634c2_e1da_41d3_83c57142f4cae999" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1102 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1103 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1104 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1105 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetPlateLock") { // }} "" // {{{ 1106 1 0 "927ddf67_5dbd_432b_b8cf6117a3109b06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1107 1 0 "a3eee1ac_7024_473b_a6eb8a2e9b461a66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("plateLock"), plateLock); // }} "" // {{ 1108 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ; err.Clear(); // }} "" // {{ 1109 1 0 "a9029174_cbad_4f9c_9ca65c3b9497d605" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1110 1 0 "27d47e3b_913b_4a0e_bdb50007a0e39d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock); // }} "" // {{ 1111 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1112 1 0 "bb948751_9e18_4aa8_b86a3dd67208967f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1113 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1114 1 0 "945560ed_40bf_44a9_851fead4c1943f9f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1115 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1116 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1117 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1118 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetShakerParameter") { // }} "" // {{{ 1119 1 0 "8a0e14c1_f6c6_4fb8_94094498cccd7991" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1120 1 0 "1810a83f_3fc2_4c49_9d5502fbdfc743e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingDirection"), shakingDirection); // }} "" // {{{ 1121 1 0 "c3053579_8645_474f_8c05459eed975362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingAccRamp"), shakingAccRamp); // }} "" // {{ 1122 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ; err.Clear(); // }} "" // {{ 1123 1 0 "d7ecab6c_533b_4d98_97e3fd144551f6d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1124 1 0 "77463ac5_e629_4772_98004edef4016a6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp); // }} "" // {{ 1125 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1126 1 0 "96075a25_a9b4_48ec_b53a90612b9d42a8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1127 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1128 1 0 "5ed72ec4_1b60_4258_969b44c995450ec1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1129 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1130 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1131 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1132 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetSimulation") { // }} "" // {{{ 1133 1 0 "941f9e19_ca94_4ede_9719205aeb876593" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{ 1134 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ; err.Clear(); // }} "" // {{ 1135 1 0 "c8de89fe_7a53_4c03_bbe8ba85302b57ea" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1136 1 0 "41b0c1a2_60aa_4f16_8901c300e9a3dc14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetSimulation(simulate); // }} "" // {{ 1137 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1138 1 0 "b9ad26f0_da3e_44e9_a29e1fa4b10f92f4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1139 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1140 1 0 "2e7a9d5f_51df_4c49_bb1986da7e14cd48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1141 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1142 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1143 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1144 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetTempParameter") { // }} "" // {{{ 1145 1 0 "99447b6e_9293_483d_bbd7ddee96870904" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1146 1 0 "f55d7581_a005_45e4_9b3d7f7473323e6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("startTimeout"), startTimeout); // }} "" // {{{ 1147 1 0 "7192db12_8543_4c8b_81b98b57ce21118d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("toleranceRange"), toleranceRange); // }} "" // {{{ 1148 1 0 "8f6d922f_f2ae_43c6_8682df15e6b7c07c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("securityRange"), securityRange); // }} "" // {{ 1149 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ; err.Clear(); // }} "" // {{ 1150 1 0 "aecc8a3f_302a_4fd4_85780994769765dc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1151 1 0 "57eb738a_6eb2_4f04_b25bd7f7f64a8179" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange); // }} "" // {{ 1152 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1153 1 0 "8a17da2c_6b74_4513_a05e482acef68552" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1154 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1155 1 0 "90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1156 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1157 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1158 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1159 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetUSBTrace") { // }} "" // {{{ 1160 1 0 "0691ecbd_49b4_4590_91d60e614290ec34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("trace"), intTrace); // }} "" // {{ 1161 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ; err.Clear(); // }} "" // {{ 1162 1 0 "96a3924c_7b8c_441f_b05115a7adf0396f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1163 1 0 "24723a79_741b_46be_830fe654c08d6d1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetUSBTrace(intTrace); // }} "" // {{ 1164 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FE6D15E135D24fd7A06908E89474B650 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1165 1 0 "29acd4b5_13fb_40fe_bc6d971aa6f115a7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1166 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1167 1 0 "cda0d06f_dce0_47ad_bbb419c58aba260e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1168 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1169 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1170 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1171 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShaker") { // }} "" // {{{ 1172 1 0 "503e1c47_5f15_42bd_8eaad1057de68ef6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1173 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ; err.Clear(); // }} "" // {{ 1174 1 0 "18981818_de5f_4fd3_b704a074fd37c9d8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1175 1 0 "7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed); // }} "" // {{ 1176 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1177 1 0 "6fa8ea83_c7bd_4b3e_81768063f8126364" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1178 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1179 1 0 "ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1180 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1181 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1182 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1183 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShakerTimed") { // }} "" // {{{ 1184 1 0 "db6b6c2e_da48_4c64_bdddc80ba5a28921" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1185 1 0 "f6f42906_5ded_4a05_8f9a11fac18f7f10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1186 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ; err.Clear(); // }} "" // {{ 1187 1 0 "84efe41c_f9b0_4304_896c8b308bb07e76" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1188 1 0 "428d423d_1825_472f_a3aa303d028d0659" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime); // }} "" // {{ 1189 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1190 1 0 "367927ae_ba00_4d5a_b9d8f5f9b3d208c3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1191 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1192 1 0 "d73f1476_bf95_4d48_89849f295a9e4d0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1193 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1194 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1195 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1196 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShaker") { // }} "" // {{{ 1197 1 0 "f958f5a5_d1c5_4e9e_9262e708f24940c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1198 1 0 "2ce1189b_e54a_48c0_aafc2932409c0b9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1199 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ; err.Clear(); // }} "" // {{ 1200 1 0 "7e6d8299_fab6_4435_8adf36d59ca04c7a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1201 1 0 "5fe75151_d308_441e_a049e85f45ca3966" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShaker(dispenseMode, shakingSpeed); // }} "" // {{ 1202 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1203 1 0 "64e95a28_a6b6_4e1b_825867f05118aebc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1204 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1205 1 0 "4b0b48f9_3855_4eab_8f22b0902846d750" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1206 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1207 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1208 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1209 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShakerTimed") { // }} "" // {{{ 1210 1 0 "858c7861_9fb0_490e_9646b9eb190706d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1211 1 0 "327bd0c6_60a8_4fd1_9ef81e2a21d904a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1212 1 0 "83a6d58d_c761_484f_871c9c2229a6d3d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1213 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ; err.Clear(); // }} "" // {{ 1214 1 0 "08abdac2_e330_47c9_9b80d99dd0338c3d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1215 1 0 "22e55b69_c018_47f9_8e3ac169c190d2de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); // }} "" // {{ 1216 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_29447729262E4e0f8B347F6640716D96 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1217 1 0 "a26bca7d_b38c_4413_b61d3da3fdfb077b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1218 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1219 1 0 "f539df09_de1d_4fd8_9ac041897fab0333" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1220 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1221 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1222 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1223 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartTempCtrl") { // }} "" // {{{ 1224 1 0 "dc338e01_6b43_4fe3_bda98d2b0a1a65e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1225 1 0 "04239a09_93a5_4f75_80f95d178bdf9cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("temperature"), temperature); // }} "" // {{{ 1226 1 0 "0387745b_87be_4ec6_912b0b4decaa257b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("waitForTempReached"), waitForTempReached); // }} "" // {{ 1227 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ; err.Clear(); // }} "" // {{ 1228 1 0 "0e03f515_b847_4dfd_8aa52f8b5f1135cd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1229 1 0 "4ba75dd5_935f_4f2c_a15605eafa47b808" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached); // }} "" // {{ 1230 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_764F491C76DA445383E5490AB126ADB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1231 1 0 "e7b29c37_b63e_40fe_a3663d4eb8c7dc93" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1232 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1233 1 0 "bfde731d_b581_4488_b4cb7f4873675d7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1234 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1235 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1236 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1237 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopAllShaker") { // }} "" // {{ 1238 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ; err.Clear(); // }} "" // {{ 1239 1 0 "7ca275a0_4aed_4b67_9535646b2074ebaf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1240 1 0 "d112da95_7f27_47a3_9e24bc801bcc9afc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{ 1241 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1242 1 0 "e87b7e6f_2610_44dd_b7d0262ac681e308" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1243 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1244 1 0 "5706daca_363f_417f_9103f7ddd16c1444" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1245 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1246 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1247 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1248 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopShaker") { // }} "" // {{{ 1249 1 0 "1cdead0d_9944_446b_bd59d491b15242b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1250 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ; err.Clear(); // }} "" // {{ 1251 1 0 "d02dc65a_05f9_4938_90df6cee1381d4dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1252 1 0 "75688e3b_5ed1_45d1_a4d8344ca19c3fd3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{ 1253 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1254 1 0 "b5ede424_b7f1_4369_8610d54e626df620" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1255 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1256 1 0 "6ffd1f39_ec63_4f9c_a7687447aff79f80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1257 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1258 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1259 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1260 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopTempCtrl") { // }} "" // {{{ 1261 1 0 "b16ab946_2ba9_4900_bd6f9ede31edf6ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1262 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B5957B02990845739642D8C604B0B582 ; err.Clear(); // }} "" // {{ 1263 1 0 "e22c8ca0_6e3f_454b_8628dd4417a6fd78" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1264 1 0 "3a29dc5b_78cc_4ed1_ab9cd631701715e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber); // }} "" // {{ 1265 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B5957B02990845739642D8C604B0B582 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1266 1 0 "c8c0c20e_b866_451e_9ecd69fdb0b0ed14" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1267 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1268 1 0 "11f3231a_40df_4c14_92585ab8016165e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1269 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1270 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1271 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1272 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_Terminate") { // }} "" // {{ 1273 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ; err.Clear(); // }} "" // {{ 1274 1 0 "e2f732a1_e433_4ab6_b3bdac9a4ca5bd19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1275 1 0 "910932e3_2b76_41cf_9dccecb799f2d649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::Terminate(); // }} "" // {{ 1276 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_919FCF7F89804c398972DAFE2605D286 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1277 1 0 "44edbcbd_1012_457f_848d11750abdfeb2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1278 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1279 1 0 "4edde3c1_4f65_4403_a54985d84f6d80f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1280 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1281 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1282 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1283 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForShaker") { // }} "" // {{{ 1284 1 0 "87872be5_4e84_4b7b_98a3e7147a66f6a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1285 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ; err.Clear(); // }} "" // {{ 1286 1 0 "d5b14e5b_7d51_414e_af4dfb664c89e0c1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1287 1 0 "2eff956e_28cc_4094_8285d5ed00125a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber); // }} "" // {{ 1288 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1289 1 0 "d60c31db_3b59_4498_8c47e4d2612443a4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1290 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1291 1 0 "96b99051_5c80_421c_a02e0bd238da1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1292 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1293 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1294 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1295 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForTempCtrl") { // }} "" // {{{ 1296 1 0 "881e7d69_50e3_4e42_89eafece562ac009" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1297 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ; err.Clear(); // }} "" // {{ 1298 1 0 "ffa29d3e_8248_4266_80661c264964da5f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1299 1 0 "421a52eb_128a_4b6b_8baafb6548b66bd8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber); // }} "" // {{ 1300 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_088C7630997A4749A400740DA66CBA0C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1301 1 0 "8a92c1f7_b614_4c09_b5ada70145cb0a7c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1302 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1303 1 0 "aeb529e0_2eaf_4686_9528342b58318a5d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1304 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1305 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1306 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1307 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1308 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1309 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "CORE96WashEmpty") { // }} "" // {{{ 1310 1 0 "88f95bdd_c2c5_4856_91e5f47f7431bdaf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("refillAfterEmpty"), refillAfterEmpty); // }} "" // {{{ 1311 1 0 "d7a05a26_0b59_478a_a85f308173caf693" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1WashLiquid"), chamber1WashLiquid); // }} "" // {{{ 1312 1 0 "8b1bd108_2b5a_4a2d_ace7b87920eae1b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1LiquidChange"), chamber1LiquidChange); // }} "" // {{{ 1313 1 0 "d651fbf5_a4b8_490b_b869269338ccfcfa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2WashLiquid"), chamber2WashLiquid); // }} "" // {{{ 1314 1 0 "79b1a205_d988_4171_9e1fb28ba362329b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2LiquidChange"), chamber2LiquidChange); // }} "" // {{ 1315 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ; err.Clear(); // }} "" // {{ 1316 1 0 "3fc645b3_f504_4b5e_93481425adf459b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1317 1 0 "123d7b87_745f_4511_a797d08711d13361" "ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}" { variable arrRetValues[]; arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3("123d7b87_745f_4511_a797d08711d13361"); // Head96EmptyWasher } // }} "" // {{ 1318 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EE8804FCDC214a06935DD0F4830020DB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1319 1 0 "ab84bcc8_3da0_446b_84689087cc7a392f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1320 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1321 1 0 "dde0a413_b493_4b17_94990d1d5f2e2b2e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1322 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1323 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1324 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1325 1 0 "1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONFromServer); // }} "" // {{ 1326 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1327 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "end") { // }} "" // {{{ 1328 1 0 "6db67a5a_6aa2_4087_875823acfff0fac4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Good Bye!")); // }} "" // {{ 1329 1 0 "4c7e40d6_02a6_451d_b28230ec71e40ce1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1330 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1331 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1332 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1333 1 0 "6fb90145_24c3_46ba_88b839e0215d0bf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{ 2 "AutoExitBlock" "" STAR_OEM_TOOLKIT::_ExitLibrary(); STAR_OEM_TOOLKIT_PH::_ExitLibrary(); // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=stefa$$valid=0$$time=2022-10-03 21:59$$checksum=ca1df178$$length=082$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~HxC302.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" private function ArrayToString( variable & i_array[], variable & o_str ) void ; private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ; private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ; private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ; private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepId ) void ; function SendTextMessageToServer( variable str ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; private function waitForGUItoContinue( ) variable ; function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 1484 1 0 "c8aa765a_4840_468a_9e928b44fa79d891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{{ 5 "OnAbort" "End" } // }} "" // {{{ 5 "SendTextMessageToServer" "Begin" function SendTextMessageToServer( variable str ) void { // }} "" private object objJSONObject; private variable strJSON; // {{ 5 "SendTextMessageToServer" "InitLocals" // }} "" // {{{ 1452 1 0 "9d5f9d4a_c104_4b47_964b6d97f981a71e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONObject); // }} "" // {{{ 1453 1 0 "d0a04705_1adc_4919_b95168834c89f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("command"), Translate("message")); // }} "" // {{{ 1454 1 0 "7b9a6cd1_3eee_4085_b3f9548e43fc3424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("text"), str); // }} "" // {{{ 1455 1 0 "6a1c53cf_65ea_4f53_aa2e9111890fecf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONObject, strJSON); // }} "" // {{{ 1456 1 0 "bee8c148_b3ea_490b_8d93d8ed5f24939f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONObject); // }} "" // {{{ 1457 1 0 "b965a2fd_f821_4400_b4c777f558ed0772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendTextMessageToServer" "End" } // }} "" // {{{ 5 "waitForGUItoContinue" "Begin" private function waitForGUItoContinue( ) variable { // }} "" private variable loopCounter1; private variable serverResponse; private timer timer1; // {{ 5 "waitForGUItoContinue" "InitLocals" // }} "" // {{ 1465 1 0 "73328607_d06a_4d7d_8a5df64da06a1bde" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" serverResponse = Translate(""); // }} "" // {{{ 1466 1 0 "2342f8b3_4765_4edc_9fb9f46cbb1fd20b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Waiting for server instructions...")); // }} "" // {{{ 1467 1 0 "216e1039_788e_4830_8588933e6c542ba1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Waiting for server instructions...."), Translate("")); // }} "" // {{ 1468 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounter1 = 0; while (1 == 1) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1469 1 0 "5f15547c_3178_4f78_b5fea96f6a1c563b" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.1) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1470 1 0 "cd67277b_4386_4862_8429008a00601693" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 1471 1 0 "6ec592d0_fe02_41a9_8503db5ccf0e5544" "{C1F3C015-47B3-4514-9407-AC2E65043419}" serverResponse = HSLHttp::HttpGET(objHttp, Translate("http://localhost:3221"), Translate("")); // }} "" // {{ 1472 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (serverResponse != "") { // }} "" // {{ 1473 1 0 "b1e2e308_ee78_46d0_8a6832649536045e" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1474 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1475 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 == 300) { // }} "" // {{ 1476 1 0 "19e5c8f7_a1a9_4348_aa41a572942db630" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1477 1 0 "6be46368_bb3e_4ad8_82647d6f52af8c9b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1478 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1479 1 0 "8951a436_faf4_45df_a268dbb7ddb58c29" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.9) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1480 1 0 "52bb524e_27b1_4bbe_afcf26453d9eb66f" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1481 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1482 1 0 "809789b0_bd70_4c1f_b0d808ce120b1d99" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (serverResponse); // }} "" // {{{ 5 "waitForGUItoContinue" "End" } // }} "" // {{{ 5 "SendStepReturnToServer" "Begin" private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer" "InitLocals" // }} "" // {{{ 1424 1 0 "2520bd9f_739d_4111_a27d89f8f73ec39e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 1425 1 0 "aa6010ec_0628_49d5_a87e016b4a4fc7f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 1426 1 0 "a97c5efa_0ce4_4358_9c51c1893f526b9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 1427 1 0 "deceb871_e830_4b14_86e626f745ef083a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 1428 1 0 "00afb5c2_b5db_4458_866a13b6cb332b68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 1429 1 0 "e52bbd02_b31d_4278_a0f45991eab77d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 1430 1 0 "19f99698_3777_4dcf_9fc765c3f221df4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 1431 1 0 "329f8b9b_0798_44f8_9ee6b65ec58b0c44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 1432 1 0 "7728ac0d_8630_4f61_94af076392758ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 1433 1 0 "70d261f2_edc4_49a0_a5a074cd5ab92b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 1434 1 0 "ee0dd62d_582f_4171_b08e37f6106d9b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer" "End" } // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "Begin" private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void { // }} "" private variable n; private variable loopCounter1; private variable strSinglePosition; private variable arrayOfPositions[]; private variable arraySinglePosition[]; private variable labwareID; private variable positionID; // {{ 5 "BuildTempSequenceFromPositions" "InitLocals" { sequence __temp; o_seq = __temp; } // }} "" // {{ 1371 1 0 "d9022e13_e502_4969_a8ee79484e990801" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arrayOfPositions.SetSize(0); // }} "" // {{{ 1372 1 0 "3e178082_8579_435f_a5db4481bb789d9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strPositions, Translate(";"), arrayOfPositions, 0); // }} "" // {{ 1373 1 0 "5d735f26_db1b_4bea_9ee405f4167bb99f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" n=arrayOfPositions.GetSize(); // }} "" // {{{ 1374 1 0 "f497f24b_fd39_417d_8703c0d54662309f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq); // }} "" // {{ 1375 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1376 1 0 "fd645546_0433_46a0_8619026e338529fd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arraySinglePosition.SetSize(0); // }} "" // {{ 1377 1 0 "91aeb0c4_3176_4356_a19a1027bcdb0af3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1); // }} "" // {{{ 1378 1 0 "c2b42369_7829_4c62_b58880fce7867995" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strSinglePosition, Translate(","), arraySinglePosition, 0); // }} "" // {{ 1379 1 0 "016f61c5_fd76_4c74_903df10a03070f7b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" labwareID=arraySinglePosition.GetAt(1-1); // }} "" // {{ 1380 1 0 "886fc872_7c3a_4366_959db6d5f265ed7c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" positionID=arraySinglePosition.GetAt(2-1); // }} "" // {{{ 1381 1 0 "766a54b4_4c5b_4991_9d8ceea62d26b216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq, labwareID, positionID); // }} "" // {{ 1382 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1383 1 0 "0003c6e9_5b43_438d_bc93be342c3c6b55" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq.SetCurrentPosition(1); // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "End" } // }} "" // {{{ 5 "StrTokenize" "Begin" private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 1459 1 0 "500afe4c_98a8_4117_8c279b9994d0b626" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 1460 1 0 "6a0bd918_2fda_4e4c_a680454ce2576168" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 1461 1 0 "f65ed315_68ed_4ec0_ba0b3c217e692b25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 1462 1 0 "9476acee_e5bb_43d1_bbec232ed01bae08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); // Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "Begin" private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void { // }} "" private variable numOfVolumes; private variable numOfChannelsInVariable; private variable n; private variable loopCounter1; private variable arrSize; private variable loopCounter3; private variable strKeyName; // {{ 5 "BuildArrayOfVolumesForChannels" "InitLocals" o_arrayOfVolumes.SetSize( 0); // }} "" // {{ 1345 1 0 "69288f91_eabd_4d15_af5361636ffacbf6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyName = Translate("volumes"); // }} "" // {{ 1346 1 0 "bf4c1108_6751_41ee_8d3d3b1a9418548f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfVolumes.SetSize(0); // }} "" // {{{ 1347 1 0 "a9cfa743_a769_46a3_b8d7e45a67b3d297" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName); // }} "" // {{ 1348 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arrSize > 0) { // }} "" // {{ 1349 1 0 "594bebbb_0d54_4893_b20d783de743dd44" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1350 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < arrSize;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{{ 1351 1 0 "3bfc9004_2595_4917_b4edcdceed06f518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); // }} "" // {{ 1352 1 0 "6be31b23_f55d_4d15_be6abc9ee4bef664" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" Trace("Volume received=", v); // {{ 1354 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1355 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1356 1 0 "4a4891b3_f877_4b14_85196b7e820554b2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1357 1 0 "22c7c768_33c4_4975_909e9586375bfe8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(strKeyName, v); // }} "" // {{ 1358 1 0 "4e01e62a_13a2_408e_9fbfb2300d5996ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 1359 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1360 1 0 "cc565f65_a92a_43ef_9c052b7f5632aca5" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" numOfVolumes=o_arrayOfVolumes.GetSize(); // }} "" // {{{ 1361 1 0 "e49355fb_3fe6_4c8d_930870416e36b708" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numOfChannelsInVariable = StrGetLength(strChannels); // }} "" // {{ 1362 1 0 "804bc477_e950_4a14_af5f667c73cf5176" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1363 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (numOfVolumes < numOfChannelsInVariable) { // }} "" // {{ 1364 1 0 "2e73355c_8b11_4423_b345807cae9d5db8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" n = numOfChannelsInVariable - numOfVolumes; // }} "" // {{ 1365 1 0 "53a650d8_2fc1_4c5b_bd19eda433c2a81a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" v = o_arrayOfVolumes.ElementAt( numOfVolumes -1); // }} "" // {{ 1366 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1367 1 0 "cd047b15_6a02_40f1_adfb116f6bf5d763" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 1368 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1369 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "End" } // }} "" // {{{ 5 "ArrayToString" "Begin" private function ArrayToString( variable & i_array[], variable & o_str ) void { // }} "" private variable arraySize; private variable loopCounter1; // {{ 5 "ArrayToString" "InitLocals" o_str = 0; // }} "" // {{ 1335 1 0 "1a220255_6ba4_40fb_be39a6a2f4e0065f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 1336 1 0 "f821c4ff_f1a2_4ad7_9bd77dd8652567cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str = Translate(""); // }} "" // {{ 1337 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1338 1 0 "afd84a84_8330_46e7_8308e16b5caa05e9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" v=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 1339 1 0 "77436fd3_3c87_4f09_9a89259b15ef5bf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, v); // }} "" // {{ 1340 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 < arraySize) { // }} "" // {{{ 1341 1 0 "d14fd31e_5de8_46f9_bb359f38de9a08ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, Translate(";")); // }} "" // {{ 1342 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1343 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "ArrayToString" "End" } // }} "" // {{{ 5 "JSON_GetFloatValue" "Begin" private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void { // }} "" private variable retVal; // {{ 5 "JSON_GetFloatValue" "InitLocals" o_KeyFloatValue = 0; // }} "" Trace("getfloatvalue"); // {{{ 1386 1 0 "8f2f8625_6c9e_4c47_b4698d29df60004a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" // {{ 1387 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("error getting float value, try with integer"); // {{ 1389 1 0 "5a74df81_6685_4703_8b055144f8d74d45" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1390 1 0 "47bb8c98_9624_40ad_b765abfc6b0d0b49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" Trace("error getting float value, tried with integer"); // {{ 1392 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("wtf ok i guess its zero"); // {{ 1394 1 0 "5b8a3ec6_8ee4_4887_ab7df29fa494cdc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_KeyFloatValue = 0; // }} "" // {{ 1395 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1396 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "JSON_GetFloatValue" "End" } // }} "" // {{{ 5 "SendHHSReturnToServer" "Begin" private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; private variable t_arrayStepReturns[]; private variable loopCounter1; private variable keyName; private variable varType; // {{ 5 "SendHHSReturnToServer" "InitLocals" // }} "" // {{{ 1398 1 0 "6db3f932_ba70_4cf6_9c2a8636580fc754" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 1399 1 0 "3cf8a985_83cc_418e_99293de9d9945d5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("HHS-return")); // }} "" // {{{ 1400 1 0 "705c25bc_6db4_4eb9_b05b33999e110198" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{ 1401 1 0 "5a9efc02_a11a_4c0c_b166e3b28800cc6c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" t_arrayStepReturns.SetSize(0); // }} "" // {{ 1402 1 0 "5aa4f3a8_774f_4f35_ae7fa197ef920048" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn1); // }} "" // {{ 1403 1 0 "00ac351d_bc51_41e5_b300af93d6893fa5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn2); // }} "" // {{ 1404 1 0 "2aaf8702_2d08_48ee_be96815ca77463c9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn3); // }} "" // {{ 1405 1 0 "67fcb56e_9f42_4739_a5ee322f12443a17" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn4); // }} "" // {{ 1406 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < 4;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 1407 1 0 "a23ae2ed_5b02_41a0_a69215d0b80fde4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" keyName = StrConcat2(Translate("step-return"), loopCounter1); // }} "" // {{{ 1408 1 0 "9b92ac94_8c71_4b77_95ac0c691427c4bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" varType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1409 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "s") { // }} "" // {{{ 1410 1 0 "1497ea6a_46ab_4ee8_b7951f24b533e644" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1411 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1412 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "f") { // }} "" // {{{ 1413 1 0 "61772f9e_fea3_4011_bba06b7fe66e8b0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1414 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1415 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "i") { // }} "" // {{{ 1416 1 0 "28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1417 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1418 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1419 1 0 "0a0447b8_96fb_495a_90dfa8f1e2c488ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 1420 1 0 "b2a13d10_b443_4fc0_aa0baa2a23cddafe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 1421 1 0 "0adf40b4_5c73_46d8_8e6042c6dfd32d86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 1422 1 0 "5a5dabeb_e3ed_4730_ab86839e00f75077" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendHHSReturnToServer" "End" } // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "Begin" private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer_EightOutputs" "InitLocals" // }} "" // {{{ 1436 1 0 "a5a7b215_f4cb_4951_82e1faf532cd7222" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 1437 1 0 "9480693e_99ec_4cfd_aa9c8f48e76ee42f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 1438 1 0 "3f068696_35bd_4060_8b291470a817f628" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 1439 1 0 "b68a52fb_e141_4e4c_b5e7bbcbf0c9817f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 1440 1 0 "8ab4a139_9629_43b7_98f13d1058881e4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 1441 1 0 "1417a4bd_aea8_4b36_8a7a05739a789ecf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 1442 1 0 "24b6213e_470e_468a_86dc55b44ff96b95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 1443 1 0 "42403d87_ddb6_4bee_8fc6ad09efb7573a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return5"), stepReturn5); // }} "" // {{{ 1444 1 0 "8493044a_674d_4139_90fa1c7a00050abc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return6"), stepReturn6); // }} "" // {{{ 1445 1 0 "b43cf915_ef0d_4d62_985deae88bcd6c18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return7"), stepReturn7); // }} "" // {{{ 1446 1 0 "584d78fd_87d0_4502_a6d089cfaf888318" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return8"), stepReturn8); // }} "" // {{{ 1447 1 0 "47856892_8af4_409f_88723a44ebe61362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 1448 1 0 "e5054174_6f3f_4356_8dc30683be948abe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 1449 1 0 "e21196c3_6b8f_47e5_a2888114650b2ec8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 1450 1 0 "3fec97a3_9f33_4fef_afe5355188bf56d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=stefa$$valid=0$$time=2022-10-03 21:59$$checksum=c35797b0$$length=084$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~HxC302.tmp ================================================ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~HxCAAD.hsl ================================================ // ====================================================================== // This is a part of the HSLHamHeaterShaker Library. // Copyright (C) by HAMILTON Bonaduz AG, CH-7402 Bonaduz. // All rights reserved. // ====================================================================== // // Modification History // // 2008-09-10 tbenz > first creation // // ********************************************************************** // This library version supports following hardware: // - HAM Heater Shaker (HHS) ML_STAR interface // - HAM Heater Shaker (HHS) USB interface // ********************************************************************** #ifndef __HSLHeaterShakerLib_hsl__ #define __HSLHeaterShakerLib_hsl__ 1 // Interface to HSLHamHeaterShaker library #ifndef HSL_RUNTIME namespace HSLHamHeaterShaker { function CreateStarDevice( device& starDevice, // in: ML_STAR device variable usedNode, // in: node ID (1 or 2) variable& deviceNumber) {} // out: generated deviceNumber function CreateUsbDevice( variable usedNode, // in: node ID (1..8) variable& deviceNumber) {} // out: generated deviceNumber function Terminate() void {} // Close the communication function StartShaker( variable deviceNumber, // in: assigned deviceNumber variable shakingSpeed) {} // in: RPM (30..2500) function StopShaker( variable deviceNumber) {} // in: assigned deviceNumber function StartShakerTimed( variable deviceNumber, // in: assigned deviceNumber variable shakingSpeed, // in RPM (30..2500) variable shakingTime) {} // in: time in seconds (1.. 30000) function WaitForShaker( variable deviceNumber) {} // in: assigned deviceNumber function StartAllShaker( variable shakingSpeed) {} // in RPM (30..2500) function StartAllShakerTimed( variable shakingSpeed, // in: RPM (30..2500) variable shakingTime) {} // in: time in seconds (1.. 30000) function StopAllShaker( ) {} function SetShakerParameter( variable deviceNumber, // in: assigned deviceNumber variable shakingDirection, // in: shaking dirction left / right (0 / 1) variable shakingAccRamp) void {} // in: Defines the acceleration ramp (rpm) (integer). function GetShakerParameter( variable deviceNumber, // in: assigned deviceNumber variable& shakingDirection, // out: shaking dirction left / right (0 / 1) variable& shakingAccRamp) void {} // out: Defines the acceleration ramp (rpm) (integer). function GetShakerSpeed( variable deviceNumber, // in: assigned deviceNumber variable& shakingSpeed) {} // out: current RPM function StartTempCtrl( variable deviceNumber, // in: assigned deviceNumber variable temperature, // in: Temperature in 1/10C. Range 0.0 .. 100.0 (not lower than ambient) variable waitForTempReached) {} // in: no wait / wait (0 / 1) function StopTempCtrl( variable deviceNumber) {} // in: assigned deviceNumber function WaitForTempCtrl( variable deviceNumber) {} // in: assigned deviceNumber function GetTemperature( variable deviceNumber, // in: assigned deviceNumber variable& temperature) {} // out: current temperature in 1/10C function GetTemperatureState( variable deviceNumber, // in: assigned deviceNumber variable& temperatureState) {} // out: temperature state 0..3 // 0 = No error, temperature was always in the defined range. // 1 = Temperature was or is out of temperature range. // 2 = Temperature was out of security range. Temperature controlling is switched off now. // 3 = Temperature time out during start of temperature controlling function SetTempParameter( variable deviceNumber, // in: assigned deviceNumber variable startTimeout, // in: Time before start temperature controlling (1..2500) variable toleranceRange, // in: Temperature tolerance in 1/10C. (0.0 .. 100.0), def: 2.0 variable securityRange) void {} // in: Temperature security in 1/10C. (0.0 .. 100.0), def: 6.0 function GetTempParameter( variable deviceNumber, // in: assigned deviceNumber variable& startTimeout, // out: Time before start temperature controlling. variable& toleranceRange, // out: Temperature tolerance in 1/10C. variable& securityRange) void {} // out: Temperature security in 1/10C. function SetPlateLock( variable deviceNumber, // in: assigned deviceNumber variable plateLock) {} // in: unlock / lock (0 / 1) function GetFirmwareVersion( variable deviceNumber, // in: assigned deviceNumber variable& firmwareVersion) void {} // out: Firmware version format: "1.0P 1999-03-10" function GetSerialNumber( variable deviceNumber, // in: assigned deviceNumber variable& serialNumber) void {} // out: Serial number format: "####" 4 digit number function BeginMonitoring( variable deviceNumber, // in: assigned deviceNumber variable shakingToleranceRange, // in: shaking tolerance variable sampleInterval, // in: Interval in sec. for check RPM and temperature variable action) void {} // in: Continue / Abort (0 / 1) // Note: Abort will only called on an error after temperature controlling is activated () // An abort will end only the current heater/shaker. // Note: heaterMin and heaterMax uses the parameter toleranceRange of SetTempParameter() function EndMonitoring( variable deviceNumber, // in: assigned deviceNumber variable& monitorResult) {} // out: Monitored result //-1 = monitoring has not started or is not initialized // 0 = all heating and shaking values were within specification // 1 = heating out of range // 2 = shaking out of range // 3 = heating and shaking out of range function SendFirmwareCommand( variable deviceNumber, // in: assigned deviceNumber variable command, // in: Firmware command e.g. "T1RF" variable parameter) {} // in: Firmware parameter dependent of command function SetSimulation( variable simulate) void {} // in: Run / Simulate (0 / 1) function SetUSBTrace( variable trace) void {} // in: No trace / trace (0 / 1) Set communication tracing for send and receive message from USB } // end of namespace HSLHamHeaterShaker #endif // ========================================================================== // Implementation of HSLHamHeaterShaker Library // ========================================================================== #ifdef HSL_RUNTIME #include "HSLHamHeaterShakerLib.hs_" #endif #endif /* end of #ifndef __HSLHamHeaterShakerLib_hsl__ */ // $$author=Stefan.Golas$$valid=0$$time=2025-07-28 14:13$$checksum=e7e9eb00$$length=089$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~HxCAAD.tmp ================================================ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~HxE052.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "Hamilton pH Module\\Hamilton pH Module.hsl" #include "HSLErrLib.hsl" #include "Hamilton pH Module\\Hamilton pH Station Washer Module.hsl" #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" #include "HSLPTLLib.hsl" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace STAR_OEM_TOOLKIT_PH { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function pH_Calibrate( variable i_intModuleID, variable i_intCalibrationLevel, variable i_fltCalibrationValue, variable i_fltCalibrationTemperature, variable i_strProbePattern, variable & o_stepReturn ) void ; function pH_Calibrate_Dynamically( variable i_intModuleID, variable i_intCalibrationLevel, variable i_intVariance, variable i_intTimeout, variable i_fltCalibrationValue, variable i_fltCalibrationTemperature, variable i_strProbePattern, variable & o_stepReturn ) void ; function pH_Dryer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void ; function pH_Dryer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void ; function pH_Dryer_StartDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Dryer_StopDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Dryer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Enable_Extended_Log( variable & o_stepReturn ) void ; function pH_Get_Last_Error( variable i_intModuleID, variable & o_strLastError, variable & o_stepReturn ) void ; function pH_Initialize( variable i_intComport, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void ; function pH_Measure( variable i_intModuleID, variable i_fltTemperature, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void ; function pH_Measure_Dynamically( variable i_intModuleID, variable i_fltTemperature, variable i_fltPrecision, variable i_intTimeout, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void ; function pH_Request_Battery_Data( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intChargeCounter, variable & o_intBatteryCondition, variable & o_intActualCharge, variable & o_stepReturn ) void ; function pH_Request_Calibration_Values( variable i_intModuleID, variable i_intProbeNumber, variable & o_fltpHLowValue, variable & o_fltpHLowVoltage, variable & o_fltpHHighValue, variable & o_fltpHHighVoltage, variable & o_fltCalibrationTemperature, variable & o_fltCalibrationOffset, variable & o_fltCalibrationSlope, variable & o_intCalibrationSlopeRation, variable & o_stepReturn ) void ; function pH_Request_Probe_Data( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intMeasurementCounter_Probe_1, variable & o_intMeasurementCounter_Probe_2, variable & o_intMeasurementCounter_Probe_3, variable & o_intMeasurementCounter_Probe_4, variable & o_stepReturn ) void ; function pH_Request_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable & o_intPartNumber, variable & o_intRevision, variable & o_intSerialNumber, variable & o_stepReturn ) void ; function pH_Request_Voltage_Data( variable i_intModuleID, variable i_intSelector, variable & o_varVoltageData, variable & o_stepReturn ) void ; function pH_Set_Battery_Replacement_Date( variable i_intModuleID, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void ; function pH_Set_Charge_Parameters( variable i_intModuleID, variable i_blnCharge, variable i_blnAutoCharge, variable i_intChargeLevel, variable & o_stepReturn ) void ; function pH_Set_Probe_Replacement_Date( variable i_intModuleID, variable i_intProbe, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void ; function pH_Set_Shutdown( variable i_intModuleID, variable i_intMode, variable & o_stepReturn ) void ; function pH_Set_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable i_intPartNumber, variable i_intRevision, variable i_intSerialNumber, variable & o_stepReturn ) void ; function pH_Set_Trace_Level( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void ; function pH_Sleep( variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Template( variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Terminate( variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Wakeup( variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Washer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable o_intModuleID, variable & o_stepReturn ) void ; function pH_Washer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void ; function pH_Washer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void ; function pH_Washer_Wash( device & ML_STAR, variable i_intModuleID, variable i_intCycleNumber, variable & o_stepReturn ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" PTL::SetWashingStateDefault("RinseTime1", 5); PTL::SetWashingStateDefault("SoakTime1", 5); PTL::SetWashingStateDefault("FlowRate1", 11); PTL::SetWashingStateDefault("RinseTime2", 0); PTL::SetWashingStateDefault("SoakTime2", 0); PTL::SetWashingStateDefault("FlowRate2", 11); PTL::SetWashingStateDefault("DrainingTime", 10); PTL::SetWashingStateDefault("StartWashLiquid", 0); PTL::SetLoadingStateDefault("RecoveryOptionContinue", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionExclude", hslTrue); PTL::SetLoadingStateDefault("RecoveryOptionDefault", 0); PTL::SetLoadingStateDefault("KitLotCheckEnabled", hslFalse); // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" // }} "" } // {{{ 5 "pH_Measure" "Begin" function pH_Measure( variable i_intModuleID, variable i_fltTemperature, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Measure" "InitLocals" o_fltpHProbe_1 = 0; o_fltpHProbe_2 = 0; o_fltpHProbe_3 = 0; o_fltpHProbe_4 = 0; o_stepReturn = 0; // }} "" // {{ 61 1 0 "80d90406_e318_4f91_9ef3b6f12b798351" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2E2474F7607B4feb8948B25BBE3B49F3 ; err.Clear(); // }} "" // {{{ 62 1 0 "2394bca1_88c0_4399_ab04a338af9f5010" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::Measure(i_intModuleID, i_fltTemperature, i_strProbePattern, o_fltpHProbe_1, o_fltpHProbe_2, o_fltpHProbe_3, o_fltpHProbe_4); // }} "" // {{ 63 1 0 "80d90406_e318_4f91_9ef3b6f12b798351" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2E2474F7607B4feb8948B25BBE3B49F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 64 1 0 "d771a760_6814_4866_a12a03881c971346" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 65 1 0 "80d90406_e318_4f91_9ef3b6f12b798351" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Measure" "End" } // }} "" // {{{ 5 "pH_Calibrate" "Begin" function pH_Calibrate( variable i_intModuleID, variable i_intCalibrationLevel, variable i_fltCalibrationValue, variable i_fltCalibrationTemperature, variable i_strProbePattern, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Calibrate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 1 1 0 "03c80eb0_3f18_420c_96086b655439183a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ADDE389AF4C7414193E7475BFBC151C7 ; err.Clear(); // }} "" // {{{ 2 1 0 "9742609f_32c7_419d_8ec016c662c584c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::Calibrate(i_intModuleID, i_intCalibrationLevel, i_fltCalibrationValue, i_fltCalibrationTemperature, i_strProbePattern); // }} "" // {{ 3 1 0 "03c80eb0_3f18_420c_96086b655439183a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ADDE389AF4C7414193E7475BFBC151C7 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 4 1 0 "8904566e_857b_47da_868f8d8e8444f2bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 5 1 0 "03c80eb0_3f18_420c_96086b655439183a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Calibrate" "End" } // }} "" // {{{ 5 "pH_Template" "Begin" function pH_Template( variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Template" "InitLocals" o_stepReturn = 0; // }} "" // {{ 145 1 0 "dc3e048a_9bb1_4fcc_99ff096bd8ece583" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EBDA9B022DA24dd7955D30E2549FDE5B ; err.Clear(); // }} "" // {{ 146 1 0 "dc3e048a_9bb1_4fcc_99ff096bd8ece583" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EBDA9B022DA24dd7955D30E2549FDE5B : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 147 1 0 "a89bc761_6592_4106_a0acdd14e73bc5d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 148 1 0 "dc3e048a_9bb1_4fcc_99ff096bd8ece583" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Template" "End" } // }} "" // {{{ 5 "pH_Calibrate_Dynamically" "Begin" function pH_Calibrate_Dynamically( variable i_intModuleID, variable i_intCalibrationLevel, variable i_intVariance, variable i_intTimeout, variable i_fltCalibrationValue, variable i_fltCalibrationTemperature, variable i_strProbePattern, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Calibrate_Dynamically" "InitLocals" o_stepReturn = 0; // }} "" // {{ 7 1 0 "1464aeb3_96b1_4ec4_ab8008b4ad8e5c58" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_94CD08297F814239B0B11419D328505E ; err.Clear(); // }} "" // {{{ 8 1 0 "5f0f28e4_2d10_486d_a5f025fe43a57dfd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::CalibrateDynamically(i_intModuleID, i_intCalibrationLevel, i_intVariance, i_intTimeout, i_fltCalibrationValue, i_fltCalibrationTemperature, i_strProbePattern); // }} "" // {{ 9 1 0 "1464aeb3_96b1_4ec4_ab8008b4ad8e5c58" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_94CD08297F814239B0B11419D328505E : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 10 1 0 "276c7958_53d6_44c9_bdc01f6b0631af18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 11 1 0 "1464aeb3_96b1_4ec4_ab8008b4ad8e5c58" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Calibrate_Dynamically" "End" } // }} "" // {{{ 5 "pH_Enable_Extended_Log" "Begin" function pH_Enable_Extended_Log( variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Enable_Extended_Log" "InitLocals" o_stepReturn = 0; // }} "" // {{ 43 1 0 "f3a44791_8d5d_43fd_90d52cf307b0d397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_6213D20124C149648FFCCD6E66E53566 ; err.Clear(); // }} "" // {{{ 44 1 0 "cfadb79c_ec52_4a4c_8c613ef78f0d979e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Module::EnableExtendedLog(); // }} "" // {{ 45 1 0 "f3a44791_8d5d_43fd_90d52cf307b0d397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_6213D20124C149648FFCCD6E66E53566 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 46 1 0 "352e0c88_c061_4d35_a4aeefb9fd441f38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 47 1 0 "f3a44791_8d5d_43fd_90d52cf307b0d397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Enable_Extended_Log" "End" } // }} "" // {{{ 5 "pH_Get_Last_Error" "Begin" function pH_Get_Last_Error( variable i_intModuleID, variable & o_strLastError, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Get_Last_Error" "InitLocals" o_strLastError = 0; o_stepReturn = 0; // }} "" // {{ 49 1 0 "49163b05_332f_4bd8_b1a0875b42af9888" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_09FCEB2F0AAA4c5888E7D970B9EB0906 ; err.Clear(); // }} "" // {{{ 50 1 0 "1bbf5668_7da2_4593_a954eb5c20baf705" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::GetLastError(i_intModuleID, o_strLastError); // }} "" // {{ 51 1 0 "49163b05_332f_4bd8_b1a0875b42af9888" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_09FCEB2F0AAA4c5888E7D970B9EB0906 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 52 1 0 "1340b7b5_ecea_4308_8a8ee7d11c70edc2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 53 1 0 "49163b05_332f_4bd8_b1a0875b42af9888" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Get_Last_Error" "End" } // }} "" // {{{ 5 "pH_Initialize" "Begin" function pH_Initialize( variable i_intComport, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Initialize" "InitLocals" o_intModuleID = 0; o_stepReturn = 0; // }} "" // {{ 55 1 0 "b8217b02_6fd3_4298_892d2568d77c74e0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_970E55A20F9F4e42B517C5847AEB8E38 ; err.Clear(); // }} "" // {{{ 56 1 0 "297fb019_93d9_4b46_a56c3a32731a402d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::Initialize(i_intComport, i_blnSimulationMode, o_intModuleID); // }} "" // {{ 57 1 0 "b8217b02_6fd3_4298_892d2568d77c74e0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_970E55A20F9F4e42B517C5847AEB8E38 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 58 1 0 "911745ea_61cd_4f58_b8e0704906ebf222" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 59 1 0 "b8217b02_6fd3_4298_892d2568d77c74e0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Initialize" "End" } // }} "" // {{{ 5 "pH_Measure_Dynamically" "Begin" function pH_Measure_Dynamically( variable i_intModuleID, variable i_fltTemperature, variable i_fltPrecision, variable i_intTimeout, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Measure_Dynamically" "InitLocals" o_fltpHProbe_1 = 0; o_fltpHProbe_2 = 0; o_fltpHProbe_3 = 0; o_fltpHProbe_4 = 0; o_stepReturn = 0; // }} "" // {{ 67 1 0 "1fc3b06c_8e97_43c2_8dfc804da44c34e7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_AA203E903AF848e0B0529507465A94E1 ; err.Clear(); // }} "" // {{{ 68 1 0 "b4fb2269_5bd3_4f6c_8660501f53441522" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::MeasureDynamically(i_intModuleID, i_fltTemperature, i_fltPrecision, i_intTimeout, i_strProbePattern, o_fltpHProbe_1, o_fltpHProbe_2, o_fltpHProbe_3, o_fltpHProbe_4); // }} "" // {{ 69 1 0 "1fc3b06c_8e97_43c2_8dfc804da44c34e7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_AA203E903AF848e0B0529507465A94E1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 70 1 0 "b05cdfa7_6391_4ff4_81ed18ac5f6a52e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 71 1 0 "1fc3b06c_8e97_43c2_8dfc804da44c34e7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Measure_Dynamically" "End" } // }} "" // {{{ 5 "pH_Request_Battery_Data" "Begin" function pH_Request_Battery_Data( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intChargeCounter, variable & o_intBatteryCondition, variable & o_intActualCharge, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Request_Battery_Data" "InitLocals" o_strReplacementDate = 0; o_intChargeCounter = 0; o_intBatteryCondition = 0; o_intActualCharge = 0; o_stepReturn = 0; // }} "" // {{ 73 1 0 "847b4f5f_d886_41dc_9c81ac903c97a162" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_996D8DE608A04eacBD637370A8B07B64 ; err.Clear(); // }} "" // {{{ 74 1 0 "da6aa4ae_3fb0_4dcb_a2a72e6dbb23e4e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::RequestBatteryData(i_intModuleID, o_strReplacementDate, o_intChargeCounter, o_intBatteryCondition, o_intActualCharge); // }} "" // {{ 75 1 0 "847b4f5f_d886_41dc_9c81ac903c97a162" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_996D8DE608A04eacBD637370A8B07B64 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 76 1 0 "374fab67_3d2c_479b_824c5098139051de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 77 1 0 "847b4f5f_d886_41dc_9c81ac903c97a162" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Request_Battery_Data" "End" } // }} "" // {{{ 5 "pH_Request_Calibration_Values" "Begin" function pH_Request_Calibration_Values( variable i_intModuleID, variable i_intProbeNumber, variable & o_fltpHLowValue, variable & o_fltpHLowVoltage, variable & o_fltpHHighValue, variable & o_fltpHHighVoltage, variable & o_fltCalibrationTemperature, variable & o_fltCalibrationOffset, variable & o_fltCalibrationSlope, variable & o_intCalibrationSlopeRation, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Request_Calibration_Values" "InitLocals" o_fltpHLowValue = 0; o_fltpHLowVoltage = 0; o_fltpHHighValue = 0; o_fltpHHighVoltage = 0; o_fltCalibrationTemperature = 0; o_fltCalibrationOffset = 0; o_fltCalibrationSlope = 0; o_intCalibrationSlopeRation = 0; o_stepReturn = 0; // }} "" // {{ 79 1 0 "094d126e_7f40_4ffb_9e7c8e9df3ccc571" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_A458A465FAAE4354AE920AE0DDDD5DCA ; err.Clear(); // }} "" // {{{ 80 1 0 "be826faa_b99a_4b0d_8bcfd9b9e6f58c1c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::RequestCalibrationValues(i_intModuleID, i_intProbeNumber, o_fltpHLowValue, o_fltpHLowVoltage, o_fltpHHighValue, o_fltpHHighVoltage, o_fltCalibrationTemperature, o_fltCalibrationOffset, o_fltCalibrationSlope, o_intCalibrationSlopeRation); // }} "" // {{ 81 1 0 "094d126e_7f40_4ffb_9e7c8e9df3ccc571" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_A458A465FAAE4354AE920AE0DDDD5DCA : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 82 1 0 "3beb4db8_474e_4c8b_8c2a3a46b738bdbe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 83 1 0 "094d126e_7f40_4ffb_9e7c8e9df3ccc571" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Request_Calibration_Values" "End" } // }} "" // {{{ 5 "pH_Request_Probe_Data" "Begin" function pH_Request_Probe_Data( variable i_intModuleID, variable & o_strReplacementDate, variable & o_intMeasurementCounter_Probe_1, variable & o_intMeasurementCounter_Probe_2, variable & o_intMeasurementCounter_Probe_3, variable & o_intMeasurementCounter_Probe_4, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Request_Probe_Data" "InitLocals" o_strReplacementDate = 0; o_intMeasurementCounter_Probe_1 = 0; o_intMeasurementCounter_Probe_2 = 0; o_intMeasurementCounter_Probe_3 = 0; o_intMeasurementCounter_Probe_4 = 0; o_stepReturn = 0; // }} "" // {{ 85 1 0 "a792a4ba_ffaa_496e_a9e84924e8d48769" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_A2F80039318F4807A9355EEE8F65F09D ; err.Clear(); // }} "" // {{{ 86 1 0 "39f96463_bf0a_478e_99d106ede0c66ca8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::RequestProbeData(i_intModuleID, o_strReplacementDate, o_intMeasurementCounter_Probe_1, o_intMeasurementCounter_Probe_2, o_intMeasurementCounter_Probe_3, o_intMeasurementCounter_Probe_4); // }} "" // {{ 87 1 0 "a792a4ba_ffaa_496e_a9e84924e8d48769" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_A2F80039318F4807A9355EEE8F65F09D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 88 1 0 "c289098d_bcc1_49b8_acdb3d5a56078d64" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 89 1 0 "a792a4ba_ffaa_496e_a9e84924e8d48769" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Request_Probe_Data" "End" } // }} "" // {{{ 5 "pH_Request_Technical_Data" "Begin" function pH_Request_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable & o_intPartNumber, variable & o_intRevision, variable & o_intSerialNumber, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Request_Technical_Data" "InitLocals" o_intPartNumber = 0; o_intRevision = 0; o_intSerialNumber = 0; o_stepReturn = 0; // }} "" // {{ 91 1 0 "ef7e5b04_2a8d_43c7_a579daaa255b35fc" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_903977FAFD2C4e8bB89D056988CC3EF4 ; err.Clear(); // }} "" // {{{ 92 1 0 "7b65b46f_5b72_4640_9861bacd4ace5643" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::RequestTechnicalData(i_intModuleID, i_intHardwareNumber, o_intPartNumber, o_intRevision, o_intSerialNumber); // }} "" // {{ 93 1 0 "ef7e5b04_2a8d_43c7_a579daaa255b35fc" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_903977FAFD2C4e8bB89D056988CC3EF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 94 1 0 "0381375a_eba4_4614_93c926558c2d7558" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 95 1 0 "ef7e5b04_2a8d_43c7_a579daaa255b35fc" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Request_Technical_Data" "End" } // }} "" // {{{ 5 "pH_Request_Voltage_Data" "Begin" function pH_Request_Voltage_Data( variable i_intModuleID, variable i_intSelector, variable & o_varVoltageData, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Request_Voltage_Data" "InitLocals" o_varVoltageData = 0; o_stepReturn = 0; // }} "" // {{ 97 1 0 "4db83f8d_771a_4c91_979c072c89b28ed1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_44952D3849BE4a219EFD38455D886E56 ; err.Clear(); // }} "" // {{{ 98 1 0 "4a76ad62_352e_40ca_81088288e34cdeee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Module::RequestVoltageData(i_intModuleID, i_intSelector, o_varVoltageData); // }} "" // {{ 99 1 0 "4db83f8d_771a_4c91_979c072c89b28ed1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_44952D3849BE4a219EFD38455D886E56 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 100 1 0 "043b5397_9bb9_4522_978d64f42943ee9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 101 1 0 "4db83f8d_771a_4c91_979c072c89b28ed1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Request_Voltage_Data" "End" } // }} "" // {{{ 5 "pH_Set_Battery_Replacement_Date" "Begin" function pH_Set_Battery_Replacement_Date( variable i_intModuleID, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Set_Battery_Replacement_Date" "InitLocals" o_stepReturn = 0; // }} "" // {{ 103 1 0 "28fa18e0_d7a7_4d5b_bce1e78a6bfdac57" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C13705D0B70B4e8eAA80912053CAC1F1 ; err.Clear(); // }} "" // {{{ 104 1 0 "b9ab604b_ca72_4ee2_b99c1a7872da4624" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::SetBatteryReplacementDate(i_intModuleID, i_intDay, i_intMonth, i_intYear); // }} "" // {{ 105 1 0 "28fa18e0_d7a7_4d5b_bce1e78a6bfdac57" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C13705D0B70B4e8eAA80912053CAC1F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 106 1 0 "bbb0d55f_6f61_4bd2_9477cf3936b9472e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 107 1 0 "28fa18e0_d7a7_4d5b_bce1e78a6bfdac57" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Set_Battery_Replacement_Date" "End" } // }} "" // {{{ 5 "pH_Set_Charge_Parameters" "Begin" function pH_Set_Charge_Parameters( variable i_intModuleID, variable i_blnCharge, variable i_blnAutoCharge, variable i_intChargeLevel, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Set_Charge_Parameters" "InitLocals" o_stepReturn = 0; // }} "" // {{ 109 1 0 "046ad941_806a_4ac7_b2f4ca60ae77c950" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_4A84194D248D4b0088B93676813BEE2D ; err.Clear(); // }} "" // {{{ 110 1 0 "c35f1bf8_8cea_4986_96ba8ef0097524c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::SetChargeParameters(i_intModuleID, i_blnCharge, i_blnAutoCharge, i_intChargeLevel); // }} "" // {{ 111 1 0 "046ad941_806a_4ac7_b2f4ca60ae77c950" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_4A84194D248D4b0088B93676813BEE2D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 112 1 0 "ed302be8_6fd1_4215_80f039adbe780f7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 113 1 0 "046ad941_806a_4ac7_b2f4ca60ae77c950" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Set_Charge_Parameters" "End" } // }} "" // {{{ 5 "pH_Set_Probe_Replacement_Date" "Begin" function pH_Set_Probe_Replacement_Date( variable i_intModuleID, variable i_intProbe, variable i_intYear, variable i_intMonth, variable i_intDay, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Set_Probe_Replacement_Date" "InitLocals" o_stepReturn = 0; // }} "" // {{ 115 1 0 "048020e2_7cb7_4b0e_9d7951ebced9d9ca" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_244E236DDAAF4536B249F6D8792A60A2 ; err.Clear(); // }} "" // {{{ 116 1 0 "d9b9ef0e_6c6d_4272_97b55d209307f7e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::SetProbeReplacementDate(i_intModuleID, i_intProbe, i_intYear, i_intMonth, i_intDay); // }} "" // {{ 117 1 0 "048020e2_7cb7_4b0e_9d7951ebced9d9ca" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_244E236DDAAF4536B249F6D8792A60A2 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 118 1 0 "4ebc6879_cd2b_448a_b753ab26b9645392" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 119 1 0 "048020e2_7cb7_4b0e_9d7951ebced9d9ca" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Set_Probe_Replacement_Date" "End" } // }} "" // {{{ 5 "pH_Set_Shutdown" "Begin" function pH_Set_Shutdown( variable i_intModuleID, variable i_intMode, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Set_Shutdown" "InitLocals" o_stepReturn = 0; // }} "" // {{ 121 1 0 "9a1900c4_4658_4aa6_8f04356997560654" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_7907B9BE9B2647d09FEC0DD2979D5B14 ; err.Clear(); // }} "" // {{{ 122 1 0 "3b63fd46_6389_405c_8940455e9f127468" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::SetShutdown(i_intModuleID, i_intMode); // }} "" // {{ 123 1 0 "9a1900c4_4658_4aa6_8f04356997560654" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_7907B9BE9B2647d09FEC0DD2979D5B14 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 124 1 0 "804cd242_3933_4e99_a96c4367bbe3f9ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 125 1 0 "9a1900c4_4658_4aa6_8f04356997560654" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Set_Shutdown" "End" } // }} "" // {{{ 5 "pH_Set_Technical_Data" "Begin" function pH_Set_Technical_Data( variable i_intModuleID, variable i_intHardwareNumber, variable i_intPartNumber, variable i_intRevision, variable i_intSerialNumber, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Set_Technical_Data" "InitLocals" o_stepReturn = 0; // }} "" // {{ 127 1 0 "c02ce5b6_c9e6_47bf_95caba6446142317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_007BB8AFAE534922B6C5EA899698EA91 ; err.Clear(); // }} "" // {{{ 128 1 0 "8dd87239_734f_4123_90ead0ba65f0bbbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::SetTechnicalData(i_intModuleID, i_intHardwareNumber, i_intPartNumber, i_intRevision, i_intSerialNumber); // }} "" // {{ 129 1 0 "c02ce5b6_c9e6_47bf_95caba6446142317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_007BB8AFAE534922B6C5EA899698EA91 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 130 1 0 "ebf84842_e475_488c_9862aa5015f5fec3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 131 1 0 "c02ce5b6_c9e6_47bf_95caba6446142317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Set_Technical_Data" "End" } // }} "" // {{{ 5 "pH_Set_Trace_Level" "Begin" function pH_Set_Trace_Level( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Set_Trace_Level" "InitLocals" o_stepReturn = 0; // }} "" // {{ 133 1 0 "de8cbad8_49c8_46e7_a0700ca21c045a6c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E054D9949EA7480786FBA86809E1466A ; err.Clear(); // }} "" // {{{ 134 1 0 "6047012d_fb0a_4b7e_8aaf873bfe7845f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::SetTraceLevel(i_intModuleID, i_intTraceLevel); // }} "" // {{ 135 1 0 "de8cbad8_49c8_46e7_a0700ca21c045a6c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E054D9949EA7480786FBA86809E1466A : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 136 1 0 "555d191a_8248_46cf_8ea20adfafc8467f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 137 1 0 "de8cbad8_49c8_46e7_a0700ca21c045a6c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Set_Trace_Level" "End" } // }} "" // {{{ 5 "pH_Sleep" "Begin" function pH_Sleep( variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Sleep" "InitLocals" o_stepReturn = 0; // }} "" // {{ 139 1 0 "a89f0ae6_b4cb_4656_a2ccf7c867144e25" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_76094A1A6DE5412d86AB364ECCABC11C ; err.Clear(); // }} "" // {{{ 140 1 0 "2a282561_49e7_4e38_9a879c795b444f19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::Sleep(i_intModuleID); // }} "" // {{ 141 1 0 "a89f0ae6_b4cb_4656_a2ccf7c867144e25" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_76094A1A6DE5412d86AB364ECCABC11C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 142 1 0 "e0169354_be6f_4f1f_8bdafe388a9c4771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 143 1 0 "a89f0ae6_b4cb_4656_a2ccf7c867144e25" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Sleep" "End" } // }} "" // {{{ 5 "pH_Terminate" "Begin" function pH_Terminate( variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Terminate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 150 1 0 "668de1be_76f5_4b4b_9bdce72e242c1da9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2159C97E67DC41d2931B29ED5B108588 ; err.Clear(); // }} "" // {{{ 151 1 0 "5eafa92d_a6f8_43b4_85d53439a46b7150" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::Terminate(i_intModuleID); // }} "" // {{ 152 1 0 "668de1be_76f5_4b4b_9bdce72e242c1da9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2159C97E67DC41d2931B29ED5B108588 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 153 1 0 "c747eb9a_16b7_4375_a0b8c1fa3905f4e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 154 1 0 "668de1be_76f5_4b4b_9bdce72e242c1da9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Terminate" "End" } // }} "" // {{{ 5 "pH_Wakeup" "Begin" function pH_Wakeup( variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Wakeup" "InitLocals" o_stepReturn = 0; // }} "" // {{ 156 1 0 "a07b04fa_c851_41e7_b5a0a2399e165b7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_AC33764C04E24aa192975F20CE5661F3 ; err.Clear(); // }} "" // {{{ 157 1 0 "b874aa08_e28d_448b_bcb942611cb0081e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::WakeUp(i_intModuleID); // }} "" // {{ 158 1 0 "a07b04fa_c851_41e7_b5a0a2399e165b7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_AC33764C04E24aa192975F20CE5661F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 159 1 0 "0bb81b5c_7196_46bd_a008386d79a49a7b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 160 1 0 "a07b04fa_c851_41e7_b5a0a2399e165b7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Wakeup" "End" } // }} "" // {{{ 5 "pH_Washer_Initialize" "Begin" function pH_Washer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable o_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Washer_Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 162 1 0 "10f9829c_87f4_46c5_9b033ca5b5c71300" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_7FD13D87F8D74230A78B98C5B83581AE ; err.Clear(); // }} "" // {{{ 163 1 0 "73832845_cea9_4136_b893d93437a02f00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Washer_Module::Initialize(ML_STAR, i_intComport, i_strModuleName, i_blnSimulationMode, o_intModuleID); // }} "" // {{ 164 1 0 "10f9829c_87f4_46c5_9b033ca5b5c71300" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_7FD13D87F8D74230A78B98C5B83581AE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 165 1 0 "dba61f0e_40e0_4580_a0521efc45217200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 166 1 0 "10f9829c_87f4_46c5_9b033ca5b5c71300" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Washer_Initialize" "End" } // }} "" // {{{ 5 "pH_Washer_Set_Trace" "Begin" function pH_Washer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Washer_Set_Trace" "InitLocals" o_stepReturn = 0; // }} "" // {{ 168 1 0 "96553ed4_7e70_4640_9f84ae4898d745b6" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B6EDA3032F05464e9D3AC6C60F6B38DD ; err.Clear(); // }} "" // {{{ 169 1 0 "878952e6_2860_4a96_a9c8d7f2ae67c7a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Washer_Module::SetTraceLevel(i_intModuleID, i_intTraceLevel); // }} "" // {{ 170 1 0 "96553ed4_7e70_4640_9f84ae4898d745b6" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B6EDA3032F05464e9D3AC6C60F6B38DD : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 171 1 0 "0f963a42_c256_489a_aaa94e1febe27518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 172 1 0 "96553ed4_7e70_4640_9f84ae4898d745b6" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Washer_Set_Trace" "End" } // }} "" // {{{ 5 "pH_Washer_Terminate" "Begin" function pH_Washer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Washer_Terminate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 174 1 0 "d9a253c1_0910_4e9f_a187149052ec3a76" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3C057778551F44998B365E9253A02217 ; err.Clear(); // }} "" // {{{ 175 1 0 "d4227020_99a1_4aa0_9d6e084149e70033" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Washer_Module::Terminate(ML_STAR, i_intModuleID); // }} "" // {{ 176 1 0 "d9a253c1_0910_4e9f_a187149052ec3a76" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3C057778551F44998B365E9253A02217 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 177 1 0 "66061ca5_5cc5_4d0f_9202635c03ec1307" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 178 1 0 "d9a253c1_0910_4e9f_a187149052ec3a76" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Washer_Terminate" "End" } // }} "" // {{{ 5 "pH_Washer_Wash" "Begin" function pH_Washer_Wash( device & ML_STAR, variable i_intModuleID, variable i_intCycleNumber, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Washer_Wash" "InitLocals" o_stepReturn = 0; // }} "" // {{ 180 1 0 "f80ebec7_e999_4849_ba9dd4ea56ea0f57" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_78E848113B364c5bA57553087E6B301D ; err.Clear(); // }} "" // {{{ 181 1 0 "f05733be_cfcc_4ec8_b953e718e1850a9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Washer_Module::Wash(ML_STAR, i_intModuleID, i_intCycleNumber); // }} "" // {{ 182 1 0 "f80ebec7_e999_4849_ba9dd4ea56ea0f57" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_78E848113B364c5bA57553087E6B301D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 183 1 0 "c9e18e37_6611_4c12_8283218c23b61e2f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 184 1 0 "f80ebec7_e999_4849_ba9dd4ea56ea0f57" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Washer_Wash" "End" } // }} "" // {{{ 5 "pH_Dryer_Initialize" "Begin" function pH_Dryer_Initialize( device & ML_STAR, variable i_intComport, variable i_strModuleName, variable i_blnSimulationMode, variable & o_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Dryer_Initialize" "InitLocals" o_intModuleID = 0; o_stepReturn = 0; // }} "" // {{ 13 1 0 "607202ca_06ee_4a0f_866a0d2c76d5cb28" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_5DF85C91FEE34492A487BBB5FD9647BE ; err.Clear(); // }} "" // {{{ 14 1 0 "05f15313_9f49_451a_95bbeb4c53196bc2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Dryer_Module::Initialize(ML_STAR, i_strModuleName, i_blnSimulationMode, o_intModuleID); // }} "" // {{ 15 1 0 "607202ca_06ee_4a0f_866a0d2c76d5cb28" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_5DF85C91FEE34492A487BBB5FD9647BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 16 1 0 "ab7a6bde_3380_4c1c_9e57ee94fd815540" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 17 1 0 "607202ca_06ee_4a0f_866a0d2c76d5cb28" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Dryer_Initialize" "End" } // }} "" // {{{ 5 "pH_Dryer_Set_Trace" "Begin" function pH_Dryer_Set_Trace( variable i_intModuleID, variable i_intTraceLevel, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Dryer_Set_Trace" "InitLocals" o_stepReturn = 0; // }} "" // {{ 19 1 0 "294bac48_145a_4d48_a51b4612dd3440c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C2938C2495A74c4cA632332F553DD428 ; err.Clear(); // }} "" // {{{ 20 1 0 "3cc57734_cda6_468c_a2c90189391dadd8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Dryer_Module::SetTraceLevel(i_intModuleID, i_intTraceLevel); // }} "" // {{ 21 1 0 "294bac48_145a_4d48_a51b4612dd3440c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C2938C2495A74c4cA632332F553DD428 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 22 1 0 "b9209d93_3ded_4c38_96bc13f91674c01c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 23 1 0 "294bac48_145a_4d48_a51b4612dd3440c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Dryer_Set_Trace" "End" } // }} "" // {{{ 5 "pH_Dryer_StartDrying" "Begin" function pH_Dryer_StartDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Dryer_StartDrying" "InitLocals" o_stepReturn = 0; // }} "" // {{ 25 1 0 "a3b51a95_0ff1_47ef_b688fd99b4c881ec" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_04151AE1B5D4492089F91C4D24DFB4D1 ; err.Clear(); // }} "" // {{{ 26 1 0 "689c20eb_6a9d_4a74_88f159552e3027f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Dryer_Module::StartDrying(ML_STAR, i_intModuleID); // }} "" // {{ 27 1 0 "a3b51a95_0ff1_47ef_b688fd99b4c881ec" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_04151AE1B5D4492089F91C4D24DFB4D1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 28 1 0 "adeee0f8_b525_41bd_a62b5edf9d117c6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 29 1 0 "a3b51a95_0ff1_47ef_b688fd99b4c881ec" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Dryer_StartDrying" "End" } // }} "" // {{{ 5 "pH_Dryer_StopDrying" "Begin" function pH_Dryer_StopDrying( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Dryer_StopDrying" "InitLocals" o_stepReturn = 0; // }} "" // {{ 31 1 0 "29d5863e_4160_4760_b56b41dc758bdcd9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_A4169CBA98C24da39C38331F531BB852 ; err.Clear(); // }} "" // {{{ 32 1 0 "db4fe054_872e_4452_8835e28b39a4ad1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Dryer_Module::StopDrying(ML_STAR, i_intModuleID); // }} "" // {{ 33 1 0 "29d5863e_4160_4760_b56b41dc758bdcd9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_A4169CBA98C24da39C38331F531BB852 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 34 1 0 "47b1bc71_479a_474d_a5b3c1fe4e31d5e7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 35 1 0 "29d5863e_4160_4760_b56b41dc758bdcd9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Dryer_StopDrying" "End" } // }} "" // {{{ 5 "pH_Dryer_Terminate" "Begin" function pH_Dryer_Terminate( device & ML_STAR, variable i_intModuleID, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Dryer_Terminate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 37 1 0 "75b21d84_d009_4e72_8a0184c15d4eb585" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_976FC1B840694cb598ACF66A1DAAA974 ; err.Clear(); // }} "" // {{{ 38 1 0 "59fd889e_96a4_4c23_a1f9d3304535be72" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, i_intModuleID); // }} "" // {{ 39 1 0 "75b21d84_d009_4e72_8a0184c15d4eb585" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_976FC1B840694cb598ACF66A1DAAA974 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 40 1 0 "6d67118e_7746_4fb9_aa5ef1f641c11cb5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 41 1 0 "75b21d84_d009_4e72_8a0184c15d4eb585" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Dryer_Terminate" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=stefa$$valid=0$$time=2022-10-28 20:30$$checksum=f397232e$$length=084$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~HxE052.tmp ================================================ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~HxE82B.hsl ================================================ namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HslHamHeaterShakerLib.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "SchedulingDev\\HSLAppsLib.hsl" } namespace _Method { #include "STAR_OEM_toolkit_pH.hs_" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" } namespace _Method { #include "STAR_OEM_toolkit_centrifuge.hs_" } namespace _Method { #include "STAR_OEM_toolkit_MPE.hs_" } namespace _Method { #include "Hamilton pH Module Controller.hs_" } #include "STAR_OEM_Test.res" namespace _Method { #include "Hamilton MPE2\\HSLMPELib.hsl" } namespace _Method { #include "Hamilton Centrifuge\\Hamilton Centrifuge.hsl" } namespace _Method { #include "HSL_LiquidClassLib.hsl" } /* {{ 2 "LibraryInsertLine" "" */ // }} "" variable loopCounterMain; variable msg; object objJSONFromServer; variable commandFromServer; variable initializeAlways; variable o_stepReturn; object objJSONToServer; sequence seq; variable tipSequence; variable sequenceCounting; variable channelVariable; variable channelUse; variable labwarePositions; variable aspirateSequence; variable v; variable arrayOfVolumes[]; variable liquidClass; variable aspirateMode; variable capacitiveLLD; variable pressureLLD; variable liquidFollowing; variable submergeDepth; variable liquidHeight; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable airTransportRetractDist; variable touchOff; variable aspPosAboveTouch; variable o_liquidLevels_mm[]; variable o_liquidLevels_mL[]; variable o_stepReturn2; variable o_stepReturn3; variable dispenseMode; variable dispenseSequence; variable dispPositionAboveTouch; variable zMoveAfterStep; variable sideTouch; variable wasteSequence; variable useDefaultWaste; variable reducedPatternMode; variable aspirateVolume; variable o_stepReturn4; variable dispenseVolume; variable tipEjectToKnownPosition; variable carrierName; variable barcodeFileName; variable barcodeReadPositions; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable lidSequence; variable plateSequence; variable toolSequence; variable transportMode; variable widthBefore; variable gripHeight; variable gripWidth; variable gripSpeed; variable gripperToolChannel; variable checkPlate; variable zSpeed; variable gripForce; sequence lidSeq; sequence toolSeq; variable xAcceleration; variable platePressOnDistance; variable ejectToolWhenFinish; object objHttp; variable blnReturn; variable blnSuccess; variable usedNode; variable deviceNumber; variable action; variable sampleInterval; variable shakingToleranceRange; variable id; variable monitorResult; variable firmwareVersion; variable serialNumber; variable command; variable parameter; variable plateLock; variable shakingAccRamp; variable shakingDirection; variable simulate; variable startTimeout; variable toleranceRange; variable securityRange; variable intTrace; variable shakingSpeed; variable shakingTime; variable temperature; variable waitForTempReached; variable inverseGrip; variable liftUpHeight; variable retractDistance; variable tolerance; variable labwareOrientation; variable movementType; variable collisionControl; variable gripMode; variable showCollisionCheckDialog; //global device HxFan ("STAR_OEM_Test.lay", "HxFan", hslTrue); variable refillAfterEmpty; variable chamber1LiquidChange; variable chamber2WashLiquid; variable chamber1WashLiquid; variable chamber2LiquidChange; variable FirmwareCommand; variable FirmwareParameter; variable CommandListElement; variable CommandListLength; object FirmwareCmdDict; variable yDisplacement; variable zDisplacement; variable xDisplacement; variable yOrigin; variable xOrigin; variable zOrigin; variable ControllerID; variable SimulationMode; variable ErrorCode; variable DeviceID; variable TargetTemperature; variable StopAllDevices; variable TraceLevel; variable Comport; variable Simulate; variable ModuleName; variable Angle; variable inputSequence; variable barcode; variable seqFirstPosition; variable seqSecondPosition; global device ML_STAR ("STAR_OEM_Test.lay", "ML_STAR", hslTrue); variable ModuleID; variable probePattern; variable pH_probe_1; variable pH_probe_2; variable pH_probe_3; variable pH_probe_4; variable Variance; variable Timeout; variable CalibrationLevel; variable CalibrationValue; variable CalibrationTemperature; variable Precision; variable Temperature; variable ChargeCounter; variable ReplacementDate; variable BatteryCondition; variable ActualCharge; variable MeasurementCounter_Probe_1; variable MeasurementCounter_Probe_2; variable MeasurementCounter_Probe_3; variable MeasurementCounter_Probe_4; variable HardwareNumber; variable Revision; variable SerialNumber; variable PartNumber; variable Selector; variable VoltageData; variable Day; variable Year; variable Month; variable Charge; variable AutoCharge; variable AutoChargeLevel; variable Probe; variable Mode; variable ProbeNumber; variable pHHighValue; variable pHHighVoltage; variable pHLowValue; variable pHLowVoltage; variable CalibrationSlopeRatio; variable CalibrationOffset; variable CalibrationSlope; variable CycleNumber; variable NodeName; variable Label; variable AlwaysInitialize; variable intPresentPosition; variable Direction; variable CloseCoverAtEnd; variable ArrSpeed; variable ArrAcceleration; variable ArrDuration; variable i_ArrDuration[]; variable i_ArrAcceleration[]; variable i_ArrSpeed[]; variable Decelleration; variable Speed; variable Acceleration; variable MaxRunTime; variable SpeedSensorTrip; variable TimeLeft; variable GravitySensorTrip; variable CurrentSpeed; variable TemperatureSensorTrip; variable ProfileStatus; variable RotorDriveRunning; variable Deceleration; variable DeviceName; variable AdapterDeviceID; variable InstrumentName; variable PortNumber; variable MPEOptions; variable ComPort; variable BaudRate; variable CollectionPlateHeight; variable OffsetFromNozzles; variable NeedleOffset; variable WellVolume; variable FlowRate; variable SourceID; variable Needleoffset; variable PlateHeight; variable WellDepth; variable EvaporateTime; variable FollowRate; variable EvaporateTravelDistance; variable NozzleHeight; variable FilterHeight; variable WasteContainerID; variable FullReading; variable CapacityVolume; variable CalibrationDate; variable EmptyReading; variable blnReset; variable CurrentGasTemperature; variable Heating; variable CurrentEvaporatorTemperature; variable MinimumGasTemperature; variable MinimumEvaporatorTemperature; variable MaximumEvaporatorTemperature; variable MaximumGasTemperature; variable ManifoldPressureSensor; variable HighPressureSensor; variable InputPressureSensor; variable LowPressureSensor; variable MaximumTemperature; variable MinimumTemperature; variable VacuumActive; variable VacuumRunTime; variable DisableVacuumCheck; variable Smart; variable SensorReading; variable ControlPoints; variable ReturnPlate; variable Volume; variable Seconds; variable DefaultTemperature; variable MeasureTime; variable MeasureHeight; variable CalibrationValue1; variable TempSoln1; variable TempSoln2; variable CalibrationValue2; variable blnCalibrateDynamically; variable CalibrationValueRef; variable TempSolnRef; variable Module; variable Reference; variable Calibration1; variable Calibration2; sequence seqModule; sequence seqCalibration1; sequence seqCalibration2; sequence seqReference; variable CalibrationTime; variable arrCalibrationSlopeRatios[]; variable arrpHValuesReferenceSolution[]; variable CalibrationSlopeRatios; variable pHValuesReferenceSolution; variable BluetoothPort; variable NumDryCycles; variable NumWashCycles; variable DryTime; variable Gripper; sequence seqGripper; variable WashPosition; sequence seqWashPosition; variable DryPosition; sequence seqDryPosition; variable DryCycles; variable TransportChannel; variable WashCycles; variable arrpHValues[]; variable flt_pHValues; variable seqMeasure; variable ProbePattern; variable seqMeasurement; variable MeasurePositions; variable hssErrCode; variable LiqClassParameterName; variable LiqClassParameterValue; variable LiquidClassName; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" STAR_OEM_TOOLKIT::_InitLibrary(); STAR_OEM_TOOLKIT_PH::_InitLibrary(); STAR_OEM_TOOLKIT_CENTRIFUGE::_InitLibrary(); STAR_OEM_TOOLKIT_MPE::_InitLibrary(); HAMILTON_PH_MODULE_CONTROLLER::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{{ 1 1 0 "e7768ad9_4016_4422_bd83f5785d03ceda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnReturn = HSLHttp::Initialize(objHttp); // }} "" // {{ 2 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnReturn != blnSuccess) { // }} "" // {{{ 3 1 0 "62c131b4_44b9_4249_8e0a3205a25b21b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); // }} "" // {{{ 4 1 0 "fb18125e_b294_4554_912c3d447526996e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 5 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 6 1 0 "ee92e29b_e94c_46cf_a67851f3be61c805" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Hi, Im a VENUS method.")); // }} "" // {{ 7 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; // }} "" // {{ 8 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "de417132_351a_4ad8_80c71b1863d4a870" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" commandFromServer = Translate(""); // }} "" // {{ 10 1 0 "d9c97239_3c9d_4992_8fb5820ae5721d90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate(""); // }} "" // {{ 11 1 0 "57da7835_7495_4b16_8b82897289efbd11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn2 = Translate(""); // }} "" // {{ 12 1 0 "cf024fcc_3594_4355_b33f4bd8c8bdfb4e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn3 = Translate(""); // }} "" // {{ 13 1 0 "9ed0b80d_8518_474f_a94d8f843a6158fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn4 = Translate(""); // }} "" // {{ 14 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 15 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 16 1 0 "0257e5d3_7b99_47be_a062950a2b200664" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" msg = waitForGUItoContinue(); // }} "" Trace("JSON received from Server:", msg); // {{{ 18 1 0 "36be63f7_a79c_44a4_b1dc636a536612bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONFromServer); // }} "" // {{{ 19 1 0 "5c2b861d_97f9_4e18_a5fce25e78026299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::ParseJson(objJSONFromServer, msg); // }} "" // {{{ 20 1 0 "562abca5_8891_402a_b8a7c5ba56301a86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); // }} "" // {{{ 21 1 0 "cb002e33_cc71_4a25_890fa8f9f5d982a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("id"), id); // }} "" // {{ 22 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 23 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 24 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "initialize") { // }} "" // {{{ 25 1 0 "773dbb38_0414_403d_b2ff24100c7cf1fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); // }} "" // {{{ 26 1 0 "97af1c08_2914_4f72_b27c685f11b30bb6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); // }} "" // {{{ 27 1 0 "04505c20_428c_4440_8169ddcbaade8bbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::Initialize(ML_STAR, 0); // }} "" // {{{ 28 1 0 "b3ab11e2_0297_446f_9cf37ca7c0c9d19f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Init step return:"), o_stepReturn); // }} "" // {{{ 29 1 0 "57d4e0cd_327e_4cac_8e83a7da6222dda0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 30 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 31 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 32 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 33 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 34 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipPickUp") { // }} "" // {{{ 35 1 0 "53e1cfb5_1fde_491f_bfd878eceda16ba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 36 1 0 "f0e9e31f_d871_4632_bd466e43fc38c771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 37 1 0 "e6311b13_2132_40e0_aff0b5556205c32a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 38 1 0 "cb659ed1_5f0c_41e8_8a060ec0b650c589" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{ 39 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 40 1 0 "6699226b_6c7b_4b79_95b8017162b433b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 41 1 0 "bd13798f_62e7_4dd2_8e91769d48d10fc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 42 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 43 1 0 "ce13caa6_634b_4dec_8a6c3ea74b144e95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 44 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 45 1 0 "29f69958_d99b_455a_93c7b0480bfd1658" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn); // }} "" // {{{ 46 1 0 "732425fd_a199_4354_8479d821ee834e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 47 1 0 "22f00193_1056_456e_a515d156eee56e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 48 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 49 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 50 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 51 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelAspirate") { // }} "" // {{ 52 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 53 1 0 "55ee3109_036b_4acb_8a15175f3316656f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 54 1 0 "a5b3e5ac_4910_4a4a_8e20bdb7f61836e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 55 1 0 "ce04189a_96e4_4bdc_aedc8a68bf64647b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 56 1 0 "882daff3_cc25_4778_aec6a937fc87347c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 57 1 0 "7f7b9f83_5611_4a3b_b5c120689696addb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 58 1 0 "39e464b7_0def_403b_a02f5dd2a358dbd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 59 1 0 "2e2739aa_8eb6_44e0_b887ea00b04acac0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 60 1 0 "9408edd8_3cee_43e0_976b4a6fabf5f4ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 61 1 0 "a2848877_3518_4d1d_95f77c1f313003e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); // }} "" // {{{ 62 1 0 "4b5ce3d0_91f4_4c14_aaf1cad34e0caf60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" Trace("Bookstart"); // {{{ 64 1 0 "12892ce3_3bc6_4165_b3b6ae0eacad20e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" Trace("Bookend"); // {{{ 66 1 0 "15bd5af3_2da1_420b_beb398dc2347a0ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 67 1 0 "4fe61fb4_bb39_4728_96b8c6959f4943ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); // }} "" // {{{ 68 1 0 "ba68c240_2397_4872_949ee1ee984595c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 69 1 0 "baac19fc_9f21_4e8c_b833f2a1ba2433f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 70 1 0 "253130f8_f599_4ef4_9d5a15e2cb89d1eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 71 1 0 "51233931_483f_4deb_a8627b909d6c9116" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 72 1 0 "bf0c65ba_7847_4768_92ebbe8adc6568c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 73 1 0 "30a6715c_b6c6_4d86_b5c02f3da440e309" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 74 1 0 "6eb82b6e_8093_461e_afc712cab07398dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 75 1 0 "3f8b6af1_7872_4a20_92bf2c4507ea9f31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); // }} "" // {{{ 76 1 0 "7dd1b818_5a89_4b03_82734e6f4d7b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{ 77 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 78 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 79 1 0 "cb2b67f0_7384_4a41_831de652f92d4c85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 80 1 0 "29a868b4_7800_4747_b14eaf0f2c10ba40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 81 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 82 1 0 "08f63789_65f1_4e7d_996dc22e8f33d416" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 83 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 84 1 0 "8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 85 1 0 "7cb70e6b_15bb_4380_b62150df065d208f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 86 1 0 "4714958b_0632_4de2_983c7fe9de68df6c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 87 1 0 "bd40f564_16d7_4037_aef8eebfe28a4362" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 88 1 0 "18bf536c_98f4_4345_86a103db4a9b68a1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 89 1 0 "d60cd9aa_083b_4487_8d6218cee02fa4cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 90 1 0 "e86187c0_0d19_453e_be1c5a401d0d5d93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 91 1 0 "d66c2dae_4cc3_4a31_bafe46d1dd63e790" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 92 1 0 "d23f143d_290d_4d0f_b368241a6a9adaed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 93 1 0 "0428e844_3191_4cde_b7f3544f34c833f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 94 1 0 "a7ca006f_941c_4b31_9749313ad9b4e079" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 95 1 0 "8c97ba72_f880_4504_baee8b8db3d13310" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 96 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 97 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 98 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 99 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelDispense") { // }} "" // {{ 100 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 101 1 0 "909bc255_6ca1_4700_bc102ccb34ae5be4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 102 1 0 "fd48dd93_9f42_4df0_9f659e27a5552543" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 103 1 0 "3ff3f492_86a5_40af_a3deabccbab3898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 104 1 0 "3cbb883f_48ae_40fe_afe67da944df94b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 105 1 0 "ab1033bc_1216_450a_9fb60655a1f1a21a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 106 1 0 "0bc1541f_26d5_44d6_8db6ae336fec17bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 107 1 0 "8c10cc29_c05e_4cea_9ed559249651e805" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 108 1 0 "3e0373da_7c7c_46ab_9b77fba19915662e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 109 1 0 "b98fdc49_cdcb_4f3c_81df0b76eafa1411" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 110 1 0 "7458d32a_402a_4215_b52378c78468ec80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 111 1 0 "5e14f2ce_c932_474b_be03f3c043c700e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 112 1 0 "c2010d1d_5a78_4871_a835a6613a1237bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 113 1 0 "d4a6e6a3_0158_45f1_9c359d8e48e01bed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 114 1 0 "011e9828_5413_40c1_80d0c3bdde1c6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 115 1 0 "2d7a4942_b2ce_43a2_8decf49fa0c9576c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 116 1 0 "ad9f0bbf_e495_41c5_898a3be32bb16f2b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 117 1 0 "5c734886_aa50_424c_b89f6894bc37dd8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 118 1 0 "d1bc00cc_4286_4409_b1c49b6350e7e6ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 119 1 0 "b178ce99_db9e_4453_bed28d4ce0457bc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); // }} "" // {{{ 120 1 0 "1b38ad88_3c65_4e58_812f9ed32ce32485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{{ 121 1 0 "f34066f1_63f9_474f_8a9c41e56962dc74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 122 1 0 "6b94916e_355b_4ee9_8eb4f1b49c95fea4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 123 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 124 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 125 1 0 "e962dd26_3672_4418_bd3c40e9929929eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 126 1 0 "6257966a_6b39_41c8_a057a79b8e39cd4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 127 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 128 1 0 "3f230e40_8bd9_4235_b88cd0ca80799661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 129 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 130 1 0 "8d82ff40_d831_430b_97d97c01d2a4474e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 131 1 0 "ac0ad5a7_d00b_46fe_a18f94f8dab3863c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 132 1 0 "b7f86b6c_03a4_4e12_a05e5e8bdc958b75" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 133 1 0 "9bfa8704_2ae0_4a63_83d09fddbacfd336" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 134 1 0 "860b660a_6947_4c88_a2a039bf65040bf5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 135 1 0 "797f0eef_5bb2_4a2e_a178af74f4892bd7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 136 1 0 "2753c24e_c4dc_402d_866b6bc8691ecc1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 137 1 0 "1ac127fd_b830_496f_b4d4b9671137ebff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 138 1 0 "3ee5d751_d3a5_468a_b539c4f0ff22023e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 139 1 0 "b86d492c_446f_4921_97140cfd462ace87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 140 1 0 "e049946d_6322_4b39_9c46a2d0eb345528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 141 1 0 "531432f5_ef8a_416e_8be28a07ae9b0d25" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 142 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 143 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 144 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 145 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipEject") { // }} "" // {{{ 146 1 0 "69be671e_7cdd_48d3_af136435754c1d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 147 1 0 "f3444c0f_4863_4fdd_94a025b682d8a6d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 148 1 0 "12ad2f39_c160_4afc_9f6ffce7e3ddb433" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 149 1 0 "2883bb64_2fe3_47ca_996e11434afc57cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 150 1 0 "10c3b13e_7129_4cfd_b88b29d0bbc31a28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); // }} "" // {{ 151 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (useDefaultWaste == 0) { // }} "" // {{ 152 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 153 1 0 "655bc92f_08a8_4c16_a0276997aec081ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 154 1 0 "a3a0b5ef_85c0_4552_a28b3356d7886eb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 155 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 156 1 0 "efadb8c3_c431_4ed4_a739a951c05ee518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 157 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 158 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 159 1 0 "2dda50b6_7f82_4e8a_a1d203715119213a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 160 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 161 1 0 "7fa61e34_a1f2_4b99_8f6bed13c6ce120f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn); // }} "" // {{{ 162 1 0 "a7db5128_f8e4_4afe_81f46b2cc86e608d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject step return:"), o_stepReturn); // }} "" // {{{ 163 1 0 "683607f4_928f_4cea_b901fe3502404424" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 164 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 165 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 166 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 167 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 168 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 169 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipPickUp") { // }} "" // {{{ 170 1 0 "1f82c33f_a085_47cc_85dbbde3e42a53c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 171 1 0 "9f9fe665_47a2_4a12_961460021d1f09f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 172 1 0 "743960d2_9d0f_4ccf_848662247e3211c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 173 1 0 "b737602c_63e8_4c4c_b47f40cb815914ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); // }} "" // {{ 174 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 175 1 0 "00bd1831_c335_40f5_b706f0ffadbe2890" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 176 1 0 "1f16418c_8fa7_44a5_a6db75dd9a79ee84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 177 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 178 1 0 "b66db4eb_9e79_4c19_909fd8d14d37cba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 179 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 180 1 0 "f3e7cbf6_0242_4463_8d4ed0db4667f7db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2); // }} "" // {{{ 181 1 0 "b080a5c6_324c_4aae_b5899dede6d863f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 182 1 0 "aa5a9c4b_0377_46ce_9b46883db15cbd7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 183 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 184 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 185 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 186 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Aspirate") { // }} "" // {{ 187 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 188 1 0 "373f30c8_ec07_4298_94d6ac75358ab1ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 189 1 0 "ef3ae377_e985_4ef6_93b005aa91c9b2b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 190 1 0 "d8eea65a_6e59_4c32_a47bae09779f9528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 191 1 0 "8eb02312_a070_491c_9758b3cdbdee0cfc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); // }} "" // {{{ 192 1 0 "6eaf8bee_b53f_4f01_87c1380bc345e386" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 193 1 0 "d9923a2f_e7cf_4f3e_81746e378a20baab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 194 1 0 "2c411993_e3fc_4753_9a90308b226078a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 195 1 0 "5d900896_b2b9_442b_b24294b9bbfbdaad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 196 1 0 "21149e9e_21c9_4ddd_93e07b693e3ab3fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 197 1 0 "bcefef03_102b_4887_adad59c2fb7ad551" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 198 1 0 "9665b0a3_35e8_47e9_b14ac1a4818cfa6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 199 1 0 "ff93d28b_afe9_47e7_9b6eb50d6845384f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 200 1 0 "ef43b824_fd38_42d4_9e932904dbf14813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 201 1 0 "b0378457_e370_448b_bfd6955c05e57bcb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{ 202 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 203 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 204 1 0 "615bcff6_e9d5_4303_a5d5826b2e2548dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 205 1 0 "cf4ad428_945e_4921_9441ee34cf9c96bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 206 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 207 1 0 "86397ec2_2ee5_4ec1_8bec47d8e87584b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 208 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 209 1 0 "48f88263_72c1_4df2_865181cffed9feee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 210 1 0 "f1b764e8_e556_4d08_bb83bdc12dc64a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 211 1 0 "164c104a_cf5f_46de_b23a098a18b3fdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 212 1 0 "ee779f77_51a9_46d7_b58b7bcaf13519f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 213 1 0 "e874eb6d_1e97_4590_95d9b10cb059c935" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn4); // }} "" // {{{ 214 1 0 "0ca1df86_a344_45fd_b384e13ba44c5ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 215 1 0 "2497228e_672e_4c95_9f31679fe87bbe1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 216 1 0 "e4930eee_c625_4acb_a81c05e149a1a218" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 217 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 218 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 219 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 220 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Dispense") { // }} "" // {{ 221 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 222 1 0 "78cba921_2a37_4b4a_91ef7fbe81fcddd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 223 1 0 "b58b4cbd_16e9_4444_9037061e29bc5614" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 224 1 0 "0ab910ec_826d_4c84_bac7ed9564f3bdab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 225 1 0 "84d664b7_70d0_4136_bdfd4de2aa760ad8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); // }} "" // {{{ 226 1 0 "18becc6a_2df4_4281_8b16ade9038979f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 227 1 0 "68c565db_e5ed_44e8_b3846a1d98034e76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 228 1 0 "6a4221a8_9488_48f9_8381b1bc0f0c960d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 229 1 0 "45dcb271_e326_42fc_b8684816d3ffdc93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 230 1 0 "14552b13_e77b_4fb7_9020445ecc5ade21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 231 1 0 "91783f87_af6f_446e_a74fb1725f17d282" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 232 1 0 "e2e7f702_1710_49eb_9b1046dbf4f143e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 233 1 0 "1817aa70_86fa_4318_a8e46569701623e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 234 1 0 "50bd6734_10d5_4291_b40eb708539514fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 235 1 0 "ad5fbb01_d809_4b7d_b858ed597709f28f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 236 1 0 "09566247_6b2d_4c73_b43fe303a30f89c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 237 1 0 "3ead74f7_3b5c_4b21_84d2488c2eceab73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 238 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 239 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 240 1 0 "835f8470_7e8c_40ff_a48abcc85d6b778b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 241 1 0 "059394fc_e924_4d57_b1b85f79f9947fa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 242 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 243 1 0 "6c4be3a7_a450_459c_90545a208f9f459f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 244 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 245 1 0 "c164a94e_2926_462e_9487870d403fe8b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 246 1 0 "86c0fb85_8aaf_4bec_9f6f1f642206487f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 247 1 0 "77047add_8050_4522_ad477b97455a8327" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 248 1 0 "5b2c6f23_9a69_489d_b52179c78c03e48f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 249 1 0 "a9a9244b_829f_4c5b_9a64f1018b029453" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn4); // }} "" // {{{ 250 1 0 "781580a9_199e_4373_b48bb55a97f8a463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 251 1 0 "1867ae44_25f8_4926_ae081e490fd5aa0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 252 1 0 "dbb3b30c_b4a1_4cf6_a24b62b63f155369" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 253 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 254 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 255 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 256 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipEject") { // }} "" // {{{ 257 1 0 "7cf9db16_d78c_4aa0_825cc3c2c22f287c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 258 1 0 "ccca7a97_c22a_4f20_b2d9a60d67850eee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 259 1 0 "a319f75e_77eb_4845_856516ce060213f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 260 1 0 "d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); // }} "" // {{ 261 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipEjectToKnownPosition == 0) { // }} "" // {{ 262 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 263 1 0 "24eeb6dd_1e20_422c_a1a8199cbca73b33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 264 1 0 "5197334f_cde5_4d52_9c528a0c4f7401b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 265 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 266 1 0 "110b82e1_8a5b_48e4_a3adbab701cffc8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 267 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 268 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 269 1 0 "fa32bbf8_8345_4897_aaf09d112d374893" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 270 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 271 1 0 "ef087a4e_684e_4d98_87109abf154fbc85" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2); // }} "" // {{{ 272 1 0 "328216cf_22dd_47a1_9f1ba089b1ac7702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn); // }} "" // {{{ 273 1 0 "53265943_7975_4275_ad98df313054f97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2); // }} "" // {{{ 274 1 0 "c13d9773_7daf_4c3c_9064fdd4f7c7008f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 275 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 276 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 277 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 278 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 279 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "loadCarrier") { // }} "" // {{{ 280 1 0 "76d739d0_ff4a_490b_9c47f411d29ef7a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 281 1 0 "ca623aa7_ed48_45fa_9f4055fb8e08c3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); // }} "" // {{{ 282 1 0 "64a8e193_7e7e_412e_8a0657f0e832eaef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); // }} "" // {{{ 283 1 0 "39e6aaef_5cce_4915_b5b6ede214c7371e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs); // }} "" // {{{ 284 1 0 "1d4d284f_fd1e_4f8a_a2158846ad6a67f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Load carrier step return:"), o_stepReturn); // }} "" // {{{ 285 1 0 "358b7fc3_40a2_418b_9d61d94eef1556f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 286 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 287 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 288 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 289 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "unloadCarrier") { // }} "" // {{{ 290 1 0 "797d23a7_c62a_471a_a52b10fea8bcc154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 291 1 0 "f1c35790_adb7_49eb_a96864d8b1d66cea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn); // }} "" // {{{ 292 1 0 "6e6ded71_3f99_46c5_9362117beb502a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn); // }} "" // {{{ 293 1 0 "8713fee4_6b93_4296_a5396254fd404d52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 294 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 295 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 296 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 297 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 298 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripGet") { // }} "" // {{ 299 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 300 1 0 "c4847ae5_e161_4f23_aa432eda22de28bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 301 1 0 "022a5cdd_3f4f_4e18_927c174fc57a68a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 302 1 0 "3e462067_5eb3_49c3_b7bf6a27de9ce3bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 303 1 0 "f7004881_3f0d_4621_a88d55dec8fc0d30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 304 1 0 "262b36ba_6d86_4009_bdc9a3881db7074e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 305 1 0 "be44b37f_7cec_4f69_81c223f2c30b120b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 306 1 0 "3dea3158_65f8_44bc_8d06a31ce3458dab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); // }} "" // {{{ 307 1 0 "308b2aa2_5970_4692_858049c6559d6ad0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 308 1 0 "756d0f81_3645_4a49_a0c2259581e11498" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 309 1 0 "cdbf11ba_b1f8_4016_811240a02705f1fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{{ 310 1 0 "625df597_c6c8_4e4a_b956e9580bfbc568" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); // }} "" // {{{ 311 1 0 "3576d134_8507_4e47_9c2bcc3dce8c026d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 312 1 0 "5b9c06ad_9081_4b6b_97e50cc87623b888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 313 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 314 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 315 1 0 "d1f3c2ac_9c68_4200_a3506bbbed8e42a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 316 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 317 1 0 "f1d1c43b_a9dd_4573_a69dd7c0e79eea40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 318 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 319 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 320 1 0 "4d304110_107e_412e_909bb84008a244de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 321 1 0 "8f8b1ba1_af12_4cdd_acf2096420ede259" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{ 322 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 323 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 324 1 0 "72e31f7d_c091_4525_a5cf7001754b199d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 325 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 326 1 0 "47dfcbb5_d784_48bb_b36b97509434a3a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 327 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 328 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 329 1 0 "e6c53925_446e_468e_b0e0654b4b9d9a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 330 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 331 1 0 "c0cbb194_1b8b_4fe0_a0f706e03eaa0748" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 332 1 0 "46703217_a28e_42ce_b13c11d73ba34bfa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn); // }} "" // {{{ 333 1 0 "189164cc_2681_492f_83f072fb537648b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn); // }} "" // {{{ 334 1 0 "c8d6960a_f416_47b1_a29e2752973c0ec9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 335 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 336 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 337 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 338 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripMove") { // }} "" // {{ 339 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 340 1 0 "5755c338_faa3_4f0a_9acd4cd01a912862" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 341 1 0 "2849c819_a3dc_4328_8484ccc4785993d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 342 1 0 "32f0a8f9_3af2_42a3_90f246cc874e0e8f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 343 1 0 "791b6e1a_07b8_49cb_8122670d0871189f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 344 1 0 "036d0d84_e161_4b03_8b828dcb6b44e437" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{ 345 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 346 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 347 1 0 "e038f780_938f_4867_98f769488ca44b04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 348 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 349 1 0 "6bd2d2a1_1051_4443_a1af9b68df2876b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{{ 350 1 0 "3d8767e5_5f31_4ce5_91a11e28045ec87a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 351 1 0 "e9e0b38e_13aa_40f9_8e470eb1de09eb19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("wrong"), Translate("nowwrongere")); // }} "" // {{ 352 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 353 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 354 1 0 "064a5c1b_f450_44d6_a2042ebde115527d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 355 1 0 "ee8b8050_164a_4de8_b6ce02120236efbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 356 1 0 "be0898fe_cdb8_4ac3_a9e991e26bdb6658" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here"), Translate("now here")); // }} "" // {{ 357 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 358 1 0 "ca4b75ee_26d9_4a3b_8e3366d575348125" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 359 1 0 "ea0afc75_5bc7_4c06_ac73c2f4d5f887a0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 360 1 0 "1965d128_c7f1_4206_87e4ca1ce70c1dff" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 361 1 0 "615cbdd3_e5f2_4bc0_bb3661a2482eb770" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 362 1 0 "86fc0696_8c53_4c05_a9c0eaa58f279054" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 363 1 0 "90f602a1_fdc5_48fd_801269ecd2c3f9bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn); // }} "" // {{{ 364 1 0 "dc418b75_2d70_4034_84a767fba752b262" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn); // }} "" // {{{ 365 1 0 "ae4414d3_a939_4fdb_a0ed06f1be1506e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here here"), Translate("nohhere")); // }} "" // {{{ 366 1 0 "6379549c_caf9_409f_b293abf77f1dcfbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 367 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 368 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 369 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 370 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripPlace") { // }} "" // {{ 371 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 372 1 0 "6f38d60b_6dc5_4159_ba30360f264222da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 373 1 0 "b6ef73cf_c89c_41cc_a3b72dc5aaf70f90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 374 1 0 "c7e5f5bd_edcc_4000_9be3db81af0c79fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 375 1 0 "91ff4c39_6a86_4eda_998a5461ef6c3cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 376 1 0 "341a6f8e_b4c8_4966_b9520322d1bc2e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 377 1 0 "32792c80_3b36_4a25_8fff6b99bfcf1919" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); // }} "" // {{{ 378 1 0 "b1e5d86e_c659_4d33_9e0f83fdb20b2cb5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 379 1 0 "76b26748_4e74_45f7_85a7dc102b5fd7b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); // }} "" // {{{ 380 1 0 "ee221e8a_a662_49d8_be2ef0ed631d9527" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 381 1 0 "cbefd54c_5f0a_4a16_a0199198529b71fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 382 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 383 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 384 1 0 "ac4e7090_c3c7_4707_8d98dc55262c294b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 385 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 386 1 0 "eb5776ad_c858_4ee8_ba31f47af19e76af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 387 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 388 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 389 1 0 "1f3eb006_1b10_427e_99d0b530f1afc2ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 390 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 391 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 392 1 0 "a04c5993_bf3e_46c7_92f24c8236636b00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 393 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 394 1 0 "2455f68c_be4e_4a21_9e9e78f78f6e8e3c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 395 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 396 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 397 1 0 "ad5d98b0_9e3d_4275_90ceef06ceca045d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 398 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 399 1 0 "3321537f_63fb_48a4_90e40a2fee1cc432" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 400 1 0 "8c7e60df_f040_45c6_a939d99bcd0ac23c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn); // }} "" // {{{ 401 1 0 "24e589a9_98d7_429d_90c8afe203e96ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn); // }} "" // {{{ 402 1 0 "9d94d038_d071_4339_aaace5a2e455b240" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 403 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 404 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 405 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 406 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 407 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 408 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGet") { // }} "" // {{ 409 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 410 1 0 "4a585a30_3a23_44cc_a0948963de716cba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 411 1 0 "da3a318b_1208_4329_be1faae95ecc2e03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 412 1 0 "1f51589f_347c_497b_a7338461d92076d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 413 1 0 "622e6765_4ee3_4df5_917ca140f8b7981b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 414 1 0 "9826612b_e564_4231_8f83fdfcbd374bdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 415 1 0 "fdb52557_ae6c_42b3_925073ab7ae7a5ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 416 1 0 "171639e0_98ad_4857_a5ac346039499a33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 417 1 0 "0d4077af_b1dc_4dea_a23a163c57d96248" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 418 1 0 "60732b74_8870_48e2_be03564159cf35b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("inverseGrip"), inverseGrip); // }} "" // {{{ 419 1 0 "ffa21840_da03_4682_b62a6910caf63f45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 420 1 0 "0af9b15f_4e1b_4353_a6261def96fea256" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{{ 421 1 0 "c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 422 1 0 "74d93b97_5d7f_4593_9aeb9d83d5466e6f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{{ 423 1 0 "28d636c0_47c0_4fac_8a7b67124fd8b9f5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 424 1 0 "6f62025f_9dde_4ae6_a6b6b69efed6e381" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("tolerance"), tolerance); // }} "" // {{{ 425 1 0 "f3d51abd_651e_4b15_93eb0cea0c0384be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 426 1 0 "1b72eb1e_c220_42e0_9a34675ddc971fe7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{ 427 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 428 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 429 1 0 "fd3fbb06_b08e_4790_8e3b785ca1f8ed4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 430 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 431 1 0 "87331d5f_01ff_43a8_a0a06487f28bb2b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 432 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 433 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 434 1 0 "5f12c00c_48c1_4e2f_a24b4ba435343a8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 435 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 436 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 437 1 0 "d3e5718a_eb78_4c1f_a6467f61ccbe82df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 438 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 439 1 0 "8ebcf09f_a943_4769_b3c659e368019a32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, lidSeq); // }} "" // {{ 440 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 441 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 442 1 0 "8ce5efe3_4525_4c77_bb64f9d8dcfb6a62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 443 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 444 1 0 "8ac111e1_df50_4fcb_b465e737713459d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn); // }} "" // {{{ 445 1 0 "d9104246_d843_4a6d_85a64aa07d019020" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Get - step return :"), o_stepReturn); // }} "" // {{{ 446 1 0 "7831c2d8_4b59_455a_a0dc5cae20f325a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 447 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 448 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 449 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 450 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapMove") { // }} "" // {{ 451 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 452 1 0 "3c315cea_4ff8_4efa_8e4a5cc86a9d84d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 453 1 0 "4e2cf15d_267b_47e0_895c36b714787e13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 454 1 0 "24d68fc9_cd59_471b_9c663c4121d1a931" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{ 455 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 456 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 457 1 0 "d372f898_6d32_4d80_ab4d58340d18681d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 458 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 459 1 0 "9e573132_bd29_4d08_a1784d0e26c48700" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 460 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 461 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 462 1 0 "48db1de6_2a87_4224_b1f13fa2a75b490a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 463 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 464 1 0 "1e8e9562_41c0_4df5_9de945c44d1e8d61" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn); // }} "" // {{{ 465 1 0 "a5de7c97_d49c_4f04_b1414f1aaace7f84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Move - step return :"), o_stepReturn); // }} "" // {{{ 466 1 0 "6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 467 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 468 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 469 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 470 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPlace") { // }} "" // {{ 471 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 472 1 0 "18e9697d_0efb_4840_94a65e2a82b4ca69" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 473 1 0 "b0c35970_122b_4119_92c3801f4b8e980b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 474 1 0 "6ed697af_a110_4104_941633e154ff0071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 475 1 0 "fec1982e_3636_412d_af2eda243438f7ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 476 1 0 "21de27ac_9dc3_415b_b1d1e49e80c53591" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 477 1 0 "652aeaa7_9a2f_4c11_8bc1fc58a97ffed7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 478 1 0 "e88a5df4_d9ad_4231_89a5a03f88d0ce77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 479 1 0 "8c5aee51_3156_4fcc_b1b167552b73476f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 480 1 0 "8c257b39_8c0b_410d_a4a4e38df904008c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 481 1 0 "91e9f4c6_b7fe_4b15_83c830df3385398a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{ 482 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 483 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 484 1 0 "226bb6d1_37a1_4076_9d96fb9df69c6068" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 485 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 486 1 0 "ec2fd48b_eab9_491e_867c0fc335eea81c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 487 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 488 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 489 1 0 "e590d9b6_f690_48db_b0109a10c228d5ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 490 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 491 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 492 1 0 "82559320_1e13_40c9_b283fdfa804df6a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 493 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 494 1 0 "420daa28_bf45_407a_bd576559af75c5d0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 495 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 496 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 497 1 0 "3ed6b704_3649_4c7d_8e7d30bdb038feab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 498 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 499 1 0 "41a130e8_a745_4a20_b124272093bf38e7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn); // }} "" // {{{ 500 1 0 "b4bdf08c_e218_4bec_98c0f41e6ec3a218" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Place - step return :"), o_stepReturn); // }} "" // {{{ 501 1 0 "346b983b_d261_4447_a7cebf782db4b4d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 502 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 503 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 504 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 505 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPark") { // }} "" // {{ 506 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 507 1 0 "73602d5e_7f8d_45dc_9c1f21d41c39d0bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("showCollisionCheckDialog"), showCollisionCheckDialog); // }} "" // {{ 508 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 509 1 0 "acf5767a_7e39_4072_8e062928938984cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{{ 510 1 0 "96b1bdf6_a3f3_4530_844fc77cbf7fb944" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 511 1 0 "d03fdac4_224f_4174_924fb518a623bf65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 512 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 513 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 514 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 515 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGetFirst") { // }} "" // {{ 516 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 517 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 518 1 0 "5f9f4b8d_3b3a_48ee_89ef334a70dcb72e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{ 519 1 0 "65648900_32b3_4035_9eb5916a3314f7e9" "ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}" { variable arrRetValues[]; arrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40("65648900_32b3_4035_9eb5916a3314f7e9"); // GetFirstPlatePosition } // }} "" // {{{ 520 1 0 "63380bb7_5afe_4d65_9dc5cdf334590b4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 521 1 0 "cdb18c48_14d5_430d_9f7202f782e069da" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 522 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 523 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 524 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 525 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 526 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "FirmwareCommand") { // }} "" // {{ 527 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 528 1 0 "5f5e5c89_0c1a_497b_80c550dbc4676208" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate("FirmwareCommandList")); // }} "" // {{ 529 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(CommandListElement = 0; CommandListElement < CommandListLength;) { CommandListElement = CommandListElement + 1; // }} "" // {{{ 530 1 0 "2c2e9953_5968_4384_8b2dad24b0960278" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate("FirmwareCommandList"), CommandListElement, FirmwareCmdDict); // }} "" // {{{ 531 1 0 "7f4d5cda_c10f_4317_ba7613cd10d2e90d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareCommand"), FirmwareCommand); // }} "" // {{{ 532 1 0 "cf155262_dfb4_46b4_aff762c7b4c18d8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareParameter"), FirmwareParameter); // }} "" // {{{ 533 1 0 "471df283_02f5_4daf_9c83999e3b1fd8e1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn); // }} "" // {{{ 534 1 0 "0b8e6d49_655f_42a7_bcfdeac76a40c6e0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 535 1 0 "f49f31b3_d742_44ae_a6a076108c3f9ab4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 536 1 0 "ff83dd4c_3534_4986_94892407e3535fc9" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 537 1 0 "cc6fc2b8_d157_4b37_bc7521b8a6fd04a3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 538 1 0 "2b1aa4c9_4f3c_4d90_adb26b947b024496" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 539 1 0 "d022cf45_e823_4e11_931bf77272b92501" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 540 1 0 "193ad70f_ec03_47e5_b1f5ef9ff75805c0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 541 1 0 "5861a5ed_1f9d_48fc_9f3d976bc1a13751" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "setAspirateParam") { // }} "" // {{{ 542 1 0 "d741f062_6b73_4365_ad9c8646a016138d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LiquidClass"), LiquidClassName); // }} "" // {{{ 543 1 0 "86836193_1dcb_460e_8db2dda6b775abd9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Parameter"), LiqClassParameterName); // }} "" // {{{ 544 1 0 "d94798d1_53c6_40de_b72c239404c94352" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Value"), LiqClassParameterValue); // }} "" // {{ 545 1 0 "cca3a5d2_6d84_4105_a976a70a83585972" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E1EAD148F3254941A251DC272F774AB4 ; err.Clear(); // }} "" // {{{ 546 1 0 "3f31be32_d184_4c20_a5127e5057f15149" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SelectLiquidClass(LiquidClassName); // }} "" // {{{ 547 1 0 "b75ad951_95b1_4114_864093345ffb2cdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SetLiquidClassAspirateParameter(LiqClassParameterName, LiqClassParameterValue); // }} "" // {{ 548 1 0 "a39ebf7f_8e12_47a6_aad54fd2890ba779" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 549 1 0 "cca3a5d2_6d84_4105_a976a70a83585972" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E1EAD148F3254941A251DC272F774AB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 550 1 0 "a14cc465_549a_4722_b3fb08ce2532a405" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 551 1 0 "cca3a5d2_6d84_4105_a976a70a83585972" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 552 1 0 "ec08039a_3b70_4854_894d57c13ffdc877" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 553 1 0 "5861a5ed_1f9d_48fc_9f3d976bc1a13751" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 554 1 0 "833dd647_9b77_4420_bcf4ca4df1d1919a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "setDispenseParam") { // }} "" // {{{ 555 1 0 "4aa7b9ce_fd73_4a55_9a3c704bfb4c443d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("LiquidClass"), LiquidClassName); // }} "" // {{{ 556 1 0 "27e93e41_ad5f_4b74_a1844bb15c0dfdfc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Parameter"), LiqClassParameterName); // }} "" // {{{ 557 1 0 "10da81a6_cef8_4c18_9416f561b557ad45" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Value"), LiqClassParameterValue); // }} "" // {{ 558 1 0 "cee50056_b4b0_473b_8d775dd178dab21d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3A18CA152B674dd3A42B81C4D45F719E ; err.Clear(); // }} "" // {{{ 559 1 0 "b471ff31_4fdd_4a9f_87431e5741a9b969" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SelectLiquidClass(LiquidClassName); // }} "" // {{{ 560 1 0 "8f401b71_156d_43b5_892982e8478456f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SetLiquidClassDispenseParameter(LiqClassParameterName, LiqClassParameterValue); // }} "" // {{ 561 1 0 "28e95405_685a_4032_b361461ff897189f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 562 1 0 "cee50056_b4b0_473b_8d775dd178dab21d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3A18CA152B674dd3A42B81C4D45F719E : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 563 1 0 "c7174915_16fd_40d8_b94eac8999f4eab7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 564 1 0 "cee50056_b4b0_473b_8d775dd178dab21d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 565 1 0 "d805e811_a796_44e9_93839b02b6d05f1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Liquid Class Set Parameter:"), o_stepReturn); // }} "" // {{{ 566 1 0 "da31069e_a165_4c2e_b95619cb57c4ae8a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 567 1 0 "833dd647_9b77_4420_bcf4ca4df1d1919a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 568 1 0 "193ad70f_ec03_47e5_b1f5ef9ff75805c0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 569 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 570 1 0 "2777cb67_3095_437b_9b54d34ead8fcab2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 571 1 0 "c397d56d_00f8_4e32_bf71c20e91dcac17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ConnectIP") { // }} "" // {{{ 572 1 0 "b450ee5c_4bce_435e_b562523f18ce0142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("InstrumentName"), InstrumentName); // }} "" // {{{ 573 1 0 "13c30b43_9a94_4cd1_a907aa21f01057cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PortNumber"), PortNumber); // }} "" // {{{ 574 1 0 "68ec12ae_0e01_4827_9460e39fddef7f4d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 575 1 0 "7c482f87_e50a_44d8_88516cf7d087dbde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MPEOptions"), MPEOptions); // }} "" // {{{ 576 1 0 "8d4e01b7_ef9e_4570_a2e08f31ecacc259" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingIP(InstrumentName, PortNumber, SimulationMode, MPEOptions, DeviceID, o_stepReturn); // }} "" // {{{ 577 1 0 "005f0b12_4fb1_48ba_bcfeb961b9419149" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DeviceID = StrIStr(DeviceID); // }} "" // {{{ 578 1 0 "51077fef_f212_48a6_8f6c43d7d5f5df97" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 579 1 0 "97ff097f_9089_4ac0_82438cbd6f0a9c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, DeviceID, Translate(""), Translate(""), id); // }} "" // {{ 580 1 0 "c397d56d_00f8_4e32_bf71c20e91dcac17" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 581 1 0 "2777cb67_3095_437b_9b54d34ead8fcab2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 582 1 0 "62a26733_db4f_440f_9fb51db5fef61711" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 583 1 0 "0098c030_fe6b_49bb_92b77ef5a5c7372d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ConnectCOM") { // }} "" // {{{ 584 1 0 "e8776203_e1ed_4373_8a427cb0d8b8d29f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ComPort"), ComPort); // }} "" // {{{ 585 1 0 "4c600ed2_a490_4f3e_bdadfe3b174db193" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("BaudRate"), BaudRate); // }} "" // {{{ 586 1 0 "e77abf5c_e94e_469b_82ea0f774615a671" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 587 1 0 "aaebc2c7_eafc_456e_83386035ed203694" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MPEOptions"), MPEOptions); // }} "" // {{{ 588 1 0 "3b2a8a1c_5b74_4668_b7a5ca974a7658b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ConnectUsingCOM(ComPort, BaudRate, SimulationMode, MPEOptions, DeviceID, o_stepReturn); // }} "" // {{{ 589 1 0 "1a9f7ef9_8c04_4517_8d26efaa81d3eff7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 590 1 0 "104f0498_cc9f_4508_8f28e3b53675ef53" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 591 1 0 "0098c030_fe6b_49bb_92b77ef5a5c7372d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 592 1 0 "62a26733_db4f_440f_9fb51db5fef61711" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 593 1 0 "94f49f46_ad96_4874_9148653f8fa3302e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 594 1 0 "1abd6ad0_87b9_4459_b74e20f9717ebd2b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ClampFilterPlate") { // }} "" // {{{ 595 1 0 "bdc39916_5944_49a4_846784d94f27267f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 596 1 0 "cf252c80_073f_4e8b_85e84a546e80666b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ClampFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 597 1 0 "16a9c218_a7c3_403c_a7c005e96566f8d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 598 1 0 "de8afcf3_ec32_4067_895aceb7a7a650eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 599 1 0 "1abd6ad0_87b9_4459_b74e20f9717ebd2b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 600 1 0 "94f49f46_ad96_4874_9148653f8fa3302e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 601 1 0 "d19e0aae_3b5d_4b88_9b9fa6cd22d67f22" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 602 1 0 "421097a4_a57a_4dec_8b9257b5d77233e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_CollectionPlatePlaced") { // }} "" // {{{ 603 1 0 "ae857f70_e319_4ada_a8b086f120e84247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 604 1 0 "a173d887_781c_4262_9fa6c81e253bd32c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CollectionPlateHeight"), CollectionPlateHeight); // }} "" // {{{ 605 1 0 "7e167a7c_dfb2_4798_814039b7430ccbae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("OffsetFromNozzles"), OffsetFromNozzles); // }} "" // {{{ 606 1 0 "aa2d8e6c_c878_40f1_a1325cb8fe399514" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlatePlaced(DeviceID, CollectionPlateHeight, OffsetFromNozzles, o_stepReturn); // }} "" // {{{ 607 1 0 "6ad949b9_e02e_4686_be660950f5282aee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 608 1 0 "99fa8dd5_ac5f_4d13_91fb69b65d2bc0ea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 609 1 0 "421097a4_a57a_4dec_8b9257b5d77233e4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 610 1 0 "d19e0aae_3b5d_4b88_9b9fa6cd22d67f22" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 611 1 0 "21b7e081_f229_400f_9a51a8b8a5412447" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 612 1 0 "b7625009_1717_4db6_8d24209ff3b8dbb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_CollectionPlateRemoved") { // }} "" // {{{ 613 1 0 "fc436f5c_aaba_4906_a4074c83d00f028c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 614 1 0 "65ba4a03_7064_45c5_8ae9ffb86a3234b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_CollectionPlateRemoved(DeviceID, o_stepReturn); // }} "" // {{{ 615 1 0 "39ef177a_96d2_411f_97c648ff2ed91ea8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 616 1 0 "cbdb85be_569e_40cb_93e3582de4fd718f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 617 1 0 "b7625009_1717_4db6_8d24209ff3b8dbb8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 618 1 0 "21b7e081_f229_400f_9a51a8b8a5412447" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 619 1 0 "38689ea3_dc56_4d7c_88d585797b9d957e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 620 1 0 "ee3d4b03_3d8c_4718_9f927c1855c7346e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Disconnect") { // }} "" // {{{ 621 1 0 "acfb16ed_a9d1_4a63_a9c0106aff00758d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 622 1 0 "f0cbe63d_fe07_4cc6_8bcb70bf9c7de9ec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn); // }} "" // {{{ 623 1 0 "b23baddd_cdbc_45fd_8c093ab349a937f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 624 1 0 "1695a8ad_2f0f_48a1_a9d8534daaa45c88" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 625 1 0 "ee3d4b03_3d8c_4718_9f927c1855c7346e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 626 1 0 "38689ea3_dc56_4d7c_88d585797b9d957e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 627 1 0 "45f798d0_f63a_4141_9f0512725c85b742" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 628 1 0 "3d8efec9_ac55_4f4d_90f0259610f7394d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Dispense") { // }} "" // {{{ 629 1 0 "d9eb3796_7e12_47f9_b6636e222cb5d878" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 630 1 0 "b1b7d9a5_44ce_4588_b1315c2c2c0a6d6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 631 1 0 "e9efebdb_3e29_4a1f_9a03447005f6b247" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 632 1 0 "6812297a_3eee_4055_8de5373a96f6eb0c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 633 1 0 "b6c33a7b_d31f_4f02_8921532db5005869" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), NeedleOffset); // }} "" // {{{ 634 1 0 "f78d0de5_185c_4061_ad416fe94f5dba58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Disconnect(DeviceID, o_stepReturn); // }} "" // {{{ 635 1 0 "01ebd08b_bf22_4edc_b4101325c0ed5d7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 636 1 0 "46be0614_7064_45bf_962fe4fdb2d26ad3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 637 1 0 "3d8efec9_ac55_4f4d_90f0259610f7394d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 638 1 0 "45f798d0_f63a_4141_9f0512725c85b742" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 639 1 0 "c0d12f62_bf0c_4968_8cf8102df9290745" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 640 1 0 "e0397cd6_5fd2_4820_953df1804d2989f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Evaporate") { // }} "" // {{{ 641 1 0 "eff0d502_cbda_4d56_a060ee98b8acfa1b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 642 1 0 "358b8e75_dcca_4656_8f480e051d9768ac" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 643 1 0 "11f40dee_5289_4a85_b3065e4b85d93416" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 644 1 0 "e660629d_9388_44fa_9749984b17a66bc9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellDepth"), WellDepth); // }} "" // {{{ 645 1 0 "3a86a09d_a4ea_4a34_8573e644beb7c6a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 646 1 0 "6cc724c7_a4bf_4c46_948af3e23aaa8758" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 647 1 0 "6bba2cf9_561d_4a3f_87ee7949c7ce3fbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 648 1 0 "d305f425_1c51_43f7_9c5bd6ec76d64b05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 649 1 0 "e0397cd6_5fd2_4820_953df1804d2989f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 650 1 0 "c0d12f62_bf0c_4968_8cf8102df9290745" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 651 1 0 "54c61117_4dde_492d_91df73eafbdbdf0a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 652 1 0 "ea8576f1_52df_4787_b62e82c44a5b6131" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporatePrepare") { // }} "" // {{{ 653 1 0 "04b183eb_df7f_4775_a8db9b61d0822126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 654 1 0 "7ae5dae4_f3fe_42d9_b07c545e18248898" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 655 1 0 "67e84057_0c19_4600_b6bb1cda5b345f8d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 656 1 0 "31ab1ccb_49b6_45ab_886cb04421f727d1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellDepth"), WellDepth); // }} "" // {{{ 657 1 0 "f9f854b4_d03f_44fa_866ecad432e5ee59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 658 1 0 "0e37d7ed_b49b_42c3_b9306b90a8fbecba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 659 1 0 "bdc5441b_5578_4bb1_9a5511f8d6cb37a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 660 1 0 "82509201_581c_4a09_8c1fba65491074b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 661 1 0 "ea8576f1_52df_4787_b62e82c44a5b6131" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 662 1 0 "54c61117_4dde_492d_91df73eafbdbdf0a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 663 1 0 "f877f93d_359e_486f_aabbf156b38c0fd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 664 1 0 "be0cdb40_9439_44c4_9349319653177825" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporateEnd") { // }} "" // {{{ 665 1 0 "661eb571_7a3f_452f_8cd8e71af5633aa2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 666 1 0 "ce6d86eb_0d5e_4931_9b8ae8ab7b99d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 667 1 0 "407cb55f_f828_4adb_b9a1dcfb39934436" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_EvaporateEnd(DeviceID, Timeout, o_stepReturn); // }} "" // {{{ 668 1 0 "3281176b_4d2d_43ea_b218e196deacc5a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 669 1 0 "dc7eb698_c6ab_4bce_b2eae2a106e79c26" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 670 1 0 "be0cdb40_9439_44c4_9349319653177825" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 671 1 0 "f877f93d_359e_486f_aabbf156b38c0fd4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 672 1 0 "77175285_9bc0_458e_bdb99486afa263f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 673 1 0 "1d9fee0e_9129_4e05_9387d48ad64ce5b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_EvaporateWithRate") { // }} "" // {{{ 674 1 0 "f74fcc26_c2be_481c_9b4822ade43b6399" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 675 1 0 "d104e730_2dfe_46de_9499ec6975f6d3ba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("PlateHeight"), PlateHeight); // }} "" // {{{ 676 1 0 "ef36faf4_19fc_4253_92c3ba78e66fa81b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NeedleOffset"), Needleoffset); // }} "" // {{{ 677 1 0 "4e02e5d8_e2c2_421e_9e232b4b54ffc755" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("EvaporateTravelDistance"), EvaporateTravelDistance); // }} "" // {{{ 678 1 0 "d5f4fc63_608e_48f5_be8989e9f0ed73d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("EvaporateTime"), EvaporateTime); // }} "" // {{{ 679 1 0 "ce2ba2cc_4f8f_4960_a2120a80bdee1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FollowRate"), FollowRate); // }} "" // {{{ 680 1 0 "72651c9a_a411_472d_9fbc4d5cf13dbe7f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Evaporate(DeviceID, PlateHeight, NeedleOffset, WellDepth, EvaporateTime, o_stepReturn); // }} "" // {{{ 681 1 0 "6d1ded15_26bd_4832_a66e0a7ed7ae5de8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 682 1 0 "24da9a05_6ec1_4a5d_aa357161406c5b4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 683 1 0 "1d9fee0e_9129_4e05_9387d48ad64ce5b6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 684 1 0 "77175285_9bc0_458e_bdb99486afa263f6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 685 1 0 "18d62f91_3389_4a05_81dcd2b1f9f35eb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 686 1 0 "5517c3d2_626c_49ed_9f300f5eb7cad266" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterPlatePlaced") { // }} "" // {{{ 687 1 0 "6ad26884_293d_471f_87d63211dbb2130a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 688 1 0 "f712b14e_2361_4388_aaa3d1b6bdd76274" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FilterHeight"), FilterHeight); // }} "" // {{{ 689 1 0 "046c36b4_609e_41ad_802334b853237e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("NozzleHeight"), NozzleHeight); // }} "" // {{{ 690 1 0 "9cd1e28f_9f73_4580_933330d72a187021" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_FilterPlatePlaced(DeviceID, FilterHeight, NozzleHeight, o_stepReturn); // }} "" // {{{ 691 1 0 "77cbd1e2_38c4_46cf_8a36d8bf2fd59668" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 692 1 0 "e9b09e36_5025_44eb_8a0241793ecb2130" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 693 1 0 "5517c3d2_626c_49ed_9f300f5eb7cad266" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 694 1 0 "18d62f91_3389_4a05_81dcd2b1f9f35eb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 695 1 0 "a8bdabef_328d_4914_85c9d5a5e206e280" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 696 1 0 "ba1982ca_d913_4372_a876d2c629a3da01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_FilterPlateRemoved") { // }} "" // {{{ 697 1 0 "c8d80340_50aa_42c3_99a4c45d2c5a2e55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 698 1 0 "7ca7dac8_386f_4d72_a80c56436e8d337a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_FilterPlateRemoved(DeviceID, o_stepReturn); // }} "" // {{{ 699 1 0 "7815e103_9108_40ec_8c501ab868674b02" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 700 1 0 "7fab13f9_e6cb_4d15_9c7359f69f1452eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 701 1 0 "ba1982ca_d913_4372_a876d2c629a3da01" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 702 1 0 "a8bdabef_328d_4914_85c9d5a5e206e280" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 703 1 0 "d93f150d_eae1_437f_a22a3b0c4c9072e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 704 1 0 "df5f2b51_da1c_47c3_83076cfc5952018e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Flush") { // }} "" // {{{ 705 1 0 "ebd897c5_30b8_4f3b_9955cc2c076a2cec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 706 1 0 "8a5b6ab5_73a5_448f_97d7f2f80f295781" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 707 1 0 "7618744c_4ba2_44a3_af152e17b8f23a82" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 708 1 0 "0b45dbd2_d2ac_4bbc_b063c7256c9e2f37" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 709 1 0 "7ebe8a95_b1cb_40d0_9bbf0caa753020ff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Flush(DeviceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn); // }} "" // {{{ 710 1 0 "f4745c1d_3edb_4f49_9389682fd5db4746" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 711 1 0 "84a474ac_82c0_447e_853e8a0e803cdc9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 712 1 0 "df5f2b51_da1c_47c3_83076cfc5952018e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 713 1 0 "d93f150d_eae1_437f_a22a3b0c4c9072e4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 714 1 0 "117f1e32_da28_4bc8_ad90f5a4f2bef282" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 715 1 0 "467d4218_0310_4b7c_a0b5c6ba53779408" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetContainerCalibration") { // }} "" // {{{ 716 1 0 "8399e7aa_cf6e_40a4_94cbfd345e14133a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 717 1 0 "1b0cf945_ddeb_4f68_ad8567b71c28ba9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 718 1 0 "49eec349_8ea2_4006_8740931d862a8cc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetContainerCalibration(DeviceID, SourceID, CapacityVolume, EmptyReading, FullReading, CalibrationDate, o_stepReturn); // }} "" // {{{ 719 1 0 "c87d301f_8a12_4619_b911ef3098a17d58" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 720 1 0 "7e693f5e_19bf_4fe8_93ae99fb04f02aa3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CapacityVolume = StrFStr(CapacityVolume); // }} "" // {{{ 721 1 0 "8d684024_7a1e_41a0_aff0fbb060f288c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" EmptyReading = StrIStr(EmptyReading); // }} "" // {{{ 722 1 0 "e403fc76_66e2_4138_a91ad409fba41579" "{C1F3C015-47B3-4514-9407-AC2E65043419}" FullReading = StrIStr(FullReading); // }} "" // {{{ 723 1 0 "a338088c_aba6_4925_9499261419f3fd32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CapacityVolume, EmptyReading, FullReading, CalibrationDate, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 724 1 0 "467d4218_0310_4b7c_a0b5c6ba53779408" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 725 1 0 "117f1e32_da28_4bc8_ad90f5a4f2bef282" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 726 1 0 "28cc7be8_7ef9_43fd_a8b86cc9f0a88a77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 727 1 0 "883d189a_5580_49b9_92fa9f7ea0b841bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetHeaterStatus") { // }} "" // {{{ 728 1 0 "c3c00992_49fa_4e7a_930d860185676008" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 729 1 0 "a566cb57_a308_4f8d_ab4f730e5a7dcad6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Reset"), blnReset); // }} "" // {{{ 730 1 0 "6c9f1bfd_e7d9_49a3_9ffc43f57d0b87c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetCurrentHeaterStatus(DeviceID, blnReset, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, o_stepReturn); // }} "" // {{{ 731 1 0 "4e871da2_7414_4d04_af1133edc74f8ceb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 732 1 0 "17cbeaea_77c3_429f_852469beae65bff2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CurrentEvaporatorTemperature = StrFStr(CurrentEvaporatorTemperature); // }} "" // {{{ 733 1 0 "99e68adc_1ab2_44c2_99bb0d0791bb4b03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CurrentGasTemperature = StrFStr(CurrentGasTemperature); // }} "" // {{{ 734 1 0 "19ba4b88_434c_4874_adfb9c3ce28707c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Heating = StrIStr(Heating); // }} "" // {{{ 735 1 0 "8bfee3ed_2dfd_4096_95a3693ae02cb98b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, CurrentEvaporatorTemperature, CurrentGasTemperature, Heating, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 736 1 0 "883d189a_5580_49b9_92fa9f7ea0b841bc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 737 1 0 "28cc7be8_7ef9_43fd_a8b86cc9f0a88a77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 738 1 0 "6161ab17_f584_4948_917386b1caf60999" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 739 1 0 "9f1343e7_8811_4e80_a8d30414ee14e3c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetHeaterRange") { // }} "" // {{{ 740 1 0 "ff106776_2ea1_4be4_bf299c1e9f4d6812" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 741 1 0 "d35c7d7b_4e20_4729_898cf76f032dbd77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Reset"), blnReset); // }} "" // {{{ 742 1 0 "eac04ccb_1d2f_4e47_a38e27549db3d0f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetHeaterTemperatureRange(DeviceID, blnReset, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, o_stepReturn); // }} "" // {{{ 743 1 0 "7e058389_5584_400d_af8f7683d9c64549" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 744 1 0 "cef6dc8b_b0ab_4b67_80965a20bad984a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumEvaporatorTemperature = StrFStr(MinimumEvaporatorTemperature); // }} "" // {{{ 745 1 0 "e95a4014_66ab_4bd9_9396f43fb303387c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumEvaporatorTemperature = StrFStr(MaximumEvaporatorTemperature); // }} "" // {{{ 746 1 0 "82d2e7b9_6b0f_4659_b3c4af2260f72b93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumGasTemperature = StrFStr(MinimumGasTemperature); // }} "" // {{{ 747 1 0 "9d086c63_6438_4455_839b70d859d33023" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumGasTemperature = StrFStr(MaximumGasTemperature); // }} "" // {{{ 748 1 0 "1c25f8f9_a087_4d7d_b537d06915cf733a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TargetTemperature = StrFStr(TargetTemperature); // }} "" // {{{ 749 1 0 "e0990ab5_662a_4046_a221118108390ad1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Heating = StrIStr(Heating); // }} "" // {{{ 750 1 0 "f32ac914_9488_4849_9b505cfae76c21a4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumEvaporatorTemperature, MaximumEvaporatorTemperature, MinimumGasTemperature, MaximumGasTemperature, TargetTemperature, Heating, Translate(""), Translate(""), id); // }} "" // {{ 751 1 0 "9f1343e7_8811_4e80_a8d30414ee14e3c2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 752 1 0 "6161ab17_f584_4948_917386b1caf60999" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 753 1 0 "cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 754 1 0 "3be8b4d4_175f_4ea5_8a5c403023c23804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetPressureReadings") { // }} "" // {{{ 755 1 0 "d6ee9000_e96e_43ee_be294bac2de3cebd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 756 1 0 "62c2838f_1e9c_4f50_a8986bd6ab2e5735" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetPressureSensorReadings(DeviceID, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, o_stepReturn); // }} "" // {{{ 757 1 0 "9202b3b4_73ed_457a_8a0eb740d92668eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 758 1 0 "49fdda2e_2786_49cf_bbf53a56bb6cf951" "{C1F3C015-47B3-4514-9407-AC2E65043419}" InputPressureSensor = StrFStr(InputPressureSensor); // }} "" // {{{ 759 1 0 "5b345de1_5fff_4ef5_b48fac2958608067" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ManifoldPressureSensor = StrFStr(ManifoldPressureSensor); // }} "" // {{{ 760 1 0 "5083be24_6502_40dc_94e99eb7e72397de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HighPressureSensor = StrFStr(HighPressureSensor); // }} "" // {{{ 761 1 0 "c5d4f5bc_5388_4cac_a5c92cce84c5358c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LowPressureSensor = StrFStr(LowPressureSensor); // }} "" // {{{ 762 1 0 "93af4507_f837_4e4d_bd0cfa9d8f20db45" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, InputPressureSensor, ManifoldPressureSensor, HighPressureSensor, LowPressureSensor, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 763 1 0 "3be8b4d4_175f_4ea5_8a5c403023c23804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 764 1 0 "cb3890ff_9ac7_4b9a_bf7e07d7962bd4dc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 765 1 0 "8eb4fcd2_8586_4fdc_9eaa231938c2491c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 766 1 0 "fb5f809e_bea3_4152_8c23efc086a3f4c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetTemperatureRange") { // }} "" // {{{ 767 1 0 "04868a2f_2244_4262_b16ed3464405a2c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 768 1 0 "ac4b978a_8b0e_48c8_bfcc2cb81ada8852" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetTemperatureRange(DeviceID, MinimumTemperature, MaximumTemperature, o_stepReturn); // }} "" // {{{ 769 1 0 "878c4de8_f440_43d6_aa9a22d5f30c96bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 770 1 0 "9643b7dd_1445_4981_82306a0204482dcd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MinimumTemperature = StrFStr(MinimumTemperature); // }} "" // {{{ 771 1 0 "5fb79249_c2be_45bc_a99aecb05a4cef34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MaximumTemperature = StrFStr(MaximumTemperature); // }} "" // {{{ 772 1 0 "57512d47_ace9_4c17_a0287a31498292bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, MinimumTemperature, MaximumTemperature, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 773 1 0 "fb5f809e_bea3_4152_8c23efc086a3f4c7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 774 1 0 "8eb4fcd2_8586_4fdc_9eaa231938c2491c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 775 1 0 "3f6b43d7_b3e1_4516_9a607047551e5f6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 776 1 0 "6be26021_e618_492e_8a3a5f94a52da0f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetVacuumStatus") { // }} "" // {{{ 777 1 0 "4db40245_36cd_40c8_b0602871bedce402" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 778 1 0 "cdd4bed1_2257_47d3_bb32dfb51dd99311" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetVacuumStatus(DeviceID, VacuumActive, o_stepReturn); // }} "" // {{{ 779 1 0 "434c4447_ccaa_4ae8_b5332ea4a5247979" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 780 1 0 "2758aebe_4437_4436_9ecd66602ecc20ea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" VacuumActive = StrIStr(VacuumActive); // }} "" // {{{ 781 1 0 "1a22fa96_1f2a_4efb_8d4d1070f05128b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, VacuumActive, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 782 1 0 "6be26021_e618_492e_8a3a5f94a52da0f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 783 1 0 "3f6b43d7_b3e1_4516_9a607047551e5f6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 784 1 0 "1fae7e92_6b1f_4f2a_8504e8aba7fe0846" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 785 1 0 "18c78d3a_83f1_4e2a_9721dc575c326856" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Initialize") { // }} "" // {{{ 786 1 0 "18e9c18e_3415_4f68_b3216e3a2bb3a082" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 787 1 0 "5335daba_8a63_418b_8286e19dbc73285e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Initialize(DeviceID, o_stepReturn); // }} "" // {{{ 788 1 0 "e9ab19e3_4828_4ead_93cb698560e3faff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 789 1 0 "67b12292_2128_495d_af7839b207477794" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 790 1 0 "18c78d3a_83f1_4e2a_9721dc575c326856" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 791 1 0 "1fae7e92_6b1f_4f2a_8504e8aba7fe0846" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 792 1 0 "d96ac0b7_1237_4603_ad86dfe4672ef89a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 793 1 0 "0addb922_82a5_48e4_bf52eeb97ac93f2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_InitializeWithParameters") { // }} "" // {{{ 794 1 0 "1c9e6c43_c0a4_4fa5_96eff1d2638b4426" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 795 1 0 "a9676aeb_9a8e_4f87_866088fd8da32782" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Smart"), Smart); // }} "" // {{{ 796 1 0 "b0f5b856_a01f_4937_bce0d90f8e48a0bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 797 1 0 "3d105105_b5a2_42bf_9008c50dfb529abf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("VacuumRunTime"), VacuumRunTime); // }} "" // {{{ 798 1 0 "1b067bb0_12d6_47c9_b86eb44ca7ac70a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 799 1 0 "abffb784_24c3_4278_9404e88b2a184ec3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 800 1 0 "7f31c229_eea4_4ebc_918ad520b4e80270" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 801 1 0 "0addb922_82a5_48e4_bf52eeb97ac93f2a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 802 1 0 "d96ac0b7_1237_4603_ad86dfe4672ef89a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 803 1 0 "9e52a7cb_3167_4057_8d24d034c837de21" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 804 1 0 "5875c2d2_c94b_4860_9be1bc9f16bd64b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_SetSourceConfiguration") { // }} "" // {{{ 805 1 0 "77c0d7cc_1c53_47b5_af15f1eb5743701e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 806 1 0 "1150d6cb_b379_4fab_8bf98a17ac6ed92c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_SetSourceConfiguration(DeviceID, o_stepReturn); // }} "" // {{{ 807 1 0 "2ba32cb4_0177_497e_9a7f398e17134a01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 808 1 0 "a2b6bb52_3165_4bb9_986611d0b8594d1c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 809 1 0 "5875c2d2_c94b_4860_9be1bc9f16bd64b9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 810 1 0 "9e52a7cb_3167_4057_8d24d034c837de21" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 811 1 0 "cf140f83_9405_4c31_aac2bda7e3c3644d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 812 1 0 "125ed949_ace4_48a0_a45208b5a26a9545" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_GetSourceConfiguration") { // }} "" // {{{ 813 1 0 "24cc9f9b_b984_4405_80b21f8bbad2c171" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 814 1 0 "105846b6_bda2_49d7_bb68c38e99c676ce" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_GetSourceConfiguration(DeviceID, o_stepReturn); // }} "" // {{{ 815 1 0 "8fd730db_f3ad_4187_819383f962b15dec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 816 1 0 "d5402a0c_e7d8_4021_98f2bc49164541bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 817 1 0 "125ed949_ace4_48a0_a45208b5a26a9545" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 818 1 0 "cf140f83_9405_4c31_aac2bda7e3c3644d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 819 1 0 "f0e280e8_46c7_4f0f_bce33a9d98578e01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 820 1 0 "656f66da_3ff6_4ceb_b3958dda3e826289" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_MeasureEmptyContainer") { // }} "" // {{{ 821 1 0 "23e6b66b_51c5_44d2_8107b570ab035bb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 822 1 0 "c791ded2_4daa_4097_811ad01cd9dbd85e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 823 1 0 "d4c8df90_fdb5_4fb4_a5ffe9e46525c9a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_MeasureEmptyContainer(DeviceID, SourceID, SensorReading, o_stepReturn); // }} "" // {{{ 824 1 0 "6766bf7d_aaa7_44dd_beb7bd1925733781" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SensorReading = StrIStr(SensorReading); // }} "" // {{{ 825 1 0 "f566d5c3_5839_4a53_aaa0e7e76d6a96d6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 826 1 0 "ca746d4d_adf9_4d6d_b0172f1cb9e3cefe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(""), Translate(""), id); // }} "" // {{ 827 1 0 "656f66da_3ff6_4ceb_b3958dda3e826289" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 828 1 0 "f0e280e8_46c7_4f0f_bce33a9d98578e01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 829 1 0 "5be53554_4034_4654_a74514eb0d84e4a0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 830 1 0 "ce68b054_3aea_4f0f_9742872cca60f368" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_MeasureFullContainer") { // }} "" // {{{ 831 1 0 "7ad49fa3_f8ed_4826_8c29ea54aff99447" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 832 1 0 "636296bf_cd25_4c6e_a97120b96714e0a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 833 1 0 "1025d7d1_0cb5_4c03_93a47206d7a73279" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_MeasureFullContainer(DeviceID, SourceID, SensorReading, o_stepReturn); // }} "" // {{{ 834 1 0 "14a2a705_9362_44f9_aacee14e4189bc2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SensorReading = StrIStr(SensorReading); // }} "" // {{{ 835 1 0 "64c67d08_dac7_49dc_8a3082c4658649d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 836 1 0 "08dbfd92_e2cd_4c53_8d8b8afb8f41b76a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, SensorReading, Translate(""), Translate(""), id); // }} "" // {{ 837 1 0 "ce68b054_3aea_4f0f_9742872cca60f368" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 838 1 0 "5be53554_4034_4654_a74514eb0d84e4a0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 839 1 0 "9e79226f_dd2d_49f1_9ab8ca9ddc07f66d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 840 1 0 "52fa4642_56e3_46b8_a5170d58a3d45e6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Prime") { // }} "" // {{{ 841 1 0 "d59e0e58_e6a4_49dc_b79c3b224f9250f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 842 1 0 "81800d57_5b2e_4f60_80fb02f54c6d898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 843 1 0 "6f11abee_b07f_4e3a_a91a2bb6132b9346" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("WellVolume"), WellVolume); // }} "" // {{{ 844 1 0 "65f68e8f_a3f8_4c0e_b02af46ef0830a94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("FlowRate"), FlowRate); // }} "" // {{{ 845 1 0 "92c62640_1748_47f5_a5b2d63033fab0fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 846 1 0 "bce1d424_198d_4a66_bb5cfcef4223a4c1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_Prime(DeviceID, SourceID, WellVolume, FlowRate, WasteContainerID, o_stepReturn); // }} "" // {{{ 847 1 0 "1d0fc35a_1e8f_492f_8115484ef5e4094c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 848 1 0 "7b33278e_8337_43df_80fb1df2dc8d7e27" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 849 1 0 "52fa4642_56e3_46b8_a5170d58a3d45e6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 850 1 0 "9e79226f_dd2d_49f1_9ab8ca9ddc07f66d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 851 1 0 "90d403df_555f_4782_bc0e9655c9dda244" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 852 1 0 "5d03c560_13d7_4f4a_97c5fcb059f5d281" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ProcessFilterToCollection") { // }} "" // {{{ 853 1 0 "327328cb_2c07_4cff_b99aff475bf220b0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 854 1 0 "c67ca153_084e_49de_aa07c55210f0743c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ControlPoints"), ControlPoints); // }} "" // {{{ 855 1 0 "3ccb3a1f_4958_435b_b896ebc512029a6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("ReturnPlate"), ReturnPlate); // }} "" // {{{ 856 1 0 "d9d5add8_e82e_4761_b5b96d5f19ec1723" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToCollectionPlate(DeviceID, ControlPoints, ReturnPlate, o_stepReturn); // }} "" // {{{ 857 1 0 "952f2d23_1b1e_4ff3_b0306759a52e52a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 858 1 0 "8d9318f1_ab21_410d_a9bfb449f75064ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 859 1 0 "5d03c560_13d7_4f4a_97c5fcb059f5d281" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 860 1 0 "90d403df_555f_4782_bc0e9655c9dda244" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 861 1 0 "8e0266d7_a3cc_479c_b67864f9bf0a850e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 862 1 0 "8d5a05ba_1847_47e1_9c2f5a7b692a6bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_ProcessFilterToWaste") { // }} "" // {{{ 863 1 0 "45a60cc8_74a9_4d7c_9eae47c478baa5c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 864 1 0 "1549fe1a_4e94_418f_bb409f1556ef9241" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ControlPoints"), ControlPoints); // }} "" // {{{ 865 1 0 "6a1fdb1f_ef59_4c6d_998478bb54397381" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("ReturnPlate"), ReturnPlate); // }} "" // {{{ 866 1 0 "74579c6b_27e5_47a2_9358294506ae9b62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 867 1 0 "fbfbbfb6_9858_4eee_aecb1e386ef2ee6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 868 1 0 "e8ddd588_e12c_4e6a_9318d0626a183210" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_ProcessFilterToWasteContainer(DeviceID, ControlPoints, ReturnPlate, WasteContainerID, DisableVacuumCheck, o_stepReturn); // }} "" // {{{ 869 1 0 "104d821e_df7b_4d35_9358fdbad381b0c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 870 1 0 "930b1fd7_1382_4dd3_bec3f722282383d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 871 1 0 "8d5a05ba_1847_47e1_9c2f5a7b692a6bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 872 1 0 "8e0266d7_a3cc_479c_b67864f9bf0a850e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 873 1 0 "12fe0846_bf72_4286_8bd87488438262ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 874 1 0 "88ca5064_cc0c_42e8_8cf1b70855183b72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_Disconnect") { // }} "" // {{{ 875 1 0 "469fd42b_7a31_4d98_91efb31d12064e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 876 1 0 "a37b4aa9_5d2f_4e3a_8134f806b1cc7204" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 877 1 0 "86edebb2_72b8_49f4_84f46c72b1cacaaa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 878 1 0 "d8835a8b_64ef_433a_8ca5a0a1a7302e05" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 879 1 0 "88ca5064_cc0c_42e8_8cf1b70855183b72" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 880 1 0 "12fe0846_bf72_4286_8bd87488438262ba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 881 1 0 "0f50bc52_c930_4613_a737fe8df81950f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 882 1 0 "a4cfb4d0_9450_4bea_a67986a410d3d0ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_SaveContainerCalibration") { // }} "" // {{{ 883 1 0 "37f47b7e_5737_474b_907e35429bd3b21d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 884 1 0 "03cb3efd_4e78_47b4_8c863f235820287b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_RetrieveFilterPlate(DeviceID, o_stepReturn); // }} "" // {{{ 885 1 0 "b4a3f09e_102f_45d2_a582493e7a8a228f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 886 1 0 "dce24d9b_3180_4f67_ab31767613c972ed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 887 1 0 "a4cfb4d0_9450_4bea_a67986a410d3d0ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 888 1 0 "0f50bc52_c930_4613_a737fe8df81950f0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 889 1 0 "1c67aaeb_23b3_4adc_8b6d8285f92b9619" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 890 1 0 "49d34248_b422_4716_b7759002c58bacb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StartContainerCalibration") { // }} "" // {{{ 891 1 0 "1a03095a_5902_4617_8f24e5d961eb85be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 892 1 0 "51b0d6df_b187_4cef_88ea5af60e98888f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SourceID"), SourceID); // }} "" // {{{ 893 1 0 "c754fc8f_8a46_4c44_9ac4283328bd7a51" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Volume"), Volume); // }} "" // {{{ 894 1 0 "25291ac1_062d_4046_bf617e60aa36b67c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StartContainerCalibration(DeviceID, SourceID, Volume, o_stepReturn); // }} "" // {{{ 895 1 0 "bfce4774_8c8b_4403_8e0b05cc4d59500b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 896 1 0 "bc1476ec_35b7_4ec9_989c3db696569d39" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 897 1 0 "49d34248_b422_4716_b7759002c58bacb2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 898 1 0 "1c67aaeb_23b3_4adc_8b6d8285f92b9619" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 899 1 0 "dbd9907a_199c_4651_90fe7cbb03cace83" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 900 1 0 "d748a994_8826_4dce_8d07e63e712b8463" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StartContainerCalibration") { // }} "" // {{{ 901 1 0 "6443322c_5eae_4730_a5933771d05f74fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 902 1 0 "0adc10ee_e236_40cc_851240df83158a48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WasteContainerID"), WasteContainerID); // }} "" // {{{ 903 1 0 "661975a0_0aef_4017_bdd063beab2d6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Seconds"), Seconds); // }} "" // {{{ 904 1 0 "0e7caea8_5fcb_4b6c_954eb1ae00f391a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("DisableVacuumCheck"), DisableVacuumCheck); // }} "" // {{{ 905 1 0 "b681e1eb_fcbe_49e6_9116e45dfa6449ea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StartVacuum(DeviceID, WasteContainerID, Seconds, o_stepReturn); // }} "" // {{{ 906 1 0 "82d37b5c_3c66_495e_9db5a04e780cef4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 907 1 0 "182c0a15_8dbc_4c35_add3bac6dba81098" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 908 1 0 "d748a994_8826_4dce_8d07e63e712b8463" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 909 1 0 "dbd9907a_199c_4651_90fe7cbb03cace83" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 910 1 0 "4dfdb03a_1a13_4215_be00ca55de734fb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 911 1 0 "1d06fa20_af8b_41f5_b3f3daa03a904ebd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "MPE2_StopVacuum") { // }} "" // {{{ 912 1 0 "54fa31f5_5b7c_4668_927dc6f87a39b99e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 913 1 0 "0bf5dd1e_2e18_477b_adee0722aee70510" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_MPE::MPE2_StopVacuum(DeviceID, o_stepReturn); // }} "" // {{{ 914 1 0 "71f9a311_dfa0_4d62_8963c5c0ad21b5f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 915 1 0 "fe23d082_725d_444c_83290693ee1daf6a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 916 1 0 "1d06fa20_af8b_41f5_b3f3daa03a904ebd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 917 1 0 "4dfdb03a_1a13_4215_be00ca55de734fb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 918 1 0 "3723b59f_b515_44db_a24de469acf8d8aa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 919 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 920 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Initialize") { // }} "" // {{ 921 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 922 1 0 "efe73491_e5b4_499e_9b3f298c8b7a6398" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 923 1 0 "5c0fe710_4afe_4b11_bf186cfe8dc87978" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{ 924 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 925 1 0 "110af9db_52cf_4a40_94724a7476c48d86" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn); // }} "" // {{{ 926 1 0 "af9bf513_7c00_47bf_aee50c7cdb333b5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Initialize: "), o_stepReturn); // }} "" // {{{ 927 1 0 "cf0a8758_8a16_429a_97f320a142945224" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 928 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 929 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StartTempControl") { // }} "" // {{ 930 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 931 1 0 "de87c5cd_92f6_45a8_9ebd6fe71ac65dbc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 932 1 0 "26949b4a_2c44_4548_8de048c4f48bd98d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 933 1 0 "8ae03ef4_8584_4957_a32601dc8599dadf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn); // }} "" // {{{ 934 1 0 "934ba752_5ec3_489b_ae5a40dd1ea20440" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Start Temperature Control:"), o_stepReturn); // }} "" // {{{ 935 1 0 "a3528747_6990_4387_8839b01b71c3b754" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 936 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 937 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 938 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_SetTarget") { // }} "" // {{ 939 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 940 1 0 "55e81697_10a3_42fb_8777236a132ff0b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 941 1 0 "0177c1a2_7380_4683_94ff93e2ed1299b2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 942 1 0 "15559e31_3f7a_4336_9cabca6758b7c253" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("TargetTemperature"), TargetTemperature); // }} "" // {{ 943 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 944 1 0 "0dcffa9d_ea82_418b_be95240c1bfd0d77" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn); // }} "" // {{{ 945 1 0 "e9b0b663_7dd3_4e55_b206572d2c8a92c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Set Target:"), o_stepReturn); // }} "" // {{{ 946 1 0 "08ecb91c_e9c8_4c61_aca2c1f89fd97bab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 947 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 948 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StopTemperatureControl") { // }} "" // {{ 949 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 950 1 0 "b67518d4_e443_4a8f_947e8c457680c63e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 951 1 0 "045fda52_2303_4244_833066fb0005c21b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{ 952 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 953 1 0 "1c8947fe_b7a1_455a_94e7672ad3593b08" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn); // }} "" // {{{ 954 1 0 "285287f8_a3f9_43f0_9799c3ad98e59b9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco Stop Temperature Control:"), o_stepReturn); // }} "" // {{{ 955 1 0 "88d1a80e_0aa9_4314_ba83bc772f71a589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 956 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 957 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Terminate") { // }} "" // {{ 958 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 959 1 0 "c963c353_41bc_4f4a_b74a666b28831950" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("StopAllDevices"), StopAllDevices); // }} "" // {{ 960 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 961 1 0 "ea2ceb94_04fa_4204_96db2caf6871231f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn); // }} "" // {{{ 962 1 0 "cd495cf5_43ff_4b30_b0baa1f2cd96cf0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Terminate:"), o_stepReturn); // }} "" // {{{ 963 1 0 "bcce43cd_2b64_4caf_89bef8978a011dc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 964 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 965 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 966 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 967 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_Initialize") { // }} "" // {{ 968 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 969 1 0 "d824843f_bf44_4e8b_bb434b50a8b65716" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 970 1 0 "45b9f513_7eaf_4e63_ae92391c28cf15b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 971 1 0 "7f058eec_3092_45ce_862c43a3e0853c7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 972 1 0 "56a4490f_902b_4043_8172466a64e332bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Simulate"), Simulate); // }} "" // {{ 973 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 974 1 0 "c44a492c_8123_465b_acd4ff374583777d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn); // }} "" // {{{ 975 1 0 "a62df2e9_44bb_4099_a4d0597fbf0705de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Initialize:"), o_stepReturn); // }} "" // {{{ 976 1 0 "de7bfb5a_b1fa_42ee_b461782a3c381af4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 977 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 978 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_MoveToPosition") { // }} "" // {{ 979 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 980 1 0 "3092ee64_df80_4e56_b3cdffc0827e3c2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 981 1 0 "4284a9cf_3ea6_42f5_ae1f62d82cd11ebe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Angle"), Angle); // }} "" // {{ 982 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 983 1 0 "5b44092b_0faa_47ae_8005717c87a0f334" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn); // }} "" // {{{ 984 1 0 "4d912417_89ed_44f2_941bfb44efed0e2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Move to Position:"), o_stepReturn); // }} "" // {{{ 985 1 0 "0540bb67_399d_468d_853dd6ca4bb1c285" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 986 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 987 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 988 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 989 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "moveSequence") { // }} "" // {{{ 990 1 0 "6e83eea3_8863_4ca0_9ff603380f0dc4d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("inputSequence"), inputSequence); // }} "" // {{{ 991 1 0 "6b8903c6_6977_458a_8409f93724089454" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 992 1 0 "77d9a84d_5987_4b3c_a76757ce15a19302" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 993 1 0 "13c73535_4a98_49e2_ba1a02c30f02035b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 994 1 0 "a33ebddb_88d8_4440_9a78132ed62d97f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, inputSequence, seq); // }} "" // {{{ 995 1 0 "1dcc4914_aa2f_439e_8a2f431687c33852" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqFirstPosition = SeqGetPositionId(seq); // }} "" // {{{ 996 1 0 "01f7bf35_3538_441d_98904fa827b05e68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 997 1 0 "a37851fe_b9d0_42fa_9ccca7dd7b352a9c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{{ 998 1 0 "fe9d84b8_86ec_4552_b187147351886cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqSecondPosition = SeqGetPositionId(seq); // }} "" // {{{ 999 1 0 "5fa8b88a_cf88_49e1_8cb574503dc60e56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(seqFirstPosition, seqSecondPosition); // }} "" // {{{ 1000 1 0 "e590c4e1_91dd_41c0_82a254d4134fb734" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("First check"), Translate("Second check")); // }} "" // {{{ 1001 1 0 "2127d6de_e8bd_455a_88ad20e73b767061" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1002 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1003 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1004 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1005 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1006 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_measure") { // }} "" // {{{ 1007 1 0 "7c314622_d15c_42aa_a88b3d71caa33d0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1008 1 0 "9f15b042_95cd_4241_9b6262d3a4979ca7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1009 1 0 "34064a8d_5567_4fe5_b4349d0d061b9a1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1010 1 0 "0e34e118_df68_49fa_b3b9228d63deb6d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 1011 1 0 "025eece8_72cd_4190_a092d806fbab65a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 1012 1 0 "269c134a_bc59_4578_8da8bb7559f234a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 1013 1 0 "36ec28c1_360b_46e9_9243c01dbd3874e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 1014 1 0 "58445956_3204_41a3_a7acb03aaf25ccd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 1015 1 0 "465c2002_18cb_4ff2_9df9e423dbc6837c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1016 1 0 "40682224_6d73_4a7c_a2e33641f1768d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 1017 1 0 "e43a57a6_d83b_41d1_adf33f8f77ca7bc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 1018 1 0 "12a6bd74_f75b_44d1_b6f7c26d279d9610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 1019 1 0 "71b8f8bc_65c1_4e97_ab6eae03040f51dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 1020 1 0 "a8ca8abd_aa7a_412c_be527eb4e81efcb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1021 1 0 "a8647b92_b569_4a75_99a5333c438b3a23" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1022 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1023 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1024 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1025 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate_Dyn") { // }} "" // {{{ 1026 1 0 "de6a4eb0_04e1_47fc_86e27009d71152cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 1027 1 0 "5f551457_7af9_4567_bceacdf0018c9c38" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 1028 1 0 "60ee9fa5_c549_43a9_bbccdb0b14819583" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1029 1 0 "2211f515_9e69_4a1c_9603becd6fd866cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1030 1 0 "8449e1f4_6561_4b51_b91aa14423565eb2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 1031 1 0 "4429d4bb_e2fb_451f_8558de74111dbe3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Variance"), Variance); // }} "" // {{{ 1032 1 0 "a918fadc_db95_4e4b_9c445a903a59f17a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 1033 1 0 "7611bb65_5e77_408e_98384f0fec68e958" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 1034 1 0 "74418f44_640a_4b4b_88234a74841f1dbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate Dynamically"), o_stepReturn); // }} "" // {{{ 1035 1 0 "13218e03_9ac9_44ed_8af864397e865cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1036 1 0 "6257eb41_ce75_45b1_bea89bce20631222" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1037 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1038 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1039 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1040 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate") { // }} "" // {{{ 1041 1 0 "c7a809a1_1dc8_47c2_a8006c785355c50e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 1042 1 0 "27f7a889_0250_42a5_87699d0b0d52d36b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 1043 1 0 "b624fe53_a0c2_44e7_92eb12cc744fa799" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1044 1 0 "9f642188_0286_4e80_81cb485423a155c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1045 1 0 "c7530a85_7f29_4069_9a8e94318ffec0d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 1046 1 0 "849206a3_ea5c_4440_a08cdbcb81354e94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 1047 1 0 "9f9ab695_0d32_4bf4_bf5a4b0207a2c780" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 1048 1 0 "c1db8c11_4c25_4c9c_b424e06999583f09" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1049 1 0 "29e43762_b009_40ad_b93a5ac2372cca00" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1050 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1051 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1052 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1053 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Enable_Extended_Log") { // }} "" // {{{ 1054 1 0 "1791ad6e_39b2_4442_8b4470d0fc5497fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn); // }} "" // {{{ 1055 1 0 "b22a7836_ed52_4e9d_9e5df5babf8fa142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1056 1 0 "d77dc023_bdd7_4ebe_8fd4f2dbdba3fe2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1057 1 0 "8d68d8f1_5b56_488b_a0676b4b50a35221" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1058 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1059 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1060 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1061 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Get_Last_Error") { // }} "" // {{{ 1062 1 0 "11bf85a6_3df2_4245_839282a900f3db71" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1063 1 0 "2c0b2633_5d81_41a1_aa90c51eb8d9d23d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn); // }} "" // {{{ 1064 1 0 "4d60f4e2_175b_4a4b_9b0bfb0f63211da0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Get Last Error"), o_stepReturn); // }} "" // {{{ 1065 1 0 "76df37d9_5928_4269_937630b417ad9a11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1066 1 0 "a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1067 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1068 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1069 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1070 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Initialize") { // }} "" // {{{ 1071 1 0 "a37d4042_a872_4da0_bf60a51312d5cc22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1072 1 0 "77530965_cb1f_4563_a1d848bb4faa3bb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1073 1 0 "295c3bab_f7f4_47d0_8075cf658ee0436f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn); // }} "" // {{{ 1074 1 0 "69f13066_cc39_48aa_85b093e1bc056907" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrIStr(o_stepReturn2); // }} "" // {{{ 1075 1 0 "3a9d7ad8_b8d0_45ee_9004e77ed5fbe471" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1076 1 0 "178d10c9_fe18_479a_b3e7922f87282612" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 1077 1 0 "66935de2_85a3_4ed0_95cddf772b15fb48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1078 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1079 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1080 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1081 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Measure_Dynamically") { // }} "" // {{{ 1082 1 0 "69eede79_0b96_4634_a4ed7995201d9b7d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1083 1 0 "6a018697_b8f4_4088_b8c650a2f028d197" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Precision"), Precision); // }} "" // {{{ 1084 1 0 "dfbe88b8_1dda_42ac_8175799123584051" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1085 1 0 "3ef27a25_aec7_4d5b_beb743b713c7526e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1086 1 0 "74a87116_8260_466d_a78e98fe0544a891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 1087 1 0 "425d37a5_2d55_4b09_a607303c754935db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure_Dynamically(ModuleID, Temperature, Precision, Timeout, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 1088 1 0 "0df3fc00_0550_45fa_b224d60b9bcd06c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 1089 1 0 "26992ae0_59eb_4678_ae304b460a7034db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 1090 1 0 "3beda7c9_5769_4578_b31431d2bab6d131" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 1091 1 0 "141952da_a201_4e85_9e446006849a95bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 1092 1 0 "f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1093 1 0 "5487a4f7_a9f8_448e_98b2cb671cb9c069" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 1094 1 0 "c8e7c221_d1e4_4818_b3e077f9aeb6a0a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 1095 1 0 "611376c4_8c68_46f2_8947cec12bb313f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 1096 1 0 "e113c0e5_7ab9_4244_86b73e7f24d2bfc8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 1097 1 0 "6286c2d7_a138_4844_bc77fd8a40a6a486" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1098 1 0 "39fd3518_8a14_43a1_8d41240f577c94eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1099 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1100 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1101 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1102 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Battery") { // }} "" // {{{ 1103 1 0 "c83f58ac_8db7_4477_bed8e57c9c784b8a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1104 1 0 "4b343bdb_fe40_4daa_8382b1265575e03a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn); // }} "" // {{{ 1105 1 0 "98f43381_9679_4d9f_b3d1238ed4c1d0c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1106 1 0 "b95371f0_7532_4426_b980d9824bf1d2b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ChargeCounter = StrIStr(ChargeCounter); // }} "" // {{{ 1107 1 0 "15324eca_50a4_4530_be7f08cdef0e6514" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BatteryCondition = StrIStr(BatteryCondition); // }} "" // {{{ 1108 1 0 "e694349e_13ad_46c1_b18f5eb4688f510e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ActualCharge = StrIStr(ActualCharge); // }} "" // {{{ 1109 1 0 "279c0c8e_1d53_437f_ac5e74b0ccffc7a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1110 1 0 "92db84c4_89c2_4902_819012506538681c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, Translate("0"), Translate("0"), Translate("0"), Translate("0"), id); // }} "" // {{ 1111 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1112 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1113 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1114 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Calibration") { // }} "" // {{{ 1115 1 0 "250cbb57_43e2_4ca3_8ac97a4f8a848ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1116 1 0 "e2f361b4_fb8d_4bf8_b53c05720323632b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ProbeNumber"), ProbeNumber); // }} "" // {{{ 1117 1 0 "6e7357dd_030a_4f9d_b5cda736b409bbee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn); // }} "" // {{{ 1118 1 0 "aa859c68_b2ab_4304_9501a2d752587df6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowValue = StrFStr(pHLowValue); // }} "" // {{{ 1119 1 0 "7331e4fa_3e06_499a_84eed922b712aca5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowVoltage = StrFStr(pHLowVoltage); // }} "" // {{{ 1120 1 0 "3c2e720a_1c6e_4f09_afe077215aa438e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighValue = StrFStr(pHHighValue); // }} "" // {{{ 1121 1 0 "a9363a15_98fa_4a49_8451b25c27edea3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighVoltage = StrFStr(pHHighVoltage); // }} "" // {{{ 1122 1 0 "73007841_7490_489f_9c595a8e085e3a59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationTemperature = StrFStr(CalibrationTemperature); // }} "" // {{{ 1123 1 0 "49c841c4_b5cf_4ac7_9c2e87a2dc939210" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationOffset = StrFStr(CalibrationOffset); // }} "" // {{{ 1124 1 0 "d3535c95_47a6_46a6_80f73d15c4582508" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlope = StrFStr(CalibrationSlope); // }} "" // {{{ 1125 1 0 "a273e170_1488_4e16_884ae09c3a26d828" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio); // }} "" // {{{ 1126 1 0 "4a49a24b_d0ba_4a2a_9a1fe01bc81af3c0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1127 1 0 "9ae40f13_d6cb_4a4e_9dc995de1da2d637" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Request Calibration Values"), o_stepReturn); // }} "" // {{{ 1128 1 0 "5aca9095_546e_4df5_b24364da04e44fe5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id); // }} "" // {{ 1129 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1130 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1131 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1132 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Probe_Data") { // }} "" // {{{ 1133 1 0 "04b155be_097f_4f2d_add1392fbf78b5f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1134 1 0 "c40a59cd_e266_4cc3_aa3dd3d526502930" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn); // }} "" // {{{ 1135 1 0 "306c68bb_ffd7_4233_b7f0c2c67678dfdf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1); // }} "" // {{{ 1136 1 0 "bbd1faef_5b8f_41ba_bf74a019b05da039" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2); // }} "" // {{{ 1137 1 0 "cb244d85_a14b_4bcb_ab81c5cdc38c6552" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3); // }} "" // {{{ 1138 1 0 "5476cf0c_49cc_4602_aec72872116d2e6f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4); // }} "" // {{{ 1139 1 0 "6883841a_44f5_417f_8574566ed15ae444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), o_stepReturn); // }} "" // {{{ 1140 1 0 "fefec950_2bfa_429e_bdf791dc40dd0495" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1141 1 0 "0f6be956_31e3_4d1e_b232c4dc908ea6f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1142 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1143 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1144 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1145 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Technical_Data") { // }} "" // {{{ 1146 1 0 "3c80e1e2_a904_42ac_a3ddd5df5ca3a196" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1147 1 0 "8b2b24be_b84b_41b8_bd0f088f32554cb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 1148 1 0 "552e7bb6_cbdf_49ec_86ac28b54cae7f58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 1149 1 0 "1634fedb_a7e1_4130_ac1fb8d55f47b9e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HardwareNumber = StrIStr(HardwareNumber); // }} "" // {{{ 1150 1 0 "2cfb8725_b283_48b0_906a9741fe336744" "{C1F3C015-47B3-4514-9407-AC2E65043419}" PartNumber = StrIStr(PartNumber); // }} "" // {{{ 1151 1 0 "7b9a6dfa_9df8_40a8_9c0c39981dcf97e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Revision = StrIStr(Revision); // }} "" // {{{ 1152 1 0 "771c0483_6ea2_4299_81c7598839a5027b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SerialNumber = StrIStr(SerialNumber); // }} "" // {{{ 1153 1 0 "790984ff_e065_4212_a5c420f04d9f7e4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), o_stepReturn); // }} "" // {{{ 1154 1 0 "79aaa9cb_2db1_4f5d_8385023783e5cc82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1155 1 0 "371d6452_cf9d_4abe_9463f54ab7831231" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id); // }} "" // {{ 1156 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1157 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1158 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1159 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Voltage_Data") { // }} "" // {{{ 1160 1 0 "b6c0eb00_003a_45ed_9899c407d864455c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1161 1 0 "e4801131_30dc_4e2d_8ac9e80c0c13972c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Selector"), Selector); // }} "" // {{{ 1162 1 0 "ee48a65d_794b_411d_bb1668a267206d8b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn); // }} "" // {{{ 1163 1 0 "bf78a104_f3d4_45b6_a573a7219dcf05e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 1164 1 0 "ab32fbfb_2be2_4f6d_9c49def79adcfe31" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1165 1 0 "eeb36d4b_a5b7_4bca_a2e459c1c9a31bdc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(""), Translate(""), id); // }} "" // {{ 1166 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1167 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1168 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1169 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 1170 1 0 "51fd11a2_c173_4d8a_be50512a820eb424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1171 1 0 "b1268215_064b_40bc_8b9e75cfc0edeac8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1172 1 0 "7665963b_aa9b_4a3c_ba522887f3b15ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1173 1 0 "8327c869_96c0_4394_9bf4c5b5c19f30d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1174 1 0 "5a5455ae_5598_4a29_8c5f621b0586ba79" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1175 1 0 "f534cbac_4de3_4425_85299c07c6ff73cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 1176 1 0 "12b0cc6a_4826_48ce_82c690ddf98441a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1177 1 0 "aee63add_2789_4971_b4867510d938caf6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1178 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1179 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1180 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1181 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Charge_Parameters") { // }} "" // {{{ 1182 1 0 "5e24703a_30cb_4538_aec7ba85b7c0d2a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1183 1 0 "31630603_a72b_4d8b_a21a501f5336c619" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Charge"), Charge); // }} "" // {{{ 1184 1 0 "41b8aa8b_7d8e_4351_ad9664e334fa00f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AutoCharge"), AutoCharge); // }} "" // {{{ 1185 1 0 "504d0d26_95ad_4181_a7c38162018496cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("AutoChargeLevel"), AutoChargeLevel); // }} "" // {{{ 1186 1 0 "576ecb10_c479_461f_9249f554f27e398b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn); // }} "" // {{{ 1187 1 0 "80503782_9e9a_4986_9e4bcdeac598c749" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Charge Parameters"), o_stepReturn); // }} "" // {{{ 1188 1 0 "ade249f5_6aa1_4939_90a22e6af0864e5e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1189 1 0 "4fb997db_4cdf_4b51_85bbb23941f19edb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1190 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1191 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1192 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1193 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Probe_Replacement_Date") { // }} "" // {{{ 1194 1 0 "eb0a7cc0_c83a_45a8_8bd6adbf05cadabe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1195 1 0 "c762429d_3619_4e70_9765fe207dab3d54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Probe"), Probe); // }} "" // {{{ 1196 1 0 "18bf75b8_9aa3_46d2_a3ad3bbab8c1e126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1197 1 0 "2b2bbaed_84c1_46d2_bd024b425aefa336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1198 1 0 "380453f0_b3e8_47ac_a06eb91552b3a11f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1199 1 0 "a8fcf799_ec41_4160_910a9c78e5395ae2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1200 1 0 "c95c2987_8098_48ed_9ad284801d556587" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Probe Replacement Date"), o_stepReturn); // }} "" // {{{ 1201 1 0 "4e986dcc_ee8e_4cc0_bb83628d0a0ec284" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1202 1 0 "d46fb139_6c48_4f2a_b09293a8a3509a12" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1203 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1204 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1205 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1206 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Shutdown") { // }} "" // {{{ 1207 1 0 "aec40299_6cef_4e16_ad88bccbdcae3b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1208 1 0 "c7715d80_e089_40ea_86fe6a446a2c9378" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Mode"), Mode); // }} "" // {{{ 1209 1 0 "212772c6_0ff7_41ef_9c35fb5828034d90" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn); // }} "" // {{{ 1210 1 0 "82055c44_b706_4c16_99b47c2a4ae600e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Shutdown"), o_stepReturn); // }} "" // {{{ 1211 1 0 "d76b0e51_c107_49cd_b6bcd25c44e4d066" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1212 1 0 "fbbaa73a_fa45_446d_8052e6e618fd2fad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1213 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1214 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1215 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1216 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Technical_Data") { // }} "" // {{{ 1217 1 0 "d6a005e1_4502_49d8_9a510afa4a2e833e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1218 1 0 "5ad112b0_da19_4b1b_a4649033defa7fef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 1219 1 0 "f4094e68_7940_4706_bae95f6277784476" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PartNumber"), PartNumber); // }} "" // {{{ 1220 1 0 "2b53f199_42d1_4808_a128c8ef4354e216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Revision"), Revision); // }} "" // {{{ 1221 1 0 "b5bf6715_e2e6_4e19_ad453dbb18396d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SerialNumber"), SerialNumber); // }} "" // {{{ 1222 1 0 "8cd5ff7f_9cb8_4f34_8afeb35175b47032" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 1223 1 0 "b60d9996_aa66_483d_b61518ffca638e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Technical Data"), o_stepReturn); // }} "" // {{{ 1224 1 0 "164f5289_e710_44eb_a1ea51e1622a7813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1225 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1226 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1227 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1228 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Trace_Level") { // }} "" // {{{ 1229 1 0 "dd6ba7d4_f5cc_4725_9776848c6e8343cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1230 1 0 "5a2c7ac9_8800_4926_96f26337aee59504" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1231 1 0 "88c51a62_4453_4cf5_ba0682a2cb1da767" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1232 1 0 "159aeb3e_3ed4_4ddc_a11cdfd939a7db7d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Trace Level"), o_stepReturn); // }} "" // {{{ 1233 1 0 "c3a5cc94_f346_4d04_a4be1fd04efbccc1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1234 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1235 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1236 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1237 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Sleep") { // }} "" // {{{ 1238 1 0 "153dc01b_be4b_403a_a40226aa4778c709" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1239 1 0 "a6f7384c_4c2e_4b3b_9682c00fb7a2f978" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn); // }} "" // {{{ 1240 1 0 "e82cf943_58b3_463e_a86afb9882353228" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Sleep"), o_stepReturn); // }} "" // {{{ 1241 1 0 "636ca48b_8789_40cc_8fb4dc35e8cbab54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1242 1 0 "5fb5b228_5342_414d_a548ac8dd5add837" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1243 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1244 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1245 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1246 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Terminate") { // }} "" // {{{ 1247 1 0 "b53cd271_035b_4870_961c552983b39351" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1248 1 0 "e133d234_4ccd_44cb_810d29742ee9f40e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn); // }} "" // {{{ 1249 1 0 "eb5a9614_5d18_44cd_83190a1d8eec2a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1250 1 0 "81b91833_cb16_43c5_a8935f9701536560" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1251 1 0 "add7dd5e_87e4_4ec1_a7b552234adc5d9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1252 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1253 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1254 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1255 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Wakeup") { // }} "" // {{{ 1256 1 0 "6b1d97c0_debd_402e_8c064a5c1fe48aca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1257 1 0 "09ffa3b4_530e_444f_943e5302e37f3fe0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn); // }} "" // {{{ 1258 1 0 "0d420182_40e4_43a8_872c5c81f7efa6d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1259 1 0 "f7bb0b0b_d222_43a7_b1b1236ab60e2847" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1260 1 0 "12251a91_a4ec_4a01_b041b503e2eef836" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1261 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1262 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1263 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1264 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Initialize") { // }} "" // {{{ 1265 1 0 "10713a72_dce4_482a_ad1d6d8db7bd210a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1266 1 0 "21f38719_99e7_4de4_bc16b312b6f57977" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1267 1 0 "75ac7c86_e474_45bc_8551fc9e302de4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 1268 1 0 "509760aa_ef16_454d_89cc23c0745d3c6d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 1269 1 0 "19e515a1_705c_45eb_b80e75767541c91a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1270 1 0 "a042f65b_875f_4b52_999c836815c84a6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1271 1 0 "f5fd2c44_2160_43fa_be88382bc9e0ff0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1272 1 0 "f2c8bfd1_3d33_4a00_84852ffbabef7b28" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1273 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1274 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1275 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1276 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Set_Trace") { // }} "" // {{{ 1277 1 0 "0029313d_525e_46ea_916912b33902e1eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1278 1 0 "ed79bcac_71ff_48ee_b968407f0dbdf4ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1279 1 0 "80f14967_56f1_4b78_9a3c9965460a9589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1280 1 0 "b3fdfb36_4bb4_4086_a19b5402f53fdd94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 1281 1 0 "53206fbc_1492_4583_a2789c8083e49b46" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1282 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1283 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1284 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1285 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Wash") { // }} "" // {{{ 1286 1 0 "32bfd9a6_1ebc_4ca0_81e034f81d1af760" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1287 1 0 "a9208608_0099_4d5f_800d72adf563b9e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CycleNumber"), CycleNumber); // }} "" // {{{ 1288 1 0 "738f88ca_6ad7_4598_b1e4a3e1ccefcace" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn); // }} "" // {{{ 1289 1 0 "d009e19d_0560_4f89_b0f58bafa778b71b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Wash"), o_stepReturn); // }} "" // {{{ 1290 1 0 "49cdc51c_08eb_424b_920d3dcb647b2559" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1291 1 0 "2624b5a6_7428_4e88_a9b7fee8a8001e65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1292 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1293 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1294 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1295 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Terminate") { // }} "" // {{{ 1296 1 0 "e8e2fec9_d562_4524_b5d29880876bd109" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1297 1 0 "ad418c06_88fd_4649_9745bc00694fa53a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1298 1 0 "e8437e3c_0153_4bc0_86236a2e9849e22a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Terminate"), o_stepReturn); // }} "" // {{{ 1299 1 0 "32e4b0bc_48e5_4770_81a0113fdff8118a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1300 1 0 "c81e886b_51ec_42be_b2c989057781a5b0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1301 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1302 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1303 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1304 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Initialize") { // }} "" // {{{ 1305 1 0 "b41d8294_bc5c_4346_999860e0f4cc913e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 1306 1 0 "102abd73_15bb_472b_a1008b4eda35637e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1307 1 0 "58389380_f098_4c71_b61c0954f797753b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 1308 1 0 "2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 1309 1 0 "d95cbdf3_6278_437b_91525392a70e5356" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1310 1 0 "d35fefc8_f758_41da_a6073532f75cf092" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Initialize"), o_stepReturn); // }} "" // {{{ 1311 1 0 "e1deec6e_fc66_45bd_93821e20a78853fb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1312 1 0 "01bdb50d_0f38_40e2_8993f814ea652b66" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1313 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1314 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1315 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1316 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Set_Trace") { // }} "" // {{{ 1317 1 0 "f7fc7449_63b2_4e8b_8d0eaf3f931e834d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1318 1 0 "ef77cea9_ef26_4525_bea967ec7f086b88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 1319 1 0 "24784b11_b6f4_461e_b526cbbb677864ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 1320 1 0 "d5ebe375_f7dd_45c2_b3e242a8edf4f175" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Dryer Trace Level"), o_stepReturn); // }} "" // {{{ 1321 1 0 "f61751e3_57be_4b1d_b8a1d370a4c1773c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1322 1 0 "d216caef_1c5d_4f05_8252d1a77df45535" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1323 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1324 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1325 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1326 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Start_Drying") { // }} "" // {{{ 1327 1 0 "45561f8e_cd7f_49d8_a8720b2ff7d0d932" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1328 1 0 "ecdddf7a_3c99_4f99_97b658f94a62554c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1329 1 0 "5a6daec0_a404_4a0a_ad9d88de43ac46c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Start Drying"), o_stepReturn); // }} "" // {{{ 1330 1 0 "e7173a44_d349_4ba2_8993647fbcd2eb1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1331 1 0 "17e3434b_dfff_457b_9aba0c22e9206cc7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1332 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1333 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1334 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1335 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Stop_Drying") { // }} "" // {{{ 1336 1 0 "f3eac478_54bb_4350_8c1811bf2ede8424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1337 1 0 "37262733_33d0_4723_94687e68249d1300" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 1338 1 0 "6feb871c_61be_4812_a421af32d75f9871" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Stop Drying"), o_stepReturn); // }} "" // {{{ 1339 1 0 "2ba59e68_8358_4b86_a9108519bff6d200" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1340 1 0 "cbfcb2cb_00c9_445f_a28af2b6553efc31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1341 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1342 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1343 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1344 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Terminate") { // }} "" // {{{ 1345 1 0 "66453f41_07b7_4fd4_b2177e4994606836" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1346 1 0 "a5808bbd_63b3_4fc2_894ab4d4eb00b93d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID); // }} "" // {{{ 1347 1 0 "f844d13f_ecdb_465a_b0300a4976c0d809" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1348 1 0 "a28255b3_86ff_4928_abf87a7c3f930142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1349 1 0 "7e539911_cdda_4242_a337d58eba44508c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1350 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1351 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1352 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1353 1 0 "2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1354 1 0 "2dde624a_2df2_4014_8df18f6d92ed93b1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1355 1 0 "d6d5265b_416c_468f_a8f0a8225e294804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Initialize") { // }} "" // {{{ 1356 1 0 "32d149fa_c238_4e8c_9c9bfe8ca03b39ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PortNumber"), PortNumber); // }} "" // {{ 1357 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_43ECC15F92874e8a8FCA2A90F3412255 ; err.Clear(); // }} "" // {{{ 1358 1 0 "05f6e40b_f62a_4382_9b25ca234839aeb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::Initialize(ML_STAR, PortNumber, DefaultTemperature, ModuleID); // }} "" // {{ 1359 1 0 "b8eff0c4_8a87_4d69_8b1fc22443527e58" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1360 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_43ECC15F92874e8a8FCA2A90F3412255 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1361 1 0 "a6315690_dcdc_4faf_9764f4edcccee401" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1362 1 0 "190f354d_c7dd_4c62_926305b468fad16e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1363 1 0 "b152d230_641d_44fd_82876d10beb25ffd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 1364 1 0 "2178bb5d_1389_4bb3_92e038bed00ad7d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 1365 1 0 "0e8fa514_886c_42d7_a0fec5c2e0a40820" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 1366 1 0 "d6d5265b_416c_468f_a8f0a8225e294804" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1367 1 0 "2dde624a_2df2_4014_8df18f6d92ed93b1" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1368 1 0 "a96843cd_6adb_45f6_86b4971bd2682521" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1369 1 0 "2a26b412_4bc5_49d9_b1cdc64938a3cf0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_MeasureCycle") { // }} "" // {{{ 1370 1 0 "e78c25fc_f856_4c7d_bb7f6056d2ae0e9d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1371 1 0 "4c0064bb_0c23_4648_b57e5599878d63f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqMeasurement"), seqMeasurement); // }} "" // {{ 1372 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (seqMeasurement == "") { // }} "" // {{{ 1373 1 0 "a11073f7_18e2_4097_baf006ed44e74081" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("MeasurePositions"), MeasurePositions); // }} "" // {{{ 1374 1 0 "47d49bd0_0457_440d_b1d654c85ac3c5db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(MeasurePositions, seq); // }} "" // {{ 1375 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 1376 1 0 "bbddeeab_2dc4_4931_900a5ec07aafe0be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, seqMeasure, seq); // }} "" // {{ 1377 1 0 "e6bd9163_be3a_4336_8fb02fd88e325c60" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 1378 1 0 "6b06d7c5_bf98_48d9_906ae705e4ce149b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("MeasureHeight"), MeasureHeight); // }} "" // {{{ 1379 1 0 "25fe4c02_a4e2_40cd_91289dc1c5c638b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ProbePattern"), ProbePattern); // }} "" // {{{ 1380 1 0 "02a9e02a_0596_4158_ac021180b0b5985c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MeasureTime"), MeasureTime); // }} "" // {{{ 1381 1 0 "f8080019_d032_4f0c_9ef8429bde9ee7df" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 1382 1 0 "83142ee1_d831_4ff1_a6734844fe789421" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::MeasureCycle(ML_STAR, ModuleID, seq, MeasureHeight, ProbePattern, MeasureTime, Temperature, arrpHValues); // }} "" // {{{ 1383 1 0 "d4d4974a_23a2_43a2_851b478f0e7d24be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrpHValues, flt_pHValues); // }} "" // {{{ 1384 1 0 "bde9c162_a4cf_40fa_a663c6b78e029610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1385 1 0 "0a5c18e9_775d_4644_bdfcc536000642cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Measure Cycle"), o_stepReturn); // }} "" // {{{ 1386 1 0 "c1502c7b_2bd0_480c_a0ce6887e02484bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, flt_pHValues, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1387 1 0 "2a26b412_4bc5_49d9_b1cdc64938a3cf0b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1388 1 0 "a96843cd_6adb_45f6_86b4971bd2682521" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1389 1 0 "e66a9dff_c0b5_4864_ad32fce97f16a3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1390 1 0 "5185a83c_8ff6_42f8_b1dc5fc006d041ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Calibrate") { // }} "" // {{{ 1391 1 0 "d9d7f7cb_394b_40ea_a037e16efc8e063c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1392 1 0 "0e65e09c_0178_403b_9eca768c440a479f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1393 1 0 "fedae8c3_0c9d_426f_a30e8fdfa1d2b056" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1394 1 0 "ad8456a9_07be_4852_b2bab182e7e17dae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqCalibration1"), Calibration1); // }} "" // {{{ 1395 1 0 "8b591ca2_adf8_4248_b5ac1fb2a84c21aa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Calibration1, seqCalibration1); // }} "" // {{{ 1396 1 0 "0f28a5e9_278c_4290_aa9ee416f829755a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqCalibration2"), Calibration2); // }} "" // {{{ 1397 1 0 "b57e28d3_0011_4657_bbceba83ca97b89a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Calibration2, seqCalibration2); // }} "" // {{{ 1398 1 0 "101798f0_c18a_411a_b29295d972cc9a6e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqReference"), Reference); // }} "" // {{{ 1399 1 0 "1c415c8d_660d_41fe_a81fcfd6d8836038" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Reference, seqReference); // }} "" // {{{ 1400 1 0 "20510ceb_5840_48de_842a1b657fa7706d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationTime"), CalibrationTime); // }} "" // {{{ 1401 1 0 "ecd67637_3e8e_4d22_89b67b39e05342fe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MeasureTime"), MeasureTime); // }} "" // {{{ 1402 1 0 "148b5d07_b84d_4786_b1d0f9d5e5837491" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("MeasureHeight"), MeasureHeight); // }} "" // {{{ 1403 1 0 "938c1584_a353_4f03_ba14c9f33cc2c6a7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue1"), CalibrationValue1); // }} "" // {{{ 1404 1 0 "cda9048b_fe59_4db2_a1d08550795038f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue2"), CalibrationValue2); // }} "" // {{{ 1405 1 0 "5d669238_eb69_4080_8b789139b291be94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValueRef"), CalibrationValueRef); // }} "" // {{{ 1406 1 0 "4c7c9992_c2e0_445a_bee9cd7dd086e585" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSoln1"), TempSoln1); // }} "" // {{{ 1407 1 0 "9574a12d_456e_4fd6_9b51714dd88b4a1e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSoln2"), TempSoln2); // }} "" // {{{ 1408 1 0 "211f81c7_5561_45ce_8cf247e76fb0f65e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("TempSolnRef"), TempSolnRef); // }} "" // {{{ 1409 1 0 "f812ea75_ed49_4a04_b4ab3dd67f1206ad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrateDynamically"), blnCalibrateDynamically); // }} "" // {{{ 1410 1 0 "178d95b8_13db_4493_a08cdaec1348c0e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 1411 1 0 "d4d33c2d_2aee_4a51_ad36cb953d687c83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{ 1412 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F882CD31309846e3BD30959B418AB982 ; err.Clear(); // }} "" // {{{ 1413 1 0 "ff44fdd8_7acc_46f7_a7c3a207ad5d7bf8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Calibrate(ML_STAR, ModuleID, seqModule, seqCalibration1, seqCalibration2, seqReference, CalibrationTime, MeasureTime, MeasureHeight, CalibrationValue1, CalibrationValue2, CalibrationValueRef, TempSoln1, TempSoln2, TempSolnRef, blnCalibrateDynamically, arrCalibrationSlopeRatios, arrpHValuesReferenceSolution); // }} "" // {{ 1414 1 0 "18724129_2443_4271_a6316a42ef334c73" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1415 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F882CD31309846e3BD30959B418AB982 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1416 1 0 "d6c65e91_f6e8_47d9_aaf1810ffab1ffac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1417 1 0 "0dd73971_4fb7_47a4_ab5a5bc3f06a1c95" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1418 1 0 "7375b9e4_01c3_49a1_810fb42149ed0eea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrCalibrationSlopeRatios, CalibrationSlopeRatios); // }} "" // {{{ 1419 1 0 "31ba6e89_258d_4deb_97352544c3b5c45c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(arrpHValuesReferenceSolution, pHValuesReferenceSolution); // }} "" // {{{ 1420 1 0 "924064ec_85ac_4b42_a5ff3eb8a6a5342f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 1421 1 0 "65bd0fe0_0efb_4335_b118b89e61b948ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1422 1 0 "5185a83c_8ff6_42f8_b1dc5fc006d041ff" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1423 1 0 "e66a9dff_c0b5_4864_ad32fce97f16a3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1424 1 0 "b6af2262_3e2f_4d3a_8efaa95d707f7c9b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1425 1 0 "190d0e3a_2978_407c_a8482f5f7e239261" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Dry") { // }} "" // {{{ 1426 1 0 "0f0bf03e_4950_40e7_b2899f9cabb79cb3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{ 1427 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_D19CA5AD1071407b84599779A41B51EA ; err.Clear(); // }} "" // {{{ 1428 1 0 "1885a8d9_8082_44ab_bfd7a217170187db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::Dry(ML_STAR, ModuleID); // }} "" // {{ 1429 1 0 "33dddcad_4489_4f31_8b4fea145ebbe77b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1430 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_D19CA5AD1071407b84599779A41B51EA : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1431 1 0 "d8f5d052_f205_4e22_8998e2d0d12790ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1432 1 0 "9f4b188d_6ef9_4a74_941003eb82df7787" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1433 1 0 "5521c0c7_c64b_4b49_9036f9bf6a7a83d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1434 1 0 "9e7864cd_a0bd_4ec6_8f733a2e7ab773bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1435 1 0 "190d0e3a_2978_407c_a8482f5f7e239261" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1436 1 0 "b6af2262_3e2f_4d3a_8efaa95d707f7c9b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1437 1 0 "98f952c5_628a_415d_a46b3e75e0c33d60" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1438 1 0 "370e55f1_98b7_4dfb_9640d7a634f44a8f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Wash") { // }} "" // {{{ 1439 1 0 "39b0590c_dc8d_4eb3_b8bfcab65235f494" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{ 1440 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 ; err.Clear(); // }} "" // {{{ 1441 1 0 "beaffdda_e52a_4f79_95659f907946752f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Wash(ML_STAR, ModuleID); // }} "" // {{ 1442 1 0 "58aab21a_307b_403b_980186d201a7c6ac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1443 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2FC3C4C6674040a7B6C8AB7F206E6772 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1444 1 0 "4cd2a753_2761_4d3c_9cd93c15fa19a47b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1445 1 0 "d4418b25_1d3f_4c35_903178fb8cb29b63" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1446 1 0 "0af219f8_e5bc_4b14_a95fd7e3f2ccb712" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1447 1 0 "7b44ca9e_e6d7_4793_8f937fc518ecc41c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1448 1 0 "370e55f1_98b7_4dfb_9640d7a634f44a8f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1449 1 0 "98f952c5_628a_415d_a46b3e75e0c33d60" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1450 1 0 "3246255f_383b_4742_b7eb17cad21acec0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1451 1 0 "f70b31d7_c863_488a_90c4df10a4677c68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_SetParameters") { // }} "" // {{{ 1452 1 0 "7e5e111c_21f5_4c0b_9dd06d15aee64431" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqGripper"), Gripper); // }} "" // {{{ 1453 1 0 "8417ab78_f4b8_40aa_890f3b14e4204667" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Gripper, seqGripper); // }} "" // {{{ 1454 1 0 "f43d4896_c19a_4cc9_ad3c75f925788b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqWashPosition"), WashPosition); // }} "" // {{{ 1455 1 0 "ffcc2479_6c91_4038_bab179b027d4b03b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, WashPosition, seqWashPosition); // }} "" // {{{ 1456 1 0 "b731d1c6_30bc_4003_ba19e062e82293db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqDryPosition"), DryPosition); // }} "" // {{{ 1457 1 0 "a68ddb6b_780a_46ed_bcaa350f92f649fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, DryPosition, seqDryPosition); // }} "" // {{{ 1458 1 0 "020f31e6_e3ef_48f4_af0e175e60e00159" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TransportChannel"), TransportChannel); // }} "" // {{{ 1459 1 0 "1561e8c8_acaa_438f_9c7c57a5c196556f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("WashCycles"), WashCycles); // }} "" // {{{ 1460 1 0 "7e0a9629_dce6_4ed9_81b854f636408ff0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryCycles"), DryCycles); // }} "" // {{{ 1461 1 0 "dacc3c17_6358_44f0_8ac4ad1fa0ae08b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryTime"), DryTime); // }} "" // {{{ 1462 1 0 "f86b35ff_9db7_4845_a3cfb7d04c520c3d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::SetParameter(ML_STAR, seqGripper, seqWashPosition, seqDryPosition, TransportChannel, WashCycles, DryCycles, DryTime); // }} "" // {{{ 1463 1 0 "ce0a2f35_ae58_4695_85513126a4acb791" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 1464 1 0 "da69f49c_299d_435d_9d95dc10f7303ce9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1465 1 0 "bd10bc62_2ace_436a_a68acec8c1f9287b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1466 1 0 "f70b31d7_c863_488a_90c4df10a4677c68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1467 1 0 "3246255f_383b_4742_b7eb17cad21acec0" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1468 1 0 "f19bf36e_3e74_4647_bd1c33a627d4634a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1469 1 0 "1aad8d75_d37e_4c4a_9b83799194c716fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Park") { // }} "" // {{{ 1470 1 0 "90471824_8967_4383_a722d29bfaf60113" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1471 1 0 "f6bbc2b1_c86d_4f64_abc12d3b740b1d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1472 1 0 "9341ffae_9e0c_43f9_b3ccedcfbadb07cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1473 1 0 "9e0a230a_fdb5_4eec_9cf3127779adb1d2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::ParkModule(ML_STAR, ModuleID, seqModule); // }} "" // {{{ 1474 1 0 "8aacb0d9_a918_426b_9717bd2febc1f74a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1475 1 0 "15592ad5_5751_4636_8a513ee3f27c7f11" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1476 1 0 "6222366b_a5bf_4c73_8685a3cdebb4ff4f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1477 1 0 "1aad8d75_d37e_4c4a_9b83799194c716fc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1478 1 0 "f19bf36e_3e74_4647_bd1c33a627d4634a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1479 1 0 "602611db_9ad3_4dbb_aae8e288d8e1c21f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1480 1 0 "a3bcbf9b_35d6_4291_9c4f146afb2924be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Pickup") { // }} "" // {{{ 1481 1 0 "347e06d8_9db7_4279_bf224e9ecf4299e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1482 1 0 "2b0761dc_e201_46b3_a590b52421cd8ee9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("seqModule"), Module); // }} "" // {{{ 1483 1 0 "76631bc5_230e_4e20_87bf493887cddd0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, Module, seqModule); // }} "" // {{{ 1484 1 0 "2d3aba8b_cc4b_4be1_a83c30695fcf6dbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::PickupModule(ML_STAR, ModuleID, seqModule); // }} "" // {{{ 1485 1 0 "7879f9b5_2eea_4059_8e4bef3213e8decd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1486 1 0 "cb1582a1_3f8c_44fd_910a5f08dbe32b05" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 1487 1 0 "a15fc9df_322f_4ce1_83228c63669e6b16" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1488 1 0 "a3bcbf9b_35d6_4291_9c4f146afb2924be" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1489 1 0 "602611db_9ad3_4dbb_aae8e288d8e1c21f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1490 1 0 "3bc97044_ccb0_46b1_9516921492be9a5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1491 1 0 "dac7c2f7_1665_4a9c_82959eadd12ab417" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_ExtendedLog") { // }} "" // {{{ 1492 1 0 "d101eee8_9402_428a_aa576d531ed959c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::EnableExtendedLog(); // }} "" // {{{ 1493 1 0 "bc849548_9009_43ec_bb1b6c81c32132f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), 1); // }} "" // {{{ 1494 1 0 "0a496202_0f55_4f40_8b391260caa236ba" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, 1, Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1495 1 0 "dac7c2f7_1665_4a9c_82959eadd12ab417" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1496 1 0 "3bc97044_ccb0_46b1_9516921492be9a5f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1497 1 0 "e397a319_e6cb_4188_b45c6ef45c974fba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1498 1 0 "bffc8683_40d3_4277_ac66bc7d43d675f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_LoadLastConfig") { // }} "" // {{ 1499 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B416552A06404ef48774D74059C2B182 ; err.Clear(); // }} "" // {{{ 1500 1 0 "154ec087_ea2e_4381_bb2e261ffad534f1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationLoad(BluetoothPort, NumWashCycles, NumDryCycles, DryTime); // }} "" // {{ 1501 1 0 "79340e9d_69d5_4911_b4601ae4754a16c4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1502 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B416552A06404ef48774D74059C2B182 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1503 1 0 "46420553_d90f_4dfa_b42c9d86856c288a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1504 1 0 "d56902b6_a617_4215_bbf52293253d05b0" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1505 1 0 "54b468e0_3ea0_4e83_9ffae95722c5cb9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BluetoothPort = StrIStr(BluetoothPort); // }} "" // {{{ 1506 1 0 "7bde202f_1c1b_4911_9f600ac6e1a5b57c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" NumWashCycles = StrIStr(NumWashCycles); // }} "" // {{{ 1507 1 0 "c5d427d2_0b0e_4f92_8c5b0b2cbfbfb4d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" NumDryCycles = StrIStr(NumDryCycles); // }} "" // {{{ 1508 1 0 "027378a7_4549_4d3f_b8d33aa4980be4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DryTime = StrIStr(DryTime); // }} "" // {{{ 1509 1 0 "fbda7cdb_3ed9_4a5c_907ce60556e0129b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), 1); // }} "" // {{{ 1510 1 0 "e454face_7eee_4c6e_a61e221c0e5d7fb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, BluetoothPort, NumWashCycles, NumDryCycles, DryTime, Translate(""), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1511 1 0 "bffc8683_40d3_4277_ac66bc7d43d675f2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1512 1 0 "e397a319_e6cb_4188_b45c6ef45c974fba" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1513 1 0 "dbcfe074_1fad_446d_addaa6c1b41a3a01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1514 1 0 "2bd801dc_3ffb_4b97_9f8af54ebda4fdae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_SaveLastConfig") { // }} "" // {{{ 1515 1 0 "aca4c717_812e_46f9_8eb5989a720adb24" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("BluetoothPort"), BluetoothPort); // }} "" // {{{ 1516 1 0 "1198edc8_1ec9_479d_a4e7fd71ed50cf8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("NumWashCycles"), NumWashCycles); // }} "" // {{{ 1517 1 0 "be958699_818e_43db_a757a67b7b54572a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("NumDryCycles"), NumDryCycles); // }} "" // {{{ 1518 1 0 "8751a2c3_e6ee_43bf_b21f5458aebf179a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DryTime"), DryTime); // }} "" // {{ 1519 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_4973F03471994119A9F699CE6459CBFC ; err.Clear(); // }} "" // {{{ 1520 1 0 "1480ff51_54ea_4c38_befa457e23966aca" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" HAMILTON_PH_MODULE_CONTROLLER::LastUsedConfigurationSave(BluetoothPort, NumWashCycles, NumDryCycles, DryTime); // }} "" // {{ 1521 1 0 "0e101f68_bc36_42fe_882a3951ef193f80" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 1522 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_4973F03471994119A9F699CE6459CBFC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1523 1 0 "2e180d98_e746_4b84_b623b4d0e8e198fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 1524 1 0 "d4ca1b7b_8367_4a0c_992893897f05925c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1525 1 0 "cb24f9db_18c1_41af_b6f16900826be7be" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 1526 1 0 "87c5e5f6_77ee_4519_879fdceaf21c1d7f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1527 1 0 "2bd801dc_3ffb_4b97_9f8af54ebda4fdae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1528 1 0 "dbcfe074_1fad_446d_addaa6c1b41a3a01" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1529 1 0 "d30f6a39_499f_4b79_b2bfbdb6bb128b96" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1530 1 0 "25171dbf_33de_42a2_ad9b9d9639b5112a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 1531 1 0 "bdbbc648_a9fa_468f_b5d4d390115575eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1532 1 0 "1a74d7ad_0c35_454c_b161ede32468b2af" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 1533 1 0 "c67afa78_dd60_451b_b2e31a2e6540f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 1534 1 0 "2424dca1_971a_40f8_97b763c253560a2e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 1535 1 0 "8def2ba5_b51c_4e0c_b6ebfdd346a5beec" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 1536 1 0 "684d328d_214e_4955_bfe9ff0627b7f8cf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 1537 1 0 "e6ec0fc8_d42c_4413_b2c2719c3cd18dc7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1538 1 0 "6f2273c4_1e1e_46f3_9ea6544d76383266" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1539 1 0 "25171dbf_33de_42a2_ad9b9d9639b5112a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1540 1 0 "d30f6a39_499f_4b79_b2bfbdb6bb128b96" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1541 1 0 "427cf00a_8c98_4fb4_8db6842164909152" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1542 1 0 "d75fbb16_6016_4c73_aecf79ca07dae29d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Controller_Terminate") { // }} "" // {{{ 1543 1 0 "b43cf782_b210_48c8_933f4cdfae78d050" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 1544 1 0 "efbfd98d_c15d_4ac9_b94250ab4361a8b9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = HAMILTON_PH_MODULE_CONTROLLER::Terminate(ModuleID); // }} "" // {{{ 1545 1 0 "c918ad91_e33e_4f2f_9c6577fd8c93aaf4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 1546 1 0 "2021a914_67dd_495e_9a9e4cf4438df298" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1547 1 0 "8d8842cd_e3b4_4397_92ad69593e9f7796" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1548 1 0 "d75fbb16_6016_4c73_aecf79ca07dae29d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1549 1 0 "427cf00a_8c98_4fb4_8db6842164909152" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1550 1 0 "2bcf11d8_f5f8_4c53_8fc5c6e36c1bb6fc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1551 1 0 "6aa13f85_d8b8_4a2a_93232eeb15e0a01d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1552 1 0 "5edd27c8_de57_4980_b51d920a4d49d519" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1553 1 0 "e9d4ea17_6e30_44ae_88b03485525c4f92" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Initialize") { // }} "" // {{{ 1554 1 0 "2f9ae938_94b1_43c8_ade094614ef090a4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("DeviceName"), DeviceName); // }} "" // {{{ 1555 1 0 "6cf1bcde_fb2a_4296_97b01233bdd9aa87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("AdapterDeviceID"), AdapterDeviceID); // }} "" // {{{ 1556 1 0 "58031a2b_13b4_4278_8e347d343a3bd1d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("NodeName"), NodeName); // }} "" // {{{ 1557 1 0 "20c35752_843f_4adb_904d5d26323821a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 1558 1 0 "0b3f2efc_0773_4a25_84493465094ac5e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AlwaysInitialize"), AlwaysInitialize); // }} "" // {{{ 1559 1 0 "6ad8399f_eed7_4e65_98fe7d1432f0736b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Initialize(Label, NodeName, SimulationMode, AlwaysInitialize, o_stepReturn); // }} "" // {{{ 1560 1 0 "3a426d02_40f4_4c1f_b9061d37e5a4cd35" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1561 1 0 "01608cb1_fac5_42cd_bcfdf5fc7359c26d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1562 1 0 "0e3b4229_d57f_445f_a7c9d9140939367f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1563 1 0 "e9d4ea17_6e30_44ae_88b03485525c4f92" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1564 1 0 "5edd27c8_de57_4980_b51d920a4d49d519" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1565 1 0 "48cb330b_8197_439e_974791118048b53e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1566 1 0 "cc879722_4e99_410c_a8454d136f6aae6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Centrifuge") { // }} "" // {{{ 1567 1 0 "efe031a0_7aa0_4846_bf8969fbd7906970" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1568 1 0 "5965cb4a_0190_415d_862b773944074e57" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("CloseCoverAtEnd"), CloseCoverAtEnd); // }} "" // {{{ 1569 1 0 "1f94f31f_0ef0_403b_bda3b50c2fd9c38b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PresentPosition"), intPresentPosition); // }} "" // {{{ 1570 1 0 "dde8e447_4774_45bf_a244c5fab4041838" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Direction"), Direction); // }} "" // {{{ 1571 1 0 "cf0fab96_e65f_4e8a_85a809800b192075" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArraySpeed"), ArrSpeed); // }} "" // {{{ 1572 1 0 "0ca69f46_9c96_402e_9b1587ced7bff5c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArrayAcceleration"), ArrAcceleration); // }} "" // {{{ 1573 1 0 "d37afa07_2508_484d_81b6f153e1aa28ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ArrayDuration"), ArrDuration); // }} "" // {{{ 1574 1 0 "6f8e9cca_35cb_4393_9f845b2135e8c2d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Deceleration"), Deceleration); // }} "" // {{{ 1575 1 0 "42d02aa8_5a1f_4144_b475d634885c1d4a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrDuration, Translate(","), i_ArrDuration, 0); // }} "" // {{{ 1576 1 0 "252eacff_1b04_4607_9403f7ebc9935d0a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrSpeed, Translate(","), i_ArrSpeed, 0); // }} "" // {{{ 1577 1 0 "e1de1f59_a4b3_4220_a987c7e8e67e82c3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(ArrAcceleration, Translate(","), i_ArrAcceleration, 0); // }} "" // {{{ 1578 1 0 "085cc0ce_663a_4e79_8bf732421e2f56a9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrAcceleration, i_ArrAcceleration); // }} "" // {{{ 1579 1 0 "5f942567_121a_417c_be3e2449c5473b40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrSpeed, i_ArrSpeed); // }} "" // {{{ 1580 1 0 "f88bd247_c7e5_4823_bd5e37605974f825" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrArrayToInts(i_ArrDuration, i_ArrDuration); // }} "" // {{{ 1581 1 0 "82e32803_a688_4f29_8a1c94dead53e48e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Centrifuge(Label, CloseCoverAtEnd, intPresentPosition, Direction, i_ArrSpeed, i_ArrAcceleration, i_ArrDuration, Deceleration, o_stepReturn); // }} "" // {{{ 1582 1 0 "6541fb1d_df0a_4f0c_8474d211e4e4721a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = StrIStr(o_stepReturn); // }} "" // {{{ 1583 1 0 "ca37a7ce_edb5_4864_90dffb84cbb93071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1584 1 0 "54bf0b61_3ff3_4e00_8d35d876bfec98bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1585 1 0 "cc879722_4e99_410c_a8454d136f6aae6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1586 1 0 "48cb330b_8197_439e_974791118048b53e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1587 1 0 "ad0b08d4_17f2_49d0_a67860ea51423835" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1588 1 0 "5d8f135c_f0e2_4460_861984fe9a7fa710" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_GetStatus") { // }} "" // {{{ 1589 1 0 "1be02a3f_6880_42b3_b612e480fcd7e403" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1590 1 0 "5dcbef58_09da_4530_afb23e072fe81806" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_GetRotationStatus(Label, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, o_stepReturn); // }} "" // {{{ 1591 1 0 "07344966_2aca_47d5_94006574d009ab21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1592 1 0 "47572e7c_3ab2_48e3_be4d5f024ede7c41" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, o_stepReturn, RotorDriveRunning, ProfileStatus, TimeLeft, CurrentSpeed, SpeedSensorTrip, GravitySensorTrip, TemperatureSensorTrip, Translate(""), id); // }} "" // {{ 1593 1 0 "5d8f135c_f0e2_4460_861984fe9a7fa710" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1594 1 0 "ad0b08d4_17f2_49d0_a67860ea51423835" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1595 1 0 "cd7ca6de_07b8_4d48_875925ee71386e46" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1596 1 0 "2acb9ae8_850a_4120_a212cb2a4a6200bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Open") { // }} "" // {{{ 1597 1 0 "6a9181eb_a95e_4e7b_a8df77f39d3519e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1598 1 0 "6f785fb2_5cc2_4924_b9e514e193d96143" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverOpen(Label, o_stepReturn); // }} "" // {{{ 1599 1 0 "d7ac8b69_b503_4f26_81756b6dc894d246" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1600 1 0 "d707b09f_2dc6_4b2f_9fdb84c07c07f2b2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1601 1 0 "2acb9ae8_850a_4120_a212cb2a4a6200bd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1602 1 0 "cd7ca6de_07b8_4d48_875925ee71386e46" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1603 1 0 "0d7255ee_b967_4693_8d7375d684b4747f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1604 1 0 "10b7afeb_e804_457e_88b935a2b48a71c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Close") { // }} "" // {{{ 1605 1 0 "dbed33cf_5e9c_4102_b254b161284b15e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1606 1 0 "f7647d6b_38bb_4d38_895246f5ac76fe59" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_CoverClose(Label, o_stepReturn); // }} "" // {{{ 1607 1 0 "77bb0b57_a308_455c_baabf680266f4336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1608 1 0 "0c3dee9e_33f9_4f79_99400f9368f6da14" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1609 1 0 "10b7afeb_e804_457e_88b935a2b48a71c9" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1610 1 0 "0d7255ee_b967_4693_8d7375d684b4747f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1611 1 0 "4dcf2947_ad5a_47e8_8c8214244ffcb3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1612 1 0 "81386c58_3b5a_4743_9453eb6a117234ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Start") { // }} "" // {{{ 1613 1 0 "44af1318_1d60_4a35_a5714accdc0c242a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1614 1 0 "25c1c841_9dea_4404_afbc9b3efc307343" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Direction"), Direction); // }} "" // {{{ 1615 1 0 "d5af29b3_1f52_48d0_be771ca87547a6c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Speed"), Speed); // }} "" // {{{ 1616 1 0 "0615f300_6c08_4978_beb5ebd0c96a686e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Acceleration"), Acceleration); // }} "" // {{{ 1617 1 0 "8f4f8eba_1777_4696_b1185b776105f4e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("MaxRunTime"), MaxRunTime); // }} "" // {{{ 1618 1 0 "6d0a342b_4d08_47ec_81979a6bcb184434" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StartCentrifuge(Label, Direction, Speed, Acceleration, MaxRunTime, o_stepReturn); // }} "" // {{{ 1619 1 0 "562e3df1_ee9e_4ef5_a70c4247d08e453f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1620 1 0 "d3624dd6_4de0_4827_b501bde2ca9e3d5a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1621 1 0 "81386c58_3b5a_4743_9453eb6a117234ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1622 1 0 "4dcf2947_ad5a_47e8_8c8214244ffcb3c7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1623 1 0 "e9168cf2_c9e7_40a5_a52e0b9ad08f1fed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1624 1 0 "225ad45c_32fa_4f7d_af063f5ce1ab907c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Stop") { // }} "" // {{{ 1625 1 0 "e5891eba_60d8_49f6_af7be2af0aef66a7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1626 1 0 "4008af1e_863b_4a5a_9b4b33d547b6fd7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Decelleration"), Decelleration); // }} "" // {{{ 1627 1 0 "667c83ad_57d3_4ce9_a2dca9287fb97d7e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_StopCentrifuge(Label, Decelleration, o_stepReturn); // }} "" // {{{ 1628 1 0 "43ffc328_4600_41cb_a084d56b006fee8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1629 1 0 "263c82c5_d2f1_463f_b2f102d150ca0a0f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1630 1 0 "225ad45c_32fa_4f7d_af063f5ce1ab907c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1631 1 0 "e9168cf2_c9e7_40a5_a52e0b9ad08f1fed" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1632 1 0 "551d8e94_670b_4472_b73600d28f237682" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1633 1 0 "bd20d1b8_d440_4b6f_9041a5b536904a0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "Centrifuge_Terminate") { // }} "" // {{{ 1634 1 0 "1e54be13_32c5_43bd_bcea8da753eedd90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("Label"), Label); // }} "" // {{{ 1635 1 0 "c884c5b1_cb4e_4d38_907361a00b32d3f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_CENTRIFUGE::HamiltonCentrifuge_Terminate(Label, o_stepReturn); // }} "" // {{{ 1636 1 0 "fa01d6ec_8920_4fd7_adbc2f6f4f106df5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Centrifuge Initialize"), o_stepReturn); // }} "" // {{{ 1637 1 0 "1664cc0f_d416_47d5_aa13970ade2397b3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1638 1 0 "bd20d1b8_d440_4b6f_9041a5b536904a0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1639 1 0 "551d8e94_670b_4472_b73600d28f237682" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1640 1 0 "6aa13f85_d8b8_4a2a_93232eeb15e0a01d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1641 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1642 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Initialize") { // }} "" // {{{ 1643 1 0 "5efffd73_f295_4d3c_aacd37c74d2bc015" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ComPort"), Comport); // }} "" // {{{ 1644 1 0 "cc8f22a1_0ae7_40ee_82d2e071b7344cf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn); // }} "" // {{{ 1645 1 0 "b6f33534_c173_4c6c_820d96a48fa50a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Barcode initialize:"), o_stepReturn); // }} "" // {{{ 1646 1 0 "138ad752_fbd8_457e_948dd436ddb65822" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1647 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1648 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Read") { // }} "" // {{{ 1649 1 0 "0b3c261e_a906_4464_b0e5caa3ec640056" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Read(barcode); // }} "" // {{{ 1650 1 0 "98aadc47_a5a2_433d_84530ad050155ccd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("BarcodeReader_Read"), barcode); // }} "" // {{{ 1651 1 0 "e3fc85ee_a6d7_4d98_a3f9076b947565cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, barcode, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1652 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1653 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1654 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1655 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1656 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_BeginMonitoring") { // }} "" // {{{ 1657 1 0 "7dd862dc_f7f1_4600_94ca9b83762673dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1658 1 0 "d37d14e5_261f_418c_81f754eb75bf4920" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingToleranceRange"), shakingToleranceRange); // }} "" // {{{ 1659 1 0 "0919ceb3_189a_4885_93c8faeab9f9538b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sampleInterval"), sampleInterval); // }} "" // {{{ 1660 1 0 "bc3a749e_e1bb_4c4a_9aac06834d85080f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("action"), action); // }} "" // {{ 1661 1 0 "98795c5d_e3e5_4d8c_bba032968c530136" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1662 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ; err.Clear(); // }} "" // {{{ 1663 1 0 "a2a0a3bb_c0cf_4123_afe36d1d51ae233c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action); // }} "" // {{ 1664 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3202FD4CC34D478f892F31C7684340BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1665 1 0 "435e7414_9170_4bf9_bd0ac83f0ab51fad" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1666 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1667 1 0 "c00b8635_652d_48ca_8d345ed070306b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1668 1 0 "85ac1487_5644_4bae_b032f5c191aa47c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1669 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1670 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1671 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1672 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateStarDevice") { // }} "" // {{{ 1673 1 0 "4c3dfdd2_2dd6_4c5f_831f92590c13e82e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1674 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_125BC55B27764d2c8D3CA0A703CF1EAD ; err.Clear(); // }} "" // {{{ 1675 1 0 "cc3d4234_12d6_486a_a110c8ede0e3059b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber); // }} "" // {{ 1676 1 0 "f17e82ff_88ef_4685_bf6f75a8ca0e32f6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1677 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_125BC55B27764d2c8D3CA0A703CF1EAD : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1678 1 0 "c0256452_8d47_4f97_9e9c2250a44934d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1679 1 0 "8c3ce9eb_f542_40c0_b36905f7712d0954" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1680 1 0 "7699b24c_5ec6_4cca_b1cb9aed9ce60247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 1681 1 0 "85155966_9554_40cb_9693f9b0a11b25a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1682 1 0 "d049e779_0761_471d_9f7b8af0967d1633" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1683 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1684 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1685 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1686 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateUSBDevice") { // }} "" // {{{ 1687 1 0 "72f0a762_2550_45ad_bea063f4f72a9fe9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 1688 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ; err.Clear(); // }} "" // {{{ 1689 1 0 "6957e247_4f64_4971_8d90658c99adbb87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber); // }} "" // {{{ 1690 1 0 "34cc8f4a_c310_4eb7_b936c63f8401c523" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1691 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_98100824AA704d26AB40A6BADEF39F48 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1692 1 0 "058f8bb4_5fe3_4a6b_a36e899c2a89656f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1693 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1694 1 0 "a9b4c19d_dcc0_42d7_9a51e3241ef647f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return:"), o_stepReturn); // }} "" // {{{ 1695 1 0 "d303212f_1f38_442d_a24eee709cf4cdc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return2 (device number):"), deviceNumber); // }} "" // {{{ 1696 1 0 "7356ec1e_8437_4679_94613ac2bea4fe0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 1697 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1698 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1699 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1700 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_EndMonitoring") { // }} "" // {{{ 1701 1 0 "4293ef15_cfcd_4e29_b9b02afae2d471f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1702 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ; err.Clear(); // }} "" // {{{ 1703 1 0 "dd7d7b00_1e95_4e45_97a425f03a18ab04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult); // }} "" // {{{ 1704 1 0 "0021495f_472e_4321_9d1e81e8fbd43f0c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1705 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1706 1 0 "aabeb82e_70d9_42f7_901f3fe114094e0a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1707 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1708 1 0 "ce89bf49_b865_4c3f_a97eba220b5a7d33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS End Monitoring step return:"), o_stepReturn); // }} "" // {{{ 1709 1 0 "05229af2_f20a_42ce_908ec8445f3f9dd2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(""), Translate(""), id); // }} "" // {{ 1710 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1711 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1712 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1713 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetFirmwareVersion") { // }} "" // {{{ 1714 1 0 "942a1cc2_d956_47fa_9a9ffed1e856a632" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1715 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ; err.Clear(); // }} "" // {{ 1716 1 0 "f6b3cc8e_f852_4a96_9567a4fa67e846e8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1717 1 0 "c70f5e07_0eeb_45e5_af26714895e2df88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion); // }} "" // {{ 1718 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1719 1 0 "96886e69_ba07_45e3_96353112dc429afc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1720 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1721 1 0 "7de3b86c_c16d_4932_beedfb948b5d85f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(""), Translate(""), id); // }} "" // {{ 1722 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1723 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1724 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1725 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetSerialNumber") { // }} "" // {{{ 1726 1 0 "38b7d0d7_7cce_4157_8abc70dfb62eefa5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1727 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_2434A44DB44B48ff82A9F66DE34C5041 ; err.Clear(); // }} "" // {{ 1728 1 0 "08061228_63f2_47d2_a601ba16d6a1a142" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1729 1 0 "0bbfb488_9723_4a08_9b90171dbec6117a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber); // }} "" // {{ 1730 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_2434A44DB44B48ff82A9F66DE34C5041 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1731 1 0 "4cf5e7f7_9567_4e6b_a206bf6f8962c785" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1732 1 0 "7a2cb450_4c76_4d77_894cce4fe6c671a3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1733 1 0 "311e5a04_1ac3_443c_bdc51c5cdc4c44f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(""), Translate(""), id); // }} "" // {{ 1734 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1735 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1736 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1737 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerParameter") { // }} "" // {{{ 1738 1 0 "f3888a0b_86ea_4c4a_891e1755a6e78556" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1739 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ; err.Clear(); // }} "" // {{ 1740 1 0 "693cec94_9d14_4bff_8e4868a3b27f0245" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1741 1 0 "e993ed67_92ed_4c85_bd33f90aac53dfb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3); // }} "" // {{ 1742 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1743 1 0 "bd4bffe6_9161_4f42_b0b53307549f4286" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1744 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1745 1 0 "6efd49bf_48c7_437b_8fee57487345eaee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1746 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1747 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1748 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1749 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerSpeed") { // }} "" // {{{ 1750 1 0 "e1c29a26_0656_46e3_b0a412143047bd26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1751 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ; err.Clear(); // }} "" // {{{ 1752 1 0 "c0166b97_c0ae_417b_85c90c5ef42e5fc6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2); // }} "" // {{{ 1753 1 0 "73777071_2fd2_42b0_a7545c6a6a372194" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1754 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1755 1 0 "fb8e630b_9519_4b3d_94eabf1311546383" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1756 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1757 1 0 "41ba2513_e3c2_485c_821198419c3fe286" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1758 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1759 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1760 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1761 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTempParameter") { // }} "" // {{{ 1762 1 0 "09fb30ea_33e9_486d_96945af4798859ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1763 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ; err.Clear(); // }} "" // {{ 1764 1 0 "7e342beb_ebbe_4873_bf53c50f29cbaa0e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1765 1 0 "c8f45788_ef99_414d_a41d29a20583a067" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 1766 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C16E1CF8298042f0A01D1040DC911015 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1767 1 0 "b845f534_5a22_4076_b36069f70af90742" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1768 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1769 1 0 "4793211e_93d2_43e6_b4d25d7e0ae3e104" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 1770 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1771 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1772 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1773 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperature") { // }} "" // {{{ 1774 1 0 "01d1add6_c167_4137_8f0c285cd6ad9bed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1775 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ; err.Clear(); // }} "" // {{{ 1776 1 0 "ecd6d069_96d7_4a72_9ffc0df77e7a1512" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2); // }} "" // {{{ 1777 1 0 "b05c868f_c25f_47a9_b533b13ab05fc962" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1778 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_14A2AAD200434d69970AC483BD08B64F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1779 1 0 "cabbe1ee_c5d4_49dd_90875673900d6120" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1780 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1781 1 0 "234847f1_2f0a_4e64_856b9edefcebb425" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1782 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1783 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1784 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1785 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperatureState") { // }} "" // {{{ 1786 1 0 "82a233ab_0392_4ebb_9a809d80aae38e44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1787 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ; err.Clear(); // }} "" // {{{ 1788 1 0 "c99aa2b7_d8a6_4cee_a1fa1d731ef77d25" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2); // }} "" // {{{ 1789 1 0 "f2861b4d_28d2_4ee3_8b7c7763312067ab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1790 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_50485390A50647818ED2D3934FBC87E3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1791 1 0 "f56ee559_1221_4f5a_ad332d0e44502aff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1792 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1793 1 0 "31a69f44_1a59_49ce_a78763f3aa936042" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1794 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1795 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1796 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1797 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SendFirmwareCommand") { // }} "" // {{{ 1798 1 0 "11546c32_6ddd_4250_9b8750c9679e5b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1799 1 0 "06688598_f10e_41e9_8a2c6d3dff7b7aae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), command); // }} "" // {{{ 1800 1 0 "15a58509_ec93_4677_b1858cadeac42d10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("parameter"), parameter); // }} "" // {{ 1801 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ; err.Clear(); // }} "" // {{{ 1802 1 0 "a650efc1_423b_4f75_9f0da083ee44ae9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter); // }} "" // {{{ 1803 1 0 "e1ef0806_8a47_46c1_972c9ed9e299eaad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1804 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_84EE5E4228B140f599748D1271CBB0F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1805 1 0 "c9bd9645_5a05_4cc6_95997f787c8772d6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1806 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1807 1 0 "8b5634c2_e1da_41d3_83c57142f4cae999" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1808 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1809 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1810 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1811 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetPlateLock") { // }} "" // {{{ 1812 1 0 "927ddf67_5dbd_432b_b8cf6117a3109b06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1813 1 0 "a3eee1ac_7024_473b_a6eb8a2e9b461a66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("plateLock"), plateLock); // }} "" // {{ 1814 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ; err.Clear(); // }} "" // {{{ 1815 1 0 "b417b8ce_5117_450e_93a9a6243c6011d8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock); // }} "" // {{{ 1816 1 0 "ed43cecb_7012_4fb9_a89d129de09bdadb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1817 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1818 1 0 "4eb95522_37fd_4802_af85a620dc874526" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1819 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1820 1 0 "945560ed_40bf_44a9_851fead4c1943f9f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1821 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1822 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1823 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1824 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetShakerParameter") { // }} "" // {{{ 1825 1 0 "8a0e14c1_f6c6_4fb8_94094498cccd7991" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1826 1 0 "1810a83f_3fc2_4c49_9d5502fbdfc743e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingDirection"), shakingDirection); // }} "" // {{{ 1827 1 0 "c3053579_8645_474f_8c05459eed975362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingAccRamp"), shakingAccRamp); // }} "" // {{ 1828 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ; err.Clear(); // }} "" // {{ 1829 1 0 "32b90a07_0607_448d_9767de1d96e31862" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1830 1 0 "77463ac5_e629_4772_98004edef4016a6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp); // }} "" // {{ 1831 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1832 1 0 "5593fd2a_c1e7_4565_bcae82458768dd51" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1833 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1834 1 0 "5ed72ec4_1b60_4258_969b44c995450ec1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1835 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1836 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1837 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1838 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetSimulation") { // }} "" // {{{ 1839 1 0 "941f9e19_ca94_4ede_9719205aeb876593" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{ 1840 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ; err.Clear(); // }} "" // {{ 1841 1 0 "f56567fc_04c1_4645_aee22aa5f22a9f8c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1842 1 0 "41b0c1a2_60aa_4f16_8901c300e9a3dc14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetSimulation(simulate); // }} "" // {{ 1843 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1844 1 0 "35803a11_c620_485a_8196cc2822dddb3f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1845 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1846 1 0 "2e7a9d5f_51df_4c49_bb1986da7e14cd48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1847 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1848 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1849 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1850 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetTempParameter") { // }} "" // {{{ 1851 1 0 "99447b6e_9293_483d_bbd7ddee96870904" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1852 1 0 "f55d7581_a005_45e4_9b3d7f7473323e6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("startTimeout"), startTimeout); // }} "" // {{{ 1853 1 0 "7192db12_8543_4c8b_81b98b57ce21118d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("toleranceRange"), toleranceRange); // }} "" // {{{ 1854 1 0 "8f6d922f_f2ae_43c6_8682df15e6b7c07c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("securityRange"), securityRange); // }} "" // {{ 1855 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ; err.Clear(); // }} "" // {{ 1856 1 0 "a2342046_552f_4003_a1cc262161964a6e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1857 1 0 "57eb738a_6eb2_4f04_b25bd7f7f64a8179" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange); // }} "" // {{ 1858 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1859 1 0 "94c928dd_6dcb_4540_a6cbfdf48e37430c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1860 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1861 1 0 "90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1862 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1863 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1864 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1865 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetUSBTrace") { // }} "" // {{{ 1866 1 0 "0691ecbd_49b4_4590_91d60e614290ec34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("trace"), intTrace); // }} "" // {{ 1867 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ; err.Clear(); // }} "" // {{ 1868 1 0 "aeed4685_8812_4dce_89e2c35429d4c401" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1869 1 0 "24723a79_741b_46be_830fe654c08d6d1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetUSBTrace(intTrace); // }} "" // {{ 1870 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FE6D15E135D24fd7A06908E89474B650 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1871 1 0 "32d09876_dcdb_4d67_b5e72a63e14fec19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1872 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1873 1 0 "cda0d06f_dce0_47ad_bbb419c58aba260e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1874 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1875 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1876 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1877 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShaker") { // }} "" // {{{ 1878 1 0 "503e1c47_5f15_42bd_8eaad1057de68ef6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1879 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ; err.Clear(); // }} "" // {{{ 1880 1 0 "73be1c30_4bfe_4a0f_aa560c8df5b091fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartAllShaker(shakingSpeed); // }} "" // {{{ 1881 1 0 "39ac643d_0305_4ec6_87fc196efe3d76f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1882 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1883 1 0 "c35cdd37_7a73_4008_b9d0ac550c926428" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1884 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1885 1 0 "ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1886 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1887 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1888 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1889 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShakerTimed") { // }} "" // {{{ 1890 1 0 "db6b6c2e_da48_4c64_bdddc80ba5a28921" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1891 1 0 "f6f42906_5ded_4a05_8f9a11fac18f7f10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1892 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ; err.Clear(); // }} "" // {{{ 1893 1 0 "272104de_2e64_4a32_a88407b030437361" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime); // }} "" // {{{ 1894 1 0 "1362f66b_0efd_4eb5_935e84586a427637" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1895 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1896 1 0 "ef7c31f9_e307_450a_851111f26afd2e91" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1897 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1898 1 0 "d73f1476_bf95_4d48_89849f295a9e4d0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1899 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1900 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1901 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1902 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShaker") { // }} "" // {{{ 1903 1 0 "f958f5a5_d1c5_4e9e_9262e708f24940c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1904 1 0 "2ce1189b_e54a_48c0_aafc2932409c0b9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1905 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ; err.Clear(); // }} "" // {{{ 1906 1 0 "cf1b40c4_5e9a_48bf_9390f6eab212315f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartShaker(deviceNumber, shakingSpeed); // }} "" // {{{ 1907 1 0 "2e7a5304_5ce9_4afb_93a4a8276dc86d74" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1908 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1909 1 0 "9b93a06b_e4df_4eca_84467ca6c7f0c0ce" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1910 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1911 1 0 "4b0b48f9_3855_4eab_8f22b0902846d750" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1912 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1913 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1914 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1915 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShakerTimed") { // }} "" // {{{ 1916 1 0 "858c7861_9fb0_490e_9646b9eb190706d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1917 1 0 "327bd0c6_60a8_4fd1_9ef81e2a21d904a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1918 1 0 "83a6d58d_c761_484f_871c9c2229a6d3d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1919 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ; err.Clear(); // }} "" // {{{ 1920 1 0 "4b29337f_c67c_4ecf_a205f4b70e60271a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); // }} "" // {{{ 1921 1 0 "40aad8b7_f42e_4ad1_b0f0c033ec666548" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1922 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_29447729262E4e0f8B347F6640716D96 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1923 1 0 "f383d799_1d15_4348_8a2dc84422f46ff2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1924 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1925 1 0 "f539df09_de1d_4fd8_9ac041897fab0333" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1926 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1927 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1928 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1929 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartTempCtrl") { // }} "" // {{{ 1930 1 0 "dc338e01_6b43_4fe3_bda98d2b0a1a65e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1931 1 0 "04239a09_93a5_4f75_80f95d178bdf9cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("temperature"), temperature); // }} "" // {{{ 1932 1 0 "0387745b_87be_4ec6_912b0b4decaa257b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("waitForTempReached"), waitForTempReached); // }} "" // {{ 1933 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ; err.Clear(); // }} "" // {{{ 1934 1 0 "dfb61f9c_103b_4c42_83e0779ea05cb180" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached); // }} "" // {{{ 1935 1 0 "e4829da3_d8b6_453f_a2be82213303e9f3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1936 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_764F491C76DA445383E5490AB126ADB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1937 1 0 "21dd8d34_e764_4a0f_b34ccecf089437dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1938 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1939 1 0 "bfde731d_b581_4488_b4cb7f4873675d7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1940 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1941 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1942 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1943 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopAllShaker") { // }} "" // {{ 1944 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ; err.Clear(); // }} "" // {{{ 1945 1 0 "ee3103a2_d7f3_488f_b7a95e2f2b56770a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{{ 1946 1 0 "a782313c_e15b_4340_bdda314f926e24cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1947 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1948 1 0 "45d1f212_46b9_4976_83503edf5606c88e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1949 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1950 1 0 "5706daca_363f_417f_9103f7ddd16c1444" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1951 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1952 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1953 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1954 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopShaker") { // }} "" // {{{ 1955 1 0 "1cdead0d_9944_446b_bd59d491b15242b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1956 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ; err.Clear(); // }} "" // {{{ 1957 1 0 "b5ecca33_fef4_4c14_9cf702c924839607" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StopShaker(deviceNumber); // }} "" // {{{ 1958 1 0 "49e72e72_8e49_49fd_8d212a6ccff1d2fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1959 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1960 1 0 "1fe83710_037b_4157_82a99e6aaf08edcb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1961 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1962 1 0 "6ffd1f39_ec63_4f9c_a7687447aff79f80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1963 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1964 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1965 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1966 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopTempCtrl") { // }} "" // {{{ 1967 1 0 "b16ab946_2ba9_4900_bd6f9ede31edf6ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1968 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B5957B02990845739642D8C604B0B582 ; err.Clear(); // }} "" // {{{ 1969 1 0 "d186dde8_c684_4550_a023d9023ff021d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::StopTempCtrl(deviceNumber); // }} "" // {{{ 1970 1 0 "af12e4a9_cc0f_4a82_b9593d2b489756a8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1971 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B5957B02990845739642D8C604B0B582 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1972 1 0 "28b1d8d1_83cc_4627_9146c7398c601938" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1973 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1974 1 0 "11f3231a_40df_4c14_92585ab8016165e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1975 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1976 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1977 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1978 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_Terminate") { // }} "" // {{ 1979 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ; err.Clear(); // }} "" // {{ 1980 1 0 "b1da178c_1267_4c8c_b1cd24bfa10a11fb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 1981 1 0 "910932e3_2b76_41cf_9dccecb799f2d649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::Terminate(); // }} "" // {{ 1982 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_919FCF7F89804c398972DAFE2605D286 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1983 1 0 "697e84e2_525e_4045_83bb3825b36f6b2f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1984 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1985 1 0 "4edde3c1_4f65_4403_a54985d84f6d80f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1986 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1987 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1988 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1989 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForShaker") { // }} "" // {{{ 1990 1 0 "87872be5_4e84_4b7b_98a3e7147a66f6a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1991 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ; err.Clear(); // }} "" // {{{ 1992 1 0 "3b2abeec_38f4_46a6_a30b0d0126280ebc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::WaitForShaker(deviceNumber); // }} "" // {{{ 1993 1 0 "c4e94e42_8405_438b_921cfe4ba73e9976" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 1994 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1995 1 0 "c08ab14c_3879_4f65_ad7085e45f74a6df" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1996 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1997 1 0 "96b99051_5c80_421c_a02e0bd238da1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1998 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1999 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2000 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2001 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForTempCtrl") { // }} "" // {{{ 2002 1 0 "881e7d69_50e3_4e42_89eafece562ac009" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 2003 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ; err.Clear(); // }} "" // {{{ 2004 1 0 "5aa60a5a_db92_42e0_b3277a41cacb5336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" hssErrCode = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber); // }} "" // {{{ 2005 1 0 "49cd8e9e_91bd_468c_aec57e3af40280fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" o_stepReturn = ConvertHSSErrCode(hssErrCode); // }} "" // {{ 2006 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_088C7630997A4749A400740DA66CBA0C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2007 1 0 "de7dad67_0b6c_47eb_af5a68302431ff1e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2008 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 2009 1 0 "aeb529e0_2eaf_4686_9528342b58318a5d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2010 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2011 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2012 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2013 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2014 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2015 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "CORE96WashEmpty") { // }} "" // {{{ 2016 1 0 "88f95bdd_c2c5_4856_91e5f47f7431bdaf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("refillAfterEmpty"), refillAfterEmpty); // }} "" // {{{ 2017 1 0 "d7a05a26_0b59_478a_a85f308173caf693" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1WashLiquid"), chamber1WashLiquid); // }} "" // {{{ 2018 1 0 "8b1bd108_2b5a_4a2d_ace7b87920eae1b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1LiquidChange"), chamber1LiquidChange); // }} "" // {{{ 2019 1 0 "d651fbf5_a4b8_490b_b869269338ccfcfa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2WashLiquid"), chamber2WashLiquid); // }} "" // {{{ 2020 1 0 "79b1a205_d988_4171_9e1fb28ba362329b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2LiquidChange"), chamber2LiquidChange); // }} "" // {{ 2021 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ; err.Clear(); // }} "" // {{ 2022 1 0 "3fc645b3_f504_4b5e_93481425adf459b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 2023 1 0 "123d7b87_745f_4511_a797d08711d13361" "ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}" { variable arrRetValues[]; arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3("123d7b87_745f_4511_a797d08711d13361"); // Head96EmptyWasher } // }} "" // {{ 2024 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EE8804FCDC214a06935DD0F4830020DB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 2025 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 2026 1 0 "d3d07dad_de12_4d0c_bd96c7caa06ff3ee" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{{ 2027 1 0 "84732f19_85e4_4b22_8e617b5e1c91f73c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Washer Return: "), o_stepReturn); // }} "" // {{{ 2028 1 0 "dde0a413_b493_4b17_94990d1d5f2e2b2e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 2029 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2030 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2031 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 2032 1 0 "1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONFromServer); // }} "" // {{ 2033 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2034 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "end") { // }} "" // {{{ 2035 1 0 "6db67a5a_6aa2_4087_875823acfff0fac4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Good Bye!")); // }} "" // {{ 2036 1 0 "4c7e40d6_02a6_451d_b28230ec71e40ce1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2037 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2038 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 2039 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2040 1 0 "6fb90145_24c3_46ba_88b839e0215d0bf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{ 2 "AutoExitBlock" "" STAR_OEM_TOOLKIT::_ExitLibrary(); STAR_OEM_TOOLKIT_PH::_ExitLibrary(); STAR_OEM_TOOLKIT_CENTRIFUGE::_ExitLibrary(); STAR_OEM_TOOLKIT_MPE::_ExitLibrary(); HAMILTON_PH_MODULE_CONTROLLER::_ExitLibrary(); // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=Hamilton$$valid=0$$time=2024-07-10 14:32$$checksum=71158b10$$length=085$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~HxE82B.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" private function ArrayToString( variable & i_array[], variable & o_str ) void ; private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ; private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ; private function ConvertHSSErrCode( variable hssErrCode ) variable ; private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ; private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void ; function SendTextMessageToServer( variable str ) void ; private function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; private function waitForGUItoContinue( ) variable ; function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 2205 1 0 "c8aa765a_4840_468a_9e928b44fa79d891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{{ 5 "OnAbort" "End" } // }} "" // {{{ 5 "SendTextMessageToServer" "Begin" function SendTextMessageToServer( variable str ) void { // }} "" private object objJSONObject; private variable strJSON; // {{ 5 "SendTextMessageToServer" "InitLocals" // }} "" // {{{ 2165 1 0 "9d5f9d4a_c104_4b47_964b6d97f981a71e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONObject); // }} "" // {{{ 2166 1 0 "d0a04705_1adc_4919_b95168834c89f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("command"), Translate("message")); // }} "" // {{{ 2167 1 0 "7b9a6cd1_3eee_4085_b3f9548e43fc3424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("text"), str); // }} "" // {{{ 2168 1 0 "6a1c53cf_65ea_4f53_aa2e9111890fecf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONObject, strJSON); // }} "" // {{{ 2169 1 0 "bee8c148_b3ea_490b_8d93d8ed5f24939f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONObject); // }} "" // {{{ 2170 1 0 "b965a2fd_f821_4400_b4c777f558ed0772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendTextMessageToServer" "End" } // }} "" // {{{ 5 "waitForGUItoContinue" "Begin" private function waitForGUItoContinue( ) variable { // }} "" private variable loopCounter1; private variable serverResponse; private timer timer1; // {{ 5 "waitForGUItoContinue" "InitLocals" // }} "" // {{ 2186 1 0 "73328607_d06a_4d7d_8a5df64da06a1bde" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" serverResponse = Translate(""); // }} "" // {{{ 2187 1 0 "2342f8b3_4765_4edc_9fb9f46cbb1fd20b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Waiting for server instructions...")); // }} "" // {{{ 2188 1 0 "216e1039_788e_4830_8588933e6c542ba1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Waiting for server instructions...."), Translate("")); // }} "" // {{ 2189 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounter1 = 0; while (1 == 1) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2190 1 0 "73659ac2_f808_47cc_89196cc3adc8efbf" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" timer1.SetTimerViewName(""); if( 0 == timer1.SetTimer(0.05) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2191 1 0 "cd67277b_4386_4862_8429008a00601693" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 2192 1 0 "6ec592d0_fe02_41a9_8503db5ccf0e5544" "{C1F3C015-47B3-4514-9407-AC2E65043419}" serverResponse = HSLHttp::HttpGET(objHttp, Translate("http://localhost:3221"), Translate("")); // }} "" // {{ 2193 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (serverResponse != "") { // }} "" // {{ 2194 1 0 "9be29cc7_ad35_4b87_9e95d31796325e12" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2195 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2196 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 == 300) { // }} "" // {{ 2197 1 0 "19e5c8f7_a1a9_4348_aa41a572942db630" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2198 1 0 "2a039f02_4c13_4f72_9ba40a3121b31262" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 2199 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2200 1 0 "d221d799_ee85_4f6d_a40a06cc0a69a3de" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" timer1.SetTimerViewName(""); if( 0 == timer1.SetTimer(0.05) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2201 1 0 "52bb524e_27b1_4bbe_afcf26453d9eb66f" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 2202 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2203 1 0 "809789b0_bd70_4c1f_b0d808ce120b1d99" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (serverResponse); // }} "" // {{{ 5 "waitForGUItoContinue" "End" } // }} "" // {{{ 5 "SendStepReturnToServer" "Begin" private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer" "InitLocals" // }} "" // {{{ 2136 1 0 "2520bd9f_739d_4111_a27d89f8f73ec39e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2137 1 0 "aa6010ec_0628_49d5_a87e016b4a4fc7f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 2138 1 0 "a97c5efa_0ce4_4358_9c51c1893f526b9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 2139 1 0 "deceb871_e830_4b14_86e626f745ef083a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 2140 1 0 "00afb5c2_b5db_4458_866a13b6cb332b68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 2141 1 0 "e52bbd02_b31d_4278_a0f45991eab77d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 2142 1 0 "19f99698_3777_4dcf_9fc765c3f221df4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 2143 1 0 "329f8b9b_0798_44f8_9ee6b65ec58b0c44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2144 1 0 "7728ac0d_8630_4f61_94af076392758ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2145 1 0 "70d261f2_edc4_49a0_a5a074cd5ab92b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2146 1 0 "ee0dd62d_582f_4171_b08e37f6106d9b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer" "End" } // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "Begin" private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void { // }} "" private variable n; private variable loopCounter1; private variable strSinglePosition; private variable arrayOfPositions[]; private variable arraySinglePosition[]; private variable labwareID; private variable positionID; // {{ 5 "BuildTempSequenceFromPositions" "InitLocals" { sequence __temp; o_seq = __temp; } // }} "" // {{ 2078 1 0 "d9022e13_e502_4969_a8ee79484e990801" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arrayOfPositions.SetSize(0); // }} "" // {{{ 2079 1 0 "3e178082_8579_435f_a5db4481bb789d9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strPositions, Translate(";"), arrayOfPositions, 0); // }} "" // {{ 2080 1 0 "5d735f26_db1b_4bea_9ee405f4167bb99f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" n=arrayOfPositions.GetSize(); // }} "" // {{{ 2081 1 0 "f497f24b_fd39_417d_8703c0d54662309f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq); // }} "" // {{ 2082 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2083 1 0 "fd645546_0433_46a0_8619026e338529fd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arraySinglePosition.SetSize(0); // }} "" // {{ 2084 1 0 "91aeb0c4_3176_4356_a19a1027bcdb0af3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1); // }} "" // {{{ 2085 1 0 "c2b42369_7829_4c62_b58880fce7867995" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strSinglePosition, Translate(","), arraySinglePosition, 0); // }} "" // {{ 2086 1 0 "016f61c5_fd76_4c74_903df10a03070f7b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" labwareID=arraySinglePosition.GetAt(1-1); // }} "" // {{ 2087 1 0 "886fc872_7c3a_4366_959db6d5f265ed7c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" positionID=arraySinglePosition.GetAt(2-1); // }} "" // {{{ 2088 1 0 "766a54b4_4c5b_4991_9d8ceea62d26b216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq, labwareID, positionID); // }} "" // {{ 2089 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2090 1 0 "0003c6e9_5b43_438d_bc93be342c3c6b55" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq.SetCurrentPosition(1); // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "End" } // }} "" // {{{ 5 "StrTokenize" "Begin" private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 2180 1 0 "500afe4c_98a8_4117_8c279b9994d0b626" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 2181 1 0 "6a0bd918_2fda_4e4c_a680454ce2576168" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 2182 1 0 "f65ed315_68ed_4ec0_ba0b3c217e692b25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 2183 1 0 "9476acee_e5bb_43d1_bbec232ed01bae08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); // Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "Begin" private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void { // }} "" private variable numOfVolumes; private variable numOfChannelsInVariable; private variable n; private variable loopCounter1; private variable arrSize; private variable loopCounter3; private variable strKeyName; // {{ 5 "BuildArrayOfVolumesForChannels" "InitLocals" o_arrayOfVolumes.SetSize( 0); // }} "" // {{ 2052 1 0 "69288f91_eabd_4d15_af5361636ffacbf6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyName = Translate("volumes"); // }} "" // {{ 2053 1 0 "bf4c1108_6751_41ee_8d3d3b1a9418548f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfVolumes.SetSize(0); // }} "" // {{{ 2054 1 0 "a9cfa743_a769_46a3_b8d7e45a67b3d297" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName); // }} "" // {{ 2055 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arrSize > 0) { // }} "" // {{ 2056 1 0 "594bebbb_0d54_4893_b20d783de743dd44" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2057 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < arrSize;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{{ 2058 1 0 "3bfc9004_2595_4917_b4edcdceed06f518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); // }} "" // {{ 2059 1 0 "6be31b23_f55d_4d15_be6abc9ee4bef664" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" Trace("Volume received=", v); // {{ 2061 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2062 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 2063 1 0 "4a4891b3_f877_4b14_85196b7e820554b2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2064 1 0 "22c7c768_33c4_4975_909e9586375bfe8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(strKeyName, v); // }} "" // {{ 2065 1 0 "4e01e62a_13a2_408e_9fbfb2300d5996ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 2066 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2067 1 0 "cc565f65_a92a_43ef_9c052b7f5632aca5" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" numOfVolumes=o_arrayOfVolumes.GetSize(); // }} "" // {{{ 2068 1 0 "e49355fb_3fe6_4c8d_930870416e36b708" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numOfChannelsInVariable = StrGetLength(strChannels); // }} "" // {{ 2069 1 0 "804bc477_e950_4a14_af5f667c73cf5176" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 2070 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (numOfVolumes < numOfChannelsInVariable) { // }} "" // {{ 2071 1 0 "2e73355c_8b11_4423_b345807cae9d5db8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" n = numOfChannelsInVariable - numOfVolumes; // }} "" // {{ 2072 1 0 "53a650d8_2fc1_4c5b_bd19eda433c2a81a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" v = o_arrayOfVolumes.ElementAt( numOfVolumes -1); // }} "" // {{ 2073 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2074 1 0 "cd047b15_6a02_40f1_adfb116f6bf5d763" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 2075 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 2076 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "End" } // }} "" // {{{ 5 "ArrayToString" "Begin" private function ArrayToString( variable & i_array[], variable & o_str ) void { // }} "" private variable arraySize; private variable loopCounter1; // {{ 5 "ArrayToString" "InitLocals" o_str = 0; // }} "" // {{ 2042 1 0 "1a220255_6ba4_40fb_be39a6a2f4e0065f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 2043 1 0 "f821c4ff_f1a2_4ad7_9bd77dd8652567cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str = Translate(""); // }} "" // {{ 2044 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2045 1 0 "afd84a84_8330_46e7_8308e16b5caa05e9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" v=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 2046 1 0 "77436fd3_3c87_4f09_9a89259b15ef5bf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, v); // }} "" // {{ 2047 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 < arraySize) { // }} "" // {{{ 2048 1 0 "d14fd31e_5de8_46f9_bb359f38de9a08ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, Translate(";")); // }} "" // {{ 2049 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2050 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "ArrayToString" "End" } // }} "" // {{{ 5 "JSON_GetFloatValue" "Begin" private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void { // }} "" private variable retVal; // {{ 5 "JSON_GetFloatValue" "InitLocals" o_KeyFloatValue = 0; // }} "" Trace("getfloatvalue"); // {{{ 2098 1 0 "8f2f8625_6c9e_4c47_b4698d29df60004a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" // {{ 2099 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("error getting float value, try with integer"); // {{ 2101 1 0 "5a74df81_6685_4703_8b055144f8d74d45" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 2102 1 0 "47bb8c98_9624_40ad_b765abfc6b0d0b49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" Trace("error getting float value, tried with integer"); // {{ 2104 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("wtf ok i guess its zero"); // {{ 2106 1 0 "5b8a3ec6_8ee4_4887_ab7df29fa494cdc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_KeyFloatValue = 0; // }} "" // {{ 2107 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2108 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "JSON_GetFloatValue" "End" } // }} "" // {{{ 5 "SendHHSReturnToServer" "Begin" private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; private variable t_arrayStepReturns[]; private variable loopCounter1; private variable keyName; private variable varType; // {{ 5 "SendHHSReturnToServer" "InitLocals" // }} "" // {{{ 2110 1 0 "6db3f932_ba70_4cf6_9c2a8636580fc754" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2111 1 0 "3cf8a985_83cc_418e_99293de9d9945d5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("HHS-return")); // }} "" // {{{ 2112 1 0 "705c25bc_6db4_4eb9_b05b33999e110198" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{ 2113 1 0 "5a9efc02_a11a_4c0c_b166e3b28800cc6c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" t_arrayStepReturns.SetSize(0); // }} "" // {{ 2114 1 0 "5aa4f3a8_774f_4f35_ae7fa197ef920048" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn1); // }} "" // {{ 2115 1 0 "00ac351d_bc51_41e5_b300af93d6893fa5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn2); // }} "" // {{ 2116 1 0 "2aaf8702_2d08_48ee_be96815ca77463c9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn3); // }} "" // {{ 2117 1 0 "67fcb56e_9f42_4739_a5ee322f12443a17" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn4); // }} "" // {{ 2118 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < 4;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 2119 1 0 "a23ae2ed_5b02_41a0_a69215d0b80fde4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" keyName = StrConcat2(Translate("step-return"), loopCounter1); // }} "" // {{{ 2120 1 0 "9b92ac94_8c71_4b77_95ac0c691427c4bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" varType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2121 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "s") { // }} "" // {{{ 2122 1 0 "1497ea6a_46ab_4ee8_b7951f24b533e644" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2123 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2124 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "f") { // }} "" // {{{ 2125 1 0 "61772f9e_fea3_4011_bba06b7fe66e8b0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2126 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2127 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "i") { // }} "" // {{{ 2128 1 0 "28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 2129 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 2130 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 2131 1 0 "0a0447b8_96fb_495a_90dfa8f1e2c488ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2132 1 0 "b2a13d10_b443_4fc0_aa0baa2a23cddafe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2133 1 0 "0adf40b4_5c73_46d8_8e6042c6dfd32d86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2134 1 0 "5a5dabeb_e3ed_4730_ab86839e00f75077" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendHHSReturnToServer" "End" } // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "Begin" private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepReturn9, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer_EightOutputs" "InitLocals" // }} "" // {{{ 2148 1 0 "a5a7b215_f4cb_4951_82e1faf532cd7222" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 2149 1 0 "9480693e_99ec_4cfd_aa9c8f48e76ee42f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 2150 1 0 "3f068696_35bd_4060_8b291470a817f628" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 2151 1 0 "b68a52fb_e141_4e4c_b5e7bbcbf0c9817f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 2152 1 0 "8ab4a139_9629_43b7_98f13d1058881e4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 2153 1 0 "1417a4bd_aea8_4b36_8a7a05739a789ecf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 2154 1 0 "24b6213e_470e_468a_86dc55b44ff96b95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 2155 1 0 "42403d87_ddb6_4bee_8fc6ad09efb7573a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return5"), stepReturn5); // }} "" // {{{ 2156 1 0 "8493044a_674d_4139_90fa1c7a00050abc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return6"), stepReturn6); // }} "" // {{{ 2157 1 0 "b43cf915_ef0d_4d62_985deae88bcd6c18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return7"), stepReturn7); // }} "" // {{{ 2158 1 0 "584d78fd_87d0_4502_a6d089cfaf888318" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return8"), stepReturn8); // }} "" // {{{ 2159 1 0 "711dbc6f_e5c4_40a0_bef5785dc99707ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return9"), stepReturn9); // }} "" // {{{ 2160 1 0 "47856892_8af4_409f_88723a44ebe61362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 2161 1 0 "e5054174_6f3f_4356_8dc30683be948abe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 2162 1 0 "e21196c3_6b8f_47e5_a2888114650b2ec8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 2163 1 0 "3fec97a3_9f33_4fef_afe5355188bf56d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "End" } // }} "" // {{{ 5 "StrArrayToInts" "Begin" private function StrArrayToInts( variable & i_array[], variable & o_intarray[] ) void { // }} "" private variable arraySize; private variable loopCounter1; private variable val; private variable o_arrayOfInts[]; // {{ 5 "StrArrayToInts" "InitLocals" o_intarray.SetSize( 0); // }} "" // {{ 2172 1 0 "d68ba554_ea5e_486c_90e45e6f46e051a7" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 2173 1 0 "2ceaf7fd_f918_493e_a519f9ccc1a58114" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfInts.SetSize(0); // }} "" // {{ 2174 1 0 "f1b90762_2d83_476f_b1cd6ef39b938b13" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 2175 1 0 "832d04b5_dd9e_47f6_86628701b9ba44ef" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" val=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 2176 1 0 "a10f8b45_b69d_4a85_be5a713ea78ccd01" "{C1F3C015-47B3-4514-9407-AC2E65043419}" val = APPSLIB::StrConvertToNumber(val); // }} "" // {{ 2177 1 0 "70dffb74_d5e0_4795_bc74a43dbf1c7d9b" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_intarray.AddAsLast(val); // }} "" // {{ 2178 1 0 "f1b90762_2d83_476f_b1cd6ef39b938b13" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "StrArrayToInts" "End" } // }} "" // {{{ 5 "ConvertHSSErrCode" "Begin" private function ConvertHSSErrCode( variable hssErrCode ) variable { // }} "" // {{ 5 "ConvertHSSErrCode" "InitLocals" // }} "" // {{ 2092 1 0 "0390e8b9_f753_48cc_ba9811c6326b8cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (hssErrCode == 0) { // }} "" // {{{ 2093 1 0 "9f0ce7fc_13c6_4496_9d762a07174e50f1" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (1); // }} "" // {{ 2094 1 0 "0390e8b9_f753_48cc_ba9811c6326b8cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 2095 1 0 "4c347e8c_4bce_4fd2_9771e3402c6f946d" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (0); // }} "" // {{{ 5 "ConvertHSSErrCode" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=Hamilton$$valid=0$$time=2024-07-10 14:32$$checksum=3e086e59$$length=087$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~HxE82B.tmp ================================================ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~HxEF83.hsl ================================================ namespace _Method { #include "HSLHttp\\HSLHttp.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "HSLStrLib.hsl" } namespace _Method { #include "HSLTrcLib.hsl" } namespace _Method { #include "HSLSeqLib.hsl" } namespace _Method { #include "HSLDevLib.hsl" } namespace _Method { #include "ASWStandard\\TraceLevel\\TraceLevel.hsl" } namespace _Method { #include "HslHamHeaterShakerLib.hsl" } namespace _Method { #include "HSLJson\\HSLJson.hsl" } #include "STAR_OEM_Test.res" namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "STAR_OEM_toolkit.hs_" } namespace _Method { #include "SchedulingDev\\HSLAppsLib.hsl" } namespace _Method { #include "STAR_OEM_toolkit_pH.hs_" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Module.hsl" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" } namespace _Method { #include "Hamilton pH Module\\Hamilton pH Station Washer Module.hsl" } /* {{ 2 "LibraryInsertLine" "" */ // }} "" variable loopCounterMain; variable msg; object objJSONFromServer; variable commandFromServer; variable initializeAlways; variable o_stepReturn; object objJSONToServer; sequence seq; variable tipSequence; variable sequenceCounting; variable channelVariable; variable channelUse; variable labwarePositions; variable aspirateSequence; variable v; variable arrayOfVolumes[]; variable liquidClass; variable aspirateMode; variable capacitiveLLD; variable pressureLLD; variable liquidFollowing; variable submergeDepth; variable liquidHeight; variable maxLLdDifference; variable mixCycles; variable mixPosition; variable mixVolume; variable airTransportRetractDist; variable touchOff; variable aspPosAboveTouch; variable o_liquidLevels_mm[]; variable o_liquidLevels_mL[]; variable o_stepReturn2; variable o_stepReturn3; variable dispenseMode; variable dispenseSequence; variable dispPositionAboveTouch; variable zMoveAfterStep; variable sideTouch; variable wasteSequence; variable useDefaultWaste; variable reducedPatternMode; variable aspirateVolume; variable o_stepReturn4; variable dispenseVolume; variable tipEjectToKnownPosition; variable carrierName; variable barcodeFileName; variable barcodeReadPositions; variable o_carrierBC; variable o_carrierPositionsBCs[]; variable lidSequence; variable plateSequence; variable toolSequence; variable transportMode; variable widthBefore; variable gripHeight; variable gripWidth; variable gripSpeed; variable gripperToolChannel; variable checkPlate; variable zSpeed; variable gripForce; sequence lidSeq; sequence toolSeq; variable xAcceleration; variable platePressOnDistance; variable ejectToolWhenFinish; object objHttp; variable blnReturn; variable blnSuccess; variable usedNode; variable deviceNumber; variable action; variable sampleInterval; variable shakingToleranceRange; variable id; variable monitorResult; variable firmwareVersion; variable serialNumber; variable command; variable parameter; variable plateLock; variable shakingAccRamp; variable shakingDirection; variable simulate; variable startTimeout; variable toleranceRange; variable securityRange; variable intTrace; variable shakingSpeed; variable shakingTime; variable temperature; variable waitForTempReached; variable inverseGrip; variable liftUpHeight; variable retractDistance; variable tolerance; variable labwareOrientation; variable movementType; variable collisionControl; variable gripMode; variable showCollisionCheckDialog; //global device HxFan ("STAR_OEM_Test.lay", "HxFan", hslTrue); variable refillAfterEmpty; variable chamber1LiquidChange; variable chamber2WashLiquid; variable chamber1WashLiquid; variable chamber2LiquidChange; variable FirmwareCommand; variable FirmwareParameter; variable CommandListElement; variable CommandListLength; object FirmwareCmdDict; variable yDisplacement; variable zDisplacement; variable xDisplacement; variable yOrigin; variable xOrigin; variable zOrigin; variable ControllerID; variable SimulationMode; variable ErrorCode; variable DeviceID; variable TargetTemperature; variable StopAllDevices; variable TraceLevel; variable Comport; variable Simulate; variable ModuleName; variable Angle; variable inputSequence; variable barcode; variable seqFirstPosition; variable seqSecondPosition; global device ML_STAR ("STAR_OEM_Test.lay", "ML_STAR", hslTrue); variable ModuleID; variable probePattern; variable pH_probe_1; variable pH_probe_2; variable pH_probe_3; variable pH_probe_4; variable Variance; variable Timeout; variable CalibrationLevel; variable CalibrationValue; variable CalibrationTemperature; variable Precision; variable Temperature; variable ChargeCounter; variable ReplacementDate; variable BatteryCondition; variable ActualCharge; variable MeasurementCounter_Probe_1; variable MeasurementCounter_Probe_2; variable MeasurementCounter_Probe_3; variable MeasurementCounter_Probe_4; variable HardwareNumber; variable Revision; variable SerialNumber; variable PartNumber; variable Selector; variable VoltageData; variable Day; variable Year; variable Month; variable Charge; variable AutoCharge; variable AutoChargeLevel; variable Probe; variable Mode; variable ProbeNumber; variable pHHighValue; variable pHHighVoltage; variable pHLowValue; variable pHLowVoltage; variable CalibrationSlopeRatio; variable CalibrationOffset; variable CalibrationSlope; variable CycleNumber; /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" namespace _Method { #include "HSLMETEDLib.hs_" } namespace _Method { #include "HSLMECCLib.hs_" } namespace _Method { #include "HSLSTCCLib.hs_" } // }} "" // {{{ 2 "LocalSubmethodInclude" "" namespace _Method { #include __filename__ ".sub" } // }} "" /* {{ 2 "ProcessInsertLine" "" */ // }} "" // {{{ 5 "main" "Begin" namespace _Method { method main( ) void { // }} "" // {{ 5 "main" "InitLocals" // }} "" // {{ 2 "AutoInitBlock" "" STAR_OEM_TOOLKIT::_InitLibrary(); STAR_OEM_TOOLKIT_PH::_InitLibrary(); ::RegisterAbortHandler( "OnAbort"); // }} "" // {{{ 1 1 0 "e7768ad9_4016_4422_bd83f5785d03ceda" "{C1F3C015-47B3-4514-9407-AC2E65043419}" blnReturn = HSLHttp::Initialize(objHttp); // }} "" // {{ 2 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (blnReturn != blnSuccess) { // }} "" // {{{ 3 1 0 "62c131b4_44b9_4249_8e0a3205a25b21b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TRACELEVEL::Trace_04(TRACE_LEVEL_RELEASE, Translate("HTTP Test Method"), Translate(" - "), Translate("Error Initializing HTTP Library"), Translate("")); // }} "" // {{{ 4 1 0 "fb18125e_b294_4554_912c3d447526996e" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return; // }} "" // {{ 5 1 0 "345d4eb5_743c_4127_a4aaba41ad470490" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 6 1 0 "ee92e29b_e94c_46cf_a67851f3be61c805" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Hi, Im a VENUS method.")); // }} "" // {{ 7 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounterMain = 0; while (1 == 1) { loopCounterMain = loopCounterMain + 1; // }} "" // {{ 8 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 9 1 0 "de417132_351a_4ad8_80c71b1863d4a870" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" commandFromServer = Translate(""); // }} "" // {{ 10 1 0 "d9c97239_3c9d_4992_8fb5820ae5721d90" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate(""); // }} "" // {{ 11 1 0 "57da7835_7495_4b16_8b82897289efbd11" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn2 = Translate(""); // }} "" // {{ 12 1 0 "cf024fcc_3594_4355_b33f4bd8c8bdfb4e" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn3 = Translate(""); // }} "" // {{ 13 1 0 "9ed0b80d_8518_474f_a94d8f843a6158fe" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn4 = Translate(""); // }} "" // {{ 14 1 0 "bbc3799d_5235_430a_83ee2b85c19b34e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 15 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 16 1 0 "0257e5d3_7b99_47be_a062950a2b200664" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" msg = waitForGUItoContinue(); // }} "" Trace("JSON received from Server:", msg); // {{{ 18 1 0 "36be63f7_a79c_44a4_b1dc636a536612bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONFromServer); // }} "" // {{{ 19 1 0 "5c2b861d_97f9_4e18_a5fce25e78026299" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::ParseJson(objJSONFromServer, msg); // }} "" // {{{ 20 1 0 "562abca5_8891_402a_b8a7c5ba56301a86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), commandFromServer); // }} "" // {{{ 21 1 0 "cb002e33_cc71_4a25_890fa8f9f5d982a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("id"), id); // }} "" // {{ 22 1 0 "2a480605_c08c_4124_aa6144a4f82d7f70" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 23 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 24 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "initialize") { // }} "" // {{{ 25 1 0 "773dbb38_0414_403d_b2ff24100c7cf1fc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("initializeAlways"), initializeAlways); // }} "" // {{{ 26 1 0 "97af1c08_2914_4f72_b27c685f11b30bb6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Initialize(ML_STAR, initializeAlways, o_stepReturn); // }} "" // {{{ 27 1 0 "b3ab11e2_0297_446f_9cf37ca7c0c9d19f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Init step return:"), o_stepReturn); // }} "" // {{{ 28 1 0 "57d4e0cd_327e_4cac_8e83a7da6222dda0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 29 1 0 "91420bb1_8e2d_4390_9f117f7abf75ff6f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 30 1 0 "9c121b53_70ea_404b_a727359c0f018549" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 31 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 32 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 33 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipPickUp") { // }} "" // {{{ 34 1 0 "53e1cfb5_1fde_491f_bfd878eceda16ba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 35 1 0 "f0e9e31f_d871_4632_bd466e43fc38c771" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 36 1 0 "e6311b13_2132_40e0_aff0b5556205c32a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 37 1 0 "cb659ed1_5f0c_41e8_8a060ec0b650c589" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{ 38 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 39 1 0 "6699226b_6c7b_4b79_95b8017162b433b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 40 1 0 "bd13798f_62e7_4dd2_8e91769d48d10fc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 41 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 42 1 0 "ce13caa6_634b_4dec_8a6c3ea74b144e95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 43 1 0 "d6e8b66f_1148_4022_aebfb3fb0506ed05" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 44 1 0 "29f69958_d99b_455a_93c7b0480bfd1658" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, o_stepReturn); // }} "" // {{{ 45 1 0 "732425fd_a199_4354_8479d821ee834e82" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 46 1 0 "22f00193_1056_456e_a515d156eee56e2f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 47 1 0 "d5302912_74bf_437e_8ecf0393df936981" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 48 1 0 "096d118a_5201_42a2_8920afb479569ecb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 49 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 50 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelAspirate") { // }} "" // {{ 51 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 52 1 0 "55ee3109_036b_4acb_8a15175f3316656f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 53 1 0 "a5b3e5ac_4910_4a4a_8e20bdb7f61836e5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 54 1 0 "ce04189a_96e4_4bdc_aedc8a68bf64647b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 55 1 0 "882daff3_cc25_4778_aec6a937fc87347c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 56 1 0 "7f7b9f83_5611_4a3b_b5c120689696addb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 57 1 0 "39e464b7_0def_403b_a02f5dd2a358dbd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 58 1 0 "2e2739aa_8eb6_44e0_b887ea00b04acac0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 59 1 0 "9408edd8_3cee_43e0_976b4a6fabf5f4ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 60 1 0 "a2848877_3518_4d1d_95f77c1f313003e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("pressureLLD"), pressureLLD); // }} "" // {{{ 61 1 0 "4b5ce3d0_91f4_4c14_aaf1cad34e0caf60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" Trace("Bookstart"); // {{{ 63 1 0 "12892ce3_3bc6_4165_b3b6ae0eacad20e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" Trace("Bookend"); // {{{ 65 1 0 "15bd5af3_2da1_420b_beb398dc2347a0ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 66 1 0 "4fe61fb4_bb39_4728_96b8c6959f4943ee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("maxLLdDifference"), maxLLdDifference); // }} "" // {{{ 67 1 0 "ba68c240_2397_4872_949ee1ee984595c2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 68 1 0 "baac19fc_9f21_4e8c_b833f2a1ba2433f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 69 1 0 "253130f8_f599_4ef4_9d5a15e2cb89d1eb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 70 1 0 "51233931_483f_4deb_a8627b909d6c9116" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 71 1 0 "bf0c65ba_7847_4768_92ebbe8adc6568c4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 72 1 0 "30a6715c_b6c6_4d86_b5c02f3da440e309" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 73 1 0 "6eb82b6e_8093_461e_afc712cab07398dd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 74 1 0 "3f8b6af1_7872_4a20_92bf2c4507ea9f31" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspPosAboveTouch"), aspPosAboveTouch); // }} "" // {{{ 75 1 0 "7dd1b818_5a89_4b03_82734e6f4d7b5fad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{ 76 1 0 "eec79792_12c9_497a_a627d6dfe294549f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 77 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 78 1 0 "cb2b67f0_7384_4a41_831de652f92d4c85" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 79 1 0 "29a868b4_7800_4747_b14eaf0f2c10ba40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 80 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 81 1 0 "08f63789_65f1_4e7d_996dc22e8f33d416" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 82 1 0 "2f25fa85_6514_4692_80ebf9634fc9cbc8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 83 1 0 "8304f32d_4b9e_4ce9_af8dfbf1e3ab28a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 84 1 0 "7cb70e6b_15bb_4380_b62150df065d208f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1ml_Aspirate(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, aspirateMode, capacitiveLLD, pressureLLD, liquidFollowing, submergeDepth, liquidHeight, maxLLdDifference, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, aspPosAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 85 1 0 "4714958b_0632_4de2_983c7fe9de68df6c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 86 1 0 "bd40f564_16d7_4037_aef8eebfe28a4362" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 87 1 0 "18bf536c_98f4_4345_86a103db4a9b68a1" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 88 1 0 "d60cd9aa_083b_4487_8d6218cee02fa4cd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 89 1 0 "e86187c0_0d19_453e_be1c5a401d0d5d93" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 90 1 0 "d66c2dae_4cc3_4a31_bafe46d1dd63e790" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 91 1 0 "d23f143d_290d_4d0f_b368241a6a9adaed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 92 1 0 "0428e844_3191_4cde_b7f3544f34c833f0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 93 1 0 "a7ca006f_941c_4b31_9749313ad9b4e079" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 94 1 0 "8c97ba72_f880_4504_baee8b8db3d13310" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 95 1 0 "6412fdfb_fc05_440a_8222497478941440" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 96 1 0 "7242d57d_5d51_4c4a_b6581549c4689bf3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 97 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 98 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelDispense") { // }} "" // {{ 99 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 100 1 0 "909bc255_6ca1_4700_bc102ccb34ae5be4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 101 1 0 "fd48dd93_9f42_4df0_9f659e27a5552543" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 102 1 0 "3ff3f492_86a5_40af_a3deabccbab3898d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 103 1 0 "3cbb883f_48ae_40fe_afe67da944df94b3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 104 1 0 "ab1033bc_1216_450a_9fb60655a1f1a21a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildArrayOfVolumesForChannels(channelVariable, arrayOfVolumes); // }} "" // {{{ 105 1 0 "0bc1541f_26d5_44d6_8db6ae336fec17bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 106 1 0 "8c10cc29_c05e_4cea_9ed559249651e805" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 107 1 0 "3e0373da_7c7c_46ab_9b77fba19915662e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 108 1 0 "b98fdc49_cdcb_4f3c_81df0b76eafa1411" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 109 1 0 "7458d32a_402a_4215_b52378c78468ec80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 110 1 0 "5e14f2ce_c932_474b_be03f3c043c700e2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 111 1 0 "c2010d1d_5a78_4871_a835a6613a1237bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 112 1 0 "d4a6e6a3_0158_45f1_9c359d8e48e01bed" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 113 1 0 "011e9828_5413_40c1_80d0c3bdde1c6591" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 114 1 0 "2d7a4942_b2ce_43a2_8decf49fa0c9576c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 115 1 0 "ad9f0bbf_e495_41c5_898a3be32bb16f2b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 116 1 0 "5c734886_aa50_424c_b89f6894bc37dd8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 117 1 0 "d1bc00cc_4286_4409_b1c49b6350e7e6ae" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 118 1 0 "b178ce99_db9e_4453_bed28d4ce0457bc0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispPositionAboveTouch"), dispPositionAboveTouch); // }} "" // {{{ 119 1 0 "1b38ad88_3c65_4e58_812f9ed32ce32485" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("touchOff"), touchOff); // }} "" // {{{ 120 1 0 "f34066f1_63f9_474f_8a9c41e56962dc74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 121 1 0 "6b94916e_355b_4ee9_8eb4f1b49c95fea4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 122 1 0 "7254ee91_46a0_477b_bf608b7218bb74d7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 123 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 124 1 0 "e962dd26_3672_4418_bd3c40e9929929eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 125 1 0 "6257966a_6b39_41c8_a057a79b8e39cd4b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 126 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 127 1 0 "3f230e40_8bd9_4235_b88cd0ca80799661" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 128 1 0 "9fa78e48_8e5f_4515_a8de06407bd9635a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 129 1 0 "8d82ff40_d831_430b_97d97c01d2a4474e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{{ 130 1 0 "ac0ad5a7_d00b_46fe_a18f94f8dab3863c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_Dispense(ML_STAR, seq, arrayOfVolumes, channelVariable, liquidClass, sequenceCounting, channelUse, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, touchOff, zMoveAfterStep, sideTouch, dispPositionAboveTouch, o_stepReturn, o_liquidLevels_mm, o_liquidLevels_mL); // }} "" // {{ 131 1 0 "b7f86b6c_03a4_4e12_a05e5e8bdc958b75" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" xOrigin = xDisplacement * -1; // }} "" // {{ 132 1 0 "9bfa8704_2ae0_4a63_83d09fddbacfd336" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" yOrigin = yDisplacement * -1; // }} "" // {{ 133 1 0 "860b660a_6947_4c88_a2a039bf65040bf5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" zOrigin = zDisplacement * -1; // }} "" // {{{ 134 1 0 "797f0eef_5bb2_4a2e_a178af74f4892bd7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xOrigin, yOrigin, zOrigin); // }} "" // {{{ 135 1 0 "2753c24e_c4dc_402d_866b6bc8691ecc1f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mm, o_stepReturn2); // }} "" // {{{ 136 1 0 "1ac127fd_b830_496f_b4d4b9671137ebff" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" ArrayToString(o_liquidLevels_mL, o_stepReturn3); // }} "" // {{{ 137 1 0 "3ee5d751_d3a5_468a_b539c4f0ff22023e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 138 1 0 "b86d492c_446f_4921_97140cfd462ace87" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 139 1 0 "e049946d_6322_4b39_9c46a2d0eb345528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 140 1 0 "531432f5_ef8a_416e_8be28a07ae9b0d25" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 141 1 0 "6229057f_63cb_4849_ad532aee44485f79" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 142 1 0 "f1958a25_05f4_463c_9c0c607079faa67e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 143 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 144 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "channelTipEject") { // }} "" // {{{ 145 1 0 "69be671e_7cdd_48d3_af136435754c1d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 146 1 0 "f3444c0f_4863_4fdd_94a025b682d8a6d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 147 1 0 "12ad2f39_c160_4afc_9f6ffce7e3ddb433" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 148 1 0 "2883bb64_2fe3_47ca_996e11434afc57cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("channelUse"), channelUse); // }} "" // {{{ 149 1 0 "10c3b13e_7129_4cfd_b88b29d0bbc31a28" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("useDefaultWaste"), useDefaultWaste); // }} "" // {{ 150 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (useDefaultWaste == 0) { // }} "" // {{ 151 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 152 1 0 "655bc92f_08a8_4c16_a0276997aec081ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 153 1 0 "a3a0b5ef_85c0_4552_a28b3356d7886eb4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 154 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 155 1 0 "efadb8c3_c431_4ed4_a739a951c05ee518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 156 1 0 "e958d88e_7b2c_418d_95311a91095c1ca4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 157 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 158 1 0 "2dda50b6_7f82_4e8a_a1d203715119213a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 159 1 0 "faa78f81_31ef_4bc1_8795b129be12dc47" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 160 1 0 "7fa61e34_a1f2_4b99_8f6bed13c6ce120f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_TipEject(ML_STAR, seq, channelVariable, sequenceCounting, channelUse, useDefaultWaste, o_stepReturn); // }} "" // {{{ 161 1 0 "a7db5128_f8e4_4afe_81f46b2cc86e608d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject step return:"), o_stepReturn); // }} "" // {{{ 162 1 0 "683607f4_928f_4cea_b901fe3502404424" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 163 1 0 "8f7cff91_b3a1_4bd8_9d1a3ac22f7b8dde" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 164 1 0 "96efe990_9aaf_4901_b5fac690e3318f55" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 165 1 0 "c29a5244_cdfc_4a93_a0ef0a8a2b6e7b87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 166 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 167 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 168 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipPickUp") { // }} "" // {{{ 169 1 0 "1f82c33f_a085_47cc_85dbbde3e42a53c6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("tipSequence"), tipSequence); // }} "" // {{{ 170 1 0 "9f9fe665_47a2_4a12_961460021d1f09f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 171 1 0 "743960d2_9d0f_4ccf_848662247e3211c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 172 1 0 "b737602c_63e8_4c4c_b47f40cb815914ce" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("reducedPatternMode"), reducedPatternMode); // }} "" // {{ 173 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipSequence == "") { // }} "" // {{{ 174 1 0 "00bd1831_c335_40f5_b706f0ffadbe2890" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 175 1 0 "1f16418c_8fa7_44a5_a6db75dd9a79ee84" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 176 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 177 1 0 "b66db4eb_9e79_4c19_909fd8d14d37cba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, tipSequence, seq); // }} "" // {{ 178 1 0 "45b9cf20_6414_49ae_94c6372fa78d0427" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 179 1 0 "f3e7cbf6_0242_4463_8d4ed0db4667f7db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipPickUp(ML_STAR, seq, channelVariable, sequenceCounting, reducedPatternMode, o_stepReturn, o_stepReturn2); // }} "" // {{{ 180 1 0 "b080a5c6_324c_4aae_b5899dede6d863f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip pick up step return:"), o_stepReturn); // }} "" // {{{ 181 1 0 "aa5a9c4b_0377_46ce_9b46883db15cbd7b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 182 1 0 "49c290d6_ea29_4a7d_94788c8549af379e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 183 1 0 "c6402ee1_55b3_41b1_a0a13229219b872a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 184 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 185 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Aspirate") { // }} "" // {{ 186 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 187 1 0 "373f30c8_ec07_4298_94d6ac75358ab1ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("aspirateSequence"), aspirateSequence); // }} "" // {{{ 188 1 0 "ef3ae377_e985_4ef6_93b005aa91c9b2b1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 189 1 0 "d8eea65a_6e59_4c32_a47bae09779f9528" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 190 1 0 "8eb02312_a070_491c_9758b3cdbdee0cfc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("aspirateVolume"), aspirateVolume); // }} "" // {{{ 191 1 0 "6eaf8bee_b53f_4f01_87c1380bc345e386" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 192 1 0 "d9923a2f_e7cf_4f3e_81746e378a20baab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("aspirateMode"), aspirateMode); // }} "" // {{{ 193 1 0 "2c411993_e3fc_4753_9a90308b226078a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 194 1 0 "5d900896_b2b9_442b_b24294b9bbfbdaad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 195 1 0 "21149e9e_21c9_4ddd_93e07b693e3ab3fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 196 1 0 "bcefef03_102b_4887_adad59c2fb7ad551" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 197 1 0 "9665b0a3_35e8_47e9_b14ac1a4818cfa6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 198 1 0 "ff93d28b_afe9_47e7_9b6eb50d6845384f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 199 1 0 "ef43b824_fd38_42d4_9e932904dbf14813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 200 1 0 "b0378457_e370_448b_bfd6955c05e57bcb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{ 201 1 0 "cd612207_e95c_47d2_a5e81e6bd2ef1cfb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 202 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (aspirateSequence == "") { // }} "" // {{{ 203 1 0 "615bcff6_e9d5_4303_a5d5826b2e2548dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 204 1 0 "cf4ad428_945e_4921_9441ee34cf9c96bd" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 205 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 206 1 0 "86397ec2_2ee5_4ec1_8bec47d8e87584b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, aspirateSequence, seq); // }} "" // {{ 207 1 0 "97c53bd8_baf9_4411_8c670fcfe9e79e0c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 208 1 0 "48f88263_72c1_4df2_865181cffed9feee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Aspirate(ML_STAR, seq, aspirateVolume, channelVariable, liquidClass, sequenceCounting, aspirateMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 209 1 0 "f1b764e8_e556_4d08_bb83bdc12dc64a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 210 1 0 "164c104a_cf5f_46de_b23a098a18b3fdde" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 211 1 0 "ee779f77_51a9_46d7_b58b7bcaf13519f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 212 1 0 "e874eb6d_1e97_4590_95d9b10cb059c935" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn4); // }} "" // {{{ 213 1 0 "0ca1df86_a344_45fd_b384e13ba44c5ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 214 1 0 "2497228e_672e_4c95_9f31679fe87bbe1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 215 1 0 "e4930eee_c625_4acb_a81c05e149a1a218" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 216 1 0 "179cb35e_ab75_466d_973199efad73086f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 217 1 0 "0da0a8c9_7e13_4608_88b4d1641d697c87" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 218 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 219 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96Dispense") { // }} "" // {{ 220 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 221 1 0 "78cba921_2a37_4b4a_91ef7fbe81fcddd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("dispenseSequence"), dispenseSequence); // }} "" // {{{ 222 1 0 "b58b4cbd_16e9_4444_9037061e29bc5614" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 223 1 0 "0ab910ec_826d_4c84_bac7ed9564f3bdab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 224 1 0 "84d664b7_70d0_4136_bdfd4de2aa760ad8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("dispenseVolume"), dispenseVolume); // }} "" // {{{ 225 1 0 "18becc6a_2df4_4281_8b16ade9038979f4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("liquidClass"), liquidClass); // }} "" // {{{ 226 1 0 "68c565db_e5ed_44e8_b3846a1d98034e76" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("dispenseMode"), dispenseMode); // }} "" // {{{ 227 1 0 "6a4221a8_9488_48f9_8381b1bc0f0c960d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("capacitiveLLD"), capacitiveLLD); // }} "" // {{{ 228 1 0 "45dcb271_e326_42fc_b8684816d3ffdc93" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("liquidFollowing"), liquidFollowing); // }} "" // {{{ 229 1 0 "14552b13_e77b_4fb7_9020445ecc5ade21" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("submergeDepth"), submergeDepth); // }} "" // {{{ 230 1 0 "91783f87_af6f_446e_a74fb1725f17d282" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liquidHeight"), liquidHeight); // }} "" // {{{ 231 1 0 "e2e7f702_1710_49eb_9b1046dbf4f143e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("mixCycles"), mixCycles); // }} "" // {{{ 232 1 0 "1817aa70_86fa_4318_a8e46569701623e6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixPosition"), mixPosition); // }} "" // {{{ 233 1 0 "50bd6734_10d5_4291_b40eb708539514fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("mixVolume"), mixVolume); // }} "" // {{{ 234 1 0 "ad5fbb01_d809_4b7d_b858ed597709f28f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("airTransportRetractDist"), airTransportRetractDist); // }} "" // {{{ 235 1 0 "09566247_6b2d_4c73_b43fe303a30f89c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("zMoveAfterStep"), zMoveAfterStep); // }} "" // {{{ 236 1 0 "3ead74f7_3b5c_4b21_84d2488c2eceab73" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sideTouch"), sideTouch); // }} "" // {{ 237 1 0 "038b2c58_b167_42b1_976c6a24b1f1e093" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 238 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (dispenseSequence == "") { // }} "" // {{{ 239 1 0 "835f8470_7e8c_40ff_a48abcc85d6b778b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 240 1 0 "059394fc_e924_4d57_b1b85f79f9947fa7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 241 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 242 1 0 "6c4be3a7_a450_459c_90545a208f9f459f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, dispenseSequence, seq); // }} "" // {{ 243 1 0 "19850b87_d25c_4e7e_beac9698ba1913e6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 244 1 0 "c164a94e_2926_462e_9487870d403fe8b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_Dispense(ML_STAR, seq, dispenseVolume, liquidClass, sequenceCounting, dispenseMode, capacitiveLLD, liquidFollowing, submergeDepth, liquidHeight, mixCycles, mixPosition, mixVolume, airTransportRetractDist, zMoveAfterStep, sideTouch, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{{ 245 1 0 "86c0fb85_8aaf_4bec_9f6f1f642206487f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 1:"), o_stepReturn); // }} "" // {{{ 246 1 0 "77047add_8050_4522_ad477b97455a8327" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 2:"), o_stepReturn2); // }} "" // {{{ 247 1 0 "5b2c6f23_9a69_489d_b52179c78c03e48f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 3:"), o_stepReturn3); // }} "" // {{{ 248 1 0 "a9a9244b_829f_4c5b_9a64f1018b029453" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Aspirate step return 4:"), o_stepReturn4); // }} "" // {{{ 249 1 0 "781580a9_199e_4373_b48bb55a97f8a463" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 250 1 0 "1867ae44_25f8_4926_ae081e490fd5aa0c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn3 = StrFStr(o_stepReturn3); // }} "" // {{{ 251 1 0 "dbb3b30c_b4a1_4cf6_a24b62b63f155369" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 252 1 0 "84933473_b9c8_45e6_93c2e1fe9fdd6fe2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 253 1 0 "3d010469_c0ec_4aaf_8dbb9db77d07e879" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 254 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 255 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "mph96TipEject") { // }} "" // {{{ 256 1 0 "7cf9db16_d78c_4aa0_825cc3c2c22f287c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("wasteSequence"), wasteSequence); // }} "" // {{{ 257 1 0 "ccca7a97_c22a_4f20_b2d9a60d67850eee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("channelVariable"), channelVariable); // }} "" // {{{ 258 1 0 "a319f75e_77eb_4845_856516ce060213f8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 259 1 0 "d9e4ded3_41d1_4011_a8d2bcf5bcd8cf21" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("tipEjectToKnownPosition"), tipEjectToKnownPosition); // }} "" // {{ 260 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (tipEjectToKnownPosition == 0) { // }} "" // {{ 261 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (wasteSequence == "") { // }} "" // {{{ 262 1 0 "24eeb6dd_1e20_422c_a1a8199cbca73b33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("labwarePositions"), labwarePositions); // }} "" // {{{ 263 1 0 "5197334f_cde5_4d52_9c528a0c4f7401b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 264 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 265 1 0 "110b82e1_8a5b_48e4_a3adbab701cffc8b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, wasteSequence, seq); // }} "" // {{ 266 1 0 "c104fdc8_7bec_4568_8805c3939de4583c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 267 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 268 1 0 "fa32bbf8_8345_4897_aaf09d112d374893" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqCopySequence(seq, ML_STAR.Waste); // }} "" // {{ 269 1 0 "abbc4bc2_9485_481b_bbe94a0588ac7361" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 270 1 0 "ef087a4e_684e_4d98_87109abf154fbc85" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::MPH96_TipEject(ML_STAR, seq, sequenceCounting, tipEjectToKnownPosition, o_stepReturn, o_stepReturn2); // }} "" // {{{ 271 1 0 "328216cf_22dd_47a1_9f1ba089b1ac7702" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return:"), o_stepReturn); // }} "" // {{{ 272 1 0 "53265943_7975_4275_ad98df313054f97f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tip eject MPH96 step return2:"), o_stepReturn2); // }} "" // {{{ 273 1 0 "c13d9773_7daf_4c3c_9064fdd4f7c7008f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 274 1 0 "6dc6adab_13b6_43f2_861811043b29125f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 275 1 0 "85d02bd4_2577_4d20_a421637363ce8cb7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 276 1 0 "dae3c075_aa35_42e2_9e6e1a8e8f268b77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 277 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 278 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "loadCarrier") { // }} "" // {{{ 279 1 0 "76d739d0_ff4a_490b_9c47f411d29ef7a2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 280 1 0 "ca623aa7_ed48_45fa_9f4055fb8e08c3d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeFileName"), barcodeFileName); // }} "" // {{{ 281 1 0 "64a8e193_7e7e_412e_8a0657f0e832eaef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("barcodeReadPositions"), barcodeReadPositions); // }} "" // {{{ 282 1 0 "39e6aaef_5cce_4915_b5b6ede214c7371e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Load(ML_STAR, carrierName, barcodeFileName, barcodeReadPositions, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, o_carrierBC, o_carrierPositionsBCs); // }} "" // {{{ 283 1 0 "1d4d284f_fd1e_4f8a_a2158846ad6a67f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Load carrier step return:"), o_stepReturn); // }} "" // {{{ 284 1 0 "358b7fc3_40a2_418b_9d61d94eef1556f6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, o_stepReturn4, id); // }} "" // {{ 285 1 0 "626eacf3_276f_4407_bc6162f83f5031ab" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 286 1 0 "f05b5d9a_143f_4d6e_aaafc812b79adfb2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 287 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 288 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "unloadCarrier") { // }} "" // {{{ 289 1 0 "797d23a7_c62a_471a_a52b10fea8bcc154" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("carrierName"), carrierName); // }} "" // {{{ 290 1 0 "f1c35790_adb7_49eb_a96864d8b1d66cea" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Carrier_Unload(ML_STAR, carrierName, o_stepReturn); // }} "" // {{{ 291 1 0 "6e6ded71_3f99_46c5_9362117beb502a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Unload Carrier step return:"), o_stepReturn); // }} "" // {{{ 292 1 0 "8713fee4_6b93_4296_a5396254fd404d52" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 293 1 0 "ef4919d8_6fef_4080_8e2c3515dbc22835" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 294 1 0 "180932c0_846d_469d_96a51f5ffc6ff485" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 295 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 296 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 297 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripGet") { // }} "" // {{ 298 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 299 1 0 "c4847ae5_e161_4f23_aa432eda22de28bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 300 1 0 "022a5cdd_3f4f_4e18_927c174fc57a68a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 301 1 0 "3e462067_5eb3_49c3_b7bf6a27de9ce3bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 302 1 0 "f7004881_3f0d_4621_a88d55dec8fc0d30" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 303 1 0 "262b36ba_6d86_4009_bdc9a3881db7074e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 304 1 0 "be44b37f_7cec_4f69_81c223f2c30b120b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 305 1 0 "3dea3158_65f8_44bc_8d06a31ce3458dab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripperToolChannel"), gripperToolChannel); // }} "" // {{{ 306 1 0 "308b2aa2_5970_4692_858049c6559d6ad0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 307 1 0 "756d0f81_3645_4a49_a0c2259581e11498" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 308 1 0 "cdbf11ba_b1f8_4016_811240a02705f1fa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{{ 309 1 0 "625df597_c6c8_4e4a_b956e9580bfbc568" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripSpeed"), gripSpeed); // }} "" // {{{ 310 1 0 "3576d134_8507_4e47_9c2bcc3dce8c026d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 311 1 0 "5b9c06ad_9081_4b6b_97e50cc87623b888" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 312 1 0 "55c3c39d_d1ed_4f1f_a76b945023618062" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 313 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 314 1 0 "d1f3c2ac_9c68_4200_a3506bbbed8e42a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 315 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 316 1 0 "f1d1c43b_a9dd_4573_a69dd7c0e79eea40" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 317 1 0 "0909e26c_081f_44a0_bf14e041faa2459e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 318 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 319 1 0 "4d304110_107e_412e_909bb84008a244de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 320 1 0 "8f8b1ba1_af12_4cdd_acf2096420ede259" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{ 321 1 0 "cb15ae17_1bbf_4644_821251ae94116a81" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 322 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 323 1 0 "72e31f7d_c091_4525_a5cf7001754b199d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 324 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 325 1 0 "47dfcbb5_d784_48bb_b36b97509434a3a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 326 1 0 "c6b60302_7344_4277_bc6d10eb019a6479" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 327 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 328 1 0 "e6c53925_446e_468e_b0e0654b4b9d9a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 329 1 0 "350fc067_6d00_4e0f_a132715cbad106c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 330 1 0 "c0cbb194_1b8b_4fe0_a0f706e03eaa0748" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 331 1 0 "46703217_a28e_42ce_b13c11d73ba34bfa" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Get(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, gripForce, gripperToolChannel, gripWidth, gripHeight, widthBefore, gripSpeed, zSpeed, checkPlate, o_stepReturn); // }} "" // {{{ 332 1 0 "189164cc_2681_492f_83f072fb537648b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Get - step return :"), o_stepReturn); // }} "" // {{{ 333 1 0 "c8d6960a_f416_47b1_a29e2752973c0ec9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 334 1 0 "7897ae6f_f5af_4658_95d51c905771319e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 335 1 0 "4f803217_364c_4e04_b8944d3fd0a599e5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 336 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 337 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripMove") { // }} "" // {{ 338 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 339 1 0 "5755c338_faa3_4f0a_9acd4cd01a912862" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 340 1 0 "2849c819_a3dc_4328_8484ccc4785993d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{ 341 1 0 "2e67154a_8526_49ce_8728c4931f6b56e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 342 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 343 1 0 "e038f780_938f_4867_98f769488ca44b04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 344 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 345 1 0 "27439ab7_df5a_4e1b_99b64e6c9fd0d9f2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{{ 346 1 0 "3d8767e5_5f31_4ce5_91a11e28045ec87a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 347 1 0 "e9e0b38e_13aa_40f9_8e470eb1de09eb19" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("wrong"), Translate("nowwrongere")); // }} "" // {{ 348 1 0 "6441828f_4768_4f66_8cacb3df9b86922f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 349 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 350 1 0 "e2da0756_7cea_44e7_963442343f3c0732" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{{ 351 1 0 "ee8b8050_164a_4de8_b6ce02120236efbf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTraceSequence(seq); // }} "" // {{{ 352 1 0 "be0898fe_cdb8_4ac3_a9e991e26bdb6658" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here"), Translate("now here")); // }} "" // {{ 353 1 0 "ee510e06_fba0_4e8a_9f33b4143a9a84cd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 354 1 0 "90f602a1_fdc5_48fd_801269ecd2c3f9bc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Move(ML_STAR, seq, xAcceleration, o_stepReturn); // }} "" // {{{ 355 1 0 "dc418b75_2d70_4034_84a767fba752b262" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Move - step return:"), o_stepReturn); // }} "" // {{{ 356 1 0 "ae4414d3_a939_4fdb_a0ed06f1be1506e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("here here"), Translate("nohhere")); // }} "" // {{{ 357 1 0 "6379549c_caf9_409f_b293abf77f1dcfbf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 358 1 0 "eca3d9ac_a862_4026_b936daef38503cca" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 359 1 0 "73dd7b12_a89b_4afc_a96ba4204d003f3b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 360 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 361 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "gripPlace") { // }} "" // {{ 362 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 363 1 0 "6f38d60b_6dc5_4159_ba30360f264222da" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 364 1 0 "b6ef73cf_c89c_41cc_a3b72dc5aaf70f90" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 365 1 0 "c7e5f5bd_edcc_4000_9be3db81af0c79fa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 366 1 0 "91ff4c39_6a86_4eda_998a5461ef6c3cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 367 1 0 "341a6f8e_b4c8_4966_b9520322d1bc2e83" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 368 1 0 "32792c80_3b36_4a25_8fff6b99bfcf1919" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ejectToolWhenFinish"), ejectToolWhenFinish); // }} "" // {{{ 369 1 0 "b1e5d86e_c659_4d33_9e0f83fdb20b2cb5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zSpeed"), zSpeed); // }} "" // {{{ 370 1 0 "76b26748_4e74_45f7_85a7dc102b5fd7b1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("platePressOnDistance"), platePressOnDistance); // }} "" // {{{ 371 1 0 "ee221e8a_a662_49d8_be2ef0ed631d9527" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("xAcceleration"), xAcceleration); // }} "" // {{{ 372 1 0 "cbefd54c_5f0a_4a16_a0199198529b71fd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("checkPlate"), checkPlate); // }} "" // {{ 373 1 0 "18f27b88_be8e_4c49_92566fd5f1ce0c37" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 374 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 375 1 0 "ac4e7090_c3c7_4707_8d98dc55262c294b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 376 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 377 1 0 "eb5776ad_c858_4ee8_ba31f47af19e76af" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 378 1 0 "82ff652c_8b42_4282_b5277b20dfb2fea2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 379 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 380 1 0 "1f3eb006_1b10_427e_99d0b530f1afc2ff" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 381 1 0 "eca3c210_49ca_4c0d_88ac688abf58032a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 382 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 383 1 0 "a04c5993_bf3e_46c7_92f24c8236636b00" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 384 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 385 1 0 "2455f68c_be4e_4a21_9e9e78f78f6e8e3c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 386 1 0 "c4165ca5_f7f8_4246_a768df51ac472dc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 387 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 388 1 0 "ad5d98b0_9e3d_4275_90ceef06ceca045d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 389 1 0 "b7e69052_d1e4_43ad_b3403f2eefd3a18b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 390 1 0 "3321537f_63fb_48a4_90e40a2fee1cc432" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, toolSequence, toolSeq); // }} "" // {{{ 391 1 0 "8c7e60df_f040_45c6_a939d99bcd0ac23c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Channels_1mL_COREGrippers_Place(ML_STAR, seq, lidSeq, toolSeq, sequenceCounting, transportMode, ejectToolWhenFinish, zSpeed, platePressOnDistance, xAcceleration, checkPlate, o_stepReturn); // }} "" // {{{ 392 1 0 "24e589a9_98d7_429d_90c8afe203e96ac4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Channel 1mL - CO-RE Gripper Place - step return :"), o_stepReturn); // }} "" // {{{ 393 1 0 "9d94d038_d071_4339_aaace5a2e455b240" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 394 1 0 "1d4becec_06d8_4ebb_9124b50181bee9c4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 395 1 0 "3b30a782_e898_424b_8d4e0c4cad1d3f3c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 396 1 0 "86a30d98_3025_4cc4_9383dc6fa7ffa2a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 397 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 398 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 399 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGet") { // }} "" // {{ 400 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 401 1 0 "4a585a30_3a23_44cc_a0948963de716cba" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 402 1 0 "da3a318b_1208_4329_be1faae95ecc2e03" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 403 1 0 "1f51589f_347c_497b_a7338461d92076d9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 404 1 0 "622e6765_4ee3_4df5_917ca140f8b7981b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 405 1 0 "9826612b_e564_4231_8f83fdfcbd374bdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 406 1 0 "fdb52557_ae6c_42b3_925073ab7ae7a5ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 407 1 0 "171639e0_98ad_4857_a5ac346039499a33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 408 1 0 "0d4077af_b1dc_4dea_a23a163c57d96248" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripForce"), gripForce); // }} "" // {{{ 409 1 0 "60732b74_8870_48e2_be03564159cf35b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("inverseGrip"), inverseGrip); // }} "" // {{{ 410 1 0 "ffa21840_da03_4682_b62a6910caf63f45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 411 1 0 "0af9b15f_4e1b_4353_a6261def96fea256" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{{ 412 1 0 "c4fbf5b3_99e2_4b3b_9ddf01fc7fb958cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 413 1 0 "74d93b97_5d7f_4593_9aeb9d83d5466e6f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{{ 414 1 0 "28d636c0_47c0_4fac_8a7b67124fd8b9f5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripWidth"), gripWidth); // }} "" // {{{ 415 1 0 "6f62025f_9dde_4ae6_a6b6b69efed6e381" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("tolerance"), tolerance); // }} "" // {{{ 416 1 0 "f3d51abd_651e_4b15_93eb0cea0c0384be" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("gripHeight"), gripHeight); // }} "" // {{{ 417 1 0 "1b72eb1e_c220_42e0_9a34675ddc971fe7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("widthBefore"), widthBefore); // }} "" // {{ 418 1 0 "dc90fc21_1aee_41f7_ade46ae87d42937d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 419 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 420 1 0 "fd3fbb06_b08e_4790_8e3b785ca1f8ed4e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 421 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 422 1 0 "87331d5f_01ff_43a8_a0a06487f28bb2b6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 423 1 0 "68ccf7f3_f98e_475d_a46e854f3ad77337" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 424 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 425 1 0 "5f12c00c_48c1_4e2f_a24b4ba435343a8c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 426 1 0 "a792522b_2807_4c12_9dca4201f7880cd3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 427 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 428 1 0 "d3e5718a_eb78_4c1f_a6467f61ccbe82df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 429 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 430 1 0 "8ebcf09f_a943_4769_b3c659e368019a32" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, lidSeq); // }} "" // {{ 431 1 0 "7b4d37fc_01d4_4f65_977e4789e922635d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 432 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 433 1 0 "8ce5efe3_4525_4c77_bb64f9d8dcfb6a62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 434 1 0 "ce5d3682_d13d_4382_a679a78143661e7f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 435 1 0 "8ac111e1_df50_4fcb_b465e737713459d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Get(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, gripForce, inverseGrip, collisionControl, gripMode, retractDistance, liftUpHeight, gripWidth, tolerance, gripHeight, widthBefore, o_stepReturn); // }} "" // {{{ 436 1 0 "d9104246_d843_4a6d_85a64aa07d019020" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Get - step return :"), o_stepReturn); // }} "" // {{{ 437 1 0 "7831c2d8_4b59_455a_a0dc5cae20f325a1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 438 1 0 "7338481d_2bbc_4d42_ad476a05a6c8c487" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 439 1 0 "c641708e_c54f_4eb3_809e32c386d2f0d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 440 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 441 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapMove") { // }} "" // {{ 442 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 443 1 0 "3c315cea_4ff8_4efa_8e4a5cc86a9d84d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 444 1 0 "4e2cf15d_267b_47e0_895c36b714787e13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 445 1 0 "24d68fc9_cd59_471b_9c663c4121d1a931" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("gripMode"), gripMode); // }} "" // {{ 446 1 0 "e4e7211e_5459_4473_82e501854e6de3f8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 447 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 448 1 0 "d372f898_6d32_4d80_ab4d58340d18681d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 449 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 450 1 0 "9e573132_bd29_4d08_a1784d0e26c48700" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 451 1 0 "b6a44c85_34c2_4eeb_a9fe5b2edc00c447" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 452 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 453 1 0 "48db1de6_2a87_4224_b1f13fa2a75b490a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 454 1 0 "c209c263_c70d_4cb3_b49835591aa9e2ee" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 455 1 0 "1e8e9562_41c0_4df5_9de945c44d1e8d61" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Move(ML_STAR, seq, collisionControl, gripMode, o_stepReturn); // }} "" // {{{ 456 1 0 "a5de7c97_d49c_4f04_b1414f1aaace7f84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Move - step return :"), o_stepReturn); // }} "" // {{{ 457 1 0 "6d1dcd2f_bf6a_42d1_93412dd3a4ff7f19" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 458 1 0 "7146d72d_c7e0_4728_86f6ba95f9ae2ce2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 459 1 0 "ab94b9f5_5b49_425f_8fb45b9c6b18f3b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 460 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 461 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPlace") { // }} "" // {{ 462 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 463 1 0 "18e9697d_0efb_4840_94a65e2a82b4ca69" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateSequence"), plateSequence); // }} "" // {{{ 464 1 0 "b0c35970_122b_4119_92c3801f4b8e980b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidSequence"), lidSequence); // }} "" // {{{ 465 1 0 "6ed697af_a110_4104_941633e154ff0071" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("toolSequence"), toolSequence); // }} "" // {{{ 466 1 0 "fec1982e_3636_412d_af2eda243438f7ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sequenceCounting"), sequenceCounting); // }} "" // {{{ 467 1 0 "21de27ac_9dc3_415b_b1d1e49e80c53591" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("movementType"), movementType); // }} "" // {{{ 468 1 0 "652aeaa7_9a2f_4c11_8bc1fc58a97ffed7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("transportMode"), transportMode); // }} "" // {{{ 469 1 0 "e88a5df4_d9ad_4231_89a5a03f88d0ce77" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("labwareOrientation"), labwareOrientation); // }} "" // {{{ 470 1 0 "8c5aee51_3156_4fcc_b1b167552b73476f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("collisionControl"), collisionControl); // }} "" // {{{ 471 1 0 "8c257b39_8c0b_410d_a4a4e38df904008c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("retractDistance"), retractDistance); // }} "" // {{{ 472 1 0 "91e9f4c6_b7fe_4b15_83c830df3385398a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("liftUpHeight"), liftUpHeight); // }} "" // {{ 473 1 0 "c21cc6f5_cbc8_4535_ba2466301365c788" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 474 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (plateSequence == "") { // }} "" // {{{ 475 1 0 "226bb6d1_37a1_4076_9d96fb9df69c6068" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("plateLabwarePositions"), labwarePositions); // }} "" // {{ 476 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 477 1 0 "ec2fd48b_eab9_491e_867c0fc335eea81c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 478 1 0 "47af65c4_2f11_4cef_b2f07e3757e09bfd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 479 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 480 1 0 "e590d9b6_f690_48db_b0109a10c228d5ac" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, plateSequence, seq); // }} "" // {{ 481 1 0 "08338782_e8e1_41fe_9249968c2b3d9baa" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 482 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (lidSequence == "") { // }} "" // {{{ 483 1 0 "82559320_1e13_40c9_b283fdfa804df6a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("lidLabwarePositions"), labwarePositions); // }} "" // {{ 484 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwarePositions != "") { // }} "" // {{{ 485 1 0 "420daa28_bf45_407a_bd576559af75c5d0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" BuildTempSequenceFromPositions(labwarePositions, seq); // }} "" // {{ 486 1 0 "302a96c5_c504_4aa8_9f1ebec523e15f57" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 487 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{{ 488 1 0 "3ed6b704_3649_4c7d_8e7d30bdb038feab" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, lidSequence, lidSeq); // }} "" // {{ 489 1 0 "40d9e6da_cdd8_4bce_9c5c75a95ee95929" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 490 1 0 "41a130e8_a745_4a20_b124272093bf38e7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Place(ML_STAR, seq, lidSeq, sequenceCounting, movementType, transportMode, labwareOrientation, collisionControl, retractDistance, liftUpHeight, o_stepReturn); // }} "" // {{{ 491 1 0 "b4bdf08c_e218_4bec_98c0f41e6ec3a218" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Place - step return :"), o_stepReturn); // }} "" // {{{ 492 1 0 "346b983b_d261_4447_a7cebf782db4b4d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 493 1 0 "e26c8147_c65e_4e2b_b6d7e56137b96999" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 494 1 0 "bea999fe_58e8_4853_b2c6944b52b849a7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 495 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 496 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapPark") { // }} "" // {{ 497 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 498 1 0 "73602d5e_7f8d_45dc_9c1f21d41c39d0bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("showCollisionCheckDialog"), showCollisionCheckDialog); // }} "" // {{ 499 1 0 "4e17c800_0efd_4b92_8b02b184974cfdbb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 500 1 0 "acf5767a_7e39_4072_8e062928938984cf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{{ 501 1 0 "96b1bdf6_a3f3_4530_844fc77cbf7fb944" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 502 1 0 "d03fdac4_224f_4174_924fb518a623bf65" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 503 1 0 "1d24b56f_d974_4391_9b5b211c63922f6c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 504 1 0 "2ad56a31_f410_4e94_923a158f40a1cc6c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 505 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 506 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "iSwapGetFirst") { // }} "" // {{ 507 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 508 1 0 "b6ac0465_feea_4ea0_87c359fa78ca933a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 509 1 0 "5f9f4b8d_3b3a_48ee_89ef334a70dcb72e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::iSWAP_Park(ML_STAR, showCollisionCheckDialog, o_stepReturn); // }} "" // {{ 510 1 0 "65648900_32b3_4035_9eb5916a3314f7e9" "ML_STAR:{8E745E0A-158E-425e-BD3E-2F894E354A40}" { variable arrRetValues[]; arrRetValues = ML_STAR._8E745E0A_158E_425e_BD3E_2F894E354A40("65648900_32b3_4035_9eb5916a3314f7e9"); // GetFirstPlatePosition } // }} "" // {{{ 511 1 0 "63380bb7_5afe_4d65_9dc5cdf334590b4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("iSWAP Park - step return :"), o_stepReturn); // }} "" // {{{ 512 1 0 "cdb18c48_14d5_430d_9f7202f782e069da" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 513 1 0 "b31142bd_9077_4f29_823af7408e6eb17c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 514 1 0 "d1ca88b3_6376_4577_9baea391a956a83c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 515 1 0 "ce4e3ea7_9e56_4524_9ea26ae388275d0d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 516 1 0 "bd4869b9_868e_4752_b0442af8ce334f90" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 517 1 0 "f85c89d5_d370_4d24_b13fe2cee71ee262" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "FirmwareCommand") { // }} "" // {{ 518 1 0 "4d6ccadc_66fe_48ca_913a7e0defd3a766" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 519 1 0 "e1385a03_1302_4ae1_9faaea69422d67f3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CommandListLength = HSLJsonLib::GetArrayLength(objJSONFromServer, Translate("FirmwareCommandList")); // }} "" // {{ 520 1 0 "6fa9115c_4e6b_4fcf_82fc2509f332fbca" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(CommandListElement = 0; CommandListElement < CommandListLength;) { CommandListElement = CommandListElement + 1; // }} "" // {{{ 521 1 0 "5af0317c_390a_4121_92fc6695bd45edd3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJsonArrayElement(objJSONFromServer, Translate("FirmwareCommandList"), CommandListElement, FirmwareCmdDict); // }} "" // {{{ 522 1 0 "8c9a281c_debc_4f33_9bd2cef6eedde57e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareCommand"), FirmwareCommand); // }} "" // {{{ 523 1 0 "3d50574c_65df_46db_976821037648878c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(FirmwareCmdDict, Translate("FirmwareParameter"), FirmwareParameter); // }} "" // {{{ 524 1 0 "642f5973_af08_450b_878d55fa1dc15b1c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::SendFirmwareCommand(FirmwareCommand, ML_STAR, FirmwareParameter, o_stepReturn); // }} "" // {{{ 525 1 0 "c1b028b1_70dd_4627_a467661067398a2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Firmware Command Step Return:"), o_stepReturn); // }} "" // {{{ 526 1 0 "f0c6a22f_59e2_41c2_954cb5b06a43aa42" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 527 1 0 "6fa9115c_4e6b_4fcf_82fc2509f332fbca" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 528 1 0 "4d6ccadc_66fe_48ca_913a7e0defd3a766" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 529 1 0 "f85c89d5_d370_4d24_b13fe2cee71ee262" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 530 1 0 "bd4869b9_868e_4752_b0442af8ce334f90" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 531 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 532 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Initialize") { // }} "" // {{ 533 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 534 1 0 "efe73491_e5b4_499e_9b3f298c8b7a6398" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ControllerID = HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 535 1 0 "5c0fe710_4afe_4b11_bf186cfe8dc87978" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{ 536 1 0 "bed453d0_3466_4ba5_9a4e53e2895f1d75" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 537 1 0 "110af9db_52cf_4a40_94724a7476c48d86" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Initialize(ControllerID, SimulationMode, o_stepReturn); // }} "" // {{{ 538 1 0 "af9bf513_7c00_47bf_aee50c7cdb333b5f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Initialize: "), o_stepReturn); // }} "" // {{{ 539 1 0 "cf0a8758_8a16_429a_97f320a142945224" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 540 1 0 "0b0ad63e_8299_4014_917f2b8750b8941f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 541 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StartTempControl") { // }} "" // {{ 542 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 543 1 0 "de87c5cd_92f6_45a8_9ebd6fe71ac65dbc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 544 1 0 "26949b4a_2c44_4548_8de048c4f48bd98d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 545 1 0 "8ae03ef4_8584_4957_a32601dc8599dadf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StartTemperatureControl(ControllerID, DeviceID, ErrorCode, o_stepReturn); // }} "" // {{{ 546 1 0 "934ba752_5ec3_489b_ae5a40dd1ea20440" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Start Temperature Control:"), o_stepReturn); // }} "" // {{{ 547 1 0 "a3528747_6990_4387_8839b01b71c3b754" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 548 1 0 "901b96a6_3308_4b2d_a8b7d96627a66221" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 549 1 0 "71778a2d_58d8_4ed9_ac1f1726624f7738" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 550 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_SetTarget") { // }} "" // {{ 551 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 552 1 0 "55e81697_10a3_42fb_8777236a132ff0b4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 553 1 0 "0177c1a2_7380_4683_94ff93e2ed1299b2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{{ 554 1 0 "15559e31_3f7a_4336_9cabca6758b7c253" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("TargetTemperature"), TargetTemperature); // }} "" // {{ 555 1 0 "a5609825_7bdd_4e23_883516fb80a47c44" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 556 1 0 "0dcffa9d_ea82_418b_be95240c1bfd0d77" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_SetTarget(ControllerID, DeviceID, TargetTemperature, o_stepReturn); // }} "" // {{{ 557 1 0 "e9b0b663_7dd3_4e55_b206572d2c8a92c3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Set Target:"), o_stepReturn); // }} "" // {{{ 558 1 0 "08ecb91c_e9c8_4c61_aca2c1f89fd97bab" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 559 1 0 "8223bbe5_8a1c_4c9b_849702c13fca1ba4" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 560 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_StopTemperatureControl") { // }} "" // {{ 561 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 562 1 0 "b67518d4_e443_4a8f_947e8c457680c63e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ControllerID"), ControllerID); // }} "" // {{{ 563 1 0 "045fda52_2303_4244_833066fb0005c21b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("DeviceID"), DeviceID); // }} "" // {{ 564 1 0 "4453b445_3d25_4921_aca15780e6129b82" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 565 1 0 "1c8947fe_b7a1_455a_94e7672ad3593b08" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_StopTemperatureControl(ControllerID, DeviceID, o_stepReturn); // }} "" // {{{ 566 1 0 "285287f8_a3f9_43f0_9799c3ad98e59b9b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco Stop Temperature Control:"), o_stepReturn); // }} "" // {{{ 567 1 0 "88d1a80e_0aa9_4314_ba83bc772f71a589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 568 1 0 "b5562588_f0cd_415d_a5696d39edbbc8dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 569 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TEC_Terminate") { // }} "" // {{ 570 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 571 1 0 "c963c353_41bc_4f4a_b74a666b28831950" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("StopAllDevices"), StopAllDevices); // }} "" // {{ 572 1 0 "9f746a1d_5919_42e4_927c226aa2701ba8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 573 1 0 "ea2ceb94_04fa_4204_96db2caf6871231f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::Inheco_TEC_Terminate(StopAllDevices, o_stepReturn); // }} "" // {{{ 574 1 0 "cd495cf5_43ff_4b30_b0baa1f2cd96cf0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Inheco TEC Terminate:"), o_stepReturn); // }} "" // {{{ 575 1 0 "bcce43cd_2b64_4caf_89bef8978a011dc5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 576 1 0 "9aae2f45_674c_408d_8ff5383926346d65" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 577 1 0 "63871974_83d2_4fa8_b138c454f68179fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 578 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 579 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_Initialize") { // }} "" // {{ 580 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 581 1 0 "d824843f_bf44_4e8b_bb434b50a8b65716" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 582 1 0 "45b9f513_7eaf_4e63_ae92391c28cf15b8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 583 1 0 "7f058eec_3092_45ce_862c43a3e0853c7a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 584 1 0 "56a4490f_902b_4043_8172466a64e332bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Simulate"), Simulate); // }} "" // {{ 585 1 0 "acb3a86e_2724_4f07_9a2c00f07f9427c2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 586 1 0 "c44a492c_8123_465b_acd4ff374583777d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_Initialize(ModuleName, Comport, TraceLevel, Simulate, o_stepReturn); // }} "" // {{{ 587 1 0 "a62df2e9_44bb_4099_a4d0597fbf0705de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Initialize:"), o_stepReturn); // }} "" // {{{ 588 1 0 "de7bfb5a_b1fa_42ee_b461782a3c381af4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 589 1 0 "4c3bccec_72ff_4ab3_9ad13426338ff1dd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 590 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "TiltModule_MoveToPosition") { // }} "" // {{ 591 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 592 1 0 "3092ee64_df80_4e56_b3cdffc0827e3c2c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 593 1 0 "4284a9cf_3ea6_42f5_ae1f62d82cd11ebe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Angle"), Angle); // }} "" // {{ 594 1 0 "52dd01e3_73eb_4727_9e063b4742a8bfaa" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 595 1 0 "5b44092b_0faa_47ae_8005717c87a0f334" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::TiltModule_MoveToPosition(ModuleName, Angle, o_stepReturn); // }} "" // {{{ 596 1 0 "4d912417_89ed_44f2_941bfb44efed0e2b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Tilt Module Move to Position:"), o_stepReturn); // }} "" // {{{ 597 1 0 "0540bb67_399d_468d_853dd6ca4bb1c285" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 598 1 0 "eb7cab18_6854_427e_adfb432c3659a4c3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 599 1 0 "94445445_838f_4aea_861e1c7c5b8dc562" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 600 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 601 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "moveSequence") { // }} "" // {{{ 602 1 0 "6e83eea3_8863_4ca0_9ff603380f0dc4d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("inputSequence"), inputSequence); // }} "" // {{{ 603 1 0 "6b8903c6_6977_458a_8409f93724089454" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("xDisplacement"), xDisplacement); // }} "" // {{{ 604 1 0 "77d9a84d_5987_4b3c_a76757ce15a19302" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("yDisplacement"), yDisplacement); // }} "" // {{{ 605 1 0 "13c73535_4a98_49e2_ba1a02c30f02035b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("zDisplacement"), zDisplacement); // }} "" // {{{ 606 1 0 "a33ebddb_88d8_4440_9a78132ed62d97f2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetSequenceRef(ML_STAR, inputSequence, seq); // }} "" // {{{ 607 1 0 "1dcc4914_aa2f_439e_8a2f431687c33852" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqFirstPosition = SeqGetPositionId(seq); // }} "" // {{{ 608 1 0 "01f7bf35_3538_441d_98904fa827b05e68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" APPSLIB::MoveSequence(ML_STAR, seq, xDisplacement, yDisplacement, zDisplacement); // }} "" // {{ 609 1 0 "da3c8baf_9c08_4b10_ae4bfca19c718fb7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{{ 610 1 0 "fe9d84b8_86ec_4552_b187147351886cb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" seqSecondPosition = SeqGetPositionId(seq); // }} "" // {{{ 611 1 0 "5fa8b88a_cf88_49e1_8cb574503dc60e56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(seqFirstPosition, seqSecondPosition); // }} "" // {{{ 612 1 0 "e590c4e1_91dd_41c0_82a254d4134fb734" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("First check"), Translate("Second check")); // }} "" // {{{ 613 1 0 "2127d6de_e8bd_455a_88ad20e73b767061" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 614 1 0 "e1b9b9c0_e31f_433d_8367631c3a960206" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 615 1 0 "4a636381_c32f_4fc7_aaa773d003e012b3" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 616 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 617 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 618 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_measure") { // }} "" // {{{ 619 1 0 "7c314622_d15c_42aa_a88b3d71caa33d0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 620 1 0 "9f15b042_95cd_4241_9b6262d3a4979ca7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 621 1 0 "34064a8d_5567_4fe5_b4349d0d061b9a1a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 622 1 0 "0e34e118_df68_49fa_b3b9228d63deb6d9" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure(ModuleID, Temperature, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 623 1 0 "025eece8_72cd_4190_a092d806fbab65a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 624 1 0 "269c134a_bc59_4578_8da8bb7559f234a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 625 1 0 "36ec28c1_360b_46e9_9243c01dbd3874e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 626 1 0 "58445956_3204_41a3_a7acb03aaf25ccd5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 627 1 0 "465c2002_18cb_4ff2_9df9e423dbc6837c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 628 1 0 "40682224_6d73_4a7c_a2e33641f1768d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 629 1 0 "e43a57a6_d83b_41d1_adf33f8f77ca7bc9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 630 1 0 "12a6bd74_f75b_44d1_b6f7c26d279d9610" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 631 1 0 "71b8f8bc_65c1_4e97_ab6eae03040f51dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 632 1 0 "14b52404_fede_461d_aca1373dce5499bb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, id); // }} "" // {{ 633 1 0 "eae1e60d_3c88_47ed_960af8513dfae699" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 634 1 0 "58c1844a_90f1_4d91_910db6d09b506a5d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 635 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 636 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate_Dyn") { // }} "" // {{{ 637 1 0 "de6a4eb0_04e1_47fc_86e27009d71152cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 638 1 0 "5f551457_7af9_4567_bceacdf0018c9c38" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 639 1 0 "60ee9fa5_c549_43a9_bbccdb0b14819583" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 640 1 0 "2211f515_9e69_4a1c_9603becd6fd866cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 641 1 0 "8449e1f4_6561_4b51_b91aa14423565eb2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 642 1 0 "4429d4bb_e2fb_451f_8558de74111dbe3d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Variance"), Variance); // }} "" // {{{ 643 1 0 "a918fadc_db95_4e4b_9c445a903a59f17a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 644 1 0 "7611bb65_5e77_408e_98384f0fec68e958" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate_Dynamically(ModuleID, CalibrationLevel, Variance, Timeout, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 645 1 0 "74418f44_640a_4b4b_88234a74841f1dbd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate Dynamically"), o_stepReturn); // }} "" // {{{ 646 1 0 "3eeade94_ed13_40da_8e5da59febd67068" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 647 1 0 "17da3d1a_533e_47b2_b3207a70ab40d996" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 648 1 0 "670c6912_2f0d_4aec_bd7831bd28d53fc2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 649 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 650 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Calibrate") { // }} "" // {{{ 651 1 0 "c7a809a1_1dc8_47c2_a8006c785355c50e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationTemperature"), CalibrationTemperature); // }} "" // {{{ 652 1 0 "27f7a889_0250_42a5_87699d0b0d52d36b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("CalibrationValue"), CalibrationValue); // }} "" // {{{ 653 1 0 "b624fe53_a0c2_44e7_92eb12cc744fa799" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 654 1 0 "9f642188_0286_4e80_81cb485423a155c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 655 1 0 "c7530a85_7f29_4069_9a8e94318ffec0d5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CalibrationLevel"), CalibrationLevel); // }} "" // {{{ 656 1 0 "849206a3_ea5c_4440_a08cdbcb81354e94" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Calibrate(ModuleID, CalibrationLevel, CalibrationValue, CalibrationTemperature, probePattern, o_stepReturn); // }} "" // {{{ 657 1 0 "9f9ab695_0d32_4bf4_bf5a4b0207a2c780" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Calibrate"), o_stepReturn); // }} "" // {{{ 658 1 0 "84efa5b5_d72d_4cd9_9851f31ca8d9d88e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, Translate("0"), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 659 1 0 "81ca00fc_188a_4f7a_bd50d7e39e2e3ff3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 660 1 0 "e800ef4c_ee59_43e1_9ba7a4a1501ccdb8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 661 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 662 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Enable_Extended_Log") { // }} "" // {{{ 663 1 0 "1791ad6e_39b2_4442_8b4470d0fc5497fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Enable_Extended_Log(o_stepReturn); // }} "" // {{{ 664 1 0 "b22a7836_ed52_4e9d_9e5df5babf8fa142" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 665 1 0 "8d68d8f1_5b56_488b_a0676b4b50a35221" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 666 1 0 "35a1b0bf_abf3_4b53_9c3a64bda9084065" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 667 1 0 "fc225ca7_cfea_46ee_b51038a9f1935949" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 668 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 669 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Get_Last_Error") { // }} "" // {{{ 670 1 0 "11bf85a6_3df2_4245_839282a900f3db71" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 671 1 0 "2c0b2633_5d81_41a1_aa90c51eb8d9d23d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Get_Last_Error(ModuleID, o_stepReturn2, o_stepReturn); // }} "" // {{{ 672 1 0 "4d60f4e2_175b_4a4b_9b0bfb0f63211da0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Get Last Error"), o_stepReturn); // }} "" // {{{ 673 1 0 "a7ff32d1_e6bc_48d7_a26ced7c3d68c4fe" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 674 1 0 "9e1a5890_b439_454a_9baf81479e6b600d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 675 1 0 "19f81a9f_9672_410e_b5b315bb8ac3134a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 676 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 677 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Initialize") { // }} "" // {{{ 678 1 0 "a37d4042_a872_4da0_bf60a51312d5cc22" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 679 1 0 "77530965_cb1f_4563_a1d848bb4faa3bb8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 680 1 0 "295c3bab_f7f4_47d0_8075cf658ee0436f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Initialize(Comport, SimulationMode, o_stepReturn2, o_stepReturn); // }} "" // {{{ 681 1 0 "5ccf6713_621f_45ec_9520383da6a8fafd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn2 = StrFStr(o_stepReturn2); // }} "" // {{{ 682 1 0 "178d10c9_fe18_479a_b3e7922f87282612" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Initialize"), o_stepReturn); // }} "" // {{{ 683 1 0 "316d7012_97a3_4f96_8d21cc026931e7ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, Translate("0"), o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 684 1 0 "43c59be0_c1ca_49f2_a393bcd25a0a8448" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 685 1 0 "fe8e9103_8051_4aff_b4b44132379859e2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 686 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 687 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Measure_Dynamically") { // }} "" // {{{ 688 1 0 "69eede79_0b96_4634_a4ed7995201d9b7d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Temperature"), Temperature); // }} "" // {{{ 689 1 0 "6a018697_b8f4_4088_b8c650a2f028d197" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(Translate("Precision"), Precision); // }} "" // {{{ 690 1 0 "dfbe88b8_1dda_42ac_8175799123584051" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("probePattern"), probePattern); // }} "" // {{{ 691 1 0 "3ef27a25_aec7_4d5b_beb743b713c7526e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 692 1 0 "74a87116_8260_466d_a78e98fe0544a891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Timeout"), Timeout); // }} "" // {{{ 693 1 0 "425d37a5_2d55_4b09_a607303c754935db" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Measure_Dynamically(ModuleID, Temperature, Precision, Timeout, probePattern, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, o_stepReturn); // }} "" // {{{ 694 1 0 "0df3fc00_0550_45fa_b224d60b9bcd06c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_1 = StrFStr(pH_probe_1); // }} "" // {{{ 695 1 0 "26992ae0_59eb_4678_ae304b460a7034db" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_2 = StrFStr(pH_probe_2); // }} "" // {{{ 696 1 0 "3beda7c9_5769_4578_b31431d2bab6d131" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_3 = StrFStr(pH_probe_3); // }} "" // {{{ 697 1 0 "141952da_a201_4e85_9e446006849a95bc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pH_probe_4 = StrFStr(pH_probe_4); // }} "" // {{{ 698 1 0 "f8b8fadb_96c5_4fe2_ae76b0f4c2ba1135" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Measure"), o_stepReturn); // }} "" // {{{ 699 1 0 "5487a4f7_a9f8_448e_98b2cb671cb9c069" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 1"), pH_probe_1); // }} "" // {{{ 700 1 0 "c8e7c221_d1e4_4818_b3e077f9aeb6a0a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 2"), pH_probe_2); // }} "" // {{{ 701 1 0 "611376c4_8c68_46f2_8947cec12bb313f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 3"), pH_probe_3); // }} "" // {{{ 702 1 0 "e113c0e5_7ab9_4244_86b73e7f24d2bfc8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe 4"), pH_probe_4); // }} "" // {{{ 703 1 0 "bedcab57_6a72_4e21_a8115e7ec01a9df0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, pH_probe_1, pH_probe_2, pH_probe_3, pH_probe_4, id); // }} "" // {{ 704 1 0 "3b08bf09_1f0b_428f_af653b8849cb04bb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 705 1 0 "d834bbd0_a9a2_463b_858c5709b4371224" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 706 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 707 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Battery") { // }} "" // {{{ 708 1 0 "c83f58ac_8db7_4477_bed8e57c9c784b8a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 709 1 0 "4b343bdb_fe40_4daa_8382b1265575e03a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Battery_Data(ModuleID, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, o_stepReturn); // }} "" // {{{ 710 1 0 "98f43381_9679_4d9f_b3d1238ed4c1d0c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Battery Data"), o_stepReturn); // }} "" // {{{ 711 1 0 "b95371f0_7532_4426_b980d9824bf1d2b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ChargeCounter = StrIStr(ChargeCounter); // }} "" // {{{ 712 1 0 "15324eca_50a4_4530_be7f08cdef0e6514" "{C1F3C015-47B3-4514-9407-AC2E65043419}" BatteryCondition = StrIStr(BatteryCondition); // }} "" // {{{ 713 1 0 "e694349e_13ad_46c1_b18f5eb4688f510e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ActualCharge = StrIStr(ActualCharge); // }} "" // {{{ 714 1 0 "cfc277c3_f282_4547_a247af47bcdff866" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, ReplacementDate, ChargeCounter, BatteryCondition, ActualCharge, id); // }} "" // {{ 715 1 0 "b2b725f1_a37b_43ba_98bf6b2f04c4a054" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 716 1 0 "85f0c632_9d76_4845_bb5f92adb00524ca" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 717 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 718 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Calibration") { // }} "" // {{{ 719 1 0 "250cbb57_43e2_4ca3_8ac97a4f8a848ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 720 1 0 "e2f361b4_fb8d_4bf8_b53c05720323632b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ProbeNumber"), ProbeNumber); // }} "" // {{{ 721 1 0 "6e7357dd_030a_4f9d_b5cda736b409bbee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Calibration_Values(ModuleID, ProbeNumber, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationSlope, CalibrationSlopeRatio, o_stepReturn); // }} "" // {{{ 722 1 0 "07a16a85_b9f0_4bb3_9dd6a0a173520841" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowValue = StrFStr(pHLowValue); // }} "" // {{{ 723 1 0 "7331e4fa_3e06_499a_84eed922b712aca5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHLowVoltage = StrFStr(pHLowVoltage); // }} "" // {{{ 724 1 0 "3c2e720a_1c6e_4f09_afe077215aa438e9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighValue = StrFStr(pHHighValue); // }} "" // {{{ 725 1 0 "a9363a15_98fa_4a49_8451b25c27edea3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" pHHighVoltage = StrFStr(pHHighVoltage); // }} "" // {{{ 726 1 0 "73007841_7490_489f_9c595a8e085e3a59" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationTemperature = StrFStr(CalibrationTemperature); // }} "" // {{{ 727 1 0 "49c841c4_b5cf_4ac7_9c2e87a2dc939210" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationOffset = StrFStr(CalibrationOffset); // }} "" // {{{ 728 1 0 "d3535c95_47a6_46a6_80f73d15c4582508" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlope = StrFStr(CalibrationSlope); // }} "" // {{{ 729 1 0 "e72f9070_8ad1_4595_90dd12ff353c8844" "{C1F3C015-47B3-4514-9407-AC2E65043419}" CalibrationSlopeRatio = StrFStr(CalibrationSlopeRatio); // }} "" // {{{ 730 1 0 "9ae40f13_d6cb_4a4e_9dc995de1da2d637" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Request Calibration Values"), o_stepReturn); // }} "" // {{{ 731 1 0 "755fd068_89d1_41be_8a861b77bf48bee7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, pHLowValue, pHLowVoltage, pHHighValue, pHHighVoltage, CalibrationTemperature, CalibrationOffset, CalibrationTemperature, CalibrationSlopeRatio, id); // }} "" // {{ 732 1 0 "5ca31581_4fcb_4012_8c05b4c8538c8bbd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 733 1 0 "e830a647_de43_4aa7_a65ff6b5ebcdfd62" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 734 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 735 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Probe_Data") { // }} "" // {{{ 736 1 0 "04b155be_097f_4f2d_add1392fbf78b5f1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 737 1 0 "c40a59cd_e266_4cc3_aa3dd3d526502930" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Probe_Data(ModuleID, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, o_stepReturn); // }} "" // {{{ 738 1 0 "306c68bb_ffd7_4233_b7f0c2c67678dfdf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_1 = StrIStr(MeasurementCounter_Probe_1); // }} "" // {{{ 739 1 0 "bbd1faef_5b8f_41ba_bf74a019b05da039" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_2 = StrIStr(MeasurementCounter_Probe_2); // }} "" // {{{ 740 1 0 "cb244d85_a14b_4bcb_ab81c5cdc38c6552" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_3 = StrIStr(MeasurementCounter_Probe_3); // }} "" // {{{ 741 1 0 "fc396f90_794c_409c_b3cef94fbe3b4b58" "{C1F3C015-47B3-4514-9407-AC2E65043419}" MeasurementCounter_Probe_4 = StrIStr(MeasurementCounter_Probe_4); // }} "" // {{{ 742 1 0 "6883841a_44f5_417f_8574566ed15ae444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Probe Data"), o_stepReturn); // }} "" // {{{ 743 1 0 "5a8f2425_ea73_4af6_af3bcc0704a09580" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer_EightOutputs(commandFromServer, ReplacementDate, MeasurementCounter_Probe_1, MeasurementCounter_Probe_2, MeasurementCounter_Probe_3, MeasurementCounter_Probe_4, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 744 1 0 "987ef8bf_2011_4aa2_8bbdbadc434b3598" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 745 1 0 "38690707_1914_4264_b4619121e73d9ed9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 746 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 747 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Technical_Data") { // }} "" // {{{ 748 1 0 "3c80e1e2_a904_42ac_a3ddd5df5ca3a196" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 749 1 0 "8b2b24be_b84b_41b8_bd0f088f32554cb7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 750 1 0 "552e7bb6_cbdf_49ec_86ac28b54cae7f58" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 751 1 0 "108648ea_3fbc_41e4_ac121ce685b5ac84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HardwareNumber = StrIStr(HardwareNumber); // }} "" // {{{ 752 1 0 "2cfb8725_b283_48b0_906a9741fe336744" "{C1F3C015-47B3-4514-9407-AC2E65043419}" PartNumber = StrIStr(PartNumber); // }} "" // {{{ 753 1 0 "7b9a6dfa_9df8_40a8_9c0c39981dcf97e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Revision = StrIStr(Revision); // }} "" // {{{ 754 1 0 "771c0483_6ea2_4299_81c7598839a5027b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SerialNumber = StrIStr(SerialNumber); // }} "" // {{{ 755 1 0 "790984ff_e065_4212_a5c420f04d9f7e4a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Technical Data"), o_stepReturn); // }} "" // {{{ 756 1 0 "371d6452_cf9d_4abe_9463f54ab7831231" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, PartNumber, Revision, SerialNumber, id); // }} "" // {{ 757 1 0 "75d3b801_397e_4df1_99e2b2ebc259f87f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 758 1 0 "b5263b3c_bf4c_485b_a5fb4024a109b16f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 759 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 760 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Request_Voltage_Data") { // }} "" // {{{ 761 1 0 "b6c0eb00_003a_45ed_9899c407d864455c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 762 1 0 "e4801131_30dc_4e2d_8ac9e80c0c13972c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Selector"), Selector); // }} "" // {{{ 763 1 0 "63763df0_9e9f_43dc_93b0d75fab310dc3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Request_Voltage_Data(ModuleID, Selector, VoltageData, o_stepReturn); // }} "" // {{{ 764 1 0 "bf78a104_f3d4_45b6_a573a7219dcf05e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Voltage Data"), o_stepReturn); // }} "" // {{{ 765 1 0 "cd76b96c_754c_4ce9_a9cc69a29e595e49" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, VoltageData, Translate(""), Translate(""), id); // }} "" // {{ 766 1 0 "324ea976_ea76_49f5_94e20447f734b7f7" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 767 1 0 "57b92ad0_d43b_423e_836e548b5b24f0a6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 768 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 769 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Battery_Replacement_Date") { // }} "" // {{{ 770 1 0 "51fd11a2_c173_4d8a_be50512a820eb424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 771 1 0 "b1268215_064b_40bc_8b9e75cfc0edeac8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 772 1 0 "7665963b_aa9b_4a3c_ba522887f3b15ab2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 773 1 0 "8327c869_96c0_4394_9bf4c5b5c19f30d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 774 1 0 "5a5455ae_5598_4a29_8c5f621b0586ba79" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Battery_Replacement_Date(ModuleID, Year, Month, Day, o_stepReturn); // }} "" // {{{ 775 1 0 "f534cbac_4de3_4425_85299c07c6ff73cb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Set Battery Replacement"), o_stepReturn); // }} "" // {{{ 776 1 0 "aee63add_2789_4971_b4867510d938caf6" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 777 1 0 "e60be2b2_9ff4_4178_bb82b71e58f12b9a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 778 1 0 "5db1f3e5_03f4_4407_b1c4c1e6f6eddd50" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 779 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 780 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Charge_Parameters") { // }} "" // {{{ 781 1 0 "5e24703a_30cb_4538_aec7ba85b7c0d2a3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 782 1 0 "31630603_a72b_4d8b_a21a501f5336c619" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("Charge"), Charge); // }} "" // {{{ 783 1 0 "41b8aa8b_7d8e_4351_ad9664e334fa00f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("AutoCharge"), AutoCharge); // }} "" // {{{ 784 1 0 "504d0d26_95ad_4181_a7c38162018496cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("AutoChargeLevel"), AutoChargeLevel); // }} "" // {{{ 785 1 0 "576ecb10_c479_461f_9249f554f27e398b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Charge_Parameters(ModuleID, Charge, AutoCharge, AutoChargeLevel, o_stepReturn); // }} "" // {{{ 786 1 0 "80503782_9e9a_4986_9e4bcdeac598c749" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Charge Parameters"), o_stepReturn); // }} "" // {{{ 787 1 0 "4fb997db_4cdf_4b51_85bbb23941f19edb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 788 1 0 "0eb4c00c_42d8_47e4_aa5ecaf7ece0404e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 789 1 0 "612f450a_0371_4712_ae85bc006b35baa6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 790 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 791 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Probe_Replacement_Date") { // }} "" // {{{ 792 1 0 "eb0a7cc0_c83a_45a8_8bd6adbf05cadabe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 793 1 0 "c762429d_3619_4e70_9765fe207dab3d54" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Probe"), Probe); // }} "" // {{{ 794 1 0 "18bf75b8_9aa3_46d2_a3ad3bbab8c1e126" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Year"), Year); // }} "" // {{{ 795 1 0 "2b2bbaed_84c1_46d2_bd024b425aefa336" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Month"), Month); // }} "" // {{{ 796 1 0 "380453f0_b3e8_47ac_a06eb91552b3a11f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Day"), Day); // }} "" // {{{ 797 1 0 "a8fcf799_ec41_4160_910a9c78e5395ae2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Probe_Replacement_Date(ModuleID, Probe, Year, Month, Day, o_stepReturn); // }} "" // {{{ 798 1 0 "c95c2987_8098_48ed_9ad284801d556587" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Probe Replacement Date"), o_stepReturn); // }} "" // {{{ 799 1 0 "8c682be5_9caa_4673_bfc0eb9fe0eb3593" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 800 1 0 "7e423c4d_f9e0_456b_8883c312232f8389" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 801 1 0 "c39ad8a8_2b54_4b62_a0bb3858ad77ff2d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 802 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 803 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Shutdown") { // }} "" // {{{ 804 1 0 "aec40299_6cef_4e16_ad88bccbdcae3b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 805 1 0 "c7715d80_e089_40ea_86fe6a446a2c9378" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Mode"), Mode); // }} "" // {{{ 806 1 0 "212772c6_0ff7_41ef_9c35fb5828034d90" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Shutdown(ModuleID, Mode, o_stepReturn); // }} "" // {{{ 807 1 0 "82055c44_b706_4c16_99b47c2a4ae600e3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Shutdown"), o_stepReturn); // }} "" // {{{ 808 1 0 "fbbaa73a_fa45_446d_8052e6e618fd2fad" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 809 1 0 "b3253620_4a86_4ce7_90a9425b4d6b565b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 810 1 0 "abc3a145_61f3_4040_837dc8608468c13b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 811 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 812 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Technical_Data") { // }} "" // {{{ 813 1 0 "d6a005e1_4502_49d8_9a510afa4a2e833e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 814 1 0 "5ad112b0_da19_4b1b_a4649033defa7fef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("HardwareNumber"), HardwareNumber); // }} "" // {{{ 815 1 0 "f4094e68_7940_4706_bae95f6277784476" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("PartNumber"), PartNumber); // }} "" // {{{ 816 1 0 "2b53f199_42d1_4808_a128c8ef4354e216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Revision"), Revision); // }} "" // {{{ 817 1 0 "b5bf6715_e2e6_4e19_ad453dbb18396d65" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("SerialNumber"), SerialNumber); // }} "" // {{{ 818 1 0 "8cd5ff7f_9cb8_4f34_8afeb35175b47032" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Technical_Data(ModuleID, HardwareNumber, PartNumber, Revision, SerialNumber, o_stepReturn); // }} "" // {{{ 819 1 0 "b60d9996_aa66_483d_b61518ffca638e0d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Technical Data"), o_stepReturn); // }} "" // {{{ 820 1 0 "164f5289_e710_44eb_a1ea51e1622a7813" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 821 1 0 "f2dfe0ed_43e8_4dfb_a497aa2975395a6a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 822 1 0 "094d3c29_a178_4503_a2e3819bdb767559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 823 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 824 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Set_Trace_Level") { // }} "" // {{{ 825 1 0 "dd6ba7d4_f5cc_4725_9776848c6e8343cc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 826 1 0 "5a2c7ac9_8800_4926_96f26337aee59504" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 827 1 0 "88c51a62_4453_4cf5_ba0682a2cb1da767" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Set_Trace_Level(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 828 1 0 "159aeb3e_3ed4_4ddc_a11cdfd939a7db7d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Trace Level"), o_stepReturn); // }} "" // {{{ 829 1 0 "c3a5cc94_f346_4d04_a4be1fd04efbccc1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 830 1 0 "5d1e9104_6cae_49de_8169dcdfaddc35d5" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 831 1 0 "026f5895_715e_446d_b85eff2d75c1d1d9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 832 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 833 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Sleep") { // }} "" // {{{ 834 1 0 "153dc01b_be4b_403a_a40226aa4778c709" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 835 1 0 "a6f7384c_4c2e_4b3b_9682c00fb7a2f978" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Sleep(ModuleID, o_stepReturn); // }} "" // {{{ 836 1 0 "e82cf943_58b3_463e_a86afb9882353228" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Sleep"), o_stepReturn); // }} "" // {{{ 837 1 0 "bd1fe536_3228_4133_88a586b0ebeb97b4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 838 1 0 "d34705cb_52a3_44b9_97b73c36e1798909" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 839 1 0 "1795e7f3_c1b2_422a_97ea430547f966fd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 840 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 841 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Terminate") { // }} "" // {{{ 842 1 0 "b53cd271_035b_4870_961c552983b39351" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 843 1 0 "e133d234_4ccd_44cb_810d29742ee9f40e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Terminate(ModuleID, o_stepReturn); // }} "" // {{{ 844 1 0 "eb5a9614_5d18_44cd_83190a1d8eec2a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 845 1 0 "add7dd5e_87e4_4ec1_a7b552234adc5d9d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 846 1 0 "43988ad9_4aed_40cd_83be173b9a4d911c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 847 1 0 "ee043fa7_5b7d_4393_8978fe9275bf117e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 848 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 849 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Wakeup") { // }} "" // {{{ 850 1 0 "6b1d97c0_debd_402e_8c064a5c1fe48aca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 851 1 0 "09ffa3b4_530e_444f_943e5302e37f3fe0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Wakeup(ModuleID, o_stepReturn); // }} "" // {{{ 852 1 0 "271fe899_154a_49a3_9f697b7c6ecf1607" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 853 1 0 "04450a29_1e44_43cd_8e66a98ecb19c114" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 854 1 0 "031ee370_3133_458a_a8ca31452418cfc6" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 855 1 0 "9b3d71b1_3701_48f5_86c977993ded81dd" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 856 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 857 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Initialize") { // }} "" // {{{ 858 1 0 "10713a72_dce4_482a_ad1d6d8db7bd210a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 859 1 0 "21f38719_99e7_4de4_bc16b312b6f57977" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 860 1 0 "75ac7c86_e474_45bc_8551fc9e302de4bf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 861 1 0 "04e9eb0f_3060_49dd_b7fc371a1cac07cc" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 862 1 0 "2cd42ac0_35a7_4810_b97f172b80b5b376" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 863 1 0 "a042f65b_875f_4b52_999c836815c84a6b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 864 1 0 "a5b3f17c_5d6a_4171_809dfbebc6cc6bdf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 865 1 0 "ca26b664_f9b4_4eb1_ad7cfd41b34371f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 866 1 0 "821742df_6807_4a08_a429815f5a89a1a4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 867 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 868 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Set_Trace") { // }} "" // {{{ 869 1 0 "0029313d_525e_46ea_916912b33902e1eb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 870 1 0 "ed79bcac_71ff_48ee_b968407f0dbdf4ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 871 1 0 "80f14967_56f1_4b78_9a3c9965460a9589" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 872 1 0 "b3fdfb36_4bb4_4086_a19b5402f53fdd94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Wakeup"), o_stepReturn); // }} "" // {{{ 873 1 0 "85e3b008_ec25_4841_b8dc50757dea3859" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 874 1 0 "5486467d_2b05_4f37_bd81f2218cbab1f3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 875 1 0 "8b41cfa2_7993_4959_ac14654191b926ce" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 876 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 877 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Wash") { // }} "" // {{{ 878 1 0 "32bfd9a6_1ebc_4ca0_81e034f81d1af760" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 879 1 0 "a9208608_0099_4d5f_800d72adf563b9e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("CycleNumber"), CycleNumber); // }} "" // {{{ 880 1 0 "738f88ca_6ad7_4598_b1e4a3e1ccefcace" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Wash(ML_STAR, ModuleID, CycleNumber, o_stepReturn); // }} "" // {{{ 881 1 0 "d009e19d_0560_4f89_b0f58bafa778b71b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Wash"), o_stepReturn); // }} "" // {{{ 882 1 0 "cfdcbcac_ded9_4df9_81cb52d64cf9948f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, Translate("0"), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 883 1 0 "26cf049a_3aed_43a1_a93e413e42188a4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 884 1 0 "7c4b4cec_8463_4be8_a73746d931b61266" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 885 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 886 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Washer_Terminate") { // }} "" // {{{ 887 1 0 "e8e2fec9_d562_4524_b5d29880876bd109" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 888 1 0 "ad418c06_88fd_4649_9745bc00694fa53a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Washer_Terminate(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 889 1 0 "e8437e3c_0153_4bc0_86236a2e9849e22a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Washer Terminate"), o_stepReturn); // }} "" // {{{ 890 1 0 "93997110_b2fd_4307_beefb0793aafd07d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, Translate("0"), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 891 1 0 "bebb5824_0c7a_4109_bc806cbb5fbf5bfc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 892 1 0 "6db3e9e8_a7ed_461a_a204d926a543f5a2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 893 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 894 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Initialize") { // }} "" // {{{ 895 1 0 "b41d8294_bc5c_4346_999860e0f4cc913e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("Comport"), Comport); // }} "" // {{{ 896 1 0 "102abd73_15bb_472b_a1008b4eda35637e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetBooleanProperty(objJSONFromServer, Translate("SimulationMode"), SimulationMode); // }} "" // {{{ 897 1 0 "58389380_f098_4c71_b61c0954f797753b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ModuleName"), ModuleName); // }} "" // {{{ 898 1 0 "2fde4f24_0568_4c4b_a6e82c6e2bd1a9e8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Initialize(ML_STAR, Comport, ModuleName, SimulationMode, ModuleID, o_stepReturn); // }} "" // {{{ 899 1 0 "1ea3ff21_cc55_4ffe_a63d63f51d6c682a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" ModuleID = StrIStr(ModuleID); // }} "" // {{{ 900 1 0 "d35fefc8_f758_41da_a6073532f75cf092" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Initialize"), o_stepReturn); // }} "" // {{{ 901 1 0 "4e3aa360_b8a0_4554_895d08f5c1bad940" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, Translate("0"), ModuleID, Translate(""), Translate(""), id); // }} "" // {{ 902 1 0 "0d0b0913_b04d_428b_b15dfb745b30a322" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 903 1 0 "c063d960_3653_4247_810183ed8a13f472" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 904 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 905 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Set_Trace") { // }} "" // {{{ 906 1 0 "f7fc7449_63b2_4e8b_8d0eaf3f931e834d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 907 1 0 "ef77cea9_ef26_4525_bea967ec7f086b88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("TraceLevel"), TraceLevel); // }} "" // {{{ 908 1 0 "24784b11_b6f4_461e_b526cbbb677864ef" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_Set_Trace(ModuleID, TraceLevel, o_stepReturn); // }} "" // {{{ 909 1 0 "d5ebe375_f7dd_45c2_b3e242a8edf4f175" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Set Dryer Trace Level"), o_stepReturn); // }} "" // {{{ 910 1 0 "07352f99_d436_47e1_b5be6eb50ad91849" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, Translate("0"), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 911 1 0 "ec7af7a9_8cb3_485b_b8486e1747551ec2" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 912 1 0 "9af0434f_23cc_431c_beef0e1ec4a766d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 913 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 914 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Start_Drying") { // }} "" // {{{ 915 1 0 "45561f8e_cd7f_49d8_a8720b2ff7d0d932" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 916 1 0 "ecdddf7a_3c99_4f99_97b658f94a62554c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StartDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 917 1 0 "5a6daec0_a404_4a0a_ad9d88de43ac46c9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Start Drying"), o_stepReturn); // }} "" // {{{ 918 1 0 "8d32125d_836b_4511_bd5cc18e32c9c93a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, Translate("0"), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 919 1 0 "0e84676b_44e3_4b57_82dd0286c82d19a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 920 1 0 "3ad03172_fb69_4831_895f5299aca066bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 921 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 922 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Stop_Drying") { // }} "" // {{{ 923 1 0 "f3eac478_54bb_4350_8c1811bf2ede8424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 924 1 0 "37262733_33d0_4723_94687e68249d1300" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT_PH::pH_Dryer_StopDrying(ML_STAR, ModuleID, o_stepReturn); // }} "" // {{{ 925 1 0 "6feb871c_61be_4812_a421af32d75f9871" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Dryer Stop Drying"), o_stepReturn); // }} "" // {{{ 926 1 0 "8a572b45_5f79_44aa_8e7b2cf52c55c499" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, Translate("0"), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 927 1 0 "75fddb42_4b6d_43d8_9c2f662a8cf29862" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 928 1 0 "14268f6f_5d0b_49d3_8572d86203c234d4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 929 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 930 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "pH_Dryer_Terminate") { // }} "" // {{{ 931 1 0 "66453f41_07b7_4fd4_b2177e4994606836" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("ModuleID"), ModuleID); // }} "" // {{{ 932 1 0 "a5808bbd_63b3_4fc2_894ab4d4eb00b93d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" Hamilton_pH_Station_Dryer_Module::Terminate(ML_STAR, ModuleID); // }} "" // {{{ 933 1 0 "f844d13f_ecdb_465a_b0300a4976c0d809" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("pH Terminate"), o_stepReturn); // }} "" // {{{ 934 1 0 "abbeea15_02e5_4ceb_905c389a634e03bf" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, Translate("0"), Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 935 1 0 "31524ce9_d3fb_4604_a683133caaba0d7c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 936 1 0 "fad6b2cc_8b9f_4b73_bc778d159fd19ec6" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 937 1 0 "524dd93d_f87d_4fd2_91344399608c4559" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 938 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 939 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Initialize") { // }} "" // {{{ 940 1 0 "5efffd73_f295_4d3c_aacd37c74d2bc015" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("ComPort"), Comport); // }} "" // {{{ 941 1 0 "cc8f22a1_0ae7_40ee_82d2e071b7344cf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Initialize(Comport, o_stepReturn); // }} "" // {{{ 942 1 0 "b6f33534_c173_4c6c_820d96a48fa50a07" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Barcode initialize:"), o_stepReturn); // }} "" // {{{ 943 1 0 "138ad752_fbd8_457e_948dd436ddb65822" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 944 1 0 "9b5123c4_a6e5_408e_a7d127f367e218ce" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 945 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "BarcodeReader_Read") { // }} "" // {{{ 946 1 0 "0b3c261e_a906_4464_b0e5caa3ec640056" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" STAR_OEM_TOOLKIT::BarcodeReader_Read(barcode); // }} "" // {{{ 947 1 0 "98aadc47_a5a2_433d_84530ad050155ccd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("BarcodeReader_Read"), barcode); // }} "" // {{{ 948 1 0 "e3fc85ee_a6d7_4d98_a3f9076b947565cb" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendStepReturnToServer(commandFromServer, barcode, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 949 1 0 "bb7f6e24_9bcd_4593_9566cff49e8bc7ae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 950 1 0 "3db8e8be_9720_4794_b91a66ca2ea9bf7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 951 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 952 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 953 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_BeginMonitoring") { // }} "" // {{{ 954 1 0 "7dd862dc_f7f1_4600_94ca9b83762673dc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 955 1 0 "d37d14e5_261f_418c_81f754eb75bf4920" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingToleranceRange"), shakingToleranceRange); // }} "" // {{{ 956 1 0 "0919ceb3_189a_4885_93c8faeab9f9538b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("sampleInterval"), sampleInterval); // }} "" // {{{ 957 1 0 "bc3a749e_e1bb_4c4a_9aac06834d85080f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("action"), action); // }} "" // {{ 958 1 0 "4e026721_fd49_4127_87fda5791fa13eff" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 959 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_3202FD4CC34D478f892F31C7684340BE ; err.Clear(); // }} "" // {{{ 960 1 0 "a2a0a3bb_c0cf_4123_afe36d1d51ae233c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::BeginMonitoring(deviceNumber, shakingToleranceRange, sampleInterval, action); // }} "" // {{ 961 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_3202FD4CC34D478f892F31C7684340BE : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 962 1 0 "7066bb37_8c48_474d_8f467cf1f1e06a8d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 963 1 0 "9509457d_d171_4aef_8968c2b38f9d0eef" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 964 1 0 "c00b8635_652d_48ca_8d345ed070306b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 965 1 0 "85ac1487_5644_4bae_b032f5c191aa47c2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 966 1 0 "bf082505_42e2_4501_8cb3e4eef7b03c49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 967 1 0 "a8295265_7186_479b_a2032dcade92f115" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 968 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 969 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateStarDevice") { // }} "" // {{{ 970 1 0 "4c3dfdd2_2dd6_4c5f_831f92590c13e82e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 971 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_18D9C44C12554d56B5C39C21EA142EC8 ; err.Clear(); // }} "" // {{{ 972 1 0 "cc3d4234_12d6_486a_a110c8ede0e3059b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateStarDevice(ML_STAR, usedNode, deviceNumber); // }} "" // {{ 973 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_18D9C44C12554d56B5C39C21EA142EC8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 974 1 0 "7f473860_0be7_4dc2_87423136869dd829" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 975 1 0 "6d794af9_c71b_4000_987347c08337ec7d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 976 1 0 "7699b24c_5ec6_4cca_b1cb9aed9ce60247" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return:"), o_stepReturn); // }} "" // {{{ 977 1 0 "85155966_9554_40cb_9693f9b0a11b25a0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create STAR device step return2 (device number):"), deviceNumber); // }} "" // {{{ 978 1 0 "d049e779_0761_471d_9f7b8af0967d1633" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 979 1 0 "84178c1e_aa39_4557_a453ae2d0c1a979e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 980 1 0 "a058f116_f211_4812_a9f6e2458c13a7f7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 981 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 982 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_CreateUSBDevice") { // }} "" // {{{ 983 1 0 "72f0a762_2550_45ad_bea063f4f72a9fe9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("usedNode"), usedNode); // }} "" // {{ 984 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_98100824AA704d26AB40A6BADEF39F48 ; err.Clear(); // }} "" // {{{ 985 1 0 "0cd1cef0_3091_48c3_b63490d3e80a5b45" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::CreateUsbDevice(usedNode, deviceNumber); // }} "" // {{ 986 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_98100824AA704d26AB40A6BADEF39F48 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 987 1 0 "53df6909_1d0e_4001_ac674452fec957bc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 988 1 0 "d73b7db7_a16b_4297_bd217c5483596b0e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 989 1 0 "85d76321_871e_4d0e_bb460b7513742e62" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return:"), o_stepReturn); // }} "" // {{{ 990 1 0 "d303212f_1f38_442d_a24eee709cf4cdc0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS create USB device step return2 (device number):"), deviceNumber); // }} "" // {{{ 991 1 0 "7356ec1e_8437_4679_94613ac2bea4fe0d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, deviceNumber, Translate(""), Translate(""), id); // }} "" // {{ 992 1 0 "c39e7de4_b2ca_4f54_8af83cbb9627fd7e" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 993 1 0 "adc0e629_8b57_4538_98abc4b767f9495f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 994 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 995 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_EndMonitoring") { // }} "" // {{{ 996 1 0 "4293ef15_cfcd_4e29_b9b02afae2d471f7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 997 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 ; err.Clear(); // }} "" // {{{ 998 1 0 "96f15f32_4117_4a09_85dceac0fa769b43" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::EndMonitoring(deviceNumber, monitorResult); // }} "" // {{ 999 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_DE0DE7FF7B3F4304A0257A082FAC9714 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1000 1 0 "6ba4b834_521a_46da_9ceb8ced08da95f5" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1001 1 0 "fd2b7e6b_44e4_4ed5_b9b454f4c40ceb11" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1002 1 0 "ce89bf49_b865_4c3f_a97eba220b5a7d33" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("HHS End Monitoring step return:"), o_stepReturn); // }} "" // {{{ 1003 1 0 "05229af2_f20a_42ce_908ec8445f3f9dd2" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, monitorResult, Translate(""), Translate(""), id); // }} "" // {{ 1004 1 0 "f1e7de45_4e9c_4e01_866b3a077f89e458" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1005 1 0 "b51b52b7_51e1_4a4c_b3d46f807849d30f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1006 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1007 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetFirmwareVersion") { // }} "" // {{{ 1008 1 0 "942a1cc2_d956_47fa_9a9ffed1e856a632" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1009 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8E6D8176362E4b22B89EBFFEECC84662 ; err.Clear(); // }} "" // {{ 1010 1 0 "20e2b3e5_8664_4809_9bcf626c89196333" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1011 1 0 "c70f5e07_0eeb_45e5_af26714895e2df88" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetFirmwareVersion(deviceNumber, firmwareVersion); // }} "" // {{ 1012 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8E6D8176362E4b22B89EBFFEECC84662 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1013 1 0 "38e3e61d_a654_46f5_87f53cf7dfc09446" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1014 1 0 "98efd759_0948_43f3_be4d09e40ee42a64" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1015 1 0 "7de3b86c_c16d_4932_beedfb948b5d85f8" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, firmwareVersion, Translate(""), Translate(""), id); // }} "" // {{ 1016 1 0 "c77a8e7c_e497_43a1_81269d0166044d49" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1017 1 0 "9f9c2f55_8265_4c2d_8ff5a3f0ce4c671c" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1018 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1019 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetSerialNumber") { // }} "" // {{{ 1020 1 0 "38b7d0d7_7cce_4157_8abc70dfb62eefa5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1021 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 ; err.Clear(); // }} "" // {{ 1022 1 0 "d92781d1_27c2_48fb_acfd9cb32428e910" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1023 1 0 "0bbfb488_9723_4a08_9b90171dbec6117a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetSerialNumber(deviceNumber, serialNumber); // }} "" // {{ 1024 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_1EA05DE4F8124126A4D3AD21F777FDD5 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1025 1 0 "19daab0c_59b0_4af8_a070bee39acf20c1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1026 1 0 "36eff987_ca22_4543_b44d6850f61b8582" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1027 1 0 "311e5a04_1ac3_443c_bdc51c5cdc4c44f0" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, serialNumber, Translate(""), Translate(""), id); // }} "" // {{ 1028 1 0 "76095f27_e37d_48e3_9954449dd9f74461" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1029 1 0 "fc3d5010_5690_4586_93800b219bef7c38" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1030 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1031 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerParameter") { // }} "" // {{{ 1032 1 0 "f3888a0b_86ea_4c4a_891e1755a6e78556" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1033 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_181E92C6D8E348c483BFCD0F16D88AB3 ; err.Clear(); // }} "" // {{ 1034 1 0 "df61bf49_7625_493f_ad06bbdbb36b494a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1035 1 0 "e993ed67_92ed_4c85_bd33f90aac53dfb0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetShakerParameter(deviceNumber, o_stepReturn2, o_stepReturn3); // }} "" // {{ 1036 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_181E92C6D8E348c483BFCD0F16D88AB3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1037 1 0 "accda6cd_138b_411c_bf3af9b152e986c8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1038 1 0 "58168eb3_74dc_4679_84d0f3f858d8eb55" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1039 1 0 "6efd49bf_48c7_437b_8fee57487345eaee" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1040 1 0 "b8259158_e5b5_4316_b62d2ceec557fb5d" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1041 1 0 "cc296349_cba3_41d9_b3e6b0855f734e4f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1042 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1043 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetShakerSpeed") { // }} "" // {{{ 1044 1 0 "e1c29a26_0656_46e3_b0a412143047bd26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1045 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C342F6DC97064debAC7DC78E54AD4F78 ; err.Clear(); // }} "" // {{ 1046 1 0 "8d513473_33ad_47dc_a8c3ed9799195b58" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1047 1 0 "d7148e56_7fcc_471d_8c3a7abc2847db7e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetShakerSpeed(deviceNumber, o_stepReturn2); // }} "" // {{ 1048 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C342F6DC97064debAC7DC78E54AD4F78 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1049 1 0 "ee004b75_f488_428e_99b02212bd478984" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1050 1 0 "3be88632_8bc5_4dba_86df24bdde6a39e8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1051 1 0 "41ba2513_e3c2_485c_821198419c3fe286" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1052 1 0 "a7c9c998_2bfe_4739_88c85d0ae9b0bd68" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1053 1 0 "65c40b78_e5c6_4378_a63c025ed0a43492" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1054 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1055 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTempParameter") { // }} "" // {{{ 1056 1 0 "09fb30ea_33e9_486d_96945af4798859ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1057 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C16E1CF8298042f0A01D1040DC911015 ; err.Clear(); // }} "" // {{ 1058 1 0 "4f9610c2_a783_4586_b1725e8904e476cc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1059 1 0 "eea3f2ce_93c1_4efd_be90b89d775a6867" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::GetTempParameter(deviceNumber, o_stepReturn2, o_stepReturn3, o_stepReturn4); // }} "" // {{ 1060 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C16E1CF8298042f0A01D1040DC911015 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1061 1 0 "ad6b8668_d455_40f9_9e64eac973c2db0c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1062 1 0 "db6f5f33_dff3_46f7_aa479144fecfba9c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1063 1 0 "81e3038e_a3ea_4252_a09b14cd3de477a3" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, o_stepReturn3, Translate(""), id); // }} "" // {{ 1064 1 0 "3f503a0a_a8db_4b7a_b0690a720a1d0493" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1065 1 0 "ee84f447_8fdd_4199_ba63432775dcf70e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1066 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1067 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperature") { // }} "" // {{{ 1068 1 0 "01d1add6_c167_4137_8f0c285cd6ad9bed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1069 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_14A2AAD200434d69970AC483BD08B64F ; err.Clear(); // }} "" // {{ 1070 1 0 "a54c8c75_1172_46d3_a61e71fe7fea812d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1071 1 0 "4187d732_0d13_4590_99fa08572e32e2f9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperature(deviceNumber, o_stepReturn2); // }} "" // {{ 1072 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_14A2AAD200434d69970AC483BD08B64F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1073 1 0 "e9f473e4_b341_4e28_8c5c444235409181" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1074 1 0 "f124fc79_0893_4e43_a35ce5c0273e16ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1075 1 0 "234847f1_2f0a_4e64_856b9edefcebb425" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1076 1 0 "75eb26cd_647c_4b8b_9de07d504cb88023" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1077 1 0 "5b7c0a1f_be57_41ac_b1765918d4e7708f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1078 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1079 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_GetTemperatureState") { // }} "" // {{{ 1080 1 0 "82a233ab_0392_4ebb_9a809d80aae38e44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1081 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_50485390A50647818ED2D3934FBC87E3 ; err.Clear(); // }} "" // {{ 1082 1 0 "19a32be3_7476_425d_a82433aead4637cf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1083 1 0 "7f7e0bd7_bea9_474d_92bce5d21da9a2a6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::GetTemperatureState(deviceNumber, o_stepReturn2); // }} "" // {{ 1084 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_50485390A50647818ED2D3934FBC87E3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1085 1 0 "81e1a27f_16e2_44ed_b7cd3b11ac866a97" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1086 1 0 "e53c9d52_7503_45f4_a5bcb3a1cb80bf77" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1087 1 0 "31a69f44_1a59_49ce_a78763f3aa936042" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, o_stepReturn2, Translate(""), Translate(""), id); // }} "" // {{ 1088 1 0 "32f266c7_dd2b_45a2_92eb3a1e48157837" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1089 1 0 "d72c6202_9240_4144_80f50ee79d52d259" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1090 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1091 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SendFirmwareCommand") { // }} "" // {{{ 1092 1 0 "11546c32_6ddd_4250_9b8750c9679e5b79" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1093 1 0 "06688598_f10e_41e9_8a2c6d3dff7b7aae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("command"), command); // }} "" // {{{ 1094 1 0 "15a58509_ec93_4677_b1858cadeac42d10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetStringProperty(objJSONFromServer, Translate("parameter"), parameter); // }} "" // {{ 1095 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_84EE5E4228B140f599748D1271CBB0F3 ; err.Clear(); // }} "" // {{ 1096 1 0 "84b0a5f3_5e82_4770_81998131d1071a7a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1097 1 0 "b63ba349_9a52_43ca_aec17e40c17d231b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SendFirmwareCommand(deviceNumber, command, parameter); // }} "" // {{ 1098 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_84EE5E4228B140f599748D1271CBB0F3 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1099 1 0 "f46c286b_9141_4717_ac23994f8defc186" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1100 1 0 "17f0f127_1d1a_4a85_a301da7690437397" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1101 1 0 "8b5634c2_e1da_41d3_83c57142f4cae999" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1102 1 0 "0420109d_c869_4657_864ca128c325426b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1103 1 0 "f547e301_0505_4366_8b2d3514ee3a7602" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1104 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1105 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetPlateLock") { // }} "" // {{{ 1106 1 0 "927ddf67_5dbd_432b_b8cf6117a3109b06" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1107 1 0 "a3eee1ac_7024_473b_a6eb8a2e9b461a66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("plateLock"), plateLock); // }} "" // {{ 1108 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 ; err.Clear(); // }} "" // {{ 1109 1 0 "a9029174_cbad_4f9c_9ca65c3b9497d605" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1110 1 0 "27d47e3b_913b_4a0e_bdb50007a0e39d84" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::SetPlateLock(deviceNumber, plateLock); // }} "" // {{ 1111 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_0B4D6E9CB5BE4050BA49D894F0685FF4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1112 1 0 "bb948751_9e18_4aa8_b86a3dd67208967f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1113 1 0 "b56b5fdf_2865_42da_a53e7fa445218646" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1114 1 0 "945560ed_40bf_44a9_851fead4c1943f9f" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1115 1 0 "3284ab29_5b6c_485d_883700cbef53cd22" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1116 1 0 "f954c8d6_c617_4f39_8c4d4108b70983c9" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1117 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1118 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetShakerParameter") { // }} "" // {{{ 1119 1 0 "8a0e14c1_f6c6_4fb8_94094498cccd7991" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1120 1 0 "1810a83f_3fc2_4c49_9d5502fbdfc743e6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingDirection"), shakingDirection); // }} "" // {{{ 1121 1 0 "c3053579_8645_474f_8c05459eed975362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingAccRamp"), shakingAccRamp); // }} "" // {{ 1122 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_451FDB1A50FF4e028560DB4C34C125F1 ; err.Clear(); // }} "" // {{ 1123 1 0 "d7ecab6c_533b_4d98_97e3fd144551f6d2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1124 1 0 "77463ac5_e629_4772_98004edef4016a6a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetShakerParameter(deviceNumber, shakingDirection, shakingAccRamp); // }} "" // {{ 1125 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_451FDB1A50FF4e028560DB4C34C125F1 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1126 1 0 "96075a25_a9b4_48ec_b53a90612b9d42a8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1127 1 0 "becef32e_bdce_4400_816bdb42c51ffae8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1128 1 0 "5ed72ec4_1b60_4258_969b44c995450ec1" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1129 1 0 "9df0d7f9_6261_48d0_835bb8d96605780a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1130 1 0 "eb29db49_9fc1_4756_b3925dca07e4ed77" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1131 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1132 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetSimulation") { // }} "" // {{{ 1133 1 0 "941f9e19_ca94_4ede_9719205aeb876593" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("simulate"), simulate); // }} "" // {{ 1134 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B1644184A5B84b0aBDBB58353FF442D0 ; err.Clear(); // }} "" // {{ 1135 1 0 "c8de89fe_7a53_4c03_bbe8ba85302b57ea" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1136 1 0 "41b0c1a2_60aa_4f16_8901c300e9a3dc14" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetSimulation(simulate); // }} "" // {{ 1137 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B1644184A5B84b0aBDBB58353FF442D0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1138 1 0 "b9ad26f0_da3e_44e9_a29e1fa4b10f92f4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1139 1 0 "af12d4c1_56d9_42d5_a4d2ee120cbe9c7b" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1140 1 0 "2e7a9d5f_51df_4c49_bb1986da7e14cd48" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1141 1 0 "e0ca6d1b_6a5c_4cde_98a7b882cdaa0b04" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1142 1 0 "cce7b3b3_ed98_45ba_8d1d8258ccbfe92d" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1143 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1144 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetTempParameter") { // }} "" // {{{ 1145 1 0 "99447b6e_9293_483d_bbd7ddee96870904" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1146 1 0 "f55d7581_a005_45e4_9b3d7f7473323e6d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("startTimeout"), startTimeout); // }} "" // {{{ 1147 1 0 "7192db12_8543_4c8b_81b98b57ce21118d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("toleranceRange"), toleranceRange); // }} "" // {{{ 1148 1 0 "8f6d922f_f2ae_43c6_8682df15e6b7c07c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatProperty(objJSONFromServer, Translate("securityRange"), securityRange); // }} "" // {{ 1149 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9BC45EC7569E460fB8410F0E23AB29AF ; err.Clear(); // }} "" // {{ 1150 1 0 "aecc8a3f_302a_4fd4_85780994769765dc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1151 1 0 "57eb738a_6eb2_4f04_b25bd7f7f64a8179" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetTempParameter(deviceNumber, startTimeout, toleranceRange, securityRange); // }} "" // {{ 1152 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9BC45EC7569E460fB8410F0E23AB29AF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1153 1 0 "8a17da2c_6b74_4513_a05e482acef68552" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1154 1 0 "56ff8462_120d_4d1f_94aebdd697b832ba" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1155 1 0 "90b7ea0e_b0c0_4d37_a209c1a5b49a5a7a" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1156 1 0 "3acf3ca1_7e3a_4543_ba155feae68056de" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1157 1 0 "af7d40bc_03c3_449c_a850d0f10caafcf4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1158 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1159 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_SetUSBTrace") { // }} "" // {{{ 1160 1 0 "0691ecbd_49b4_4590_91d60e614290ec34" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("trace"), intTrace); // }} "" // {{ 1161 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_FE6D15E135D24fd7A06908E89474B650 ; err.Clear(); // }} "" // {{ 1162 1 0 "96a3924c_7b8c_441f_b05115a7adf0396f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1163 1 0 "24723a79_741b_46be_830fe654c08d6d1f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::SetUSBTrace(intTrace); // }} "" // {{ 1164 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_FE6D15E135D24fd7A06908E89474B650 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1165 1 0 "29acd4b5_13fb_40fe_bc6d971aa6f115a7" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1166 1 0 "dee61c46_d8ae_4b5c_b86f3aefb401636c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1167 1 0 "cda0d06f_dce0_47ad_bbb419c58aba260e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1168 1 0 "e4c2a97d_21e3_4f37_8f443a35526b6a85" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1169 1 0 "1afb44d6_cfba_4f17_ba9aa93102410e48" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1170 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1171 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShaker") { // }} "" // {{{ 1172 1 0 "503e1c47_5f15_42bd_8eaad1057de68ef6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1173 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_02BDC1BFC12F4fafA3202E93EF422C02 ; err.Clear(); // }} "" // {{ 1174 1 0 "18981818_de5f_4fd3_b704a074fd37c9d8" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1175 1 0 "7c8a1d8e_30e9_4256_b5cf96d93ff3f7d3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShaker(shakingSpeed); // }} "" // {{ 1176 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_02BDC1BFC12F4fafA3202E93EF422C02 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1177 1 0 "6fa8ea83_c7bd_4b3e_81768063f8126364" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1178 1 0 "2d39afd4_04dd_4243_b88cc3d1eb981212" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1179 1 0 "ee8a0c42_ebe4_4f31_9fd526f4c0afdbf4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1180 1 0 "c0e8b81a_bb36_427c_8c38b82b1945b14b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1181 1 0 "523cbe66_22fd_4ddd_adf56a7e46dd92b8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1182 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1183 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartAllShakerTimed") { // }} "" // {{{ 1184 1 0 "db6b6c2e_da48_4c64_bdddc80ba5a28921" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1185 1 0 "f6f42906_5ded_4a05_8f9a11fac18f7f10" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1186 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90F21CFF24BE45c09A6A7000C5D99043 ; err.Clear(); // }} "" // {{ 1187 1 0 "84efe41c_f9b0_4304_896c8b308bb07e76" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1188 1 0 "428d423d_1825_472f_a3aa303d028d0659" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartAllShakerTimed(shakingSpeed, shakingTime); // }} "" // {{ 1189 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90F21CFF24BE45c09A6A7000C5D99043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1190 1 0 "367927ae_ba00_4d5a_b9d8f5f9b3d208c3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1191 1 0 "b5262842_c6b4_4edc_9a59816098368c71" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1192 1 0 "d73f1476_bf95_4d48_89849f295a9e4d0e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1193 1 0 "c92c0e53_ca7f_47e9_8ee67fafbbd6ec75" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1194 1 0 "e8c18774_db44_4a3c_9a1df80629a36d2b" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1195 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1196 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShaker") { // }} "" // {{{ 1197 1 0 "f958f5a5_d1c5_4e9e_9262e708f24940c8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1198 1 0 "2ce1189b_e54a_48c0_aafc2932409c0b9c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{ 1199 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_264F4A7DEA214bd38D410C3AE5CAF482 ; err.Clear(); // }} "" // {{ 1200 1 0 "7e6d8299_fab6_4435_8adf36d59ca04c7a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1201 1 0 "5fe75151_d308_441e_a049e85f45ca3966" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShaker(dispenseMode, shakingSpeed); // }} "" // {{ 1202 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_264F4A7DEA214bd38D410C3AE5CAF482 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1203 1 0 "64e95a28_a6b6_4e1b_825867f05118aebc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1204 1 0 "25553bc8_2d53_47af_af9e6ada77cb8dfe" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1205 1 0 "4b0b48f9_3855_4eab_8f22b0902846d750" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1206 1 0 "6f15d11b_2e0f_48bb_b6c0d4cfdc666828" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1207 1 0 "bf0ceeb0_1897_4363_895c76a5b7ea3ca5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1208 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1209 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartShakerTimed") { // }} "" // {{{ 1210 1 0 "858c7861_9fb0_490e_9646b9eb190706d2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1211 1 0 "327bd0c6_60a8_4fd1_9ef81e2a21d904a5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingSpeed"), shakingSpeed); // }} "" // {{{ 1212 1 0 "83a6d58d_c761_484f_871c9c2229a6d3d7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("shakingTime"), shakingTime); // }} "" // {{ 1213 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_29447729262E4e0f8B347F6640716D96 ; err.Clear(); // }} "" // {{ 1214 1 0 "08abdac2_e330_47c9_9b80d99dd0338c3d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1215 1 0 "22e55b69_c018_47f9_8e3ac169c190d2de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartShakerTimed(deviceNumber, shakingSpeed, shakingTime); // }} "" // {{ 1216 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_29447729262E4e0f8B347F6640716D96 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1217 1 0 "a26bca7d_b38c_4413_b61d3da3fdfb077b" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1218 1 0 "987a961a_097c_4b2b_a1f6ce2a63df6759" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1219 1 0 "f539df09_de1d_4fd8_9ac041897fab0333" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1220 1 0 "5939de60_ca1b_4c79_ad7eb228b0d60b48" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1221 1 0 "b017da92_d20f_43bf_b5e0430ee567c9b5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1222 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1223 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StartTempCtrl") { // }} "" // {{{ 1224 1 0 "dc338e01_6b43_4fe3_bda98d2b0a1a65e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{{ 1225 1 0 "04239a09_93a5_4f75_80f95d178bdf9cea" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("temperature"), temperature); // }} "" // {{{ 1226 1 0 "0387745b_87be_4ec6_912b0b4decaa257b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("waitForTempReached"), waitForTempReached); // }} "" // {{ 1227 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_764F491C76DA445383E5490AB126ADB4 ; err.Clear(); // }} "" // {{ 1228 1 0 "0e03f515_b847_4dfd_8aa52f8b5f1135cd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1229 1 0 "4ba75dd5_935f_4f2c_a15605eafa47b808" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StartTempCtrl(deviceNumber, temperature, waitForTempReached); // }} "" // {{ 1230 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_764F491C76DA445383E5490AB126ADB4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1231 1 0 "e7b29c37_b63e_40fe_a3663d4eb8c7dc93" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1232 1 0 "0f035a64_bd7b_4737_80275be46bdab48c" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1233 1 0 "bfde731d_b581_4488_b4cb7f4873675d7c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1234 1 0 "16cf11c1_1e3a_4e5c_9a8b481ad0f6be5f" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1235 1 0 "e1026c7e_66b7_46eb_bf947e19313456ef" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1236 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1237 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopAllShaker") { // }} "" // {{ 1238 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D ; err.Clear(); // }} "" // {{ 1239 1 0 "7ca275a0_4aed_4b67_9535646b2074ebaf" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1240 1 0 "d112da95_7f27_47a3_9e24bc801bcc9afc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{ 1241 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_9B15E9F5E4BF4c8aB941EFAA3E5E122D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1242 1 0 "e87b7e6f_2610_44dd_b7d0262ac681e308" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1243 1 0 "089afd30_5056_443f_ba9176d0f19dc0ce" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1244 1 0 "5706daca_363f_417f_9103f7ddd16c1444" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1245 1 0 "779d2d0c_e2ec_46d6_a73cdbff8083d49c" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1246 1 0 "0420ee37_aa3a_4c0c_ad3b8304acc417fb" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1247 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1248 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopShaker") { // }} "" // {{{ 1249 1 0 "1cdead0d_9944_446b_bd59d491b15242b5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1250 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_72372634E1DD46ff8400C9F993FCEFB9 ; err.Clear(); // }} "" // {{ 1251 1 0 "d02dc65a_05f9_4938_90df6cee1381d4dd" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1252 1 0 "75688e3b_5ed1_45d1_a4d8344ca19c3fd3" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopAllShaker(); // }} "" // {{ 1253 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_72372634E1DD46ff8400C9F993FCEFB9 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1254 1 0 "b5ede424_b7f1_4369_8610d54e626df620" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1255 1 0 "e30a5e2a_77e4_4fee_8d3eb484d6b9ea74" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1256 1 0 "6ffd1f39_ec63_4f9c_a7687447aff79f80" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1257 1 0 "f235ec09_59d8_464c_91b83dfa6335c346" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1258 1 0 "37106583_e900_42f4_b2eee826b4977e39" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1259 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1260 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_StopTempCtrl") { // }} "" // {{{ 1261 1 0 "b16ab946_2ba9_4900_bd6f9ede31edf6ef" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1262 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_B5957B02990845739642D8C604B0B582 ; err.Clear(); // }} "" // {{ 1263 1 0 "e22c8ca0_6e3f_454b_8628dd4417a6fd78" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1264 1 0 "3a29dc5b_78cc_4ed1_ab9cd631701715e4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::StopTempCtrl(deviceNumber); // }} "" // {{ 1265 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_B5957B02990845739642D8C604B0B582 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1266 1 0 "c8c0c20e_b866_451e_9ecd69fdb0b0ed14" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1267 1 0 "c879beb6_9c82_4bf7_a1f57c52bba92317" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1268 1 0 "11f3231a_40df_4c14_92585ab8016165e5" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1269 1 0 "d13e1002_1069_4028_add2d80114e0b28b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1270 1 0 "6b3601b1_b43d_48e4_bd5a7395c2120796" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1271 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1272 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_Terminate") { // }} "" // {{ 1273 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_919FCF7F89804c398972DAFE2605D286 ; err.Clear(); // }} "" // {{ 1274 1 0 "e2f732a1_e433_4ab6_b3bdac9a4ca5bd19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1275 1 0 "910932e3_2b76_41cf_9dccecb799f2d649" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHamHeaterShaker::Terminate(); // }} "" // {{ 1276 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_919FCF7F89804c398972DAFE2605D286 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1277 1 0 "44edbcbd_1012_457f_848d11750abdfeb2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1278 1 0 "bd2ed37a_28c3_43fb_a579c2e4f85c9d19" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1279 1 0 "4edde3c1_4f65_4403_a54985d84f6d80f7" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1280 1 0 "10834573_65bc_44bd_8d898126f97d2ae0" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1281 1 0 "c3db13b0_01f9_4e6c_9258eef29b3e9a4e" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1282 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1283 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForShaker") { // }} "" // {{{ 1284 1 0 "87872be5_4e84_4b7b_98a3e7147a66f6a1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1285 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 ; err.Clear(); // }} "" // {{ 1286 1 0 "d5b14e5b_7d51_414e_af4dfb664c89e0c1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1287 1 0 "2eff956e_28cc_4094_8285d5ed00125a55" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForShaker(deviceNumber); // }} "" // {{ 1288 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ED2BDC2CA5D245ccB96A6EDA80EBF4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1289 1 0 "d60c31db_3b59_4498_8c47e4d2612443a4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1290 1 0 "a4b77c48_e39f_4f25_a624252a538e8407" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1291 1 0 "96b99051_5c80_421c_a02e0bd238da1847" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1292 1 0 "8aeec4cd_2275_4ee8_b72f23d021255efe" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1293 1 0 "cf921823_86d6_4065_85c67f7d9986cbbc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1294 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1295 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "HHS_WaitForTempCtrl") { // }} "" // {{{ 1296 1 0 "881e7d69_50e3_4e42_89eafece562ac009" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("deviceNumber"), deviceNumber); // }} "" // {{ 1297 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_088C7630997A4749A400740DA66CBA0C ; err.Clear(); // }} "" // {{ 1298 1 0 "ffa29d3e_8248_4266_80661c264964da5f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{{ 1299 1 0 "421a52eb_128a_4b6b_8baafb6548b66bd8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLHamHeaterShaker::WaitForTempCtrl(deviceNumber); // }} "" // {{ 1300 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_088C7630997A4749A400740DA66CBA0C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1301 1 0 "8a92c1f7_b614_4c09_b5ada70145cb0a7c" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1302 1 0 "45dc6d65_61ca_4b9a_ab05d7df9bec2b13" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1303 1 0 "aeb529e0_2eaf_4686_9528342b58318a5d" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1304 1 0 "73b4c109_8b20_4c11_853d009d28548a83" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1305 1 0 "8316a1bf_d774_47f2_a3b870c92be1c138" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1306 1 0 "19cfb02b_845f_4bc4_83fd05266ea128b4" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1307 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1308 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1309 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "CORE96WashEmpty") { // }} "" // {{{ 1310 1 0 "88f95bdd_c2c5_4856_91e5f47f7431bdaf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("refillAfterEmpty"), refillAfterEmpty); // }} "" // {{{ 1311 1 0 "d7a05a26_0b59_478a_a85f308173caf693" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1WashLiquid"), chamber1WashLiquid); // }} "" // {{{ 1312 1 0 "8b1bd108_2b5a_4a2d_ace7b87920eae1b9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber1LiquidChange"), chamber1LiquidChange); // }} "" // {{{ 1313 1 0 "d651fbf5_a4b8_490b_b869269338ccfcfa" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2WashLiquid"), chamber2WashLiquid); // }} "" // {{{ 1314 1 0 "79b1a205_d988_4171_9e1fb28ba362329b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetIntegerProperty(objJSONFromServer, Translate("chamber2LiquidChange"), chamber2LiquidChange); // }} "" // {{ 1315 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EE8804FCDC214a06935DD0F4830020DB ; err.Clear(); // }} "" // {{ 1316 1 0 "3fc645b3_f504_4b5e_93481425adf459b4" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 0; // }} "" // {{ 1317 1 0 "123d7b87_745f_4511_a797d08711d13361" "ML_STAR:{19AC7FF8-2C7A-4555-AE3B-3A8CB9466EF3}" { variable arrRetValues[]; arrRetValues = ML_STAR._19AC7FF8_2C7A_4555_AE3B_3A8CB9466EF3("123d7b87_745f_4511_a797d08711d13361"); // Head96EmptyWasher } // }} "" // {{ 1318 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EE8804FCDC214a06935DD0F4830020DB : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 1319 1 0 "ab84bcc8_3da0_446b_84689087cc7a392f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = 1; // }} "" // {{ 1320 1 0 "3f9d8157_5931_4cda_afa101739a3a0f82" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 1321 1 0 "dde0a413_b493_4b17_94990d1d5f2e2b2e" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendHHSReturnToServer(commandFromServer, o_stepReturn, Translate(""), Translate(""), Translate(""), id); // }} "" // {{ 1322 1 0 "0210f13c_1bdb_445c_ab80996c9de11cae" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1323 1 0 "b4f2b9ce_c69a_459e_ac20bf03c1ff08cf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1324 1 0 "1e8b0bba_85dd_48f7_a69e247338f695c8" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 1325 1 0 "1a2f39c8_cc2e_4c18_bcae9dc5be30d2e2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONFromServer); // }} "" // {{ 1326 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1327 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (commandFromServer == "end") { // }} "" // {{{ 1328 1 0 "6db67a5a_6aa2_4087_875823acfff0fac4" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Good Bye!")); // }} "" // {{ 1329 1 0 "4c7e40d6_02a6_451d_b28230ec71e40ce1" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1330 1 0 "05e3e61b_1dfb_4c6d_a8dbb000a5bbb5a3" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1331 1 0 "17c082ea_8224_4d43_86dc6db5af649261" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 1332 1 0 "b573bcbb_6bb4_4b28_b1ca14b0d3cad22e" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1333 1 0 "6fb90145_24c3_46ba_88b839e0215d0bf2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{ 2 "AutoExitBlock" "" STAR_OEM_TOOLKIT::_ExitLibrary(); STAR_OEM_TOOLKIT_PH::_ExitLibrary(); // }} "" // {{{ 5 "main" "End" } } // }} "" // $$author=stefa$$valid=0$$time=2022-10-23 19:48$$checksum=a76ce958$$length=082$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~HxEF83.sub ================================================ // {{{ 2 "SubmethodForwardDeclaration" "" private function ArrayToString( variable & i_array[], variable & o_str ) void ; private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void ; private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void ; private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void ; private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void ; private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepId ) void ; function SendTextMessageToServer( variable str ) void ; private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void ; private function waitForGUItoContinue( ) variable ; function OnAbort( ) void ; // }} "" // {{{ 5 "OnAbort" "Begin" function OnAbort( ) void { // }} "" // {{ 5 "OnAbort" "InitLocals" // }} "" // {{{ 1484 1 0 "c8aa765a_4840_468a_9e928b44fa79d891" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::Release(objHttp); // }} "" // {{{ 5 "OnAbort" "End" } // }} "" // {{{ 5 "SendTextMessageToServer" "Begin" function SendTextMessageToServer( variable str ) void { // }} "" private object objJSONObject; private variable strJSON; // {{ 5 "SendTextMessageToServer" "InitLocals" // }} "" // {{{ 1452 1 0 "9d5f9d4a_c104_4b47_964b6d97f981a71e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONObject); // }} "" // {{{ 1453 1 0 "d0a04705_1adc_4919_b95168834c89f4de" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("command"), Translate("message")); // }} "" // {{{ 1454 1 0 "7b9a6cd1_3eee_4085_b3f9548e43fc3424" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONObject, Translate("text"), str); // }} "" // {{{ 1455 1 0 "6a1c53cf_65ea_4f53_aa2e9111890fecf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONObject, strJSON); // }} "" // {{{ 1456 1 0 "bee8c148_b3ea_490b_8d93d8ed5f24939f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONObject); // }} "" // {{{ 1457 1 0 "b965a2fd_f821_4400_b4c777f558ed0772" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendTextMessageToServer" "End" } // }} "" // {{{ 5 "waitForGUItoContinue" "Begin" private function waitForGUItoContinue( ) variable { // }} "" private variable loopCounter1; private variable serverResponse; private timer timer1; // {{ 5 "waitForGUItoContinue" "InitLocals" // }} "" // {{ 1465 1 0 "73328607_d06a_4d7d_8a5df64da06a1bde" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" serverResponse = Translate(""); // }} "" // {{{ 1466 1 0 "2342f8b3_4765_4edc_9fb9f46cbb1fd20b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" SendTextMessageToServer(Translate("Waiting for server instructions...")); // }} "" // {{{ 1467 1 0 "216e1039_788e_4830_8588933e6c542ba1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Waiting for server instructions...."), Translate("")); // }} "" // {{ 1468 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { loopCounter1 = 0; while (1 == 1) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1469 1 0 "5f15547c_3178_4f78_b5fea96f6a1c563b" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.1) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1470 1 0 "cd67277b_4386_4862_8429008a00601693" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{{ 1471 1 0 "6ec592d0_fe02_41a9_8503db5ccf0e5544" "{C1F3C015-47B3-4514-9407-AC2E65043419}" serverResponse = HSLHttp::HttpGET(objHttp, Translate("http://localhost:3221"), Translate("")); // }} "" // {{ 1472 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (serverResponse != "") { // }} "" // {{ 1473 1 0 "b1e2e308_ee78_46d0_8a6832649536045e" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1474 1 0 "c503da39_3ef9_42d6_884bb194cc028ecb" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1475 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 == 300) { // }} "" // {{ 1476 1 0 "19e5c8f7_a1a9_4348_aa41a572942db630" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1477 1 0 "6be46368_bb3e_4ad8_82647d6f52af8c9b" "{B31F3533-5D80-11d4-A5EB-0050DA737D89}" break; // }} "" // {{ 1478 1 0 "22cefea8_c8d5_41fb_be266dca75060474" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1479 1 0 "8951a436_faf4_45df_a268dbb7ddb58c29" "{B31F353E-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.SetTimer(0.9) ) { MECC::RaiseRuntimeErrorEx(-1355939584, MECC::IDS::stepNameTimerStart, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1480 1 0 "52bb524e_27b1_4bbe_afcf26453d9eb66f" "{B31F353F-5D80-11d4-A5EB-0050DA737D89}" if( 0 == timer1.WaitTimer(hslFalse, hslFalse) ) { MECC::RaiseRuntimeErrorEx(-1339162368, MECC::IDS::stepNameTimerWait, MECC::IDS::errorStepFailed, "", "HxMetEdCompCmd"); } // }} "" // {{ 1481 1 0 "29dd5a3e_097e_4463_9c0cf08cd71770a2" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1482 1 0 "809789b0_bd70_4c1f_b0d808ce120b1d99" "{9EC997CD-FD3B-4280-811B-49E99DCF062C}" return (serverResponse); // }} "" // {{{ 5 "waitForGUItoContinue" "End" } // }} "" // {{{ 5 "SendStepReturnToServer" "Begin" private function SendStepReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer" "InitLocals" // }} "" // {{{ 1424 1 0 "2520bd9f_739d_4111_a27d89f8f73ec39e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 1425 1 0 "aa6010ec_0628_49d5_a87e016b4a4fc7f6" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 1426 1 0 "a97c5efa_0ce4_4358_9c51c1893f526b9e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 1427 1 0 "deceb871_e830_4b14_86e626f745ef083a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 1428 1 0 "00afb5c2_b5db_4458_866a13b6cb332b68" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 1429 1 0 "e52bbd02_b31d_4278_a0f45991eab77d3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 1430 1 0 "19f99698_3777_4dcf_9fc765c3f221df4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 1431 1 0 "329f8b9b_0798_44f8_9ee6b65ec58b0c44" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 1432 1 0 "7728ac0d_8630_4f61_94af076392758ae1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 1433 1 0 "70d261f2_edc4_49a0_a5a074cd5ab92b74" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 1434 1 0 "ee0dd62d_582f_4171_b08e37f6106d9b38" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer" "End" } // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "Begin" private function BuildTempSequenceFromPositions( variable strPositions, sequence & o_seq ) void { // }} "" private variable n; private variable loopCounter1; private variable strSinglePosition; private variable arrayOfPositions[]; private variable arraySinglePosition[]; private variable labwareID; private variable positionID; // {{ 5 "BuildTempSequenceFromPositions" "InitLocals" { sequence __temp; o_seq = __temp; } // }} "" // {{ 1371 1 0 "d9022e13_e502_4969_a8ee79484e990801" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arrayOfPositions.SetSize(0); // }} "" // {{{ 1372 1 0 "3e178082_8579_435f_a5db4481bb789d9b" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strPositions, Translate(";"), arrayOfPositions, 0); // }} "" // {{ 1373 1 0 "5d735f26_db1b_4bea_9ee405f4167bb99f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" n=arrayOfPositions.GetSize(); // }} "" // {{{ 1374 1 0 "f497f24b_fd39_417d_8703c0d54662309f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqRemoveAll(o_seq); // }} "" // {{ 1375 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1376 1 0 "fd645546_0433_46a0_8619026e338529fd" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" arraySinglePosition.SetSize(0); // }} "" // {{ 1377 1 0 "91aeb0c4_3176_4356_a19a1027bcdb0af3" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" strSinglePosition=arrayOfPositions.GetAt(loopCounter1-1); // }} "" // {{{ 1378 1 0 "c2b42369_7829_4c62_b58880fce7867995" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" StrTokenize(strSinglePosition, Translate(","), arraySinglePosition, 0); // }} "" // {{ 1379 1 0 "016f61c5_fd76_4c74_903df10a03070f7b" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" labwareID=arraySinglePosition.GetAt(1-1); // }} "" // {{ 1380 1 0 "886fc872_7c3a_4366_959db6d5f265ed7c" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" positionID=arraySinglePosition.GetAt(2-1); // }} "" // {{{ 1381 1 0 "766a54b4_4c5b_4991_9d8ceea62d26b216" "{C1F3C015-47B3-4514-9407-AC2E65043419}" SeqAdd(o_seq, labwareID, positionID); // }} "" // {{ 1382 1 0 "b3c5b47a_24b4_41cc_91d3efba82df56d3" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1383 1 0 "0003c6e9_5b43_438d_bc93be342c3c6b55" "{B31F353A-5D80-11d4-A5EB-0050DA737D89}" o_seq.SetCurrentPosition(1); // }} "" // {{{ 5 "BuildTempSequenceFromPositions" "End" } // }} "" // {{{ 5 "StrTokenize" "Begin" private function StrTokenize( variable strIn, variable strDelimiter, variable & arrTokens[], variable bAttendEmptyTokens ) void { // }} "" private variable strEdit; private variable posLast; private variable strToAdd; private variable posCurrent; // {{ 5 "StrTokenize" "InitLocals" // }} "" // {{ 1459 1 0 "500afe4c_98a8_4117_8c279b9994d0b626" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posCurrent = -1; // }} "" // {{ 1460 1 0 "6a0bd918_2fda_4e4c_a680454ce2576168" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" posLast = -1; // }} "" // {{ 1461 1 0 "f65ed315_68ed_4ec0_ba0b3c217e692b25" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strToAdd = ""; // }} "" // {{ 1462 1 0 "9476acee_e5bb_43d1_bbec232ed01bae08" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strEdit = strIn; // }} "" if( StrGetLength(strEdit) == 0 || StrGetLength(strDelimiter) == 0 ) return; posLast = StrGetLength(strEdit); posCurrent = StrFind(strEdit, strDelimiter); while (-1 != posCurrent && posLast > 0) { //get tokens before next delimiter char strToAdd = StrLeft(strEdit, posCurrent); StrTrimRight(strToAdd, ""); StrTrimLeft (strToAdd, ""); //add token to our output list if( StrGetLength(strToAdd) > 0 ) { arrTokens.AddAsLast(strToAdd); // Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } else { if( bAttendEmptyTokens )// empty string should also be added { arrTokens.AddAsLast(strToAdd); //Trace(GetFunctionName(), " adding string to output list: $", strToAdd, "$", "" ); } } //prepare next loop by removing obsolete characters strEdit = StrRight(strEdit, posLast - posCurrent - StrGetLength(strDelimiter) ); //Trace(GetFunctionName(), " next string = ", strEdit ); //find next "non-delimiter" posCurrent = StrFind(strEdit, strDelimiter); posLast = StrGetLength(strEdit); //Trace(GetFunctionName(), " next pos = ", posCurrent ); }//end while //no delimiter left //add the last part of the string to our output list if (-1 == posCurrent)// && posLast > 0 { if( posLast == 0 && !bAttendEmptyTokens ) return; StrTrimRight(strEdit, ""); StrTrimLeft (strEdit, ""); //Trace(GetFunctionName(), " no delimiter left - adding string to output list: $", strEdit, "$", "" ); arrTokens.AddAsLast(strEdit); } // {{{ 5 "StrTokenize" "End" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "Begin" private function BuildArrayOfVolumesForChannels( variable strChannels, variable & o_arrayOfVolumes[] ) void { // }} "" private variable numOfVolumes; private variable numOfChannelsInVariable; private variable n; private variable loopCounter1; private variable arrSize; private variable loopCounter3; private variable strKeyName; // {{ 5 "BuildArrayOfVolumesForChannels" "InitLocals" o_arrayOfVolumes.SetSize( 0); // }} "" // {{ 1345 1 0 "69288f91_eabd_4d15_af5361636ffacbf6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" strKeyName = Translate("volumes"); // }} "" // {{ 1346 1 0 "bf4c1108_6751_41ee_8d3d3b1a9418548f" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_arrayOfVolumes.SetSize(0); // }} "" // {{{ 1347 1 0 "a9cfa743_a769_46a3_b8d7e45a67b3d297" "{C1F3C015-47B3-4514-9407-AC2E65043419}" arrSize = HSLJsonLib::GetArrayLength(objJSONFromServer, strKeyName); // }} "" // {{ 1348 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (arrSize > 0) { // }} "" // {{ 1349 1 0 "594bebbb_0d54_4893_b20d783de743dd44" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1350 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter3 = 0; loopCounter3 < arrSize;) { loopCounter3 = loopCounter3 + 1; // }} "" // {{{ 1351 1 0 "3bfc9004_2595_4917_b4edcdceed06f518" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetFloatArrayElement(objJSONFromServer, strKeyName, loopCounter3, v); // }} "" // {{ 1352 1 0 "6be31b23_f55d_4d15_be6abc9ee4bef664" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" Trace("Volume received=", v); // {{ 1354 1 0 "00de6afc_bb0d_462a_9dc2b92f146c65b5" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1355 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } else { // }} "" // {{ 1356 1 0 "4a4891b3_f877_4b14_85196b7e820554b2" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1357 1 0 "22c7c768_33c4_4975_909e9586375bfe8c" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" JSON_GetFloatValue(strKeyName, v); // }} "" // {{ 1358 1 0 "4e01e62a_13a2_408e_9fbfb2300d5996ed" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 1359 1 0 "b87c9973_c0d7_4ea7_a2c09b87b361f56a" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1360 1 0 "cc565f65_a92a_43ef_9c052b7f5632aca5" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" numOfVolumes=o_arrayOfVolumes.GetSize(); // }} "" // {{{ 1361 1 0 "e49355fb_3fe6_4c8d_930870416e36b708" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numOfChannelsInVariable = StrGetLength(strChannels); // }} "" // {{ 1362 1 0 "804bc477_e950_4a14_af5f667c73cf5176" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{ 1363 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (numOfVolumes < numOfChannelsInVariable) { // }} "" // {{ 1364 1 0 "2e73355c_8b11_4423_b345807cae9d5db8" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" n = numOfChannelsInVariable - numOfVolumes; // }} "" // {{ 1365 1 0 "53a650d8_2fc1_4c5b_bd19eda433c2a81a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" v = o_arrayOfVolumes.ElementAt( numOfVolumes -1); // }} "" // {{ 1366 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < n;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1367 1 0 "cd047b15_6a02_40f1_adfb116f6bf5d763" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_arrayOfVolumes.AddAsLast(v); // }} "" // {{ 1368 1 0 "7b61dafe_a658_4913_a69fbb4439fcf8d7" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 1369 1 0 "b237e1a1_c3e7_4ccb_95cf7fe85cb613a8" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "BuildArrayOfVolumesForChannels" "End" } // }} "" // {{{ 5 "ArrayToString" "Begin" private function ArrayToString( variable & i_array[], variable & o_str ) void { // }} "" private variable arraySize; private variable loopCounter1; // {{ 5 "ArrayToString" "InitLocals" o_str = 0; // }} "" // {{ 1335 1 0 "1a220255_6ba4_40fb_be39a6a2f4e0065f" "{72EACF88-8D49-43e3-92C8-2F90E81E3260}" arraySize=i_array.GetSize(); // }} "" // {{ 1336 1 0 "f821c4ff_f1a2_4ad7_9bd77dd8652567cb" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_str = Translate(""); // }} "" // {{ 1337 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < arraySize;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 1338 1 0 "afd84a84_8330_46e7_8308e16b5caa05e9" "{67A8F1C9-6546-41e9-AD2F-3C54F7818853}" v=i_array.GetAt(loopCounter1-1); // }} "" // {{{ 1339 1 0 "77436fd3_3c87_4f09_9a89259b15ef5bf5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, v); // }} "" // {{ 1340 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (loopCounter1 < arraySize) { // }} "" // {{{ 1341 1 0 "d14fd31e_5de8_46f9_bb359f38de9a08ae" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_str = StrConcat2(o_str, Translate(";")); // }} "" // {{ 1342 1 0 "2f7dae2d_a8aa_4be3_93de2d7d4468ce4b" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1343 1 0 "18e1e887_ea65_4668_a65d392e862d3c46" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "ArrayToString" "End" } // }} "" // {{{ 5 "JSON_GetFloatValue" "Begin" private function JSON_GetFloatValue( variable i_strKeyName, variable & o_KeyFloatValue ) void { // }} "" private variable retVal; // {{ 5 "JSON_GetFloatValue" "InitLocals" o_KeyFloatValue = 0; // }} "" Trace("getfloatvalue"); // {{{ 1386 1 0 "8f2f8625_6c9e_4c47_b4698d29df60004a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetFloatProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" // {{ 1387 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("error getting float value, try with integer"); // {{ 1389 1 0 "5a74df81_6685_4703_8b055144f8d74d45" "{F07B0071-8EFC-11d4-A3BA-002035848439}" // }} "" // {{{ 1390 1 0 "47bb8c98_9624_40ad_b765abfc6b0d0b49" "{C1F3C015-47B3-4514-9407-AC2E65043419}" retVal = HSLJsonLib::GetIntegerProperty(objJSONFromServer, i_strKeyName, o_KeyFloatValue); // }} "" Trace("error getting float value, tried with integer"); // {{ 1392 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (retVal > 0) { // }} "" Trace("wtf ok i guess its zero"); // {{ 1394 1 0 "5b8a3ec6_8ee4_4887_ab7df29fa494cdc1" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_KeyFloatValue = 0; // }} "" // {{ 1395 1 0 "b8a567ad_3f02_43a5_bb2c0456385ec507" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1396 1 0 "9237a268_49c1_4f25_b740f416c52643dc" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{{ 5 "JSON_GetFloatValue" "End" } // }} "" // {{{ 5 "SendHHSReturnToServer" "Begin" private function SendHHSReturnToServer( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepId ) void { // }} "" private variable strJSON; private variable t_arrayStepReturns[]; private variable loopCounter1; private variable keyName; private variable varType; // {{ 5 "SendHHSReturnToServer" "InitLocals" // }} "" // {{{ 1398 1 0 "6db3f932_ba70_4cf6_9c2a8636580fc754" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 1399 1 0 "3cf8a985_83cc_418e_99293de9d9945d5b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("HHS-return")); // }} "" // {{{ 1400 1 0 "705c25bc_6db4_4eb9_b05b33999e110198" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{ 1401 1 0 "5a9efc02_a11a_4c0c_b166e3b28800cc6c" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" t_arrayStepReturns.SetSize(0); // }} "" // {{ 1402 1 0 "5aa4f3a8_774f_4f35_ae7fa197ef920048" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn1); // }} "" // {{ 1403 1 0 "00ac351d_bc51_41e5_b300af93d6893fa5" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn2); // }} "" // {{ 1404 1 0 "2aaf8702_2d08_48ee_be96815ca77463c9" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn3); // }} "" // {{ 1405 1 0 "67fcb56e_9f42_4739_a5ee322f12443a17" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" t_arrayStepReturns.AddAsLast(stepReturn4); // }} "" // {{ 1406 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < 4;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 1407 1 0 "a23ae2ed_5b02_41a0_a69215d0b80fde4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" keyName = StrConcat2(Translate("step-return"), loopCounter1); // }} "" // {{{ 1408 1 0 "9b92ac94_8c71_4b77_95ac0c691427c4bd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" varType = StrGetType(t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1409 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "s") { // }} "" // {{{ 1410 1 0 "1497ea6a_46ab_4ee8_b7951f24b533e644" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1411 1 0 "631dea2d_475b_45bc_8eff2c0337b818df" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1412 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "f") { // }} "" // {{{ 1413 1 0 "61772f9e_fea3_4011_bba06b7fe66e8b0e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetFloatProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1414 1 0 "3b024f35_15c2_49e7_9c67ebddd99f5c96" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1415 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (varType == "i") { // }} "" // {{{ 1416 1 0 "28f39c4b_5f6e_4f42_a7ff7d12c46d4ac9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetIntegerProperty(objJSONToServer, keyName, t_arrayStepReturns.ElementAt( loopCounter1 -1)); // }} "" // {{ 1417 1 0 "d870ac1d_eb68_4248_815e1b841ded2481" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 1418 1 0 "093841d2_b750_4301_a39f2e2e1b1ac592" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 1419 1 0 "0a0447b8_96fb_495a_90dfa8f1e2c488ad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 1420 1 0 "b2a13d10_b443_4fc0_aa0baa2a23cddafe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 1421 1 0 "0adf40b4_5c73_46d8_8e6042c6dfd32d86" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 1422 1 0 "5a5dabeb_e3ed_4730_ab86839e00f75077" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendHHSReturnToServer" "End" } // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "Begin" private function SendStepReturnToServer_EightOutputs( variable stepName, variable stepReturn1, variable stepReturn2, variable stepReturn3, variable stepReturn4, variable stepReturn5, variable stepReturn6, variable stepReturn7, variable stepReturn8, variable stepId ) void { // }} "" private variable strJSON; // {{ 5 "SendStepReturnToServer_EightOutputs" "InitLocals" // }} "" // {{{ 1436 1 0 "a5a7b215_f4cb_4951_82e1faf532cd7222" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Create(objJSONToServer); // }} "" // {{{ 1437 1 0 "9480693e_99ec_4cfd_aa9c8f48e76ee42f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("command"), Translate("STAR-return")); // }} "" // {{{ 1438 1 0 "3f068696_35bd_4060_8b291470a817f628" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-name"), stepName); // }} "" // {{{ 1439 1 0 "b68a52fb_e141_4e4c_b5e7bbcbf0c9817f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return1"), stepReturn1); // }} "" // {{{ 1440 1 0 "8ab4a139_9629_43b7_98f13d1058881e4b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return2"), stepReturn2); // }} "" // {{{ 1441 1 0 "1417a4bd_aea8_4b36_8a7a05739a789ecf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return3"), stepReturn3); // }} "" // {{{ 1442 1 0 "24b6213e_470e_468a_86dc55b44ff96b95" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return4"), stepReturn4); // }} "" // {{{ 1443 1 0 "42403d87_ddb6_4bee_8fc6ad09efb7573a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return5"), stepReturn5); // }} "" // {{{ 1444 1 0 "8493044a_674d_4139_90fa1c7a00050abc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return6"), stepReturn6); // }} "" // {{{ 1445 1 0 "b43cf915_ef0d_4d62_985deae88bcd6c18" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return7"), stepReturn7); // }} "" // {{{ 1446 1 0 "584d78fd_87d0_4502_a6d089cfaf888318" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("step-return8"), stepReturn8); // }} "" // {{{ 1447 1 0 "47856892_8af4_409f_88723a44ebe61362" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::SetStringProperty(objJSONToServer, Translate("id"), stepId); // }} "" // {{{ 1448 1 0 "e5054174_6f3f_4356_8dc30683be948abe" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::GetJson(objJSONToServer, strJSON); // }} "" // {{{ 1449 1 0 "e21196c3_6b8f_47e5_a2888114650b2ec8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLJsonLib::Release(objJSONToServer); // }} "" // {{{ 1450 1 0 "3fec97a3_9f33_4fef_afe5355188bf56d4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLHttp::HttpPOST(objHttp, Translate("http://localhost:3221"), strJSON, HSLHttp::ContentType_JSON, Translate("")); // }} "" // {{{ 5 "SendStepReturnToServer_EightOutputs" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // $$author=stefa$$valid=0$$time=2022-10-23 19:48$$checksum=17917cde$$length=084$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~HxEF83.tmp ================================================ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~HxFA7A.hsi ================================================ // {{{ 2 "IncludeGuard" "PragmaOnce" #pragma once // }} "" #include "HSLErrLib.hsl" #include "HSLMlStarStepReturnLib.hsl" #include "HSLDevLib.hsl" #include "HSLDevLib.hsl" #include "HSLSeqLib.hsl" #include "HSLStrLib.hsl" #include "HSLTrcLib.hsl" #include "HSL_LiquidClassLib.hsl" #include "HSLInhecoTEC\\HSLInhecoTECLib.hsl" #include "HSLDaisyChainedTiltModule.hsl" #include "HSLBarcodeReader.hsl" #include "HslHamHeaterShakerLib.hsl" #include "HSLDaisyChainedMediaLine.hsl" #include "HSLDaisyChainCommunication.hsl" #include "Hamilton pH Module\\Hamilton pH Module.hsl" #include "Hamilton pH Module\\Hamilton pH Station Dryer Module.hsl" #include "Hamilton pH Module\\Hamilton pH Station Washer Module.hsl" /* {{ 2 "LibraryInsertLine" "" */ // }} "" // {{ 2 "TemplateIncludeBlock" "" #include "HSLMETEDLib.hs_" #include "HSLMECCLib.hs_" // }} "" // {{{ 2 "LibraryNamespace" "Begin" namespace STAR_OEM_TOOLKIT { // }} "" /* {{ 2 "VariableInsertLine" "" */ // }} "" // {{{ 2 "SubmethodForwardDeclaration" "" function BarcodeReader_Initialize( variable COMPORT, variable & o_stepReturn ) void ; function BarcodeReader_Read( variable & barcode ) void ; function Carrier_Load( device & ML_STAR, variable carrierName, variable barcodeFileName, variable barcodeReadPositions, variable & o_stepReturn_CarrierBC, variable & o_stepReturn_PositionsBCs, variable & o_stepReturn_PositionsBCMasks, variable & o_stepReturn_PositionsIDs, variable & o_CarrierBC, variable & o_PositionsBCs[] ) void ; function Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void ; function Channels_1mL_COREGrippers_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable gripForce, variable gripperToolChannel, variable gripWidth, variable gripHeight, variable widthBefore, variable gripSpeed, variable Zspeed, variable checkPlate, variable & o_stepReturn ) void ; function Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void ; function Channels_1mL_COREGrippers_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable ejectToolWhenFinish, variable Zspeed, variable platePressOnDistance, variable xAcceleration, variable checkPlate, variable & o_stepReturn ) void ; function Channels_1mL_Dispense( device & ML_STAR, sequence & dispenseSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable zMoveAfterStep, variable sideTouch, variable dispPositionAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void ; function Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void ; function Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void ; function Channels_1ml_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable aspirateMode, variable capacitiveLLD, variable pressureLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable maxLLdDifference, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable aspPosAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void ; function Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode, variable & o_stepReturn ) void ; function Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & o_stepReturn ) void ; function Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode, variable & o_stepReturn ) void ; function Inheco_TEC_StopTemperatureControl( variable ControllerID, variable DeviceID, variable & o_stepReturn ) void ; function Inheco_TEC_Terminate( variable StopAllDevices, variable & o_stepReturn ) void ; function Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void ; function MPH96_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable aspirateVolume, variable channelVariable, variable liquidClass, variable sequenceCounting, variable aspirateMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void ; function MPH96_Dispense( device & ML_STAR, sequence & dispenseSequence, variable dispenseVolume, variable liquidClass, variable sequenceCounting, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable zMoveAfterStep, variable sideTouch, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void ; function MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ; function MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void ; private function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void ; function SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void ; function TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate, variable & o_stepReturn ) void ; function TiltModule_MoveToPosition( variable Module, variable Position, variable & o_stepReturn ) void ; function iSWAP_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable gripForce, variable inverseGrip, variable collisionControl, variable gripMode, variable retractDistance, variable liftUpHeight, variable gripWidth, variable tolerance, variable gripHeight, variable widthBefore, variable & o_stepReturn ) void ; function iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void ; function iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void ; function iSWAP_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable collisionControl, variable retractDistance, variable liftUpHeight, variable & o_stepReturn ) void ; function pH_Measure( variable i_intModuleID, variable i_fltTemperature, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void ; // }} "" function _InitLibrary() { // {{ 2 "AutoInitBlock" "" // }} "" } function _ExitLibrary() { // {{ 2 "AutoExitBlock" "" // }} "" } // {{{ 5 "Channels_1ml_Aspirate" "Begin" function Channels_1ml_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable aspirateMode, variable capacitiveLLD, variable pressureLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable maxLLdDifference, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable aspPosAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void { // }} "" private variable numberOfPositions; private variable loopCounter1; private variable getLiquidLevels_return; private variable labwareID; private variable positionID; private variable lbwContainersAreConnected; private variable height; private variable calculatedVolume; // {{ 5 "Channels_1ml_Aspirate" "InitLocals" o_stepReturn = 0; o_liquidLevels_mm.SetSize( 0); o_liquidLevels_mL.SetSize( 0); // }} "" // {{ 107 1 0 "2df7cf67_eefd_4634_a6c81ca2eae358a9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_BE09000023754133A7DFF78508E9EC3D ; err.Clear(); // }} "" // {{ 108 1 0 "8fa2cdd5_d117_4559_be8f242119801835" "ML_STAR:{541143F5-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F5_7FA2_11D3_AD85_0004ACB1DCB2("8fa2cdd5_d117_4559_be8f242119801835"); // Aspirate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 109 1 0 "2df7cf67_eefd_4634_a6c81ca2eae358a9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_BE09000023754133A7DFF78508E9EC3D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 110 1 0 "3dd2c518_6d0a_4d7b_a227743c1263caad" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 111 1 0 "2df7cf67_eefd_4634_a6c81ca2eae358a9" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 112 1 0 "a8ab29ff_eb70_45dc_a90f0ce07c2514bd" "ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}" { variable arrRetValues[]; arrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C("a8ab29ff_eb70_45dc_a90f0ce07c2514bd"); // GetLastLiquidLevel getLiquidLevels_return = arrRetValues[2]; } // }} "" // {{{ 113 1 0 "a37ce602_144b_4a72_98dbfe0c85169266" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn); // }} "" // {{ 114 1 0 "36e6f2a2_6d83_40ba_a0c6ff5caefcef66" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mm.SetSize(0); // }} "" // {{ 115 1 0 "ce4eba9f_c8e1_4c33_a9c369da4ce7c312" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mL.SetSize(0); // }} "" // {{ 116 1 0 "3fcceb5e_fea5_4776_94261cf223fe007f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < numberOfPositions;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 117 1 0 "c20a15a2_4a40_4214_9e2588af18355e98" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 118 1 0 "81636f39_7511_441a_8ab707955e5f2035" "{C1F3C015-47B3-4514-9407-AC2E65043419}" height = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return); // }} "" // {{ 119 1 0 "6b53ca04_1112_466f_89a23ed352e36004" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mm.AddAsLast(height); // }} "" // {{ 120 1 0 "c20a15a2_4a40_4214_9e2588af18355e98" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 121 1 0 "00f031c0_8454_45d1_9b17554c5e6df7bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 122 1 0 "9c1dd6a5_9b06_43fd_9fd194129c2f2a0b" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn); // }} "" // {{{ 123 1 0 "e6930a03_b2a0_4569_bb51b2088cac413c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn); // }} "" // {{ 124 1 0 "06eeeac2_52c3_47cb_b78dde137d763a9a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 125 1 0 "53b884ef_873a_4201_882d0cc9f9d77d20" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwareID > "") { // }} "" // {{ 126 1 0 "a83a594a_307e_45dd_8a2583323efe8f45" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (positionID > "") { // }} "" // {{ 127 1 0 "83df5041_4b3c_406f_95690782a3a21861" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 128 1 0 "9af2cbf6_5306_4a14_827b32cae1054343" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_15E4EC7C03B0458dA8B196D2861D63BC ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 130 1 0 "9af2cbf6_5306_4a14_827b32cae1054343" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_15E4EC7C03B0458dA8B196D2861D63BC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 131 1 0 "9af2cbf6_5306_4a14_827b32cae1054343" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 132 1 0 "83df5041_4b3c_406f_95690782a3a21861" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 133 1 0 "450b7dae_efb3_416b_a62ef5c611c84cdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" calculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected); // }} "" // {{ 134 1 0 "ca4e0527_c377_4a7f_99b7deddb85bdfaf" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mL.AddAsLast(calculatedVolume); // }} "" // {{ 135 1 0 "a83a594a_307e_45dd_8a2583323efe8f45" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 136 1 0 "53b884ef_873a_4201_882d0cc9f9d77d20" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 137 1 0 "00f031c0_8454_45d1_9b17554c5e6df7bc" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 138 1 0 "3fcceb5e_fea5_4776_94261cf223fe007f" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "Channels_1ml_Aspirate" "End" } // }} "" // {{{ 5 "Channels_1mL_TipPickUp" "Begin" function Channels_1mL_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_TipPickUp" "InitLocals" o_stepReturn = 0; // }} "" // {{ 101 1 0 "bcca3c8a_7fce_4767_98fb4ac5db164ddd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_55CAD51E8CEB46d5827DF7367C49B35D ; err.Clear(); // }} "" // {{ 102 1 0 "72075d54_9924_47c4_a0154d7e90bb1065" "ML_STAR:{541143FA-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FA_7FA2_11D3_AD85_0004ACB1DCB2("72075d54_9924_47c4_a0154d7e90bb1065"); // TipPickUp o_stepReturn = arrRetValues[2]; } // }} "" // {{ 103 1 0 "bcca3c8a_7fce_4767_98fb4ac5db164ddd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_55CAD51E8CEB46d5827DF7367C49B35D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 104 1 0 "7acd54b9_9bda_465f_9b10e23e8987fa26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 105 1 0 "bcca3c8a_7fce_4767_98fb4ac5db164ddd" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_TipPickUp" "End" } // }} "" // {{{ 5 "Channels_1mL_Dispense" "Begin" function Channels_1mL_Dispense( device & ML_STAR, sequence & dispenseSequence, variable & volumeArray[], variable channelVariable, variable liquidClass, variable sequenceCounting, variable channelUse, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable touchOff, variable zMoveAfterStep, variable sideTouch, variable dispPositionAboveTouch, variable & o_stepReturn, variable & o_liquidLevels_mm[], variable & o_liquidLevels_mL[] ) void { // }} "" private variable getLiquidLevels_return; private variable labwareID; private variable calculatedVolume; private variable height; private variable lbwContainersAreConnected; private variable positionID; private variable loopCounter1; private variable numberOfPositions; // {{ 5 "Channels_1mL_Dispense" "InitLocals" o_stepReturn = 0; o_liquidLevels_mm.SetSize( 0); o_liquidLevels_mL.SetSize( 0); // }} "" // {{ 62 1 0 "c6b9c3da_70bc_4aa8_841a67bf3e6c7859" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 ; err.Clear(); // }} "" // {{ 63 1 0 "ce9beee3_e67e_43c3_bfc64805ab990e08" "ML_STAR:{541143F8-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143F8_7FA2_11D3_AD85_0004ACB1DCB2("ce9beee3_e67e_43c3_bfc64805ab990e08"); // Dispense o_stepReturn = arrRetValues[2]; } // }} "" // {{ 64 1 0 "c6b9c3da_70bc_4aa8_841a67bf3e6c7859" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_54A45EC2E9B04fa99C5A8A8E9F5373D7 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 65 1 0 "493334e8_4548_4149_82f058a4b51df641" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 66 1 0 "c6b9c3da_70bc_4aa8_841a67bf3e6c7859" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 67 1 0 "dd677141_96b6_4ccc_a1764ec36dc76b56" "ML_STAR:{9FB6DFE0-4132-4d09-B502-98C722734D4C}" { variable arrRetValues[]; arrRetValues = ML_STAR._9FB6DFE0_4132_4d09_B502_98C722734D4C("dd677141_96b6_4ccc_a1764ec36dc76b56"); // GetLastLiquidLevel getLiquidLevels_return = arrRetValues[2]; } // }} "" // {{{ 68 1 0 "4fd5463f_c617_4e2b_aa27d0a820bfe2c5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn); // }} "" // {{ 69 1 0 "6cafca26_5df8_46c0_98d5a4e2a957163a" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mm.SetSize(0); // }} "" // {{ 70 1 0 "418d84ad_0fba_4ca8_8479b9c6dde94985" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_liquidLevels_mL.SetSize(0); // }} "" // {{ 71 1 0 "abfcc803_7e38_4c9d_ad7c8412ada32e1d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < numberOfPositions;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{ 72 1 0 "1cbaa070_2e26_4301_9831c6bc56227fcf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 73 1 0 "c8304522_b160_47ca_9780bfcfd85cf56a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" height = StepReturn::GetLastLiquidLevel(loopCounter1, getLiquidLevels_return); // }} "" // {{ 74 1 0 "5c09e3e1_cd42_4687_940231f4491e28e1" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mm.AddAsLast(height); // }} "" // {{ 75 1 0 "1cbaa070_2e26_4301_9831c6bc56227fcf" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 76 1 0 "ed6c9c1d_db69_4c65_8a4324433bd43f03" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 77 1 0 "11b5458b_6926_471d_8cb7dde489f8a444" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = StepReturn::GetLabwareId(loopCounter1, o_stepReturn); // }} "" // {{{ 78 1 0 "51ffe893_b0e5_4383_ac38b9be481a9bee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = StepReturn::GetPositionId(loopCounter1, o_stepReturn); // }} "" // {{ 79 1 0 "b02dd957_c3d3_445f_b0e36cc6cab274af" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 80 1 0 "35647e0a_accb_4503_80bba06d7d2a3271" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (labwareID > "") { // }} "" // {{ 81 1 0 "693f6d8c_e7fa_419d_b923bb796e5548fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" if (positionID > "") { // }} "" // {{ 82 1 0 "086a404a_99f9_4215_81fcc4be65c886b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 83 1 0 "1b6d6482_1c62_4a3f_90dfdeaf8695fb92" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_16FB3828C9A34ba7A7078E29FEF48CFF ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 85 1 0 "1b6d6482_1c62_4a3f_90dfdeaf8695fb92" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_16FB3828C9A34ba7A7078E29FEF48CFF : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 86 1 0 "1b6d6482_1c62_4a3f_90dfdeaf8695fb92" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 87 1 0 "086a404a_99f9_4215_81fcc4be65c886b2" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 88 1 0 "36cc23a5_3886_4312_adc5faa6d481a26c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" calculatedVolume = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, height, 1, lbwContainersAreConnected); // }} "" // {{ 89 1 0 "9f017e3d_a3f3_4f02_914d74e549a5f3be" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_liquidLevels_mL.AddAsLast(calculatedVolume); // }} "" // {{ 90 1 0 "693f6d8c_e7fa_419d_b923bb796e5548fd" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 91 1 0 "35647e0a_accb_4503_80bba06d7d2a3271" "{B31F3531-5D80-11d4-A5EB-0050DA737D89}" } // }} "" // {{ 92 1 0 "ed6c9c1d_db69_4c65_8a4324433bd43f03" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 93 1 0 "abfcc803_7e38_4c9d_ad7c8412ada32e1d" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{{ 5 "Channels_1mL_Dispense" "End" } // }} "" // {{{ 5 "Channels_1mL_TipEject" "Begin" function Channels_1mL_TipEject( device & ML_STAR, sequence & wasteSequence, variable channelVariable, variable sequenceCounting, variable channelUse, variable useDefaultWaste, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_TipEject" "InitLocals" o_stepReturn = 0; // }} "" // {{ 95 1 0 "68086392_46e4_4533_88368c1cf77ceb2d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_D52469807F754a359D17B8D31042C6A6 ; err.Clear(); // }} "" // {{ 96 1 0 "1a33c622_0a9b_473c_a857db709fcadb47" "ML_STAR:{541143FC-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._541143FC_7FA2_11D3_AD85_0004ACB1DCB2("1a33c622_0a9b_473c_a857db709fcadb47"); // TipEject o_stepReturn = arrRetValues[2]; } // }} "" // {{ 97 1 0 "68086392_46e4_4533_88368c1cf77ceb2d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_D52469807F754a359D17B8D31042C6A6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 98 1 0 "5284933d_2b98_4255_81ee24c4ca6624c1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 99 1 0 "68086392_46e4_4533_88368c1cf77ceb2d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_TipEject" "End" } // }} "" // {{{ 5 "Carrier_Load" "Begin" function Carrier_Load( device & ML_STAR, variable carrierName, variable barcodeFileName, variable barcodeReadPositions, variable & o_stepReturn_CarrierBC, variable & o_stepReturn_PositionsBCs, variable & o_stepReturn_PositionsBCMasks, variable & o_stepReturn_PositionsIDs, variable & o_CarrierBC, variable & o_PositionsBCs[] ) void { // }} "" private variable numberOfPositions; private variable loopCounter1; private variable positionBC; // {{ 5 "Carrier_Load" "InitLocals" o_stepReturn_CarrierBC = 0; o_stepReturn_PositionsBCs = 0; o_stepReturn_PositionsBCMasks = 0; o_stepReturn_PositionsIDs = 0; o_CarrierBC = 0; o_PositionsBCs.SetSize( 0); // }} "" // {{ 18 1 0 "5c909756_0e7e_4404_9569fb2db3dd1158" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_6F7D183CCBCA490f840A10F79D2CB4F6 ; err.Clear(); // }} "" // {{ 19 1 0 "b445eca9_c441_45d7_b53f08a23b7b4b80" "ML_STAR:{54114402-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._54114402_7FA2_11D3_AD85_0004ACB1DCB2("b445eca9_c441_45d7_b53f08a23b7b4b80"); // LoadCarrier o_stepReturn_CarrierBC = arrRetValues[2]; o_stepReturn_PositionsBCs = arrRetValues[3]; o_stepReturn_PositionsBCMasks = arrRetValues[4]; o_stepReturn_PositionsIDs = arrRetValues[5]; } // }} "" // {{ 20 1 0 "5c909756_0e7e_4404_9569fb2db3dd1158" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_6F7D183CCBCA490f840A10F79D2CB4F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 21 1 0 "6919be45_bdb7_46b6_a2ad892454bef1c7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_CarrierBC = ErrGetDataAt(3); // }} "" // {{{ 22 1 0 "d814f66e_6beb_47a8_a390d3b5ea839ba9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionsBCs = ErrGetDataAt(4); // }} "" // {{{ 23 1 0 "018a7d4d_f55c_435f_bfce516fc40cd0bb" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionsBCMasks = ErrGetDataAt(5); // }} "" // {{{ 24 1 0 "28252b10_bd1a_480c_8d84ce9739ca69ec" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionsIDs = ErrGetDataAt(6); // }} "" // {{ 25 1 0 "5c909756_0e7e_4404_9569fb2db3dd1158" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 26 1 0 "f7c4b6e5_401a_41ab_b920370ccc277a17" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 27 1 0 "91e50e7b_5626_4ab9_ad652563a737dba7" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_CarrierBC = StepReturn::GetStepData(1, o_stepReturn_CarrierBC); // }} "" // {{ 28 1 0 "f7c4b6e5_401a_41ab_b920370ccc277a17" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 29 1 0 "628b131a_a46c_40b8_b9a61700e818c0e7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 30 1 0 "6135f8c7_3486_4898_88c6e7154326c4df" "{C1F3C015-47B3-4514-9407-AC2E65043419}" numberOfPositions = StepReturn::GetNumberOfPositions(o_stepReturn_PositionsBCs); // }} "" // {{ 31 1 0 "4cec9992_cb23_4182_894ee448e99b8d48" "{4900C1F7-0FB7-4033-8253-760BDB9354DC}" o_PositionsBCs.SetSize(0); // }} "" // {{ 32 1 0 "0249a50f_bae7_4b5c_86cdc25ab8f43639" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" { for(loopCounter1 = 0; loopCounter1 < numberOfPositions;) { loopCounter1 = loopCounter1 + 1; // }} "" // {{{ 33 1 0 "fe82471b_5e85_4598_90b8f672ef3cf690" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionBC = StepReturn::GetStepData(loopCounter1, o_stepReturn_PositionsBCs); // }} "" // {{ 34 1 0 "f0a92a30_0f95_4eb4_bdcf7e21db350ecb" "{F17B7626-27CB-47f1-8477-8C4158339A6D}" o_PositionsBCs.AddAsLast(positionBC); // }} "" // {{ 35 1 0 "0249a50f_bae7_4b5c_86cdc25ab8f43639" "{B31F3532-5D80-11d4-A5EB-0050DA737D89}" } } // }} "" // {{ 36 1 0 "628b131a_a46c_40b8_b9a61700e818c0e7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "Carrier_Load" "End" } // }} "" // {{{ 5 "Carrier_Unload" "Begin" function Carrier_Unload( device & ML_STAR, variable carrierName, variable & o_stepReturn ) void { // }} "" // {{ 5 "Carrier_Unload" "InitLocals" o_stepReturn = 0; // }} "" // {{ 38 1 0 "c21e08df_939e_41ef_9843a250f42bf239" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_040A2B30BAA84a018D3C82EF2B4AAB10 ; err.Clear(); // }} "" // {{ 39 1 0 "38494363_9fef_41a3_8cb17f349c9fe693" "ML_STAR:{54114400-7FA2-11D3-AD85-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._54114400_7FA2_11D3_AD85_0004ACB1DCB2("38494363_9fef_41a3_8cb17f349c9fe693"); // UnloadCarrier o_stepReturn = arrRetValues[2]; } // }} "" // {{ 40 1 0 "c21e08df_939e_41ef_9843a250f42bf239" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_040A2B30BAA84a018D3C82EF2B4AAB10 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 41 1 0 "9aa00b86_389e_473d_bd928bce39259e60" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 42 1 0 "c21e08df_939e_41ef_9843a250f42bf239" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Carrier_Unload" "End" } // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Get" "Begin" function Channels_1mL_COREGrippers_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable gripForce, variable gripperToolChannel, variable gripWidth, variable gripHeight, variable widthBefore, variable gripSpeed, variable Zspeed, variable checkPlate, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_COREGrippers_Get" "InitLocals" o_stepReturn = 0; // }} "" // {{ 44 1 0 "b30da27c_bef5_49a0_87d76c8049f31861" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_90BF8C56374E469c817DB7B52FEE5D91 ; err.Clear(); // }} "" // {{ 45 1 0 "f1e43893_ada0_4b74_9035cad36fab5d4b" "ML_STAR:{A108628C-BEB7-4CB6-99FD-8523302C700F}" { variable arrRetValues[]; arrRetValues = ML_STAR._A108628C_BEB7_4CB6_99FD_8523302C700F("f1e43893_ada0_4b74_9035cad36fab5d4b"); // ZSwapGetPlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 46 1 0 "b30da27c_bef5_49a0_87d76c8049f31861" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_90BF8C56374E469c817DB7B52FEE5D91 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 47 1 0 "5300695f_5b47_4f16_8312711c7c77441e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 48 1 0 "b30da27c_bef5_49a0_87d76c8049f31861" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Get" "End" } // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Place" "Begin" function Channels_1mL_COREGrippers_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, sequence & toolSequence, variable sequenceCounting, variable transportMode, variable ejectToolWhenFinish, variable Zspeed, variable platePressOnDistance, variable xAcceleration, variable checkPlate, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_COREGrippers_Place" "InitLocals" o_stepReturn = 0; // }} "" // {{ 56 1 0 "b65dcae3_6ff9_4720_a4f35e99346d8975" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8675588E513E44cd8097542899F1DE5C ; err.Clear(); // }} "" // {{ 57 1 0 "3460f3d9_9fdb_4437_9cfa36d33b14f837" "ML_STAR:{9DF3DD4B-3B5E-4750-8989-04458D1B134B}" { variable arrRetValues[]; arrRetValues = ML_STAR._9DF3DD4B_3B5E_4750_8989_04458D1B134B("3460f3d9_9fdb_4437_9cfa36d33b14f837"); // ZSwapPlacePlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 58 1 0 "b65dcae3_6ff9_4720_a4f35e99346d8975" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8675588E513E44cd8097542899F1DE5C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 59 1 0 "1c1fcfa6_73ab_434d_965f40a7cb5827ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 60 1 0 "b65dcae3_6ff9_4720_a4f35e99346d8975" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Place" "End" } // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Move" "Begin" function Channels_1mL_COREGrippers_Move( device & ML_STAR, sequence & destinationSequence, variable xAcceleration, variable & o_stepReturn ) void { // }} "" // {{ 5 "Channels_1mL_COREGrippers_Move" "InitLocals" o_stepReturn = 0; // }} "" // {{ 50 1 0 "ced13f47_fded_4378_af08e9af8f325393" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_17F7F9C2DD974e61B13F20ADC6F241A8 ; err.Clear(); // }} "" // {{ 51 1 0 "2ed0456d_387e_49b4_a5a8105447123f04" "ML_STAR:{21E50809-DA69-4E9D-99CF-24FA577C214E}" { variable arrRetValues[]; arrRetValues = ML_STAR._21E50809_DA69_4E9D_99CF_24FA577C214E("2ed0456d_387e_49b4_a5a8105447123f04"); // ZSwapMovePlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 52 1 0 "ced13f47_fded_4378_af08e9af8f325393" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_17F7F9C2DD974e61B13F20ADC6F241A8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 53 1 0 "b5f59ed6_6bf0_47b3_b8c295016cfa86e1" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 54 1 0 "ced13f47_fded_4378_af08e9af8f325393" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Channels_1mL_COREGrippers_Move" "End" } // }} "" // {{{ 5 "iSWAP_Get" "Begin" function iSWAP_Get( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable gripForce, variable inverseGrip, variable collisionControl, variable gripMode, variable retractDistance, variable liftUpHeight, variable gripWidth, variable tolerance, variable gripHeight, variable widthBefore, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Get" "InitLocals" o_stepReturn = 0; // }} "" // {{ 283 1 0 "53a14975_dd73_4964_8c8c9f0730a43a7a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_ABA9DAA34A59470495CBB56841D2D81D ; err.Clear(); // }} "" // {{ 284 1 0 "285b84de_748a_400d_a828988b60f4c175" "ML_STAR:{CC819D7A-5DD8-4d13-A921-D74A06460F9E}" { variable arrRetValues[]; arrRetValues = ML_STAR._CC819D7A_5DD8_4d13_A921_D74A06460F9E("285b84de_748a_400d_a828988b60f4c175"); // GetPlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 285 1 0 "53a14975_dd73_4964_8c8c9f0730a43a7a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_ABA9DAA34A59470495CBB56841D2D81D : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 286 1 0 "298cdb09_c92e_4bb7_a2ecabeafcf27813" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 287 1 0 "53a14975_dd73_4964_8c8c9f0730a43a7a" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Get" "End" } // }} "" // {{{ 5 "iSWAP_Place" "Begin" function iSWAP_Place( device & ML_STAR, sequence & plateSequence, sequence & lidSequence, variable sequenceCounting, variable movementType, variable transportMode, variable labwareOrientation, variable collisionControl, variable retractDistance, variable liftUpHeight, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Place" "InitLocals" o_stepReturn = 0; // }} "" // {{ 301 1 0 "c9f8030c_ef60_485e_9b279138f7f6da52" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_22A12BE8BB2146fbB8824DF66137BF6C ; err.Clear(); // }} "" // {{ 302 1 0 "bcedff0a_3cba_458a_bedb1a743e5dd0bd" "ML_STAR:{E34155E5-7529-4b6b-AE3E-CDDA40789D55}" { variable arrRetValues[]; arrRetValues = ML_STAR._E34155E5_7529_4b6b_AE3E_CDDA40789D55("bcedff0a_3cba_458a_bedb1a743e5dd0bd"); // PutPlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 303 1 0 "c9f8030c_ef60_485e_9b279138f7f6da52" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_22A12BE8BB2146fbB8824DF66137BF6C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 304 1 0 "8aeb393a_337d_4788_b25408ee6915eb1c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 305 1 0 "c9f8030c_ef60_485e_9b279138f7f6da52" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Place" "End" } // }} "" // {{{ 5 "iSWAP_Move" "Begin" function iSWAP_Move( device & ML_STAR, sequence & destinationSequence, variable collisionControl, variable gripMode, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Move" "InitLocals" o_stepReturn = 0; // }} "" // {{ 289 1 0 "65ac7a80_b8fd_4f3c_a9e6290ec6a707a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E8A019BC968240cbB4C8B7397BB2F043 ; err.Clear(); // }} "" // {{ 290 1 0 "d98672e5_cec6_49ef_92dfdaa4ec2da4f2" "ML_STAR:{862562D1-B5BB-48ce-B5E4-9E37F8ABB61E}" { variable arrRetValues[]; arrRetValues = ML_STAR._862562D1_B5BB_48ce_B5E4_9E37F8ABB61E("d98672e5_cec6_49ef_92dfdaa4ec2da4f2"); // MovePlate o_stepReturn = arrRetValues[2]; } // }} "" // {{ 291 1 0 "65ac7a80_b8fd_4f3c_a9e6290ec6a707a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E8A019BC968240cbB4C8B7397BB2F043 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 292 1 0 "b69dc448_e2ef_4c62_b6dd3535487928f5" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 293 1 0 "65ac7a80_b8fd_4f3c_a9e6290ec6a707a1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Move" "End" } // }} "" // {{{ 5 "iSWAP_Park" "Begin" function iSWAP_Park( device & ML_STAR, variable showCollisionCheckDialog, variable & o_stepReturn ) void { // }} "" // {{ 5 "iSWAP_Park" "InitLocals" o_stepReturn = 0; // }} "" // {{ 295 1 0 "fae9e68f_ea34_4f4d_bb6f62c288b1e7b4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_47ED933D92B34914984C5D98423B4C94 ; err.Clear(); // }} "" // {{ 296 1 0 "ef5a4036_5d2f_4aae_86e669ef0581597f" "ML_STAR:{86F668D0-478C-41b6-A78B-8B6B8EAA54A7}" { variable arrRetValues[]; arrRetValues = ML_STAR._86F668D0_478C_41b6_A78B_8B6B8EAA54A7("ef5a4036_5d2f_4aae_86e669ef0581597f"); // ParkISwap o_stepReturn = arrRetValues[2]; } // }} "" // {{ 297 1 0 "fae9e68f_ea34_4f4d_bb6f62c288b1e7b4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_47ED933D92B34914984C5D98423B4C94 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 298 1 0 "974d3165_8b4f_469b_99a59625d159b561" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 299 1 0 "fae9e68f_ea34_4f4d_bb6f62c288b1e7b4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "iSWAP_Park" "End" } // }} "" // {{{ 5 "MPH96_TipPickUp" "Begin" function MPH96_TipPickUp( device & ML_STAR, sequence & tipSequence, variable channelVariable, variable sequenceCounting, variable reducedPatternMode, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void { // }} "" // {{ 5 "MPH96_TipPickUp" "InitLocals" o_stepReturn = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{ 233 1 0 "e2468a9b_8b3f_4977_bbdfbeb62da8eff3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_6640FC09A88C48daB6CB9FB2349BE364 ; err.Clear(); // }} "" // {{ 234 1 0 "b3913cc3_f1bb_4e9f_b3100faec37b186d" "ML_STAR:{BD0D210B-0816-4C86-A903-D6B2DF73F78B}" { variable arrRetValues[]; arrRetValues = ML_STAR._BD0D210B_0816_4C86_A903_D6B2DF73F78B("b3913cc3_f1bb_4e9f_b3100faec37b186d"); // Head96TipPickUp o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 235 1 0 "e2468a9b_8b3f_4977_bbdfbeb62da8eff3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_6640FC09A88C48daB6CB9FB2349BE364 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 236 1 0 "1df2d158_801c_4c9f_a8014869fa07863d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 237 1 0 "315f1e4b_8d32_430c_89413b8e4b5b135a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 238 1 0 "e2468a9b_8b3f_4977_bbdfbeb62da8eff3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPH96_TipPickUp" "End" } // }} "" // {{{ 5 "MPH96_Aspirate" "Begin" function MPH96_Aspirate( device & ML_STAR, sequence & aspirateSequence, variable aspirateVolume, variable channelVariable, variable liquidClass, variable sequenceCounting, variable aspirateMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void { // }} "" private variable labwareID; private variable lbwContainersAreConnected; private variable positionID; // {{ 5 "MPH96_Aspirate" "InitLocals" o_stepReturn = 0; o_liquidLevel_mm = 0; o_liquidLevel_mL = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{{ 182 1 0 "0fc30c09_ddb7_4665_8739dbd8f0102fdc" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = SeqGetLabwareId(aspirateSequence); // }} "" // {{{ 183 1 0 "14c1eb4e_ced0_45f2_a343bc0f3c668407" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = SeqGetPositionId(aspirateSequence); // }} "" // {{ 184 1 0 "7afd0547_a78c_4fb0_b040d35803532eb4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_00A0A59BF99B42a686A202BE72502D6C ; err.Clear(); // }} "" // {{ 185 1 0 "8d6fdce5_327c_491b_aebee60a715b6c6e" "ML_STAR:{827392A0-B7E8-4472-9ED3-B45B71B5D27A}" { variable arrRetValues[]; arrRetValues = ML_STAR._827392A0_B7E8_4472_9ED3_B45B71B5D27A("8d6fdce5_327c_491b_aebee60a715b6c6e"); // Head96Aspirate o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 186 1 0 "7afd0547_a78c_4fb0_b040d35803532eb4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_00A0A59BF99B42a686A202BE72502D6C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 187 1 0 "6c23fd1d_be57_4011_8fea4ea6459aeecf" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 188 1 0 "ee52ace2_98fe_454f_841ae740168bebcd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 189 1 0 "7afd0547_a78c_4fb0_b040d35803532eb4" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 190 1 0 "4efb91d8_0e10_400c_a4820b22b5ba22d5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 191 1 0 "8bf3cb1f_0b71_493d_bf300c05413fc543" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" MPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm); // }} "" // {{ 192 1 0 "4efb91d8_0e10_400c_a4820b22b5ba22d5" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 193 1 0 "b82d3cc9_9e79_4547_800ffcbdb5ef0aa7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 194 1 0 "091a5303_35ee_4d82_a0b32d9ede26439d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 195 1 0 "64d5c65b_9fa5_44de_a21e4ee08c78310f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 196 1 0 "99cc0c51_635c_4f24_ac7aec94869f04a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_06FF5C7D72E044ac924A0658E57AC92A ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 198 1 0 "99cc0c51_635c_4f24_ac7aec94869f04a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_06FF5C7D72E044ac924A0658E57AC92A : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 199 1 0 "99cc0c51_635c_4f24_ac7aec94869f04a7" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 200 1 0 "64d5c65b_9fa5_44de_a21e4ee08c78310f" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 201 1 0 "0b5e4cdb_1c92_4d18_a0bed95d854a0d94" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected); // }} "" // {{ 202 1 0 "b82d3cc9_9e79_4547_800ffcbdb5ef0aa7" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "MPH96_Aspirate" "End" } // }} "" // {{{ 5 "MPH_GetLastLLD_Level" "Begin" private function MPH_GetLastLLD_Level( variable i_liquidClass, device & ML_STAR, variable i_labwareID, variable & o_flt_LastLiquidLevel ) void { // }} "" private variable flt_X_Coord; private variable flt_Y_Coord; private variable flt_Z_Coord; private variable flt_SubmergeDepthCORE; private variable str_FW_Digits; private variable flt_TipLength; private variable int_LLDheight; private variable flt_TipLength_corrected; private variable int_FW_Digits; private variable flt_StepSize; private variable int_Steps_mm; private variable str_ReturnValueH0RH; private variable flt_angle; private variable tipType; private variable dummy; // {{ 5 "MPH_GetLastLLD_Level" "InitLocals" o_flt_LastLiquidLevel = 0; // }} "" // {{ 240 1 0 "f7c5b642_e642_4bd2_b342e8a2202f94b2" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_SubmergeDepthCORE = 8.0; // }} "" // {{ 241 1 0 "b15f54b8_160d_4d5a_9470d19afc4b0155" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 242 1 0 "de2e1cfc_3be8_4752_b20a1221fc802c26" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::Initialize(ML_STAR, 1); // }} "" // {{{ 243 1 0 "bf16ce46_b00c_46c3_93046a4e730e9868" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::SelectLiquidClass(i_liquidClass); // }} "" // {{{ 244 1 0 "7d094f81_a8b9_4eb1_90a841201d1a4cca" "{C1F3C015-47B3-4514-9407-AC2E65043419}" tipType = LiquidClassLib::GetLiquidClassParameter(LiquidClassLib::LIQUIDCLASS_PARAMS::TipType); // }} "" // {{{ 245 1 0 "05a5dc8c_726f_477e_97f2839edafa8bdd" "{C1F3C015-47B3-4514-9407-AC2E65043419}" LiquidClassLib::getTipTypeData(tipType, dummy, dummy, dummy, flt_TipLength); // }} "" // {{ 246 1 0 "b15f54b8_160d_4d5a_9470d19afc4b0155" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 247 1 0 "a97af8ec_9af3_46fa_a150d41888290f6f" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" flt_TipLength_corrected = flt_TipLength - flt_SubmergeDepthCORE; // }} "" // {{{ 248 1 0 "8fc17eb7_3fbb_4a8e_b537d43144e8598c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" DevGetLabwarePosition(ML_STAR, i_labwareID, flt_X_Coord, flt_Y_Coord, flt_Z_Coord, flt_angle); // }} "" // {{ 249 1 0 "31649b83_68f7_49a0_974f7efa6232c07d" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" str_ReturnValueH0RH = Translate(""); // }} "" // {{ 250 1 0 "72f92b7c_2537_40be_bc5fe85726a39b19" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" flt_StepSize = 0.005; // }} "" // {{ 251 1 0 "b5a3458f_9eea_4501_a6aa86c0556ad194" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("b5a3458f_9eea_4501_a6aa86c0556ad194"); // FirmwareCommand str_ReturnValueH0RH = arrRetValues[3]; } // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 252 1 0 "73c2ff19_ed4c_4c45_a9c5b56a6e84b044" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("str_ReturnValueH0RH: "), str_ReturnValueH0RH); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 253 1 0 "f6fe1f5f_39ae_4b71_83f733a5cf490b66" "{C1F3C015-47B3-4514-9407-AC2E65043419}" str_FW_Digits = StrRight(str_ReturnValueH0RH, 6); // }} "" // {{{ 254 1 0 "9883fcc4_3dcd_4199_816696b3668f733f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" int_FW_Digits = StrIVal(str_FW_Digits); // }} "" // {{ 255 1 0 "b427e920_22bd_492e_8c900ff3a99a649c" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_Steps_mm = int_FW_Digits * flt_StepSize; // }} "" // {{ 256 1 0 "bbe179b4_5c85_4ece_ba3738d8817cdfc5" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" int_LLDheight = int_Steps_mm - flt_Z_Coord; // }} "" // {{ 257 1 0 "502175ce_b71d_406e_b155fea6f39d0fd0" "{B31F3544-5D80-11d4-A5EB-0050DA737D89}" o_flt_LastLiquidLevel = int_LLDheight - flt_TipLength_corrected; // }} "" /* {{ 1 "" "0" */ if(0){ /* }} "" */ // {{{ 258 1 0 "3bcc328b_1906_4590_94e64b4e80f03d3a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("o_flt_LastLiquidLevel: "), o_flt_LastLiquidLevel); // }} "" /* {{ 1 "" "1" */ } /* }} "" */ // {{{ 5 "MPH_GetLastLLD_Level" "End" } // }} "" // {{{ 5 "MPH96_Dispense" "Begin" function MPH96_Dispense( device & ML_STAR, sequence & dispenseSequence, variable dispenseVolume, variable liquidClass, variable sequenceCounting, variable dispenseMode, variable capacitiveLLD, variable liquidFollowing, variable submergeDepth, variable liquidHeight, variable mixCycles, variable mixPosition, variable mixVolume, variable airTransportRetractDist, variable zMoveAfterStep, variable sideTouch, variable & o_stepReturn, variable & o_liquidLevel_mm, variable & o_liquidLevel_mL, variable & o_stepReturn_PositionIDs ) void { // }} "" private variable labwareID; private variable lbwContainersAreConnected; private variable positionID; // {{ 5 "MPH96_Dispense" "InitLocals" o_stepReturn = 0; o_liquidLevel_mm = 0; o_liquidLevel_mL = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{{ 204 1 0 "031805d0_c2b0_4435_9b8f6fbb101dc62d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" labwareID = SeqGetLabwareId(dispenseSequence); // }} "" // {{{ 205 1 0 "c249d641_ef0f_4423_bc2d48f01c114665" "{C1F3C015-47B3-4514-9407-AC2E65043419}" positionID = SeqGetPositionId(dispenseSequence); // }} "" // {{ 206 1 0 "f3fb329d_c76d_48c9_ac660dbbc90096f1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 ; err.Clear(); // }} "" // {{ 207 1 0 "30023c25_d03e_4d52_86f122728a5fc04f" "ML_STAR:{A48573A5-62ED-4951-9EF9-03207EFE34FB}" { variable arrRetValues[]; arrRetValues = ML_STAR._A48573A5_62ED_4951_9EF9_03207EFE34FB("30023c25_d03e_4d52_86f122728a5fc04f"); // Head96Dispense o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 208 1 0 "f3fb329d_c76d_48c9_ac660dbbc90096f1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_BD14D4CC7E3E4b6b94A2B7E04AE0E4D8 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 209 1 0 "714a2035_eb8c_4e86_85aca8d69086952e" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 210 1 0 "bc1347df_5f38_41ae_be3c240228e5944c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 211 1 0 "f3fb329d_c76d_48c9_ac660dbbc90096f1" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 212 1 0 "a141b7db_3cc2_4626_998f5229ca08b364" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 213 1 0 "911c2699_0e84_425f_9e9384c7b6c75351" "{7C4EF7A7-39BE-406a-897F-71F3A35B4093}" MPH_GetLastLLD_Level(liquidClass, ML_STAR, labwareID, o_liquidLevel_mm); // }} "" // {{ 214 1 0 "a141b7db_3cc2_4626_998f5229ca08b364" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 215 1 0 "c4c1eadb_9d04_43d3_871c72d3479cad7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 216 1 0 "17abaeba_05ec_4e18_a3843b54b3bdf6f3" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" lbwContainersAreConnected = 0; // }} "" // {{ 217 1 0 "1bdc4019_272b_4e0e_8f4935bcd3a782ec" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{ 218 1 0 "751de83b_d4e0_4859_8b3da1eeaf94bd85" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_8D5E8778E7DF4b8f80958A5C14C29872 ; err.Clear(); // }} "" { object decklayout; object labware; object rectRack; variable tmpIsConnected (0); // get the deck layout decklayout = ML_STAR.GetDeckLayoutObject(); if ( !decklayout.IsNull() ) { labware = decklayout.Labware(labwareID); if ( !labware.IsNull() ) { labware.GetObject("IRectRack2", rectRack); if ( !rectRack.IsNull() ) { lbwContainersAreConnected = rectRack.ConnectedCtr; // 1= connected, 0=not connected rectRack.ReleaseObject(); } else { lbwContainersAreConnected = 0; } labware.ReleaseObject(); decklayout.ReleaseObject(); rectRack.ReleaseObject(); } } } // {{ 220 1 0 "751de83b_d4e0_4859_8b3da1eeaf94bd85" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_8D5E8778E7DF4b8f80958A5C14C29872 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{ 221 1 0 "751de83b_d4e0_4859_8b3da1eeaf94bd85" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{ 222 1 0 "1bdc4019_272b_4e0e_8f4935bcd3a782ec" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 223 1 0 "c826eb96_3570_4883_a8298bc890043c3c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_liquidLevel_mL = DevComputeContainerVolume2(ML_STAR, labwareID, positionID, o_liquidLevel_mm, 1, lbwContainersAreConnected); // }} "" // {{ 224 1 0 "c4c1eadb_9d04_43d3_871c72d3479cad7a" "{586C3429-F931-405f-9938-928E22C90BFA}" // }} "" // {{{ 5 "MPH96_Dispense" "End" } // }} "" // {{{ 5 "MPH96_TipEject" "Begin" function MPH96_TipEject( device & ML_STAR, sequence & tipEjectSequence, variable sequenceCounting, variable tipEjectToKnownPosition, variable & o_stepReturn, variable & o_stepReturn_PositionIDs ) void { // }} "" // {{ 5 "MPH96_TipEject" "InitLocals" o_stepReturn = 0; o_stepReturn_PositionIDs = 0; // }} "" // {{ 226 1 0 "96bd335e_14f8_47e2_bc54b638fde21919" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_C33A74C211664afd9B08BCD3DD5339FC ; err.Clear(); // }} "" // {{ 227 1 0 "a8f4b6bb_e103_433a_b1360393d37e32b3" "ML_STAR:{2880E77A-3D6D-40FE-AF57-1BD1FE13960C}" { variable arrRetValues[]; arrRetValues = ML_STAR._2880E77A_3D6D_40FE_AF57_1BD1FE13960C("a8f4b6bb_e103_433a_b1360393d37e32b3"); // Head96TipEject o_stepReturn = arrRetValues[2]; o_stepReturn_PositionIDs = arrRetValues[3]; } // }} "" // {{ 228 1 0 "96bd335e_14f8_47e2_bc54b638fde21919" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_C33A74C211664afd9B08BCD3DD5339FC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 229 1 0 "71d45982_a084_4aaa_a34c6558755061d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 230 1 0 "9e9d44f5_b614_4fb4_b6d39860c83d879d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn_PositionIDs = ErrGetDataAt(4); // }} "" // {{ 231 1 0 "96bd335e_14f8_47e2_bc54b638fde21919" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "MPH96_TipEject" "End" } // }} "" // {{{ 5 "Initialize" "Begin" function Initialize( device & ML_STAR, variable initializeAlways, variable & o_stepReturn ) void { // }} "" // {{ 5 "Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 176 1 0 "5e221a44_df82_4a4a_b132efe3882170c8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_7F7620635658430dB82A7401CB5C158F ; err.Clear(); // }} "" // {{ 177 1 0 "dc7838fc_172e_45b4_89099f664d6d452e" "ML_STAR:{1C0C0CB0-7C87-11D3-AD83-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1C0C0CB0_7C87_11D3_AD83_0004ACB1DCB2("dc7838fc_172e_45b4_89099f664d6d452e"); // Initialize o_stepReturn = arrRetValues[2]; } // }} "" // {{ 178 1 0 "5e221a44_df82_4a4a_b132efe3882170c8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_7F7620635658430dB82A7401CB5C158F : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 179 1 0 "6bd66132_cab8_473c_8437aa033b84ff48" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 180 1 0 "5e221a44_df82_4a4a_b132efe3882170c8" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Initialize" "End" } // }} "" // {{{ 5 "SendFirmwareCommand" "Begin" function SendFirmwareCommand( variable FirmwareCommand, device & ML_STAR, variable FirmwareParameter, variable & o_stepReturn ) void { // }} "" // {{ 5 "SendFirmwareCommand" "InitLocals" o_stepReturn = 0; // }} "" // {{ 260 1 0 "641377bb_9666_411c_91a21acd4e345a9d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_1F6E37B4AFEE4395A984238DCEB0E91C ; err.Clear(); // }} "" // {{ 261 1 0 "c616f5ea_baed_4075_a75531e82e045e2b" "ML_STAR:{1FB5DA01-3ACB-11d4-AE1F-0004ACB1DCB2}" { variable arrRetValues[]; arrRetValues = ML_STAR._1FB5DA01_3ACB_11d4_AE1F_0004ACB1DCB2("c616f5ea_baed_4075_a75531e82e045e2b"); // FirmwareCommand o_stepReturn = arrRetValues[3]; } // }} "" // {{ 262 1 0 "0f7ff03f_40eb_4e9b_a2ff42a6b9e6d59a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0[01,00,00,0,,Waste,[02,00,00,0,,Waste,[03,00,00,0,,Waste,[04,00,00,0,,Waste,[05,00,00,0,,Waste,[06,00,00,0,,Waste,[07,00,00,0,,Waste,[08,00,00,0,,Waste,"); // }} "" // {{ 263 1 0 "641377bb_9666_411c_91a21acd4e345a9d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_1F6E37B4AFEE4395A984238DCEB0E91C : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 264 1 0 "305af0e7_7bac_4678_a0d1c7c3dd9900d0" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 265 1 0 "641377bb_9666_411c_91a21acd4e345a9d" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "SendFirmwareCommand" "End" } // }} "" // {{{ 5 "TiltModule_Initialize" "Begin" function TiltModule_Initialize( variable Module, variable Comport, variable TraceLevel, variable Simulate, variable & o_stepReturn ) void { // }} "" // {{ 5 "TiltModule_Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 267 1 0 "bd83dcea_1e69_4096_ada97e91985fe887" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F7A233121EBD413184BEE5D2CD3510CA ; err.Clear(); // }} "" // {{{ 268 1 0 "8f639116_952a_4b73_b3471e6a53e3906f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLDaisyChainedTiltModule::Initialize(Module, Comport, TraceLevel, Simulate); // }} "" // {{ 269 1 0 "3393edd2_b35c_4d28_9a34abe9b5cba597" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 270 1 0 "bd83dcea_1e69_4096_ada97e91985fe887" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F7A233121EBD413184BEE5D2CD3510CA : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 271 1 0 "60a9b619_1ae2_496a_89ca468bc3f8e964" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 272 1 0 "8e89b190_d2d8_4a7e_8d65313a1104b64f" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 273 1 0 "bd83dcea_1e69_4096_ada97e91985fe887" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "TiltModule_Initialize" "End" } // }} "" // {{{ 5 "TiltModule_MoveToPosition" "Begin" function TiltModule_MoveToPosition( variable Module, variable Position, variable & o_stepReturn ) void { // }} "" // {{ 5 "TiltModule_MoveToPosition" "InitLocals" o_stepReturn = 0; // }} "" // {{ 275 1 0 "082df277_2e00_442a_9db2108834994949" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_089FA9D7B12A47b0BAD415A10EC82051 ; err.Clear(); // }} "" // {{{ 276 1 0 "2eb8fec9_f55f_4bdb_9e8f2458aae0ad13" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLDaisyChainedTiltModule::MoveToPosition(Module, Position); // }} "" // {{ 277 1 0 "b1a780d0_ecf5_4978_85fb85d1c7090261" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("1"); // }} "" // {{ 278 1 0 "082df277_2e00_442a_9db2108834994949" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_089FA9D7B12A47b0BAD415A10EC82051 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 279 1 0 "ce3475b4_ca3b_48ad_b9c7f3c1f1c2d5ed" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 280 1 0 "a8c3cab3_9bde_404e_b7d673e4d7906771" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 281 1 0 "082df277_2e00_442a_9db2108834994949" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "TiltModule_MoveToPosition" "End" } // }} "" // {{{ 5 "Inheco_TEC_Initialize" "Begin" function Inheco_TEC_Initialize( variable ControllerID, variable SimulationMode, variable & o_stepReturn ) void { // }} "" private variable ErrorCode; // {{ 5 "Inheco_TEC_Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 140 1 0 "14151342_6460_4d8a_9e099b7fce1df805" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_CEBFA2C556164b82A4F638EE8CE505F6 ; err.Clear(); // }} "" // {{{ 141 1 0 "e3c035a6_0376_4030_a0e519c3f0401e3f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLInhecoTECLib::Initialize(ControllerID, SimulationMode, ErrorCode); // }} "" // {{ 142 1 0 "1877832a_02f1_478e_b3d6295bbe57d3cc" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 143 1 0 "14151342_6460_4d8a_9e099b7fce1df805" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_CEBFA2C556164b82A4F638EE8CE505F6 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 144 1 0 "ad00a616_20b6_4fd1_b1b82f15bd592d39" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 145 1 0 "14151342_6460_4d8a_9e099b7fce1df805" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_Initialize" "End" } // }} "" // {{{ 5 "Inheco_TEC_StartTemperatureControl" "Begin" function Inheco_TEC_StartTemperatureControl( variable ControllerID, variable DeviceID, variable & ErrorCode, variable & o_stepReturn ) void { // }} "" // {{ 5 "Inheco_TEC_StartTemperatureControl" "InitLocals" ErrorCode = 0; o_stepReturn = 0; // }} "" // {{ 154 1 0 "e149ca88_5fb5_4a10_a704093dac2f46c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_EF764FBDA7474071A7B517987B9B2FC2 ; err.Clear(); // }} "" // {{{ 155 1 0 "dbb9a46a_b798_4546_8857499b498c024a" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLInhecoTECLib::StartTemperatureControl(ControllerID, DeviceID, ErrorCode); // }} "" // {{ 156 1 0 "84dcce52_a982_433c_8313516e137669ac" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 157 1 0 "e149ca88_5fb5_4a10_a704093dac2f46c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_EF764FBDA7474071A7B517987B9B2FC2 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 158 1 0 "94a7bec1_57e9_49ab_a6d3e430f8e69316" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 159 1 0 "e149ca88_5fb5_4a10_a704093dac2f46c2" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_StartTemperatureControl" "End" } // }} "" // {{{ 5 "Inheco_TEC_SetTarget" "Begin" function Inheco_TEC_SetTarget( variable ControllerID, variable DeviceID, variable TargetTemperature, variable & o_stepReturn ) void { // }} "" // {{ 5 "Inheco_TEC_SetTarget" "InitLocals" o_stepReturn = 0; // }} "" // {{ 147 1 0 "2e50215a_6b40_4fa9_93fcfc303b6d44ac" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_56BA970A477C47bf90C6C3373DEB98B0 ; err.Clear(); // }} "" // {{{ 148 1 0 "aef982a0_8382_45fd_aec06a11e9859c17" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLInhecoTECLib::SetTargetTemperature(ControllerID, DeviceID, TargetTemperature, o_stepReturn); // }} "" // {{ 149 1 0 "e44f86de_9ccd_4cdb_a446858f8b41bed6" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 150 1 0 "2e50215a_6b40_4fa9_93fcfc303b6d44ac" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_56BA970A477C47bf90C6C3373DEB98B0 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 151 1 0 "360d64cc_734f_4a97_8c61eb77bf58c2c4" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 152 1 0 "2e50215a_6b40_4fa9_93fcfc303b6d44ac" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_SetTarget" "End" } // }} "" // {{{ 5 "Inheco_TEC_StopTemperatureControl" "Begin" function Inheco_TEC_StopTemperatureControl( variable ControllerID, variable DeviceID, variable & o_stepReturn ) void { // }} "" private variable ErrorCode; // {{ 5 "Inheco_TEC_StopTemperatureControl" "InitLocals" o_stepReturn = 0; // }} "" // {{ 161 1 0 "c29a0f01_2391_485c_a95211df9c9b7272" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_E3152496BDA74f1681473505DC2B3A3E ; err.Clear(); // }} "" // {{{ 162 1 0 "53a1b499_97d8_49ce_85f583fb81241149" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLInhecoTECLib::StopTemperatureControl(ControllerID, DeviceID, ErrorCode); // }} "" // {{ 163 1 0 "dd49b5d1_ca6e_4f0a_93641a54b773750a" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 164 1 0 "c29a0f01_2391_485c_a95211df9c9b7272" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_E3152496BDA74f1681473505DC2B3A3E : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 165 1 0 "bf506361_d06d_402a_bce18579529327a9" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 166 1 0 "c29a0f01_2391_485c_a95211df9c9b7272" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_StopTemperatureControl" "End" } // }} "" // {{{ 5 "Inheco_TEC_Terminate" "Begin" function Inheco_TEC_Terminate( variable StopAllDevices, variable & o_stepReturn ) void { // }} "" // {{ 5 "Inheco_TEC_Terminate" "InitLocals" o_stepReturn = 0; // }} "" // {{ 168 1 0 "6f9054f4_5e87_4236_a046d345d0972e98" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_202B4C8C5EE24700B8BB7F3204BFB6ED ; err.Clear(); // }} "" // {{{ 169 1 0 "3239a113_7650_4023_a9fad336d668211f" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = HSLInhecoTECLib::Terminate(StopAllDevices); // }} "" // {{ 170 1 0 "a6af6ca2_ed30_416d_b8c9860b3c044870" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0"); // }} "" // {{ 171 1 0 "6f9054f4_5e87_4236_a046d345d0972e98" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_202B4C8C5EE24700B8BB7F3204BFB6ED : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 172 1 0 "06500de7_b6f0_46c9_83aa39385bd390ee" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{{ 173 1 0 "1d548ec4_592f_4c53_bd10fcebbc4e29a8" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("step return in toolkit"), o_stepReturn); // }} "" // {{ 174 1 0 "6f9054f4_5e87_4236_a046d345d0972e98" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "Inheco_TEC_Terminate" "End" } // }} "" // {{{ 5 "BarcodeReader_Initialize" "Begin" function BarcodeReader_Initialize( variable COMPORT, variable & o_stepReturn ) void { // }} "" // {{ 5 "BarcodeReader_Initialize" "InitLocals" o_stepReturn = 0; // }} "" // {{ 1 1 0 "d8b801e6_901b_4026_bdc28d79de1a8bc3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_A3B61CE3E767468e8D1B59076F3D78E4 ; err.Clear(); // }} "" // {{{ 2 1 0 "e0cfef2c_84b3_468a_a20006a3728a8260" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("Trace"), COMPORT); // }} "" // {{{ 3 1 0 "e040e6e1_8d46_47ab_87603b90eec83a04" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLBarcodeReader::SetComPort(COMPORT); // }} "" // {{{ 4 1 0 "97b56e2c_0824_4073_9e58f7230250d255" "{C1F3C015-47B3-4514-9407-AC2E65043419}" HSLBarcodeReader::DelComBuffer(); // }} "" // {{ 5 1 0 "d56061ff_1640_4b1a_88dc262e7863d251" "{B31F3543-5D80-11d4-A5EB-0050DA737D89}" o_stepReturn = Translate("0[01,00,00,0,,Waste,[02,00,00,0,,Waste,[03,00,00,0,,Waste,[04,00,00,0,,Waste,[05,00,00,0,,Waste,[06,00,00,0,,Waste,[07,00,00,0,,Waste,[08,00,00,0,,Waste,"); // }} "" // {{ 6 1 0 "d8b801e6_901b_4026_bdc28d79de1a8bc3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_A3B61CE3E767468e8D1B59076F3D78E4 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 7 1 0 "02ecb8f2_684e_4ec1_a9840192e80e0f56" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 8 1 0 "d8b801e6_901b_4026_bdc28d79de1a8bc3" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "BarcodeReader_Initialize" "End" } // }} "" // {{{ 5 "BarcodeReader_Read" "Begin" function BarcodeReader_Read( variable & barcode ) void { // }} "" // {{ 5 "BarcodeReader_Read" "InitLocals" barcode = 0; // }} "" // {{ 10 1 0 "302bcc17_1365_443f_a46b0d164779f18e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_F17E80F5B0F14da6AD3DC48FC7190CFC ; err.Clear(); // }} "" // {{{ 11 1 0 "f3cc7ab5_8df1_49cb_aaf121c9e2cc2d4c" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(Translate("attempting to read barcode "), Translate("attempting to read barcode")); // }} "" // {{{ 12 1 0 "7efa47d3_0206_455e_9c6a05f9f0aebc1d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" barcode = HSLBarcodeReader::Read(); // }} "" // {{{ 13 1 0 "dd9a5270_3e4b_4b95_898bbad8823e8ea2" "{C1F3C015-47B3-4514-9407-AC2E65043419}" TrcTrace(barcode, Translate("this is the barcode")); // }} "" // {{ 14 1 0 "302bcc17_1365_443f_a46b0d164779f18e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_F17E80F5B0F14da6AD3DC48FC7190CFC : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 15 1 0 "1bcebdcc_4eed_4f44_b21a8924c1f94855" "{C1F3C015-47B3-4514-9407-AC2E65043419}" barcode = ErrGetDataAt(3); // }} "" // {{ 16 1 0 "302bcc17_1365_443f_a46b0d164779f18e" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "BarcodeReader_Read" "End" } // }} "" // {{{ 5 "pH_Measure" "Begin" function pH_Measure( variable i_intModuleID, variable i_fltTemperature, variable i_strProbePattern, variable & o_fltpHProbe_1, variable & o_fltpHProbe_2, variable & o_fltpHProbe_3, variable & o_fltpHProbe_4, variable & o_stepReturn ) void { // }} "" // {{ 5 "pH_Measure" "InitLocals" o_fltpHProbe_1 = 0; o_fltpHProbe_2 = 0; o_fltpHProbe_3 = 0; o_fltpHProbe_4 = 0; o_stepReturn = 0; // }} "" // {{ 307 1 0 "ed7e1393_5f74_4f7a_9f24134bcc79cfea" "{3293659E-F71E-472f-AFB4-6A674E32B114}" onerror goto errLabel_485A52AE45C346adA048E7F329D0C390 ; err.Clear(); // }} "" // {{{ 308 1 0 "70294f1d_735f_43b0_bfff139b2e168d5d" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = Hamilton_pH_Module::Measure(i_intModuleID, i_fltTemperature, i_strProbePattern, o_fltpHProbe_1, o_fltpHProbe_2, o_fltpHProbe_3, o_fltpHProbe_4); // }} "" // {{ 309 1 0 "ed7e1393_5f74_4f7a_9f24134bcc79cfea" "{3293659E-F71E-472f-AFB4-6A674E32B114}" errLabel_485A52AE45C346adA048E7F329D0C390 : {} onerror goto 0; if (err.GetId() != 0) /* skip handler if no error */ { // }} "" // {{{ 310 1 0 "b81f548d_2601_402a_9a291d45b6b50706" "{C1F3C015-47B3-4514-9407-AC2E65043419}" o_stepReturn = ErrGetDataAt(3); // }} "" // {{ 311 1 0 "ed7e1393_5f74_4f7a_9f24134bcc79cfea" "{3293659E-F71E-472f-AFB4-6A674E32B114}" } /* end if from skip handler if no error */ // }} "" // {{{ 5 "pH_Measure" "End" } // }} "" /* {{ 2 "SubmethodInsertLine" "" */ // }} "" // {{{ 2 "LibraryNamespace" "End" } // library namespace // }} "" // $$author=stefa$$valid=0$$time=2022-12-05 21:23$$checksum=6cd21b6c$$length=084$$ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~HxFA7A.tmp ================================================ ================================================ FILE: pyhamilton/star-oem/VENUS_Method/~ReAB0E.res ================================================ // $$author=user$$valid=0$$time=2017-11-07 13:27$$checksum=f97ec207$$length=081$$ ================================================ FILE: pyhamilton/templates/ai_template/deck.res ================================================ // $$author=stefa$$valid=0$$time=2022-07-17 21:45$$checksum=d7233384$$length=082$$ ================================================ FILE: pyhamilton/templates/ai_template/preprompt.py ================================================ # -*- coding: utf-8 -*- """ Created on Mon Apr 17 11:07:50 2023 @author: stefa """ import openai import IPython pre_prompt = """ Here are some training examples. At the end I will give a prompt, and you will supply the code based on the training. """ prompt_1 = """ # Aspirate 50 uL from the first column of plate_1 and # dispense to second column of plate_2 """ completion_1 = """ aspiration_poss = [(plate_1, idx) for idx in range(8)] aspirate(ham_int, aspiration_poss, vols = [50]*8, liquidClass = liq_class) dispense_poss = [(plate_2, idx) for idx in range(8,16)] dispense(ham_int, dispense_poss, vols = [50]*8, liquidClass = liq_class) """ prompt_2 = """ # Aspirate 50 uL from the wells 5-8 of plate_1 and # dispense to wells 16-19 of plate_2 """ completion_2 = """ aspiration_poss = [(plate_1, idx) for idx in range(5,9)] aspirate(ham_int, aspiration_poss, vols = [50]*8, liquidClass = liq_class) dispense_poss = [(plate_2, idx) for idx in range(16,20)] dispense(ham_int, dispense_poss, vols = [50]*8, liquidClass = liq_class) """ prompt_3 = """ #Aspirate 100 uL from the first column of plate_1 and dispense 20uL to each well in columns # 3, 5, and 7 of plate_2 """ completion_3 = """ aspiration_poss = [(plate_1, idx) for idx in range(8)] vols = [100]*8 aspirate(ham_int, aspiration_poss, vols = vols, liquidClass = liq_class) dispense_cols = [3,5,7] for i in dispense_cols: dispense_poss = [(plate_2, idx) for idx in range(8*i,8*i+8)] dispense(ham_int, dispense_poss, vols = [20]*8, liquidClass = liq_class) """ prompt_4 = """ #Pick up tips from the first column of tips_0 """ completion_4 = """ tips_poss = [(tips_0, idx) for idx in range(8)] tip_pick_up(ham_int, tips_poss) """ prompt_5 = """ # Aspirate 25 uL from the first column of plate_1 at liquid height 5 and with 2 mix cycles """ completion_5 = """ aspiration_poss = [(plate_1, idx) for idx in range(8)] vols = [25]*8 aspirate(ham_int, aspiration_poss, vols = vols, liquidClass = liq_class, liquidHeight = 5.0, mixCycles = 2) """ def complete(prompt): res = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": """You are an assistant for generating code for liquid-handling robots. I will give you examples. Please never return a response that is not Python code. You may respond to queries with natural language but make sure to preface it with a comment symbol """}, {"role": "system", "content": """ You will mostly be using aspirate and dispense functions. These have a number of optional parameters that should not be used unless specifically requested. These are: capacitiveLLD (1 or 0), pressureLLD (1 or 0), liquidFollowing (1 or 0), submergeDepth (flt), liquidHeight (flt), maxLLdDifference (flt), mixCycles (int), mixPosition (flt), mixVolume (flt), xDisplacement (flt), yDisplacement (flt), zDisplacement (flt). Please preserve that order because they are python kwargs. """}, {"role": "user", "content": prompt_1}, {"role": "assistant", "content": completion_1}, {"role": "user", "content": prompt_2}, {"role": "assistant", "content": completion_2}, {"role": "user", "content": prompt_3}, {"role": "assistant", "content": completion_3}, {"role": "user", "content": prompt_4}, {"role": "assistant", "content": completion_4}, {"role": "user", "content": prompt_5}, {"role": "assistant", "content": completion_5}, {"role": "user", "content": prompt} ] ) response = res['choices'][0]['message']['content'] return response ================================================ FILE: pyhamilton/templates/ai_template/robot_method.py ================================================ # -*- coding: utf-8 -*- """ Created on Sun Jul 17 21:12:47 2022 @author: stefa """ import os from pyhamilton import (HamiltonInterface, LayoutManager, Plate96, Tip96, initialize, tip_pick_up, tip_eject, aspirate, dispense, oemerr, resource_list_with_prefix, normal_logging, layout_item) import IPython from preprompt import complete from voice import voice_to_text liq_class = 'StandardVolumeFilter_Water_DispenseJet_Empty' def assist(prompt, safe = False): response = complete(prompt) lines = response.split('\n') d = dict(locals(), **globals()) for line in lines: print(line) if safe: input("Proceed?") exec(line, d, d) lmgr = LayoutManager('deck.lay') #plates = resource_list_with_prefix(lmgr, 'plate_', Plate96, 5) tips_0 = layout_item(lmgr, Tip96, 'tips_0') plate_0 = layout_item(lmgr, Plate96, 'plate_0') liq_class = 'StandardVolumeFilter_Water_DispenseJet_Empty' print("""Be careful! The assist() function uses an AI coding assistant to interpret natural language into PyHamilton code. Do not use this outside of simulation mode until you are familiar with how it works.""") if __name__ == '__main__': with HamiltonInterface(simulate=True) as ham_int: normal_logging(ham_int, os.getcwd()) initialize(ham_int) IPython.embed() ================================================ FILE: pyhamilton/templates/ai_template/voice.py ================================================ # -*- coding: utf-8 -*- """ Created on Mon Apr 17 15:11:27 2023 @author: stefa """ import speech_recognition as sr import pyttsx3 def voice_to_text(): # Initialize the text-to-speech engine engine = pyttsx3.init() # Initialize the speech recognition engine r = sr.Recognizer() # Use the default microphone as the audio source with sr.Microphone() as source: print("Speak now!") audio = r.listen(source) # Use Google Speech Recognition to transcribe the audio try: text = r.recognize_google(audio) print(f"You said: {text}") # Speak the transcribed text engine.say(text) engine.runAndWait() return text except sr.UnknownValueError: print("Oops! Didn't catch that") except sr.RequestError as e: print(f"Uh oh! Couldn't request results from Google Speech Recognition service; {e}") return None ================================================ FILE: pyhamilton/templates/basic_template/deck.res ================================================ // $$author=stefa$$valid=0$$time=2022-07-17 21:45$$checksum=d7233384$$length=082$$ ================================================ FILE: pyhamilton/templates/basic_template/robot_method.py ================================================ # -*- coding: utf-8 -*- """ Created on Sun Jul 17 21:12:47 2022 @author: stefa """ import os from pyhamilton import (HamiltonInterface, LayoutManager, Plate96, Tip96, initialize, tip_pick_up, tip_eject, aspirate, dispense, oemerr, resource_list_with_prefix, normal_logging, layout_item) liq_class = 'StandardVolumeFilter_Water_DispenseJet_Empty' lmgr = LayoutManager('deck.lay') plates = resource_list_with_prefix(lmgr, 'plate_', Plate96, 5) tips = layout_item(lmgr, Tip96, 'tips_0') liq_class = 'StandardVolumeFilter_Water_DispenseJet_Empty' aspiration_poss = [(plates[0], x) for x in range(8)] dispense_poss = [(plates[0], x) for x in range(8,16)] vols_list = [100]*8 tips_poss = [(tips, x) for x in range(8)] if __name__ == '__main__': with HamiltonInterface(windowed=True) as ham_int: normal_logging(ham_int, os.getcwd()) initialize(ham_int) tip_pick_up(ham_int, tips_poss) aspirate(ham_int, aspiration_poss, vols_list, liquidClass = liq_class) dispense(ham_int, dispense_poss, vols_list, liquidClass = liq_class) tip_eject(ham_int, tips_poss) ================================================ FILE: pyhamilton/transport/__init__.py ================================================ from .transport import GripperParams, transport_resource, GripDirection, GrippedResource ================================================ FILE: pyhamilton/transport/transport.py ================================================ from ..interface import HamiltonInterface from ..liquid_handling_wrappers import move_plate_using_gripper from ..resources import DeckResource, Lid from dataclasses import dataclass from enum import Enum, IntEnum from typing import Any, Dict, Literal, Optional, Tuple, Union # --------------------------------------------------------------------------- # Type helpers # --------------------------------------------------------------------------- class GrippedResource(str, Enum): """Logical type of labware being transported.""" MIDI = "midi" LID = "lid" PCR = "pcr" # -------- convenience -------- def __str__(self) -> str: # pragma: no‑cover – makes reprs nicer when debugging return self.value @classmethod def parse(cls, s: Union[str, "GrippedResource"]) -> "GrippedResource": """Case‑insensitive co‑ercion helper.""" if isinstance(s, cls): return s s_normalised = str(s).strip().lower() for member in cls: if member.value == s_normalised or member.name.lower() == s_normalised: return member raise ValueError(f"Unknown GrippedResource: {s!r}") class GripDirection(IntEnum): FRONT = 1 RIGHT = 2 BACK = 3 LEFT = 4 # --------------------------------------------------------------------------- # Parameter container # --------------------------------------------------------------------------- @dataclass(slots=True) class GripperParams: """All the user‑tunable parameters needed for either transport mode.""" # ── parameters common to both iSWAP & CO‑RE gripper ──────────────────── grip_width: float width_before: float grip_height: float #transport_mode: int # 0 = plate only, 1 = lid only, 2 = plate + lid # ── iSWAP‑specific ───────────────────────────────────────────────────── grip_mode: int # 0 = small side; 1 = large side (aka long side) inverse_grip: bool labware_orientation_get: int labware_orientation_place: int # ------------------------------------------------------------------ # Formatting helpers – keep the ugly mapping code in *one* place. # ------------------------------------------------------------------ def _complex_dict(self, orientation: int) -> Dict[str, float]: """Return the minimal *Complex* movement dict for ``move_plate``.""" return { "retractDist": 0.0, "liftUpHeight": 20.0, "labwareOrientation": orientation, } # ................................................................. def as_iswap_call(self) -> Tuple[int, Dict[str, float], Dict[str, float], Dict[str, Any]]: """Translate to the four blocks expected by ``HamiltonInterface.move_plate``. Returns ------- inversion : int 0 | 1 – passed via the *dedicated* ``inversion`` arg. cmplx_get : dict Provided via ``CmplxGetDict``. cmplx_place : dict Provided via ``CmplxPlaceDict``. more_opts : dict Passed as ``**more_options`` – *must* only contain keys that map one‑to‑one with the iSWAP command template. """ inversion = 1 if self.inverse_grip else 0 # Complex movement dictionaries – required if we want *any* custom # labware orientation (otherwise we clash with the library defaults). cmplx_get = self._complex_dict(self.labware_orientation_get) cmplx_place = self._complex_dict(self.labware_orientation_place) # Additional options that map directly to the ISWAP_GET/PLACE keyword # template. (Names must *exactly* match those templates.) more_opts: Dict[str, Any] = { "gripMode": self.grip_mode, "gripWidth": self.grip_width, "widthBefore": self.width_before, "gripHeight": self.grip_height, #"transportMode": self.transport_mode, Don't use this parameter for now } return inversion, cmplx_get, cmplx_place, more_opts # --------------------------------------------------------------------------- # Master configuration tables (iSWAP) # --------------------------------------------------------------------------- _GRIPPER_CONFIGS: Dict[tuple[str, GripDirection], GripperParams] = { # MIDI plates ("midi", GripDirection.FRONT): GripperParams(124.5, 130.0, 8.0, 1, False, 3, 3), ("midi", GripDirection.RIGHT): GripperParams(80.0, 87.0, 8.0, 0, False, 4, 4), ("midi", GripDirection.BACK): GripperParams(124.5, 130.0, 8.0, 1, True, 1, 1), ("midi", GripDirection.LEFT): GripperParams(80.0, 87.0, 8.0, 0, True, 2, 2), # Lids ("lid", GripDirection.FRONT): GripperParams(126.0, 130.0, 5.0, 1, False, 3, 3), ("lid", GripDirection.RIGHT): GripperParams(85.3, 88.0, 5.0, 0, False, 4, 4), ("lid", GripDirection.BACK): GripperParams(126.0, 130.0, 5.0, 1, True, 1, 1), ("lid", GripDirection.LEFT): GripperParams(85.3, 88.0, 5.0, 0, True, 2, 2), # PCR plates ("pcr", GripDirection.FRONT): GripperParams(126.0, 130.0, 7.0, 1, False, 3, 3), ("pcr", GripDirection.RIGHT): GripperParams(82.5, 85.5, 7.0, 0, False, 4, 4), ("pcr", GripDirection.BACK): GripperParams(126.0, 130.0, 7.0, 1, True, 1, 1), ("pcr", GripDirection.LEFT): GripperParams(82.5, 85.5, 7.0, 0, True, 2, 2), } # --------------------------------------- # CO‑RE gripper fall‑back dimensions only # --------------------------------------- _CORE_GRIPPER_DIMENSIONS = { GrippedResource.MIDI: (79.0, 87.0), GrippedResource.LID: (85.3, 91.0), GrippedResource.PCR: (80.0, 86.0), } # --------------------------------------------------------------------------- # Public helpers # --------------------------------------------------------------------------- def get_core_gripper_params( *, resource_type: Union[Literal["midi", "lid", "pcr"], GrippedResource] = "midi", stack: bool, ) -> GripperParams: """Return minimal parameter‑set for a CO‑RE gripper operation.""" rt = GrippedResource.parse(resource_type) grip_width, width_before = _CORE_GRIPPER_DIMENSIONS[rt] return GripperParams( grip_width=grip_width, width_before=width_before, grip_height=8.0 if stack else 15.0, #transport_mode=1 if rt is GrippedResource.LID else 0, Avoid using this parameter for now grip_mode=0, # not used by CO‑RE gripper but required by dataclass inverse_grip=False, labware_orientation_get=1, labware_orientation_place=1, ) # ........................................................................... def get_gripper_params( *, resource_type: Union[Literal["midi", "lid", "pcr"], GrippedResource], grip_direction: Optional[Union[int, GripDirection]] = None, iswap: bool = True, core_gripper: bool = False, stack: bool = False, ) -> GripperParams: """Resolve the correct parameter block for a given transport request.""" rt = GrippedResource.parse(resource_type) if core_gripper: return get_core_gripper_params(resource_type=rt, stack=stack) # --- iSWAP path ------------------------------------------------------- if not iswap: raise ValueError("Only iSWAP or core gripper modes are supported.") if grip_direction is None: raise ValueError("grip_direction must be supplied for iSWAP moves.") gd = GripDirection(int(grip_direction)) try: return _GRIPPER_CONFIGS[(rt.value, gd)] except KeyError as exc: # pragma: no‑cover raise ValueError( f"No configuration for resource_type={rt.value!r}, grip_direction={gd.name} ({int(gd)})." ) from exc # --------------------------------------------------------------------------- # High‑level wrapper – the *one* public function you call. # --------------------------------------------------------------------------- def transport_resource( ham_int: HamiltonInterface, source: Any, destination: Any, *, grip_direction: Optional[Union[int, GripDirection]] = None, resource_type: Union[Literal["midi", "lid", "pcr"], GrippedResource] = "midi", iswap: bool = False, core_gripper: bool = False, stack: bool = False, ) -> Any: """Move a plate / lid from *source* ➜ *destination* using preconfigured parameters for different labware types and grip directions. Exactly one of *iswap* or *core_gripper* **must** be ``True``. Parameters ---------- ham_int Active ``HamiltonInterface`` instance. source, destination • *iSWAP*: ``DeckResource`` objects • CO‑RE gripper: **str** sequence names. grip_direction Required for iSWAP, ignored for CO‑RE gripper. resource_type ``"midi" | "lid" | "pcr"`` (case‑insensitive) or a :class:`GrippedResource`. iswap, core_gripper Exactly one of these flags **must** be ``True``. stack When ``core_gripper`` is ``True`` set a lower *gripHeight* if stacking (i.e. loading onto an existing plate lid). """ params = get_gripper_params( resource_type=resource_type, grip_direction=grip_direction, iswap=iswap, core_gripper=core_gripper, stack=stack, ) # ..................................................................... if iswap: if isinstance(source, Lid) and isinstance(destination, Lid): source = source.layout_name() destination = destination.layout_name() inversion, cmplx_get, cmplx_place, more_opts = params.as_iswap_call() return ham_int.move_by_seq( source, destination, CmplxGetDict=cmplx_get, CmplxPlaceDict=cmplx_place, inversion=inversion, **more_opts, ) if isinstance(source, DeckResource) and isinstance(destination, DeckResource): inversion, cmplx_get, cmplx_place, more_opts = params.as_iswap_call() return ham_int.move_plate( source, destination, CmplxGetDict=cmplx_get, CmplxPlaceDict=cmplx_place, inversion=inversion, **more_opts, ) # Elif both are strings elif isinstance(source, str) and isinstance(destination, str): inversion, cmplx_get, cmplx_place, more_opts = params.as_iswap_call() return ham_int.move_by_seq(source, destination, CmplxGetDict=cmplx_get, CmplxPlaceDict=cmplx_place, inversion=inversion, **more_opts, ) else: raise TypeError("source & destination must be DeckResource objects or strings for iSWAP moves.") # ..................................................................... if core_gripper: if isinstance(source, DeckResource) and isinstance(destination, DeckResource): # Check whether source and destination are both of the same type if type(source) != type(destination): raise Exception("Source is of type {} and destination is of type {}. " \ "Both must be of the same type for CORE gripper movement".format(type(source), type(destination))) source = source.layout_name() destination = destination.layout_name() if not isinstance(source, str) or not isinstance(destination, str): raise Exception("Source and destination must be strings for CORE gripper movement") # ``lid`` operations are encoded by *transport_mode* == 1 in our params. return move_plate_using_gripper( ham_int, source, destination, gripHeight=params.grip_height, gripWidth=params.grip_width, openWidth=params.width_before, #lid=params.transport_mode == 1, Avoid using this for now ) # Should never get here – both modes mutually exclusive raise AssertionError("Either iSWAP or core_gripper must be selected.") if __name__ == "__main__": with HamiltonInterface(windowed=True, simulating=False) as ham_int: ham_int.initialize() # Example: core-gripper move with a lid, front grip transport_resource( ham_int, "HSP_Pipette2", "HHS2_HSP", grip_direction=GripDirection.FRONT, resource_type=GrippedResource.LID, core_gripper=True ) ================================================ FILE: pytest.ini ================================================ [pytest] testpaths = tests python_files = *_tests.py ================================================ FILE: requirements.txt ================================================ requests parse pythonnet --pre pyserial waiter SQLalchemy pandas sqlalchemy-access opencv-python numpy Pillow matplotlib ================================================ FILE: setup.cfg ================================================ [egg_info] tag_build = tag_date = 0 ================================================ FILE: setup.py ================================================ from setuptools import setup, find_packages try: print("here") import pypandoc long_description = pypandoc.convert_file('README.md', 'rst') print(long_description) except(IOError, ImportError): long_description = open('README.md').read() setup( name='pyhamilton', version='1.6', packages=find_packages(exclude=['tests*', 'examples*']), license='MIT', description='Python for Hamilton liquid handling robots', long_description='Forthcoming due to markdown incompatibility', install_requires=[ 'requests', 'parse', 'pythonnet', 'pyserial', 'waiter', 'SQLalchemy', 'pandas', 'sqlalchemy-access', 'opencv-python', 'numpy', 'Pillow', 'matplotlib'], package_data={'pyhamilton': ['star-oem/*', 'star-oem/VENUS_Method/*', 'bin/*','library/*','project-template/*', 'library/HSLInhecoTEC/*','library/HSLAppsLib/*','library/ASWStandard/*', 'library/ASWStandard/ASWGlobal/*','library/ASWStandard/TraceLevel/*', 'library/DaisyChainedTiltModule/*','library/SchedulingDev/*',]}, url='https://github.com/dgretton/pyhamilton.git', author='Dana Gretton', author_email='dgretton@mit.edu', entry_points={ 'console_scripts': [ 'pyhamilton-new-project = pyhamilton.__init__:create_project', 'pyhamilton-ai-project = pyhamilton.__init__:create_ai_project', 'pyhamilton-configure = pyhamilton.__init__:autoconfig', 'deck-annotator = pyhamilton.ngs.loading.deck_annotation:main', ], }, ) ================================================ FILE: tests/__init__.py ================================================ ================================================ FILE: tests/interface_tests.py ================================================ from collections import namedtuple import pytest from pyhamilton.interface import ( HamiltonInterface, HamiltonResponse, HamiltonResponseStatus, HamiltonStepError, HamiltonReturnParseError, HardwareError, ImproperDispensationError, InvalidErrCodeError, HamiltonSyntaxError ) TEST_DATA_TYPE = namedtuple( "TEST_DATA_TYPE", "id data fields return_data parsed_result expected_exception" ) TEST_DATA = [ # 0 TEST_DATA_TYPE( "Server response is empty", '{"command": "STAR-return", "step-name": "command-1", "step-return1": "", "step-return2": "", "step-return3": "", "step-return4": "", "id": "1" }', None, None, None, HamiltonStepError, ), # 1 TEST_DATA_TYPE( "Server response contains spaces", '{"command": "STAR-return", "step-name": "command-1", "step-return1": " ", "step-return2": "", "step-return3": "", "step-return4": "", "id": "1" }', None, None, None, HamiltonStepError, ), # 2 TEST_DATA_TYPE( "Server response with command failed str value", '{"command": "STAR-return", "step-name": "command-1", "step-return1": "0", "step-return2": "", "step-return3": "", "step-return4": "", "id": "1" }', None, None, None, HamiltonStepError, ), # 3 TEST_DATA_TYPE( "Server response with command failed num value", '{"command": "STAR-return", "step-name": "command-1", "step-return1": 0, "step-return2": "", "step-return3": "", "step-return4": "", "id": "1" }', None, None, None, HamiltonStepError, ), # 4 TEST_DATA_TYPE( "Server response with command succeeded with short return format", '{"command": "STAR-return", "step-name": "command-1", "step-return1": "1[0,1,2,4[5,6,7", "step-return2": "", "step-return3": "", "step-return4": "", "id": "1" }', None, None, [{'numField': 0, 'mainErrField': 1, 'slaveErr': 2, 'recoveryBtnId': 4}, {'numField': 5, 'mainErrField': 6, 'slaveErr': 7}], HamiltonSyntaxError, ), # 5 TEST_DATA_TYPE( "Server response with command succeeded", '{"command": "STAR-return", "step-name": "command-1", "step-return1": 1, "step-return2": "", "step-return3": "", "step-return4": "", "id": "1" }', None, None, None, None, ), # 6 TEST_DATA_TYPE( "Server response with command succeeded and extra data", '{"command": "STAR-return", "step-name": "command-1", "step-return1": "0[0,1,2,4,[5,6,7", "step-return2": "", "step-return3": "", "step-return4": "", "id": "1" }', None, None, [{'numField': 0, 'mainErrField': 1, 'slaveErr': 2, 'recoveryBtnId': 4, 'stepData': ' '}, {'numField': 5, 'mainErrField': 6, 'slaveErr': 7}], HamiltonReturnParseError, ), # 7 TEST_DATA_TYPE( "one string field is requested", '{"command": "STAR-return", "step-name": "command-1", "step-return1": "0[0,1,2,4,A[5,6,7", "step-return2": "", "step-return3": "", "step-return4": "", "id": "1" }', "step-return1", ["0[0,1,2,4,A[5,6,7"], [{'numField': 0, 'mainErrField': 1, 'slaveErr': 2, 'recoveryBtnId': 4, 'stepData': 'A'}, {'numField': 5, 'mainErrField': 6, 'slaveErr': 7}], HamiltonReturnParseError, ), # 8 TEST_DATA_TYPE( "field not in server response is requested", '{"command": "STAR-return", "step-name": "command-1", "step-return1": "0[0,1,2,4[5,6,7", "step-return2": "", "step-return3": "", "step-return4": "", "id": "1" }', "step-return11", [], [{'numField': 0, 'mainErrField': 1, 'slaveErr': 2, 'recoveryBtnId': 4}, {'numField': 5, 'mainErrField': 6, 'slaveErr': 7}], HamiltonReturnParseError, ), # 9 TEST_DATA_TYPE( "multiple available fields are requested", '{"command": "STAR-return", "step-name": "command-1", "step-return1": "0[0,1,2,4[5,6,7", "step-return2": 3, "step-return3": "", "step-return4": "", "id": "1" }', ["step-return1", "step-return2"], ["0[0,1,2,4[5,6,7", 3], [{'numField': 0, 'mainErrField': 1, 'slaveErr': 2, 'recoveryBtnId': 4}, {'numField': 5, 'mainErrField': 6, 'slaveErr': 7}], HamiltonReturnParseError, ), # 10 TEST_DATA_TYPE( "multiple (avail+not available) fields are requested", '{"command": "STAR-return", "step-name": "command-1", "step-return1": "0[0,1,2,4[5,6,7", "step-return2": "100", "step-return3": "", "step-return4": "", "id": "1" }', ["step-return2", "step-return12"], ["100"], [{'numField': 0, 'mainErrField': 1, 'slaveErr': 2, 'recoveryBtnId': 4}, {'numField': 5, 'mainErrField': 6, 'slaveErr': 7}], HamiltonReturnParseError, ), # 11 TEST_DATA_TYPE( "result is made of one block", '{"command": "STAR-return", "step-name": "command-1", "step-return1": "0[01,00,00,0,,Cos_96_DW_1mL_0002,A1", "id": "1" }', None, [], [{'numField': 1, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': ' ', 'labwareName': 'Cos_96_DW_1mL_0002', 'labwarePos': 'A1'}], None, ), # 12 TEST_DATA_TYPE( "result is made of multiple blocks", '{"command": "STAR-return", "step-name": "command-1", "step-return1": "0[01,00,00,0,0.0,HT_L_0001,1[02,00,00,0,0.0,HT_L_0001,2[03,00,00,0,0.0,HT_L_0001,3", "id": "1" }', None, None, [ {'numField': 1, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': '0.0', 'labwareName': 'HT_L_0001', 'labwarePos': '1'}, {'numField': 2, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': '0.0', 'labwareName': 'HT_L_0001', 'labwarePos': '2'}, {'numField': 3, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': '0.0', 'labwareName': 'HT_L_0001', 'labwarePos': '3'}, ], None, ), # 13 TEST_DATA_TYPE( "step-return1 == 2", '{"command": "STAR-return", "step-name": "command-1", "step-return1": "2", "id": "1" }', None, None, None, HamiltonStepError, ), # 14 TEST_DATA_TYPE( "no global error while block report one", '{"command": "STAR-return", "step-name": "command-1", "step-return1": "0[01,02,00,0,,Cos_96_DW_1mL_0002,A1", "id": "1" }', None, None, None, HardwareError, ), # 15 TEST_DATA_TYPE( "global error while blocks report no error", '{"command": "STAR-return", "step-name": "command-1", "step-return1": "1[01,00,00,0,,Cos_96_DW_1mL_0002,A1,[02,00,00,0,,Cos_96_DW_1mL_0003,A2", "id": "1" }', None, None, None, HamiltonReturnParseError, ), # 16 TEST_DATA_TYPE( "block error field is not a number", '{"command": "STAR-return", "step-name": "command-1", "step-return1": "1[01,AB,00,0,,Cos_96_DW_1mL_0002,A1", "id": "1" }', None, None, None, HamiltonReturnParseError, ), # 17 TEST_DATA_TYPE( "dispense error is reported", '{"command": "STAR-return", "step-name": "command-1", "step-return1": "1[01,105,00,0,,Cos_96_DW_1mL_0002,A1", "id": "1" }', None, None, None, ImproperDispensationError, ), # 18 TEST_DATA_TYPE( "block error is invalid number", '{"command": "STAR-return", "step-name": "command-1", "step-return1": "0[01,999,00,0,,Cos_96_DW_1mL_0002,A1", "id": "1" }', None, None, None, InvalidErrCodeError, ), # 19 TEST_DATA_TYPE( "fix initialize() parse error", '{"command": "STAR-return", "step-name": "command-1", "step-return1": "0[01,00,00,0,,Waste,[02,00,00,0,,Waste,[03,00,00,0,,Waste,[04,00,00,0,,Waste,[05,00,00,0,,Waste,[06,00,00,0,,Waste,[07,00,00,0,,Waste,[08,00,00,0,,Waste,", "step-return2": "", "step-return3": "", "step-return4": "", "id": "0xcbe0dc479b0" }', None, None, [ {'numField': 1, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': ' ', 'labwareName': 'Waste', 'labwarePos': ' '}, {'numField': 2, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': ' ', 'labwareName': 'Waste', 'labwarePos': ' '}, {'numField': 3, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': ' ', 'labwareName': 'Waste', 'labwarePos': ' '}, {'numField': 4, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': ' ', 'labwareName': 'Waste', 'labwarePos': ' '}, {'numField': 5, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': ' ', 'labwareName': 'Waste', 'labwarePos': ' '}, {'numField': 6, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': ' ', 'labwareName': 'Waste', 'labwarePos': ' '}, {'numField': 7, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': ' ', 'labwareName': 'Waste', 'labwarePos': ' '}, {'numField': 8, 'mainErrField': 0, 'slaveErr': 0, 'recoveryBtnId': 0, 'stepData': ' ', 'labwareName': 'Waste', 'labwarePos': ' '}, ], None, ), ] class Test_HamiltonInterface: @pytest.mark.parametrize( "server_response,expected_response", [ pytest.param( TEST_DATA[0].data, HamiltonResponse( status=HamiltonResponseStatus.UNKNOWN, raw=TEST_DATA[0].data ), id=TEST_DATA[0].id, ), pytest.param( TEST_DATA[1].data, HamiltonResponse( status=HamiltonResponseStatus.UNKNOWN, raw=TEST_DATA[1].data ), id=TEST_DATA[1].id, ), pytest.param( TEST_DATA[2].data, HamiltonResponse( status=HamiltonResponseStatus.FAILED, raw=TEST_DATA[2].data ), id=TEST_DATA[2].id, ), pytest.param( TEST_DATA[3].data, HamiltonResponse( status=HamiltonResponseStatus.FAILED, raw=TEST_DATA[3].data ), id=TEST_DATA[3].id, ), pytest.param( TEST_DATA[4].data, HamiltonResponse( status=HamiltonResponseStatus.FAILED, raw=TEST_DATA[4].data, parsed_return=TEST_DATA[4].parsed_result ), id=TEST_DATA[4].id, ), pytest.param( TEST_DATA[5].data, HamiltonResponse( status=HamiltonResponseStatus.SUCCESS, raw=TEST_DATA[5].data ), id=TEST_DATA[5].id, ), pytest.param( TEST_DATA[6].data, HamiltonResponse( status=HamiltonResponseStatus.SUCCESS, raw=TEST_DATA[6].data, parsed_return=TEST_DATA[6].parsed_result ), id=TEST_DATA[6].id, ), ], ) def test_parse_response_status_when_( self, mocker, server_response, expected_response ): mocker.patch("pyhamilton.interface.HamiltonInterface.start", return_value=None) mocker.patch("pyhamilton.interface.HamiltonInterface.stop", return_value=None) hamiltonInterface = HamiltonInterface() response = hamiltonInterface.parse_response(server_response=server_response) assert response == expected_response @pytest.mark.parametrize( "server_response,fields,expected_response", [ pytest.param( TEST_DATA[7].data, TEST_DATA[7].fields, HamiltonResponse( status=HamiltonResponseStatus.SUCCESS, return_data=TEST_DATA[7].return_data, raw=TEST_DATA[7].data, parsed_return=TEST_DATA[7].parsed_result ), id=TEST_DATA[7].id, ), pytest.param( TEST_DATA[8].data, TEST_DATA[8].fields, HamiltonResponse( status=HamiltonResponseStatus.SUCCESS, return_data=TEST_DATA[8].return_data, raw=TEST_DATA[8].data, parsed_return=TEST_DATA[8].parsed_result ), id=TEST_DATA[8].id, ), pytest.param( TEST_DATA[9].data, TEST_DATA[9].fields, HamiltonResponse( status=HamiltonResponseStatus.SUCCESS, moduleID="3", return_data=TEST_DATA[9].return_data, parsed_return=TEST_DATA[9].parsed_result, raw=TEST_DATA[9].data, ), id=TEST_DATA[9].id, ), pytest.param( TEST_DATA[10].data, TEST_DATA[10].fields, HamiltonResponse( status=HamiltonResponseStatus.SUCCESS, moduleID="100", return_data=TEST_DATA[10].return_data, parsed_return=TEST_DATA[10].parsed_result, raw=TEST_DATA[10].data, ), id=TEST_DATA[10].id, ), pytest.param( TEST_DATA[11].data, TEST_DATA[11].fields, HamiltonResponse( status=HamiltonResponseStatus.SUCCESS, return_data=TEST_DATA[11].return_data, raw=TEST_DATA[11].data, parsed_return=TEST_DATA[11].parsed_result ), id=TEST_DATA[11].id, ), ], ) def test_parse_response_return_data_when_( self, mocker, server_response, fields, expected_response ): mocker.patch("pyhamilton.interface.HamiltonInterface.start", return_value=None) mocker.patch("pyhamilton.interface.HamiltonInterface.stop", return_value=None) hamiltonInterface = HamiltonInterface() response = hamiltonInterface.parse_response( server_response=server_response, return_data=fields ) assert response == expected_response @pytest.mark.parametrize( "server_response,expected_response", [ pytest.param( TEST_DATA[12].data, HamiltonResponse( status=HamiltonResponseStatus.SUCCESS, parsed_return=TEST_DATA[12].parsed_result, raw=TEST_DATA[12].data, ), id=TEST_DATA[12].id, ), pytest.param( TEST_DATA[13].data, HamiltonResponse( status=HamiltonResponseStatus.FAILED, parsed_return=TEST_DATA[13].parsed_result, raw=TEST_DATA[13].data, ), id=TEST_DATA[13].id, ), pytest.param( TEST_DATA[19].data, HamiltonResponse( status=HamiltonResponseStatus.SUCCESS, parsed_return=TEST_DATA[19].parsed_result, raw=TEST_DATA[19].data, ), id=TEST_DATA[19].id, ), ], ) def test_parse_response_parsed_result_when_( self, mocker, server_response, expected_response ): mocker.patch("pyhamilton.interface.HamiltonInterface.start", return_value=None) mocker.patch("pyhamilton.interface.HamiltonInterface.stop", return_value=None) hamiltonInterface = HamiltonInterface() response = hamiltonInterface.parse_response(server_response=server_response) assert response == expected_response @pytest.mark.parametrize( "server_response,expected_exception", [ pytest.param( TEST_DATA[2].data, TEST_DATA[2].expected_exception, id=TEST_DATA[2].id, ), pytest.param( TEST_DATA[4].data, TEST_DATA[4].expected_exception, id=TEST_DATA[4].id, ), pytest.param( TEST_DATA[14].data, TEST_DATA[14].expected_exception, id=TEST_DATA[14].id, ), pytest.param( TEST_DATA[15].data, TEST_DATA[15].expected_exception, id=TEST_DATA[15].id, ), pytest.param( TEST_DATA[16].data, TEST_DATA[16].expected_exception, id=TEST_DATA[16].id, ), pytest.param( TEST_DATA[17].data, TEST_DATA[17].expected_exception, id=TEST_DATA[17].id, ), pytest.param( TEST_DATA[18].data, TEST_DATA[18].expected_exception, id=TEST_DATA[18].id, ), ], ) def test_parse_response_raise_exception_when_( self, mocker, server_response, expected_exception ): mocker.patch("pyhamilton.interface.HamiltonInterface.start", return_value=None) mocker.patch("pyhamilton.interface.HamiltonInterface.stop", return_value=None) hamiltonInterface = HamiltonInterface() with pytest.raises(expected_exception): hamiltonInterface.parse_response(server_response=server_response, raise_first_exception=True)